import * as React from "react"; /** * The accessible-name / description / validation contract that {@link FormField} injects onto its * single control child (via `cloneElement`). EVERY form-capable `@godxjp/ui` component accepts * these props and forwards them to its **semantic focus target** — the real `` / combobox / * trigger the user tabs to, never a presentational wrapper `
`. */ export interface FieldA11yProps { "aria-label"?: string; "aria-labelledby"?: string; "aria-describedby"?: string; "aria-errormessage"?: string; "aria-invalid"?: React.AriaAttributes["aria-invalid"]; "aria-required"?: React.AriaAttributes["aria-required"]; "data-field"?: string; } /** * Merge one or more space-separated id-reference lists (`aria-describedby`, `aria-labelledby`, * `aria-errormessage`) into a single deduplicated token list. Returns `undefined` when empty so the * attribute is omitted rather than rendered as `""`. */ export declare function mergeAriaIds(...values: Array): string | undefined; /** * Extract ONLY the defined field-a11y attributes from a props bag, ready to spread onto a * component's semantic focus target. Undefined entries are dropped so a forwarded contract never * clobbers a control's own intrinsic `aria-label` / `aria-invalid`. */ export declare function pickFieldA11y(props: FieldA11yProps): FieldA11yProps; /** * The inverse of {@link pickFieldA11y}: everything EXCEPT the field-a11y attributes. Use it when a * component must route the contract somewhere other than the element the remaining props land on — * e.g. */ export declare function omitFieldA11y(props: T): Omit; /** * As {@link pickFieldA11y}, but resolves the accessible **name** for a control that also has an * intrinsic `aria-label` (e.g. SearchInput's built-in "Search"): when the FormField supplies an * `aria-labelledby`, it wins and the intrinsic `aria-label` is dropped (a control must not carry * both — `aria-labelledby` takes precedence and the redundant `aria-label` only adds noise). */ export declare function resolveFieldA11y(props: FieldA11yProps, intrinsicAriaLabel?: string): FieldA11yProps; /** * `cloneElement` can only wire the field-a11y contract onto FormField's single direct child. When * that child is a layout wrapper (a `Flex` holding a range from/to pair, a 年/月 input+select * combo), the naming attributes stop on the wrapper `div` and every control inside is left with no * accessible name at all (axe: `label` on the inputs, `button-name` on select/combobox triggers). */ export interface FieldNameContextValue { /** DOM id of FormField's visible label element (the `aria-labelledby` target). */ labelId: string; /** The label's plain-text content, when it is a string (belt-and-suspenders `aria-label`). */ label?: string; } /** * Write attributes onto the real `` react-aria hides inside a Checkbox / Radio / Switch. * * react-aria renders the painted control as a `