{"_id":"linecraft","_rev":"21-f0b82875cebdf0f79f3e835090230292","name":"linecraft","dist-tags":{"latest":"0.5.8","legacy":"0.2.8"},"versions":{"0.1.0":{"name":"linecraft","version":"0.1.0","keywords":["terminal","tui","progress","spinner","ansi","zig"],"license":"MIT","_id":"linecraft@0.1.0","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"dist":{"shasum":"96b800d9d36342ecc083f821e822d5a58f5140e9","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.1.0.tgz","fileCount":61,"integrity":"sha512-8mVXByClBMUvfolQ+6u4lM5nlgsBCBYUR5lXt3nJ7JMLs1Rl16jHxNgpbPrXZR4cN6VClBdmEcXDdWgEhkKlUQ==","signatures":[{"sig":"MEQCIEOlhO2mwRLAZ43ery5hu1M12TSyTPsP68SiGRZ5l/CMAiA9cLXAx/rwn3hR11FbU0LGMLsOtfKQ83VOnLcMLYR3gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125605},"main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3e57b7de79c0443146139ccb86b8cbbc6dfd9571","scripts":{"dev":"pnpm build:zig && pnpm build:ts --watch","test":"zig build test","build":"pnpm build:zig && pnpm build:ts","test:ts":"vitest","build:ts":"tsc","build:zig":"zig build","test:ansi":"zig build test:ansi","test:diff":"zig build test:diff","test:buffer":"zig build test:buffer","test:region":"zig build test:region","example:multi":"tsx examples/multi-lane.ts","test:throttle":"zig build test:throttle","example:spinner":"tsx examples/spinner.ts","example:progress":"tsx examples/basic-progress.ts"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"_npmVersion":"11.6.1","description":"High-performance terminal UI library for Node.js with Zig backend","directories":{},"_nodeVersion":"24.11.0","dependencies":{"ffi-napi":"^4.0.3","ref-napi":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.1.0_1763160721028_0.059915550218213154","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"linecraft","version":"0.2.0","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.0","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"dist":{"shasum":"00e18793bbf9bec57c570b38c50b9a4856c22890","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.0.tgz","fileCount":255,"integrity":"sha512-qOrSivOdyP0Ekebv/9iouhfd5zq+TQo4TIG3PIV6Vhdf6dBt4AcG50Fl6fbzOGH0j2yvSqFN5LxOKCjZQTSr4Q==","signatures":[{"sig":"MEUCIFndkrTwW/GV2ils/TObjYyZmuINGActwrvCul/el5PZAiEAnl09UZ8rJkGvc/zKZx0wBUIX/j4/8g+1q0mpOcVZuYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880193},"main":"./lib/index.js","type":"module","_from":"file:linecraft-0.2.0.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"_resolved":"/private/var/folders/fp/sdnhgkpn4c12nbb913bxnpym0000gn/T/6860c53f48b5dc6e9cf60672be78b7fb/linecraft-0.2.0.tgz","_integrity":"sha512-qOrSivOdyP0Ekebv/9iouhfd5zq+TQo4TIG3PIV6Vhdf6dBt4AcG50Fl6fbzOGH0j2yvSqFN5LxOKCjZQTSr4Q==","_npmVersion":"11.6.1","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.0_1763772235711_0.8752144244043141","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"linecraft","version":"0.2.1","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.1","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"d06194656ea20dc04ed25a419fef1fbce4454150","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.1.tgz","fileCount":255,"integrity":"sha512-CsHyqURLbtDV/szOH9UdcofEfNu72NVZZddhMbj9Ky7HNg5uHvcwh6sP5YlxjBYrk7MNPwsCOkAihrFPAL0bYg==","signatures":[{"sig":"MEYCIQCnvEZuh8ryjP6UPtdxmp7nHCBNVmHfRnFowT6YUis7hQIhAMOD/G/5OumBzHJeYEu/0vixPOcfI8EiNz3SQUSBaAZ8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":882091},"main":"./lib/index.js","type":"module","_from":"file:linecraft-0.2.1.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"_resolved":"/private/var/folders/fp/sdnhgkpn4c12nbb913bxnpym0000gn/T/058ca668bc6de2707c1354b30fa8a891/linecraft-0.2.1.tgz","_integrity":"sha512-CsHyqURLbtDV/szOH9UdcofEfNu72NVZZddhMbj9Ky7HNg5uHvcwh6sP5YlxjBYrk7MNPwsCOkAihrFPAL0bYg==","repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.1","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.1_1763772633436_0.21520209564381454","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"linecraft","version":"0.3.0","keywords":["terminal","tui","progress","spinner","ansi"],"license":"FLL","_id":"linecraft@0.3.0","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"c2cfa3e8589389304797535e723f650974e69d47","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.3.0.tgz","fileCount":255,"integrity":"sha512-imeI6Gunhy7v7oeobUsZ7NVgCwUvL3kSB9dSQEs1gAAlpUFAEwuTSADndFxzVGFqTxLHYp1ZFJN+n4iOU+7Nlg==","signatures":[{"sig":"MEQCIGActWHXpDrudfNxsCXQ7CcsP1xMRPgQa0XShbKmPHixAiBowtSL+uFQVleeI7P06BynstDLPcyCkx1rgbi7PQukeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":882602},"main":"./lib/index.js","type":"module","_from":"file:linecraft-0.3.0.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"_resolved":"/private/var/folders/fp/sdnhgkpn4c12nbb913bxnpym0000gn/T/27f7fc822a52242628204cfcd2db3162/linecraft-0.3.0.tgz","_integrity":"sha512-imeI6Gunhy7v7oeobUsZ7NVgCwUvL3kSB9dSQEs1gAAlpUFAEwuTSADndFxzVGFqTxLHYp1ZFJN+n4iOU+7Nlg==","repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.1","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.3.0_1764965458222_0.6221673848954425","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"linecraft","version":"0.4.0","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.1","_id":"linecraft@0.4.0","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"68053f8fa49b6b92756460caa04c7b463c781376","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.4.0.tgz","fileCount":255,"integrity":"sha512-Xd9cnmiAyDjV+k+dd4I2668aflGq2juYil3+gkx66Asuy78BKAk2F6G3yfZu0wjdz2n/7sMaCbOY5CObFNXm0g==","signatures":[{"sig":"MEQCIEuBDMGMprhXgYmCfL9RBzTY5gmM56lU+F71ybzTIBKDAiAjavGk3KUFLwnW6ovZGpkcyrvDtXlfTen6IN2HpTgFew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":885745},"main":"./lib/index.js","type":"module","_from":"file:linecraft-0.4.0.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.1"}],"_resolved":"/private/var/folders/fp/sdnhgkpn4c12nbb913bxnpym0000gn/T/9290849da3e5403617cd1b2965f1eb17/linecraft-0.4.0.tgz","_integrity":"sha512-Xd9cnmiAyDjV+k+dd4I2668aflGq2juYil3+gkx66Asuy78BKAk2F6G3yfZu0wjdz2n/7sMaCbOY5CObFNXm0g==","repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.4.0_1764972392835_0.9253073868795232","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"linecraft","version":"0.5.0","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.5.0","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"2d95cfb4d6eb995f972cd520ee760ffd34acb5a4","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.0.tgz","fileCount":255,"integrity":"sha512-J4kp4xASe6wmO9pW3hALK5kXO2cKadE2mZ9y7Ojgyr6NmHh3odeCdwSKedOtSrZilbD+MkO/FNBNzYExa+GR+w==","signatures":[{"sig":"MEUCIHCKOK0yXCjXs51PqfatHtwO1yl9iKJV9F9oEtLUrKtEAiEA7bg5FIeouv11eRZZlQ4Wxq6q5eYKohLxH+6tOs3GRzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":885741},"main":"./lib/index.js","type":"module","_from":"file:linecraft-0.5.0.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"_resolved":"/private/var/folders/fp/sdnhgkpn4c12nbb913bxnpym0000gn/T/595c4c66215f8035ef51a736db3a67bc/linecraft-0.5.0.tgz","_integrity":"sha512-J4kp4xASe6wmO9pW3hALK5kXO2cKadE2mZ9y7Ojgyr6NmHh3odeCdwSKedOtSrZilbD+MkO/FNBNzYExa+GR+w==","repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.0_1768156422958_0.4493425273433107","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"linecraft","version":"0.2.2","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.2","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"0afebe65e5d16a8d21e456d89e77837caa52e0e4","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.2.tgz","fileCount":303,"integrity":"sha512-Zn4W6yE5uDDGLbE2ZoRoyCDQyz9+SHMCvfkqa5xTMY1KjoeVA7A/LQiSvF5Jx39VfMMK7u/dJ8yoyUKVRt2IUQ==","signatures":[{"sig":"MEUCIQCAlCViDwDDQPc9qRwQX3HlfShhmj4K720G3azxKflWsgIge1z1oy6wM/+S26Vpgv4RJ/dWQXHvLrE1x5o0mSu/+EI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1013664},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"f58a8a8d8fecb1009a2759153fdbc29d7975c26a","scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.2_1768159767863_0.611279631856301","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"linecraft","version":"0.5.1","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.5.1","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"ff6b9e7bd03d96abfc4ecc4ce119e9bc0ce7331b","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.1.tgz","fileCount":303,"integrity":"sha512-C85Mp4OwgCnsH1SSifDpdwi3xv7+/b1EMPhGt7zYb+oJbynCOe5SjqaE5YDN1L1AJMaW/H+lvE20Get8E9K5Pg==","signatures":[{"sig":"MEQCIHJCDwe9eyGPB+wAd7y24NMR8i2HDeeebR1WsfrcULdIAiBwN/6HQdgbALkAi8SAxK/vKoefYsU/Nh0prDwtcLqE/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1017213},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"6f55f1ddadc4286cfc58ed530a9c2e35b0f8d61b","scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.1_1768159916776_0.20800125787795776","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"linecraft","version":"0.5.2","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.5.2","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"605394d60144640b67090d057b264c2487e038dc","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.2.tgz","fileCount":302,"integrity":"sha512-h7+LvIeXz/rinxzBJv/W9mwhywhpDIE8F7KM6zsU6++aEALqzlKc9BnByeiaTV0UrJqIfU8T3q/GZg3cJTh98g==","signatures":[{"sig":"MEUCIAUNttKscOU0MN6i/GLmNt7lZDTv2GtBUWP9BC8W4zQhAiEA75rp5zZ3ECDsQaBhwEK6HJGm15W4mY5EovuMeIY4llM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":998617},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"efbe208a73c58a65c4719cf222c375d33a2d641a","scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.2_1768160940677_0.6199794550110527","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"linecraft","version":"0.2.3","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.3","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"c221c94ed10626053c3d2828b7a49ccfe00fdf1f","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.3.tgz","fileCount":302,"integrity":"sha512-wDsecQ/mvdlcgbeuajmd+4AOBOAAJPrSeybHlzeqrGWgi8OnjsFx3Itwr16RXI0CSvmc+h8vLANMlkL8FYk6jw==","signatures":[{"sig":"MEQCIEtXPlXJvCpREqFVlVZ6y+ZqKGW99ORKqqrW0hoVIsltAiAeYJz2j0s8j9yi4v5FdEU5GvySHRBF+CbbKxzTlFdhXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":995068},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"a486e32b4c753493d11d677777077706b337ceed","scripts":{"dev":"pnpm build:ts --watch","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","record:all":"node scripts/record-all.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.3_1768161051634_0.2784191661538633","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"linecraft","version":"0.5.3","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.5.3","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"0346f2e1c695c06987030ddedbe08708255eb843","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.3.tgz","fileCount":302,"integrity":"sha512-cxLCHr5v+lBgR3bkMvPh723oEHGK7+wrrrXf15R6HUPJp4o6QVw1zhRRcP/UQih/PEnVqvC4ThmjOhBse/IndA==","signatures":[{"sig":"MEQCIBrdA8CxdSfJOdT9GyMtWPDfXCBNxT3qWUcGiy3KlLqXAiBmsyfRwePZk43SjR1GaT+u+YjF3tKB8K8EPwrxuG4R3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1018472},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"871448279af04fcaad1c7f66a593b5a73765e714","scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"pnpm lint && pnpm typecheck && pnpm test"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.3_1768236000927_0.09377738155219917","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"linecraft","version":"0.2.4","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.4","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"9e8aee58eb4fc7436d6d4ad3b1d07bca33e95542","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.4.tgz","fileCount":302,"integrity":"sha512-2nO7wZPBqIpqKi1HseRvwL17qAOCp0GUseMoqwayEUpl7w/4zsmc/B1OABuK3aiUS0HkSDH9DwvJZ4hQ7efDaQ==","signatures":[{"sig":"MEUCIQCimCVAAavIxAIr77Nq2QvuuQTzkRwpyTklhrDZwOC+zQIgNJ9QcIui/Bmgt4K0SVEZLWauMbZr4k4rLzD/SnzSSwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1014923},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"d503929bc2427c381c9adce1ade1ca364db80127","scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"pnpm lint && pnpm typecheck && pnpm test"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.4_1768236194702_0.877709470963911","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"linecraft","version":"0.5.4","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.5.4","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"2d796e8fa75b561357d6b4f54a8147d7fc50d264","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.4.tgz","fileCount":302,"integrity":"sha512-TC7OMaTP0gFmqUBUQSe7Wfp+T4t3kxdAoAv6bdWqHRqaUKzsFDEIQxFZ11/yNDYe1FaMt18w4nNEPu4liaIcmA==","signatures":[{"sig":"MEQCIHssv4/mLZDoX9X96yDwpEJhuog2/z2rA3LzFPXEkMK/AiALq0a3jnnff7vB9H6Rgd7ZNLMwbesgsrss/ahMNuaZhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1041199},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"44b957b84680d43f1a10fd072b2fb6ab33fff061","scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"pnpm lint && pnpm typecheck && pnpm test"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.4_1768255648652_0.0035957932733428066","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"linecraft","version":"0.5.5","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.5.5","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"2cba2e331b41c4efa6546ca2ad71a2114075ddcd","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.5.tgz","fileCount":310,"integrity":"sha512-yw4ft0/9Vv1AyRFEQrParQ+x37lCQf3GruEeeCp60LwiV39S3cTgpwVRgj/KP2B1wnU1O5v+DhG4Yo42WhaYug==","signatures":[{"sig":"MEYCIQDrIM0tXP7S9PvGgDlMNDd7nJy9WVL+2TgsPUq8MVkhMwIhAJC6VtwXNm7HE2eFjTYKnowrsS63uiGsVBVa3U3DPPlm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1127242},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"de933c94f40ced6fe4074a294280dcbe38758dab","scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"pnpm lint && pnpm typecheck && pnpm test"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.5_1768270169327_0.17123674270051592","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"linecraft","version":"0.2.5","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.5","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"79b3a03722a75a9a73d13d4f06ee824dffcbf2e5","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.5.tgz","fileCount":310,"integrity":"sha512-6fcOjSjNiYnCJWYFsneVKWYYu/Cav0l1meaYwBqugQ7W8vrjrbw2dit5dB6sKx8/XQ/iqGB77SwnsZCMcLcfXQ==","signatures":[{"sig":"MEUCIQCEIhKA+Mzo2A+n+l78Sf0eHigsGe0Czjhpzntxui0GqAIgIhfGMoJo6XEUabUKtHhUWFd31xl4s4kQDE5QmSdy6+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1123693},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"4a35a0aef672aa683aa9dbfddcdc30bd96116aad","scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"pnpm lint && pnpm typecheck && pnpm test"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.5_1768270442376_0.8345617663566218","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"linecraft","version":"0.5.6","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.5.6","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"3068dc4640faa5f17c7d8d67540896f954596eec","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.6.tgz","fileCount":310,"integrity":"sha512-ekIAK1aS4wCIhqRCSPrcz8OT66n8SjVxp3rdc5LRPJ6XQKKuO0Q53wsS1d5DGE7w2MAq3hl5m++YbIzjpn2DvA==","signatures":[{"sig":"MEYCIQDFydFnxlOYHcf+ohuefshdpNp6DtMyyBtUHEFlQgjGSQIhALsvtKtkJV/T4Rnuargw8z2z/gOO1zcq2eNn+nj4cvhA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1121138},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"de933c94f40ced6fe4074a294280dcbe38758dab","scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"pnpm lint && pnpm typecheck && pnpm test"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.6_1776105763078_0.9707691773071956","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"linecraft","version":"0.2.6","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.2.6","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"dd0873ca9fbb26cfa1b46bdb109a0004d75d03fe","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.6.tgz","fileCount":310,"integrity":"sha512-soXv8qKLqsAA3Ws9HDwrf6VlLUHHKBqLplHVJ/HVhWH5Oakgr5iZmsiKX7eC2VMdZxFaxhLxDsAmiCjLvKPZlQ==","signatures":[{"sig":"MEUCIQDa25RnkJyxymBp/Wc5Z2kE6pTBi+MIBVn6PzY/n3ynVwIgNOrR5tF1bcahKNrL/XDvcVwJmr2R6c/s1ePe6FhlOP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1124021},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"gitHead":"de933c94f40ced6fe4074a294280dcbe38758dab","scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"pnpm lint && pnpm typecheck && pnpm test"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.6_1776105862872_0.8341707177773541","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"linecraft","version":"0.2.7","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.7","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"fafd4c0de82ac31ec2e506ed7990a76a141e63dd","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.7.tgz","fileCount":131,"integrity":"sha512-/jdUVTLo8G4BBGSfHjcaX2JU4sz8kzVxqxbtzE2GmPw0jodEpv1po2atKFPq1lCPgxTYNUIuvBK+0mWC6bWJ4A==","signatures":[{"sig":"MEQCIExCmHmHDP5OA5EGfmrqkrIDPuW9NchBW3Xehmd1aHvBAiBRhzA79Idv4qXtxv/3xjSQyiKZ0YfqWogfO61dMya+Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":494870},"main":"./lib/index.js","type":"module","_from":"file:/Users/matthew/git/oss/linecraft/.release/linecraft-0.2.7.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","release":"node scripts/release.js --publish","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"node scripts/guard-direct-publish.js && pnpm lint && pnpm typecheck && pnpm test","release:dry-run":"node scripts/release.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"_resolved":"/Users/matthew/git/oss/linecraft/.release/linecraft-0.2.7.tgz","_integrity":"sha512-/jdUVTLo8G4BBGSfHjcaX2JU4sz8kzVxqxbtzE2GmPw0jodEpv1po2atKFPq1lCPgxTYNUIuvBK+0mWC6bWJ4A==","repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.15.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.7_1785528749458_0.8843322761011603","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"linecraft","version":"0.5.7","keywords":["terminal","tui","progress","spinner","ansi"],"license":"LicenseRef-FLL-1.2","_id":"linecraft@0.5.7","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"772b91c5a93db0ee7dc338f96c51602988f583a6","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.7.tgz","fileCount":131,"integrity":"sha512-XuxBrXa2EawtN+qDPFD3dWtU2tb++Oy0IDhECxLziryPIHyqo+JF1b4WuQv5lmKR7FSChclt7M0b+Yeiv9u07g==","signatures":[{"sig":"MEYCIQDuNc0aUT0vSP+wQ10zQiI2vASRbM/csV/K6AAUk7TCsgIhAMJODABP3rC4KDOZ0C9PT6m/UtRrPVvLynqtAs7WmClq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498305},"main":"./lib/index.js","type":"module","_from":"file:/Users/matthew/git/oss/linecraft/.release/linecraft-0.5.7.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","release":"node scripts/release.js --publish","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"node scripts/guard-direct-publish.js && pnpm lint && pnpm typecheck && pnpm test","release:dry-run":"node scripts/release.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"licenses":[{"url":"https://fllicense.org","type":"LicenseRef-FLL-1.2"}],"_resolved":"/Users/matthew/git/oss/linecraft/.release/linecraft-0.5.7.tgz","_integrity":"sha512-XuxBrXa2EawtN+qDPFD3dWtU2tb++Oy0IDhECxLziryPIHyqo+JF1b4WuQv5lmKR7FSChclt7M0b+Yeiv9u07g==","repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.15.1","devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.5.7_1785528751137_0.4374231886040614","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"linecraft","version":"0.2.8","keywords":["terminal","tui","progress","spinner","ansi"],"license":"MIT","_id":"linecraft@0.2.8","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"homepage":"https://github.com/matthew-dean/linecraft#readme","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"dist":{"shasum":"a989f1537c0db09deb023dbae2b18f74f7645b2a","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.2.8.tgz","fileCount":131,"integrity":"sha512-GZfe6kW8K6yByouQLiIwarj69bsuaWJlI+ioTWH7spsvV/cF7mCGvmPq4K3WUXBwMLrNYsbQE16RSM+qb1MXNQ==","signatures":[{"sig":"MEUCIQCqekX6Dse43LdCLL1Za+QvZ+sVnKVzbqi0UxSHO+hA4wIgGTxZwTyvJspLmtqlY8lGr5/P7RQrYNckEyb7jh2oaTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493736},"main":"./lib/index.js","type":"module","_from":"file:/Users/matthew/git/oss/linecraft/.release/linecraft-0.2.8.tgz","types":"./lib/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"scripts":{"dev":"pnpm build:ts --watch","lint":"oxlint src/","test":"vitest","build":"pnpm build:ts","record":"vhs","example":"node scripts/run-example.js","release":"node scripts/release.js --publish","test:ts":"vitest","build:ts":"tsc -p tsconfig.build.json","lint:fix":"oxlint src/ --fix","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","record:all":"node scripts/record-all.js","prepublishOnly":"node scripts/guard-direct-publish.js && pnpm lint && pnpm typecheck && pnpm test","release:dry-run":"node scripts/release.js"},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"_resolved":"/Users/matthew/git/oss/linecraft/.release/linecraft-0.2.8.tgz","_integrity":"sha512-GZfe6kW8K6yByouQLiIwarj69bsuaWJlI+ioTWH7spsvV/cF7mCGvmPq4K3WUXBwMLrNYsbQE16RSM+qb1MXNQ==","repository":{"url":"git+https://github.com/matthew-dean/linecraft.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance terminal UI library for Node.js","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.15.1","readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.0","oxlint":"~1.38.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/linecraft_0.2.8_1785531660990_0.3485016635349081","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"linecraft","version":"0.5.8","packageManager":"pnpm@10.15.1","description":"High-performance terminal UI library for Node.js","type":"module","main":"./lib/index.js","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./components":{"types":"./lib/components/index.d.ts","import":"./lib/components/index.js"}},"repository":{"type":"git","url":"git+https://github.com/matthew-dean/linecraft.git"},"license":"LicenseRef-FLL-1.2","licenses":[{"type":"LicenseRef-FLL-1.2","url":"https://fllicense.org"}],"scripts":{"build:ts":"tsc -p tsconfig.build.json","build":"pnpm build:ts","dev":"pnpm build:ts --watch","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","lint":"oxlint src/","lint:fix":"oxlint src/ --fix","test":"vitest","test:ts":"vitest","example":"node scripts/run-example.js","record":"vhs","record:all":"node scripts/record-all.js","release":"node scripts/release.js --publish","release:dry-run":"node scripts/release.js","prepublishOnly":"node scripts/guard-direct-publish.js && pnpm lint && pnpm typecheck && pnpm test"},"keywords":["terminal","tui","progress","spinner","ansi"],"devDependencies":{"@types/node":"^20.0.0","oxlint":"~1.38.0","tsx":"^4.7.0","typescript":"^5.3.0","vitest":"^1.0.0"},"engines":{"node":">=18.0.0"},"_id":"linecraft@0.5.8","bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"homepage":"https://github.com/matthew-dean/linecraft#readme","_integrity":"sha512-DiDPg0ppyKw0Q6x6RJCNOolu0tOtCew7SnQWjBf6UGYYGFlUvjbLWJ6qVml7Jxit0AXnFH9uM+HPjwyUxPUipQ==","_resolved":"/Users/matthew/git/oss/linecraft/.release/linecraft-0.5.8.tgz","_from":"file:/Users/matthew/git/oss/linecraft/.release/linecraft-0.5.8.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-DiDPg0ppyKw0Q6x6RJCNOolu0tOtCew7SnQWjBf6UGYYGFlUvjbLWJ6qVml7Jxit0AXnFH9uM+HPjwyUxPUipQ==","shasum":"35852b4353bd5eaa5f1478f3c527d111fb8d5f66","tarball":"https://registry.npmjs.org/linecraft/-/linecraft-0.5.8.tgz","fileCount":131,"unpackedSize":497171,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCtsvntsHaeG2mUFaKRhIUiYRhAs8U2S7U3NpAZb7oXUwIgEJsADuc7OOH/V899INtTQtGBp/XlSSenGi4verRzJ0Q="}]},"_npmUser":{"name":"matthew-dean","email":"matthewdean.me@gmail.com"},"directories":{},"maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/linecraft_0.5.8_1785531662639_0.4580980850424088"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-14T22:52:01.027Z","modified":"2026-07-31T21:01:02.949Z","0.1.0":"2025-11-14T22:52:01.259Z","0.2.0":"2025-11-22T00:43:55.989Z","0.2.1":"2025-11-22T00:50:33.711Z","0.3.0":"2025-12-05T20:10:58.423Z","0.4.0":"2025-12-05T22:06:33.107Z","0.5.0":"2026-01-11T18:33:43.131Z","0.2.2":"2026-01-11T19:29:28.029Z","0.5.1":"2026-01-11T19:31:56.950Z","0.5.2":"2026-01-11T19:49:00.873Z","0.2.3":"2026-01-11T19:50:51.821Z","0.5.3":"2026-01-12T16:40:01.151Z","0.2.4":"2026-01-12T16:43:14.842Z","0.5.4":"2026-01-12T22:07:28.858Z","0.5.5":"2026-01-13T02:09:29.506Z","0.2.5":"2026-01-13T02:14:02.596Z","0.5.6":"2026-04-13T18:42:43.230Z","0.2.6":"2026-04-13T18:44:23.044Z","0.2.7":"2026-07-31T20:12:29.606Z","0.5.7":"2026-07-31T20:12:31.351Z","0.2.8":"2026-07-31T21:01:01.134Z","0.5.8":"2026-07-31T21:01:02.780Z"},"bugs":{"url":"https://github.com/matthew-dean/linecraft/issues"},"license":"LicenseRef-FLL-1.2","homepage":"https://github.com/matthew-dean/linecraft#readme","keywords":["terminal","tui","progress","spinner","ansi"],"repository":{"type":"git","url":"git+https://github.com/matthew-dean/linecraft.git"},"description":"High-performance terminal UI library for Node.js","maintainers":[{"name":"matthew-dean","email":"matthewdean.me@gmail.com"}],"readme":"# Linecraft\n\nBuild terminal UIs with components. Create progress bars, spinners, code error displays, and responsive layouts without the hassle.\n\n## Installation\n\n```bash\nnpm install linecraft\n# or\npnpm add linecraft\n```\n\n## Quick Start\n\n```typescript\nimport { Region, Styled, Spinner, Section, Grid } from 'linecraft';\n\nconst r = Region();\n\n// Set some content\nr.set(\n  Section({ title: 'Hello' },\n    Grid({ template: [20, '1*'], columnGap: 2 },\n      Styled({ color: 'cyan' }, 'Status:'),\n      Styled({ color: 'green' }, 'Ready')\n    )\n  )\n);\n\n// Add a spinner\nr.set(\n  Section({ title: 'Loading' },\n    Grid({ template: [3, '1*'], columnGap: 1 },\n      Spinner({ style: 'classic-dots', color: 'green' }),\n      Styled({ color: 'white' }, 'Installing packages...')\n    )\n  )\n);\n\n// Clean up when done\nr.destroy(true);\n```\n\n## Terminal Management Features\n\nLinecraft provides advanced terminal management capabilities that go beyond basic terminal logging:\n\n### Color-Aware Line Wrapping\n\nUnlike basic terminal output, Linecraft's text wrapping is **fully ANSI-aware**. When text wraps across multiple lines, ANSI color codes are preserved and correctly re-applied to each wrapped line. This means:\n\n- **Color preservation**: Colored text maintains its styling across line breaks\n- **Accurate width calculation**: Wrapping is based on visible character width, not raw string length\n- **Smart word breaking**: Text never breaks mid-word, ensuring readability\n- **Multi-line styling**: Complex styled text (like error codes with underlines) wraps correctly\n\nThis is especially important for components like `CodeDebug`, where error messages with colored error codes need to wrap across multiple lines while maintaining their visual styling.\n\n### ANSI Code Handling\n\nLinecraft correctly handles ANSI escape sequences throughout the rendering pipeline:\n\n- **Width measurement**: All width calculations account for ANSI codes (colors, styles, cursor movements)\n- **Text splitting**: When truncating or splitting text, ANSI codes are preserved and re-applied\n- **Grid layouts**: Grid components correctly measure and align ANSI-styled content\n- **Text alignment**: Alignment operations work correctly with styled text\n\n### Terminal State Management\n\nLinecraft manages terminal state to prevent common terminal UI issues:\n\n- **Auto-wrap disabled**: Prevents unwanted line breaks from terminal auto-wrapping\n- **Cursor positioning**: Precise cursor control using absolute positioning\n- **Viewport awareness**: Only renders visible content within the terminal viewport\n- **Clean restoration**: Properly restores terminal state on cleanup\n\n### Responsive Layouts\n\nComponents automatically adapt to terminal size changes:\n\n- **Grid layouts**: Flex columns adjust to available width\n- **Text wrapping**: Wraps at appropriate boundaries based on terminal width\n- **Component sizing**: Components receive updated `availableWidth` context on resize\n\nThese features make Linecraft suitable for building complex, interactive terminal UIs that work reliably across different terminal sizes and configurations.\n\n## Performance\n\nLinecraft is built for high-performance terminal rendering from Node.js. The renderer includes several optimizations to minimize terminal updates and CPU usage:\n\n### Frame Diffing\nOnly updates lines that actually changed. Unchanged lines are skipped entirely, reducing terminal writes by up to 90% for static content.\n\n### Render Throttling\nUses high-resolution timing (`process.hrtime.bigint()`) to limit frame rate (default: 30 FPS). Prevents excessive rendering during rapid updates while maintaining smooth animations.\n\n### Batched ANSI Operations\nAll ANSI escape sequences are batched into a single `stdout.write()` call per frame, minimizing syscalls and improving throughput.\n\n### Efficient Cursor Movement\nOptimized ANSI cursor positioning that only moves when necessary. The renderer tracks viewport state to avoid redundant cursor movements.\n\n### Viewport Management\nOnly renders visible lines within the terminal viewport. Content that extends beyond the viewport is efficiently managed without unnecessary rendering.\n\n### Auto-Wrap Disabled\nDisables terminal auto-wrap to prevent unwanted line breaks, ensuring precise control over terminal output layout.\n\nThese optimizations make Linecraft suitable for real-time terminal UIs, progress displays, and animated components without overwhelming the terminal or consuming excessive CPU.\n\n## Core API\n\n### Region\n\nA region is a managed area of your terminal. It handles rendering, resizing, and component updates.\n\n```typescript\nconst r = Region({\n  width: 80,        // Optional: auto-detects if not set\n  height: 1,        // Optional: expands as needed\n  debugLog: 'debug.log' // Optional: log rendering for debugging\n});\n```\n\n### Setting Content\n\n```typescript\n// Replace all content\nr.set('Hello, world!');\n\n// Or use components\nr.set(Styled({ color: 'green' }, 'Success!'));\n\n// Append content (returns a reference you can use to delete later)\nconst ref = r.add('Line 2');\nref.delete(); // Remove it\n```\n\n### Cleanup\n\n```typescript\nr.destroy(true); // Clean up and restore terminal (true = clear first)\n```\n\n## Semantic Themes\n\nLinecraft includes a built-in semantic theme system that automatically adapts colors based on whether the terminal is in light or dark mode. Instead of hardcoding ANSI colors, you can use semantic tokens:\n\n- `base`: The default text color (gray in both themes)\n- `muted`: Dimmed text for line numbers or separators (dimmed white on dark, dimmed gray on light)\n- `highlight`: Emphasized text (white on dark, bold black on light)\n- `accent`: Primary accent color (bold blue in both themes)\n- `location`: For file paths and locations (magenta in both themes)\n- `success`: Success messages (bright green on dark, green on light)\n- `warning`: Warning messages (bright yellow on dark, bright magenta on light)\n- `error`: Error messages (bright red on dark, red on light)\n- `info`: Informational messages (blue in both themes)\n\nYou can use these tokens anywhere a `Color` is expected:\n\n```typescript\nimport { Styled } from 'linecraft';\n\n// Automatically uses appropriate color based on terminal theme\nconst text = Styled({ color: 'base' }, 'Auto-themed text');\nconst error = Styled({ color: 'error' }, 'Error message');\nconst path = Styled({ color: 'location' }, '/path/to/file.ts');\n\n// You can also resolve them manually if needed\nimport { autoColor, autoStyle } from 'linecraft';\nconst color = autoColor('warning'); // Returns just the color\nconst style = autoStyle('accent'); // Returns full TextStyle (color, bold, etc.)\n```\n\n## Components\n\n### Styled\n\nApply colors and styling to text.\n\n```typescript\nimport { Styled } from 'linecraft';\n\nr.set(Styled({ \n  color: 'brightGreen', \n  bold: true\n}, 'Bold green text'));\n```\n\n**Options:**\n- `color?: Color` - Text color\n- `backgroundColor?: Color` - Background color\n- `bold?: boolean` - Bold text\n- `italic?: boolean` - Italic text\n- `underline?: boolean` - Underlined text\n- `overflow?: 'none' | 'ellipsis-end' | 'ellipsis-start' | 'ellipsis-middle' | 'wrap'` - Text overflow handling\n- `align?: 'left' | 'right' | 'center'` - Text alignment\n\n### Section\n\nWrap content in a bordered box with an optional title.\n\n![Section Example](https://raw.githubusercontent.com/matthew-dean/linecraft/main/docs/examples/section.gif)\n\n```typescript\nimport { Section } from 'linecraft';\n\nr.set(Section(\n  { title: 'My Section' },\n  'Content goes here'\n));\n```\n\n**Options:**\n- `title?: string` - Title shown in a tab at the top\n- `titleColor?: Color` - Color of the title\n- `borderColor?: Color` - Color of borders\n- `padding?: number` - Internal padding (default: 1)\n- `left?: boolean` - Show left border (default: true)\n- `right?: boolean` - Show right border (default: true)\n- `top?: boolean` - Show top border (default: true)\n- `bottom?: boolean` - Show bottom border (default: true)\n\n### CodeDebug\n\nDisplay code errors and warnings with line numbers, context, and clickable file paths. Perfect for linters, compilers, and development tools that need to show diagnostic information.\n\n![CodeDebug Example](https://raw.githubusercontent.com/matthew-dean/linecraft/main/docs/examples/code-debug.gif)\n\n```typescript\nimport { CodeDebug } from 'linecraft';\n\nr.set(CodeDebug({\n  startLine: 42,\n  startColumn: 10,\n  endLine: 42,\n  endColumn: 20,\n  errorLine: '    const result = fetchData();',\n  lineBefore: '  async function load() {',\n  lineAfter: '    return process(result);',\n  message: 'Type error: fetchData is not defined',\n  errorCode: 'typescript(2304)', // Optional: error code with underline\n  shortMessage: 'not defined', // Optional: short message connected to underline\n  filePath: 'src/loaders/data.ts',\n  fullPath: '/absolute/path/to/src/loaders/data.ts',\n  baseDir: process.cwd(),\n  type: 'error' // 'error' | 'warning' | 'info'\n}));\n```\n\n**Features:**\n- **OSC 8 Hyperlinks**: File paths are clickable in modern terminals (VS Code, iTerm2, etc.). Ctrl+Click (or Cmd+Click) opens the file at the correct line and column.\n- **Smart Line Overflow**: Long code lines automatically truncate with ellipsis while keeping the error range visible. Supports ellipsis at start, end, or both sides.\n- **Error Range Highlighting**: The error range (startColumn to endColumn) is highlighted with a brighter color for easy identification.\n- **Context Lines**: Show lines before and after the error for better context (slightly dimmed for visual hierarchy).\n- **Message Wrapping**: Long error messages wrap across multiple lines while preserving ANSI styling and color codes.\n- **Terminal Theme Adaptation**: Line numbers and colors adapt to dark/light terminal themes automatically.\n- **Curved Underlines**: Visual indicators with curved edges (┖─┚) point to the exact error location, with optional T-bar for short messages.\n- **Responsive Layout**: Automatically adjusts to terminal width, truncating paths and code as needed.\n\n### Spinner\n\nAnimated spinners for loading states. Includes built-in styles or use custom frames.\n\n![Spinner Example](https://raw.githubusercontent.com/matthew-dean/linecraft/main/docs/examples/spinner.gif)\n\n```typescript\nimport { Spinner } from 'linecraft';\n\n// Built-in styles\nr.set(Spinner({\n  style: 'classic-dots', // or 'bouncing-bar'\n  color: 'green',\n  interval: 100\n}));\n\n// Custom frames\nr.set(Spinner({\n  frames: ['⠋', '⠙', '⠹', '⠸'],\n  color: 'yellow',\n  interval: 80\n}));\n```\n\n**Options:**\n- `style?: 'classic-dots' | 'bouncing-bar'` - Built-in animation style\n- `frames?: string[]` - Custom frames (overrides style if provided)\n- `interval?: number` - Milliseconds between frames (default: 80)\n- `color?: Color` - Spinner color\n- `autoStart?: boolean` - Start automatically (default: true)\n\nSpinners automatically stop when components are replaced or the region is destroyed.\n\n### ProgressBar\n\nProgress bars with customizable colors and styling.\n\n![ProgressBar Example](https://raw.githubusercontent.com/matthew-dean/linecraft/main/docs/examples/progressbar.gif)\n\n```typescript\nimport { progressBar } from 'linecraft';\n\nr.set(progressBar({\n  current: 75,\n  total: 100,\n  barColor: 'green',\n  bracketColor: 'brightBlack',\n  percentColor: 'yellow'\n}));\n```\n\n**Options:**\n- `current: number` - Current progress value\n- `total: number` - Total/max value\n- `barColor?: Color` - Color of the filled bar\n- `bracketColor?: Color` - Color of brackets\n- `percentColor?: Color` - Color of percentage text\n\n### Segments\n\nCreate segmented displays (like oh-my-zsh style prompts).\n\n![Segments Example](https://raw.githubusercontent.com/matthew-dean/linecraft/main/docs/examples/segments.gif)\n\n```typescript\nimport { Segments } from 'linecraft';\n\nr.set(Segments({\n  segments: [\n    { content: 'user@host', color: 'brightGreen', backgroundColor: 'blue' },\n    { content: '~/projects', color: 'white', backgroundColor: 'brightBlue' },\n    { content: 'main', color: 'black', backgroundColor: 'white' }\n  ],\n  borderStyle: 'cap' // 'cap' | 'brace' | 'round' | 'square' | 'none'\n}));\n```\n\n**Options:**\n- `segments: Array<{ content: string, color?: Color, backgroundColor?: Color, borderStyle?: BorderStyle }>` - Array of segments\n- `borderStyle?: BorderStyle` - Style for segment borders ('cap', 'brace', 'round', 'square', 'none')\n\n### Grid\n\nCreate responsive grid layouts. Children automatically wrap to new rows when they exceed the number of explicit columns.\n\n![Grid Example](https://raw.githubusercontent.com/matthew-dean/linecraft/main/docs/examples/grid.gif)\n\n```typescript\nimport { Grid } from 'linecraft';\n\n// Basic grid\nr.set(Grid({ template: [20, '1*'], columnGap: 2 },\n  Styled({ color: 'cyan' }, 'Label:'),\n  Styled({ color: 'yellow' }, 'Value')\n));\n\n// Multiple rows (children wrap automatically)\nr.set(Grid({ \n  columns: [20, 20],  // 2 columns per row\n  autoColumns: 20,     // Size for extra columns\n  columnGap: 2,\n  rowGap: 1\n},\n  Styled({ color: 'cyan' }, 'Left'),\n  Styled({ color: 'cyan' }, 'Right'),\n  fill({ char: '─', color: 'brightCyan' }),\n  fill({ char: '─', color: 'brightCyan' })\n));\n```\n\n**Options:**\n- `columns?: GridTemplateEntry[]` - Explicit column definitions (like CSS `grid-template-columns`)\n- `autoColumns?: GridTemplateEntry` - Size for implicitly created columns (like CSS `grid-auto-columns`)\n- `columnGap?: number` - Spaces between columns (default: 0)\n- `rowGap?: number` - Spaces between rows (default: 0)\n- `spaceBetween?: FillChar | FillChar[]` - Characters to draw between columns\n- `justify?: 'start' | 'end' | 'center' | 'space-between'` - Justify content\n\n**Template entries:**\n- Fixed width: `20`, `30`\n- Flex units: `'1*'`, `'2*'` (like CSS `1fr`, `2fr`)\n- Minmax: `{ min: 40, width: '2*' }`\n- Auto: `'auto'` (content-based sizing)\n\n### Fill\n\nFill available space with a character. Typically used within grids.\n\n![Fill Example](https://raw.githubusercontent.com/matthew-dean/linecraft/main/docs/examples/fill.gif)\n\n```typescript\nimport { fill } from 'linecraft';\n\nr.set(fill({ char: '─', color: 'brightBlack' }));\n```\n\n## Utilities\n\n### Prompt\n\nWait for user input before continuing.\n\n```typescript\nimport { prompt } from 'linecraft';\n\nawait prompt(r, {\n  message: 'continue',\n  key: 'spacebar', // 'spacebar' | 'enter' | 'q' | 'any'\n  color: 'brightBlack'\n});\n```\n\n## Colors\n\nAvailable colors:\n- `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white`\n- `brightBlack`, `brightRed`, `brightGreen`, `brightYellow`, `brightBlue`, `brightMagenta`, `brightCyan`, `brightWhite`\n\n## Examples\n\nCheck out the `examples/` directory:\n\n- `progress.ts` - Progress bars (basic and multi-lane)\n- `spinner.ts` - Animated spinners\n- `code-debug.ts` - Code error display\n- `grid-all-features.ts` - Grid layout examples\n- `segments.ts` - Segmented displays\n\nRun examples with:\n```bash\npnpm example <name>\n```\n\n## API Reference\n\n### Region Methods\n\n- `set(content)` - Replace all content\n- `add(content)` - Append content, returns `ComponentReference` or `SectionReference`\n- `destroy(clearFirst?)` - Clean up and restore terminal\n- `width` - Current region width (read-only)\n- `height` - Current region height (read-only)\n\n### ComponentReference\n\n- `delete()` - Remove the component from the region\n\n### SectionReference\n\n- `update(content)` - Update the section content\n- `delete()` - Remove the section from the region\n\n## Contributing\n\nContributions welcome! Please open an issue or PR.\n\n**Creating example recordings?** See [docs/creating-recordings.md](docs/creating-recordings.md) for a guide on using vhs to create animated GIFs.\n\n## License\n\nThis project is licensed under the **Fair Labor License (FLL) v1.2**.\n\n- If you are an individual with a net worth under **$5M USD**, or  \n- Your organization is **Fair Labor Compliant** (your CEO or highest-paid executive makes no more than **15×** your median employee's total annual compensation),\n\nthen you may use this software **for free**, subject to the terms of the license.\n\nIf you do **not** meet these conditions and use this software in production or for business value, you must obtain a **paid license**, for example via [fllicense.org](https://fllicense.org).\n\nYou may freely evaluate and test this software for up to **90 days** before deciding.\n\nSee the full license text in [`LICENSE`](./LICENSE).\n","readmeFilename":"README.md"}