@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.
48 lines • 2.41 kB
TypeScript
import * as React from 'react';
import type { Timeout } from '@base-ui-components/utils/useTimeout';
import { useFloatingRootContext, type FloatingRootContext } from "../../floating-ui-react/index.js";
import type { SelectStore } from "../store.js";
import type { useFieldControlValidation } from "../../field/control/useFieldControlValidation.js";
import type { HTMLProps } from "../../utils/types.js";
import type { SelectRoot } from "./SelectRoot.js";
export interface SelectRootContext {
store: SelectStore;
name: string | undefined;
disabled: boolean;
readOnly: boolean;
required: boolean;
multiple: boolean;
setValue: (nextValue: any, event?: Event) => void;
setOpen: (open: boolean, event: Event | undefined, reason: SelectRoot.OpenChangeReason | undefined) => void;
listRef: React.MutableRefObject<Array<HTMLElement | null>>;
popupRef: React.MutableRefObject<HTMLDivElement | null>;
getItemProps: (props?: HTMLProps & {
active?: boolean;
selected?: boolean;
}) => Record<string, unknown>;
events: ReturnType<typeof useFloatingRootContext>['events'];
valueRef: React.MutableRefObject<HTMLSpanElement | null>;
valuesRef: React.MutableRefObject<Array<any>>;
labelsRef: React.MutableRefObject<Array<string | null>>;
typingRef: React.MutableRefObject<boolean>;
selectionRef: React.MutableRefObject<{
allowUnselectedMouseUp: boolean;
allowSelectedMouseUp: boolean;
allowSelect: boolean;
}>;
selectedItemTextRef: React.MutableRefObject<HTMLSpanElement | null>;
fieldControlValidation: ReturnType<typeof useFieldControlValidation>;
/**
* Called by each <Select.Item> when it knows its stable list index.
* Allows the root to map option values to their DOM positions.
*/
registerItemIndex: (index: number) => void;
onOpenChangeComplete?: (open: boolean) => void;
keyboardActiveRef: React.MutableRefObject<boolean>;
alignItemWithTriggerActiveRef: React.RefObject<boolean>;
highlightTimeout: Timeout;
}
export declare const SelectRootContext: React.Context<SelectRootContext | null>;
export declare const SelectFloatingContext: React.Context<FloatingRootContext<import("../../floating-ui-react/index.js").ReferenceType> | null>;
export declare function useSelectRootContext(): SelectRootContext;
export declare function useSelectFloatingContext(): FloatingRootContext<import("../../floating-ui-react/index.js").ReferenceType>;