{"_id":"@alma-oss/vite-plugin-spirit-icons","_rev":"3-ff13727781dfc610d1da0aa3422f1c70","name":"@alma-oss/vite-plugin-spirit-icons","dist-tags":{"latest":"2.1.0"},"versions":{"1.1.0":{"name":"@alma-oss/vite-plugin-spirit-icons","version":"1.1.0","license":"MIT","_id":"@alma-oss/vite-plugin-spirit-icons@1.1.0","maintainers":[{"name":"alma-design-system-bot","email":"team-design-system@almacareer.com"},{"name":"literat","email":"tomaslitera@hotmail.com"}],"homepage":"https://github.com/alma-oss/spirit-design-system#readme","bugs":{"url":"https://github.com/alma-oss/spirit-design-system/issues"},"dist":{"shasum":"d11dc9d1d974628a23f50107a90c5be8cf37ff1c","tarball":"https://registry.npmjs.org/@alma-oss/vite-plugin-spirit-icons/-/vite-plugin-spirit-icons-1.1.0.tgz","fileCount":6,"integrity":"sha512-10JNcmiBQe6r/cl2X/jZL/ZVsSp+ERPqdnkQfScyqqIFOcTQdBAqipMsTstX+zL8873EKYEd+sPtMmOKmKVZBA==","signatures":[{"sig":"MEYCIQC5oB7M9ez3t3rtzkQqmh+H1PbsL0ALEfZ6lIE7wB4srwIhAIhKzwLOB3n5yDluj7GJunqugSX+breb7SH+mx5LRiDk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31249},"type":"module","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"349395c8d306218345e7abbf86c588691d201b8d","scripts":{"test":"npm-run-all --serial test:unit","build":"npm-run-all --serial build:clean build:compile","types":"tsc --noEmit","test:unit":"jest","build:clean":"shx rm -rf dist","build:compile":"tsup --config ./config/tsup.config.ts","test:unit:watch":"yarn test:unit --watchAll","test:unit:coverage":"yarn test:unit --coverage"},"_npmUser":{"name":"literat","email":"tomaslitera@hotmail.com"},"repository":{"url":"git+https://github.com/alma-oss/spirit-design-system.git","type":"git","directory":"packages/vite-plugin-spirit-icons"},"_npmVersion":"11.3.0","description":"Vite plugin for generating Spirit Design System icons from SVG files","directories":{},"_nodeVersion":"24.1.0","dependencies":{"jsdom":"25.0.1","svg2react-icon":"3.1.178","@alma-oss/spirit-design-tokens":"4.0.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","tsx":"4.21.0","jest":"30.3.0","tsup":"8.5.1","vite":"7.3.2","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"20.19.39","npm-run-all2":"8.0.4","jest-config-spirit":"^0.2.3"},"peerDependencies":{"vite":">=5"},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-spirit-icons_1.1.0_1778842228474_0.40878673671819876","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alma-oss/vite-plugin-spirit-icons","version":"2.0.0","license":"MIT","_id":"@alma-oss/vite-plugin-spirit-icons@2.0.0","maintainers":[{"name":"alma-design-system-bot","email":"team-design-system@almacareer.com"},{"name":"literat","email":"tomaslitera@hotmail.com"}],"homepage":"https://github.com/alma-oss/spirit-design-system#readme","bugs":{"url":"https://github.com/alma-oss/spirit-design-system/issues"},"dist":{"shasum":"d8c05a464d2196004434710ac01080b9fd3a957f","tarball":"https://registry.npmjs.org/@alma-oss/vite-plugin-spirit-icons/-/vite-plugin-spirit-icons-2.0.0.tgz","fileCount":7,"integrity":"sha512-Ywu54m8VISbkVbAirUgFcAIl0v6or0FkylWd7ZW/uFaOd7gJ1gnweSVU1F1yS7VccauiDVRQ+y76QUtQzo3WvA==","signatures":[{"sig":"MEUCIQC64DjTZdJmsnQzF3EeyZ5pATlbIOHMoEYvgthj+K2AOAIgUmZiKfm40rczReF7w79LO8IsCsohBgk08xg2dpKC8T4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alma-oss%2fvite-plugin-spirit-icons@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32849},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6fd06c13b36e94bc54732052208ca61d3e8e2c94","scripts":{"test":"npm-run-all --serial test:unit","build":"npm-run-all --serial build:clean build:compile","types":"tsc --noEmit","test:unit":"jest","build:clean":"shx rm -rf dist","build:compile":"tsup --config ./config/tsup.config.ts","test:unit:watch":"yarn test:unit --watchAll","test:unit:coverage":"yarn test:unit --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5e0a37f8-d6d4-4fd4-ba09-a7dd07ecb406"}},"repository":{"url":"git+https://github.com/alma-oss/spirit-design-system.git","type":"git","directory":"packages/vite-plugin-spirit-icons"},"_npmVersion":"lerna/9.0.7/node@v22.23.0+x64 (linux)","description":"Vite plugin for generating Spirit Design System icons from SVG files","directories":{},"_nodeVersion":"22.23.0","dependencies":{"jsdom":"25.0.1","svg2react-icon":"3.1.178","@alma-oss/spirit-design-tokens":"4.0.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","tsx":"4.22.4","jest":"30.4.2","tsup":"8.5.1","vite":"7.3.5","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"22.19.21","npm-run-all2":"8.0.4","jest-config-spirit":"^0.2.4"},"peerDependencies":{"vite":">=5"},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-spirit-icons_2.0.0_1783520178687_0.38399440057476997","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@alma-oss/vite-plugin-spirit-icons","version":"2.1.0","description":"Vite plugin for generating Spirit Design System icons from SVG files","license":"MIT","engines":{"node":">=22"},"type":"module","publishConfig":{"access":"public","provenance":true},"repository":{"type":"git","url":"git+https://github.com/alma-oss/spirit-design-system.git","directory":"packages/vite-plugin-spirit-icons"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build:clean":"shx rm -rf dist","build:compile":"tsup --config ./config/tsup.config.ts","build":"npm-run-all --serial build:clean build:compile","types":"tsc --noEmit","test":"npm-run-all --serial test:unit","test:unit":"jest","test:unit:watch":"yarn test:unit --watchAll","test:unit:coverage":"yarn test:unit --coverage"},"dependencies":{"@alma-oss/spirit-design-tokens":"4.0.3","jsdom":"25.0.1","svg2react-icon":"3.1.178"},"devDependencies":{"@types/jest":"30.0.0","@types/node":"22.19.21","jest":"30.4.2","jest-config-spirit":"^0.2.4","npm-run-all2":"9.0.2","shx":"0.4.0","tsup":"8.5.1","tsx":"4.23.1","typescript":"5.9.3","vite":"7.3.5"},"peerDependencies":{"vite":">=5"},"gitHead":"a6b0c95a803e975746ff4354f06f32f926271a8a","_id":"@alma-oss/vite-plugin-spirit-icons@2.1.0","bugs":{"url":"https://github.com/alma-oss/spirit-design-system/issues"},"homepage":"https://github.com/alma-oss/spirit-design-system#readme","_nodeVersion":"22.23.1","_npmVersion":"lerna/9.0.7/node@v22.23.1+x64 (linux)","dist":{"integrity":"sha512-0SVPCd5P9m3n5gGVlFDldpIbr9NP67t3IB5U4a2F4EtePlk74ZDSapYTdWN2Au0C4BrZzaI7cg7eLBipmL/pmA==","shasum":"610d5298b043ccecbb740b9c584c96a6996f2629","tarball":"https://registry.npmjs.org/@alma-oss/vite-plugin-spirit-icons/-/vite-plugin-spirit-icons-2.1.0.tgz","fileCount":7,"unpackedSize":34600,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alma-oss%2fvite-plugin-spirit-icons@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICygfLaizIW9YRvzFGYSmYtR2VIx8PLnorruiE/x3ZVoAiBLfdJ8JO0QzoqFTYJxCAkugkMDSyajhxB4IMiazAMgGA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5e0a37f8-d6d4-4fd4-ba09-a7dd07ecb406"}},"directories":{},"maintainers":[{"name":"alma-design-system-bot","email":"team-design-system@almacareer.com"},{"name":"literat","email":"tomaslitera@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vite-plugin-spirit-icons_2.1.0_1786090623428_0.32833717424520126"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-15T10:50:28.415Z","modified":"2026-08-07T08:17:03.939Z","1.1.0":"2026-05-15T10:50:28.635Z","2.0.0":"2026-07-08T14:16:18.855Z","2.1.0":"2026-08-07T08:17:03.574Z"},"bugs":{"url":"https://github.com/alma-oss/spirit-design-system/issues"},"license":"MIT","homepage":"https://github.com/alma-oss/spirit-design-system#readme","repository":{"type":"git","url":"git+https://github.com/alma-oss/spirit-design-system.git","directory":"packages/vite-plugin-spirit-icons"},"description":"Vite plugin for generating Spirit Design System icons from SVG files","maintainers":[{"name":"alma-design-system-bot","email":"team-design-system@almacareer.com"},{"name":"literat","email":"tomaslitera@hotmail.com"}],"readme":"# @alma-oss/vite-plugin-spirit-icons\n\nVite plugin for generating Spirit Design System icons from SVG files.\n\n## Installation\n\n```bash\nnpm install --save-dev @alma-oss/vite-plugin-spirit-icons vite\n```\n\n## Usage\n\n### Setup\n\nAdd the plugin to your `vite.config.ts`:\n\n```typescript\nimport { spiritIconsPlugin } from '@alma-oss/vite-plugin-spirit-icons';\nimport { defineConfig } from 'vite';\n\nexport default defineConfig({\n  plugins: [spiritIconsPlugin()],\n});\n```\n\nPlace your SVG files in `src/svg/` (or configure via `svgDir` option).\n\n### Importing Generated Assets\n\nAfter building, you can import the generated React components, SVG assets, and icon constants:\n\n```typescript\n// React components\nimport { AddIcon, DownloadIcon, SearchIcon } from './dist/react';\n\n// Raw SVG files\nimport addSvg from './dist/svg/add.svg?raw';\n\n// Icon constants (SVG innerHTML)\nimport icons from './dist/icons';\n\n// Use in React\nexport function MyComponent() {\n  return (\n    <>\n      <AddIcon width={24} height={24} />\n      <SearchIcon />\n    </>\n  );\n}\n```\n\n## How It Works\n\nThe plugin generates icon assets through a multi-step build process:\n\n1. **SVG Processing** — Normalizes SVG colors based on icon type (default, dualtone, colored) and creates a sprite sheet\n2. **React Component Generation** — Converts SVGs to React components using `svg2react-icon`\n3. **Constants Generation** — Creates a TypeScript constants file with SVG innerHTML for each icon\n4. **Output Structure** — Generates entry points for React components, raw SVGs, and icon constants\n\n### Build Output\n\nWhen you run `vite build`, the plugin generates:\n\n- **React components:** `dist/react/*.tsx` (one per SVG)\n- **Icon constants:** `dist/icons.ts` (SVG innerHTML as constants)\n- **SVG assets:** `dist/svg/*.svg` (normalized SVG files + sprite sheet)\n- **Entry points:** `dist/index.ts`, `dist/react/index.ts`\n\n## Configuration\n\n```typescript\ninterface SpiritIconsPluginOptions {\n  /** Source SVG directory, relative to Vite root. Default: 'src/svg' */\n  svgDir?: string;\n  /** Staging directory for generated TS files. Default: '.icons-tmp' */\n  stagingDir?: string;\n  /** SVG output subdirectory within dist. Default: 'svg' */\n  distSvgDir?: string;\n}\n```\n\n### Multiple Icon Sets\n\nThe plugin can be used multiple times in one `vite.config.ts` — once per icon set:\n\n```typescript\nimport { spiritIconsPlugin } from '@alma-oss/vite-plugin-spirit-icons';\nimport { defineConfig } from 'vite';\n\nexport default defineConfig({\n  plugins: [\n    spiritIconsPlugin({\n      svgDir: 'src/prace',\n      stagingDir: '.icons-tmp-prace',\n      distSvgDir: 'svg/prace',\n    }),\n    spiritIconsPlugin({\n      svgDir: 'src/jobs',\n      stagingDir: '.icons-tmp-jobs',\n      distSvgDir: 'svg/jobs',\n    }),\n  ],\n});\n```\n\nWhen using multiple instances, each `stagingDir` must be unique to avoid collisions.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}