@hazelcast/ui 1.1.1 → 1.2.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 +41 -19
- package/lib/AutocompleteField.js.map +1 -1
- package/lib/AutocompleteField.module.scss +2 -4
- 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 +80 -13
- package/lib/Button.js +39 -12
- package/lib/Button.js.map +1 -1
- package/lib/Button.module.scss +119 -87
- package/lib/Calendar/Calendar.d.ts +1 -1
- package/lib/Calendar/Calendar.js +6 -1
- package/lib/Calendar/Calendar.js.map +1 -1
- package/lib/Calendar/Calendar.module.scss +132 -124
- package/lib/Calendar/components/CalendarTime.js +1 -1
- package/lib/Calendar/components/CalendarTime.js.map +1 -1
- 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 +15 -3
- package/lib/Checkbox.js +4 -3
- package/lib/Checkbox.js.map +1 -1
- package/lib/Checkbox.module.scss +15 -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 +3 -2
- package/lib/CodeEditor.js.map +1 -1
- 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 +0 -1
- package/lib/Error.d.ts +1 -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 -2
- package/lib/IconButton.d.ts +13 -3
- package/lib/IconButton.js +2 -2
- package/lib/IconButton.js.map +1 -1
- package/lib/InteractiveList.d.ts +2 -1
- package/lib/InteractiveList.js.map +1 -1
- package/lib/Link.js +2 -3
- package/lib/Link.js.map +1 -1
- package/lib/Link.module.scss +6 -0
- package/lib/Loader.module.scss +3 -1
- package/lib/Modal.d.ts +2 -0
- package/lib/Modal.js +2 -2
- package/lib/Modal.js.map +1 -1
- package/lib/NumberField.js +11 -5
- package/lib/NumberField.js.map +1 -1
- 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 +2 -1
- package/lib/Overlay.js +7 -5
- package/lib/Overlay.js.map +1 -1
- package/lib/Overlay.module.scss +16 -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 +2 -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 +1 -0
- package/lib/Popover.js +2 -0
- package/lib/Popover.js.map +1 -0
- package/lib/RadioGroup.js +4 -3
- package/lib/RadioGroup.js.map +1 -1
- package/lib/RadioGroup.module.scss +2 -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.map +1 -1
- package/lib/Select/CheckableSelectField.d.ts +31 -0
- package/lib/Select/CheckableSelectField.js +89 -0
- package/lib/Select/CheckableSelectField.js.map +1 -0
- package/lib/Select/CheckableSelectField.module.scss +79 -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/MultiSelectField.d.ts +5 -8
- package/lib/Select/MultiSelectField.js +11 -9
- package/lib/Select/MultiSelectField.js.map +1 -1
- package/lib/Select/MultiSelectField.module.scss +8 -0
- package/lib/Select/MultiSelectFieldFormik.d.ts +2 -1
- 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 +4 -4
- package/lib/Select/SelectFieldFormik.d.ts +2 -1
- package/lib/Select/SelectFieldFormik.js +10 -4
- package/lib/Select/SelectFieldFormik.js.map +1 -1
- package/lib/Select/index.d.ts +2 -0
- package/lib/Select/index.js +2 -0
- package/lib/Select/index.js.map +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 +8 -8
- 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 +26 -35
- package/lib/Table/Row.js +2 -3
- 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 +66 -26
- 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 +4 -0
- package/lib/TextArea.d.ts +2 -5
- package/lib/TextArea.js +7 -7
- package/lib/TextArea.js.map +1 -1
- package/lib/TextArea.module.scss +2 -4
- package/lib/TextField.d.ts +4 -7
- package/lib/TextField.js +9 -8
- package/lib/TextField.js.map +1 -1
- package/lib/TextField.module.scss +4 -22
- 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 +7 -6
- package/lib/TimeField.js.map +1 -1
- package/lib/TimeField.module.scss +6 -6
- package/lib/Toggle.js +4 -3
- package/lib/Toggle.js.map +1 -1
- package/lib/Toggle.module.scss +15 -14
- package/lib/Tooltip.d.ts +7 -1
- package/lib/Tooltip.js +38 -23
- package/lib/Tooltip.js.map +1 -1
- package/lib/Tooltip.module.scss +10 -5
- package/lib/TruncatedText.d.ts +1 -1
- package/lib/TruncatedText.js +1 -1
- package/lib/TruncatedText.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +3 -0
- package/lib/hooks/index.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/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 +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/package.json +13 -13
- package/styles/constants/_sizes.scss +5 -4
- package/styles/constants/_typography.scss +3 -3
- package/styles/fonts.css +29 -65
- package/styles/helpers/_a11y.scss +4 -0
- package/styles/helpers/_error.scss +17 -0
- package/styles/helpers/_index.scss +1 -0
package/lib/Alert.d.ts
CHANGED
|
@@ -20,10 +20,11 @@ export declare type AlertActionLink = {
|
|
|
20
20
|
export declare type AlertAction = AlertActionButton | AlertActionLink;
|
|
21
21
|
export declare type AlertProps = {
|
|
22
22
|
type: ToastType;
|
|
23
|
-
title
|
|
24
|
-
content
|
|
23
|
+
title?: ReactNode;
|
|
24
|
+
content?: ReactNode;
|
|
25
25
|
actions?: AlertAction[];
|
|
26
26
|
className?: string;
|
|
27
|
+
titleClassName?: string;
|
|
27
28
|
dismissableByEscKey?: boolean;
|
|
28
29
|
closeToast?: (e?: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
|
|
29
30
|
};
|
package/lib/Alert.js
CHANGED
|
@@ -10,7 +10,7 @@ import { Icon } from './Icon';
|
|
|
10
10
|
import { IconButton } from './IconButton';
|
|
11
11
|
import styles from './Alert.module.scss';
|
|
12
12
|
const isAlertActionButton = (action) => action.onClick !== undefined;
|
|
13
|
-
export const Alert = ({ type, title, content, actions, className, dismissableByEscKey = true, closeToast }) => {
|
|
13
|
+
export const Alert = ({ type, title, content, actions, className, dismissableByEscKey = true, closeToast, titleClassName, }) => {
|
|
14
14
|
const { icon, ariaLabel } = ToastIcon[type];
|
|
15
15
|
const closeByEsc = useCallback((nativeEvent) => {
|
|
16
16
|
if (dismissableByEscKey) {
|
|
@@ -25,26 +25,27 @@ export const Alert = ({ type, title, content, actions, className, dismissableByE
|
|
|
25
25
|
[styles.warning]: type === 'warning',
|
|
26
26
|
[styles.critical]: type === 'critical',
|
|
27
27
|
}, className) },
|
|
28
|
-
React.createElement("
|
|
29
|
-
|
|
30
|
-
React.createElement("div", {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
React.createElement("div", { "data-test": "alert-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
28
|
+
React.createElement(Icon, { "data-test": "alert-icon", ariaLabel: ariaLabel, icon: icon, className: styles.icon }),
|
|
29
|
+
React.createElement("div", { className: styles.rightSide },
|
|
30
|
+
React.createElement("div", { className: styles.header },
|
|
31
|
+
title && (React.createElement("div", { "data-test": "alert-title", className: cn(styles.title, titleClassName) }, title)),
|
|
32
|
+
!!closeToast && React.createElement(IconButton, { "data-test": "alert-close", kind: "transparent", ariaLabel: "Close icon", icon: X, onClick: closeToast })),
|
|
33
|
+
React.createElement("div", { "data-test": "alert-body", className: styles.body },
|
|
34
|
+
content && React.createElement("div", { "data-test": "alert-content" }, content),
|
|
35
|
+
(actions === null || actions === void 0 ? void 0 : actions.length) ? (React.createElement("div", { "data-test": "alert-actions", className: styles.actions }, actions.map((action, aI) => {
|
|
36
|
+
if (isAlertActionButton(action)) {
|
|
37
|
+
const { text, icon, ariaLabel, onClick } = action;
|
|
38
|
+
const iconLeftProps = icon && ariaLabel
|
|
39
|
+
? {
|
|
40
|
+
iconLeft: icon,
|
|
41
|
+
iconLeftAriaLabel: ariaLabel,
|
|
42
|
+
iconLeftClassName: styles.actionButtonIcon,
|
|
43
|
+
}
|
|
44
|
+
: {};
|
|
45
|
+
return (React.createElement(Button, Object.assign({ key: aI, kind: "transparent", capitalize: false, className: cn(styles.action, styles.actionButton), bodyClassName: styles.actionButtonBody, onClick: onClick }, iconLeftProps), text));
|
|
46
|
+
}
|
|
47
|
+
const { text, href, ...props } = action;
|
|
48
|
+
return (React.createElement(Link, Object.assign({ key: aI, href: href, icon: ChevronRight, ariaLabel: "Icon chevron right", className: styles.action, size: "small" }, props), text));
|
|
49
|
+
}))) : null))));
|
|
49
50
|
};
|
|
50
51
|
//# sourceMappingURL=Alert.js.map
|
package/lib/Alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../src/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,WAAW,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,eAAe,CAAA;AAI/C,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,MAAM,EAAiC,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,SAAS,EAAa,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,MAAM,MAAM,qBAAqB,CAAA;AA4BxC,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAA+B,EAAE,CAAE,MAA4B,CAAC,OAAO,KAAK,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../src/Alert.tsx"],"names":[],"mappings":"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"}
|
package/lib/Alert.module.scss
CHANGED
|
@@ -3,20 +3,28 @@
|
|
|
3
3
|
|
|
4
4
|
// TODO: potential max-height
|
|
5
5
|
.alert {
|
|
6
|
-
display: inline-
|
|
6
|
+
display: inline-flex;
|
|
7
7
|
border-radius: c.$borderRadius;
|
|
8
8
|
padding: c.$grid * 2.5;
|
|
9
9
|
width: c.$alertWidth;
|
|
10
10
|
|
|
11
|
+
.icon {
|
|
12
|
+
flex-shrink: 0;
|
|
13
|
+
margin-right: c.$grid * 2.5;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.rightSide {
|
|
17
|
+
flex-grow: 1;
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
}
|
|
22
|
+
|
|
11
23
|
.header {
|
|
12
24
|
display: flex;
|
|
13
25
|
flex-direction: row;
|
|
14
26
|
align-items: center;
|
|
15
27
|
|
|
16
|
-
.icon {
|
|
17
|
-
margin-right: c.$grid * 2.5;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
28
|
.title {
|
|
21
29
|
flex: 1 0 auto;
|
|
22
30
|
margin-right: c.$grid * 8.5;
|
|
@@ -91,7 +99,7 @@
|
|
|
91
99
|
}
|
|
92
100
|
|
|
93
101
|
.body {
|
|
94
|
-
padding:
|
|
102
|
+
padding-right: c.$grid * 8.5;
|
|
95
103
|
|
|
96
104
|
@include c.typographyBodySmall;
|
|
97
105
|
|
|
@@ -5,7 +5,7 @@ export declare type AutocompleteFieldOption = {
|
|
|
5
5
|
label: string;
|
|
6
6
|
value: string;
|
|
7
7
|
};
|
|
8
|
-
export declare type RenderOptionFunction = (highlightedLabelText: ReactNode, option: AutocompleteFieldOption, labelMeta: FormatOptionLabelMeta<AutocompleteFieldOption>) => ReactNode;
|
|
8
|
+
export declare type RenderOptionFunction<O = AutocompleteFieldOption> = (highlightedLabelText: ReactNode, option: O extends AutocompleteFieldOption ? O : never, labelMeta: FormatOptionLabelMeta<AutocompleteFieldOption>) => ReactNode;
|
|
9
9
|
export declare type AutocompleteFieldProps = {
|
|
10
10
|
'data-test'?: string;
|
|
11
11
|
className?: string;
|
|
@@ -19,6 +19,7 @@ export declare type AutocompleteFieldProps = {
|
|
|
19
19
|
onChange?: (newValue: string) => void;
|
|
20
20
|
onInputChange?: (newInputValue: string) => void;
|
|
21
21
|
onBlur?: (e: FocusEvent<HTMLElement>) => void;
|
|
22
|
+
onFocus?: (e: FocusEvent<HTMLElement>) => void;
|
|
22
23
|
required?: boolean;
|
|
23
24
|
helperText?: HelpProps['helperText'];
|
|
24
25
|
renderOption?: RenderOptionFunction;
|
package/lib/AutocompleteField.js
CHANGED
|
@@ -42,19 +42,23 @@ const ClearIndicator = ({ innerProps }) => {
|
|
|
42
42
|
return React.createElement(IconButton, Object.assign({}, innerProps, { icon: X, ariaHidden: true, kind: "primary", size: "medium", className: styles.clear, tabIndex: -1 }));
|
|
43
43
|
};
|
|
44
44
|
export const highlightOptionText = (labelText, inputValue) => {
|
|
45
|
-
const
|
|
45
|
+
const separator = '<%>';
|
|
46
46
|
const query = inputValue || '';
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
return query
|
|
48
|
+
? labelText
|
|
49
|
+
.replace(new RegExp(query, 'ig'), `${separator}$&${separator}`)
|
|
50
|
+
.split(separator)
|
|
51
|
+
.filter((val) => val)
|
|
52
|
+
.map((val, i) => (React.createElement("span", { className: cn({
|
|
53
|
+
'hz-autocomplete-field__matched-option-text': val.toLowerCase() === query.toLowerCase(),
|
|
54
|
+
}), key: val + `${i}` }, val)))
|
|
55
|
+
: labelText;
|
|
54
56
|
};
|
|
55
|
-
export const AutocompleteField = ({ 'data-test': dataTest, className, disabled, error, errorClassName, isClearable, label, labelClassName, helperText, menuPortalTarget = 'body', name, onChange, onInputChange, options, required, value, placeholder = 'Search...', renderOption, ...rest }) => {
|
|
57
|
+
export const AutocompleteField = ({ 'data-test': dataTest, className, disabled, error, errorClassName, isClearable, label, labelClassName, helperText, menuPortalTarget = 'body', name, onChange, onFocus, onBlur, onInputChange, options, required, value, placeholder = 'Search...', renderOption, ...rest }) => {
|
|
58
|
+
// when the user clicks on an input with the value, the value should disappear,
|
|
59
|
+
// but then it should appear after the user selects something or blurs the input
|
|
60
|
+
const [isValueHidden, setValueHidden] = useState(false);
|
|
56
61
|
const id = useUID();
|
|
57
|
-
const [isMenuOpen, setMenuOpen] = useState(false);
|
|
58
62
|
useIsomorphicLayoutEffect(() => {
|
|
59
63
|
const menuContainer = getMenuContainer(menuPortalTarget);
|
|
60
64
|
if (menuContainer && !menuContainer.className.includes(styles.menuContainer)) {
|
|
@@ -67,16 +71,21 @@ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled,
|
|
|
67
71
|
}, {}), [options]);
|
|
68
72
|
const selectedOption = useMemo(() => getSelectedOptionFromValue({ value, optionsMap }), [optionsMap, value]);
|
|
69
73
|
const onChangeFn = React.useCallback((option) => {
|
|
70
|
-
;
|
|
74
|
+
setValueHidden(false);
|
|
71
75
|
onChange(option === null ? null : option.value);
|
|
72
76
|
}, [onChange]);
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (onInputChange) {
|
|
77
|
-
onInputChange(value);
|
|
77
|
+
const onFocusFn = React.useCallback((e) => {
|
|
78
|
+
if (onFocus) {
|
|
79
|
+
onFocus(e);
|
|
78
80
|
}
|
|
79
|
-
|
|
81
|
+
setValueHidden(true);
|
|
82
|
+
}, [onFocus]);
|
|
83
|
+
const onBlurFn = React.useCallback((e) => {
|
|
84
|
+
if (onBlur) {
|
|
85
|
+
onBlur(e);
|
|
86
|
+
}
|
|
87
|
+
setValueHidden(false);
|
|
88
|
+
}, [onBlur]);
|
|
80
89
|
const formatOptionLabelFn = React.useCallback((option, labelMeta) => {
|
|
81
90
|
const { inputValue } = labelMeta;
|
|
82
91
|
let optionText = option.label;
|
|
@@ -112,6 +121,8 @@ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled,
|
|
|
112
121
|
placeholder,
|
|
113
122
|
options,
|
|
114
123
|
onChange: onChangeFn,
|
|
124
|
+
onFocus: onFocusFn,
|
|
125
|
+
onBlur: onBlurFn,
|
|
115
126
|
menuPortalTarget: getMenuContainer(menuPortalTarget),
|
|
116
127
|
components: {
|
|
117
128
|
DropdownIndicator,
|
|
@@ -121,6 +132,7 @@ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled,
|
|
|
121
132
|
...rest,
|
|
122
133
|
};
|
|
123
134
|
return (React.createElement("div", { "data-test": dataTest, className: cn(styles.container, {
|
|
135
|
+
[styles.withError]: 'error' in props,
|
|
124
136
|
[styles.disabled]: disabled,
|
|
125
137
|
[styles.hasError]: error,
|
|
126
138
|
[styles.empty]: !value,
|
|
@@ -131,8 +143,18 @@ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled,
|
|
|
131
143
|
styles.menuContainer, className) },
|
|
132
144
|
React.createElement(Label, { id: id, label: label, className: cn(styles.label, labelClassName) }),
|
|
133
145
|
React.createElement("div", { className: styles.selectBlock },
|
|
134
|
-
React.createElement(ReactSelect, Object.assign({
|
|
146
|
+
React.createElement(ReactSelect, Object.assign({ onInputChange: onInputChange, formatOptionLabel: formatOptionLabelFn, openMenuOnClick: false, styles: {
|
|
147
|
+
...props.styles,
|
|
148
|
+
singleValue: (base) => {
|
|
149
|
+
var _a;
|
|
150
|
+
return ({
|
|
151
|
+
...base,
|
|
152
|
+
...(_a = props.styles) === null || _a === void 0 ? void 0 : _a.singleValue,
|
|
153
|
+
visibility: isValueHidden ? 'hidden' : 'visible',
|
|
154
|
+
});
|
|
155
|
+
},
|
|
156
|
+
} }, props)),
|
|
135
157
|
helperText && React.createElement(Help, { parentId: id, helperText: helperText, className: styles.helperText })),
|
|
136
|
-
React.createElement(Error, { error: error, className: cn(styles.errorContainer, errorClassName), inputId: id })));
|
|
158
|
+
React.createElement(Error, { truncated: true, error: error, className: cn(styles.errorContainer, errorClassName), inputId: id })));
|
|
137
159
|
};
|
|
138
160
|
//# sourceMappingURL=AutocompleteField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteField.js","sourceRoot":"","sources":["../src/AutocompleteField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AutocompleteField.js","sourceRoot":"","sources":["../src/AutocompleteField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,6 @@ $select: ':global .hz-autocomplete-field__control';
|
|
|
12
12
|
margin-bottom: c.$grid;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.errorContainer {
|
|
16
|
-
margin-top: c.$grid;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
15
|
.helperText {
|
|
20
16
|
margin-left: c.$grid * 1.5;
|
|
21
17
|
display: block;
|
|
@@ -148,3 +144,5 @@ $select: ':global .hz-autocomplete-field__control';
|
|
|
148
144
|
}
|
|
149
145
|
}
|
|
150
146
|
}
|
|
147
|
+
|
|
148
|
+
@include h.withError;
|
|
@@ -3,6 +3,7 @@ import { AutocompleteFieldProps } from './AutocompleteField';
|
|
|
3
3
|
import { FieldValidatorGeneric } from './utils/formik';
|
|
4
4
|
declare type AutocompleteFieldFormikProps = AutocompleteFieldProps & {
|
|
5
5
|
validate?: FieldValidatorGeneric<string | null>;
|
|
6
|
+
onChange?: (value: string | null) => void;
|
|
6
7
|
};
|
|
7
|
-
export declare const AutocompleteFieldFormik: ({ name, validate, ...props }: AutocompleteFieldFormikProps) => ReactElement;
|
|
8
|
+
export declare const AutocompleteFieldFormik: ({ name, validate, onChange, ...props }: AutocompleteFieldFormikProps) => ReactElement;
|
|
8
9
|
export {};
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import React, { useMemo } from 'react';
|
|
1
|
+
import React, { useCallback, useMemo } from 'react';
|
|
2
2
|
import { useField } from 'formik';
|
|
3
3
|
import { AutocompleteField } from './AutocompleteField';
|
|
4
4
|
import { formikTouchAndUpdate, getFieldError } from './utils/formik';
|
|
5
|
-
export const AutocompleteFieldFormik = ({ name, validate, ...props }) => {
|
|
6
|
-
const [
|
|
5
|
+
export const AutocompleteFieldFormik = ({ name, validate, onChange, ...props }) => {
|
|
6
|
+
const [{ value, onBlur }, meta, { setValue, setTouched }] = useField({
|
|
7
7
|
name,
|
|
8
8
|
validate,
|
|
9
9
|
});
|
|
10
|
-
const
|
|
11
|
-
|
|
10
|
+
const setFormikValue = useMemo(() => formikTouchAndUpdate(setValue, setTouched), [setValue, setTouched]);
|
|
11
|
+
const handleChange = useCallback((newValue) => {
|
|
12
|
+
if (onChange) {
|
|
13
|
+
onChange(newValue);
|
|
14
|
+
}
|
|
15
|
+
setFormikValue(newValue);
|
|
16
|
+
}, [setFormikValue, onChange]);
|
|
17
|
+
return React.createElement(AutocompleteField, Object.assign({}, props, { value: value, onChange: handleChange, name: name, onBlur: onBlur, error: getFieldError(meta) }));
|
|
12
18
|
};
|
|
13
19
|
//# sourceMappingURL=AutocompleteFieldFormik.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteFieldFormik.js","sourceRoot":"","sources":["../src/AutocompleteFieldFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgB,OAAO,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"AutocompleteFieldFormik.js","sourceRoot":"","sources":["../src/AutocompleteFieldFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgB,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,iBAAiB,EAA0B,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAyB,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAO3F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgC,EAAgB,EAAE;IAC5H,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAgB;QAClF,IAAI;QACJ,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAgB,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IACvH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,QAAgB,EAAE,EAAE;QACnB,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,CAAC,CAAA;SACnB;QAED,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC,EACD,CAAC,cAAc,EAAE,QAAQ,CAAC,CAC3B,CAAA;IAED,OAAO,oBAAC,iBAAiB,oBAAK,KAAK,IAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAA;AACvI,CAAC,CAAA"}
|
package/lib/Button.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { IconProps } from './Icon';
|
|
|
3
3
|
import { TooltipProps } from './Tooltip';
|
|
4
4
|
import { LinkRel, LinkTarget } from './Link';
|
|
5
5
|
export declare type ButtonKind = 'primary' | 'secondary' | 'danger' | 'transparent';
|
|
6
|
+
export declare type ButtonVariant = 'contained' | 'outlined' | 'text';
|
|
7
|
+
export declare type ButtonColor = 'primary' | 'secondary' | 'warning';
|
|
6
8
|
export declare type ButtonSize = 'medium' | 'small';
|
|
7
9
|
export declare type ButtonAccessibleIconLeftProps = {
|
|
8
10
|
iconLeft: IconProps['icon'];
|
|
@@ -40,13 +42,18 @@ export declare type ButtonDisabledProps = {
|
|
|
40
42
|
};
|
|
41
43
|
export declare type ButtonOutlineType = 'outline' | 'inset';
|
|
42
44
|
export declare type ButtonCommonProps = {
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use variant + color instead
|
|
47
|
+
*/
|
|
43
48
|
kind?: ButtonKind;
|
|
44
|
-
size?: ButtonSize;
|
|
45
49
|
children: string;
|
|
50
|
+
color?: ButtonColor;
|
|
46
51
|
capitalize?: boolean;
|
|
47
52
|
bodyClassName?: string;
|
|
53
|
+
variant?: ButtonVariant;
|
|
48
54
|
outlineClassName?: string;
|
|
49
55
|
outline?: ButtonOutlineType;
|
|
56
|
+
tooltip?: string;
|
|
50
57
|
} & Pick<HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, 'className' | 'onClick' | 'tabIndex' | 'style'>;
|
|
51
58
|
export declare type ButtonTypeAnchorProps = {
|
|
52
59
|
component: 'a';
|
|
@@ -86,13 +93,18 @@ export declare type ButtonProps<T = ButtonTypeProps> = ButtonCommonProps & Butto
|
|
|
86
93
|
* - **Transparent**: Use for IconButton and similar use-cases.
|
|
87
94
|
*/
|
|
88
95
|
export declare const Button: React.ForwardRefExoticComponent<({
|
|
96
|
+
/**
|
|
97
|
+
* @deprecated Use variant + color instead
|
|
98
|
+
*/
|
|
89
99
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
90
|
-
size?: "medium" | "small" | undefined;
|
|
91
100
|
children: string;
|
|
101
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
92
102
|
capitalize?: boolean | undefined;
|
|
93
103
|
bodyClassName?: string | undefined;
|
|
104
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
94
105
|
outlineClassName?: string | undefined;
|
|
95
106
|
outline?: "inset" | "outline" | undefined;
|
|
107
|
+
tooltip?: string | undefined;
|
|
96
108
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
97
109
|
iconLeft: IconProps['icon'];
|
|
98
110
|
iconLeftAriaLabel: string;
|
|
@@ -111,13 +123,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
111
123
|
type?: undefined;
|
|
112
124
|
loading?: undefined;
|
|
113
125
|
} & ButtonNotDisabledProps & React.RefAttributes<HTMLElement>) | ({
|
|
126
|
+
/**
|
|
127
|
+
* @deprecated Use variant + color instead
|
|
128
|
+
*/
|
|
114
129
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
115
|
-
size?: "medium" | "small" | undefined;
|
|
116
130
|
children: string;
|
|
131
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
117
132
|
capitalize?: boolean | undefined;
|
|
118
133
|
bodyClassName?: string | undefined;
|
|
134
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
119
135
|
outlineClassName?: string | undefined;
|
|
120
136
|
outline?: "inset" | "outline" | undefined;
|
|
137
|
+
tooltip?: string | undefined;
|
|
121
138
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
122
139
|
iconLeft: IconProps['icon'];
|
|
123
140
|
iconLeftAriaLabel: string;
|
|
@@ -135,13 +152,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
135
152
|
rel?: undefined;
|
|
136
153
|
loading?: boolean | undefined;
|
|
137
154
|
} & ButtonNotDisabledProps & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "autoFocus"> & React.RefAttributes<HTMLElement>) | ({
|
|
155
|
+
/**
|
|
156
|
+
* @deprecated Use variant + color instead
|
|
157
|
+
*/
|
|
138
158
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
139
|
-
size?: "medium" | "small" | undefined;
|
|
140
159
|
children: string;
|
|
160
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
141
161
|
capitalize?: boolean | undefined;
|
|
142
162
|
bodyClassName?: string | undefined;
|
|
163
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
143
164
|
outlineClassName?: string | undefined;
|
|
144
165
|
outline?: "inset" | "outline" | undefined;
|
|
166
|
+
tooltip?: string | undefined;
|
|
145
167
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
146
168
|
iconLeft: IconProps['icon'];
|
|
147
169
|
iconLeftAriaLabel: string;
|
|
@@ -159,13 +181,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
159
181
|
rel?: undefined;
|
|
160
182
|
loading?: boolean | undefined;
|
|
161
183
|
} & ButtonDisabledProps & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "autoFocus"> & React.RefAttributes<HTMLElement>) | ({
|
|
184
|
+
/**
|
|
185
|
+
* @deprecated Use variant + color instead
|
|
186
|
+
*/
|
|
162
187
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
163
|
-
size?: "medium" | "small" | undefined;
|
|
164
188
|
children: string;
|
|
189
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
165
190
|
capitalize?: boolean | undefined;
|
|
166
191
|
bodyClassName?: string | undefined;
|
|
192
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
167
193
|
outlineClassName?: string | undefined;
|
|
168
194
|
outline?: "inset" | "outline" | undefined;
|
|
195
|
+
tooltip?: string | undefined;
|
|
169
196
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
170
197
|
iconLeft: IconProps['icon'];
|
|
171
198
|
iconLeftAriaLabel: string;
|
|
@@ -184,13 +211,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
184
211
|
type?: undefined;
|
|
185
212
|
loading?: undefined;
|
|
186
213
|
} & ButtonNotDisabledProps & React.RefAttributes<HTMLElement>) | ({
|
|
214
|
+
/**
|
|
215
|
+
* @deprecated Use variant + color instead
|
|
216
|
+
*/
|
|
187
217
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
188
|
-
size?: "medium" | "small" | undefined;
|
|
189
218
|
children: string;
|
|
219
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
190
220
|
capitalize?: boolean | undefined;
|
|
191
221
|
bodyClassName?: string | undefined;
|
|
222
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
192
223
|
outlineClassName?: string | undefined;
|
|
193
224
|
outline?: "inset" | "outline" | undefined;
|
|
225
|
+
tooltip?: string | undefined;
|
|
194
226
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
195
227
|
iconLeft: IconProps['icon'];
|
|
196
228
|
iconLeftAriaLabel: string;
|
|
@@ -208,13 +240,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
208
240
|
rel?: undefined;
|
|
209
241
|
loading?: boolean | undefined;
|
|
210
242
|
} & ButtonNotDisabledProps & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "autoFocus"> & React.RefAttributes<HTMLElement>) | ({
|
|
243
|
+
/**
|
|
244
|
+
* @deprecated Use variant + color instead
|
|
245
|
+
*/
|
|
211
246
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
212
|
-
size?: "medium" | "small" | undefined;
|
|
213
247
|
children: string;
|
|
248
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
214
249
|
capitalize?: boolean | undefined;
|
|
215
250
|
bodyClassName?: string | undefined;
|
|
251
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
216
252
|
outlineClassName?: string | undefined;
|
|
217
253
|
outline?: "inset" | "outline" | undefined;
|
|
254
|
+
tooltip?: string | undefined;
|
|
218
255
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
219
256
|
iconLeft: IconProps['icon'];
|
|
220
257
|
iconLeftAriaLabel: string;
|
|
@@ -232,13 +269,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
232
269
|
rel?: undefined;
|
|
233
270
|
loading?: boolean | undefined;
|
|
234
271
|
} & ButtonDisabledProps & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "autoFocus"> & React.RefAttributes<HTMLElement>) | ({
|
|
272
|
+
/**
|
|
273
|
+
* @deprecated Use variant + color instead
|
|
274
|
+
*/
|
|
235
275
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
236
|
-
size?: "medium" | "small" | undefined;
|
|
237
276
|
children: string;
|
|
277
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
238
278
|
capitalize?: boolean | undefined;
|
|
239
279
|
bodyClassName?: string | undefined;
|
|
280
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
240
281
|
outlineClassName?: string | undefined;
|
|
241
282
|
outline?: "inset" | "outline" | undefined;
|
|
283
|
+
tooltip?: string | undefined;
|
|
242
284
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
243
285
|
iconLeft?: undefined;
|
|
244
286
|
iconLeftAriaLabel?: undefined;
|
|
@@ -257,13 +299,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
257
299
|
type?: undefined;
|
|
258
300
|
loading?: undefined;
|
|
259
301
|
} & ButtonNotDisabledProps & React.RefAttributes<HTMLElement>) | ({
|
|
302
|
+
/**
|
|
303
|
+
* @deprecated Use variant + color instead
|
|
304
|
+
*/
|
|
260
305
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
261
|
-
size?: "medium" | "small" | undefined;
|
|
262
306
|
children: string;
|
|
307
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
263
308
|
capitalize?: boolean | undefined;
|
|
264
309
|
bodyClassName?: string | undefined;
|
|
310
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
265
311
|
outlineClassName?: string | undefined;
|
|
266
312
|
outline?: "inset" | "outline" | undefined;
|
|
313
|
+
tooltip?: string | undefined;
|
|
267
314
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
268
315
|
iconLeft?: undefined;
|
|
269
316
|
iconLeftAriaLabel?: undefined;
|
|
@@ -281,13 +328,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
281
328
|
rel?: undefined;
|
|
282
329
|
loading?: boolean | undefined;
|
|
283
330
|
} & ButtonNotDisabledProps & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "autoFocus"> & React.RefAttributes<HTMLElement>) | ({
|
|
331
|
+
/**
|
|
332
|
+
* @deprecated Use variant + color instead
|
|
333
|
+
*/
|
|
284
334
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
285
|
-
size?: "medium" | "small" | undefined;
|
|
286
335
|
children: string;
|
|
336
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
287
337
|
capitalize?: boolean | undefined;
|
|
288
338
|
bodyClassName?: string | undefined;
|
|
339
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
289
340
|
outlineClassName?: string | undefined;
|
|
290
341
|
outline?: "inset" | "outline" | undefined;
|
|
342
|
+
tooltip?: string | undefined;
|
|
291
343
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
292
344
|
iconLeft?: undefined;
|
|
293
345
|
iconLeftAriaLabel?: undefined;
|
|
@@ -305,13 +357,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
305
357
|
rel?: undefined;
|
|
306
358
|
loading?: boolean | undefined;
|
|
307
359
|
} & ButtonDisabledProps & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "autoFocus"> & React.RefAttributes<HTMLElement>) | ({
|
|
360
|
+
/**
|
|
361
|
+
* @deprecated Use variant + color instead
|
|
362
|
+
*/
|
|
308
363
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
309
|
-
size?: "medium" | "small" | undefined;
|
|
310
364
|
children: string;
|
|
365
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
311
366
|
capitalize?: boolean | undefined;
|
|
312
367
|
bodyClassName?: string | undefined;
|
|
368
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
313
369
|
outlineClassName?: string | undefined;
|
|
314
370
|
outline?: "inset" | "outline" | undefined;
|
|
371
|
+
tooltip?: string | undefined;
|
|
315
372
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
316
373
|
iconLeft?: undefined;
|
|
317
374
|
iconLeftAriaLabel?: undefined;
|
|
@@ -330,13 +387,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
330
387
|
type?: undefined;
|
|
331
388
|
loading?: undefined;
|
|
332
389
|
} & ButtonNotDisabledProps & React.RefAttributes<HTMLElement>) | ({
|
|
390
|
+
/**
|
|
391
|
+
* @deprecated Use variant + color instead
|
|
392
|
+
*/
|
|
333
393
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
334
|
-
size?: "medium" | "small" | undefined;
|
|
335
394
|
children: string;
|
|
395
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
336
396
|
capitalize?: boolean | undefined;
|
|
337
397
|
bodyClassName?: string | undefined;
|
|
398
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
338
399
|
outlineClassName?: string | undefined;
|
|
339
400
|
outline?: "inset" | "outline" | undefined;
|
|
401
|
+
tooltip?: string | undefined;
|
|
340
402
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
341
403
|
iconLeft?: undefined;
|
|
342
404
|
iconLeftAriaLabel?: undefined;
|
|
@@ -354,13 +416,18 @@ export declare const Button: React.ForwardRefExoticComponent<({
|
|
|
354
416
|
rel?: undefined;
|
|
355
417
|
loading?: boolean | undefined;
|
|
356
418
|
} & ButtonNotDisabledProps & Pick<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "autoFocus"> & React.RefAttributes<HTMLElement>) | ({
|
|
419
|
+
/**
|
|
420
|
+
* @deprecated Use variant + color instead
|
|
421
|
+
*/
|
|
357
422
|
kind?: "transparent" | "primary" | "secondary" | "danger" | undefined;
|
|
358
|
-
size?: "medium" | "small" | undefined;
|
|
359
423
|
children: string;
|
|
424
|
+
color?: "primary" | "secondary" | "warning" | undefined;
|
|
360
425
|
capitalize?: boolean | undefined;
|
|
361
426
|
bodyClassName?: string | undefined;
|
|
427
|
+
variant?: "text" | "contained" | "outlined" | undefined;
|
|
362
428
|
outlineClassName?: string | undefined;
|
|
363
429
|
outline?: "inset" | "outline" | undefined;
|
|
430
|
+
tooltip?: string | undefined;
|
|
364
431
|
} & Pick<React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, "style" | "className" | "tabIndex" | "onClick"> & {
|
|
365
432
|
iconLeft?: undefined;
|
|
366
433
|
iconLeftAriaLabel?: undefined;
|