// Inline SVG icon set — minimal stroke style
const I = {};
const stroke = { fill: "none", stroke: "currentColor", strokeWidth: 1.7, strokeLinecap: "round", strokeLinejoin: "round" };

I.blueprint = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M3 6h18M3 12h18M3 18h12" /><path d="M7 4v16M16 8v12" /></svg>;
I.grid = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/></svg>;
I.doc = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5M9 13h6M9 17h4"/></svg>;
I.cart = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M3 4h2l2.5 12.5a2 2 0 0 0 2 1.5h8a2 2 0 0 0 2-1.5L21 8H6"/><circle cx="10" cy="20" r="1.2"/><circle cx="18" cy="20" r="1.2"/></svg>;
I.receipt = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M5 3v18l2-1 2 1 2-1 2 1 2-1 2 1 2-1V3"/><path d="M9 8h6M9 12h6M9 16h4"/></svg>;
I.milestone = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M4 4v16M4 4h13l3 3-3 3H4M4 14h11l3 3-3 3H4"/></svg>;
I.box = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M21 8v10a2 2 0 0 1-1 1.7l-7 4a2 2 0 0 1-2 0l-7-4A2 2 0 0 1 3 18V8"/><path d="m3.3 7 8.7 5 8.7-5M12 22V12M7.5 5.5l9 5"/></svg>;
I.people = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><circle cx="9" cy="8" r="3"/><path d="M2 21a7 7 0 0 1 14 0"/><circle cx="17" cy="6" r="2.5"/><path d="M16 13a5 5 0 0 1 6 5"/></svg>;
I.shield = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M12 3 4 6v7a9 9 0 0 0 8 8 9 9 0 0 0 8-8V6z"/><path d="m9 12 2 2 4-4"/></svg>;
I.search = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>;
I.bell = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10 21a2 2 0 0 0 4 0"/></svg>;
I.plus = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M12 5v14M5 12h14"/></svg>;
I.chev = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke} style={{transform:`rotate(${p.dir==='up'?-90:p.dir==='left'?180:p.dir==='down'?90:0}deg)`}}><path d="m9 6 6 6-6 6"/></svg>;
I.menu = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><path d="M3 6h18M3 12h18M3 18h18"/></svg>;
I.x = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="m6 6 12 12M18 6 6 18"/></svg>;
I.check = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="m5 12 5 5 9-11"/></svg>;
I.dot = (p) => <svg viewBox="0 0 24 24" width={p.size||14} height={p.size||14}><circle cx="12" cy="12" r="3" fill="currentColor"/></svg>;
I.drive = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="m8 4 4 8H4zM16 4l4 8h-8zM4 12l4 8h8l4-8"/></svg>;
I.download = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M12 4v12m0 0 4-4m-4 4-4-4M4 20h16"/></svg>;
I.upload = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M12 16V4m0 0 4 4m-4-4-4 4M4 20h16"/></svg>;
I.filter = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M3 5h18l-7 9v6l-4-2v-4z"/></svg>;
I.sort = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M7 4v16m0 0-3-3m3 3 3-3M17 20V4m0 0-3 3m3-3 3 3"/></svg>;
I.trash = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M4 7h16M9 7V4h6v3m-7 0v14h10V7"/></svg>;
I.edit = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M4 20h4l11-11-4-4L4 16zM14 6l4 4"/></svg>;
I.copy = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><rect x="8" y="8" width="13" height="13" rx="2"/><path d="M16 8V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h4"/></svg>;
I.eye = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></svg>;
I.drag = (p) => <svg viewBox="0 0 24 24" width={p.size||14} height={p.size||14} fill="currentColor"><circle cx="9" cy="6" r="1.5"/><circle cx="15" cy="6" r="1.5"/><circle cx="9" cy="12" r="1.5"/><circle cx="15" cy="12" r="1.5"/><circle cx="9" cy="18" r="1.5"/><circle cx="15" cy="18" r="1.5"/></svg>;
I.sun = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4 12H2M22 12h-2M5 5l1.5 1.5M17.5 17.5 19 19M5 19l1.5-1.5M17.5 6.5 19 5"/></svg>;
I.moon = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>;
I.spark = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8"/></svg>;
I.calendar = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></svg>;
I.cash = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><rect x="2" y="6" width="20" height="12" rx="2"/><circle cx="12" cy="12" r="2.5"/><path d="M6 10v4M18 10v4"/></svg>;
I.user = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></svg>;
I.print = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M6 9V3h12v6M6 19H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><rect x="6" y="14" width="12" height="7" rx="1"/></svg>;
I.send = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="m4 4 16 8-16 8 3-8z"/></svg>;
I.lock = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></svg>;
I.bolt = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M13 3 4 14h7l-1 7 9-11h-7z"/></svg>;
I.blueprint2 = (p) => <svg viewBox="0 0 24 24" width={p.size||18} height={p.size||18} {...stroke}><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 3v18M14 14h4M14 17h4M6 13h0.5"/></svg>;
I.pdf = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5"/><text x="12" y="17" textAnchor="middle" fontSize="6" fill="currentColor" stroke="none" fontWeight="700" fontFamily="sans-serif">PDF</text></svg>;
I.expand = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M4 14v6h6M20 10V4h-6M20 4l-7 7M4 20l7-7"/></svg>;
I.save = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/><path d="M17 21v-8H7v8M7 3v5h8"/></svg>;
I.refresh = (p) => <svg viewBox="0 0 24 24" width={p.size||16} height={p.size||16} {...stroke}><path d="M3 12a9 9 0 0 1 15-6.7L21 8M21 3v5h-5M21 12a9 9 0 0 1-15 6.7L3 16M3 21v-5h5"/></svg>;

window.I = I;
