@zendeskgarden/react-dropdowns 9.0.0-next.9 → 9.1.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 +47 -48
- 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 +7 -8
- package/dist/esm/elements/combobox/Message.js +1 -2
- package/dist/esm/elements/combobox/OptGroup.js +5 -6
- package/dist/esm/elements/combobox/Option.js +9 -6
- package/dist/esm/elements/combobox/OptionMeta.js +1 -2
- package/dist/esm/elements/combobox/Tag.js +0 -1
- package/dist/esm/elements/combobox/utils.js +1 -1
- package/dist/esm/elements/menu/Item.js +11 -10
- package/dist/esm/elements/menu/ItemGroup.js +6 -6
- package/dist/esm/elements/menu/ItemMeta.js +1 -2
- package/dist/esm/elements/menu/Menu.js +9 -36
- package/dist/esm/elements/menu/MenuList.js +8 -9
- package/dist/esm/elements/menu/Separator.js +0 -1
- package/dist/esm/elements/menu/utils.js +1 -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 +4 -7
- 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 +5 -8
- package/dist/esm/views/combobox/StyledHint.js +2 -5
- package/dist/esm/views/combobox/StyledInput.js +13 -10
- 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 +3 -7
- 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 +35 -17
- 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 +71 -43
- package/dist/esm/views/combobox/StyledValue.js +13 -9
- 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 +5 -8
- package/dist/esm/views/menu/StyledSeparator.js +2 -5
- package/dist/index.cjs.js +457 -412
- 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 +1 -2
- 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/StyledCombobox.d.ts +1 -1
- package/dist/typings/views/combobox/StyledFloatingListbox.d.ts +3 -3
- package/dist/typings/views/combobox/StyledHint.d.ts +0 -1
- package/dist/typings/views/combobox/StyledInput.d.ts +4 -4
- package/dist/typings/views/combobox/StyledInputIcon.d.ts +1 -2
- package/dist/typings/views/combobox/StyledLabel.d.ts +0 -1
- package/dist/typings/views/combobox/StyledListbox.d.ts +3 -3
- package/dist/typings/views/combobox/StyledMessage.d.ts +0 -1
- package/dist/typings/views/combobox/StyledOptGroup.d.ts +1 -1
- package/dist/typings/views/combobox/StyledOption.d.ts +2 -2
- package/dist/typings/views/combobox/StyledOptionIcon.d.ts +8 -4
- package/dist/typings/views/combobox/StyledOptionMeta.d.ts +1 -1
- package/dist/typings/views/combobox/StyledOptionTypeIcon.d.ts +1 -2
- package/dist/typings/views/combobox/StyledTag.d.ts +2 -6
- package/dist/typings/views/combobox/StyledTagsButton.d.ts +1 -1
- package/dist/typings/views/combobox/StyledTrigger.d.ts +9 -9
- package/dist/typings/views/combobox/StyledValue.d.ts +7 -7
- package/dist/typings/views/index.d.ts +0 -1
- package/dist/typings/views/menu/StyledItemIcon.d.ts +2 -3
- package/dist/typings/views/menu/StyledItemTypeIcon.d.ts +1 -2
- package/dist/typings/views/menu/StyledMenu.d.ts +1 -1
- package/package.json +12 -12
- 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';
|
|
@@ -164,46 +163,31 @@ const Combobox = forwardRef((_ref, ref) => {
|
|
|
164
163
|
const _listboxAriaLabel = useText(Combobox, {
|
|
165
164
|
listboxAriaLabel
|
|
166
165
|
}, 'listboxAriaLabel', 'Options');
|
|
167
|
-
const triggerProps = {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
isLabelHovered,
|
|
173
|
-
isMultiselectable,
|
|
174
|
-
maxHeight,
|
|
175
|
-
focusInset,
|
|
176
|
-
validation,
|
|
177
|
-
...getTriggerProps({
|
|
178
|
-
onFocus: () => {
|
|
179
|
-
if (!isDisabled) {
|
|
180
|
-
if (isEditable) {
|
|
181
|
-
setIsInputHidden(false);
|
|
182
|
-
}
|
|
183
|
-
if (isMultiselectable) {
|
|
184
|
-
setIsTagGroupExpanded(true);
|
|
185
|
-
}
|
|
166
|
+
const triggerProps = getTriggerProps({
|
|
167
|
+
onFocus: () => {
|
|
168
|
+
if (!isDisabled) {
|
|
169
|
+
if (isEditable) {
|
|
170
|
+
setIsInputHidden(false);
|
|
186
171
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (event.relatedTarget === null || !triggerRef.current?.contains(event.relatedTarget)) {
|
|
190
|
-
if (isEditable) {
|
|
191
|
-
setIsInputHidden(true);
|
|
192
|
-
}
|
|
193
|
-
if (isMultiselectable) {
|
|
194
|
-
setIsTagGroupExpanded(false);
|
|
195
|
-
}
|
|
172
|
+
if (isMultiselectable) {
|
|
173
|
+
setIsTagGroupExpanded(true);
|
|
196
174
|
}
|
|
197
175
|
}
|
|
198
|
-
}
|
|
199
|
-
|
|
176
|
+
},
|
|
177
|
+
onBlur: event => {
|
|
178
|
+
if (event.relatedTarget === null || !triggerRef.current?.contains(event.relatedTarget)) {
|
|
179
|
+
if (isEditable) {
|
|
180
|
+
setIsInputHidden(true);
|
|
181
|
+
}
|
|
182
|
+
if (isMultiselectable) {
|
|
183
|
+
setIsTagGroupExpanded(false);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
});
|
|
200
188
|
const inputProps = {
|
|
201
189
|
'aria-invalid': validation === 'error' || validation === 'warning',
|
|
202
190
|
hidden: isInputHidden,
|
|
203
|
-
isBare,
|
|
204
|
-
isCompact,
|
|
205
|
-
isEditable,
|
|
206
|
-
isMultiselectable,
|
|
207
191
|
placeholder,
|
|
208
192
|
...getInputProps({
|
|
209
193
|
..._inputProps
|
|
@@ -239,14 +223,24 @@ const Combobox = forwardRef((_ref, ref) => {
|
|
|
239
223
|
return React__default.createElement(ComboboxContext.Provider, {
|
|
240
224
|
value: contextValue
|
|
241
225
|
}, React__default.createElement(StyledCombobox, Object.assign({
|
|
242
|
-
isCompact: isCompact,
|
|
226
|
+
$isCompact: isCompact,
|
|
243
227
|
tabIndex: -1
|
|
244
228
|
}, props, {
|
|
245
229
|
ref: ref
|
|
246
|
-
}), React__default.createElement(StyledTrigger,
|
|
230
|
+
}), React__default.createElement(StyledTrigger, Object.assign({
|
|
231
|
+
$isAutocomplete: isAutocomplete,
|
|
232
|
+
$isBare: isBare,
|
|
233
|
+
$isCompact: isCompact,
|
|
234
|
+
$isEditable: isEditable,
|
|
235
|
+
$isLabelHovered: isLabelHovered,
|
|
236
|
+
$isMultiselectable: isMultiselectable,
|
|
237
|
+
$maxHeight: maxHeight,
|
|
238
|
+
$focusInset: focusInset,
|
|
239
|
+
$validation: validation
|
|
240
|
+
}, triggerProps), React__default.createElement(StyledContainer, null, !!startIcon && React__default.createElement(StyledInputIcon, {
|
|
247
241
|
$isLabelHovered: isLabelHovered,
|
|
248
242
|
$isCompact: isCompact
|
|
249
|
-
}, startIcon), React__default.createElement(StyledInputGroup, null, isMultiselectable && Array.isArray(selection) && React__default.createElement(TagGroup, {
|
|
243
|
+
}, startIcon), React__default.createElement(StyledInputGroup, null, !!isMultiselectable && Array.isArray(selection) && React__default.createElement(TagGroup, {
|
|
250
244
|
isDisabled: isDisabled,
|
|
251
245
|
isExpanded: isTagGroupExpanded,
|
|
252
246
|
maxTags: maxTags,
|
|
@@ -255,7 +249,7 @@ const Combobox = forwardRef((_ref, ref) => {
|
|
|
255
249
|
}, selection.length > maxTags && React__default.createElement(StyledTagsButton, {
|
|
256
250
|
disabled: isDisabled,
|
|
257
251
|
hidden: isTagGroupExpanded,
|
|
258
|
-
isCompact: isCompact,
|
|
252
|
+
$isCompact: isCompact,
|
|
259
253
|
tabIndex: -1,
|
|
260
254
|
type: "button"
|
|
261
255
|
}, (() => {
|
|
@@ -263,21 +257,26 @@ const Combobox = forwardRef((_ref, ref) => {
|
|
|
263
257
|
return renderExpandTags ? renderExpandTags(value) : expandTags?.replace('{{value}}', value.toString());
|
|
264
258
|
})())), React__default.createElement(StyledValue, {
|
|
265
259
|
hidden: !isInputHidden,
|
|
266
|
-
isAutocomplete: isAutocomplete,
|
|
267
|
-
isBare: isBare,
|
|
268
|
-
isCompact: isCompact,
|
|
269
|
-
isDisabled: isDisabled,
|
|
270
|
-
isEditable: isEditable,
|
|
271
|
-
isMultiselectable: isMultiselectable,
|
|
272
|
-
isPlaceholder: !(inputValue || renderValue)
|
|
260
|
+
$isAutocomplete: isAutocomplete,
|
|
261
|
+
$isBare: isBare,
|
|
262
|
+
$isCompact: isCompact,
|
|
263
|
+
$isDisabled: isDisabled,
|
|
264
|
+
$isEditable: isEditable,
|
|
265
|
+
$isMultiselectable: isMultiselectable,
|
|
266
|
+
$isPlaceholder: !(inputValue || renderValue)
|
|
273
267
|
}, renderValue ? renderValue({
|
|
274
268
|
selection,
|
|
275
269
|
inputValue
|
|
276
|
-
}) : inputValue || placeholder), React__default.createElement(StyledInput,
|
|
270
|
+
}) : inputValue || placeholder), React__default.createElement(StyledInput, Object.assign({
|
|
271
|
+
$isBare: isBare,
|
|
272
|
+
$isCompact: isCompact,
|
|
273
|
+
$isEditable: isEditable,
|
|
274
|
+
$isMultiselectable: isMultiselectable
|
|
275
|
+
}, 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';
|
|
@@ -121,25 +120,25 @@ const Listbox = forwardRef((_ref, ref) => {
|
|
|
121
120
|
children, update]);
|
|
122
121
|
const Node = React__default.createElement(StyledFloatingListbox, {
|
|
123
122
|
"data-garden-animate": isVisible ? 'true' : 'false',
|
|
124
|
-
isHidden: !isExpanded,
|
|
125
|
-
position: placement === 'bottom-start' ? 'bottom' : 'top',
|
|
123
|
+
$isHidden: !isExpanded,
|
|
124
|
+
$position: placement === 'bottom-start' ? 'bottom' : 'top',
|
|
126
125
|
style: {
|
|
127
126
|
transform,
|
|
128
127
|
width
|
|
129
128
|
},
|
|
130
|
-
zIndex: zIndex,
|
|
129
|
+
$zIndex: zIndex,
|
|
131
130
|
ref: floatingRef
|
|
132
131
|
}, React__default.createElement(StyledListbox, Object.assign({
|
|
133
|
-
isCompact: isCompact,
|
|
134
|
-
maxHeight: maxHeight,
|
|
135
|
-
minHeight: minHeight,
|
|
132
|
+
$isCompact: isCompact,
|
|
133
|
+
$maxHeight: maxHeight,
|
|
134
|
+
$minHeight: minHeight,
|
|
136
135
|
onMouseDown: composeEventHandlers(onMouseDown, handleMouseDown),
|
|
137
136
|
style: {
|
|
138
137
|
height
|
|
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) => {
|
|
@@ -64,21 +63,21 @@ const OptGroup = forwardRef((_ref, ref) => {
|
|
|
64
63
|
'aria-label': groupAriaLabel || legend
|
|
65
64
|
});
|
|
66
65
|
return React__default.createElement(StyledOption, Object.assign({
|
|
67
|
-
isCompact: isCompact,
|
|
66
|
+
$isCompact: isCompact,
|
|
68
67
|
$type: "group",
|
|
69
68
|
onMouseDown: composeEventHandlers(onMouseDown, handleMouseDown),
|
|
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
|
-
isCompact: isCompact,
|
|
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({
|
|
81
|
-
isCompact: isCompact
|
|
80
|
+
$isCompact: isCompact
|
|
82
81
|
}, optGroupProps), React__default.createElement(StyledListboxSeparator, {
|
|
83
82
|
role: "none"
|
|
84
83
|
}), children)));
|
|
@@ -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,
|
|
@@ -108,13 +108,16 @@ const OptionComponent = forwardRef((_ref, ref) => {
|
|
|
108
108
|
return React__default.createElement(OptionContext.Provider, {
|
|
109
109
|
value: contextValue
|
|
110
110
|
}, React__default.createElement(StyledOption, Object.assign({
|
|
111
|
-
isActive: isActive,
|
|
112
|
-
isCompact: isCompact,
|
|
111
|
+
$isActive: isActive,
|
|
112
|
+
$isCompact: isCompact,
|
|
113
113
|
$type: type
|
|
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) => {
|
|
@@ -44,7 +43,7 @@ const OptionMetaComponent = forwardRef((props, ref) => {
|
|
|
44
43
|
isDisabled
|
|
45
44
|
} = useOptionContext();
|
|
46
45
|
return React__default.createElement(StyledOptionMeta, Object.assign({
|
|
47
|
-
isDisabled: isDisabled
|
|
46
|
+
$isDisabled: isDisabled
|
|
48
47
|
}, props, {
|
|
49
48
|
ref: ref
|
|
50
49
|
}));
|
|
@@ -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
|
|
|
@@ -17,7 +17,7 @@ const toOption = props => {
|
|
|
17
17
|
};
|
|
18
18
|
const toOptions = (children, optionTagProps) => Children.toArray(children).reduce((options, option) => {
|
|
19
19
|
const retVal = options;
|
|
20
|
-
if (
|
|
20
|
+
if (isValidElement(option)) {
|
|
21
21
|
if ('value' in option.props) {
|
|
22
22
|
retVal.push(toOption(option.props));
|
|
23
23
|
optionTagProps[option.props.value] = option.props.tagProps;
|
|
@@ -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,20 +106,24 @@ 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({
|
|
117
115
|
$type: type,
|
|
118
|
-
isCompact: isCompact,
|
|
119
|
-
isActive: isActive
|
|
116
|
+
$isCompact: isCompact,
|
|
117
|
+
$isActive: isActive
|
|
120
118
|
}, props, itemProps, {
|
|
121
119
|
ref: mergeRefs([_itemRef, 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
|
|
|
@@ -68,19 +67,20 @@ const ItemGroup = forwardRef((_ref, ref) => {
|
|
|
68
67
|
return React__default.createElement(ItemGroupContext.Provider, {
|
|
69
68
|
value: contextValue
|
|
70
69
|
}, React__default.createElement(StyledItem, Object.assign({
|
|
71
|
-
isCompact: isCompact,
|
|
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
|
-
isCompact: isCompact,
|
|
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({
|
|
83
|
-
isCompact: isCompact
|
|
83
|
+
$isCompact: isCompact
|
|
84
84
|
}, groupProps), React__default.createElement(StyledSeparator, {
|
|
85
85
|
role: "none"
|
|
86
86
|
}), children))));
|
|
@@ -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) => {
|
|
@@ -44,7 +43,7 @@ const ItemMetaComponent = forwardRef((props, ref) => {
|
|
|
44
43
|
isDisabled
|
|
45
44
|
} = useItemContext();
|
|
46
45
|
return React__default.createElement(StyledItemMeta, Object.assign({
|
|
47
|
-
isDisabled: isDisabled
|
|
46
|
+
$isDisabled: isDisabled
|
|
48
47
|
}, props, {
|
|
49
48
|
ref: ref
|
|
50
49
|
}));
|
|
@@ -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,25 +127,25 @@ 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,
|
|
132
|
-
position: getMenuPosition(placement),
|
|
133
|
-
zIndex: zIndex,
|
|
130
|
+
$isHidden: !isExpanded || !isVisible ,
|
|
131
|
+
$position: getMenuPosition(placement),
|
|
132
|
+
$zIndex: zIndex,
|
|
134
133
|
style: {
|
|
135
134
|
transform
|
|
136
135
|
},
|
|
137
136
|
ref: floatingRef
|
|
138
137
|
}, React__default.createElement(StyledMenu, Object.assign({
|
|
139
138
|
"data-garden-animate-arrow": isVisible,
|
|
140
|
-
arrowPosition: hasArrow ? getArrowPosition(theme, placement) : undefined,
|
|
141
|
-
isCompact: isCompact,
|
|
142
|
-
minHeight: minHeight,
|
|
143
|
-
maxHeight: maxHeight,
|
|
139
|
+
$arrowPosition: hasArrow ? getArrowPosition(theme, placement) : undefined,
|
|
140
|
+
$isCompact: isCompact,
|
|
141
|
+
$minHeight: minHeight,
|
|
142
|
+
$maxHeight: maxHeight,
|
|
144
143
|
style: {
|
|
145
144
|
height
|
|
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
|
|
|
@@ -30,7 +30,7 @@ const toItem = props => ({
|
|
|
30
30
|
});
|
|
31
31
|
const toItems = (children, type) => Children.toArray(children).reduce((items, item) => {
|
|
32
32
|
const retVal = items;
|
|
33
|
-
if (
|
|
33
|
+
if (isValidElement(item)) {
|
|
34
34
|
if ('value' in item.props) {
|
|
35
35
|
retVal.push(toItem({
|
|
36
36
|
...item.props,
|
|
@@ -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",
|