// icons.jsx — stroke-only SVG icon set (currentColor, monochrome, consistent weight).
// Exposed as window.I for all later modules.

const I = {
  Search:   () => <svg className="icon" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="m20 20-3-3"/></svg>,
  Menu:     () => <svg className="icon" viewBox="0 0 24 24"><line x1="4" y1="6" x2="20" y2="6"/><line x1="4" y1="12" x2="20" y2="12"/><line x1="4" y1="18" x2="20" y2="18"/></svg>,
  Close:    () => <svg className="icon" viewBox="0 0 24 24"><line x1="5" y1="5" x2="19" y2="19"/><line x1="19" y1="5" x2="5" y2="19"/></svg>,
  ChevronDown:  () => <svg className="icon" viewBox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>,
  ChevronRight: () => <svg className="icon" viewBox="0 0 24 24"><polyline points="9 6 15 12 9 18"/></svg>,
  ChevronLeft:  () => <svg className="icon" viewBox="0 0 24 24"><polyline points="15 6 9 12 15 18"/></svg>,
  ArrowRight:   () => <svg className="icon" viewBox="0 0 24 24"><line x1="4" y1="12" x2="20" y2="12"/><polyline points="14 6 20 12 14 18"/></svg>,
  ArrowLeft:    () => <svg className="icon" viewBox="0 0 24 24"><line x1="20" y1="12" x2="4" y2="12"/><polyline points="10 6 4 12 10 18"/></svg>,
  Grid:   () => <svg className="icon" viewBox="0 0 24 24"><rect x="4" y="4" width="7" height="7" rx="1"/><rect x="13" y="4" width="7" height="7" rx="1"/><rect x="4" y="13" width="7" height="7" rx="1"/><rect x="13" y="13" width="7" height="7" rx="1"/></svg>,
  List:   () => <svg className="icon" viewBox="0 0 24 24"><line x1="8" y1="6" x2="20" y2="6"/><line x1="8" y1="12" x2="20" y2="12"/><line x1="8" y1="18" x2="20" y2="18"/><circle cx="4" cy="6" r="1"/><circle cx="4" cy="12" r="1"/><circle cx="4" cy="18" r="1"/></svg>,
  Filter: () => <svg className="icon" viewBox="0 0 24 24"><polygon points="4 5 20 5 14 12 14 19 10 19 10 12"/></svg>,
  Sun:    () => <svg className="icon" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><line x1="12" y1="2" x2="12" y2="5"/><line x1="12" y1="19" x2="12" y2="22"/><line x1="2" y1="12" x2="5" y2="12"/><line x1="19" y1="12" x2="22" y2="12"/><line x1="5" y1="5" x2="7" y2="7"/><line x1="17" y1="17" x2="19" y2="19"/><line x1="19" y1="5" x2="17" y2="7"/><line x1="7" y1="17" x2="5" y2="19"/></svg>,
  Moon:   () => <svg className="icon" viewBox="0 0 24 24"><path d="M20 14a8 8 0 0 1-10-10 8 8 0 1 0 10 10z"/></svg>,
  Link:   () => <svg className="icon" viewBox="0 0 24 24"><path d="M10 8H7a4 4 0 0 0 0 8h3"/><path d="M14 8h3a4 4 0 0 1 0 8h-3"/><line x1="8" y1="12" x2="16" y2="12"/></svg>,
  External: () => <svg className="icon" viewBox="0 0 24 24"><path d="M14 5h5v5"/><line x1="19" y1="5" x2="11" y2="13"/><path d="M19 14v4a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4"/></svg>,
  Spec:   () => <svg className="icon" viewBox="0 0 24 24"><path d="M7 3h7l5 5v13H7z"/><polyline points="14 3 14 8 19 8"/><line x1="10" y1="13" x2="16" y2="13"/><line x1="10" y1="16" x2="16" y2="16"/></svg>,
  Runbook:() => <svg className="icon" viewBox="0 0 24 24"><path d="M5 4h11a2 2 0 0 1 2 2v14H7a2 2 0 0 1-2-2z"/><path d="M9 4v16"/><polyline points="13 9 15 11 19 7" transform="translate(-1 0)"/></svg>,
  Map:    () => <svg className="icon" viewBox="0 0 24 24"><circle cx="6" cy="6" r="2.5"/><circle cx="18" cy="9" r="2.5"/><circle cx="9" cy="18" r="2.5"/><line x1="8" y1="7" x2="16" y2="9"/><line x1="7" y1="8" x2="9" y2="15"/></svg>,
  Home:   () => <svg className="icon" viewBox="0 0 24 24"><path d="M4 11 12 4l8 7"/><path d="M6 10v9h12v-9"/></svg>,
  Layers: () => <svg className="icon" viewBox="0 0 24 24"><polygon points="12 3 21 8 12 13 3 8"/><polyline points="3 12 12 17 21 12"/><polyline points="3 16 12 21 21 16"/></svg>,
  Branch: () => <svg className="icon" viewBox="0 0 24 24"><circle cx="6" cy="5" r="2"/><circle cx="6" cy="19" r="2"/><circle cx="18" cy="9" r="2"/><path d="M6 7v10"/><path d="M18 11a6 6 0 0 1-6 6H8"/></svg>,
  Tree:   () => <svg className="icon" viewBox="0 0 24 24"><rect x="4" y="4" width="6" height="4" rx="1"/><rect x="14" y="10" width="6" height="4" rx="1"/><rect x="14" y="16" width="6" height="4" rx="1"/><path d="M7 8v6h7"/><path d="M7 14v6h7"/></svg>,
  Clock:  () => <svg className="icon" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8"/><polyline points="12 7 12 12 15 14"/></svg>,
  Tag:    () => <svg className="icon" viewBox="0 0 24 24"><path d="M4 4h7l9 9-7 7-9-9z"/><circle cx="8.5" cy="8.5" r="1.2"/></svg>,
  Check:  () => <svg className="icon" viewBox="0 0 24 24"><polyline points="5 12 10 17 19 7"/></svg>,
  Alert:  () => <svg className="icon" viewBox="0 0 24 24"><path d="M12 4 21 19H3z"/><line x1="12" y1="10" x2="12" y2="14"/><circle cx="12" cy="17" r="0.6" fill="currentColor" stroke="none"/></svg>,
  Info:   () => <svg className="icon" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8"/><line x1="12" y1="11" x2="12" y2="16"/><circle cx="12" cy="8" r="0.6" fill="currentColor" stroke="none"/></svg>,
  Copy:   () => <svg className="icon" viewBox="0 0 24 24"><rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h8"/></svg>,
  Doc:    () => <svg className="icon" viewBox="0 0 24 24"><path d="M6 3h9l4 4v14H6z"/><line x1="9" y1="12" x2="16" y2="12"/><line x1="9" y1="16" x2="16" y2="16"/><line x1="9" y1="8" x2="12" y2="8"/></svg>,
  Empty:  () => <svg className="icon" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8"/><line x1="7" y1="17" x2="17" y2="7"/></svg>,
  Loader: () => <svg className="icon spin" viewBox="0 0 24 24"><path d="M12 4a8 8 0 1 0 8 8" /></svg>,
  Play:   () => <svg className="icon" viewBox="0 0 24 24"><polygon points="7 5 19 12 7 19"/></svg>,
  Pause:  () => <svg className="icon" viewBox="0 0 24 24"><line x1="8" y1="5" x2="8" y2="19"/><line x1="16" y1="5" x2="16" y2="19"/></svg>,
};

window.I = I;
