// Minimal stroked-line icon set. 16px / 1.5 stroke.
const Icon = ({ d, size = 16, stroke = 1.5, fill = 'none', children, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill}
       stroke="currentColor" strokeWidth={stroke}
       strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {d ? <path d={d} /> : children}
  </svg>
);

const IconSearch   = (p) => <Icon {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></Icon>;
const IconPlus     = (p) => <Icon d="M12 5v14M5 12h14" {...p}/>;
const IconBook     = (p) => <Icon {...p}><path d="M4 4.5A1.5 1.5 0 0 1 5.5 3H19v15.5H6a2 2 0 0 0-2 2V4.5Z"/><path d="M4 19.5A1.5 1.5 0 0 1 5.5 18H19"/></Icon>;
const IconTag      = (p) => <Icon {...p}><path d="M3 12V4h8l10 10-8 8L3 12Z"/><circle cx="8" cy="8" r="1.4" fill="currentColor" stroke="none"/></Icon>;
const IconStar     = (p) => <Icon {...p}><path d="M12 3.5l2.7 5.6 6.1.9-4.4 4.3 1 6-5.4-2.9-5.4 2.9 1-6L3.2 10l6.1-.9L12 3.5Z"/></Icon>;
const IconTrash    = (p) => <Icon {...p}><path d="M3.5 6h17M9 6V3.5h6V6M5.5 6l1 13.5h11l1-13.5"/><path d="M10 10v6M14 10v6"/></Icon>;
const IconClock    = (p) => <Icon {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3.5 2"/></Icon>;
const IconPaperclip= (p) => <Icon {...p}><path d="M21 12.5 13 20.5a5.5 5.5 0 1 1-7.8-7.8L13 5a3.7 3.7 0 1 1 5.3 5.3l-8 8a1.9 1.9 0 0 1-2.7-2.7l7.6-7.6"/></Icon>;
const IconImage    = (p) => <Icon {...p}><rect x="3.5" y="4.5" width="17" height="15" rx="2"/><circle cx="9" cy="10" r="1.8"/><path d="m4 18 5-5 4 4 3-3 4 4"/></Icon>;
const IconPDF      = (p) => <Icon {...p}><path d="M14 3H6.5A1.5 1.5 0 0 0 5 4.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8L14 3Z"/><path d="M14 3v5h5"/></Icon>;
const IconVideo    = (p) => <Icon {...p}><rect x="3" y="6" width="14" height="12" rx="2"/><path d="m17 10 4-2.5v9L17 14z"/></Icon>;
const IconChevron  = (p) => <Icon d="m6 9 6 6 6-6" {...p}/>;
const IconChevronR = (p) => <Icon d="m9 6 6 6-6 6" {...p}/>;
const IconSend     = (p) => <Icon {...p}><path d="M4 12 21 4l-3 17-5-7-7-2Z"/><path d="m13 14 4-7"/></Icon>;
const IconMore     = (p) => <Icon {...p}><circle cx="5" cy="12" r="1.2" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.2" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.2" fill="currentColor" stroke="none"/></Icon>;
const IconCheck    = (p) => <Icon d="m4.5 12.5 5 5 10-11" {...p}/>;
const IconX        = (p) => <Icon d="m6 6 12 12M18 6 6 18" {...p}/>;
const IconFile     = (p) => <Icon {...p}><path d="M14 3H6.5A1.5 1.5 0 0 0 5 4.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8L14 3Z"/><path d="M14 3v5h5"/></Icon>;
const IconInbox    = (p) => <Icon {...p}><path d="M3 13h5l1.5 3h5L16 13h5"/><path d="M5 13l2-8h10l2 8v6.5a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 3 19.5V13Z"/></Icon>;
const IconPencil   = (p) => <Icon {...p}><path d="M14.5 4.5 19.5 9.5 8 21H3v-5L14.5 4.5Z"/><path d="m13 6 5 5"/></Icon>;
const IconArrowUp  = (p) => <Icon d="M12 20V4m0 0-6 6m6-6 6 6" {...p}/>;
const IconSettings = (p) => <Icon {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.6c.61-.25 1.06-.84 1-1.51V3a2 2 0 0 1 4 0v.09c0 .67.39 1.26 1 1.51a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9c.25.61.84 1 1.51 1H21a2 2 0 0 1 0 4h-.09c-.67 0-1.26.39-1.51 1Z"/></Icon>;
const IconImport   = (p) => <Icon {...p}><path d="M12 4v11"/><path d="m7 10 5 5 5-5"/><path d="M5 19h14"/></Icon>;

Object.assign(window, {
  Icon, IconSearch, IconPlus, IconBook, IconTag, IconStar, IconTrash, IconClock,
  IconPaperclip, IconImage, IconPDF, IconVideo, IconChevron, IconChevronR, IconSend, IconMore,
  IconCheck, IconX, IconFile, IconInbox, IconPencil, IconArrowUp, IconSettings, IconImport,
});
