@hazelcast/ui 1.1.1 → 1.3.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/lib/Alert.d.ts +3 -2
- package/lib/Alert.js +23 -22
- package/lib/Alert.js.map +1 -1
- package/lib/Alert.module.scss +14 -6
- package/lib/AutocompleteField.d.ts +2 -1
- package/lib/AutocompleteField.js +45 -22
- package/lib/AutocompleteField.js.map +1 -1
- package/lib/AutocompleteField.module.scss +3 -5
- package/lib/AutocompleteFieldFormik.d.ts +2 -1
- package/lib/AutocompleteFieldFormik.js +11 -5
- package/lib/AutocompleteFieldFormik.js.map +1 -1
- package/lib/Button.d.ts +9 -294
- package/lib/Button.js +41 -14
- package/lib/Button.js.map +1 -1
- package/lib/Button.module.scss +120 -87
- package/lib/Calendar/Calendar.d.ts +1 -1
- package/lib/Calendar/Calendar.js +8 -3
- package/lib/Calendar/Calendar.js.map +1 -1
- package/lib/Calendar/Calendar.module.scss +134 -123
- package/lib/Calendar/components/CalendarHeader.tsx +45 -0
- package/lib/Calendar/components/CalendarInput.js +2 -2
- package/lib/Calendar/components/CalendarInput.js.map +1 -1
- package/lib/Calendar/components/CalendarInput.tsx +50 -0
- package/lib/Calendar/components/CalendarTime.js +2 -2
- package/lib/Calendar/components/CalendarTime.js.map +1 -1
- package/lib/Calendar/components/CalendarTime.module.scss +2 -0
- package/lib/Calendar/components/CalendarTime.tsx +117 -0
- package/lib/Calendar/helpers/consts.ts +99 -0
- package/lib/Card.d.ts +1 -0
- package/lib/Card.js +4 -3
- package/lib/Card.js.map +1 -1
- package/lib/Card.module.scss +16 -4
- package/lib/Checkbox.d.ts +2 -2
- package/lib/Checkbox.js +7 -4
- package/lib/Checkbox.js.map +1 -1
- package/lib/Checkbox.module.scss +17 -6
- package/lib/CheckboxFormik.d.ts +2 -1
- package/lib/CheckboxFormik.js +9 -4
- package/lib/CheckboxFormik.js.map +1 -1
- package/lib/CodeEditor.d.ts +3 -2
- package/lib/CodeEditor.js +4 -3
- package/lib/CodeEditor.js.map +1 -1
- package/lib/CodeEditor.module.scss +5 -2
- package/lib/CodeEditorFormik.js +2 -2
- package/lib/CodeEditorFormik.js.map +1 -1
- package/lib/Dialog.js +5 -2
- package/lib/Dialog.js.map +1 -1
- package/lib/Dialog.module.scss +3 -0
- package/lib/EmptyState.d.ts +6 -4
- package/lib/EmptyState.js +4 -6
- package/lib/EmptyState.js.map +1 -1
- package/lib/EmptyState.module.scss +1 -1
- package/lib/Error.d.ts +3 -0
- package/lib/Error.js +2 -1
- package/lib/Error.js.map +1 -1
- package/lib/FieldHeader.d.ts +20 -0
- package/lib/FieldHeader.js +15 -0
- package/lib/FieldHeader.js.map +1 -0
- package/lib/FieldHeader.module.scss +20 -0
- package/lib/Icon.d.ts +2 -35
- package/lib/Icon.js +1 -1
- package/lib/Icon.js.map +1 -1
- package/lib/Icon.module.scss +5 -0
- package/lib/IconButton.d.ts +6 -158
- package/lib/IconButton.js +3 -3
- package/lib/IconButton.js.map +1 -1
- package/lib/InteractiveList.d.ts +3 -3
- package/lib/InteractiveList.js +2 -3
- package/lib/InteractiveList.js.map +1 -1
- package/lib/InteractiveList.module.scss +1 -0
- package/lib/InteractiveListFormik.js +5 -4
- package/lib/InteractiveListFormik.js.map +1 -1
- package/lib/Link.d.ts +1 -65
- package/lib/Link.js +3 -4
- package/lib/Link.js.map +1 -1
- package/lib/Link.module.scss +7 -0
- package/lib/Loader.js +2 -2
- package/lib/Loader.js.map +1 -1
- package/lib/Loader.module.scss +10 -1
- package/lib/Modal.js +3 -3
- package/lib/Modal.js.map +1 -1
- package/lib/Modal.module.scss +1 -0
- package/lib/Notification.module.scss +1 -0
- package/lib/NumberField.d.ts +1 -0
- package/lib/NumberField.js +41 -13
- package/lib/NumberField.js.map +1 -1
- package/lib/NumberField.module.scss +40 -3
- package/lib/NumberFieldFormik.d.ts +2 -1
- package/lib/NumberFieldFormik.js +7 -4
- package/lib/NumberFieldFormik.js.map +1 -1
- package/lib/Overlay.d.ts +3 -2
- package/lib/Overlay.js +7 -5
- package/lib/Overlay.js.map +1 -1
- package/lib/Overlay.module.scss +18 -3
- package/lib/Pagination.d.ts +0 -3
- package/lib/Pagination.js +10 -13
- package/lib/Pagination.js.map +1 -1
- package/lib/Pagination.module.scss +3 -1
- package/lib/PasswordField.js +2 -2
- package/lib/PasswordField.js.map +1 -1
- package/lib/PasswordFieldFormik.d.ts +2 -1
- package/lib/PasswordFieldFormik.js +9 -4
- package/lib/PasswordFieldFormik.js.map +1 -1
- package/lib/Popover.d.ts +21 -0
- package/lib/Popover.js +77 -0
- package/lib/Popover.js.map +1 -0
- package/lib/Popover.module.scss +12 -0
- package/lib/Radio.d.ts +2 -2
- package/lib/Radio.js +4 -2
- package/lib/Radio.js.map +1 -1
- package/lib/Radio.module.scss +3 -0
- package/lib/RadioFormik.js +1 -1
- package/lib/RadioFormik.js.map +1 -1
- package/lib/RadioGroup.js +4 -3
- package/lib/RadioGroup.js.map +1 -1
- package/lib/RadioGroup.module.scss +1 -4
- package/lib/RadioGroupFormik.d.ts +2 -1
- package/lib/RadioGroupFormik.js +9 -4
- package/lib/RadioGroupFormik.js.map +1 -1
- package/lib/SegmentedControl.d.ts +8 -8
- package/lib/SegmentedControl.js.map +1 -1
- package/lib/SegmentedControl.module.scss +4 -2
- package/lib/SegmentedControlFormik.d.ts +4 -4
- package/lib/SegmentedControlFormik.js +1 -1
- package/lib/SegmentedControlFormik.js.map +1 -1
- package/lib/Select/CheckableSelectField.d.ts +34 -0
- package/lib/Select/CheckableSelectField.js +65 -0
- package/lib/Select/CheckableSelectField.js.map +1 -0
- package/lib/Select/CheckableSelectField.module.scss +87 -0
- package/lib/Select/CheckableSelectFieldFormik.d.ts +10 -0
- package/lib/Select/CheckableSelectFieldFormik.js +19 -0
- package/lib/Select/CheckableSelectFieldFormik.js.map +1 -0
- package/lib/Select/Common.d.ts +2 -0
- package/lib/Select/Common.js +10 -3
- package/lib/Select/Common.js.map +1 -1
- package/lib/Select/Common.module.scss +2 -0
- package/lib/Select/MultiSelectField.d.ts +5 -8
- package/lib/Select/MultiSelectField.js +13 -14
- package/lib/Select/MultiSelectField.js.map +1 -1
- package/lib/Select/MultiSelectField.module.scss +8 -0
- package/lib/Select/MultiSelectFieldFormik.d.ts +3 -2
- package/lib/Select/MultiSelectFieldFormik.js +11 -5
- package/lib/Select/MultiSelectFieldFormik.js.map +1 -1
- package/lib/Select/SelectField.d.ts +3 -7
- package/lib/Select/SelectField.js +8 -8
- package/lib/Select/SelectField.js.map +1 -1
- package/lib/Select/SelectField.module.scss +5 -5
- package/lib/Select/SelectFieldFormik.d.ts +3 -2
- package/lib/Select/SelectFieldFormik.js +10 -4
- package/lib/Select/SelectFieldFormik.js.map +1 -1
- package/lib/Select/helpers.d.ts +1 -2
- package/lib/Select/index.d.ts +7 -5
- package/lib/Select/index.js +7 -5
- package/lib/Select/index.js.map +1 -1
- package/lib/SimpleTable.js +7 -7
- package/lib/SimpleTable.js.map +1 -1
- package/lib/SimpleTable.module.scss +1 -1
- package/lib/Slider.d.ts +6 -5
- package/lib/Slider.js +35 -17
- package/lib/Slider.js.map +1 -1
- package/lib/Slider.module.scss +13 -9
- package/lib/SliderFormik.d.ts +1 -1
- package/lib/SliderFormik.js +1 -1
- package/lib/SliderFormik.js.map +1 -1
- package/lib/Table/Cell.module.scss +11 -4
- package/lib/Table/EnhancedRenderers.d.ts +0 -7
- package/lib/Table/EnhancedRenderers.js +3 -14
- package/lib/Table/EnhancedRenderers.js.map +1 -1
- package/lib/Table/Header.js +9 -3
- package/lib/Table/Header.js.map +1 -1
- package/lib/Table/Header.module.scss +29 -35
- package/lib/Table/Row.js +2 -7
- package/lib/Table/Row.js.map +1 -1
- package/lib/Table/Row.module.scss +4 -10
- package/lib/Table/Table.d.ts +10 -4
- package/lib/Table/Table.js +71 -31
- package/lib/Table/Table.js.map +1 -1
- package/lib/Table/Table.module.scss +5 -5
- package/lib/Tabs/Tab.d.ts +9 -1
- package/lib/Tabs/Tab.js +5 -2
- package/lib/Tabs/Tab.js.map +1 -1
- package/lib/Tabs/Tab.module.scss +5 -1
- package/lib/Tabs/TabList.js +2 -1
- package/lib/Tabs/TabList.js.map +1 -1
- package/lib/Tabs/index.d.ts +4 -4
- package/lib/Tabs/index.js +4 -4
- package/lib/Tabs/index.js.map +1 -1
- package/lib/Terminal.js +3 -3
- package/lib/Terminal.js.map +1 -1
- package/lib/Terminal.module.scss +1 -0
- package/lib/TextArea.d.ts +2 -5
- package/lib/TextArea.js +9 -9
- package/lib/TextArea.js.map +1 -1
- package/lib/TextArea.module.scss +15 -10
- package/lib/TextAreaFormik.js +1 -1
- package/lib/TextAreaFormik.js.map +1 -1
- package/lib/TextField.d.ts +13 -23
- package/lib/TextField.js +27 -12
- package/lib/TextField.js.map +1 -1
- package/lib/TextField.module.scss +36 -38
- package/lib/TextFieldFormik.d.ts +4 -2
- package/lib/TextFieldFormik.js +15 -4
- package/lib/TextFieldFormik.js.map +1 -1
- package/lib/TimeField.d.ts +2 -11
- package/lib/TimeField.js +8 -7
- package/lib/TimeField.js.map +1 -1
- package/lib/TimeField.module.scss +6 -6
- package/lib/TimeFieldFormik.js +1 -1
- package/lib/TimeFieldFormik.js.map +1 -1
- package/lib/Toast.js.map +1 -1
- package/lib/Toggle.js +4 -3
- package/lib/Toggle.js.map +1 -1
- package/lib/Toggle.module.scss +23 -19
- package/lib/ToggleFormik.js +1 -1
- package/lib/ToggleFormik.js.map +1 -1
- package/lib/Tooltip.d.ts +9 -2
- package/lib/Tooltip.js +87 -27
- package/lib/Tooltip.js.map +1 -1
- package/lib/Tooltip.module.scss +10 -5
- package/lib/TruncatedText.d.ts +6 -3
- package/lib/TruncatedText.js +2 -2
- package/lib/TruncatedText.js.map +1 -1
- package/lib/hooks/index.d.ts +5 -0
- package/lib/hooks/index.js +7 -0
- package/lib/hooks/index.js.map +1 -0
- package/lib/hooks/useIsMounted.d.ts +1 -0
- package/lib/hooks/useIsMounted.js +12 -0
- package/lib/hooks/useIsMounted.js.map +1 -0
- package/lib/hooks/useOnClickOutside.d.ts +8 -0
- package/lib/hooks/useOnClickOutside.js +24 -0
- package/lib/hooks/useOnClickOutside.js.map +1 -0
- package/lib/hooks/useOpenCloseState.d.ts +6 -0
- package/lib/hooks/useOpenCloseState.js +14 -0
- package/lib/hooks/useOpenCloseState.js.map +1 -0
- package/lib/hooks/usePrevious.d.ts +1 -0
- package/lib/hooks/usePrevious.js +9 -0
- package/lib/hooks/usePrevious.js.map +1 -0
- package/lib/hooks/useRefValue.d.ts +1 -0
- package/lib/hooks/useRefValue.js +9 -0
- package/lib/hooks/useRefValue.js.map +1 -0
- package/lib/hooks/useTableCustomizableColumns.d.ts +9 -0
- package/lib/hooks/useTableCustomizableColumns.js +23 -0
- package/lib/hooks/useTableCustomizableColumns.js.map +1 -0
- package/lib/index.d.ts +55 -53
- package/lib/index.js +55 -53
- package/lib/index.js.map +1 -1
- package/lib/utils/test.d.ts +1 -0
- package/lib/utils/test.js +8 -0
- package/lib/utils/test.js.map +1 -0
- package/package.json +57 -50
- package/styles/constants/_animations.scss +0 -1
- package/styles/constants/_colors.scss +1 -10
- package/styles/constants/_sizes.scss +6 -24
- package/styles/constants/_typography.scss +21 -10
- package/styles/constants/export.module.scss +1 -1
- package/styles/fonts.css +14 -65
- package/styles/helpers/_a11y.scss +8 -1
- package/styles/helpers/_error.scss +17 -0
- package/styles/helpers/_index.scss +1 -0
- package/styles/helpers/_input.scss +1 -1
package/lib/Tabs/Tab.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
|
+
import { Icon } from '../Icon';
|
|
3
4
|
import { useTabContext, getTabId, getPanelId } from './TabContext';
|
|
4
5
|
import { keyIsOneOf } from '../utils/keyboard';
|
|
5
6
|
import styles from './Tab.module.scss';
|
|
@@ -14,7 +15,7 @@ import styles from './Tab.module.scss';
|
|
|
14
15
|
* More info - https://www.w3.org/TR/wai-aria-practices/#kbd_selection_follows_focus
|
|
15
16
|
*
|
|
16
17
|
*/
|
|
17
|
-
export const Tab = ({ component: Component = 'button', label, value, href, onClick }) => {
|
|
18
|
+
export const Tab = ({ component: Component = 'button', label, value, href, onClick, icon, iconAriaLabel }) => {
|
|
18
19
|
const { onChange, value: activeValue, idPrefix, fullWidth } = useTabContext();
|
|
19
20
|
const selected = value === activeValue;
|
|
20
21
|
const handleClick = useCallback((event) => {
|
|
@@ -34,6 +35,8 @@ export const Tab = ({ component: Component = 'button', label, value, href, onCli
|
|
|
34
35
|
handleClick(event);
|
|
35
36
|
}
|
|
36
37
|
}, [handleClick]);
|
|
37
|
-
return (React.createElement(Component, { className: cn(styles.tab, { [styles.selected]: selected, [styles.fullWidth]: fullWidth }), role: "tab", id: getTabId(idPrefix, value.toString()), "aria-controls": getPanelId(idPrefix, value.toString()), "aria-selected": selected, tabIndex: selected ? 0 : -1, onKeyPress: onKeyPress, onClick: handleClick, href: selected ? undefined : href },
|
|
38
|
+
return (React.createElement(Component, { className: cn(styles.tab, { [styles.selected]: selected, [styles.fullWidth]: fullWidth }), role: "tab", id: getTabId(idPrefix, value.toString()), "aria-controls": getPanelId(idPrefix, value.toString()), "aria-selected": selected, tabIndex: selected ? 0 : -1, onKeyPress: onKeyPress, onClick: handleClick, href: selected ? undefined : href },
|
|
39
|
+
icon && iconAriaLabel && React.createElement(Icon, { icon: icon, ariaLabel: iconAriaLabel, className: styles.icon }),
|
|
40
|
+
label));
|
|
38
41
|
};
|
|
39
42
|
//# sourceMappingURL=Tab.js.map
|
package/lib/Tabs/Tab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/Tabs/Tab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAA6B,MAAM,OAAO,CAAA;AACzE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,MAAM,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/Tabs/Tab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAA6B,MAAM,OAAO,CAAA;AACzE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAa,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,MAAM,MAAM,mBAAmB,CAAA;AA+BtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE;IACzH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAA;IAC7E,MAAM,QAAQ,GAAG,KAAK,KAAK,WAAW,CAAA;IAEtC,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAA+G,EAAE,EAAE;QAClH,IAAI,QAAQ,EAAE;YACZ,OAAM;SACP;QAED,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAA;SACf;QAED,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC,EACD,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CACrC,CAAA;IAED,wDAAwD;IACxD,+DAA+D;IAC/D,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAA2D,EAAE,EAAE;QAC9D,KAAK,CAAC,cAAc,EAAE,CAAA;QAEtB,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;YACvC,WAAW,CAAC,KAAK,CAAC,CAAA;SACnB;IACH,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAA;IAED,OAAO,CACL,oBAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,EACzF,IAAI,EAAC,KAAK,EACV,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,mBACzB,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,mBACtC,QAAQ,EACvB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAEhC,IAAI,IAAI,aAAa,IAAI,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,GAAI;QAC/F,KAAK,CACI,CACb,CAAA;AACH,CAAC,CAAA"}
|
package/lib/Tabs/Tab.module.scss
CHANGED
|
@@ -17,13 +17,17 @@
|
|
|
17
17
|
color: c.$colorText;
|
|
18
18
|
background-color: transparent;
|
|
19
19
|
cursor: pointer;
|
|
20
|
+
|
|
20
21
|
// for <a> element
|
|
21
22
|
text-decoration: none;
|
|
22
23
|
|
|
23
24
|
@include c.typographyH3;
|
|
24
|
-
|
|
25
25
|
@include h.overflowEllipsis;
|
|
26
26
|
|
|
27
|
+
.icon {
|
|
28
|
+
margin-right: c.$grid * 2;
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
&.selected {
|
|
28
32
|
color: c.$colorPrimary;
|
|
29
33
|
border-radius: none;
|
package/lib/Tabs/TabList.js
CHANGED
|
@@ -28,7 +28,8 @@ export const TabList = ({ ariaLabel, className, children }) => {
|
|
|
28
28
|
// - Moves focus to the previous tab.
|
|
29
29
|
// - If focus is on the first tab, moves focus to the last tab.
|
|
30
30
|
case previousItemKey:
|
|
31
|
-
newFocusTarget =
|
|
31
|
+
newFocusTarget =
|
|
32
|
+
(_c = (_a = target.previousElementSibling) !== null && _a !== void 0 ? _a : (_b = tabListRef.current) === null || _b === void 0 ? void 0 : _b.lastChild) !== null && _c !== void 0 ? _c : null;
|
|
32
33
|
break;
|
|
33
34
|
// When a tab has focus:
|
|
34
35
|
// - Moves focus to the next tab.
|
package/lib/Tabs/TabList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../src/Tabs/TabList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgC,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,MAAM,MAAM,uBAAuB,CAAA;AAQ1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9E,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE/C,yEAAyE;IACzE,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAoC,EAAE,EAAE;;QACzE,MAAM,MAAM,GAAG,KAAK,CAAC,MAA2B,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,OAAO,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAA;YACtH,OAAM;SACP;QAED,IAAI,cAAc,GAA6B,IAAI,CAAA;QACnD,MAAM,eAAe,GAAG,WAAW,CAAA;QACnC,MAAM,WAAW,GAAG,YAAY,CAAA;QAEhC,QAAQ,KAAK,CAAC,GAAG,EAAE;YACjB,wBAAwB;YACxB,qCAAqC;YACrC,+DAA+D;YAC/D,KAAK,eAAe;gBAClB,cAAc,
|
|
1
|
+
{"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../src/Tabs/TabList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgC,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,MAAM,MAAM,uBAAuB,CAAA;AAQ1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9E,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE/C,yEAAyE;IACzE,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAoC,EAAE,EAAE;;QACzE,MAAM,MAAM,GAAG,KAAK,CAAC,MAA2B,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,OAAO,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAA;YACtH,OAAM;SACP;QAED,IAAI,cAAc,GAA6B,IAAI,CAAA;QACnD,MAAM,eAAe,GAAG,WAAW,CAAA;QACnC,MAAM,WAAW,GAAG,YAAY,CAAA;QAEhC,QAAQ,KAAK,CAAC,GAAG,EAAE;YACjB,wBAAwB;YACxB,qCAAqC;YACrC,+DAA+D;YAC/D,KAAK,eAAe;gBAClB,cAAc;oBACZ,MAAA,MAAC,MAAM,CAAC,sBAA4C,mCAAK,MAAA,UAAU,CAAC,OAAO,0CAAE,SAA+B,mCAAI,IAAI,CAAA;gBACtH,MAAK;YACP,wBAAwB;YACxB,iCAAiC;YACjC,+DAA+D;YAC/D,KAAK,WAAW;gBACd,cAAc,GAAG,MAAA,MAAC,MAAM,CAAC,kBAAwC,mCAAK,MAAA,UAAU,CAAC,OAAO,0CAAE,UAAgC,mCAAI,IAAI,CAAA;gBAClI,MAAK;YACP,sDAAsD;YACtD,KAAK,MAAM;gBACT,cAAc,GAAG,MAAC,MAAA,UAAU,CAAC,OAAO,0CAAE,UAAgC,mCAAI,IAAI,CAAA;gBAC9E,MAAK;YACP,qDAAqD;YACrD,KAAK,KAAK;gBACR,cAAc,GAAG,MAAC,MAAA,UAAU,CAAC,OAAO,0CAAE,SAA+B,mCAAI,IAAI,CAAA;gBAC7E,MAAK;YACP;gBACE,MAAK;SACR;QAED,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,cAAc,CAAC,KAAK,EAAE,CAAA;YACtB,KAAK,CAAC,cAAc,EAAE,CAAA;SACvB;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;IACL,+DAA+D;IAC/D,0CACY,UAAU,EACpB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,gBAC5B,SAAS,EACrB,IAAI,EAAC,SAAS,EACd,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,aAAa,IAEvB,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA"}
|
package/lib/Tabs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
1
|
+
export { TabContext, TabContextProvider, TabContextProviderControlled, getPanelId, getTabId, useTabContext, tabContextDefaultValue, } from './TabContext';
|
|
2
|
+
export { TabList } from './TabList';
|
|
3
|
+
export { Tab } from './Tab';
|
|
4
|
+
export { TabPanel } from './TabPanel';
|
package/lib/Tabs/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
1
|
+
export { TabContext, TabContextProvider, TabContextProviderControlled, getPanelId, getTabId, useTabContext, tabContextDefaultValue, } from './TabContext';
|
|
2
|
+
export { TabList } from './TabList';
|
|
3
|
+
export { Tab } from './Tab';
|
|
4
|
+
export { TabPanel } from './TabPanel';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/lib/Tabs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Tabs/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,4BAA4B,EAC5B,UAAU,EACV,QAAQ,EACR,aAAa,EACb,sBAAsB,GACvB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
|
package/lib/Terminal.js
CHANGED
|
@@ -45,9 +45,9 @@ export const Terminal = memo(({ 'data-test': dataTest, onExecute, commandTimeout
|
|
|
45
45
|
addExecutionHistoryItem({ command: inputVal, res, prompt });
|
|
46
46
|
}
|
|
47
47
|
catch (err) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
if (err instanceof Error) {
|
|
49
|
+
addExecutionHistoryItem({ command: inputVal, error: err.message, prompt });
|
|
50
|
+
}
|
|
51
51
|
}
|
|
52
52
|
finally {
|
|
53
53
|
setExecuting(false);
|
package/lib/Terminal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../src/Terminal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,QAAQ,EAAwB,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzF,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAExD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAA9C;;QACE,SAAI,GAAG,qBAAqB,CAAA;IAC9B,CAAC;CAAA;AAED,MAAM,aAAa,GAAG,GAAG,CAAA;AACzB,MAAM,eAAe,GAAG,KAAK,CAAA;AAuB7B,MAAM,CAAC,MAAM,QAAQ,GAAsB,IAAI,CAC7C,CAAC,EACC,WAAW,EAAE,QAAQ,EACrB,SAAS,EACT,cAAc,GAAG,eAAe,EAChC,YAAY,GAAG,aAAa,EAC5B,SAAS,EACT,cAAc,EACd,cAAc,EACd,MAAM,EACN,uBAAuB,GAAG,EAAE,EAC5B,cAAc,GAAG,EAAE,EACnB,cAAc,GAAG,KAAK,EACtB,gBAAgB,GAAG,IAAI,GACxB,EAAE,EAAE;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IAExD,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,EAAsB,CAAA;IAC5F,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAA0B,uBAAuB,CAAC,CAAA;IAE1G,MAAM,uBAAuB,GAAG,CAAC,cAAqC,EAAE,EAAE;QACxE,mBAAmB,CAAC,CAAC,WAAW,EAAE,EAAE;YAClC,MAAM,UAAU,GAAG,CAAC,GAAG,WAAW,EAAE,cAAc,CAAC,CAAA;YAEnD,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY,EAAE;gBACpC,UAAU,CAAC,KAAK,EAAE,CAAA;aACnB;YAED,OAAO,UAAU,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,0BAA0B,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC,CAAA;IAED,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IAE1D,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAE/C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAEpE,IAAI,KAAsB,CAAA;QAE1B,IAAI;YACF,YAAY,CAAC,IAAI,CAAC,CAAA;YAElB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAW;gBACvC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,oFAAoF;gBACpF,IAAI,OAAO,CAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAClC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;wBACtB,MAAM,CAAC,IAAI,mBAAmB,CAAC,GAAG,QAAQ,qBAAqB,cAAc,EAAE,CAAC,CAAC,CAAA;oBACnF,CAAC,EAAE,cAAc,CAAC,CAAA;gBACpB,CAAC,CAAC;aACH,CAAC,CAAA;YAEF,uBAAuB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;SAC5D;QAAC,OAAO,GAAG,EAAE;YACZ,
|
|
1
|
+
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../src/Terminal.tsx"],"names":[],"mappings":"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"}
|
package/lib/Terminal.module.scss
CHANGED
package/lib/TextArea.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeEvent, FC, FocusEvent } from 'react';
|
|
2
2
|
import { DataTestProp } from '@hazelcast/helpers';
|
|
3
|
-
import {
|
|
3
|
+
import { FieldHeaderProps } from './FieldHeader';
|
|
4
4
|
export declare type TextAreaSize = 'medium' | 'small';
|
|
5
5
|
export declare type TextAreaCoreProps = {
|
|
6
6
|
name: string;
|
|
@@ -10,13 +10,10 @@ export declare type TextAreaCoreProps = {
|
|
|
10
10
|
error?: string;
|
|
11
11
|
};
|
|
12
12
|
export declare type TextAreaExtraProps = {
|
|
13
|
-
label: string;
|
|
14
|
-
labelClassName?: string;
|
|
15
13
|
textareaClassName?: string;
|
|
16
14
|
errorClassName?: string;
|
|
17
15
|
resizable?: boolean;
|
|
18
|
-
helperText?: HelpProps['helperText'];
|
|
19
16
|
size?: TextAreaSize;
|
|
20
|
-
} & Partial<Pick<HTMLTextAreaElement, 'className' | 'disabled' | 'placeholder' | 'required' | 'rows'
|
|
17
|
+
} & Partial<Pick<HTMLTextAreaElement, 'className' | 'disabled' | 'placeholder' | 'required' | 'rows'>> & Omit<FieldHeaderProps, 'id'>;
|
|
21
18
|
export declare type TextAreaProps = TextAreaCoreProps & TextAreaExtraProps & DataTestProp;
|
|
22
19
|
export declare const TextArea: FC<TextAreaProps>;
|
package/lib/TextArea.js
CHANGED
|
@@ -4,10 +4,10 @@ import useResizeAware from 'react-resize-aware';
|
|
|
4
4
|
import useIsomorphicLayoutEffect from 'react-use/lib/useIsomorphicLayoutEffect';
|
|
5
5
|
import { useUID } from 'react-uid';
|
|
6
6
|
import { Error, errorId } from './Error';
|
|
7
|
-
import {
|
|
8
|
-
import { Label } from './Label';
|
|
7
|
+
import { FieldHeader } from './FieldHeader';
|
|
9
8
|
import styles from './TextArea.module.scss';
|
|
10
|
-
export const TextArea = (
|
|
9
|
+
export const TextArea = (props) => {
|
|
10
|
+
const { error, label, name, onBlur, onChange, placeholder, value, disabled, className, labelClassName, textareaClassName, errorClassName, required, resizable = true, helperText, size = 'medium', 'data-test': dataTest, ...htmlAttrs } = props;
|
|
11
11
|
const id = useUID();
|
|
12
12
|
const popperRef = useRef();
|
|
13
13
|
const [resizeListener, sizes] = useResizeAware();
|
|
@@ -20,16 +20,16 @@ export const TextArea = ({ error, label, name, onBlur, onChange, placeholder, va
|
|
|
20
20
|
return (React.createElement("div", { "data-test": dataTest, className: cn(styles.container, {
|
|
21
21
|
[styles.disabled]: disabled,
|
|
22
22
|
[styles.hasError]: error,
|
|
23
|
+
[styles.withError]: 'error' in props,
|
|
23
24
|
}, className) },
|
|
24
|
-
React.createElement(
|
|
25
|
+
React.createElement(FieldHeader, { "data-test": "textarea", label: label, id: id, helperText: helperText, labelClassName: labelClassName, size: size }),
|
|
25
26
|
React.createElement("div", { className: styles.textAreaContainer },
|
|
26
27
|
React.createElement("div", { className: styles.textAreaWrapper },
|
|
27
|
-
React.createElement("textarea",
|
|
28
|
+
React.createElement("textarea", { "aria-invalid": !!error, "aria-required": required, "aria-errormessage": error && errorId(id), id: id, className: cn({
|
|
28
29
|
[styles.notResizable]: !resizable,
|
|
29
|
-
}, textareaClassName), placeholder: placeholder, name: name, onBlur: onBlur, onChange: onChange, required: required, value: value !== null && value !== void 0 ? value : '', disabled: disabled
|
|
30
|
+
}, textareaClassName), placeholder: placeholder, name: name, onBlur: onBlur, onChange: onChange, required: required, value: value !== null && value !== void 0 ? value : '', disabled: disabled, ...htmlAttrs }),
|
|
30
31
|
React.createElement("div", { className: styles.borderOverlay }),
|
|
31
|
-
helperText && resizeListener),
|
|
32
|
-
|
|
33
|
-
React.createElement(Error, { error: error, className: cn(styles.errorContainer, errorClassName), inputId: id })));
|
|
32
|
+
helperText && resizeListener)),
|
|
33
|
+
React.createElement(Error, { truncated: true, error: error, className: cn(styles.errorContainer, errorClassName), inputId: id })));
|
|
34
34
|
};
|
|
35
35
|
//# sourceMappingURL=TextArea.js.map
|
package/lib/TextArea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+B,MAAM,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAE/C,OAAO,yBAAyB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+B,MAAM,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAE/C,OAAO,yBAAyB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAA;AAG7D,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAsB3C,MAAM,CAAC,MAAM,QAAQ,GAAsB,CAAC,KAAK,EAAE,EAAE;IACnD,MAAM,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,SAAS,GAAG,IAAI,EAChB,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,WAAW,EAAE,QAAQ,EACrB,GAAG,SAAS,EACb,GAAG,KAAK,CAAA;IACT,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAEnB,MAAM,SAAS,GAAG,MAAM,EAAa,CAAA;IACrC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,cAAc,EAAE,CAAA;IAEhD,yBAAyB,CAAC,GAAG,EAAE;;QAC7B,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,MAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,WAAW,kDAAI,CAAA;SACnC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAElB,OAAO,CACL,0CACa,QAAQ,EACnB,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,SAAS,EAChB;YACE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;YAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK;YACxB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,KAAK;SACrC,EACD,SAAS,CACV;QAED,oBAAC,WAAW,iBAAW,UAAU,EAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAI;QAC9H,6BAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB;YACtC,6BAAK,SAAS,EAAE,MAAM,CAAC,eAAe;gBACpC,kDACgB,CAAC,CAAC,KAAK,mBACN,QAAQ,uBACJ,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC,EACvC,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,EAAE,CACX;wBACE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS;qBAClC,EACD,iBAAiB,CAClB,EACD,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAClB,QAAQ,EAAE,QAAQ,KACd,SAAS,GACb;gBACF,6BAAK,SAAS,EAAE,MAAM,CAAC,aAAa,GAAI;gBACvC,UAAU,IAAI,cAAc,CACzB,CACF;QACN,oBAAC,KAAK,IAAC,SAAS,QAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,GAAI,CAChG,CACP,CAAA;AACH,CAAC,CAAA"}
|
package/lib/TextArea.module.scss
CHANGED
|
@@ -4,18 +4,24 @@
|
|
|
4
4
|
// Why is it so complex? Why do we need .borderOverlay?
|
|
5
5
|
// Ideally, we would have used native `border` for every style: hover, error, focus.
|
|
6
6
|
// Since our focus outline is thicker than the native border, we cannot use the native border for focus styles.
|
|
7
|
-
// Say, the initial border is 1px. For focus you make it 2px.
|
|
7
|
+
// Say, the initial border is 1px. For focus you make it 2px.
|
|
8
|
+
// As result, it shifts the content inside. Not nice UX at all.
|
|
8
9
|
// To work around that in other places, we do not change the thickness of the border on focus.
|
|
9
10
|
// Instead we add a 1px inset box-shadow which adds ups to the border and gives us the desired 2px outline on focus.
|
|
10
11
|
// Back to the textarea. As you can see it is supposed to have rounded corners. So we use border-radius.
|
|
11
|
-
// Ideally, we would have used border-radius on the textarea itself
|
|
12
|
+
// Ideally, we would have used border-radius on the textarea itself
|
|
13
|
+
// and applied the same technique with the inset box-shadow.
|
|
12
14
|
// Guess what? Chrome does not apply border-radius to the scrollbar inside of the textarea.
|
|
13
|
-
// Next step is to add a wrapping div to the textarea, and apply the border-radius,
|
|
14
|
-
//
|
|
15
|
+
// Next step is to add a wrapping div to the textarea, and apply the border-radius,
|
|
16
|
+
// the border itself and the inset box-shadow there.
|
|
17
|
+
// Now the inset box-shadow is rendered under the textarea,
|
|
18
|
+
// so the scrollbar is rendered on top of it and the textarea text as well.
|
|
15
19
|
// At least it makes sense. After all, it is a shadow. It is supposed to decorate, not overlap and override.
|
|
16
20
|
// Let's go deeper down the rabbit hole.
|
|
17
|
-
// We add the wrapping div and add the border-radius there, but we do not add the border itself.
|
|
18
|
-
//
|
|
21
|
+
// We add the wrapping div and add the border-radius there, but we do not add the border itself.
|
|
22
|
+
// Instead we make the wrapping div relative.
|
|
23
|
+
// Next, we add an absolute child div. We add the border with the inset box-shadow to that div,
|
|
24
|
+
// so it is rendered on top of the textarea.
|
|
19
25
|
// Finally, we add textarea:focus styling to support IE11 that does not play nice with :focus-within.
|
|
20
26
|
|
|
21
27
|
.container {
|
|
@@ -38,10 +44,6 @@
|
|
|
38
44
|
margin: 2 * c.$grid 0 0 c.$grid;
|
|
39
45
|
}
|
|
40
46
|
|
|
41
|
-
.errorContainer {
|
|
42
|
-
margin-top: c.$grid;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
47
|
.textAreaContainer {
|
|
46
48
|
display: flex;
|
|
47
49
|
flex-direction: row;
|
|
@@ -128,8 +130,11 @@
|
|
|
128
130
|
// https://stackoverflow.com/a/52616313
|
|
129
131
|
outline: transparent solid c.$outlineWidth;
|
|
130
132
|
}
|
|
133
|
+
|
|
131
134
|
&.focus .textAreaWrapper .borderOverlay,
|
|
132
135
|
.textAreaWrapper textarea:focus + .borderOverlay {
|
|
133
136
|
@include h.outlineFormField;
|
|
134
137
|
}
|
|
135
138
|
}
|
|
139
|
+
|
|
140
|
+
@include h.withError;
|
package/lib/TextAreaFormik.js
CHANGED
|
@@ -6,6 +6,6 @@ export const TextAreaFormik = ({ name, validate, ...props }) => {
|
|
|
6
6
|
name,
|
|
7
7
|
validate,
|
|
8
8
|
});
|
|
9
|
-
return (React.createElement(TextArea,
|
|
9
|
+
return (React.createElement(TextArea, { ...props, name: name, value: field.value, onChange: field.onChange, onBlur: field.onBlur, error: meta.touched || meta.initialError === meta.error ? meta.error : undefined }));
|
|
10
10
|
};
|
|
11
11
|
//# sourceMappingURL=TextAreaFormik.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextAreaFormik.js","sourceRoot":"","sources":["../src/TextAreaFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAkB,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAA;AAQzD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA0B,EAAgB,EAAE;IACrH,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAqB;QACjD,IAAI;QACJ,QAAQ;KACT,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"TextAreaFormik.js","sourceRoot":"","sources":["../src/TextAreaFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAkB,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAA;AAQzD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA0B,EAAgB,EAAE;IACrH,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAqB;QACjD,IAAI;QACJ,QAAQ;KACT,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,QAAQ,OACH,KAAK,EACT,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAChF,CACH,CAAA;AACH,CAAC,CAAA"}
|
package/lib/TextField.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { ChangeEvent, FocusEvent, InputHTMLAttributes, KeyboardEvent, ReactElement } from 'react';
|
|
1
|
+
import React, { ChangeEvent, FocusEvent, InputHTMLAttributes, KeyboardEvent, ReactElement, MouseEvent, Ref } from 'react';
|
|
2
2
|
import { DataTestProp } from '@hazelcast/helpers';
|
|
3
3
|
import { Icon as IconType } from 'react-feather';
|
|
4
|
-
import {
|
|
4
|
+
import { FieldHeaderProps } from './FieldHeader';
|
|
5
|
+
import { IconSize } from './Icon';
|
|
6
|
+
import { TooltipProps } from './Tooltip';
|
|
5
7
|
export declare type TextFieldSize = 'medium' | 'small';
|
|
6
8
|
declare type TextFieldTrailingIcon = {
|
|
7
9
|
inputTrailingIcon: IconType;
|
|
@@ -16,15 +18,13 @@ declare type TextFieldCoreProps<T extends TextFieldTypes> = {
|
|
|
16
18
|
value?: T extends 'number' ? number : string;
|
|
17
19
|
onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
|
|
18
20
|
onChange: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
21
|
+
onClick?: (e: MouseEvent<HTMLInputElement>) => void;
|
|
19
22
|
error?: string;
|
|
20
23
|
};
|
|
21
24
|
export declare type TextFieldExtraProps<T extends TextFieldTypes> = {
|
|
22
|
-
label: string;
|
|
23
|
-
showAriaLabel?: boolean;
|
|
24
|
-
helperText?: HelpProps['helperText'];
|
|
25
25
|
size?: TextFieldSize;
|
|
26
|
+
iconSize?: IconSize;
|
|
26
27
|
className?: string;
|
|
27
|
-
labelClassName?: string;
|
|
28
28
|
inputContainerClassName?: string;
|
|
29
29
|
inputClassName?: string;
|
|
30
30
|
errorClassName?: string;
|
|
@@ -32,22 +32,12 @@ export declare type TextFieldExtraProps<T extends TextFieldTypes> = {
|
|
|
32
32
|
inputIcon?: IconType;
|
|
33
33
|
onKeyPress?: (e: KeyboardEvent<HTMLInputElement>) => void;
|
|
34
34
|
type?: T;
|
|
35
|
-
|
|
35
|
+
readOnly?: boolean;
|
|
36
|
+
clearable?: boolean;
|
|
37
|
+
errorTooltipPlacement?: TooltipProps['placement'];
|
|
38
|
+
} & DataTestProp & Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'autoFocus' | 'disabled' | 'autoComplete' | 'required' | 'placeholder'> & TextFieldTrailingIcon & Omit<FieldHeaderProps, 'id'>;
|
|
36
39
|
export declare type TextFieldProps<T extends TextFieldTypes> = TextFieldCoreProps<T> & TextFieldExtraProps<T>;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
* Text fields accept several types of data and can impose various restrictions to ensure you get what you need from users. And help and error guidance to ensure they know what to enter.
|
|
41
|
-
*
|
|
42
|
-
* ### General Info
|
|
43
|
-
* - Text Field is available in 2 variations: `small` (height of 30 px) and `medium` (height of 40 px). The use depends mainly on the space in UI.
|
|
44
|
-
* - All of the variations can be either with the label, or without label.
|
|
45
|
-
* - Standard label alignment is left-aligned with the field underneath.
|
|
46
|
-
* - Mostly all of the fields are required. If some of them are not, use text "Optional" behind the label.
|
|
47
|
-
* - If needed, you can use icon on the left side or on the right side inside the Text Input (e.g. Eye icon to show / hide password).
|
|
48
|
-
*
|
|
49
|
-
* ### Usage
|
|
50
|
-
* Use a text input when the expected user input is a single line of text.
|
|
51
|
-
*/
|
|
52
|
-
export declare const TextField: <T extends TextFieldTypes>({ "data-test": dataTest, className, disabled, error, errorClassName, helperText, id: explicitId, inputClassName, inputContainerChild, inputContainerClassName, inputIcon, inputTrailingIcon, inputTrailingIconLabel, label, labelClassName, showAriaLabel, name, size, onBlur, onChange, onKeyPress, placeholder, required, type, value, ...htmlAttrs }: TextFieldProps<T>) => JSX.Element;
|
|
40
|
+
export declare const TextField: <T extends TextFieldTypes>({ mRef, ...props }: TextFieldProps<T> & {
|
|
41
|
+
mRef?: React.Ref<HTMLInputElement> | undefined;
|
|
42
|
+
}) => JSX.Element;
|
|
53
43
|
export {};
|
package/lib/TextField.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// https://zeroheight.com/11d0e6dac/p/316944-text-field
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { forwardRef, useRef, } from 'react';
|
|
3
3
|
import cn from 'classnames';
|
|
4
|
+
import { triggerNativeInputChange } from '@hazelcast/helpers';
|
|
5
|
+
import { X } from 'react-feather';
|
|
4
6
|
import { useUID } from 'react-uid';
|
|
7
|
+
import mergeRefs from 'react-merge-refs';
|
|
5
8
|
import { Icon } from './Icon';
|
|
6
|
-
import { Label } from './Label';
|
|
7
9
|
import { Error, errorId } from './Error';
|
|
8
|
-
import {
|
|
10
|
+
import { FieldHeader } from './FieldHeader';
|
|
11
|
+
import { helpTooltipId } from './Help';
|
|
12
|
+
import { IconButton } from './IconButton';
|
|
9
13
|
import styles from './TextField.module.scss';
|
|
10
14
|
/**
|
|
11
15
|
* ### Purpose
|
|
@@ -22,28 +26,39 @@ import styles from './TextField.module.scss';
|
|
|
22
26
|
* ### Usage
|
|
23
27
|
* Use a text input when the expected user input is a single line of text.
|
|
24
28
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
const TextFieldInternal = (props, ref) => {
|
|
30
|
+
const { 'data-test': dataTest, className, disabled, error, errorClassName, helperText, id: explicitId, inputClassName, inputContainerChild, inputContainerClassName, inputIcon, inputTrailingIcon, inputTrailingIconLabel, label, labelClassName, showAriaLabel = false, name, size = 'medium', onBlur, onChange, onKeyPress, placeholder, required, type = 'text', value, readOnly, onClick, clearable, iconSize = size, errorTooltipPlacement = 'top', ...htmlAttrs } = props;
|
|
27
31
|
const autoId = useUID();
|
|
28
32
|
const id = explicitId !== null && explicitId !== void 0 ? explicitId : autoId;
|
|
33
|
+
const inputRef = useRef(null);
|
|
34
|
+
const isNotEmpty = value !== undefined && (typeof value === 'string' ? value.length > 0 : true);
|
|
35
|
+
const mergedRef = ref ? mergeRefs([ref, inputRef]) : inputRef;
|
|
36
|
+
const handleClear = () => {
|
|
37
|
+
if (inputRef.current) {
|
|
38
|
+
triggerNativeInputChange('', inputRef.current);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
29
41
|
return (React.createElement("div", { "data-test": dataTest, className: cn(styles.container, {
|
|
42
|
+
[styles.withError]: 'error' in props,
|
|
30
43
|
[styles.small]: size === 'small',
|
|
31
44
|
[styles.disabled]: disabled,
|
|
32
45
|
[styles.hasError]: error,
|
|
33
46
|
[styles.withIcon]: inputIcon,
|
|
34
47
|
[styles.empty]: value === undefined,
|
|
35
48
|
}, className) },
|
|
36
|
-
|
|
49
|
+
React.createElement(FieldHeader, { id: id, size: size, label: label, helperText: helperText, showAriaLabel: showAriaLabel, labelClassName: labelClassName }),
|
|
37
50
|
React.createElement("div", { className: styles.inputBlock },
|
|
38
51
|
React.createElement("div", { className: cn(styles.inputContainer, inputContainerClassName) },
|
|
39
|
-
React.createElement("input",
|
|
52
|
+
React.createElement("input", { type: type, id: id, ref: mergedRef, value: value !== null && value !== void 0 ? value : '', name: name, onChange: onChange, onBlur: onBlur, readOnly: readOnly, onKeyPress: onKeyPress, onClick: onClick, "aria-label": showAriaLabel ? label : undefined, "aria-invalid": !!error, "aria-required": required, "aria-describedby": helperText && helpTooltipId(id), "aria-errormessage": error && errorId(id), disabled: disabled, placeholder: placeholder, className: cn(inputClassName, {
|
|
40
53
|
[styles.trailingIcon]: inputTrailingIcon,
|
|
41
|
-
})
|
|
54
|
+
}), ...htmlAttrs }),
|
|
42
55
|
React.createElement("div", { className: styles.borderOverlay }),
|
|
43
|
-
inputIcon && (React.createElement(Icon, { icon: inputIcon, ariaLabel: label, containerClassName: styles.inputIconContainer, className: styles.inputIcon, size: "small" })),
|
|
56
|
+
inputIcon && (React.createElement(Icon, { icon: inputIcon, ariaLabel: label, containerClassName: cn(styles.inputIconContainer, styles.inputLeftIconContainer), className: styles.inputIcon, size: "small" })),
|
|
57
|
+
clearable && !disabled && isNotEmpty && (React.createElement(IconButton, { icon: X, size: size, ariaLabel: "Clear field", onClick: handleClear, className: styles.clearButton, "data-test": dataTest ? `${dataTest}-clear` : undefined })),
|
|
44
58
|
inputContainerChild,
|
|
45
|
-
inputTrailingIcon && inputTrailingIconLabel && (React.createElement(Icon, { icon: inputTrailingIcon, ariaLabel: inputTrailingIconLabel, containerClassName: styles.inputIconContainer, className: styles.inputIconTrailing, size:
|
|
46
|
-
|
|
47
|
-
React.createElement(Error, { error: error, className: cn(styles.errorContainer, errorClassName), inputId: id })));
|
|
59
|
+
inputTrailingIcon && inputTrailingIconLabel && (React.createElement(Icon, { icon: inputTrailingIcon, ariaLabel: inputTrailingIconLabel, containerClassName: cn(styles.inputIconContainer, styles.inputTrailingIconContainer), className: styles.inputIconTrailing, size: iconSize })))),
|
|
60
|
+
React.createElement(Error, { truncated: true, inputId: id, error: error, tooltipPlacement: errorTooltipPlacement, className: cn(styles.errorContainer, errorClassName) })));
|
|
48
61
|
};
|
|
62
|
+
const TextFieldWithRef = forwardRef(TextFieldInternal);
|
|
63
|
+
export const TextField = ({ mRef, ...props }) => (React.createElement(TextFieldWithRef, { ref: mRef, ...props }));
|
|
49
64
|
//# sourceMappingURL=TextField.js.map
|
package/lib/TextField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,20 +5,10 @@ $inputHorizontalPadding: c.$grid * 3;
|
|
|
5
5
|
$marginLeftWithIcon: c.$grid * 5;
|
|
6
6
|
|
|
7
7
|
.container {
|
|
8
|
-
@include c.typographyBodySmall;
|
|
9
|
-
|
|
10
8
|
color: c.$colorText;
|
|
11
9
|
box-sizing: border-box;
|
|
12
|
-
position: relative;
|
|
13
|
-
|
|
14
|
-
.label {
|
|
15
|
-
display: block;
|
|
16
|
-
margin-bottom: c.$grid;
|
|
17
10
|
|
|
18
|
-
|
|
19
|
-
@include c.typographyBodySmall;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
11
|
+
@include c.typographyBodySmall;
|
|
22
12
|
|
|
23
13
|
.inputBlock {
|
|
24
14
|
display: flex;
|
|
@@ -26,15 +16,6 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
26
16
|
align-items: center;
|
|
27
17
|
}
|
|
28
18
|
|
|
29
|
-
.errorContainer {
|
|
30
|
-
margin-top: c.$grid;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.helperText {
|
|
34
|
-
margin-left: c.$grid * 1.5;
|
|
35
|
-
display: block;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
19
|
.inputContainer {
|
|
39
20
|
position: relative;
|
|
40
21
|
flex: 1 1 auto;
|
|
@@ -46,17 +27,30 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
46
27
|
border-radius: c.$borderRadius;
|
|
47
28
|
}
|
|
48
29
|
|
|
30
|
+
.inputIconContainer {
|
|
31
|
+
display: inline-flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center;
|
|
34
|
+
flex-shrink: 0;
|
|
35
|
+
width: $marginLeftWithIcon + $inputHorizontalPadding;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.inputTrailingIconContainer {
|
|
39
|
+
width: auto;
|
|
40
|
+
margin-right: c.$grid * 1.5;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.inputLeftIconContainer {
|
|
44
|
+
order: -1;
|
|
45
|
+
}
|
|
46
|
+
|
|
49
47
|
.inputIcon,
|
|
50
48
|
.inputIconTrailing {
|
|
51
49
|
pointer-events: none;
|
|
52
|
-
position: absolute;
|
|
53
|
-
top: 50%;
|
|
54
|
-
// c.$grid * 9 / 2 is half of the padding. We need to shift it to the left just a bit to account for the border width
|
|
55
|
-
transform: translate(-50%, -50%) translateX(c.$outlineWidth);
|
|
56
50
|
}
|
|
57
51
|
|
|
58
52
|
.inputIcon {
|
|
59
|
-
left: ($marginLeftWithIcon + $inputHorizontalPadding)
|
|
53
|
+
left: ($marginLeftWithIcon + $inputHorizontalPadding) * 0.5;
|
|
60
54
|
}
|
|
61
55
|
|
|
62
56
|
.inputIconTrailing {
|
|
@@ -66,8 +60,10 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
66
60
|
|
|
67
61
|
// Here we go. Another border hack. Why?
|
|
68
62
|
// TextField is re-used for PasswordField. PasswordField is meant for passwords.
|
|
69
|
-
// Passwords are often handled by password managers.
|
|
70
|
-
//
|
|
63
|
+
// Passwords are often handled by password managers.
|
|
64
|
+
// Password managers often add their own UI on top of the password inputs.
|
|
65
|
+
// To make our password visibility toggle and their UI not overlap,
|
|
66
|
+
// we have to make the actual input shorter than its visual representation.
|
|
71
67
|
// However, visually we still would like our users to see it as one unit.
|
|
72
68
|
// As result, we cannot apply border to the input itself (because it's shorter).
|
|
73
69
|
// We could have applied border styles to .inputContainer. But IE11 does not support :focus-within.
|
|
@@ -105,20 +101,18 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
105
101
|
&::placeholder {
|
|
106
102
|
color: c.$colorTextSecondary;
|
|
107
103
|
}
|
|
104
|
+
}
|
|
108
105
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
106
|
+
.clearButton {
|
|
107
|
+
display: inline-flex;
|
|
108
|
+
align-items: center;
|
|
109
|
+
margin-right: c.$grid * 1.5;
|
|
112
110
|
}
|
|
113
111
|
|
|
114
112
|
&.small {
|
|
115
113
|
.inputContainer {
|
|
116
114
|
height: c.$inputHeightSmall;
|
|
117
115
|
}
|
|
118
|
-
|
|
119
|
-
.inputIconTrailing {
|
|
120
|
-
right: 0;
|
|
121
|
-
}
|
|
122
116
|
}
|
|
123
117
|
|
|
124
118
|
&.mockAutofill {
|
|
@@ -130,9 +124,6 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
130
124
|
&.withIcon {
|
|
131
125
|
input {
|
|
132
126
|
padding-left: 0;
|
|
133
|
-
// Chrome fills the input (including paddings) with its custom override color on autofill.
|
|
134
|
-
// If we leave the padding in place it fills a part fo the background for the icon.
|
|
135
|
-
margin-left: $marginLeftWithIcon + $inputHorizontalPadding;
|
|
136
127
|
}
|
|
137
128
|
}
|
|
138
129
|
|
|
@@ -145,6 +136,7 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
145
136
|
& ~ .borderOverlay {
|
|
146
137
|
border-color: c.$colorPrimary;
|
|
147
138
|
}
|
|
139
|
+
|
|
148
140
|
& ~ .inputIconContainer > .inputIcon {
|
|
149
141
|
color: c.$colorPrimary;
|
|
150
142
|
}
|
|
@@ -165,12 +157,14 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
165
157
|
& ~ .borderOverlay {
|
|
166
158
|
@include h.outlineFormField;
|
|
167
159
|
}
|
|
160
|
+
|
|
168
161
|
& ~ .inputIconContainer > .inputIcon {
|
|
169
162
|
color: c.$colorPrimary;
|
|
170
163
|
}
|
|
171
164
|
}
|
|
172
165
|
|
|
173
|
-
// .hasError styles split in two groups to always color the icon with the error
|
|
166
|
+
// .hasError styles split in two groups to always color the icon with the error colors
|
|
167
|
+
// but the change the color of the border
|
|
174
168
|
/* stylelint-disable-next-line no-duplicate-selectors */
|
|
175
169
|
&.hasError input {
|
|
176
170
|
~ .inputIconContainer > .inputIcon {
|
|
@@ -189,12 +183,16 @@ $marginLeftWithIcon: c.$grid * 5;
|
|
|
189
183
|
& ~ .borderOverlay {
|
|
190
184
|
border-color: c.$colorNeutralLight;
|
|
191
185
|
}
|
|
186
|
+
|
|
192
187
|
& ~ .inputIconContainer > .inputIcon {
|
|
193
188
|
color: c.$colorTextSecondary;
|
|
194
189
|
}
|
|
190
|
+
|
|
195
191
|
& ~ .inputIconContainer > .inputIconTrailing {
|
|
196
192
|
color: c.$colorTextSecondary;
|
|
197
193
|
}
|
|
198
194
|
}
|
|
199
195
|
}
|
|
200
196
|
}
|
|
197
|
+
|
|
198
|
+
@include h.withError;
|