﻿// Minimal stroke icon set for DentSide. 1.5px stroke, currentColor.
const Ic = ({ d, size = 18, fill = false, sw = 1.6 }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill ? "currentColor" : "none"}
    stroke="currentColor" strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round"
    style={{ display: "block", flexShrink: 0 }}>
    {typeof d === "string" ? <path d={d} /> : d}
  </svg>
);

const Icons = {
  // Nav
  Dashboard: (p) => <Ic {...p} d={<><rect x="3" y="3" width="7" height="9" rx="1.5"/><rect x="14" y="3" width="7" height="5" rx="1.5"/><rect x="14" y="12" width="7" height="9" rx="1.5"/><rect x="3" y="16" width="7" height="5" rx="1.5"/></>}/>,
  Clinic: (p) => <Ic {...p} d={<><path d="M3 21h18"/><path d="M5 21V9l7-5 7 5v12"/><path d="M10 21v-5a2 2 0 0 1 4 0v5"/><path d="M12 8v2"/><path d="M11 9h2"/></>}/>,
  Patient: (p) => <Ic {...p} d={<><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-6 8-6s8 2 8 6"/></>}/>,
  Tooth: (p) => <Ic {...p} d={<><path d="M12 3c-3 0-6 1.5-6 5 0 1.5.5 2.5 1 4 .5 1.5.5 3 1 5 .5 2 1.5 4 2 4s1-1 1.5-3 0-4 1.5-4 1 2 1.5 4 1 3 1.5 3 1.5-2 2-4 .5-3.5 1-5 1-2.5 1-4c0-3.5-3-5-6-5z"/></>}/>,
  Calendar: (p) => <Ic {...p} d={<><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18"/><path d="M8 3v4M16 3v4"/></>}/>,
  Money: (p) => <Ic {...p} d={<><rect x="2" y="6" width="20" height="12" rx="2"/><circle cx="12" cy="12" r="2.5"/><path d="M6 10v4M18 10v4"/></>}/>,
  Chart: (p) => <Ic {...p} d={<><path d="M3 21h18"/><path d="M7 17V10"/><path d="M12 17V6"/><path d="M17 17v-5"/></>}/>,
  Settings: (p) => <Ic {...p} d={<><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/></>}/>,
  Help: (p) => <Ic {...p} d={<><circle cx="12" cy="12" r="9"/><path d="M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.8.4-1 1-1 1.7"/><circle cx="12" cy="17" r=".7" fill="currentColor"/></>}/>,
  Stock: (p) => <Ic {...p} d={<><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></>}/>,
  Logout: (p) => <Ic {...p} d={<><path d="M15 17l5-5-5-5"/><path d="M20 12H9"/><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/></>}/>,

  // UI
  Search: (p) => <Ic {...p} d={<><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></>}/>,
  Bell: (p) => <Ic {...p} d={<><path d="M6 8a6 6 0 0 1 12 0c0 7 3 8 3 8H3s3-1 3-8"/><path d="M10 21a2 2 0 0 0 4 0"/></>}/>,
  Plus: (p) => <Ic {...p} d={<><path d="M12 5v14M5 12h14"/></>}/>,
  Filter: (p) => <Ic {...p} d="M4 5h16l-6 8v6l-4 1v-7z"/>,
  Export: (p) => <Ic {...p} d={<><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="M7 10l5-5 5 5"/><path d="M12 5v12"/></>}/>,
  Arrow: (p) => <Ic {...p} d="M6 9l6 6 6-6"/>,
  ArrowUp: (p) => <Ic {...p} d="M7 14l5-5 5 5"/>,
  ArrowRight: (p) => <Ic {...p} d="M9 6l6 6-6 6"/>,
  Check: (p) => <Ic {...p} d="M4 12l5 5L20 6"/>,
  X: (p) => <Ic {...p} d="M6 6l12 12M18 6L6 18"/>,
  Dot: (p) => <Ic {...p} d="M12 12h.01" sw={3}/>,
  More: (p) => <Ic {...p} d={<><circle cx="5" cy="12" r="1" fill="currentColor"/><circle cx="12" cy="12" r="1" fill="currentColor"/><circle cx="19" cy="12" r="1" fill="currentColor"/></>} sw={2}/>,
  Edit: (p) => <Ic {...p} d={<><path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z"/></>}/>,
  Eye: (p) => <Ic {...p} d={<><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z"/><circle cx="12" cy="12" r="3"/></>}/>,
  Trash: (p) => <Ic {...p} d={<><path d="M3 6h18"/><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/></>}/>,
  Phone: (p) => <Ic {...p} d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3-8.7A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7 12.8 12.8 0 0 0 .7 2.8 2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4 12.8 12.8 0 0 0 2.8.7 2 2 0 0 1 1.7 2z"/>,
  MapPin: (p) => <Ic {...p} d={<><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></>}/>,
  Document: (p) => <Ic {...p} d={<><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/><path d="M9 13h6M9 17h6"/></>}/>,
  Clock: (p) => <Ic {...p} d={<><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>}/>,
  TrendUp: (p) => <Ic {...p} d={<><path d="M3 17l6-6 4 4 7-7"/><path d="M14 8h6v6"/></>}/>,
  TrendDown: (p) => <Ic {...p} d={<><path d="M3 7l6 6 4-4 7 7"/><path d="M14 16h6v-6"/></>}/>,
  Wallet: (p) => <Ic {...p} d={<><path d="M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3"/><circle cx="17" cy="12" r="1.5" fill="currentColor"/></>}/>,
  Sparkle: (p) => <Ic {...p} d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M6 18l2.5-2.5M15.5 8.5L18 6"/>,
};

window.DentIcons = Icons;
