/* JRN — Ícones (stroke line, 24x24 viewBox) */
const Ico = ({d, fill, size, sw, children, ...rest}) => (
  <svg viewBox="0 0 24 24" width={size||18} height={size||18} fill={fill||'none'}
    stroke={fill?'none':'currentColor'} strokeWidth={sw||1.7} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {children || <path d={d} />}
  </svg>
);

const Icons = {
  grid:      (p)=><Ico {...p}><rect x="3" y="3" width="7" height="7" rx="1.2"/><rect x="14" y="3" width="7" height="7" rx="1.2"/><rect x="3" y="14" width="7" height="7" rx="1.2"/><rect x="14" y="14" width="7" height="7" rx="1.2"/></Ico>,
  chart:     (p)=><Ico {...p}><path d="M4 19V5"/><path d="M4 19h16"/><path d="M8 16v-4"/><path d="M13 16V8"/><path d="M18 16v-6"/></Ico>,
  users:     (p)=><Ico {...p}><circle cx="9" cy="8" r="3.2"/><path d="M3.5 19a5.5 5.5 0 0 1 11 0"/><path d="M16 6.2a3 3 0 0 1 0 5.6"/><path d="M17.5 19a5.2 5.2 0 0 0-3-4.7"/></Ico>,
  user:      (p)=><Ico {...p}><circle cx="12" cy="8" r="3.5"/><path d="M5.5 20a6.5 6.5 0 0 1 13 0"/></Ico>,
  shield:    (p)=><Ico {...p}><path d="M12 3l7 3v5c0 4.5-3 8-7 10-4-2-7-5.5-7-10V6z"/><path d="M9 12l2 2 4-4"/></Ico>,
  building:  (p)=><Ico {...p}><rect x="4" y="3" width="16" height="18" rx="1.5"/><path d="M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2"/></Ico>,
  list:      (p)=><Ico {...p}><path d="M8 6h13M8 12h13M8 18h13M3.5 6h.01M3.5 12h.01M3.5 18h.01"/></Ico>,
  history:   (p)=><Ico {...p}><path d="M3 12a9 9 0 1 0 3-6.7L3 8"/><path d="M3 4v4h4"/><path d="M12 8v4l3 2"/></Ico>,
  plus:      (p)=><Ico {...p}><path d="M12 5v14M5 12h14"/></Ico>,
  search:    (p)=><Ico {...p}><circle cx="11" cy="11" r="6.5"/><path d="M16 16l4 4"/></Ico>,
  bell:      (p)=><Ico {...p}><path d="M6 9a6 6 0 0 1 12 0c0 5 2 6 2 6H4s2-1 2-6Z"/><path d="M10 19a2 2 0 0 0 4 0"/></Ico>,
  logout:    (p)=><Ico {...p}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><path d="M16 17l5-5-5-5"/><path d="M21 12H9"/></Ico>,
  chevDown:  (p)=><Ico {...p}><path d="M6 9l6 6 6-6"/></Ico>,
  chevRight: (p)=><Ico {...p}><path d="M9 6l6 6-6 6"/></Ico>,
  arrowLeft: (p)=><Ico {...p}><path d="M19 12H5M11 6l-6 6 6 6"/></Ico>,
  external:  (p)=><Ico {...p}><path d="M14 4h6v6"/><path d="M20 4l-9 9"/><path d="M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5"/></Ico>,
  edit:      (p)=><Ico {...p}><path d="M4 20h4l11-11a2 2 0 0 0-3-3L5 17z"/><path d="M14 5l3 3"/></Ico>,
  trash:     (p)=><Ico {...p}><path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13"/></Ico>,
  check:     (p)=><Ico {...p}><path d="M5 12l5 5L20 6"/></Ico>,
  x:         (p)=><Ico {...p}><path d="M6 6l12 12M18 6L6 18"/></Ico>,
  lock:      (p)=><Ico {...p}><rect x="5" y="11" width="14" height="9" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></Ico>,
  mail:      (p)=><Ico {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M4 7l8 6 8-6"/></Ico>,
  eye:       (p)=><Ico {...p}><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="2.8"/></Ico>,
  eyeOff:    (p)=><Ico {...p}><path d="M3 3l18 18"/><path d="M10.6 6.2A9.7 9.7 0 0 1 12 6c6 0 10 6 10 6a17 17 0 0 1-3 3.4"/><path d="M6.5 7.6A16 16 0 0 0 2 12s4 6 10 6a9.4 9.4 0 0 0 4-.9"/><path d="M9.9 9.9a3 3 0 0 0 4.2 4.2"/></Ico>,
  filter:    (p)=><Ico {...p}><path d="M3 5h18l-7 8v6l-4-2v-4z"/></Ico>,
  refresh:   (p)=><Ico {...p}><path d="M21 12a9 9 0 1 1-2.6-6.3M21 4v4h-4"/></Ico>,
  download:  (p)=><Ico {...p}><path d="M12 4v11M7 11l5 4 5-4M5 19h14"/></Ico>,
  star:      (p)=><Ico {...p}><path d="M12 4l2.3 4.8 5.2.7-3.8 3.6.9 5.2L12 16.9 7.4 18.3l.9-5.2L4.5 9.5l5.2-.7z"/></Ico>,
  dot:       (p)=><Ico {...p}><circle cx="12" cy="12" r="3" fill="currentColor" stroke="none"/></Ico>,
  cog:       (p)=><Ico {...p}><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M4.2 4.2l2.1 2.1M17.7 17.7l2.1 2.1M2 12h3M19 12h3M4.2 19.8l2.1-2.1M17.7 6.3l2.1-2.1"/></Ico>,
  layers:    (p)=><Ico {...p}><path d="M12 3l9 5-9 5-9-5z"/><path d="M3 13l9 5 9-5"/></Ico>,
  menu:      (p)=><Ico {...p}><path d="M4 8h16M4 16h16"/></Ico>,
  image:     (p)=><Ico {...p}><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><path d="M21 15l-5-5L5 21"/></Ico>,
  upload:    (p)=><Ico {...p}><path d="M12 15V4M7 9l5-5 5 5M5 19h14"/></Ico>,
};
window.Icons = Icons;
