UNPKG

@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
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>;