{"version":3,"names":["dynamic","createMemo","createRenderEffect","createSignal","omit","createChangeEventDetails","createGenericEventDetails","REASONS","composeRefs","userRef","CompositeList","createControlledState","contains","ownerDocument","useFieldRootContext","fieldStateAttrs","useFormContext","useAriaLabelledBy","useLabelableId","mergeRootProps","resolveClassStyle","ariaDescribedBy","seedAriaDescribedBy","ariaLabelledBy","seedAriaLabelledBy","createStableCallback","useFieldControlValidation","useValueChanged","VISUALLY_HIDDEN_STYLE","getOTPValidationConfig","normalizeOTPValue","stripOTPWhitespace","OTPFieldRootContext","VISUALLY_HIDDEN_INPUT_STYLE","padding","OTPFieldRoot","props","field","form","disabled","readOnly","required","mask","autoSubmit","length","validationType","autoComplete","sanitizeValue","name","formId","id","rootId","undefined","valueUnwrapped","setUncontrolledValue","controlled","value","default","defaultValue","fallback","state","rootRef","current","elementsRef","pendingFocus","pendingCompleteValue","firstInputRef","_value","inputAriaLabelledBy","validationConfig","pattern","slotPattern","hiddenInputPattern","cfg","getRootPattern","inputMode","hasValidLength","l","Number","isInteger","filled","focusedIndex","setFocusedIndex","focused","setFocusedState","inputCount","setInputCount","ownedWrite","process","env","NODE_ENV","count","len","sanitize","vtype","console","warn","String","activeIndex","Math","min","max","controlRef","_v","validation","getValue","setFilled","setDirty","validityData","initialValue","shouldValidateOnChange","commit","pendingComplete","onValueComplete","eventDetails","requestSubmit","pendingFocusSnapshot","focusInput","index","targetIndex","target","focus","select","queueFocusInput","nextValue","formElement","inputRef","formIdValue","doc","associatedElement","getElementById","tagName","currentName","clearErrors","setValue","details","normalizedValue","previous","onValueChange","isCanceled","reason","event","reportValueInvalid","invalidValue","onValueInvalid","handleInputFocus","currentValue","setFocused","currentTarget","handleInputBlur","relatedTarget","setTouched","validationMode","getInputId","complete","contextValue","invalid","present","userStyling","userProps","internalSlot","role","data-complete","data-disabled","data-readonly","data-required","styledUserProps","merged","getValidationProps","Tag","as","el","map","size","children","HiddenValidationInput","enabled","rid","getRootId","hasName","hiddenStyle","inputValidationProps","getInputValidationProps","onFocus","focusFirstInput","onChange","defaultPrevented","rawValue","inputChange","committed","ref"],"sources":["otp-field-root.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createMemo, createRenderEffect, createSignal, omit } from \"solid-js\";\nimport {\n\tcreateChangeEventDetails,\n\tcreateGenericEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { CompositeList } from \"../../internals/composite/composite-list.tsx\";\nimport { createControlledState } from \"../../internals/create-controlled-state\";\nimport { contains } from \"../../internals/dom/contains.ts\";\nimport { ownerDocument } from \"../../internals/dom/owner-document.ts\";\nimport { useFieldRootContext } from \"../../internals/field-context\";\nimport { fieldStateAttrs } from \"../../internals/field-state-attrs\";\nimport { useFormContext } from \"../../internals/form-context\";\nimport { useAriaLabelledBy } from \"../../internals/labelable-provider/use-aria-labelled-by.ts\";\nimport { useLabelableId } from \"../../internals/labelable-provider/use-labelable-id.ts\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport {\n\tariaDescribedBy as seedAriaDescribedBy,\n\tariaLabelledBy as seedAriaLabelledBy,\n} from \"../../internals/seed-aria-attr\";\nimport { createStableCallback } from \"../../internals/stable-callback\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useFieldControlValidation } from \"../../internals/use-field-control-validation/use-field-control-validation.ts\";\nimport { useValueChanged } from \"../../internals/use-value-changed.ts\";\nimport { VISUALLY_HIDDEN_STYLE } from \"../../internals/visually-hidden-style.ts\";\nimport {\n\tgetOTPValidationConfig,\n\tnormalizeOTPValue,\n\ttype OTPValidationType,\n\tstripOTPWhitespace,\n} from \"../utils/otp.ts\";\nimport {\n\tOTPFieldRootContext,\n\ttype OTPFieldRootContextValue,\n} from \"./otp-field-root-context.ts\";\nimport type {\n\tOTPFieldRootChangeEventDetails,\n\tOTPFieldRootChangeEventReason,\n\tOTPFieldRootCompleteEventDetails,\n\tOTPFieldRootInvalidEventDetails,\n\tOTPFieldRootState,\n\tOTPFieldValidationType,\n} from \"./otp-field-root-types.ts\";\n\nexport type {\n\tOTPFieldRootChangeEventDetails,\n\tOTPFieldRootChangeEventReason,\n\tOTPFieldRootCompleteEventDetails,\n\tOTPFieldRootInvalidEventDetails,\n\tOTPFieldRootState,\n\tOTPFieldValidationType,\n};\n\nconst VISUALLY_HIDDEN_INPUT_STYLE: JSX.CSSProperties = {\n\t...VISUALLY_HIDDEN_STYLE,\n\tpadding: \"1px\",\n};\n\nexport interface OTPFieldRootProps\n\textends Omit<\n\t\tBaseUIComponentProps<\"div\", OTPFieldRootState>,\n\t\t\"onChange\" | \"value\"\n\t> {\n\t/**\n\t * Tag/component to render. Defaults to `\"div\"`. Replaces the\n\t * pre-spike `render` prop (axis G).\n\t */\n\tas?: ValidComponent;\n\tid?: string | undefined;\n\tautoComplete?: string | undefined;\n\tform?: string | undefined;\n\tlength: number;\n\tautoSubmit?: boolean | undefined;\n\tmask?: boolean | undefined;\n\tinputMode?:\n\t\t| JSX.InputHTMLAttributes<HTMLInputElement>[\"inputmode\"]\n\t\t| undefined;\n\tvalidationType?: OTPFieldValidationType | undefined;\n\tsanitizeValue?: ((value: string) => string) | undefined;\n\trequired?: boolean | undefined;\n\tdisabled?: boolean | undefined;\n\treadOnly?: boolean | undefined;\n\tname?: string | undefined;\n\t/**\n\t * Controlled OTP value. While not `undefined` the consumer owns the\n\t * state — pair with {@link onValueChange}. When omitted, the field\n\t * manages its own value (seeded from {@link defaultValue}), so typing\n\t * distributes digits across slots with zero wiring.\n\t */\n\tvalue?: string | undefined;\n\t/**\n\t * The uncontrolled OTP value when the component is initially rendered.\n\t * Read once at mount. To render a controlled OTP field, use the `value`\n\t * prop instead.\n\t * @default \"\"\n\t */\n\tdefaultValue?: string | undefined;\n\tonValueChange?:\n\t\t| ((value: string, details: OTPFieldRootChangeEventDetails) => void)\n\t\t| undefined;\n\tonValueInvalid?:\n\t\t| ((value: string, details: OTPFieldRootInvalidEventDetails) => void)\n\t\t| undefined;\n\tonValueComplete?:\n\t\t| ((value: string, details: OTPFieldRootCompleteEventDetails) => void)\n\t\t| undefined;\n}\n\n/**\n * Groups all `<OTPField.Input>` slots and manages the shared OTP value, focus\n * coordination, clipboard distribution, validation and form integration.\n * Renders a `<div role=\"group\">` (or `as` override).\n *\n * §1 wave 2: replaces `renderElement` with `dynamic(() => props.as ?? \"div\")`.\n * Field-validity attrs flow through `fieldStateAttrs(state)`; OTP-specific\n * presence attrs (`data-complete`, `data-disabled`, `data-readonly`,\n * `data-required`) are emitted via inline reactive getters on the internal\n * slot bag. The `seedAriaLabelledBy`/`seedAriaDescribedBy` helpers and the\n * field-validation a11y bag compose via `mergeRootProps`.\n */\nexport function OTPFieldRoot(props: OTPFieldRootProps): JSX.Element {\n\tconst field = useFieldRootContext();\n\tconst form = useFormContext();\n\n\tconst disabled = (): boolean => field.disabled() || props.disabled === true;\n\tconst readOnly = (): boolean => props.readOnly === true;\n\tconst required = (): boolean => props.required === true;\n\tconst mask = (): boolean => props.mask === true;\n\tconst autoSubmit = (): boolean => props.autoSubmit === true;\n\tconst length = (): number => props.length;\n\tconst validationType = (): OTPValidationType =>\n\t\tprops.validationType ?? \"numeric\";\n\tconst autoComplete = (): string | undefined =>\n\t\tprops.autoComplete ?? \"one-time-code\";\n\tconst sanitizeValue = (): ((value: string) => string) | undefined =>\n\t\tprops.sanitizeValue;\n\tconst name = (): string | undefined => field.name() ?? props.name;\n\tconst formId = (): string | undefined => props.form;\n\n\tconst { id: rootId } = useLabelableId({\n\t\tid: typeof props.id === \"string\" ? props.id : undefined,\n\t});\n\n\t// Controlled / uncontrolled value (Base UI `value` / `defaultValue`\n\t// contract): the `value` prop wins while not `undefined` (an explicit\n\t// `\"\"` IS a controlled empty value); otherwise an internal signal\n\t// (seeded once from `defaultValue`, default `\"\"`) backs the state and\n\t// `setValue` below writes it.\n\tconst [valueUnwrapped, setUncontrolledValue] = createControlledState<string>({\n\t\tcontrolled: () => props.value,\n\t\tdefault: () => props.defaultValue,\n\t\tfallback: \"\",\n\t\tname: \"<OTPField.Root>\",\n\t\tstate: \"value\",\n\t});\n\n\tconst value = createMemo((): string =>\n\t\tnormalizeOTPValue(\n\t\t\tvalueUnwrapped(),\n\t\t\tlength(),\n\t\t\tvalidationType(),\n\t\t\tsanitizeValue(),\n\t\t),\n\t);\n\n\tconst rootRef: { current: HTMLDivElement | null } = { current: null };\n\tconst elementsRef: Array<HTMLElement | null> = [];\n\tlet pendingFocus: { index: number; value: string } | null = null;\n\tlet pendingCompleteValue: {\n\t\tvalue: string;\n\t\teventDetails: OTPFieldRootCompleteEventDetails;\n\t} | null = null;\n\n\tconst firstInputRef: { current: HTMLInputElement | null } = {\n\t\tget current() {\n\t\t\treturn (elementsRef[0] as HTMLInputElement | null) ?? null;\n\t\t},\n\t\tset current(_value) {\n\t\t\t// Read-only shim — CompositeList owns `elementsRef` mutations.\n\t\t},\n\t};\n\n\tconst ariaLabelledBy = useAriaLabelledBy((): string | undefined =>\n\t\ttypeof props[\"aria-labelledby\"] === \"string\"\n\t\t\t? props[\"aria-labelledby\"]\n\t\t\t: undefined,\n\t);\n\n\tconst inputAriaLabelledBy = createMemo((): string | undefined => {\n\t\tif (typeof props[\"aria-labelledby\"] === \"string\") return undefined;\n\t\treturn ariaLabelledBy();\n\t});\n\n\tconst validationConfig = createMemo(() =>\n\t\tgetOTPValidationConfig(validationType()),\n\t);\n\tconst pattern = (): string | undefined =>\n\t\tvalidationConfig()?.slotPattern ?? undefined;\n\tconst hiddenInputPattern = (): string | undefined => {\n\t\tconst cfg = validationConfig();\n\t\treturn cfg ? cfg.getRootPattern(length()) : undefined;\n\t};\n\tconst inputMode =\n\t\t(): JSX.InputHTMLAttributes<HTMLInputElement>[\"inputmode\"] =>\n\t\t\tprops.inputMode ?? validationConfig()?.inputMode;\n\tconst hasValidLength = (): boolean => {\n\t\tconst l = length();\n\t\treturn Number.isInteger(l) && l > 0;\n\t};\n\n\tconst filled = (): boolean => value() !== \"\";\n\n\tconst [focusedIndex, setFocusedIndex] = createSignal(0);\n\tconst [focused, setFocusedState] = createSignal(false);\n\n\tconst [inputCount, setInputCount] = createSignal(0, { ownedWrite: true });\n\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tcreateRenderEffect(\n\t\t\t() => ({\n\t\t\t\tcount: inputCount(),\n\t\t\t\tlen: length(),\n\t\t\t\tsanitize: sanitizeValue(),\n\t\t\t\tvtype: validationType(),\n\t\t\t}),\n\t\t\t({ count, len, sanitize, vtype }) => {\n\t\t\t\tif (!Number.isInteger(len) || len <= 0) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Base UI: <OTPField.Root> \\`length\\` must be a positive integer. Received \\`length={${String(len)}}\\`.`,\n\t\t\t\t\t);\n\t\t\t\t} else if (count !== 0 && count !== len) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Base UI: <OTPField.Root> \\`length\\` must match the number of rendered <OTPField.Input /> parts. Received \\`length={${len}}\\` but rendered ${count} input${count === 1 ? \"\" : \"s\"}.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (sanitize != null && vtype !== \"none\") {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'Base UI: <OTPField.Root> `sanitizeValue` is only used when `validationType=\"none\"`.',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\tconst activeIndex = createMemo((): number => {\n\t\tconst l = length();\n\t\tif (focused()) {\n\t\t\treturn Math.min(focusedIndex(), Math.max(l - 1, 0));\n\t\t}\n\t\treturn Math.min(value().length, Math.max(l - 1, 0));\n\t});\n\n\tconst controlRef: { current: HTMLElement | null } = {\n\t\tget current() {\n\t\t\treturn firstInputRef.current;\n\t\t},\n\t\tset current(_v) {\n\t\t\t// No-op — the first slot input is the registered control.\n\t\t},\n\t};\n\tconst validation = useFieldControlValidation({\n\t\tvalue: () => value(),\n\t\tid: () => rootId,\n\t\tcontrolRef,\n\t\tgetValue: () => value(),\n\t});\n\n\tuseValueChanged(filled, () => {\n\t\tfield.setFilled(filled());\n\t});\n\n\tuseValueChanged(value, () => {\n\t\tconst current = value();\n\t\tfield.setDirty(current !== field.validityData().initialValue);\n\n\t\tif (field.shouldValidateOnChange()) {\n\t\t\tvoid validation.commit(current);\n\t\t} else {\n\t\t\tvoid validation.commit(current, true);\n\t\t}\n\n\t\tconst pendingComplete = pendingCompleteValue;\n\t\tif (pendingComplete != null) {\n\t\t\tpendingCompleteValue = null;\n\t\t\tif (pendingComplete.value === current) {\n\t\t\t\tprops.onValueComplete?.(current, pendingComplete.eventDetails);\n\t\t\t\tif (autoSubmit()) requestSubmit();\n\t\t\t}\n\t\t}\n\n\t\tconst pendingFocusSnapshot = pendingFocus;\n\t\tif (pendingFocusSnapshot != null) {\n\t\t\tpendingFocus = null;\n\t\t\tif (pendingFocusSnapshot.value === current) {\n\t\t\t\tfocusInput(pendingFocusSnapshot.index);\n\t\t\t}\n\t\t}\n\t});\n\n\tconst focusInput = createStableCallback<(index: number) => void>(\n\t\t() => (index) => {\n\t\t\tconst max = Math.max(elementsRef.length - 1, 0);\n\t\t\tconst targetIndex = Math.min(Math.max(index, 0), max);\n\t\t\tconst target = elementsRef[targetIndex] as HTMLInputElement | null;\n\t\t\ttarget?.focus();\n\t\t\ttarget?.select?.();\n\t\t},\n\t);\n\n\tconst queueFocusInput = createStableCallback<\n\t\t(index: number, nextValue: string) => void\n\t>(() => (index, nextValue) => {\n\t\tpendingFocus = { index, value: nextValue };\n\t});\n\n\tfunction requestSubmit(): void {\n\t\tlet formElement: HTMLFormElement | null =\n\t\t\tvalidation.inputRef.current?.form ??\n\t\t\t(elementsRef[0] as HTMLInputElement | null)?.form ??\n\t\t\tnull;\n\n\t\tconst formIdValue = formId();\n\t\tif (formIdValue) {\n\t\t\tconst doc = ownerDocument(rootRef.current);\n\t\t\tconst associatedElement = doc.getElementById(formIdValue);\n\t\t\tif (associatedElement?.tagName === \"FORM\") {\n\t\t\t\tformElement = associatedElement as HTMLFormElement;\n\t\t\t}\n\t\t}\n\n\t\tif (formElement && typeof formElement.requestSubmit === \"function\") {\n\t\t\tformElement.requestSubmit();\n\t\t}\n\t}\n\n\tuseValueChanged(value, () => {\n\t\tconst currentName = name();\n\t\tif (currentName != null && form.clearErrors) {\n\t\t\tform.clearErrors(currentName);\n\t\t}\n\t});\n\n\tconst setValue = createStableCallback<\n\t\t(\n\t\t\tnextValue: string,\n\t\t\tdetails: OTPFieldRootChangeEventDetails,\n\t\t) => string | null\n\t>(() => (nextValue, details) => {\n\t\tconst normalizedValue = normalizeOTPValue(\n\t\t\tnextValue,\n\t\t\tlength(),\n\t\t\tvalidationType(),\n\t\t\tsanitizeValue(),\n\t\t);\n\t\tconst previous = value();\n\n\t\tif (normalizedValue === previous) return null;\n\n\t\tprops.onValueChange?.(normalizedValue, details);\n\t\t// Cancel gate matches React Base UI `OTPFieldRoot.setValue`:\n\t\t// `details.cancel()` keeps the uncontrolled state unchanged, queues\n\t\t// no pending complete, and returns `null` so callers skip the\n\t\t// focus-advance bookkeeping.\n\t\tif (details.isCanceled) return null;\n\t\tsetUncontrolledValue(normalizedValue);\n\n\t\tconst l = length();\n\t\tif (normalizedValue.length === l && previous.length !== l) {\n\t\t\tpendingCompleteValue = {\n\t\t\t\tvalue: normalizedValue,\n\t\t\t\teventDetails: createGenericEventDetails(\n\t\t\t\t\tdetails.reason as\n\t\t\t\t\t\t| (typeof REASONS)[\"inputChange\"]\n\t\t\t\t\t\t| (typeof REASONS)[\"inputPaste\"],\n\t\t\t\t\tdetails.event as ClipboardEvent | InputEvent | Event,\n\t\t\t\t),\n\t\t\t};\n\t\t} else if (normalizedValue.length !== l) {\n\t\t\tpendingCompleteValue = null;\n\t\t}\n\n\t\treturn normalizedValue;\n\t});\n\n\tconst reportValueInvalid = createStableCallback<\n\t\t(invalidValue: string, details: OTPFieldRootInvalidEventDetails) => void\n\t>(() => (invalidValue, details) => {\n\t\tprops.onValueInvalid?.(invalidValue, details);\n\t});\n\n\tconst handleInputFocus = createStableCallback<\n\t\t(\n\t\t\tindex: number,\n\t\t\tevent: FocusEvent & { currentTarget: HTMLInputElement },\n\t\t) => void\n\t>(() => (index, event) => {\n\t\tconst currentValue = value();\n\t\tif (index > currentValue.length) {\n\t\t\tfocusInput(Math.min(currentValue.length, length() - 1));\n\t\t\treturn;\n\t\t}\n\t\tsetFocusedIndex(index);\n\t\tsetFocusedState(true);\n\t\tfield.setFocused(true);\n\t\tevent.currentTarget.select();\n\t});\n\n\tconst handleInputBlur = createStableCallback<\n\t\t(event: FocusEvent & { currentTarget: HTMLInputElement }) => void\n\t>(() => (event) => {\n\t\tconst relatedTarget = event.relatedTarget as Element | null;\n\t\tif (contains(rootRef.current, relatedTarget)) return;\n\n\t\tfield.setTouched(true);\n\t\tsetFocusedState(false);\n\t\tfield.setFocused(false);\n\n\t\tif (field.validationMode() === \"onBlur\") {\n\t\t\tvoid validation.commit(value());\n\t\t}\n\t});\n\n\tconst getInputId = (index: number): string | undefined => {\n\t\tif (rootId == null) return undefined;\n\t\treturn index === 0 ? rootId : `${rootId}-${index + 1}`;\n\t};\n\n\tconst state = createMemo(\n\t\t(): OTPFieldRootState => ({\n\t\t\t...field.state(),\n\t\t\tcomplete: value().length === length(),\n\t\t\tdisabled: disabled(),\n\t\t\tfilled: filled(),\n\t\t\tfocused: focused(),\n\t\t\tlength: length(),\n\t\t\treadOnly: readOnly(),\n\t\t\trequired: required(),\n\t\t\tvalue: value(),\n\t\t}),\n\t);\n\n\tconst contextValue: OTPFieldRootContextValue = {\n\t\tactiveIndex,\n\t\tautoComplete,\n\t\tdisabled,\n\t\tform: formId,\n\t\tfocusInput,\n\t\tqueueFocusInput,\n\t\tgetInputId,\n\t\thandleInputBlur,\n\t\thandleInputFocus,\n\t\tinputMode,\n\t\tinputAriaLabelledBy,\n\t\tinvalid: (): boolean => field.invalid(),\n\t\tlength,\n\t\tmask,\n\t\tpattern,\n\t\treportValueInvalid,\n\t\treadOnly,\n\t\trequired,\n\t\tsanitizeValue,\n\t\tsetValue,\n\t\tstate,\n\t\tvalidationType: () => validationType(),\n\t\tvalue,\n\t\tpresent: true,\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\"autoComplete\",\n\t\t\"autoSubmit\",\n\t\t\"children\",\n\t\t\"defaultValue\",\n\t\t\"disabled\",\n\t\t\"form\",\n\t\t\"id\",\n\t\t\"inputMode\",\n\t\t\"length\",\n\t\t\"mask\",\n\t\t\"name\",\n\t\t\"onValueChange\",\n\t\t\"onValueComplete\",\n\t\t\"onValueInvalid\",\n\t\t\"readOnly\",\n\t\t\"required\",\n\t\t\"sanitizeValue\",\n\t\t\"validationType\",\n\t\t\"value\",\n\t\t\"aria-labelledby\",\n\t\t\"aria-describedby\",\n\t);\n\n\tconst ariaDescribedBy = (): string | undefined =>\n\t\ttypeof props[\"aria-describedby\"] === \"string\"\n\t\t\t? props[\"aria-describedby\"]\n\t\t\t: undefined;\n\n\tconst internalSlot = {\n\t\tid: rootId,\n\t\trole: \"group\" as const,\n\t\tget \"data-complete\"(): \"\" | undefined {\n\t\t\treturn value().length === length() ? \"\" : undefined;\n\t\t},\n\t\tget \"data-disabled\"(): \"\" | undefined {\n\t\t\treturn disabled() ? \"\" : undefined;\n\t\t},\n\t\tget \"data-readonly\"(): \"\" | undefined {\n\t\t\treturn readOnly() ? \"\" : undefined;\n\t\t},\n\t\tget \"data-required\"(): \"\" | undefined {\n\t\t\treturn required() ? \"\" : undefined;\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\tseedAriaLabelledBy(ariaLabelledBy) ?? {},\n\t);\n\tmerged = mergeRootProps(merged, seedAriaDescribedBy(ariaDescribedBy) ?? {});\n\tmerged = mergeRootProps(merged, validation.getValidationProps() ?? {});\n\tmerged = mergeRootProps(merged, fieldStateAttrs(state));\n\tmerged = mergeRootProps(merged, styledUserProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn (\n\t\t<Tag\n\t\t\t{...merged}\n\t\t\tref={composeRefs((el: HTMLElement | null): void => {\n\t\t\t\trootRef.current = el as HTMLDivElement | null;\n\t\t\t}, userRef(props))}\n\t\t>\n\t\t\t<OTPFieldRootContext value={contextValue}>\n\t\t\t\t<CompositeList<null>\n\t\t\t\t\telementsRef={elementsRef}\n\t\t\t\t\tonMapChange={(map) => {\n\t\t\t\t\t\tsetInputCount(map.size);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{props.children}\n\t\t\t\t</CompositeList>\n\t\t\t\t<HiddenValidationInput\n\t\t\t\t\tenabled={hasValidLength}\n\t\t\t\t\tautoComplete={autoComplete}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tform={formId}\n\t\t\t\t\tgetRootId={() => rootId}\n\t\t\t\t\thasName={() => name() != null}\n\t\t\t\t\tinputMode={inputMode}\n\t\t\t\t\tlength={length}\n\t\t\t\t\tname={name}\n\t\t\t\t\tpattern={hiddenInputPattern}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\trequired={required}\n\t\t\t\t\treportValueInvalid={reportValueInvalid}\n\t\t\t\t\tsanitizeValue={sanitizeValue}\n\t\t\t\t\tsetValue={setValue}\n\t\t\t\t\tvalidation={validation}\n\t\t\t\t\tvalidationType={validationType}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tfocusFirstInput={() => focusInput(0)}\n\t\t\t\t\tqueueFocusInput={queueFocusInput}\n\t\t\t\t/>\n\t\t\t</OTPFieldRootContext>\n\t\t</Tag>\n\t);\n}\n\ninterface HiddenValidationInputProps {\n\tenabled: () => boolean;\n\tautoComplete: () => string | undefined;\n\tdisabled: () => boolean;\n\tform: () => string | undefined;\n\tgetRootId: () => string | undefined;\n\thasName: () => boolean;\n\tinputMode: () => JSX.InputHTMLAttributes<HTMLInputElement>[\"inputmode\"];\n\tlength: () => number;\n\tname: () => string | undefined;\n\tpattern: () => string | undefined;\n\treadOnly: () => boolean;\n\trequired: () => boolean;\n\treportValueInvalid: (\n\t\tvalue: string,\n\t\tdetails: OTPFieldRootInvalidEventDetails,\n\t) => void;\n\tsanitizeValue: () => ((value: string) => string) | undefined;\n\tsetValue: (\n\t\tvalue: string,\n\t\tdetails: OTPFieldRootChangeEventDetails,\n\t) => string | null;\n\tvalidation: ReturnType<typeof useFieldControlValidation>;\n\tvalidationType: () => OTPValidationType;\n\tvalue: () => string;\n\tfocusFirstInput: () => void;\n\tqueueFocusInput: (index: number, value: string) => void;\n}\n\nfunction HiddenValidationInput(props: HiddenValidationInputProps): JSX.Element {\n\tif (!props.enabled()) return null;\n\n\tconst id = (): string | undefined => {\n\t\tconst rid = props.getRootId();\n\t\treturn rid && !props.hasName() ? `${rid}-hidden-input` : undefined;\n\t};\n\n\tconst hiddenStyle = (): JSX.CSSProperties =>\n\t\tprops.hasName()\n\t\t\t? VISUALLY_HIDDEN_INPUT_STYLE\n\t\t\t: { ...VISUALLY_HIDDEN_STYLE };\n\n\tconst inputValidationProps = props.validation.getInputValidationProps({\n\t\tonFocus: (): void => {\n\t\t\tprops.focusFirstInput();\n\t\t},\n\t\tonChange: (event: Event & { currentTarget: HTMLInputElement }): void => {\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\tconst rawValue = event.currentTarget.value;\n\t\t\tconst normalizedValue = normalizeOTPValue(\n\t\t\t\trawValue,\n\t\t\t\tprops.length(),\n\t\t\t\tprops.validationType(),\n\t\t\t\tprops.sanitizeValue(),\n\t\t\t);\n\n\t\t\tif (stripOTPWhitespace(rawValue).length > normalizedValue.length) {\n\t\t\t\tprops.reportValueInvalid(\n\t\t\t\t\trawValue,\n\t\t\t\t\tcreateGenericEventDetails(REASONS.inputChange, event),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst committed = props.setValue(\n\t\t\t\tnormalizedValue,\n\t\t\t\tcreateChangeEventDetails(REASONS.inputChange, event),\n\t\t\t);\n\n\t\t\tif (committed != null && committed !== \"\") {\n\t\t\t\tprops.queueFocusInput(committed.length - 1, committed);\n\t\t\t}\n\t\t},\n\t});\n\n\tconst ref = (el: HTMLInputElement | null): void => {\n\t\tprops.validation.inputRef.current = el;\n\t};\n\n\treturn (\n\t\t// biome-ignore lint/a11y/noAriaHiddenOnFocusable: mirrors React Base UI's hidden validation input.\n\t\t<input\n\t\t\t{...(inputValidationProps as Record<string, unknown>)}\n\t\t\tref={ref}\n\t\t\ttype=\"text\"\n\t\t\tid={id()}\n\t\t\tform={props.form()}\n\t\t\tname={props.name()}\n\t\t\tvalue={props.value()}\n\t\t\tautocomplete={props.autoComplete() ?? \"one-time-code\"}\n\t\t\tinputmode={props.inputMode()}\n\t\t\tminlength={props.length()}\n\t\t\tmaxlength={props.length()}\n\t\t\tpattern={props.pattern()}\n\t\t\tdisabled={props.disabled() || undefined}\n\t\t\treadonly={props.readOnly() || undefined}\n\t\t\trequired={props.required() || undefined}\n\t\t\taria-hidden=\"true\"\n\t\t\ttabindex={-1}\n\t\t\tstyle={hiddenStyle()}\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}