// TLB thin-line icons — 1.5px stroke, never filled (per brief)
// Usage:
const TLB_ICON_PATHS = {
// Tab bar
explore: 'M3 12l9-9 9 9M5 10v10h14V10',
search: 'M11 19a8 8 0 100-16 8 8 0 000 16zm6-2l4 4',
bookmark: 'M6 4h12v17l-6-4-6 4V4z',
trips: 'M4 7h16M4 12h16M4 17h10',
profile: 'M12 12a4 4 0 100-8 4 4 0 000 8zm-8 9a8 8 0 0116 0',
// Actions
close: 'M5 5l14 14M19 5L5 19',
back: 'M15 5l-7 7 7 7',
forward: 'M9 5l7 7-7 7',
plus: 'M12 5v14M5 12h14',
minus: 'M5 12h14',
share: 'M16 8l-4-4-4 4M12 4v12M4 14v6h16v-6',
heart: 'M12 20s-7-4.5-7-10a4 4 0 017-2.6A4 4 0 0119 10c0 5.5-7 10-7 10z',
star: 'M12 3l2.5 6L21 10l-5 4.5 1.5 6.5L12 17.5 6.5 21 8 14.5 3 10l6.5-1z',
check: 'M4 12l5 5L20 6',
calendar: 'M4 7h16v13H4zM4 7V4M20 7V4M8 4v3M16 4v3M4 11h16',
map: 'M3 6l6-2 6 2 6-2v14l-6 2-6-2-6 2V6zM9 4v14M15 6v14',
pin: 'M12 2a7 7 0 017 7c0 5-7 13-7 13S5 14 5 9a7 7 0 017-7zM12 11a2 2 0 100-4 2 2 0 000 4z',
filter: 'M4 5h16M7 12h10M10 19h4',
sliders: 'M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12M18 18h2M14 4v4M10 10v4M18 16v4',
chevronDown:'M6 9l6 6 6-6',
chevronUp: 'M6 15l6-6 6 6',
bed: 'M3 18V8M21 18v-4a4 4 0 00-4-4H7a4 4 0 00-4 4M3 18h18M7 10V7a1 1 0 011-1h8a1 1 0 011 1v3',
bath: 'M5 12V6a2 2 0 012-2h2v4M3 12h18v3a4 4 0 01-4 4H7a4 4 0 01-4-4v-3zM6 19l-1 2M18 19l1 2',
pool: 'M3 18c2-1 3-1 5 0s3 1 5 0 3-1 5 0M3 14c2-1 3-1 5 0s3 1 5 0 3-1 5 0M8 10V4a2 2 0 014 0v10M16 10V4a2 2 0 012-2',
wifi: 'M2 9c5-5 15-5 20 0M5 12c4-4 10-4 14 0M8 15c2-2 6-2 8 0M12 19l.01 0',
car: 'M4 16v-5l2-5h12l2 5v5M4 16h16M4 16v3h3v-3M17 16v3h3v-3M8 11h8',
users: 'M9 12a4 4 0 100-8 4 4 0 000 8zm8 0a3 3 0 100-6 3 3 0 000 6zM2 20a7 7 0 0114 0M16 20a5 5 0 015-5',
moon: 'M20 13A8 8 0 1111 4a6 6 0 009 9z',
coffee: 'M4 10h12v6a4 4 0 01-4 4H8a4 4 0 01-4-4v-6zM16 10h2a2 2 0 010 4h-2M8 3v2M12 3v2',
sparkle: 'M12 3v6m0 6v6M3 12h6m6 0h6M6 6l3 3M15 15l3 3M18 6l-3 3M9 15l-3 3',
message: 'M21 12a8 8 0 01-11.5 7.2L4 21l1.5-5A8 8 0 1121 12z',
phone: 'M5 4h4l2 5-3 2a12 12 0 006 6l2-3 5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2z',
camera: 'M4 8h3l2-2h6l2 2h3v11H4V8zM12 10a4 4 0 100 8 4 4 0 000-8z',
mic: 'M12 4a3 3 0 013 3v5a3 3 0 01-6 0V7a3 3 0 013-3zM5 11a7 7 0 0014 0M12 18v3',
send: 'M3 3l18 9-18 9 4-9-4-9z',
edit: 'M4 20h4L20 8l-4-4L4 16v4zM14 6l4 4',
trash: 'M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13',
more: 'M5 12h.01M12 12h.01M19 12h.01',
settings: 'M12 9a3 3 0 100 6 3 3 0 000-6zM19 12l2 1-1 2-2-1M5 12l-2 1 1 2 2-1M12 5l1-2 2 1-1 2M12 19l1 2 2-1-1-2',
lock: 'M6 11V8a6 6 0 0112 0v3M5 11h14v10H5z',
globe: 'M12 3a9 9 0 100 18 9 9 0 000-18zM3 12h18M12 3a15 15 0 010 18M12 3a15 15 0 000 18',
grid: 'M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z',
list: 'M4 6h16M4 12h16M4 18h16',
layers: 'M12 3l9 5-9 5-9-5 9-5zM3 13l9 5 9-5M3 18l9 5 9-5',
trending: 'M3 17l6-6 4 4 8-8M15 7h6v6',
wallet: 'M4 7h16v12H4zM4 7V5a1 1 0 011-1h14v3M16 13h2',
clock: 'M12 3a9 9 0 100 18 9 9 0 000-18zM12 7v5l3 2',
info: 'M12 3a9 9 0 100 18 9 9 0 000-18zM12 10v6M12 7v.01',
eye: 'M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12zM12 9a3 3 0 100 6 3 3 0 000-6z',
eyeOff: 'M3 3l18 18M10 5.5A10 10 0 0112 5c6.5 0 10 7 10 7a16 16 0 01-3 4M6 7s-3 3-4 5c0 0 3.5 7 10 7 2 0 3.7-.6 5-1.5M10 10a3 3 0 004 4',
home: 'M3 11l9-8 9 8v10h-6v-6h-6v6H3z',
flag: 'M5 3v18M5 4h12l-2 4 2 4H5',
qr: 'M3 3h7v7H3zM14 3h7v7h-7zM3 14h7v7H3zM14 14h2M18 14h2M14 18h2M18 18h2M16 16h2',
wand: 'M4 20l10-10M14 6l4 4M16 4l2 2M20 6l2 2M18 10l2 2',
dot: 'M12 12h.01',
};
function Icon({ name, size = 20, color = 'currentColor', stroke = 1.5, style = {} }) {
const d = TLB_ICON_PATHS[name];
if (!d) return null;
return (
);
}
window.Icon = Icon;
window.TLB_ICON_PATHS = TLB_ICON_PATHS;