@stenajs-webui/forms 22.4.5 → 22.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/components/ui/switch/Switch.tsx","../src/components/ui/switch/SwitchWithLabel.tsx","../src/components/ui/checkbox/Checkbox.tsx","../src/components/ui/checkbox/CheckboxWithLabel.tsx","../src/components/ui/radio/RadioButton.tsx","../src/components/ui/radio/RadioButtonBox.tsx","../src/components/ui/radio/RadioButtonWithLabel.tsx","../src/hooks/UseKeyboardNavigation.ts","../src/hooks/UseSelectAllOnMount.ts","../src/hooks/UseTextInput.ts","../src/components/ui/text-input/TextInputIcon.tsx","../src/components/ui/text-input/TextInput.tsx","../src/utils/NumericHelpers.ts","../src/components/ui/numeric-text-input/NumericTextInput.tsx","../src/components/ui/numeric-text-input/hooks/UseNumericInputValue.ts","../src/utils/NumberComparator.ts","../src/components/ui/numeric-stepper/NumericStepper.tsx","../src/components/ui/password-input/PasswordInput.tsx","../src/components/ui/input-label/InputLabelText.tsx","../src/components/ui/input-label/InputLabel.tsx","../src/components/ui/labelled-select/LabelledSelect.tsx","../src/components/ui/labelled-text-input/LabelledTextInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["import { Ref } from \"react\";\nimport * as React from \"react\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport styles from \"./Switch.module.css\";\n\nexport interface SwitchProps\n extends Omit<ButtonElementProps, \"value\">,\n ValueAndOnValueChangeProps<boolean> {\n wrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst styleChecked = `${styles.switch} ${styles.checked}`;\n\nexport const Switch: React.FC<SwitchProps> = ({\n value,\n disabled,\n onValueChange,\n className,\n wrapperRef,\n ...restProps\n}) => {\n return (\n <div className={className} ref={wrapperRef}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n className={value ? styleChecked : styles.switch}\n disabled={disabled}\n onClick={() => onValueChange && onValueChange(!value)}\n {...restProps}\n >\n <div className={styles.filler} />\n <div className={styles.knob} />\n </button>\n </div>\n );\n};\n","import { Box, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Switch, SwitchProps } from \"./Switch\";\n\nexport interface SwitchWithLabelProps extends SwitchProps {\n label: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n screenReaderLabel,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text\n color={textColor}\n aria-hidden={Boolean(screenReaderLabel)}\n userSelect={\"none\"}\n >\n {label}\n </Text>\n </Box>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport cx from \"classnames\";\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxSize = \"standard\" | \"small\";\n\nexport interface CheckboxProps\n extends FullOnChangeProps<boolean, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n indeterminate?: boolean;\n size?: CheckboxSize;\n disabled?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n indeterminate = false,\n onChange,\n onValueChange,\n value = false,\n size = \"standard\",\n className,\n ...inputProps\n },\n ref,\n ) => {\n const localRef = useRef<HTMLInputElement>(null);\n\n const setRef = (element: HTMLInputElement) => {\n localRef.current = element;\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n ref.current = element;\n }\n }\n };\n\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.checked);\n }\n },\n [onChange, onValueChange],\n );\n\n useEffect(() => {\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate, localRef]);\n\n return (\n <input\n type={\"checkbox\"}\n className={cx(styles.checkbox, styles[size], className)}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n },\n);\n","import { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { Checkbox, CheckboxProps } from \"./Checkbox\";\n\nexport interface CheckboxWithLabelProps extends CheckboxProps {\n label: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const CheckboxWithLabel: React.FC<CheckboxWithLabelProps> = ({\n children,\n label,\n inputRef,\n wrapperRef,\n textColor,\n screenReaderLabel,\n ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text\n color={textColor}\n aria-hidden={Boolean(screenReaderLabel)}\n userSelect={\"none\"}\n >\n {label}\n </Text>\n {children}\n </Row>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./RadioButton.module.css\";\nimport cx from \"classnames\";\n\nexport type RadioButtonSize = \"standard\" | \"small\";\n\nexport interface RadioButtonProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n size?: RadioButtonSize;\n}\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(\n (\n {\n onChange,\n onValueChange,\n size = \"standard\",\n name,\n className,\n ...inputProps\n },\n ref,\n ) => {\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange],\n );\n\n return (\n <input\n type={\"radio\"}\n name={name}\n className={cx(styles.radiobutton, styles[size], className)}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n },\n);\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./RadioButtonBox.module.css\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport type RadioButtonBoxVariant = \"normal\" | \"danger\";\nexport type RadioButtonBoxSizeVariant = \"medium\" | \"large\";\n\nexport type RadioButtonBoxProps =\n | RadioButtonBoxNoRightProps\n | RadioButtonBoxIconProps\n | RadioButtonBoxContentRightProps;\n\nexport interface RadioButtonBoxCommonProps\n extends Omit<RadioButtonProps, \"size\"> {\n label?: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n variant?: RadioButtonBoxVariant;\n size?: RadioButtonBoxSizeVariant;\n radioButtonClassName?: string;\n}\n\nexport interface RadioButtonBoxNoRightProps extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxIconProps extends RadioButtonBoxCommonProps {\n icon?: IconDefinition;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxContentRightProps\n extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: ReactNode;\n}\n\nexport const RadioButtonBox: React.FC<RadioButtonBoxProps> = ({\n label,\n screenReaderLabel,\n variant = \"normal\",\n size = \"medium\",\n className,\n icon,\n contentRight,\n style,\n disabled,\n radioButtonClassName,\n ...radioButtonProps\n}) => {\n const textColor = disabled\n ? cssColor(\"--swui-text-disabled-color\")\n : undefined;\n\n return (\n <label\n className={cx(\n styles.radioButtonBox,\n styles[variant],\n styles[size],\n className,\n )}\n style={style}\n >\n <Row justifyContent={\"space-between\"} flexGrow={1}>\n <Row alignItems={\"center\"}>\n <RadioButton\n {...radioButtonProps}\n disabled={disabled}\n className={radioButtonClassName}\n />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text color={textColor} aria-hidden={Boolean(screenReaderLabel)}>\n {label}\n </Text>\n </Row>\n <Row\n alignItems={\"center\"}\n width={icon ? \"48px\" : undefined}\n justifyContent={\"center\"}\n >\n {icon && <Icon icon={icon} size={24} color={textColor} />}\n {!icon && contentRight}\n </Row>\n </Row>\n </label>\n );\n};\n","import { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport interface RadioButtonWithLabelProps extends RadioButtonProps {\n label: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const RadioButtonWithLabel: React.FC<RadioButtonWithLabelProps> = ({\n label,\n inputRef,\n wrapperRef,\n textColor,\n screenReaderLabel,\n ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text\n color={textColor}\n aria-hidden={Boolean(screenReaderLabel)}\n userSelect={\"none\"}\n >\n {label}\n </Text>\n </Row>\n </label>\n </div>\n );\n};\n","import {\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type MoveDirection = \"right\" | \"left\" | \"down\" | \"up\";\nexport type TextInputElement = HTMLTextAreaElement | HTMLInputElement;\n\nexport const useKeyboardNavigation = <TElement extends TextInputElement>(\n ref: RefObject<TElement | null>,\n /**\n * User-provided onKeyDown. Internal handler should forward calls to this.\n * */\n onKeyDown: KeyboardEventHandler<TElement> | undefined,\n onEnter: (() => void) | undefined,\n onEsc: (() => void) | undefined,\n /**\n * onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab.\n * */\n onMove: ((direction: MoveDirection) => void) | undefined,\n onDone: ((value: string) => void) | undefined,\n onBlur: FocusEventHandler<TElement> | undefined,\n onFocus: FocusEventHandler<TElement> | undefined,\n) => {\n const wasHandled = useRef(false);\n\n const onBlurHandler: FocusEventHandler<TElement> = (ev) => {\n if (!wasHandled.current) {\n onDone?.(ev.target.value ?? \"\");\n }\n onBlur?.(ev);\n };\n\n const onFocusHandler: FocusEventHandler<TElement> = (ev) => {\n wasHandled.current = false;\n onFocus?.(ev);\n };\n\n const onKeyDownHandler: KeyboardEventHandler<TElement> = useCallback(\n (ev) => {\n const { key } = ev;\n if (key === \"Enter\") {\n wasHandled.current = true;\n onEnter?.();\n onDone?.(ev.currentTarget.value ?? \"\");\n } else if (key === \"Escape\") {\n wasHandled.current = true;\n onEsc?.();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onMove) {\n const blurMoveAndCancel = (\n direction: MoveDirection,\n e: KeyboardEvent<TElement>,\n ) => {\n wasHandled.current = true;\n ref.current!.blur();\n onMove(direction);\n e.preventDefault();\n e.stopPropagation();\n };\n\n if (ev.shiftKey && key === \"Tab\") {\n blurMoveAndCancel(\"left\", ev);\n } else if (key === \"Tab\") {\n blurMoveAndCancel(\"right\", ev);\n } else if (key === \"ArrowUp\") {\n blurMoveAndCancel(\"up\", ev);\n } else if (key === \"ArrowDown\") {\n blurMoveAndCancel(\"down\", ev);\n } else if (key === \"ArrowRight\") {\n if (ref.current!.value.length === ref.current!.selectionStart) {\n blurMoveAndCancel(\"right\", ev);\n }\n } else if (key === \"ArrowLeft\") {\n if (ref.current!.selectionStart === 0) {\n blurMoveAndCancel(\"left\", ev);\n }\n }\n }\n\n if (onKeyDown) {\n onKeyDown(ev);\n }\n },\n [onEsc, onMove, onKeyDown, ref, onEnter, onDone],\n );\n\n return {\n onKeyDownHandler,\n onBlurHandler,\n onFocusHandler,\n };\n};\n","import { RefObject, useEffect } from \"react\";\nimport { TextInputElement } from \"./UseKeyboardNavigation\";\n\nexport function elementHasSelectionRange(element: TextInputElement): boolean {\n if (element.tagName === \"TEXTAREA\") {\n return true;\n }\n\n if (\n element.tagName === \"INPUT\" &&\n (element.type === \"text\" ||\n element.type === \"search\" ||\n element.type === \"url\" ||\n element.type === \"tel\" ||\n element.type === \"password\")\n ) {\n return true;\n }\n\n return false;\n}\n\nexport const useSelectAllOnMount = (\n ref: RefObject<TextInputElement | null>,\n moveCursorToEnd: boolean,\n enabled: boolean,\n) => {\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n /*\n `selectionStart`, `selectionEnd` properties and `setSelectionRange` method apply only to inputs of types text, search, URL, tel and password.\n Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types.\n https://html.spec.whatwg.org/multipage/input.html#concept-input-apply\n */\n if (!elementHasSelectionRange(ref.current)) {\n return;\n }\n\n if (enabled) {\n ref.current.setSelectionRange(0, ref.current.value.length);\n } else if (moveCursorToEnd) {\n ref.current.setSelectionRange(\n ref.current.value.length,\n ref.current.value.length,\n );\n }\n }, [moveCursorToEnd, ref, enabled]);\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n} from \"react\";\nimport { TextInputVariant } from \"../components/ui/text-input/TextInput\";\nimport {\n MoveDirection,\n TextInputElement,\n useKeyboardNavigation,\n} from \"./UseKeyboardNavigation\";\nimport { useSelectAllOnMount } from \"./UseSelectAllOnMount\";\nimport { FullOnChangeProps } from \"../components/ui/types\";\n\ninterface UseTextInputOptions<TElement extends TextInputElement>\n extends FullOnChangeProps<string, ChangeEvent<TElement>> {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n onFocus?: FocusEventHandler<TElement>;\n onBlur?: FocusEventHandler<TElement>;\n onKeyDown?: KeyboardEventHandler<TElement>;\n}\n\ninterface UseTextInputHookResult<TElement extends TextInputElement> {\n autoFocus?: boolean;\n onChange: ChangeEventHandler<TElement>;\n onFocus: FocusEventHandler<TElement>;\n onBlur: FocusEventHandler<TElement>;\n onKeyDown: KeyboardEventHandler<TElement>;\n}\n\nexport const useTextInput = <TElement extends TextInputElement>(\n ref: RefObject<TElement | null>,\n {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n }: UseTextInputOptions<TElement>,\n): UseTextInputHookResult<TElement> => {\n useSelectAllOnMount(ref, !!moveCursorToEndOnMount, !!selectAllOnMount);\n\n const { onKeyDownHandler, onFocusHandler, onBlurHandler } =\n useKeyboardNavigation<TElement>(\n ref,\n onKeyDown,\n onEnter,\n onEsc,\n onMove,\n onDone,\n onBlur,\n onFocus,\n );\n\n const onChangeHandler = useCallback<ChangeEventHandler<TElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange],\n );\n\n return {\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n onFocus: onFocusHandler,\n onKeyDown: onKeyDownHandler,\n autoFocus: selectAllOnMount || autoFocus,\n };\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n button?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n button,\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n}) => {\n if (!content && !icon && !button) {\n return null;\n }\n\n if (button) {\n return (\n <>\n {spaceOnLeft ? <Space num={0.25} /> : null}\n {button}\n {spaceOnRight ? <Space num={0.25} /> : null}\n </>\n );\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {content || null}\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n} from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ChangeEvent, CSSProperties, useRef } from \"react\";\nimport { MoveDirection } from \"../../../hooks/UseKeyboardNavigation\";\nimport { useTextInput } from \"../../../hooks/UseTextInput\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./TextInput.module.css\";\nimport { TextInputIcon } from \"./TextInputIcon\";\n\nexport type TextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\"\n | \"onlyLeft\"\n | \"onlyRight\";\n\nexport type TextInputVariant =\n | \"standard\"\n | \"loading\"\n | \"warning\"\n | \"error\"\n | \"modified\"\n | \"success\";\n\ninterface ExtraContent {\n /** React node to put to the left. Left icon is ignored if this is set. */\n contentLeft?: React.ReactNode;\n /** React node to put to the right. Right icon is ignored if this is set. */\n contentRight?: React.ReactNode;\n /** TextInputButton to the left. Left icon and content is ignored if this is set. */\n buttonLeft?: React.ReactNode;\n /** React node to put to the right. Right icon and content is ignored if this is set. */\n buttonRight?: React.ReactNode;\n /** If true, there will be no padding between contentLeft/contentRight and the border. */\n disableContentPadding?: boolean;\n /** If true, there will be no padding between contentLeft and the border. */\n disableContentPaddingLeft?: boolean;\n /** If true, there will be no padding between contentRight and the border. */\n disableContentPaddingRight?: boolean;\n /** Icon on the left side. */\n iconLeft?: IconDefinition;\n /** Icon on the right side. */\n iconRight?: IconDefinition;\n}\n\nexport interface TextInputProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n InputProps,\n ExtraContent {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n borderRadiusVariant?: TextInputBorderVariant;\n alwaysShowPlaceholder?: boolean;\n}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n buttonLeft,\n buttonRight,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n moveCursorToEndOnMount,\n selectAllOnMount,\n autoFocus,\n onValueChange,\n wrapperClassName,\n wrapperStyle,\n onDone,\n onEnter,\n onEsc,\n onMove,\n onChange,\n onKeyDown,\n hideBorder,\n onFocus,\n onBlur,\n borderRadiusVariant = \"normalBorder\",\n width,\n alwaysShowPlaceholder,\n ...inputProps\n } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const refToUse = inputRef ?? localRef;\n const hookProps = useTextInput<HTMLInputElement>(refToUse, {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n });\n\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles[variant],\n styles[borderRadiusVariant],\n {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName,\n )}\n style={{ width, ...wrapperStyle }}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n button={buttonLeft}\n />\n <input\n className={cx(\n styles.input,\n {\n [styles.alwaysShowPlaceholder]: alwaysShowPlaceholder,\n },\n className,\n )}\n type={\"text\"}\n disabled={disabled}\n ref={refToUse}\n autoFocus={autoFocus}\n {...inputProps}\n {...hookProps}\n />\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n button={buttonRight}\n />\n </div>\n );\n};\n","import { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const onStepValueChange = ({\n onValueChange,\n value,\n numSteps,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n value: string | undefined;\n numSteps: number;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (!value) {\n onValueChange(String(limitWithinRange(numSteps, min, max)));\n } else {\n const parsedValue = parseFloatElseUndefined(value);\n const newValue = (parsedValue || 0) + numSteps;\n onValueChange(String(limitWithinRange(newValue, min, max)));\n }\n }\n};\n\nexport const onTextValueChange = ({\n onValueChange,\n newValue,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n newValue: string;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (newValue === \"\") {\n onValueChange(\"\");\n } else {\n const parsedValue = parseFloatElseUndefined(newValue);\n const value = parsedValue || 0;\n onValueChange(String(limitWithinRange(value, min, max)));\n }\n }\n};\n\nconst limitWithinRange = (\n value: number,\n min?: number,\n max?: number,\n): number => {\n let v = value;\n if (min != null) {\n v = Math.max(min, v);\n }\n if (max != null) {\n v = Math.min(max, v);\n }\n return v;\n};\n","import { Omit, Space } from \"@stenajs-webui/core\";\nimport { UpDownButtons } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport styles from \"./NumericTextInput.module.css\";\nimport cx from \"classnames\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericTextInputProps\n extends Omit<\n TextInputProps,\n | \"onChange\" // Omit onChange, since up down buttons don't generate HTMLInput event.\n | \"selectAllOnMount\" // Not supported by browser when input type='number'\n | \"moveCursorToEndOnMount\" // Not supported by browser when input type='number'\n > {\n max?: number;\n min?: number;\n step?: number;\n hideButtons?: boolean;\n}\n\n/**\n * @deprecated Please use NumericStepper instead.\n * This is used internally, and should not be used by apps.\n */\nexport const NumericTextInput: React.FC<NumericTextInputProps> = ({\n value,\n onValueChange,\n max,\n min,\n step = 1,\n contentRight,\n disabled,\n className,\n hideButtons,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange],\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange],\n );\n\n const contentRightToUse = hideButtons ? (\n contentRight\n ) : (\n <>\n {contentRight && (\n <>\n {contentRight}\n <Space />\n </>\n )}\n <UpDownButtons\n onClickUp={disabled ? undefined : () => onClick(step)}\n onClickDown={disabled ? undefined : () => onClick(-step)}\n iconColor={\"var(--swui-textinput-text-color)\"}\n disabled={disabled}\n />\n </>\n );\n\n return (\n <TextInput\n contentRight={contentRightToUse}\n value={value}\n onValueChange={onChange}\n disableContentPaddingRight={!hideButtons}\n type={\"number\"}\n min={min}\n max={max}\n step={step}\n className={cx(styles.numericTextInputInput, className)}\n disabled={disabled}\n {...restProps}\n />\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport { ValueAndOnValueChangeProps } from \"../../types\";\nimport { NumericTextInputProps } from \"../NumericTextInput\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport type NumericInputValueProps = ValueAndOnValueChangeProps<\n number | undefined\n>;\n\nexport const useNumericInputValue = (\n value: number | undefined,\n onValueChange?: (value: number | undefined) => void,\n): Partial<NumericTextInputProps> => {\n const onValueChangeString = useCallback(\n (newValue: string) => {\n if (onValueChange) {\n if (!newValue) {\n onValueChange(undefined);\n } else {\n const n = parseFloatElseUndefined(newValue);\n if (n !== undefined) {\n onValueChange(n);\n }\n }\n }\n },\n [onValueChange],\n );\n\n const valueString = useMemo(() => {\n if (value === undefined) {\n return \"\";\n }\n return String(value);\n }, [value]);\n\n return {\n onValueChange: onValueChangeString,\n value: valueString,\n };\n};\n","import { isNil } from \"lodash-es\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const isMinReached = (\n value: string | undefined,\n min: number | undefined,\n) => {\n if (!isNil(value)) {\n const numericValue = parseFloatElseUndefined(value);\n return !isNil(numericValue) && !isNil(min) && numericValue <= min;\n } else {\n return false;\n }\n};\n\nexport const isMaxReached = (\n value: string | undefined,\n max: number | undefined,\n) => {\n if (!isNil(value)) {\n const numericValue = parseFloatElseUndefined(value);\n return !isNil(numericValue) && !isNil(max) && numericValue >= max;\n } else {\n return false;\n }\n};\n","import { Omit, Row, Space } from \"@stenajs-webui/core\";\nimport { FlatButton, stenaPlus, stenaMinus } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport {\n NumericTextInput,\n NumericTextInputProps,\n} from \"../numeric-text-input/NumericTextInput\";\nimport { useCallback } from \"react\";\nimport { isMaxReached, isMinReached } from \"../../../utils/NumberComparator\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericStepperProps\n extends Omit<NumericTextInputProps, \"hideButtons\"> {}\n\nexport const NumericStepper: React.FC<NumericStepperProps> = ({\n disabled,\n onValueChange,\n value,\n max,\n min,\n step = 1,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange],\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange],\n );\n\n return (\n <Row role={\"group\"}>\n <FlatButton\n leftIcon={stenaMinus}\n aria-label={\"Decrease\"}\n disabled={disabled || isMinReached(value, min)}\n onClick={() => onClick(-step)}\n />\n <Space />\n <NumericTextInput\n hideButtons\n onValueChange={onChange}\n value={value}\n max={max}\n min={min}\n step={step}\n disabled={disabled}\n {...restProps}\n />\n <Space />\n <FlatButton\n leftIcon={stenaPlus}\n aria-label={\"Increase\"}\n disabled={disabled || isMaxReached(value, max)}\n onClick={() => onClick(step)}\n />\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport {\n stenaEyeHide,\n stenaEyeShow,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = stenaEyeShow,\n visibleIcon = stenaEyeHide,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n buttonRight={\n <TextInputButton\n icon={isPassword ? hiddenIcon : visibleIcon}\n onClick={() => setIsPassword((x) => !x)}\n />\n }\n type={isPassword ? \"password\" : \"text\"}\n {...props}\n />\n );\n};\n","import { getDataProps, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface InputLabelTextProps {\n disabled?: boolean;\n text?: string;\n}\n\nexport const InputLabelText: React.FC<InputLabelTextProps> = ({\n disabled,\n text,\n ...props\n}) => {\n return (\n <Text\n variant={\"bold\"}\n color={cssColor(disabled ? \"--silver\" : \"--tjara\")}\n size={\"small\"}\n {...getDataProps(props)}\n >\n {text}\n </Text>\n );\n};\n","import * as React from \"react\";\nimport { InputLabelText } from \"./InputLabelText\";\nimport { ScreenReaderOnlyText } from \"@stenajs-webui/core\";\n\nexport interface InputLabelProps {\n htmlFor?: string;\n label?: string;\n screenReaderLabel?: string;\n className?: string;\n disabled?: boolean;\n}\n\nexport const InputLabel: React.FC<InputLabelProps> = ({\n htmlFor,\n screenReaderLabel,\n label,\n disabled,\n className,\n}) => {\n return (\n <label htmlFor={htmlFor} className={className}>\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <InputLabelText\n aria-hidden={Boolean(screenReaderLabel)}\n text={label}\n disabled={disabled}\n />\n </label>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEvent, PropsWithChildren, useCallback, useId } from \"react\";\nimport { Icon, stenaAngleDown } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledSelect.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport { SelectElementProps } from \"@stenajs-webui/core\";\n\nexport type SelectBorderVariant =\n | \"normalBorder\"\n | \"onlyTopBorder\"\n | \"onlyBottomBorder\";\n\nexport interface LabelledSelectProps\n extends ValueAndOnValueChangeProps<string>,\n PropsWithChildren,\n Omit<SelectElementProps, \"value\" | \"size\"> {\n id?: string;\n name: string;\n label?: string;\n screenReaderLabel?: string;\n borderVariant?: SelectBorderVariant;\n variant?: LabelledSelectVariant;\n size?: LabelledSelectSize;\n}\n\nexport type LabelledSelectVariant = \"normal\" | \"error\";\nexport type LabelledSelectSize = \"medium\" | \"large\";\n\nexport const LabelledSelect: React.FC<LabelledSelectProps> = ({\n onChange,\n onValueChange,\n id,\n label,\n screenReaderLabel,\n borderVariant = \"normalBorder\",\n variant = \"normal\",\n size = \"medium\",\n children,\n ...inputProps\n}) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange],\n );\n\n return (\n <div\n className={cx(\n styles.labelledSelect,\n styles[variant],\n styles[size],\n styles[borderVariant],\n )}\n >\n <InputLabel\n htmlFor={activeId}\n className={styles.label}\n label={label}\n screenReaderLabel={screenReaderLabel}\n />\n <select\n id={activeId}\n onChange={onChangeHandler}\n className={cx(styles.select, styles[variant], styles[size])}\n {...inputProps}\n >\n {children}\n </select>\n\n <div className={cx(styles.iconWrapper)}>\n <Icon\n icon={stenaAngleDown}\n size={24}\n color={cssColor(\"--modern-blue\")}\n />\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEventHandler, useCallback, useId } from \"react\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledTextInput.module.css\";\nimport { InputElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\n\nexport type LabelledTextInputVariant = \"normal\" | \"error\";\nexport type LabelledTextInputSize = \"medium\" | \"large\";\n\nexport type LabelledTextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\"\n | \"onlyLeft\"\n | \"onlyRight\";\n\nexport interface LabelledTextInputProps\n extends Omit<InputElementProps, \"value\" | \"size\">,\n ValueAndOnValueChangeProps<string> {\n id?: string;\n label?: string;\n size?: LabelledTextInputSize;\n screenReaderLabel?: string;\n pattern?: string;\n borderRadiusVariant?: LabelledTextInputBorderVariant;\n variant?: LabelledTextInputVariant;\n}\n\nexport const LabelledTextInput = React.forwardRef<\n HTMLInputElement,\n LabelledTextInputProps\n>(\n (\n {\n autoComplete = \"off\",\n label,\n id,\n screenReaderLabel,\n size = \"medium\",\n value,\n onChange,\n disabled,\n onValueChange,\n borderRadiusVariant = \"normalBorder\",\n variant = \"normal\",\n width,\n ...inputProps\n },\n ref,\n ) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange],\n );\n\n return (\n <div\n className={cx(\n styles.labelledTextInput,\n styles[variant],\n styles[borderRadiusVariant],\n styles[size],\n disabled && styles.disabled,\n )}\n style={width ? { width } : undefined}\n >\n <InputLabel\n htmlFor={activeId}\n screenReaderLabel={screenReaderLabel}\n label={label}\n />\n <input\n ref={ref}\n id={activeId}\n autoComplete={autoComplete}\n type={\"text\"}\n value={value}\n onChange={onChangeHandler}\n disabled={disabled}\n {...inputProps}\n />\n </div>\n );\n },\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport cx from \"classnames\";\nimport { TextInputProps } from \"./TextInput\";\nimport { TextInputIcon } from \"./TextInputIcon\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\nimport { ButtonElementProps, Row } from \"@stenajs-webui/core\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface TextInputBoxProps\n extends Pick<\n TextInputProps,\n | \"variant\"\n | \"wrapperClassName\"\n | \"disabled\"\n | \"wrapperStyle\"\n | \"contentLeft\"\n | \"contentRight\"\n | \"disableContentPadding\"\n | \"disableContentPaddingLeft\"\n | \"disableContentPaddingRight\"\n > {\n children?: ReactNode;\n iconRight?: IconDefinition;\n iconLeft?: IconDefinition;\n onClickLeft?: ButtonElementProps[\"onClick\"];\n onClickRight?: ButtonElementProps[\"onClick\"];\n}\n\nexport const TextInputBox: React.FC<TextInputBoxProps> = ({\n variant = \"standard\",\n disabled,\n wrapperClassName,\n wrapperStyle,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconRight,\n iconLeft,\n onClickLeft,\n onClickRight,\n children,\n}) => {\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles.inputContainer,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n wrapperClassName,\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnLeft\n button={\n iconLeft ? (\n <TextInputButton onClick={onClickLeft} icon={iconLeft} />\n ) : undefined\n }\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnRight\n button={\n currentIconRight ? (\n <TextInputButton onClick={onClickRight} icon={currentIconRight} />\n ) : undefined\n }\n />\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./TextArea.module.css\";\nimport { FullOnChangeProps } from \"../types\";\n\ntype Resize =\n | \"none\"\n | \"both\"\n | \"horizontal\"\n | \"vertical\"\n | \"inherit\"\n | \"initial\"\n | \"revert\"\n | \"unset\";\n\nexport interface TextAreaProps\n extends Omit<ComponentPropsWithoutRef<\"textarea\">, \"value\">,\n FullOnChangeProps<string, ChangeEvent<HTMLTextAreaElement>> {\n resize?: Resize;\n readOnly?: boolean;\n rows?: number;\n disabled?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n value,\n onValueChange,\n onChange,\n resize = \"none\",\n readOnly = false,\n rows,\n disabled,\n ...textAreaProps\n },\n ref,\n ) => {\n const onChangeHandler: ChangeEventHandler<HTMLTextAreaElement> =\n useCallback(\n (ev) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange],\n );\n\n return (\n <textarea\n disabled={disabled}\n rows={rows}\n readOnly={readOnly}\n className={cx(styles.textArea, className)}\n style={{ resize }}\n onChange={onChangeHandler}\n value={value}\n ref={ref}\n {...textAreaProps}\n />\n );\n },\n);\n"],"names":["styleChecked","styles","Switch","value","disabled","onValueChange","className","wrapperRef","restProps","jsx","jsxs","SwitchWithLabel","label","textColor","screenReaderLabel","switchProps","Box","Space","ScreenReaderOnlyText","Text","Checkbox","forwardRef","indeterminate","onChange","size","inputProps","ref","localRef","useRef","setRef","element","handleInputChange","useCallback","ev","useEffect","cx","CheckboxWithLabel","children","inputRef","checkboxProps","Row","RadioButton","name","RadioButtonBox","variant","icon","contentRight","style","radioButtonClassName","radioButtonProps","cssColor","Icon","RadioButtonWithLabel","useKeyboardNavigation","onKeyDown","onEnter","onEsc","onMove","onDone","onBlur","onFocus","wasHandled","onBlurHandler","onFocusHandler","key","blurMoveAndCancel","direction","e","elementHasSelectionRange","useSelectAllOnMount","moveCursorToEnd","enabled","useTextInput","selectAllOnMount","moveCursorToEndOnMount","autoFocus","onKeyDownHandler","onChangeHandler","TextInputIcon","button","iconClassName","content","spaceOnLeft","spaceOnRight","disableContentPadding","disableContentPaddingLeft","disableContentPaddingRight","Fragment","FontAwesomeIcon","TextInput","props","buttonLeft","buttonRight","contentLeft","iconLeft","iconRight","wrapperClassName","wrapperStyle","hideBorder","borderRadiusVariant","width","alwaysShowPlaceholder","refToUse","hookProps","currentIconRight","stenaCheck","stenaExclamationTriangle","currentContentRight","InputSpinner","onStepValueChange","numSteps","min","max","limitWithinRange","newValue","parseFloatElseUndefined","onTextValueChange","v","NumericTextInput","step","hideButtons","onClick","UpDownButtons","useNumericInputValue","onValueChangeString","n","valueString","useMemo","isMinReached","isNil","numericValue","isMaxReached","NumericStepper","FlatButton","stenaMinus","stenaPlus","PasswordInput","hiddenIcon","stenaEyeShow","visibleIcon","stenaEyeHide","isPassword","setIsPassword","useState","TextInputButton","x","InputLabelText","text","getDataProps","InputLabel","htmlFor","LabelledSelect","id","borderVariant","hookId","useId","activeId","stenaAngleDown","LabelledTextInput","React","autoComplete","TextInputBox","onClickLeft","onClickRight","TextArea","resize","readOnly","rows","textAreaProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/components/ui/read-only-numeric-input/ReadOnlyNumericInput.tsx","../src/components/ui/amount-stepper-buttons/AmountStepperButtons.tsx","../src/components/ui/switch/Switch.tsx","../src/components/ui/switch/SwitchWithLabel.tsx","../src/components/ui/checkbox/Checkbox.tsx","../src/components/ui/checkbox/CheckboxWithLabel.tsx","../src/components/ui/radio/RadioButton.tsx","../src/components/ui/radio/RadioButtonBox.tsx","../src/components/ui/radio/RadioButtonWithLabel.tsx","../src/hooks/UseKeyboardNavigation.ts","../src/hooks/UseSelectAllOnMount.ts","../src/hooks/UseTextInput.ts","../src/components/ui/text-input/TextInputIcon.tsx","../src/components/ui/text-input/TextInput.tsx","../src/utils/NumericHelpers.ts","../src/components/ui/numeric-text-input/NumericTextInput.tsx","../src/components/ui/numeric-text-input/hooks/UseNumericInputValue.ts","../src/utils/NumberComparator.ts","../src/components/ui/numeric-stepper/NumericStepper.tsx","../src/components/ui/password-input/PasswordInput.tsx","../src/components/ui/input-label/InputLabelText.tsx","../src/components/ui/input-label/InputLabel.tsx","../src/components/ui/labelled-select/LabelledSelect.tsx","../src/components/ui/labelled-text-input/LabelledTextInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["import * as React from \"react\";\nimport styles from \"./ReadOnlyNumericInput.module.css\";\nimport { NumericTextInputProps } from \"../numeric-text-input/NumericTextInput\";\n\ninterface ReadInputProps\n extends Omit<NumericTextInputProps, \"readOnly\" | \"hideBorder\" | \"style\"> {}\n\nexport const ReadOnlyNumericInput: React.FC<ReadInputProps> = ({\n value,\n id,\n ...props\n}) => {\n return (\n <input\n {...props}\n type=\"number\"\n id={id}\n value={value}\n readOnly\n className={styles.readOnlyInput}\n />\n );\n};\n","import { Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport {\n ButtonSize,\n PrimaryButton,\n stenaMinus,\n stenaPlus,\n} from \"@stenajs-webui/elements\";\nimport { ReadOnlyNumericInput } from \"../read-only-numeric-input/ReadOnlyNumericInput\";\n\nexport interface AmountStepperButtonsProps {\n value: number;\n inputId: string;\n size?: ButtonSize;\n ariaLabelIncrease: string;\n ariaLabelDecrease: string;\n onValueChange?: (value: number) => void;\n decreaseDisabled?: boolean;\n increaseDisabled?: boolean;\n textValueAriaLabel?: string;\n increaseTestId?: string;\n decreaseTestId?: string;\n onDecrease?: () => void;\n onIncrease?: () => void;\n}\n\nexport const AmountStepperButtons: React.FC<AmountStepperButtonsProps> = ({\n value,\n onValueChange,\n decreaseDisabled,\n increaseDisabled,\n inputId,\n ariaLabelDecrease,\n ariaLabelIncrease,\n textValueAriaLabel,\n increaseTestId,\n decreaseTestId,\n onIncrease,\n onDecrease,\n size,\n}) => {\n const onClickPlus = useCallback(() => {\n onIncrease?.();\n onValueChange?.(value + 1);\n }, [onIncrease, onValueChange, value]);\n\n const onClickMinus = useCallback(() => {\n onDecrease?.();\n onValueChange?.(value - 1);\n }, [onDecrease, onValueChange, value]);\n\n return (\n <Row alignItems={\"center\"}>\n <PrimaryButton\n size={size}\n aria-label={ariaLabelDecrease}\n leftIcon={stenaMinus}\n data-testid={decreaseTestId ?? \"decrease\"}\n disabled={decreaseDisabled}\n onClick={onClickMinus}\n />\n <ReadOnlyNumericInput\n id={inputId}\n data-testid=\"amountStepperValue\"\n value={value.toString()}\n aria-label={textValueAriaLabel}\n />\n <PrimaryButton\n size={size}\n leftIcon={stenaPlus}\n aria-label={ariaLabelIncrease}\n data-testid={increaseTestId ?? \"increase\"}\n disabled={increaseDisabled}\n onClick={onClickPlus}\n />\n </Row>\n );\n};\n","import { Ref } from \"react\";\nimport * as React from \"react\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport styles from \"./Switch.module.css\";\n\nexport interface SwitchProps\n extends Omit<ButtonElementProps, \"value\">,\n ValueAndOnValueChangeProps<boolean> {\n wrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst styleChecked = `${styles.switch} ${styles.checked}`;\n\nexport const Switch: React.FC<SwitchProps> = ({\n value,\n disabled,\n onValueChange,\n className,\n wrapperRef,\n ...restProps\n}) => {\n return (\n <div className={className} ref={wrapperRef}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n className={value ? styleChecked : styles.switch}\n disabled={disabled}\n onClick={() => onValueChange && onValueChange(!value)}\n {...restProps}\n >\n <div className={styles.filler} />\n <div className={styles.knob} />\n </button>\n </div>\n );\n};\n","import { Box, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Switch, SwitchProps } from \"./Switch\";\n\nexport interface SwitchWithLabelProps extends SwitchProps {\n label: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n screenReaderLabel,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text\n color={textColor}\n aria-hidden={Boolean(screenReaderLabel)}\n userSelect={\"none\"}\n >\n {label}\n </Text>\n </Box>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport cx from \"classnames\";\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxSize = \"standard\" | \"small\";\n\nexport interface CheckboxProps\n extends FullOnChangeProps<boolean, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n indeterminate?: boolean;\n size?: CheckboxSize;\n disabled?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n indeterminate = false,\n onChange,\n onValueChange,\n value = false,\n size = \"standard\",\n className,\n ...inputProps\n },\n ref,\n ) => {\n const localRef = useRef<HTMLInputElement>(null);\n\n const setRef = (element: HTMLInputElement) => {\n localRef.current = element;\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n ref.current = element;\n }\n }\n };\n\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.checked);\n }\n },\n [onChange, onValueChange],\n );\n\n useEffect(() => {\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate, localRef]);\n\n return (\n <input\n type={\"checkbox\"}\n className={cx(styles.checkbox, styles[size], className)}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n },\n);\n","import { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { Checkbox, CheckboxProps } from \"./Checkbox\";\n\nexport interface CheckboxWithLabelProps extends CheckboxProps {\n label: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const CheckboxWithLabel: React.FC<CheckboxWithLabelProps> = ({\n children,\n label,\n inputRef,\n wrapperRef,\n textColor,\n screenReaderLabel,\n ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text\n color={textColor}\n aria-hidden={Boolean(screenReaderLabel)}\n userSelect={\"none\"}\n >\n {label}\n </Text>\n {children}\n </Row>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./RadioButton.module.css\";\nimport cx from \"classnames\";\n\nexport type RadioButtonSize = \"standard\" | \"small\";\n\nexport interface RadioButtonProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n size?: RadioButtonSize;\n}\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(\n (\n {\n onChange,\n onValueChange,\n size = \"standard\",\n name,\n className,\n ...inputProps\n },\n ref,\n ) => {\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange],\n );\n\n return (\n <input\n type={\"radio\"}\n name={name}\n className={cx(styles.radiobutton, styles[size], className)}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n },\n);\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./RadioButtonBox.module.css\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport type RadioButtonBoxVariant = \"normal\" | \"danger\";\nexport type RadioButtonBoxSizeVariant = \"medium\" | \"large\";\n\nexport type RadioButtonBoxProps =\n | RadioButtonBoxNoRightProps\n | RadioButtonBoxIconProps\n | RadioButtonBoxContentRightProps;\n\nexport interface RadioButtonBoxCommonProps\n extends Omit<RadioButtonProps, \"size\"> {\n label?: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n variant?: RadioButtonBoxVariant;\n size?: RadioButtonBoxSizeVariant;\n radioButtonClassName?: string;\n}\n\nexport interface RadioButtonBoxNoRightProps extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxIconProps extends RadioButtonBoxCommonProps {\n icon?: IconDefinition;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxContentRightProps\n extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: ReactNode;\n}\n\nexport const RadioButtonBox: React.FC<RadioButtonBoxProps> = ({\n label,\n screenReaderLabel,\n variant = \"normal\",\n size = \"medium\",\n className,\n icon,\n contentRight,\n style,\n disabled,\n radioButtonClassName,\n ...radioButtonProps\n}) => {\n const textColor = disabled\n ? cssColor(\"--swui-text-disabled-color\")\n : undefined;\n\n return (\n <label\n className={cx(\n styles.radioButtonBox,\n styles[variant],\n styles[size],\n className,\n )}\n style={style}\n >\n <Row justifyContent={\"space-between\"} flexGrow={1}>\n <Row alignItems={\"center\"}>\n <RadioButton\n {...radioButtonProps}\n disabled={disabled}\n className={radioButtonClassName}\n />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text color={textColor} aria-hidden={Boolean(screenReaderLabel)}>\n {label}\n </Text>\n </Row>\n <Row\n alignItems={\"center\"}\n width={icon ? \"48px\" : undefined}\n justifyContent={\"center\"}\n >\n {icon && <Icon icon={icon} size={24} color={textColor} />}\n {!icon && contentRight}\n </Row>\n </Row>\n </label>\n );\n};\n","import { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport interface RadioButtonWithLabelProps extends RadioButtonProps {\n label: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const RadioButtonWithLabel: React.FC<RadioButtonWithLabelProps> = ({\n label,\n inputRef,\n wrapperRef,\n textColor,\n screenReaderLabel,\n ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text\n color={textColor}\n aria-hidden={Boolean(screenReaderLabel)}\n userSelect={\"none\"}\n >\n {label}\n </Text>\n </Row>\n </label>\n </div>\n );\n};\n","import {\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type MoveDirection = \"right\" | \"left\" | \"down\" | \"up\";\nexport type TextInputElement = HTMLTextAreaElement | HTMLInputElement;\n\nexport const useKeyboardNavigation = <TElement extends TextInputElement>(\n ref: RefObject<TElement | null>,\n /**\n * User-provided onKeyDown. Internal handler should forward calls to this.\n * */\n onKeyDown: KeyboardEventHandler<TElement> | undefined,\n onEnter: (() => void) | undefined,\n onEsc: (() => void) | undefined,\n /**\n * onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab.\n * */\n onMove: ((direction: MoveDirection) => void) | undefined,\n onDone: ((value: string) => void) | undefined,\n onBlur: FocusEventHandler<TElement> | undefined,\n onFocus: FocusEventHandler<TElement> | undefined,\n) => {\n const wasHandled = useRef(false);\n\n const onBlurHandler: FocusEventHandler<TElement> = (ev) => {\n if (!wasHandled.current) {\n onDone?.(ev.target.value ?? \"\");\n }\n onBlur?.(ev);\n };\n\n const onFocusHandler: FocusEventHandler<TElement> = (ev) => {\n wasHandled.current = false;\n onFocus?.(ev);\n };\n\n const onKeyDownHandler: KeyboardEventHandler<TElement> = useCallback(\n (ev) => {\n const { key } = ev;\n if (key === \"Enter\") {\n wasHandled.current = true;\n onEnter?.();\n onDone?.(ev.currentTarget.value ?? \"\");\n } else if (key === \"Escape\") {\n wasHandled.current = true;\n onEsc?.();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onMove) {\n const blurMoveAndCancel = (\n direction: MoveDirection,\n e: KeyboardEvent<TElement>,\n ) => {\n wasHandled.current = true;\n ref.current!.blur();\n onMove(direction);\n e.preventDefault();\n e.stopPropagation();\n };\n\n if (ev.shiftKey && key === \"Tab\") {\n blurMoveAndCancel(\"left\", ev);\n } else if (key === \"Tab\") {\n blurMoveAndCancel(\"right\", ev);\n } else if (key === \"ArrowUp\") {\n blurMoveAndCancel(\"up\", ev);\n } else if (key === \"ArrowDown\") {\n blurMoveAndCancel(\"down\", ev);\n } else if (key === \"ArrowRight\") {\n if (ref.current!.value.length === ref.current!.selectionStart) {\n blurMoveAndCancel(\"right\", ev);\n }\n } else if (key === \"ArrowLeft\") {\n if (ref.current!.selectionStart === 0) {\n blurMoveAndCancel(\"left\", ev);\n }\n }\n }\n\n if (onKeyDown) {\n onKeyDown(ev);\n }\n },\n [onEsc, onMove, onKeyDown, ref, onEnter, onDone],\n );\n\n return {\n onKeyDownHandler,\n onBlurHandler,\n onFocusHandler,\n };\n};\n","import { RefObject, useEffect } from \"react\";\nimport { TextInputElement } from \"./UseKeyboardNavigation\";\n\nexport function elementHasSelectionRange(element: TextInputElement): boolean {\n if (element.tagName === \"TEXTAREA\") {\n return true;\n }\n\n if (\n element.tagName === \"INPUT\" &&\n (element.type === \"text\" ||\n element.type === \"search\" ||\n element.type === \"url\" ||\n element.type === \"tel\" ||\n element.type === \"password\")\n ) {\n return true;\n }\n\n return false;\n}\n\nexport const useSelectAllOnMount = (\n ref: RefObject<TextInputElement | null>,\n moveCursorToEnd: boolean,\n enabled: boolean,\n) => {\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n /*\n `selectionStart`, `selectionEnd` properties and `setSelectionRange` method apply only to inputs of types text, search, URL, tel and password.\n Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types.\n https://html.spec.whatwg.org/multipage/input.html#concept-input-apply\n */\n if (!elementHasSelectionRange(ref.current)) {\n return;\n }\n\n if (enabled) {\n ref.current.setSelectionRange(0, ref.current.value.length);\n } else if (moveCursorToEnd) {\n ref.current.setSelectionRange(\n ref.current.value.length,\n ref.current.value.length,\n );\n }\n }, [moveCursorToEnd, ref, enabled]);\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n} from \"react\";\nimport { TextInputVariant } from \"../components/ui/text-input/TextInput\";\nimport {\n MoveDirection,\n TextInputElement,\n useKeyboardNavigation,\n} from \"./UseKeyboardNavigation\";\nimport { useSelectAllOnMount } from \"./UseSelectAllOnMount\";\nimport { FullOnChangeProps } from \"../components/ui/types\";\n\ninterface UseTextInputOptions<TElement extends TextInputElement>\n extends FullOnChangeProps<string, ChangeEvent<TElement>> {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n onFocus?: FocusEventHandler<TElement>;\n onBlur?: FocusEventHandler<TElement>;\n onKeyDown?: KeyboardEventHandler<TElement>;\n}\n\ninterface UseTextInputHookResult<TElement extends TextInputElement> {\n autoFocus?: boolean;\n onChange: ChangeEventHandler<TElement>;\n onFocus: FocusEventHandler<TElement>;\n onBlur: FocusEventHandler<TElement>;\n onKeyDown: KeyboardEventHandler<TElement>;\n}\n\nexport const useTextInput = <TElement extends TextInputElement>(\n ref: RefObject<TElement | null>,\n {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n }: UseTextInputOptions<TElement>,\n): UseTextInputHookResult<TElement> => {\n useSelectAllOnMount(ref, !!moveCursorToEndOnMount, !!selectAllOnMount);\n\n const { onKeyDownHandler, onFocusHandler, onBlurHandler } =\n useKeyboardNavigation<TElement>(\n ref,\n onKeyDown,\n onEnter,\n onEsc,\n onMove,\n onDone,\n onBlur,\n onFocus,\n );\n\n const onChangeHandler = useCallback<ChangeEventHandler<TElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange],\n );\n\n return {\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n onFocus: onFocusHandler,\n onKeyDown: onKeyDownHandler,\n autoFocus: selectAllOnMount || autoFocus,\n };\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n button?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n button,\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n}) => {\n if (!content && !icon && !button) {\n return null;\n }\n\n if (button) {\n return (\n <>\n {spaceOnLeft ? <Space num={0.25} /> : null}\n {button}\n {spaceOnRight ? <Space num={0.25} /> : null}\n </>\n );\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {content || null}\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n} from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ChangeEvent, CSSProperties, useRef } from \"react\";\nimport { MoveDirection } from \"../../../hooks/UseKeyboardNavigation\";\nimport { useTextInput } from \"../../../hooks/UseTextInput\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./TextInput.module.css\";\nimport { TextInputIcon } from \"./TextInputIcon\";\n\nexport type TextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\"\n | \"onlyLeft\"\n | \"onlyRight\";\n\nexport type TextInputVariant =\n | \"standard\"\n | \"loading\"\n | \"warning\"\n | \"error\"\n | \"modified\"\n | \"success\";\n\ninterface ExtraContent {\n /** React node to put to the left. Left icon is ignored if this is set. */\n contentLeft?: React.ReactNode;\n /** React node to put to the right. Right icon is ignored if this is set. */\n contentRight?: React.ReactNode;\n /** TextInputButton to the left. Left icon and content is ignored if this is set. */\n buttonLeft?: React.ReactNode;\n /** React node to put to the right. Right icon and content is ignored if this is set. */\n buttonRight?: React.ReactNode;\n /** If true, there will be no padding between contentLeft/contentRight and the border. */\n disableContentPadding?: boolean;\n /** If true, there will be no padding between contentLeft and the border. */\n disableContentPaddingLeft?: boolean;\n /** If true, there will be no padding between contentRight and the border. */\n disableContentPaddingRight?: boolean;\n /** Icon on the left side. */\n iconLeft?: IconDefinition;\n /** Icon on the right side. */\n iconRight?: IconDefinition;\n}\n\nexport interface TextInputProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n InputProps,\n ExtraContent {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n borderRadiusVariant?: TextInputBorderVariant;\n alwaysShowPlaceholder?: boolean;\n}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n buttonLeft,\n buttonRight,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n moveCursorToEndOnMount,\n selectAllOnMount,\n autoFocus,\n onValueChange,\n wrapperClassName,\n wrapperStyle,\n onDone,\n onEnter,\n onEsc,\n onMove,\n onChange,\n onKeyDown,\n hideBorder,\n onFocus,\n onBlur,\n borderRadiusVariant = \"normalBorder\",\n width,\n alwaysShowPlaceholder,\n ...inputProps\n } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const refToUse = inputRef ?? localRef;\n const hookProps = useTextInput<HTMLInputElement>(refToUse, {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n });\n\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles[variant],\n styles[borderRadiusVariant],\n {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName,\n )}\n style={{ width, ...wrapperStyle }}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n button={buttonLeft}\n />\n <input\n className={cx(\n styles.input,\n {\n [styles.alwaysShowPlaceholder]: alwaysShowPlaceholder,\n },\n className,\n )}\n type={\"text\"}\n disabled={disabled}\n ref={refToUse}\n autoFocus={autoFocus}\n {...inputProps}\n {...hookProps}\n />\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n button={buttonRight}\n />\n </div>\n );\n};\n","import { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const onStepValueChange = ({\n onValueChange,\n value,\n numSteps,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n value: string | undefined;\n numSteps: number;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (!value) {\n onValueChange(String(limitWithinRange(numSteps, min, max)));\n } else {\n const parsedValue = parseFloatElseUndefined(value);\n const newValue = (parsedValue || 0) + numSteps;\n onValueChange(String(limitWithinRange(newValue, min, max)));\n }\n }\n};\n\nexport const onTextValueChange = ({\n onValueChange,\n newValue,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n newValue: string;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (newValue === \"\") {\n onValueChange(\"\");\n } else {\n const parsedValue = parseFloatElseUndefined(newValue);\n const value = parsedValue || 0;\n onValueChange(String(limitWithinRange(value, min, max)));\n }\n }\n};\n\nconst limitWithinRange = (\n value: number,\n min?: number,\n max?: number,\n): number => {\n let v = value;\n if (min != null) {\n v = Math.max(min, v);\n }\n if (max != null) {\n v = Math.min(max, v);\n }\n return v;\n};\n","import { Omit, Space } from \"@stenajs-webui/core\";\nimport { UpDownButtons } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport styles from \"./NumericTextInput.module.css\";\nimport cx from \"classnames\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericTextInputProps\n extends Omit<\n TextInputProps,\n | \"onChange\" // Omit onChange, since up down buttons don't generate HTMLInput event.\n | \"selectAllOnMount\" // Not supported by browser when input type='number'\n | \"moveCursorToEndOnMount\" // Not supported by browser when input type='number'\n > {\n max?: number;\n min?: number;\n step?: number;\n hideButtons?: boolean;\n}\n\n/**\n * @deprecated Please use NumericStepper instead.\n * This is used internally, and should not be used by apps.\n */\nexport const NumericTextInput: React.FC<NumericTextInputProps> = ({\n value,\n onValueChange,\n max,\n min,\n step = 1,\n contentRight,\n disabled,\n className,\n hideButtons,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange],\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange],\n );\n\n const contentRightToUse = hideButtons ? (\n contentRight\n ) : (\n <>\n {contentRight && (\n <>\n {contentRight}\n <Space />\n </>\n )}\n <UpDownButtons\n onClickUp={disabled ? undefined : () => onClick(step)}\n onClickDown={disabled ? undefined : () => onClick(-step)}\n iconColor={\"var(--swui-textinput-text-color)\"}\n disabled={disabled}\n />\n </>\n );\n\n return (\n <TextInput\n contentRight={contentRightToUse}\n value={value}\n onValueChange={onChange}\n disableContentPaddingRight={!hideButtons}\n type={\"number\"}\n min={min}\n max={max}\n step={step}\n className={cx(styles.numericTextInputInput, className)}\n disabled={disabled}\n {...restProps}\n />\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport { ValueAndOnValueChangeProps } from \"../../types\";\nimport { NumericTextInputProps } from \"../NumericTextInput\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport type NumericInputValueProps = ValueAndOnValueChangeProps<\n number | undefined\n>;\n\nexport const useNumericInputValue = (\n value: number | undefined,\n onValueChange?: (value: number | undefined) => void,\n): Partial<NumericTextInputProps> => {\n const onValueChangeString = useCallback(\n (newValue: string) => {\n if (onValueChange) {\n if (!newValue) {\n onValueChange(undefined);\n } else {\n const n = parseFloatElseUndefined(newValue);\n if (n !== undefined) {\n onValueChange(n);\n }\n }\n }\n },\n [onValueChange],\n );\n\n const valueString = useMemo(() => {\n if (value === undefined) {\n return \"\";\n }\n return String(value);\n }, [value]);\n\n return {\n onValueChange: onValueChangeString,\n value: valueString,\n };\n};\n","import { isNil } from \"lodash-es\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const isMinReached = (\n value: string | undefined,\n min: number | undefined,\n) => {\n if (!isNil(value)) {\n const numericValue = parseFloatElseUndefined(value);\n return !isNil(numericValue) && !isNil(min) && numericValue <= min;\n } else {\n return false;\n }\n};\n\nexport const isMaxReached = (\n value: string | undefined,\n max: number | undefined,\n) => {\n if (!isNil(value)) {\n const numericValue = parseFloatElseUndefined(value);\n return !isNil(numericValue) && !isNil(max) && numericValue >= max;\n } else {\n return false;\n }\n};\n","import { Omit, Row, Space } from \"@stenajs-webui/core\";\nimport { FlatButton, stenaPlus, stenaMinus } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport {\n NumericTextInput,\n NumericTextInputProps,\n} from \"../numeric-text-input/NumericTextInput\";\nimport { useCallback } from \"react\";\nimport { isMaxReached, isMinReached } from \"../../../utils/NumberComparator\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericStepperProps\n extends Omit<NumericTextInputProps, \"hideButtons\"> {}\n\nexport const NumericStepper: React.FC<NumericStepperProps> = ({\n disabled,\n onValueChange,\n value,\n max,\n min,\n step = 1,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange],\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange],\n );\n\n return (\n <Row role={\"group\"}>\n <FlatButton\n leftIcon={stenaMinus}\n aria-label={\"Decrease\"}\n disabled={disabled || isMinReached(value, min)}\n onClick={() => onClick(-step)}\n />\n <Space />\n <NumericTextInput\n hideButtons\n onValueChange={onChange}\n value={value}\n max={max}\n min={min}\n step={step}\n disabled={disabled}\n {...restProps}\n />\n <Space />\n <FlatButton\n leftIcon={stenaPlus}\n aria-label={\"Increase\"}\n disabled={disabled || isMaxReached(value, max)}\n onClick={() => onClick(step)}\n />\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport {\n stenaEyeHide,\n stenaEyeShow,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = stenaEyeShow,\n visibleIcon = stenaEyeHide,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n buttonRight={\n <TextInputButton\n icon={isPassword ? hiddenIcon : visibleIcon}\n onClick={() => setIsPassword((x) => !x)}\n />\n }\n type={isPassword ? \"password\" : \"text\"}\n {...props}\n />\n );\n};\n","import { getDataProps, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface InputLabelTextProps {\n disabled?: boolean;\n text?: string;\n}\n\nexport const InputLabelText: React.FC<InputLabelTextProps> = ({\n disabled,\n text,\n ...props\n}) => {\n return (\n <Text\n variant={\"bold\"}\n color={cssColor(disabled ? \"--silver\" : \"--tjara\")}\n size={\"small\"}\n {...getDataProps(props)}\n >\n {text}\n </Text>\n );\n};\n","import * as React from \"react\";\nimport { InputLabelText } from \"./InputLabelText\";\nimport { ScreenReaderOnlyText } from \"@stenajs-webui/core\";\n\nexport interface InputLabelProps {\n htmlFor?: string;\n label?: string;\n screenReaderLabel?: string;\n className?: string;\n disabled?: boolean;\n}\n\nexport const InputLabel: React.FC<InputLabelProps> = ({\n htmlFor,\n screenReaderLabel,\n label,\n disabled,\n className,\n}) => {\n return (\n <label htmlFor={htmlFor} className={className}>\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <InputLabelText\n aria-hidden={Boolean(screenReaderLabel)}\n text={label}\n disabled={disabled}\n />\n </label>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEvent, PropsWithChildren, useCallback, useId } from \"react\";\nimport { Icon, stenaAngleDown } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledSelect.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport { SelectElementProps } from \"@stenajs-webui/core\";\n\nexport type SelectBorderVariant =\n | \"normalBorder\"\n | \"onlyTopBorder\"\n | \"onlyBottomBorder\";\n\nexport interface LabelledSelectProps\n extends ValueAndOnValueChangeProps<string>,\n PropsWithChildren,\n Omit<SelectElementProps, \"value\" | \"size\"> {\n id?: string;\n name: string;\n label?: string;\n screenReaderLabel?: string;\n borderVariant?: SelectBorderVariant;\n variant?: LabelledSelectVariant;\n size?: LabelledSelectSize;\n}\n\nexport type LabelledSelectVariant = \"normal\" | \"error\";\nexport type LabelledSelectSize = \"medium\" | \"large\";\n\nexport const LabelledSelect: React.FC<LabelledSelectProps> = ({\n onChange,\n onValueChange,\n id,\n label,\n screenReaderLabel,\n borderVariant = \"normalBorder\",\n variant = \"normal\",\n size = \"medium\",\n children,\n ...inputProps\n}) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange],\n );\n\n return (\n <div\n className={cx(\n styles.labelledSelect,\n styles[variant],\n styles[size],\n styles[borderVariant],\n )}\n >\n <InputLabel\n htmlFor={activeId}\n className={styles.label}\n label={label}\n screenReaderLabel={screenReaderLabel}\n />\n <select\n id={activeId}\n onChange={onChangeHandler}\n className={cx(styles.select, styles[variant], styles[size])}\n {...inputProps}\n >\n {children}\n </select>\n\n <div className={cx(styles.iconWrapper)}>\n <Icon\n icon={stenaAngleDown}\n size={24}\n color={cssColor(\"--modern-blue\")}\n />\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEventHandler, useCallback, useId } from \"react\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledTextInput.module.css\";\nimport { InputElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\n\nexport type LabelledTextInputVariant = \"normal\" | \"error\";\nexport type LabelledTextInputSize = \"medium\" | \"large\";\n\nexport type LabelledTextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\"\n | \"onlyLeft\"\n | \"onlyRight\";\n\nexport interface LabelledTextInputProps\n extends Omit<InputElementProps, \"value\" | \"size\">,\n ValueAndOnValueChangeProps<string> {\n id?: string;\n label?: string;\n size?: LabelledTextInputSize;\n screenReaderLabel?: string;\n pattern?: string;\n borderRadiusVariant?: LabelledTextInputBorderVariant;\n variant?: LabelledTextInputVariant;\n}\n\nexport const LabelledTextInput = React.forwardRef<\n HTMLInputElement,\n LabelledTextInputProps\n>(\n (\n {\n autoComplete = \"off\",\n label,\n id,\n screenReaderLabel,\n size = \"medium\",\n value,\n onChange,\n disabled,\n onValueChange,\n borderRadiusVariant = \"normalBorder\",\n variant = \"normal\",\n width,\n ...inputProps\n },\n ref,\n ) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange],\n );\n\n return (\n <div\n className={cx(\n styles.labelledTextInput,\n styles[variant],\n styles[borderRadiusVariant],\n styles[size],\n disabled && styles.disabled,\n )}\n style={width ? { width } : undefined}\n >\n <InputLabel\n htmlFor={activeId}\n screenReaderLabel={screenReaderLabel}\n label={label}\n />\n <input\n ref={ref}\n id={activeId}\n autoComplete={autoComplete}\n type={\"text\"}\n value={value}\n onChange={onChangeHandler}\n disabled={disabled}\n {...inputProps}\n />\n </div>\n );\n },\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport cx from \"classnames\";\nimport { TextInputProps } from \"./TextInput\";\nimport { TextInputIcon } from \"./TextInputIcon\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\nimport { ButtonElementProps, Row } from \"@stenajs-webui/core\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface TextInputBoxProps\n extends Pick<\n TextInputProps,\n | \"variant\"\n | \"wrapperClassName\"\n | \"disabled\"\n | \"wrapperStyle\"\n | \"contentLeft\"\n | \"contentRight\"\n | \"disableContentPadding\"\n | \"disableContentPaddingLeft\"\n | \"disableContentPaddingRight\"\n > {\n children?: ReactNode;\n iconRight?: IconDefinition;\n iconLeft?: IconDefinition;\n onClickLeft?: ButtonElementProps[\"onClick\"];\n onClickRight?: ButtonElementProps[\"onClick\"];\n}\n\nexport const TextInputBox: React.FC<TextInputBoxProps> = ({\n variant = \"standard\",\n disabled,\n wrapperClassName,\n wrapperStyle,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconRight,\n iconLeft,\n onClickLeft,\n onClickRight,\n children,\n}) => {\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles.inputContainer,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n wrapperClassName,\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnLeft\n button={\n iconLeft ? (\n <TextInputButton onClick={onClickLeft} icon={iconLeft} />\n ) : undefined\n }\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnRight\n button={\n currentIconRight ? (\n <TextInputButton onClick={onClickRight} icon={currentIconRight} />\n ) : undefined\n }\n />\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./TextArea.module.css\";\nimport { FullOnChangeProps } from \"../types\";\n\ntype Resize =\n | \"none\"\n | \"both\"\n | \"horizontal\"\n | \"vertical\"\n | \"inherit\"\n | \"initial\"\n | \"revert\"\n | \"unset\";\n\nexport interface TextAreaProps\n extends Omit<ComponentPropsWithoutRef<\"textarea\">, \"value\">,\n FullOnChangeProps<string, ChangeEvent<HTMLTextAreaElement>> {\n resize?: Resize;\n readOnly?: boolean;\n rows?: number;\n disabled?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n value,\n onValueChange,\n onChange,\n resize = \"none\",\n readOnly = false,\n rows,\n disabled,\n ...textAreaProps\n },\n ref,\n ) => {\n const onChangeHandler: ChangeEventHandler<HTMLTextAreaElement> =\n useCallback(\n (ev) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange],\n );\n\n return (\n <textarea\n disabled={disabled}\n rows={rows}\n readOnly={readOnly}\n className={cx(styles.textArea, className)}\n style={{ resize }}\n onChange={onChangeHandler}\n value={value}\n ref={ref}\n {...textAreaProps}\n />\n );\n },\n);\n"],"names":["ReadOnlyNumericInput","value","id","props","jsx","styles","AmountStepperButtons","onValueChange","decreaseDisabled","increaseDisabled","inputId","ariaLabelDecrease","ariaLabelIncrease","textValueAriaLabel","increaseTestId","decreaseTestId","onIncrease","onDecrease","size","onClickPlus","useCallback","onClickMinus","jsxs","Row","PrimaryButton","stenaMinus","stenaPlus","styleChecked","Switch","disabled","className","wrapperRef","restProps","SwitchWithLabel","label","textColor","screenReaderLabel","switchProps","Box","Space","ScreenReaderOnlyText","Text","Checkbox","forwardRef","indeterminate","onChange","inputProps","ref","localRef","useRef","setRef","element","handleInputChange","ev","useEffect","cx","CheckboxWithLabel","children","inputRef","checkboxProps","RadioButton","name","RadioButtonBox","variant","icon","contentRight","style","radioButtonClassName","radioButtonProps","cssColor","Icon","RadioButtonWithLabel","useKeyboardNavigation","onKeyDown","onEnter","onEsc","onMove","onDone","onBlur","onFocus","wasHandled","onBlurHandler","onFocusHandler","key","blurMoveAndCancel","direction","e","elementHasSelectionRange","useSelectAllOnMount","moveCursorToEnd","enabled","useTextInput","selectAllOnMount","moveCursorToEndOnMount","autoFocus","onKeyDownHandler","onChangeHandler","TextInputIcon","button","iconClassName","content","spaceOnLeft","spaceOnRight","disableContentPadding","disableContentPaddingLeft","disableContentPaddingRight","Fragment","FontAwesomeIcon","TextInput","buttonLeft","buttonRight","contentLeft","iconLeft","iconRight","wrapperClassName","wrapperStyle","hideBorder","borderRadiusVariant","width","alwaysShowPlaceholder","refToUse","hookProps","currentIconRight","stenaCheck","stenaExclamationTriangle","currentContentRight","InputSpinner","onStepValueChange","numSteps","min","max","limitWithinRange","newValue","parseFloatElseUndefined","onTextValueChange","v","NumericTextInput","step","hideButtons","onClick","UpDownButtons","useNumericInputValue","onValueChangeString","n","valueString","useMemo","isMinReached","isNil","numericValue","isMaxReached","NumericStepper","FlatButton","PasswordInput","hiddenIcon","stenaEyeShow","visibleIcon","stenaEyeHide","isPassword","setIsPassword","useState","TextInputButton","x","InputLabelText","text","getDataProps","InputLabel","htmlFor","LabelledSelect","borderVariant","hookId","useId","activeId","stenaAngleDown","LabelledTextInput","React","autoComplete","TextInputBox","onClickLeft","onClickRight","TextArea","resize","readOnly","rows","textAreaProps"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._switch_1d6s8_1{--swui-switch-width: 50px;--swui-switch-height: var(--swui-field-box-size-medium);--swui-switch-animation-time: var(--swui-animation-time-medium);--swui-switch-selected-highlight-color: var(--lhds-color-blue-500);--swui-switch-knob-width: calc(var(--swui-switch-height) - 2px);--swui-switch-knob-bg-color-enabled: var(--swui-handle-bg-enabled-color);--swui-switch-knob-bg-color-disabled: var(--swui-handle-bg-disabled-color);--swui-switch-container-bg-color-enabled: var(--swui-field-bg-enabled);--swui-switch-container-bg-color-disabled: var(--swui-field-bg-disabled);--swui-switch-knob-border-color-enabled: var(--swui-separator-color);--swui-switch-container-border-color: var(--swui-field-border-color);--swui-switch-container-border-color-hover: var( --swui-field-border-color-hover );--swui-switch-container-border-color-disabled: var( --swui-field-border-color-disabled );--swui-switch-knob-shadow-color: var(--swui-field-shadow-color);display:flex;flex-direction:row;border:1px solid var(--swui-switch-container-border-color);box-sizing:border-box;background-color:var(--swui-switch-container-bg-color-enabled);height:var(--swui-switch-height);width:var(--swui-switch-width);border-radius:calc(var(--swui-switch-height) / 2);padding:0;margin:0;cursor:pointer;transition:background-color var(--swui-switch-animation-time)}._switch_1d6s8_1:focus{outline:0}._switch_1d6s8_1:focus-visible{outline:var(--swui-focus-outline);outline-offset:2px;border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:hover{border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:disabled{cursor:default;background-color:var(--swui-switch-container-bg-color-disabled);border:1px solid var(--swui-switch-container-border-color-disabled)}._switch_1d6s8_1:disabled ._knob_1d6s8_56{background-color:var(--swui-switch-knob-bg-color-disabled)}._switch_1d6s8_1 ._filler_1d6s8_61{flex:none;transition:flex var(--swui-switch-animation-time)}._switch_1d6s8_1 ._knob_1d6s8_56{width:var(--swui-switch-knob-width);height:var(--swui-switch-knob-width);border-radius:50%;background-color:var(--swui-switch-knob-bg-color-enabled);box-shadow:var(--swui-switch-knob-shadow-color) 0 0 4px 1px}._checked_1d6s8_75{border:1px solid var(--swui-switch-selected-highlight-color);background-color:var(--swui-switch-selected-highlight-color)}._checked_1d6s8_75 ._filler_1d6s8_61{flex:1}._checkbox_1t23r_1{--swui-checkbox-height: var(--swui-field-box-size-medium);--swui-checkbox-height-small: var(--swui-field-box-size-small);--swui-checkbox-border-radius: var(--swui-field-border-radius);--swui-checkbox-animation-time: var(--swui-animation-time-medium);--swui-checkbox-icon-color: var(--swui-field-indicator-active-color);--swui-checkbox-disabled-icon-color: var(--swui-text-disabled-color);--swui-checkbox-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-checkbox-unchecked-bg-color: var(--swui-white);--swui-checkbox-checked-bg-color: var(--lhds-color-blue-500);--swui-checkbox-disabled-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-disabled-checked-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-border-color: var(--swui-field-border-color);--swui-checkbox-border-hover-color: var(--swui-field-border-color-hover);--swui-checkbox-disabled-border-color: var(--swui-checkbox-disabled-bg-color);-webkit-appearance:none;-moz-appearance:none;border-radius:var(--swui-checkbox-border-radius);outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-checkbox-border-color));background:var(--current-bg-color, var(--swui-checkbox-unchecked-bg-color));transition:background var(--swui-checkbox-animation-time),border-color var(--swui-checkbox-animation-time);flex-shrink:0}._checkbox_1t23r_1._standard_1t23r_40{width:var(--swui-checkbox-height);height:var(--swui-checkbox-height)}._checkbox_1t23r_1._standard_1t23r_40:after{width:3px;height:6px;left:9px;top:6px}._checkbox_1t23r_1._small_1t23r_52{width:var(--swui-checkbox-height-small);height:var(--swui-checkbox-height-small)}._checkbox_1t23r_1._small_1t23r_52:after{width:3px;height:6px;left:5px;top:2px}._checkbox_1t23r_1:after{content:"";display:block;position:absolute;transition:transform var(--swui-checkbox-animation-time) var(--d-t-e, ease),opacity var(--swui-checkbox-animation-time),width var(--swui-checkbox-animation-time),top var(--swui-checkbox-animation-time);border:2px solid var( --current-checkbox-icon-color, var(--swui-checkbox-unchecked-icon-color) );border-top:0;border-left:0;transform:rotate(var(--current-check-rotation, 20deg));box-sizing:content-box}._checkbox_1t23r_1:checked{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1t23r_1:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color)}._checkbox_1t23r_1:disabled:not(:checked){--current-bg-color: var(--swui-checkbox-disabled-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1t23r_1:disabled:not(:checked):after{--current-checkbox-icon-color: --swui-checkbox-unchecked-icon-color}._checkbox_1t23r_1:disabled:checked{--current-bg-color: var(--swui-checkbox-disabled-checked-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1t23r_1:disabled:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1t23r_1:indeterminate{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1t23r_1:indeterminate:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color);border-right:0;transform:rotate(0);width:6px}._checkbox_1t23r_1:indeterminate._standard_1t23r_40:after{top:4px;left:8px}._checkbox_1t23r_1:indeterminate._small_1t23r_52:after{top:0;left:4px}._checkbox_1t23r_1:indeterminate:disabled:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1t23r_1:hover:not(:checked):not(:disabled){--current-border-color: var(--swui-checkbox-border-hover-color)}._checkbox_1t23r_1:focus-visible{outline:var(--swui-focus-outline)}._checkbox_1t23r_1+label{font-size:1.4rem;line-height:var(--swui-checkbox-height);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radiobutton_a19yk_1{--swui-radiobutton-size-standard: var(--swui-field-box-size-medium);--swui-radiobutton-size-small: var(--swui-field-box-size-small);--swui-radiobutton-animation-time: var(--swui-animation-time-medium);--swui-radiobutton-icon-color: var(--swui-field-indicator-active-color);--swui-radiobutton-disabled-icon-color: var(--swui-field-text-color-disabled);--swui-radiobutton-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-radiobutton-checked-bg-color: var(--lhds-color-blue-500);--swui-radiobutton-checked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-bg-color: var(--swui-white);--swui-radiobutton-unchecked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-border-color: var(--swui-field-border-color);--swui-radiobutton-unchecked-hover-border-color: var( --swui-field-border-color-hover );--swui-radiobutton-disabled-border-color: var( --swui-radiobutton-checked-disabled-bg-color );-webkit-appearance:none;-moz-appearance:none;outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;flex:none;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-radiobutton-unchecked-border-color));border-radius:50%;background:var( --current-bg-color, var(--swui-radiobutton-unchecked-bg-color) );transition:background var(--swui-radiobutton-animation-time),border-color var(--swui-radiobutton-animation-time)}._radiobutton_a19yk_1._standard_a19yk_46{height:var(--swui-radiobutton-size-standard);width:var(--swui-radiobutton-size-standard)}._radiobutton_a19yk_1._standard_a19yk_46:after{left:7px;top:7px}._radiobutton_a19yk_1._small_a19yk_56{height:var(--swui-radiobutton-size-small);width:var(--swui-radiobutton-size-small)}._radiobutton_a19yk_1._small_a19yk_56:after{left:3px;top:3px}._radiobutton_a19yk_1:after{content:"";display:block;position:absolute;transition:transform var(--current-transform-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease),opacity var(--current-opacity-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease);transform:scale(var(--current-scale, 0));width:8px;height:8px;border-radius:50%;background:var( --current-icon-color, var(--swui-radiobutton-unchecked-icon-color) );opacity:var(--current-opacity, 0)}._radiobutton_a19yk_1:checked{--current-bg-color: var(--swui-radiobutton-checked-bg-color);--current-border-color: var(--swui-radiobutton-checked-bg-color);--current-opacity-time: var(--swui-radiobutton-animation-time);--current-transform-time: .6s;--current-transform-type: cubic-bezier(.2, .85, .32, 1.2);--current-opacity: 1;--current-scale: 1}._radiobutton_a19yk_1:checked:after{--current-icon-color: var(--swui-radiobutton-icon-color)}._radiobutton_a19yk_1:disabled{--current-bg-color: var(--swui-radiobutton-unchecked-disabled-bg-color);--current-border-color: var(--swui-radiobutton-disabled-border-color)}._radiobutton_a19yk_1:disabled:checked{--current-bg-color: var(--swui-radiobutton-checked-disabled-bg-color)}._radiobutton_a19yk_1:disabled:checked:after{--current-icon-color: var(--swui-radiobutton-disabled-icon-color)}._radiobutton_a19yk_1:hover:not(:checked):not(:disabled){--current-border-color: var( --swui-radiobutton-unchecked-hover-border-color )}._radiobutton_a19yk_1:focus-visible{outline:var(--swui-focus-outline)}._radiobutton_a19yk_1+label{font-size:1.4rem;line-height:var(--swui-radiobutton-size-standard);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radioButtonBox_yl38n_1{box-sizing:border-box;background-color:var(--lhds-color-ui-200);position:relative;border:1px solid var(--silver-ui);width:100%;border-radius:16px;font-size:var(--swui-font-size-inputs);align-items:center;display:flex;cursor:pointer;outline:none}._radioButtonBox_yl38n_1._medium_yl38n_14{padding:0 var(--swui-metrics-space);height:42px}._radioButtonBox_yl38n_1._large_yl38n_19{height:48px;padding:0 calc(var(--swui-metrics-space) * 2)}._radioButtonBox_yl38n_1:hover{border-color:var(--hav)}._radioButtonBox_yl38n_1._danger_yl38n_28{background-color:var(--snackskal-light);border-color:var(--snackskal-light)}._radioButtonBox_yl38n_1._danger_yl38n_28:hover{border-color:var(--lhds-color-red-500)}@media (max-width: 768px){._radioButtonWrapper_yl38n_39{width:100%}}._textInput_1qe61_1{display:flex;height:var(--swui-field-height);width:100%;align-items:center;background:var(--swui-field-bg-enabled);border:1px solid var(--swui-field-border-color);border-radius:var(--swui-field-border-radius);outline:none}._textInput_1qe61_1._textInput_1qe61_1._onlyTop_1qe61_11{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._textInput_1qe61_1._textInput_1qe61_1._onlyTop_1qe61_11:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1._onlyBottom_1qe61_20{border-top-left-radius:0;border-top-right-radius:0}._textInput_1qe61_1._textInput_1qe61_1._onlyBottom_1qe61_20:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1._onlyLeft_1qe61_28{border-bottom-right-radius:0;border-top-right-radius:0;border-right-color:transparent}._textInput_1qe61_1._textInput_1qe61_1._onlyLeft_1qe61_28:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1._onlyRight_1qe61_37{border-top-left-radius:0;border-bottom-left-radius:0}._textInput_1qe61_1._textInput_1qe61_1._onlyRight_1qe61_37:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1:focus-within:not(._disabled_1qe61_15){outline:var(--swui-focus-outline);border-color:transparent}._textInput_1qe61_1 ._input_1qe61_50{letter-spacing:var(--swui-field-letter-spacing);line-height:var(--swui-field-text-line-height);width:100%;padding:2px var(--swui-metrics-indent);color:var(--swui-field-text-color);font-size:var(--swui-font-size-inputs);font-family:var(--swui-font-input);font-weight:var(--swui-font-weight-inputs);background:var(--swui-hidden);border:none;min-width:0;margin:0;outline:none}._textInput_1qe61_1 ._input_1qe61_50:disabled{color:var(--swui-field-text-color-disabled)}._textInput_1qe61_1 ._input_1qe61_50::placeholder{color:var(--swui-field-placeholder-color);font-weight:var(--swui-field-placeholder-font-weight)}._textInput_1qe61_1 ._input_1qe61_50:not(._alwaysShowPlaceholder_1qe61_74):focus::placeholder{opacity:0}._textInput_1qe61_1 ._input_1qe61_50::-webkit-calendar-picker-indicator{display:none}._textInput_1qe61_1 ._icon_1qe61_85{transition:color var(--swui-animation-time-medium);color:var(--swui-field-icon-color);font-size:var(--swui-field-icon-size)}._textInput_1qe61_1._standard_1qe61_95:hover:not(:focus-within):not(._disabled_1qe61_15),._textInput_1qe61_1._success_1qe61_96:hover:not(:focus-within):not(._disabled_1qe61_15){border-color:var(--swui-field-border-color-hover)}._textInput_1qe61_1._success_1qe61_96 ._icon_1qe61_85{color:var(--swui-state-success-color)}._textInput_1qe61_1._loading_1qe61_108{background:var(--swui-state-loading-light-color);border-color:var(--swui-state-loading-color)}._textInput_1qe61_1._modified_1qe61_113{background:var(--swui-state-modified-light-color);border-color:var(--swui-state-modified-light-color)}._textInput_1qe61_1._modified_1qe61_113 ._icon_1qe61_85{color:var(--lhds-color-blue-300)}._textInput_1qe61_1._error_1qe61_122{background:var(--swui-state-error-light-color);border-color:var(--swui-state-error-light-color)}._textInput_1qe61_1._error_1qe61_122 ._icon_1qe61_85{color:var(--swui-state-error-light-color)}._textInput_1qe61_1._warning_1qe61_131{background:var(--swui-state-alert-light-color);border-color:var(--swui-state-alert-light-color)}._textInput_1qe61_1._warning_1qe61_131 ._icon_1qe61_85{color:var(--swui-state-alert-light-color)}._textInput_1qe61_1._disabled_1qe61_15{background:var(--swui-field-bg-disabled);border-color:var(--swui-field-bg-disabled)}._textInput_1qe61_1._textInput_1qe61_1._hideBorder_1qe61_145{border:none;box-shadow:none;background:none;outline:none}._textInput_1qe61_1 ._clickable_1qe61_152:hover{cursor:pointer}._textInput_1qe61_1 ._clickable_1qe61_152:hover ._icon_1qe61_85{color:var(--swui-primary-action-color)}._numericTextInputInput_1tnr6_1{-moz-appearance:textfield}._numericTextInputInput_1tnr6_1::-webkit-outer-spin-button,._numericTextInputInput_1tnr6_1::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._labelledSelect_s3b2w_1{border:1px solid var(--swui-field-border-color);position:relative;overflow:hidden;cursor:pointer}._labelledSelect_s3b2w_1._medium_s3b2w_7{border-radius:var(--swui-border-radius)}._labelledSelect_s3b2w_1._large_s3b2w_11{border-radius:var(--swui-border-radius-large)}._labelledSelect_s3b2w_1._labelledSelect_s3b2w_1._onlyTopBorder_s3b2w_15{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledSelect_s3b2w_1._onlyBottomBorder_s3b2w_21{border-top-left-radius:0;border-top-right-radius:0}._labelledSelect_s3b2w_1._error_s3b2w_26{border-color:var(--snackskal);background-color:var(--snackskal)}._labelledSelect_s3b2w_1._normal_s3b2w_31{border-color:var(--swui-field-border-color);background-color:var(--moln)}._labelledSelect_s3b2w_1._labelledSelect_s3b2w_1:focus-within{border-color:var(--swui-field-border-color-hover);outline:var(--swui-focus-outline);outline-offset:0;z-index:10}._labelledSelect_s3b2w_1._labelledSelect_s3b2w_1:hover{border-color:var(--swui-field-border-color-hover)}._labelledSelect_s3b2w_1 ._label_s3b2w_1{display:flex;cursor:pointer;padding:calc(var(--swui-metrics-space) * 1) calc(var(--swui-metrics-space) * 2) 0}._labelledSelect_s3b2w_1 ._select_s3b2w_54{color:var(--swui-text-primary-color);display:block;margin:0;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;line-height:1.5;box-sizing:border-box;cursor:pointer}._labelledSelect_s3b2w_1 ._select_s3b2w_54._error_s3b2w_26{background-color:var(--snackskal)}._labelledSelect_s3b2w_1 ._select_s3b2w_54._normal_s3b2w_31{background-color:var(--moln)}._labelledSelect_s3b2w_1 ._select_s3b2w_54._medium_s3b2w_7{font-size:var(--swui-font-size-inputs);padding:calc(var(--swui-metrics-space) * .5) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 1)}._labelledSelect_s3b2w_1 ._select_s3b2w_54._large_s3b2w_11{font-size:var(--swui-font-size-inputs-large);padding:calc(var(--swui-metrics-space) * 1.5) calc(var(--swui-metrics-space) * 8) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledSelect_s3b2w_1 ._iconWrapper_s3b2w_88{border-radius:var(--swui-max-border-radius);width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;right:calc(var(--swui-metrics-space) * 2);margin-top:auto;margin-bottom:auto;padding:0;background:var(--silver-lighter);pointer-events:none}._labelledTextInput_1uyc3_1{position:relative;background:var(--moln);overflow:hidden;cursor:text;border:1px solid var(--silver-light);border-radius:var(--swui-border-radius)}._labelledTextInput_1uyc3_1 input{outline:none;border:none;margin:0;color:var(--swui-text-primary-color);background-color:transparent;line-height:var(--swui-line-height);width:100%;box-sizing:border-box;cursor:text}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyTop_1uyc3_21{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyBottom_1uyc3_27{border-top-left-radius:0;border-top-right-radius:0}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyLeft_1uyc3_32{border-bottom-right-radius:0;border-top-right-radius:0;border-right-color:transparent}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyRight_1uyc3_38{border-top-left-radius:0;border-bottom-left-radius:0}._labelledTextInput_1uyc3_1:focus-within{outline:var(--swui-focus-outline);outline-offset:-1px;border-color:transparent}._labelledTextInput_1uyc3_1:hover:not(:focus-within){border-color:var(--hav)}._labelledTextInput_1uyc3_1._disabled_1uyc3_53{background-color:var(--silver-lighter)}._labelledTextInput_1uyc3_1._disabled_1uyc3_53 input{color:var(--silver)}._labelledTextInput_1uyc3_1._medium_1uyc3_61:focus-within{outline-width:2px}._labelledTextInput_1uyc3_1._medium_1uyc3_61 input{font-size:var(--swui-font-size-inputs);padding:calc(var(--swui-metrics-space) * .5) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 1)}._labelledTextInput_1uyc3_1._large_1uyc3_73{border-radius:var(--swui-border-radius-large)}._labelledTextInput_1uyc3_1._large_1uyc3_73:focus-within{outline-width:3px}._labelledTextInput_1uyc3_1._large_1uyc3_73 input{font-size:var(--swui-font-size-inputs-large);padding:calc(var(--swui-metrics-space) * 1) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledTextInput_1uyc3_1._error_1uyc3_87{border-color:var(--swui-state-error-light-color);background-color:var(--swui-state-error-light-color)}._labelledTextInput_1uyc3_1._error_1uyc3_87:hover:not(:focus-within){border-color:var(--modern-red)}._labelledTextInput_1uyc3_1 label{display:flex;padding:calc(var(--swui-metrics-space) * 1) calc(var(--swui-metrics-space) * 2) 0;cursor:text}._textArea_6n6nc_1{--swui-textarea-text-color: var(--swui-field-text-color);--swui-textarea-text-color-disabled: var(--swui-field-text-color-disabled);--swui-textarea-letter-spacing: var(--swui-field-letter-spacing);--swui-textarea-line-height: var(--swui-field-text-line-height);--swui-textarea-indent: var(--swui-metrics-indent);--swui-textarea-font-size: var(--swui-font-size-inputs);--swui-textarea-font-family: var(--swui-font-input);--swui-textarea-font-weight: var(--swui-font-weight-inputs);--swui-textarea-placeholder-color: var(--swui-text-disabled-color);--swui-textarea-animation-time: var(--swui-animation-time-medium);--swui-textarea-icon-color: var(--swui-field-border-color-disabled);--swui-textarea-icon-size: var(--swui-field-icon-size);--swui-textarea-icon-color-success: var(--swui-state-success-color);--swui-textarea-bg-loading: var(--swui-state-loading-light-color);--swui-textarea-border-color-loading: var(--swui-state-loading-color);--swui-textarea-bg-modified: var(--swui-state-modified-light-color);--swui-textarea-border-color-modified: var(--swui-state-modified-color);--swui-textarea-bg-warning: var(--swui-state-alert-light-color);--swui-textarea-border-color-warning: var(--swui-state-alert-color);--swui-textarea-bg-error: var(--swui-state-error-light-color);--swui-textarea-border-color-error: var(--swui-state-error-color);--swui-textarea-bg-color: var(--swui-field-bg-enabled);--swui-textarea-bg-color-disabled: var(--swui-field-bg-disabled);--swui-textarea-border-radius: var(--swui-field-border-radius);--swui-textarea-border-color: var(--swui-field-border-color);--swui-textarea-border-color-hover: var(--swui-field-border-color-hover);--swui-textarea-border-color-disabled: var( --swui-field-border-color-disabled );max-width:100%;letter-spacing:var(--swui-textarea-letter-spacing);line-height:var(--swui-textarea-line-height);padding:2px var(--swui-textarea-indent);color:var(--swui-textarea-text-color);font-size:var(--swui-textarea-font-size);font-family:var(--swui-textarea-font-family);font-weight:var(--swui-textarea-font-weight);background:var(--current-bg, var(--swui-textarea-bg-color));border:1px solid var(--current-border-color, var(--swui-textarea-border-color));border-radius:var(--swui-textarea-border-radius);transition:border var(--swui-textarea-animation-time);--current-icon-color: var(--swui-textarea-icon-color)}._textArea_6n6nc_1:focus:not(:focus-visible){outline:none}._textArea_6n6nc_1:focus{--current-border-color: var(--swui-textarea-border-color-hover);--current-bg: var(--swui-textarea-bg-color)}._textArea_6n6nc_1:focus-visible{outline:var(--swui-focus-outline)}._textArea_6n6nc_1:disabled{color:var(--swui-textarea-text-color-disabled);--current-bg: var(--swui-textarea-bg-color-disabled);--current-border-color: var(--swui-textarea-border-color-disabled)}')),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),a=require("@stenajs-webui/core"),x=require("react"),j=require("classnames"),h=require("@stenajs-webui/elements"),$=require("@stenajs-webui/theme"),xe=require("@fortawesome/react-fontawesome"),T=require("lodash-es");function pe(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,r.get?r:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const fe=pe(x),ye="_knob_1d6s8_56",he="_filler_1d6s8_61",be="_checked_1d6s8_75",k={switch:"_switch_1d6s8_1",knob:ye,filler:he,checked:be},je=`${k.switch} ${k.checked}`,U=({value:e,disabled:t,onValueChange:s,className:r,wrapperRef:o,...l})=>n.jsx("div",{className:r,ref:o,children:n.jsxs("button",{type:"button",role:"switch","aria-checked":e,className:e?je:k.switch,disabled:t,onClick:()=>s&&s(!e),...l,children:[n.jsx("div",{className:k.filler}),n.jsx("div",{className:k.knob})]})}),me=({label:e,disabled:t,textColor:s,wrapperRef:r,screenReaderLabel:o,...l})=>n.jsx("div",{ref:r,children:n.jsx("label",{children:n.jsxs(a.Box,{row:!0,alignItems:"center",children:[n.jsx(U,{disabled:t,...l}),n.jsx(a.Space,{}),o?n.jsx(a.ScreenReaderOnlyText,{children:o}):null,n.jsx(a.Text,{color:s,"aria-hidden":!!o,userSelect:"none",children:e})]})})}),we="_checkbox_1t23r_1",Ie="_standard_1t23r_40",Se="_small_1t23r_52",L={checkbox:we,standard:Ie,small:Se},C=x.forwardRef(({indeterminate:e=!1,onChange:t,onValueChange:s,value:r=!1,size:o="standard",className:l,...i},u)=>{const c=x.useRef(null),p=_=>{c.current=_,c.current&&(c.current.indeterminate=!!e),u&&(typeof u=="function"?u(_):u.current=_)},y=x.useCallback(_=>{t&&t(_),s&&s(_.target.checked)},[t,s]);return x.useEffect(()=>{c.current&&(c.current.indeterminate=!!e)},[e,c]),n.jsx("input",{type:"checkbox",className:j(L.checkbox,L[o],l),checked:r,onChange:y,ref:p,...i})}),ge=({children:e,label:t,inputRef:s,wrapperRef:r,textColor:o,screenReaderLabel:l,...i})=>n.jsx("div",{ref:r,children:n.jsx("label",{children:n.jsxs(a.Row,{alignItems:"center",children:[n.jsx(C,{...i,ref:s}),n.jsx(a.Space,{}),l?n.jsx(a.ScreenReaderOnlyText,{children:l}):null,n.jsx(a.Text,{color:o,"aria-hidden":!!l,userSelect:"none",children:t}),e]})})}),Te="_radiobutton_a19yk_1",Be="_standard_a19yk_46",ke="_small_a19yk_56",M={radiobutton:Te,standard:Be,small:ke},P=x.forwardRef(({onChange:e,onValueChange:t,size:s="standard",name:r,className:o,...l},i)=>{const u=x.useCallback(c=>{e&&e(c),t&&t(c.target.value)},[e,t]);return n.jsx("input",{type:"radio",name:r,className:j(M.radiobutton,M[s],o),onChange:u,ref:i,...l})}),Re="_radioButtonBox_yl38n_1",Ne="_medium_yl38n_14",qe="_large_yl38n_19",$e="_danger_yl38n_28",Pe="_radioButtonWrapper_yl38n_39",N={radioButtonBox:Re,medium:Ne,large:qe,danger:$e,radioButtonWrapper:Pe},Fe=({label:e,screenReaderLabel:t,variant:s="normal",size:r="medium",className:o,icon:l,contentRight:i,style:u,disabled:c,radioButtonClassName:p,...y})=>{const _=c?$.cssColor("--swui-text-disabled-color"):void 0;return n.jsx("label",{className:j(N.radioButtonBox,N[s],N[r],o),style:u,children:n.jsxs(a.Row,{justifyContent:"space-between",flexGrow:1,children:[n.jsxs(a.Row,{alignItems:"center",children:[n.jsx(P,{...y,disabled:c,className:p}),n.jsx(a.Space,{}),t?n.jsx(a.ScreenReaderOnlyText,{children:t}):null,n.jsx(a.Text,{color:_,"aria-hidden":!!t,children:e})]}),n.jsxs(a.Row,{alignItems:"center",width:l?"48px":void 0,justifyContent:"center",children:[l&&n.jsx(h.Icon,{icon:l,size:24,color:_}),!l&&i]})]})})},Ae=({label:e,inputRef:t,wrapperRef:s,textColor:r,screenReaderLabel:o,...l})=>n.jsx("div",{ref:s,children:n.jsx("label",{children:n.jsxs(a.Row,{alignItems:"center",children:[n.jsx(P,{ref:t,...l}),n.jsx(a.Space,{}),o?n.jsx(a.ScreenReaderOnlyText,{children:o}):null,n.jsx(a.Text,{color:r,"aria-hidden":!!o,userSelect:"none",children:e})]})})}),E=(e,t,s,r,o,l,i,u)=>{const c=x.useRef(!1),p=d=>{c.current||l==null||l(d.target.value??""),i==null||i(d)},y=d=>{c.current=!1,u==null||u(d)};return{onKeyDownHandler:x.useCallback(d=>{const{key:f}=d;if(f==="Enter")c.current=!0,s==null||s(),l==null||l(d.currentTarget.value??"");else if(f==="Escape")c.current=!0,r==null||r(),d.preventDefault(),d.stopPropagation();else if(o){const b=(w,I)=>{c.current=!0,e.current.blur(),o(w),I.preventDefault(),I.stopPropagation()};d.shiftKey&&f==="Tab"?b("left",d):f==="Tab"?b("right",d):f==="ArrowUp"?b("up",d):f==="ArrowDown"?b("down",d):f==="ArrowRight"?e.current.value.length===e.current.selectionStart&&b("right",d):f==="ArrowLeft"&&e.current.selectionStart===0&&b("left",d)}t&&t(d)},[r,o,t,e,s,l]),onBlurHandler:p,onFocusHandler:y}};function K(e){return e.tagName==="TEXTAREA"||e.tagName==="INPUT"&&(e.type==="text"||e.type==="search"||e.type==="url"||e.type==="tel"||e.type==="password")}const D=(e,t,s)=>{x.useEffect(()=>{e.current&&K(e.current)&&(s?e.current.setSelectionRange(0,e.current.value.length):t&&e.current.setSelectionRange(e.current.value.length,e.current.value.length))},[t,e,s])},v=(e,{onEnter:t,onEsc:s,onChange:r,onValueChange:o,selectAllOnMount:l,moveCursorToEndOnMount:i,onDone:u,onMove:c,onFocus:p,onBlur:y,onKeyDown:_,autoFocus:d})=>{D(e,!!i,!!l);const{onKeyDownHandler:f,onFocusHandler:b,onBlurHandler:w}=E(e,_,t,s,c,u,y,p),I=x.useCallback(g=>{r==null||r(g),o==null||o(g.target.value)},[r,o]);return{onBlur:w,onChange:I,onFocus:b,onKeyDown:f,autoFocus:l||d}},He="_textInput_1qe61_1",Oe="_onlyTop_1qe61_11",We="_disabled_1qe61_15",Le="_onlyBottom_1qe61_20",Me="_onlyLeft_1qe61_28",Ue="_onlyRight_1qe61_37",Ce="_input_1qe61_50",Ee="_alwaysShowPlaceholder_1qe61_74",Ke="_icon_1qe61_85",De="_standard_1qe61_95",ve="_success_1qe61_96",ze="_loading_1qe61_108",Ge="_modified_1qe61_113",Xe="_error_1qe61_122",Je="_warning_1qe61_131",Qe="_hideBorder_1qe61_145",Ye="_clickable_1qe61_152",m={textInput:He,onlyTop:Oe,disabled:We,onlyBottom:Le,onlyLeft:Me,onlyRight:Ue,input:Ce,alwaysShowPlaceholder:Ee,icon:Ke,standard:De,success:ve,loading:ze,modified:Ge,error:Xe,warning:Je,hideBorder:Qe,clickable:Ye},R=({button:e,icon:t,iconClassName:s,content:r,spaceOnLeft:o,spaceOnRight:l,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c})=>!r&&!t&&!e?null:e?n.jsxs(n.Fragment,{children:[o?n.jsx(a.Space,{num:.25}):null,e,l?n.jsx(a.Space,{num:.25}):null]}):r?n.jsxs(n.Fragment,{children:[o&&!(i||u)?n.jsx(a.Space,{}):null,r||null,l&&!(i||c)?n.jsx(a.Space,{}):null]}):n.jsxs(n.Fragment,{children:[o?n.jsx(a.Space,{}):null,t&&n.jsx(xe.FontAwesomeIcon,{icon:t,className:j(m.icon,s)}),l?n.jsx(a.Space,{}):null]}),F=e=>{const{variant:t="standard",inputRef:s,disabled:r,className:o,buttonLeft:l,buttonRight:i,contentLeft:u,contentRight:c,disableContentPadding:p,disableContentPaddingLeft:y,disableContentPaddingRight:_,iconLeft:d,iconRight:f,moveCursorToEndOnMount:b,selectAllOnMount:w,autoFocus:I,onValueChange:g,wrapperClassName:X,wrapperStyle:J,onDone:Q,onEnter:Y,onEsc:Z,onMove:V,onChange:ee,onKeyDown:te,hideBorder:ne,onFocus:se,onBlur:re,borderRadiusVariant:oe="normalBorder",width:le,alwaysShowPlaceholder:ce,...ie}=e,ae=x.useRef(null),W=s??ae,ue=v(W,{onEnter:Y,onEsc:Z,onChange:ee,onValueChange:g,selectAllOnMount:w,moveCursorToEndOnMount:b,onDone:Q,onMove:V,onFocus:se,onBlur:re,onKeyDown:te,autoFocus:I}),de=t==="success"?h.stenaCheck:t==="warning"||t==="error"?h.stenaExclamationTriangle:f,_e=t==="loading"?n.jsx(h.InputSpinner,{}):c;return n.jsxs("div",{className:j(m.textInput,m[t],m[oe],{[m.disabled]:r},{[m.hideBorder]:ne},X),style:{width:le,...J},children:[n.jsx(R,{content:u,disableContentPadding:p,disableContentPaddingLeft:y,disableContentPaddingRight:_,icon:d,spaceOnLeft:!0,button:l}),n.jsx("input",{className:j(m.input,{[m.alwaysShowPlaceholder]:ce},o),type:"text",disabled:r,ref:W,autoFocus:I,...ie,...ue}),n.jsx(R,{content:_e,disableContentPadding:p,disableContentPaddingLeft:y,disableContentPaddingRight:_,icon:de,spaceOnRight:!0,button:i})]})},Ze="_numericTextInputInput_1tnr6_1",Ve={numericTextInputInput:Ze},A=({onValueChange:e,value:t,numSteps:s,min:r,max:o})=>{if(e)if(!t)e(String(q(s,r,o)));else{const i=(a.parseFloatElseUndefined(t)||0)+s;e(String(q(i,r,o)))}},H=({onValueChange:e,newValue:t,min:s,max:r})=>{if(e)if(t==="")e("");else{const l=a.parseFloatElseUndefined(t)||0;e(String(q(l,s,r)))}},q=(e,t,s)=>{let r=e;return t!=null&&(r=Math.max(t,r)),s!=null&&(r=Math.min(s,r)),r},z=({value:e,onValueChange:t,max:s,min:r,step:o=1,contentRight:l,disabled:i,className:u,hideButtons:c,...p})=>{const y=x.useCallback(f=>{A({onValueChange:t,value:e,numSteps:f,min:r,max:s})},[e,s,r,t]),_=x.useCallback(f=>{H({onValueChange:t,newValue:f,min:r,max:s})},[s,r,t]),d=c?l:n.jsxs(n.Fragment,{children:[l&&n.jsxs(n.Fragment,{children:[l,n.jsx(a.Space,{})]}),n.jsx(h.UpDownButtons,{onClickUp:i?void 0:()=>y(o),onClickDown:i?void 0:()=>y(-o),iconColor:"var(--swui-textinput-text-color)",disabled:i})]});return n.jsx(F,{contentRight:d,value:e,onValueChange:_,disableContentPaddingRight:!c,type:"number",min:r,max:s,step:o,className:j(Ve.numericTextInputInput,u),disabled:i,...p})},et=(e,t)=>{const s=x.useCallback(o=>{if(t)if(!o)t(void 0);else{const l=a.parseFloatElseUndefined(o);l!==void 0&&t(l)}},[t]),r=x.useMemo(()=>e===void 0?"":String(e),[e]);return{onValueChange:s,value:r}},tt=(e,t)=>{if(T.isNil(e))return!1;{const s=a.parseFloatElseUndefined(e);return!T.isNil(s)&&!T.isNil(t)&&s<=t}},nt=(e,t)=>{if(T.isNil(e))return!1;{const s=a.parseFloatElseUndefined(e);return!T.isNil(s)&&!T.isNil(t)&&s>=t}},st=({disabled:e,onValueChange:t,value:s,max:r,min:o,step:l=1,...i})=>{const u=x.useCallback(p=>{A({onValueChange:t,value:s,numSteps:p,min:o,max:r})},[s,r,o,t]),c=x.useCallback(p=>{H({onValueChange:t,newValue:p,min:o,max:r})},[r,o,t]);return n.jsxs(a.Row,{role:"group",children:[n.jsx(h.FlatButton,{leftIcon:h.stenaMinus,"aria-label":"Decrease",disabled:e||tt(s,o),onClick:()=>u(-l)}),n.jsx(a.Space,{}),n.jsx(z,{hideButtons:!0,onValueChange:c,value:s,max:r,min:o,step:l,disabled:e,...i}),n.jsx(a.Space,{}),n.jsx(h.FlatButton,{leftIcon:h.stenaPlus,"aria-label":"Increase",disabled:e||nt(s,r),onClick:()=>u(l)})]})},rt=({hiddenIcon:e=h.stenaEyeShow,visibleIcon:t=h.stenaEyeHide,...s})=>{const[r,o]=x.useState(!0);return n.jsx(F,{buttonRight:n.jsx(h.TextInputButton,{icon:r?e:t,onClick:()=>o(l=>!l)}),type:r?"password":"text",...s})},G=({disabled:e,text:t,...s})=>n.jsx(a.Text,{variant:"bold",color:$.cssColor(e?"--silver":"--tjara"),size:"small",...a.getDataProps(s),children:t}),O=({htmlFor:e,screenReaderLabel:t,label:s,disabled:r,className:o})=>n.jsxs("label",{htmlFor:e,className:o,children:[t?n.jsx(a.ScreenReaderOnlyText,{children:t}):null,n.jsx(G,{"aria-hidden":!!t,text:s,disabled:r})]}),ot="_labelledSelect_s3b2w_1",lt="_medium_s3b2w_7",ct="_large_s3b2w_11",it="_onlyTopBorder_s3b2w_15",at="_onlyBottomBorder_s3b2w_21",ut="_error_s3b2w_26",dt="_normal_s3b2w_31",_t="_label_s3b2w_1",xt="_select_s3b2w_54",pt="_iconWrapper_s3b2w_88",S={labelledSelect:ot,medium:lt,large:ct,onlyTopBorder:it,onlyBottomBorder:at,error:ut,normal:dt,label:_t,select:xt,iconWrapper:pt},ft=({onChange:e,onValueChange:t,id:s,label:r,screenReaderLabel:o,borderVariant:l="normalBorder",variant:i="normal",size:u="medium",children:c,...p})=>{const y=x.useId(),_=s??y,d=x.useCallback(f=>{e==null||e(f),t==null||t(f.target.value)},[e,t]);return n.jsxs("div",{className:j(S.labelledSelect,S[i],S[u],S[l]),children:[n.jsx(O,{htmlFor:_,className:S.label,label:r,screenReaderLabel:o}),n.jsx("select",{id:_,onChange:d,className:j(S.select,S[i],S[u]),...p,children:c}),n.jsx("div",{className:j(S.iconWrapper),children:n.jsx(h.Icon,{icon:h.stenaAngleDown,size:24,color:$.cssColor("--modern-blue")})})]})},yt="_labelledTextInput_1uyc3_1",ht="_onlyTop_1uyc3_21",bt="_onlyBottom_1uyc3_27",jt="_onlyLeft_1uyc3_32",mt="_onlyRight_1uyc3_38",wt="_disabled_1uyc3_53",It="_medium_1uyc3_61",St="_large_1uyc3_73",gt="_error_1uyc3_87",B={labelledTextInput:yt,onlyTop:ht,onlyBottom:bt,onlyLeft:jt,onlyRight:mt,disabled:wt,medium:It,large:St,error:gt},Tt=fe.forwardRef(({autoComplete:e="off",label:t,id:s,screenReaderLabel:r,size:o="medium",value:l,onChange:i,disabled:u,onValueChange:c,borderRadiusVariant:p="normalBorder",variant:y="normal",width:_,...d},f)=>{const b=x.useId(),w=s??b,I=x.useCallback(g=>{i==null||i(g),c==null||c(g.target.value)},[i,c]);return n.jsxs("div",{className:j(B.labelledTextInput,B[y],B[p],B[o],u&&B.disabled),style:_?{width:_}:void 0,children:[n.jsx(O,{htmlFor:w,screenReaderLabel:r,label:t}),n.jsx("input",{ref:f,id:w,autoComplete:e,type:"text",value:l,onChange:I,disabled:u,...d})]})}),Bt=({variant:e="standard",disabled:t,wrapperClassName:s,wrapperStyle:r,contentLeft:o,contentRight:l,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c,iconRight:p,iconLeft:y,onClickLeft:_,onClickRight:d,children:f})=>{const b=e==="success"?h.stenaCheck:e==="warning"||e==="error"?h.stenaExclamationTriangle:p,w=e==="loading"?n.jsx(h.InputSpinner,{}):l;return n.jsxs("div",{className:j(m.textInput,m.inputContainer,m[e],{[m.disabled]:t},s),style:r,children:[n.jsx(R,{content:o,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c,spaceOnLeft:!0,button:y?n.jsx(h.TextInputButton,{onClick:_,icon:y}):void 0}),n.jsx(a.Row,{alignItems:"center",children:f}),n.jsx(R,{content:w,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c,spaceOnRight:!0,button:b?n.jsx(h.TextInputButton,{onClick:d,icon:b}):void 0})]})},kt="_textArea_6n6nc_1",Rt={textArea:kt},Nt=x.forwardRef(({className:e,value:t,onValueChange:s,onChange:r,resize:o="none",readOnly:l=!1,rows:i,disabled:u,...c},p)=>{const y=x.useCallback(_=>{r&&r(_),s&&s(_.target.value)},[r,s]);return n.jsx("textarea",{disabled:u,rows:i,readOnly:l,className:j(Rt.textArea,e),style:{resize:o},onChange:y,value:t,ref:p,...c})});exports.Checkbox=C;exports.CheckboxWithLabel=ge;exports.InputLabel=O;exports.InputLabelText=G;exports.LabelledSelect=ft;exports.LabelledTextInput=Tt;exports.NumericStepper=st;exports.NumericTextInput=z;exports.PasswordInput=rt;exports.RadioButton=P;exports.RadioButtonBox=Fe;exports.RadioButtonWithLabel=Ae;exports.Switch=U;exports.SwitchWithLabel=me;exports.TextArea=Nt;exports.TextInput=F;exports.TextInputBox=Bt;exports.elementHasSelectionRange=K;exports.onStepValueChange=A;exports.onTextValueChange=H;exports.useKeyboardNavigation=E;exports.useNumericInputValue=et;exports.useSelectAllOnMount=D;exports.useTextInput=v;
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._readOnlyInput_7bzmw_1{background-color:transparent;line-height:var(--swui-line-height);text-align:center;-moz-appearance:textfield;margin:0;padding:0;color:var(--swui-text-primary-color);font-size:var(--swui-font-size-medium);width:60px;font-weight:var(--swui-font-weight-text-bold);font-family:var(--swui-font-primary);border:none;outline:none}._readOnlyInput_7bzmw_1::-webkit-inner-spin-button,._readOnlyInput_7bzmw_1::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}._switch_1d6s8_1{--swui-switch-width: 50px;--swui-switch-height: var(--swui-field-box-size-medium);--swui-switch-animation-time: var(--swui-animation-time-medium);--swui-switch-selected-highlight-color: var(--lhds-color-blue-500);--swui-switch-knob-width: calc(var(--swui-switch-height) - 2px);--swui-switch-knob-bg-color-enabled: var(--swui-handle-bg-enabled-color);--swui-switch-knob-bg-color-disabled: var(--swui-handle-bg-disabled-color);--swui-switch-container-bg-color-enabled: var(--swui-field-bg-enabled);--swui-switch-container-bg-color-disabled: var(--swui-field-bg-disabled);--swui-switch-knob-border-color-enabled: var(--swui-separator-color);--swui-switch-container-border-color: var(--swui-field-border-color);--swui-switch-container-border-color-hover: var( --swui-field-border-color-hover );--swui-switch-container-border-color-disabled: var( --swui-field-border-color-disabled );--swui-switch-knob-shadow-color: var(--swui-field-shadow-color);display:flex;flex-direction:row;border:1px solid var(--swui-switch-container-border-color);box-sizing:border-box;background-color:var(--swui-switch-container-bg-color-enabled);height:var(--swui-switch-height);width:var(--swui-switch-width);border-radius:calc(var(--swui-switch-height) / 2);padding:0;margin:0;cursor:pointer;transition:background-color var(--swui-switch-animation-time)}._switch_1d6s8_1:focus{outline:0}._switch_1d6s8_1:focus-visible{outline:var(--swui-focus-outline);outline-offset:2px;border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:hover{border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:disabled{cursor:default;background-color:var(--swui-switch-container-bg-color-disabled);border:1px solid var(--swui-switch-container-border-color-disabled)}._switch_1d6s8_1:disabled ._knob_1d6s8_56{background-color:var(--swui-switch-knob-bg-color-disabled)}._switch_1d6s8_1 ._filler_1d6s8_61{flex:none;transition:flex var(--swui-switch-animation-time)}._switch_1d6s8_1 ._knob_1d6s8_56{width:var(--swui-switch-knob-width);height:var(--swui-switch-knob-width);border-radius:50%;background-color:var(--swui-switch-knob-bg-color-enabled);box-shadow:var(--swui-switch-knob-shadow-color) 0 0 4px 1px}._checked_1d6s8_75{border:1px solid var(--swui-switch-selected-highlight-color);background-color:var(--swui-switch-selected-highlight-color)}._checked_1d6s8_75 ._filler_1d6s8_61{flex:1}._checkbox_1t23r_1{--swui-checkbox-height: var(--swui-field-box-size-medium);--swui-checkbox-height-small: var(--swui-field-box-size-small);--swui-checkbox-border-radius: var(--swui-field-border-radius);--swui-checkbox-animation-time: var(--swui-animation-time-medium);--swui-checkbox-icon-color: var(--swui-field-indicator-active-color);--swui-checkbox-disabled-icon-color: var(--swui-text-disabled-color);--swui-checkbox-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-checkbox-unchecked-bg-color: var(--swui-white);--swui-checkbox-checked-bg-color: var(--lhds-color-blue-500);--swui-checkbox-disabled-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-disabled-checked-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-border-color: var(--swui-field-border-color);--swui-checkbox-border-hover-color: var(--swui-field-border-color-hover);--swui-checkbox-disabled-border-color: var(--swui-checkbox-disabled-bg-color);-webkit-appearance:none;-moz-appearance:none;border-radius:var(--swui-checkbox-border-radius);outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-checkbox-border-color));background:var(--current-bg-color, var(--swui-checkbox-unchecked-bg-color));transition:background var(--swui-checkbox-animation-time),border-color var(--swui-checkbox-animation-time);flex-shrink:0}._checkbox_1t23r_1._standard_1t23r_40{width:var(--swui-checkbox-height);height:var(--swui-checkbox-height)}._checkbox_1t23r_1._standard_1t23r_40:after{width:3px;height:6px;left:9px;top:6px}._checkbox_1t23r_1._small_1t23r_52{width:var(--swui-checkbox-height-small);height:var(--swui-checkbox-height-small)}._checkbox_1t23r_1._small_1t23r_52:after{width:3px;height:6px;left:5px;top:2px}._checkbox_1t23r_1:after{content:"";display:block;position:absolute;transition:transform var(--swui-checkbox-animation-time) var(--d-t-e, ease),opacity var(--swui-checkbox-animation-time),width var(--swui-checkbox-animation-time),top var(--swui-checkbox-animation-time);border:2px solid var( --current-checkbox-icon-color, var(--swui-checkbox-unchecked-icon-color) );border-top:0;border-left:0;transform:rotate(var(--current-check-rotation, 20deg));box-sizing:content-box}._checkbox_1t23r_1:checked{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1t23r_1:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color)}._checkbox_1t23r_1:disabled:not(:checked){--current-bg-color: var(--swui-checkbox-disabled-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1t23r_1:disabled:not(:checked):after{--current-checkbox-icon-color: --swui-checkbox-unchecked-icon-color}._checkbox_1t23r_1:disabled:checked{--current-bg-color: var(--swui-checkbox-disabled-checked-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1t23r_1:disabled:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1t23r_1:indeterminate{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1t23r_1:indeterminate:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color);border-right:0;transform:rotate(0);width:6px}._checkbox_1t23r_1:indeterminate._standard_1t23r_40:after{top:4px;left:8px}._checkbox_1t23r_1:indeterminate._small_1t23r_52:after{top:0;left:4px}._checkbox_1t23r_1:indeterminate:disabled:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1t23r_1:hover:not(:checked):not(:disabled){--current-border-color: var(--swui-checkbox-border-hover-color)}._checkbox_1t23r_1:focus-visible{outline:var(--swui-focus-outline)}._checkbox_1t23r_1+label{font-size:1.4rem;line-height:var(--swui-checkbox-height);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radiobutton_a19yk_1{--swui-radiobutton-size-standard: var(--swui-field-box-size-medium);--swui-radiobutton-size-small: var(--swui-field-box-size-small);--swui-radiobutton-animation-time: var(--swui-animation-time-medium);--swui-radiobutton-icon-color: var(--swui-field-indicator-active-color);--swui-radiobutton-disabled-icon-color: var(--swui-field-text-color-disabled);--swui-radiobutton-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-radiobutton-checked-bg-color: var(--lhds-color-blue-500);--swui-radiobutton-checked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-bg-color: var(--swui-white);--swui-radiobutton-unchecked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-border-color: var(--swui-field-border-color);--swui-radiobutton-unchecked-hover-border-color: var( --swui-field-border-color-hover );--swui-radiobutton-disabled-border-color: var( --swui-radiobutton-checked-disabled-bg-color );-webkit-appearance:none;-moz-appearance:none;outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;flex:none;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-radiobutton-unchecked-border-color));border-radius:50%;background:var( --current-bg-color, var(--swui-radiobutton-unchecked-bg-color) );transition:background var(--swui-radiobutton-animation-time),border-color var(--swui-radiobutton-animation-time)}._radiobutton_a19yk_1._standard_a19yk_46{height:var(--swui-radiobutton-size-standard);width:var(--swui-radiobutton-size-standard)}._radiobutton_a19yk_1._standard_a19yk_46:after{left:7px;top:7px}._radiobutton_a19yk_1._small_a19yk_56{height:var(--swui-radiobutton-size-small);width:var(--swui-radiobutton-size-small)}._radiobutton_a19yk_1._small_a19yk_56:after{left:3px;top:3px}._radiobutton_a19yk_1:after{content:"";display:block;position:absolute;transition:transform var(--current-transform-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease),opacity var(--current-opacity-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease);transform:scale(var(--current-scale, 0));width:8px;height:8px;border-radius:50%;background:var( --current-icon-color, var(--swui-radiobutton-unchecked-icon-color) );opacity:var(--current-opacity, 0)}._radiobutton_a19yk_1:checked{--current-bg-color: var(--swui-radiobutton-checked-bg-color);--current-border-color: var(--swui-radiobutton-checked-bg-color);--current-opacity-time: var(--swui-radiobutton-animation-time);--current-transform-time: .6s;--current-transform-type: cubic-bezier(.2, .85, .32, 1.2);--current-opacity: 1;--current-scale: 1}._radiobutton_a19yk_1:checked:after{--current-icon-color: var(--swui-radiobutton-icon-color)}._radiobutton_a19yk_1:disabled{--current-bg-color: var(--swui-radiobutton-unchecked-disabled-bg-color);--current-border-color: var(--swui-radiobutton-disabled-border-color)}._radiobutton_a19yk_1:disabled:checked{--current-bg-color: var(--swui-radiobutton-checked-disabled-bg-color)}._radiobutton_a19yk_1:disabled:checked:after{--current-icon-color: var(--swui-radiobutton-disabled-icon-color)}._radiobutton_a19yk_1:hover:not(:checked):not(:disabled){--current-border-color: var( --swui-radiobutton-unchecked-hover-border-color )}._radiobutton_a19yk_1:focus-visible{outline:var(--swui-focus-outline)}._radiobutton_a19yk_1+label{font-size:1.4rem;line-height:var(--swui-radiobutton-size-standard);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radioButtonBox_yl38n_1{box-sizing:border-box;background-color:var(--lhds-color-ui-200);position:relative;border:1px solid var(--silver-ui);width:100%;border-radius:16px;font-size:var(--swui-font-size-inputs);align-items:center;display:flex;cursor:pointer;outline:none}._radioButtonBox_yl38n_1._medium_yl38n_14{padding:0 var(--swui-metrics-space);height:42px}._radioButtonBox_yl38n_1._large_yl38n_19{height:48px;padding:0 calc(var(--swui-metrics-space) * 2)}._radioButtonBox_yl38n_1:hover{border-color:var(--hav)}._radioButtonBox_yl38n_1._danger_yl38n_28{background-color:var(--snackskal-light);border-color:var(--snackskal-light)}._radioButtonBox_yl38n_1._danger_yl38n_28:hover{border-color:var(--lhds-color-red-500)}@media (max-width: 768px){._radioButtonWrapper_yl38n_39{width:100%}}._textInput_1qe61_1{display:flex;height:var(--swui-field-height);width:100%;align-items:center;background:var(--swui-field-bg-enabled);border:1px solid var(--swui-field-border-color);border-radius:var(--swui-field-border-radius);outline:none}._textInput_1qe61_1._textInput_1qe61_1._onlyTop_1qe61_11{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._textInput_1qe61_1._textInput_1qe61_1._onlyTop_1qe61_11:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1._onlyBottom_1qe61_20{border-top-left-radius:0;border-top-right-radius:0}._textInput_1qe61_1._textInput_1qe61_1._onlyBottom_1qe61_20:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1._onlyLeft_1qe61_28{border-bottom-right-radius:0;border-top-right-radius:0;border-right-color:transparent}._textInput_1qe61_1._textInput_1qe61_1._onlyLeft_1qe61_28:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1._onlyRight_1qe61_37{border-top-left-radius:0;border-bottom-left-radius:0}._textInput_1qe61_1._textInput_1qe61_1._onlyRight_1qe61_37:focus-within:not(._disabled_1qe61_15){z-index:1}._textInput_1qe61_1._textInput_1qe61_1:focus-within:not(._disabled_1qe61_15){outline:var(--swui-focus-outline);border-color:transparent}._textInput_1qe61_1 ._input_1qe61_50{letter-spacing:var(--swui-field-letter-spacing);line-height:var(--swui-field-text-line-height);width:100%;padding:2px var(--swui-metrics-indent);color:var(--swui-field-text-color);font-size:var(--swui-font-size-inputs);font-family:var(--swui-font-input);font-weight:var(--swui-font-weight-inputs);background:var(--swui-hidden);border:none;min-width:0;margin:0;outline:none}._textInput_1qe61_1 ._input_1qe61_50:disabled{color:var(--swui-field-text-color-disabled)}._textInput_1qe61_1 ._input_1qe61_50::placeholder{color:var(--swui-field-placeholder-color);font-weight:var(--swui-field-placeholder-font-weight)}._textInput_1qe61_1 ._input_1qe61_50:not(._alwaysShowPlaceholder_1qe61_74):focus::placeholder{opacity:0}._textInput_1qe61_1 ._input_1qe61_50::-webkit-calendar-picker-indicator{display:none}._textInput_1qe61_1 ._icon_1qe61_85{transition:color var(--swui-animation-time-medium);color:var(--swui-field-icon-color);font-size:var(--swui-field-icon-size)}._textInput_1qe61_1._standard_1qe61_95:hover:not(:focus-within):not(._disabled_1qe61_15),._textInput_1qe61_1._success_1qe61_96:hover:not(:focus-within):not(._disabled_1qe61_15){border-color:var(--swui-field-border-color-hover)}._textInput_1qe61_1._success_1qe61_96 ._icon_1qe61_85{color:var(--swui-state-success-color)}._textInput_1qe61_1._loading_1qe61_108{background:var(--swui-state-loading-light-color);border-color:var(--swui-state-loading-color)}._textInput_1qe61_1._modified_1qe61_113{background:var(--swui-state-modified-light-color);border-color:var(--swui-state-modified-light-color)}._textInput_1qe61_1._modified_1qe61_113 ._icon_1qe61_85{color:var(--lhds-color-blue-300)}._textInput_1qe61_1._error_1qe61_122{background:var(--swui-state-error-light-color);border-color:var(--swui-state-error-light-color)}._textInput_1qe61_1._error_1qe61_122 ._icon_1qe61_85{color:var(--swui-state-error-light-color)}._textInput_1qe61_1._warning_1qe61_131{background:var(--swui-state-alert-light-color);border-color:var(--swui-state-alert-light-color)}._textInput_1qe61_1._warning_1qe61_131 ._icon_1qe61_85{color:var(--swui-state-alert-light-color)}._textInput_1qe61_1._disabled_1qe61_15{background:var(--swui-field-bg-disabled);border-color:var(--swui-field-bg-disabled)}._textInput_1qe61_1._textInput_1qe61_1._hideBorder_1qe61_145{border:none;box-shadow:none;background:none;outline:none}._textInput_1qe61_1 ._clickable_1qe61_152:hover{cursor:pointer}._textInput_1qe61_1 ._clickable_1qe61_152:hover ._icon_1qe61_85{color:var(--swui-primary-action-color)}._numericTextInputInput_1tnr6_1{-moz-appearance:textfield}._numericTextInputInput_1tnr6_1::-webkit-outer-spin-button,._numericTextInputInput_1tnr6_1::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._labelledSelect_s3b2w_1{border:1px solid var(--swui-field-border-color);position:relative;overflow:hidden;cursor:pointer}._labelledSelect_s3b2w_1._medium_s3b2w_7{border-radius:var(--swui-border-radius)}._labelledSelect_s3b2w_1._large_s3b2w_11{border-radius:var(--swui-border-radius-large)}._labelledSelect_s3b2w_1._labelledSelect_s3b2w_1._onlyTopBorder_s3b2w_15{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledSelect_s3b2w_1._onlyBottomBorder_s3b2w_21{border-top-left-radius:0;border-top-right-radius:0}._labelledSelect_s3b2w_1._error_s3b2w_26{border-color:var(--snackskal);background-color:var(--snackskal)}._labelledSelect_s3b2w_1._normal_s3b2w_31{border-color:var(--swui-field-border-color);background-color:var(--moln)}._labelledSelect_s3b2w_1._labelledSelect_s3b2w_1:focus-within{border-color:var(--swui-field-border-color-hover);outline:var(--swui-focus-outline);outline-offset:0;z-index:10}._labelledSelect_s3b2w_1._labelledSelect_s3b2w_1:hover{border-color:var(--swui-field-border-color-hover)}._labelledSelect_s3b2w_1 ._label_s3b2w_1{display:flex;cursor:pointer;padding:calc(var(--swui-metrics-space) * 1) calc(var(--swui-metrics-space) * 2) 0}._labelledSelect_s3b2w_1 ._select_s3b2w_54{color:var(--swui-text-primary-color);display:block;margin:0;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;line-height:1.5;box-sizing:border-box;cursor:pointer}._labelledSelect_s3b2w_1 ._select_s3b2w_54._error_s3b2w_26{background-color:var(--snackskal)}._labelledSelect_s3b2w_1 ._select_s3b2w_54._normal_s3b2w_31{background-color:var(--moln)}._labelledSelect_s3b2w_1 ._select_s3b2w_54._medium_s3b2w_7{font-size:var(--swui-font-size-inputs);padding:calc(var(--swui-metrics-space) * .5) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 1)}._labelledSelect_s3b2w_1 ._select_s3b2w_54._large_s3b2w_11{font-size:var(--swui-font-size-inputs-large);padding:calc(var(--swui-metrics-space) * 1.5) calc(var(--swui-metrics-space) * 8) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledSelect_s3b2w_1 ._iconWrapper_s3b2w_88{border-radius:var(--swui-max-border-radius);width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;right:calc(var(--swui-metrics-space) * 2);margin-top:auto;margin-bottom:auto;padding:0;background:var(--silver-lighter);pointer-events:none}._labelledTextInput_1uyc3_1{position:relative;background:var(--moln);overflow:hidden;cursor:text;border:1px solid var(--silver-light);border-radius:var(--swui-border-radius)}._labelledTextInput_1uyc3_1 input{outline:none;border:none;margin:0;color:var(--swui-text-primary-color);background-color:transparent;line-height:var(--swui-line-height);width:100%;box-sizing:border-box;cursor:text}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyTop_1uyc3_21{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyBottom_1uyc3_27{border-top-left-radius:0;border-top-right-radius:0}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyLeft_1uyc3_32{border-bottom-right-radius:0;border-top-right-radius:0;border-right-color:transparent}._labelledTextInput_1uyc3_1._labelledTextInput_1uyc3_1._onlyRight_1uyc3_38{border-top-left-radius:0;border-bottom-left-radius:0}._labelledTextInput_1uyc3_1:focus-within{outline:var(--swui-focus-outline);outline-offset:-1px;border-color:transparent}._labelledTextInput_1uyc3_1:hover:not(:focus-within){border-color:var(--hav)}._labelledTextInput_1uyc3_1._disabled_1uyc3_53{background-color:var(--silver-lighter)}._labelledTextInput_1uyc3_1._disabled_1uyc3_53 input{color:var(--silver)}._labelledTextInput_1uyc3_1._medium_1uyc3_61:focus-within{outline-width:2px}._labelledTextInput_1uyc3_1._medium_1uyc3_61 input{font-size:var(--swui-font-size-inputs);padding:calc(var(--swui-metrics-space) * .5) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 1)}._labelledTextInput_1uyc3_1._large_1uyc3_73{border-radius:var(--swui-border-radius-large)}._labelledTextInput_1uyc3_1._large_1uyc3_73:focus-within{outline-width:3px}._labelledTextInput_1uyc3_1._large_1uyc3_73 input{font-size:var(--swui-font-size-inputs-large);padding:calc(var(--swui-metrics-space) * 1) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledTextInput_1uyc3_1._error_1uyc3_87{border-color:var(--swui-state-error-light-color);background-color:var(--swui-state-error-light-color)}._labelledTextInput_1uyc3_1._error_1uyc3_87:hover:not(:focus-within){border-color:var(--modern-red)}._labelledTextInput_1uyc3_1 label{display:flex;padding:calc(var(--swui-metrics-space) * 1) calc(var(--swui-metrics-space) * 2) 0;cursor:text}._textArea_6n6nc_1{--swui-textarea-text-color: var(--swui-field-text-color);--swui-textarea-text-color-disabled: var(--swui-field-text-color-disabled);--swui-textarea-letter-spacing: var(--swui-field-letter-spacing);--swui-textarea-line-height: var(--swui-field-text-line-height);--swui-textarea-indent: var(--swui-metrics-indent);--swui-textarea-font-size: var(--swui-font-size-inputs);--swui-textarea-font-family: var(--swui-font-input);--swui-textarea-font-weight: var(--swui-font-weight-inputs);--swui-textarea-placeholder-color: var(--swui-text-disabled-color);--swui-textarea-animation-time: var(--swui-animation-time-medium);--swui-textarea-icon-color: var(--swui-field-border-color-disabled);--swui-textarea-icon-size: var(--swui-field-icon-size);--swui-textarea-icon-color-success: var(--swui-state-success-color);--swui-textarea-bg-loading: var(--swui-state-loading-light-color);--swui-textarea-border-color-loading: var(--swui-state-loading-color);--swui-textarea-bg-modified: var(--swui-state-modified-light-color);--swui-textarea-border-color-modified: var(--swui-state-modified-color);--swui-textarea-bg-warning: var(--swui-state-alert-light-color);--swui-textarea-border-color-warning: var(--swui-state-alert-color);--swui-textarea-bg-error: var(--swui-state-error-light-color);--swui-textarea-border-color-error: var(--swui-state-error-color);--swui-textarea-bg-color: var(--swui-field-bg-enabled);--swui-textarea-bg-color-disabled: var(--swui-field-bg-disabled);--swui-textarea-border-radius: var(--swui-field-border-radius);--swui-textarea-border-color: var(--swui-field-border-color);--swui-textarea-border-color-hover: var(--swui-field-border-color-hover);--swui-textarea-border-color-disabled: var( --swui-field-border-color-disabled );max-width:100%;letter-spacing:var(--swui-textarea-letter-spacing);line-height:var(--swui-textarea-line-height);padding:2px var(--swui-textarea-indent);color:var(--swui-textarea-text-color);font-size:var(--swui-textarea-font-size);font-family:var(--swui-textarea-font-family);font-weight:var(--swui-textarea-font-weight);background:var(--current-bg, var(--swui-textarea-bg-color));border:1px solid var(--current-border-color, var(--swui-textarea-border-color));border-radius:var(--swui-textarea-border-radius);transition:border var(--swui-textarea-animation-time);--current-icon-color: var(--swui-textarea-icon-color)}._textArea_6n6nc_1:focus:not(:focus-visible){outline:none}._textArea_6n6nc_1:focus{--current-border-color: var(--swui-textarea-border-color-hover);--current-bg: var(--swui-textarea-bg-color)}._textArea_6n6nc_1:focus-visible{outline:var(--swui-focus-outline)}._textArea_6n6nc_1:disabled{color:var(--swui-textarea-text-color-disabled);--current-bg: var(--swui-textarea-bg-color-disabled);--current-border-color: var(--swui-textarea-border-color-disabled)}')),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),a=require("@stenajs-webui/core"),x=require("react"),b=require("@stenajs-webui/elements"),j=require("classnames"),$=require("@stenajs-webui/theme"),xt=require("@fortawesome/react-fontawesome"),B=require("lodash-es");function ft(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,r.get?r:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const yt=ft(x),bt="_readOnlyInput_7bzmw_1",mt={readOnlyInput:bt},U=({value:t,id:e,...s})=>n.jsx("input",{...s,type:"number",id:e,value:t,readOnly:!0,className:mt.readOnlyInput}),jt=({value:t,onValueChange:e,decreaseDisabled:s,increaseDisabled:r,inputId:o,ariaLabelDecrease:l,ariaLabelIncrease:i,textValueAriaLabel:u,increaseTestId:c,decreaseTestId:f,onIncrease:p,onDecrease:d,size:_})=>{const y=x.useCallback(()=>{p==null||p(),e==null||e(t+1)},[p,e,t]),m=x.useCallback(()=>{d==null||d(),e==null||e(t-1)},[d,e,t]);return n.jsxs(a.Row,{alignItems:"center",children:[n.jsx(b.PrimaryButton,{size:_,"aria-label":l,leftIcon:b.stenaMinus,"data-testid":f??"decrease",disabled:s,onClick:m}),n.jsx(U,{id:o,"data-testid":"amountStepperValue",value:t.toString(),"aria-label":u}),n.jsx(b.PrimaryButton,{size:_,leftIcon:b.stenaPlus,"aria-label":i,"data-testid":c??"increase",disabled:r,onClick:y})]})},ht="_knob_1d6s8_56",wt="_filler_1d6s8_61",It="_checked_1d6s8_75",g={switch:"_switch_1d6s8_1",knob:ht,filler:wt,checked:It},St=`${g.switch} ${g.checked}`,E=({value:t,disabled:e,onValueChange:s,className:r,wrapperRef:o,...l})=>n.jsx("div",{className:r,ref:o,children:n.jsxs("button",{type:"button",role:"switch","aria-checked":t,className:t?St:g.switch,disabled:e,onClick:()=>s&&s(!t),...l,children:[n.jsx("div",{className:g.filler}),n.jsx("div",{className:g.knob})]})}),kt=({label:t,disabled:e,textColor:s,wrapperRef:r,screenReaderLabel:o,...l})=>n.jsx("div",{ref:r,children:n.jsx("label",{children:n.jsxs(a.Box,{row:!0,alignItems:"center",children:[n.jsx(E,{disabled:e,...l}),n.jsx(a.Space,{}),o?n.jsx(a.ScreenReaderOnlyText,{children:o}):null,n.jsx(a.Text,{color:s,"aria-hidden":!!o,userSelect:"none",children:t})]})})}),Bt="_checkbox_1t23r_1",Tt="_standard_1t23r_40",gt="_small_1t23r_52",L={checkbox:Bt,standard:Tt,small:gt},K=x.forwardRef(({indeterminate:t=!1,onChange:e,onValueChange:s,value:r=!1,size:o="standard",className:l,...i},u)=>{const c=x.useRef(null),f=d=>{c.current=d,c.current&&(c.current.indeterminate=!!t),u&&(typeof u=="function"?u(d):u.current=d)},p=x.useCallback(d=>{e&&e(d),s&&s(d.target.checked)},[e,s]);return x.useEffect(()=>{c.current&&(c.current.indeterminate=!!t)},[t,c]),n.jsx("input",{type:"checkbox",className:j(L.checkbox,L[o],l),checked:r,onChange:p,ref:f,...i})}),Rt=({children:t,label:e,inputRef:s,wrapperRef:r,textColor:o,screenReaderLabel:l,...i})=>n.jsx("div",{ref:r,children:n.jsx("label",{children:n.jsxs(a.Row,{alignItems:"center",children:[n.jsx(K,{...i,ref:s}),n.jsx(a.Space,{}),l?n.jsx(a.ScreenReaderOnlyText,{children:l}):null,n.jsx(a.Text,{color:o,"aria-hidden":!!l,userSelect:"none",children:e}),t]})})}),Nt="_radiobutton_a19yk_1",qt="_standard_a19yk_46",$t="_small_a19yk_56",M={radiobutton:Nt,standard:qt,small:$t},P=x.forwardRef(({onChange:t,onValueChange:e,size:s="standard",name:r,className:o,...l},i)=>{const u=x.useCallback(c=>{t&&t(c),e&&e(c.target.value)},[t,e]);return n.jsx("input",{type:"radio",name:r,className:j(M.radiobutton,M[s],o),onChange:u,ref:i,...l})}),Pt="_radioButtonBox_yl38n_1",Ot="_medium_yl38n_14",At="_large_yl38n_19",Ft="_danger_yl38n_28",Ht="_radioButtonWrapper_yl38n_39",N={radioButtonBox:Pt,medium:Ot,large:At,danger:Ft,radioButtonWrapper:Ht},Wt=({label:t,screenReaderLabel:e,variant:s="normal",size:r="medium",className:o,icon:l,contentRight:i,style:u,disabled:c,radioButtonClassName:f,...p})=>{const d=c?$.cssColor("--swui-text-disabled-color"):void 0;return n.jsx("label",{className:j(N.radioButtonBox,N[s],N[r],o),style:u,children:n.jsxs(a.Row,{justifyContent:"space-between",flexGrow:1,children:[n.jsxs(a.Row,{alignItems:"center",children:[n.jsx(P,{...p,disabled:c,className:f}),n.jsx(a.Space,{}),e?n.jsx(a.ScreenReaderOnlyText,{children:e}):null,n.jsx(a.Text,{color:d,"aria-hidden":!!e,children:t})]}),n.jsxs(a.Row,{alignItems:"center",width:l?"48px":void 0,justifyContent:"center",children:[l&&n.jsx(b.Icon,{icon:l,size:24,color:d}),!l&&i]})]})})},Lt=({label:t,inputRef:e,wrapperRef:s,textColor:r,screenReaderLabel:o,...l})=>n.jsx("div",{ref:s,children:n.jsx("label",{children:n.jsxs(a.Row,{alignItems:"center",children:[n.jsx(P,{ref:e,...l}),n.jsx(a.Space,{}),o?n.jsx(a.ScreenReaderOnlyText,{children:o}):null,n.jsx(a.Text,{color:r,"aria-hidden":!!o,userSelect:"none",children:t})]})})}),C=(t,e,s,r,o,l,i,u)=>{const c=x.useRef(!1),f=_=>{c.current||l==null||l(_.target.value??""),i==null||i(_)},p=_=>{c.current=!1,u==null||u(_)};return{onKeyDownHandler:x.useCallback(_=>{const{key:y}=_;if(y==="Enter")c.current=!0,s==null||s(),l==null||l(_.currentTarget.value??"");else if(y==="Escape")c.current=!0,r==null||r(),_.preventDefault(),_.stopPropagation();else if(o){const m=(w,I)=>{c.current=!0,t.current.blur(),o(w),I.preventDefault(),I.stopPropagation()};_.shiftKey&&y==="Tab"?m("left",_):y==="Tab"?m("right",_):y==="ArrowUp"?m("up",_):y==="ArrowDown"?m("down",_):y==="ArrowRight"?t.current.value.length===t.current.selectionStart&&m("right",_):y==="ArrowLeft"&&t.current.selectionStart===0&&m("left",_)}e&&e(_)},[r,o,e,t,s,l]),onBlurHandler:f,onFocusHandler:p}};function z(t){return t.tagName==="TEXTAREA"||t.tagName==="INPUT"&&(t.type==="text"||t.type==="search"||t.type==="url"||t.type==="tel"||t.type==="password")}const G=(t,e,s)=>{x.useEffect(()=>{t.current&&z(t.current)&&(s?t.current.setSelectionRange(0,t.current.value.length):e&&t.current.setSelectionRange(t.current.value.length,t.current.value.length))},[e,t,s])},X=(t,{onEnter:e,onEsc:s,onChange:r,onValueChange:o,selectAllOnMount:l,moveCursorToEndOnMount:i,onDone:u,onMove:c,onFocus:f,onBlur:p,onKeyDown:d,autoFocus:_})=>{G(t,!!i,!!l);const{onKeyDownHandler:y,onFocusHandler:m,onBlurHandler:w}=C(t,d,e,s,c,u,p,f),I=x.useCallback(k=>{r==null||r(k),o==null||o(k.target.value)},[r,o]);return{onBlur:w,onChange:I,onFocus:m,onKeyDown:y,autoFocus:l||_}},Mt="_textInput_1qe61_1",Ut="_onlyTop_1qe61_11",Et="_disabled_1qe61_15",Kt="_onlyBottom_1qe61_20",Ct="_onlyLeft_1qe61_28",zt="_onlyRight_1qe61_37",Gt="_input_1qe61_50",Xt="_alwaysShowPlaceholder_1qe61_74",vt="_icon_1qe61_85",Jt="_standard_1qe61_95",Qt="_success_1qe61_96",Yt="_loading_1qe61_108",Zt="_modified_1qe61_113",Dt="_error_1qe61_122",Vt="_warning_1qe61_131",te="_hideBorder_1qe61_145",ee="_clickable_1qe61_152",h={textInput:Mt,onlyTop:Ut,disabled:Et,onlyBottom:Kt,onlyLeft:Ct,onlyRight:zt,input:Gt,alwaysShowPlaceholder:Xt,icon:vt,standard:Jt,success:Qt,loading:Yt,modified:Zt,error:Dt,warning:Vt,hideBorder:te,clickable:ee},R=({button:t,icon:e,iconClassName:s,content:r,spaceOnLeft:o,spaceOnRight:l,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c})=>!r&&!e&&!t?null:t?n.jsxs(n.Fragment,{children:[o?n.jsx(a.Space,{num:.25}):null,t,l?n.jsx(a.Space,{num:.25}):null]}):r?n.jsxs(n.Fragment,{children:[o&&!(i||u)?n.jsx(a.Space,{}):null,r||null,l&&!(i||c)?n.jsx(a.Space,{}):null]}):n.jsxs(n.Fragment,{children:[o?n.jsx(a.Space,{}):null,e&&n.jsx(xt.FontAwesomeIcon,{icon:e,className:j(h.icon,s)}),l?n.jsx(a.Space,{}):null]}),O=t=>{const{variant:e="standard",inputRef:s,disabled:r,className:o,buttonLeft:l,buttonRight:i,contentLeft:u,contentRight:c,disableContentPadding:f,disableContentPaddingLeft:p,disableContentPaddingRight:d,iconLeft:_,iconRight:y,moveCursorToEndOnMount:m,selectAllOnMount:w,autoFocus:I,onValueChange:k,wrapperClassName:Q,wrapperStyle:Y,onDone:Z,onEnter:D,onEsc:V,onMove:tt,onChange:et,onKeyDown:nt,hideBorder:st,onFocus:rt,onBlur:ot,borderRadiusVariant:lt="normalBorder",width:ct,alwaysShowPlaceholder:it,...at}=t,ut=x.useRef(null),W=s??ut,dt=X(W,{onEnter:D,onEsc:V,onChange:et,onValueChange:k,selectAllOnMount:w,moveCursorToEndOnMount:m,onDone:Z,onMove:tt,onFocus:rt,onBlur:ot,onKeyDown:nt,autoFocus:I}),_t=e==="success"?b.stenaCheck:e==="warning"||e==="error"?b.stenaExclamationTriangle:y,pt=e==="loading"?n.jsx(b.InputSpinner,{}):c;return n.jsxs("div",{className:j(h.textInput,h[e],h[lt],{[h.disabled]:r},{[h.hideBorder]:st},Q),style:{width:ct,...Y},children:[n.jsx(R,{content:u,disableContentPadding:f,disableContentPaddingLeft:p,disableContentPaddingRight:d,icon:_,spaceOnLeft:!0,button:l}),n.jsx("input",{className:j(h.input,{[h.alwaysShowPlaceholder]:it},o),type:"text",disabled:r,ref:W,autoFocus:I,...at,...dt}),n.jsx(R,{content:pt,disableContentPadding:f,disableContentPaddingLeft:p,disableContentPaddingRight:d,icon:_t,spaceOnRight:!0,button:i})]})},ne="_numericTextInputInput_1tnr6_1",se={numericTextInputInput:ne},A=({onValueChange:t,value:e,numSteps:s,min:r,max:o})=>{if(t)if(!e)t(String(q(s,r,o)));else{const i=(a.parseFloatElseUndefined(e)||0)+s;t(String(q(i,r,o)))}},F=({onValueChange:t,newValue:e,min:s,max:r})=>{if(t)if(e==="")t("");else{const l=a.parseFloatElseUndefined(e)||0;t(String(q(l,s,r)))}},q=(t,e,s)=>{let r=t;return e!=null&&(r=Math.max(e,r)),s!=null&&(r=Math.min(s,r)),r},v=({value:t,onValueChange:e,max:s,min:r,step:o=1,contentRight:l,disabled:i,className:u,hideButtons:c,...f})=>{const p=x.useCallback(y=>{A({onValueChange:e,value:t,numSteps:y,min:r,max:s})},[t,s,r,e]),d=x.useCallback(y=>{F({onValueChange:e,newValue:y,min:r,max:s})},[s,r,e]),_=c?l:n.jsxs(n.Fragment,{children:[l&&n.jsxs(n.Fragment,{children:[l,n.jsx(a.Space,{})]}),n.jsx(b.UpDownButtons,{onClickUp:i?void 0:()=>p(o),onClickDown:i?void 0:()=>p(-o),iconColor:"var(--swui-textinput-text-color)",disabled:i})]});return n.jsx(O,{contentRight:_,value:t,onValueChange:d,disableContentPaddingRight:!c,type:"number",min:r,max:s,step:o,className:j(se.numericTextInputInput,u),disabled:i,...f})},re=(t,e)=>{const s=x.useCallback(o=>{if(e)if(!o)e(void 0);else{const l=a.parseFloatElseUndefined(o);l!==void 0&&e(l)}},[e]),r=x.useMemo(()=>t===void 0?"":String(t),[t]);return{onValueChange:s,value:r}},oe=(t,e)=>{if(B.isNil(t))return!1;{const s=a.parseFloatElseUndefined(t);return!B.isNil(s)&&!B.isNil(e)&&s<=e}},le=(t,e)=>{if(B.isNil(t))return!1;{const s=a.parseFloatElseUndefined(t);return!B.isNil(s)&&!B.isNil(e)&&s>=e}},ce=({disabled:t,onValueChange:e,value:s,max:r,min:o,step:l=1,...i})=>{const u=x.useCallback(f=>{A({onValueChange:e,value:s,numSteps:f,min:o,max:r})},[s,r,o,e]),c=x.useCallback(f=>{F({onValueChange:e,newValue:f,min:o,max:r})},[r,o,e]);return n.jsxs(a.Row,{role:"group",children:[n.jsx(b.FlatButton,{leftIcon:b.stenaMinus,"aria-label":"Decrease",disabled:t||oe(s,o),onClick:()=>u(-l)}),n.jsx(a.Space,{}),n.jsx(v,{hideButtons:!0,onValueChange:c,value:s,max:r,min:o,step:l,disabled:t,...i}),n.jsx(a.Space,{}),n.jsx(b.FlatButton,{leftIcon:b.stenaPlus,"aria-label":"Increase",disabled:t||le(s,r),onClick:()=>u(l)})]})},ie=({hiddenIcon:t=b.stenaEyeShow,visibleIcon:e=b.stenaEyeHide,...s})=>{const[r,o]=x.useState(!0);return n.jsx(O,{buttonRight:n.jsx(b.TextInputButton,{icon:r?t:e,onClick:()=>o(l=>!l)}),type:r?"password":"text",...s})},J=({disabled:t,text:e,...s})=>n.jsx(a.Text,{variant:"bold",color:$.cssColor(t?"--silver":"--tjara"),size:"small",...a.getDataProps(s),children:e}),H=({htmlFor:t,screenReaderLabel:e,label:s,disabled:r,className:o})=>n.jsxs("label",{htmlFor:t,className:o,children:[e?n.jsx(a.ScreenReaderOnlyText,{children:e}):null,n.jsx(J,{"aria-hidden":!!e,text:s,disabled:r})]}),ae="_labelledSelect_s3b2w_1",ue="_medium_s3b2w_7",de="_large_s3b2w_11",_e="_onlyTopBorder_s3b2w_15",pe="_onlyBottomBorder_s3b2w_21",xe="_error_s3b2w_26",fe="_normal_s3b2w_31",ye="_label_s3b2w_1",be="_select_s3b2w_54",me="_iconWrapper_s3b2w_88",S={labelledSelect:ae,medium:ue,large:de,onlyTopBorder:_e,onlyBottomBorder:pe,error:xe,normal:fe,label:ye,select:be,iconWrapper:me},je=({onChange:t,onValueChange:e,id:s,label:r,screenReaderLabel:o,borderVariant:l="normalBorder",variant:i="normal",size:u="medium",children:c,...f})=>{const p=x.useId(),d=s??p,_=x.useCallback(y=>{t==null||t(y),e==null||e(y.target.value)},[t,e]);return n.jsxs("div",{className:j(S.labelledSelect,S[i],S[u],S[l]),children:[n.jsx(H,{htmlFor:d,className:S.label,label:r,screenReaderLabel:o}),n.jsx("select",{id:d,onChange:_,className:j(S.select,S[i],S[u]),...f,children:c}),n.jsx("div",{className:j(S.iconWrapper),children:n.jsx(b.Icon,{icon:b.stenaAngleDown,size:24,color:$.cssColor("--modern-blue")})})]})},he="_labelledTextInput_1uyc3_1",we="_onlyTop_1uyc3_21",Ie="_onlyBottom_1uyc3_27",Se="_onlyLeft_1uyc3_32",ke="_onlyRight_1uyc3_38",Be="_disabled_1uyc3_53",Te="_medium_1uyc3_61",ge="_large_1uyc3_73",Re="_error_1uyc3_87",T={labelledTextInput:he,onlyTop:we,onlyBottom:Ie,onlyLeft:Se,onlyRight:ke,disabled:Be,medium:Te,large:ge,error:Re},Ne=yt.forwardRef(({autoComplete:t="off",label:e,id:s,screenReaderLabel:r,size:o="medium",value:l,onChange:i,disabled:u,onValueChange:c,borderRadiusVariant:f="normalBorder",variant:p="normal",width:d,..._},y)=>{const m=x.useId(),w=s??m,I=x.useCallback(k=>{i==null||i(k),c==null||c(k.target.value)},[i,c]);return n.jsxs("div",{className:j(T.labelledTextInput,T[p],T[f],T[o],u&&T.disabled),style:d?{width:d}:void 0,children:[n.jsx(H,{htmlFor:w,screenReaderLabel:r,label:e}),n.jsx("input",{ref:y,id:w,autoComplete:t,type:"text",value:l,onChange:I,disabled:u,..._})]})}),qe=({variant:t="standard",disabled:e,wrapperClassName:s,wrapperStyle:r,contentLeft:o,contentRight:l,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c,iconRight:f,iconLeft:p,onClickLeft:d,onClickRight:_,children:y})=>{const m=t==="success"?b.stenaCheck:t==="warning"||t==="error"?b.stenaExclamationTriangle:f,w=t==="loading"?n.jsx(b.InputSpinner,{}):l;return n.jsxs("div",{className:j(h.textInput,h.inputContainer,h[t],{[h.disabled]:e},s),style:r,children:[n.jsx(R,{content:o,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c,spaceOnLeft:!0,button:p?n.jsx(b.TextInputButton,{onClick:d,icon:p}):void 0}),n.jsx(a.Row,{alignItems:"center",children:y}),n.jsx(R,{content:w,disableContentPadding:i,disableContentPaddingLeft:u,disableContentPaddingRight:c,spaceOnRight:!0,button:m?n.jsx(b.TextInputButton,{onClick:_,icon:m}):void 0})]})},$e="_textArea_6n6nc_1",Pe={textArea:$e},Oe=x.forwardRef(({className:t,value:e,onValueChange:s,onChange:r,resize:o="none",readOnly:l=!1,rows:i,disabled:u,...c},f)=>{const p=x.useCallback(d=>{r&&r(d),s&&s(d.target.value)},[r,s]);return n.jsx("textarea",{disabled:u,rows:i,readOnly:l,className:j(Pe.textArea,t),style:{resize:o},onChange:p,value:e,ref:f,...c})});exports.AmountStepperButtons=jt;exports.Checkbox=K;exports.CheckboxWithLabel=Rt;exports.InputLabel=H;exports.InputLabelText=J;exports.LabelledSelect=je;exports.LabelledTextInput=Ne;exports.NumericStepper=ce;exports.NumericTextInput=v;exports.PasswordInput=ie;exports.RadioButton=P;exports.RadioButtonBox=Wt;exports.RadioButtonWithLabel=Lt;exports.ReadOnlyNumericInput=U;exports.Switch=E;exports.SwitchWithLabel=kt;exports.TextArea=Oe;exports.TextInput=O;exports.TextInputBox=qe;exports.elementHasSelectionRange=z;exports.onStepValueChange=A;exports.onTextValueChange=F;exports.useKeyboardNavigation=C;exports.useNumericInputValue=re;exports.useSelectAllOnMount=G;exports.useTextInput=X;
3
3
  //# sourceMappingURL=index.js.map