{"version":3,"names":["dynamic","createMemo","createSignal","omit","untrack","useBaseUiId","createChangeEventDetails","REASONS","userRef","createControlledState","activeElement","ownerDocument","useFieldRootContext","readOption","mergeRootProps","resolveClassStyle","useIsoLayoutEffect","VISUALLY_HIDDEN_STYLE","createNumberField","DEFAULT_STEP","numberFieldDataAttrs","NumberFieldRootContext","NumberFieldRoot","props","field","id","undefined","disabled","readOnly","required","name","invalid","stepProp","step","allowInputSyncRef","current","lastChangedValueRef","hasPendingCommitRef","formatOptionsRef","format","inputRef","hiddenInputRef","next","resolvedValue","setUncontrolledValue","controlled","value","default","defaultValue","fallback","state","nf","smallStep","largeStep","min","max","allowOutOfRange","snapOnStep","locale","shouldSyncInput","onValueChange","details","isCanceled","setDirty","validityData","initialValue","onValueCommitted","valueRef","setFilled","isScrubbing","setIsScrubbing","ownedWrite","allowWheelScrub","isDisabled","isReadOnly","allowScrub","element","handleWheel","event","ctrlKey","preventDefault","amount","getStepAmount","increment","direction","deltaY","reason","wheel","addEventListener","passive","removeEventListener","inputValue","scrubbing","contextValue","minWithDefault","maxWithDefault","setValue","incrementValue","inputMode","getAllowedNonNumericKeys","setInputValue","commitValue","userStyling","userProps","internalSlot","children","el","validation","form","String","focus","nextValue","currentTarget","valueAsNumber","parsedValue","Number","isNaN","none","shouldValidateOnChange","commit","styledUserProps","merged","Tag","as"],"sources":["number-field-root.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createMemo, createSignal, omit, untrack } from \"solid-js\";\nimport { useBaseUiId } from \"../../internals/base-ui-id\";\nimport {\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { userRef } from \"../../internals/compose-refs\";\nimport { createControlledState } from \"../../internals/create-controlled-state\";\nimport { activeElement } from \"../../internals/dom/active-element.ts\";\nimport { ownerDocument } from \"../../internals/dom/owner-document.ts\";\nimport type { FieldRootState } from \"../../internals/field-constants\";\nimport { useFieldRootContext } from \"../../internals/field-context\";\nimport { type MaybeAccessor, readOption } from \"../../internals/maybe-accessor\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useIsoLayoutEffect } from \"../../internals/use-iso-layout-effect.ts\";\nimport { VISUALLY_HIDDEN_STYLE } from \"../../internals/visually-hidden-style\";\nimport { createNumberField } from \"../create-number-field.tsx\";\nimport { DEFAULT_STEP } from \"../utils/constants.ts\";\nimport { numberFieldDataAttrs } from \"../utils/state-attributes-mapping.ts\";\nimport {\n\ttype NumberFieldRootChangeEventDetails,\n\ttype NumberFieldRootCommitEventDetails,\n\tNumberFieldRootContext,\n\ttype NumberFieldRootContextValue,\n} from \"./number-field-root-context.ts\";\n\nexport type {\n\tNumberFieldRootChangeEventDetails,\n\tNumberFieldRootChangeEventReason,\n\tNumberFieldRootCommitEventDetails,\n\tNumberFieldRootCommitEventReason,\n} from \"./number-field-root-context.ts\";\n\n/** Overall state used by every `<NumberField.*>` part's `data-*` projection. */\nexport interface NumberFieldRootState extends FieldRootState {\n\tvalue: number | null;\n\tinputValue: string;\n\trequired: boolean;\n\tdisabled: boolean;\n\treadOnly: boolean;\n\tscrubbing: boolean;\n}\n\nexport interface NumberFieldRootProps\n\textends Omit<BaseUIComponentProps<\"div\", NumberFieldRootState>, \"onChange\"> {\n\t/** Tag/component to render. Defaults to `\"div\"`. */\n\tas?: ValidComponent;\n\tid?: string | undefined;\n\tmin?: MaybeAccessor<number | undefined>;\n\tmax?: MaybeAccessor<number | undefined>;\n\t/**\n\t * When true, direct text entry may be outside the `min`/`max` range\n\t * without clamping, so native range underflow/overflow validation can\n\t * occur. Step-based interactions (keyboard arrows, buttons, wheel,\n\t * scrub) still clamp.\n\t * @default false\n\t */\n\tallowOutOfRange?: MaybeAccessor<boolean | undefined>;\n\t/** @default 0.1 */\n\tsmallStep?: MaybeAccessor<number | undefined>;\n\t/** @default 1 */\n\tstep?: MaybeAccessor<number | \"any\" | undefined>;\n\t/** @default 10 */\n\tlargeStep?: MaybeAccessor<number | undefined>;\n\t/** @default false */\n\trequired?: boolean | undefined;\n\t/** @default false */\n\tdisabled?: boolean | undefined;\n\t/** @default false */\n\treadOnly?: boolean | undefined;\n\tname?: string | undefined;\n\tform?: string | undefined;\n\t/**\n\t * Controlled value. `null` means empty. While its resolved value is not\n\t * `undefined` the consumer owns the state — pair with\n\t * {@link onValueChange}. When omitted, the field manages its own value\n\t * (seeded from {@link defaultValue}).\n\t */\n\tvalue?: MaybeAccessor<number | null | undefined>;\n\t/**\n\t * Initial value when uncontrolled. `null` means empty. Read once at\n\t * mount. To render a controlled number field, use the `value` prop\n\t * instead.\n\t * @default null\n\t */\n\tdefaultValue?: MaybeAccessor<number | undefined>;\n\t/** @default false */\n\tallowWheelScrub?: boolean | undefined;\n\t/** @default false */\n\tsnapOnStep?: MaybeAccessor<boolean | undefined>;\n\tformat?: MaybeAccessor<Intl.NumberFormatOptions | undefined>;\n\tonValueChange?:\n\t\t| ((\n\t\t\t\tvalue: number | null,\n\t\t\t\teventDetails: NumberFieldRootChangeEventDetails,\n\t\t  ) => void)\n\t\t| undefined;\n\tonValueCommitted?:\n\t\t| ((\n\t\t\t\tvalue: number | null,\n\t\t\t\teventDetails: NumberFieldRootCommitEventDetails,\n\t\t  ) => void)\n\t\t| undefined;\n\tlocale?: MaybeAccessor<Intl.LocalesArgument | undefined>;\n\t/** A setter to capture the hidden input element. */\n\tinputRef?: ((element: HTMLInputElement | null) => void) | undefined;\n}\n\n/**\n * Groups all parts of the number field and manages its state. Renders a\n * `<div>`.\n *\n * Logical state (value normalization, step math, formatting, increment /\n * decrement) is owned by `createNumberField`. This wrapper retains DOM\n * concerns: field registration, hidden input, wheel listener, `disabled` /\n * `readOnly` / `required` resolved against the `<Field.Root>`, and the\n * shared mutable refs that child event handlers need synchronously.\n */\nexport function NumberFieldRoot(props: NumberFieldRootProps): JSX.Element {\n\tconst field = useFieldRootContext();\n\n\tconst id = useBaseUiId(\n\t\tuntrack(() => (typeof props.id === \"string\" ? props.id : undefined)),\n\t);\n\n\t// DOM-concern prop thunks. `disabled` depends on the field context so it\n\t// stays here. `name` is similarly field-aware.\n\tconst disabled = (): boolean =>\n\t\tfield.disabled() || untrack(() => props.disabled === true);\n\tconst readOnly = (): boolean => untrack(() => props.readOnly === true);\n\tconst required = (): boolean => untrack(() => props.required === true);\n\tconst name = (): string | undefined =>\n\t\tfield.name() ?? untrack(() => props.name);\n\tconst invalid = (): boolean => field.invalid();\n\n\t// `stepProp` preserves the \"any\" sentinel for the hidden input's `step`\n\t// attribute. The primitive resolves \"any\" → 1 for numeric math.\n\tconst stepProp = (): number | \"any\" =>\n\t\tuntrack(() => readOption(props.step) ?? 1);\n\n\t// IME guard: set to `false` by `<NumberField.Input>` during composition to\n\t// suppress mid-composition input-value flicker. Read synchronously by the\n\t// primitive's `setValue` via `shouldSyncInput`.\n\tconst allowInputSyncRef = { current: true };\n\n\t// Mutable refs read synchronously from event handlers in child parts.\n\tconst lastChangedValueRef: { current: number | null } = { current: null };\n\tconst hasPendingCommitRef = { current: false };\n\tconst formatOptionsRef: {\n\t\tcurrent: Intl.NumberFormatOptions | undefined;\n\t} = { current: untrack(() => readOption(props.format)) };\n\n\t// Shared input ref — `<NumberField.Input>` writes its element here; the\n\t// hidden input's onFocus redirects focus to it.\n\tconst inputRef: { current: HTMLInputElement | null } = { current: null };\n\tconst hiddenInputRef: { current: HTMLInputElement | null } = {\n\t\tcurrent: null,\n\t};\n\n\t// Keep `formatOptionsRef` synced so event-handler closures always read\n\t// the current format options.\n\tuseIsoLayoutEffect(\n\t\t() => readOption(props.format),\n\t\t(next) => {\n\t\t\tformatOptionsRef.current = next;\n\t\t},\n\t);\n\n\t// Controlled / uncontrolled value (Base UI `value` / `defaultValue`\n\t// contract): the `value` prop wins while its resolved value is defined\n\t// (an explicit `null` IS a controlled empty value); otherwise an internal\n\t// signal (seeded once from `defaultValue`, default `null`) backs the\n\t// state and the change flow below writes it.\n\tconst [resolvedValue, setUncontrolledValue] = createControlledState<\n\t\tnumber | null\n\t>({\n\t\tcontrolled: () => readOption(props.value),\n\t\tdefault: () => readOption(props.defaultValue),\n\t\tfallback: null,\n\t\tname: \"<NumberField.Root>\",\n\t\tstate: \"value\",\n\t});\n\n\t// Logical state primitive. The `shouldSyncInput` bridge threads the IME\n\t// guard so the primitive skips input-value formatting during composition.\n\tconst nf = createNumberField({\n\t\tvalue: resolvedValue,\n\t\tsmallStep: () => readOption(props.smallStep),\n\t\tstep: () => readOption(props.step),\n\t\tlargeStep: () => readOption(props.largeStep),\n\t\tmin: () => readOption(props.min),\n\t\tmax: () => readOption(props.max),\n\t\tallowOutOfRange: () => readOption(props.allowOutOfRange),\n\t\tsnapOnStep: () => readOption(props.snapOnStep),\n\t\tformat: () => readOption(props.format),\n\t\tlocale: () => readOption(props.locale),\n\t\tshouldSyncInput: () => allowInputSyncRef.current,\n\t\tonValueChange: (next, details) => {\n\t\t\tlastChangedValueRef.current = next;\n\t\t\tprops.onValueChange?.(next, details);\n\t\t\t// Cancel gate matches React Base UI `NumberFieldRoot.setValue`:\n\t\t\t// `details.cancel()` keeps the uncontrolled state, dirtiness, and\n\t\t\t// pending-commit bookkeeping unchanged (input sync is skipped by\n\t\t\t// the primitive's own `isCanceled` check).\n\t\t\tif (details.isCanceled) return;\n\t\t\tsetUncontrolledValue(next);\n\t\t\tfield.setDirty(next !== field.validityData().initialValue);\n\t\t\thasPendingCommitRef.current = true;\n\t\t},\n\t\tonValueCommitted: (next, details) => {\n\t\t\thasPendingCommitRef.current = false;\n\t\t\tprops.onValueCommitted?.(next, details);\n\t\t},\n\t});\n\n\t// Mutable value ref — child event handlers read this synchronously to\n\t// avoid a stale-closure read of the prop.\n\tconst valueRef: { current: number | null } = {\n\t\tcurrent: untrack(nf.value),\n\t};\n\tuseIsoLayoutEffect(nf.value, (next) => {\n\t\tvalueRef.current = next;\n\t});\n\n\t// Keep `field.filled` in sync.\n\tuseIsoLayoutEffect(nf.value, (next) => {\n\t\tfield.setFilled(next !== null);\n\t});\n\n\tconst [isScrubbing, setIsScrubbing] = createSignal(false, {\n\t\townedWrite: true,\n\t});\n\n\t// Wheel listener — `onWheel` in JSX can't call `preventDefault()`.\n\tuseIsoLayoutEffect(\n\t\t() =>\n\t\t\t[\n\t\t\t\tdisabled(),\n\t\t\t\treadOnly(),\n\t\t\t\tprops.allowWheelScrub,\n\t\t\t\tinputRef.current,\n\t\t\t] as const,\n\t\t([isDisabled, isReadOnly, allowScrub, element]) => {\n\t\t\tif (isDisabled || isReadOnly || !allowScrub || !element) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tfunction handleWheel(event: WheelEvent): void {\n\t\t\t\tif (\n\t\t\t\t\tevent.ctrlKey ||\n\t\t\t\t\tactiveElement(ownerDocument(element)) !== element\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tconst amount = nf.getStepAmount(event) ?? DEFAULT_STEP;\n\t\t\t\tnf.increment(amount, {\n\t\t\t\t\tdirection: event.deltaY > 0 ? -1 : 1,\n\t\t\t\t\tevent,\n\t\t\t\t\treason: REASONS.wheel,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\telement.addEventListener(\"wheel\", handleWheel, { passive: false });\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener(\"wheel\", handleWheel);\n\t\t\t};\n\t\t},\n\t);\n\n\tconst state = createMemo(\n\t\t(): NumberFieldRootState => ({\n\t\t\t...field.state(),\n\t\t\tdisabled: disabled(),\n\t\t\treadOnly: readOnly(),\n\t\t\trequired: required(),\n\t\t\tvalue: nf.value(),\n\t\t\tinputValue: nf.inputValue(),\n\t\t\tscrubbing: isScrubbing(),\n\t\t}),\n\t);\n\n\tconst contextValue: NumberFieldRootContextValue = {\n\t\tinputRef,\n\t\tinputValue: nf.inputValue,\n\t\tvalue: nf.value,\n\t\tminWithDefault: nf.minWithDefault,\n\t\tmaxWithDefault: nf.maxWithDefault,\n\t\tdisabled,\n\t\treadOnly,\n\t\tid,\n\t\tsetValue: nf.setValue,\n\t\tincrementValue: nf.increment,\n\t\tgetStepAmount: nf.getStepAmount,\n\t\tallowInputSyncRef,\n\t\tformatOptionsRef,\n\t\tvalueRef,\n\t\tlastChangedValueRef,\n\t\thasPendingCommitRef,\n\t\tname,\n\t\trequired,\n\t\tinvalid,\n\t\tinputMode: nf.inputMode,\n\t\tgetAllowedNonNumericKeys: nf.getAllowedNonNumericKeys,\n\t\tmin: nf.min,\n\t\tmax: nf.max,\n\t\tsetInputValue: nf.setInputValue,\n\t\tlocale: nf.locale,\n\t\tisScrubbing,\n\t\tsetIsScrubbing: (next: boolean) => {\n\t\t\tsetIsScrubbing(next);\n\t\t},\n\t\tstate,\n\t\tonValueCommitted: nf.commitValue,\n\t};\n\n\tconst userStyling = resolveClassStyle(props, () => state());\n\n\tconst userProps = omit(\n\t\tprops,\n\t\t\"class\",\n\t\t\"style\",\n\t\t\"attrs\",\n\t\t\"as\",\n\t\t\"allowOutOfRange\",\n\t\t\"allowWheelScrub\",\n\t\t\"children\",\n\t\t\"defaultValue\",\n\t\t\"disabled\",\n\t\t\"form\",\n\t\t\"format\",\n\t\t\"inputRef\",\n\t\t\"largeStep\",\n\t\t\"locale\",\n\t\t\"max\",\n\t\t\"min\",\n\t\t\"name\",\n\t\t\"onValueChange\",\n\t\t\"onValueCommitted\",\n\t\t\"readOnly\",\n\t\t\"required\",\n\t\t\"smallStep\",\n\t\t\"snapOnStep\",\n\t\t\"step\",\n\t\t\"value\",\n\t);\n\n\tconst internalSlot = {\n\t\tget children() {\n\t\t\treturn (\n\t\t\t\t<NumberFieldRootContext value={contextValue}>\n\t\t\t\t\t{props.children}\n\t\t\t\t\t{/* The hidden input combines `tabindex={-1}` with\n\t\t\t\t\t    `aria-hidden=\"true\"` so it stays out of the\n\t\t\t\t\t    tab order and AT tree (matches React Base UI).\n\t\t\t\t\t    biome-ignore lint/a11y/noAriaHiddenOnFocusable: the `tabindex={-1}` removes the element from focus; the redundant `aria-hidden` mirrors React for belt-and-braces AT coverage. */}\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={(el: HTMLInputElement | null) => {\n\t\t\t\t\t\t\thiddenInputRef.current = el;\n\t\t\t\t\t\t\t// Bridge the hidden input into the field\n\t\t\t\t\t\t\t// validation pipeline so native validity\n\t\t\t\t\t\t\t// (rangeUnderflow / stepMismatch / etc.) flows\n\t\t\t\t\t\t\t// through the same path as `<Field.Control>`.\n\t\t\t\t\t\t\tfield.validation.inputRef.current = el;\n\t\t\t\t\t\t\tprops.inputRef?.(el);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tform={props.form}\n\t\t\t\t\t\tname={name()}\n\t\t\t\t\t\tvalue={nf.value() ?? \"\"}\n\t\t\t\t\t\tmin={readOption(props.min)}\n\t\t\t\t\t\tmax={readOption(props.max)}\n\t\t\t\t\t\tstep={String(stepProp())}\n\t\t\t\t\t\tdisabled={disabled()}\n\t\t\t\t\t\trequired={required()}\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\tstyle={{ ...VISUALLY_HIDDEN_STYLE } as JSX.CSSProperties}\n\t\t\t\t\t\tonFocus={() => {\n\t\t\t\t\t\t\tinputRef.current?.focus();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonInput={(\n\t\t\t\t\t\t\tevent: InputEvent & {\n\t\t\t\t\t\t\t\tcurrentTarget: HTMLInputElement;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tconst nextValue = event.currentTarget.valueAsNumber;\n\t\t\t\t\t\t\tconst parsedValue = Number.isNaN(nextValue) ? null : nextValue;\n\t\t\t\t\t\t\tconst details = createChangeEventDetails(REASONS.none, event);\n\t\t\t\t\t\t\tfield.setDirty(parsedValue !== field.validityData().initialValue);\n\t\t\t\t\t\t\tnf.setValue(parsedValue, details);\n\t\t\t\t\t\t\tif (field.shouldValidateOnChange()) {\n\t\t\t\t\t\t\t\tvoid field.validation.commit(parsedValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</NumberFieldRootContext>\n\t\t\t);\n\t\t},\n\t};\n\n\tconst styledUserProps = mergeRootProps(userStyling, userProps);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tinternalSlot,\n\t\tnumberFieldDataAttrs(state),\n\t);\n\tmerged = mergeRootProps(merged, styledUserProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn <Tag {...merged} ref={userRef(props)} />;\n}\n\nexport namespace NumberFieldRoot {\n\texport type State = NumberFieldRootState;\n\texport type Props = NumberFieldRootProps;\n\texport type ChangeEventDetails = NumberFieldRootChangeEventDetails;\n\texport type CommitEventDetails = NumberFieldRootCommitEventDetails;\n}\n"],"mappings":"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","ignoreList":[]}