import { default as React } from 'react'; import { FormValidator } from '../../services/formValidation/index.js'; import { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types.js'; export type TimeInputSlots = 'root' | 'clock' | 'clockHeader' | 'headerSegment' | 'meridiem' | 'clockFace' | 'clockHand' | 'clockNumber' | 'footer'; export interface TimeInputProps extends Omit { /** Current time as a "HH:MM" (24-hour) string. */ value?: string | null; /** Alias for `value`, to mirror DatePicker. */ selected?: string | null; /** Fired on every change (typing or dial interaction). Emits null when cleared/invalid. */ onChange?: ((time: string | null) => void) | null; /** Fired when a time is committed via the dial (and the popover closes). */ onSelect?: ((time: string | null) => void) | null; formValidator?: FormValidator | null; /** Render the dial inline instead of in a popover. */ isInline?: boolean; /** Open the dial inside a Modal overlay. */ isModal?: boolean; /** Hide the text input entirely (dial only). */ noInput?: boolean; /** Hide the big HH:MM header above the dial. */ noHeader?: boolean; /** Show a "clear" action in the footer. */ showClearButton?: boolean; /** Show a "now" quick-select action in the footer. */ showNowButton?: boolean; /** Snap minutes to this step on the dial (e.g. 5, 15). Default 1. */ minuteStep?: number; /** 24-hour dial (double ring) when true (default); 12-hour dial + AM/PM when false. */ use24Hour?: boolean; /** Lower bound, inclusive, as "HH:MM". */ minTime?: string | null; /** Upper bound, inclusive, as "HH:MM". */ maxTime?: string | null; label?: string; isValid?: boolean; errorMessage?: string; isRequired?: boolean; disabled?: boolean; className?: string; style?: React.CSSProperties; classNames?: SlotClassNames; styles?: SlotStyles; }