@stenajs-webui/forms 17.4.0 → 17.6.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # v17.6.0 (Fri Jul 01 2022)
2
+
3
+ #### 🚀 Enhancement
4
+
5
+ - Use Stena icons instead of Font Awesome icons [#471](https://github.com/StenaIT/stenajs-webui/pull/471) (david.zetterdahl@stenaline.com [@LordDz](https://github.com/LordDz) [@lindskogen](https://github.com/lindskogen))
6
+
7
+ #### Authors: 3
8
+
9
+ - David ([@LordDz](https://github.com/LordDz))
10
+ - David Zetterdahl (david.zetterdahl@stenaline.com)
11
+ - Johan Lindskogen ([@lindskogen](https://github.com/lindskogen))
12
+
13
+ ---
14
+
1
15
  # v17.0.0 (Fri Jun 17 2022)
2
16
 
3
17
  #### 💥 Breaking Change
package/dist/index.es.js CHANGED
@@ -2,12 +2,11 @@ import * as React from 'react';
2
2
  import { forwardRef, useRef, useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import { Box, Space, Text, Row, parseFloatElseUndefined } from '@stenajs-webui/core';
4
4
  import cx from 'classnames';
5
- import { FlatButton, InputSpinner, UpDownButtons } from '@stenajs-webui/elements';
6
- import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck';
7
- import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons/faExclamationTriangle';
5
+ import { FlatButton, InputSpinner, stenaCheck, stenaExclamationTriangle, UpDownButtons } from '@stenajs-webui/elements';
8
6
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
7
  import { faEye } from '@fortawesome/free-solid-svg-icons/faEye';
10
8
  import { faEyeSlash } from '@fortawesome/free-solid-svg-icons/faEyeSlash';
9
+ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons/faExclamationTriangle';
11
10
 
12
11
  /*! *****************************************************************************
13
12
  Copyright (c) Microsoft Corporation.
@@ -345,9 +344,9 @@ var TextInput = function (props) {
345
344
  autoFocus: autoFocus,
346
345
  });
347
346
  var currentIconRight = variant === "success"
348
- ? faCheck
347
+ ? stenaCheck
349
348
  : variant === "warning" || variant === "error"
350
- ? faExclamationTriangle
349
+ ? stenaExclamationTriangle
351
350
  : iconRight;
352
351
  var currentContentRight = variant === "loading" ? React.createElement(InputSpinner, null) : contentRight;
353
352
  return (React.createElement("div", { className: cx(styles$2.textInput, styles$2[variant], (_a = {},
@@ -453,7 +452,7 @@ var TextInputBox = function (_a) {
453
452
  var _b;
454
453
  var _c = _a.variant, variant = _c === void 0 ? "standard" : _c, disabled = _a.disabled, wrapperClassName = _a.wrapperClassName, wrapperStyle = _a.wrapperStyle, contentLeft = _a.contentLeft, contentRight = _a.contentRight, disableContentPadding = _a.disableContentPadding, disableContentPaddingLeft = _a.disableContentPaddingLeft, disableContentPaddingRight = _a.disableContentPaddingRight, iconRight = _a.iconRight, iconLeft = _a.iconLeft, onClickLeft = _a.onClickLeft, onClickRight = _a.onClickRight, children = _a.children;
455
454
  var currentIconRight = variant === "success"
456
- ? faCheck
455
+ ? stenaCheck
457
456
  : variant === "warning" || variant === "error"
458
457
  ? faExclamationTriangle
459
458
  : iconRight;
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../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/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/components/ui/password-input/PasswordInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\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, 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 textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\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 MutableRefObject,\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 ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\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 as MutableRefObject<HTMLInputElement>).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])}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\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\";\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 { onChange, onValueChange, size = \"standard\", name, ...inputProps },\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={styles.radiobutton + \" \" + styles[size]}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\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>,\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>,\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>,\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\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n onClick?: () => void;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n onClick,\n}) => {\n if (!content && !icon) {\n return null;\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {onClick ? (\n <span onClick={onClick} className={styles.clickable}>\n {content || null}\n </span>\n ) : (\n <>{content || null}</>\n )}\n\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <>\n {onClick ? (\n <FlatButton onClick={onClick} leftIcon={icon} size={\"small\"} />\n ) : (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n </>\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { faCheck } from \"@fortawesome/free-solid-svg-icons/faCheck\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } 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 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 /** 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 /** On click left. */\n onClickLeft?: () => void;\n /** On click right. */\n onClickRight?: () => void;\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}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n onClickLeft,\n onClickRight,\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 ...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 ? faCheck\n : variant === \"warning\" || variant === \"error\"\n ? faExclamationTriangle\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 {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <input\n className={cx(styles.input, className)}\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 onClick={onClickRight}\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\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 * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport { faEye } from \"@fortawesome/free-solid-svg-icons/faEye\";\nimport { faEyeSlash } from \"@fortawesome/free-solid-svg-icons/faEyeSlash\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = faEye,\n visibleIcon = faEyeSlash,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n iconRight={isPassword ? hiddenIcon : visibleIcon}\n onClickRight={() => setIsPassword((x) => !x)}\n type={isPassword ? \"password\" : \"text\"}\n {...props}\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 { faCheck } from \"@fortawesome/free-solid-svg-icons/faCheck\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { Row } from \"@stenajs-webui/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 | \"iconRight\"\n | \"iconLeft\"\n | \"onClickLeft\"\n | \"onClickRight\"\n > {\n children?: ReactNode;\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 ? faCheck\n : variant === \"warning\" || variant === \"error\"\n ? faExclamationTriangle\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 icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n onClick={onClickRight}\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":["styles"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../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/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/components/ui/password-input/PasswordInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\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, 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 textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\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 MutableRefObject,\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 ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\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 as MutableRefObject<HTMLInputElement>).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])}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\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\";\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 { onChange, onValueChange, size = \"standard\", name, ...inputProps },\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={styles.radiobutton + \" \" + styles[size]}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\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>,\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>,\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>,\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\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n onClick?: () => void;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n onClick,\n}) => {\n if (!content && !icon) {\n return null;\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {onClick ? (\n <span onClick={onClick} className={styles.clickable}>\n {content || null}\n </span>\n ) : (\n <>{content || null}</>\n )}\n\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <>\n {onClick ? (\n <FlatButton onClick={onClick} leftIcon={icon} size={\"small\"} />\n ) : (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n </>\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { stenaCheck, stenaExclamationTriangle } 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 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 /** 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 /** On click left. */\n onClickLeft?: () => void;\n /** On click right. */\n onClickRight?: () => void;\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}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n onClickLeft,\n onClickRight,\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 ...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 {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <input\n className={cx(styles.input, className)}\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 onClick={onClickRight}\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\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 * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport { faEye } from \"@fortawesome/free-solid-svg-icons/faEye\";\nimport { faEyeSlash } from \"@fortawesome/free-solid-svg-icons/faEyeSlash\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = faEye,\n visibleIcon = faEyeSlash,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n iconRight={isPassword ? hiddenIcon : visibleIcon}\n onClickRight={() => setIsPassword((x) => !x)}\n type={isPassword ? \"password\" : \"text\"}\n {...props}\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 { stenaCheck } from \"@stenajs-webui/elements\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { Row } from \"@stenajs-webui/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 | \"iconRight\"\n | \"iconLeft\"\n | \"onClickLeft\"\n | \"onClickRight\"\n > {\n children?: ReactNode;\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 ? faExclamationTriangle\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 icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n onClick={onClickRight}\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":["styles"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,11 +6,10 @@ var React = require('react');
6
6
  var core = require('@stenajs-webui/core');
7
7
  var cx = require('classnames');
8
8
  var elements = require('@stenajs-webui/elements');
9
- var faCheck = require('@fortawesome/free-solid-svg-icons/faCheck');
10
- var faExclamationTriangle = require('@fortawesome/free-solid-svg-icons/faExclamationTriangle');
11
9
  var reactFontawesome = require('@fortawesome/react-fontawesome');
12
10
  var faEye = require('@fortawesome/free-solid-svg-icons/faEye');
13
11
  var faEyeSlash = require('@fortawesome/free-solid-svg-icons/faEyeSlash');
12
+ var faExclamationTriangle = require('@fortawesome/free-solid-svg-icons/faExclamationTriangle');
14
13
 
15
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
15
 
@@ -371,9 +370,9 @@ var TextInput = function (props) {
371
370
  autoFocus: autoFocus,
372
371
  });
373
372
  var currentIconRight = variant === "success"
374
- ? faCheck.faCheck
373
+ ? elements.stenaCheck
375
374
  : variant === "warning" || variant === "error"
376
- ? faExclamationTriangle.faExclamationTriangle
375
+ ? elements.stenaExclamationTriangle
377
376
  : iconRight;
378
377
  var currentContentRight = variant === "loading" ? React__namespace.createElement(elements.InputSpinner, null) : contentRight;
379
378
  return (React__namespace.createElement("div", { className: cx__default["default"](styles$2.textInput, styles$2[variant], (_a = {},
@@ -479,7 +478,7 @@ var TextInputBox = function (_a) {
479
478
  var _b;
480
479
  var _c = _a.variant, variant = _c === void 0 ? "standard" : _c, disabled = _a.disabled, wrapperClassName = _a.wrapperClassName, wrapperStyle = _a.wrapperStyle, contentLeft = _a.contentLeft, contentRight = _a.contentRight, disableContentPadding = _a.disableContentPadding, disableContentPaddingLeft = _a.disableContentPaddingLeft, disableContentPaddingRight = _a.disableContentPaddingRight, iconRight = _a.iconRight, iconLeft = _a.iconLeft, onClickLeft = _a.onClickLeft, onClickRight = _a.onClickRight, children = _a.children;
481
480
  var currentIconRight = variant === "success"
482
- ? faCheck.faCheck
481
+ ? elements.stenaCheck
483
482
  : variant === "warning" || variant === "error"
484
483
  ? faExclamationTriangle.faExclamationTriangle
485
484
  : iconRight;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../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/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/components/ui/password-input/PasswordInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\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, 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 textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\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 MutableRefObject,\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 ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\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 as MutableRefObject<HTMLInputElement>).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])}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\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\";\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 { onChange, onValueChange, size = \"standard\", name, ...inputProps },\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={styles.radiobutton + \" \" + styles[size]}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\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>,\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>,\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>,\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\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n onClick?: () => void;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n onClick,\n}) => {\n if (!content && !icon) {\n return null;\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {onClick ? (\n <span onClick={onClick} className={styles.clickable}>\n {content || null}\n </span>\n ) : (\n <>{content || null}</>\n )}\n\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <>\n {onClick ? (\n <FlatButton onClick={onClick} leftIcon={icon} size={\"small\"} />\n ) : (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n </>\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { faCheck } from \"@fortawesome/free-solid-svg-icons/faCheck\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } 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 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 /** 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 /** On click left. */\n onClickLeft?: () => void;\n /** On click right. */\n onClickRight?: () => void;\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}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n onClickLeft,\n onClickRight,\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 ...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 ? faCheck\n : variant === \"warning\" || variant === \"error\"\n ? faExclamationTriangle\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 {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <input\n className={cx(styles.input, className)}\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 onClick={onClickRight}\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\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 * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport { faEye } from \"@fortawesome/free-solid-svg-icons/faEye\";\nimport { faEyeSlash } from \"@fortawesome/free-solid-svg-icons/faEyeSlash\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = faEye,\n visibleIcon = faEyeSlash,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n iconRight={isPassword ? hiddenIcon : visibleIcon}\n onClickRight={() => setIsPassword((x) => !x)}\n type={isPassword ? \"password\" : \"text\"}\n {...props}\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 { faCheck } from \"@fortawesome/free-solid-svg-icons/faCheck\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { Row } from \"@stenajs-webui/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 | \"iconRight\"\n | \"iconLeft\"\n | \"onClickLeft\"\n | \"onClickRight\"\n > {\n children?: ReactNode;\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 ? faCheck\n : variant === \"warning\" || variant === \"error\"\n ? faExclamationTriangle\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 icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n onClick={onClickRight}\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":["styles","React","Box","Space","Text","forwardRef","useRef","useCallback","useEffect","cx","Row","FlatButton","FontAwesomeIcon","faCheck","faExclamationTriangle","InputSpinner","parseFloatElseUndefined","UpDownButtons","useMemo","faEye","faEyeSlash","useState"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../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/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/components/ui/password-input/PasswordInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\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, 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 textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\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 MutableRefObject,\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 ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\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 as MutableRefObject<HTMLInputElement>).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])}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\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\";\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 { onChange, onValueChange, size = \"standard\", name, ...inputProps },\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={styles.radiobutton + \" \" + styles[size]}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, 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 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 ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\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>,\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>,\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>,\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\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n onClick?: () => void;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n onClick,\n}) => {\n if (!content && !icon) {\n return null;\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {onClick ? (\n <span onClick={onClick} className={styles.clickable}>\n {content || null}\n </span>\n ) : (\n <>{content || null}</>\n )}\n\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <>\n {onClick ? (\n <FlatButton onClick={onClick} leftIcon={icon} size={\"small\"} />\n ) : (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n </>\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { stenaCheck, stenaExclamationTriangle } 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 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 /** 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 /** On click left. */\n onClickLeft?: () => void;\n /** On click right. */\n onClickRight?: () => void;\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}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n onClickLeft,\n onClickRight,\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 ...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 {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <input\n className={cx(styles.input, className)}\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 onClick={onClickRight}\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\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 * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport { faEye } from \"@fortawesome/free-solid-svg-icons/faEye\";\nimport { faEyeSlash } from \"@fortawesome/free-solid-svg-icons/faEyeSlash\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = faEye,\n visibleIcon = faEyeSlash,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n iconRight={isPassword ? hiddenIcon : visibleIcon}\n onClickRight={() => setIsPassword((x) => !x)}\n type={isPassword ? \"password\" : \"text\"}\n {...props}\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 { stenaCheck } from \"@stenajs-webui/elements\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { Row } from \"@stenajs-webui/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 | \"iconRight\"\n | \"iconLeft\"\n | \"onClickLeft\"\n | \"onClickRight\"\n > {\n children?: ReactNode;\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 ? faExclamationTriangle\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 icon={iconLeft}\n spaceOnLeft\n onClick={onClickLeft}\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n onClick={onClickRight}\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":["styles","React","Box","Space","Text","forwardRef","useRef","useCallback","useEffect","cx","Row","FlatButton","FontAwesomeIcon","stenaCheck","stenaExclamationTriangle","InputSpinner","parseFloatElseUndefined","UpDownButtons","useMemo","faEye","faEyeSlash","useState","faExclamationTriangle"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stenajs-webui/forms",
3
- "version": "17.4.0",
3
+ "version": "17.6.0",
4
4
  "description": "",
5
5
  "author": "mattias800",
6
6
  "license": "MIT",
@@ -27,8 +27,8 @@
27
27
  "deploy": "gh-pages -d example/build"
28
28
  },
29
29
  "dependencies": {
30
- "@stenajs-webui/core": "17.4.0",
31
- "@stenajs-webui/elements": "17.4.0",
30
+ "@stenajs-webui/core": "17.6.0",
31
+ "@stenajs-webui/elements": "17.6.0",
32
32
  "classnames": "^2.3.1",
33
33
  "date-fns": "2.26.0"
34
34
  },
@@ -74,5 +74,5 @@
74
74
  "files": [
75
75
  "dist"
76
76
  ],
77
- "gitHead": "886600083329909ef56eac7cbca3a936ea26ce62"
77
+ "gitHead": "2312d798dfd8af052a6340d9ee78c5bc30acbec1"
78
78
  }