'use client'; import { useId, type ReactNode } from 'react'; import { cn } from './cn'; import { Switch } from './switch'; export function Field({ label, hint, className, children, }: { label?: string; hint?: string; className?: string; children: ReactNode; }) { return (
{label ? : null} {children} {hint ?

{hint}

: null}
); } export function ToggleRow({ label, description, checked, onChange, disabled = false, right, variant = 'card', }: { label: string; description: string; checked: boolean; onChange: (checked: boolean) => void; disabled?: boolean; right?: ReactNode; variant?: 'card' | 'flat'; }) { const labelId = useId(); const descId = useId(); const rowClass = variant === 'flat' ? 'px-0.5 pt-1 pb-2 border-b border-line-soft last:border-b-0 transition-colors duration-fast ease-standard' : 'rounded-md border border-line bg-surface px-2.5 py-1.5 transition-colors duration-fast ease-standard'; const handleTextToggle = () => { if (!disabled) onChange(!checked); }; return (
{label} {description}
{right ?
{right}
: null}
); } export function CheckItem({ label, checked, onChange, disabled = false, }: { label: string; checked: boolean; onChange: (checked: boolean) => void; disabled?: boolean; }) { const labelId = useId(); const handleTextToggle = () => { if (!disabled) onChange(!checked); }; return (
{label}
); }