{"_id":"@atulya_26/charting-library","_rev":"6-67be5d0a7888dd92b099c1fc5bb9c879","name":"@atulya_26/charting-library","dist-tags":{"latest":"1.0.1"},"versions":{"0.1.0":{"name":"@atulya_26/charting-library","version":"0.1.0","license":"MIT","_id":"@atulya_26/charting-library@0.1.0","maintainers":[{"name":"atulya_26","email":"atulya2612@gmail.com"}],"dist":{"shasum":"008516bbbccb4c4f26fb9168bba2e0818fbae46f","tarball":"https://registry.npmjs.org/@atulya_26/charting-library/-/charting-library-0.1.0.tgz","fileCount":10,"integrity":"sha512-EemDfK6G8GuA4w2xKgJTl9GIevdSsJP4DL5nrZC/rtwnZzboqGSZqDt458HWMJYe/qsLQVfy+5AmcY3qtaEFrA==","signatures":[{"sig":"MEQCIDOQtXcDiZUgbojZenvy43vKItnV6vIautSFrfrqozK5AiAEa8TlAhKIeF18q2TRdde4D0TgM2XwglK/D5I7I2DTJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1142190},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/index.css"},"gitHead":"82afd20fd332b339f5662c10e8a7755493c54678","scripts":{"dev":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean","storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build-storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook build"},"_npmUser":{"name":"atulya_26","email":"atulya2612@gmail.com"},"_npmVersion":"11.9.0","description":"A Figma-driven charting library prototype with Storybook for local npm development.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"25.6.1","dependencies":{"d3-geo":"^3.1.1","us-atlas":"^3.0.1","topojson-client":"^3.1.0","@innovaccer/design-system":"^4.22.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^5.4.14","react":"^18.3.1","react-dom":"^18.3.1","storybook":"8.6.18","typescript":"^5.7.3","@types/react":"^18.3.12","@types/d3-geo":"^3.1.0","@storybook/test":"8.6.18","@types/react-dom":"^18.3.1","@storybook/react-vite":"8.6.18","@types/topojson-client":"^3.1.5","@storybook/addon-essentials":"8.6.18","@storybook/addon-interactions":"8.6.18"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/charting-library_0.1.0_1777011759140_0.1715435904621856","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atulya_26/charting-library","version":"0.1.1","license":"MIT","_id":"@atulya_26/charting-library@0.1.1","maintainers":[{"name":"atulya_26","email":"atulya2612@gmail.com"}],"dist":{"shasum":"57f7e57223e99c808557cb6cf0d5caf94eeda556","tarball":"https://registry.npmjs.org/@atulya_26/charting-library/-/charting-library-0.1.1.tgz","fileCount":10,"integrity":"sha512-O2n7CiYtufP9Bvl7p884mtv0oWpAME4eanEoXUhmt7KxmHdjpXAZ4LfqDz8rbJxoClJjr2y5wHZ5zCA8mVa+uA==","signatures":[{"sig":"MEUCIQCTKiQFJeaN+XeYJdej8HDlPLnWnUE4JQUqzMkJJKUPWwIgQLM/WJDPN5a0P595s8r6kfFHz48fPzdiZYQEKGui0sY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1316377},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/index.css"},"gitHead":"cf0f2f41868a6f4237a6ad3a76abe015edc97246","scripts":{"dev":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean","storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build-storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook build"},"_npmUser":{"name":"atulya_26","email":"atulya2612@gmail.com"},"_npmVersion":"10.7.0","description":"A Figma-driven charting library prototype with Storybook for local npm development.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"20.15.0","dependencies":{"d3-geo":"^3.1.1","us-atlas":"^3.0.1","topojson-client":"^3.1.0","@innovaccer/design-system":"^4.22.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^5.4.14","react":"^18.3.1","react-dom":"^18.3.1","storybook":"8.6.18","typescript":"^5.7.3","@types/react":"^18.3.12","@types/d3-geo":"^3.1.0","@storybook/test":"8.6.18","@types/react-dom":"^18.3.1","@storybook/react-vite":"8.6.18","@types/topojson-client":"^3.1.5","@storybook/addon-essentials":"8.6.18","@storybook/addon-interactions":"8.6.18"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/charting-library_0.1.1_1777389359824_0.1399510108934765","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atulya_26/charting-library","version":"0.1.2","license":"MIT","_id":"@atulya_26/charting-library@0.1.2","maintainers":[{"name":"atulya_26","email":"atulya2612@gmail.com"}],"dist":{"shasum":"6017de9646fb49ac84880ea4c338a9db8d13c994","tarball":"https://registry.npmjs.org/@atulya_26/charting-library/-/charting-library-0.1.2.tgz","fileCount":10,"integrity":"sha512-u2p4bdbt5vMPQB7lOEmeI6J9XhDoCdZcc9qkq6x9bG/IH/m4jZ3aauInjHXsBqkhgwExYvUxmq810LLSxWKIWA==","signatures":[{"sig":"MEUCIExmVjYeN9/wdYJL0+a7YnufE02aL80w+a01aDaXDiU2AiEA3W5qKSArpIDdW7lo86CtViVVrATQ9LTtNMRvHu4dcEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1320011},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/index.css"},"gitHead":"a3ef167f3b1b6c46cd72b432cc4ebe3fb86e66a4","scripts":{"dev":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean","storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build-storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook build"},"_npmUser":{"name":"atulya_26","email":"atulya2612@gmail.com"},"_npmVersion":"10.7.0","description":"A Figma-driven charting library prototype with Storybook for local npm development.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"20.15.0","dependencies":{"d3-geo":"^3.1.1","us-atlas":"^3.0.1","topojson-client":"^3.1.0","@innovaccer/design-system":"^4.22.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^5.4.14","react":"^18.3.1","react-dom":"^18.3.1","storybook":"8.6.18","typescript":"^5.7.3","@types/react":"^18.3.12","@types/d3-geo":"^3.1.0","@storybook/test":"8.6.18","@types/react-dom":"^18.3.1","@storybook/react-vite":"8.6.18","@types/topojson-client":"^3.1.5","@storybook/addon-essentials":"8.6.18","@storybook/addon-interactions":"8.6.18"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/charting-library_0.1.2_1777389875030_0.8941491726538213","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atulya_26/charting-library","version":"0.1.3","license":"MIT","_id":"@atulya_26/charting-library@0.1.3","maintainers":[{"name":"atulya_26","email":"atulya2612@gmail.com"}],"dist":{"shasum":"17bc620d3ca40269fb25d9176d496606ea2afc1b","tarball":"https://registry.npmjs.org/@atulya_26/charting-library/-/charting-library-0.1.3.tgz","fileCount":10,"integrity":"sha512-Q3cx/RsuqvvOEwIaEfBh9iQ4nr7TkROQk9Nl6NueBg0LK/4JVpoW5MOZJT189wMk6FYAppbDu6iFbsDbeqWFbQ==","signatures":[{"sig":"MEUCIQC305QGrFMOukyHVRCsbx5CY9DW5mA4pfRX3VTTz+PL+gIgEO5UNfljs4dFfcIR8qcV2LbWxhrBC3bTolvkaEONQWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1444161},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/index.css"},"gitHead":"13b59140f5781586522dd343564c427d9854ea0a","scripts":{"dev":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean","storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build-storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook build"},"_npmUser":{"name":"atulya_26","email":"atulya2612@gmail.com"},"_npmVersion":"10.7.0","description":"A Figma-driven charting library prototype with Storybook for local npm development.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"20.15.0","dependencies":{"d3-geo":"^3.1.1","us-atlas":"^3.0.1","topojson-client":"^3.1.0","@innovaccer/design-system":"^4.22.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^5.4.14","react":"^18.3.1","react-dom":"^18.3.1","storybook":"8.6.18","typescript":"^5.7.3","@types/react":"^18.3.12","@types/d3-geo":"^3.1.0","@storybook/test":"8.6.18","@types/react-dom":"^18.3.1","@storybook/react-vite":"8.6.18","@types/topojson-client":"^3.1.5","@storybook/addon-essentials":"8.6.18","@storybook/addon-interactions":"8.6.18"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/charting-library_0.1.3_1777563537073_0.044629283830240674","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@atulya_26/charting-library","version":"0.1.4","keywords":["react","charts","charting","storybook","data-visualization","dashboard","analytics","design-system","figma","bar-chart","line-chart","donut-chart","gauge","sankey","map-chart","healthcare"],"license":"MIT","_id":"@atulya_26/charting-library@0.1.4","maintainers":[{"name":"atulya_26","email":"atulya2612@gmail.com"}],"homepage":"https://atulya26.github.io/ChartingLibrary/","bugs":{"url":"https://github.com/Atulya26/ChartingLibrary/issues"},"dist":{"shasum":"848f636cec62cef41929577bac32083082cdb685","tarball":"https://registry.npmjs.org/@atulya_26/charting-library/-/charting-library-0.1.4.tgz","fileCount":10,"integrity":"sha512-BE3DW+qbW3ahyavdTKQEug3ZMO4CFwW11UiSfsMA2ka5gbk+kbKC3bG9Z53sLBFYs/bXeJHg5yOWg46ntl+3YQ==","signatures":[{"sig":"MEUCID3PWO1IJLhncNkXppXrauyeBaLv7cgnzFKXAAwcTyFcAiEA6Qt9aAUBsIkqHh04gEiDRKT5EIDxK6xeD4ptwsKg0aQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1445198},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/index.css"},"gitHead":"6701889d8acf2bf3a81dc5632cf4cc37c979e20a","scripts":{"dev":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean","storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build-storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook build"},"_npmUser":{"name":"atulya_26","email":"atulya2612@gmail.com"},"repository":{"url":"git+https://github.com/Atulya26/ChartingLibrary.git","type":"git"},"_npmVersion":"10.7.0","description":"A Figma-driven charting library prototype with Storybook for local npm development.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"20.15.0","dependencies":{"d3-geo":"^3.1.1","us-atlas":"^3.0.1","topojson-client":"^3.1.0","@innovaccer/design-system":"^4.22.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vite":"^5.4.14","react":"^18.3.1","react-dom":"^18.3.1","storybook":"8.6.18","typescript":"^5.7.3","@types/react":"^18.3.12","@types/d3-geo":"^3.1.0","@storybook/test":"8.6.18","@types/react-dom":"^18.3.1","@storybook/react-vite":"8.6.18","@types/topojson-client":"^3.1.5","@storybook/addon-essentials":"8.6.18","@storybook/addon-interactions":"8.6.18"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/charting-library_0.1.4_1777564372872_0.0017983391169067442","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@atulya_26/charting-library","version":"1.0.1","description":"A Figma-aligned React charting library for product dashboards and healthcare analytics.","license":"MIT","homepage":"https://atulya26.github.io/ChartingLibrary/","repository":{"type":"git","url":"git+https://github.com/Atulya26/ChartingLibrary.git"},"bugs":{"url":"https://github.com/Atulya26/ChartingLibrary/issues"},"keywords":["react","charts","charting","storybook","data-visualization","dashboard","analytics","design-system","figma","bar-chart","line-chart","donut-chart","gauge","sankey","map-chart","healthcare"],"engines":{"node":">=18.0.0"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/index.css"},"sideEffects":["*.css"],"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean","dev":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook dev --port 6006 --host 0.0.0.0","build-storybook":"HOME=$(pwd)/.storybook-home CI=1 STORYBOOK_DISABLE_TELEMETRY=1 storybook build","typecheck":"tsc --noEmit","lint":"eslint .","format:check":"prettier --check .","format:write":"prettier --write .","size":"npm run build && size-limit","test-storybook":"test-storybook --url http://127.0.0.1:6006 --maxWorkers=1","chromatic":"chromatic --exit-zero-on-changes","chromatic:ci":"chromatic"},"size-limit":[{"name":"ESM bundle","path":"dist/index.js","limit":"55 KB"},{"name":"CSS bundle","path":"dist/index.css","limit":"5 KB"}],"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"devDependencies":{"@axe-core/playwright":"^4.11.3","@eslint/js":"^9.39.4","@size-limit/file":"^12.1.0","@storybook/addon-a11y":"^8.6.18","@storybook/addon-essentials":"8.6.18","@storybook/addon-interactions":"8.6.18","@storybook/react-vite":"8.6.18","@storybook/test":"8.6.18","@storybook/test-runner":"^0.19.1","@types/d3-geo":"^3.1.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@types/seedrandom":"^3.0.8","@types/topojson-client":"^3.1.5","axe-playwright":"^2.2.2","chromatic":"^16.6.3","eslint":"^9.39.4","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-storybook":"^0.12.0","http-server":"^14.1.1","prettier":"^3.8.3","react":"^18.3.1","react-dom":"^18.3.1","seedrandom":"^3.0.5","size-limit":"^12.1.0","storybook":"8.6.18","tsup":"^8.4.0","typescript":"^5.7.3","typescript-eslint":"^8.59.1","vite":"^5.4.14","wait-on":"^7.2.0"},"dependencies":{"@innovaccer/design-system":"^4.22.0","d3-geo":"^3.1.1","topojson-client":"^3.1.0","us-atlas":"^3.0.1"},"_id":"@atulya_26/charting-library@1.0.1","gitHead":"655c38afb9055212a45f20968714b723994ea1b2","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XFxnhmI898feC9QBUug+nX/O5FUU15OamZON8Zty/ZfXmdjK+9k78KD0877ItdEp7RiBcC72GlFfqyBdHhuyjQ==","shasum":"706323d55572275e348dcf2e94b26bdb62c41b60","tarball":"https://registry.npmjs.org/@atulya_26/charting-library/-/charting-library-1.0.1.tgz","fileCount":14,"unpackedSize":1797743,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atulya_26%2fcharting-library@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDsv/w70uB9xVz/3XW2Uy6ykGojJokhK2LNF3vhHS01tAIhAPwKUkz4g0Uy7HG4tXwh4oD+FuprIa7Js8qZXaDSAyq1"}]},"_npmUser":{"name":"atulya_26","email":"atulya2612@gmail.com"},"directories":{},"maintainers":[{"name":"atulya_26","email":"atulya2612@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/charting-library_1.0.1_1777655780023_0.3247027101004316"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T06:22:39.069Z","modified":"2026-05-01T17:16:20.526Z","0.1.0":"2026-04-24T06:22:39.334Z","0.1.1":"2026-04-28T15:16:00.000Z","0.1.2":"2026-04-28T15:24:35.212Z","0.1.3":"2026-04-30T15:38:57.241Z","0.1.4":"2026-04-30T15:52:53.062Z","1.0.1":"2026-05-01T17:16:20.225Z"},"bugs":{"url":"https://github.com/Atulya26/ChartingLibrary/issues"},"license":"MIT","homepage":"https://atulya26.github.io/ChartingLibrary/","keywords":["react","charts","charting","storybook","data-visualization","dashboard","analytics","design-system","figma","bar-chart","line-chart","donut-chart","gauge","sankey","map-chart","healthcare"],"repository":{"type":"git","url":"git+https://github.com/Atulya26/ChartingLibrary.git"},"description":"A Figma-aligned React charting library for product dashboards and healthcare analytics.","maintainers":[{"name":"atulya_26","email":"atulya2612@gmail.com"}],"readme":"# @atulya_26/charting-library\n\n[![CI](https://github.com/Atulya26/ChartingLibrary/actions/workflows/ci.yml/badge.svg)](https://github.com/Atulya26/ChartingLibrary/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/@atulya_26/charting-library.svg)](https://www.npmjs.com/package/@atulya_26/charting-library)\n[![Live Storybook](https://img.shields.io/badge/storybook-live-ff4785)](https://atulya26.github.io/ChartingLibrary/)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Atulya26/ChartingLibrary/blob/main/package.json)\n\nA Figma-aligned React charting library for product dashboards, analytics cards, and healthcare-style reporting experiences.\n\nThe package is built around reusable chart primitives, polished Storybook props, MDS-compatible chrome, accessibility hooks, performance guardrails, and realistic chart states for loading, empty, and error cases.\n\n**Live demo:** [atulya26.github.io/ChartingLibrary](https://atulya26.github.io/ChartingLibrary/)\n\n## Live Storybook\n\nExplore the charts without installing the package:\n\n[Open the live Storybook](https://atulya26.github.io/ChartingLibrary/)\n\nThe live Storybook is deployed from the `main` branch through GitHub Pages, so merged chart and documentation updates become shareable from the repository.\n\n## Install\n\n```bash\nnpm install @atulya_26/charting-library\n```\n\nPeer dependencies:\n\n```bash\nnpm install react react-dom\n```\n\nImport the package CSS once in your app entry point:\n\n```tsx\nimport '@atulya_26/charting-library/styles.css';\n```\n\nThen import charts as needed:\n\n```tsx\nimport { BarChart, DonutChart, LineChart } from '@atulya_26/charting-library';\n```\n\n## Available Charts\n\nThe library currently includes 10 chart/data-display components:\n\n- `BarChart`: grouped, stacked, horizontal, and distribution-style bar charts.\n- `ComboChart`: bar plus line overlays for mixed metric views.\n- `LineChart`: single-axis and dual-axis trend charts.\n- `DonutChart`: full donut charts with labels, legends, rounded caps, and fill styles.\n- `HalfDonutChart`: gauge-style half donut progress charts.\n- `HistogramChart`: distribution bins with optional overlay support.\n- `Sparkline`: compact KPI trend lines.\n- `PointerScale`: segmented risk/score scale with a pointer and optional target.\n- `MapBubbleChart`: US/state map bubble views and table fallback.\n- `SankeyChart`: flow charts with configurable node/link behavior.\n\nSupporting state components:\n\n- `ChartLoadingSkeleton`: chart-aware loading skeletons for each chart type.\n- `ChartStateCard`: empty and error states using chart-card chrome.\n\nSupporting building blocks:\n\n- `ChartCard`, `ChartHeader`, `ChartShell`, `ChartToolbar`\n- `Legend`, `LegendMarker`, `TooltipPopover`, `ChartHoverCard`\n- `XAxis`, `YAxis`, `GridLines`, `BarMark`, `DonutRing`, `LineSeries`\n\n## Quick Example\n\n```tsx\nimport '@atulya_26/charting-library/styles.css';\nimport { BarChart, chartTokens } from '@atulya_26/charting-library';\n\nexport function RevenueByPayer() {\n  return (\n    <BarChart\n      title=\"Revenue generated by type of payer\"\n      categories={['Commercial', 'Medicaid', 'Medicare']}\n      yAxis={{ title: '% of total revenue generated', ticks: [0, 25, 50, 75, 100] }}\n      series={[\n        {\n          key: 'generated',\n          label: 'Revenue generated',\n          fill: chartTokens.categorical.primary,\n          data: [45, 40, 20]\n        },\n        {\n          key: 'targeted',\n          label: 'Revenue targeted',\n          fill: chartTokens.neutral.surfaceTint,\n          data: [70, 65, 30]\n        }\n      ]}\n      showHoverCard\n    />\n  );\n}\n```\n\n## Data Input\n\nChart components receive typed JavaScript props. This keeps the core API predictable whether your data comes from an API, CSV, JSON, or a local mock.\n\nCSV can still be used, but it should be parsed and transformed before passing data into the chart:\n\n```csv\npayer,revenue_generated,revenue_targeted\nCommercial,45,70\nMedicaid,40,65\nMedicare,20,30\n```\n\n```tsx\nconst categories = rows.map((row) => row.payer);\n\nconst series = [\n  {\n    key: 'generated',\n    label: 'Revenue generated',\n    data: rows.map((row) => Number(row.revenue_generated))\n  },\n  {\n    key: 'targeted',\n    label: 'Revenue targeted',\n    data: rows.map((row) => Number(row.revenue_targeted))\n  }\n];\n```\n\nThis adapter-style approach keeps CSV parsing outside the chart renderer and makes the same chart usable with backend API responses.\n\n## Accessibility\n\nEvery chart graphic includes a generated accessible title and description. You can override them\nwhen product language needs to be more specific:\n\n```tsx\n<LineChart\n  title=\"Average PMPM Trend\"\n  ariaLabel=\"Average PMPM trend over four quarters\"\n  ariaDescription=\"Line chart showing current PMPM, projected PMPM, and target values.\"\n  categories={['Q1', 'Q2', 'Q3', 'Q4']}\n  series={series}\n/>\n```\n\nKeyboard inspection is intentionally opt-in so existing chart visuals and tab order do not change by\ndefault. Enable it per chart when you want keyboard users to inspect marks, segments, bubbles, and\nnodes:\n\n```tsx\n<BarChart\n  enableKeyboardNavigation\n  title=\"Revenue by payer\"\n  categories={categories}\n  series={series}\n/>\n```\n\nKeyboard behavior:\n\n| Key                          | Action                                                                     |\n| ---------------------------- | -------------------------------------------------------------------------- |\n| `Tab`                        | Focus the chart, then leave naturally on the next tab stop                 |\n| `Arrow Left` / `Arrow Right` | Move to the previous or next data item                                     |\n| `Arrow Up` / `Arrow Down`    | Move across series in multi-series charts; otherwise previous or next item |\n| `Home` / `End`               | Jump to the first or last item in the current series                       |\n| `Enter` / `Space`            | Trigger the chart item click callback when one exists                      |\n| `Escape`                     | Clear keyboard focus state and dismiss the hover card                      |\n\nFocused chart items reuse the same hover-card behavior and visual treatment as pointer hover. The\nlibrary also honors `prefers-reduced-motion` for chart loading and hover transitions.\n\nThe default palette and text tokens have been audited for the current chart backgrounds. If you pass\ncustom colors, keep text at WCAG AA `4.5:1` contrast and graphical marks at `3:1` contrast against\nthe chart background. See [`docs/a11y-audit.md`](./docs/a11y-audit.md) for the current audit notes.\n\n## Performance\n\nMost dashboard-sized charts render smoothly with typical product datasets. For larger line-like\ndatasets, `LineChart`, `ComboChart`, and `Sparkline` accept an opt-in `downsample` prop that uses\nLTTB to preserve the visual shape while rendering fewer points.\n\n```tsx\n<LineChart\n  title=\"Daily PMPM Trend\"\n  categories={categories} // 10,000 labels\n  series={series} // one or more 10,000-point series\n  downsample={1000} // render at most 1,000 points per line series\n/>\n```\n\nRecommended values are usually `2x` to `4x` the chart's pixel width. For example, an `800px`-wide\nchart generally looks good with `downsample={1500}` to `downsample={3000}`. Lower values can be\nuseful for dense dashboards, but may remove subtle local movement.\n\nDownsampling is off by default. When `downsample` is omitted, charts render the original data. When\nthe data already has fewer points than the requested limit, the original array is passed through\nunchanged. Hover cards and keyboard navigation continue to use the original full dataset;\ndownsampling only affects rendered line geometry.\n\nLTTB expects data sorted by x ascending. The built-in chart integrations use the array index as x, so\nthe current chart API is already sorted. If you use the utility directly with custom `{ x, y }`\npoints, sort first. LTTB preserves visual shape; it is not a statistical aggregation method for\nmeans, medians, or percentiles.\n\nYou can also use the utility upstream:\n\n```tsx\nimport { downsampleLttb } from '@atulya_26/charting-library';\n\nconst compact = downsampleLttb(rawPoints, 1000);\n```\n\n## Chart States\n\nUse chart states when data is loading, unavailable, or failed:\n\n```tsx\nimport { ChartLoadingSkeleton, ChartStateCard } from '@atulya_26/charting-library';\n\nexport function LoadingRevenueChart() {\n  return <ChartLoadingSkeleton chartType=\"bar\" title=\"Revenue\" animate />;\n}\n\nexport function EmptyRevenueChart() {\n  return (\n    <ChartStateCard\n      variant=\"empty\"\n      title=\"Revenue\"\n      headline=\"No revenue data yet\"\n      description=\"Try a different time range or adjust your filters.\"\n    />\n  );\n}\n```\n\nSupported loading skeleton types:\n\n```ts\n'bar' |\n  'combo' |\n  'line' |\n  'donut' |\n  'half-donut' |\n  'histogram' |\n  'sparkline' |\n  'pointer-scale' |\n  'map-bubble' |\n  'sankey';\n```\n\n## Local Development\n\nThe source code is available on GitHub:\n\n```text\nhttps://github.com/Atulya26/ChartingLibrary\n```\n\nIf you are viewing this package from npm and want to contribute, open an issue or pull request in the GitHub repository:\n\n- GitHub repository: [Atulya26/ChartingLibrary](https://github.com/Atulya26/ChartingLibrary)\n- npm package: [@atulya_26/charting-library](https://www.npmjs.com/package/@atulya_26/charting-library)\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\nRun Storybook:\n\n```bash\nnpm run storybook\n```\n\nStorybook runs on:\n\n```text\nhttp://localhost:6006\n```\n\nBuild the package:\n\n```bash\nnpm run build\n```\n\nBuild Storybook:\n\n```bash\nnpm run build-storybook\n```\n\nServe a static Storybook build:\n\n```bash\npython3 -m http.server 6030 -d storybook-static\n```\n\nThen open:\n\n```text\nhttp://localhost:6030\n```\n\n## Public API\n\nThe `1.0.0` package root intentionally exports chart components, shared chart chrome, chart\nprimitives, public data types, token helpers, Sankey layout helpers, and the `downsampleLttb`\nutility. The full inventory is documented in [`docs/api-inventory.md`](./docs/api-inventory.md).\n\nAvoid importing private source files such as `src/utils/*`, `src/stories/*`, or `src/chartUtils.tsx`.\nIf you need an internal helper promoted to public API, open an issue with the use case.\n\n`chartTokens` is public and read-only for `1.0.0`. It is useful for matching custom chart colors to\nthe default visual language, but mutating it at runtime is not a supported theming API.\n\nSankey layout output is deterministic for a given input, but exact node coordinates and ribbon\nrouting are not part of the semver contract. This keeps room for future layout-quality improvements\nwithout requiring a major version.\n\n## Quality Gates\n\nPull requests are expected to pass typecheck, lint, formatting, package build,\nStorybook build, and package size checks. Visual changes should be reviewed in\nChromatic once the project token and baseline are configured.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for local setup, validation commands,\nvisual review expectations, and release workflow notes.\n\n## Package Usage Notes\n\n- Import `@atulya_26/charting-library/styles.css` once per app.\n- The library uses `@innovaccer/design-system` CSS internally and imports it from the package entry.\n- React and React DOM are peer dependencies. `1.0.0` supports React `18`.\n- Map charts use `d3-geo`, `topojson-client`, and `us-atlas`.\n- Published package output lives in `dist/`.\n- Consumer installs support Node `>=18.0.0`. Local library development uses the Node version in\n  `.nvmrc`.\n\n## Versioning\n\nThis package follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) from `1.0.0`\nonward:\n\n- **Major** releases may include breaking API changes and will include migration notes.\n- **Minor** releases add features without breaking the stable public API.\n- **Patch** releases include compatible fixes and documentation updates.\n\nSee [MIGRATION.md](./MIGRATION.md) for migration notes and policy details.\n\n## Release Flow\n\nFor maintainers:\n\n```bash\ngit pull origin main\nnpm run build\nnpm run size\nnpm publish --access public --provenance\n```\n\nPrefer the repository's manual release workflow for official publishes so package build, size, and\nprovenance checks run in a clean environment.\n\n## Links\n\n- GitHub: [Atulya26/ChartingLibrary](https://github.com/Atulya26/ChartingLibrary)\n- npm: [@atulya_26/charting-library](https://www.npmjs.com/package/@atulya_26/charting-library)\n- Live Storybook: [atulya26.github.io/ChartingLibrary](https://atulya26.github.io/ChartingLibrary/)\n- Contributions: [open an issue or pull request](https://github.com/Atulya26/ChartingLibrary/issues)\n","readmeFilename":"README.md"}