import React, { forwardRef, type ElementRef, type ReactNode } from 'react'; import { useDatePicker, type UseDatePickerProps } from 'react-calendar-kit'; import { useMergedRef } from '../../hooks'; import { cn } from '../../utils/cn'; import { PopperFreeSolo, type PopperProps } from '../popper'; import CalendarButton, { type CalendarButtonProps } from './calendar-button'; import { DateInput, TimeInput, type DateInputProps } from './calendar-input'; import { Calendar } from './calendar-primitives'; export interface DatePickerProps extends UseDatePickerProps { triggerProps?: CalendarButtonProps; inputProps?: DateInputProps; popperProps?: PopperProps; withTimeInput?: boolean; withPicker?: boolean; timeInputWrapperClassName?: string; timeInputLabel?: string; timeInputLabelClassName?: string; } const DatePicker = forwardRef, DatePickerProps>( ( { triggerProps, inputProps, timeInputLabel = 'Time', timeInputLabelClassName, timeInputWrapperClassName, popperProps, withTimeInput, withPicker = true, ...props }, forwardedRef ) => { const { ref, state, getCalendarProps, getTimeInputProps, getDateInputProps, getDialogProps, getTriggerProps } = useDatePicker(props); const inputRev = useMergedRef(forwardedRef, ref); return ( } /> } {...popperProps} >
{timeInputLabel}
) : null } />
); } ); export default DatePicker;