'use client'; import { jsx } from 'react/jsx-runtime'; import { omitThemingProps } from '@chakra-ui/styled-system'; import { createContext, cx } from '@chakra-ui/utils'; import { useMemo } from 'react'; import { TriangleDownIcon, TriangleUpIcon } from './icons.mjs'; import { useNumberInput } from './use-number-input.mjs'; import { useFormControlProps } from '../form-control/use-form-control.mjs'; import { forwardRef } from '../system/forward-ref.mjs'; import { chakra } from '../system/factory.mjs'; import { useMultiStyleConfig } from '../system/use-style-config.mjs'; const [NumberInputStylesProvider, useNumberInputStyles] = createContext({ name: `NumberInputStylesContext`, errorMessage: `useNumberInputStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` }); const [NumberInputProvider, useNumberInputContext] = createContext({ name: "NumberInputContext", errorMessage: "useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within " }); const NumberInput = forwardRef( function NumberInput2(props, ref) { const styles = useMultiStyleConfig("NumberInput", props); const ownProps = omitThemingProps(props); const controlProps = useFormControlProps(ownProps); const { htmlProps, ...context } = useNumberInput(controlProps); const ctx = useMemo(() => context, [context]); return /* @__PURE__ */ jsx(NumberInputProvider, { value: ctx, children: /* @__PURE__ */ jsx(NumberInputStylesProvider, { value: styles, children: /* @__PURE__ */ jsx( chakra.div, { ...htmlProps, ref, className: cx("chakra-numberinput", props.className), __css: { position: "relative", zIndex: 0, ...styles.root } } ) }) }); } ); NumberInput.displayName = "NumberInput"; const NumberInputStepper = forwardRef( function NumberInputStepper2(props, ref) { const styles = useNumberInputStyles(); return /* @__PURE__ */ jsx( chakra.div, { "aria-hidden": true, ref, ...props, __css: { display: "flex", flexDirection: "column", position: "absolute", top: "0", insetEnd: "0px", margin: "1px", height: "calc(100% - 2px)", zIndex: 1, ...styles.stepperGroup } } ); } ); NumberInputStepper.displayName = "NumberInputStepper"; const NumberInputField = forwardRef( function NumberInputField2(props, ref) { const { getInputProps } = useNumberInputContext(); const input = getInputProps(props, ref); const styles = useNumberInputStyles(); return /* @__PURE__ */ jsx( chakra.input, { ...input, className: cx("chakra-numberinput__field", props.className), __css: { width: "100%", ...styles.field } } ); } ); NumberInputField.displayName = "NumberInputField"; const StyledStepper = chakra("div", { baseStyle: { display: "flex", justifyContent: "center", alignItems: "center", flex: 1, transitionProperty: "common", transitionDuration: "normal", userSelect: "none", cursor: "pointer", lineHeight: "normal" } }); const NumberDecrementStepper = forwardRef(function NumberDecrementStepper2(props, ref) { const styles = useNumberInputStyles(); const { getDecrementButtonProps } = useNumberInputContext(); const decrement = getDecrementButtonProps(props, ref); return /* @__PURE__ */ jsx(StyledStepper, { ...decrement, __css: styles.stepper, children: props.children ?? /* @__PURE__ */ jsx(TriangleDownIcon, {}) }); }); NumberDecrementStepper.displayName = "NumberDecrementStepper"; const NumberIncrementStepper = forwardRef(function NumberIncrementStepper2(props, ref) { const { getIncrementButtonProps } = useNumberInputContext(); const increment = getIncrementButtonProps(props, ref); const styles = useNumberInputStyles(); return /* @__PURE__ */ jsx(StyledStepper, { ...increment, __css: styles.stepper, children: props.children ?? /* @__PURE__ */ jsx(TriangleUpIcon, {}) }); }); NumberIncrementStepper.displayName = "NumberIncrementStepper"; export { NumberDecrementStepper, NumberIncrementStepper, NumberInput, NumberInputField, NumberInputStepper, StyledStepper, useNumberInputStyles };