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.

40 lines 1.84 kB
import * as React from 'react'; import { Timeout } from '@base-ui-components/utils/useTimeout'; import type { NumberFieldRoot } from "./NumberFieldRoot.js"; import { EventWithOptionalKeyState } from "../utils/types.js"; export type InputMode = 'numeric' | 'decimal' | 'text'; export interface NumberFieldRootContext { inputValue: string; value: number | null; startAutoChange: (isIncrement: boolean, event?: React.MouseEvent | Event) => void; stopAutoChange: () => void; minWithDefault: number; maxWithDefault: number; disabled: boolean; readOnly: boolean; id: string | undefined; setValue: (unvalidatedValue: number | null, event?: Event, dir?: 1 | -1) => void; getStepAmount: (event?: EventWithOptionalKeyState) => number | undefined; incrementValue: (amount: number, dir: 1 | -1, currentValue?: number | null, event?: Event) => void; inputRef: React.RefObject<HTMLInputElement | null>; allowInputSyncRef: React.RefObject<boolean | null>; formatOptionsRef: React.RefObject<Intl.NumberFormatOptions | undefined>; valueRef: React.RefObject<number | null>; isPressedRef: React.RefObject<boolean | null>; intentionalTouchCheckTimeout: Timeout; movesAfterTouchRef: React.RefObject<number | null>; name: string | undefined; required: boolean; invalid: boolean | undefined; inputMode: InputMode; getAllowedNonNumericKeys: () => Set<string | undefined>; min: number | undefined; max: number | undefined; setInputValue: React.Dispatch<React.SetStateAction<string>>; locale: Intl.LocalesArgument; isScrubbing: boolean; setIsScrubbing: React.Dispatch<React.SetStateAction<boolean>>; state: NumberFieldRoot.State; } export declare const NumberFieldRootContext: React.Context<NumberFieldRootContext | undefined>; export declare function useNumberFieldRootContext(): NumberFieldRootContext;