// Minimal stroked SVG icons. 16x16 viewBox. className defaults to "ico".
const Icon = ({ d, cls = "ico", extra = null }) => (
  <svg className={cls} viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
    <path d={d} />{extra}
  </svg>
);

const I = {
  chat:     (p) => <Icon {...p} d="M3 12a8 8 0 1 1 3.5 6.6L3 20l1-3.4A8 8 0 0 1 3 12z" />,
  plan:     (p) => <Icon {...p} d="M4 6h16M4 12h10M4 18h16" />,
  book:     (p) => <Icon {...p} d="M4 5a2 2 0 0 1 2-2h12v16H6a2 2 0 0 0-2 2V5zM18 3v16" />,
  user:     (p) => <Icon {...p} d="M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4 21a8 8 0 1 1 16 0" />,
  send:     (p) => <Icon {...p} d="M3 11l18-8-8 18-2-8-8-2z" />,
  paperclip:(p) => <Icon {...p} d="M21 11l-9 9a5 5 0 0 1-7-7l9-9a3.5 3.5 0 0 1 5 5l-9 9a2 2 0 0 1-3-3l8-8" />,
  mic:      (p) => <Icon {...p} d="M12 3a3 3 0 0 1 3 3v6a3 3 0 0 1-6 0V6a3 3 0 0 1 3-3zM5 11a7 7 0 0 0 14 0M12 18v3" />,
  globe:    (p) => <Icon {...p} d="M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zM3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18" />,
  plus:     (p) => <Icon {...p} d="M12 5v14M5 12h14" />,
  x:        (p) => <Icon {...p} d="M6 6l12 12M6 18L18 6" />,
  more:     (p) => <Icon {...p} d="M5 12h.01M12 12h.01M19 12h.01" />,
  copy:     (p) => <Icon {...p} d="M9 9h10v10H9zM5 5h10v4M5 5v10h4" />,
  thumb:    (p) => <Icon {...p} d="M7 10v10H3V10zM7 10l5-7a2 2 0 0 1 2 2v3h5a2 2 0 0 1 2 2l-2 7a2 2 0 0 1-2 1H7" />,
  refresh:  (p) => <Icon {...p} d="M21 12a9 9 0 1 1-3-6.7L21 8M21 3v5h-5" />,
  panel:    (p) => <Icon {...p} d="M3 5h18v14H3zM14 5v14" />,
  sliders:  (p) => <Icon {...p} d="M4 6h8m4 0h4M4 12h2m4 0h10M4 18h12m4 0h0M12 4v4M10 10v4M18 16v4" />,
  check:    (p) => <Icon {...p} d="M4 12l5 5L20 6" />,
  search:   (p) => <Icon {...p} d="M11 19a8 8 0 1 1 0-16 8 8 0 0 1 0 16zM21 21l-4.3-4.3" />,
  calendar: (p) => <Icon {...p} d="M4 6h16v15H4zM4 10h16M9 3v4M15 3v4" />,
  arrow:    (p) => <Icon {...p} d="M5 12h14M13 6l6 6-6 6" />,
};

window.I = I;
