// Minimal stroked icon set — sized via prop, stroke from currentColor.
// Keep these short and consistent. 1.6 stroke, round caps/joins.

const Icon = ({ d, size = 16, fill = "none", style, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill}
       stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"
       style={{ display: "inline-block", verticalAlign: "middle", flex: "none", ...style }}
       {...rest}>
    {typeof d === "string" ? <path d={d} /> : d}
  </svg>
);

const IconPlus = (p) => <Icon {...p} d="M12 5v14M5 12h14" />;
const IconClose = (p) => <Icon {...p} d="M6 6l12 12M18 6L6 18" />;
const IconCheck = (p) => <Icon {...p} d="M5 12l5 5L20 7" />;
const IconArrowRight = (p) => <Icon {...p} d="M5 12h14M13 6l6 6-6 6" />;
const IconArrowLeft  = (p) => <Icon {...p} d="M19 12H5M11 6l-6 6 6 6" />;
const IconChevronDown = (p) => <Icon {...p} d="M6 9l6 6 6-6" />;
const IconChevronLeft = (p) => <Icon {...p} d="M15 6l-6 6 6 6" />;
const IconChevronRight = (p) => <Icon {...p} d="M9 6l6 6-6 6" />;
const IconHeart = (p) => <Icon {...p} d="M12 20s-7-4.5-7-10a4 4 0 017-2.6A4 4 0 0119 10c0 5.5-7 10-7 10z" />;
const IconImage = (p) => (
  <Icon {...p} d={<g>
    <rect x="3" y="4" width="18" height="16" rx="2.5" />
    <circle cx="9" cy="10" r="1.6" />
    <path d="M3.5 17l5-5 4 4 3-3 5 5" />
  </g>} />
);
const IconText = (p) => <Icon {...p} d="M6 5h12M9 5v14M15 5v14M7 19h4M13 19h4" />;
const IconMic = (p) => (
  <Icon {...p} d={<g>
    <rect x="9" y="3" width="6" height="12" rx="3" />
    <path d="M5 11a7 7 0 0014 0" />
    <path d="M12 18v3" />
  </g>} />
);
const IconPen = (p) => <Icon {...p} d="M4 20l4-1 11-11-3-3L5 16l-1 4z M14 6l3 3" />;
const IconSticker = (p) => (
  <Icon {...p} d={<g>
    <path d="M14 3H6a3 3 0 00-3 3v12a3 3 0 003 3h8l7-7V6a3 3 0 00-3-3h-4z" />
    <path d="M14 21v-4a3 3 0 013-3h4" />
    <path d="M9 11a3 3 0 006 0" />
  </g>} />
);
const IconVideo = (p) => (
  <Icon {...p} d={<g>
    <rect x="3" y="6" width="13" height="12" rx="2" />
    <path d="M16 10l5-3v10l-5-3z" />
  </g>} />
);
const IconGif = (p) => (
  <Icon {...p} d={<g>
    <rect x="3" y="6" width="18" height="12" rx="2" />
    <path d="M9 10a2 2 0 10-2 2h2v2M12 10v4M16 10h3M16 12h2" strokeWidth="1.4" />
  </g>} />
);
const IconHome = (p) => <Icon {...p} d="M4 11l8-7 8 7v9a1 1 0 01-1 1h-4v-7H9v7H5a1 1 0 01-1-1v-9z" />;
const IconBoard = (p) => (
  <Icon {...p} d={<g>
    <rect x="3.5" y="4" width="17" height="16" rx="2.5" />
    <path d="M3.5 9h17M9 4v16" />
  </g>} />
);
const IconWand = (p) => <Icon {...p} d="M4 20l11-11 3 3L7 23l-3-3z M16 4l1 2 2 1-2 1-1 2-1-2-2-1 2-1 1-2z" />;
const IconAdmin = (p) => (
  <Icon {...p} d={<g>
    <circle cx="12" cy="8" r="3.2" />
    <path d="M5 20a7 7 0 0114 0" />
    <path d="M16 5l1.5 1.5L21 3" />
  </g>} />
);
const IconGift = (p) => (
  <Icon {...p} d={<g>
    <path d="M3 9h18v4H3z" />
    <path d="M4.5 13h15V20a1 1 0 01-1 1h-13a1 1 0 01-1-1v-7z" />
    <path d="M12 9v12" />
    <path d="M8 9a2.5 2.5 0 010-5c2 0 4 5 4 5s2-5 4-5a2.5 2.5 0 010 5" />
  </g>} />
);
const IconLock = (p) => (
  <Icon {...p} d={<g>
    <rect x="5" y="11" width="14" height="9" rx="2" />
    <path d="M8 11V8a4 4 0 018 0v3" />
  </g>} />
);
const IconUnlock = (p) => (
  <Icon {...p} d={<g>
    <rect x="5" y="11" width="14" height="9" rx="2" />
    <path d="M8 11V8a4 4 0 017.6-1.6" />
  </g>} />
);
const IconDownload = (p) => <Icon {...p} d="M12 4v12M6 12l6 6 6-6M5 21h14" />;
const IconEye = (p) => <Icon {...p} d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z M12 9a3 3 0 100 6 3 3 0 000-6z" />;
const IconEyeOff = (p) => <Icon {...p} d="M3 3l18 18 M10 6.5A10 10 0 0112 5c6.5 0 10 7 10 7a17 17 0 01-3.2 4 M6.5 6.5C3.8 8.4 2 12 2 12s3.5 7 10 7c1.6 0 3-.3 4.3-.8 M9.7 9.7A3 3 0 0014.3 14.3" />;
const IconCopy = (p) => (
  <Icon {...p} d={<g>
    <rect x="8" y="8" width="12" height="12" rx="2" />
    <path d="M16 8V5a1 1 0 00-1-1H5a1 1 0 00-1 1v10a1 1 0 001 1h3" />
  </g>} />
);
const IconLink = (p) => <Icon {...p} d="M10 13a5 5 0 007 0l3-3a5 5 0 00-7-7l-1 1 M14 11a5 5 0 00-7 0l-3 3a5 5 0 007 7l1-1" />;
const IconCalendar = (p) => (
  <Icon {...p} d={<g>
    <rect x="3.5" y="5" width="17" height="15" rx="2" />
    <path d="M3.5 10h17M8 3v4M16 3v4" />
  </g>} />
);
const IconUsers = (p) => (
  <Icon {...p} d={<g>
    <circle cx="9" cy="8" r="3.2" />
    <path d="M3 20a6 6 0 0112 0" />
    <circle cx="17" cy="9" r="2.5" />
    <path d="M15 20a5 5 0 016-4.9" />
  </g>} />
);
const IconRotate = (p) => <Icon {...p} d="M21 12a9 9 0 11-3-6.7 M21 4v5h-5" />;
const IconResize = (p) => <Icon {...p} d="M14 4h6v6M20 4l-7 7 M10 20H4v-6M4 20l7-7" />;
const IconMove = (p) => <Icon {...p} d="M12 3v18M3 12h18M9 6l3-3 3 3M9 18l3 3 3-3M6 9l-3 3 3 3M18 9l3 3-3 3" />;
const IconTrash = (p) => (
  <Icon {...p} d={<g>
    <path d="M4 7h16M9 7V5a1 1 0 011-1h4a1 1 0 011 1v2" />
    <path d="M6 7l1 12a2 2 0 002 2h6a2 2 0 002-2l1-12" />
    <path d="M10 11v6M14 11v6" />
  </g>} />
);
const IconUpload = (p) => <Icon {...p} d="M12 20V8M6 12l6-6 6 6M5 21h14" />;
const IconCrop = (p) => <Icon {...p} d="M6 2v16h16 M2 6h16v16" />;
const IconPlay = (p) => <Icon {...p} d="M7 4v16l13-8z" fill="currentColor" />;
const IconPause = (p) => <Icon {...p} d="M7 4h4v16H7zM13 4h4v16h-4z" fill="currentColor" />;
const IconFilter = (p) => <Icon {...p} d="M3 5h18M6 12h12M10 19h4" />;
const IconStar = (p) => <Icon {...p} d="M12 3l2.6 5.5 6 .9-4.4 4.3 1 6-5.2-2.8L6.8 19.7l1-6L3.4 9.4l6-.9L12 3z" />;
const IconSparkle = (p) => <Icon {...p} d="M12 4v6M12 14v6M4 12h6M14 12h6M7 7l3 3M14 14l3 3M17 7l-3 3M7 17l3-3" />;

// Layer / z-order glyphs: chevrons toward a ceiling (front) or floor (back),
// with double chevrons for "all the way".
const IconBringToFront = (p) => (
  <Icon {...p} d={<g>
    <path d="M4 4h16" />
    <path d="M7 11l5-5 5 5" />
    <path d="M7 18l5-5 5 5" />
  </g>} />
);
const IconMoveForward = (p) => <Icon {...p} d="M6 14l6-6 6 6" />;
const IconMoveBackward = (p) => <Icon {...p} d="M6 10l6 6 6-6" />;
const IconSendToBack = (p) => (
  <Icon {...p} d={<g>
    <path d="M4 20h16" />
    <path d="M7 13l5 5 5-5" />
    <path d="M7 6l5 5 5-5" />
  </g>} />
);
Object.assign(window, {
  Icon,
  IconPlus, IconClose, IconCheck, IconArrowRight, IconArrowLeft, IconChevronDown, IconChevronLeft, IconChevronRight,
  IconHeart, IconImage, IconText, IconMic, IconPen, IconSticker, IconGif, IconVideo,
  IconHome, IconBoard, IconWand, IconAdmin, IconGift, IconLock, IconUnlock,
  IconDownload, IconEye, IconEyeOff, IconCopy, IconLink, IconCalendar, IconUsers,
  IconRotate, IconResize, IconMove, IconTrash, IconUpload, IconCrop, IconPlay, IconPause,
  IconFilter, IconStar, IconSparkle,
  IconBringToFront, IconMoveForward, IconMoveBackward, IconSendToBack,
});
