// icons.jsx — minimalist line icons (24x24 viewBox, currentColor)
// Inspired by Lucide visual style but hand-authored simple paths.

const Icon = ({ d, size = 18, stroke = 1.75, fill = 'none', children, style = {}, ...rest }) => (
  <svg
    width={size} height={size} viewBox="0 0 24 24"
    fill={fill} stroke="currentColor" strokeWidth={stroke}
    strokeLinecap="round" strokeLinejoin="round"
    style={{ display: 'block', flexShrink: 0, ...style }}
    {...rest}
  >
    {d ? <path d={d} /> : children}
  </svg>
);

const IconClock = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="12" r="9" />
    <path d="M12 7v5l3 2" />
  </Icon>
);
const IconPlay = (p) => (
  <Icon {...p}>
    <path d="M6 4l14 8-14 8V4z" fill="currentColor" stroke="none" />
  </Icon>
);
const IconStop = (p) => (
  <Icon {...p}>
    <rect x="6" y="6" width="12" height="12" rx="1.5" fill="currentColor" stroke="none" />
  </Icon>
);
const IconPause = (p) => (
  <Icon {...p}>
    <rect x="7" y="5" width="3.5" height="14" rx="1" fill="currentColor" stroke="none" />
    <rect x="13.5" y="5" width="3.5" height="14" rx="1" fill="currentColor" stroke="none" />
  </Icon>
);
const IconBriefcase = (p) => (
  <Icon {...p}>
    <rect x="3" y="7" width="18" height="13" rx="2" />
    <path d="M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" />
    <path d="M3 13h18" />
  </Icon>
);
const IconReceipt = (p) => (
  <Icon {...p}>
    <path d="M5 3h14v18l-2.5-1.5L14 21l-2-1.5L10 21l-2.5-1.5L5 21V3z" />
    <path d="M9 8h6M9 12h6M9 16h4" />
  </Icon>
);
const IconClipboard = (p) => (
  <Icon {...p}>
    <rect x="6" y="4" width="12" height="17" rx="2" />
    <rect x="9" y="2" width="6" height="4" rx="1" />
    <path d="M9 11h6M9 15h6M9 19h3" />
  </Icon>
);
const IconShield = (p) => (
  <Icon {...p}>
    <path d="M12 3l8 3v5c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-3z" />
    <path d="M9 12l2 2 4-4" />
  </Icon>
);
const IconAlert = (p) => (
  <Icon {...p}>
    <path d="M12 3l10 17H2L12 3z" />
    <path d="M12 10v4M12 17v.5" />
  </Icon>
);
const IconBell = (p) => (
  <Icon {...p}>
    <path d="M6 8a6 6 0 0 1 12 0c0 5 2 6 2 6H4s2-1 2-6z" />
    <path d="M10 20a2 2 0 0 0 4 0" />
  </Icon>
);
const IconUser = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="8" r="4" />
    <path d="M4 21c0-4 4-6 8-6s8 2 8 6" />
  </Icon>
);
const IconUsers = (p) => (
  <Icon {...p}>
    <circle cx="9" cy="8" r="3.5" />
    <path d="M2 20c0-3.5 3-5 7-5s7 1.5 7 5" />
    <circle cx="17" cy="9" r="3" />
    <path d="M16 14c3 .3 6 1.8 6 5" />
  </Icon>
);
const IconHome = (p) => (
  <Icon {...p}>
    <path d="M3 11l9-7 9 7v9a1 1 0 0 1-1 1h-5v-6h-6v6H4a1 1 0 0 1-1-1v-9z" />
  </Icon>
);
const IconHistory = (p) => (
  <Icon {...p}>
    <path d="M3 12a9 9 0 1 0 3-6.7L3 8" />
    <path d="M3 3v5h5" />
    <path d="M12 8v5l3 2" />
  </Icon>
);
const IconChevronRight = (p) => (<Icon d="M9 6l6 6-6 6" {...p} />);
const IconChevronLeft  = (p) => (<Icon d="M15 6l-6 6 6 6" {...p} />);
const IconChevronDown  = (p) => (<Icon d="M6 9l6 6 6-6" {...p} />);
const IconChevronUp    = (p) => (<Icon d="M6 15l6-6 6 6" {...p} />);
const IconArrowRight   = (p) => (<Icon d="M5 12h14M13 6l6 6-6 6" {...p} />);
const IconArrowUpRight = (p) => (<Icon d="M7 17L17 7M9 7h8v8" {...p} />);
const IconPlus = (p) => (<Icon d="M12 5v14M5 12h14" {...p} />);
const IconClose = (p) => (<Icon d="M6 6l12 12M18 6l-6 6-6 6" {...p} />);
const IconCheck = (p) => (<Icon d="M5 12l5 5L20 7" {...p} />);
const IconCheckCircle = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="12" r="9" />
    <path d="M8 12l3 3 5-5" />
  </Icon>
);
const IconCircle = (p) => (<Icon><circle cx="12" cy="12" r="9" /></Icon>);
const IconSearch = (p) => (
  <Icon {...p}>
    <circle cx="11" cy="11" r="7" />
    <path d="M16.5 16.5L21 21" />
  </Icon>
);
const IconFilter = (p) => (<Icon d="M3 5h18l-7 9v6l-4-2v-4L3 5z" {...p} />);
const IconCamera = (p) => (
  <Icon {...p}>
    <path d="M3 8a2 2 0 0 1 2-2h2.5l1.5-2h6l1.5 2H19a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8z" />
    <circle cx="12" cy="13" r="3.5" />
  </Icon>
);
const IconLocation = (p) => (
  <Icon {...p}>
    <path d="M12 22s8-7.5 8-13a8 8 0 1 0-16 0c0 5.5 8 13 8 13z" />
    <circle cx="12" cy="9" r="2.5" />
  </Icon>
);
const IconTrack = (p) => (
  <Icon {...p}>
    <path d="M6 3v18M18 3v18" />
    <path d="M4 7h16M4 12h16M4 17h16" strokeDasharray="2 3" />
  </Icon>
);
const IconTrain = (p) => (
  <Icon {...p}>
    <rect x="5" y="3" width="14" height="14" rx="3" />
    <path d="M5 11h14" />
    <circle cx="9" cy="14" r=".8" fill="currentColor" />
    <circle cx="15" cy="14" r=".8" fill="currentColor" />
    <path d="M8 17l-2 4M16 17l2 4" />
  </Icon>
);
const IconFlag = (p) => (
  <Icon {...p}>
    <path d="M5 21V4" />
    <path d="M5 4h12l-2 4 2 4H5" />
  </Icon>
);
const IconSettings = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="12" r="3" />
    <path d="M19.4 15a1.7 1.7 0 0 0 .4 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.4 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.9.4l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .4-1.9 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-.4-1.9l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.9.4H9a1.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.9-.4l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.4 1.9V9a1.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" />
  </Icon>
);
const IconLogout = (p) => (
  <Icon {...p}>
    <path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" />
    <path d="M16 17l5-5-5-5" />
    <path d="M21 12H9" />
  </Icon>
);
const IconMenu = (p) => (<Icon d="M3 6h18M3 12h18M3 18h18" {...p} />);
const IconMoreVertical = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="5" r="1.3" fill="currentColor" />
    <circle cx="12" cy="12" r="1.3" fill="currentColor" />
    <circle cx="12" cy="19" r="1.3" fill="currentColor" />
  </Icon>
);
const IconDollar = (p) => (<Icon d="M12 3v18M16 7H9.5a2.5 2.5 0 0 0 0 5h5a2.5 2.5 0 0 1 0 5H7" {...p} />);
const IconCar = (p) => (
  <Icon {...p}>
    <path d="M3 14l2-6h14l2 6v5h-2v-2H5v2H3v-5z" />
    <circle cx="7" cy="16.5" r="1.3" fill="currentColor" />
    <circle cx="17" cy="16.5" r="1.3" fill="currentColor" />
  </Icon>
);
const IconCoffee = (p) => (
  <Icon {...p}>
    <path d="M4 8h13v6a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V8z" />
    <path d="M17 10h2a2 2 0 0 1 0 4h-2" />
    <path d="M7 3v2M10 3v2M13 3v2" />
  </Icon>
);
const IconBed = (p) => (
  <Icon {...p}>
    <path d="M3 9v10M3 14h18v5M21 14V9a3 3 0 0 0-3-3h-7v8" />
    <circle cx="7" cy="11" r="2" />
  </Icon>
);
const IconDownload = (p) => (<Icon d="M12 4v12M7 11l5 5 5-5M5 20h14" {...p} />);
const IconRefresh = (p) => (
  <Icon {...p}>
    <path d="M21 12a9 9 0 1 1-3-6.7L21 8" />
    <path d="M21 3v5h-5" />
  </Icon>
);
const IconExternal = (p) => (
  <Icon {...p}>
    <path d="M14 4h6v6" />
    <path d="M20 4l-9 9" />
    <path d="M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5" />
  </Icon>
);
const IconSignature = (p) => (
  <Icon {...p}>
    <path d="M3 17c4 0 4-12 8-12s2 10 6 10c2 0 2-2 4-2" />
    <path d="M3 21h18" />
  </Icon>
);

Object.assign(window, {
  Icon,
  IconClock, IconPlay, IconStop, IconPause,
  IconBriefcase, IconReceipt, IconClipboard, IconShield, IconAlert, IconBell,
  IconUser, IconUsers, IconHome, IconHistory,
  IconChevronRight, IconChevronLeft, IconChevronDown, IconChevronUp,
  IconArrowRight, IconArrowUpRight,
  IconPlus, IconClose, IconCheck, IconCheckCircle, IconCircle,
  IconSearch, IconFilter, IconCamera, IconLocation,
  IconTrack, IconTrain, IconFlag, IconSettings, IconLogout, IconMenu, IconMoreVertical,
  IconDollar, IconCar, IconCoffee, IconBed,
  IconDownload, IconRefresh, IconExternal, IconSignature,
});
