{"_id":"@actview/lucide","name":"@actview/lucide","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@actview/lucide","description":"A Lucide icon library package for ActView applications.","version":"0.0.1","license":"ISC","type":"module","source":"src/lucide-actview.ts","main":"./dist/esm/lucide-actview.mjs","module":"./dist/esm/lucide-actview.mjs","types":"./dist/types/lucide-actview.d.ts","exports":{".":{"types":"./dist/types/lucide-actview.d.ts","import":"./dist/esm/lucide-actview.mjs","default":"./dist/esm/lucide-actview.mjs"},"./icons":{"types":"./dist/types/icons/index.d.ts","import":"./dist/esm/icons/index.mjs","default":"./dist/esm/icons/index.mjs"},"./icons/*":{"types":"./dist/types/icons/*.d.ts","import":"./dist/esm/icons/*.mjs","default":"./dist/esm/icons/*.mjs"}},"sideEffects":false,"publishConfig":{"access":"public"},"scripts":{"build":"pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles && pnpm build:types","copy:license":"node scripts/copyLicense.mjs","clean":"node scripts/clean.mjs","build:bundles":"rollup -c rollup.config.mjs","build:icons":"node scripts/buildIcons.mjs","build:types":"tsc -p tsconfig.build.json","typecheck":"pnpm build:icons && tsc","test":"pnpm build:icons && vitest run","test:watch":"vitest watch"},"peerDependencies":{"actview":"^1.0.29","@actview/jsx":"^1.0.17"},"devDependencies":{"@actview/jsx":"^1.0.17","@actview/testing":"^0.0.3","actview":"^1.0.29","@lucide/build-icons":"workspace:*","@lucide/rollup-plugins":"workspace:*","@lucide/shared":"workspace:*","@testing-library/jest-dom":"^6.9.1","@types/node":"^22.20.1","jsdom":"^27.4.0","rollup":"^4.62.2","typescript":"^5.9.3","vite":"^7.3.6","vitest":"4.1.10"},"gitHead":"698ec4367d95ba8892026e6546234f0d6c6447c8","_id":"@actview/lucide@0.0.1","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-e06lOr8mFCXsNbIGNvaYy6I9h2/EZo1ecVQRpE97mGvHj9op62zBVCdBLE9qO6TQh2IKryLRLoIFOu0DB4oB4w==","shasum":"8a8facbd4e7c32b6797f16b81d7af48793a5c413","tarball":"https://registry.npmjs.org/@actview/lucide/-/lucide-0.0.1.tgz","fileCount":5600,"unpackedSize":9309302,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGhK5nPbZyAYn/XTR+f/HywYUMFjsd8WyUKQ3H80c694AiEAr6UO033BnHN/UL1vqNG3/0/jUJAc0bqO3Ch0DBf41Gg="}]},"_npmUser":{"name":"scliuyilin","email":"scliuyilin@163.com"},"directories":{},"maintainers":[{"name":"scliuyilin","email":"scliuyilin@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lucide_0.0.1_1786859389816_0.3230786032136128"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T05:49:49.676Z","0.0.1":"2026-08-16T05:49:49.981Z","modified":"2026-08-16T05:49:50.198Z"},"maintainers":[{"name":"scliuyilin","email":"scliuyilin@163.com"}],"description":"A Lucide icon library package for ActView applications.","license":"ISC","readme":"# @actview/lucide\n\nLucide icon library adapter for [ActView](https://github.com/ALiuYiLin/actview).\n\n## Installation\n\n```sh\npnpm add @actview/lucide actview @actview/jsx\npnpm add -D @actview/plugin-vite\n```\n\n```sh\nnpm install @actview/lucide actview @actview/jsx\nnpm install -D @actview/plugin-vite\n```\n\nConfigure `jsxImportSource` and the Vite plugin in your ActView app:\n\n```jsonc\n// tsconfig.json\n{\n  \"compilerOptions\": {\n    \"jsx\": \"react-jsx\",\n    \"jsxImportSource\": \"@actview/jsx\"\n  }\n}\n```\n\n```ts\n// vite.config.ts\nimport { actviewPlugin } from '@actview/plugin-vite';\n\nexport default {\n  plugins: [actviewPlugin()],\n};\n```\n\n## Usage\n\nWith `@actview/plugin-vite`, write components as regular functions; the plugin\nautomatically converts them to `defineComponent`:\n\n```tsx\nimport { createApp } from 'actview';\nimport { Camera, LucideProvider } from '@actview/lucide';\n\nfunction App() {\n  return (\n    <LucideProvider size={32} color=\"red\">\n      <Camera class=\"my-icon\" aria-label=\"Camera\" />\n    </LucideProvider>\n  );\n}\n\ncreateApp(App).mount('#app');\n```\n\n### Imports\n\n```tsx\n// Main entry\nimport { Camera, House } from '@actview/lucide';\n\n// Namespace\nimport * as icons from '@actview/lucide/icons';\n\n// Deep import\nimport Camera from '@actview/lucide/icons/camera';\n\n// Custom icons\nimport { createLucideIcon } from '@actview/lucide';\nimport type { IconNode } from '@actview/lucide';\n```\n\n## Development\n\n```sh\npnpm --filter @actview/lucide build   # generate icons, JS and type declarations\npnpm --filter @actview/lucide test    # generate icons and run tests\n```\n\n## Components and hooks\n\n| Export | Description |\n| --- | --- |\n| `Icon` | Core renderer. Pass `iconNode` manually. |\n| `createLucideIcon(name, iconNode)` | Create an icon component. |\n| `LucideProvider` | Provide default `size`, `color`, `strokeWidth`, `absoluteStrokeWidth`, and `class`. |\n| `useLucideContext()` | Read the injected computed context. Only callable during setup. |\n\n## ActView-specific notes\n\n- Every icon is already wrapped by `defineComponent`. Consumers do not need\n  `@actview/plugin-babel` to use these icons.\n- `ref` on an icon component points to the component instance, following\n  ActView component semantics. ActView component refs are not forwarded to the\n  underlying `svg` element; use DOM queries or a wrapper element if you need\n  the SVG node itself.\n- ActView writes SVG props with `setAttribute` using the exact prop key.\n  This package translates common camelCase SVG props (`strokeWidth`,\n  `strokeLinecap`, etc.) to their real SVG attribute names.\n- `useLucideContext()` returns a computed ref because ActView component setups\n  run once. Read `.value` inside the render function to stay reactive.\n- ActView `provide/inject` does not currently propagate through\n  `renderToString`; SSR output falls back to Lucide defaults.\n- ActView's renderer maintains a fixed SVG tag list. SVG `title` children are\n  not currently created in the SVG namespace; prefer `aria-label`,\n  `aria-labelledby`, or a `desc` child for accessible SVG text.\n\n## License\n\nISC\n","readmeFilename":"README.md","_rev":"1-a9f2b6d674daf5bce7961ebbfc8c7145"}