@stenajs-webui/forms 14.1.1 → 15.0.0-alpha.10
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/dist/hooks/UseKeyboardNavigation.d.ts +6 -5
- package/dist/hooks/UseSelectAllOnMount.d.ts +3 -1
- package/dist/hooks/UseTextInput.d.ts +30 -3
- package/dist/hooks/__tests__/useSelectAllOnMount.test.d.ts +1 -0
- package/dist/index.es.js +115 -95
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +131 -92
- package/dist/index.js.map +1 -1
- package/package.json +6 -8
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { FocusEventHandler,
|
|
1
|
+
import { FocusEventHandler, KeyboardEventHandler, RefObject } from "react";
|
|
2
2
|
export declare type MoveDirection = "right" | "left" | "down" | "up";
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
export declare type TextInputElement = HTMLTextAreaElement | HTMLInputElement;
|
|
4
|
+
export declare const useKeyboardNavigation: <TElement extends TextInputElement>(ref: RefObject<TElement>, onKeyDown: KeyboardEventHandler<TElement> | undefined, onEnter: (() => void) | undefined, onEsc: (() => void) | undefined, onMove: ((direction: MoveDirection) => void) | undefined, onDone: ((value: string) => void) | undefined, onBlur: FocusEventHandler<TElement> | undefined, onFocus: FocusEventHandler<TElement> | undefined) => {
|
|
5
|
+
onKeyDownHandler: KeyboardEventHandler<TElement>;
|
|
6
|
+
onBlurHandler: FocusEventHandler<TElement>;
|
|
7
|
+
onFocusHandler: FocusEventHandler<TElement>;
|
|
7
8
|
};
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import { RefObject } from "react";
|
|
2
|
-
|
|
2
|
+
import { TextInputElement } from "./UseKeyboardNavigation";
|
|
3
|
+
export declare function elementHasSelectionRange(element: TextInputElement): boolean;
|
|
4
|
+
export declare const useSelectAllOnMount: (ref: RefObject<TextInputElement>, moveCursorToEnd: boolean, enabled: boolean) => void;
|
|
@@ -1,3 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { ChangeEvent, ChangeEventHandler, CSSProperties, FocusEventHandler, KeyboardEventHandler, RefObject } from "react";
|
|
2
|
+
import { TextInputVariant } from "../components/ui/text-input/TextInput";
|
|
3
|
+
import { MoveDirection, TextInputElement } from "./UseKeyboardNavigation";
|
|
4
|
+
import { FullOnChangeProps } from "../components/ui/types";
|
|
5
|
+
interface UseTextInputOptions<TElement extends TextInputElement> extends FullOnChangeProps<string, ChangeEvent<TElement>> {
|
|
6
|
+
wrapperStyle?: CSSProperties;
|
|
7
|
+
wrapperClassName?: string;
|
|
8
|
+
variant?: TextInputVariant;
|
|
9
|
+
hideBorder?: boolean;
|
|
10
|
+
selectAllOnMount?: boolean;
|
|
11
|
+
moveCursorToEndOnMount?: boolean;
|
|
12
|
+
onDone?: (value: string) => void;
|
|
13
|
+
onEnter?: () => void;
|
|
14
|
+
onEsc?: () => void;
|
|
15
|
+
autoFocus?: boolean;
|
|
16
|
+
/** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */
|
|
17
|
+
onMove?: (direction: MoveDirection) => void;
|
|
18
|
+
onFocus?: FocusEventHandler<TElement>;
|
|
19
|
+
onBlur?: FocusEventHandler<TElement>;
|
|
20
|
+
onKeyDown?: KeyboardEventHandler<TElement>;
|
|
21
|
+
}
|
|
22
|
+
interface UseTextInputHookResult<TElement extends TextInputElement> {
|
|
23
|
+
autoFocus?: boolean;
|
|
24
|
+
onChange: ChangeEventHandler<TElement>;
|
|
25
|
+
onFocus: FocusEventHandler<TElement>;
|
|
26
|
+
onBlur: FocusEventHandler<TElement>;
|
|
27
|
+
onKeyDown: KeyboardEventHandler<TElement>;
|
|
28
|
+
}
|
|
29
|
+
export declare const useTextInput: <TElement extends TextInputElement>(ref: RefObject<TElement>, { onEnter, onEsc, onChange, onValueChange, selectAllOnMount, moveCursorToEndOnMount, onDone, onMove, onFocus, onBlur, onKeyDown, autoFocus, }: UseTextInputOptions<TElement>) => UseTextInputHookResult<TElement>;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.es.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { forwardRef, useRef, useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
3
|
import { Box, Space, Text, Row, parseFloatElseUndefined } from '@stenajs-webui/core';
|
|
3
4
|
import cx$2 from 'classnames';
|
|
4
|
-
import { InputSpinner, UpDownButtons } from '@stenajs-webui/elements';
|
|
5
|
+
import { FlatButton, InputSpinner, UpDownButtons } from '@stenajs-webui/elements';
|
|
5
6
|
import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck';
|
|
6
7
|
import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons/faExclamationTriangle';
|
|
7
8
|
import classNames from 'classnames/bind';
|
|
@@ -74,32 +75,32 @@ function styleInject(css, ref) {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
var css_248z = ".Switch-module_switch__aK2ff {\n --swui-switch-width: 50px;\n --swui-switch-height: var(--swui-field-box-size-medium);\n --swui-switch-animation-time: var(--swui-animation-time-medium);\n --swui-switch-selected-highlight-color: var(--swui-primary-action-color);\n --swui-switch-knob-width: calc(var(--swui-switch-height) - 2px);\n /* Backgrounds */\n --swui-switch-knob-bg-color-enabled: var(--swui-handle-bg-enabled-color);\n --swui-switch-knob-bg-color-disabled: var(--swui-handle-bg-disabled-color);\n --swui-switch-container-bg-color-enabled: var(--swui-field-bg-enabled);\n --swui-switch-container-bg-color-disabled: var(--swui-field-bg-disabled);\n /* Borders */\n --swui-switch-knob-border-color-enabled: var(--swui-separator-color);\n --swui-switch-container-border-color: var(--swui-field-border-color);\n --swui-switch-container-border-color-hover: var(\n --swui-field-border-color-hover\n );\n --swui-switch-container-border-color-disabled: var(\n --swui-field-border-color-disabled\n );\n /* Shadow */\n --swui-switch-knob-shadow-color: var(--swui-field-shadow-color);\n\n display: -webkit-flex;\n\n display: flex;\n -webkit-flex-direction: row;\n flex-direction: row;\n border: 1px solid var(--swui-switch-container-border-color);\n box-sizing: border-box;\n background-color: var(--swui-switch-container-bg-color-enabled);\n height: var(--swui-switch-height);\n width: var(--swui-switch-width);\n border-radius: calc(var(--swui-switch-height) / 2);\n padding: 0;\n margin: 0;\n cursor: pointer;\n transition: background-color var(--swui-switch-animation-time);\n}\n\n .Switch-module_switch__aK2ff:focus {\n outline: 0;\n border: 1px solid var(--swui-switch-selected-highlight-color);\n box-shadow: inset var(--swui-switch-selected-highlight-color) 0 0 4px 0;\n }\n\n .Switch-module_switch__aK2ff:hover {\n border: 1px solid var(--swui-switch-selected-highlight-color);\n }\n\n .Switch-module_switch__aK2ff:disabled {\n cursor: default;\n background-color: var(--swui-switch-container-bg-color-disabled);\n border: 1px solid var(--swui-switch-container-border-color-disabled);\n }\n\n .Switch-module_switch__aK2ff:disabled .Switch-module_knob__1Kx4S {\n background-color: var(--swui-switch-knob-bg-color-disabled);\n }\n\n .Switch-module_switch__aK2ff .Switch-module_filler__184NF {\n -webkit-flex: none;\n flex: none;\n transition: -webkit-flex var(--swui-switch-animation-time);\n transition: flex var(--swui-switch-animation-time);\n transition: flex var(--swui-switch-animation-time), -webkit-flex var(--swui-switch-animation-time);\n }\n\n .Switch-module_switch__aK2ff .Switch-module_knob__1Kx4S {\n width: var(--swui-switch-knob-width);\n height: var(--swui-switch-knob-width);\n border-radius: 50%;\n background-color: var(--swui-switch-knob-bg-color-enabled);\n box-shadow: var(--swui-switch-knob-shadow-color) 0 0 4px 1px;\n }\n\n.Switch-module_checked__EgDKL {\n border: 1px solid var(--swui-switch-selected-highlight-color);\n background-color: var(--swui-switch-selected-highlight-color);\n}\n\n.Switch-module_checked__EgDKL .Switch-module_filler__184NF {\n -webkit-flex: 1;\n flex: 1;\n }\n";
|
|
78
|
-
var styles = {"switch":"Switch-module_switch__aK2ff","knob":"Switch-module_knob__1Kx4S","filler":"Switch-module_filler__184NF","checked":"Switch-module_checked__EgDKL"};
|
|
79
|
-
styleInject(css_248z);
|
|
78
|
+
var css_248z$5 = ".Switch-module_switch__aK2ff {\n --swui-switch-width: 50px;\n --swui-switch-height: var(--swui-field-box-size-medium);\n --swui-switch-animation-time: var(--swui-animation-time-medium);\n --swui-switch-selected-highlight-color: var(--swui-primary-action-color);\n --swui-switch-knob-width: calc(var(--swui-switch-height) - 2px);\n /* Backgrounds */\n --swui-switch-knob-bg-color-enabled: var(--swui-handle-bg-enabled-color);\n --swui-switch-knob-bg-color-disabled: var(--swui-handle-bg-disabled-color);\n --swui-switch-container-bg-color-enabled: var(--swui-field-bg-enabled);\n --swui-switch-container-bg-color-disabled: var(--swui-field-bg-disabled);\n /* Borders */\n --swui-switch-knob-border-color-enabled: var(--swui-separator-color);\n --swui-switch-container-border-color: var(--swui-field-border-color);\n --swui-switch-container-border-color-hover: var(\n --swui-field-border-color-hover\n );\n --swui-switch-container-border-color-disabled: var(\n --swui-field-border-color-disabled\n );\n /* Shadow */\n --swui-switch-knob-shadow-color: var(--swui-field-shadow-color);\n\n display: -webkit-flex;\n\n display: flex;\n -webkit-flex-direction: row;\n flex-direction: row;\n border: 1px solid var(--swui-switch-container-border-color);\n box-sizing: border-box;\n background-color: var(--swui-switch-container-bg-color-enabled);\n height: var(--swui-switch-height);\n width: var(--swui-switch-width);\n border-radius: calc(var(--swui-switch-height) / 2);\n padding: 0;\n margin: 0;\n cursor: pointer;\n transition: background-color var(--swui-switch-animation-time);\n}\n\n .Switch-module_switch__aK2ff:focus {\n outline: 0;\n border: 1px solid var(--swui-switch-selected-highlight-color);\n box-shadow: inset var(--swui-switch-selected-highlight-color) 0 0 4px 0;\n }\n\n .Switch-module_switch__aK2ff:hover {\n border: 1px solid var(--swui-switch-selected-highlight-color);\n }\n\n .Switch-module_switch__aK2ff:disabled {\n cursor: default;\n background-color: var(--swui-switch-container-bg-color-disabled);\n border: 1px solid var(--swui-switch-container-border-color-disabled);\n }\n\n .Switch-module_switch__aK2ff:disabled .Switch-module_knob__1Kx4S {\n background-color: var(--swui-switch-knob-bg-color-disabled);\n }\n\n .Switch-module_switch__aK2ff .Switch-module_filler__184NF {\n -webkit-flex: none;\n flex: none;\n transition: -webkit-flex var(--swui-switch-animation-time);\n transition: flex var(--swui-switch-animation-time);\n transition: flex var(--swui-switch-animation-time), -webkit-flex var(--swui-switch-animation-time);\n }\n\n .Switch-module_switch__aK2ff .Switch-module_knob__1Kx4S {\n width: var(--swui-switch-knob-width);\n height: var(--swui-switch-knob-width);\n border-radius: 50%;\n background-color: var(--swui-switch-knob-bg-color-enabled);\n box-shadow: var(--swui-switch-knob-shadow-color) 0 0 4px 1px;\n }\n\n.Switch-module_checked__EgDKL {\n border: 1px solid var(--swui-switch-selected-highlight-color);\n background-color: var(--swui-switch-selected-highlight-color);\n}\n\n.Switch-module_checked__EgDKL .Switch-module_filler__184NF {\n -webkit-flex: 1;\n flex: 1;\n }\n";
|
|
79
|
+
var styles$5 = {"switch":"Switch-module_switch__aK2ff","knob":"Switch-module_knob__1Kx4S","filler":"Switch-module_filler__184NF","checked":"Switch-module_checked__EgDKL"};
|
|
80
|
+
styleInject(css_248z$5);
|
|
80
81
|
|
|
81
|
-
var styleChecked = styles.switch + " " + styles.checked;
|
|
82
|
+
var styleChecked = styles$5.switch + " " + styles$5.checked;
|
|
82
83
|
var Switch = function (_a) {
|
|
83
84
|
var value = _a.value, disabled = _a.disabled, onValueChange = _a.onValueChange, className = _a.className, wrapperRef = _a.wrapperRef, restProps = __rest(_a, ["value", "disabled", "onValueChange", "className", "wrapperRef"]);
|
|
84
|
-
return (createElement("div", { className: className, ref: wrapperRef },
|
|
85
|
-
createElement("button", __assign({ type: "button", role: "switch", "aria-checked": value, className: value ? styleChecked : styles.switch, disabled: disabled, onClick: function () { return onValueChange && onValueChange(!value); } }, restProps),
|
|
86
|
-
createElement("div", { className: styles.filler }),
|
|
87
|
-
createElement("div", { className: styles.knob }))));
|
|
85
|
+
return (React.createElement("div", { className: className, ref: wrapperRef },
|
|
86
|
+
React.createElement("button", __assign({ type: "button", role: "switch", "aria-checked": value, className: value ? styleChecked : styles$5.switch, disabled: disabled, onClick: function () { return onValueChange && onValueChange(!value); } }, restProps),
|
|
87
|
+
React.createElement("div", { className: styles$5.filler }),
|
|
88
|
+
React.createElement("div", { className: styles$5.knob }))));
|
|
88
89
|
};
|
|
89
90
|
|
|
90
91
|
var SwitchWithLabel = function (_a) {
|
|
91
92
|
var label = _a.label, disabled = _a.disabled, textColor = _a.textColor, wrapperRef = _a.wrapperRef, switchProps = __rest(_a, ["label", "disabled", "textColor", "wrapperRef"]);
|
|
92
|
-
return (createElement("div", { ref: wrapperRef },
|
|
93
|
-
createElement("label", null,
|
|
94
|
-
createElement(Box, { row: true, alignItems: "center" },
|
|
95
|
-
createElement(Switch, __assign({ disabled: disabled }, switchProps)),
|
|
96
|
-
createElement(Space, null),
|
|
97
|
-
createElement(Text, { userSelect: "none", color: textColor }, label)))));
|
|
93
|
+
return (React.createElement("div", { ref: wrapperRef },
|
|
94
|
+
React.createElement("label", null,
|
|
95
|
+
React.createElement(Box, { row: true, alignItems: "center" },
|
|
96
|
+
React.createElement(Switch, __assign({ disabled: disabled }, switchProps)),
|
|
97
|
+
React.createElement(Space, null),
|
|
98
|
+
React.createElement(Text, { userSelect: "none", color: textColor }, label)))));
|
|
98
99
|
};
|
|
99
100
|
|
|
100
|
-
var css_248z$
|
|
101
|
-
var styles$
|
|
102
|
-
styleInject(css_248z$
|
|
101
|
+
var css_248z$4 = ".Checkbox-module_checkbox__Ey0_E {\n --swui-checkbox-height: var(--swui-field-box-size-medium);\n --swui-checkbox-height-small: var(--swui-field-box-size-small);\n --swui-checkbox-border-radius: var(--swui-field-border-radius);\n --swui-checkbox-animation-time: var(--swui-animation-time-medium);\n /* Icon */\n --swui-checkbox-icon-color: var(--swui-field-indicator-active-color);\n --swui-checkbox-disabled-icon-color: var(--swui-field-border-color-disabled);\n --swui-checkbox-unchecked-icon-color: var(\n --swui-field-indicator-inactive-color\n );\n /* Background */\n --swui-checkbox-unchecked-bg-color: var(--swui-white);\n --swui-checkbox-checked-bg-color: var(--swui-primary-action-color);\n --swui-checkbox-disabled-bg-color: var(--swui-field-bg-disabled);\n --swui-checkbox-disabled-checked-bg-color: var(--swui-field-bg-disabled);\n /* Border */\n --swui-checkbox-border-color: var(--swui-field-border-color);\n --swui-checkbox-border-hover-color: var(--swui-field-border-color-hover);\n --swui-checkbox-disabled-border-color: var(\n --swui-field-border-color-disabled\n );\n /* Shadow */\n --swui-checkbox-checked-focus-shadow: var(--swui-field-focus-shadow-inverted);\n --swui-checkbox-unchecked-focus-shadow: var(--swui-field-focus-shadow);\n\n -webkit-appearance: none;\n -moz-appearance: none;\n border-radius: var(--swui-checkbox-border-radius);\n outline: none;\n display: inline-block;\n vertical-align: top;\n position: relative;\n margin: 0;\n cursor: pointer;\n border: 1px solid\n var(--current-border-color, var(--swui-checkbox-border-color));\n background: var(--current-bg-color, var(--swui-checkbox-unchecked-bg-color));\n transition: background var(--swui-checkbox-animation-time),\n border-color var(--swui-checkbox-animation-time),\n box-shadow var(--swui-checkbox-animation-time);\n -webkit-flex-shrink: 0;\n flex-shrink: 0;\n}\n\n .Checkbox-module_checkbox__Ey0_E.Checkbox-module_standard__1WgNJ {\n width: var(--swui-checkbox-height);\n height: var(--swui-checkbox-height);\n }\n\n .Checkbox-module_checkbox__Ey0_E.Checkbox-module_standard__1WgNJ:after {\n width: 3px;\n height: 6px;\n left: 9px;\n top: 6px;\n }\n\n .Checkbox-module_checkbox__Ey0_E.Checkbox-module_small__IGbRq {\n width: var(--swui-checkbox-height-small);\n height: var(--swui-checkbox-height-small);\n }\n\n .Checkbox-module_checkbox__Ey0_E.Checkbox-module_small__IGbRq:after {\n width: 3px;\n height: 6px;\n left: 5px;\n top: 2px;\n }\n\n .Checkbox-module_checkbox__Ey0_E:after {\n content: \"\";\n display: block;\n position: absolute;\n transition: opacity var(--swui-checkbox-animation-time),\n width var(--swui-checkbox-animation-time),\n top var(--swui-checkbox-animation-time),\n -webkit-transform var(--swui-checkbox-animation-time) var(--d-t-e, ease);\n transition: transform var(--swui-checkbox-animation-time) var(--d-t-e, ease),\n opacity var(--swui-checkbox-animation-time),\n width var(--swui-checkbox-animation-time),\n top var(--swui-checkbox-animation-time);\n transition: transform var(--swui-checkbox-animation-time) var(--d-t-e, ease),\n opacity var(--swui-checkbox-animation-time),\n width var(--swui-checkbox-animation-time),\n top var(--swui-checkbox-animation-time),\n -webkit-transform var(--swui-checkbox-animation-time) var(--d-t-e, ease);\n border: 2px solid\n var(\n --current-checkbox-icon-color,\n var(--swui-checkbox-unchecked-icon-color)\n );\n border-top: 0;\n border-left: 0;\n -webkit-transform: rotate(var(--current-check-rotation, 20deg));\n transform: rotate(var(--current-check-rotation, 20deg));\n box-sizing: content-box;\n }\n\n .Checkbox-module_checkbox__Ey0_E:checked {\n --current-check-rotation: 43deg;\n --current-bg-color: var(--swui-checkbox-checked-bg-color);\n --current-border-color: var(--swui-checkbox-checked-bg-color);\n --d-t-e: cubic-bezier(0.2, 0.85, 0.32, 1.2);\n }\n\n .Checkbox-module_checkbox__Ey0_E:checked:after {\n --current-checkbox-icon-color: var(--swui-checkbox-icon-color);\n }\n\n .Checkbox-module_checkbox__Ey0_E:disabled:not(:checked) {\n --current-bg-color: var(--swui-checkbox-disabled-bg-color);\n --current-border-color: var(--swui-checkbox-disabled-border-color);\n }\n\n .Checkbox-module_checkbox__Ey0_E:disabled:not(:checked):after {\n --current-checkbox-icon-color: --swui-checkbox-unchecked-icon-color;\n }\n\n .Checkbox-module_checkbox__Ey0_E:disabled:checked {\n --current-bg-color: var(--swui-checkbox-disabled-checked-bg-color);\n --current-border-color: var(--swui-checkbox-disabled-border-color);\n }\n\n .Checkbox-module_checkbox__Ey0_E:disabled:checked:after {\n --current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color);\n }\n\n .Checkbox-module_checkbox__Ey0_E:disabled:checked + label {\n }\n\n .Checkbox-module_checkbox__Ey0_E:indeterminate {\n --current-check-rotation: 43deg;\n --current-bg-color: var(--swui-checkbox-checked-bg-color);\n --current-border-color: var(--swui-checkbox-checked-bg-color);\n --d-t-e: cubic-bezier(0.2, 0.85, 0.32, 1.2);\n }\n\n .Checkbox-module_checkbox__Ey0_E:indeterminate:after {\n --current-checkbox-icon-color: var(--swui-checkbox-icon-color);\n border-right: 0;\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n width: 6px;\n }\n\n .Checkbox-module_checkbox__Ey0_E:indeterminate.Checkbox-module_standard__1WgNJ:after {\n top: 4px;\n left: 8px;\n }\n\n .Checkbox-module_checkbox__Ey0_E:indeterminate.Checkbox-module_small__IGbRq:after {\n top: 0;\n left: 4px;\n }\n\n .Checkbox-module_checkbox__Ey0_E:indeterminate:disabled:after {\n --current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color);\n }\n\n .Checkbox-module_checkbox__Ey0_E:hover:not(:checked):not(:disabled) {\n --current-border-color: var(--swui-checkbox-border-hover-color);\n }\n\n .Checkbox-module_checkbox__Ey0_E:focus:checked {\n box-shadow: var(--swui-checkbox-checked-focus-shadow);\n }\n\n .Checkbox-module_checkbox__Ey0_E:focus:not(:checked) {\n box-shadow: var(--swui-checkbox-unchecked-focus-shadow);\n }\n\n .Checkbox-module_checkbox__Ey0_E + label {\n font-size: 14px;\n line-height: var(--swui-checkbox-height);\n display: inline-block;\n vertical-align: top;\n cursor: pointer;\n margin-left: 4px;\n }\n";
|
|
102
|
+
var styles$4 = {"checkbox":"Checkbox-module_checkbox__Ey0_E","standard":"Checkbox-module_standard__1WgNJ","small":"Checkbox-module_small__IGbRq"};
|
|
103
|
+
styleInject(css_248z$4);
|
|
103
104
|
|
|
104
105
|
var Checkbox = forwardRef(function (_a, ref) {
|
|
105
106
|
var _b = _a.indeterminate, indeterminate = _b === void 0 ? false : _b, onChange = _a.onChange, onValueChange = _a.onValueChange, _c = _a.value, value = _c === void 0 ? false : _c, _d = _a.size, size = _d === void 0 ? "standard" : _d, inputProps = __rest(_a, ["indeterminate", "onChange", "onValueChange", "value", "size"]);
|
|
@@ -131,23 +132,23 @@ var Checkbox = forwardRef(function (_a, ref) {
|
|
|
131
132
|
localRef.current.indeterminate = Boolean(indeterminate);
|
|
132
133
|
}
|
|
133
134
|
}, [indeterminate, localRef]);
|
|
134
|
-
return (createElement("input", __assign({ type: "checkbox", className: cx$2(styles$
|
|
135
|
+
return (React.createElement("input", __assign({ type: "checkbox", className: cx$2(styles$4.checkbox, styles$4[size]), checked: value, onChange: handleInputChange, ref: setRef }, inputProps)));
|
|
135
136
|
});
|
|
136
137
|
|
|
137
138
|
var CheckboxWithLabel = function (_a) {
|
|
138
139
|
var children = _a.children, label = _a.label, inputRef = _a.inputRef, wrapperRef = _a.wrapperRef, textColor = _a.textColor, checkboxProps = __rest(_a, ["children", "label", "inputRef", "wrapperRef", "textColor"]);
|
|
139
|
-
return (createElement("div", { ref: wrapperRef },
|
|
140
|
-
createElement("label", null,
|
|
141
|
-
createElement(Row, { alignItems: "center" },
|
|
142
|
-
createElement(Checkbox, __assign({}, checkboxProps, { ref: inputRef })),
|
|
143
|
-
createElement(Space, null),
|
|
144
|
-
label && (createElement(Text, { userSelect: "none", color: textColor }, label)),
|
|
140
|
+
return (React.createElement("div", { ref: wrapperRef },
|
|
141
|
+
React.createElement("label", null,
|
|
142
|
+
React.createElement(Row, { alignItems: "center" },
|
|
143
|
+
React.createElement(Checkbox, __assign({}, checkboxProps, { ref: inputRef })),
|
|
144
|
+
React.createElement(Space, null),
|
|
145
|
+
label && (React.createElement(Text, { userSelect: "none", color: textColor }, label)),
|
|
145
146
|
children))));
|
|
146
147
|
};
|
|
147
148
|
|
|
148
|
-
var css_248z$
|
|
149
|
-
var styles$
|
|
150
|
-
styleInject(css_248z$
|
|
149
|
+
var css_248z$3 = ".RadioButton-module_radiobutton__13XTW {\n /* Sizes */\n --swui-radiobutton-size-standard: var(--swui-field-box-size-medium);\n --swui-radiobutton-size-small: var(--swui-field-box-size-small);\n --swui-radiobutton-animation-time: var(--swui-animation-time-medium);\n /* Icon */\n --swui-radiobutton-icon-color: var(--swui-field-indicator-active-color);\n --swui-radiobutton-disabled-icon-color: var(--swui-separator-color);\n --swui-radiobutton-unchecked-icon-color: var(\n --swui-field-indicator-inactive-color\n );\n /* Background */\n --swui-radiobutton-checked-bg-color: var(--swui-primary-action-color);\n --swui-radiobutton-checked-disabled-bg-color: var(--swui-field-bg-disabled);\n --swui-radiobutton-unchecked-bg-color: var(--swui-white);\n --swui-radiobutton-unchecked-disabled-bg-color: var(--swui-field-bg-disabled);\n /* Border */\n --swui-radiobutton-unchecked-border-color: var(--swui-field-border-color);\n --swui-radiobutton-unchecked-hover-border-color: var(\n --swui-field-border-color-hover\n );\n --swui-radiobutton-disabled-border-color: var(\n --swui-field-border-color-disabled\n );\n /* Shadow */\n --swui-radiobutton-checked-focus-shadow: var(\n --swui-field-focus-shadow-inverted\n );\n --swui-radiobutton-unchecked-focus-shadow: var(--swui-field-focus-shadow);\n\n -webkit-appearance: none;\n -moz-appearance: none;\n outline: none;\n display: inline-block;\n vertical-align: top;\n position: relative;\n margin: 0;\n -webkit-flex: none;\n flex: none;\n cursor: pointer;\n border: 1px solid\n var(--current-border-color, var(--swui-radiobutton-unchecked-border-color));\n border-radius: 50%;\n background: var(\n --current-bg-color,\n var(--swui-radiobutton-unchecked-bg-color)\n );\n transition: background var(--swui-radiobutton-animation-time),\n border-color var(--swui-radiobutton-animation-time),\n box-shadow var(--swui-radiobutton-animation-time);\n}\n\n .RadioButton-module_radiobutton__13XTW.RadioButton-module_standard__PVQ2A {\n height: var(--swui-radiobutton-size-standard);\n width: var(--swui-radiobutton-size-standard);\n }\n\n .RadioButton-module_radiobutton__13XTW.RadioButton-module_standard__PVQ2A:after {\n left: 7px;\n top: 7px;\n }\n\n .RadioButton-module_radiobutton__13XTW.RadioButton-module_small__37EpP {\n height: var(--swui-radiobutton-size-small);\n width: var(--swui-radiobutton-size-small);\n }\n\n .RadioButton-module_radiobutton__13XTW.RadioButton-module_small__37EpP:after {\n left: 3px;\n top: 3px;\n }\n\n .RadioButton-module_radiobutton__13XTW:after {\n content: \"\";\n display: block;\n position: absolute;\n transition: opacity\n var(--current-opacity-time, var(--swui-radiobutton-animation-time))\n var(--current-transform-type, ease),\n -webkit-transform\n var(--current-transform-time, var(--swui-radiobutton-animation-time))\n var(--current-transform-type, ease);\n transition: transform\n var(--current-transform-time, var(--swui-radiobutton-animation-time))\n var(--current-transform-type, ease),\n opacity\n var(--current-opacity-time, var(--swui-radiobutton-animation-time))\n var(--current-transform-type, ease);\n transition: transform\n var(--current-transform-time, var(--swui-radiobutton-animation-time))\n var(--current-transform-type, ease),\n opacity\n var(--current-opacity-time, var(--swui-radiobutton-animation-time))\n var(--current-transform-type, ease),\n -webkit-transform\n var(--current-transform-time, var(--swui-radiobutton-animation-time))\n var(--current-transform-type, ease);\n -webkit-transform: scale(var(--current-scale, 0));\n transform: scale(var(--current-scale, 0));\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(\n --current-icon-color,\n var(--swui-radiobutton-unchecked-icon-color)\n );\n opacity: var(--current-opacity, 0);\n }\n\n .RadioButton-module_radiobutton__13XTW:checked {\n --current-bg-color: var(--swui-radiobutton-checked-bg-color);\n --current-border-color: var(--swui-radiobutton-checked-bg-color);\n --current-opacity-time: var(--swui-radiobutton-animation-time);\n --current-transform-time: 0.6s;\n --current-transform-type: cubic-bezier(0.2, 0.85, 0.32, 1.2);\n --current-opacity: 1;\n --current-scale: 1;\n }\n\n .RadioButton-module_radiobutton__13XTW:checked:after {\n --current-icon-color: var(--swui-radiobutton-icon-color);\n }\n\n .RadioButton-module_radiobutton__13XTW:disabled {\n --current-bg-color: var(--swui-radiobutton-unchecked-disabled-bg-color);\n --current-border-color: var(--swui-radiobutton-disabled-border-color);\n }\n\n .RadioButton-module_radiobutton__13XTW:disabled:checked {\n --current-bg-color: var(--swui-radiobutton-checked-disabled-bg-color);\n }\n\n .RadioButton-module_radiobutton__13XTW:disabled:checked:after {\n --current-icon-color: var(--swui-radiobutton-disabled-icon-color);\n }\n\n .RadioButton-module_radiobutton__13XTW:disabled + label {\n }\n\n .RadioButton-module_radiobutton__13XTW:hover:not(:checked):not(:disabled) {\n --current-border-color: var(\n --swui-radiobutton-unchecked-hover-border-color\n );\n }\n\n .RadioButton-module_radiobutton__13XTW:focus:checked {\n box-shadow: var(--swui-radiobutton-checked-focus-shadow);\n }\n\n .RadioButton-module_radiobutton__13XTW:focus:not(:checked) {\n box-shadow: var(--swui-radiobutton-unchecked-focus-shadow);\n }\n\n .RadioButton-module_radiobutton__13XTW + label {\n font-size: 14px;\n line-height: var(--swui-radiobutton-size-standard);\n display: inline-block;\n vertical-align: top;\n cursor: pointer;\n margin-left: 4px;\n }\n";
|
|
150
|
+
var styles$3 = {"radiobutton":"RadioButton-module_radiobutton__13XTW","standard":"RadioButton-module_standard__PVQ2A","small":"RadioButton-module_small__37EpP"};
|
|
151
|
+
styleInject(css_248z$3);
|
|
151
152
|
|
|
152
153
|
var RadioButton = forwardRef(function (_a, ref) {
|
|
153
154
|
var onChange = _a.onChange, onValueChange = _a.onValueChange, _b = _a.size, size = _b === void 0 ? "standard" : _b, name = _a.name, inputProps = __rest(_a, ["onChange", "onValueChange", "size", "name"]);
|
|
@@ -159,17 +160,17 @@ var RadioButton = forwardRef(function (_a, ref) {
|
|
|
159
160
|
onValueChange(ev.target.value);
|
|
160
161
|
}
|
|
161
162
|
}, [onChange, onValueChange]);
|
|
162
|
-
return (createElement("input", __assign({ type: "radio", name: name, className: styles$
|
|
163
|
+
return (React.createElement("input", __assign({ type: "radio", name: name, className: styles$3.radiobutton + " " + styles$3[size], onChange: handleInputChange, ref: ref }, inputProps)));
|
|
163
164
|
});
|
|
164
165
|
|
|
165
166
|
var RadioButtonWithLabel = function (_a) {
|
|
166
167
|
var label = _a.label, inputRef = _a.inputRef, wrapperRef = _a.wrapperRef, textColor = _a.textColor, radioButtonProps = __rest(_a, ["label", "inputRef", "wrapperRef", "textColor"]);
|
|
167
|
-
return (createElement("div", { ref: wrapperRef },
|
|
168
|
-
createElement("label", null,
|
|
169
|
-
createElement(Row, { alignItems: "center" },
|
|
170
|
-
createElement(RadioButton, __assign({ ref: inputRef }, radioButtonProps)),
|
|
171
|
-
createElement(Space, null),
|
|
172
|
-
createElement(Text, { color: textColor, userSelect: "none" }, label)))));
|
|
168
|
+
return (React.createElement("div", { ref: wrapperRef },
|
|
169
|
+
React.createElement("label", null,
|
|
170
|
+
React.createElement(Row, { alignItems: "center" },
|
|
171
|
+
React.createElement(RadioButton, __assign({ ref: inputRef }, radioButtonProps)),
|
|
172
|
+
React.createElement(Space, null),
|
|
173
|
+
React.createElement(Text, { color: textColor, userSelect: "none" }, label)))));
|
|
173
174
|
};
|
|
174
175
|
|
|
175
176
|
var useKeyboardNavigation = function (ref,
|
|
@@ -181,33 +182,35 @@ onKeyDown, onEnter, onEsc,
|
|
|
181
182
|
* onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab.
|
|
182
183
|
* */
|
|
183
184
|
onMove, onDone, onBlur, onFocus) {
|
|
184
|
-
var
|
|
185
|
+
var wasHandled = useRef(false);
|
|
185
186
|
var onBlurHandler = function (ev) {
|
|
186
187
|
var _a;
|
|
187
|
-
if (!
|
|
188
|
+
if (!wasHandled.current) {
|
|
188
189
|
onDone === null || onDone === void 0 ? void 0 : onDone((_a = ev.target.value) !== null && _a !== void 0 ? _a : "");
|
|
189
190
|
}
|
|
190
191
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(ev);
|
|
191
192
|
};
|
|
192
193
|
var onFocusHandler = function (ev) {
|
|
193
|
-
|
|
194
|
+
wasHandled.current = false;
|
|
194
195
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(ev);
|
|
195
196
|
};
|
|
196
197
|
var onKeyDownHandler = useCallback(function (ev) {
|
|
197
198
|
var _a;
|
|
198
199
|
var key = ev.key;
|
|
199
200
|
if (key === "Enter") {
|
|
201
|
+
wasHandled.current = true;
|
|
200
202
|
onEnter === null || onEnter === void 0 ? void 0 : onEnter();
|
|
201
203
|
onDone === null || onDone === void 0 ? void 0 : onDone((_a = ev.currentTarget.value) !== null && _a !== void 0 ? _a : "");
|
|
202
204
|
}
|
|
203
205
|
else if (key === "Escape") {
|
|
204
|
-
|
|
206
|
+
wasHandled.current = true;
|
|
205
207
|
onEsc === null || onEsc === void 0 ? void 0 : onEsc();
|
|
206
208
|
ev.preventDefault();
|
|
207
209
|
ev.stopPropagation();
|
|
208
210
|
}
|
|
209
211
|
else if (onMove) {
|
|
210
212
|
var blurMoveAndCancel = function (direction, e) {
|
|
213
|
+
wasHandled.current = true;
|
|
211
214
|
ref.current.blur();
|
|
212
215
|
onMove(direction);
|
|
213
216
|
e.preventDefault();
|
|
@@ -247,9 +250,22 @@ onMove, onDone, onBlur, onFocus) {
|
|
|
247
250
|
};
|
|
248
251
|
};
|
|
249
252
|
|
|
253
|
+
function elementHasSelectionRange(element) {
|
|
254
|
+
if (element.tagName === "TEXTAREA") {
|
|
255
|
+
return true;
|
|
256
|
+
}
|
|
257
|
+
if (element.tagName === "INPUT" &&
|
|
258
|
+
(element.type === "text" ||
|
|
259
|
+
element.type === "search" ||
|
|
260
|
+
element.type === "url" ||
|
|
261
|
+
element.type === "tel" ||
|
|
262
|
+
element.type === "password")) {
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
250
267
|
var useSelectAllOnMount = function (ref, moveCursorToEnd, enabled) {
|
|
251
268
|
useEffect(function () {
|
|
252
|
-
var _a, _b, _c, _d, _e;
|
|
253
269
|
if (!ref.current) {
|
|
254
270
|
return;
|
|
255
271
|
}
|
|
@@ -258,11 +274,7 @@ var useSelectAllOnMount = function (ref, moveCursorToEnd, enabled) {
|
|
|
258
274
|
Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types.
|
|
259
275
|
https://html.spec.whatwg.org/multipage/input.html#concept-input-apply
|
|
260
276
|
*/
|
|
261
|
-
if ((
|
|
262
|
-
((_b = ref.current) === null || _b === void 0 ? void 0 : _b.type) !== "search" &&
|
|
263
|
-
((_c = ref.current) === null || _c === void 0 ? void 0 : _c.type) !== "url" &&
|
|
264
|
-
((_d = ref.current) === null || _d === void 0 ? void 0 : _d.type) !== "tel" &&
|
|
265
|
-
((_e = ref.current) === null || _e === void 0 ? void 0 : _e.type) !== "password") {
|
|
277
|
+
if (!elementHasSelectionRange(ref.current)) {
|
|
266
278
|
return;
|
|
267
279
|
}
|
|
268
280
|
if (enabled) {
|
|
@@ -279,12 +291,8 @@ var useTextInput = function (ref, _a) {
|
|
|
279
291
|
useSelectAllOnMount(ref, !!moveCursorToEndOnMount, !!selectAllOnMount);
|
|
280
292
|
var _b = useKeyboardNavigation(ref, onKeyDown, onEnter, onEsc, onMove, onDone, onBlur, onFocus), onKeyDownHandler = _b.onKeyDownHandler, onFocusHandler = _b.onFocusHandler, onBlurHandler = _b.onBlurHandler;
|
|
281
293
|
var onChangeHandler = useCallback(function (ev) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
285
|
-
if (onValueChange) {
|
|
286
|
-
onValueChange(ev.target.value);
|
|
287
|
-
}
|
|
294
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(ev);
|
|
295
|
+
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(ev.target.value);
|
|
288
296
|
}, [onChange, onValueChange]);
|
|
289
297
|
return {
|
|
290
298
|
onBlur: onBlurHandler,
|
|
@@ -295,9 +303,9 @@ var useTextInput = function (ref, _a) {
|
|
|
295
303
|
};
|
|
296
304
|
};
|
|
297
305
|
|
|
298
|
-
var css_248z$
|
|
299
|
-
var styles$
|
|
300
|
-
styleInject(css_248z$
|
|
306
|
+
var css_248z$2 = ".TextInput-module_textInput__241mK {\n --swui-textinput-text-color: var(--swui-field-text-color);\n --swui-textinput-text-color-disabled: var(--swui-field-text-color-disabled);\n --swui-textinput-letter-spacing: var(--swui-field-letter-spacing);\n --swui-textinput-line-height: var(--swui-field-text-line-height);\n --swui-textinput-indent: var(--swui-metrics-indent);\n --swui-textinput-spacing: calc(var(--swui-field-text-spacing) - 1px);\n --swui-textinput-font-size: var(--swui-font-size-inputs);\n --swui-textinput-font-family: var(--swui-font-input);\n --swui-textinput-font-weight: var(--swui-font-weight-inputs);\n --swui-textinput-placeholder-color: var(--swui-field-placeholder-color);\n --swui-textinput-animation-time: var(--swui-animation-time-medium);\n --swui-textinput-icon-color: var(--swui-field-border-color-disabled);\n --swui-textinput-icon-hover-color: var(--swui-primary-action-color);\n --swui-textinput-icon-size: var(--swui-field-icon-size);\n\n /* States */\n --swui-textinput-icon-color-success: var(--swui-state-success-color);\n\n --swui-textinput-bg-loading: var(--swui-state-loading-light-color);\n --swui-textinput-border-color-loading: var(--swui-state-loading-color);\n\n --swui-textinput-bg-modified: var(--swui-state-modified-light-color);\n --swui-textinput-border-color-modified: var(--swui-state-modified-color);\n\n --swui-textinput-bg-warning: var(--swui-state-alert-light-color);\n --swui-textinput-border-color-warning: var(--swui-state-alert-color);\n\n --swui-textinput-bg-error: var(--swui-state-error-light-color);\n --swui-textinput-border-color-error: var(--swui-state-error-color);\n\n /* Background */\n --swui-textinput-bg-color: var(--swui-field-bg-enabled);\n --swui-textinput-bg-color-disabled: var(--swui-field-bg-disabled);\n\n /* Border */\n --swui-textinput-border-radius: var(--swui-field-border-radius);\n --swui-textinput-border-color: var(--swui-field-border-color);\n --swui-textinput-border-color-hover: var(--swui-field-border-color-hover);\n --swui-textinput-border-color-disabled: var(\n --swui-field-border-color-disabled\n );\n\n /* Shadow */\n --swui-textinput-focus-shadow: var(--swui-field-focus-shadow);\n\n /* Current vars */\n --current-bg: var(--swui-textinput-bg-color);\n --current-border-color: var(--swui-textinput-border-color);\n --current-icon-color: var(--swui-textinput-icon-color);\n\n /* Styling */\n display: -webkit-flex;\n display: flex;\n width: 100%;\n -webkit-align-items: center;\n align-items: center;\n background: var(--current-bg);\n border: 1px solid var(--current-border-color);\n border-radius: var(--swui-textinput-border-radius);\n transition: all var(--swui-textinput-animation-time);\n}\n\n .TextInput-module_textInput__241mK.TextInput-module_textInput__241mK:focus-within {\n box-shadow: var(--swui-textinput-focus-shadow);\n --current-border-color: var(--swui-textinput-border-color-hover);\n --current-bg: var(--swui-textinput-bg-color);\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_input__2k0az {\n letter-spacing: var(--swui-textinput-letter-spacing);\n line-height: var(--swui-textinput-line-height);\n width: 100%;\n padding: var(--swui-textinput-spacing) var(--swui-textinput-indent);\n color: var(--swui-textinput-text-color);\n font-size: var(--swui-textinput-font-size);\n font-family: var(--swui-textinput-font-family);\n font-weight: var(--swui-textinput-font-weight);\n background: var(--swui-hidden);\n border: none;\n min-width: 0; /* https://stackoverflow.com/a/43361500 */\n margin: 0;\n }\n\n /* Safari */\n\n .TextInput-module_textInput__241mK .TextInput-module_input__2k0az:disabled {\n color: var(--swui-textinput-text-color-disabled);\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_input__2k0az::-webkit-input-placeholder {\n color: var(--swui-textinput-placeholder-color);\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_input__2k0az:-ms-input-placeholder {\n color: var(--swui-textinput-placeholder-color);\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_input__2k0az::placeholder {\n color: var(--swui-textinput-placeholder-color);\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_input__2k0az:focus {\n outline: none;\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_input__2k0az::-webkit-calendar-picker-indicator {\n display: none;\n }\n\n /*\n * States\n */\n\n .TextInput-module_textInput__241mK.TextInput-module_standard__UTt4V:hover:not(.TextInput-module_disabled__1uxhM), .TextInput-module_textInput__241mK.TextInput-module_success__12K-z:hover:not(.TextInput-module_disabled__1uxhM) {\n --current-border-color: var(--swui-textinput-border-color-hover);\n }\n\n .TextInput-module_textInput__241mK.TextInput-module_success__12K-z {\n --current-icon-color: var(--swui-textinput-icon-color-success);\n }\n\n .TextInput-module_textInput__241mK.TextInput-module_loading__oczVY {\n --current-bg: var(--swui-textinput-bg-loading);\n --current-border-color: var(--swui-textinput-border-color-loading);\n }\n\n .TextInput-module_textInput__241mK.TextInput-module_modified__2042t {\n --current-bg: var(--swui-textinput-bg-modified);\n --current-border-color: var(--swui-textinput-border-color-modified);\n --current-icon-color: var(--lhds-color-blue-300);\n }\n\n .TextInput-module_textInput__241mK.TextInput-module_error__39qGr {\n --current-bg: var(--swui-textinput-bg-error);\n --current-border-color: var(--swui-textinput-border-color-error);\n --current-icon-color: var(--swui-textinput-border-color-error);\n }\n\n .TextInput-module_textInput__241mK.TextInput-module_warning__kpGF8 {\n --current-bg: var(--swui-textinput-bg-warning);\n --current-border-color: var(--swui-textinput-border-color-warning);\n --current-icon-color: var(--swui-textinput-border-color-warning);\n }\n\n .TextInput-module_textInput__241mK.TextInput-module_disabled__1uxhM {\n --current-bg: var(--swui-textinput-bg-color-disabled);\n --current-border-color: var(--swui-textinput-border-color-disabled);\n }\n\n .TextInput-module_textInput__241mK.TextInput-module_textInput__241mK.TextInput-module_hideBorder__1_dYg {\n border: none;\n box-shadow: none;\n background: none;\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_clickable__2fPUX:hover {\n --current-icon-color: var(--swui-textinput-icon-hover-color);\n cursor: pointer;\n }\n\n .TextInput-module_textInput__241mK .TextInput-module_icon__1U2OO {\n transition: color var(--swui-textinput-animation-time);\n color: var(--current-icon-color);\n font-size: var(--swui-textinput-icon-size);\n }\n";
|
|
307
|
+
var styles$2 = {"textInput":"TextInput-module_textInput__241mK","input":"TextInput-module_input__2k0az","standard":"TextInput-module_standard__UTt4V","disabled":"TextInput-module_disabled__1uxhM","success":"TextInput-module_success__12K-z","loading":"TextInput-module_loading__oczVY","modified":"TextInput-module_modified__2042t","error":"TextInput-module_error__39qGr","warning":"TextInput-module_warning__kpGF8","hideBorder":"TextInput-module_hideBorder__1_dYg","clickable":"TextInput-module_clickable__2fPUX","icon":"TextInput-module_icon__1U2OO"};
|
|
308
|
+
styleInject(css_248z$2);
|
|
301
309
|
|
|
302
310
|
var TextInputIcon = function (_a) {
|
|
303
311
|
var icon = _a.icon, iconClassName = _a.iconClassName, content = _a.content, spaceOnLeft = _a.spaceOnLeft, spaceOnRight = _a.spaceOnRight, disableContentPadding = _a.disableContentPadding, disableContentPaddingLeft = _a.disableContentPaddingLeft, disableContentPaddingRight = _a.disableContentPaddingRight, onClick = _a.onClick;
|
|
@@ -305,46 +313,58 @@ var TextInputIcon = function (_a) {
|
|
|
305
313
|
return null;
|
|
306
314
|
}
|
|
307
315
|
if (content) {
|
|
308
|
-
return (createElement(Fragment, null,
|
|
316
|
+
return (React.createElement(React.Fragment, null,
|
|
309
317
|
spaceOnLeft &&
|
|
310
|
-
!(disableContentPadding || disableContentPaddingLeft) ? (createElement(Space, null)) : null,
|
|
311
|
-
onClick ? (createElement("span", { onClick: onClick, className: styles$
|
|
318
|
+
!(disableContentPadding || disableContentPaddingLeft) ? (React.createElement(Space, null)) : null,
|
|
319
|
+
onClick ? (React.createElement("span", { onClick: onClick, className: styles$2.clickable }, content || null)) : (React.createElement(React.Fragment, null, content || null)),
|
|
312
320
|
spaceOnRight &&
|
|
313
|
-
!(disableContentPadding || disableContentPaddingRight) ? (createElement(Space, null)) : null));
|
|
321
|
+
!(disableContentPadding || disableContentPaddingRight) ? (React.createElement(Space, null)) : null));
|
|
314
322
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
spaceOnRight ? createElement(Space, null) : null));
|
|
323
|
+
return (React.createElement(React.Fragment, null,
|
|
324
|
+
spaceOnLeft ? React.createElement(Space, null) : null,
|
|
325
|
+
icon && (React.createElement(React.Fragment, null, onClick ? (React.createElement(FlatButton, { onClick: onClick, leftIcon: icon, size: "small" })) : (React.createElement(FontAwesomeIcon, { icon: icon, className: cx$2(styles$2.icon, iconClassName) })))),
|
|
326
|
+
spaceOnRight ? React.createElement(Space, null) : null));
|
|
320
327
|
};
|
|
321
328
|
|
|
322
|
-
var cx = classNames.bind(styles$
|
|
329
|
+
var cx$1 = classNames.bind(styles$2);
|
|
323
330
|
var TextInput = function (props) {
|
|
324
331
|
var _a, _b;
|
|
325
|
-
var _c = props.variant, variant = _c === void 0 ? "standard" : _c, inputRef = props.inputRef, disabled = props.disabled, className = props.className, contentLeft = props.contentLeft, contentRight = props.contentRight, disableContentPadding = props.disableContentPadding, disableContentPaddingLeft = props.disableContentPaddingLeft, disableContentPaddingRight = props.disableContentPaddingRight, iconLeft = props.iconLeft, iconRight = props.iconRight, onClickLeft = props.onClickLeft, onClickRight = props.onClickRight, moveCursorToEndOnMount = props.moveCursorToEndOnMount, selectAllOnMount = props.selectAllOnMount, autoFocus = props.autoFocus, onValueChange = props.onValueChange, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, onDone = props.onDone, onEnter = props.onEnter, onEsc = props.onEsc, onMove = props.onMove, onChange = props.onChange, onKeyDown = props.onKeyDown, hideBorder = props.hideBorder, inputProps = __rest(props, ["variant", "inputRef", "disabled", "className", "contentLeft", "contentRight", "disableContentPadding", "disableContentPaddingLeft", "disableContentPaddingRight", "iconLeft", "iconRight", "onClickLeft", "onClickRight", "moveCursorToEndOnMount", "selectAllOnMount", "autoFocus", "onValueChange", "wrapperClassName", "wrapperStyle", "onDone", "onEnter", "onEsc", "onMove", "onChange", "onKeyDown", "hideBorder"]);
|
|
332
|
+
var _c = props.variant, variant = _c === void 0 ? "standard" : _c, inputRef = props.inputRef, disabled = props.disabled, className = props.className, contentLeft = props.contentLeft, contentRight = props.contentRight, disableContentPadding = props.disableContentPadding, disableContentPaddingLeft = props.disableContentPaddingLeft, disableContentPaddingRight = props.disableContentPaddingRight, iconLeft = props.iconLeft, iconRight = props.iconRight, onClickLeft = props.onClickLeft, onClickRight = props.onClickRight, moveCursorToEndOnMount = props.moveCursorToEndOnMount, selectAllOnMount = props.selectAllOnMount, autoFocus = props.autoFocus, onValueChange = props.onValueChange, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, onDone = props.onDone, onEnter = props.onEnter, onEsc = props.onEsc, onMove = props.onMove, onChange = props.onChange, onKeyDown = props.onKeyDown, hideBorder = props.hideBorder, onFocus = props.onFocus, onBlur = props.onBlur, inputProps = __rest(props, ["variant", "inputRef", "disabled", "className", "contentLeft", "contentRight", "disableContentPadding", "disableContentPaddingLeft", "disableContentPaddingRight", "iconLeft", "iconRight", "onClickLeft", "onClickRight", "moveCursorToEndOnMount", "selectAllOnMount", "autoFocus", "onValueChange", "wrapperClassName", "wrapperStyle", "onDone", "onEnter", "onEsc", "onMove", "onChange", "onKeyDown", "hideBorder", "onFocus", "onBlur"]);
|
|
326
333
|
var localRef = useRef(null);
|
|
327
334
|
var refToUse = inputRef !== null && inputRef !== void 0 ? inputRef : localRef;
|
|
328
|
-
var hookProps = useTextInput(refToUse,
|
|
335
|
+
var hookProps = useTextInput(refToUse, {
|
|
336
|
+
onEnter: onEnter,
|
|
337
|
+
onEsc: onEsc,
|
|
338
|
+
onChange: onChange,
|
|
339
|
+
onValueChange: onValueChange,
|
|
340
|
+
selectAllOnMount: selectAllOnMount,
|
|
341
|
+
moveCursorToEndOnMount: moveCursorToEndOnMount,
|
|
342
|
+
onDone: onDone,
|
|
343
|
+
onMove: onMove,
|
|
344
|
+
onFocus: onFocus,
|
|
345
|
+
onBlur: onBlur,
|
|
346
|
+
onKeyDown: onKeyDown,
|
|
347
|
+
autoFocus: autoFocus,
|
|
348
|
+
});
|
|
329
349
|
var currentIconRight = variant === "success"
|
|
330
350
|
? faCheck
|
|
331
351
|
: variant === "warning" || variant === "error"
|
|
332
352
|
? faExclamationTriangle
|
|
333
353
|
: iconRight;
|
|
334
|
-
var currentContentRight = variant === "loading" ? createElement(InputSpinner, null) : contentRight;
|
|
335
|
-
return (createElement("div", { className: cx(styles$
|
|
336
|
-
_a[styles$
|
|
354
|
+
var currentContentRight = variant === "loading" ? React.createElement(InputSpinner, null) : contentRight;
|
|
355
|
+
return (React.createElement("div", { className: cx$1(styles$2.textInput, styles$2[variant], (_a = {},
|
|
356
|
+
_a[styles$2.disabled] = disabled,
|
|
337
357
|
_a), (_b = {},
|
|
338
|
-
_b[styles$
|
|
358
|
+
_b[styles$2.hideBorder] = hideBorder,
|
|
339
359
|
_b), wrapperClassName), style: wrapperStyle },
|
|
340
|
-
createElement(TextInputIcon, { content: contentLeft, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: iconLeft, spaceOnLeft: true, onClick: onClickLeft }),
|
|
341
|
-
createElement("input", __assign({ className: cx(styles$
|
|
342
|
-
createElement(TextInputIcon, { content: currentContentRight, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: currentIconRight, spaceOnRight: true, onClick: onClickRight })));
|
|
360
|
+
React.createElement(TextInputIcon, { content: contentLeft, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: iconLeft, spaceOnLeft: true, onClick: onClickLeft }),
|
|
361
|
+
React.createElement("input", __assign({ className: cx$1(styles$2.input, className), type: "text", disabled: disabled, ref: refToUse, autoFocus: autoFocus }, inputProps, hookProps)),
|
|
362
|
+
React.createElement(TextInputIcon, { content: currentContentRight, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: currentIconRight, spaceOnRight: true, onClick: onClickRight })));
|
|
343
363
|
};
|
|
344
364
|
|
|
345
|
-
var css_248z$
|
|
346
|
-
var styles$
|
|
347
|
-
styleInject(css_248z$
|
|
365
|
+
var css_248z$1 = ".NumericTextInput-module_numericTextInputInput__1UdyM {\n -moz-appearance: textfield;\n}\n .NumericTextInput-module_numericTextInputInput__1UdyM::-webkit-outer-spin-button,\n .NumericTextInput-module_numericTextInputInput__1UdyM::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n";
|
|
366
|
+
var styles$1 = {"numericTextInputInput":"NumericTextInput-module_numericTextInputInput__1UdyM"};
|
|
367
|
+
styleInject(css_248z$1);
|
|
348
368
|
|
|
349
369
|
var onStepValueChange = function (_a) {
|
|
350
370
|
var onValueChange = _a.onValueChange, value = _a.value, numSteps = _a.numSteps, min = _a.min, max = _a.max;
|
|
@@ -391,12 +411,12 @@ var NumericTextInput = function (_a) {
|
|
|
391
411
|
var onChange = useCallback(function (newValue) {
|
|
392
412
|
onTextValueChange({ onValueChange: onValueChange, newValue: newValue, min: min, max: max });
|
|
393
413
|
}, [max, min, onValueChange]);
|
|
394
|
-
var contentRightToUse = hideButtons ? (contentRight) : (createElement(Fragment, null,
|
|
395
|
-
contentRight && (createElement(Fragment, null,
|
|
414
|
+
var contentRightToUse = hideButtons ? (contentRight) : (React.createElement(React.Fragment, null,
|
|
415
|
+
contentRight && (React.createElement(React.Fragment, null,
|
|
396
416
|
contentRight,
|
|
397
|
-
createElement(Space, null))),
|
|
398
|
-
createElement(UpDownButtons, { onClickUp: disabled ? undefined : function () { return onClick(step); }, onClickDown: disabled ? undefined : function () { return onClick(-step); }, iconColor: "var(--swui-textinput-text-color)", disabled: disabled })));
|
|
399
|
-
return (createElement(TextInput, __assign({ contentRight: contentRightToUse, value: value, onValueChange: onChange, disableContentPaddingRight: !hideButtons, type: "number", min: min, max: max, step: step, className: cx$2(styles$
|
|
417
|
+
React.createElement(Space, null))),
|
|
418
|
+
React.createElement(UpDownButtons, { onClickUp: disabled ? undefined : function () { return onClick(step); }, onClickDown: disabled ? undefined : function () { return onClick(-step); }, iconColor: "var(--swui-textinput-text-color)", disabled: disabled })));
|
|
419
|
+
return (React.createElement(TextInput, __assign({ contentRight: contentRightToUse, value: value, onValueChange: onChange, disableContentPaddingRight: !hideButtons, type: "number", min: min, max: max, step: step, className: cx$2(styles$1.numericTextInputInput, className), disabled: disabled }, restProps)));
|
|
400
420
|
};
|
|
401
421
|
|
|
402
422
|
var useNumericInputValue = function (value, onValueChange) {
|
|
@@ -428,10 +448,10 @@ var useNumericInputValue = function (value, onValueChange) {
|
|
|
428
448
|
var PasswordInput = function (_a) {
|
|
429
449
|
var _b = _a.hiddenIcon, hiddenIcon = _b === void 0 ? faEye : _b, _c = _a.visibleIcon, visibleIcon = _c === void 0 ? faEyeSlash : _c, props = __rest(_a, ["hiddenIcon", "visibleIcon"]);
|
|
430
450
|
var _d = useState(true), isPassword = _d[0], setIsPassword = _d[1];
|
|
431
|
-
return (createElement(TextInput, __assign({ iconRight: isPassword ? hiddenIcon : visibleIcon, onClickRight: function () { return setIsPassword(function (x) { return !x; }); }, type: isPassword ? "password" : "text" }, props)));
|
|
451
|
+
return (React.createElement(TextInput, __assign({ iconRight: isPassword ? hiddenIcon : visibleIcon, onClickRight: function () { return setIsPassword(function (x) { return !x; }); }, type: isPassword ? "password" : "text" }, props)));
|
|
432
452
|
};
|
|
433
453
|
|
|
434
|
-
var cx
|
|
454
|
+
var cx = classNames.bind(styles$2);
|
|
435
455
|
var TextInputBox = function (_a) {
|
|
436
456
|
var _b;
|
|
437
457
|
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;
|
|
@@ -440,18 +460,18 @@ var TextInputBox = function (_a) {
|
|
|
440
460
|
: variant === "warning" || variant === "error"
|
|
441
461
|
? faExclamationTriangle
|
|
442
462
|
: iconRight;
|
|
443
|
-
var currentContentRight = variant === "loading" ? createElement(InputSpinner, null) : contentRight;
|
|
444
|
-
return (createElement("div", { className: cx
|
|
445
|
-
_b[styles$
|
|
463
|
+
var currentContentRight = variant === "loading" ? React.createElement(InputSpinner, null) : contentRight;
|
|
464
|
+
return (React.createElement("div", { className: cx(styles$2.textInput, styles$2.inputContainer, styles$2[variant], (_b = {},
|
|
465
|
+
_b[styles$2.disabled] = disabled,
|
|
446
466
|
_b), wrapperClassName), style: wrapperStyle },
|
|
447
|
-
createElement(TextInputIcon, { content: contentLeft, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: iconLeft, spaceOnLeft: true, onClick: onClickLeft }),
|
|
448
|
-
createElement(Row, { alignItems: "center" }, children),
|
|
449
|
-
createElement(TextInputIcon, { content: currentContentRight, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: currentIconRight, spaceOnRight: true, onClick: onClickRight })));
|
|
467
|
+
React.createElement(TextInputIcon, { content: contentLeft, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: iconLeft, spaceOnLeft: true, onClick: onClickLeft }),
|
|
468
|
+
React.createElement(Row, { alignItems: "center" }, children),
|
|
469
|
+
React.createElement(TextInputIcon, { content: currentContentRight, disableContentPadding: disableContentPadding, disableContentPaddingLeft: disableContentPaddingLeft, disableContentPaddingRight: disableContentPaddingRight, icon: currentIconRight, spaceOnRight: true, onClick: onClickRight })));
|
|
450
470
|
};
|
|
451
471
|
|
|
452
|
-
var css_248z
|
|
453
|
-
var styles
|
|
454
|
-
styleInject(css_248z
|
|
472
|
+
var css_248z = ".TextArea-module_textArea__RgCLh {\n --swui-textarea-text-color: var(--swui-field-text-color);\n --swui-textarea-text-color-disabled: var(--swui-field-text-color-disabled);\n --swui-textarea-letter-spacing: var(--swui-field-letter-spacing);\n --swui-textarea-line-height: var(--swui-field-text-line-height);\n --swui-textarea-indent: var(--swui-metrics-indent);\n --swui-textarea-spacing: calc(var(--swui-field-text-spacing) - 1px);\n --swui-textarea-font-size: var(--swui-font-size-inputs);\n --swui-textarea-font-family: var(--swui-font-input);\n --swui-textarea-font-weight: var(--swui-font-weight-inputs);\n --swui-textarea-placeholder-color: var(--swui-text-disabled-color);\n --swui-textarea-animation-time: var(--swui-animation-time-medium);\n --swui-textarea-icon-color: var(--swui-field-border-color-disabled);\n --swui-textarea-icon-size: var(--swui-field-icon-size);\n\n /* States */\n --swui-textarea-icon-color-success: var(--swui-state-success-color);\n\n --swui-textarea-bg-loading: var(--swui-state-loading-light-color);\n --swui-textarea-border-color-loading: var(--swui-state-loading-color);\n\n --swui-textarea-bg-modified: var(--swui-state-modified-light-color);\n --swui-textarea-border-color-modified: var(--swui-state-modified-color);\n\n --swui-textarea-bg-warning: var(--swui-state-alert-light-color);\n --swui-textarea-border-color-warning: var(--swui-state-alert-color);\n\n --swui-textarea-bg-error: var(--swui-state-error-light-color);\n --swui-textarea-border-color-error: var(--swui-state-error-color);\n\n /* Background */\n --swui-textarea-bg-color: var(--swui-field-bg-enabled);\n --swui-textarea-bg-color-disabled: var(--swui-field-bg-disabled);\n\n /* Border */\n --swui-textarea-border-radius: var(--swui-field-border-radius);\n --swui-textarea-border-color: var(--swui-field-border-color);\n --swui-textarea-border-color-hover: var(--swui-field-border-color-hover);\n --swui-textarea-border-color-disabled: var(\n --swui-field-border-color-disabled\n );\n /* Shadow */\n --swui-textarea-focus-shadow: var(--swui-field-focus-shadow);\n\n /*\n * Styling\n */\n max-width: 100%;\n letter-spacing: var(--swui-textarea-letter-spacing);\n line-height: var(--swui-textarea-line-height);\n padding: var(--swui-textarea-spacing) var(--swui-textarea-indent);\n color: var(--swui-textarea-text-color);\n font-size: var(--swui-textarea-font-size);\n font-family: var(--swui-textarea-font-family);\n font-weight: var(--swui-textarea-font-weight);\n\n background: var(--current-bg, var(--swui-textarea-bg-color));\n border: 1px solid\n var(--current-border-color, var(--swui-textarea-border-color));\n border-radius: var(--swui-textarea-border-radius);\n transition: border var(--swui-textarea-animation-time);\n --current-icon-color: var(--swui-textarea-icon-color);\n}\n\n .TextArea-module_textArea__RgCLh:focus {\n outline: none;\n box-shadow: var(--swui-textarea-focus-shadow);\n --current-border-color: var(--swui-textarea-border-color-hover);\n --current-bg: var(--swui-textarea-bg-color);\n }\n\n .TextArea-module_textArea__RgCLh:disabled {\n color: var(--swui-textarea-text-color-disabled);\n --current-bg: var(--swui-textarea-bg-color-disabled);\n --current-border-color: var(--swui-textarea-border-color-disabled);\n }\n";
|
|
473
|
+
var styles = {"textArea":"TextArea-module_textArea__RgCLh"};
|
|
474
|
+
styleInject(css_248z);
|
|
455
475
|
|
|
456
476
|
var TextArea = forwardRef(function (_a, ref) {
|
|
457
477
|
var className = _a.className, value = _a.value, onValueChange = _a.onValueChange, onChange = _a.onChange, _b = _a.resize, resize = _b === void 0 ? "none" : _b, _c = _a.readOnly, readOnly = _c === void 0 ? false : _c, rows = _a.rows, disabled = _a.disabled, textAreaProps = __rest(_a, ["className", "value", "onValueChange", "onChange", "resize", "readOnly", "rows", "disabled"]);
|
|
@@ -463,8 +483,8 @@ var TextArea = forwardRef(function (_a, ref) {
|
|
|
463
483
|
onValueChange(ev.target.value);
|
|
464
484
|
}
|
|
465
485
|
}, [onChange, onValueChange]);
|
|
466
|
-
return (createElement("textarea", __assign({ disabled: disabled, rows: rows, readOnly: readOnly, className: cx$2(styles
|
|
486
|
+
return (React.createElement("textarea", __assign({ disabled: disabled, rows: rows, readOnly: readOnly, className: cx$2(styles.textArea, className), style: { resize: resize }, onChange: onChangeHandler, value: value, ref: ref }, textAreaProps)));
|
|
467
487
|
});
|
|
468
488
|
|
|
469
|
-
export { Checkbox, CheckboxWithLabel, NumericTextInput, PasswordInput, RadioButton, RadioButtonWithLabel, Switch, SwitchWithLabel, TextArea, TextInput, TextInputBox, onStepValueChange, onTextValueChange, useKeyboardNavigation, useNumericInputValue, useSelectAllOnMount, useTextInput };
|
|
489
|
+
export { Checkbox, CheckboxWithLabel, NumericTextInput, PasswordInput, RadioButton, RadioButtonWithLabel, Switch, SwitchWithLabel, TextArea, TextInput, TextInputBox, elementHasSelectionRange, onStepValueChange, onTextValueChange, useKeyboardNavigation, useNumericInputValue, useSelectAllOnMount, useTextInput };
|
|
470
490
|
//# sourceMappingURL=index.es.js.map
|