import { ReactNode, Ref } from 'react'; import { Color } from '../types.js'; import { SurfaceProps, SurfaceVariant } from './Surface.js'; export type NumberFieldSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl'; interface NumberFieldOwnProps { /** Custom content rendered inside the number field container (rare - most usage is value-only). */ children?: ReactNode; /** * When `true` (default), the value is rendered in an editable `Input`. * * When `false`, the value is rendered in a read-only `SurfaceCut` chip - useful when keyboard entry is not desired. */ input?: boolean; /** Extra classes for the value `Input` (or `SurfaceCut`). */ inputClassName?: string; /** Extra classes for the number field container. */ className?: string; /** Extra classes for the inner `SurfaceContent` wrapper (where the −/value/+ row is laid out). */ contentClassName?: string; /** Visually dim the number field and disable both buttons. */ disabled?: boolean; /** Block changes without the disabled visual treatment. */ readOnly?: boolean; /** Pill-shape the container and the +/− buttons. Default `true`. */ rounded?: boolean; /** Pill-shape the value display. Default `false`. */ valueRounded?: boolean; /** Size token. Drives container/button height, padding, and font size. Default `'md'`. */ size?: NumberFieldSize; /** Accent color token. Sets the container's `cladd-color-{name}` class - cascades to the +/− buttons. */ color?: Color; /** Outline ring on the number field **container**. Default `true`. */ outline?: boolean; /** Default `0`. */ min?: number; /** Default `1_000_000`. */ max?: number; /** Default `0`. */ value?: number; /** Increment per +/− press. Default `1`. */ step?: number; /** Surface variant for the number field **container**. Default `'gradient'`. */ variant?: SurfaceVariant; /** Surface variant applied to the +/− buttons. Default `'transparent'`. */ buttonVariant?: SurfaceVariant; /** Outline ring on the +/− buttons. Default `false`. */ buttonOutline?: boolean; /** Forwarded to the underlying `Surface` as `level` - see `SurfaceProps.level`. */ surfaceLevel?: number | string; /** Fires after a +/− button press, with the new value (already clamped to `[min, max]`). */ onChange?: (value: number) => void; /** Forwarded to the number field container. */ ref?: Ref; } export type NumberFieldProps = NumberFieldOwnProps & Omit; /** Shape of `NumberField` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */ export type NumberFieldDefaultProps = Partial>; export declare const NumberField: (props: NumberFieldProps) => import("react/jsx-runtime").JSX.Element; export {}; //# sourceMappingURL=NumberField.d.ts.map