@innovaccer/design-system 2.29.0 → 2.30.1

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.
Files changed (41) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/css/dist/index.css +56 -0
  3. package/css/dist/index.css.map +1 -1
  4. package/css/src/components/calendar.css +4 -0
  5. package/css/src/components/grid.css +6 -0
  6. package/css/src/components/listbox.css +4 -0
  7. package/css/src/components/menu.css +27 -0
  8. package/css/src/variables/index.css +14 -0
  9. package/dist/.lib/tsconfig.type.tsbuildinfo +205 -28
  10. package/dist/core/components/atoms/_text/index.d.ts +2 -4
  11. package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +4 -0
  12. package/dist/core/components/atoms/text/Text.d.ts +3 -10
  13. package/dist/core/components/css-utilities/designTokens/Data.d.ts +4 -0
  14. package/dist/core/components/molecules/popover/Popover.d.ts +5 -0
  15. package/dist/core/components/molecules/tooltip/Tooltip.d.ts +8 -0
  16. package/dist/core/components/organisms/calendar/Calendar.d.ts +1 -0
  17. package/dist/core/components/organisms/list/List.d.ts +1 -0
  18. package/dist/core/components/organisms/listbox/listboxItem/ListBody.d.ts +4 -1
  19. package/dist/core/components/organisms/listbox/listboxItem/ListboxItem.d.ts +3 -3
  20. package/dist/core/components/organisms/menu/Menu.d.ts +49 -0
  21. package/dist/core/components/organisms/menu/MenuContext.d.ts +13 -0
  22. package/dist/core/components/organisms/menu/MenuGroup.d.ts +14 -0
  23. package/dist/core/components/organisms/menu/MenuItem.d.ts +17 -0
  24. package/dist/core/components/organisms/menu/MenuList.d.ts +19 -0
  25. package/dist/core/components/organisms/menu/SubMenu.d.ts +6 -0
  26. package/dist/core/components/organisms/menu/SubMenuContext.d.ts +10 -0
  27. package/dist/core/components/organisms/menu/index.d.ts +2 -0
  28. package/dist/core/components/organisms/menu/trigger/MenuTrigger.d.ts +6 -0
  29. package/dist/core/components/organisms/menu/trigger/utils.d.ts +3 -0
  30. package/dist/core/components/organisms/menu/utils.d.ts +2 -0
  31. package/dist/core/components/organisms/table/Header.d.ts +2 -0
  32. package/dist/core/components/organisms/table/Table.d.ts +3 -0
  33. package/dist/core/index.d.ts +1 -0
  34. package/dist/core/index.type.d.ts +1 -0
  35. package/dist/index.esm.js +779 -191
  36. package/dist/index.js +654 -73
  37. package/dist/index.js.map +1 -1
  38. package/dist/index.umd.js +1 -1
  39. package/dist/index.umd.js.br +0 -0
  40. package/dist/index.umd.js.gz +0 -0
  41. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
  /**
3
- * Generated on: 1710344054873
3
+ * Generated on: 1712135560473
4
4
  * Package: @innovaccer/design-system
5
- * Version: v2.29.0
5
+ * Version: v2.30.1
6
6
  * License: MIT
7
7
  * Docs: https://innovaccer.github.io/design-system
8
8
  */
@@ -2000,7 +2000,7 @@
2000
2000
  } else if (startDate) {
2001
2001
  inRange = !disabled && (dateComparison(hoverDate, 'more', dateInString, monthInString, yearInString) || inRangeLast) && dateComparison(startDate, 'less', dateInString, monthInString, yearInString);
2002
2002
  } else if (endDate) {
2003
- inRange = !disabled && (compareDate(hoverDate, 'less', yearNavVal, monthNavVal, date) || inRangeLast) && compareDate(endDate, 'more', yearNavVal, monthNavVal, date);
2003
+ inRange = !disabled && (dateComparison(hoverDate, 'less', dateInString, monthInString, yearInString) || inRangeLast) && dateComparison(endDate, 'more', dateInString, monthInString, yearInString);
2004
2004
  }
2005
2005
  }
2006
2006
 
@@ -2008,7 +2008,8 @@
2008
2008
  var isStartActive = startDate && dateComparison(startDate, 'equal', dateInString, monthInString, yearInString);
2009
2009
  var isEndActive = endDate && dateComparison(endDate, 'equal', dateInString, monthInString, yearInString);
2010
2010
  var activeDate = startDate && endDate && (isStartActive || isEndActive);
2011
- var isHoverLast = dateComparison(hoverDate, 'equal', dateInString, monthInString, yearInString) && hoverDate && startDate && hoverDate >= startDate;
2011
+ var isHoverBackwardLast = _this.props.allowReverseSelection && dateComparison(hoverDate, 'equal', dateInString, monthInString, yearInString) && hoverDate && (startDate && hoverDate < startDate || endDate && hoverDate < endDate);
2012
+ var isHoverForwardLast = dateComparison(hoverDate, 'equal', dateInString, monthInString, yearInString) && hoverDate && startDate && hoverDate >= startDate;
2012
2013
  var isEdgeElement = col === 0 || col === 6;
2013
2014
  var isValueRange = inRange || rangePicker && (active || activeDate);
2014
2015
  var wrapperClass = classNames__default["default"]({
@@ -2022,7 +2023,8 @@
2022
2023
  'Calendar-valueWrapper--startError': isStart && isRangeError || rangePicker && isRangeError && isStartActive,
2023
2024
  'Calendar-valueWrapper--endError': isEnd && isRangeError || rangePicker && isRangeError && isEndActive,
2024
2025
  'Calendar-valueWrapper--dummy': dummy,
2025
- 'Calendar-valueWrapper--hoverDate': rangePicker && isHoverLast,
2026
+ 'Calendar-valueWrapper--hoverDate': rangePicker && isHoverForwardLast,
2027
+ 'Calendar-valueWrapper--hoverEndDate': rangePicker && isHoverBackwardLast,
2026
2028
  'Calendar-valueWrapper--inStartRange': isValueRange && col === 0 && !active && !activeDate,
2027
2029
  'Calendar-valueWrapper--inEndRange': isValueRange && col === 6 && !active && !activeDate
2028
2030
  });
@@ -2257,6 +2259,39 @@
2257
2259
  if (onRangeChange) onRangeChange(startDate, endDate);
2258
2260
  }
2259
2261
 
2262
+ if (this.props.allowReverseSelection && prevState.hoverDate !== this.state.hoverDate) {
2263
+ var _l = this.state,
2264
+ hoverDate = _l.hoverDate,
2265
+ startDate = _l.startDate,
2266
+ endDate = _l.endDate;
2267
+
2268
+ if (startDate && !endDate) {
2269
+ var _m = getDateInfo(startDate),
2270
+ year = _m.year,
2271
+ month = _m.month,
2272
+ date = _m.date;
2273
+
2274
+ if (compareDate(hoverDate, 'less', year, month, date)) {
2275
+ this.setState({
2276
+ startDate: undefined,
2277
+ endDate: startDate
2278
+ });
2279
+ }
2280
+ } else if (endDate && !startDate) {
2281
+ var _o = getDateInfo(endDate),
2282
+ year = _o.year,
2283
+ month = _o.month,
2284
+ date = _o.date;
2285
+
2286
+ if (compareDate(hoverDate, 'more', year, month, date)) {
2287
+ this.setState({
2288
+ startDate: endDate,
2289
+ endDate: undefined
2290
+ });
2291
+ }
2292
+ }
2293
+ }
2294
+
2260
2295
  if (prevState.year !== this.state.year) {
2261
2296
  var year = this.state.year;
2262
2297
 
@@ -2552,23 +2587,28 @@
2552
2587
  size: 16
2553
2588
  };
2554
2589
 
2555
- var GenericText = function GenericText(_a) {
2590
+ var GenericText = function GenericText(_a, ref) {
2556
2591
  var children = _a.children,
2557
2592
  _b = _a.componentType,
2558
2593
  componentType = _b === void 0 ? 'span' : _b,
2559
2594
  className = _a.className,
2560
- props = __rest(_a, ["children", "componentType", "className"]);
2595
+ rest = __rest(_a, ["children", "componentType", "className"]);
2561
2596
 
2562
- return /*#__PURE__*/React__namespace.createElement(componentType, __assign(__assign({}, props), {
2563
- className: className
2597
+ return /*#__PURE__*/React__namespace.createElement(componentType, __assign(__assign({}, rest), {
2598
+ className: className,
2599
+ ref: ref
2564
2600
  }), children);
2565
2601
  };
2566
2602
 
2567
- var Text = function Text(props) {
2603
+ var Link$1 = /*#__PURE__*/React__namespace.forwardRef(GenericText);
2604
+
2605
+ var Text = /*#__PURE__*/React__namespace.forwardRef(function (props, ref) {
2568
2606
  var _a;
2569
2607
 
2570
- var appearance = props.appearance,
2571
- size = props.size,
2608
+ var _b = props.appearance,
2609
+ appearance = _b === void 0 ? 'default' : _b,
2610
+ _c = props.size,
2611
+ size = _c === void 0 ? 'regular' : _c,
2572
2612
  children = props.children,
2573
2613
  weight = props.weight,
2574
2614
  small = props.small,
@@ -2579,13 +2619,14 @@
2579
2619
  var classes = classNames__default["default"]((_a = {
2580
2620
  Text: true
2581
2621
  }, _a["Text--" + appearance] = !color && appearance, _a["Text--" + weight] = weight, _a["Text--" + size] = size, _a["color-" + color] = color, _a['Text--small'] = size === 'small' || small, _a), className);
2582
- return /*#__PURE__*/React__namespace.createElement(GenericText, __assign({
2622
+ return /*#__PURE__*/React__namespace.createElement(Link$1, __assign({
2623
+ ref: ref,
2583
2624
  "data-test": "DesignSystem-Text"
2584
2625
  }, rest, {
2585
2626
  className: classes,
2586
2627
  componentType: "span"
2587
2628
  }), children);
2588
- };
2629
+ });
2589
2630
  Text.displayName = 'Text';
2590
2631
  Text.defaultProps = {
2591
2632
  appearance: 'default',
@@ -5955,7 +5996,7 @@
5955
5996
  var classes = classNames__default["default"]((_a = {
5956
5997
  Heading: true
5957
5998
  }, _a["Heading--" + size] = size, _a["Heading--" + appearance] = !color && appearance, _a["color-" + color] = color, _a), className);
5958
- return /*#__PURE__*/React__namespace.createElement(GenericText, __assign({
5999
+ return /*#__PURE__*/React__namespace.createElement(Link$1, __assign({
5959
6000
  "data-test": "DesignSystem-Heading"
5960
6001
  }, rest, {
5961
6002
  className: classes,
@@ -6722,7 +6763,7 @@
6722
6763
  "data-test": "DesignSystem-Label"
6723
6764
  }, baseProps, {
6724
6765
  className: LabelClass
6725
- }), /*#__PURE__*/React__namespace.createElement(GenericText, __assign({
6766
+ }), /*#__PURE__*/React__namespace.createElement(Link$1, __assign({
6726
6767
  "data-test": "DesignSystem-Label--Text",
6727
6768
  className: classes,
6728
6769
  componentType: "label"
@@ -6933,7 +6974,7 @@
6933
6974
  var classes = classNames__default["default"]((_a = {
6934
6975
  Link: true
6935
6976
  }, _a["Link--" + size] = size, _a["Link--" + appearance] = appearance, _a["Link--" + appearance + "-disabled"] = disabled, _a), className);
6936
- return /*#__PURE__*/React__namespace.createElement(GenericText, __assign({
6977
+ return /*#__PURE__*/React__namespace.createElement(Link$1, __assign({
6937
6978
  "data-test": "DesignSystem-Link",
6938
6979
  className: classes,
6939
6980
  componentType: "a",
@@ -7827,7 +7868,7 @@
7827
7868
  var classes = classNames__default["default"]((_a = {
7828
7869
  Text: true
7829
7870
  }, _a["Text--" + appearance] = !color && appearance, _a["color-" + color] = color, _a), className);
7830
- return /*#__PURE__*/React__namespace.createElement(GenericText, __assign({
7871
+ return /*#__PURE__*/React__namespace.createElement(Link$1, __assign({
7831
7872
  "data-test": "DesignSystem-Paragraph"
7832
7873
  }, rest, {
7833
7874
  className: classes,
@@ -8150,7 +8191,7 @@
8150
8191
  var classes = classNames__default["default"]((_a = {
8151
8192
  Subheading: true
8152
8193
  }, _a["Subheading--" + appearance] = !color && appearance, _a["color-" + color] = color, _a), className);
8153
- return /*#__PURE__*/React__namespace.createElement(GenericText, __assign({
8194
+ return /*#__PURE__*/React__namespace.createElement(Link$1, __assign({
8154
8195
  "data-test": "DesignSystem-Subheading"
8155
8196
  }, rest, {
8156
8197
  className: classes,
@@ -8395,6 +8436,11 @@
8395
8436
  break;
8396
8437
  }
8397
8438
 
8439
+ if (_this.props.triggerCoordinates) {
8440
+ newStyle.position = 'absolute';
8441
+ newStyle.transform = "translate(" + _this.props.triggerCoordinates.x + "px, " + _this.props.triggerCoordinates.y + "px)";
8442
+ }
8443
+
8398
8444
  return newStyle;
8399
8445
  };
8400
8446
 
@@ -8692,16 +8738,33 @@
8692
8738
  placement = _a.placement,
8693
8739
  appendToBody = _a.appendToBody,
8694
8740
  hide = _a.hide,
8695
- boundaryElement = _a.boundaryElement;
8741
+ boundaryElement = _a.boundaryElement,
8742
+ triggerCoordinates = _a.triggerCoordinates;
8696
8743
  var _b = this.state,
8697
8744
  animationKeyframe = _b.animationKeyframe,
8698
8745
  isOpen = _b.isOpen;
8746
+ var coordinatesPopper = /*#__PURE__*/React__namespace.createElement(reactPopper.Popper, {
8747
+ placement: placement,
8748
+ innerRef: this.popupRef,
8749
+ modifiers: __assign({
8750
+ preventOverflow: {
8751
+ boundariesElement: boundaryElement || document.body
8752
+ },
8753
+ hide: {
8754
+ enabled: hide
8755
+ }
8756
+ }, triggerCoordinates && {
8757
+ offset: {
8758
+ offset: triggerCoordinates.x + "px, " + triggerCoordinates.y + "px"
8759
+ }
8760
+ })
8761
+ }, this.getPopperChildren);
8699
8762
  return /*#__PURE__*/React__namespace.createElement(reactPopper.Manager, null, /*#__PURE__*/React__namespace.createElement("style", null, animationKeyframe), /*#__PURE__*/React__namespace.createElement(reactPopper.Reference, {
8700
8763
  innerRef: this.triggerRef
8701
8764
  }, function (_a) {
8702
8765
  var ref = _a.ref;
8703
8766
  return _this.getTriggerElement(ref);
8704
- }), isOpen && appendToBody && /*#__PURE__*/ReactDOM__namespace.createPortal( /*#__PURE__*/React__namespace.createElement(reactPopper.Popper, {
8767
+ }), isOpen && appendToBody && !triggerCoordinates && /*#__PURE__*/ReactDOM__namespace.createPortal( /*#__PURE__*/React__namespace.createElement(reactPopper.Popper, {
8705
8768
  placement: placement,
8706
8769
  innerRef: this.popupRef,
8707
8770
  modifiers: {
@@ -8712,7 +8775,7 @@
8712
8775
  enabled: hide
8713
8776
  }
8714
8777
  }
8715
- }, this.getPopperChildren), document.body), isOpen && !appendToBody && /*#__PURE__*/React__namespace.createElement(reactPopper.Popper, {
8778
+ }, this.getPopperChildren), document.body), isOpen && appendToBody && triggerCoordinates && /*#__PURE__*/ReactDOM__namespace.createPortal(coordinatesPopper, document.body), isOpen && !appendToBody && !triggerCoordinates && /*#__PURE__*/React__namespace.createElement(reactPopper.Popper, {
8716
8779
  placement: placement,
8717
8780
  innerRef: this.popupRef
8718
8781
  }, this.getPopperChildren));
@@ -8742,7 +8805,8 @@
8742
8805
  hideOnReferenceEscape = props.hideOnReferenceEscape,
8743
8806
  _b = props.boundaryElement,
8744
8807
  boundaryElement = _b === void 0 ? document.body : _b,
8745
- rest = __rest(props, ["position", "customStyle", "dark", "children", "onToggle", "className", "hideOnReferenceEscape", "boundaryElement"]);
8808
+ name = props.name,
8809
+ rest = __rest(props, ["position", "customStyle", "dark", "children", "onToggle", "className", "hideOnReferenceEscape", "boundaryElement", "name"]);
8746
8810
 
8747
8811
  var _c = React__namespace.useState(!!props.open),
8748
8812
  open = _c[0],
@@ -8772,7 +8836,8 @@
8772
8836
  "data-test": "DesignSystem-Popover",
8773
8837
  className: classes,
8774
8838
  "data-layer": true,
8775
- "data-opened": open
8839
+ "data-opened": open,
8840
+ "data-name": name
8776
8841
  }, children);
8777
8842
  return /*#__PURE__*/React__namespace.createElement(PopperWrapper, __assign({}, rest, {
8778
8843
  init: init,
@@ -9053,7 +9118,7 @@
9053
9118
  }, count);
9054
9119
  };
9055
9120
 
9056
- var MenuItem = function MenuItem(props) {
9121
+ var MenuItem$1 = function MenuItem(props) {
9057
9122
  var _a;
9058
9123
 
9059
9124
  var menu = props.menu,
@@ -9122,7 +9187,7 @@
9122
9187
  }
9123
9188
  });
9124
9189
 
9125
- return customItemRenderer ? customItemRenderer(customItemProps) : /*#__PURE__*/React__namespace.createElement(GenericText, __assign({
9190
+ return customItemRenderer ? customItemRenderer(customItemProps) : /*#__PURE__*/React__namespace.createElement(Link$1, __assign({
9126
9191
  componentType: "a",
9127
9192
  className: ItemClass
9128
9193
  }, baseProps), /*#__PURE__*/React__namespace.createElement("div", {
@@ -9137,7 +9202,7 @@
9137
9202
  labelColor: itemColor
9138
9203
  })), expanded && renderSubMenu());
9139
9204
  };
9140
- MenuItem.defaultProps = {
9205
+ MenuItem$1.defaultProps = {
9141
9206
  isActive: false
9142
9207
  };
9143
9208
 
@@ -9241,7 +9306,7 @@
9241
9306
  }, menu.group)), showTooltip ? /*#__PURE__*/React__namespace.createElement(Tooltip, {
9242
9307
  tooltip: menu.label,
9243
9308
  position: "right"
9244
- }, /*#__PURE__*/React__namespace.createElement(MenuItem, {
9309
+ }, /*#__PURE__*/React__namespace.createElement(MenuItem$1, {
9245
9310
  "data-test": "DesignSystem-VerticalNav--Item",
9246
9311
  menu: menu,
9247
9312
  expanded: expanded,
@@ -9252,7 +9317,7 @@
9252
9317
  isChildrenVisible: isChildrenVisible,
9253
9318
  onClick: onClickHandler,
9254
9319
  customItemRenderer: customItemRenderer
9255
- })) : /*#__PURE__*/React__namespace.createElement(MenuItem, {
9320
+ })) : /*#__PURE__*/React__namespace.createElement(MenuItem$1, {
9256
9321
  "data-test": "DesignSystem-VerticalNav--Item",
9257
9322
  menu: menu,
9258
9323
  expanded: expanded,
@@ -9267,7 +9332,7 @@
9267
9332
  return showTooltip ? /*#__PURE__*/React__namespace.createElement(Tooltip, {
9268
9333
  tooltip: subMenu.label,
9269
9334
  position: "right"
9270
- }, /*#__PURE__*/React__namespace.createElement(MenuItem, {
9335
+ }, /*#__PURE__*/React__namespace.createElement(MenuItem$1, {
9271
9336
  key: id,
9272
9337
  menu: subMenu,
9273
9338
  expanded: expanded,
@@ -9277,7 +9342,7 @@
9277
9342
  onClick: onClickHandler,
9278
9343
  isActive: isMenuActive(menus, subMenu, active),
9279
9344
  customItemRenderer: customItemRenderer
9280
- })) : /*#__PURE__*/React__namespace.createElement(MenuItem, {
9345
+ })) : /*#__PURE__*/React__namespace.createElement(MenuItem$1, {
9281
9346
  key: id,
9282
9347
  menu: subMenu,
9283
9348
  expanded: expanded,
@@ -9400,11 +9465,32 @@
9400
9465
  left: 'left',
9401
9466
  right: 'right'
9402
9467
  };
9468
+ var detectTruncation = function detectTruncation(boundaryRef) {
9469
+ var element = boundaryRef === null || boundaryRef === void 0 ? void 0 : boundaryRef.current;
9470
+ var isTruncated = element ? element.scrollWidth > element.clientWidth : false;
9471
+ return isTruncated;
9472
+ };
9403
9473
  var Tooltip = function Tooltip(props) {
9404
9474
  var children = props.children,
9405
9475
  tooltip = props.tooltip,
9406
9476
  showTooltip = props.showTooltip,
9407
- rest = __rest(props, ["children", "tooltip", "showTooltip"]);
9477
+ showOnTruncation = props.showOnTruncation,
9478
+ elementRef = props.elementRef,
9479
+ rest = __rest(props, ["children", "tooltip", "showTooltip", "showOnTruncation", "elementRef"]);
9480
+
9481
+ var childrenRef = React__namespace.useRef(null);
9482
+
9483
+ var _a = React__namespace.useState(false),
9484
+ isTruncated = _a[0],
9485
+ setIsTruncated = _a[1];
9486
+
9487
+ React__namespace.useEffect(function () {
9488
+ var element = elementRef ? elementRef : childrenRef;
9489
+ setIsTruncated(detectTruncation(element));
9490
+ }, [childrenRef, elementRef]);
9491
+ var renderChildern = elementRef || ! /*#__PURE__*/React__namespace.isValidElement(children) ? children : /*#__PURE__*/React__namespace.cloneElement(children, {
9492
+ ref: childrenRef
9493
+ });
9408
9494
 
9409
9495
  if (!showTooltip) {
9410
9496
  return children;
@@ -9416,6 +9502,21 @@
9416
9502
  className: "Tooltip-text",
9417
9503
  appearance: "white"
9418
9504
  }, tooltip));
9505
+
9506
+ if (showOnTruncation) {
9507
+ return isTruncated ? /*#__PURE__*/React__namespace.createElement(Popover, __assign({
9508
+ trigger: renderChildern,
9509
+ on: 'hover',
9510
+ offset: 'medium'
9511
+ }, rest, {
9512
+ animationClass: {
9513
+ open: "Tooltip-animation-open-" + positionValue[props.position],
9514
+ close: "Tooltip-animation-close-" + positionValue[props.position]
9515
+ },
9516
+ className: "Tooltip-container"
9517
+ }), tooltipWrapper) : renderChildern;
9518
+ }
9519
+
9419
9520
  return /*#__PURE__*/React__namespace.createElement(Popover, __assign({
9420
9521
  trigger: children,
9421
9522
  on: 'hover',
@@ -9428,9 +9529,17 @@
9428
9529
  className: "Tooltip-container"
9429
9530
  }), tooltipWrapper);
9430
9531
  };
9532
+
9533
+ Tooltip.useAutoTooltip = function () {
9534
+ return {
9535
+ detectTruncation: detectTruncation
9536
+ };
9537
+ };
9538
+
9431
9539
  Tooltip.defaultProps = Object.assign({}, filterProps(Popover.defaultProps, tooltipPropsList), {
9432
9540
  hoverable: false,
9433
- showTooltip: true
9541
+ showTooltip: true,
9542
+ showOnTruncation: false
9434
9543
  });
9435
9544
 
9436
9545
  var Dialog = function Dialog(props) {
@@ -11808,7 +11917,7 @@
11808
11917
  daMonth = _c.month,
11809
11918
  daDate = _c.date;
11810
11919
 
11811
- return !date ? true : compareDate(date, 'less', dbYear, dbMonth, dbDate) || compareDate(date, 'more', daYear, daMonth, daDate);
11920
+ return !date ? false : compareDate(date, 'less', dbYear, dbMonth, dbDate) || compareDate(date, 'more', daYear, daMonth, daDate);
11812
11921
  };
11813
11922
 
11814
11923
  var startError = isError(startDate);
@@ -11997,8 +12106,14 @@
11997
12106
  var eValue = translateToString(outputFormat, endDate);
11998
12107
 
11999
12108
  if (!inRangeError && !startError && !endError) {
12000
- onRangeChange(startDate, endDate, sValue, eValue);
12001
- } else {
12109
+ if (this.props.allowReverseSelection) {
12110
+ if (startDate && endDate) {
12111
+ onRangeChange(startDate, endDate, sValue, eValue);
12112
+ }
12113
+ } else {
12114
+ onRangeChange(startDate, endDate, sValue, eValue);
12115
+ }
12116
+ } else if (!this.props.allowReverseSelection) {
12002
12117
  if (!startError) onRangeChange(startDate, undefined, sValue, eValue);else if (!endError) onRangeChange(undefined, endDate, sValue, eValue);else onRangeChange(undefined, undefined, sValue, eValue);
12003
12118
  }
12004
12119
  }
@@ -15075,6 +15190,7 @@
15075
15190
  var loading = props.loading,
15076
15191
  error = props.error,
15077
15192
  data = props.data,
15193
+ displayData = props.displayData,
15078
15194
  schema = props.schema,
15079
15195
  withSearch = props.withSearch,
15080
15196
  showHead = props.showHead,
@@ -15094,6 +15210,7 @@
15094
15210
  selectAll = props.selectAll,
15095
15211
  searchTerm = props.searchTerm,
15096
15212
  updateSearchTerm = props.updateSearchTerm,
15213
+ globalActionRenderer = props.globalActionRenderer,
15097
15214
  dynamicColumn = props.dynamicColumn,
15098
15215
  allowSelectAll = props.allowSelectAll,
15099
15216
  showFilters = props.showFilters,
@@ -15170,6 +15287,8 @@
15170
15287
  className: "Header"
15171
15288
  }, /*#__PURE__*/React__namespace.createElement("div", {
15172
15289
  className: "Header-content Header-content--top"
15290
+ }, /*#__PURE__*/React__namespace.createElement("div", {
15291
+ className: "d-flex w-100"
15173
15292
  }, withSearch && /*#__PURE__*/React__namespace.createElement("div", {
15174
15293
  className: "Header-search"
15175
15294
  }, /*#__PURE__*/React__namespace.createElement(Input, {
@@ -15212,7 +15331,9 @@
15212
15331
  });
15213
15332
  }))), children && /*#__PURE__*/React__namespace.createElement("div", {
15214
15333
  className: "Header-actions"
15215
- }, children)), /*#__PURE__*/React__namespace.createElement("div", {
15334
+ }, children)), globalActionRenderer && /*#__PURE__*/React__namespace.createElement("div", {
15335
+ className: "Header-global-actions"
15336
+ }, globalActionRenderer(displayData))), /*#__PURE__*/React__namespace.createElement("div", {
15216
15337
  className: "Header-content Header-content--bottom"
15217
15338
  }, /*#__PURE__*/React__namespace.createElement("div", {
15218
15339
  className: "Header-label"
@@ -15278,6 +15399,7 @@
15278
15399
  pageSize: 15,
15279
15400
  draggable: true,
15280
15401
  data: [],
15402
+ displayData: [],
15281
15403
  schema: [],
15282
15404
  loading: false,
15283
15405
  error: false,
@@ -15348,6 +15470,7 @@
15348
15470
 
15349
15471
  _this.setState({
15350
15472
  data: data,
15473
+ displayData: data,
15351
15474
  schema: schema,
15352
15475
  selectAll: getSelectAll(data, _this.props.selectDisabledRow),
15353
15476
  totalRecords: res.count,
@@ -15384,6 +15507,7 @@
15384
15507
  errorType: 'NO_RECORDS_FOUND',
15385
15508
  selectAll: getSelectAll(renderedData, _this.props.selectDisabledRow),
15386
15509
  schema: renderedSchema,
15510
+ displayData: sortedData,
15387
15511
  data: renderedData
15388
15512
  });
15389
15513
  }
@@ -15484,6 +15608,7 @@
15484
15608
  _this.state = {
15485
15609
  async: async,
15486
15610
  data: !async ? data : [],
15611
+ displayData: !async ? data : [],
15487
15612
  schema: !async ? schema : [],
15488
15613
  page: props.page,
15489
15614
  sortingList: props.sortingList,
@@ -15515,6 +15640,7 @@
15515
15640
  schema = _c === void 0 ? [] : _c;
15516
15641
  this.setState({
15517
15642
  data: data,
15643
+ displayData: data,
15518
15644
  schema: schema,
15519
15645
  error: this.props.error || false,
15520
15646
  errorType: this.props.errorType,
@@ -15532,6 +15658,7 @@
15532
15658
  schema = _f === void 0 ? [] : _f;
15533
15659
  this.setState({
15534
15660
  data: data,
15661
+ displayData: data,
15535
15662
  schema: schema,
15536
15663
  loading: this.props.loading || false,
15537
15664
  error: this.props.error || false,
@@ -17527,6 +17654,7 @@
17527
17654
  "data-test": "DesignSystem-Listbox-DragIcon"
17528
17655
  }), children);
17529
17656
  };
17657
+ ListBody.displayName = 'ListBody';
17530
17658
 
17531
17659
  var getAnimationClass = function getAnimationClass(uniqueKey, expanded) {
17532
17660
  if (expanded) return "nestedList-open-" + uniqueKey + " 240ms cubic-bezier(0, 0, 0.38, 0.9)";else if (!expanded) return "nestedList-close-" + uniqueKey + " 160ms cubic-bezier(0.2, 0, 1, 0.9)";
@@ -17612,7 +17740,8 @@
17612
17740
  id = props.id,
17613
17741
  onClick = props.onClick,
17614
17742
  value = props.value,
17615
- Tag = props.tagName,
17743
+ _b = props.tagName,
17744
+ Tag = _b === void 0 ? 'li' : _b,
17616
17745
  rest = __rest(props, ["nestedBody", "expanded", "id", "onClick", "value", "tagName"]);
17617
17746
 
17618
17747
  var contextProp = React__namespace.useContext(ListboxContext);
@@ -17626,20 +17755,19 @@
17626
17755
  var tagClass = classNames__default["default"]((_a = {}, _a['Listbox-item-wrapper'] = !draggable, _a));
17627
17756
  return /*#__PURE__*/React__namespace.createElement(Tag, __assign({
17628
17757
  id: id,
17629
- key: id,
17630
17758
  "data-test": "DesignSystem-Listbox-Item"
17631
17759
  }, rest, {
17632
17760
  onClick: onClickHandler,
17633
17761
  "data-value": value,
17634
17762
  className: tagClass
17635
- }, rest), /*#__PURE__*/React__namespace.createElement(ListBody, __assign({}, props)), nestedBody && /*#__PURE__*/React__namespace.createElement(NestedList, {
17763
+ }), /*#__PURE__*/React__namespace.createElement(ListBody, __assign({}, props)), nestedBody && /*#__PURE__*/React__namespace.createElement(NestedList, {
17636
17764
  expanded: expanded,
17637
17765
  nestedBody: nestedBody
17638
17766
  }), showDivider && /*#__PURE__*/React__namespace.createElement(Divider, {
17639
17767
  className: "Listbox-divider"
17640
17768
  }));
17641
17769
  };
17642
- ListboxItem.displayName = 'ListboxItem';
17770
+ ListboxItem.displayName = 'Listbox.Item';
17643
17771
  ListboxItem.defaultProps = {
17644
17772
  tagName: 'li'
17645
17773
  };
@@ -17941,7 +18069,7 @@
17941
18069
  }));
17942
18070
  };
17943
18071
 
17944
- var handleKeyDown$4 = function handleKeyDown(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem) {
18072
+ var handleKeyDown$6 = function handleKeyDown(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem) {
17945
18073
  switch (event.key) {
17946
18074
  case 'Enter':
17947
18075
  setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(true);
@@ -17959,7 +18087,7 @@
17959
18087
  break;
17960
18088
  }
17961
18089
  };
17962
- var focusListItem$2 = function focusListItem(position, setFocusedOption, listRef, withSearch) {
18090
+ var focusListItem$3 = function focusListItem(position, setFocusedOption, listRef, withSearch) {
17963
18091
  var _a, _b, _c, _d, _e;
17964
18092
 
17965
18093
  if (withSearch && position === 'down') {
@@ -18018,7 +18146,7 @@
18018
18146
  "data-test": "DesignSystem-AvatarSelection--TriggerAvatar",
18019
18147
  className: wrapperClassName,
18020
18148
  onKeyDown: function onKeyDown(event) {
18021
- return handleKeyDown$4(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem);
18149
+ return handleKeyDown$6(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem);
18022
18150
  },
18023
18151
  style: avatarStyle,
18024
18152
  tabIndex: 0,
@@ -18036,16 +18164,16 @@
18036
18164
  }, "+" + hiddenAvatarCount)));
18037
18165
  };
18038
18166
 
18039
- var handleKeyDown$3 = function handleKeyDown(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef) {
18167
+ var handleKeyDown$5 = function handleKeyDown(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef) {
18040
18168
  switch (event.key) {
18041
18169
  case 'ArrowUp':
18042
18170
  event.preventDefault();
18043
- navigateOptions$2('up', focusedOption, setFocusedOption, listRef, withSearch);
18171
+ navigateOptions$3('up', focusedOption, setFocusedOption, listRef, withSearch);
18044
18172
  break;
18045
18173
 
18046
18174
  case 'ArrowDown':
18047
18175
  event.preventDefault();
18048
- navigateOptions$2('down', focusedOption, setFocusedOption, listRef, withSearch);
18176
+ navigateOptions$3('down', focusedOption, setFocusedOption, listRef, withSearch);
18049
18177
  break;
18050
18178
 
18051
18179
  case 'Enter':
@@ -18068,7 +18196,7 @@
18068
18196
  (_a = focusedOption) === null || _a === void 0 ? void 0 : _a.click();
18069
18197
  };
18070
18198
 
18071
- var navigateOptions$2 = function navigateOptions(direction, focusedOption, setFocusedOption, listRef, withSearch) {
18199
+ var navigateOptions$3 = function navigateOptions(direction, focusedOption, setFocusedOption, listRef, withSearch) {
18072
18200
  var listItems = listRef === null || listRef === void 0 ? void 0 : listRef.current.querySelectorAll('[data-test="DesignSystem-Listbox-ItemWrapper"]');
18073
18201
  var index = Array.from(listItems).findIndex(function (item) {
18074
18202
  return item == focusedOption;
@@ -18186,7 +18314,7 @@
18186
18314
  };
18187
18315
 
18188
18316
  var onKeyDownHandler = function onKeyDownHandler(event) {
18189
- handleKeyDown$3(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef);
18317
+ handleKeyDown$5(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef);
18190
18318
  };
18191
18319
 
18192
18320
  return /*#__PURE__*/React__namespace.createElement(Listbox.Item, __assign({
@@ -18379,14 +18507,14 @@
18379
18507
  React__namespace.useEffect(function () {
18380
18508
  if (highlightFirstItem && openPopover) {
18381
18509
  requestAnimationFrame(function () {
18382
- return focusListItem$2('down', setFocusedOption, listRef, withSearch);
18510
+ return focusListItem$3('down', setFocusedOption, listRef, withSearch);
18383
18511
  });
18384
18512
  }
18385
18513
  }, [highlightFirstItem]);
18386
18514
  React__namespace.useEffect(function () {
18387
18515
  if (highlightLastItem && openPopover) {
18388
18516
  requestAnimationFrame(function () {
18389
- return focusListItem$2('up', setFocusedOption, listRef, withSearch);
18517
+ return focusListItem$3('up', setFocusedOption, listRef, withSearch);
18390
18518
  });
18391
18519
  }
18392
18520
  }, [highlightLastItem]);
@@ -18489,16 +18617,16 @@
18489
18617
 
18490
18618
  var ComboboxContext = /*#__PURE__*/React__namespace.createContext({});
18491
18619
 
18492
- var handleKeyDown$2 = function handleKeyDown(event, focusedOption, setFocusedOption, setOpenPopover, inputTriggerRef, setHighlightFirstItem, setHighlightLastItem, multiSelect, listRef) {
18620
+ var handleKeyDown$4 = function handleKeyDown(event, focusedOption, setFocusedOption, setOpenPopover, inputTriggerRef, setHighlightFirstItem, setHighlightLastItem, multiSelect, listRef) {
18493
18621
  switch (event.key) {
18494
18622
  case 'ArrowUp':
18495
18623
  event.preventDefault();
18496
- navigateOptions$1('up', focusedOption, setFocusedOption, listRef);
18624
+ navigateOptions$2('up', focusedOption, setFocusedOption, listRef);
18497
18625
  break;
18498
18626
 
18499
18627
  case 'ArrowDown':
18500
18628
  event.preventDefault();
18501
- navigateOptions$1('down', focusedOption, setFocusedOption, listRef);
18629
+ navigateOptions$2('down', focusedOption, setFocusedOption, listRef);
18502
18630
  break;
18503
18631
 
18504
18632
  case 'Enter':
@@ -18539,7 +18667,7 @@
18539
18667
  }
18540
18668
  };
18541
18669
 
18542
- var navigateOptions$1 = function navigateOptions(direction, focusedOption, setFocusedOption, listRef) {
18670
+ var navigateOptions$2 = function navigateOptions(direction, focusedOption, setFocusedOption, listRef) {
18543
18671
  var _a;
18544
18672
 
18545
18673
  var listItems = listRef.current.querySelectorAll('[data-test="DesignSystem-Listbox-ItemWrapper"]');
@@ -18590,7 +18718,7 @@
18590
18718
  };
18591
18719
 
18592
18720
  var onKeyDownHandler = function onKeyDownHandler(event) {
18593
- handleKeyDown$2(event, focusedOption, setFocusedOption, setOpenPopover, inputTriggerRef, setHighlightFirstItem, setHighlightLastItem, multiSelect, listRef);
18721
+ handleKeyDown$4(event, focusedOption, setFocusedOption, setOpenPopover, inputTriggerRef, setHighlightFirstItem, setHighlightLastItem, multiSelect, listRef);
18594
18722
  };
18595
18723
 
18596
18724
  return /*#__PURE__*/React__namespace.createElement(Listbox.Item, __assign({
@@ -18606,7 +18734,7 @@
18606
18734
  tagName: 'li'
18607
18735
  };
18608
18736
 
18609
- var handleKeyDown$1 = function handleKeyDown(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem) {
18737
+ var handleKeyDown$3 = function handleKeyDown(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem) {
18610
18738
  switch (event.key) {
18611
18739
  case 'ArrowUp':
18612
18740
  setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(true);
@@ -18624,7 +18752,7 @@
18624
18752
  break;
18625
18753
  }
18626
18754
  };
18627
- var focusListItem$1 = function focusListItem(position, setFocusedOption, listRef) {
18755
+ var focusListItem$2 = function focusListItem(position, setFocusedOption, listRef) {
18628
18756
  var _a, _b, _c;
18629
18757
 
18630
18758
  var listItems = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('[data-test="DesignSystem-Listbox-ItemWrapper"]');
@@ -18690,7 +18818,7 @@
18690
18818
  };
18691
18819
 
18692
18820
  var onKeyDownHandler = function onKeyDownHandler(event) {
18693
- handleKeyDown$1(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem);
18821
+ handleKeyDown$3(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem);
18694
18822
  };
18695
18823
 
18696
18824
  return /*#__PURE__*/React__namespace.createElement(Input, __assign({}, props, {
@@ -18946,7 +19074,7 @@
18946
19074
  };
18947
19075
 
18948
19076
  var onKeyDownHandler = function onKeyDownHandler(event) {
18949
- handleKeyDown$1(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem);
19077
+ handleKeyDown$3(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem);
18950
19078
  };
18951
19079
 
18952
19080
  return /*#__PURE__*/React__default["default"].createElement(MultiSelectTrigger, __assign({}, props, {
@@ -19089,14 +19217,14 @@
19089
19217
  React__namespace.useEffect(function () {
19090
19218
  if (highlightFirstItem && openPopover) {
19091
19219
  requestAnimationFrame(function () {
19092
- return focusListItem$1('down', setFocusedOption, listRef);
19220
+ return focusListItem$2('down', setFocusedOption, listRef);
19093
19221
  });
19094
19222
  }
19095
19223
  }, [highlightFirstItem]);
19096
19224
  React__namespace.useEffect(function () {
19097
19225
  if (highlightLastItem && openPopover) {
19098
19226
  requestAnimationFrame(function () {
19099
- return focusListItem$1('up', setFocusedOption, listRef);
19227
+ return focusListItem$2('up', setFocusedOption, listRef);
19100
19228
  });
19101
19229
  }
19102
19230
  }, [highlightLastItem]);
@@ -19293,7 +19421,7 @@
19293
19421
  break;
19294
19422
  }
19295
19423
  };
19296
- var focusListItem = function focusListItem(position, setFocusedOption, listRef) {
19424
+ var focusListItem$1 = function focusListItem(position, setFocusedOption, listRef) {
19297
19425
  var _a, _b, _c;
19298
19426
 
19299
19427
  var searchInput = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('[data-test="DesignSystem-Select--Input"]');
@@ -19312,16 +19440,16 @@
19312
19440
  });
19313
19441
  setFocusedOption && setFocusedOption(targetOption);
19314
19442
  };
19315
- var handleKeyDown = function handleKeyDown(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef) {
19443
+ var handleKeyDown$2 = function handleKeyDown(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef) {
19316
19444
  switch (event.key) {
19317
19445
  case 'ArrowUp':
19318
19446
  event.preventDefault();
19319
- navigateOptions('up', focusedOption, setFocusedOption, listRef, withSearch);
19447
+ navigateOptions$1('up', focusedOption, setFocusedOption, listRef, withSearch);
19320
19448
  break;
19321
19449
 
19322
19450
  case 'ArrowDown':
19323
19451
  event.preventDefault();
19324
- navigateOptions('down', focusedOption, setFocusedOption, listRef, withSearch);
19452
+ navigateOptions$1('down', focusedOption, setFocusedOption, listRef, withSearch);
19325
19453
  break;
19326
19454
 
19327
19455
  case 'Enter':
@@ -19347,7 +19475,7 @@
19347
19475
 
19348
19476
  (_a = focusedOption) === null || _a === void 0 ? void 0 : _a.click();
19349
19477
  };
19350
- var navigateOptions = function navigateOptions(direction, focusedOption, setFocusedOption, listRef, withSearch) {
19478
+ var navigateOptions$1 = function navigateOptions(direction, focusedOption, setFocusedOption, listRef, withSearch) {
19351
19479
  var listItems = listRef.current.querySelectorAll('[data-test="DesignSystem-Listbox-ItemWrapper"]');
19352
19480
  var index = Array.from(listItems).findIndex(function (item) {
19353
19481
  return item == focusedOption;
@@ -19443,7 +19571,7 @@
19443
19571
  var indeterminate = checkedState === 'indeterminate';
19444
19572
 
19445
19573
  var onKeyDownHandler = function onKeyDownHandler(event) {
19446
- handleKeyDown(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef);
19574
+ handleKeyDown$2(event, focusedOption, setFocusedOption, setHighlightFirstItem, setHighlightLastItem, listRef, withSearch, setOpenPopover, triggerRef);
19447
19575
  };
19448
19576
 
19449
19577
  return /*#__PURE__*/React__namespace.createElement(Listbox.Item, __assign({
@@ -19717,7 +19845,7 @@
19717
19845
  setFocusFirstItem: function setFocusFirstItem() {
19718
19846
  if (openPopover) {
19719
19847
  requestAnimationFrame(function () {
19720
- return focusListItem('down', setFocusedOption, listRef);
19848
+ return focusListItem$1('down', setFocusedOption, listRef);
19721
19849
  });
19722
19850
  setHighlightFirstItem(true);
19723
19851
  }
@@ -19725,7 +19853,7 @@
19725
19853
  setFocusLastItem: function setFocusLastItem() {
19726
19854
  if (openPopover) {
19727
19855
  requestAnimationFrame(function () {
19728
- return focusListItem('up', setFocusedOption, listRef);
19856
+ return focusListItem$1('up', setFocusedOption, listRef);
19729
19857
  });
19730
19858
  setHighlightLastItem(true);
19731
19859
  }
@@ -19741,14 +19869,14 @@
19741
19869
  React__namespace.useEffect(function () {
19742
19870
  if (highlightFirstItem && openPopover) {
19743
19871
  requestAnimationFrame(function () {
19744
- return focusListItem('down', setFocusedOption, listRef);
19872
+ return focusListItem$1('down', setFocusedOption, listRef);
19745
19873
  });
19746
19874
  }
19747
19875
  }, [highlightFirstItem]);
19748
19876
  React__namespace.useEffect(function () {
19749
19877
  if (highlightLastItem && openPopover) {
19750
19878
  requestAnimationFrame(function () {
19751
- return focusListItem('up', setFocusedOption, listRef);
19879
+ return focusListItem$1('up', setFocusedOption, listRef);
19752
19880
  });
19753
19881
  }
19754
19882
  }, [highlightLastItem]);
@@ -19833,7 +19961,459 @@
19833
19961
  Select.EmptyTemplate = SelectEmptyTemplate;
19834
19962
  Select.Footer = SelectFooter;
19835
19963
 
19836
- var version = "2.29.0";
19964
+ var MenuGroup = function MenuGroup(props) {
19965
+ var label = props.label,
19966
+ children = props.children,
19967
+ showDivider = props.showDivider,
19968
+ rest = __rest(props, ["label", "children", "showDivider"]);
19969
+
19970
+ if (label) {
19971
+ return /*#__PURE__*/React__default["default"].createElement("div", __assign({
19972
+ "data-test": "DesignSystem-Menu-Group",
19973
+ role: "group",
19974
+ className: "Menu-Group"
19975
+ }, rest), /*#__PURE__*/React__default["default"].createElement(Text, {
19976
+ "data-test": "DesignSystem-Menu-Group-Label",
19977
+ size: "small",
19978
+ weight: "medium",
19979
+ appearance: "subtle",
19980
+ className: "Menu-Group-Label"
19981
+ }, label), children);
19982
+ }
19983
+
19984
+ return /*#__PURE__*/React__default["default"].createElement("div", __assign({
19985
+ "data-test": "DesignSystem-Menu-Group",
19986
+ role: "group"
19987
+ }, rest), children, showDivider && /*#__PURE__*/React__default["default"].createElement(Divider, {
19988
+ className: "my-3"
19989
+ }));
19990
+ };
19991
+ MenuGroup.defaultProps = {
19992
+ showDivider: true
19993
+ };
19994
+
19995
+ var MenuContext = /*#__PURE__*/React__namespace.createContext({});
19996
+
19997
+ var handleKeyDown$1 = function handleKeyDown(event, focusedOption, setFocusedOption, setOpenPopover, menuTriggerRef, listRef, subListRef, isSubMenuTrigger, triggerRef, menuID, triggerID, parentListRef) {
19998
+ var _a, _b, _c;
19999
+
20000
+ switch (event.key) {
20001
+ case 'ArrowUp':
20002
+ event.preventDefault();
20003
+ navigateOptions('up', focusedOption, setFocusedOption, listRef);
20004
+ break;
20005
+
20006
+ case 'ArrowDown':
20007
+ event.preventDefault();
20008
+ navigateOptions('down', focusedOption, setFocusedOption, listRef);
20009
+ break;
20010
+
20011
+ case 'Enter':
20012
+ (_a = focusedOption) === null || _a === void 0 ? void 0 : _a.click();
20013
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(false);
20014
+ break;
20015
+
20016
+ case 'Escape':
20017
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(false);
20018
+
20019
+ if (triggerRef && !isSubMenuTrigger) {
20020
+ (_b = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) === null || _b === void 0 ? void 0 : _b.focus();
20021
+ } else {
20022
+ (_c = menuTriggerRef === null || menuTriggerRef === void 0 ? void 0 : menuTriggerRef.current) === null || _c === void 0 ? void 0 : _c.focus();
20023
+ }
20024
+
20025
+ setFocusedOption === null || setFocusedOption === void 0 ? void 0 : setFocusedOption(undefined);
20026
+ break;
20027
+
20028
+ case 'Tab':
20029
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(false);
20030
+ break;
20031
+
20032
+ case 'ArrowRight':
20033
+ navigateSubMenu(isSubMenuTrigger, 'right', subListRef, menuID, triggerID, parentListRef);
20034
+ break;
20035
+
20036
+ case 'ArrowLeft':
20037
+ navigateSubMenu(isSubMenuTrigger, 'left', subListRef, menuID, triggerID, parentListRef);
20038
+ break;
20039
+ }
20040
+ };
20041
+
20042
+ var navigateOptions = function navigateOptions(direction, focusedOption, setFocusedOption, listRef) {
20043
+ var _a, _b;
20044
+
20045
+ var listItems = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('[data-test="DesignSystem-Listbox-ItemWrapper"]');
20046
+ var index = Array.from(listItems).findIndex(function (item) {
20047
+ return item == focusedOption;
20048
+ });
20049
+
20050
+ if (index === -1) {
20051
+ index = direction === 'up' ? listItems.length - 1 : 0;
20052
+ } else {
20053
+ index = direction === 'up' ? (index - 1 + listItems.length) % listItems.length : (index + 1) % listItems.length;
20054
+ }
20055
+
20056
+ var targetOption = listItems[index];
20057
+ targetOption.focus();
20058
+ setFocusedOption && setFocusedOption(targetOption);
20059
+ (_b = targetOption === null || targetOption === void 0 ? void 0 : targetOption.scrollIntoView) === null || _b === void 0 ? void 0 : _b.call(targetOption, {
20060
+ block: 'center'
20061
+ });
20062
+ };
20063
+
20064
+ var navigateSubMenu = function navigateSubMenu(isSubMenuTrigger, direction, subListRef, menuID, triggerID, parentListRef) {
20065
+ var _a, _b, _c, _d;
20066
+
20067
+ var element = document.querySelector("[data-name=\"" + menuID + "\"]");
20068
+ var menuPlacement = element === null || element === void 0 ? void 0 : element.getAttribute('data-placement');
20069
+
20070
+ if (isSubMenuTrigger) {
20071
+ if (direction === 'right' && (menuPlacement === null || menuPlacement === void 0 ? void 0 : menuPlacement.includes('right')) || direction === 'left' && (menuPlacement === null || menuPlacement === void 0 ? void 0 : menuPlacement.includes('left'))) {
20072
+ var listItems = (_a = subListRef === null || subListRef === void 0 ? void 0 : subListRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('[data-test="DesignSystem-Listbox-ItemWrapper"]');
20073
+ (listItems === null || listItems === void 0 ? void 0 : listItems[0]).focus();
20074
+ }
20075
+ } else if (direction === 'left' && (menuPlacement === null || menuPlacement === void 0 ? void 0 : menuPlacement.includes('right')) || direction === 'right' && (menuPlacement === null || menuPlacement === void 0 ? void 0 : menuPlacement.includes('left'))) {
20076
+ var triggerElement = (_c = (_b = parentListRef === null || parentListRef === void 0 ? void 0 : parentListRef.current) === null || _b === void 0 ? void 0 : _b.querySelector("#" + triggerID)) === null || _c === void 0 ? void 0 : _c.firstChild;
20077
+ (_d = triggerElement) === null || _d === void 0 ? void 0 : _d.focus();
20078
+ }
20079
+ };
20080
+
20081
+ var SubMenuContext = /*#__PURE__*/React__namespace.createContext({});
20082
+
20083
+ var MenuItem = function MenuItem(props) {
20084
+ var children = props.children,
20085
+ className = props.className,
20086
+ onClick = props.onClick,
20087
+ disabled = props.disabled,
20088
+ rest = __rest(props, ["children", "className", "onClick", "disabled"]);
20089
+
20090
+ var contextProp = React__default["default"].useContext(MenuContext);
20091
+ var subMenuContextProp = React__default["default"].useContext(SubMenuContext);
20092
+ var isSubMenuTrigger = false;
20093
+ var subListRef = null;
20094
+ var triggerRef = subMenuContextProp.triggerRef,
20095
+ menuID = subMenuContextProp.menuID,
20096
+ setParentOpen = subMenuContextProp.setParentOpen,
20097
+ triggerID = subMenuContextProp.triggerID,
20098
+ parentListRef = subMenuContextProp.parentListRef;
20099
+ var setOpenPopover = contextProp.setOpenPopover,
20100
+ focusedOption = contextProp.focusedOption,
20101
+ setFocusedOption = contextProp.setFocusedOption,
20102
+ menuTriggerRef = contextProp.menuTriggerRef,
20103
+ listRef = contextProp.listRef;
20104
+ var MenuItemClassName = classNames__default["default"]({
20105
+ 'Menu-Item': true
20106
+ }, className);
20107
+ React__default["default"].useEffect(function () {
20108
+ var _a, _b;
20109
+
20110
+ var handlePopoverOpen = function handlePopoverOpen() {
20111
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(true);
20112
+ };
20113
+
20114
+ var handlePopoverClose = function handlePopoverClose() {
20115
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(false);
20116
+ };
20117
+
20118
+ var triggerElement = (_b = (_a = parentListRef === null || parentListRef === void 0 ? void 0 : parentListRef.current) === null || _a === void 0 ? void 0 : _a.querySelector("#" + triggerID)) === null || _b === void 0 ? void 0 : _b.firstChild;
20119
+ triggerElement === null || triggerElement === void 0 ? void 0 : triggerElement.addEventListener('focus', handlePopoverOpen);
20120
+ triggerElement === null || triggerElement === void 0 ? void 0 : triggerElement.addEventListener('blur', handlePopoverClose);
20121
+ return function () {
20122
+ triggerElement === null || triggerElement === void 0 ? void 0 : triggerElement.removeEventListener('focus', handlePopoverOpen);
20123
+ triggerElement === null || triggerElement === void 0 ? void 0 : triggerElement.removeEventListener('blur', handlePopoverClose);
20124
+ };
20125
+ }, [triggerID]);
20126
+
20127
+ var onFocusHandler = function onFocusHandler(event) {
20128
+ setFocusedOption === null || setFocusedOption === void 0 ? void 0 : setFocusedOption(event.target);
20129
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(true);
20130
+ };
20131
+
20132
+ var onKeyDownHandler = function onKeyDownHandler(event) {
20133
+ handleKeyDown$1(event, focusedOption, setFocusedOption, setOpenPopover, menuTriggerRef, listRef, subListRef, isSubMenuTrigger, triggerRef, menuID, triggerID, parentListRef);
20134
+ };
20135
+
20136
+ var onClickHandler = function onClickHandler(event) {
20137
+ if (disabled) {
20138
+ return;
20139
+ }
20140
+
20141
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(false);
20142
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
20143
+ setParentOpen === null || setParentOpen === void 0 ? void 0 : setParentOpen(false);
20144
+ };
20145
+
20146
+ return /*#__PURE__*/React__default["default"].createElement(Listbox.Item, __assign({
20147
+ "data-test": "DesignSystem-Menu-ListItem",
20148
+ className: MenuItemClassName,
20149
+ tabIndex: -1,
20150
+ onKeyDown: onKeyDownHandler,
20151
+ onFocus: onFocusHandler,
20152
+ onClick: onClickHandler,
20153
+ disabled: disabled,
20154
+ role: "menuitem",
20155
+ "aria-disabled": disabled
20156
+ }, rest), children);
20157
+ };
20158
+ MenuItem.displayName = 'MenuItem';
20159
+ MenuItem.defaultProps = {
20160
+ tagName: 'a'
20161
+ };
20162
+
20163
+ var MenuList = function MenuList(props) {
20164
+ var children = props.children,
20165
+ rest = __rest(props, ["children"]);
20166
+
20167
+ return /*#__PURE__*/React__default["default"].createElement(Listbox, __assign({
20168
+ "data-test": "DesignSystem-Menu-List"
20169
+ }, rest), children);
20170
+ };
20171
+ MenuList.defaultProps = {
20172
+ type: 'option',
20173
+ showDivider: false,
20174
+ tagName: 'nav',
20175
+ size: 'compressed'
20176
+ };
20177
+
20178
+ var handleKeyDown = function handleKeyDown(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem) {
20179
+ switch (event.key) {
20180
+ case 'ArrowUp':
20181
+ event.preventDefault();
20182
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(true);
20183
+ setHighlightLastItem === null || setHighlightLastItem === void 0 ? void 0 : setHighlightLastItem(true);
20184
+ break;
20185
+
20186
+ case 'ArrowDown':
20187
+ event.preventDefault();
20188
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(true);
20189
+ setHighlightFirstItem === null || setHighlightFirstItem === void 0 ? void 0 : setHighlightFirstItem(true);
20190
+ break;
20191
+
20192
+ case 'Escape':
20193
+ case 'Tab':
20194
+ setOpenPopover === null || setOpenPopover === void 0 ? void 0 : setOpenPopover(false);
20195
+ break;
20196
+ }
20197
+ };
20198
+ var focusListItem = function focusListItem(position, setFocusedOption, listRef) {
20199
+ var _a, _b, _c;
20200
+
20201
+ var listItems = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('[data-test="DesignSystem-Listbox-ItemWrapper"]');
20202
+ var targetOption;
20203
+
20204
+ if (position === 'down') {
20205
+ targetOption = listItems === null || listItems === void 0 ? void 0 : listItems[0];
20206
+ } else {
20207
+ targetOption = listItems === null || listItems === void 0 ? void 0 : listItems[listItems.length - 1];
20208
+ }
20209
+
20210
+ (_b = targetOption) === null || _b === void 0 ? void 0 : _b.focus();
20211
+
20212
+ if (targetOption && typeof targetOption.scrollIntoView === 'function') {
20213
+ (_c = targetOption) === null || _c === void 0 ? void 0 : _c.scrollIntoView({
20214
+ block: 'end'
20215
+ });
20216
+ }
20217
+
20218
+ setFocusedOption && setFocusedOption(targetOption);
20219
+ };
20220
+
20221
+ var MenuTrigger = function MenuTrigger(props) {
20222
+ var className = props.className;
20223
+ var contextProp = React__default["default"].useContext(MenuContext);
20224
+ var openPopover = contextProp.openPopover,
20225
+ setOpenPopover = contextProp.setOpenPopover,
20226
+ setHighlightFirstItem = contextProp.setHighlightFirstItem,
20227
+ setHighlightLastItem = contextProp.setHighlightLastItem,
20228
+ menuTriggerRef = contextProp.menuTriggerRef;
20229
+ var triggerClassName = classNames__default["default"]({
20230
+ 'Menu-Trigger--active': openPopover
20231
+ }, className);
20232
+
20233
+ var onKeyDownHandler = function onKeyDownHandler(event) {
20234
+ handleKeyDown(event, setOpenPopover, setHighlightFirstItem, setHighlightLastItem);
20235
+ };
20236
+
20237
+ return /*#__PURE__*/React__default["default"].createElement(Button, __assign({
20238
+ "data-test": "DesignSystem-Menu-Trigger",
20239
+ icon: "more_horiz",
20240
+ ref: menuTriggerRef,
20241
+ "aria-label": "Open menu",
20242
+ "aria-haspopup": true,
20243
+ "aria-expanded": openPopover
20244
+ }, props, {
20245
+ className: triggerClassName,
20246
+ onKeyDown: onKeyDownHandler
20247
+ }));
20248
+ };
20249
+
20250
+ var SubMenu = function SubMenu(props) {
20251
+ var _a;
20252
+
20253
+ var children = props.children;
20254
+ var menuID = "DesignSystem-Menu--Popover-" + uidGenerator();
20255
+ var triggerID = "DesignSystem-Menu--Trigger-" + uidGenerator();
20256
+
20257
+ var _b = React__default["default"].Children.toArray(children),
20258
+ submenuTrigger = _b[0],
20259
+ submenuContent = _b[1];
20260
+
20261
+ var contextProp = React__default["default"].useContext(MenuContext);
20262
+ var subListRef = React__default["default"].useRef(null);
20263
+ var triggerRef = React__default["default"].useRef(null);
20264
+ var isSubMenuTrigger = true;
20265
+ var subMenuElement = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
20266
+ var setOpenPopover = contextProp.setOpenPopover,
20267
+ focusedOption = contextProp.focusedOption,
20268
+ setFocusedOption = contextProp.setFocusedOption,
20269
+ menuTriggerRef = contextProp.menuTriggerRef,
20270
+ listRef = contextProp.listRef;
20271
+
20272
+ var onKeyDownHandler = function onKeyDownHandler(event) {
20273
+ handleKeyDown$1(event, focusedOption, setFocusedOption, setOpenPopover, menuTriggerRef, listRef, subListRef, isSubMenuTrigger, triggerRef, menuID);
20274
+ };
20275
+
20276
+ var subMenuContextProp = {
20277
+ triggerRef: triggerRef,
20278
+ menuID: menuID,
20279
+ setParentOpen: setOpenPopover,
20280
+ parentListRef: listRef,
20281
+ triggerID: triggerID
20282
+ };
20283
+ var triggerElement = /*#__PURE__*/React__default["default"].cloneElement(submenuTrigger, __assign(__assign({}, (_a = submenuTrigger) === null || _a === void 0 ? void 0 : _a.props), {
20284
+ onKeyDown: onKeyDownHandler,
20285
+ ref: triggerRef,
20286
+ 'aria-haspopup': 'menu',
20287
+ 'aria-expanded': subListRef.current ? 'true' : 'false',
20288
+ 'aria-controls': menuID,
20289
+ id: triggerID
20290
+ }));
20291
+
20292
+ if ( /*#__PURE__*/React__default["default"].isValidElement(submenuContent)) {
20293
+ var _c = submenuContent === null || submenuContent === void 0 ? void 0 : submenuContent.props,
20294
+ on = _c.on,
20295
+ children_1 = _c.children;
20296
+
20297
+ subMenuElement = /*#__PURE__*/React__default["default"].cloneElement(submenuContent, __assign(__assign({}, submenuContent.props), {
20298
+ on: on || 'hover',
20299
+ offset: 'small',
20300
+ children: /*#__PURE__*/React__default["default"].createElement("div", {
20301
+ ref: subListRef
20302
+ }, children_1),
20303
+ trigger: triggerElement
20304
+ }));
20305
+ }
20306
+
20307
+ return /*#__PURE__*/React__default["default"].createElement(SubMenuContext.Provider, {
20308
+ value: subMenuContextProp
20309
+ }, subMenuElement);
20310
+ };
20311
+
20312
+ var Menu = function Menu(props) {
20313
+ var _a;
20314
+
20315
+ var children = props.children,
20316
+ width = props.width,
20317
+ minHeight = props.minHeight,
20318
+ maxHeight = props.maxHeight,
20319
+ className = props.className,
20320
+ open = props.open,
20321
+ rest = __rest(props, ["children", "width", "minHeight", "maxHeight", "className", "open"]);
20322
+
20323
+ var _b = React__default["default"].useState(open),
20324
+ openPopover = _b[0],
20325
+ setOpenPopover = _b[1];
20326
+
20327
+ var _c = React__default["default"].useState(false),
20328
+ highlightFirstItem = _c[0],
20329
+ setHighlightFirstItem = _c[1];
20330
+
20331
+ var _d = React__default["default"].useState(false),
20332
+ highlightLastItem = _d[0],
20333
+ setHighlightLastItem = _d[1];
20334
+
20335
+ var _e = React__default["default"].useState(),
20336
+ focusedOption = _e[0],
20337
+ setFocusedOption = _e[1];
20338
+
20339
+ var listRef = /*#__PURE__*/React__default["default"].createRef();
20340
+ var menuTriggerRef = React__default["default"].useRef(null);
20341
+ var subMenuContextProp = React__default["default"].useContext(SubMenuContext);
20342
+ var menuID = subMenuContextProp.menuID;
20343
+ var popoverClassName = classNames__default["default"]((_a = {}, _a['Menu'] = true, _a), className);
20344
+ React__default["default"].useEffect(function () {
20345
+ setOpenPopover(open);
20346
+ }, [open]);
20347
+ React__default["default"].useEffect(function () {
20348
+ if (highlightFirstItem && openPopover) {
20349
+ requestAnimationFrame(function () {
20350
+ return focusListItem('down', setFocusedOption, listRef);
20351
+ });
20352
+ }
20353
+ }, [highlightFirstItem]);
20354
+ React__default["default"].useEffect(function () {
20355
+ if (highlightLastItem && openPopover) {
20356
+ requestAnimationFrame(function () {
20357
+ return focusListItem('up', setFocusedOption, listRef);
20358
+ });
20359
+ }
20360
+ }, [highlightLastItem]);
20361
+ React__default["default"].useEffect(function () {
20362
+ if (!openPopover) {
20363
+ setHighlightFirstItem(false);
20364
+ setHighlightLastItem(false);
20365
+ }
20366
+ }, [openPopover]);
20367
+
20368
+ var onToggleHandler = function onToggleHandler(open) {
20369
+ setOpenPopover(open);
20370
+ };
20371
+
20372
+ var contextProp = {
20373
+ openPopover: openPopover,
20374
+ setOpenPopover: setOpenPopover,
20375
+ setHighlightFirstItem: setHighlightFirstItem,
20376
+ setHighlightLastItem: setHighlightLastItem,
20377
+ focusedOption: focusedOption,
20378
+ setFocusedOption: setFocusedOption,
20379
+ menuTriggerRef: menuTriggerRef,
20380
+ listRef: listRef
20381
+ };
20382
+ return /*#__PURE__*/React__default["default"].createElement(MenuContext.Provider, {
20383
+ value: contextProp
20384
+ }, /*#__PURE__*/React__default["default"].createElement(Popover, __assign({
20385
+ "data-test": "DesignSystem-Menu",
20386
+ name: menuID,
20387
+ offset: "medium"
20388
+ }, rest, {
20389
+ open: openPopover,
20390
+ customStyle: {
20391
+ width: width
20392
+ },
20393
+ onToggle: onToggleHandler
20394
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
20395
+ ref: listRef,
20396
+ role: "menu",
20397
+ "data-test": props['data-test'] || 'DesignSystem-Menu-Wrapper',
20398
+ className: popoverClassName,
20399
+ style: {
20400
+ maxHeight: maxHeight,
20401
+ minHeight: minHeight
20402
+ }
20403
+ }, children)));
20404
+ };
20405
+ Menu.Group = MenuGroup;
20406
+ Menu.Item = MenuItem;
20407
+ Menu.List = MenuList;
20408
+ Menu.Trigger = MenuTrigger;
20409
+ Menu.SubMenu = SubMenu;
20410
+ Menu.defaultProps = {
20411
+ width: 176,
20412
+ maxHeight: 256,
20413
+ position: 'bottom-start'
20414
+ };
20415
+
20416
+ var version = "2.30.1";
19837
20417
 
19838
20418
  exports.ActionCard = ActionCard;
19839
20419
  exports.Avatar = Avatar;
@@ -19888,6 +20468,7 @@
19888
20468
  exports.LinkButton = LinkButton;
19889
20469
  exports.List = List;
19890
20470
  exports.Listbox = Listbox;
20471
+ exports.Menu = Menu;
19891
20472
  exports.Message = Message;
19892
20473
  exports.MetaList = MetaList;
19893
20474
  exports.MetricInput = MetricInput;