/* global window React */
// Tiny inline-SVG icon set. All 16x16 unless otherwise.

const Icon = ({ d, size = 16, stroke = "currentColor", fill = "none", strokeWidth = 1.6, style, className }) => (
  <svg viewBox="0 0 24 24" width={size} height={size} fill={fill} stroke={stroke} strokeWidth={strokeWidth} strokeLinecap="round" strokeLinejoin="round" aria-hidden="true" style={style} className={className}>
    <path d={d} />
  </svg>
);

const I = {
  // navigation
  Home:    (p) => <Icon {...p} d="M3 12l9-9 9 9M5 10v10h14V10" />,
  Back:    (p) => <Icon {...p} d="M15 18l-6-6 6-6" />,
  Forward: (p) => <Icon {...p} d="M9 6l6 6-6 6" />,
  Logout:  (p) => <Icon {...p} d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9" />,
  Switch:  (p) => <Icon {...p} d="M7 17H3l4-4M3 17l4 4M17 7h4l-4-4M21 7l-4 4" />,

  // status
  Check:   (p) => <Icon {...p} d="M20 6L9 17l-5-5" />,
  X:       (p) => <Icon {...p} d="M18 6L6 18M6 6l12 12" />,
  Alert:   (p) => <Icon {...p} d="M12 9v4M12 17h.01M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" />,
  Info:    (p) => <Icon {...p} d="M12 16v-4M12 8h.01M12 21a9 9 0 1 1 0-18 9 9 0 0 1 0 18z" />,
  Lock:    (p) => <Icon {...p} d="M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 10 0v4" />,

  // workflow
  Crop:    (p) => <Icon {...p} d="M12 2c2 4 4 6 4 10a4 4 0 1 1-8 0c0-4 2-6 4-10zM12 14v8" />,
  Form:    (p) => <Icon {...p} d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zM14 2v6h6M9 13h6M9 17h6M9 9h2" />,
  Upload:  (p) => <Icon {...p} d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12" />,
  File:    (p) => <Icon {...p} d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zM14 2v6h6" />,
  Tree:    (p) => <Icon {...p} d="M12 2v4M12 18v4M5 12H1M23 12h-4M5 5l3 3M16 16l3 3M5 19l3-3M16 8l3-3M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8z" />,
  Report:  (p) => <Icon {...p} d="M21 15V6a2 2 0 0 0-2-2h-7l-2-2H5a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h7M14 13h7M17 10v6" />,
  Send:    (p) => <Icon {...p} d="M22 2L11 13M22 2l-7 20-4-9-9-4z" />,

  // regulator
  Shield:  (p) => <Icon {...p} d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />,
  Inbox:   (p) => <Icon {...p} d="M22 12h-6l-2 3h-4l-2-3H2M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" />,
  Eye:     (p) => <Icon {...p} d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8zM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z" />,
  Filter:  (p) => <Icon {...p} d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z" />,
  Search:  (p) => <Icon {...p} d="M21 21l-4.35-4.35M11 19a8 8 0 1 1 0-16 8 8 0 0 1 0 16z" />,
  MessageSquare: (p) => <Icon {...p} d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />,

  // ui chrome
  Plus:    (p) => <Icon {...p} d="M12 5v14M5 12h14" />,
  Minus:   (p) => <Icon {...p} d="M5 12h14" />,
  ChevronRight: (p) => <Icon {...p} d="M9 18l6-6-6-6" />,
  ChevronDown:  (p) => <Icon {...p} d="M6 9l6 6 6-6" />,
  Sliders: (p) => <Icon {...p} d="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6" />,
  Reset:   (p) => <Icon {...p} d="M3 12a9 9 0 1 0 9-9 9 9 0 0 0-7 3.5L3 9M3 3v6h6" />,
  Download:(p) => <Icon {...p} d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3" />,
  Pencil:  (p) => <Icon {...p} d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" />,
  Folder:  (p) => <Icon {...p} d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" />,
  RefreshCw: (p) => <Icon {...p} d="M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" />,
};

window.I = I;
