import "./date_field.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { SegmentLabels } from "./date_segments"; import { type StyleProps } from "./style_props"; export interface DateFieldProps extends StyleProps { /** Canonical ISO value parts: one (single) or two (range, "start"/"end"). */ parts: string[]; onPartChange: (index: number, value: string) => void; hasTime: boolean; segmentLabels: SegmentLabels; /** BCP-47 locale driving segment order + 12/24h. Defaults to the active * `LoticsLocaleProvider` locale (`vi` → dd/MM/yyyy, `en` → MM/dd/yyyy). */ locale?: string; disabled?: boolean; /** Shown when every part is empty and the field is unfocused. */ placeholder?: string; /** Accessible name per part (e.g. ["Start date", "End date"]). */ partLabels?: string[]; testID?: string; /** The SURFACE AROUND THIS ONE owns the box, so this one draws none — no border, * no ground, no text inset, no ring. */ seamless?: boolean; /** Pointer click in a segment area — the "open the calendar to select" path. */ onActivate?: () => void; onBlur?: () => void; /** Escape pressed in a segment — a field holding its own draft reverts it. */ onEscape?: () => void; /** Alt+ArrowDown pressed in a segment — open the calendar popover. */ onOpenPicker?: () => void; /** Reports whether ANY part holds a partial entry (typed but not yet a * complete valid date) — an inline editor blocks its commit on it. */ onIncompleteChange?: (incomplete: boolean) => void; /** Rendered inside the border, after the segments (the calendar mark). */ rightSlot?: React.ReactNode; /** The FRAME — which is also what a popover anchors to, so there is one ref * rather than a second one named for that use. */ ref?: React.Ref; render?: useRender.RenderProp; } /** * The bordered date field: a single framed control wrapping one segment group * (single date/datetime) or two joined by an en-dash (a range), plus the calendar * mark. Owns the focus ring (`:focus-within` across both groups) and the * empty-state placeholder. The segment editing lives in {@link DateSegments}. */ export declare function DateField(props: DateFieldProps): React.ReactElement>;