{"_id":"@devstool/shadcn-echarts","_rev":"5-cf910db07c6df4e989be3bca3b3c444b","name":"@devstool/shadcn-echarts","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.1":{"name":"@devstool/shadcn-echarts","version":"0.1.1","keywords":["echarts","shadcn","charts","react","typescript","data-visualization","dark-mode"],"author":"","license":"MIT","_id":"@devstool/shadcn-echarts@0.1.1","maintainers":[{"name":"noobships","email":"creativecoder.crco@gmail.com"}],"homepage":"https://github.com/noobships/shadcn-echarts#readme","bugs":{"url":"https://github.com/noobships/shadcn-echarts/issues"},"dist":{"shasum":"38258d0161c0fdb082cbcbd93da5ac37a937ef2d","tarball":"https://registry.npmjs.org/@devstool/shadcn-echarts/-/shadcn-echarts-0.1.1.tgz","fileCount":201,"integrity":"sha512-6AVhrvjyRlhG1pnpmTdW2sakh0vJfgMPVTFvG63820hqLrUWWXFRmQNE9H7HrYg1FQWqOet+1eR5PUChkNDEjA==","signatures":[{"sig":"MEUCIC90yBijEMAsbYT1vG+fJWb4uWJ2R6svcSu4yw8tSzB6AiEAzwyQt6urTW3zNjYqH4dGTBUWtEq9FmNfD+1I40hJAMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509433},"main":"./dist/index.js","type":"module","_from":"file:devstool-shadcn-echarts-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./hooks":{"types":"./dist/hooks/index.d.ts","import":"./dist/hooks/index.js","require":"./dist/hooks/index.cjs"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","require":"./dist/themes/index.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint src registry scripts demo/src demo/tests apps/www","build":"tsdown","verify":"node scripts/verify-phase7.mjs","release":"changeset publish","www:dev":"pnpm -C apps/www dev","lint:fix":"oxlint --fix src registry scripts demo/src demo/tests apps/www","changeset":"changeset","www:build":"pnpm -C apps/www build","type-check":"tsc --noEmit","registry:build":"shadcn build --output apps/www/public/r && node scripts/sync-registry-index.mjs","registry:verify":"node scripts/verify-registry-assets.mjs","version-packages":"changeset version","demo:fetch-assets":"node scripts/fetch-demo-assets.mjs","verify:demo-parity":"node scripts/verify-demo-parity.mjs","demo:generate-examples":"node scripts/generate-demo-examples.mjs"},"_npmUser":{"name":"noobships","email":"creativecoder.crco@gmail.com"},"_resolved":"/tmp/7c355475838c20b8a87854d3deb0da38/devstool-shadcn-echarts-0.1.1.tgz","_integrity":"sha512-6AVhrvjyRlhG1pnpmTdW2sakh0vJfgMPVTFvG63820hqLrUWWXFRmQNE9H7HrYg1FQWqOet+1eR5PUChkNDEjA==","repository":{"url":"git+https://github.com/noobships/shadcn-echarts.git","type":"git"},"_npmVersion":"10.9.4","description":"Apache ECharts charts styled to match shadcn/ui's design language with full dark/light mode support","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"culori":"^4.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","oxlint":"^1.0.0","shadcn":"^3.7.0","tsdown":"^0.3.0","echarts":"^6.0.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.0"},"peerDependencies":{"react":">=18.0.0","echarts":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shadcn-echarts_0.1.1_1770925737208_0.959874005658292","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@devstool/shadcn-echarts","version":"0.1.2","keywords":["echarts","shadcn","charts","react","typescript","data-visualization","dark-mode"],"author":"","license":"MIT","_id":"@devstool/shadcn-echarts@0.1.2","maintainers":[{"name":"noobships","email":"creativecoder.crco@gmail.com"}],"homepage":"https://github.com/noobships/shadcn-echarts#readme","bugs":{"url":"https://github.com/noobships/shadcn-echarts/issues"},"dist":{"shasum":"3e9f748eb32cd39cad8b0c02c659fd6b96e5c817","tarball":"https://registry.npmjs.org/@devstool/shadcn-echarts/-/shadcn-echarts-0.1.2.tgz","fileCount":201,"integrity":"sha512-HnV7HVJr8/KM7OIYElCIjoA0nRgf9ZfQC3wjDMzZoNxvOzbldNAkF82hEp9ubUgw5dvxH5tuXxeGf31G1+fSew==","signatures":[{"sig":"MEUCIAIDkgwkmkzMlQdjmjV/0LM3XId1tl3WOS4d3oXRbaOOAiEA379uHsn/H/ybw9kagMXsLn5FPHc8zRhAVD27AmzAPkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509441},"main":"./dist/index.js","type":"module","_from":"file:devstool-shadcn-echarts-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./hooks":{"types":"./dist/hooks/index.d.ts","import":"./dist/hooks/index.js","require":"./dist/hooks/index.cjs"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","require":"./dist/themes/index.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint src registry scripts demo/src demo/tests apps/www","build":"tsdown","verify":"node scripts/verify-phase7.mjs","release":"changeset publish","www:dev":"pnpm -C apps/www dev","lint:fix":"oxlint --fix src registry scripts demo/src demo/tests apps/www","changeset":"changeset","www:build":"pnpm -C apps/www build","type-check":"tsc --noEmit","registry:build":"shadcn build --output apps/www/public/r && node scripts/sync-registry-index.mjs","registry:verify":"node scripts/verify-registry-assets.mjs","version-packages":"changeset version","demo:fetch-assets":"node scripts/fetch-demo-assets.mjs","verify:demo-parity":"node scripts/verify-demo-parity.mjs","demo:generate-examples":"node scripts/generate-demo-examples.mjs"},"_npmUser":{"name":"noobships","email":"creativecoder.crco@gmail.com"},"_resolved":"/tmp/f0c919935dd4dae3644ef23cd1cf071e/devstool-shadcn-echarts-0.1.2.tgz","_integrity":"sha512-HnV7HVJr8/KM7OIYElCIjoA0nRgf9ZfQC3wjDMzZoNxvOzbldNAkF82hEp9ubUgw5dvxH5tuXxeGf31G1+fSew==","repository":{"url":"git+https://github.com/noobships/shadcn-echarts.git","type":"git"},"_npmVersion":"10.9.4","description":"Apache ECharts charts styled to match shadcn/ui's design language with full dark/light mode support","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"culori":"^4.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","oxlint":"^1.0.0","shadcn":"^3.7.0","tsdown":"^0.3.0","echarts":"^6.0.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.0"},"peerDependencies":{"react":">=18.0.0","echarts":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shadcn-echarts_0.1.2_1770928201119_0.6165947976757673","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@devstool/shadcn-echarts","version":"0.2.0","keywords":["echarts","shadcn","charts","react","typescript","data-visualization","dark-mode"],"author":"","license":"MIT","_id":"@devstool/shadcn-echarts@0.2.0","maintainers":[{"name":"noobships","email":"creativecoder.crco@gmail.com"}],"homepage":"https://github.com/noobships/shadcn-echarts#readme","bugs":{"url":"https://github.com/noobships/shadcn-echarts/issues"},"dist":{"shasum":"c156778fbda96b23de2ee6f71c6ff2f3acdcca71","tarball":"https://registry.npmjs.org/@devstool/shadcn-echarts/-/shadcn-echarts-0.2.0.tgz","fileCount":201,"integrity":"sha512-1Qt5QUl6wAD34PHsiTSgMkA4Qe2DpVBF/z2kSGztRR6sQPFAPlvwfR2BND+gOjFdhqfwk4RWOCsx6j1hofJMRg==","signatures":[{"sig":"MEUCIBllBvcoRgM3t6GZk0dYP8kwoST6diamQOKEVj4uxDbMAiEAss32miQS/28y+rpsYyXsVUIdQSaVjLAhhdp9UamXYUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":532829},"main":"./dist/index.js","type":"module","_from":"file:devstool-shadcn-echarts-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./hooks":{"types":"./dist/hooks/index.d.ts","import":"./dist/hooks/index.js","require":"./dist/hooks/index.cjs"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","require":"./dist/themes/index.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint src registry scripts demo/src demo/tests apps/www","build":"tsdown","verify":"node scripts/verify-phase7.mjs","release":"changeset publish","www:dev":"pnpm -C apps/www dev","lint:fix":"oxlint --fix src registry scripts demo/src demo/tests apps/www","changeset":"changeset","www:build":"pnpm -C apps/www build","type-check":"tsc --noEmit","registry:build":"shadcn build --output apps/www/public/r && node scripts/sync-registry-index.mjs","registry:verify":"node scripts/verify-registry-assets.mjs","version-packages":"changeset version","demo:fetch-assets":"node scripts/fetch-demo-assets.mjs","verify:demo-parity":"node scripts/verify-demo-parity.mjs","demo:generate-examples":"node scripts/generate-demo-examples.mjs"},"_npmUser":{"name":"noobships","email":"creativecoder.crco@gmail.com"},"_resolved":"/tmp/9799417cdc656d058d4a14d6277bd924/devstool-shadcn-echarts-0.2.0.tgz","_integrity":"sha512-1Qt5QUl6wAD34PHsiTSgMkA4Qe2DpVBF/z2kSGztRR6sQPFAPlvwfR2BND+gOjFdhqfwk4RWOCsx6j1hofJMRg==","repository":{"url":"git+https://github.com/noobships/shadcn-echarts.git","type":"git"},"_npmVersion":"10.9.4","description":"Apache ECharts charts styled to match shadcn/ui's design language with full dark/light mode support","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"culori":"^4.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","oxlint":"^1.0.0","shadcn":"^3.7.0","tsdown":"^0.3.0","echarts":"^6.0.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.0"},"peerDependencies":{"react":">=18.0.0","echarts":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shadcn-echarts_0.2.0_1771170235030_0.31565478180220574","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@devstool/shadcn-echarts","version":"0.3.0","keywords":["echarts","shadcn","charts","react","typescript","data-visualization","dark-mode"],"author":"","license":"MIT","_id":"@devstool/shadcn-echarts@0.3.0","maintainers":[{"name":"noobships","email":"creativecoder.crco@gmail.com"}],"homepage":"https://github.com/noobships/shadcn-echarts#readme","bugs":{"url":"https://github.com/noobships/shadcn-echarts/issues"},"dist":{"shasum":"ae53ca9a851f1cfe3d74f7f465ba50063c80d5c0","tarball":"https://registry.npmjs.org/@devstool/shadcn-echarts/-/shadcn-echarts-0.3.0.tgz","fileCount":205,"integrity":"sha512-9+0QiSt5hYhMYjaf80yr0mBli82Ewn4bdj6PuAXzwBhfz3+aeuK9B+qPyTFJ9gxj5G5hfOmAzpSvbQU++FTHKQ==","signatures":[{"sig":"MEUCICJUeLgbbVnv/a0iPnRZcViJn8dN+Hy06jKSl4QLlBjPAiEA4YG7/fcmw2Cc0i2r/B+7mkq2hg1lJXW/v7baZaV0A98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584548},"main":"./dist/index.js","type":"module","_from":"file:devstool-shadcn-echarts-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./hooks":{"types":"./dist/hooks/index.d.ts","import":"./dist/hooks/index.js","require":"./dist/hooks/index.cjs"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","require":"./dist/themes/index.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint src registry scripts demo/src demo/tests apps/www","build":"tsdown","verify":"node scripts/verify-phase7.mjs","release":"changeset publish","www:dev":"pnpm -C apps/www dev","lint:fix":"oxlint --fix src registry scripts demo/src demo/tests apps/www","changeset":"changeset","test:core":"pnpm run build && node --test tests/core-behavior.test.mjs","www:build":"pnpm -C apps/www build","type-check":"tsc --noEmit","registry:build":"shadcn build --output apps/www/public/r && node scripts/sync-registry-index.mjs","registry:verify":"node scripts/verify-registry-assets.mjs","version-packages":"changeset version","demo:fetch-assets":"node scripts/fetch-demo-assets.mjs","verify:demo-parity":"node scripts/verify-demo-parity.mjs","demo:generate-examples":"node scripts/generate-demo-examples.mjs"},"_npmUser":{"name":"noobships","email":"creativecoder.crco@gmail.com"},"_resolved":"/tmp/009246e0e69a8aab67839c2a7bb61611/devstool-shadcn-echarts-0.3.0.tgz","_integrity":"sha512-9+0QiSt5hYhMYjaf80yr0mBli82Ewn4bdj6PuAXzwBhfz3+aeuK9B+qPyTFJ9gxj5G5hfOmAzpSvbQU++FTHKQ==","repository":{"url":"git+https://github.com/noobships/shadcn-echarts.git","type":"git"},"_npmVersion":"10.9.4","description":"Apache ECharts charts styled to match shadcn/ui's design language with full dark/light mode support","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"culori":"^4.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","oxlint":"^1.0.0","shadcn":"^3.7.0","tsdown":"^0.3.0","echarts":"^6.0.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@changesets/cli":"^2.29.8","@types/react-dom":"^19.0.0"},"peerDependencies":{"react":">=18.0.0","echarts":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shadcn-echarts_0.3.0_1771187105774_0.41189546442266955","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@devstool/shadcn-echarts","version":"0.4.0","description":"Apache ECharts charts styled to match shadcn/ui's design language with full dark/light mode support","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./hooks":{"types":"./dist/hooks/index.d.ts","import":"./dist/hooks/index.js","require":"./dist/hooks/index.cjs"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","require":"./dist/themes/index.cjs"},"./package.json":"./package.json"},"keywords":["echarts","shadcn","charts","react","typescript","data-visualization","dark-mode"],"author":"","homepage":"https://github.com/noobships/shadcn-echarts#readme","repository":{"type":"git","url":"git+https://github.com/noobships/shadcn-echarts.git"},"bugs":{"url":"https://github.com/noobships/shadcn-echarts/issues"},"license":"MIT","peerDependencies":{"echarts":">=6.0.0","react":">=18.0.0"},"devDependencies":{"@changesets/cli":"^2.29.8","@types/node":"^22.0.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","echarts":"^6.0.0","oxlint":"^1.0.0","react":"^19.2.0","react-dom":"^19.2.0","shadcn":"^3.7.0","tsdown":"^0.3.0","typescript":"^5.7.0"},"dependencies":{"culori":"^4.0.2"},"sideEffects":false,"publishConfig":{"access":"public"},"scripts":{"build":"tsdown","dev":"tsdown --watch","test:core":"pnpm run build && node --test tests/core-behavior.test.mjs","type-check":"tsc --noEmit","lint":"oxlint src registry scripts demo/src demo/tests apps/www","lint:fix":"oxlint --fix src registry scripts demo/src demo/tests apps/www","registry:build":"shadcn build --output apps/www/public/r && node scripts/sync-registry-index.mjs","registry:verify":"node scripts/verify-registry-assets.mjs","verify":"node scripts/verify-phase7.mjs","demo:generate-examples":"node scripts/generate-demo-examples.mjs","demo:fetch-assets":"node scripts/fetch-demo-assets.mjs","verify:demo-parity":"node scripts/verify-demo-parity.mjs","www:dev":"pnpm -C apps/www dev","www:build":"pnpm -C apps/www build","changeset":"changeset","version-packages":"changeset version","release":"changeset publish"},"_id":"@devstool/shadcn-echarts@0.4.0","_integrity":"sha512-t5OyW2JRq5cSc8cTL0KM6gs+GMnmDB/fFi1Wzr/jlP8lIwq1oWHHeM9nn7raAJZn7OQwX8x2hCXUy83jiU3OjA==","_resolved":"/tmp/57d2ec69c0d34734822612886b1bbcad/devstool-shadcn-echarts-0.4.0.tgz","_from":"file:devstool-shadcn-echarts-0.4.0.tgz","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-t5OyW2JRq5cSc8cTL0KM6gs+GMnmDB/fFi1Wzr/jlP8lIwq1oWHHeM9nn7raAJZn7OQwX8x2hCXUy83jiU3OjA==","shasum":"1a36a292a431e828282dec152fd93f2418572cd2","tarball":"https://registry.npmjs.org/@devstool/shadcn-echarts/-/shadcn-echarts-0.4.0.tgz","fileCount":207,"unpackedSize":598238,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC4vT/LwFFJ5p8Ipmm6pNdOV501GKB84ZnM2xhF0G+A9AIgZWBea9DwZV5mHFGVtypBA5gofwqO4GWKIIKwbJR0Nf4="}]},"_npmUser":{"name":"noobships","email":"creativecoder.crco@gmail.com"},"directories":{},"maintainers":[{"name":"noobships","email":"creativecoder.crco@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shadcn-echarts_0.4.0_1777474395637_0.2799339372919303"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-12T19:48:57.131Z","modified":"2026-04-29T14:53:15.957Z","0.1.1":"2026-02-12T19:48:57.435Z","0.1.2":"2026-02-12T20:30:01.298Z","0.2.0":"2026-02-15T15:43:55.226Z","0.3.0":"2026-02-15T20:25:06.021Z","0.4.0":"2026-04-29T14:53:15.842Z"},"bugs":{"url":"https://github.com/noobships/shadcn-echarts/issues"},"license":"MIT","homepage":"https://github.com/noobships/shadcn-echarts#readme","keywords":["echarts","shadcn","charts","react","typescript","data-visualization","dark-mode"],"repository":{"type":"git","url":"git+https://github.com/noobships/shadcn-echarts.git"},"description":"Apache ECharts charts styled to match shadcn/ui's design language with full dark/light mode support","maintainers":[{"name":"noobships","email":"creativecoder.crco@gmail.com"}],"readme":"# @devstool/shadcn-echarts\n\n<div align=\"left\">\n\n**Beautiful shadcn-style ECharts components.**\n\n[![License](https://img.shields.io/badge/License-MIT-white?style=for-the-badge&logo=opensourceinitiative&logoColor=black)](./LICENSE)\n[![npm](https://img.shields.io/badge/npm-@devstool/shadcn--echarts-000000?style=for-the-badge&logo=npm&logoColor=white)](https://www.npmjs.com/package/@devstool/shadcn-echarts)\n[![React](https://img.shields.io/badge/React-000000?style=for-the-badge&logo=react&logoColor=white)](https://react.dev/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-000000?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Apache ECharts](https://img.shields.io/badge/Apache_ECharts-000000?style=for-the-badge)](https://echarts.apache.org/)\n[![Website](https://img.shields.io/badge/Website-shadcn--echarts.devstool.dev-white?style=for-the-badge)](https://shadcn-echarts.devstool.dev)\n\n</div>\n\n`@devstool/shadcn-echarts` started from a personal need: getting Apache ECharts breadth with a modern, minimal shadcn/ui look without rebuilding setup from scratch.\n\nMaintained by **[@noobships](https://github.com/noobships)** under the **devstool** brand.\n\n## Quick Links\n\n- Official website: [https://shadcn-echarts.devstool.dev](https://shadcn-echarts.devstool.dev)\n- Live demo app: [https://shadcn-echarts-demo.devstool.dev/dashboard](https://shadcn-echarts-demo.devstool.dev/dashboard)\n- npm package: [https://www.npmjs.com/package/@devstool/shadcn-echarts](https://www.npmjs.com/package/@devstool/shadcn-echarts)\n- Demo repository: [https://github.com/noobships/shadcn-echarts-demo](https://github.com/noobships/shadcn-echarts-demo)\n- Issues: [https://github.com/noobships/shadcn-echarts/issues](https://github.com/noobships/shadcn-echarts/issues)\n\n## Why This Project Exists\n\n- shadcn-style chart components that feel native in modern dashboards\n- Automatic dark/light mode behavior\n- Minimal defaults that do not fight your own explicit styles\n- Tree-shakeable exports to keep bundle size clean\n- Multiple installation paths: npm package, shadcn registry, or manual ownership\n\n## Installation\n\n### Option 1: Install from npm (recommended)\n\n```bash\npnpm add @devstool/shadcn-echarts echarts react\n```\n\n### Option 2: Install a component from registry URL\n\n```bash\nnpx shadcn@latest add https://shadcn-echarts.devstool.dev/r/bar-chart.json\n```\n\n### Option 3: Install with `@devstool` shadcn namespace\n\nAdd this to your `components.json`:\n\n```json\n{\n  \"registries\": {\n    \"@devstool\": \"https://shadcn-echarts.devstool.dev/r/{name}.json\"\n  }\n}\n```\n\nThen run:\n\n```bash\nnpx shadcn@latest add @devstool/bar-chart\n```\n\n### Option 4: Manual source ownership\n\nCopy files from `registry/default/*` into your project, then modify as needed.\n\n## Quick Usage\n\n```tsx\nimport { BarChart } from \"@devstool/shadcn-echarts\";\n\nexport function MyChart() {\n  return (\n    <BarChart\n      option={{\n        xAxis: { type: \"category\", data: [\"Mon\", \"Tue\", \"Wed\"] },\n        yAxis: { type: \"value\" },\n        series: [{ type: \"bar\", data: [150, 230, 224] }],\n      }}\n      height={320}\n    />\n  );\n}\n```\n\n### First-load animation\n\nCharts now animate on initial mount by default:\n\n- `animateOnMount` (default `true`)\n- `animateOnMountDelayMs` (default `16`)\n\nDisable if you want raw immediate rendering:\n\n```tsx\n<BarChart option={option} animateOnMount={false} />\n```\n\n### Optional: resolve color tokens in custom options\n\nIf you pass deeply customized option trees with CSS-token-like colors, you can pre-resolve them:\n\n```ts\nimport { resolveOptionColorTokens } from \"@devstool/shadcn-echarts/themes\";\n\nconst safeOption = resolveOptionColorTokens(option);\n```\n\n## 2D vs 3D/WebGL Support\n\n- 2D charts work out of the box with `echarts`.\n- 3D/WebGL charts are supported, but require the `echarts-gl` plugin.\n- Browsers already provide WebGL. You do not install WebGL directly.\n- 3D support is currently early and not yet battle-tested across many real-world apps.\n\n### Enable 3D/WebGL charts\n\n```bash\npnpm add echarts-gl\n```\n\nImport `echarts-gl` once in a client entry (for example, your app provider or client layout wrapper):\n\n```tsx\n'use client'\nimport 'echarts-gl'\n```\n\n## Local Development\n\n### Requirements\n\n- Node.js 18+\n- pnpm 9+\n\n### Setup\n\n```bash\npnpm install\n```\n\n### Core scripts\n\n```bash\n# Build library once\npnpm build\n\n# Watch-mode library build\npnpm dev\n\n# Type checks\npnpm type-check\n\n# Lint\npnpm lint\npnpm lint:fix\n```\n\n### Registry and docs site\n\n```bash\n# Build and verify shadcn registry assets\npnpm registry:build\npnpm registry:verify\n\n# Run docs website (apps/www)\npnpm www:dev\npnpm www:build\n```\n\n### Demo workspace\n\n```bash\npnpm -C demo dev\n```\n\n## Repository Layout\n\n```txt\nsrc/                 # Core chart components, hooks, themes, presets\nregistry/            # shadcn registry source files\napps/www/            # Public docs/registry website\ndemo/                # Standalone demo app + visual tests\ndocs/                # Internal docs (style, presets, theming, release)\nscripts/             # Build and verification scripts\n```\n\n## Registry Endpoints\n\n- Index: `https://shadcn-echarts.devstool.dev/registry.json`\n- Item format: `https://shadcn-echarts.devstool.dev/r/<component>.json`\n\n## Contributing\n\nContributions are welcome. Start here: [`CONTRIBUTING.md`](./CONTRIBUTING.md).\n\n## Issues and Feedback\n\nOpen an issue: [https://github.com/noobships/shadcn-echarts/issues](https://github.com/noobships/shadcn-echarts/issues)\n\n## License\n\nMIT License. See [`LICENSE`](./LICENSE).\n","readmeFilename":"README.md"}