/* Lucide-style icons, inline SVG, 1.25 stroke, currentColor */
const ICON_SIZE = 14;
const s = ICON_SIZE;

function mk(children, size = s) {
  return (props) => (
    <svg xmlns="http://www.w3.org/2000/svg" width={props.size || size} height={props.size || size}
      viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5"
      strokeLinecap="round" strokeLinejoin="round" aria-hidden="true" {...props}>
      {children}
    </svg>
  );
}

const Icons = {
  BookOpen: mk(<>
    <path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" />
    <path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />
  </>),
  TrendUp: mk(<><polyline points="22 7 13.5 15.5 8.5 10.5 2 17" /><polyline points="16 7 22 7 22 13" /></>),
  Target: mk(<><circle cx="12" cy="12" r="10" /><circle cx="12" cy="12" r="6" /><circle cx="12" cy="12" r="2" /></>),
  ClipboardCheck: mk(<>
    <rect x="8" y="2" width="8" height="4" rx="1" />
    <path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" />
    <path d="m9 14 2 2 4-4" />
  </>),
  Compass: mk(<><circle cx="12" cy="12" r="10" /><polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76" /></>),
  MapPin: mk(<><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" /><circle cx="12" cy="10" r="3" /></>),
  Search: mk(<><circle cx="11" cy="11" r="7" /><line x1="21" y1="21" x2="16.65" y2="16.65" /></>),
  ListChecks: mk(<>
    <polyline points="3 7 5 9 9 5" />
    <polyline points="3 15 5 17 9 13" />
    <line x1="13" y1="7" x2="21" y2="7" />
    <line x1="13" y1="15" x2="21" y2="15" />
  </>),
  FileText: mk(<>
    <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="14" y2="17" />
  </>),
  Mail: mk(<>
    <rect x="2" y="4" width="20" height="16" rx="2" />
    <path d="m2 6 10 7 10-7" />
  </>),
  Wallet: mk(<>
    <path d="M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0 0 4h16v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7" />
    <circle cx="17" cy="13" r="1" />
  </>),
  Users: mk(<>
    <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" />
    <circle cx="9" cy="7" r="4" />
    <path d="M22 21v-2a4 4 0 0 0-3-3.87" />
    <path d="M16 3.13a4 4 0 0 1 0 7.75" />
  </>),
  Filter: mk(<><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" /></>),
  ArrowUpRight: mk(<><line x1="7" y1="17" x2="17" y2="7" /><polyline points="7 7 17 7 17 17" /></>),
  Lightbulb: mk(<>
    <path d="M9 18h6" /><path d="M10 22h4" />
    <path d="M12 2a7 7 0 0 0-4 12.74c.6.5 1 1.15 1 1.85v.4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-.4c0-.7.4-1.35 1-1.85A7 7 0 0 0 12 2Z" />
  </>),
  Hammer: mk(<>
    <path d="m15 12-8.5 8.5a2.12 2.12 0 0 1-3-3L12 9" />
    <path d="M17.64 15 22 10.64" />
    <path d="m20.91 11.7-1.25-1.25a2.9 2.9 0 0 1-.83-2.03V7.5l-4.2-4.2a2 2 0 0 0-2.83 0L10.5 5.08a2 2 0 0 0 0 2.83L14.7 12l.91-.01a2.9 2.9 0 0 1 2.04.83l1.25 1.25" />
  </>),
  CheckCircle: mk(<><circle cx="12" cy="12" r="10" /><polyline points="9 12 12 15 16 10" /></>),
  Sun: mk(<>
    <circle cx="12" cy="12" r="4" />
    <path d="M12 2v2" /><path d="M12 20v2" />
    <path d="m4.93 4.93 1.41 1.41" /><path d="m17.66 17.66 1.41 1.41" />
    <path d="M2 12h2" /><path d="M20 12h2" />
    <path d="m4.93 19.07 1.41-1.41" /><path d="m17.66 6.34 1.41-1.41" />
  </>),
  Close: mk(<><line x1="18" y1="6" x2="6" y2="18" /><line x1="6" y1="6" x2="18" y2="18" /></>),
  Check: mk(<><polyline points="5 12 10 17 19 7" /></>),
  Printer: mk(<>
    <polyline points="6 9 6 2 18 2 18 9" />
    <path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" />
    <rect x="6" y="14" width="12" height="8" />
  </>),
};

window.Icons = Icons;
