// Icons.jsx — Terraforno icon set.
// Curated from Lucide (MIT, https://lucide.dev), 24px grid, 2px stroke, round caps/joins.
(function () {
  const S = (props) => ({
    xmlns: 'http://www.w3.org/2000/svg',
    width: props.size || 24,
    height: props.size || 24,
    viewBox: '0 0 24 24',
    fill: 'none',
    stroke: 'currentColor',
    strokeWidth: props.stroke || 1.75,
    strokeLinecap: 'round',
    strokeLinejoin: 'round',
    className: props.className,
    style: props.style,
    'aria-hidden': true,
  });

  const PATHS = {
    flame: ['M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z'],
    arrowRight: ['M5 12h14', 'm12 5 7 7-7 7'],
    arrowLeft: ['m12 19-7-7 7-7', 'M19 12H5'],
    arrowUpRight: ['M7 7h10v10', 'M7 17 17 7'],
    menu: ['M4 12h16', 'M4 6h16', 'M4 18h16'],
    x: ['M18 6 6 18', 'm6 6 12 12'],
    check: ['M20 6 9 17l-5-5'],
    chevronRight: ['m9 18 6-6-6-6'],
    chevronDown: ['m6 9 6 6 6-6'],
    chevronLeft: ['m15 18-6-6 6-6'],
    star: ['M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'],
    mapPin: ['M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0', 'CIRCLE:12,10,3'],
    phone: ['M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384z'],
    mail: ['M22 7l-8.991 5.727a2 2 0 0 1-2.018 0L2 7', 'RECT:2,4,20,16,2'],
    thermometer: ['M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z'],
    leaf: ['M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z', 'M2 21c0-3 1.85-5.36 5.08-6'],
    ruler: ['M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z', 'M14.5 12.5 16 11', 'M12 10l1.5-1.5', 'M9.5 7.5 11 6', 'M7 5l1.5-1.5'],
    shield: ['M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'],
    truck: ['M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2', 'M15 18H9', 'M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62l-3.48-4.35A1 1 0 0 0 17.52 8H14', 'CIRCLE:17,18,2', 'CIRCLE:7,18,2'],
    plus: ['M5 12h14', 'M12 5v14'],
    minus: ['M5 12h14'],
    clock: ['CIRCLE:12,12,10', 'M12 6v6l4 2'],
    hammer: ['m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9', 'm18 15 4-4', 'm21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586z'],
    sparkles: ['M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z', 'M20 3v4', 'M22 5h-4', 'M4 17v2', 'M5 18H3'],
    instagram: ['RECT:2,2,20,20,5', 'M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z', 'M17.5 6.5h.01'],
    youtube: ['M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17', 'm10 15 5-3-5-3z'],
    quote: ['M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2.5l.5 1.5a2 2 0 0 1-2 2.5 1 1 0 1 0 0 2 4 4 0 0 0 4-4V5a2 2 0 0 0-2-2z', 'M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2.5l.5 1.5a2 2 0 0 1-2 2.5 1 1 0 1 0 0 2 4 4 0 0 0 4-4V5a2 2 0 0 0-2-2z'],
    pizza: ['M15 11h.01', 'M11 15h.01', 'M16 16h.01', 'm2 16 20 6-6-20A20 20 0 0 0 2 16', 'M5.71 17.11a17.04 17.04 0 0 1 11.4-11.4'],
    wind: ['M12.8 19.6A2 2 0 1 0 14 16H2', 'M17.5 8a2.5 2.5 0 1 1 2 4H2', 'M9.8 4.4A2 2 0 1 1 11 8H2'],
    award: ['CIRCLE:12,8,6', 'M15.477 12.89 17 22l-5-3-5 3 1.523-9.11'],
    play: ['M6 3v18l15-9z'],
  };

  function Icon({ name, size = 24, stroke = 1.75, className = '', style = {} }) {
    const d = PATHS[name];
    if (!d) return null;
    const children = d.map((seg, i) => {
      if (seg.startsWith('CIRCLE:')) {
        const [cx, cy, r] = seg.slice(7).split(',');
        return React.createElement('circle', { key: i, cx, cy, r });
      }
      if (seg.startsWith('RECT:')) {
        const [x, y, w, h, rx] = seg.slice(5).split(',');
        return React.createElement('rect', { key: i, x, y, width: w, height: h, rx });
      }
      return React.createElement('path', { key: i, d: seg });
    });
    return React.createElement('svg', S({ size, stroke, className, style }), children);
  }

  window.Icon = Icon;
})();
