@zendeskgarden/react-dropdowns 9.0.0-next.9 → 9.0.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/dist/esm/elements/combobox/Combobox.js +4 -5
- package/dist/esm/elements/combobox/Field.js +0 -1
- package/dist/esm/elements/combobox/Hint.js +1 -2
- package/dist/esm/elements/combobox/Label.js +1 -2
- package/dist/esm/elements/combobox/Listbox.js +1 -2
- package/dist/esm/elements/combobox/Message.js +1 -2
- package/dist/esm/elements/combobox/OptGroup.js +2 -3
- package/dist/esm/elements/combobox/Option.js +7 -4
- package/dist/esm/elements/combobox/OptionMeta.js +0 -1
- package/dist/esm/elements/combobox/Tag.js +0 -1
- package/dist/esm/elements/menu/Item.js +9 -8
- package/dist/esm/elements/menu/ItemGroup.js +3 -3
- package/dist/esm/elements/menu/ItemMeta.js +0 -1
- package/dist/esm/elements/menu/Menu.js +9 -36
- package/dist/esm/elements/menu/MenuList.js +2 -3
- package/dist/esm/elements/menu/Separator.js +0 -1
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/check-lg-stroke.svg.js +1 -1
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-down-stroke.svg.js +1 -1
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-left-stroke.svg.js +1 -1
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-right-stroke.svg.js +1 -1
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/plus-stroke.svg.js +1 -1
- package/dist/esm/views/combobox/StyledCombobox.js +2 -5
- package/dist/esm/views/combobox/StyledContainer.js +2 -5
- package/dist/esm/views/combobox/StyledField.js +2 -5
- package/dist/esm/views/combobox/StyledFloatingListbox.js +2 -5
- package/dist/esm/views/combobox/StyledHint.js +2 -5
- package/dist/esm/views/combobox/StyledInput.js +10 -7
- package/dist/esm/views/combobox/StyledInputGroup.js +2 -5
- package/dist/esm/views/combobox/StyledInputIcon.js +26 -10
- package/dist/esm/views/combobox/StyledLabel.js +2 -5
- package/dist/esm/views/combobox/StyledListbox.js +1 -5
- package/dist/esm/views/combobox/StyledListboxSeparator.js +10 -7
- package/dist/esm/views/combobox/StyledMessage.js +2 -5
- package/dist/esm/views/combobox/StyledOptGroup.js +2 -5
- package/dist/esm/views/combobox/StyledOption.js +34 -16
- package/dist/esm/views/combobox/StyledOptionContent.js +2 -5
- package/dist/esm/views/combobox/StyledOptionIcon.js +25 -6
- package/dist/esm/views/combobox/StyledOptionMeta.js +12 -7
- package/dist/esm/views/combobox/StyledOptionTypeIcon.js +18 -11
- package/dist/esm/views/combobox/StyledTag.js +6 -6
- package/dist/esm/views/combobox/StyledTagsButton.js +10 -7
- package/dist/esm/views/combobox/StyledTrigger.js +65 -37
- package/dist/esm/views/combobox/StyledValue.js +11 -7
- package/dist/esm/views/menu/StyledFloatingMenu.js +2 -5
- package/dist/esm/views/menu/StyledItem.js +2 -5
- package/dist/esm/views/menu/StyledItemContent.js +2 -5
- package/dist/esm/views/menu/StyledItemGroup.js +2 -5
- package/dist/esm/views/menu/StyledItemIcon.js +2 -5
- package/dist/esm/views/menu/StyledItemMeta.js +2 -5
- package/dist/esm/views/menu/StyledItemTypeIcon.js +2 -5
- package/dist/esm/views/menu/StyledMenu.js +4 -7
- package/dist/esm/views/menu/StyledSeparator.js +2 -5
- package/dist/index.cjs.js +369 -324
- package/dist/typings/context/useComboboxContext.d.ts +12 -13
- package/dist/typings/context/useFieldContext.d.ts +6 -6
- package/dist/typings/context/useItemContext.d.ts +2 -3
- package/dist/typings/context/useItemGroupContext.d.ts +2 -3
- package/dist/typings/context/useMenuContext.d.ts +10 -11
- package/dist/typings/context/useOptionContext.d.ts +2 -3
- package/dist/typings/elements/combobox/Field.d.ts +3 -1
- package/dist/typings/elements/combobox/Option.d.ts +3 -1
- package/dist/typings/elements/combobox/Tag.d.ts +3 -1
- package/dist/typings/elements/combobox/TagAvatar.d.ts +0 -1
- package/dist/typings/elements/combobox/utils.d.ts +2 -2
- package/dist/typings/elements/menu/Item.d.ts +3 -1
- package/dist/typings/elements/menu/utils.d.ts +2 -2
- package/dist/typings/types/index.d.ts +2 -0
- package/dist/typings/views/combobox/StyledHint.d.ts +0 -1
- package/dist/typings/views/combobox/StyledInputIcon.d.ts +0 -1
- package/dist/typings/views/combobox/StyledLabel.d.ts +0 -1
- package/dist/typings/views/combobox/StyledMessage.d.ts +0 -1
- package/dist/typings/views/combobox/StyledOptionIcon.d.ts +7 -3
- package/dist/typings/views/combobox/StyledOptionTypeIcon.d.ts +0 -1
- package/dist/typings/views/combobox/StyledTag.d.ts +2 -6
- package/dist/typings/views/index.d.ts +0 -1
- package/dist/typings/views/menu/StyledItemIcon.d.ts +1 -2
- package/dist/typings/views/menu/StyledItemTypeIcon.d.ts +0 -1
- package/package.json +12 -13
- package/LICENSE.md +0 -176
- package/dist/esm/views/menu/StyledButton.js +0 -23
- package/dist/typings/views/menu/StyledButton.d.ts +0 -20
|
@@ -43,7 +43,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
43
43
|
import '../../views/menu/StyledItemIcon.js';
|
|
44
44
|
import '../../views/menu/StyledItemMeta.js';
|
|
45
45
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
46
|
-
import '../../views/menu/StyledButton.js';
|
|
47
46
|
import '../../views/menu/StyledSeparator.js';
|
|
48
47
|
import { Listbox } from './Listbox.js';
|
|
49
48
|
import { TagGroup } from './TagGroup.js';
|
|
@@ -243,10 +242,10 @@ const Combobox = forwardRef((_ref, ref) => {
|
|
|
243
242
|
tabIndex: -1
|
|
244
243
|
}, props, {
|
|
245
244
|
ref: ref
|
|
246
|
-
}), React__default.createElement(StyledTrigger, triggerProps, React__default.createElement(StyledContainer, null, startIcon && React__default.createElement(StyledInputIcon, {
|
|
245
|
+
}), React__default.createElement(StyledTrigger, triggerProps, React__default.createElement(StyledContainer, null, !!startIcon && React__default.createElement(StyledInputIcon, {
|
|
247
246
|
$isLabelHovered: isLabelHovered,
|
|
248
247
|
$isCompact: isCompact
|
|
249
|
-
}, startIcon), React__default.createElement(StyledInputGroup, null, isMultiselectable && Array.isArray(selection) && React__default.createElement(TagGroup, {
|
|
248
|
+
}, startIcon), React__default.createElement(StyledInputGroup, null, !!isMultiselectable && Array.isArray(selection) && React__default.createElement(TagGroup, {
|
|
250
249
|
isDisabled: isDisabled,
|
|
251
250
|
isExpanded: isTagGroupExpanded,
|
|
252
251
|
maxTags: maxTags,
|
|
@@ -273,11 +272,11 @@ const Combobox = forwardRef((_ref, ref) => {
|
|
|
273
272
|
}, renderValue ? renderValue({
|
|
274
273
|
selection,
|
|
275
274
|
inputValue
|
|
276
|
-
}) : inputValue || placeholder), React__default.createElement(StyledInput, inputProps)), (hasChevron || endIcon) && React__default.createElement(StyledInputIcon, {
|
|
275
|
+
}) : inputValue || placeholder), React__default.createElement(StyledInput, inputProps)), !!(hasChevron || endIcon) && React__default.createElement(StyledInputIcon, {
|
|
277
276
|
$isCompact: isCompact,
|
|
278
277
|
$isEnd: true,
|
|
279
278
|
$isLabelHovered: isLabelHovered,
|
|
280
|
-
$isRotated: hasChevron && isExpanded
|
|
279
|
+
$isRotated: !!(hasChevron && isExpanded)
|
|
281
280
|
}, hasChevron ? React__default.createElement(SvgChevronDownStroke, null) : endIcon))), React__default.createElement(Listbox, Object.assign({
|
|
282
281
|
appendToNode: listboxAppendToNode,
|
|
283
282
|
isCompact: isCompact,
|
|
@@ -36,7 +36,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
36
36
|
import '../../views/menu/StyledItemIcon.js';
|
|
37
37
|
import '../../views/menu/StyledItemMeta.js';
|
|
38
38
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
39
|
-
import '../../views/menu/StyledButton.js';
|
|
40
39
|
import '../../views/menu/StyledSeparator.js';
|
|
41
40
|
import { Hint } from './Hint.js';
|
|
42
41
|
import { Label } from './Label.js';
|
|
@@ -36,7 +36,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
36
36
|
import '../../views/menu/StyledItemIcon.js';
|
|
37
37
|
import '../../views/menu/StyledItemMeta.js';
|
|
38
38
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
39
|
-
import '../../views/menu/StyledButton.js';
|
|
40
39
|
import '../../views/menu/StyledSeparator.js';
|
|
41
40
|
|
|
42
41
|
const Hint = forwardRef((props, ref) => {
|
|
@@ -52,6 +51,6 @@ const Hint = forwardRef((props, ref) => {
|
|
|
52
51
|
ref: ref
|
|
53
52
|
}));
|
|
54
53
|
});
|
|
55
|
-
Hint.displayName = 'Hint';
|
|
54
|
+
Hint.displayName = 'Field.Hint';
|
|
56
55
|
|
|
57
56
|
export { Hint };
|
|
@@ -38,7 +38,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
38
38
|
import '../../views/menu/StyledItemIcon.js';
|
|
39
39
|
import '../../views/menu/StyledItemMeta.js';
|
|
40
40
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
41
|
-
import '../../views/menu/StyledButton.js';
|
|
42
41
|
import '../../views/menu/StyledSeparator.js';
|
|
43
42
|
|
|
44
43
|
const Label = forwardRef((_ref, ref) => {
|
|
@@ -59,7 +58,7 @@ const Label = forwardRef((_ref, ref) => {
|
|
|
59
58
|
ref: ref
|
|
60
59
|
}));
|
|
61
60
|
});
|
|
62
|
-
Label.displayName = 'Label';
|
|
61
|
+
Label.displayName = 'Field.Label';
|
|
63
62
|
Label.propTypes = {
|
|
64
63
|
hidden: PropTypes.bool,
|
|
65
64
|
isRegular: PropTypes.bool
|
|
@@ -38,7 +38,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
38
38
|
import '../../views/menu/StyledItemIcon.js';
|
|
39
39
|
import '../../views/menu/StyledItemMeta.js';
|
|
40
40
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
41
|
-
import '../../views/menu/StyledButton.js';
|
|
42
41
|
import '../../views/menu/StyledSeparator.js';
|
|
43
42
|
import { ThemeContext } from 'styled-components';
|
|
44
43
|
import { DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
@@ -139,7 +138,7 @@ const Listbox = forwardRef((_ref, ref) => {
|
|
|
139
138
|
}
|
|
140
139
|
}, props, {
|
|
141
140
|
ref: ref
|
|
142
|
-
}), isVisible && children));
|
|
141
|
+
}), !!isVisible && children));
|
|
143
142
|
return appendToNode ? createPortal(Node, appendToNode) : Node;
|
|
144
143
|
});
|
|
145
144
|
Listbox.displayName = 'Listbox';
|
|
@@ -38,7 +38,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
38
38
|
import '../../views/menu/StyledItemIcon.js';
|
|
39
39
|
import '../../views/menu/StyledItemMeta.js';
|
|
40
40
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
41
|
-
import '../../views/menu/StyledButton.js';
|
|
42
41
|
import '../../views/menu/StyledSeparator.js';
|
|
43
42
|
|
|
44
43
|
const Message = forwardRef((props, ref) => {
|
|
@@ -54,7 +53,7 @@ const Message = forwardRef((props, ref) => {
|
|
|
54
53
|
ref: ref
|
|
55
54
|
}));
|
|
56
55
|
});
|
|
57
|
-
Message.displayName = 'Message';
|
|
56
|
+
Message.displayName = 'Field.Message';
|
|
58
57
|
Message.propTypes = {
|
|
59
58
|
validation: PropTypes.oneOf(VALIDATION),
|
|
60
59
|
validationLabel: PropTypes.string
|
|
@@ -39,7 +39,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
39
39
|
import '../../views/menu/StyledItemIcon.js';
|
|
40
40
|
import '../../views/menu/StyledItemMeta.js';
|
|
41
41
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
42
|
-
import '../../views/menu/StyledButton.js';
|
|
43
42
|
import '../../views/menu/StyledSeparator.js';
|
|
44
43
|
|
|
45
44
|
const OptGroup = forwardRef((_ref, ref) => {
|
|
@@ -70,11 +69,11 @@ const OptGroup = forwardRef((_ref, ref) => {
|
|
|
70
69
|
role: "none"
|
|
71
70
|
}, props, {
|
|
72
71
|
ref: ref
|
|
73
|
-
}), React__default.createElement(StyledOptionContent, null, (content || legend) && React__default.createElement(StyledOption, {
|
|
72
|
+
}), React__default.createElement(StyledOptionContent, null, !!(content || legend) && React__default.createElement(StyledOption, {
|
|
74
73
|
as: "div",
|
|
75
74
|
isCompact: isCompact,
|
|
76
75
|
$type: "header"
|
|
77
|
-
}, icon && React__default.createElement(StyledOptionTypeIcon, {
|
|
76
|
+
}, !!icon && React__default.createElement(StyledOptionTypeIcon, {
|
|
78
77
|
$isCompact: isCompact,
|
|
79
78
|
$type: "header"
|
|
80
79
|
}, icon), content || legend), React__default.createElement(StyledOptGroup, Object.assign({
|
|
@@ -44,7 +44,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
44
44
|
import '../../views/menu/StyledItemIcon.js';
|
|
45
45
|
import '../../views/menu/StyledItemMeta.js';
|
|
46
46
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
47
|
-
import '../../views/menu/StyledButton.js';
|
|
48
47
|
import '../../views/menu/StyledSeparator.js';
|
|
49
48
|
import { OptionMeta } from './OptionMeta.js';
|
|
50
49
|
import { toOption } from './utils.js';
|
|
@@ -62,8 +61,9 @@ const OptionComponent = forwardRef((_ref, ref) => {
|
|
|
62
61
|
...props
|
|
63
62
|
} = _ref;
|
|
64
63
|
const contextValue = useMemo(() => ({
|
|
65
|
-
isDisabled
|
|
66
|
-
|
|
64
|
+
isDisabled,
|
|
65
|
+
type
|
|
66
|
+
}), [isDisabled, type]);
|
|
67
67
|
const {
|
|
68
68
|
activeValue,
|
|
69
69
|
getOptionProps,
|
|
@@ -114,7 +114,10 @@ const OptionComponent = forwardRef((_ref, ref) => {
|
|
|
114
114
|
}, props, optionProps), React__default.createElement(StyledOptionTypeIcon, {
|
|
115
115
|
$isCompact: isCompact,
|
|
116
116
|
$type: type
|
|
117
|
-
}, renderActionIcon(type)), icon && React__default.createElement(StyledOptionIcon,
|
|
117
|
+
}, renderActionIcon(type)), !!icon && React__default.createElement(StyledOptionIcon, {
|
|
118
|
+
$isDisabled: isDisabled,
|
|
119
|
+
$type: type
|
|
120
|
+
}, icon), React__default.createElement(StyledOptionContent, null, children || label || value)));
|
|
118
121
|
});
|
|
119
122
|
OptionComponent.displayName = 'Option';
|
|
120
123
|
OptionComponent.propTypes = {
|
|
@@ -36,7 +36,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
36
36
|
import '../../views/menu/StyledItemIcon.js';
|
|
37
37
|
import '../../views/menu/StyledItemMeta.js';
|
|
38
38
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
39
|
-
import '../../views/menu/StyledButton.js';
|
|
40
39
|
import '../../views/menu/StyledSeparator.js';
|
|
41
40
|
|
|
42
41
|
const OptionMetaComponent = forwardRef((props, ref) => {
|
|
@@ -40,7 +40,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
40
40
|
import '../../views/menu/StyledItemIcon.js';
|
|
41
41
|
import '../../views/menu/StyledItemMeta.js';
|
|
42
42
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
43
|
-
import '../../views/menu/StyledButton.js';
|
|
44
43
|
import '../../views/menu/StyledSeparator.js';
|
|
45
44
|
import { TagAvatar } from './TagAvatar.js';
|
|
46
45
|
|
|
@@ -42,7 +42,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
42
42
|
import { StyledItemIcon } from '../../views/menu/StyledItemIcon.js';
|
|
43
43
|
import '../../views/menu/StyledItemMeta.js';
|
|
44
44
|
import { StyledItemTypeIcon } from '../../views/menu/StyledItemTypeIcon.js';
|
|
45
|
-
import '../../views/menu/StyledButton.js';
|
|
46
45
|
import '../../views/menu/StyledSeparator.js';
|
|
47
46
|
import { ItemMeta } from './ItemMeta.js';
|
|
48
47
|
import useMenuContext from '../../context/useMenuContext.js';
|
|
@@ -70,7 +69,8 @@ const ItemComponent = forwardRef((_ref, ref) => {
|
|
|
70
69
|
} = useItemGroupContext();
|
|
71
70
|
const {
|
|
72
71
|
focusedValue,
|
|
73
|
-
getItemProps
|
|
72
|
+
getItemProps,
|
|
73
|
+
isCompact
|
|
74
74
|
} = useMenuContext();
|
|
75
75
|
const item = {
|
|
76
76
|
...toItem({
|
|
@@ -93,9 +93,6 @@ const ItemComponent = forwardRef((_ref, ref) => {
|
|
|
93
93
|
onMouseEnter
|
|
94
94
|
});
|
|
95
95
|
const isActive = value === focusedValue;
|
|
96
|
-
const {
|
|
97
|
-
isCompact
|
|
98
|
-
} = useMenuContext();
|
|
99
96
|
const renderActionIcon = iconType => {
|
|
100
97
|
switch (iconType) {
|
|
101
98
|
case 'add':
|
|
@@ -109,8 +106,9 @@ const ItemComponent = forwardRef((_ref, ref) => {
|
|
|
109
106
|
}
|
|
110
107
|
};
|
|
111
108
|
const contextValue = useMemo(() => ({
|
|
112
|
-
isDisabled
|
|
113
|
-
|
|
109
|
+
isDisabled,
|
|
110
|
+
type
|
|
111
|
+
}), [isDisabled, type]);
|
|
114
112
|
return React__default.createElement(ItemContext.Provider, {
|
|
115
113
|
value: contextValue
|
|
116
114
|
}, React__default.createElement(StyledItem, Object.assign({
|
|
@@ -122,7 +120,10 @@ const ItemComponent = forwardRef((_ref, ref) => {
|
|
|
122
120
|
}), React__default.createElement(StyledItemTypeIcon, {
|
|
123
121
|
$isCompact: isCompact,
|
|
124
122
|
$type: type
|
|
125
|
-
}, renderActionIcon(type)), icon && React__default.createElement(StyledItemIcon,
|
|
123
|
+
}, renderActionIcon(type)), !!icon && React__default.createElement(StyledItemIcon, {
|
|
124
|
+
$isDisabled: isDisabled,
|
|
125
|
+
$type: type
|
|
126
|
+
}, icon), React__default.createElement(StyledItemContent, null, children || label)));
|
|
126
127
|
});
|
|
127
128
|
ItemComponent.displayName = 'Item';
|
|
128
129
|
ItemComponent.propTypes = {
|
|
@@ -38,7 +38,6 @@ import { StyledItemGroup } from '../../views/menu/StyledItemGroup.js';
|
|
|
38
38
|
import '../../views/menu/StyledItemIcon.js';
|
|
39
39
|
import '../../views/menu/StyledItemMeta.js';
|
|
40
40
|
import { StyledItemTypeIcon } from '../../views/menu/StyledItemTypeIcon.js';
|
|
41
|
-
import '../../views/menu/StyledButton.js';
|
|
42
41
|
import { StyledSeparator } from '../../views/menu/StyledSeparator.js';
|
|
43
42
|
import { ItemGroupContext } from '../../context/useItemGroupContext.js';
|
|
44
43
|
|
|
@@ -71,12 +70,13 @@ const ItemGroup = forwardRef((_ref, ref) => {
|
|
|
71
70
|
isCompact: isCompact,
|
|
72
71
|
$type: "group"
|
|
73
72
|
}, props, {
|
|
73
|
+
role: "none",
|
|
74
74
|
ref: ref
|
|
75
|
-
}), React__default.createElement(StyledItemContent, null, (content || legend) && React__default.createElement(StyledItem, {
|
|
75
|
+
}), React__default.createElement(StyledItemContent, null, !!(content || legend) && React__default.createElement(StyledItem, {
|
|
76
76
|
as: "div",
|
|
77
77
|
isCompact: isCompact,
|
|
78
78
|
$type: "header"
|
|
79
|
-
}, icon && React__default.createElement(StyledItemTypeIcon, {
|
|
79
|
+
}, !!icon && React__default.createElement(StyledItemTypeIcon, {
|
|
80
80
|
$isCompact: isCompact,
|
|
81
81
|
$type: "header"
|
|
82
82
|
}, icon), content || legend), React__default.createElement(StyledItemGroup, Object.assign({
|
|
@@ -36,7 +36,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
36
36
|
import '../../views/menu/StyledItemIcon.js';
|
|
37
37
|
import { StyledItemMeta } from '../../views/menu/StyledItemMeta.js';
|
|
38
38
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
39
|
-
import '../../views/menu/StyledButton.js';
|
|
40
39
|
import '../../views/menu/StyledSeparator.js';
|
|
41
40
|
|
|
42
41
|
const ItemMetaComponent = forwardRef((props, ref) => {
|
|
@@ -10,45 +10,14 @@ import { mergeRefs } from 'react-merge-refs';
|
|
|
10
10
|
import { ThemeContext } from 'styled-components';
|
|
11
11
|
import { useMenu } from '@zendeskgarden/container-menu';
|
|
12
12
|
import { DEFAULT_THEME, useWindow } from '@zendeskgarden/react-theming';
|
|
13
|
+
import { Button } from '@zendeskgarden/react-buttons';
|
|
13
14
|
import { PLACEMENT } from '../../types/index.js';
|
|
14
15
|
import { MenuContext } from '../../context/useMenuContext.js';
|
|
15
16
|
import { toItems } from './utils.js';
|
|
16
17
|
import { MenuList } from './MenuList.js';
|
|
17
|
-
import '../../views/combobox/StyledCombobox.js';
|
|
18
|
-
import '../../views/combobox/StyledContainer.js';
|
|
19
|
-
import '../../views/combobox/StyledField.js';
|
|
20
|
-
import '../../views/combobox/StyledFloatingListbox.js';
|
|
21
|
-
import '../../views/combobox/StyledHint.js';
|
|
22
|
-
import '../../views/combobox/StyledInput.js';
|
|
23
|
-
import '../../views/combobox/StyledInputGroup.js';
|
|
24
|
-
import '../../views/combobox/StyledInputIcon.js';
|
|
25
|
-
import '../../views/combobox/StyledLabel.js';
|
|
26
|
-
import '../../views/combobox/StyledListbox.js';
|
|
27
|
-
import '../../views/combobox/StyledListboxSeparator.js';
|
|
28
|
-
import '../../views/combobox/StyledMessage.js';
|
|
29
|
-
import '../../views/combobox/StyledOptGroup.js';
|
|
30
|
-
import '../../views/combobox/StyledOption.js';
|
|
31
|
-
import '../../views/combobox/StyledOptionContent.js';
|
|
32
|
-
import '../../views/combobox/StyledOptionIcon.js';
|
|
33
|
-
import '../../views/combobox/StyledOptionMeta.js';
|
|
34
|
-
import '../../views/combobox/StyledOptionTypeIcon.js';
|
|
35
|
-
import '../../views/combobox/StyledTag.js';
|
|
36
|
-
import '../../views/combobox/StyledTagsButton.js';
|
|
37
|
-
import '../../views/combobox/StyledTrigger.js';
|
|
38
|
-
import '../../views/combobox/StyledValue.js';
|
|
39
|
-
import '../../views/menu/StyledMenu.js';
|
|
40
|
-
import '../../views/menu/StyledFloatingMenu.js';
|
|
41
|
-
import '../../views/menu/StyledItem.js';
|
|
42
|
-
import '../../views/menu/StyledItemContent.js';
|
|
43
|
-
import '../../views/menu/StyledItemGroup.js';
|
|
44
|
-
import '../../views/menu/StyledItemIcon.js';
|
|
45
|
-
import '../../views/menu/StyledItemMeta.js';
|
|
46
|
-
import '../../views/menu/StyledItemTypeIcon.js';
|
|
47
|
-
import { StyledButton } from '../../views/menu/StyledButton.js';
|
|
48
|
-
import '../../views/menu/StyledSeparator.js';
|
|
49
18
|
import SvgChevronDownStroke from '../../node_modules/@zendeskgarden/svg-icons/src/16/chevron-down-stroke.svg.js';
|
|
50
19
|
|
|
51
|
-
const Menu = forwardRef((
|
|
20
|
+
const Menu = forwardRef((_ref2, ref) => {
|
|
52
21
|
let {
|
|
53
22
|
button,
|
|
54
23
|
buttonProps: _buttonProps = {},
|
|
@@ -58,11 +27,12 @@ const Menu = forwardRef((_ref, ref) => {
|
|
|
58
27
|
defaultFocusedValue,
|
|
59
28
|
defaultExpanded,
|
|
60
29
|
isExpanded: _isExpanded,
|
|
30
|
+
restoreFocus,
|
|
61
31
|
selectedItems,
|
|
62
32
|
onChange,
|
|
63
33
|
onMouseLeave,
|
|
64
34
|
...props
|
|
65
|
-
} =
|
|
35
|
+
} = _ref2;
|
|
66
36
|
const triggerRef = useRef(null);
|
|
67
37
|
const menuRef = useRef(null);
|
|
68
38
|
const items = toItems(children);
|
|
@@ -83,6 +53,7 @@ const Menu = forwardRef((_ref, ref) => {
|
|
|
83
53
|
focusedValue: _focusedValue,
|
|
84
54
|
defaultExpanded,
|
|
85
55
|
isExpanded: _isExpanded,
|
|
56
|
+
restoreFocus,
|
|
86
57
|
selectedItems,
|
|
87
58
|
items,
|
|
88
59
|
menuRef,
|
|
@@ -93,6 +64,7 @@ const Menu = forwardRef((_ref, ref) => {
|
|
|
93
64
|
onClick,
|
|
94
65
|
onKeyDown,
|
|
95
66
|
disabled,
|
|
67
|
+
ref: _ref,
|
|
96
68
|
...buttonProps
|
|
97
69
|
} = _buttonProps;
|
|
98
70
|
const triggerProps = {
|
|
@@ -106,9 +78,9 @@ const Menu = forwardRef((_ref, ref) => {
|
|
|
106
78
|
onKeyDown,
|
|
107
79
|
disabled
|
|
108
80
|
}),
|
|
109
|
-
ref: mergeRefs([triggerRef,
|
|
81
|
+
ref: mergeRefs([triggerRef, _ref])
|
|
110
82
|
};
|
|
111
|
-
const trigger = typeof button === 'function' ? button(triggerProps) : React__default.createElement(
|
|
83
|
+
const trigger = typeof button === 'function' ? button(triggerProps) : React__default.createElement(Button, triggerProps, button, React__default.createElement(Button.EndIcon, {
|
|
112
84
|
isRotated: isExpanded
|
|
113
85
|
}, React__default.createElement(SvgChevronDownStroke, null)));
|
|
114
86
|
const contextValue = useMemo(() => ({
|
|
@@ -145,6 +117,7 @@ Menu.propTypes = {
|
|
|
145
117
|
minHeight: PropTypes.string,
|
|
146
118
|
onChange: PropTypes.func,
|
|
147
119
|
placement: PropTypes.oneOf(PLACEMENT),
|
|
120
|
+
restoreFocus: PropTypes.bool,
|
|
148
121
|
selectedItems: PropTypes.arrayOf(PropTypes.any),
|
|
149
122
|
zIndex: PropTypes.number
|
|
150
123
|
};
|
|
@@ -40,7 +40,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
40
40
|
import '../../views/menu/StyledItemIcon.js';
|
|
41
41
|
import '../../views/menu/StyledItemMeta.js';
|
|
42
42
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
43
|
-
import '../../views/menu/StyledButton.js';
|
|
44
43
|
import '../../views/menu/StyledSeparator.js';
|
|
45
44
|
import { createPortal } from 'react-dom';
|
|
46
45
|
|
|
@@ -128,7 +127,7 @@ const MenuList = forwardRef((_ref, ref) => {
|
|
|
128
127
|
children, update]);
|
|
129
128
|
const Node = React__default.createElement(StyledFloatingMenu, {
|
|
130
129
|
"data-garden-animate": isVisible,
|
|
131
|
-
isHidden: !isExpanded,
|
|
130
|
+
isHidden: !isExpanded || !isVisible ,
|
|
132
131
|
position: getMenuPosition(placement),
|
|
133
132
|
zIndex: zIndex,
|
|
134
133
|
style: {
|
|
@@ -146,7 +145,7 @@ const MenuList = forwardRef((_ref, ref) => {
|
|
|
146
145
|
}
|
|
147
146
|
}, props, {
|
|
148
147
|
ref: ref
|
|
149
|
-
}), isVisible && children));
|
|
148
|
+
}), !!isVisible && children));
|
|
150
149
|
return appendToNode ? createPortal(Node, appendToNode) : Node;
|
|
151
150
|
});
|
|
152
151
|
MenuList.displayName = 'MenuList';
|
|
@@ -35,7 +35,6 @@ import '../../views/menu/StyledItemGroup.js';
|
|
|
35
35
|
import '../../views/menu/StyledItemIcon.js';
|
|
36
36
|
import '../../views/menu/StyledItemMeta.js';
|
|
37
37
|
import '../../views/menu/StyledItemTypeIcon.js';
|
|
38
|
-
import '../../views/menu/StyledButton.js';
|
|
39
38
|
import { StyledSeparator } from '../../views/menu/StyledSeparator.js';
|
|
40
39
|
import useMenuContext from '../../context/useMenuContext.js';
|
|
41
40
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
|
|
9
9
|
var _path;
|
|
10
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
11
|
var SvgCheckLgStroke = function SvgCheckLgStroke(props) {
|
|
12
12
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
13
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
|
|
9
9
|
var _path;
|
|
10
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
11
|
var SvgChevronDownStroke = function SvgChevronDownStroke(props) {
|
|
12
12
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
13
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
|
|
9
9
|
var _path;
|
|
10
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
11
|
var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
|
|
12
12
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
13
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
|
|
9
9
|
var _path;
|
|
10
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
11
|
var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
|
|
12
12
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
13
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
|
|
9
9
|
var _path;
|
|
10
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
11
|
var SvgPlusStroke = function SvgPlusStroke(props) {
|
|
12
12
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
13
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
6
|
*/
|
|
7
7
|
import styled, { css } from 'styled-components';
|
|
8
|
-
import { retrieveComponentStyles
|
|
8
|
+
import { retrieveComponentStyles } from '@zendeskgarden/react-theming';
|
|
9
9
|
import { StyledLabel } from './StyledLabel.js';
|
|
10
10
|
import { StyledHint } from './StyledHint.js';
|
|
11
11
|
import { StyledMessage } from './StyledMessage.js';
|
|
@@ -18,13 +18,10 @@ const sizeStyles = props => {
|
|
|
18
18
|
};
|
|
19
19
|
const StyledCombobox = styled.div.attrs({
|
|
20
20
|
'data-garden-id': COMPONENT_ID,
|
|
21
|
-
'data-garden-version': '9.0.0
|
|
21
|
+
'data-garden-version': '9.0.0'
|
|
22
22
|
}).withConfig({
|
|
23
23
|
displayName: "StyledCombobox",
|
|
24
24
|
componentId: "sc-13eybg8-0"
|
|
25
25
|
})(["", ";", ";"], sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
26
|
-
StyledCombobox.defaultProps = {
|
|
27
|
-
theme: DEFAULT_THEME
|
|
28
|
-
};
|
|
29
26
|
|
|
30
27
|
export { StyledCombobox };
|
|
@@ -5,18 +5,15 @@
|
|
|
5
5
|
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
6
|
*/
|
|
7
7
|
import styled from 'styled-components';
|
|
8
|
-
import { retrieveComponentStyles
|
|
8
|
+
import { retrieveComponentStyles } from '@zendeskgarden/react-theming';
|
|
9
9
|
|
|
10
10
|
const COMPONENT_ID = 'dropdowns.combobox.container';
|
|
11
11
|
const StyledContainer = styled.div.attrs({
|
|
12
12
|
'data-garden-id': COMPONENT_ID,
|
|
13
|
-
'data-garden-version': '9.0.0
|
|
13
|
+
'data-garden-version': '9.0.0'
|
|
14
14
|
}).withConfig({
|
|
15
15
|
displayName: "StyledContainer",
|
|
16
16
|
componentId: "sc-14i9jid-0"
|
|
17
17
|
})(["display:flex;", ";"], props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
18
|
-
StyledContainer.defaultProps = {
|
|
19
|
-
theme: DEFAULT_THEME
|
|
20
|
-
};
|
|
21
18
|
|
|
22
19
|
export { StyledContainer };
|
|
@@ -5,18 +5,15 @@
|
|
|
5
5
|
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
6
|
*/
|
|
7
7
|
import styled from 'styled-components';
|
|
8
|
-
import { retrieveComponentStyles
|
|
8
|
+
import { retrieveComponentStyles } from '@zendeskgarden/react-theming';
|
|
9
9
|
|
|
10
10
|
const COMPONENT_ID = 'dropdowns.combobox.field';
|
|
11
11
|
const StyledField = styled.div.attrs({
|
|
12
12
|
'data-garden-id': COMPONENT_ID,
|
|
13
|
-
'data-garden-version': '9.0.0
|
|
13
|
+
'data-garden-version': '9.0.0'
|
|
14
14
|
}).withConfig({
|
|
15
15
|
displayName: "StyledField",
|
|
16
16
|
componentId: "sc-zc57xl-0"
|
|
17
17
|
})(["direction:", ";", ";"], props => props.theme.rtl ? 'rtl' : 'ltr', props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
18
|
-
StyledField.defaultProps = {
|
|
19
|
-
theme: DEFAULT_THEME
|
|
20
|
-
};
|
|
21
18
|
|
|
22
19
|
export { StyledField };
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
6
|
*/
|
|
7
7
|
import styled from 'styled-components';
|
|
8
|
-
import { menuStyles, retrieveComponentStyles
|
|
8
|
+
import { menuStyles, retrieveComponentStyles } from '@zendeskgarden/react-theming';
|
|
9
9
|
|
|
10
10
|
const COMPONENT_ID = 'dropdowns.combobox.floating';
|
|
11
11
|
const StyledFloatingListbox = styled.div.attrs({
|
|
12
12
|
'data-garden-id': COMPONENT_ID,
|
|
13
|
-
'data-garden-version': '9.0.0
|
|
13
|
+
'data-garden-version': '9.0.0'
|
|
14
14
|
}).withConfig({
|
|
15
15
|
displayName: "StyledFloatingListbox",
|
|
16
16
|
componentId: "sc-1cp6spf-0"
|
|
@@ -20,8 +20,5 @@ const StyledFloatingListbox = styled.div.attrs({
|
|
|
20
20
|
animationModifier: '[data-garden-animate="true"]',
|
|
21
21
|
zIndex: props.zIndex
|
|
22
22
|
}), props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
23
|
-
StyledFloatingListbox.defaultProps = {
|
|
24
|
-
theme: DEFAULT_THEME
|
|
25
|
-
};
|
|
26
23
|
|
|
27
24
|
export { StyledFloatingListbox };
|
|
@@ -5,19 +5,16 @@
|
|
|
5
5
|
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
6
|
*/
|
|
7
7
|
import styled from 'styled-components';
|
|
8
|
-
import { retrieveComponentStyles
|
|
8
|
+
import { retrieveComponentStyles } from '@zendeskgarden/react-theming';
|
|
9
9
|
import { Field } from '@zendeskgarden/react-forms';
|
|
10
10
|
|
|
11
11
|
const COMPONENT_ID = 'dropdowns.combobox.hint';
|
|
12
12
|
const StyledHint = styled(Field.Hint).attrs({
|
|
13
13
|
'data-garden-id': COMPONENT_ID,
|
|
14
|
-
'data-garden-version': '9.0.0
|
|
14
|
+
'data-garden-version': '9.0.0'
|
|
15
15
|
}).withConfig({
|
|
16
16
|
displayName: "StyledHint",
|
|
17
17
|
componentId: "sc-106qvqx-0"
|
|
18
18
|
})(["", ";"], props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
19
|
-
StyledHint.defaultProps = {
|
|
20
|
-
theme: DEFAULT_THEME
|
|
21
|
-
};
|
|
22
19
|
|
|
23
20
|
export { StyledHint };
|
|
@@ -6,11 +6,17 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import styled, { css } from 'styled-components';
|
|
8
8
|
import { hideVisually, math } from 'polished';
|
|
9
|
-
import { retrieveComponentStyles,
|
|
9
|
+
import { retrieveComponentStyles, getColor, getLineHeight } from '@zendeskgarden/react-theming';
|
|
10
10
|
|
|
11
11
|
const COMPONENT_ID = 'dropdowns.combobox.input';
|
|
12
|
-
const colorStyles =
|
|
13
|
-
|
|
12
|
+
const colorStyles = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
theme
|
|
15
|
+
} = _ref;
|
|
16
|
+
const placeholderColor = getColor({
|
|
17
|
+
theme,
|
|
18
|
+
variable: 'foreground.disabled'
|
|
19
|
+
});
|
|
14
20
|
return css(["background-color:inherit;color:inherit;&::placeholder{opacity:1;color:", ";}"], placeholderColor);
|
|
15
21
|
};
|
|
16
22
|
const getHeight = props => {
|
|
@@ -29,13 +35,10 @@ const sizeStyles = props => {
|
|
|
29
35
|
};
|
|
30
36
|
const StyledInput = styled.input.attrs({
|
|
31
37
|
'data-garden-id': COMPONENT_ID,
|
|
32
|
-
'data-garden-version': '9.0.0
|
|
38
|
+
'data-garden-version': '9.0.0'
|
|
33
39
|
}).withConfig({
|
|
34
40
|
displayName: "StyledInput",
|
|
35
41
|
componentId: "sc-1lkqdg-0"
|
|
36
42
|
})(["flex-basis:0;flex-grow:1;border:none;padding:0;font-family:inherit;&:focus{outline:none;}", ";", ";&[hidden]{display:revert;", "}&[aria-hidden='true']{display:none;}", ";"], sizeStyles, colorStyles, props => props.isEditable && hideVisually(), props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
37
|
-
StyledInput.defaultProps = {
|
|
38
|
-
theme: DEFAULT_THEME
|
|
39
|
-
};
|
|
40
43
|
|
|
41
44
|
export { StyledInput, getHeight, sizeStyles };
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
6
|
*/
|
|
7
7
|
import styled, { css } from 'styled-components';
|
|
8
|
-
import { retrieveComponentStyles
|
|
8
|
+
import { retrieveComponentStyles } from '@zendeskgarden/react-theming';
|
|
9
9
|
|
|
10
10
|
const COMPONENT_ID = 'dropdowns.combobox.input_group';
|
|
11
11
|
const sizeStyles = props => {
|
|
@@ -14,13 +14,10 @@ const sizeStyles = props => {
|
|
|
14
14
|
};
|
|
15
15
|
const StyledInputGroup = styled.div.attrs({
|
|
16
16
|
'data-garden-id': COMPONENT_ID,
|
|
17
|
-
'data-garden-version': '9.0.0
|
|
17
|
+
'data-garden-version': '9.0.0'
|
|
18
18
|
}).withConfig({
|
|
19
19
|
displayName: "StyledInputGroup",
|
|
20
20
|
componentId: "sc-yx3q7u-0"
|
|
21
21
|
})(["display:flex;flex-grow:1;flex-wrap:wrap;", ";", ";"], sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
22
|
-
StyledInputGroup.defaultProps = {
|
|
23
|
-
theme: DEFAULT_THEME
|
|
24
|
-
};
|
|
25
22
|
|
|
26
23
|
export { StyledInputGroup };
|