/* Inline lucide-style icons. stroke=currentColor. Exported to window.Icon.* */
const Svg = ({ children, size = 20, sw = 2, fill = 'none', ...p }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke="currentColor"
       strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" {...p}>{children}</svg>
);

const Icon = {
  Type: (p) => <Svg {...p}><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" y1="20" x2="15" y2="20"/><line x1="12" y1="4" x2="12" y2="20"/></Svg>,
  Mic: (p) => <Svg {...p}><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="22"/></Svg>,
  Upload: (p) => <Svg {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></Svg>,
  Sparkles: (p) => <Svg {...p}><path d="M12 3l1.6 4.6L18 9l-4.4 1.4L12 15l-1.6-4.6L6 9l4.4-1.4L12 3z"/><path d="M19 14l.7 2 2 .7-2 .7-.7 2-.7-2-2-.7 2-.7.7-2z"/></Svg>,
  Wand: (p) => <Svg {...p}><path d="M15 4V2M15 10V8M11.5 5.5L10 4M20 5.5L18.5 7M8 21l10-10-2-2L6 19l2 2z"/><path d="M18 13l1 1"/></Svg>,
  ArrowRight: (p) => <Svg {...p}><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></Svg>,
  Play: (p) => <Svg fill="currentColor" {...p}><polygon points="6 4 20 12 6 20 6 4"/></Svg>,
  Pause: (p) => <Svg fill="currentColor" stroke="none" {...p}><rect x="6" y="4" width="4" height="16" rx="1"/><rect x="14" y="4" width="4" height="16" rx="1"/></Svg>,
  Copy: (p) => <Svg {...p}><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></Svg>,
  Download: (p) => <Svg {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></Svg>,
  Share: (p) => <Svg {...p}><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.6" y1="13.5" x2="15.4" y2="17.5"/><line x1="15.4" y1="6.5" x2="8.6" y2="10.5"/></Svg>,
  Refresh: (p) => <Svg {...p}><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.5 9a9 9 0 0 1 14.9-3.4L23 10M1 14l4.6 4.4A9 9 0 0 0 20.5 15"/></Svg>,
  Check: (p) => <Svg {...p}><polyline points="20 6 9 17 4 12"/></Svg>,
  Lock: (p) => <Svg {...p}><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></Svg>,
  Crown: (p) => <Svg {...p}><path d="M2 18h20M3 8l4.5 4L12 5l4.5 7L21 8l-1.4 8H4.4L3 8z"/></Svg>,
  Scissors: (p) => <Svg {...p}><circle cx="6" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><line x1="20" y1="4" x2="8.1" y2="15.9"/><line x1="14.5" y1="14.5" x2="20" y2="20"/><line x1="8.1" y1="8.1" x2="12" y2="12"/></Svg>,
  Film: (p) => <Svg {...p}><rect x="2.5" y="3" width="19" height="18" rx="2.5"/><line x1="7" y1="3" x2="7" y2="21"/><line x1="17" y1="3" x2="17" y2="21"/><line x1="2.5" y1="9" x2="7" y2="9"/><line x1="2.5" y1="15" x2="7" y2="15"/><line x1="17" y1="9" x2="21.5" y2="9"/><line x1="17" y1="15" x2="21.5" y2="15"/></Svg>,
  Layers: (p) => <Svg {...p}><polygon points="12 2 22 8.5 12 15 2 8.5 12 2"/><polyline points="2 15.5 12 22 22 15.5"/></Svg>,
  Target: (p) => <Svg {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/></Svg>,
  FileText: (p) => <Svg {...p}><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="8" y1="13" x2="16" y2="13"/><line x1="8" y1="17" x2="13" y2="17"/></Svg>,
  Clapper: (p) => <Svg {...p}><path d="M3 8.5 21 8.5 21 19a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z"/><path d="M3 8.5 4.2 4.4 8 5.5 6.8 9.6M8 5.5 11.8 6.6 10.6 10.7M11.8 6.6 15.6 7.7 14.4 11.8M15.6 7.7 19.4 8.8"/></Svg>,
  Volume: (p) => <Svg {...p}><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"/><path d="M15.5 8.5a5 5 0 0 1 0 7M19 5a9 9 0 0 1 0 14"/></Svg>,
  ChevronRight: (p) => <Svg {...p}><polyline points="9 18 15 12 9 6"/></Svg>,
  ChevronDown: (p) => <Svg {...p}><polyline points="6 9 12 15 18 9"/></Svg>,
  Plus: (p) => <Svg {...p}><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></Svg>,
  X: (p) => <Svg {...p}><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></Svg>,
  Alert: (p) => <Svg {...p}><path d="M10.3 3.8 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.8a2 2 0 0 0-3.4 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></Svg>,
  Zap: (p) => <Svg fill="currentColor" stroke="none" {...p}><polygon points="13 2 4 14 11 14 10 22 20 9 13 9 13 2"/></Svg>,
  Bolt: (p) => <Svg {...p}><polygon points="13 2 4 14 11 14 10 22 20 9 13 9 13 2"/></Svg>,
  Dot: (p) => <Svg fill="currentColor" stroke="none" {...p}><circle cx="12" cy="12" r="4"/></Svg>,
  Quote: (p) => <Svg {...p}><path d="M7 7h4v6a3 3 0 0 1-3 3H7M14 7h4v6a3 3 0 0 1-3 3h-1"/></Svg>,
  Music: (p) => <Svg {...p}><path d="M9 18V5l12-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/></Svg>,
  Maximize: (p) => <Svg {...p}><path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M16 21h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/></Svg>,
  Trash: (p) => <Svg {...p}><polyline points="3 6 5 6 21 6"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></Svg>,
  Hash: (p) => <Svg {...p}><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></Svg>,
  Edit: (p) => <Svg {...p}><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></Svg>,
  Grip: (p) => <Svg fill="currentColor" stroke="none" {...p}><circle cx="9" cy="6" r="1.5"/><circle cx="15" cy="6" r="1.5"/><circle cx="9" cy="12" r="1.5"/><circle cx="15" cy="12" r="1.5"/><circle cx="9" cy="18" r="1.5"/><circle cx="15" cy="18" r="1.5"/></Svg>,
  ChevronUp: (p) => <Svg {...p}><polyline points="18 15 12 9 6 15"/></Svg>,
  Pencil: (p) => <Svg {...p}><path d="M17 3a2.83 2.83 0 0 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></Svg>,
  Bars: (p) => <Svg {...p}><line x1="6" y1="20" x2="6" y2="13"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="18" y1="20" x2="18" y2="9"/></Svg>,
  Counter: (p) => <Svg {...p}><path d="M4 17V7l-2 1.5"/><rect x="10" y="6" width="11" height="12" rx="3"/><path d="M13 10h5M13 14h5"/></Svg>,
  Ring: (p) => <Svg {...p}><circle cx="12" cy="12" r="9"/><path d="M12 3a9 9 0 0 1 7 14.7"/></Svg>,
  Checklist: (p) => <Svg {...p}><path d="M3 6l1.5 1.5L7 5"/><path d="M3 13l1.5 1.5L7 12"/><path d="M3 20l1.5 1.5L7 19"/><line x1="11" y1="6" x2="21" y2="6"/><line x1="11" y1="13" x2="21" y2="13"/><line x1="11" y1="20" x2="21" y2="20"/></Svg>,
  Timeline: (p) => <Svg {...p}><circle cx="5" cy="6" r="2"/><circle cx="5" cy="18" r="2"/><line x1="5" y1="8" x2="5" y2="16"/><line x1="9" y1="6" x2="20" y2="6"/><line x1="9" y1="18" x2="20" y2="18"/></Svg>,
  IconRow: (p) => <Svg {...p}><circle cx="5" cy="9" r="2.5"/><circle cx="12" cy="9" r="2.5"/><circle cx="19" cy="9" r="2.5"/><line x1="3" y1="16" x2="7" y2="16"/><line x1="10" y1="16" x2="14" y2="16"/><line x1="17" y1="16" x2="21" y2="16"/></Svg>,
  TextAnim: (p) => <Svg {...p}><path d="M4 7V5h16v2"/><path d="M9 19h6"/><path d="M12 5v14"/><path d="M19 13l2 2-2 2"/></Svg>,
  ArrowLeft: (p) => <Svg {...p}><line x1="19" y1="12" x2="5" y2="12"/><polyline points="12 19 5 12 12 5"/></Svg>,
  Menu: (p) => <Svg {...p}><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></Svg>,
  Sliders: (p) => <Svg {...p}><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/><line x1="1" y1="14" x2="7" y2="14"/><line x1="9" y1="8" x2="15" y2="8"/><line x1="17" y1="16" x2="23" y2="16"/></Svg>,
};

window.Icon = Icon;
