mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 17:34:03 +00:00
139 lines
3.4 KiB
TypeScript
139 lines
3.4 KiB
TypeScript
import type { JSX } from 'solid-js'
|
|
|
|
type IconProps = {
|
|
class?: string
|
|
}
|
|
|
|
function iconProps(props: IconProps): JSX.SvgSVGAttributes<SVGSVGElement> {
|
|
return {
|
|
viewBox: '0 0 24 24',
|
|
fill: 'none',
|
|
stroke: 'currentColor',
|
|
'stroke-width': 1.8,
|
|
'stroke-linecap': 'round',
|
|
'stroke-linejoin': 'round',
|
|
class: props.class ?? 'ui-icon',
|
|
'aria-hidden': 'true'
|
|
}
|
|
}
|
|
|
|
export function PencilIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M12 20h9" />
|
|
<path d="m16.5 3.5 4 4L8 20l-5 1 1-5 12.5-12.5Z" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function PlusIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M12 5v14" />
|
|
<path d="M5 12h14" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function SettingsIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<circle cx="12" cy="12" r="3" />
|
|
<path d="M19.4 15a1 1 0 0 0 .2 1.1l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1 1 0 0 0-1.1-.2 1 1 0 0 0-.6.9V20a2 2 0 1 1-4 0v-.2a1 1 0 0 0-.7-.9 1 1 0 0 0-1 .2l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1 1 0 0 0 .2-1.1 1 1 0 0 0-.9-.6H4a2 2 0 1 1 0-4h.2a1 1 0 0 0 .9-.7 1 1 0 0 0-.2-1l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1 1 0 0 0 1.1.2 1 1 0 0 0 .6-.9V4a2 2 0 1 1 4 0v.2a1 1 0 0 0 .7.9 1 1 0 0 0 1-.2l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1 1 0 0 0-.2 1.1 1 1 0 0 0 .9.6H20a2 2 0 1 1 0 4h-.2a1 1 0 0 0-.9.7Z" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function CalendarIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M8 2v4" />
|
|
<path d="M16 2v4" />
|
|
<rect width="18" height="18" x="3" y="4" rx="2" />
|
|
<path d="M3 10h18" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function GlobeIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<circle cx="12" cy="12" r="9" />
|
|
<path d="M3 12h18" />
|
|
<path d="M12 3a15 15 0 0 1 0 18" />
|
|
<path d="M12 3a15 15 0 0 0 0 18" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function HomeIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M3 10.5 12 3l9 7.5" />
|
|
<path d="M5 9.5V21h14V9.5" />
|
|
<path d="M9 21v-6h6v6" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function WalletIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M4 7h14a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7Z" />
|
|
<path d="M4 9V7a2 2 0 0 1 2-2h10" />
|
|
<path d="M15 13h5" />
|
|
<circle cx="15" cy="13" r=".5" fill="currentColor" stroke="none" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function ReceiptIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M7 3h10v18l-2-1.5-2 1.5-2-1.5-2 1.5-2-1.5-2 1.5V3h1Z" />
|
|
<path d="M9 8h6" />
|
|
<path d="M9 12h6" />
|
|
<path d="M9 16h4" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function HouseIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M4 10.5 12 4l8 6.5" />
|
|
<path d="M6 9.5V20h12V9.5" />
|
|
<path d="M9 20v-5h6v5" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function ChevronDownIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="m6 9 6 6 6-6" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function XIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="m6 6 12 12" />
|
|
<path d="M18 6 6 18" />
|
|
</svg>
|
|
)
|
|
}
|
|
|
|
export function TrashIcon(props: IconProps) {
|
|
return (
|
|
<svg {...iconProps(props)}>
|
|
<path d="M4 7h16" />
|
|
<path d="M10 11v6" />
|
|
<path d="M14 11v6" />
|
|
<path d="M6 7l1 13a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-13" />
|
|
<path d="M9 4h6l1 3H8l1-3Z" />
|
|
</svg>
|
|
)
|
|
}
|