import type { Accessor } from "solid-js"; import { createContext, useContext } from "solid-js"; export interface DatePickerContextValue { isOpen: Accessor; setOpen: (open: boolean) => void; toggle: () => void; value: Accessor; setValue: (iso: string) => void; formatDate: (iso: string) => string; placeholder: Accessor; disabled: Accessor; name: Accessor; minDate: Accessor; maxDate: Accessor; locale: Accessor; contentId: Accessor; triggerRef: Accessor; setTriggerRef: (el: HTMLElement | null) => void; contentRef: Accessor; setContentRef: (el: HTMLElement | null) => void; floatingStyle: Accessor; } const DatePickerContext = createContext(); /** Returns the DatePicker context. Throws if used outside a DatePicker root. */ export function useDatePickerContext(): DatePickerContextValue { const ctx = useContext(DatePickerContext); if (!ctx) { throw new Error( "[PettyUI] DatePicker parts must be used inside . Wrap your DatePicker.Input, DatePicker.Content, etc. inside .", ); } return ctx; } export const DatePickerContextProvider = DatePickerContext.Provider;