33 lines
1001 B
TypeScript
33 lines
1001 B
TypeScript
const paths = {
|
|
columns: 'M3 4h7v16H3z M14 4h7v16h-7z',
|
|
hashtag: 'M10 3 8 21 M17 3l-2 18 M4 9h16 M3 15h16',
|
|
search: 'M21 21l-5-5 M18 10a8 8 0 1 1-16 0 8 8 0 0 1 16 0',
|
|
user: 'M20 21v-2a7 7 0 0 0-14 0v2 M17 7a4 4 0 1 1-8 0 4 4 0 0 1 8 0',
|
|
list: 'M8 6h13 M8 12h13 M8 18h13 M3 6h.01 M3 12h.01 M3 18h.01',
|
|
plus: 'M12 5v14 M5 12h14',
|
|
close: 'M6 6l12 12 M18 6 6 18',
|
|
refresh: 'M20 7v5h-5 M4 17v-5h5 M6 6a8 8 0 0 1 14 6 M4 12a8 8 0 0 0 14 6',
|
|
more: 'M5 12h.01 M12 12h.01 M19 12h.01',
|
|
arrow: 'M7 17 17 7 M7 7h10v10',
|
|
edit: 'm16 3 5 5-12 12H4v-5z M14 5l5 5',
|
|
trash: 'M3 6h18 M9 6V3h6v3 M5 6l1 15h12l1-15 M10 10v7 M14 10v7',
|
|
} as const
|
|
|
|
export function Icon({ name }: { name: keyof typeof paths }) {
|
|
return (
|
|
<svg
|
|
width="20"
|
|
height="20"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
strokeWidth="1.8"
|
|
strokeLinecap="round"
|
|
strokeLinejoin="round"
|
|
aria-hidden="true"
|
|
>
|
|
<path d={paths[name]} />
|
|
</svg>
|
|
)
|
|
}
|