// Hand-rolled minimal icon set — stroke 1.5, 16x16
const Icon = ({ d, size = 16, fill = false, stroke = 'currentColor', strokeWidth = 1.5, children, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 16 16" fill={fill ? 'currentColor' : 'none'} stroke={stroke} strokeWidth={strokeWidth} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {d ? <path d={d} /> : children}
  </svg>
);

const IconUpload = (p) => <Icon {...p}><path d="M8 11V3M8 3l-3 3M8 3l3 3M3 11v1.5A1.5 1.5 0 0 0 4.5 14h7a1.5 1.5 0 0 0 1.5-1.5V11"/></Icon>;
const IconImage = (p) => <Icon {...p}><rect x="2.25" y="3" width="11.5" height="10" rx="1.5"/><circle cx="6" cy="6.5" r="1"/><path d="m2.5 11 3-2.5L8 10.5l2.5-2 3 2.5"/></Icon>;
const IconFrame = (p) => <Icon {...p}><rect x="2" y="3" width="12" height="10" rx="1.5"/><path d="M2 6h12"/><circle cx="4" cy="4.5" r="0.4" fill="currentColor"/><circle cx="5.5" cy="4.5" r="0.4" fill="currentColor"/><circle cx="7" cy="4.5" r="0.4" fill="currentColor"/></Icon>;
const IconLayers = (p) => <Icon {...p}><path d="M8 2 2 5l6 3 6-3-6-3z"/><path d="m2 8 6 3 6-3M2 11l6 3 6-3"/></Icon>;
const IconWand = (p) => <Icon {...p}><path d="m3 13 8-8M9 3l1 2 2 1-2 1-1 2-1-2-2-1 2-1zM13 8l.5 1 1 .5-1 .5L13 11l-.5-1-1-.5 1-.5z"/></Icon>;
const IconText = (p) => <Icon {...p}><path d="M3 4V3h10v1M8 3v10M5.5 13h5"/></Icon>;
const IconArrow = (p) => <Icon {...p}><path d="M3 13 13 3M13 3H7M13 3v6"/></Icon>;
const IconBlur = (p) => <Icon {...p}><circle cx="8" cy="8" r="5.5"/><path d="M8 2.5v11M2.5 8h11M4 4l8 8M12 4l-8 8" strokeDasharray="1 1.5"/></Icon>;
const IconDownload = (p) => <Icon {...p}><path d="M8 2v8M8 10l-3-3M8 10l3-3M3 13h10"/></Icon>;
const IconCopy = (p) => <Icon {...p}><rect x="5" y="5" width="8" height="8" rx="1.5"/><path d="M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5"/></Icon>;
const IconShare = (p) => <Icon {...p}><circle cx="4" cy="8" r="1.5"/><circle cx="12" cy="3.5" r="1.5"/><circle cx="12" cy="12.5" r="1.5"/><path d="m5.3 7.2 5.4-2.9M5.3 8.8l5.4 2.9"/></Icon>;
const IconSparkle = (p) => <Icon {...p}><path d="M8 1.5v3M8 11.5v3M1.5 8h3M11.5 8h3M3.5 3.5l2 2M10.5 10.5l2 2M3.5 12.5l2-2M10.5 5.5l2-2"/></Icon>;
const IconCheck = (p) => <Icon {...p}><path d="m3 8 3.5 3.5L13 5"/></Icon>;
const IconX = (p) => <Icon {...p}><path d="m4 4 8 8M12 4l-8 8"/></Icon>;
const IconArrowR = (p) => <Icon {...p}><path d="M4 8h8M8 4l4 4-4 4"/></Icon>;
const IconArrowL = (p) => <Icon {...p}><path d="M12 8H4M8 4 4 8l4 4"/></Icon>;
const IconUndo = (p) => <Icon {...p}><path d="M3 7h7a3 3 0 1 1 0 6H7M3 7l3-3M3 7l3 3"/></Icon>;
const IconRedo = (p) => <Icon {...p}><path d="M13 7H6a3 3 0 1 0 0 6h3M13 7l-3-3M13 7l-3 3"/></Icon>;
const IconCommand = (p) => <Icon {...p}><path d="M5.5 2A1.5 1.5 0 1 1 4 3.5V12.5A1.5 1.5 0 1 1 5.5 14h5A1.5 1.5 0 1 1 12 12.5V3.5A1.5 1.5 0 1 1 10.5 2h-5z"/></Icon>;
const IconChevronDown = (p) => <Icon {...p}><path d="m4 6 4 4 4-4"/></Icon>;
const IconChevronR = (p) => <Icon {...p}><path d="m6 4 4 4-4 4"/></Icon>;
const IconPlus = (p) => <Icon {...p}><path d="M8 3v10M3 8h10"/></Icon>;
const IconDevice = (p) => <Icon {...p}><rect x="4.5" y="2" width="7" height="12" rx="1.5"/><path d="M7 12.5h2"/></Icon>;
const IconBrowser = (p) => <Icon {...p}><rect x="2" y="3" width="12" height="10" rx="1.5"/><path d="M2 6h12"/></Icon>;
const IconNoFrame = (p) => <Icon {...p}><rect x="2.5" y="2.5" width="11" height="11" rx="1.5" strokeDasharray="2 1.5"/></Icon>;
const IconWindow = (p) => <Icon {...p}><rect x="2" y="3" width="12" height="10" rx="1.5"/><path d="M2 6h12"/><circle cx="4" cy="4.5" r="0.4" fill="currentColor"/><circle cx="5.3" cy="4.5" r="0.4" fill="currentColor"/><circle cx="6.6" cy="4.5" r="0.4" fill="currentColor"/></Icon>;
const IconAspect = (p) => <Icon {...p}><rect x="2.5" y="3.5" width="11" height="9" rx="1"/></Icon>;
const IconGear = (p) => <Icon {...p}><circle cx="8" cy="8" r="2"/><path d="M8 1.5v2M8 12.5v2M14.5 8h-2M3.5 8h-2M12.6 3.4 11.2 4.8M4.8 11.2 3.4 12.6M12.6 12.6 11.2 11.2M4.8 4.8 3.4 3.4"/></Icon>;
const IconSearch = (p) => <Icon {...p}><circle cx="7" cy="7" r="4"/><path d="m10 10 3 3"/></Icon>;
const IconCursor = (p) => <Icon {...p}><path d="m3 2 4 11 2-4 4-2L3 2z"/></Icon>;

Object.assign(window, {
  Icon, IconUpload, IconImage, IconFrame, IconLayers, IconWand, IconText, IconArrow, IconBlur,
  IconDownload, IconCopy, IconShare, IconSparkle, IconCheck, IconX, IconArrowR, IconArrowL,
  IconUndo, IconRedo, IconCommand, IconChevronDown, IconChevronR, IconPlus, IconDevice,
  IconBrowser, IconNoFrame, IconWindow, IconAspect, IconGear, IconSearch, IconCursor
});
