forked from
slices.network/slices
Highly ambitious ATProtocol AppView service and sdks
1import type { JSX } from "preact";
2import { cn } from "../../utils/cn.ts";
3
4export type CheckboxProps = JSX.IntrinsicElements["input"] & {
5 label?: string;
6};
7
8export function Checkbox(props: CheckboxProps): JSX.Element {
9 const { class: classProp, label, ...rest } = props;
10
11 const className = cn("accent-blue-600 dark:accent-white", classProp);
12
13 return (
14 <label className="flex items-center gap-2 cursor-pointer">
15 <input
16 type="checkbox"
17 class={className}
18 style="color-scheme: light dark;"
19 {...rest}
20 />
21 {label && (
22 <span className="text-sm text-zinc-700 dark:text-zinc-300">
23 {label}
24 </span>
25 )}
26 </label>
27 );
28}