diff --git a/web/src/lib/components/TrackMenuItem.svelte b/web/src/lib/components/TrackMenuItem.svelte index 638fe2c2..5c68324d 100644 --- a/web/src/lib/components/TrackMenuItem.svelte +++ b/web/src/lib/components/TrackMenuItem.svelte @@ -3,10 +3,11 @@ // Lucide-svelte ships class-based components (typeof ListPlus = ComponentType<...>), // not runes-mode function components (Svelte 5's Component<...> type). Use - // ComponentType> so any Lucide icon assigns cleanly. - type IconProp = ComponentType< - SvelteComponent<{ size?: number; strokeWidth?: number; class?: string }> - >; + // ComponentType with no prop-shape constraint — Lucide + // accepts size/strokeWidth as `string | number` and a tighter constraint + // here trips structural assignment. We always pass numeric `size={14}` and + // `strokeWidth={1}` below so the runtime contract is consistent. + type IconProp = ComponentType; let { icon,