@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.
44 lines • 2.09 kB
TypeScript
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";
import type { IncrementValueParameters } 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: (value: number | null, details: NumberFieldRoot.ChangeEventDetails) => void;
getStepAmount: (event?: EventWithOptionalKeyState) => number | undefined;
incrementValue: (amount: number, params: IncrementValueParameters) => void;
inputRef: React.RefObject<HTMLInputElement | null>;
allowInputSyncRef: React.RefObject<boolean | null>;
formatOptionsRef: React.RefObject<Intl.NumberFormatOptions | undefined>;
valueRef: React.RefObject<number | null>;
lastChangedValueRef: React.RefObject<number | null>;
hasPendingCommitRef: React.RefObject<boolean>;
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;
onValueCommitted: (value: number | null, eventDetails: NumberFieldRoot.CommitEventDetails) => void;
}
export declare const NumberFieldRootContext: React.Context<NumberFieldRootContext | undefined>;
export declare function useNumberFieldRootContext(): NumberFieldRootContext;