IconRef: add url kind, point registered kinds at palette assets

User pointed at the palette's PNG icons in the bottom toolbar — they
expected the inspector title to use the same artwork, not the iconify
lucide glyphs. Different visual style.

- IconRef gains `{ kind: 'url'; src: string }`. Plain `<img>` render
  in ParametricInspector (no next/image — the inspector is
  `'use client'`).
- All currently-registered kinds switched to URL refs matching their
  palette `iconSrc`:
    fence    → /icons/fence.png
    slab     → /icons/floor.png
    ceiling  → /icons/ceiling.png
    wall     → /icons/wall.png
    spawn    → /icons/site.png
    shelf    → /icons/column.png (placeholder, same as palette)
- Kind-owned panels (slab/ceiling) already pass URL strings to their
  own PanelWrapper; unchanged.

Door/window/item will get URL refs when they register at Stage A.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Wassim SAMAD
2026-05-18 10:41:45 -04:00
co-authored by Claude Opus 4.7
parent 8c2b03f99b
commit 6a1d853dd8
8 changed files with 16 additions and 6 deletions
+4
View File
@@ -230,6 +230,10 @@ export type IconRef =
/** Iconify identifier, e.g. `lucide:square`. Matches the @iconify-react
* setup the editor app already uses for tool icons. */
| { kind: 'iconify'; name: string }
/** URL path to a raster or vector asset (PNG/SVG/...). Matches the
* palette's PNG/SVG assets — use this to share the same artwork
* between the bottom toolbar and the inspector title. */
| { kind: 'url'; src: string }
/** Inline SVG path data. Use for asset packs or plugins that want a custom
* mark without contributing a React component. */
| { kind: 'svg'; viewBox: string; path: string }