/* ═══════════════════════════════════════════════════════════════════
   WizardIcons.jsx — Lucide line-icon registry (MIT). Stroke = currentColor.
   Ported from Claude Design v2 deliverable (Increment 2). Load FIRST of the
   three wizard modules. Usage: React.createElement(WIcon, { name:'lock', size:18 })
   Registers: window.WIcon + window.WPSB.Wizard.WIcon
   ═══════════════════════════════════════════════════════════════════ */
(function () {
  const PATHS = {
    check:        'M20 6 9 17l-5-5',
    'chevron-left':  'm15 18-6-6 6-6',
    'chevron-right': 'm9 18 6-6-6-6',
    'chevron-down':  'm6 9 6 6 6-6',
    x:            'M18 6 6 18 M6 6l12 12',
    lock:         'M7 11V7a5 5 0 0 1 10 0v4',
    info:         'M12 16v-4 M12 8h.01',
    clock:        'M12 6v6l4 2',
    image:        'M9 9h.01 m21 15-3.1-3.1a2 2 0 0 0-2.8 0L6 21',
    sparkles:     'M9.94 15.5A2 2 0 0 0 8.5 14.06l-6.14-1.58a.5.5 0 0 1 0-.96L8.5 9.94A2 2 0 0 0 9.94 8.5l1.58-6.14a.5.5 0 0 1 .96 0L14.06 8.5A2 2 0 0 0 15.5 9.94l6.14 1.58a.5.5 0 0 1 0 .96L15.5 14.06a2 2 0 0 0-1.44 1.44l-1.58 6.14a.5.5 0 0 1-.96 0z',
    layers:       'm12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z M2 12.65l9.17 4.16a2 2 0 0 0 1.66 0L22 12.65 M2 17.65l9.17 4.16a2 2 0 0 0 1.66 0L22 17.65',
    zap:          'M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z',
    gauge:        'M12 14 16 10 M3.34 19a10 10 0 1 1 17.32 0',
    crop:         'M6 2v14a2 2 0 0 0 2 2h14 M18 22V8a2 2 0 0 0-2-2H2',
    'refresh':    'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8 M21 3v5h-5 M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16 M8 16H3v5',
    'arrow-up-right': 'M7 7h10v10 M7 17 17 7',
    search:       'm21 21-4.34-4.34',
    'shield-check': '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 M9 12l2 2 4-4',
    sliders:      'M4 21v-7 M4 10V3 M12 21v-9 M12 8V3 M20 21v-5 M20 12V3 M2 14h4 M10 8h4 M18 16h4',
    'check-circle': 'M21.8 10A10 10 0 1 1 17 3.34 M22 4 12 14.01l-3-3',
    sun:          'M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8z M12 2v2 M12 20v2 M4.93 4.93l1.41 1.41 M17.66 17.66l1.41 1.41 M2 12h2 M20 12h2 M6.34 17.66l-1.41 1.41 M19.07 4.93l-1.41 1.41',
    moon:         'M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z',
    eye:          'M2.06 12.35a1 1 0 0 1 0-.7 10.75 10.75 0 0 1 19.88 0 1 1 0 0 1 0 .7 10.75 10.75 0 0 1-19.88 0',
    'eye-off':    'm15 18-.72-3.25 M2 8a10.6 10.6 0 0 0 20 0 M12 17v-3.5 M22 8l-2.16 3.5 M2 8l2.16 3.5',
    play:         'M6 3l14 9-14 9V3z',
    rocket:       'M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91 0z M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0 M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5',
    folder:       'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',
    type:         'M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2 M9 20h6 M12 4v16',
    globe:        'M2 12h20 M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z',
    user:         'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2',
    'credit-card':'M2 10h20',
    star:         'M11.5 2.6a.6.6 0 0 1 1 0l2.6 5.3 5.8.8a.6.6 0 0 1 .3 1l-4.2 4.1 1 5.8a.6.6 0 0 1-.9.6L12 17.8l-5.2 2.8a.6.6 0 0 1-.9-.6l1-5.8L2.7 9.7a.6.6 0 0 1 .3-1l5.8-.8z',
    lightbulb:    'M9 18h6 M10 22h4 M15.1 14c.2-.8.6-1.5 1.4-2a5 5 0 1 0-5 0c.8.5 1.2 1.2 1.4 2',
    'help-circle':'M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3 M12 17h.01',
    'file-text':  'M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z M14 2v5h5 M9 13h6 M9 17h5',
    grid:         'M3 3h7v7H3z M14 3h7v7h-7z M14 14h7v7h-7z M3 14h7v7H3z',
    message:      'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',
    'alert-triangle': 'M21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3z M12 9v4 M12 17h.01',
    download:     'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M7 10l5 5 5-5 M12 15V3',
    trash:        'M3 6h18 M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6 M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2 M10 11v6 M14 11v6',
    copy:         'M9 9V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4 M5 9h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2z',
    /* v2 Increment 3 (SEO Tracker port) — glyphs ported verbatim from the v2
       package icons.jsx (map-pin pairs with a circle, see CIRCLES). */
    'map-pin':    'M20 10c0 4.4-5.5 9.3-7.3 10.8a1 1 0 0 1-1.4 0C9.5 19.3 4 14.4 4 10a8 8 0 0 1 16 0z',
    'external':   'M15 3h6v6 M10 14 21 3 M21 14v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5',
  };
  const CIRCLES = {
    info:  [12, 12, 10], clock: [12, 12, 10], search: [11, 11, 8],
    globe: [12, 12, 10], user: [12, 7, 4], 'help-circle': [12, 12, 10],
    'map-pin': [12, 10, 3],
  };
  const RECTS = {
    lock:  [3, 11, 18, 11, 2], image: [3, 3, 18, 18, 2], 'credit-card': [2, 5, 20, 14, 2],
  };
  const DOTS = { image: [9, 9, 2] };

  function WIcon({ name, size = 20, stroke = 2, style, className }) {
    const d = PATHS[name];
    const kids = [];
    if (RECTS[name]) { const [x, y, w, h, r] = RECTS[name]; kids.push(React.createElement('rect', { key: 'r', x, y, width: w, height: h, rx: r })); }
    if (CIRCLES[name]) { const [cx, cy, r] = CIRCLES[name]; kids.push(React.createElement('circle', { key: 'c', cx, cy, r })); }
    if (DOTS[name]) { const [cx, cy, r] = DOTS[name]; kids.push(React.createElement('circle', { key: 'd', cx, cy, r })); }
    if (d) d.split(' M').forEach((seg, i) => kids.push(React.createElement('path', { key: 'p' + i, d: (i ? 'M' : '') + seg })));
    return React.createElement('svg', {
      width: size, height: size, viewBox: '0 0 24 24', fill: 'none',
      stroke: 'currentColor', strokeWidth: stroke, strokeLinecap: 'round', strokeLinejoin: 'round',
      className, style: { flex: 'none', display: 'block', ...style }, 'aria-hidden': 'true',
    }, kids);
  }

  window.WIcon = WIcon;
  window.WPSB = window.WPSB || {};
  window.WPSB.Wizard = Object.assign(window.WPSB.Wizard || {}, { WIcon });
  console.log('[WPSB Wizard] Icons loaded (' + Object.keys(PATHS).length + ' glyphs).');
})();
