{"version":3,"names":["dynamic","createMemo","omit","composeRefs","userRef","mergeRootProps","resolveClassStyle","useButton","useNumberFieldRootContext","useNumberFieldButton","numberFieldDataAttrs","NumberFieldIncrement","props","context","isMax","current","value","maxWithDefault","disabled","buttonHandlerProps","isIncrement","inputRef","inputValue","readOnly","id","setValue","getStepAmount","incrementValue","allowInputSyncRef","formatOptionsRef","valueRef","locale","lastChangedValueRef","onValueCommitted","buttonProps","ref","buttonRef","native","nativeButton","focusableWhenDisabled","state","userStyling","userProps","styledUserProps","merged","Tag","as"],"sources":["number-field-increment.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createMemo, omit } from \"solid-js\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type {\n\tBaseUIComponentProps,\n\tNativeButtonProps,\n} from \"../../internals/types\";\nimport { useButton } from \"../../internals/use-button/use-button\";\nimport type { NumberFieldRootState } from \"../root/number-field-root.tsx\";\nimport { useNumberFieldRootContext } from \"../root/number-field-root-context.ts\";\nimport { useNumberFieldButton } from \"../root/use-number-field-button.ts\";\nimport { numberFieldDataAttrs } from \"../utils/state-attributes-mapping.ts\";\n\nexport interface NumberFieldIncrementState extends NumberFieldRootState {}\n\nexport interface NumberFieldIncrementProps\n\textends NativeButtonProps,\n\t\tBaseUIComponentProps<\"button\", NumberFieldIncrementState> {\n\t/** Tag/component to render. Defaults to `\"button\"`. */\n\tas?: ValidComponent;\n}\n\n/**\n * A stepper button that increases the field value when clicked. Renders a\n * `<button>` (or `as` override).\n */\nexport function NumberFieldIncrement(\n\tprops: NumberFieldIncrementProps,\n): JSX.Element {\n\tconst context = useNumberFieldRootContext();\n\n\tconst isMax = (): boolean => {\n\t\tconst current = context.value();\n\t\treturn current != null && current >= context.maxWithDefault();\n\t};\n\n\tconst disabled = (): boolean =>\n\t\tprops.disabled === true || context.disabled() || isMax();\n\n\tconst { props: buttonHandlerProps } = useNumberFieldButton({\n\t\tisIncrement: true,\n\t\tinputRef: context.inputRef,\n\t\tinputValue: context.inputValue,\n\t\tdisabled,\n\t\treadOnly: context.readOnly,\n\t\tid: context.id,\n\t\tsetValue: context.setValue,\n\t\tgetStepAmount: context.getStepAmount,\n\t\tincrementValue: context.incrementValue,\n\t\tallowInputSyncRef: context.allowInputSyncRef,\n\t\tformatOptionsRef: context.formatOptionsRef,\n\t\tvalueRef: context.valueRef,\n\t\tlocale: context.locale,\n\t\tlastChangedValueRef: context.lastChangedValueRef,\n\t\tonValueCommitted: context.onValueCommitted,\n\t});\n\n\tconst { props: buttonProps, ref: buttonRef } = useButton({\n\t\tdisabled,\n\t\tnative: () => props.nativeButton ?? true,\n\t\tfocusableWhenDisabled: true,\n\t});\n\n\tconst state = createMemo(\n\t\t(): NumberFieldIncrementState => ({\n\t\t\t...context.state(),\n\t\t\tdisabled: disabled(),\n\t\t}),\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\"nativeButton\",\n\t\t\"disabled\",\n\t);\n\n\tconst styledUserProps = mergeRootProps(userStyling, userProps);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tbuttonProps,\n\t\tbuttonHandlerProps,\n\t);\n\tmerged = mergeRootProps(merged, numberFieldDataAttrs(state));\n\tmerged = mergeRootProps(merged, styledUserProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"button\");\n\treturn <Tag {...merged} ref={composeRefs(buttonRef, userRef(props))} />;\n}\n\nexport namespace NumberFieldIncrement {\n\texport type State = NumberFieldIncrementState;\n\texport type Props = NumberFieldIncrementProps;\n}\n"],"mappings":"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","ignoreList":[]}