Shared icon registry: curated Lucide + Font Awesome, namespaced resolver
tools/icons/curated-icons.json is the one hand-edited list (the 36 curated Lucide icons plus 22 Font Awesome Free solid chore icons, name + label). tools/icons/generate.mjs reads it, takes path data offline from the pinned lucide-react and @fortawesome/free-solid-svg-icons packages, converts Lucide circles/rects/lines to paths, and writes the same plain-data module (viewBox + path strings, emoji text, resolveIcon parser with a fallback entry) into admin/src/icons and frontend/src/icons. No CDN, no runtime fetch. The admin Definitions tab now draws its Lucide set from the registry (lucide-react becomes a generator-only dev dependency); the panel quest log renders lucide:, fa: and emoji: icons, falling back to the star. Drift tests in Vitest and pytest fail if the source or either artefact is edited alone. Task: 03ef0bb3-8228-4be6-bb73-ee8bb72c2f0f Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -10,17 +10,18 @@
|
||||
"test": "vitest run"
|
||||
},
|
||||
"dependencies": {
|
||||
"lucide-react": "^1.47.0",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fortawesome/free-solid-svg-icons": "7.3.1",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/react": "^16.3.0",
|
||||
"@types/react": "^19.2.0",
|
||||
"@types/react-dom": "^19.2.0",
|
||||
"@vitejs/plugin-react": "^5.0.0",
|
||||
"jsdom": "^30.1.1",
|
||||
"lucide-react": "1.47.0",
|
||||
"typescript": "^5.9.2",
|
||||
"vite": "^7.1.5",
|
||||
"vitest": "^3.2.4"
|
||||
|
||||
Reference in New Issue
Block a user