Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/thatstupidcomputer / apps/web/src/components/Icons.tsx |
| Date | Not specified in source |
| Repository | Janady13/thatstupidcomputer |
| Revision | 57555cde46910102dd25d6c1c1fb2c359e9655bd |
| Branch | main |
| Path or archive member | apps/web/src/components/Icons.tsx |
| Original SHA-256 | 91cd1e9aebfdc92efc20d33ace391cebc1220ffba3ddf4b39cbba5b2ec0d7e15 |
| Git blob SHA | 1188b1d89488c173a135432002e422a086c5e3e8 |
| Reading-copy SHA-256 | 91cd1e9aebfdc92efc20d33ace391cebc1220ffba3ddf4b39cbba5b2ec0d7e15 |
Recovered source transcript
Download complete source text ↓22 lines · 1.4 KB
import type { SVGProps } from 'react';
export type IconName = 'arrow' | 'close' | 'menu' | 'spark' | 'pause' | 'play' | 'grid' | 'folder' | 'clock' | 'coffee' | 'check' | 'mail';
export function Icon({ name, ...props }: SVGProps<SVGSVGElement> & { name: IconName }) {
const paths: Record<IconName, React.ReactNode> = {
arrow: <><path d="M4 12h15M13 5l7 7-7 7" /></>,
close: <><path d="m6 6 12 12M18 6 6 18" /></>,
menu: <><path d="M4 7h16M4 12h16M4 17h16" /></>,
spark: <><path d="m12 3 2.6 6.4L21 12l-6.4 2.6L12 21l-2.6-6.4L3 12l6.4-2.6L12 3Z" /></>,
pause: <><path d="M9 5v14M15 5v14" /></>,
play: <><path d="m8 4 12 8-12 8V4Z" /></>,
grid: <><rect x="3" y="3" width="7" height="7" rx="1" /><rect x="14" y="3" width="7" height="7" rx="1" /><rect x="3" y="14" width="7" height="7" rx="1" /><rect x="14" y="14" width="7" height="7" rx="1" /></>,
folder: <><path d="M3 7V4h7l3 3h8v13H3V7Zm0 3h18" /></>,
clock: <><circle cx="12" cy="12" r="9" /><path d="M12 6v6l4 2" /></>,
coffee: <><path d="M4 8h12v7a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5V8Zm12 1h2a3 3 0 0 1 0 6h-2M7 2v2m6-2v2" /></>,
check: <><path d="m5 12 4 4L19 6" /></>,
mail: <><rect x="3" y="5" width="18" height="14" rx="2" /><path d="m4 7 8 6 8-6" /></>,
};
return <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true" {...props}>{paths[name]}</svg>;
}