{"_id":"@adaptive-ds/mdi","_rev":"3-cf202e1b8a8962775243e90a9284c10f","name":"@adaptive-ds/mdi","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@adaptive-ds/mdi","version":"0.1.0","keywords":["mdi","material-design-icons","icons","svg","path","esm","typescript","pictogrammers","tree-shake","adaptive-ds"],"author":{"name":"David Siewert"},"license":"Apache-2.0","_id":"@adaptive-ds/mdi@0.1.0","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/mdi","bugs":{"url":"https://github.com/david1gp/mdi/issues"},"dist":{"shasum":"08d4bd5d130b324326ed2dcd2c52faa6cf677bb6","tarball":"https://registry.npmjs.org/@adaptive-ds/mdi/-/mdi-0.1.0.tgz","fileCount":14905,"integrity":"sha512-g+quxzY6afJpFU3V8m7EqNeIkuoLlNy4M3nE6Ijr0DcR2MvvQUInUrNGokrxqykOXtGRtYGjV3clFy5Lu+kxLg==","signatures":[{"sig":"MEUCIQDGNifSd096uxevI4myhC7CLVrSTSy/hWhPiV3CmYTvEAIgXqHGgQQnkEJUXiI+KQ8+fBwYpibT+ZJmQ0cVyJubvXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5754439},"type":"module","exports":{"./*.js":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./brands/*.js":{"types":"./dist/brands/*.d.ts","import":"./dist/brands/*.js"}},"gitHead":"265606f0ca306f1dc325ebb27c48276bd3b72eb8","private":false,"scripts":{"dev":"bun run ops/iconsGenerate.ts --watch","tsc":"tsc --noEmit","test":"bun test","build":"rm -rf ./dist && bun run generate && tsc -p ./tsconfig.lib.json","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","deploy":"bash ./ops/deploy.sh","format":"biome format --write ops test package.json tsconfig.json tsconfig.lib.json biome.json README.md","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh","generate":"bun run ops/iconsGenerate.ts","update:commit":"bun update && git add package.json && bun run tsc && git commit -m \"chore(deps): update dependencies\" && git push"},"_npmUser":{"name":"david1gp","email":"david1gruppenplan@gmail.com"},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/mdi.git","type":"git"},"_npmVersion":"11.19.0","description":"Material Design Icons as one ESM file per path string. Import only the icons you use — no barrel, no CJS, no extra runtime deps.","directories":{},"sideEffects":false,"_nodeVersion":"26.7.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/mdi_0.1.0_1786571781942_0.6489683410311207","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adaptive-ds/mdi","version":"0.1.1","keywords":["mdi","material-design-icons","icons","svg","path","esm","typescript","pictogrammers","tree-shake","adaptive-ds"],"author":{"name":"David Siewert"},"license":"Apache-2.0","_id":"@adaptive-ds/mdi@0.1.1","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/mdi","bugs":{"url":"https://github.com/david1gp/mdi/issues"},"dist":{"shasum":"298005c1f38d8a4b27c66c3ee7871a5543b667a9","tarball":"https://registry.npmjs.org/@adaptive-ds/mdi/-/mdi-0.1.1.tgz","fileCount":14905,"integrity":"sha512-cnpvHu6OtrCIa3qjfKGtOKluEeC8CHOFuzN5m8WJaVpbavKgLDaAKMYbVwNwlihTgFhqIMqJKQkIq0XrYI4NBQ==","signatures":[{"sig":"MEYCIQC6U5NF1fdAYLNNan9/sqbVmOpeU83TLVV6l91SpsvJjQIhAP2rMMOJtVfuohE48wfc1+3m5PMcXRegIG7z0tidW+iR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fmdi@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5755788},"type":"module","exports":{"./*.js":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./brands/*.js":{"types":"./dist/brands/*.d.ts","import":"./dist/brands/*.js"}},"gitHead":"975ca24010a1ad23adcee153ce61cf0aa9b6f474","private":false,"scripts":{"dev":"bun run ops/iconsGenerate.ts --watch","tsc":"tsc --noEmit","test":"bun test","build":"rm -rf ./dist && bun run generate && tsc -p ./tsconfig.lib.json","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","deploy":"bash ./ops/deploy.sh","format":"biome format --write ops test package.json tsconfig.json tsconfig.lib.json biome.json README.md","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh","generate":"bun run ops/iconsGenerate.ts","update:commit":"bun update && git add package.json && bun run tsc && git commit -m \"chore(deps): update dependencies\" && git push"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e1760e8c-468c-4dfb-9030-20ebedb921bf"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/mdi.git","type":"git"},"_npmVersion":"12.0.2","description":"Material Design Icons as one ESM file per path string. Import only the icons you use — no barrel, no CJS, no extra runtime deps.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/mdi_0.1.1_1786594315614_0.13062755893904554","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@adaptive-ds/mdi","version":"0.1.2","description":"Material Design Icons as one ESM file per path string. Import only the icons you use — no barrel, no CJS, no extra runtime deps.","keywords":["mdi","material-design-icons","icons","svg","path","esm","typescript","pictogrammers","tree-shake","adaptive-ds"],"homepage":"https://github.com/david1gp/mdi","repository":{"type":"git","url":"git+https://github.com/david1gp/mdi.git"},"bugs":{"url":"https://github.com/david1gp/mdi/issues"},"author":{"name":"David Siewert"},"license":"Apache-2.0","type":"module","private":false,"sideEffects":false,"scripts":{"dev":"bun run ops/iconsGenerate.ts --watch","generate":"bun run ops/iconsGenerate.ts","test":"bun test","test:w":"bun test --watch","build":"rm -rf ./dist && bun run generate && tsc -p ./tsconfig.lib.json","tsc":"tsc --noEmit","release":"bash ./ops/release.sh","deploy":"bash ./ops/deploy.sh","format":"biome format --write ops test package.json tsconfig.json tsconfig.lib.json biome.json README.md","update":"bun update","update:commit":"bun update && git add package.json && bun run tsc && git commit -m \"chore(deps): update dependencies\" && git push","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules"},"devDependencies":{"@biomejs/biome":"^2.5.2","@types/bun":"^1.3.14","typescript":"^6.0.3"},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"exports":{"./*.js":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./brands/*.js":{"types":"./dist/brands/*.d.ts","import":"./dist/brands/*.js"}},"gitHead":"66d4afb9481d9a1a293dede75599d51466e0feb3","_id":"@adaptive-ds/mdi@0.1.2","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-gtjYNJOBlgk5XsSdJU3fHCE36pkRkpx4MLpUCtsjLnY12IxQ7Qw0DhCyUb2TDr9pt9+rxnTIZi7XNbC0sre2GA==","shasum":"a3a47044b2a6e77ba5c3e0f5bdcf28767704e8cd","tarball":"https://registry.npmjs.org/@adaptive-ds/mdi/-/mdi-0.1.2.tgz","fileCount":14905,"unpackedSize":5764725,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fmdi@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCRtfapaiYT3nqd1MCH+hV2hJuzSzE2VYHRVEM6fzWmJQIgCTFQzyf+qyspykeRdtHn2OENVDlYd5xX/W9S5AhX0zE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e1760e8c-468c-4dfb-9030-20ebedb921bf"}},"directories":{},"maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mdi_0.1.2_1786596233216_0.38753124821040186"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-12T21:56:21.573Z","modified":"2026-08-13T04:43:53.744Z","0.1.0":"2026-08-12T21:56:22.223Z","0.1.1":"2026-08-13T04:11:55.806Z","0.1.2":"2026-08-13T04:43:53.421Z"},"bugs":{"url":"https://github.com/david1gp/mdi/issues"},"author":{"name":"David Siewert"},"license":"Apache-2.0","homepage":"https://github.com/david1gp/mdi","keywords":["mdi","material-design-icons","icons","svg","path","esm","typescript","pictogrammers","tree-shake","adaptive-ds"],"repository":{"type":"git","url":"git+https://github.com/david1gp/mdi.git"},"description":"Material Design Icons as one ESM file per path string. Import only the icons you use — no barrel, no CJS, no extra runtime deps.","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"readme":"# @adaptive-ds/mdi\n\nMaterial Design Icons as one ESM file per path string. Import only the icons you use — nothing else ships into your bundle.\n\nTypical MDI JS packages ship 7,400+ icons as one 2.8 MB file. Bundlers can tree-shake that, but TypeScript, install size, and CommonJS still pay for every icon.\n\n- **One file per icon** – `@adaptive-ds/mdi/mdiAccount.js`\n- **No barrel** – there is no `from \"@adaptive-ds/mdi\"`. Always import a subpath.\n- **ESM only** – no CommonJS, no UMD\n- **Zero runtime deps** – each file is a path string constant\n- **Typed as `const`** – one `.d.ts` per icon\n\nSame names and path strings as [`@mdi/js`](https://www.npmjs.com/package/@mdi/js). Render the SVG yourself.\n\nQuick Links\n\n- code - https://github.com/david1gp/mdi\n- npm - https://www.npmjs.com/package/@adaptive-ds/mdi\n- browse icons - https://pictogrammers.com/library/mdi/\n\n## Install\n\n```bash\nbun add @adaptive-ds/mdi\n# or\nnpm install @adaptive-ds/mdi\n```\n\n## Usage\n\nAlways import a **specific file**. The `.js` extension is required (NodeNext / bundler resolution).\n\n```ts\nimport { mdiAccount } from \"@adaptive-ds/mdi/mdiAccount.js\"\nimport { mdiGithub } from \"@adaptive-ds/mdi/mdiGithub.js\"\nimport { mdiEmailOutline } from \"@adaptive-ds/mdi/mdiEmailOutline.js\"\n\nconsole.log(mdiAccount)\n// \"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12...\"\n```\n\nThis package ships path strings only. Render them in your own SVG:\n\n```tsx\n<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n  <path d={mdiAccount} />\n</svg>\n```\n\n### Migrating from `@mdi/js`\n\n```diff\n- import { mdiAccount, mdiGithub } from \"@mdi/js\"\n+ import { mdiAccount } from \"@adaptive-ds/mdi/mdiAccount.js\"\n+ import { mdiGithub } from \"@adaptive-ds/mdi/mdiGithub.js\"\n```\n\nNames and path data match [`@mdi/js@7.4.47`](https://www.npmjs.com/package/@mdi/js).\n\n### Icon component (Solid + Tailwind)\n\nA reference implementation you can copy into a UI kit. It assumes [Tailwind](https://tailwindcss.com/) for sizing and `fill-current`. `cn` is inlined so you do not need a utils import.\n\n```tsx\nimport { type JSX, splitProps } from \"solid-js\"\nimport { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nfunction cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n\ntype IconProps = JSX.SvgSVGAttributes<SVGSVGElement> & {\n  /** An SVG path string, e.g. `import { mdiRobotOutline } from \"@adaptive-ds/mdi/mdiRobotOutline.js\"`. */\n  path: string\n  /** Accessible label. When omitted the icon is decorative (`aria-hidden`). */\n  title?: string\n}\n\n// splitProps (not destructuring) so dynamic props like `class` stay reactive.\nexport function Icon(props: IconProps) {\n  const [local, rest] = splitProps(props, [\"path\", \"title\", \"class\"])\n  return (\n    <svg\n      viewBox=\"0 0 24 24\"\n      class={cn(\"size-6 fill-current\", local.class)}\n      role={local.title ? \"img\" : undefined}\n      aria-hidden={local.title ? undefined : true}\n      {...rest}\n    >\n      <title>{local.title}</title>\n      <path d={local.path} />\n    </svg>\n  )\n}\n```\n\n```tsx\nimport { mdiRobotOutline } from \"@adaptive-ds/mdi/mdiRobotOutline.js\"\n\n<Icon path={mdiRobotOutline} title=\"Robot\" class=\"size-8\" />\n```\n\n## Scripts\n\n| Script | What it does |\n| --- | --- |\n| `bun run generate` | Write one `src/*.ts` file per icon |\n| `bun run dev` | Watch the MDI source and regenerate |\n| `bun test` | Check a few icon paths |\n| `bun run build` | Generate + `tsc` → `dist/` |\n| `bun run format` | Biome format |\n| `bun run release` | Changelog, tag, GitHub release |\n\n## License\n\n[Apache-2.0](LICENSE). Icon path data is from [Pictogrammers / Material Design Icons](https://pictogrammers.com/), also Apache-2.0.\n\n## Acknowledgments\n\nIcon paths come from [Pictogrammers / Material Design Icons](https://github.com/Templarian/MaterialDesign).\n","readmeFilename":"README.md"}