import "./date_stamp.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; /** * The DOM props a trigger is handed are NOT on this interface: `onChange` here * commits a date, and a `ChangeEventHandler` of the same name cannot also be * true. They land on the inner element, which is what an overlay renders * through. */ export interface DateStampProps extends StyleProps { /** ISO date, or `""`/`null` for a stamp that has not been made. */ value: string | null; /** Commit a correction. Omit for a read-only stamp — then nothing is pressable. */ onChange?: (iso: string) => void; /** Locale tag for the rendered date. Defaults to the kit's locale. */ locale?: string; /** Drop the year (`08/09` rather than `08/09/2026`). The stamp sits in * columns beside dates a caller formats itself, and a year on one side of a * row and not the other is the kind of mismatch nobody reports and everyone * notices. Same option `formatDate` takes — the format itself stays there, * so there is one place that decides what a date looks like. */ compact?: boolean; accessibilityLabel: string; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * A recorded date, shown quietly — and correctable. * * The value a SYSTEM writes and a person only occasionally overrides: the day a * milestone was ticked, the day a status flipped. It is a READOUT first, so at * rest it is nothing but small muted text — no frame, no icon, no control band. * Hovering underlines it, which is the one cue prose has to say it opens; the * press opens the kit's own `DatePickerPanel`. * * **Why this is not a `DatePicker` with a prop.** That component is a * form FIELD: it renders a calendar icon, sits in a control band, keeps a typed * `DateField` for keyboard entry and shows an em-dash when empty — the whole * anatomy of "fill me in". Stripping its surface to get this left the icon and * the sizing behind, because those belong to the field, not to the frame. A * ladder of fields is a form with invisible borders; a ladder of these is a list * of dates you can read at a glance. Different concept, different component. * * Reach for `DatePicker` when the date is something a person is expected * to ENTER, and for this when it is something the system already knows. * * Empty renders NOTHING (not a dash, not a placeholder): there is no value to * report, whatever named the stamp already says it has not happened, and a * column of dashes is noise pretending to be data. A read-only stamp with no * value therefore renders nothing at all. */ export declare function DateStamp(props: DateStampProps): React.JSX.Element | null;