// icons.jsx — Single-stroke 14×14 icon set, IBM-style geometric.
// All icons inherit currentColor; sized via width/height props.

const Icon = ({ d, size = 14, fill = false, stroke = 1.5, children, ...rest }) => (
  <svg
    width={size}
    height={size}
    viewBox="0 0 14 14"
    fill={fill ? "currentColor" : "none"}
    stroke={fill ? "none" : "currentColor"}
    strokeWidth={stroke}
    strokeLinecap="round"
    strokeLinejoin="round"
    aria-hidden="true"
    {...rest}
  >
    {children || (d && <path d={d} />)}
  </svg>
);

const Icons = {
  Search: (p) => <Icon {...p}><circle cx="6" cy="6" r="3.5" /><path d="M9 9l3 3" /></Icon>,
  Command: (p) => <Icon {...p}><path d="M4.5 2a1.5 1.5 0 1 0 0 3h5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0-1.5 1.5v7A1.5 1.5 0 0 1 6.5 12 1.5 1.5 0 1 1 5 10.5h7" /></Icon>,
  Plus: (p) => <Icon {...p}><path d="M7 2v10M2 7h10" /></Icon>,
  Filter: (p) => <Icon {...p}><path d="M2 3h10l-3.5 4.5V11l-3 1V7.5L2 3z" /></Icon>,
  Sort: (p) => <Icon {...p}><path d="M4 2v10M2 4l2-2 2 2M10 12V2M8 10l2 2 2-2" /></Icon>,
  Check: (p) => <Icon {...p}><path d="M2.5 7.5L5.5 10l6-6.5" /></Icon>,
  X: (p) => <Icon {...p}><path d="M3 3l8 8M11 3l-8 8" /></Icon>,
  ChevronDown: (p) => <Icon {...p}><path d="M3.5 5.5L7 9l3.5-3.5" /></Icon>,
  ChevronRight: (p) => <Icon {...p}><path d="M5.5 3.5L9 7l-3.5 3.5" /></Icon>,
  ChevronLeft: (p) => <Icon {...p}><path d="M8.5 3.5L5 7l3.5 3.5" /></Icon>,
  ChevronUp: (p) => <Icon {...p}><path d="M3.5 8.5L7 5l3.5 3.5" /></Icon>,
  More: (p) => <Icon {...p} fill="currentColor"><circle cx="3" cy="7" r="1" /><circle cx="7" cy="7" r="1" /><circle cx="11" cy="7" r="1" /></Icon>,
  MoreV: (p) => <Icon {...p} fill="currentColor"><circle cx="7" cy="3" r="1" /><circle cx="7" cy="7" r="1" /><circle cx="7" cy="11" r="1" /></Icon>,
  Inbox: (p) => <Icon {...p}><path d="M2 8v3a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V8h-3l-1 1.5h-2L5 8H2z" /><path d="M2 8l1.5-5h7L12 8" /></Icon>,
  Database: (p) => <Icon {...p}><ellipse cx="7" cy="3.5" rx="4.5" ry="1.5" /><path d="M2.5 3.5v7c0 .8 2 1.5 4.5 1.5s4.5-.7 4.5-1.5v-7M2.5 7c0 .8 2 1.5 4.5 1.5s4.5-.7 4.5-1.5" /></Icon>,
  Layers: (p) => <Icon {...p}><path d="M7 2L2 5l5 3 5-3-5-3z" /><path d="M2 9l5 3 5-3" /></Icon>,
  Chat: (p) => <Icon {...p}><path d="M2 4a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H6.5L4 12V10H3a1 1 0 0 1-1-1V4z" /></Icon>,
  Bolt: (p) => <Icon {...p}><path d="M8 1L3 8h3l-1 5 5-7H7l1-5z" /></Icon>,
  Settings: (p) => <Icon {...p}><circle cx="7" cy="7" r="2" /><path d="M7 1v1.5M7 11.5V13M1 7h1.5M11.5 7H13M2.7 2.7l1 1M10.3 10.3l1 1M2.7 11.3l1-1M10.3 3.7l1-1" /></Icon>,
  User: (p) => <Icon {...p}><circle cx="7" cy="5" r="2.5" /><path d="M2.5 12c.5-2.5 2.3-4 4.5-4s4 1.5 4.5 4" /></Icon>,
  Users: (p) => <Icon {...p}><circle cx="5.5" cy="5" r="2" /><path d="M2 11.5c.3-2 1.6-3.2 3.5-3.2s3.2 1.2 3.5 3.2M9 3.2A2 2 0 0 1 9 7M12 11.5c-.2-1.6-1-2.6-2.3-3" /></Icon>,
  Tag: (p) => <Icon {...p}><path d="M2 2h4l6 6-4 4-6-6V2z" /><circle cx="4.5" cy="4.5" r=".5" fill="currentColor" /></Icon>,
  Dollar: (p) => <Icon {...p}><path d="M7 1.6V12.4" /><path d="M9.4 4.1C9 3.2 8.1 2.7 7 2.7 5.6 2.7 4.6 3.5 4.6 4.7 4.6 5.9 5.6 6.4 7 6.7 8.4 7 9.4 7.6 9.4 8.9 9.4 10.1 8.4 10.9 7 10.9 5.9 10.9 5 10.4 4.6 9.5" /></Icon>,
  Calendar: (p) => <Icon {...p}><rect x="2" y="3" width="10" height="9" rx="1" /><path d="M2 6h10M5 1.5v3M9 1.5v3" /></Icon>,
  Clock: (p) => <Icon {...p}><circle cx="7" cy="7" r="5" /><path d="M7 4v3l2 1.5" /></Icon>,
  Star: (p) => <Icon {...p}><path d="M7 1.5l1.6 3.4 3.7.4-2.8 2.5.8 3.6L7 9.5l-3.3 1.9.8-3.6L1.7 5.3l3.7-.4L7 1.5z" /></Icon>,
  Sun: (p) => <Icon {...p}><circle cx="7" cy="7" r="2.5" /><path d="M7 1v1.5M7 11.5V13M1 7h1.5M11.5 7H13M2.7 2.7l1 1M10.3 10.3l1 1M2.7 11.3l1-1M10.3 3.7l1-1" /></Icon>,
  Moon: (p) => <Icon {...p}><path d="M11 8.5A4.5 4.5 0 0 1 5.5 3a4.5 4.5 0 1 0 5.5 5.5z" /></Icon>,
  Bell: (p) => <Icon {...p}><path d="M3.5 9.5h7l-1-1.5V6a2.5 2.5 0 1 0-5 0v2l-1 1.5zM6 11.5a1 1 0 0 0 2 0" /></Icon>,
  Link: (p) => <Icon {...p}><path d="M5.5 8.5l3-3M4 7l-1 1a2 2 0 0 0 2.8 2.8l1-1M10 7l1-1a2 2 0 0 0-2.8-2.8l-1 1" /></Icon>,
  Sparkle: (p) => <Icon {...p}><path d="M7 2v3M7 9v3M2 7h3M9 7h3M3.5 3.5l2 2M8.5 8.5l2 2M3.5 10.5l2-2M8.5 5.5l2-2" /></Icon>,
  Doc: (p) => <Icon {...p}><path d="M3 1.5h5l3 3V12a.5.5 0 0 1-.5.5h-7A.5.5 0 0 1 3 12V2a.5.5 0 0 1 0-.5z" /><path d="M8 1.5v3h3" /></Icon>,
  Pin: (p) => <Icon {...p}><path d="M9 1.5l3.5 3.5L11 6.5l-1 4-3-3-3.5 3.5.5-3L1 5l4-1 1.5-1.5 2.5-1z" /></Icon>,
  Eye: (p) => <Icon {...p}><path d="M1 7s2.5-4 6-4 6 4 6 4-2.5 4-6 4-6-4-6-4z" /><circle cx="7" cy="7" r="1.5" /></Icon>,
  Building: (p) => <Icon {...p}><path d="M2.5 12.5V3l5-1.5V12.5M7.5 5.5l4 1V12.5M2.5 12.5h9M4 5h2M4 7.5h2M4 10h2M9 8h1M9 10h1" /></Icon>,
  Wrench: (p) => <Icon {...p}><path d="M9.5 2a3 3 0 0 0-3 4L2 10.5 3.5 12 8 7.5a3 3 0 0 0 4-3l-1.5 1.5L9 4.5 9.5 2z" /></Icon>,
  Tooth: (p) => <Icon {...p}><path d="M3.5 2c-1 0-1.5.8-1.5 2 0 1.5.5 2 .8 4 .3 2 .7 4 1.7 4s1-2 1.5-2 .5 2 1.5 2 1-2 1.5-2 .5 2 1.5 2 1.4-2 1.7-4c.3-2 .8-2.5.8-4 0-1.2-.5-2-1.5-2-1 0-1.5.5-2.5.5S6.5 2 5.5 2 4.5 2 3.5 2z" /></Icon>,
  Briefcase: (p) => <Icon {...p}><rect x="1.5" y="4" width="11" height="8" rx="1" /><path d="M5 4V2.5h4V4M1.5 7h11" /></Icon>,
  ArrowUp: (p) => <Icon {...p}><path d="M7 2v10M3.5 5.5L7 2l3.5 3.5" /></Icon>,
  ArrowDown: (p) => <Icon {...p}><path d="M7 2v10M3.5 8.5L7 12l3.5-3.5" /></Icon>,
  ArrowRight: (p) => <Icon {...p}><path d="M2 7h10M8.5 3.5L12 7l-3.5 3.5" /></Icon>,
  Workflow: (p) => <Icon {...p}><rect x="1.5" y="2" width="4" height="3" rx=".5" /><rect x="8.5" y="2" width="4" height="3" rx=".5" /><rect x="5" y="9" width="4" height="3" rx=".5" /><path d="M3.5 5v1.5h7V5M7 6.5V9" /></Icon>,
  Branch: (p) => <Icon {...p}><circle cx="3.5" cy="3" r="1.2" /><circle cx="3.5" cy="11" r="1.2" /><circle cx="10.5" cy="4" r="1.2" /><path d="M3.5 4.5v5M3.5 7c0-2 7-1 7-2" /></Icon>,
  Trash: (p) => <Icon {...p}><path d="M2.5 3.5h9M5 3.5V2.5h4v1M3.5 3.5l.5 8a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5l.5-8" /></Icon>,
  Edit: (p) => <Icon {...p}><path d="M9.5 1.5l3 3-7.5 7.5-3.5.5.5-3.5 7.5-7.5z" /></Icon>,
  Copy: (p) => <Icon {...p}><rect x="4" y="4" width="8" height="8" rx="1" /><path d="M9 4V2.5a.5.5 0 0 0-.5-.5h-6a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5H4" /></Icon>,
  Quote: (p) => <Icon {...p}><path d="M2 4h3v3a2 2 0 0 1-2 2M9 4h3v3a2 2 0 0 1-2 2" /></Icon>,
  Image: (p) => <Icon {...p}><rect x="1.5" y="2.5" width="11" height="9" rx="1" /><circle cx="5" cy="5.5" r="1" /><path d="M1.5 9l3-2 3 2 3-3 2 1.5" /></Icon>,
  Globe: (p) => <Icon {...p}><circle cx="7" cy="7" r="5" /><path d="M2 7h10M7 2c1.5 1.5 2.5 3 2.5 5S8.5 10.5 7 12c-1.5-1.5-2.5-3-2.5-5S5.5 3.5 7 2z" /></Icon>,
  Slack: (p) => <Icon {...p}><rect x="3" y="6" width="3" height="2" rx="1" /><rect x="6" y="3" width="2" height="3" rx="1" /><rect x="8" y="6" width="3" height="2" rx="1" /><rect x="6" y="8" width="2" height="3" rx="1" /></Icon>,
  Lock: (p) => <Icon {...p}><rect x="2.5" y="6.5" width="9" height="6" rx="1" /><path d="M4.5 6.5V4a2.5 2.5 0 0 1 5 0v2.5" /></Icon>,
  Sidebar: (p) => <Icon {...p}><rect x="1.5" y="2" width="11" height="10" rx="1" /><path d="M5.5 2v10" /></Icon>,
  Refresh: (p) => <Icon {...p}><path d="M2 7a5 5 0 0 1 9-3M12 7a5 5 0 0 1-9 3" /><path d="M9 4l2 0V2M5 10l-2 0v2" /></Icon>,
  AlertCircle: (p) => <Icon {...p}><circle cx="7" cy="7" r="5" /><path d="M7 4.5v3M7 9.5v.1" /></Icon>,
  Play: (p) => <Icon {...p} fill="currentColor"><path d="M4 3l7 4-7 4V3z" /></Icon>,
  Pause: (p) => <Icon {...p}><rect x="4" y="3" width="2" height="8" rx=".5" fill="currentColor" /><rect x="8" y="3" width="2" height="8" rx=".5" fill="currentColor" /></Icon>,
  Spinner: (p) => <Icon {...p}><path d="M7 2a5 5 0 1 1-5 5" /></Icon>,
  Mic: (p) => <Icon {...p}><rect x="5" y="1.5" width="4" height="7" rx="2" /><path d="M3.5 7a3.5 3.5 0 0 0 7 0M7 10.5v2M5 12.5h4" /></Icon>,
  Keyboard: (p) => <Icon {...p}><rect x="1.5" y="3.5" width="11" height="7" rx="1" /><path d="M3.5 6v.01M5.5 6v.01M7.5 6v.01M9.5 6v.01M4.5 8.5h5" /></Icon>,
  Camera: (p) => <Icon {...p}><rect x="1.5" y="4" width="11" height="7.5" rx="1.5" /><path d="M5 4l1-1.5h2L9 4" /><circle cx="7" cy="7.75" r="2" /></Icon>,
  Undo: (p) => <Icon {...p}><path d="M4 4L2 6l2 2" /><path d="M2 6h6a3.5 3.5 0 0 1 0 7H5" /></Icon>,
  Save: (p) => <Icon {...p}><path d="M2.5 2.5h7L11.5 5v6.5a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1z" /><path d="M4.5 2.5v3h4v-3M4.5 12.5V8.5h5v4" /></Icon>,
  Square: (p) => <Icon {...p}><rect x="2" y="3" width="10" height="8" rx="1" /></Icon>,
  Type: (p) => <Icon {...p}><path d="M3 3.5h8M7 3.5v8M5 11.5h4" /></Icon>,
  Cursor: (p) => <Icon {...p} fill="currentColor"><path d="M3 2v9.5l2.4-2.3 1.5 3 1.6-.7-1.4-3H10L3 2z" /></Icon>,
};

window.Icons = Icons;
window.Icon = Icon;
