/* Bruno Dev — icon set. Lucide-style line icons (24×24, stroke 2, currentColor).
   Paths are copied from the open-source Lucide set — the brand's chosen icon
   system. Loaded as a Babel script; exposes <Icon name="..."/> + window.BDIcons. */

const BD_ICON_PATHS = {
  'arrow-right': 'M5 12h14M13 5l7 7-7 7',
  'arrow-up-right': 'M7 17 17 7M7 7h10v10',
  'chevron-right': 'm9 18 6-6-6-6',
  'chevron-down': 'm6 9 6 6 6-6',
  'menu': 'M4 6h16M4 12h16M4 18h16',
  'x': 'M18 6 6 18M6 6l12 12',
  'mail': 'M22 7 13.03 12.7a2 2 0 0 1-2.06 0L2 7|M2 5h20v14H2z',
  'send': 'M14.54 2.46 9.7 14.3l-2.06-5.94L1.7 6.3 14.54 2.46Z|m9.7 14.3 4.84-11.84',
  'search': 'M21 21l-4.34-4.34|M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Z',
  'code': 'm18 16 4-4-4-4M6 8l-4 4 4 4M14.5 4l-5 16',
  'terminal': 'm4 17 6-6-6-6M12 19h8',
  'music': 'M9 18V5l12-2v13|M9 18a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z|M21 16a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z',
  'headphones': 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5a9 9 0 0 1 18 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3',
  'disc': 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20Z|M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z',
  'sparkles': 'M9.94 5.5 12 2l2.06 3.5L18 7l-3.94 1.5L12 12l-2.06-3.5L6 7l3.94-1.5Z|M19 13l1 2.5L22 17l-2 1-1 2.5L17 18l-2-1 2-1.5 1-2.5Z|M5 14l.8 2L8 17l-2.2 1L5 20l-.8-2L2 17l2.2-1L5 14Z',
  'github': 'M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22',
  'linkedin': 'M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-4 0v7h-4v-7a6 6 0 0 1 6-6Z|M6 9H2v12h4z|M4 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z',
  'external-link': 'M15 3h6v6|M10 14 21 3|M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6',
  'map-pin': 'M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z|M12 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z',
  'calendar': 'M8 2v4M16 2v4|M3 5h18v17H3z|M3 10h18',
  'sun': 'M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z|M12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4',
  'moon': 'M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z',
  'heart': 'M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 12 5 5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z',
  'star': 'M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14l-5-4.87 6.91-1.01L12 2Z',
  'play-circle': 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20Z|m10 8 6 4-6 4V8Z',
  'check': 'M20 6 9 17l-5-5',
  'plus': 'M12 5v14M5 12h14',
  'clock': 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20Z|M12 6v6l4 2',
  'layers': 'm12 2 9 5-9 5-9-5 9-5Z|m21 12-9 5-9-5|m21 17-9 5-9-5',
  'zap': 'M13 2 3 14h9l-1 8 10-12h-9l1-8Z',
  'globe': 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20Z|M2 12h20|M12 2a15.3 15.3 0 0 1 0 20 15.3 15.3 0 0 1 0-20Z',
  'bookmark': 'M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z',
  'rss': 'M4 11a9 9 0 0 1 9 9|M4 4a16 16 0 0 1 16 16|M5 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z',
  'pause': 'M6 4h4v16H6zM14 4h4v16h-4z',
  'play': 'M6 3v18l15-9L6 3Z',
  'volume': 'M11 5 6 9H2v6h4l5 4V5Z|M19 12a4 4 0 0 0-2.5-3.7|M15.5 8.5a8 8 0 0 1 0 7',
  'shield': 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z',
  'shield-check': 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z|m9 12 2 2 4-4',
  'lock': 'M5 11h14a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2Z|M7 11V7a5 5 0 0 1 10 0v4',
  'key': 'M2.59 17.41A2 2 0 0 0 2 18.83V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 1 1-1v-1a1 1 0 0 1 1-1h.17a2 2 0 0 0 1.42-.59l.81-.81a6.5 6.5 0 1 0-4-4Z|M16.5 7.5h.01',
  'database': 'M12 8c4.97 0 9-1.34 9-3s-4.03-3-9-3-9 1.34-9 3 4.03 3 9 3Z|M21 5v6c0 1.66-4 3-9 3s-9-1.34-9-3V5|M21 11v6c0 1.66-4 3-9 3s-9-1.34-9-3v-6',
  'server': 'M5 2h14a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Z|M5 15h14a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2Z|M6 6h.01M6 18h.01',
  'box': 'M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8Z|m3.3 7 8.7 5 8.7-5|M12 22V12',
  'hexagon': 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z',
  'cpu': 'M4 4h16v16H4z|M9 9h6v6H9z|M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3',
  'cloud': 'M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z',
  'share-2': 'M18 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z|M6 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z|M18 22a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z|m8.59 13.51 6.83 3.98|m15.41 6.51-6.82 3.98',
  'git-branch': 'M6 3v12|M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z|M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z|M15 6a9 9 0 0 0-9 9',
  'user-round': 'M18 20a6 6 0 0 0-12 0|M12 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z',
  'activity': 'M22 12h-4l-3 9L9 3l-3 9H2',
  'arrow-down': 'M12 5v14M19 12l-7 7-7-7',
  'file-text': 'M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z|M14 2v4a2 2 0 0 0 2 2h4|M16 13H8|M16 17H8|M10 9H8',
  'credit-card': 'M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Z|M2 10h20',
  'calculator': 'M6 2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Z|M8 6h8|M16 14v4|M16 10h.01|M12 10h.01|M8 10h.01|M12 14h.01|M8 14h.01|M12 18h.01|M8 18h.01',
  'bell': 'M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9|M10.3 21a1.94 1.94 0 0 0 3.4 0',
  'scan-search': 'M3 7V5a2 2 0 0 1 2-2h2|M17 3h2a2 2 0 0 1 2 2v2|M21 17v2a2 2 0 0 1-2 2h-2|M7 21H5a2 2 0 0 1-2-2v-2|M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z|m16 16-1.9-1.9',
  'gauge': 'm12 14 4-4|M3.34 19a10 10 0 1 1 17.32 0',
  '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',
  'fingerprint': 'M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4|M14 13.12c0 2.38 0 6.38-1 8.88|M17.29 21.02c.12-.6.43-2.3.5-3.02|M2 12a10 10 0 0 1 18-6|M2 16h.01|M21.8 16c.2-2 .131-5.354 0-6|M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2|M8.65 22c.21-.66.45-1.32.57-2|M9 6.8a6 6 0 0 1 9 5.2v2',
};
const BD_FILLED = new Set(['play', 'pause']);

function Icon({ name, size = 20, strokeWidth = 2, className = '', style, ...rest }) {
  const d = BD_ICON_PATHS[name];
  if (!d) return null;
  const filled = BD_FILLED.has(name);
  const segs = d.split('|');
  return (
    <svg width={size} height={size} viewBox="0 0 24 24"
      fill={filled ? 'currentColor' : 'none'}
      stroke={filled ? 'none' : 'currentColor'}
      strokeWidth={strokeWidth} strokeLinecap="round" strokeLinejoin="round"
      className={className} style={style} aria-hidden="true" {...rest}>
      {segs.map((s, i) => <path key={i} d={s} />)}
    </svg>
  );
}

window.BDIcons = { Icon, BD_ICON_PATHS };
