{"_id":"@linxiraos/pi-tui","_rev":"32-33a5d5f25e647930dc77c11534c07fae","name":"@linxiraos/pi-tui","dist-tags":{"latest":"1.1.20"},"versions":{"1.0.0":{"name":"@linxiraos/pi-tui","version":"1.0.0","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.0","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"a1f765eabd135b4e95b1c4d6b278a4556f8f27fe","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.0.tgz","fileCount":77,"integrity":"sha512-rNbYREFAENA1C39EPPSXwDO3AKv96nm7B9RCJKb99Ru9qHmgWJiCGxRcIsfZxyflPw87aBZtfT/XUohZ6OJg7Q==","signatures":[{"sig":"MEQCIAnANNMxmhq0MpE3ML26vJblZcFezMonmB5kaNOVrb6FAiAQzddEp9S1dkoDYbvljeaZKdJVcfR0KHY0a4GtpUetlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1284590},"main":"./src/index.ts","type":"module","_from":"file:C:/Users/ETPau/AppData/Local/Temp/omp-pack-7sejOj/linxiraos-pi-tui-1.0.0.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"bohuyeshan","email":"bohuyeshan@163.com"},"_resolved":"C:\\Users\\ETPau\\AppData\\Local\\Temp\\omp-pack-7sejOj\\linxiraos-pi-tui-1.0.0.tgz","_integrity":"sha512-rNbYREFAENA1C39EPPSXwDO3AKv96nm7B9RCJKb99Ru9qHmgWJiCGxRcIsfZxyflPw87aBZtfT/XUohZ6OJg7Q==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"12.0.1","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@linxiraos/pi-utils":"1.0.0","@linxiraos/pi-natives":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.0_1786433350858_0.6460180842137837","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@linxiraos/pi-tui","version":"1.0.1","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.1","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"09ffea00857aa4dece4c34de46daad15ccbdc9b8","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.1.tgz","fileCount":77,"integrity":"sha512-zwsUoCgYFaN+mkjHD/fi0/Cgm7aIW0aDGpqT90Z+ZuGAJgy0ANdZsruOgqZeYP1VXVN9Q/q+ONG0ClGSG+jg9w==","signatures":[{"sig":"MEUCIGbi+Lv3Az27ZUHP/xDSAfWAXjyG2GNeys3aP6RIsAsAAiEA6hi5ps0SCcyl+RukHoTNMrA0iYOW1tCkcXp5H65MlP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1284641},"main":"./src/index.ts","type":"module","_from":"file:C:/Users/ETPau/AppData/Local/Temp/omp-pack-FIBO02/linxiraos-pi-tui-1.0.1.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"bohuyeshan","email":"bohuyeshan@163.com"},"_resolved":"C:\\Users\\ETPau\\AppData\\Local\\Temp\\omp-pack-FIBO02\\linxiraos-pi-tui-1.0.1.tgz","_integrity":"sha512-zwsUoCgYFaN+mkjHD/fi0/Cgm7aIW0aDGpqT90Z+ZuGAJgy0ANdZsruOgqZeYP1VXVN9Q/q+ONG0ClGSG+jg9w==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"12.0.1","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@linxiraos/pi-utils":"1.0.1","@linxiraos/pi-natives":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.1_1786810104762_0.7640852752373544","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@linxiraos/pi-tui","version":"1.0.2","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.2","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"ecf87a4777d796095bbe42557ffed82efbea58ef","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.2.tgz","fileCount":40,"integrity":"sha512-3r6uueGgIZ04+DDBUOtTkWM192RQdAHcnuhIRZWeKfwc5nydX3n2IMul/lGspJhP2hZsrfhNr9ZVjU8GjBnRaQ==","signatures":[{"sig":"MEUCIB6WzQD+JCwfDwLwIHw2ZEIA6JdRgWtwVwJLUEsvN3c+AiEA5SAyac7mcTiunLdueG7KHv2VAemRzhKvm0krN1eOvpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1212774},"main":"./src/index.ts","type":"module","_from":"file:packages/tui/linxiraos-pi-tui-1.0.2.tgz","types":"./src/index.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./src/components/*.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"bohuyeshan","email":"bohuyeshan@163.com"},"_resolved":"C:\\Users\\ETPau\\Documents\\GITHUB\\zeta\\packages\\tui\\linxiraos-pi-tui-1.0.2.tgz","_integrity":"sha512-3r6uueGgIZ04+DDBUOtTkWM192RQdAHcnuhIRZWeKfwc5nydX3n2IMul/lGspJhP2hZsrfhNr9ZVjU8GjBnRaQ==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"12.0.1","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@linxiraos/pi-utils":"catalog:","@linxiraos/pi-natives":"catalog:"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"catalog:"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.2_1786856857352_0.10444510084945335","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@linxiraos/pi-tui","version":"1.0.3","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.3","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"29329923f7f8a89ffdd99cbec20223ef6ba211bb","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.3.tgz","fileCount":40,"integrity":"sha512-eBzxC0Ko5jbKtdv80C1CPY3hb7mMcfyq1gk8HHMl5jDRw17eELuqvP7/rGqKm4ZErHA8GWuzAxSGFFJz5TxevQ==","signatures":[{"sig":"MEUCICE8vYXsm899C9qsTU7H0Lp3KUrcL2g+IpN55IPnWTFpAiEAqp4op2LzVDqkACMq4EhS5f1l7ZXizVrYsRqkgGFLPqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1212835},"main":"./src/index.ts","type":"module","_from":"file:packages/tui/linxiraos-pi-tui-1.0.3.tgz","types":"./src/index.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./src/components/*.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"bohuyeshan","email":"bohuyeshan@163.com"},"_resolved":"C:\\Users\\ETPau\\Documents\\GITHUB\\zeta\\packages\\tui\\linxiraos-pi-tui-1.0.3.tgz","_integrity":"sha512-eBzxC0Ko5jbKtdv80C1CPY3hb7mMcfyq1gk8HHMl5jDRw17eELuqvP7/rGqKm4ZErHA8GWuzAxSGFFJz5TxevQ==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"12.0.1","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@linxiraos/pi-utils":"1.0.3","@linxiraos/pi-natives":"1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.3_1786859830879_0.9107548039587146","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@linxiraos/pi-tui","version":"1.0.4","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.4","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"365cb90c192a318652809c96cbff2854c3b8efdc","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.4.tgz","fileCount":40,"integrity":"sha512-l1fyfxmzv8D1iFvUaP8Rv7zGcFlY/FW/eqFEeIsnKRLUGoogdfCWCb399s0oAu/y1ujYL7/vWTN97PKRUrPJmg==","signatures":[{"sig":"MEUCIGLoCxAnLbp2p5fDFuHKgyLrdpPrTMwDkP19jpaZfZmDAiEAkIpRAvMpr/cH55Gu4bIdxGNDRRt6AyyQcIob4AkPj0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1212835},"main":"./src/index.ts","type":"module","_from":"file:packages/tui/linxiraos-pi-tui-1.0.4.tgz","types":"./src/index.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./src/components/*.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"bohuyeshan","email":"bohuyeshan@163.com"},"_resolved":"C:\\Users\\ETPau\\Documents\\GITHUB\\zeta\\packages\\tui\\linxiraos-pi-tui-1.0.4.tgz","_integrity":"sha512-l1fyfxmzv8D1iFvUaP8Rv7zGcFlY/FW/eqFEeIsnKRLUGoogdfCWCb399s0oAu/y1ujYL7/vWTN97PKRUrPJmg==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"12.0.1","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@linxiraos/pi-utils":"1.0.4","@linxiraos/pi-natives":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.4_1786862348270_0.9869997273517261","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@linxiraos/pi-tui","version":"1.0.5","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.5","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"094f1b84b46316b02069d3e1f49788550e6af7c1","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.5.tgz","fileCount":77,"integrity":"sha512-Z5d5XHRa9Jhh94mv4cepxE/86iyawX1mnaxZIcbDhu72zMUxUzc0P0vm4kao3s5zy4H3bw0sKHaUyn67fK7Ylg==","signatures":[{"sig":"MEUCIQCS9507hlkSqVHsGl8fjgckAnDYWdymyVMCZ/4x/NlLUQIgUpHlJxQ5KXlDRoulZrn+Rg62A9d1BOZZ/YVDXJ7tgn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1361328},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-0EVQLF/linxiraos-pi-tui-1.0.5.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-0EVQLF/linxiraos-pi-tui-1.0.5.tgz","_integrity":"sha512-Z5d5XHRa9Jhh94mv4cepxE/86iyawX1mnaxZIcbDhu72zMUxUzc0P0vm4kao3s5zy4H3bw0sKHaUyn67fK7Ylg==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@linxiraos/pi-utils":"1.0.5","@linxiraos/pi-natives":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.5_1786909586213_0.17986475581849604","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@linxiraos/pi-tui","version":"1.0.6","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.6","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"797a8dfc2473355810f32db6c0c4212ee3ac55da","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.6.tgz","fileCount":77,"integrity":"sha512-2e/l5nW4zyyZtPaTVl8TXRWV8aDq6ONqE54QRjfBo36fT+hrQKV/v2we64kVgawcqU2ZPRFv9yE0JYpstix3Jw==","signatures":[{"sig":"MEQCIElCE5VBAnJCw+qMgXaWUDlBk8hWCryafSVp8q0GoCwwAiARxf7pkwVuYYuvn/epBUKWuDioYX6M5OZbRwsfFw8Ruw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1366196},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-yqRSv3/linxiraos-pi-tui-1.0.6.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-yqRSv3/linxiraos-pi-tui-1.0.6.tgz","_integrity":"sha512-2e/l5nW4zyyZtPaTVl8TXRWV8aDq6ONqE54QRjfBo36fT+hrQKV/v2we64kVgawcqU2ZPRFv9yE0JYpstix3Jw==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@linxiraos/pi-utils":"1.0.6","@linxiraos/pi-natives":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.6_1787009608134_0.8261410455815075","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@linxiraos/pi-tui","version":"1.0.7","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.7","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"e5f3b879b43e3a84125bbff8298ead1e91bf535a","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.7.tgz","fileCount":77,"integrity":"sha512-AESC8YDMPpUr7PJ7NsRlWQ9GjtEa55cUUn6CvE1eJeqBgc7dRnNL86pcKAsz95bM7Rdx9wnsDix4VO5rg1xUuA==","signatures":[{"sig":"MEYCIQCyL9eJsu069SAi1qECwl2+o4/uFxc1K3TN/G/bMN81kwIhAIvDZ1nZahL6wSFw1WUUyGNOOVHeWpb0Ts0U6691AUg5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1366196},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-d2LgD7/linxiraos-pi-tui-1.0.7.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-d2LgD7/linxiraos-pi-tui-1.0.7.tgz","_integrity":"sha512-AESC8YDMPpUr7PJ7NsRlWQ9GjtEa55cUUn6CvE1eJeqBgc7dRnNL86pcKAsz95bM7Rdx9wnsDix4VO5rg1xUuA==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@linxiraos/pi-utils":"1.0.7","@linxiraos/pi-natives":"1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.7_1787030843248_0.8226573722678825","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@linxiraos/pi-tui","version":"1.0.8","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.8","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"e48eff069ffedbec56a2bdc3fa8db170f136df88","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.8.tgz","fileCount":77,"integrity":"sha512-Ct31LZP+Pie5fFd2mVZlbBSMxNRHP5k8AdRUykIHOiAOnT7ItcR+M7HGrRMm1BtNqhR7R8XA0WnaWwp6K80Igg==","signatures":[{"sig":"MEUCIQC021Lz/iunhpIOSH6MBDSRZFqME5b+2thL74OiN71IUwIgbhTbtNO1CUvtCZ692WbWbMmzhSinv6wIq2hXsxL0+MA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1366196},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-uyjSdc/linxiraos-pi-tui-1.0.8.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-uyjSdc/linxiraos-pi-tui-1.0.8.tgz","_integrity":"sha512-Ct31LZP+Pie5fFd2mVZlbBSMxNRHP5k8AdRUykIHOiAOnT7ItcR+M7HGrRMm1BtNqhR7R8XA0WnaWwp6K80Igg==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@linxiraos/pi-utils":"1.0.8","@linxiraos/pi-natives":"1.0.8"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.8_1787043193616_0.45821795516695984","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@linxiraos/pi-tui","version":"1.0.9","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.9","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"e6f092a753f8930f910bcc4810991718822e1fbf","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.9.tgz","fileCount":77,"integrity":"sha512-Gs1SCuGrAvQeFJcTp7J8Z47of8Y2hQ7adiLWIvX6B3yxBRVZer0N9O1kpJXdw5xPfZUCj8z9qWPWsGEbeap0Kw==","signatures":[{"sig":"MEUCIQDhV8Gpm+uogPOIax6VBhXphJMNWZKOEirAsTWKh3yMIgIgWT9c2B4ZN5DivGa/uScYE/t+I8eAV/QtzSmGvCpWdtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1366196},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-7VQQGu/linxiraos-pi-tui-1.0.9.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-7VQQGu/linxiraos-pi-tui-1.0.9.tgz","_integrity":"sha512-Gs1SCuGrAvQeFJcTp7J8Z47of8Y2hQ7adiLWIvX6B3yxBRVZer0N9O1kpJXdw5xPfZUCj8z9qWPWsGEbeap0Kw==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@linxiraos/pi-utils":"1.0.9","@linxiraos/pi-natives":"1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.9_1787133486428_0.30194700598194224","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@linxiraos/pi-tui","version":"1.0.10","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Can Boluk"},"license":"MIT","_id":"@linxiraos/pi-tui@1.0.10","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"4a2e2c026fac62b7e14a075c3ffddccfda09913c","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.0.10.tgz","fileCount":77,"integrity":"sha512-HXt8kyDACu1Wc6WSL/aCugXCFHv3cReE8dcfLgzuhowhPThwx87iG4XbpoS5JsH97ByyxyWVPVjeQcO22NEXBw==","signatures":[{"sig":"MEYCIQC+Z+Dmilae2PNS0mIENXUNGMG8iDhmheHaNc8Rh44r9AIhAOfBVGDrDP45IGqg7omizVhwOcuvm1CxL7E0yePq0+qn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1368448},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-1MA2Mx/linxiraos-pi-tui-1.0.10.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-1MA2Mx/linxiraos-pi-tui-1.0.10.tgz","_integrity":"sha512-HXt8kyDACu1Wc6WSL/aCugXCFHv3cReE8dcfLgzuhowhPThwx87iG4XbpoS5JsH97ByyxyWVPVjeQcO22NEXBw==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@linxiraos/pi-utils":"1.0.10","@linxiraos/pi-natives":"1.0.10"},"_hasShrinkwrap":false,"devDependencies":{"ghostty-web":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.0.10_1787192552613_0.5360781670692645","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@linxiraos/pi-tui","version":"1.1.0","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.0","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://omp.sh","bugs":{"url":"https://github.com/can1357/oh-my-pi/issues"},"dist":{"shasum":"2e6d0c84606eb9f07e2c05ee1bbc77f51c8a0b60","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.0.tgz","fileCount":51,"integrity":"sha512-vuR3JMG6mlisZSfGT6lZzxfnwB4fweWztHOcAhOHGcJm6cnl39Q0225jhNu9VQS+CtfvfbJGrSmlY3jjr5kotg==","signatures":[{"sig":"MEQCIDvahM582ZtASvC5Lstq4dcfDf5bRy7PO/+UzwRHbqQZAiAUfN06J9UUoawm7UsBjBpHwHxrgvTo6BXJqIjCPaq/Vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":955988},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./src/components/*.ts","import":"./src/components/*.ts"}},"gitHead":"305c605a00ad07d74539cbc1fb62dc1d3879d932","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"bohuyeshan","email":"bohuyeshan@163.com"},"repository":{"url":"git+https://github.com/can1357/oh-my-pi.git","type":"git","directory":"packages/tui"},"_npmVersion":"12.0.1","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@linxiraos/pi-utils":"catalog:","@linxiraos/pi-natives":"catalog:"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"catalog:"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.0_1787651056547_0.9179449272206694","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@linxiraos/pi-tui","version":"1.1.1","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.1","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"a6a0acd6249cbd05c8dd3457d908731089a4a404","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.1.tgz","fileCount":99,"integrity":"sha512-Ja11AIPHkbIK36loayryXIAblfEcsfiaVPEWiwBCFQfMLrTQ178W08KaRx4O4t2TBGqmmFAXDgK12PrDjUUTYQ==","signatures":[{"sig":"MEUCIGJRdmd7LV2IRj53Uwun52L9LFK1pW63Rqidft+CmV00AiEAvZSWrlYRzFX0i4dwwFFiO3shsP0bYml/kkZ7zsj3DXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2187380},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-24ZQRh/linxiraos-pi-tui-1.1.1.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-24ZQRh/linxiraos-pi-tui-1.1.1.tgz","_integrity":"sha512-Ja11AIPHkbIK36loayryXIAblfEcsfiaVPEWiwBCFQfMLrTQ178W08KaRx4O4t2TBGqmmFAXDgK12PrDjUUTYQ==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.1","@linxiraos/pi-natives":"1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.1_1787661619664_0.5322468844945614","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@linxiraos/pi-tui","version":"1.1.2","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.2","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"83798d73585d0d30d5c44a799ebc4fd162d9ccc5","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.2.tgz","fileCount":99,"integrity":"sha512-oEh6HZP2wXV1+ww9owXAFsXy+UQSFu5eG1n4SC8IeYzeULjWbiNM7eRrCh++ilo026RXpFdJ+i20Je5guTfstw==","signatures":[{"sig":"MEUCIE+/5ooufVeTNMw2hDHC+921LDOwcu/zV/vnz6YSQgXHAiEA83wTuJc44v3hEP32JJvqYiNBYCG8XkNSgOyfOgl413g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2187499},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-cTYeXo/linxiraos-pi-tui-1.1.2.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-cTYeXo/linxiraos-pi-tui-1.1.2.tgz","_integrity":"sha512-oEh6HZP2wXV1+ww9owXAFsXy+UQSFu5eG1n4SC8IeYzeULjWbiNM7eRrCh++ilo026RXpFdJ+i20Je5guTfstw==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.2","@linxiraos/pi-natives":"1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.2_1787680386517_0.9496486222042999","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@linxiraos/pi-tui","version":"1.1.3","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.3","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"ccb0f2c62644a9ead67f093cfaf17c2adae86b01","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.3.tgz","fileCount":99,"integrity":"sha512-ff9zmr+1ZdJWU1kFio1FF11qXazTxv6PSWrtvoU3i3tsh1UX5ILEXMgcsy8TlLOMFeID/DgnhPqOTn0dwrQ71w==","signatures":[{"sig":"MEQCIGOqY2QAWzQRxzWFqLRm+0OZyLtM1fZkDFZenf/3LDbqAiAxDLd/MWXIhMPBik+U4ip7O8gmJW9MVPENNgbu6d3ndQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2187641},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-gzp6XF/linxiraos-pi-tui-1.1.3.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-gzp6XF/linxiraos-pi-tui-1.1.3.tgz","_integrity":"sha512-ff9zmr+1ZdJWU1kFio1FF11qXazTxv6PSWrtvoU3i3tsh1UX5ILEXMgcsy8TlLOMFeID/DgnhPqOTn0dwrQ71w==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.3","@linxiraos/pi-natives":"1.1.3"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.3_1787692361343_0.5906831005157438","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@linxiraos/pi-tui","version":"1.1.4","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.4","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"463d1caf1c422f9d9949b03a5774d78ded7a2ff4","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.4.tgz","fileCount":99,"integrity":"sha512-bsi33WlZeAUyrvnwzOplvgWrUIIya05X+QVc5KGGKswh3O8Lz9LxjI0Xuq766fdThfmpeKZM91kIZfXFkIQdGA==","signatures":[{"sig":"MEQCIBDz7XQiCNpWuTWt3Brxcf+msOLXYCluP55Zq/6+fMFyAiBZpg3slPC9PAWe7lNETIk6x8PzOU3tIhw8bH/dwhpkCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2187739},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-rtKIu1/linxiraos-pi-tui-1.1.4.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-rtKIu1/linxiraos-pi-tui-1.1.4.tgz","_integrity":"sha512-bsi33WlZeAUyrvnwzOplvgWrUIIya05X+QVc5KGGKswh3O8Lz9LxjI0Xuq766fdThfmpeKZM91kIZfXFkIQdGA==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.4","@linxiraos/pi-natives":"1.1.4"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.4_1787730404566_0.27509147515269716","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@linxiraos/pi-tui","version":"1.1.5","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.5","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"f31c0784f0803d5f0eae6178f543e45f34e8bcfb","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.5.tgz","fileCount":99,"integrity":"sha512-KHVySbG+9ZEn4HzhbqnQ5SzhYSLH+14jymaW+J5PhohjIDMTUMNkcHOgD6MxHG1biIXBGSv6upongW5mSXHzXw==","signatures":[{"sig":"MEYCIQDxUsSvCUXuw/3SuWb3CmFYawTeBIvZNObR2eTJJ9zK/wIhAOCUbWFF/GfY/mjWwnweoubpoJSvxXJZpd0LUC8u7ekf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2223019},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-ohnBQl/linxiraos-pi-tui-1.1.5.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-ohnBQl/linxiraos-pi-tui-1.1.5.tgz","_integrity":"sha512-KHVySbG+9ZEn4HzhbqnQ5SzhYSLH+14jymaW+J5PhohjIDMTUMNkcHOgD6MxHG1biIXBGSv6upongW5mSXHzXw==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.5","@linxiraos/pi-natives":"1.1.5"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.5_1787752584018_0.6863887517312628","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@linxiraos/pi-tui","version":"1.1.6","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.6","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"001e8b7511d02fbfb7604afd1f0e611c16cb48b1","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.6.tgz","fileCount":103,"integrity":"sha512-YGZtX58J4Sw2PpMSpqouwQ47ASsv1GKp0kYMoMHRMvOo62HMT6SWweHLxEbRSsF5byGMwwP9hw7NStCpIirJVg==","signatures":[{"sig":"MEUCICO/uIsCNXCuLpGNmokiCekep3DiW9gywBNBEsLiihnsAiEAhol97alOIzV//rw1f54RMMCBOZD6KZT/NhoMtXlWexk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2267153},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-DoWTYX/linxiraos-pi-tui-1.1.6.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-DoWTYX/linxiraos-pi-tui-1.1.6.tgz","_integrity":"sha512-YGZtX58J4Sw2PpMSpqouwQ47ASsv1GKp0kYMoMHRMvOo62HMT6SWweHLxEbRSsF5byGMwwP9hw7NStCpIirJVg==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.6","@linxiraos/pi-natives":"1.1.6"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.6_1788065076779_0.37113222746943286","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@linxiraos/pi-tui","version":"1.1.7","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.7","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"944f036fe0687abbc0ed5870a2315d433799921d","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.7.tgz","fileCount":103,"integrity":"sha512-ZfOpRiCXz68ktFwHxnBu/rfDEXqWEEuqfl13GNGt4v8XyR0l3oDdLgTtTxs0DQDA50C2ItxDsZxkUbZnAd5RHw==","signatures":[{"sig":"MEQCIE5H0VD24wYCL1srTBg8Digj2uYLJR2oqzMvJWGxh20vAiAaVNJgfFTsVMcIjYZrAm9kJbEg1cv5vCgBOYiRFdn6Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2270074},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-irwOd7/linxiraos-pi-tui-1.1.7.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-irwOd7/linxiraos-pi-tui-1.1.7.tgz","_integrity":"sha512-ZfOpRiCXz68ktFwHxnBu/rfDEXqWEEuqfl13GNGt4v8XyR0l3oDdLgTtTxs0DQDA50C2ItxDsZxkUbZnAd5RHw==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.7","@linxiraos/pi-natives":"1.1.7"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.7_1788272868213_0.8484859285717747","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@linxiraos/pi-tui","version":"1.1.8","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.8","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"6e794c48f4c5b28c0eab817655bf6fadb54e36a6","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.8.tgz","fileCount":105,"integrity":"sha512-k1M/QPZfkUnCd8gf2lrMPQ6bzGwSolXVmVvDYeehnFVsnxinCOnLInSqmoHK3qNprHtXV8bx9umQJXsklC5VUw==","signatures":[{"sig":"MEUCIQDZl3JavlLBZaT6g4K+8QeKXIofxdBQBQja5pZ6m2aVkAIgDVByMwPc+T6Jf4GKuaW3SLc4uLPunj5b6F2zg1O8uGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2287858},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-zZctip/linxiraos-pi-tui-1.1.8.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test --parallel test/*.test.ts","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-zZctip/linxiraos-pi-tui-1.1.8.tgz","_integrity":"sha512-k1M/QPZfkUnCd8gf2lrMPQ6bzGwSolXVmVvDYeehnFVsnxinCOnLInSqmoHK3qNprHtXV8bx9umQJXsklC5VUw==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.8","@linxiraos/pi-natives":"1.1.8"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.8_1788519675404_0.53372665151508","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@linxiraos/pi-tui","version":"1.1.9","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.9","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"0df69da05573526f8035c0c5d71e84627adca022","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.9.tgz","fileCount":54,"integrity":"sha512-t/OyEJvwTc2BHAcwoIRcKvo/OUvsYFreKNVe6PoX2SPEUizLgQq+YLoffCzOpSc+uq/ZqGYad4a8+1p2hX6tBw==","signatures":[{"sig":"MEUCIFxGlHFU380B/YD0xV6kDzhLD3gcWNcn+xMZ2517NhuQAiEAvI7oFiFZyEwaEXz2LKaXKt/WoPQrmU9bLWn+CABTA+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1049193},"main":"./src/index.ts","type":"module","types":"./src/index.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./src/components/*.ts","import":"./src/components/*.ts"}},"gitHead":"f0cb18ea06e7d6799226bd9e9093772b99b35acc","scripts":{"test":"bun test --parallel test/*.test.ts","check":"tsgo -p tsconfig.json --noEmit","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"bohuyeshan","email":"bohuyeshan@163.com"},"repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"12.0.1","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@linxiraos/pi-utils":"1.1.9","@linxiraos/pi-natives":"1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.9_1788663034299_0.3683066759563256","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@linxiraos/pi-tui","version":"1.1.10","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.10","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"69d66f5f237d8601cd8db66adfb015977508011d","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.10.tgz","fileCount":105,"integrity":"sha512-HmUEZ34A7woYc4efp3agr1CWW28E0RYCf/Klza+Nk9cv012rwe+OTFMIFUlDxfPvduX/9L626jkqB4LjxIHKig==","signatures":[{"sig":"MEQCIH2bHOPlz1QYu9UfmULBOXKjQzw1bSHu2IseNDIWB6gtAiBYEup/9ASpwztlU3oFo+axHZ2VXmAJEgvB7RnDdP0zdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2293149},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-qEhYSv/linxiraos-pi-tui-1.1.10.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"test":"bun test --parallel test/*.test.ts","check":"tsgo -p tsconfig.json --noEmit","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-qEhYSv/linxiraos-pi-tui-1.1.10.tgz","_integrity":"sha512-HmUEZ34A7woYc4efp3agr1CWW28E0RYCf/Klza+Nk9cv012rwe+OTFMIFUlDxfPvduX/9L626jkqB4LjxIHKig==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.10","@linxiraos/pi-natives":"1.1.10"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.10_1788774296050_0.9980031849703939","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@linxiraos/pi-tui","version":"1.1.11","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.11","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"ef439fa8388d0da5786b0f2d3a307dc13323524c","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.11.tgz","fileCount":105,"integrity":"sha512-UloTrx1K9jdutN+73D5CdRosCgjIoIYJqihrSoN2fj2kWAenzHyyZTECbhWULvrn96UPJoEYCk+mD0ApLyT7kA==","signatures":[{"sig":"MEUCIQDEpcLFPlUZB0Q8paXiKmk5278mj1uuKun2TvisXV2r2QIgYQYTavOtrty1qSaZvmLCelX6CYwWQ68HnqP/OprtuW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2298458},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-GT5IKk/linxiraos-pi-tui-1.1.11.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"test":"bun test --parallel test/*.test.ts","check":"tsgo -p tsconfig.json --noEmit","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-GT5IKk/linxiraos-pi-tui-1.1.11.tgz","_integrity":"sha512-UloTrx1K9jdutN+73D5CdRosCgjIoIYJqihrSoN2fj2kWAenzHyyZTECbhWULvrn96UPJoEYCk+mD0ApLyT7kA==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.11","@linxiraos/pi-natives":"1.1.11"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.11_1788941119027_0.6500505433722727","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"@linxiraos/pi-tui","version":"1.1.12","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.12","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"8aea173de21750e9098dd18aed9c66628ed1d860","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.12.tgz","fileCount":105,"integrity":"sha512-XXTlg+LH2UWYaObiHmGpbayhlkNjixOTmEUn1YtcN5I1g8F/7MXGWn/3yNA133H3A4foTkvPM/G4Qo3xx0wNYg==","signatures":[{"sig":"MEUCIGNkiQia9aZQHK4CMi7233GbchDAeNorkcnt2Q3aMYydAiEAtvwJJcKbBXAniSeDCozA+6f+87pLISvoRING+uS5x1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2298682},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-WLrYBU/linxiraos-pi-tui-1.1.12.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"test":"bun test --parallel test/*.test.ts","check":"tsgo -p tsconfig.json --noEmit","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-WLrYBU/linxiraos-pi-tui-1.1.12.tgz","_integrity":"sha512-XXTlg+LH2UWYaObiHmGpbayhlkNjixOTmEUn1YtcN5I1g8F/7MXGWn/3yNA133H3A4foTkvPM/G4Qo3xx0wNYg==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.12","@linxiraos/pi-natives":"1.1.12"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.12_1789029294401_0.05972023823724837","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"@linxiraos/pi-tui","version":"1.1.13","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.13","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"e85acd6f457a8d459a45f763de655036201e0c01","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.13.tgz","fileCount":105,"integrity":"sha512-BpfTqD88YdmaykbVqXTJa5SinJs8Tvu5GUql8AZpNBLHEblcuAOXYqB+1BKYGzlsjkCKLidh4eO47kZSW37W8g==","signatures":[{"sig":"MEYCIQCeKnyavWLmxQYb1viYLWIxU8UX1uET1mfAXizStGyc3QIhAKonluJU4nWczNQn7JuIne25PbquPyvjQl0cj7B6OHEQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2308070},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-8eNxUw/linxiraos-pi-tui-1.1.13.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-8eNxUw/linxiraos-pi-tui-1.1.13.tgz","_integrity":"sha512-BpfTqD88YdmaykbVqXTJa5SinJs8Tvu5GUql8AZpNBLHEblcuAOXYqB+1BKYGzlsjkCKLidh4eO47kZSW37W8g==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.13","@linxiraos/pi-natives":"1.1.13"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.13_1789140602798_0.1196551863532096","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"@linxiraos/pi-tui","version":"1.1.14","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.14","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"3ae83f2aab88be563e89302aafbd848dcca7dbf9","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.14.tgz","fileCount":105,"integrity":"sha512-3fjslGBvaP2PJ2Ky2joq8XKm+8vZKLPelJvljvh0iHZIt5Kqn2vJ2FyJerXyX9r3E3eGiCQSQVCQEr+N2pQwgQ==","signatures":[{"sig":"MEUCIE6f1Uw9fJh4NePf0u1TSr8R/nmJNF2TtS4lXT8Sp6zDAiEA1m5GV2eFCpDw7AfJ5qIzY8IqftNbXslwztE7FTgc7/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2308240},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-YRIVqq/linxiraos-pi-tui-1.1.14.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-YRIVqq/linxiraos-pi-tui-1.1.14.tgz","_integrity":"sha512-3fjslGBvaP2PJ2Ky2joq8XKm+8vZKLPelJvljvh0iHZIt5Kqn2vJ2FyJerXyX9r3E3eGiCQSQVCQEr+N2pQwgQ==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.14","@linxiraos/pi-natives":"1.1.14"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.14_1789224951700_0.5305759389569817","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"@linxiraos/pi-tui","version":"1.1.15","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.15","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"18fbb90d1c9378988db0ca18f9415fb157a0ff67","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.15.tgz","fileCount":107,"integrity":"sha512-ae13Z83w75QQDhbDqfY6ikWd0pN2WwJLqCNL0Aq0N0B38m7GxLhtDathS08qTXhTXNPksy/6IVk4Snom8YOWPQ==","signatures":[{"sig":"MEUCIBspxzACeJ8Y+95HHFFnSJ21PhBfhzSdQ1/At+JUGcs7AiEA44e0dmOqhuUJBbA8zr4Ob6kuwR6lOsIWaraMCGeNqzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2363902},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-x3bw5b/linxiraos-pi-tui-1.1.15.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"}},"scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-x3bw5b/linxiraos-pi-tui-1.1.15.tgz","_integrity":"sha512-ae13Z83w75QQDhbDqfY6ikWd0pN2WwJLqCNL0Aq0N0B38m7GxLhtDathS08qTXhTXNPksy/6IVk4Snom8YOWPQ==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-utils":"1.1.15","@linxiraos/pi-natives":"1.1.15"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.15_1789563476711_0.3135010607179354","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"@linxiraos/pi-tui","version":"1.1.16","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.16","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"5298df56de24fa84d1b8b63aaab0ad57046a06f8","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.16.tgz","fileCount":832,"integrity":"sha512-GRUPXuGpeCSY6oyYltZwJfR87hstu9dTXtw4XAOoiMzSY9UP7SnO+q0CpV8xs+Q5E4mT10pBqDV7qNLNWndhmg==","signatures":[{"sig":"MEUCIBCrOStTva67ZoyhADk9kdgsJkpafJOa/FCfacjHke2mAiEA2LgS24CuPb8WXD4IFYaePIwX2murrZILWM9iNgMJyjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDUJ/S1lNS6eEnvlqp1dCy+W3zMpQaH7Iqhz4lZWRkIaAiA3aymzfPDGcIr4tUWmoPglvqqYCBTVwXVe/NxDuofWoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7253656},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-7gx4Vu/linxiraos-pi-tui-1.1.16.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./theme":{"types":"./dist/types/theme/index.d.ts","import":"./src/theme/index.ts"},"./tools":{"types":"./dist/types/tools/index.d.ts","import":"./src/tools/index.ts"},"./chrome":{"types":"./dist/types/chrome/index.d.ts","import":"./src/chrome/index.ts"},"./render":{"types":"./dist/types/render/index.d.ts","import":"./src/render/index.ts"},"./theme/*":{"types":"./dist/types/theme/*.d.ts","import":"./src/theme/*.ts"},"./status-line":{"types":"./dist/types/status-line/index.d.ts","import":"./src/status-line/index.ts"},"./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"},"./theme/defaults":{"types":"./dist/types/theme/defaults/index.d.ts","import":"./src/theme/defaults/index.ts"}},"scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-7gx4Vu/linxiraos-pi-tui-1.1.16.tgz","_integrity":"sha512-GRUPXuGpeCSY6oyYltZwJfR87hstu9dTXtw4XAOoiMzSY9UP7SnO+q0CpV8xs+Q5E4mT10pBqDV7qNLNWndhmg==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-ai":"1.1.16","@linxiraos/pi-wire":"1.1.16","@linxiraos/pi-utils":"1.1.16","@linxiraos/pi-catalog":"1.1.16","@linxiraos/pi-natives":"1.1.16","@linxiraos/pi-omptype":"1.1.16","@linxiraos/pi-agent-core":"1.1.16","@linxiraos/pi-snapcompact":"1.1.16"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.16_1789924057676_0.5760643008859037","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"@linxiraos/pi-tui","version":"1.1.17","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Stencil Labs, Inc."},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.17","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"eced3cbfd0b59cd1b78eba031099d751a4132501","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.17.tgz","fileCount":832,"integrity":"sha512-03yajG6y5pp/8dmVXeuEd0/c7CuuDgxC9cNvcJ4QG55mPAOKcO1q8tYaGFEtZ7JrDUqwvbzRKANDx9eDxLWTXA==","signatures":[{"sig":"MEYCIQDyKLQlrjeZnW6aHKdM3nIB3py+RLIoYJamZjXcaPAfWAIhAKV3S0BXp9qrXYEl+y3T63sdz7GOafgJVGFcPJV25hCO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICBvM/L28PklOYud6aDzE0YBgaBU2QRvdoaTp3A/4fPRAiAY2fAA7YBYdrc9ZJramEpFFKslimE134Re3ScASOk/1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7257349},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-3IBgJ3/linxiraos-pi-tui-1.1.17.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./theme":{"types":"./dist/types/theme/index.d.ts","import":"./src/theme/index.ts"},"./tools":{"types":"./dist/types/tools/index.d.ts","import":"./src/tools/index.ts"},"./chrome":{"types":"./dist/types/chrome/index.d.ts","import":"./src/chrome/index.ts"},"./render":{"types":"./dist/types/render/index.d.ts","import":"./src/render/index.ts"},"./theme/*":{"types":"./dist/types/theme/*.d.ts","import":"./src/theme/*.ts"},"./status-line":{"types":"./dist/types/status-line/index.d.ts","import":"./src/status-line/index.ts"},"./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"},"./theme/defaults":{"types":"./dist/types/theme/defaults/index.d.ts","import":"./src/theme/defaults/index.ts"}},"scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-3IBgJ3/linxiraos-pi-tui-1.1.17.tgz","_integrity":"sha512-03yajG6y5pp/8dmVXeuEd0/c7CuuDgxC9cNvcJ4QG55mPAOKcO1q8tYaGFEtZ7JrDUqwvbzRKANDx9eDxLWTXA==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-ai":"1.1.17","@linxiraos/pi-wire":"1.1.17","@linxiraos/pi-utils":"1.1.17","@linxiraos/pi-catalog":"1.1.17","@linxiraos/pi-natives":"1.1.17","@linxiraos/pi-omptype":"1.1.17","@linxiraos/pi-agent-core":"1.1.17","@linxiraos/pi-snapcompact":"1.1.17"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.17_1789995727156_0.6978018527795642","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"@linxiraos/pi-tui","version":"1.1.18","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Linxira-OS"},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.18","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"c1e606de80c51e953a3233f51bf19c48766c7553","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.18.tgz","fileCount":834,"integrity":"sha512-Ob3Dw6SsWISLvDw8SVn2MBbi28+l/bSEJnfKLVaIrEGUGVf+mQgbYZx4INttUFDzRFdivUKDaNSzuCTKTHfJ9A==","signatures":[{"sig":"MEQCIC5/gDUlz/O+cE8yogM6x7OvSSgfxXX3uqDu1gWxdk/hAiB/Bcyu82UIdvkqwnHl09Fw7o0Out2GvqyQwWbAbob/Pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCM2EYbfhlgtfMLZmCmHVp1imNQSneuO5UlWO3/g1W9zAIhALpZHfgWntHuVU6J0woSKORbqw73ywiOkFtIHWzO+Zj1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7326565},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-zD99v5/linxiraos-pi-tui-1.1.18.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./theme":{"types":"./dist/types/theme/index.d.ts","import":"./src/theme/index.ts"},"./tools":{"types":"./dist/types/tools/index.d.ts","import":"./src/tools/index.ts"},"./chrome":{"types":"./dist/types/chrome/index.d.ts","import":"./src/chrome/index.ts"},"./render":{"types":"./dist/types/render/index.d.ts","import":"./src/render/index.ts"},"./theme/*":{"types":"./dist/types/theme/*.d.ts","import":"./src/theme/*.ts"},"./status-line":{"types":"./dist/types/status-line/index.d.ts","import":"./src/status-line/index.ts"},"./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"},"./theme/defaults":{"types":"./dist/types/theme/defaults/index.d.ts","import":"./src/theme/defaults/index.ts"}},"scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-zD99v5/linxiraos-pi-tui-1.1.18.tgz","_integrity":"sha512-Ob3Dw6SsWISLvDw8SVn2MBbi28+l/bSEJnfKLVaIrEGUGVf+mQgbYZx4INttUFDzRFdivUKDaNSzuCTKTHfJ9A==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-ai":"1.1.18","@linxiraos/pi-wire":"1.1.18","@linxiraos/pi-utils":"1.1.18","@linxiraos/pi-catalog":"1.1.18","@linxiraos/pi-natives":"1.1.18","@linxiraos/pi-omptype":"1.1.18","@linxiraos/pi-agent-core":"1.1.18","@linxiraos/pi-snapcompact":"1.1.18"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.18_1790088218105_0.11492726790569385","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"@linxiraos/pi-tui","version":"1.1.19","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"author":{"name":"Linxira-OS"},"license":"MIT","_id":"@linxiraos/pi-tui@1.1.19","maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://linxira-os.github.io/zeta/","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"0fcc820b2c523761ced53e4d942e3f196831f3bb","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.19.tgz","fileCount":834,"integrity":"sha512-Jweixyfkbqsjws0EES8EQjnCWIL99GBXouToheW3/X9iq3YbEj/a5ffT4EYQb3uTYHGXQCa2AQL7u4LkVL9PIA==","signatures":[{"sig":"MEUCIQDSZ4yYGeHqNgrnKNyQ4j1nbrYffa7QHiaUZwiGyVy2DwIgPjAodLwEnLUv6QO0UIzBjM/+vDZ/DTZfIV/se0sAIwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDFh6hhVEiAm5Bs5347Kssdh1XOaB2x9wx0oQ/I8az6vAiAeUy/VY/5ghaVxxXEIRrBPbKQyjzOVBglWNIEM8F64GA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7326647},"main":"./src/index.ts","type":"module","_from":"file:/tmp/omp-pack-1juErE/linxiraos-pi-tui-1.1.19.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./theme":{"types":"./dist/types/theme/index.d.ts","import":"./src/theme/index.ts"},"./tools":{"types":"./dist/types/tools/index.d.ts","import":"./src/tools/index.ts"},"./chrome":{"types":"./dist/types/chrome/index.d.ts","import":"./src/chrome/index.ts"},"./render":{"types":"./dist/types/render/index.d.ts","import":"./src/render/index.ts"},"./theme/*":{"types":"./dist/types/theme/*.d.ts","import":"./src/theme/*.ts"},"./status-line":{"types":"./dist/types/status-line/index.d.ts","import":"./src/status-line/index.ts"},"./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"},"./theme/defaults":{"types":"./dist/types/theme/defaults/index.d.ts","import":"./src/theme/defaults/index.ts"}},"scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"_resolved":"/tmp/omp-pack-1juErE/linxiraos-pi-tui-1.1.19.tgz","_integrity":"sha512-Jweixyfkbqsjws0EES8EQjnCWIL99GBXouToheW3/X9iq3YbEj/a5ffT4EYQb3uTYHGXQCa2AQL7u4LkVL9PIA==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@linxiraos/pi-ai":"1.1.19","@linxiraos/pi-wire":"1.1.19","@linxiraos/pi-utils":"1.1.19","@linxiraos/pi-catalog":"1.1.19","@linxiraos/pi-natives":"1.1.19","@linxiraos/pi-omptype":"1.1.19","@linxiraos/pi-agent-core":"1.1.19","@linxiraos/pi-snapcompact":"1.1.19"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-tui_1.1.19_1790102726329_0.2589807878171","host":"s3://npm-registry-packages-npm-production"}},"1.1.20":{"_id":"@linxiraos/pi-tui@1.1.20","bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"dist":{"shasum":"00f0980ed10af72c08541b73c894c05442a8e6d3","tarball":"https://registry.npmjs.org/@linxiraos/pi-tui/-/pi-tui-1.1.20.tgz","fileCount":834,"integrity":"sha512-D28SclWD1Fsa9XaGA2Mgvv5uRFBnySICAIr3NWnTVOYnpHS8FHkyvvhC9xskK2O1JrNX6irfxDEIbW0MVKuz1Q==","signatures":[{"sig":"MEUCIHvooug6QEL82crFe1aEdKsrtd2xmtb4VbL05cjgPYr+AiEA/+eZXGwZrj1k1jzPcZD1pEHKuPNoyZUOScwcvmgD3/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC41Yf71GJ1NdFfaRoIzAN5oDiqdPerxL9nyyYi0eRvbAIgNIdMqZt7T6iyj7+uIUAYbVq0DFMD4+mjsXG68YC7MX4="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@linxiraos%2fpi-tui@1.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7326832},"main":"./src/index.ts","name":"@linxiraos/pi-tui","type":"module","_from":"file:/tmp/omp-pack-zIrtsE/linxiraos-pi-tui-1.1.20.tgz","types":"./dist/types/index.d.ts","author":{"name":"Linxira-OS"},"engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./theme":{"types":"./dist/types/theme/index.d.ts","import":"./src/theme/index.ts"},"./tools":{"types":"./dist/types/tools/index.d.ts","import":"./src/tools/index.ts"},"./chrome":{"types":"./dist/types/chrome/index.d.ts","import":"./src/chrome/index.ts"},"./render":{"types":"./dist/types/render/index.d.ts","import":"./src/render/index.ts"},"./theme/*":{"types":"./dist/types/theme/*.d.ts","import":"./src/theme/*.ts"},"./status-line":{"types":"./dist/types/status-line/index.d.ts","import":"./src/status-line/index.ts"},"./components/*":{"types":"./dist/types/components/*.d.ts","import":"./src/components/*.ts"},"./theme/defaults":{"types":"./dist/types/theme/defaults/index.d.ts","import":"./src/theme/defaults/index.ts"}},"license":"MIT","scripts":{"fix":"oxlint --fix --fix-suggestions . && bun run fmt","fmt":"oxfmt --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts'","lint":"oxlint .","test":"bun test --parallel test/*.test.ts","check":"oxlint . && oxfmt --check --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx}' '{test,bench,examples,scripts}/**/*.ts' '*.ts' && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit"},"version":"1.1.20","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5aa91e5-185f-406a-a073-fc54f40b6b82"}},"homepage":"https://linxira-os.github.io/zeta/","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"_resolved":"/tmp/omp-pack-zIrtsE/linxiraos-pi-tui-1.1.20.tgz","_integrity":"sha512-D28SclWD1Fsa9XaGA2Mgvv5uRFBnySICAIr3NWnTVOYnpHS8FHkyvvhC9xskK2O1JrNX6irfxDEIbW0MVKuz1Q==","repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"_npmVersion":"11.17.0","description":"Terminal User Interface library with differential rendering for efficient text-based applications","directories":{},"maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"_nodeVersion":"26.3.0","contributors":[{"name":"Mario Zechner"}],"dependencies":{"@linxiraos/pi-ai":"1.1.20","@linxiraos/pi-wire":"1.1.20","@linxiraos/pi-utils":"1.1.20","@linxiraos/pi-catalog":"1.1.20","@linxiraos/pi-natives":"1.1.20","@linxiraos/pi-omptype":"1.1.20","@linxiraos/pi-agent-core":"1.1.20","@linxiraos/pi-snapcompact":"1.1.20"},"_hasShrinkwrap":false,"devDependencies":{"kitty-vt-wasm":"^0.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-tui_1.1.20_1790174721492_0.8993836604321623"}}},"time":{"created":"2026-08-11T07:29:10.721Z","modified":"2026-09-23T14:45:22.012Z","1.0.0":"2026-08-11T07:29:11.018Z","1.0.1":"2026-08-15T16:08:24.930Z","1.0.2":"2026-08-16T05:07:37.504Z","1.0.3":"2026-08-16T05:57:11.020Z","1.0.4":"2026-08-16T06:39:08.413Z","1.0.5":"2026-08-16T19:46:26.368Z","1.0.6":"2026-08-17T23:33:28.278Z","1.0.7":"2026-08-18T05:27:23.406Z","1.0.8":"2026-08-18T08:53:13.767Z","1.0.9":"2026-08-19T09:58:06.571Z","1.0.10":"2026-08-20T02:22:32.746Z","1.1.0":"2026-08-25T09:44:16.694Z","1.1.1":"2026-08-25T12:40:19.864Z","1.1.2":"2026-08-25T17:53:06.684Z","1.1.3":"2026-08-25T21:12:41.577Z","1.1.4":"2026-08-26T07:46:44.751Z","1.1.5":"2026-08-26T13:56:24.173Z","1.1.6":"2026-08-30T04:44:36.926Z","1.1.7":"2026-09-01T14:27:48.520Z","1.1.8":"2026-09-04T11:01:15.572Z","1.1.9":"2026-09-06T02:50:34.426Z","1.1.10":"2026-09-07T09:44:56.214Z","1.1.11":"2026-09-09T08:05:19.184Z","1.1.12":"2026-09-10T08:34:54.549Z","1.1.13":"2026-09-11T15:30:02.932Z","1.1.14":"2026-09-12T14:55:51.841Z","1.1.15":"2026-09-16T12:57:56.864Z","1.1.16":"2026-09-20T17:07:37.807Z","1.1.17":"2026-09-21T13:02:07.345Z","1.1.18":"2026-09-22T14:43:38.241Z","1.1.19":"2026-09-22T18:45:26.474Z","1.1.20":"2026-09-23T14:45:21.636Z"},"bugs":{"url":"https://github.com/Linxira-OS/linxira-zeta/issues"},"author":{"name":"Linxira-OS"},"license":"MIT","homepage":"https://linxira-os.github.io/zeta/","keywords":["tui","terminal","ui","text-editor","differential-rendering","typescript","cli"],"repository":{"url":"git+https://github.com/Linxira-OS/linxira-zeta.git","type":"git","directory":"packages/tui"},"description":"Terminal User Interface library with differential rendering for efficient text-based applications","contributors":[{"name":"Mario Zechner"}],"maintainers":[{"name":"bohuyeshan","email":"bohuyeshan@163.com"},{"name":"linxira_os","email":"linxira_os@163.com"}],"readme":"# @linxiraos/pi-tui\n\nMinimal terminal UI framework with differential rendering and synchronized output for flicker-free interactive CLI applications.\n\n## Features\n\n- **Differential Rendering**: Three-strategy rendering system that only updates what changed\n- **Synchronized Output**: Uses CSI 2026 for atomic screen updates (no flicker)\n- **Bracketed Paste Mode**: Handles large pastes correctly with markers for >10 line pastes\n- **Component-based**: Simple Component interface with render() method\n- **Theme Support**: Components accept theme interfaces for customizable styling\n- **Built-in Components**: Text, TruncatedText, Input, Editor, Markdown, Loader, SelectList, SettingsList, Spacer, Image, Box, Container\n- **Inline Images**: Renders images in terminals that support Kitty or iTerm2 graphics protocols\n- **Autocomplete Support**: File paths and slash commands\n\n## Quick Start\n\n```typescript\nimport { TUI, Text, Editor, ProcessTerminal } from \"@linxiraos/pi-tui\";\n\n// Create terminal\nconst terminal = new ProcessTerminal();\n\n// Create TUI\nconst tui = new TUI(terminal);\n\n// Add components\ntui.addChild(new Text(\"Welcome to my app!\"));\n\nconst editor = new Editor(editorTheme);\neditor.onSubmit = (text) => {\n\tconsole.log(\"Submitted:\", text);\n\ttui.addChild(new Text(`You said: ${text}`));\n};\ntui.addChild(editor);\n\n// Start\ntui.start();\n```\n\n## Core API\n\n### TUI\n\nMain container that manages components and rendering.\n\n```typescript\nconst tui = new TUI(terminal);\ntui.addChild(component);\ntui.removeChild(component);\ntui.start();\ntui.stop();\ntui.requestRender(); // Request a re-render\ntui.requestComponentRender(component); // Re-render only the root subtree containing `component` when safe (falls back to a full render on resize, overlays, images, or concurrent full requests)\n\n// Global debug key handler (Shift+Ctrl+D)\ntui.onDebug = () => console.log(\"Debug triggered\");\n```\n\n### Component Interface\n\nAll components implement:\n\n```typescript\ninterface Component {\n\trender(width: number): readonly string[];\n\thandleInput?(data: string): void;\n\tinvalidate?(): void;\n}\n```\n\n| Method               | Description                                                                                                                                                        |\n| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `render(width)`      | Returns an array of strings, one per line. Each line **must not exceed `width`** or the TUI will error. Use `truncateToWidth()` or manual wrapping to ensure this. The result is component-owned and immutable to callers; return the same array reference when unchanged (enables renderer memoization) and a new array when content changed. |\n| `handleInput?(data)` | Called when the component has focus and receives keyboard input. The `data` string contains raw terminal input (may include ANSI escape sequences).                |\n| `invalidate?()`      | Called to clear any cached render state. Components should re-render from scratch on the next `render()` call.                                                     |\n\n## Built-in Components\n\n### Composition\n\nBuild screens from persistent components and update their data, selection, expansion, or size through setters. Layouts own child bounds and mouse-coordinate translation; controllers retain domain workflows and asynchronous operations. Propagate `invalidate()` after theme changes and `dispose()` when removing an owned component tree.\n\n| Family | Components | Import |\n| --- | --- | --- |\n| Layout | `Stack`, `Row`, `SplitPane` | package root |\n| Panels | `OverlayPanel`, `PanelRows`, `PanelDivider` | `/chrome` |\n| Menus | `SelectList`, `MenuSelection` | package root |\n| Forms | `Form`, `FormField`, `TextFormField`, `SelectFormField`, `SettingsFormField` | package root |\n| Wizard steps | `WizardStep` | package root |\n| Viewports | `ScrollView`, including child rendering, follow-tail, and keyed range anchoring | package root |\n| Trees | `TreeView` | package root |\n| Disclosure | `Disclosure`, with lazy summary/detail children | package root |\n| Messages | `FramedMessageComponent`, `MessageNoticeComponent`, `MessageDividerComponent` | `/chrome` |\n| Tool output | `ToolCard`, `framedToolCard`, `plainToolCard`, `OutputPane` | `/render` |\n| Transcripts | `TranscriptBrowser` | package root |\n| Data | `MetricRow`, `ProgressBar`, `Table`, `KeyValueList`, `Section` | package root |\n\n```typescript\nimport { Disclosure, SplitPane, Text } from \"@linxiraos/pi-tui\";\n\nconst diagnostics = new Disclosure({\n\tsummary: new Text(\"2 build diagnostics\", 0, 0),\n\tbody: () => new Text(\"src/index.ts:12 — unused import\\nsrc/config.ts:8 — missing property\", 0, 0),\n});\n\nconst view = new SplitPane({\n\tleft: new Text(\"Build diagnostics\", 0, 0),\n\tright: diagnostics,\n\tleftSize: { fixed: 24 },\n\trightMinWidth: 30,\n\tsplitAt: 60,\n\tnarrowPane: \"right\",\n\theight: 12,\n});\n\ndiagnostics.setExpanded(true);\nview.setHeight(16);\n```\n\n`ScrollView.revealRange()` preserves manual scrolling while a selection is unchanged; `mode: \"once\"` supports asynchronously arriving initial selections. `OutputPane.append()` accepts incremental terminal output, including carriage-return updates; call `finish()` when the stream ends.\n\n### Container\n\nGroups child components.\n\n```typescript\nconst container = new Container();\ncontainer.addChild(component);\ncontainer.removeChild(component);\n```\n\n### Box\n\nContainer that applies padding and background color to all children.\n\n```typescript\nconst box = new Box(\n\t1, // paddingX (default: 1)\n\t1, // paddingY (default: 1)\n\t(text) => chalk.bgGray(text), // optional background function\n);\nbox.addChild(new Text(\"Content\"));\nbox.setBgFn((text) => chalk.bgBlue(text)); // Change background dynamically\n```\n\n### Text\n\nDisplays multi-line text with word wrapping and padding.\n\n```typescript\nconst text = new Text(\n\t\"Hello World\", // text content\n\t1, // paddingX (default: 1)\n\t1, // paddingY (default: 1)\n\t(text) => chalk.bgGray(text), // optional background function\n);\ntext.setText(\"Updated text\");\ntext.setCustomBgFn((text) => chalk.bgBlue(text));\n```\n\n### TruncatedText\n\nSingle-line text that truncates to fit viewport width. Useful for status lines and headers.\n\n```typescript\nconst truncated = new TruncatedText(\n\t\"This is a very long line that will be truncated...\",\n\t0, // paddingX (default: 0)\n\t0, // paddingY (default: 0)\n);\n```\n\n### Input\n\nSingle-line text input with horizontal scrolling.\n\n```typescript\nconst input = new Input();\ninput.onSubmit = (value) => console.log(value);\ninput.setValue(\"initial\");\ninput.getValue();\n```\n\n**Key Bindings:**\n\n- `Enter` - Submit\n- `Ctrl+A` / `Ctrl+E` - Line start/end\n- `Ctrl+W` or `Alt+Backspace` - Delete word backwards\n- `Ctrl+U` - Delete to start of line\n- `Ctrl+K` - Delete to end of line\n- `Ctrl+Left` / `Ctrl+Right` - Word navigation\n- `Alt+Left` / `Alt+Right` - Word navigation\n- Arrow keys, Backspace, Delete work as expected\n\n### Editor\n\nMulti-line text editor with autocomplete, file completion, and paste handling.\n\n```typescript\ninterface SymbolTheme {\n\tcursor: string;\n\tellipsis: string;\n\tboxRound: {\n\t\ttopLeft: string;\n\t\ttopRight: string;\n\t\tbottomLeft: string;\n\t\tbottomRight: string;\n\t\thorizontal: string;\n\t\tvertical: string;\n\t};\n\tboxSharp: {\n\t\ttopLeft: string;\n\t\ttopRight: string;\n\t\tbottomLeft: string;\n\t\tbottomRight: string;\n\t\thorizontal: string;\n\t\tvertical: string;\n\t\tteeDown: string;\n\t\tteeUp: string;\n\t\tteeLeft: string;\n\t\tteeRight: string;\n\t\tcross: string;\n\t};\n\ttable: {\n\t\ttopLeft: string;\n\t\ttopRight: string;\n\t\tbottomLeft: string;\n\t\tbottomRight: string;\n\t\thorizontal: string;\n\t\tvertical: string;\n\t\tteeDown: string;\n\t\tteeUp: string;\n\t\tteeLeft: string;\n\t\tteeRight: string;\n\t\tcross: string;\n\t};\n\tquoteBorder: string;\n\thrChar: string;\n\tspinnerFrames: string[];\n}\n\ninterface EditorTheme {\n\tborderColor: (str: string) => string;\n\tselectList: SelectListTheme;\n\tsymbols: SymbolTheme;\n}\n\nconst editor = new Editor(theme);\neditor.onSubmit = (text) => console.log(text);\neditor.onChange = (text) => console.log(\"Changed:\", text);\neditor.disableSubmit = true; // Disable submit temporarily\neditor.setAutocompleteProvider(provider);\neditor.borderColor = (s) => chalk.blue(s); // Change border dynamically\n```\n\n**Features:**\n\n- Multi-line editing with word wrap\n- Slash command autocomplete (type `/`)\n- File path autocomplete (press `Tab`)\n- Large paste handling (>10 lines creates `[paste #1 +50 lines]` marker)\n- Horizontal lines above/below editor\n- Fake cursor rendering (hidden real cursor)\n\n**Key Bindings:**\n\n- `Enter` - Submit\n- `Shift+Enter`, `Ctrl+Enter`, or `Alt+Enter` - New line (terminal-dependent, Alt+Enter most reliable)\n- `Tab` - Autocomplete\n- `Ctrl+K` - Delete line\n- `Alt+D` / `Alt+Delete` - Delete word forward\n- `Ctrl+A` / `Ctrl+E` - Line start/end\n- `Ctrl+-` - Undo last edit\n- Arrow keys, Backspace, Delete work as expected\n\n### Markdown\n\nRenders markdown with syntax highlighting and theming support.\n\n```typescript\ninterface MarkdownTheme {\n\theading: (text: string) => string;\n\tlink: (text: string) => string;\n\tlinkUrl: (text: string) => string;\n\tcode: (text: string) => string;\n\tcodeBlock: (text: string) => string;\n\tcodeBlockBorder: (text: string) => string;\n\tquote: (text: string) => string;\n\tquoteBorder: (text: string) => string;\n\thr: (text: string) => string;\n\tlistBullet: (text: string) => string;\n\tbold: (text: string) => string;\n\titalic: (text: string) => string;\n\tstrikethrough: (text: string) => string;\n\tunderline: (text: string) => string;\n\thighlightCode?: (code: string, lang?: string) => string[];\n\tsymbols: SymbolTheme;\n}\n\ninterface DefaultTextStyle {\n\tcolor?: (text: string) => string;\n\tbgColor?: (text: string) => string;\n\tbold?: boolean;\n\titalic?: boolean;\n\tstrikethrough?: boolean;\n\tunderline?: boolean;\n}\n\nconst md = new Markdown(\n\t\"# Hello\\n\\nSome **bold** text\",\n\t1, // paddingX\n\t1, // paddingY\n\ttheme, // MarkdownTheme\n\tdefaultStyle, // optional DefaultTextStyle\n\t2, // optional code block indent (spaces)\n);\nmd.setText(\"Updated markdown\");\n```\n\n**Features:**\n\n- Headings, bold, italic, code blocks, lists, links, blockquotes\n- HTML tags rendered as plain text\n- Optional syntax highlighting via `highlightCode`\n- Padding support\n- Render caching for performance\n\n### Loader\n\nAnimated loading spinner.\n\n```typescript\nconst loader = new Loader(\n\ttui, // TUI instance for render updates\n\t(s) => chalk.cyan(s), // spinner color function\n\t(s) => chalk.gray(s), // message color function\n\t\"Loading...\", // message (default: \"Loading...\")\n);\nloader.start();\nloader.setMessage(\"Still loading...\");\nloader.stop();\n```\n\n### CancellableLoader\n\nExtends Loader with Escape key handling and an AbortSignal for cancelling async operations.\n\n```typescript\nconst loader = new CancellableLoader(\n\ttui, // TUI instance for render updates\n\t(s) => chalk.cyan(s), // spinner color function\n\t(s) => chalk.gray(s), // message color function\n\t\"Working...\", // message\n);\nloader.onAbort = () => done(null); // Called when user presses Escape\ndoAsyncWork(loader.signal).then(done);\n```\n\n**Properties:**\n\n- `signal: AbortSignal` - Aborted when user presses Escape\n- `aborted: boolean` - Whether the loader was aborted\n- `onAbort?: () => void` - Callback when user presses Escape\n\n### SelectList\n\nInteractive selection list with keyboard navigation.\n\n```typescript\ninterface SelectItem {\n\tvalue: string;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface SelectListTheme {\n\tselectedPrefix: (text: string) => string;\n\tselectedText: (text: string) => string;\n\tdescription: (text: string) => string;\n\tscrollInfo: (text: string) => string;\n\tnoMatch: (text: string) => string;\n\tsymbols: SymbolTheme;\n}\n\nconst list = new SelectList(\n\t[\n\t\t{ value: \"opt1\", label: \"Option 1\", description: \"First option\" },\n\t\t{ value: \"opt2\", label: \"Option 2\", description: \"Second option\" },\n\t],\n\t5, // maxVisible\n\ttheme, // SelectListTheme\n);\n\nlist.onSelect = (item) => console.log(\"Selected:\", item);\nlist.onCancel = () => console.log(\"Cancelled\");\nlist.onSelectionChange = (item) => console.log(\"Highlighted:\", item);\nlist.setFilter(\"opt\"); // Filter items\n```\n\n**Controls:**\n\n- Arrow keys: Navigate\n- Enter: Select\n- Escape: Cancel\n\n### SettingsList\n\nSettings panel with value cycling and submenus.\n\n```typescript\ninterface SettingItem {\n\tid: string;\n\tlabel: string;\n\tdescription?: string;\n\tcurrentValue: string;\n\tvalues?: string[]; // If provided, Enter/Space cycles through these\n\tsubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n}\n\ninterface SettingsListTheme {\n\tlabel: (text: string, selected: boolean) => string;\n\tvalue: (text: string, selected: boolean) => string;\n\tdescription: (text: string) => string;\n\tcursor: string;\n\thint: (text: string) => string;\n}\n\nconst settings = new SettingsList(\n\t[\n\t\t{ id: \"theme\", label: \"Theme\", currentValue: \"dark\", values: [\"dark\", \"light\"] },\n\t\t{ id: \"model\", label: \"Model\", currentValue: \"gpt-4\", submenu: (val, done) => modelSelector },\n\t],\n\t10, // maxVisible\n\ttheme, // SettingsListTheme\n\t(id, newValue) => console.log(`${id} changed to ${newValue}`),\n\t() => console.log(\"Cancelled\"),\n);\nsettings.updateValue(\"theme\", \"light\");\n```\n\n**Controls:**\n\n- Arrow keys: Navigate\n- Enter/Space: Activate (cycle value or open submenu)\n- Escape: Cancel\n\n### Spacer\n\nEmpty lines for vertical spacing.\n\n```typescript\nconst spacer = new Spacer(2); // 2 empty lines (default: 1)\n```\n\n### Image\n\nRenders images inline for terminals that support the Kitty graphics protocol (Kitty, Ghostty, WezTerm, and Warp on macOS/Linux) or iTerm2 inline images. Falls back to a text placeholder on unsupported terminals.\n\n```typescript\ninterface ImageTheme {\n\tfallbackColor: (str: string) => string;\n}\n\ninterface ImageOptions {\n\tmaxWidthCells?: number;\n\tmaxHeightCells?: number;\n\tfilename?: string;\n}\n\nconst image = new Image(\n\tbase64Data, // base64-encoded image data\n\t\"image/png\", // MIME type\n\ttheme, // ImageTheme\n\toptions, // optional ImageOptions\n);\ntui.addChild(image);\n```\n\nSupported formats: PNG, JPEG, GIF, WebP. Dimensions are parsed from the image headers automatically.\n\n## Autocomplete\n\n### CombinedAutocompleteProvider\n\nSupports both slash commands and file paths.\n\n```typescript\nimport { CombinedAutocompleteProvider } from \"@linxiraos/pi-tui\";\nimport { getProjectDir } from \"@linxiraos/pi-utils\";\n\nconst provider = new CombinedAutocompleteProvider(\n\t[\n\t\t{ name: \"help\", description: \"Show help\" },\n\t\t{ name: \"clear\", description: \"Clear screen\" },\n\t\t{ name: \"delete\", description: \"Delete last message\" },\n\t],\n\tgetProjectDir(), // base path for file completion\n);\n\neditor.setAutocompleteProvider(provider);\n```\n\n**Features:**\n\n- Type `/` to see slash commands\n- Press `Tab` for file path completion\n- Works with `~/`, `./`, `../`, and `@` prefix\n- Filters to attachable files for `@` prefix\n\n## Key Detection\n\nHelper functions for detecting keyboard input (supports Kitty keyboard protocol):\n\n```typescript\nimport {\n\tisEnter,\n\tisEscape,\n\tisTab,\n\tisShiftTab,\n\tisArrowUp,\n\tisArrowDown,\n\tisArrowLeft,\n\tisArrowRight,\n\tisCtrlA,\n\tisCtrlC,\n\tisCtrlE,\n\tisCtrlK,\n\tisCtrlO,\n\tisCtrlP,\n\tisCtrlLeft,\n\tisCtrlRight,\n\tisAltLeft,\n\tisAltRight,\n\tisShiftEnter,\n\tisAltEnter,\n\tisShiftCtrlO,\n\tisShiftCtrlD,\n\tisShiftCtrlP,\n\tisBackspace,\n\tisDelete,\n\tisHome,\n\tisEnd,\n\t// ... and more\n} from \"@linxiraos/pi-tui\";\n\nif (isCtrlC(data)) {\n\tprocess.exit(0);\n}\n```\n\n## Differential Rendering\n\nThe TUI uses three rendering strategies:\n\n1. **First Render**: Output all lines without clearing scrollback\n2. **Width Changed or Change Above Viewport**: Clear screen and full re-render\n3. **Normal Update**: Move cursor to first changed line, clear to end, render changed lines\n\nAll updates are wrapped in **synchronized output** (`\\x1b[?2026h` ... `\\x1b[?2026l`) for atomic, flicker-free rendering unless `PI_NO_SYNC_OUTPUT=1` is set. The opt-out removes only the DEC 2026 wrapper; paint writes still guard terminal autowrap to avoid pending-wrap cursor artifacts.\n\n## Terminal Interface\n\nThe TUI works with any object implementing the `Terminal` interface:\n\n```typescript\ninterface Terminal {\n\tstart(onInput: (data: string) => void, onResize: () => void, onDisconnect?: () => void): void;\n\tstop(): void;\n\twrite(data: string): void;\n\tget columns(): number;\n\tget rows(): number;\n\tmoveBy(lines: number): void;\n\thideCursor(force?: boolean): void;\n\tshowCursor(force?: boolean): void;\n\tclearLine(): void;\n\tclearFromCursor(): void;\n\tclearScreen(): void;\n}\n```\n\n**Built-in implementations:**\n\n- `ProcessTerminal` - Uses `process.stdin/stdout`\n- `VirtualTerminal` - For testing (uses kitty-vt-wasm)\n\n## Utilities\n\n```typescript\nimport { Ellipsis, visibleWidth, truncateToWidth, wrapTextWithAnsi } from \"@linxiraos/pi-tui\";\n\n// Get visible width of string (ignoring ANSI codes, uses Bun.stringWidth)\nconst width = visibleWidth(\"\\x1b[31mHello\\x1b[0m\"); // 5\n\n// Truncate string to width (preserving ANSI codes, adds ellipsis)\nconst truncated = truncateToWidth(\"Hello World\", 8); // \"Hello…\" (default: Ellipsis.Unicode)\n\n// Truncate without ellipsis\nconst truncatedNoEllipsis = truncateToWidth(\"Hello World\", 8, Ellipsis.Omit); // \"Hello Wo\"\n\n// Wrap text to width (Bun.wrapAnsi word wrap, trims line ends, preserves ANSI)\nconst lines = wrapTextWithAnsi(\"This is a long line that needs wrapping\", 20);\n// [\"This is a long line\", \"that needs wrapping\"]\n```\n\n## Creating Custom Components\n\nWhen creating custom components, **each line returned by `render()` must not exceed the `width` parameter**. The TUI will error if any line is wider than the terminal.\n\n### Handling Input\n\nUse the key detection utilities to handle keyboard input:\n\n```typescript\nimport { isEnter, isEscape, isArrowUp, isArrowDown, isCtrlC, isTab, isBackspace } from \"@linxiraos/pi-tui\";\nimport type { Component } from \"@linxiraos/pi-tui\";\n\nclass MyInteractiveComponent implements Component {\n\tprivate selectedIndex = 0;\n\tprivate items = [\"Option 1\", \"Option 2\", \"Option 3\"];\n\n\tonSelect?: (index: number) => void;\n\tonCancel?: () => void;\n\n\thandleInput(data: string): void {\n\t\tif (isArrowUp(data)) {\n\t\t\tthis.selectedIndex = Math.max(0, this.selectedIndex - 1);\n\t\t} else if (isArrowDown(data)) {\n\t\t\tthis.selectedIndex = Math.min(this.items.length - 1, this.selectedIndex + 1);\n\t\t} else if (isEnter(data)) {\n\t\t\tthis.onSelect?.(this.selectedIndex);\n\t\t} else if (isEscape(data) || isCtrlC(data)) {\n\t\t\tthis.onCancel?.();\n\t\t}\n\t}\n\n\trender(width: number): readonly string[] {\n\t\treturn this.items.map((item, i) => {\n\t\t\tconst prefix = i === this.selectedIndex ? \"> \" : \"  \";\n\t\t\treturn truncateToWidth(prefix + item, width);\n\t\t});\n\t}\n}\n```\n\n### Handling Line Width\n\nUse the provided utilities to ensure lines fit:\n\n```typescript\nimport { visibleWidth, truncateToWidth } from \"@linxiraos/pi-tui\";\nimport type { Component } from \"@linxiraos/pi-tui\";\n\nclass MyComponent implements Component {\n\tprivate text: string;\n\n\tconstructor(text: string) {\n\t\tthis.text = text;\n\t}\n\n\trender(width: number): readonly string[] {\n\t\t// Option 1: Truncate long lines\n\t\treturn [truncateToWidth(this.text, width)];\n\n\t\t// Option 2: Check and pad to exact width\n\t\tconst line = this.text;\n\t\tconst visible = visibleWidth(line);\n\t\tif (visible > width) {\n\t\t\treturn [truncateToWidth(line, width)];\n\t\t}\n\t\t// Pad to exact width (optional, for backgrounds)\n\t\treturn [line + \" \".repeat(width - visible)];\n\t}\n}\n```\n\n### ANSI Code Considerations\n\n`visibleWidth()`, `truncateToWidth()`, and `wrapTextWithAnsi()` correctly handle ANSI escape codes:\n\n- `visibleWidth()` ignores ANSI codes when calculating width (via `Bun.stringWidth`)\n- `truncateToWidth()` preserves ANSI codes and properly closes them when truncating\n- `wrapTextWithAnsi()` preserves ANSI codes while word-wrapping and trimming line ends\n\n```typescript\nimport chalk from \"@linxiraos/pi-utils/chalk\";\n\nconst styled = chalk.red(\"Hello\") + \" \" + chalk.blue(\"World\");\nconst width = visibleWidth(styled); // 11 (not counting ANSI codes)\nconst truncated = truncateToWidth(styled, 8); // Red \"Hello\" + \" W...\" with proper reset\n```\n\n### Caching\n\nFor performance, components should cache their rendered output and only re-render when necessary:\n\n```typescript\nclass CachedComponent implements Component {\n\tprivate text: string;\n\tprivate cachedWidth?: number;\n\tprivate cachedLines?: string[];\n\n\trender(width: number): readonly string[] {\n\t\tif (this.cachedLines && this.cachedWidth === width) {\n\t\t\treturn this.cachedLines;\n\t\t}\n\n\t\tconst lines = [truncateToWidth(this.text, width)];\n\n\t\tthis.cachedWidth = width;\n\t\tthis.cachedLines = lines;\n\t\treturn lines;\n\t}\n\n\tinvalidate(): void {\n\t\tthis.cachedWidth = undefined;\n\t\tthis.cachedLines = undefined;\n\t}\n}\n```\n\n## Example\n\nSee `test/chat-simple.ts` for a complete chat interface example with:\n\n- Markdown messages with custom background colors\n- Loading spinner during responses\n- Editor with autocomplete and slash commands\n- Spacers between messages\n\nRun it:\n\n```bash\nnpx tsx test/chat-simple.ts\n```\n\n## Development\n\n```bash\n# Install dependencies (from monorepo root)\nnpm install\n\n# Run type checking\nnpm run check\n\n# Run the demo\nnpx tsx test/chat-simple.ts\n```\n","readmeFilename":"README.md"}