@base-ui-components/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.
32 lines • 1.66 kB
TypeScript
import * as React from 'react';
import { FieldRoot } from "../root/FieldRoot.js";
import { BaseUIComponentProps } from "../../utils/types.js";
import { REASONS } from "../../utils/reasons.js";
import type { BaseUIChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
/**
* The form control to label and validate.
* Renders an `<input>` element.
*
* You can omit this part and use any Base UI input component instead. For example,
* [Input](https://base-ui.com/react/components/input), [Checkbox](https://base-ui.com/react/components/checkbox),
* or [Select](https://base-ui.com/react/components/select), among others, will work with Field out of the box.
*
* Documentation: [Base UI Field](https://base-ui.com/react/components/field)
*/
export declare const FieldControl: React.ForwardRefExoticComponent<FieldControlProps & React.RefAttributes<HTMLInputElement>>;
export type FieldControlState = FieldRoot.State;
export interface FieldControlProps extends BaseUIComponentProps<'input', FieldControl.State> {
/**
* Callback fired when the `value` changes. Use when controlled.
*/
onValueChange?: (value: string, eventDetails: FieldControl.ChangeEventDetails) => void;
defaultValue?: React.ComponentProps<'input'>['defaultValue'];
}
export type FieldControlChangeEventReason = typeof REASONS.none;
export type FieldControlChangeEventDetails = BaseUIChangeEventDetails<FieldControl.ChangeEventReason>;
export declare namespace FieldControl {
type State = FieldControlState;
type Props = FieldControlProps;
type ChangeEventReason = FieldControlChangeEventReason;
type ChangeEventDetails = FieldControlChangeEventDetails;
}