// Icons — hand-drawn line glyphs in Phosphor-style stroke
// Color via currentColor, sized via parent.

const Icons = {
  // Service icons
  page: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.4">
      <rect x="4" y="3" width="16" height="18" />
      <line x1="8" y1="8" x2="16" y2="8" />
      <line x1="8" y1="12" x2="16" y2="12" />
      <line x1="8" y1="16" x2="13" y2="16" />
    </svg>
  ),
  system: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.4">
      <rect x="3" y="4" width="18" height="13" />
      <line x1="3" y1="9" x2="21" y2="9" />
      <line x1="9" y1="20" x2="15" y2="20" />
      <line x1="12" y1="17" x2="12" y2="20" />
      <circle cx="6" cy="6.5" r="0.6" fill="currentColor" stroke="none"/>
      <circle cx="8.2" cy="6.5" r="0.6" fill="currentColor" stroke="none"/>
    </svg>
  ),
  dashboard: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.4">
      <rect x="3" y="3" width="8" height="9" />
      <rect x="13" y="3" width="8" height="5" />
      <rect x="13" y="10" width="8" height="11" />
      <rect x="3" y="14" width="8" height="7" />
    </svg>
  ),
  api: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.4">
      <path d="M8 6 L3 12 L8 18" strokeLinecap="round" strokeLinejoin="round"/>
      <path d="M16 6 L21 12 L16 18" strokeLinecap="round" strokeLinejoin="round"/>
      <line x1="14" y1="4" x2="10" y2="20" strokeLinecap="round" />
    </svg>
  ),
  // Contact channel icons
  linkedin: () => (
    <svg viewBox="0 0 24 24" fill="currentColor">
      <path d="M4.98 3.5a2.5 2.5 0 1 1 0 5.001 2.5 2.5 0 0 1 0-5zM3 9.5h4v11H3v-11zM10 9.5h3.8v1.5h.05c.53-.95 1.82-1.95 3.75-1.95 4 0 4.74 2.63 4.74 6.05V20.5h-4v-4.97c0-1.18-.02-2.7-1.65-2.7s-1.9 1.29-1.9 2.62V20.5H10v-11z"/>
    </svg>
  ),
  github: () => (
    <svg viewBox="0 0 24 24" fill="currentColor">
      <path d="M12 .5C5.7.5.5 5.7.5 12.05c0 5.1 3.3 9.43 7.86 10.95.58.1.79-.25.79-.55 0-.27-.01-1-.02-1.95-3.2.69-3.88-1.54-3.88-1.54-.52-1.33-1.28-1.69-1.28-1.69-1.05-.72.08-.7.08-.7 1.16.08 1.78 1.2 1.78 1.2 1.03 1.78 2.7 1.27 3.36.97.1-.75.4-1.27.74-1.56-2.55-.3-5.24-1.28-5.24-5.7 0-1.26.45-2.29 1.18-3.1-.12-.3-.51-1.47.11-3.06 0 0 .97-.31 3.18 1.18a10.9 10.9 0 0 1 5.79 0c2.2-1.5 3.17-1.19 3.17-1.19.63 1.59.24 2.77.12 3.06.73.81 1.18 1.84 1.18 3.1 0 4.44-2.7 5.4-5.27 5.69.41.36.78 1.07.78 2.17 0 1.57-.01 2.84-.01 3.23 0 .31.2.67.8.55C20.2 21.48 23.5 17.14 23.5 12.05 23.5 5.7 18.3.5 12 .5z"/>
    </svg>
  ),
  mail: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.4">
      <rect x="3" y="5" width="18" height="14" />
      <polyline points="3,6 12,13 21,6" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
  arrow: () => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5">
      <line x1="2" y1="8" x2="13" y2="8" strokeLinecap="round"/>
      <polyline points="9,4 13,8 9,12" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
  rocket: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.4">
      <path d="M12 3 C16 5 19 9 19 14 L15 18 L9 18 L5 14 C5 9 8 5 12 3 Z" strokeLinejoin="round"/>
      <circle cx="12" cy="11" r="2" />
      <path d="M9 18 L7 21 M15 18 L17 21" strokeLinecap="round"/>
    </svg>
  ),
};

window.Icons = Icons;
