@base-ui/react
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
30 lines • 1.54 kB
TypeScript
import * as React from 'react';
import type { FieldValidityData, FieldRootState } from "../../field/root/FieldRoot.js";
import type { Form } from "../../form/index.js";
import type { UseFieldValidationReturnValue } from "../../field/root/useFieldValidation.js";
import type { FieldControlRegistration } from "../field-register-control/useFieldControlRegistration.js";
export interface FieldRootContext {
invalid: boolean | undefined;
name: string | undefined;
validityData: FieldValidityData;
setValidityData: React.Dispatch<React.SetStateAction<FieldValidityData>>;
disabled: boolean | undefined;
touched: boolean;
setTouched: React.Dispatch<React.SetStateAction<boolean>>;
dirty: boolean;
setDirty: React.Dispatch<React.SetStateAction<boolean>>;
filled: boolean;
setFilled: React.Dispatch<React.SetStateAction<boolean>>;
focused: boolean;
setFocused: React.Dispatch<React.SetStateAction<boolean>>;
validate: (value: unknown, formValues: Record<string, unknown>) => string | string[] | null | Promise<string | string[] | null>;
validationMode: Form.ValidationMode;
validationDebounceTime: number;
shouldValidateOnChange: () => boolean;
state: FieldRootState;
markedDirtyRef: React.RefObject<boolean>;
registerFieldControl: (source: symbol, registration: FieldControlRegistration | undefined) => void;
validation: UseFieldValidationReturnValue;
}
export declare const FieldRootContext: React.Context<FieldRootContext>;
export declare function useFieldRootContext(optional?: boolean): FieldRootContext;