@zendeskgarden/react-dropdowns 9.0.0-next.5 → 9.0.0-next.7

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/index.cjs.js CHANGED
@@ -99,7 +99,7 @@ const useFieldContext = () => {
99
99
  const COMPONENT_ID$v = 'dropdowns.combobox.label';
100
100
  const StyledLabel = styled__default.default(reactForms.Field.Label).attrs({
101
101
  'data-garden-id': COMPONENT_ID$v,
102
- 'data-garden-version': '9.0.0-next.5'
102
+ 'data-garden-version': '9.0.0-next.7'
103
103
  }).withConfig({
104
104
  displayName: "StyledLabel",
105
105
  componentId: "sc-az6now-0"
@@ -111,7 +111,7 @@ StyledLabel.defaultProps = {
111
111
  const COMPONENT_ID$u = 'dropdowns.combobox.hint';
112
112
  const StyledHint = styled__default.default(reactForms.Field.Hint).attrs({
113
113
  'data-garden-id': COMPONENT_ID$u,
114
- 'data-garden-version': '9.0.0-next.5'
114
+ 'data-garden-version': '9.0.0-next.7'
115
115
  }).withConfig({
116
116
  displayName: "StyledHint",
117
117
  componentId: "sc-106qvqx-0"
@@ -123,7 +123,7 @@ StyledHint.defaultProps = {
123
123
  const COMPONENT_ID$t = 'dropdowns.combobox.message';
124
124
  const StyledMessage = styled__default.default(reactForms.Field.Message).attrs({
125
125
  'data-garden-id': COMPONENT_ID$t,
126
- 'data-garden-version': '9.0.0-next.5'
126
+ 'data-garden-version': '9.0.0-next.7'
127
127
  }).withConfig({
128
128
  displayName: "StyledMessage",
129
129
  componentId: "sc-jux8m5-0"
@@ -140,7 +140,7 @@ const sizeStyles$a = props => {
140
140
  };
141
141
  const StyledCombobox = styled__default.default.div.attrs({
142
142
  'data-garden-id': COMPONENT_ID$s,
143
- 'data-garden-version': '9.0.0-next.5'
143
+ 'data-garden-version': '9.0.0-next.7'
144
144
  }).withConfig({
145
145
  displayName: "StyledCombobox",
146
146
  componentId: "sc-13eybg8-0"
@@ -152,7 +152,7 @@ StyledCombobox.defaultProps = {
152
152
  const COMPONENT_ID$r = 'dropdowns.combobox.container';
153
153
  const StyledContainer = styled__default.default.div.attrs({
154
154
  'data-garden-id': COMPONENT_ID$r,
155
- 'data-garden-version': '9.0.0-next.5'
155
+ 'data-garden-version': '9.0.0-next.7'
156
156
  }).withConfig({
157
157
  displayName: "StyledContainer",
158
158
  componentId: "sc-14i9jid-0"
@@ -164,7 +164,7 @@ StyledContainer.defaultProps = {
164
164
  const COMPONENT_ID$q = 'dropdowns.combobox.field';
165
165
  const StyledField = styled__default.default.div.attrs({
166
166
  'data-garden-id': COMPONENT_ID$q,
167
- 'data-garden-version': '9.0.0-next.5'
167
+ 'data-garden-version': '9.0.0-next.7'
168
168
  }).withConfig({
169
169
  displayName: "StyledField",
170
170
  componentId: "sc-zc57xl-0"
@@ -176,7 +176,7 @@ StyledField.defaultProps = {
176
176
  const COMPONENT_ID$p = 'dropdowns.combobox.floating';
177
177
  const StyledFloatingListbox = styled__default.default.div.attrs({
178
178
  'data-garden-id': COMPONENT_ID$p,
179
- 'data-garden-version': '9.0.0-next.5'
179
+ 'data-garden-version': '9.0.0-next.7'
180
180
  }).withConfig({
181
181
  displayName: "StyledFloatingListbox",
182
182
  componentId: "sc-1cp6spf-0"
@@ -211,7 +211,7 @@ const sizeStyles$9 = props => {
211
211
  };
212
212
  const StyledInput = styled__default.default.input.attrs({
213
213
  'data-garden-id': COMPONENT_ID$o,
214
- 'data-garden-version': '9.0.0-next.5'
214
+ 'data-garden-version': '9.0.0-next.7'
215
215
  }).withConfig({
216
216
  displayName: "StyledInput",
217
217
  componentId: "sc-1lkqdg-0"
@@ -227,7 +227,7 @@ const sizeStyles$8 = props => {
227
227
  };
228
228
  const StyledInputGroup = styled__default.default.div.attrs({
229
229
  'data-garden-id': COMPONENT_ID$n,
230
- 'data-garden-version': '9.0.0-next.5'
230
+ 'data-garden-version': '9.0.0-next.7'
231
231
  }).withConfig({
232
232
  displayName: "StyledInputGroup",
233
233
  componentId: "sc-yx3q7u-0"
@@ -247,7 +247,7 @@ const colorStyles$7 = props => {
247
247
  } else if (props.validation === 'error') {
248
248
  hue = 'dangerHue';
249
249
  }
250
- const backgroundColor = props.isBare ? 'transparent' : props.theme.colors.background;
250
+ const backgroundColor = props.isBare ? 'transparent' : reactTheming.getColorV8('background', 600 , props.theme);
251
251
  let borderColor;
252
252
  let hoverBorderColor;
253
253
  let focusBorderColor;
@@ -273,7 +273,7 @@ const colorStyles$7 = props => {
273
273
  &:focus-within:not([aria-disabled='true']),
274
274
  &:focus-visible
275
275
  `;
276
- return styled.css(["border-color:", ";background-color:", ";color:", ";&:hover{border-color:", ";}", " &[aria-disabled='true']{border-color:", ";background-color:", ";color:", ";}"], props.isLabelHovered ? hoverBorderColor : borderColor, backgroundColor, props.theme.colors.foreground, hoverBorderColor, reactTheming.focusStyles({
276
+ return styled.css(["border-color:", ";background-color:", ";color:", ";&:hover{border-color:", ";}", " &[aria-disabled='true']{border-color:", ";background-color:", ";color:", ";}"], props.isLabelHovered ? hoverBorderColor : borderColor, backgroundColor, reactTheming.getColorV8('foreground', 600 , props.theme), hoverBorderColor, reactTheming.focusStyles({
277
277
  theme: props.theme,
278
278
  inset: props.focusInset,
279
279
  hue: focusBorderColor,
@@ -307,7 +307,7 @@ const sizeStyles$7 = props => {
307
307
  };
308
308
  const StyledTrigger = styled__default.default.div.attrs({
309
309
  'data-garden-id': COMPONENT_ID$m,
310
- 'data-garden-version': '9.0.0-next.5'
310
+ 'data-garden-version': '9.0.0-next.7'
311
311
  }).withConfig({
312
312
  displayName: "StyledTrigger",
313
313
  componentId: "sc-116nftk-0"
@@ -321,7 +321,7 @@ const colorStyles$6 = props => {
321
321
  const color = reactTheming.getColorV8('neutralHue', 600, props.theme);
322
322
  const focusColor = reactTheming.getColorV8('neutralHue', 700, props.theme);
323
323
  const disabledColor = reactTheming.getColorV8('neutralHue', 400, props.theme);
324
- return styled.css(["color:", ";", ":hover &,", ":focus-within &,", ":focus &,", "[data-garden-focus-visible='true'] &{color:", ";}", "[aria-disabled='true'] &{color:", ";}"], props.isLabelHovered ? focusColor : color, StyledTrigger, StyledTrigger, StyledTrigger, StyledTrigger, focusColor, StyledTrigger, disabledColor);
324
+ return styled.css(["color:", ";", ":hover &,", ":focus-within &,", ":focus &{color:", ";}", "[aria-disabled='true'] &{color:", ";}"], props.isLabelHovered ? focusColor : color, StyledTrigger, StyledTrigger, StyledTrigger, focusColor, StyledTrigger, disabledColor);
325
325
  };
326
326
  const sizeStyles$6 = props => {
327
327
  const size = props.theme.iconSizes.md;
@@ -349,7 +349,7 @@ const StyledInputIcon = styled__default.default(_ref => {
349
349
  return React.cloneElement(React.Children.only(children), props);
350
350
  }).attrs({
351
351
  'data-garden-id': COMPONENT_ID$l,
352
- 'data-garden-version': '9.0.0-next.5'
352
+ 'data-garden-version': '9.0.0-next.7'
353
353
  }).withConfig({
354
354
  displayName: "StyledInputIcon",
355
355
  componentId: "sc-gqbs1s-0"
@@ -368,7 +368,7 @@ const colorStyles$5 = props => {
368
368
  boxShadow = `inset ${props.theme.rtl ? `-${props.theme.shadowWidths.md}` : props.theme.shadowWidths.md} 0 ${reactTheming.getColorV8(hue, 600, props.theme)}`;
369
369
  }
370
370
  const disabledForegroundColor = reactTheming.getColorV8('neutralHue', 400, props.theme);
371
- let foregroundColor = props.theme.colors.foreground;
371
+ let foregroundColor = reactTheming.getColorV8('foreground', 600 , props.theme);
372
372
  if (props.$type === 'add') {
373
373
  foregroundColor = reactTheming.getColorV8('primaryHue', 600, props.theme);
374
374
  } else if (props.$type === 'danger') {
@@ -386,11 +386,11 @@ const sizeStyles$5 = props => {
386
386
  };
387
387
  const StyledOption = styled__default.default.li.attrs({
388
388
  'data-garden-id': COMPONENT_ID$k,
389
- 'data-garden-version': '9.0.0-next.5'
389
+ 'data-garden-version': '9.0.0-next.7'
390
390
  }).withConfig({
391
391
  displayName: "StyledOption",
392
392
  componentId: "sc-jl4wn6-0"
393
- })(["display:flex;position:relative;transition:color 0.25s ease-in-out;cursor:", ";word-wrap:break-word;font-weight:", ";user-select:none;&:focus{outline:none;}", ";", ";&[aria-disabled='true']{cursor:default;}&[aria-hidden='true']{", ";}", ";"], props => props.$type === 'group' || props.$type === 'header' ? 'default' : 'pointer', props => props.$type === 'header' || props.$type === 'previous' ? props.theme.fontWeights.semibold : props.theme.fontWeights.regular, sizeStyles$5, colorStyles$5, polished.hideVisually(), props => reactTheming.retrieveComponentStyles(COMPONENT_ID$k, props));
393
+ })(["display:flex;position:relative;transition:color 0.25s ease-in-out;cursor:", ";overflow-wrap:anywhere;font-weight:", ";user-select:none;&:focus{outline:none;}", ";", ";&[aria-disabled='true']{cursor:default;}&[aria-hidden='true']{", ";}", ";"], props => props.$type === 'group' || props.$type === 'header' ? 'default' : 'pointer', props => props.$type === 'header' || props.$type === 'previous' ? props.theme.fontWeights.semibold : props.theme.fontWeights.regular, sizeStyles$5, colorStyles$5, polished.hideVisually(), props => reactTheming.retrieveComponentStyles(COMPONENT_ID$k, props));
394
394
  StyledOption.defaultProps = {
395
395
  theme: reactTheming.DEFAULT_THEME
396
396
  };
@@ -398,7 +398,7 @@ StyledOption.defaultProps = {
398
398
  const COMPONENT_ID$j = 'dropdowns.combobox.option.content';
399
399
  const StyledOptionContent = styled__default.default.div.attrs({
400
400
  'data-garden-id': COMPONENT_ID$j,
401
- 'data-garden-version': '9.0.0-next.5'
401
+ 'data-garden-version': '9.0.0-next.7'
402
402
  }).withConfig({
403
403
  displayName: "StyledOptionContent",
404
404
  componentId: "sc-121ujpu-0"
@@ -410,7 +410,7 @@ StyledOptionContent.defaultProps = {
410
410
  const COMPONENT_ID$i = 'dropdowns.combobox.optgroup';
411
411
  const StyledOptGroup = styled__default.default.ul.attrs({
412
412
  'data-garden-id': COMPONENT_ID$i,
413
- 'data-garden-version': '9.0.0-next.5'
413
+ 'data-garden-version': '9.0.0-next.7'
414
414
  }).withConfig({
415
415
  displayName: "StyledOptGroup",
416
416
  componentId: "sc-1kavqsx-0"
@@ -431,7 +431,7 @@ const sizeStyles$4 = props => {
431
431
  };
432
432
  const StyledListboxSeparator = styled__default.default.li.attrs({
433
433
  'data-garden-id': COMPONENT_ID$h,
434
- 'data-garden-version': '9.0.0-next.5'
434
+ 'data-garden-version': '9.0.0-next.7'
435
435
  }).withConfig({
436
436
  displayName: "StyledListboxSeparator",
437
437
  componentId: "sc-1p6toh2-0"
@@ -448,7 +448,7 @@ const sizeStyles$3 = props => {
448
448
  };
449
449
  const StyledListbox = styled__default.default.ul.attrs({
450
450
  'data-garden-id': COMPONENT_ID$g,
451
- 'data-garden-version': '9.0.0-next.5'
451
+ 'data-garden-version': '9.0.0-next.7'
452
452
  }).withConfig({
453
453
  displayName: "StyledListbox",
454
454
  componentId: "sc-1k13ba7-0"
@@ -473,7 +473,7 @@ const StyledOptionIcon = styled__default.default(_ref => {
473
473
  return React.cloneElement(React.Children.only(children), props);
474
474
  }).attrs({
475
475
  'data-garden-id': COMPONENT_ID$f,
476
- 'data-garden-version': '9.0.0-next.5'
476
+ 'data-garden-version': '9.0.0-next.7'
477
477
  }).withConfig({
478
478
  displayName: "StyledOptionIcon",
479
479
  componentId: "sc-qsab3y-0"
@@ -494,7 +494,7 @@ const sizeStyles$1 = props => {
494
494
  };
495
495
  const StyledOptionMeta = styled__default.default.div.attrs({
496
496
  'data-garden-id': COMPONENT_ID$e,
497
- 'data-garden-version': '9.0.0-next.5'
497
+ 'data-garden-version': '9.0.0-next.7'
498
498
  }).withConfig({
499
499
  displayName: "StyledOptionMeta",
500
500
  componentId: "sc-j6pu10-0"
@@ -539,7 +539,7 @@ const StyledOptionTypeIcon = styled__default.default(_ref => {
539
539
  return React.cloneElement(React.Children.only(children), props);
540
540
  }).attrs({
541
541
  'data-garden-id': COMPONENT_ID$d,
542
- 'data-garden-version': '9.0.0-next.5'
542
+ 'data-garden-version': '9.0.0-next.7'
543
543
  }).withConfig({
544
544
  displayName: "StyledOptionTypeIcon",
545
545
  componentId: "sc-xpink2-0"
@@ -551,7 +551,7 @@ StyledOptionTypeIcon.defaultProps = {
551
551
  const COMPONENT_ID$c = 'dropdowns.combobox.tag';
552
552
  const StyledTag = styled__default.default(reactTags.Tag).attrs({
553
553
  'data-garden-id': COMPONENT_ID$c,
554
- 'data-garden-version': '9.0.0-next.5'
554
+ 'data-garden-version': '9.0.0-next.7'
555
555
  }).withConfig({
556
556
  displayName: "StyledTag",
557
557
  componentId: "sc-1alam0r-0"
@@ -567,7 +567,7 @@ const colorStyles$1 = props => {
567
567
  };
568
568
  const StyledValue = styled__default.default.div.attrs({
569
569
  'data-garden-id': COMPONENT_ID$b,
570
- 'data-garden-version': '9.0.0-next.5'
570
+ 'data-garden-version': '9.0.0-next.7'
571
571
  }).withConfig({
572
572
  displayName: "StyledValue",
573
573
  componentId: "sc-t719sx-0"
@@ -589,7 +589,7 @@ const colorStyles = props => {
589
589
  const StyledTagsButton = styled__default.default(StyledValue).attrs({
590
590
  as: 'button',
591
591
  'data-garden-id': COMPONENT_ID$a,
592
- 'data-garden-version': '9.0.0-next.5'
592
+ 'data-garden-version': '9.0.0-next.7'
593
593
  }).withConfig({
594
594
  displayName: "StyledTagsButton",
595
595
  componentId: "sc-6q5w33-0"
@@ -601,7 +601,7 @@ StyledTagsButton.defaultProps = {
601
601
  const COMPONENT_ID$9 = 'dropdowns.menu';
602
602
  const StyledMenu = styled__default.default(StyledListbox).attrs({
603
603
  'data-garden-id': COMPONENT_ID$9,
604
- 'data-garden-version': '9.0.0-next.5'
604
+ 'data-garden-version': '9.0.0-next.7'
605
605
  }).withConfig({
606
606
  displayName: "StyledMenu",
607
607
  componentId: "sc-f77ntu-0"
@@ -617,7 +617,7 @@ StyledMenu.defaultProps = {
617
617
  const COMPONENT_ID$8 = 'dropdowns.menu.floating';
618
618
  const StyledFloatingMenu = styled__default.default(StyledFloatingListbox).attrs({
619
619
  'data-garden-id': COMPONENT_ID$8,
620
- 'data-garden-version': '9.0.0-next.5'
620
+ 'data-garden-version': '9.0.0-next.7'
621
621
  }).withConfig({
622
622
  displayName: "StyledFloatingMenu",
623
623
  componentId: "sc-1rc7ahb-0"
@@ -629,7 +629,7 @@ StyledFloatingMenu.defaultProps = {
629
629
  const COMPONENT_ID$7 = 'dropdowns.menu.item';
630
630
  const StyledItem = styled__default.default(StyledOption).attrs({
631
631
  'data-garden-id': COMPONENT_ID$7,
632
- 'data-garden-version': '9.0.0-next.5'
632
+ 'data-garden-version': '9.0.0-next.7'
633
633
  }).withConfig({
634
634
  displayName: "StyledItem",
635
635
  componentId: "sc-1jp99dq-0"
@@ -641,7 +641,7 @@ StyledItem.defaultProps = {
641
641
  const COMPONENT_ID$6 = 'dropdowns.menu.item.content';
642
642
  const StyledItemContent = styled__default.default(StyledOptionContent).attrs({
643
643
  'data-garden-id': COMPONENT_ID$6,
644
- 'data-garden-version': '9.0.0-next.5'
644
+ 'data-garden-version': '9.0.0-next.7'
645
645
  }).withConfig({
646
646
  displayName: "StyledItemContent",
647
647
  componentId: "sc-1opglsb-0"
@@ -653,7 +653,7 @@ StyledItemContent.defaultProps = {
653
653
  const COMPONENT_ID$5 = 'dropdowns.menu.item_group';
654
654
  const StyledItemGroup = styled__default.default(StyledOptGroup).attrs({
655
655
  'data-garden-id': COMPONENT_ID$5,
656
- 'data-garden-version': '9.0.0-next.5'
656
+ 'data-garden-version': '9.0.0-next.7'
657
657
  }).withConfig({
658
658
  displayName: "StyledItemGroup",
659
659
  componentId: "sc-1umk3cg-0"
@@ -665,7 +665,7 @@ StyledItemGroup.defaultProps = {
665
665
  const COMPONENT_ID$4 = 'dropdowns.menu.item.icon';
666
666
  const StyledItemIcon = styled__default.default(StyledOptionIcon).attrs({
667
667
  'data-garden-id': COMPONENT_ID$4,
668
- 'data-garden-version': '9.0.0-next.5'
668
+ 'data-garden-version': '9.0.0-next.7'
669
669
  }).withConfig({
670
670
  displayName: "StyledItemIcon",
671
671
  componentId: "sc-w9orqb-0"
@@ -677,7 +677,7 @@ StyledItemIcon.defaultProps = {
677
677
  const COMPONENT_ID$3 = 'dropdowns.menu.item.meta';
678
678
  const StyledItemMeta = styled__default.default(StyledOptionMeta).attrs({
679
679
  'data-garden-id': COMPONENT_ID$3,
680
- 'data-garden-version': '9.0.0-next.5'
680
+ 'data-garden-version': '9.0.0-next.7'
681
681
  }).withConfig({
682
682
  displayName: "StyledItemMeta",
683
683
  componentId: "sc-1unw3x1-0"
@@ -689,7 +689,7 @@ StyledItemMeta.defaultProps = {
689
689
  const COMPONENT_ID$2 = 'dropdowns.menu.item.type_icon';
690
690
  const StyledItemTypeIcon = styled__default.default(StyledOptionTypeIcon).attrs({
691
691
  'data-garden-id': COMPONENT_ID$2,
692
- 'data-garden-version': '9.0.0-next.5'
692
+ 'data-garden-version': '9.0.0-next.7'
693
693
  }).withConfig({
694
694
  displayName: "StyledItemTypeIcon",
695
695
  componentId: "sc-1pll3nu-0"
@@ -701,7 +701,7 @@ StyledItemTypeIcon.defaultProps = {
701
701
  const COMPONENT_ID$1 = 'dropdowns.menu.button';
702
702
  const StyledButton = styled__default.default(reactButtons.Button).attrs({
703
703
  'data-garden-id': COMPONENT_ID$1,
704
- 'data-garden-version': '9.0.0-next.5'
704
+ 'data-garden-version': '9.0.0-next.7'
705
705
  }).withConfig({
706
706
  displayName: "StyledButton",
707
707
  componentId: "sc-5hs2jg-0"
@@ -713,7 +713,7 @@ StyledButton.defaultProps = {
713
713
  const COMPONENT_ID = 'dropdowns.menu.separator';
714
714
  const StyledSeparator = styled__default.default(StyledListboxSeparator).attrs({
715
715
  'data-garden-id': COMPONENT_ID,
716
- 'data-garden-version': '9.0.0-next.5'
716
+ 'data-garden-version': '9.0.0-next.7'
717
717
  }).withConfig({
718
718
  displayName: "StyledSeparator",
719
719
  componentId: "sc-8kqwen-0"
@@ -830,34 +830,6 @@ Listbox.propTypes = {
830
830
  zIndex: PropTypes__default.default.number
831
831
  };
832
832
 
833
- const toString = option => typeof option.value === 'string' ? option.value : JSON.stringify(option.value);
834
- const toOption = props => {
835
- return {
836
- value: props.value,
837
- label: props.label,
838
- hidden: props.isHidden,
839
- disabled: props.isDisabled,
840
- selected: props.isSelected
841
- };
842
- };
843
- const toOptions = (children, optionTagProps) => React.Children.toArray(children).reduce((options, option) => {
844
- const retVal = options;
845
- if ( React.isValidElement(option)) {
846
- if ('value' in option.props) {
847
- retVal.push(toOption(option.props));
848
- optionTagProps[toString(option.props)] = option.props.tagProps;
849
- } else {
850
- const props = option.props;
851
- const groupOptions = toOptions(props.children, optionTagProps);
852
- retVal.push({
853
- label: props.legend,
854
- options: groupOptions
855
- });
856
- }
857
- }
858
- return retVal;
859
- }, []);
860
-
861
833
  const TagAvatarComponent = reactTags.Tag.Avatar;
862
834
  TagAvatarComponent.displayName = 'Tag.Avatar';
863
835
  const TagAvatar = TagAvatarComponent;
@@ -875,7 +847,7 @@ const TagComponent = React.forwardRef((_ref, ref) => {
875
847
  isCompact,
876
848
  removeSelection
877
849
  } = useComboboxContext();
878
- const text = option.label || toString(option);
850
+ const text = option.label || option.value;
879
851
  const ariaLabel = reactTheming.useText(
880
852
  Tag, props, 'aria-label', `${text}, press delete or backspace to remove`, !option.disabled);
881
853
  const tagProps = getTagProps({
@@ -924,21 +896,47 @@ const TagGroup = _ref => {
924
896
  selection
925
897
  } = _ref;
926
898
  return React__namespace.default.createElement(React__namespace.default.Fragment, null, selection.map((option, index) => {
927
- const key = toString(option);
928
899
  const disabled = isDisabled || option.disabled;
929
900
  return React__namespace.default.createElement(Tag, _extends$5({
930
- key: key,
901
+ key: option.value,
931
902
  hidden: !isExpanded && index >= maxTags,
932
903
  option: {
933
904
  ...option,
934
905
  disabled
935
906
  },
936
907
  tooltipZIndex: listboxZIndex ? listboxZIndex + 1 : undefined
937
- }, optionTagProps[key]));
908
+ }, optionTagProps[option.value]));
938
909
  }), children);
939
910
  };
940
911
  TagGroup.displayName = 'TagGroup';
941
912
 
913
+ const toOption = props => {
914
+ return {
915
+ value: props.value,
916
+ label: props.label,
917
+ hidden: props.isHidden,
918
+ disabled: props.isDisabled,
919
+ selected: props.isSelected
920
+ };
921
+ };
922
+ const toOptions = (children, optionTagProps) => React.Children.toArray(children).reduce((options, option) => {
923
+ const retVal = options;
924
+ if ( React.isValidElement(option)) {
925
+ if ('value' in option.props) {
926
+ retVal.push(toOption(option.props));
927
+ optionTagProps[option.props.value] = option.props.tagProps;
928
+ } else {
929
+ const props = option.props;
930
+ const groupOptions = toOptions(props.children, optionTagProps);
931
+ retVal.push({
932
+ label: props.legend,
933
+ options: groupOptions
934
+ });
935
+ }
936
+ }
937
+ return retVal;
938
+ }, []);
939
+
942
940
  const MAX_TAGS = 4;
943
941
  const Combobox = React.forwardRef((_ref, ref) => {
944
942
  let {
@@ -1463,9 +1461,7 @@ const OptionComponent = React.forwardRef((_ref, ref) => {
1463
1461
  }, props, optionProps), React__namespace.default.createElement(StyledOptionTypeIcon, {
1464
1462
  isCompact: isCompact,
1465
1463
  type: type
1466
- }, renderActionIcon(type)), icon && React__namespace.default.createElement(StyledOptionIcon, null, icon), React__namespace.default.createElement(StyledOptionContent, null, children || label || toString({
1467
- value
1468
- }))));
1464
+ }, renderActionIcon(type)), icon && React__namespace.default.createElement(StyledOptionIcon, null, icon), React__namespace.default.createElement(StyledOptionContent, null, children || label || value)));
1469
1465
  });
1470
1466
  OptionComponent.displayName = 'Option';
1471
1467
  OptionComponent.propTypes = {
@@ -1476,7 +1472,7 @@ OptionComponent.propTypes = {
1476
1472
  label: PropTypes__default.default.string,
1477
1473
  tagProps: PropTypes__default.default.object,
1478
1474
  type: PropTypes__default.default.oneOf(OPTION_TYPE),
1479
- value: PropTypes__default.default.oneOfType([PropTypes__default.default.string, PropTypes__default.default.object]).isRequired
1475
+ value: PropTypes__default.default.string.isRequired
1480
1476
  };
1481
1477
  const Option = OptionComponent;
1482
1478
  Option.Meta = OptionMeta;
package/dist/index.esm.js CHANGED
@@ -75,7 +75,7 @@ const useFieldContext = () => {
75
75
  const COMPONENT_ID$v = 'dropdowns.combobox.label';
76
76
  const StyledLabel = styled(Field$1.Label).attrs({
77
77
  'data-garden-id': COMPONENT_ID$v,
78
- 'data-garden-version': '9.0.0-next.5'
78
+ 'data-garden-version': '9.0.0-next.7'
79
79
  }).withConfig({
80
80
  displayName: "StyledLabel",
81
81
  componentId: "sc-az6now-0"
@@ -87,7 +87,7 @@ StyledLabel.defaultProps = {
87
87
  const COMPONENT_ID$u = 'dropdowns.combobox.hint';
88
88
  const StyledHint = styled(Field$1.Hint).attrs({
89
89
  'data-garden-id': COMPONENT_ID$u,
90
- 'data-garden-version': '9.0.0-next.5'
90
+ 'data-garden-version': '9.0.0-next.7'
91
91
  }).withConfig({
92
92
  displayName: "StyledHint",
93
93
  componentId: "sc-106qvqx-0"
@@ -99,7 +99,7 @@ StyledHint.defaultProps = {
99
99
  const COMPONENT_ID$t = 'dropdowns.combobox.message';
100
100
  const StyledMessage = styled(Field$1.Message).attrs({
101
101
  'data-garden-id': COMPONENT_ID$t,
102
- 'data-garden-version': '9.0.0-next.5'
102
+ 'data-garden-version': '9.0.0-next.7'
103
103
  }).withConfig({
104
104
  displayName: "StyledMessage",
105
105
  componentId: "sc-jux8m5-0"
@@ -116,7 +116,7 @@ const sizeStyles$a = props => {
116
116
  };
117
117
  const StyledCombobox = styled.div.attrs({
118
118
  'data-garden-id': COMPONENT_ID$s,
119
- 'data-garden-version': '9.0.0-next.5'
119
+ 'data-garden-version': '9.0.0-next.7'
120
120
  }).withConfig({
121
121
  displayName: "StyledCombobox",
122
122
  componentId: "sc-13eybg8-0"
@@ -128,7 +128,7 @@ StyledCombobox.defaultProps = {
128
128
  const COMPONENT_ID$r = 'dropdowns.combobox.container';
129
129
  const StyledContainer = styled.div.attrs({
130
130
  'data-garden-id': COMPONENT_ID$r,
131
- 'data-garden-version': '9.0.0-next.5'
131
+ 'data-garden-version': '9.0.0-next.7'
132
132
  }).withConfig({
133
133
  displayName: "StyledContainer",
134
134
  componentId: "sc-14i9jid-0"
@@ -140,7 +140,7 @@ StyledContainer.defaultProps = {
140
140
  const COMPONENT_ID$q = 'dropdowns.combobox.field';
141
141
  const StyledField = styled.div.attrs({
142
142
  'data-garden-id': COMPONENT_ID$q,
143
- 'data-garden-version': '9.0.0-next.5'
143
+ 'data-garden-version': '9.0.0-next.7'
144
144
  }).withConfig({
145
145
  displayName: "StyledField",
146
146
  componentId: "sc-zc57xl-0"
@@ -152,7 +152,7 @@ StyledField.defaultProps = {
152
152
  const COMPONENT_ID$p = 'dropdowns.combobox.floating';
153
153
  const StyledFloatingListbox = styled.div.attrs({
154
154
  'data-garden-id': COMPONENT_ID$p,
155
- 'data-garden-version': '9.0.0-next.5'
155
+ 'data-garden-version': '9.0.0-next.7'
156
156
  }).withConfig({
157
157
  displayName: "StyledFloatingListbox",
158
158
  componentId: "sc-1cp6spf-0"
@@ -187,7 +187,7 @@ const sizeStyles$9 = props => {
187
187
  };
188
188
  const StyledInput = styled.input.attrs({
189
189
  'data-garden-id': COMPONENT_ID$o,
190
- 'data-garden-version': '9.0.0-next.5'
190
+ 'data-garden-version': '9.0.0-next.7'
191
191
  }).withConfig({
192
192
  displayName: "StyledInput",
193
193
  componentId: "sc-1lkqdg-0"
@@ -203,7 +203,7 @@ const sizeStyles$8 = props => {
203
203
  };
204
204
  const StyledInputGroup = styled.div.attrs({
205
205
  'data-garden-id': COMPONENT_ID$n,
206
- 'data-garden-version': '9.0.0-next.5'
206
+ 'data-garden-version': '9.0.0-next.7'
207
207
  }).withConfig({
208
208
  displayName: "StyledInputGroup",
209
209
  componentId: "sc-yx3q7u-0"
@@ -223,7 +223,7 @@ const colorStyles$7 = props => {
223
223
  } else if (props.validation === 'error') {
224
224
  hue = 'dangerHue';
225
225
  }
226
- const backgroundColor = props.isBare ? 'transparent' : props.theme.colors.background;
226
+ const backgroundColor = props.isBare ? 'transparent' : getColorV8('background', 600 , props.theme);
227
227
  let borderColor;
228
228
  let hoverBorderColor;
229
229
  let focusBorderColor;
@@ -249,7 +249,7 @@ const colorStyles$7 = props => {
249
249
  &:focus-within:not([aria-disabled='true']),
250
250
  &:focus-visible
251
251
  `;
252
- return css(["border-color:", ";background-color:", ";color:", ";&:hover{border-color:", ";}", " &[aria-disabled='true']{border-color:", ";background-color:", ";color:", ";}"], props.isLabelHovered ? hoverBorderColor : borderColor, backgroundColor, props.theme.colors.foreground, hoverBorderColor, focusStyles({
252
+ return css(["border-color:", ";background-color:", ";color:", ";&:hover{border-color:", ";}", " &[aria-disabled='true']{border-color:", ";background-color:", ";color:", ";}"], props.isLabelHovered ? hoverBorderColor : borderColor, backgroundColor, getColorV8('foreground', 600 , props.theme), hoverBorderColor, focusStyles({
253
253
  theme: props.theme,
254
254
  inset: props.focusInset,
255
255
  hue: focusBorderColor,
@@ -283,7 +283,7 @@ const sizeStyles$7 = props => {
283
283
  };
284
284
  const StyledTrigger = styled.div.attrs({
285
285
  'data-garden-id': COMPONENT_ID$m,
286
- 'data-garden-version': '9.0.0-next.5'
286
+ 'data-garden-version': '9.0.0-next.7'
287
287
  }).withConfig({
288
288
  displayName: "StyledTrigger",
289
289
  componentId: "sc-116nftk-0"
@@ -297,7 +297,7 @@ const colorStyles$6 = props => {
297
297
  const color = getColorV8('neutralHue', 600, props.theme);
298
298
  const focusColor = getColorV8('neutralHue', 700, props.theme);
299
299
  const disabledColor = getColorV8('neutralHue', 400, props.theme);
300
- return css(["color:", ";", ":hover &,", ":focus-within &,", ":focus &,", "[data-garden-focus-visible='true'] &{color:", ";}", "[aria-disabled='true'] &{color:", ";}"], props.isLabelHovered ? focusColor : color, StyledTrigger, StyledTrigger, StyledTrigger, StyledTrigger, focusColor, StyledTrigger, disabledColor);
300
+ return css(["color:", ";", ":hover &,", ":focus-within &,", ":focus &{color:", ";}", "[aria-disabled='true'] &{color:", ";}"], props.isLabelHovered ? focusColor : color, StyledTrigger, StyledTrigger, StyledTrigger, focusColor, StyledTrigger, disabledColor);
301
301
  };
302
302
  const sizeStyles$6 = props => {
303
303
  const size = props.theme.iconSizes.md;
@@ -325,7 +325,7 @@ const StyledInputIcon = styled(_ref => {
325
325
  return cloneElement(Children.only(children), props);
326
326
  }).attrs({
327
327
  'data-garden-id': COMPONENT_ID$l,
328
- 'data-garden-version': '9.0.0-next.5'
328
+ 'data-garden-version': '9.0.0-next.7'
329
329
  }).withConfig({
330
330
  displayName: "StyledInputIcon",
331
331
  componentId: "sc-gqbs1s-0"
@@ -344,7 +344,7 @@ const colorStyles$5 = props => {
344
344
  boxShadow = `inset ${props.theme.rtl ? `-${props.theme.shadowWidths.md}` : props.theme.shadowWidths.md} 0 ${getColorV8(hue, 600, props.theme)}`;
345
345
  }
346
346
  const disabledForegroundColor = getColorV8('neutralHue', 400, props.theme);
347
- let foregroundColor = props.theme.colors.foreground;
347
+ let foregroundColor = getColorV8('foreground', 600 , props.theme);
348
348
  if (props.$type === 'add') {
349
349
  foregroundColor = getColorV8('primaryHue', 600, props.theme);
350
350
  } else if (props.$type === 'danger') {
@@ -362,11 +362,11 @@ const sizeStyles$5 = props => {
362
362
  };
363
363
  const StyledOption = styled.li.attrs({
364
364
  'data-garden-id': COMPONENT_ID$k,
365
- 'data-garden-version': '9.0.0-next.5'
365
+ 'data-garden-version': '9.0.0-next.7'
366
366
  }).withConfig({
367
367
  displayName: "StyledOption",
368
368
  componentId: "sc-jl4wn6-0"
369
- })(["display:flex;position:relative;transition:color 0.25s ease-in-out;cursor:", ";word-wrap:break-word;font-weight:", ";user-select:none;&:focus{outline:none;}", ";", ";&[aria-disabled='true']{cursor:default;}&[aria-hidden='true']{", ";}", ";"], props => props.$type === 'group' || props.$type === 'header' ? 'default' : 'pointer', props => props.$type === 'header' || props.$type === 'previous' ? props.theme.fontWeights.semibold : props.theme.fontWeights.regular, sizeStyles$5, colorStyles$5, hideVisually(), props => retrieveComponentStyles(COMPONENT_ID$k, props));
369
+ })(["display:flex;position:relative;transition:color 0.25s ease-in-out;cursor:", ";overflow-wrap:anywhere;font-weight:", ";user-select:none;&:focus{outline:none;}", ";", ";&[aria-disabled='true']{cursor:default;}&[aria-hidden='true']{", ";}", ";"], props => props.$type === 'group' || props.$type === 'header' ? 'default' : 'pointer', props => props.$type === 'header' || props.$type === 'previous' ? props.theme.fontWeights.semibold : props.theme.fontWeights.regular, sizeStyles$5, colorStyles$5, hideVisually(), props => retrieveComponentStyles(COMPONENT_ID$k, props));
370
370
  StyledOption.defaultProps = {
371
371
  theme: DEFAULT_THEME
372
372
  };
@@ -374,7 +374,7 @@ StyledOption.defaultProps = {
374
374
  const COMPONENT_ID$j = 'dropdowns.combobox.option.content';
375
375
  const StyledOptionContent = styled.div.attrs({
376
376
  'data-garden-id': COMPONENT_ID$j,
377
- 'data-garden-version': '9.0.0-next.5'
377
+ 'data-garden-version': '9.0.0-next.7'
378
378
  }).withConfig({
379
379
  displayName: "StyledOptionContent",
380
380
  componentId: "sc-121ujpu-0"
@@ -386,7 +386,7 @@ StyledOptionContent.defaultProps = {
386
386
  const COMPONENT_ID$i = 'dropdowns.combobox.optgroup';
387
387
  const StyledOptGroup = styled.ul.attrs({
388
388
  'data-garden-id': COMPONENT_ID$i,
389
- 'data-garden-version': '9.0.0-next.5'
389
+ 'data-garden-version': '9.0.0-next.7'
390
390
  }).withConfig({
391
391
  displayName: "StyledOptGroup",
392
392
  componentId: "sc-1kavqsx-0"
@@ -407,7 +407,7 @@ const sizeStyles$4 = props => {
407
407
  };
408
408
  const StyledListboxSeparator = styled.li.attrs({
409
409
  'data-garden-id': COMPONENT_ID$h,
410
- 'data-garden-version': '9.0.0-next.5'
410
+ 'data-garden-version': '9.0.0-next.7'
411
411
  }).withConfig({
412
412
  displayName: "StyledListboxSeparator",
413
413
  componentId: "sc-1p6toh2-0"
@@ -424,7 +424,7 @@ const sizeStyles$3 = props => {
424
424
  };
425
425
  const StyledListbox = styled.ul.attrs({
426
426
  'data-garden-id': COMPONENT_ID$g,
427
- 'data-garden-version': '9.0.0-next.5'
427
+ 'data-garden-version': '9.0.0-next.7'
428
428
  }).withConfig({
429
429
  displayName: "StyledListbox",
430
430
  componentId: "sc-1k13ba7-0"
@@ -449,7 +449,7 @@ const StyledOptionIcon = styled(_ref => {
449
449
  return cloneElement(Children.only(children), props);
450
450
  }).attrs({
451
451
  'data-garden-id': COMPONENT_ID$f,
452
- 'data-garden-version': '9.0.0-next.5'
452
+ 'data-garden-version': '9.0.0-next.7'
453
453
  }).withConfig({
454
454
  displayName: "StyledOptionIcon",
455
455
  componentId: "sc-qsab3y-0"
@@ -470,7 +470,7 @@ const sizeStyles$1 = props => {
470
470
  };
471
471
  const StyledOptionMeta = styled.div.attrs({
472
472
  'data-garden-id': COMPONENT_ID$e,
473
- 'data-garden-version': '9.0.0-next.5'
473
+ 'data-garden-version': '9.0.0-next.7'
474
474
  }).withConfig({
475
475
  displayName: "StyledOptionMeta",
476
476
  componentId: "sc-j6pu10-0"
@@ -515,7 +515,7 @@ const StyledOptionTypeIcon = styled(_ref => {
515
515
  return cloneElement(Children.only(children), props);
516
516
  }).attrs({
517
517
  'data-garden-id': COMPONENT_ID$d,
518
- 'data-garden-version': '9.0.0-next.5'
518
+ 'data-garden-version': '9.0.0-next.7'
519
519
  }).withConfig({
520
520
  displayName: "StyledOptionTypeIcon",
521
521
  componentId: "sc-xpink2-0"
@@ -527,7 +527,7 @@ StyledOptionTypeIcon.defaultProps = {
527
527
  const COMPONENT_ID$c = 'dropdowns.combobox.tag';
528
528
  const StyledTag = styled(Tag$1).attrs({
529
529
  'data-garden-id': COMPONENT_ID$c,
530
- 'data-garden-version': '9.0.0-next.5'
530
+ 'data-garden-version': '9.0.0-next.7'
531
531
  }).withConfig({
532
532
  displayName: "StyledTag",
533
533
  componentId: "sc-1alam0r-0"
@@ -543,7 +543,7 @@ const colorStyles$1 = props => {
543
543
  };
544
544
  const StyledValue = styled.div.attrs({
545
545
  'data-garden-id': COMPONENT_ID$b,
546
- 'data-garden-version': '9.0.0-next.5'
546
+ 'data-garden-version': '9.0.0-next.7'
547
547
  }).withConfig({
548
548
  displayName: "StyledValue",
549
549
  componentId: "sc-t719sx-0"
@@ -565,7 +565,7 @@ const colorStyles = props => {
565
565
  const StyledTagsButton = styled(StyledValue).attrs({
566
566
  as: 'button',
567
567
  'data-garden-id': COMPONENT_ID$a,
568
- 'data-garden-version': '9.0.0-next.5'
568
+ 'data-garden-version': '9.0.0-next.7'
569
569
  }).withConfig({
570
570
  displayName: "StyledTagsButton",
571
571
  componentId: "sc-6q5w33-0"
@@ -577,7 +577,7 @@ StyledTagsButton.defaultProps = {
577
577
  const COMPONENT_ID$9 = 'dropdowns.menu';
578
578
  const StyledMenu = styled(StyledListbox).attrs({
579
579
  'data-garden-id': COMPONENT_ID$9,
580
- 'data-garden-version': '9.0.0-next.5'
580
+ 'data-garden-version': '9.0.0-next.7'
581
581
  }).withConfig({
582
582
  displayName: "StyledMenu",
583
583
  componentId: "sc-f77ntu-0"
@@ -593,7 +593,7 @@ StyledMenu.defaultProps = {
593
593
  const COMPONENT_ID$8 = 'dropdowns.menu.floating';
594
594
  const StyledFloatingMenu = styled(StyledFloatingListbox).attrs({
595
595
  'data-garden-id': COMPONENT_ID$8,
596
- 'data-garden-version': '9.0.0-next.5'
596
+ 'data-garden-version': '9.0.0-next.7'
597
597
  }).withConfig({
598
598
  displayName: "StyledFloatingMenu",
599
599
  componentId: "sc-1rc7ahb-0"
@@ -605,7 +605,7 @@ StyledFloatingMenu.defaultProps = {
605
605
  const COMPONENT_ID$7 = 'dropdowns.menu.item';
606
606
  const StyledItem = styled(StyledOption).attrs({
607
607
  'data-garden-id': COMPONENT_ID$7,
608
- 'data-garden-version': '9.0.0-next.5'
608
+ 'data-garden-version': '9.0.0-next.7'
609
609
  }).withConfig({
610
610
  displayName: "StyledItem",
611
611
  componentId: "sc-1jp99dq-0"
@@ -617,7 +617,7 @@ StyledItem.defaultProps = {
617
617
  const COMPONENT_ID$6 = 'dropdowns.menu.item.content';
618
618
  const StyledItemContent = styled(StyledOptionContent).attrs({
619
619
  'data-garden-id': COMPONENT_ID$6,
620
- 'data-garden-version': '9.0.0-next.5'
620
+ 'data-garden-version': '9.0.0-next.7'
621
621
  }).withConfig({
622
622
  displayName: "StyledItemContent",
623
623
  componentId: "sc-1opglsb-0"
@@ -629,7 +629,7 @@ StyledItemContent.defaultProps = {
629
629
  const COMPONENT_ID$5 = 'dropdowns.menu.item_group';
630
630
  const StyledItemGroup = styled(StyledOptGroup).attrs({
631
631
  'data-garden-id': COMPONENT_ID$5,
632
- 'data-garden-version': '9.0.0-next.5'
632
+ 'data-garden-version': '9.0.0-next.7'
633
633
  }).withConfig({
634
634
  displayName: "StyledItemGroup",
635
635
  componentId: "sc-1umk3cg-0"
@@ -641,7 +641,7 @@ StyledItemGroup.defaultProps = {
641
641
  const COMPONENT_ID$4 = 'dropdowns.menu.item.icon';
642
642
  const StyledItemIcon = styled(StyledOptionIcon).attrs({
643
643
  'data-garden-id': COMPONENT_ID$4,
644
- 'data-garden-version': '9.0.0-next.5'
644
+ 'data-garden-version': '9.0.0-next.7'
645
645
  }).withConfig({
646
646
  displayName: "StyledItemIcon",
647
647
  componentId: "sc-w9orqb-0"
@@ -653,7 +653,7 @@ StyledItemIcon.defaultProps = {
653
653
  const COMPONENT_ID$3 = 'dropdowns.menu.item.meta';
654
654
  const StyledItemMeta = styled(StyledOptionMeta).attrs({
655
655
  'data-garden-id': COMPONENT_ID$3,
656
- 'data-garden-version': '9.0.0-next.5'
656
+ 'data-garden-version': '9.0.0-next.7'
657
657
  }).withConfig({
658
658
  displayName: "StyledItemMeta",
659
659
  componentId: "sc-1unw3x1-0"
@@ -665,7 +665,7 @@ StyledItemMeta.defaultProps = {
665
665
  const COMPONENT_ID$2 = 'dropdowns.menu.item.type_icon';
666
666
  const StyledItemTypeIcon = styled(StyledOptionTypeIcon).attrs({
667
667
  'data-garden-id': COMPONENT_ID$2,
668
- 'data-garden-version': '9.0.0-next.5'
668
+ 'data-garden-version': '9.0.0-next.7'
669
669
  }).withConfig({
670
670
  displayName: "StyledItemTypeIcon",
671
671
  componentId: "sc-1pll3nu-0"
@@ -677,7 +677,7 @@ StyledItemTypeIcon.defaultProps = {
677
677
  const COMPONENT_ID$1 = 'dropdowns.menu.button';
678
678
  const StyledButton = styled(Button).attrs({
679
679
  'data-garden-id': COMPONENT_ID$1,
680
- 'data-garden-version': '9.0.0-next.5'
680
+ 'data-garden-version': '9.0.0-next.7'
681
681
  }).withConfig({
682
682
  displayName: "StyledButton",
683
683
  componentId: "sc-5hs2jg-0"
@@ -689,7 +689,7 @@ StyledButton.defaultProps = {
689
689
  const COMPONENT_ID = 'dropdowns.menu.separator';
690
690
  const StyledSeparator = styled(StyledListboxSeparator).attrs({
691
691
  'data-garden-id': COMPONENT_ID,
692
- 'data-garden-version': '9.0.0-next.5'
692
+ 'data-garden-version': '9.0.0-next.7'
693
693
  }).withConfig({
694
694
  displayName: "StyledSeparator",
695
695
  componentId: "sc-8kqwen-0"
@@ -806,34 +806,6 @@ Listbox.propTypes = {
806
806
  zIndex: PropTypes.number
807
807
  };
808
808
 
809
- const toString = option => typeof option.value === 'string' ? option.value : JSON.stringify(option.value);
810
- const toOption = props => {
811
- return {
812
- value: props.value,
813
- label: props.label,
814
- hidden: props.isHidden,
815
- disabled: props.isDisabled,
816
- selected: props.isSelected
817
- };
818
- };
819
- const toOptions = (children, optionTagProps) => Children.toArray(children).reduce((options, option) => {
820
- const retVal = options;
821
- if ( isValidElement(option)) {
822
- if ('value' in option.props) {
823
- retVal.push(toOption(option.props));
824
- optionTagProps[toString(option.props)] = option.props.tagProps;
825
- } else {
826
- const props = option.props;
827
- const groupOptions = toOptions(props.children, optionTagProps);
828
- retVal.push({
829
- label: props.legend,
830
- options: groupOptions
831
- });
832
- }
833
- }
834
- return retVal;
835
- }, []);
836
-
837
809
  const TagAvatarComponent = Tag$1.Avatar;
838
810
  TagAvatarComponent.displayName = 'Tag.Avatar';
839
811
  const TagAvatar = TagAvatarComponent;
@@ -851,7 +823,7 @@ const TagComponent = forwardRef((_ref, ref) => {
851
823
  isCompact,
852
824
  removeSelection
853
825
  } = useComboboxContext();
854
- const text = option.label || toString(option);
826
+ const text = option.label || option.value;
855
827
  const ariaLabel = useText(
856
828
  Tag, props, 'aria-label', `${text}, press delete or backspace to remove`, !option.disabled);
857
829
  const tagProps = getTagProps({
@@ -900,21 +872,47 @@ const TagGroup = _ref => {
900
872
  selection
901
873
  } = _ref;
902
874
  return React__default.createElement(React__default.Fragment, null, selection.map((option, index) => {
903
- const key = toString(option);
904
875
  const disabled = isDisabled || option.disabled;
905
876
  return React__default.createElement(Tag, _extends$5({
906
- key: key,
877
+ key: option.value,
907
878
  hidden: !isExpanded && index >= maxTags,
908
879
  option: {
909
880
  ...option,
910
881
  disabled
911
882
  },
912
883
  tooltipZIndex: listboxZIndex ? listboxZIndex + 1 : undefined
913
- }, optionTagProps[key]));
884
+ }, optionTagProps[option.value]));
914
885
  }), children);
915
886
  };
916
887
  TagGroup.displayName = 'TagGroup';
917
888
 
889
+ const toOption = props => {
890
+ return {
891
+ value: props.value,
892
+ label: props.label,
893
+ hidden: props.isHidden,
894
+ disabled: props.isDisabled,
895
+ selected: props.isSelected
896
+ };
897
+ };
898
+ const toOptions = (children, optionTagProps) => Children.toArray(children).reduce((options, option) => {
899
+ const retVal = options;
900
+ if ( isValidElement(option)) {
901
+ if ('value' in option.props) {
902
+ retVal.push(toOption(option.props));
903
+ optionTagProps[option.props.value] = option.props.tagProps;
904
+ } else {
905
+ const props = option.props;
906
+ const groupOptions = toOptions(props.children, optionTagProps);
907
+ retVal.push({
908
+ label: props.legend,
909
+ options: groupOptions
910
+ });
911
+ }
912
+ }
913
+ return retVal;
914
+ }, []);
915
+
918
916
  const MAX_TAGS = 4;
919
917
  const Combobox = forwardRef((_ref, ref) => {
920
918
  let {
@@ -1439,9 +1437,7 @@ const OptionComponent = forwardRef((_ref, ref) => {
1439
1437
  }, props, optionProps), React__default.createElement(StyledOptionTypeIcon, {
1440
1438
  isCompact: isCompact,
1441
1439
  type: type
1442
- }, renderActionIcon(type)), icon && React__default.createElement(StyledOptionIcon, null, icon), React__default.createElement(StyledOptionContent, null, children || label || toString({
1443
- value
1444
- }))));
1440
+ }, renderActionIcon(type)), icon && React__default.createElement(StyledOptionIcon, null, icon), React__default.createElement(StyledOptionContent, null, children || label || value)));
1445
1441
  });
1446
1442
  OptionComponent.displayName = 'Option';
1447
1443
  OptionComponent.propTypes = {
@@ -1452,7 +1448,7 @@ OptionComponent.propTypes = {
1452
1448
  label: PropTypes.string,
1453
1449
  tagProps: PropTypes.object,
1454
1450
  type: PropTypes.oneOf(OPTION_TYPE),
1455
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired
1451
+ value: PropTypes.string.isRequired
1456
1452
  };
1457
1453
  const Option = OptionComponent;
1458
1454
  Option.Meta = OptionMeta;
@@ -7,14 +7,6 @@
7
7
  import { ReactNode } from 'react';
8
8
  import { IOption } from '@zendeskgarden/container-combobox';
9
9
  import { IOptionProps } from '../../types';
10
- /**
11
- * Convert an option object to a string.
12
- *
13
- * @param option An option of type `IOption`.
14
- *
15
- * @returns A string based on `option.value`.
16
- */
17
- export declare const toString: (option: IOption) => string;
18
10
  /**
19
11
  * Convert `Option` props to a valid object for `useCombobox`.
20
12
  *
@@ -146,7 +146,7 @@ export interface IOptionProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'val
146
146
  /** Determines the option type */
147
147
  type?: OptionType;
148
148
  /** Sets the unique value that is returned upon selection */
149
- value: string | object;
149
+ value: string;
150
150
  }
151
151
  export interface IOptGroupProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'content'> {
152
152
  /** Renders content for the option group (defaults to `label` text) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zendeskgarden/react-dropdowns",
3
- "version": "9.0.0-next.5",
3
+ "version": "9.0.0-next.7",
4
4
  "description": "Components related to dropdowns in the Garden Design System",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Zendesk Garden <garden@zendesk.com>",
@@ -22,25 +22,25 @@
22
22
  "types": "dist/typings/index.d.ts",
23
23
  "dependencies": {
24
24
  "@floating-ui/react-dom": "^2.0.0",
25
- "@zendeskgarden/container-combobox": "^1.1.4",
25
+ "@zendeskgarden/container-combobox": "^2.0.0",
26
26
  "@zendeskgarden/container-menu": "^0.3.0",
27
27
  "@zendeskgarden/container-utilities": "^2.0.0",
28
- "@zendeskgarden/react-buttons": "^9.0.0-next.5",
29
- "@zendeskgarden/react-forms": "^9.0.0-next.5",
30
- "@zendeskgarden/react-tags": "^9.0.0-next.5",
31
- "@zendeskgarden/react-tooltips": "^9.0.0-next.5",
28
+ "@zendeskgarden/react-buttons": "^9.0.0-next.7",
29
+ "@zendeskgarden/react-forms": "^9.0.0-next.7",
30
+ "@zendeskgarden/react-tags": "^9.0.0-next.7",
31
+ "@zendeskgarden/react-tooltips": "^9.0.0-next.7",
32
32
  "polished": "^4.0.0",
33
33
  "prop-types": "^15.7.2",
34
34
  "react-merge-refs": "^2.0.0"
35
35
  },
36
36
  "peerDependencies": {
37
- "@zendeskgarden/react-theming": "^8.67.0",
37
+ "@zendeskgarden/react-theming": "^9.0.0",
38
38
  "react": ">=16.8.0",
39
39
  "react-dom": ">=16.8.0",
40
40
  "styled-components": "^5.3.1"
41
41
  },
42
42
  "devDependencies": {
43
- "@zendeskgarden/react-theming": "^9.0.0-next.5",
43
+ "@zendeskgarden/react-theming": "^9.0.0-next.7",
44
44
  "@zendeskgarden/svg-icons": "7.0.0"
45
45
  },
46
46
  "keywords": [
@@ -54,5 +54,5 @@
54
54
  "access": "public"
55
55
  },
56
56
  "zendeskgarden:src": "src/index.ts",
57
- "gitHead": "806fa33feb06142c3f69b6a87b53628469117e4d"
57
+ "gitHead": "50a2b45b2e237a490a6d460818d33498b92479ec"
58
58
  }