import * as React from "react" import { CalendarClockIcon, ClockIcon, XIcon } from "lucide-react" import { cn } from "@/lib/utils" export type TimePickerProps = Omit, "type"> & { label?: React.ReactNode clearable?: boolean onClear?: () => void } export type DateTimePickerProps = Omit, "type"> & { label?: React.ReactNode clearable?: boolean onClear?: () => void } export type TimeRangePickerProps = React.ComponentProps<"div"> & { from?: string to?: string onFromChange?: (value: string) => void onToChange?: (value: string) => void disabled?: boolean labels?: { from?: React.ReactNode to?: React.ReactNode } } function FieldShell({ label, className, children }: { label?: React.ReactNode; className?: string; children: React.ReactNode }) { return ( ) } function clearInput(event: React.MouseEvent, onChange: React.ChangeEventHandler | undefined, onClear: (() => void) | undefined) { event.preventDefault() event.stopPropagation() onChange?.({ target: { value: "" }, currentTarget: { value: "" } } as React.ChangeEvent) onClear?.() } function TimePicker({ label, className, clearable = false, onClear, value, defaultValue, disabled, onChange, ...props }: TimePickerProps) { const hasValue = value !== undefined ? String(value).length > 0 : defaultValue !== undefined && String(defaultValue).length > 0 return ( {clearable && hasValue && !disabled ? ( ) : null} ) } function DateTimePicker({ label, className, clearable = false, onClear, value, defaultValue, disabled, onChange, ...props }: DateTimePickerProps) { const hasValue = value !== undefined ? String(value).length > 0 : defaultValue !== undefined && String(defaultValue).length > 0 return ( {clearable && hasValue && !disabled ? ( ) : null} ) } function TimeRangePicker({ from, to, onFromChange, onToChange, disabled, labels, className, ...props }: TimeRangePickerProps) { return (
onFromChange?.(event.target.value)} onClear={() => onFromChange?.("")} /> to onToChange?.(event.target.value)} onClear={() => onToChange?.("")} />
) } export { DateTimePicker, TimePicker, TimeRangePicker }