{"_id":"@pppp606/ink-chart","_rev":"10-abc6acf4116b807dcb53e1f9220e385b","name":"@pppp606/ink-chart","dist-tags":{"latest":"0.2.8"},"versions":{"0.1.0":{"name":"@pppp606/ink-chart","version":"0.1.0","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki"},"license":"MIT","_id":"@pppp606/ink-chart@0.1.0","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.tsx"},"dist":{"shasum":"5d0b1f2ba743d5b95b68f206369e1cb310573b7d","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.1.0.tgz","fileCount":44,"integrity":"sha512-8UStrnUlrovQSo9RMIp1t8GNvdEv7aqoGEkVA7AH4ZUN1Si2z0bfckZtXsZnDcfO4pdKawmqkHWTWiqY9NrkGQ==","signatures":[{"sig":"MEQCID5HDPm09RfRCob/jmLYPbxpV6HTYghsv+1HMNmwWSRtAiAuTTAKWW7nlKycuW6hlXLYCOiVosuBx9jT9LREVFVG/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109104},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bf5ac8ccaadcec3b53030db7c44a44272a9cc31f","scripts":{"demo":"tsx bin/demo.tsx","lint":"eslint .","test":"jest --passWithNoTests","build":"tsc -p tsconfig.json","format":"prettier -w .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"pppp606","email":"ppppp303@gmail.com"},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"10.8.2","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.19.4","publishConfig":{"registry":"https://npm.pkg.github.com"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^4.4.1","tsx":"^4.7.1","jest":"^29.7.0","react":"^18.2.0","eslint":"^8.56.0","ts-jest":"^29.1.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@types/react":"^18.2.55","@types/react-dom":"^18.3.7","eslint-plugin-react":"^7.33.2","ink-testing-library":"^3.0.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"ink":">=4","react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.1.0_1756628608140_0.3022579378750385","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@pppp606/ink-chart","version":"0.1.1","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki"},"license":"MIT","_id":"@pppp606/ink-chart@0.1.1","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.tsx"},"dist":{"shasum":"e67f01de2153ba96f2e7109a8403b10526aa0e3e","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.1.1.tgz","fileCount":44,"integrity":"sha512-iuJnx013aLBmhCER9GEC8/J+DtMnJWP68xbkGthHoN3vI7Lou6VEns64UvfxPZA+P33iADk0CDWnz4tRlX5Fww==","signatures":[{"sig":"MEUCIEeOAChYTBrXp92JA/LM+Ji/TWxi9YdmIe/+Qa8mSDkDAiEA+L4CIicK6RRh4yJkdrU66Dy+EQ+zxjAFvsS8tL9Nprw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109033},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ed53cc3e6e9be082acb308930b6eea4a120edc1d","scripts":{"demo":"tsx bin/demo.tsx","lint":"eslint .","test":"jest --passWithNoTests","build":"tsc -p tsconfig.json","format":"prettier -w .","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"pppp606","email":"ppppp303@gmail.com"},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"10.8.2","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"ink":"^4.4.1","tsx":"^4.7.1","jest":"^29.7.0","react":"^18.2.0","eslint":"^8.56.0","ts-jest":"^29.1.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@types/react":"^18.2.55","@types/react-dom":"^18.3.7","eslint-plugin-react":"^7.33.2","ink-testing-library":"^3.0.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"ink":">=4","react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.1.1_1756630003572_0.07878252514266881","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@pppp606/ink-chart","version":"0.2.0","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki","email":"takuto.yuki@example.com"},"license":"MIT","_id":"@pppp606/ink-chart@0.2.0","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.js"},"dist":{"shasum":"352abe05f2a4e0c15f19b45a5d4aee79845f33e5","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.0.tgz","fileCount":48,"integrity":"sha512-/yD+isBvcZWuBMUYyvXftcvrKxU/xO76L8ptId9QhNLS6R2iX9qWZLcqiYzLJf6oH7zqDk56oAs6sf5j3mRx1g==","signatures":[{"sig":"MEUCICalXIo78Y5gF9sGuNfdmVwdXONKxVUxBxbjXacshiSZAiEA6IuloE9qmvpoFwHAS/uMYBhuAYGq0MRJncPZ3x0quCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139408},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","config":{"audit-level":"high"},"engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/pppp606","type":"github"},"gitHead":"b4dfa520c64bb761f31cbc1f7f5635285a1e9178","scripts":{"demo":"tsx bin/demo.tsx","lint":"eslint . && npm run lint:secrets","test":"jest --passWithNoTests","audit":"npm audit --audit-level high","build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","format":"prettier -w .","lint:fix":"eslint . --fix","audit:fix":"npm audit fix --dry-run","typecheck":"tsc --noEmit","lint:secrets":"secretlint .","license-check":"npx license-checker --summary","test:coverage":"jest --coverage","prepublishOnly":"npm run build","validate:permissions":"node scripts/validate-permissions.js","validate:sha-pinning":"node scripts/validate-sha-pinning.js"},"_npmUser":{"name":"pppp606","email":"ppppp303@gmail.com"},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"10.9.2","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"22.15.1","publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ink":"^4.4.1","tsx":"^4.7.1","jest":"^29.7.0","react":"^18.2.0","eslint":"^8.56.0","js-yaml":"^4.1.0","ts-jest":"^29.1.2","prettier":"^3.2.5","react-dom":"^18.3.1","secretlint":"^11.2.4","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@types/react":"^18.2.55","license-checker":"^25.0.1","@types/react-dom":"^18.3.7","eslint-plugin-react":"^7.33.2","ink-testing-library":"^4.0.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.21.0","@secretlint/secretlint-rule-no-homedir":"^11.2.4","@secretlint/secretlint-rule-preset-recommend":"^11.2.4"},"peerDependencies":{"ink":">=4","react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.2.0_1764117374582_0.6179757744398569","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@pppp606/ink-chart","version":"0.2.1","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki","email":"takuto.yuki@example.com"},"license":"MIT","_id":"@pppp606/ink-chart@0.2.1","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.js"},"dist":{"shasum":"811dea7feddb70097c2eb0802875b2b4dbf399a0","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.1.tgz","fileCount":48,"integrity":"sha512-J7+OwUA9WYvOaMJBPA2xNANPvpBtQqxNYSOaLfnrd2oPhOO0LFJg/yg3oPD90gQWdn/M5tQQLgkPKqihZoh5MA==","signatures":[{"sig":"MEQCIHbVy/HZMlEgH1sNLI/QyNAY29OClbJVIltgQCFCRi3IAiA/85JEBrJBN9aVc4SSv8+eRhsFp8NJd2tMNpeVFZ7mrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pppp606%2fink-chart@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":139421},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","config":{"audit-level":"high"},"engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/pppp606","type":"github"},"gitHead":"2d7ae741d7c8a95689ed4a9e9294ce127af248e3","scripts":{"demo":"tsx bin/demo.tsx","lint":"eslint . && npm run lint:secrets","test":"jest --passWithNoTests","audit":"npm audit --audit-level high","build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","format":"prettier -w .","lint:fix":"eslint . --fix","audit:fix":"npm audit fix --dry-run","typecheck":"tsc --noEmit","lint:secrets":"secretlint .","license-check":"npx license-checker --summary","test:coverage":"jest --coverage","prepublishOnly":"npm run build","validate:permissions":"node scripts/validate-permissions.js","validate:sha-pinning":"node scripts/validate-sha-pinning.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6337ebe1-1654-416c-933a-4de74ca1666a"}},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"11.6.4","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ink":"^4.4.1","tsx":"^4.7.1","jest":"^29.7.0","react":"^18.2.0","eslint":"^8.56.0","js-yaml":"^4.1.0","ts-jest":"^29.1.2","prettier":"^3.2.5","react-dom":"^18.3.1","secretlint":"^11.2.4","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@types/react":"^18.2.55","license-checker":"^25.0.1","@types/react-dom":"^18.3.7","eslint-plugin-react":"^7.33.2","ink-testing-library":"^4.0.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.21.0","@secretlint/secretlint-rule-no-homedir":"^11.2.4","@secretlint/secretlint-rule-preset-recommend":"^11.2.4"},"peerDependencies":{"ink":">=4","react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.2.1_1764427638569_0.7086833790623692","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@pppp606/ink-chart","version":"0.2.3","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki","email":"takuto.yuki@example.com"},"license":"MIT","_id":"@pppp606/ink-chart@0.2.3","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.js"},"dist":{"shasum":"c2ff4b6a08e89d0afe645a6bde9355156a94c120","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.3.tgz","fileCount":48,"integrity":"sha512-frzjzTo0QfsAjBt2uu++4CAcBN8PUt30njJY8M0UIGXotmbG/dAWjD0HybPQj93k76IYh/LgZe8o4G17Mg2kzQ==","signatures":[{"sig":"MEUCIEO8dJW9keoQ9PZbg7gsvU0g+MTPuwdHEG12ocxV0PnBAiEAxhVAMa340hcP+lE0rHIQRi26FU5euSPeXj6I+56O0A4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pppp606%2fink-chart@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":139675},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","config":{"audit-level":"high"},"engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/pppp606","type":"github"},"gitHead":"e39ba6ef42036bcb73bf28e5ff98763e6cd72e35","scripts":{"demo":"tsx bin/demo.tsx","lint":"eslint . && npm run lint:secrets","test":"jest --passWithNoTests --testPathIgnorePatterns='__tests__/e2e/'","audit":"npm audit --audit-level high","build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","format":"prettier -w .","lint:fix":"eslint . --fix","test:all":"npm run test && npm run test:e2e","test:e2e":"NODE_OPTIONS='--experimental-vm-modules' jest --passWithNoTests --testPathPattern='__tests__/e2e/'","audit:fix":"npm audit fix --dry-run","typecheck":"tsc --noEmit","lint:secrets":"secretlint .","license-check":"npx license-checker --summary","test:coverage":"jest --coverage --testPathIgnorePatterns='__tests__/e2e/'","prepublishOnly":"npm run build","validate:permissions":"node scripts/validate-permissions.js","validate:sha-pinning":"node scripts/validate-sha-pinning.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6337ebe1-1654-416c-933a-4de74ca1666a"}},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ink":"^4.4.1","tsx":"^4.7.1","jest":"^29.7.0","react":"^18.2.0","eslint":"^8.56.0","js-yaml":"^4.1.0","ts-jest":"^29.1.2","prettier":"^3.2.5","react-dom":"^18.3.1","secretlint":"^11.2.4","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@types/react":"^18.2.55","license-checker":"^25.0.1","@types/react-dom":"^18.3.7","eslint-plugin-react":"^7.33.2","ink-testing-library":"^4.0.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.21.0","@secretlint/secretlint-rule-no-homedir":"^11.2.4","@secretlint/secretlint-rule-preset-recommend":"^11.2.4"},"peerDependencies":{"ink":">=4","react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.2.3_1765430212696_0.9143462287469735","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@pppp606/ink-chart","version":"0.2.4","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki","email":"takuto.yuki@example.com"},"license":"MIT","_id":"@pppp606/ink-chart@0.2.4","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.js"},"dist":{"shasum":"34aa8b5d589a57f9429cc646e686beb78306c948","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.4.tgz","fileCount":51,"integrity":"sha512-iqzTFePJKgzypEMdziIIo/uRDtQGBnunWxsvmaHTIBBxQIK0sRDoOszJzDc0UNGRxM+bOSPtuC844sqH/lJorg==","signatures":[{"sig":"MEUCIEpBU8+O+vA5Q8W4VpJLtWTC46C7ID97var5q7o7pvr7AiEAs2Rc7Rsgu5bcJp9I0Ole5qah0yxJAOlE8ksnO1kqk2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pppp606%2fink-chart@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":167292},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","config":{"audit-level":"high"},"engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/pppp606","type":"github"},"gitHead":"56eb58b891fff0df00c549cf119b7169d0c73e7e","scripts":{"demo":"tsx bin/demo.tsx","lint":"eslint . && npm run lint:secrets","test":"jest --passWithNoTests --testPathIgnorePatterns='__tests__/e2e/'","audit":"npm audit --audit-level high","build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","format":"prettier -w .","lint:fix":"eslint . --fix","test:all":"npm run test && npm run test:e2e","test:e2e":"NODE_OPTIONS='--experimental-vm-modules' jest --passWithNoTests --testPathPattern='__tests__/e2e/'","audit:fix":"npm audit fix --dry-run","typecheck":"tsc --noEmit","lint:secrets":"secretlint .","license-check":"npx license-checker --summary","test:coverage":"jest --coverage --testPathIgnorePatterns='__tests__/e2e/'","prepublishOnly":"npm run build","validate:permissions":"node scripts/validate-permissions.js","validate:sha-pinning":"node scripts/validate-sha-pinning.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6337ebe1-1654-416c-933a-4de74ca1666a"}},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ink":"^6.5.1","tsx":"^4.7.1","jest":"^29.7.0","react":"^19.2.3","eslint":"^9.39.2","globals":"^16.2.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@eslint/js":"^9.39.2","secretlint":"^11.2.4","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@types/react":"^19.2.7","license-checker":"^25.0.1","eslint-plugin-react":"^7.33.2","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.49.0","eslint-plugin-react-hooks":"^5.2.0","@typescript-eslint/eslint-plugin":"^8.49.0","@secretlint/secretlint-rule-no-homedir":"^11.2.4","@secretlint/secretlint-rule-preset-recommend":"^11.2.4"},"peerDependencies":{"ink":">=6","react":">=19"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.2.4_1767159580223_0.10680841456119539","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@pppp606/ink-chart","version":"0.2.5","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki","email":"takuto.yuki@example.com"},"license":"MIT","_id":"@pppp606/ink-chart@0.2.5","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.js"},"dist":{"shasum":"7955c5cead816e861488026255d37724da3ed6a3","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.5.tgz","fileCount":51,"integrity":"sha512-vGqj5yx1Fb8n5MhUE6SEz3cNK9rG5lCRe7gtpiHngqRQ/I8f5wBvvVaJ03+Z0Ukwdk96JQCiNR7oLdhzMt58QQ==","signatures":[{"sig":"MEQCIB++0hJK490AXCN0VxFJH+awFP2plwuFwXcmCY/ngtEdAiB4bBAlRlHQ3ehFxsTONqiKuqGWkkqu9twAQRGn76pBrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pppp606%2fink-chart@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162234},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","config":{"audit-level":"high"},"engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/pppp606","type":"github"},"gitHead":"f5c5d42f1540ee84388e8c64e32b29d1445f2246","scripts":{"demo":"tsx bin/demo.tsx","lint":"eslint . && npm run lint:secrets","test":"jest --passWithNoTests --testPathIgnorePatterns='__tests__/e2e/'","audit":"npm audit --audit-level high","build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","format":"prettier -w .","lint:fix":"eslint . --fix","test:all":"npm run test && npm run test:e2e","test:e2e":"NODE_OPTIONS='--experimental-vm-modules' jest --passWithNoTests --testPathPattern='__tests__/e2e/'","audit:fix":"npm audit fix --dry-run","typecheck":"tsc --noEmit","lint:secrets":"secretlint .","license-check":"npx license-checker --summary","test:coverage":"jest --coverage --testPathIgnorePatterns='__tests__/e2e/'","prepublishOnly":"npm run build","validate:permissions":"node scripts/validate-permissions.js","validate:sha-pinning":"node scripts/validate-sha-pinning.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6337ebe1-1654-416c-933a-4de74ca1666a"}},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"11.12.1","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ink":"^6.5.1","tsx":"^4.7.1","jest":"^29.7.0","react":"^19.2.3","eslint":"^9.39.2","globals":"^17.0.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@eslint/js":"^9.39.2","secretlint":"^11.2.4","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.19.30","@types/react":"^19.2.7","license-checker":"^25.0.1","eslint-plugin-react":"^7.33.2","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.49.0","eslint-plugin-react-hooks":"^5.2.0","@typescript-eslint/eslint-plugin":"^8.49.0","@secretlint/secretlint-rule-no-homedir":"^11.2.4","@secretlint/secretlint-rule-preset-recommend":"^11.2.4"},"peerDependencies":{"ink":">=6","react":">=19"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.2.5_1775049935542_0.7806019525480183","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@pppp606/ink-chart","version":"0.2.6","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki","email":"takuto.yuki@example.com"},"license":"MIT","_id":"@pppp606/ink-chart@0.2.6","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.js"},"dist":{"shasum":"25acaca0eb026b3337b52acd95569d679d37abef","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.6.tgz","fileCount":48,"integrity":"sha512-9Too+NNQaBrFPDbd01gj4j91o23h6gkpiIIUiD+clT6WIxe8juePVa/x8TQi9Tdz7NHw+v+V5UM4Ubi7tP5p+g==","signatures":[{"sig":"MEUCIEFKFlnw4SQFbasabn8v/UNiEMI/XxmnGPK5jUy4PsgTAiEA5wiBeI9ak0rWQox8jvqWhaF6aPrhtHSr4Qx0t02elWQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pppp606%2fink-chart@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152874},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","config":{"audit-level":"high"},"engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/pppp606","type":"github"},"gitHead":"077d41fe7b3fe1f2fdcb2940ceb17c64d8c8104c","scripts":{"demo":"npm run build && node bin/demo.js","lint":"eslint . && npm run lint:secrets","test":"jest --passWithNoTests --testPathIgnorePatterns='__tests__/e2e/'","audit":"npm audit --audit-level high","build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","format":"prettier -w .","lint:fix":"eslint . --fix","test:all":"npm run test && npm run test:e2e","test:e2e":"NODE_OPTIONS='--experimental-vm-modules' jest --passWithNoTests --testPathPattern='__tests__/e2e/'","audit:fix":"npm audit fix --dry-run","typecheck":"tsc --noEmit","lint:secrets":"secretlint .","test:coverage":"jest --coverage --testPathIgnorePatterns='__tests__/e2e/'","prepublishOnly":"npm run build","validate:permissions":"node scripts/validate-permissions.js","validate:sha-pinning":"node scripts/validate-sha-pinning.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6337ebe1-1654-416c-933a-4de74ca1666a"}},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"11.16.0","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ink":"^6.5.1","jest":"^29.7.0","react":"^19.2.3","eslint":"^9.39.2","globals":"^17.0.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@eslint/js":"^9.39.2","secretlint":"^11.2.4","typescript":"^5.3.3","@types/node":"^20.19.30","@types/react":"^19.2.7","eslint-plugin-react":"^7.33.2","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.49.0","eslint-plugin-react-hooks":"^5.2.0","@typescript-eslint/eslint-plugin":"^8.49.0","@secretlint/secretlint-rule-no-homedir":"^11.2.4","@secretlint/secretlint-rule-preset-recommend":"^11.2.4"},"peerDependencies":{"ink":">=6","react":">=19"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.2.6_1780899603876_0.2820080967511216","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@pppp606/ink-chart","version":"0.2.7","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"url":"https://github.com/pppp606/ink-chart","name":"Takuto Yuki","email":"takuto.yuki@example.com"},"license":"MIT","_id":"@pppp606/ink-chart@0.2.7","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"homepage":"https://github.com/pppp606/ink-chart#readme","bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"bin":{"ink-chart-demo":"bin/demo.js"},"dist":{"shasum":"857d3cb8acbb6e34c077bb298503d4166a807787","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.7.tgz","fileCount":48,"integrity":"sha512-SiPuDXpVnRXf9zLHcXUEm6B13jjfdkIfi2GGvQ2Ob4SYEHbTZEE2aS4pAcPQWqVAwwvDdhA3e+uX3Cmd0YC3HQ==","signatures":[{"sig":"MEYCIQDHW8Pxtzd+K0aOyOBzt2KLjfjptAktg5gK03SJj6kIXQIhAM4wCxuiRw0NfWhKhnLLoGzTWgT2MltSjmtSSmAoUhYL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pppp606%2fink-chart@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152874},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","config":{"audit-level":"high"},"engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/pppp606","type":"github"},"gitHead":"3853f9d63febdf8bba129729a2b53e53e0281d7c","scripts":{"demo":"npm run build && node bin/demo.js","lint":"eslint . && npm run lint:secrets","test":"jest --passWithNoTests --testPathIgnorePatterns='__tests__/e2e/'","audit":"npm audit --audit-level high","build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","format":"prettier -w .","lint:fix":"eslint . --fix","test:all":"npm run test && npm run test:e2e","test:e2e":"NODE_OPTIONS='--experimental-vm-modules' jest --passWithNoTests --testPathPattern='__tests__/e2e/'","audit:fix":"npm audit fix --dry-run","typecheck":"tsc --noEmit","lint:secrets":"secretlint .","test:coverage":"jest --coverage --testPathIgnorePatterns='__tests__/e2e/'","prepublishOnly":"npm run build","validate:permissions":"node scripts/validate-permissions.js","validate:sha-pinning":"node scripts/validate-sha-pinning.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6337ebe1-1654-416c-933a-4de74ca1666a"}},"repository":{"url":"git+https://github.com/pppp606/ink-chart.git","type":"git"},"_npmVersion":"11.18.0","description":"Small visualization components for ink CLI framework","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ink":"^6.5.1","jest":"^29.7.0","react":"^19.2.3","eslint":"^9.39.2","globals":"^17.0.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@eslint/js":"^9.39.2","secretlint":"^11.2.4","typescript":"^5.3.3","@types/node":"^20.19.30","@types/react":"^19.2.7","eslint-plugin-react":"^7.33.2","ink-testing-library":"^4.0.0","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.49.0","eslint-plugin-react-hooks":"^5.2.0","@typescript-eslint/eslint-plugin":"^8.49.0","@secretlint/secretlint-rule-no-homedir":"^11.2.4","@secretlint/secretlint-rule-preset-recommend":"^11.2.4"},"peerDependencies":{"ink":">=6","react":">=19"},"_npmOperationalInternal":{"tmp":"tmp/ink-chart_0.2.7_1784502378394_0.380110423585559","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@pppp606/ink-chart","version":"0.2.8","description":"Small visualization components for ink CLI framework","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"ink-chart-demo":"bin/demo.js"},"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"sideEffects":false,"config":{"audit-level":"high"},"scripts":{"build":"tsc -p tsconfig.json && tsc -p tsconfig.bin.json && cp build/bin/demo.js bin/demo.js","typecheck":"tsc --noEmit","lint":"eslint . && npm run lint:secrets","lint:secrets":"secretlint .","lint:fix":"eslint . --fix","format":"prettier -w .","test":"jest --passWithNoTests --testPathIgnorePatterns='__tests__/e2e/'","test:e2e":"NODE_OPTIONS='--experimental-vm-modules' jest --passWithNoTests --testPathPatterns='__tests__/e2e/'","test:all":"npm run test && npm run test:e2e","test:coverage":"jest --coverage --testPathIgnorePatterns='__tests__/e2e/'","demo":"npm run build && node bin/demo.js","audit":"npm audit --audit-level high","audit:fix":"npm audit fix --dry-run","validate:sha-pinning":"node scripts/validate-sha-pinning.js","validate:permissions":"node scripts/validate-permissions.js","prepublishOnly":"npm run build"},"keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"author":{"name":"Takuto Yuki","email":"takuto.yuki@example.com","url":"https://github.com/pppp606/ink-chart"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pppp606/ink-chart.git"},"bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"homepage":"https://github.com/pppp606/ink-chart#readme","funding":{"type":"github","url":"https://github.com/sponsors/pppp606"},"engines":{"node":">=20.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public","tag":"latest","provenance":true},"peerDependencies":{"ink":">=6","react":">=19"},"devDependencies":{"@eslint/js":"^9.39.2","@secretlint/secretlint-rule-no-homedir":"^13.0.0","@secretlint/secretlint-rule-preset-recommend":"^13.0.0","@types/node":"^20.19.30","@types/react":"^19.2.7","@typescript-eslint/eslint-plugin":"^8.49.0","@typescript-eslint/parser":"^8.49.0","eslint":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-react":"^7.33.2","eslint-plugin-react-hooks":"^7.1.1","globals":"^17.0.0","ink":"^7.0.2","ink-testing-library":"^4.0.0","jest":"^30.4.2","prettier":"^3.2.5","react":"^19.2.3","secretlint":"^13.0.0","ts-jest":"^29.4.12","typescript":"^6.0.3"},"gitHead":"ffaa00afcfbd99774354226bc70e20f3bba922ef","_id":"@pppp606/ink-chart@0.2.8","_nodeVersion":"20.20.2","_npmVersion":"11.19.0","dist":{"integrity":"sha512-RWyHa2Du3EdsbDWRBLx3iTqpRIUadM7tvc+XdHNMQFmItAqGRNfzWmKSKpOvOWIMl73tYx8OqabaiUj6LYwzvQ==","shasum":"7a7c5183204feeba57c81d66f7900b3b5d91f77b","tarball":"https://registry.npmjs.org/@pppp606/ink-chart/-/ink-chart-0.2.8.tgz","fileCount":48,"unpackedSize":152876,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pppp606%2fink-chart@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIALyEi0tnk9oHPdaAo9yBGk9W1arlPchTB2l428UZPxJAiEA667O2u+hM+3WbfY8kjYKpb3NFontpA3INygIiOwblGY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6337ebe1-1654-416c-933a-4de74ca1666a"}},"directories":{},"maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ink-chart_0.2.8_1787016979083_0.09578330161859983"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-31T08:23:28.075Z","modified":"2026-08-18T01:36:19.744Z","0.1.0":"2025-08-31T08:23:28.316Z","0.1.1":"2025-08-31T08:46:43.749Z","0.2.0":"2025-11-26T00:36:14.783Z","0.2.1":"2025-11-29T14:47:18.758Z","0.2.3":"2025-12-11T05:16:52.841Z","0.2.4":"2025-12-31T05:39:40.357Z","0.2.5":"2026-04-01T13:25:35.705Z","0.2.6":"2026-06-08T06:20:04.004Z","0.2.7":"2026-07-19T23:06:18.544Z","0.2.8":"2026-08-18T01:36:19.241Z"},"bugs":{"url":"https://github.com/pppp606/ink-chart/issues"},"author":{"name":"Takuto Yuki","email":"takuto.yuki@example.com","url":"https://github.com/pppp606/ink-chart"},"license":"MIT","homepage":"https://github.com/pppp606/ink-chart#readme","keywords":["ink","cli","chart","sparkline","barchart","visualization","react","terminal","secure","typescript","provenance"],"repository":{"type":"git","url":"git+https://github.com/pppp606/ink-chart.git"},"description":"Small visualization components for ink CLI framework","maintainers":[{"name":"pppp606","email":"ppppp303@gmail.com"}],"readme":"# ink-chart\n\nTerminal visualization components for [Ink](https://github.com/vadimdemedes/ink), React CLI framework\n\n## Preview\n\n<img src=\"./assets/demo-preview.svg\" alt=\"Demo Screenshot\" width=\"730\" />\n\n## Features\n\n- **BarChart** - Horizontal bar charts with individual row coloring and custom formatting\n- **StackedBarChart** - 100% stacked horizontal bar charts showing percentage distribution\n- **LineGraph** - High-resolution line graphs with multi-series support and axis labels\n- **Sparkline** - Compact trend visualization with threshold highlighting and gradient colors\n- **TypeScript** - Full TypeScript support with comprehensive type definitions\n- **Auto-width** - Responsive charts that adapt to terminal width\n- **Gradient Colors** - 8-level smooth color gradients with automatic terminal compatibility\n- **Performance** - Optimized rendering with React.memo to prevent flickering\n\n## Installation\n\n```bash\nnpm install @pppp606/ink-chart\n```\n\n## Quick Start\n\n```tsx\nimport React from 'react';\nimport { render, Text, Box } from 'ink';\nimport { BarChart, StackedBarChart, LineGraph, Sparkline } from '@pppp606/ink-chart';\n\nfunction App() {\n  return (\n    <Box flexDirection=\"column\">\n      {/* Bar chart with values */}\n      <BarChart\n        data={[\n          { label: 'Sales', value: 1250 },\n          { label: 'Marketing', value: 800 }\n        ]}\n        showValue=\"right\"\n        sort=\"desc\"\n      />\n\n      {/* Stacked bar chart showing distribution */}\n      <StackedBarChart\n        data={[\n          { label: 'Complete', value: 75, color: '#4aaa1a' },\n          { label: 'Remaining', value: 25, color: '#d89612' }\n        ]}\n      />\n\n      {/* Line graph with multiple series */}\n      <LineGraph\n        data={[\n          { values: [10, 15, 12, 18, 14, 20], color: 'red' },\n          { values: [8, 12, 16, 14, 18, 16], color: 'blue' }\n        ]}\n        height={5}\n        showYAxis={true}\n        xLabels={['Jan', 'Jun']}\n      />\n\n      {/* Simple sparkline */}\n      <Sparkline data={[1, 3, 2, 5, 4, 6, 3]} />\n    </Box>\n  );\n}\n\nrender(<App />);\n```\n\n## Components\n\n### BarChart\n\nHorizontal bar charts with customizable appearance and individual row colors.\n\n```tsx\n<BarChart\n  data={[\n    { label: 'Success', value: 22, color: '#4aaa1a' },\n    { label: 'Warnings', value: 8, color: '#d89612' },\n    { label: 'Errors', value: 15, color: '#a61d24' }\n  ]}\n  showValue=\"right\"\n  width={50}\n  format={(v) => `${v}%`}\n/>\n```\n\nOutput:\n```\nSuccess  ████████████████████████████████████████████████████████████████████ 22%\nErrors   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 15%\nWarnings ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 8%\n```\n\n**Props:**\n- `data: BarChartData[]` - Array of data points\n- `sort?: 'none' | 'asc' | 'desc'` - Sort order\n- `showValue?: 'right' | 'inside' | 'none'` - Value display position\n- `width?: 'auto' | 'full' | number` - Chart width (`'auto'`: natural content width, `'full'`: terminal width, `number`: fixed width)\n- `max?: 'auto' | number` - Maximum value for scaling\n- `format?: (value: number) => string` - Value formatter\n- `barChar?: '▆' | '█' | '▓' | '▒' | '░'` - Bar character\n- `color?: string` - Default color (overridden by individual `BarChartData.color`)\n\n**BarChartData interface:**\n```tsx\ninterface BarChartData {\n  label: string;\n  value: number;\n  color?: string; // Hex code or Ink color name\n}\n```\n\n### StackedBarChart\n\nStacked horizontal bar chart with two modes: 100% percentage distribution or absolute values.\n\n```tsx\n<StackedBarChart\n  data={[\n    { label: 'Sales', value: 30, color: '#4aaa1a' },\n    { label: 'Warning', value: 20, color: '#d89612' },\n    { label: 'Error', value: 50, color: '#a61d24' }\n  ]}\n  width={50}\n/>\n```\n\nOutput:\n```\nSales          Warning   Error\n███████████████▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n30.0%          20.0%     50.0%\n```\n\n**Props:**\n- `data: StackedBarSegment[]` - Array of segments to display\n- `mode?: 'percentage' | 'absolute'` - Display mode (default: `'percentage'`)\n  - `'percentage'`: 100% stacked showing percentage distribution\n  - `'absolute'`: Stacked bar showing actual values scaled to max\n- `max?: 'auto' | number` - Maximum value for scaling in absolute mode (default: `'auto'`)\n- `width?: 'auto' | 'full' | number` - Chart width (`'auto'`: 40 characters default, `'full'`: terminal width, `number`: fixed width)\n- `showLabels?: boolean` - Whether to show segment labels above bar (default: `true`)\n- `showValues?: boolean` - Whether to show values below bar (default: `true`)\n- `format?: (value: number, mode: StackedBarChartMode) => string` - Value formatter\n\n**StackedBarSegment interface:**\n```tsx\ninterface StackedBarSegment {\n  label: string;\n  value: number;\n  color?: string; // Hex code or Ink color name\n  char?: string;  // Custom character for this segment\n}\n```\n\n### LineGraph\n\nHigh-resolution line graph using Unicode scan line characters (⎺ ⎻ ─ ⎼ ⎽) for 5-level vertical resolution per row.\n\n```tsx\n<LineGraph\n  data={[\n    { values: [100, 120, 115, 130, 125, 140], color: 'red' }\n  ]}\n  width={50}\n  height={6}\n  showYAxis={true}\n  xLabels={['Q1', 'Q4']}\n/>\n```\n\nOutput:\n```\n   140│                    ⎽─⎺\n      │              ⎽─⎺⎻─⎻\n      │          ⎽⎼─⎺\n      │    ⎽─⎺⎻─⎻\n      │⎽⎼─⎺\n   100│⎺\n      └──────────────────────\n       Q1                  Q4\n```\n\n**Props:**\n- `data: LineGraphSeries[]` - Array of data series (each with `values` and optional `color`)\n- `width?: 'auto' | 'full' | number` - Chart width\n- `height?: number` - Chart height in rows (default: 10, each row = 5 vertical levels)\n- `yDomain?: 'auto' | [number, number]` - Y-axis range\n- `showYAxis?: boolean` - Show Y-axis labels (default: false)\n- `yLabels?: (string | number)[]` - Custom Y-axis labels (numbers: position-based, strings: evenly distributed)\n- `xLabels?: (string | number)[]` - X-axis labels (numbers: position-based, strings: evenly distributed)\n- `caption?: string` - Optional caption below chart\n\n**LineGraphSeries interface:**\n```tsx\ninterface LineGraphSeries {\n  values: number[];\n  color?: string; // Ink color name or hex\n}\n```\n\n### Sparkline\n\nCompact trend visualization perfect for displaying time series data.\n\n```tsx\n<Sparkline\n  data={[1, 3, 2, 8, 4]}\n  width={30}\n  threshold={5}\n  colorScheme=\"red\"\n  caption=\"Sales Trend\"\n/>\n```\n\nOutput:\n```\n▂▄▃█▅\nSales Trend\n```\n\n**Props:**\n- `data: number[]` - Array of numeric values\n- `width?: 'auto' | 'full' | number` - Chart width (`'auto'`: data length, `'full'`: terminal width, `number`: fixed width)\n- `threshold?: number | number[]` - Threshold(s) for highlighting (single or gradient)\n- `colorScheme?: 'red' | 'blue' | 'green'` - Color scheme for gradient highlighting\n- `mode?: 'block' | 'braille'` - Rendering mode\n- `caption?: string` - Optional caption below chart\n\n## Advanced Features\n\n### Smooth Color Gradients\n\n8-level gradient highlighting with automatic terminal compatibility:\n\n```tsx\n<Sparkline \n  threshold={[10, 20, 30, 40, 50, 60, 70, 80]}\n  colorScheme=\"blue\" // red, blue, or green\n/>\n```\n\n**Color Support:**\n- **24-bit terminals** (iTerm, VSCode): Full RGB gradients\n- **256-color terminals**: Palette-based gradients\n- **16-color terminals**: Basic color fallbacks\n\nDetection is automatic based on `COLORTERM`, `TERM`, and `TERM_PROGRAM` environment variables.\n\n### Performance Optimization\n\nComponents are optimized with `React.memo` to prevent unnecessary re-renders:\n\n```tsx\n// Only re-renders when values actually change\n<BarChart data={dynamicData} />\n```\n\n### Full-width Support\n\nCharts can adapt to full terminal width:\n\n```tsx\n<Sparkline width=\"full\" /> // Full terminal width\n<BarChart width=\"full\" />  // Full terminal width\n```\n\n## Security\n\nThis package implements comprehensive security practices:\n\n- **Secure CI/CD**: SHA-pinned GitHub Actions with minimal permissions\n- **Supply Chain Protection**: Provenance attestation and OIDC authentication\n- **Secret Scanning**: Automated detection of accidentally committed secrets\n- **Dependency Security**: Regular security audits and automated vulnerability scanning\n- **Workflow Protection**: CODEOWNERS file and branch protection rules\n\nFor security policy, vulnerability reporting, and detailed security information, see [SECURITY.md](SECURITY.md).\n\n## License\n\nMIT","readmeFilename":"README.md"}