// Icons.jsx — Schafberg-Pass iconography
// Outlined, 24x24 viewBox, currentColor strokes. Themed to alpine/krampus.

const SbpIcon = ({ d, fill = false, size = 22, strokeWidth = 1.6, children, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill ? 'currentColor' : 'none'}
       stroke="currentColor" strokeWidth={strokeWidth} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {d ? <path d={d}/> : children}
  </svg>
);

// Mountains / pass — Home
const IconHome = (p) => (
  <SbpIcon {...p}>
    <path d="M3 19l5.5-9 4 6 3-4.5L21 19H3z"/>
    <path d="M8.5 10l1.5-2.5 1 1.5"/>
    <circle cx="17" cy="6" r="1.4" fill="currentColor" stroke="none"/>
  </SbpIcon>
);

// Scroll / news
const IconNews = (p) => (
  <SbpIcon {...p}>
    <path d="M5 5h11a2 2 0 012 2v10a2 2 0 002 2H7a2 2 0 01-2-2V5z"/>
    <path d="M8 9h7M8 12h7M8 15h4"/>
  </SbpIcon>
);

// Flame calendar — Events
const IconEvents = (p) => (
  <SbpIcon {...p}>
    <rect x="3.5" y="5" width="17" height="15" rx="2.5"/>
    <path d="M3.5 10h17"/>
    <path d="M8 3v4M16 3v4"/>
    <path d="M12 13c-1.2 1-1.5 2-.6 3 .6.6 1.6.6 2.2 0 1-1 .7-2-.6-3 1-.5 1-1.5 0-2-.4 1-1 1.5-1 2z" fill="currentColor" stroke="none"/>
  </SbpIcon>
);

// Mask diamond — Gallery
const IconGallery = (p) => (
  <SbpIcon {...p}>
    <rect x="3.5" y="4" width="17" height="16" rx="2.5"/>
    <circle cx="8.5" cy="9.5" r="1.4"/>
    <path d="M4 17l4.5-4.5L13 17l3-3 4 4"/>
  </SbpIcon>
);

// Horned profile
const IconProfile = (p) => (
  <SbpIcon {...p}>
    <path d="M7 7c-.5-2-1-3-2-3.5C5 5 5.5 6 6 7"/>
    <path d="M17 7c.5-2 1-3 2-3.5-.0 1.5-.5 2.5-1 3.5"/>
    <circle cx="12" cy="11" r="4"/>
    <path d="M5 21c1-3.5 4-5.5 7-5.5s6 2 7 5.5"/>
  </SbpIcon>
);

// Flame
const IconFlame = (p) => (
  <SbpIcon {...p}>
    <path d="M12 3c0 3-3 4-3 7.5 0 1.7 1 3 2 3.5-.5-1.5.5-2.5 1.5-3 .5 1 .5 2-.5 3 1-.3 2.2-.7 3-2 1.7-2.7-.5-5-1.5-6.5-.7-1-1.5-1.5-1.5-2.5z" fill="currentColor" stroke="none"/>
    <path d="M8 16c-1 1.5-1.5 3-1 4.5C7 21 9 21 10 21h4c1 0 3 0 3-.5.5-1.5 0-3-1-4.5"/>
  </SbpIcon>
);

// Bell / horn
const IconBell = (p) => (
  <SbpIcon {...p}>
    <path d="M6 17V11a6 6 0 0112 0v6l1.5 2H4.5L6 17z"/>
    <path d="M10 21h4"/>
  </SbpIcon>
);

const IconSearch = (p) => (
  <SbpIcon {...p}>
    <circle cx="11" cy="11" r="6"/>
    <path d="M16 16l4 4"/>
  </SbpIcon>
);

const IconChevronLeft = (p) => (
  <SbpIcon {...p}>
    <path d="M15 5l-7 7 7 7"/>
  </SbpIcon>
);

const IconChevronRight = (p) => (
  <SbpIcon {...p}>
    <path d="M9 5l7 7-7 7"/>
  </SbpIcon>
);

const IconClose = (p) => (
  <SbpIcon {...p}>
    <path d="M6 6l12 12M18 6L6 18"/>
  </SbpIcon>
);

const IconPlus = (p) => (
  <SbpIcon {...p}>
    <path d="M12 5v14M5 12h14"/>
  </SbpIcon>
);

const IconShare = (p) => (
  <SbpIcon {...p}>
    <path d="M12 4v12"/>
    <path d="M8 8l4-4 4 4"/>
    <path d="M5 14v5a1 1 0 001 1h12a1 1 0 001-1v-5"/>
  </SbpIcon>
);

const IconHeart = (p) => (
  <SbpIcon {...p}>
    <path d="M12 20s-7-4.3-7-10a4 4 0 017-2.6A4 4 0 0119 10c0 5.7-7 10-7 10z"/>
  </SbpIcon>
);

const IconLocation = (p) => (
  <SbpIcon {...p}>
    <path d="M12 22s7-7 7-12a7 7 0 00-14 0c0 5 7 12 7 12z"/>
    <circle cx="12" cy="10" r="2.5"/>
  </SbpIcon>
);

const IconClock = (p) => (
  <SbpIcon {...p}>
    <circle cx="12" cy="12" r="8"/>
    <path d="M12 7v5l3.5 2"/>
  </SbpIcon>
);

const IconCamera = (p) => (
  <SbpIcon {...p}>
    <path d="M4 8h3.5l1.5-2h6l1.5 2H20a1 1 0 011 1v9a1 1 0 01-1 1H4a1 1 0 01-1-1V9a1 1 0 011-1z"/>
    <circle cx="12" cy="13" r="3.5"/>
  </SbpIcon>
);

const IconUpload = (p) => (
  <SbpIcon {...p}>
    <path d="M12 16V4M7 9l5-5 5 5"/>
    <path d="M5 16v3a1 1 0 001 1h12a1 1 0 001-1v-3"/>
  </SbpIcon>
);

const IconCheck = (p) => (
  <SbpIcon {...p}>
    <path d="M5 12l4 4 10-10"/>
  </SbpIcon>
);

const IconLock = (p) => (
  <SbpIcon {...p}>
    <rect x="5" y="11" width="14" height="9" rx="2"/>
    <path d="M8 11V8a4 4 0 018 0v3"/>
  </SbpIcon>
);

const IconMail = (p) => (
  <SbpIcon {...p}>
    <rect x="3" y="6" width="18" height="13" rx="2"/>
    <path d="M3 8l9 6 9-6"/>
  </SbpIcon>
);

const IconUser = (p) => (
  <SbpIcon {...p}>
    <circle cx="12" cy="9" r="4"/>
    <path d="M5 21c1-4 4-6 7-6s6 2 7 6"/>
  </SbpIcon>
);

const IconSettings = (p) => (
  <SbpIcon {...p}>
    <circle cx="12" cy="12" r="3"/>
    <path d="M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M5.6 18.4l2.1-2.1M16.3 7.7l2.1-2.1"/>
  </SbpIcon>
);

const IconInfo = (p) => (
  <SbpIcon {...p}>
    <circle cx="12" cy="12" r="9"/>
    <path d="M12 11v5"/>
    <circle cx="12" cy="8" r="0.6" fill="currentColor"/>
  </SbpIcon>
);

const IconArrowRight = (p) => (
  <SbpIcon {...p}>
    <path d="M5 12h14M13 6l6 6-6 6"/>
  </SbpIcon>
);

// Decorative sigil — small star/flame ornament
const IconSigil = (p) => (
  <SbpIcon {...p} strokeWidth={1.2}>
    <path d="M12 2v6M12 16v6M2 12h6M16 12h6M5 5l4 4M15 15l4 4M5 19l4-4M15 9l4-4"/>
  </SbpIcon>
);

const IconShield = (p) => (
  <SbpIcon {...p}>
    <path d="M12 2L3 6.5v5C3 16.5 7 21 12 22c5-1 9-5.5 9-10.5v-5L12 2z"/>
    <path d="M9 12l2 2 4-4" strokeWidth={1.8}/>
  </SbpIcon>
);

const IconTrash = (p) => (
  <SbpIcon {...p}>
    <path d="M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6"/>
    <path d="M10 11v6M14 11v6"/>
  </SbpIcon>
);

const IconDownload = (p) => (
  <SbpIcon {...p}>
    <path d="M12 3v13M7 11l5 5 5-5"/>
    <path d="M5 21h14"/>
  </SbpIcon>
);

const IconEdit = (p) => (
  <SbpIcon {...p}>
    <path d="M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"/>
    <path d="M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"/>
  </SbpIcon>
);

const IconRefresh = (p) => (
  <SbpIcon {...p}>
    <polyline points="1 4 1 10 7 10"/>
    <path d="M3.51 15a9 9 0 102.13-9.36L1 10"/>
  </SbpIcon>
);

const IconThumbUp = (p) => (
  <SbpIcon {...p}>
    <path d="M14 9V5a3 3 0 00-3-3l-4 9v11h11.28a2 2 0 002-1.7l1.38-9a2 2 0 00-2-2.3H14z"/>
    <path d="M7 22H4a2 2 0 01-2-2v-7a2 2 0 012-2h3"/>
  </SbpIcon>
);

const IconThumbDown = (p) => (
  <SbpIcon {...p}>
    <path d="M10 15v4a3 3 0 003 3l4-9V2H5.72a2 2 0 00-2 1.7l-1.38 9a2 2 0 002 2.3H10z"/>
    <path d="M17 2h2.67A2.31 2.31 0 0122 4v7a2.31 2.31 0 01-2.33 2H17"/>
  </SbpIcon>
);

Object.assign(window, {
  IconHome, IconNews, IconEvents, IconGallery, IconProfile,
  IconFlame, IconBell, IconSearch, IconChevronLeft, IconChevronRight,
  IconClose, IconPlus, IconShare, IconHeart, IconLocation, IconClock,
  IconCamera, IconUpload, IconCheck, IconLock, IconMail, IconUser,
  IconSettings, IconInfo, IconArrowRight, IconSigil,
  IconShield, IconTrash, IconEdit, IconRefresh, IconThumbUp, IconThumbDown,
});
