@semcore/dropdown-menu 16.1.12 → 16.1.14-prerelease.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [16.1.14] - 2025-11-14
6
+
7
+ ### Changed
8
+
9
+ - Focus behavior if `Popper` already has a focus inside.
10
+
11
+ ## [16.1.13] - 2025-11-10
12
+
13
+ ### Fixed
14
+
15
+ - "scroll to element" animation for keyboard interactions.
16
+
5
17
  ## [16.1.12] - 2025-10-29
6
18
 
7
19
  ### Changed
@@ -20,6 +20,7 @@ var _core = require("@semcore/core");
20
20
  var _button = _interopRequireDefault(require("@semcore/button"));
21
21
  var _assignProps13 = require("@semcore/core/lib/utils/assignProps");
22
22
  var _findComponent = require("@semcore/core/lib/utils/findComponent");
23
+ var _isFocusInside = require("@semcore/core/lib/utils/focus-lock/isFocusInside");
23
24
  var _setFocus = require("@semcore/core/lib/utils/focus-lock/setFocus");
24
25
  var _ref31 = require("@semcore/core/lib/utils/ref");
25
26
  var _uniqueID = require("@semcore/core/lib/utils/uniqueID");
@@ -30,24 +31,24 @@ var _typography = require("@semcore/typography");
30
31
  var _react = _interopRequireDefault(require("react"));
31
32
  var _intergalacticDynamicLocales = require("./translations/__intergalactic-dynamic-locales");
32
33
  /*!__reshadow-styles__:"./style/dropdown-menu.shadow.css"*/
33
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1opgv_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1opgv_gg_ .___SBar_1opgv_gg_{z-index:3}.___SDropdownMenuList_1opgv_gg_ .___SShadowHorizontal_1opgv_gg_:after,.___SDropdownMenuList_1opgv_gg_ .___SShadowHorizontal_1opgv_gg_:before,.___SDropdownMenuList_1opgv_gg_ .___SShadowVertical_1opgv_gg_:after,.___SDropdownMenuList_1opgv_gg_ .___SShadowVertical_1opgv_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1opgv_gg_ .___SItemContent_1opgv_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1opgv_gg_.__nesting-trigger_1opgv_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1opgv_gg_,.___SItemContentText_1opgv_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1opgv_gg_:first-child,.___SItemContentText_1opgv_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1opgv_gg_:last-child,.___SItemContentText_1opgv_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1opgv_gg_,.___SDropdownMenuNesting_1opgv_gg_._size_l_1opgv_gg_,.___SDropdownMenuNesting_1opgv_gg_._size_m_1opgv_gg_{padding:0}.___SDropdownMenuNesting_1opgv_gg_.__highlighted_1opgv_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1opgv_gg_._size_l_1opgv_gg_,.___SDropdownNestingItem_1opgv_gg_._size_m_1opgv_gg_{padding-right:0}.___SDropdownNestingItem_1opgv_gg_ .___SDropdownMenuItemContainer_1opgv_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1opgv_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1opgv_gg_"),
34
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1tow4_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1tow4_gg_ .___SBar_1tow4_gg_{z-index:3}.___SDropdownMenuList_1tow4_gg_ .___SShadowHorizontal_1tow4_gg_:after,.___SDropdownMenuList_1tow4_gg_ .___SShadowHorizontal_1tow4_gg_:before,.___SDropdownMenuList_1tow4_gg_ .___SShadowVertical_1tow4_gg_:after,.___SDropdownMenuList_1tow4_gg_ .___SShadowVertical_1tow4_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1tow4_gg_ .___SItemContent_1tow4_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1tow4_gg_.__nesting-trigger_1tow4_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1tow4_gg_,.___SItemContentText_1tow4_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1tow4_gg_:first-child,.___SItemContentText_1tow4_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1tow4_gg_:last-child,.___SItemContentText_1tow4_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1tow4_gg_,.___SDropdownMenuNesting_1tow4_gg_._size_l_1tow4_gg_,.___SDropdownMenuNesting_1tow4_gg_._size_m_1tow4_gg_{padding:0}.___SDropdownMenuNesting_1tow4_gg_.__highlighted_1tow4_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1tow4_gg_._size_l_1tow4_gg_,.___SDropdownNestingItem_1tow4_gg_._size_m_1tow4_gg_{padding-right:0}.___SDropdownNestingItem_1tow4_gg_ .___SDropdownMenuItemContainer_1tow4_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1tow4_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1tow4_gg_"),
34
35
  /*__reshadow_css_end__*/
35
36
  {
36
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1opgv_gg_",
37
- "_nesting-trigger": "__nesting-trigger_1opgv_gg_",
38
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1opgv_gg_",
39
- "_size_l": "_size_l_1opgv_gg_",
40
- "_size_m": "_size_m_1opgv_gg_",
41
- "_highlighted": "__highlighted_1opgv_gg_",
42
- "__SDropdownNestingItem": "___SDropdownNestingItem_1opgv_gg_",
43
- "__SItemHint": "___SItemHint_1opgv_gg_",
44
- "__SDropdownMenuList": "___SDropdownMenuList_1opgv_gg_",
45
- "__SBar": "___SBar_1opgv_gg_",
46
- "__SShadowHorizontal": "___SShadowHorizontal_1opgv_gg_",
47
- "__SShadowVertical": "___SShadowVertical_1opgv_gg_",
48
- "__SItemContent": "___SItemContent_1opgv_gg_",
49
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1opgv_gg_",
50
- "__SItemContentText": "___SItemContentText_1opgv_gg_"
37
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1tow4_gg_",
38
+ "_nesting-trigger": "__nesting-trigger_1tow4_gg_",
39
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_1tow4_gg_",
40
+ "_size_l": "_size_l_1tow4_gg_",
41
+ "_size_m": "_size_m_1tow4_gg_",
42
+ "_highlighted": "__highlighted_1tow4_gg_",
43
+ "__SDropdownNestingItem": "___SDropdownNestingItem_1tow4_gg_",
44
+ "__SItemHint": "___SItemHint_1tow4_gg_",
45
+ "__SDropdownMenuList": "___SDropdownMenuList_1tow4_gg_",
46
+ "__SBar": "___SBar_1tow4_gg_",
47
+ "__SShadowHorizontal": "___SShadowHorizontal_1tow4_gg_",
48
+ "__SShadowVertical": "___SShadowVertical_1tow4_gg_",
49
+ "__SItemContent": "___SItemContent_1tow4_gg_",
50
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1tow4_gg_",
51
+ "__SItemContentText": "___SItemContentText_1tow4_gg_"
51
52
  });
52
53
  var ListBoxContextProvider = function ListBoxContextProvider(_ref22) {
53
54
  var children = _ref22.children;
@@ -77,18 +78,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
77
78
  visible: [null, function (visible) {
78
79
  if (visible === true) {
79
80
  setTimeout(function () {
80
- var _this2$menuRef$curren, _this2$menuRef$curren2;
81
- var options = (_this2$menuRef$curren = _this2.menuRef.current) === null || _this2$menuRef$curren === void 0 ? void 0 : _this2$menuRef$curren.querySelectorAll('[role="menuitemcheckbox"], [role="menuitemradio"]');
82
- var selected = (_this2$menuRef$curren2 = _this2.menuRef.current) === null || _this2$menuRef$curren2 === void 0 ? void 0 : _this2$menuRef$curren2.querySelector('[aria-checked="true"]');
83
- if (selected && options && _this2.asProps.itemsCount === undefined) {
84
- _this2.scrollToNode(selected, true);
85
- for (var i = 0; i < options.length; i++) {
86
- if (options[i] === selected) {
87
- _this2.handlers.highlightedIndex(i);
88
- break;
89
- }
90
- }
91
- }
81
+ _this2.focusAndScrollToSelected();
92
82
  // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)
93
83
  // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.
94
84
  }, 30);
@@ -96,6 +86,55 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
96
86
  }]
97
87
  });
98
88
  }
89
+ }, {
90
+ key: "menuElements",
91
+ get: function get() {
92
+ var menuElement = this.menuRef.current;
93
+ if (!menuElement) {
94
+ return {
95
+ selected: null,
96
+ options: null
97
+ };
98
+ }
99
+ var options = menuElement.querySelectorAll('[role="menuitemcheckbox"], [role="menuitemradio"]');
100
+ var selected = menuElement.querySelector('[aria-checked="true"]');
101
+ return {
102
+ selected: selected,
103
+ options: options
104
+ };
105
+ }
106
+ }, {
107
+ key: "focusAndScrollToSelected",
108
+ value: function focusAndScrollToSelected() {
109
+ var _this3 = this;
110
+ var _this$menuElements = this.menuElements,
111
+ selected = _this$menuElements.selected,
112
+ options = _this$menuElements.options;
113
+ var isFocusAlreadyInPopper = (0, _isFocusInside.isFocusInside)(this.popperRef.current);
114
+ if (!selected || !options || this.asProps.itemsCount !== undefined || isFocusAlreadyInPopper) return;
115
+ this.scrollToNodeAsync(selected, true).then(function () {
116
+ if (_this3.asProps.visible) {
117
+ selected.focus({
118
+ preventScroll: true
119
+ });
120
+ }
121
+ });
122
+ var selectedIndex = Array.from(options).indexOf(selected);
123
+ if (selectedIndex !== -1) {
124
+ this.handlers.highlightedIndex(selectedIndex);
125
+ }
126
+ }
127
+ }, {
128
+ key: "afterOpenPopper",
129
+ value: function afterOpenPopper() {
130
+ var _this$menuElements2 = this.menuElements,
131
+ selected = _this$menuElements2.selected,
132
+ options = _this$menuElements2.options;
133
+
134
+ // this case is handled slightly differently on line 63.
135
+ if (selected && options && this.asProps.itemsCount === undefined) return;
136
+ (0, _superPropGet2["default"])(DropdownMenuRoot, "afterOpenPopper", this, 3)([]);
137
+ }
99
138
  }, {
100
139
  key: "itemRef",
101
140
  value: function itemRef(props, index, node) {
@@ -145,7 +184,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
145
184
  key: "getItemProps",
146
185
  value: function getItemProps(props, index) {
147
186
  var _props$index,
148
- _this3 = this;
187
+ _this4 = this;
149
188
  var _this$asProps2 = this.asProps,
150
189
  highlightedIndex = _this$asProps2.highlightedIndex,
151
190
  visible = _this$asProps2.visible;
@@ -154,7 +193,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
154
193
  var itemProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _superPropGet2["default"])(DropdownMenuRoot, "getItemProps", this, 3)([props, realIndex])), {}, {
155
194
  tabIndex: isHighlighted && visible ? 0 : -1,
156
195
  ref: function ref(node) {
157
- return _this3.itemRef(props, realIndex, node);
196
+ return _this4.itemRef(props, realIndex, node);
158
197
  },
159
198
  actionsRef: this.actionsRef
160
199
  });
@@ -170,7 +209,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
170
209
  }
171
210
  if ((0, _superPropGet2["default"])(DropdownMenuRoot, "childRole", this, 1) === 'menuitemradio') {
172
211
  itemProps.onClick = function () {
173
- _this3.handlers.visible(false);
212
+ _this4.handlers.visible(false);
174
213
  };
175
214
  }
176
215
  return itemProps;
@@ -178,39 +217,39 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
178
217
  }, {
179
218
  key: "handleKeyDownForMenu",
180
219
  value: function handleKeyDownForMenu(place) {
181
- var _this4 = this;
220
+ var _this5 = this;
182
221
  return function (e) {
183
- var _this4$menuRef$curren, _e$target$getAttribut;
184
- var _this4$asProps = _this4.asProps,
185
- visible = _this4$asProps.visible,
186
- placement = _this4$asProps.placement,
187
- inlineActions = _this4$asProps.inlineActions;
222
+ var _this5$menuRef$curren, _e$target$getAttribut;
223
+ var _this5$asProps = _this5.asProps,
224
+ visible = _this5$asProps.visible,
225
+ placement = _this5$asProps.placement,
226
+ inlineActions = _this5$asProps.inlineActions;
188
227
 
189
228
  // stop propagation keyboard events if it calls not on DropdownMenu.Items
190
- if (place === 'list' && !((_this4$menuRef$curren = _this4.menuRef.current) !== null && _this4$menuRef$curren !== void 0 && _this4$menuRef$curren.contains(e.target)) && !inlineActions) {
229
+ if (place === 'list' && !((_this5$menuRef$curren = _this5.menuRef.current) !== null && _this5$menuRef$curren !== void 0 && _this5$menuRef$curren.contains(e.target)) && !inlineActions) {
191
230
  e.stopPropagation();
192
231
  return false;
193
232
  }
194
233
  var show = e.key === 'ArrowRight' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('right')) || e.key === 'ArrowLeft' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('left')) || (e.key === 'Enter' || e.key === ' ') && !inlineActions;
195
234
  var hide = e.key === 'ArrowLeft' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('right')) || e.key === 'ArrowRight' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('left')) || e.key === 'Escape';
196
- var isMenuItem = (_e$target$getAttribut = e.target.getAttribute('role')) === null || _e$target$getAttribut === void 0 ? void 0 : _e$target$getAttribut.startsWith((0, _superPropGet2["default"])(DropdownMenuRoot, "childRole", _this4, 1));
235
+ var isMenuItem = (_e$target$getAttribut = e.target.getAttribute('role')) === null || _e$target$getAttribut === void 0 ? void 0 : _e$target$getAttribut.startsWith((0, _superPropGet2["default"])(DropdownMenuRoot, "childRole", _this5, 1));
197
236
  if (place === 'trigger' && show && isMenuItem) {
198
- _this4.handlers.visible(true);
199
- _this4.handlers.highlightedIndex(0);
237
+ _this5.handlers.visible(true);
238
+ _this5.handlers.highlightedIndex(0);
200
239
  setTimeout(function () {
201
- var _this4$itemRefs$highl;
202
- var highlightedIndex = _this4.asProps.highlightedIndex;
203
- (_this4$itemRefs$highl = _this4.itemRefs[highlightedIndex]) === null || _this4$itemRefs$highl === void 0 || _this4$itemRefs$highl.focus();
240
+ var _this5$itemRefs$highl;
241
+ var highlightedIndex = _this5.asProps.highlightedIndex;
242
+ (_this5$itemRefs$highl = _this5.itemRefs[highlightedIndex]) === null || _this5$itemRefs$highl === void 0 || _this5$itemRefs$highl.focus();
204
243
  }, 0);
205
244
  e.preventDefault();
206
245
  e.stopPropagation();
207
246
  return false;
208
247
  }
209
248
  if (place === 'list' && visible && hide && isMenuItem) {
210
- if (!inlineActions || inlineActions && (e.key === 'Escape' || _this4.asProps.highlightedIndex === 0)) {
211
- _this4.handlers.visible(false);
212
- if (_this4.triggerRef.current) {
213
- (0, _setFocus.setFocus)(_this4.triggerRef.current);
249
+ if (!inlineActions || inlineActions && (e.key === 'Escape' || _this5.asProps.highlightedIndex === 0)) {
250
+ _this5.handlers.visible(false);
251
+ if (_this5.triggerRef.current) {
252
+ (0, _setFocus.setFocus)(_this5.triggerRef.current);
214
253
  }
215
254
  e.preventDefault();
216
255
  e.stopPropagation();
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["_core","require","_button","_interopRequireDefault","_assignProps13","_findComponent","_setFocus","_ref31","_uniqueID","_dropdown","_interopRequireWildcard","_flexBox","_scrollArea","_typography","_react","_intergalacticDynamicLocales","style","sstyled","insert","ListBoxContextProvider","_ref22","children","createElement","hideScrollBarsFromScreenReadersContext","Provider","value","menuItemContext","React","createContext","DropdownMenuRoot","_AbstractDropdown","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","createRef","_inherits2","_createClass2","key","uncontrolledProps","_this2","_objectSpread2","_superPropGet2","visible","setTimeout","_this2$menuRef$curren","_this2$menuRef$curren2","options","menuRef","current","querySelectorAll","selected","querySelector","asProps","itemsCount","undefined","scrollToNode","i","handlers","highlightedIndex","itemRef","props","index","node","document","activeElement","getTriggerProps","_this$asProps","Children","uid","hasMenu","isAdvanceMode","DropdownMenu","Menu","displayName","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","getListProps","onKeyDown","handleArrowKeyDown","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemProps","_props$index","_this3","_this$asProps2","realIndex","isHighlighted","itemProps","tabIndex","tag","ButtonComponent","_props$use","_props$theme","_props$size","use","theme","size","innerOutline","onClick","place","_this4","e","_this4$menuRef$curren","_e$target$getAttribut","_this4$asProps","placement","inlineActions","contains","target","stopPropagation","show","startsWith","hide","isMenuItem","getAttribute","_this4$itemRefs$highl","itemRefs","focus","preventDefault","triggerRef","setFocus","render","_ref","_this$asProps3","selectedIndex","interaction","timeout","selectedIndexContext","Dropdown","assignProps","AbstractDropdown","Object","values","enhance","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","localizedMessages","locale","trigger","popper","List","_ref23","_ref2","arguments[0]","_ref13","styles","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","cn","Container","Actions","_ref24","_ref3","_ref14","SDropdownMenuActions","Flex","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends2","role","Item","_ref25","_ref5","_ref15","id","disabled","forwardRef","ariaChecked","SDropdownMenuItemContainer","useRef","_React$useState","useState","_React$useState2","_slicedToArray2","highlighted","setHighlighted","menuItemContextValue","contentId","forkRef","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","useUID","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","lastInteraction","isKeyboard","Addon","_ref6","_ref16","SDropdownMenuItemAddon","Box","Trigger","_ref7","ItemContent","_ref26","_ref8","_ref17","SItemContent","menuItemCtxValue","useContext","subMenu","_React$useState3","Set","_React$useState4","describedby","setDescribedby","element","parent","parentElement","prev","add","_toConsumableArray2","join","ItemContentText","_ref27","_ref9","_ref18","SItemContentText","Text","ItemHint","_ref28","_ref0","_ref19","SItemHint","_React$useContext","_ref1","_ref20","Title","_ref10","_ref21","Nesting","_ref29","_ref11","NestingTrigger","_ref30","_ref12","createComponent","ItemTitle","Group","_default","exports"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import ButtonComponent from '@semcore/button';\nimport { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport Dropdown, { AbstractDropdown, selectedIndexContext, enhance } from '@semcore/dropdown';\nimport { Flex, Box } from '@semcore/flex-box';\nimport ScrollAreaComponent, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nconst menuItemContext = React.createContext({});\n\nclass DropdownMenuRoot extends AbstractDropdown {\n static displayName = 'DropdownMenu';\n static style = style;\n static enhance = Object.values(enhance);\n\n static defaultProps = {\n size: 'm',\n defaultVisible: false,\n defaultHighlightedIndex: 0,\n defaultSelectedIndex: 0,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n inlineActions: false,\n placement: 'bottom-start',\n timeout: 0,\n };\n\n static nestedMenuInteraction = {\n trigger: [\n ['onClick', 'onMouseEnter'],\n ['onClick', 'onMouseLeave'],\n ],\n popper: [['onMouseEnter'], ['onMouseLeave']],\n };\n\n actionsRef = React.createRef();\n role = 'menu';\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n setTimeout(() => {\n const options = this.menuRef.current?.querySelectorAll(\n '[role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]',\n );\n const selected = this.menuRef.current?.querySelector('[aria-checked=\"true\"]');\n\n if (selected && options && this.asProps.itemsCount === undefined) {\n this.scrollToNode(selected, true);\n\n for (let i = 0; i < options.length; i++) {\n if (options[i] === selected) {\n this.handlers.highlightedIndex(i);\n break;\n }\n }\n }\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n };\n }\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n if (node === document.activeElement) {\n super.scrollToNode(node);\n }\n }\n\n getTriggerProps() {\n const { Children, uid, visible } = this.asProps;\n const hasMenu = isAdvanceMode(Children, [DropdownMenu.Menu.displayName]);\n const ariaControls = hasMenu ? `igc-${uid}-list` : `igc-${uid}-popper`;\n\n return {\n ...super.getTriggerProps(),\n 'onKeyDown': callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleOpenKeyDown.bind(this),\n this.handleKeyDownForMenu('trigger'),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': hasMenu ? 'true' : 'dialog',\n };\n }\n\n getListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n ),\n };\n }\n\n getActionsProps() {\n return {\n ...this.getListProps(),\n ref: this.actionsRef,\n onKeyDown: callAllEventHandlers(\n this.handlePreventTabOnActions.bind(this),\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getItemProps(props, index) {\n const { highlightedIndex, visible } = this.asProps;\n const realIndex = props.index ?? index;\n const isHighlighted = realIndex === highlightedIndex;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: isHighlighted && visible ? 0 : -1,\n ref: (node) => this.itemRef(props, realIndex, node),\n actionsRef: this.actionsRef,\n };\n\n if (props.tag === ButtonComponent) {\n itemProps.use = props.use ?? 'tertiary';\n itemProps.theme = props.theme ?? 'muted';\n itemProps.size = props.size ?? 's';\n itemProps.innerOutline = false;\n }\n\n if (props.selected) {\n itemProps['aria-checked'] = true;\n }\n\n if (super.childRole === 'menuitemradio') {\n itemProps.onClick = () => {\n this.handlers.visible(false);\n };\n }\n\n return itemProps;\n }\n\n handleKeyDownForMenu(place) {\n return (e) => {\n const { visible, placement, inlineActions } = this.asProps;\n\n // stop propagation keyboard events if it calls not on DropdownMenu.Items\n if (place === 'list' && !this.menuRef.current?.contains(e.target) && !inlineActions) {\n e.stopPropagation();\n return false;\n }\n\n const show =\n (e.key === 'ArrowRight' && placement?.startsWith('right')) ||\n (e.key === 'ArrowLeft' && placement?.startsWith('left')) ||\n ((e.key === 'Enter' || e.key === ' ') && !inlineActions);\n const hide =\n (e.key === 'ArrowLeft' && placement?.startsWith('right')) ||\n (e.key === 'ArrowRight' && placement?.startsWith('left')) ||\n e.key === 'Escape';\n const isMenuItem = e.target.getAttribute('role')?.startsWith(super.childRole);\n\n if (place === 'trigger' && show && isMenuItem) {\n this.handlers.visible(true);\n this.handlers.highlightedIndex(0);\n setTimeout(() => {\n const { highlightedIndex } = this.asProps;\n this.itemRefs[highlightedIndex]?.focus();\n }, 0);\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n if (place === 'list' && visible && hide && isMenuItem) {\n if (\n !inlineActions ||\n (inlineActions && (e.key === 'Escape' || this.asProps.highlightedIndex === 0))\n ) {\n this.handlers.visible(false);\n if (this.triggerRef.current) {\n setFocus(this.triggerRef.current);\n }\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n };\n }\n\n handlePreventTabOnActions(e) {\n if (e.key === 'Tab') {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n }\n\n render() {\n const { Children, selectedIndex, interaction, timeout } = this.asProps;\n\n this.itemProps = [];\n\n return (\n <selectedIndexContext.Provider value={selectedIndex}>\n <Root\n render={Dropdown}\n timeout={timeout || (interaction === 'hover' ? [0, 100] : undefined)}\n >\n <Children />\n </Root>\n </selectedIndexContext.Provider>\n );\n }\n}\n\nfunction List({ styles, Children }) {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <ScrollAreaComponent.Container tabIndex={undefined}>\n <Children />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n}\nfunction Actions({ styles }) {\n const SDropdownMenuActions = Root;\n\n return sstyled(styles)(<SDropdownMenuActions render={Flex} />);\n}\n\nfunction Menu(props) {\n const {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n } = props;\n const popperProps = {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n };\n return (\n <ListBoxContextProvider>\n <DropdownMenu.Popper {...popperProps} role={null}>\n <Root render={DropdownMenu.List} />\n </DropdownMenu.Popper>\n </ListBoxContextProvider>\n );\n}\n\nfunction Item({\n id,\n styles,\n disabled,\n Children,\n forwardRef,\n role,\n tabIndex,\n actionsRef,\n 'aria-checked': ariaChecked,\n}) {\n const SDropdownMenuItemContainer = Root;\n const itemRef = React.useRef();\n\n const [highlighted, setHighlighted] = React.useState(false);\n\n const menuItemContextValue = {\n contentId: id,\n ref: forkRef(forwardRef, itemRef),\n role,\n tabIndex,\n ariaChecked,\n };\n const ariaDescribes = [];\n\n const hasSubMenu = isAdvanceMode(Children, [DropdownMenu.displayName], true);\n const hasHint = isAdvanceMode(Children, [DropdownMenu.Item.Hint.displayName], true);\n const advancedMode =\n isAdvanceMode(Children, [DropdownMenu.Item.Content.displayName], true) || hasSubMenu || hasHint;\n\n if (hasHint) {\n const hintId = `igc-${useUID()}-option-hint`;\n\n menuItemContextValue.hintId = hintId;\n ariaDescribes.push(hintId);\n }\n\n if (hasSubMenu) {\n menuItemContextValue.hasSubMenu = true;\n }\n\n menuItemContextValue.ariaDescribes = ariaDescribes;\n\n React.useEffect(() => {\n const onFocus = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(true);\n\n if (hasSubMenu) {\n e.stopPropagation();\n }\n }\n };\n const onBlur = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(false);\n\n if (actionsRef.current) {\n itemRef.current.tabIndex = -1;\n }\n }\n };\n\n document.addEventListener('focus', onFocus, { capture: true });\n document.addEventListener('blur', onBlur, { capture: true });\n\n return () => {\n document.removeEventListener('focus', onFocus, { capture: true });\n document.removeEventListener('blur', onBlur, { capture: true });\n };\n }, [itemRef.current]);\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : menuItemContextValue.ref}\n use:highlighted={!disabled && highlighted && lastInteraction.isKeyboard()}\n use:role={advancedMode ? undefined : role}\n use:id={advancedMode ? undefined : id}\n use:tabIndex={advancedMode ? undefined : tabIndex}\n use:aria-checked={advancedMode ? undefined : ariaChecked}\n >\n <Children />\n </SDropdownMenuItemContainer>\n </menuItemContext.Provider>,\n );\n}\n\nfunction Addon(props) {\n const SDropdownMenuItemAddon = Root;\n return sstyled(props.styles)(<SDropdownMenuItemAddon render={Box} />);\n}\n\nfunction Trigger() {\n return <Root render={Dropdown.Trigger} />;\n}\n\nfunction ItemContent({ styles }) {\n const SItemContent = Root;\n const ref = React.useRef();\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n let subMenu = undefined;\n\n if (menuItemCtxValue.hasSubMenu) {\n subMenu = 'true';\n }\n\n const [describedby, setDescribedby] = React.useState(new Set(menuItemCtxValue.ariaDescribes));\n\n React.useEffect(() => {\n const element = ref.current;\n const parent = element?.parentElement;\n\n if (\n parent.getAttribute('aria-haspopup') === 'true' &&\n parent.getAttribute('aria-describedby')\n ) {\n setDescribedby((prev) => {\n prev.add(parent.getAttribute('aria-describedby'));\n\n return new Set(prev);\n });\n }\n }, [menuItemCtxValue.ariaDescribes]);\n\n return sstyled(styles)(\n <SItemContent\n render={Flex}\n role={menuItemCtxValue.role}\n id={menuItemCtxValue.contentId}\n tabIndex={menuItemCtxValue.tabIndex}\n ref={forkRef(menuItemCtxValue.ref, ref)}\n use:aria-describedby={[...describedby].join(' ')}\n aria-haspopup={menuItemCtxValue.hasSubMenu ? 'true' : undefined}\n aria-expanded={subMenu}\n aria-checked={menuItemCtxValue.ariaChecked}\n alignItems='center'\n justifyContent={menuItemCtxValue.hasSubMenu ? 'space-between' : undefined}\n />,\n );\n}\n\nfunction ItemContentText({ styles }) {\n const SItemContentText = Root;\n return sstyled(styles)(<SItemContentText render={Text} />);\n}\n\nfunction ItemHint({ styles }) {\n const SItemHint = Root;\n const { hintId } = React.useContext(menuItemContext);\n\n return sstyled(styles)(<SItemHint render={Flex} id={hintId} aria-hidden='true' />);\n}\n\n/**\n * @deprecated Use Item hint\n */\nfunction Hint(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='hint' />,\n );\n}\n/**\n * @deprecated Use Group with title prop\n */\nfunction Title(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='title' />,\n );\n}\n\n/**\n * @deprecated\n */\nfunction Nesting({ forwardRef }) {\n return <Root render={DropdownMenu.Item} ref={forwardRef} />;\n}\n\n/**\n * @deprecated\n */\nfunction NestingTrigger({ forwardRef }) {\n return (\n <Root\n render={DropdownMenu.Item.Content}\n tag={DropdownMenu.Trigger}\n ref={forwardRef}\n use:role='menuitem'\n />\n );\n}\n\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\n /**\n * @deprecated. Use just Item. See examples on\n */\n Nesting: [Nesting, { Trigger: NestingTrigger, Addon }],\n ItemTitle: Title,\n ItemHint: Hint,\n Group: Dropdown.Group,\n },\n {\n parent: [Dropdown],\n },\n);\n\nDropdownMenu.selectedIndexContext = selectedIndexContext;\n\nexport default DropdownMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DropdownMenu.js","names":["_core","require","_button","_interopRequireDefault","_assignProps13","_findComponent","_isFocusInside","_setFocus","_ref31","_uniqueID","_dropdown","_interopRequireWildcard","_flexBox","_scrollArea","_typography","_react","_intergalacticDynamicLocales","style","sstyled","insert","ListBoxContextProvider","_ref22","children","createElement","hideScrollBarsFromScreenReadersContext","Provider","value","menuItemContext","React","createContext","DropdownMenuRoot","_AbstractDropdown","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","createRef","_inherits2","_createClass2","key","uncontrolledProps","_this2","_objectSpread2","_superPropGet2","visible","setTimeout","focusAndScrollToSelected","get","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","_this3","_this$menuElements","menuElements","isFocusAlreadyInPopper","isFocusInside","popperRef","asProps","itemsCount","undefined","scrollToNodeAsync","then","focus","preventScroll","selectedIndex","from","indexOf","handlers","highlightedIndex","afterOpenPopper","_this$menuElements2","itemRef","props","index","node","document","activeElement","getTriggerProps","_this$asProps","Children","uid","hasMenu","isAdvanceMode","DropdownMenu","Menu","displayName","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","getListProps","onKeyDown","handleArrowKeyDown","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemProps","_props$index","_this4","_this$asProps2","realIndex","isHighlighted","itemProps","tabIndex","tag","ButtonComponent","_props$use","_props$theme","_props$size","use","theme","size","innerOutline","onClick","place","_this5","e","_this5$menuRef$curren","_e$target$getAttribut","_this5$asProps","placement","inlineActions","contains","target","stopPropagation","show","startsWith","hide","isMenuItem","getAttribute","_this5$itemRefs$highl","itemRefs","preventDefault","triggerRef","setFocus","render","_ref","_this$asProps3","interaction","timeout","selectedIndexContext","Dropdown","assignProps","AbstractDropdown","Object","values","enhance","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","localizedMessages","locale","trigger","popper","List","_ref23","_ref2","arguments[0]","_ref13","styles","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","cn","Container","Actions","_ref24","_ref3","_ref14","SDropdownMenuActions","Flex","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends2","role","Item","_ref25","_ref5","_ref15","id","disabled","forwardRef","ariaChecked","SDropdownMenuItemContainer","useRef","_React$useState","useState","_React$useState2","_slicedToArray2","highlighted","setHighlighted","menuItemContextValue","contentId","forkRef","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","useUID","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","lastInteraction","isKeyboard","Addon","_ref6","_ref16","SDropdownMenuItemAddon","Box","Trigger","_ref7","ItemContent","_ref26","_ref8","_ref17","SItemContent","menuItemCtxValue","useContext","subMenu","_React$useState3","Set","_React$useState4","describedby","setDescribedby","element","parent","parentElement","prev","add","_toConsumableArray2","join","ItemContentText","_ref27","_ref9","_ref18","SItemContentText","Text","ItemHint","_ref28","_ref0","_ref19","SItemHint","_React$useContext","_ref1","_ref20","Title","_ref10","_ref21","Nesting","_ref29","_ref11","NestingTrigger","_ref30","_ref12","createComponent","ItemTitle","Group","_default","exports"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import ButtonComponent from '@semcore/button';\nimport { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';\nimport { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport Dropdown, { AbstractDropdown, selectedIndexContext, enhance } from '@semcore/dropdown';\nimport { Flex, Box } from '@semcore/flex-box';\nimport ScrollAreaComponent, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nconst menuItemContext = React.createContext({});\n\nclass DropdownMenuRoot extends AbstractDropdown {\n static displayName = 'DropdownMenu';\n static style = style;\n static enhance = Object.values(enhance);\n\n static defaultProps = {\n size: 'm',\n defaultVisible: false,\n defaultHighlightedIndex: 0,\n defaultSelectedIndex: 0,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n inlineActions: false,\n placement: 'bottom-start',\n timeout: 0,\n };\n\n static nestedMenuInteraction = {\n trigger: [\n ['onClick', 'onMouseEnter'],\n ['onClick', 'onMouseLeave'],\n ],\n popper: [['onMouseEnter'], ['onMouseLeave']],\n };\n\n actionsRef = React.createRef();\n role = 'menu';\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n setTimeout(() => {\n this.focusAndScrollToSelected();\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n };\n }\n\n get menuElements() {\n const menuElement = this.menuRef.current;\n\n if (!menuElement) {\n return { selected: null, options: null };\n }\n\n const options = menuElement.querySelectorAll(\n '[role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]',\n );\n const selected = menuElement.querySelector('[aria-checked=\"true\"]');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n const { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.asProps.itemsCount !== undefined || isFocusAlreadyInPopper) return;\n\n this.scrollToNodeAsync(selected, true).then(() => {\n if (this.asProps.visible) {\n selected.focus({ preventScroll: true });\n }\n });\n\n const selectedIndex = Array.from(options).indexOf(selected);\n\n if (selectedIndex !== -1) {\n this.handlers.highlightedIndex(selectedIndex);\n }\n }\n\n afterOpenPopper() {\n const { selected, options } = this.menuElements;\n\n // this case is handled slightly differently on line 63.\n if (selected && options && this.asProps.itemsCount === undefined) return;\n\n super.afterOpenPopper();\n }\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n if (node === document.activeElement) {\n super.scrollToNode(node);\n }\n }\n\n getTriggerProps() {\n const { Children, uid, visible } = this.asProps;\n const hasMenu = isAdvanceMode(Children, [DropdownMenu.Menu.displayName]);\n const ariaControls = hasMenu ? `igc-${uid}-list` : `igc-${uid}-popper`;\n\n return {\n ...super.getTriggerProps(),\n 'onKeyDown': callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleOpenKeyDown.bind(this),\n this.handleKeyDownForMenu('trigger'),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': hasMenu ? 'true' : 'dialog',\n };\n }\n\n getListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n ),\n };\n }\n\n getActionsProps() {\n return {\n ...this.getListProps(),\n ref: this.actionsRef,\n onKeyDown: callAllEventHandlers(\n this.handlePreventTabOnActions.bind(this),\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getItemProps(props, index) {\n const { highlightedIndex, visible } = this.asProps;\n const realIndex = props.index ?? index;\n const isHighlighted = realIndex === highlightedIndex;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: isHighlighted && visible ? 0 : -1,\n ref: (node) => this.itemRef(props, realIndex, node),\n actionsRef: this.actionsRef,\n };\n\n if (props.tag === ButtonComponent) {\n itemProps.use = props.use ?? 'tertiary';\n itemProps.theme = props.theme ?? 'muted';\n itemProps.size = props.size ?? 's';\n itemProps.innerOutline = false;\n }\n\n if (props.selected) {\n itemProps['aria-checked'] = true;\n }\n\n if (super.childRole === 'menuitemradio') {\n itemProps.onClick = () => {\n this.handlers.visible(false);\n };\n }\n\n return itemProps;\n }\n\n handleKeyDownForMenu(place) {\n return (e) => {\n const { visible, placement, inlineActions } = this.asProps;\n\n // stop propagation keyboard events if it calls not on DropdownMenu.Items\n if (place === 'list' && !this.menuRef.current?.contains(e.target) && !inlineActions) {\n e.stopPropagation();\n return false;\n }\n\n const show =\n (e.key === 'ArrowRight' && placement?.startsWith('right')) ||\n (e.key === 'ArrowLeft' && placement?.startsWith('left')) ||\n ((e.key === 'Enter' || e.key === ' ') && !inlineActions);\n const hide =\n (e.key === 'ArrowLeft' && placement?.startsWith('right')) ||\n (e.key === 'ArrowRight' && placement?.startsWith('left')) ||\n e.key === 'Escape';\n const isMenuItem = e.target.getAttribute('role')?.startsWith(super.childRole);\n\n if (place === 'trigger' && show && isMenuItem) {\n this.handlers.visible(true);\n this.handlers.highlightedIndex(0);\n setTimeout(() => {\n const { highlightedIndex } = this.asProps;\n this.itemRefs[highlightedIndex]?.focus();\n }, 0);\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n if (place === 'list' && visible && hide && isMenuItem) {\n if (\n !inlineActions ||\n (inlineActions && (e.key === 'Escape' || this.asProps.highlightedIndex === 0))\n ) {\n this.handlers.visible(false);\n if (this.triggerRef.current) {\n setFocus(this.triggerRef.current);\n }\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n };\n }\n\n handlePreventTabOnActions(e) {\n if (e.key === 'Tab') {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n }\n\n render() {\n const { Children, selectedIndex, interaction, timeout } = this.asProps;\n\n this.itemProps = [];\n\n return (\n <selectedIndexContext.Provider value={selectedIndex}>\n <Root\n render={Dropdown}\n timeout={timeout || (interaction === 'hover' ? [0, 100] : undefined)}\n >\n <Children />\n </Root>\n </selectedIndexContext.Provider>\n );\n }\n}\n\nfunction List({ styles, Children }) {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <ScrollAreaComponent.Container tabIndex={undefined}>\n <Children />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n}\nfunction Actions({ styles }) {\n const SDropdownMenuActions = Root;\n\n return sstyled(styles)(<SDropdownMenuActions render={Flex} />);\n}\n\nfunction Menu(props) {\n const {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n } = props;\n const popperProps = {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n };\n return (\n <ListBoxContextProvider>\n <DropdownMenu.Popper {...popperProps} role={null}>\n <Root render={DropdownMenu.List} />\n </DropdownMenu.Popper>\n </ListBoxContextProvider>\n );\n}\n\nfunction Item({\n id,\n styles,\n disabled,\n Children,\n forwardRef,\n role,\n tabIndex,\n actionsRef,\n 'aria-checked': ariaChecked,\n}) {\n const SDropdownMenuItemContainer = Root;\n const itemRef = React.useRef();\n\n const [highlighted, setHighlighted] = React.useState(false);\n\n const menuItemContextValue = {\n contentId: id,\n ref: forkRef(forwardRef, itemRef),\n role,\n tabIndex,\n ariaChecked,\n };\n const ariaDescribes = [];\n\n const hasSubMenu = isAdvanceMode(Children, [DropdownMenu.displayName], true);\n const hasHint = isAdvanceMode(Children, [DropdownMenu.Item.Hint.displayName], true);\n const advancedMode =\n isAdvanceMode(Children, [DropdownMenu.Item.Content.displayName], true) || hasSubMenu || hasHint;\n\n if (hasHint) {\n const hintId = `igc-${useUID()}-option-hint`;\n\n menuItemContextValue.hintId = hintId;\n ariaDescribes.push(hintId);\n }\n\n if (hasSubMenu) {\n menuItemContextValue.hasSubMenu = true;\n }\n\n menuItemContextValue.ariaDescribes = ariaDescribes;\n\n React.useEffect(() => {\n const onFocus = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(true);\n\n if (hasSubMenu) {\n e.stopPropagation();\n }\n }\n };\n const onBlur = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(false);\n\n if (actionsRef.current) {\n itemRef.current.tabIndex = -1;\n }\n }\n };\n\n document.addEventListener('focus', onFocus, { capture: true });\n document.addEventListener('blur', onBlur, { capture: true });\n\n return () => {\n document.removeEventListener('focus', onFocus, { capture: true });\n document.removeEventListener('blur', onBlur, { capture: true });\n };\n }, [itemRef.current]);\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : menuItemContextValue.ref}\n use:highlighted={!disabled && highlighted && lastInteraction.isKeyboard()}\n use:role={advancedMode ? undefined : role}\n use:id={advancedMode ? undefined : id}\n use:tabIndex={advancedMode ? undefined : tabIndex}\n use:aria-checked={advancedMode ? undefined : ariaChecked}\n >\n <Children />\n </SDropdownMenuItemContainer>\n </menuItemContext.Provider>,\n );\n}\n\nfunction Addon(props) {\n const SDropdownMenuItemAddon = Root;\n return sstyled(props.styles)(<SDropdownMenuItemAddon render={Box} />);\n}\n\nfunction Trigger() {\n return <Root render={Dropdown.Trigger} />;\n}\n\nfunction ItemContent({ styles }) {\n const SItemContent = Root;\n const ref = React.useRef();\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n let subMenu = undefined;\n\n if (menuItemCtxValue.hasSubMenu) {\n subMenu = 'true';\n }\n\n const [describedby, setDescribedby] = React.useState(new Set(menuItemCtxValue.ariaDescribes));\n\n React.useEffect(() => {\n const element = ref.current;\n const parent = element?.parentElement;\n\n if (\n parent.getAttribute('aria-haspopup') === 'true' &&\n parent.getAttribute('aria-describedby')\n ) {\n setDescribedby((prev) => {\n prev.add(parent.getAttribute('aria-describedby'));\n\n return new Set(prev);\n });\n }\n }, [menuItemCtxValue.ariaDescribes]);\n\n return sstyled(styles)(\n <SItemContent\n render={Flex}\n role={menuItemCtxValue.role}\n id={menuItemCtxValue.contentId}\n tabIndex={menuItemCtxValue.tabIndex}\n ref={forkRef(menuItemCtxValue.ref, ref)}\n use:aria-describedby={[...describedby].join(' ')}\n aria-haspopup={menuItemCtxValue.hasSubMenu ? 'true' : undefined}\n aria-expanded={subMenu}\n aria-checked={menuItemCtxValue.ariaChecked}\n alignItems='center'\n justifyContent={menuItemCtxValue.hasSubMenu ? 'space-between' : undefined}\n />,\n );\n}\n\nfunction ItemContentText({ styles }) {\n const SItemContentText = Root;\n return sstyled(styles)(<SItemContentText render={Text} />);\n}\n\nfunction ItemHint({ styles }) {\n const SItemHint = Root;\n const { hintId } = React.useContext(menuItemContext);\n\n return sstyled(styles)(<SItemHint render={Flex} id={hintId} aria-hidden='true' />);\n}\n\n/**\n * @deprecated Use Item hint\n */\nfunction Hint(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='hint' />,\n );\n}\n/**\n * @deprecated Use Group with title prop\n */\nfunction Title(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='title' />,\n );\n}\n\n/**\n * @deprecated\n */\nfunction Nesting({ forwardRef }) {\n return <Root render={DropdownMenu.Item} ref={forwardRef} />;\n}\n\n/**\n * @deprecated\n */\nfunction NestingTrigger({ forwardRef }) {\n return (\n <Root\n render={DropdownMenu.Item.Content}\n tag={DropdownMenu.Trigger}\n ref={forwardRef}\n use:role='menuitem'\n />\n );\n}\n\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\n /**\n * @deprecated. Use just Item. See examples on\n */\n Nesting: [Nesting, { Trigger: NestingTrigger, Addon }],\n ItemTitle: Title,\n ItemHint: Hint,\n Group: Dropdown.Group,\n },\n {\n parent: [Dropdown],\n },\n);\n\nDropdownMenu.selectedIndexContext = selectedIndexContext;\n\nexport default DropdownMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -27,6 +27,7 @@ import ButtonComponent from '@semcore/button';
27
27
  import { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';
28
28
  import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
29
29
  import { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';
30
+ import { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';
30
31
  import { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';
31
32
  import { forkRef } from '@semcore/core/lib/utils/ref';
32
33
  import { useUID } from '@semcore/core/lib/utils/uniqueID';
@@ -36,24 +37,24 @@ import ScrollAreaComponent, { hideScrollBarsFromScreenReadersContext } from '@se
36
37
  import { Text } from '@semcore/typography';
37
38
  import React from 'react';
38
39
  /*!__reshadow-styles__:"./style/dropdown-menu.shadow.css"*/
39
- var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1opgv_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1opgv_gg_ .___SBar_1opgv_gg_{z-index:3}.___SDropdownMenuList_1opgv_gg_ .___SShadowHorizontal_1opgv_gg_:after,.___SDropdownMenuList_1opgv_gg_ .___SShadowHorizontal_1opgv_gg_:before,.___SDropdownMenuList_1opgv_gg_ .___SShadowVertical_1opgv_gg_:after,.___SDropdownMenuList_1opgv_gg_ .___SShadowVertical_1opgv_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1opgv_gg_ .___SItemContent_1opgv_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1opgv_gg_.__nesting-trigger_1opgv_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1opgv_gg_,.___SItemContentText_1opgv_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1opgv_gg_:first-child,.___SItemContentText_1opgv_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1opgv_gg_:last-child,.___SItemContentText_1opgv_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1opgv_gg_,.___SDropdownMenuNesting_1opgv_gg_._size_l_1opgv_gg_,.___SDropdownMenuNesting_1opgv_gg_._size_m_1opgv_gg_{padding:0}.___SDropdownMenuNesting_1opgv_gg_.__highlighted_1opgv_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1opgv_gg_._size_l_1opgv_gg_,.___SDropdownNestingItem_1opgv_gg_._size_m_1opgv_gg_{padding-right:0}.___SDropdownNestingItem_1opgv_gg_ .___SDropdownMenuItemContainer_1opgv_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1opgv_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1opgv_gg_"),
40
+ var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1tow4_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1tow4_gg_ .___SBar_1tow4_gg_{z-index:3}.___SDropdownMenuList_1tow4_gg_ .___SShadowHorizontal_1tow4_gg_:after,.___SDropdownMenuList_1tow4_gg_ .___SShadowHorizontal_1tow4_gg_:before,.___SDropdownMenuList_1tow4_gg_ .___SShadowVertical_1tow4_gg_:after,.___SDropdownMenuList_1tow4_gg_ .___SShadowVertical_1tow4_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1tow4_gg_ .___SItemContent_1tow4_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1tow4_gg_.__nesting-trigger_1tow4_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1tow4_gg_,.___SItemContentText_1tow4_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1tow4_gg_:first-child,.___SItemContentText_1tow4_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1tow4_gg_:last-child,.___SItemContentText_1tow4_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1tow4_gg_,.___SDropdownMenuNesting_1tow4_gg_._size_l_1tow4_gg_,.___SDropdownMenuNesting_1tow4_gg_._size_m_1tow4_gg_{padding:0}.___SDropdownMenuNesting_1tow4_gg_.__highlighted_1tow4_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1tow4_gg_._size_l_1tow4_gg_,.___SDropdownNestingItem_1tow4_gg_._size_m_1tow4_gg_{padding-right:0}.___SDropdownNestingItem_1tow4_gg_ .___SDropdownMenuItemContainer_1tow4_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1tow4_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1tow4_gg_"),
40
41
  /*__reshadow_css_end__*/
41
42
  {
42
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1opgv_gg_",
43
- "_nesting-trigger": "__nesting-trigger_1opgv_gg_",
44
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1opgv_gg_",
45
- "_size_l": "_size_l_1opgv_gg_",
46
- "_size_m": "_size_m_1opgv_gg_",
47
- "_highlighted": "__highlighted_1opgv_gg_",
48
- "__SDropdownNestingItem": "___SDropdownNestingItem_1opgv_gg_",
49
- "__SItemHint": "___SItemHint_1opgv_gg_",
50
- "__SDropdownMenuList": "___SDropdownMenuList_1opgv_gg_",
51
- "__SBar": "___SBar_1opgv_gg_",
52
- "__SShadowHorizontal": "___SShadowHorizontal_1opgv_gg_",
53
- "__SShadowVertical": "___SShadowVertical_1opgv_gg_",
54
- "__SItemContent": "___SItemContent_1opgv_gg_",
55
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1opgv_gg_",
56
- "__SItemContentText": "___SItemContentText_1opgv_gg_"
43
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1tow4_gg_",
44
+ "_nesting-trigger": "__nesting-trigger_1tow4_gg_",
45
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_1tow4_gg_",
46
+ "_size_l": "_size_l_1tow4_gg_",
47
+ "_size_m": "_size_m_1tow4_gg_",
48
+ "_highlighted": "__highlighted_1tow4_gg_",
49
+ "__SDropdownNestingItem": "___SDropdownNestingItem_1tow4_gg_",
50
+ "__SItemHint": "___SItemHint_1tow4_gg_",
51
+ "__SDropdownMenuList": "___SDropdownMenuList_1tow4_gg_",
52
+ "__SBar": "___SBar_1tow4_gg_",
53
+ "__SShadowHorizontal": "___SShadowHorizontal_1tow4_gg_",
54
+ "__SShadowVertical": "___SShadowVertical_1tow4_gg_",
55
+ "__SItemContent": "___SItemContent_1tow4_gg_",
56
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1tow4_gg_",
57
+ "__SItemContentText": "___SItemContentText_1tow4_gg_"
57
58
  });
58
59
  import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
59
60
  var ListBoxContextProvider = function ListBoxContextProvider(_ref22) {
@@ -84,18 +85,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
84
85
  visible: [null, function (visible) {
85
86
  if (visible === true) {
86
87
  setTimeout(function () {
87
- var _this2$menuRef$curren, _this2$menuRef$curren2;
88
- var options = (_this2$menuRef$curren = _this2.menuRef.current) === null || _this2$menuRef$curren === void 0 ? void 0 : _this2$menuRef$curren.querySelectorAll('[role="menuitemcheckbox"], [role="menuitemradio"]');
89
- var selected = (_this2$menuRef$curren2 = _this2.menuRef.current) === null || _this2$menuRef$curren2 === void 0 ? void 0 : _this2$menuRef$curren2.querySelector('[aria-checked="true"]');
90
- if (selected && options && _this2.asProps.itemsCount === undefined) {
91
- _this2.scrollToNode(selected, true);
92
- for (var i = 0; i < options.length; i++) {
93
- if (options[i] === selected) {
94
- _this2.handlers.highlightedIndex(i);
95
- break;
96
- }
97
- }
98
- }
88
+ _this2.focusAndScrollToSelected();
99
89
  // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)
100
90
  // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.
101
91
  }, 30);
@@ -103,6 +93,55 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
103
93
  }]
104
94
  });
105
95
  }
96
+ }, {
97
+ key: "menuElements",
98
+ get: function get() {
99
+ var menuElement = this.menuRef.current;
100
+ if (!menuElement) {
101
+ return {
102
+ selected: null,
103
+ options: null
104
+ };
105
+ }
106
+ var options = menuElement.querySelectorAll('[role="menuitemcheckbox"], [role="menuitemradio"]');
107
+ var selected = menuElement.querySelector('[aria-checked="true"]');
108
+ return {
109
+ selected: selected,
110
+ options: options
111
+ };
112
+ }
113
+ }, {
114
+ key: "focusAndScrollToSelected",
115
+ value: function focusAndScrollToSelected() {
116
+ var _this3 = this;
117
+ var _this$menuElements = this.menuElements,
118
+ selected = _this$menuElements.selected,
119
+ options = _this$menuElements.options;
120
+ var isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);
121
+ if (!selected || !options || this.asProps.itemsCount !== undefined || isFocusAlreadyInPopper) return;
122
+ this.scrollToNodeAsync(selected, true).then(function () {
123
+ if (_this3.asProps.visible) {
124
+ selected.focus({
125
+ preventScroll: true
126
+ });
127
+ }
128
+ });
129
+ var selectedIndex = Array.from(options).indexOf(selected);
130
+ if (selectedIndex !== -1) {
131
+ this.handlers.highlightedIndex(selectedIndex);
132
+ }
133
+ }
134
+ }, {
135
+ key: "afterOpenPopper",
136
+ value: function afterOpenPopper() {
137
+ var _this$menuElements2 = this.menuElements,
138
+ selected = _this$menuElements2.selected,
139
+ options = _this$menuElements2.options;
140
+
141
+ // this case is handled slightly differently on line 63.
142
+ if (selected && options && this.asProps.itemsCount === undefined) return;
143
+ _superPropGet(DropdownMenuRoot, "afterOpenPopper", this, 3)([]);
144
+ }
106
145
  }, {
107
146
  key: "itemRef",
108
147
  value: function itemRef(props, index, node) {
@@ -152,7 +191,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
152
191
  key: "getItemProps",
153
192
  value: function getItemProps(props, index) {
154
193
  var _props$index,
155
- _this3 = this;
194
+ _this4 = this;
156
195
  var _this$asProps2 = this.asProps,
157
196
  highlightedIndex = _this$asProps2.highlightedIndex,
158
197
  visible = _this$asProps2.visible;
@@ -161,7 +200,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
161
200
  var itemProps = _objectSpread(_objectSpread({}, _superPropGet(DropdownMenuRoot, "getItemProps", this, 3)([props, realIndex])), {}, {
162
201
  tabIndex: isHighlighted && visible ? 0 : -1,
163
202
  ref: function ref(node) {
164
- return _this3.itemRef(props, realIndex, node);
203
+ return _this4.itemRef(props, realIndex, node);
165
204
  },
166
205
  actionsRef: this.actionsRef
167
206
  });
@@ -177,7 +216,7 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
177
216
  }
178
217
  if (_superPropGet(DropdownMenuRoot, "childRole", this, 1) === 'menuitemradio') {
179
218
  itemProps.onClick = function () {
180
- _this3.handlers.visible(false);
219
+ _this4.handlers.visible(false);
181
220
  };
182
221
  }
183
222
  return itemProps;
@@ -185,39 +224,39 @@ var DropdownMenuRoot = /*#__PURE__*/function (_AbstractDropdown) {
185
224
  }, {
186
225
  key: "handleKeyDownForMenu",
187
226
  value: function handleKeyDownForMenu(place) {
188
- var _this4 = this;
227
+ var _this5 = this;
189
228
  return function (e) {
190
- var _this4$menuRef$curren, _e$target$getAttribut;
191
- var _this4$asProps = _this4.asProps,
192
- visible = _this4$asProps.visible,
193
- placement = _this4$asProps.placement,
194
- inlineActions = _this4$asProps.inlineActions;
229
+ var _this5$menuRef$curren, _e$target$getAttribut;
230
+ var _this5$asProps = _this5.asProps,
231
+ visible = _this5$asProps.visible,
232
+ placement = _this5$asProps.placement,
233
+ inlineActions = _this5$asProps.inlineActions;
195
234
 
196
235
  // stop propagation keyboard events if it calls not on DropdownMenu.Items
197
- if (place === 'list' && !((_this4$menuRef$curren = _this4.menuRef.current) !== null && _this4$menuRef$curren !== void 0 && _this4$menuRef$curren.contains(e.target)) && !inlineActions) {
236
+ if (place === 'list' && !((_this5$menuRef$curren = _this5.menuRef.current) !== null && _this5$menuRef$curren !== void 0 && _this5$menuRef$curren.contains(e.target)) && !inlineActions) {
198
237
  e.stopPropagation();
199
238
  return false;
200
239
  }
201
240
  var show = e.key === 'ArrowRight' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('right')) || e.key === 'ArrowLeft' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('left')) || (e.key === 'Enter' || e.key === ' ') && !inlineActions;
202
241
  var hide = e.key === 'ArrowLeft' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('right')) || e.key === 'ArrowRight' && (placement === null || placement === void 0 ? void 0 : placement.startsWith('left')) || e.key === 'Escape';
203
- var isMenuItem = (_e$target$getAttribut = e.target.getAttribute('role')) === null || _e$target$getAttribut === void 0 ? void 0 : _e$target$getAttribut.startsWith(_superPropGet(DropdownMenuRoot, "childRole", _this4, 1));
242
+ var isMenuItem = (_e$target$getAttribut = e.target.getAttribute('role')) === null || _e$target$getAttribut === void 0 ? void 0 : _e$target$getAttribut.startsWith(_superPropGet(DropdownMenuRoot, "childRole", _this5, 1));
204
243
  if (place === 'trigger' && show && isMenuItem) {
205
- _this4.handlers.visible(true);
206
- _this4.handlers.highlightedIndex(0);
244
+ _this5.handlers.visible(true);
245
+ _this5.handlers.highlightedIndex(0);
207
246
  setTimeout(function () {
208
- var _this4$itemRefs$highl;
209
- var highlightedIndex = _this4.asProps.highlightedIndex;
210
- (_this4$itemRefs$highl = _this4.itemRefs[highlightedIndex]) === null || _this4$itemRefs$highl === void 0 || _this4$itemRefs$highl.focus();
247
+ var _this5$itemRefs$highl;
248
+ var highlightedIndex = _this5.asProps.highlightedIndex;
249
+ (_this5$itemRefs$highl = _this5.itemRefs[highlightedIndex]) === null || _this5$itemRefs$highl === void 0 || _this5$itemRefs$highl.focus();
211
250
  }, 0);
212
251
  e.preventDefault();
213
252
  e.stopPropagation();
214
253
  return false;
215
254
  }
216
255
  if (place === 'list' && visible && hide && isMenuItem) {
217
- if (!inlineActions || inlineActions && (e.key === 'Escape' || _this4.asProps.highlightedIndex === 0)) {
218
- _this4.handlers.visible(false);
219
- if (_this4.triggerRef.current) {
220
- setFocus(_this4.triggerRef.current);
256
+ if (!inlineActions || inlineActions && (e.key === 'Escape' || _this5.asProps.highlightedIndex === 0)) {
257
+ _this5.handlers.visible(false);
258
+ if (_this5.triggerRef.current) {
259
+ setFocus(_this5.triggerRef.current);
221
260
  }
222
261
  e.preventDefault();
223
262
  e.stopPropagation();
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["ButtonComponent","createComponent","sstyled","Root","lastInteraction","callAllEventHandlers","isAdvanceMode","setFocus","forkRef","useUID","Dropdown","AbstractDropdown","selectedIndexContext","enhance","Flex","Box","ScrollAreaComponent","hideScrollBarsFromScreenReadersContext","Text","React","style","_sstyled","insert","localizedMessages","ListBoxContextProvider","_ref22","children","createElement","Provider","value","menuItemContext","createContext","DropdownMenuRoot","_AbstractDropdown","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","createRef","_inherits","_createClass","key","uncontrolledProps","_this2","_objectSpread","_superPropGet","visible","setTimeout","_this2$menuRef$curren","_this2$menuRef$curren2","options","menuRef","current","querySelectorAll","selected","querySelector","asProps","itemsCount","undefined","scrollToNode","i","handlers","highlightedIndex","itemRef","props","index","node","document","activeElement","getTriggerProps","_this$asProps","Children","uid","hasMenu","DropdownMenu","Menu","displayName","ariaControls","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","getListProps","onKeyDown","handleArrowKeyDown","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemProps","_props$index","_this3","_this$asProps2","realIndex","isHighlighted","itemProps","tabIndex","tag","_props$use","_props$theme","_props$size","use","theme","size","innerOutline","onClick","place","_this4","e","_this4$menuRef$curren","_e$target$getAttribut","_this4$asProps","placement","inlineActions","contains","target","stopPropagation","show","startsWith","hide","isMenuItem","getAttribute","_this4$itemRefs$highl","itemRefs","focus","preventDefault","triggerRef","render","_ref","_this$asProps3","selectedIndex","interaction","timeout","_assignProps","Object","values","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","locale","trigger","popper","List","_ref23","_ref2","arguments[0]","_ref13","styles","SDropdownMenuList","SBar","Bar","cn","_assignProps2","Container","Actions","_ref24","_ref3","_ref14","SDropdownMenuActions","_assignProps3","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends","role","_assignProps4","Item","_ref25","_ref5","_ref15","id","disabled","forwardRef","ariaChecked","SDropdownMenuItemContainer","useRef","_React$useState","useState","_React$useState2","_slicedToArray","highlighted","setHighlighted","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","_assignProps5","isKeyboard","Addon","_ref6","_ref16","SDropdownMenuItemAddon","_assignProps6","Trigger","_ref7","_assignProps7","ItemContent","_ref26","_ref8","_ref17","SItemContent","menuItemCtxValue","useContext","subMenu","_React$useState3","Set","_React$useState4","describedby","setDescribedby","element","parent","parentElement","prev","add","_assignProps8","_toConsumableArray","join","ItemContentText","_ref27","_ref9","_ref18","SItemContentText","_assignProps9","ItemHint","_ref28","_ref0","_ref19","SItemHint","_React$useContext","_assignProps0","_ref1","_ref20","_assignProps1","Title","_ref10","_ref21","_assignProps10","Nesting","_ref29","_ref11","_assignProps11","NestingTrigger","_ref30","_ref12","_assignProps12","ItemTitle","Group"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import ButtonComponent from '@semcore/button';\nimport { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport Dropdown, { AbstractDropdown, selectedIndexContext, enhance } from '@semcore/dropdown';\nimport { Flex, Box } from '@semcore/flex-box';\nimport ScrollAreaComponent, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nconst menuItemContext = React.createContext({});\n\nclass DropdownMenuRoot extends AbstractDropdown {\n static displayName = 'DropdownMenu';\n static style = style;\n static enhance = Object.values(enhance);\n\n static defaultProps = {\n size: 'm',\n defaultVisible: false,\n defaultHighlightedIndex: 0,\n defaultSelectedIndex: 0,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n inlineActions: false,\n placement: 'bottom-start',\n timeout: 0,\n };\n\n static nestedMenuInteraction = {\n trigger: [\n ['onClick', 'onMouseEnter'],\n ['onClick', 'onMouseLeave'],\n ],\n popper: [['onMouseEnter'], ['onMouseLeave']],\n };\n\n actionsRef = React.createRef();\n role = 'menu';\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n setTimeout(() => {\n const options = this.menuRef.current?.querySelectorAll(\n '[role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]',\n );\n const selected = this.menuRef.current?.querySelector('[aria-checked=\"true\"]');\n\n if (selected && options && this.asProps.itemsCount === undefined) {\n this.scrollToNode(selected, true);\n\n for (let i = 0; i < options.length; i++) {\n if (options[i] === selected) {\n this.handlers.highlightedIndex(i);\n break;\n }\n }\n }\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n };\n }\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n if (node === document.activeElement) {\n super.scrollToNode(node);\n }\n }\n\n getTriggerProps() {\n const { Children, uid, visible } = this.asProps;\n const hasMenu = isAdvanceMode(Children, [DropdownMenu.Menu.displayName]);\n const ariaControls = hasMenu ? `igc-${uid}-list` : `igc-${uid}-popper`;\n\n return {\n ...super.getTriggerProps(),\n 'onKeyDown': callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleOpenKeyDown.bind(this),\n this.handleKeyDownForMenu('trigger'),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': hasMenu ? 'true' : 'dialog',\n };\n }\n\n getListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n ),\n };\n }\n\n getActionsProps() {\n return {\n ...this.getListProps(),\n ref: this.actionsRef,\n onKeyDown: callAllEventHandlers(\n this.handlePreventTabOnActions.bind(this),\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getItemProps(props, index) {\n const { highlightedIndex, visible } = this.asProps;\n const realIndex = props.index ?? index;\n const isHighlighted = realIndex === highlightedIndex;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: isHighlighted && visible ? 0 : -1,\n ref: (node) => this.itemRef(props, realIndex, node),\n actionsRef: this.actionsRef,\n };\n\n if (props.tag === ButtonComponent) {\n itemProps.use = props.use ?? 'tertiary';\n itemProps.theme = props.theme ?? 'muted';\n itemProps.size = props.size ?? 's';\n itemProps.innerOutline = false;\n }\n\n if (props.selected) {\n itemProps['aria-checked'] = true;\n }\n\n if (super.childRole === 'menuitemradio') {\n itemProps.onClick = () => {\n this.handlers.visible(false);\n };\n }\n\n return itemProps;\n }\n\n handleKeyDownForMenu(place) {\n return (e) => {\n const { visible, placement, inlineActions } = this.asProps;\n\n // stop propagation keyboard events if it calls not on DropdownMenu.Items\n if (place === 'list' && !this.menuRef.current?.contains(e.target) && !inlineActions) {\n e.stopPropagation();\n return false;\n }\n\n const show =\n (e.key === 'ArrowRight' && placement?.startsWith('right')) ||\n (e.key === 'ArrowLeft' && placement?.startsWith('left')) ||\n ((e.key === 'Enter' || e.key === ' ') && !inlineActions);\n const hide =\n (e.key === 'ArrowLeft' && placement?.startsWith('right')) ||\n (e.key === 'ArrowRight' && placement?.startsWith('left')) ||\n e.key === 'Escape';\n const isMenuItem = e.target.getAttribute('role')?.startsWith(super.childRole);\n\n if (place === 'trigger' && show && isMenuItem) {\n this.handlers.visible(true);\n this.handlers.highlightedIndex(0);\n setTimeout(() => {\n const { highlightedIndex } = this.asProps;\n this.itemRefs[highlightedIndex]?.focus();\n }, 0);\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n if (place === 'list' && visible && hide && isMenuItem) {\n if (\n !inlineActions ||\n (inlineActions && (e.key === 'Escape' || this.asProps.highlightedIndex === 0))\n ) {\n this.handlers.visible(false);\n if (this.triggerRef.current) {\n setFocus(this.triggerRef.current);\n }\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n };\n }\n\n handlePreventTabOnActions(e) {\n if (e.key === 'Tab') {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n }\n\n render() {\n const { Children, selectedIndex, interaction, timeout } = this.asProps;\n\n this.itemProps = [];\n\n return (\n <selectedIndexContext.Provider value={selectedIndex}>\n <Root\n render={Dropdown}\n timeout={timeout || (interaction === 'hover' ? [0, 100] : undefined)}\n >\n <Children />\n </Root>\n </selectedIndexContext.Provider>\n );\n }\n}\n\nfunction List({ styles, Children }) {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <ScrollAreaComponent.Container tabIndex={undefined}>\n <Children />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n}\nfunction Actions({ styles }) {\n const SDropdownMenuActions = Root;\n\n return sstyled(styles)(<SDropdownMenuActions render={Flex} />);\n}\n\nfunction Menu(props) {\n const {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n } = props;\n const popperProps = {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n };\n return (\n <ListBoxContextProvider>\n <DropdownMenu.Popper {...popperProps} role={null}>\n <Root render={DropdownMenu.List} />\n </DropdownMenu.Popper>\n </ListBoxContextProvider>\n );\n}\n\nfunction Item({\n id,\n styles,\n disabled,\n Children,\n forwardRef,\n role,\n tabIndex,\n actionsRef,\n 'aria-checked': ariaChecked,\n}) {\n const SDropdownMenuItemContainer = Root;\n const itemRef = React.useRef();\n\n const [highlighted, setHighlighted] = React.useState(false);\n\n const menuItemContextValue = {\n contentId: id,\n ref: forkRef(forwardRef, itemRef),\n role,\n tabIndex,\n ariaChecked,\n };\n const ariaDescribes = [];\n\n const hasSubMenu = isAdvanceMode(Children, [DropdownMenu.displayName], true);\n const hasHint = isAdvanceMode(Children, [DropdownMenu.Item.Hint.displayName], true);\n const advancedMode =\n isAdvanceMode(Children, [DropdownMenu.Item.Content.displayName], true) || hasSubMenu || hasHint;\n\n if (hasHint) {\n const hintId = `igc-${useUID()}-option-hint`;\n\n menuItemContextValue.hintId = hintId;\n ariaDescribes.push(hintId);\n }\n\n if (hasSubMenu) {\n menuItemContextValue.hasSubMenu = true;\n }\n\n menuItemContextValue.ariaDescribes = ariaDescribes;\n\n React.useEffect(() => {\n const onFocus = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(true);\n\n if (hasSubMenu) {\n e.stopPropagation();\n }\n }\n };\n const onBlur = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(false);\n\n if (actionsRef.current) {\n itemRef.current.tabIndex = -1;\n }\n }\n };\n\n document.addEventListener('focus', onFocus, { capture: true });\n document.addEventListener('blur', onBlur, { capture: true });\n\n return () => {\n document.removeEventListener('focus', onFocus, { capture: true });\n document.removeEventListener('blur', onBlur, { capture: true });\n };\n }, [itemRef.current]);\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : menuItemContextValue.ref}\n use:highlighted={!disabled && highlighted && lastInteraction.isKeyboard()}\n use:role={advancedMode ? undefined : role}\n use:id={advancedMode ? undefined : id}\n use:tabIndex={advancedMode ? undefined : tabIndex}\n use:aria-checked={advancedMode ? undefined : ariaChecked}\n >\n <Children />\n </SDropdownMenuItemContainer>\n </menuItemContext.Provider>,\n );\n}\n\nfunction Addon(props) {\n const SDropdownMenuItemAddon = Root;\n return sstyled(props.styles)(<SDropdownMenuItemAddon render={Box} />);\n}\n\nfunction Trigger() {\n return <Root render={Dropdown.Trigger} />;\n}\n\nfunction ItemContent({ styles }) {\n const SItemContent = Root;\n const ref = React.useRef();\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n let subMenu = undefined;\n\n if (menuItemCtxValue.hasSubMenu) {\n subMenu = 'true';\n }\n\n const [describedby, setDescribedby] = React.useState(new Set(menuItemCtxValue.ariaDescribes));\n\n React.useEffect(() => {\n const element = ref.current;\n const parent = element?.parentElement;\n\n if (\n parent.getAttribute('aria-haspopup') === 'true' &&\n parent.getAttribute('aria-describedby')\n ) {\n setDescribedby((prev) => {\n prev.add(parent.getAttribute('aria-describedby'));\n\n return new Set(prev);\n });\n }\n }, [menuItemCtxValue.ariaDescribes]);\n\n return sstyled(styles)(\n <SItemContent\n render={Flex}\n role={menuItemCtxValue.role}\n id={menuItemCtxValue.contentId}\n tabIndex={menuItemCtxValue.tabIndex}\n ref={forkRef(menuItemCtxValue.ref, ref)}\n use:aria-describedby={[...describedby].join(' ')}\n aria-haspopup={menuItemCtxValue.hasSubMenu ? 'true' : undefined}\n aria-expanded={subMenu}\n aria-checked={menuItemCtxValue.ariaChecked}\n alignItems='center'\n justifyContent={menuItemCtxValue.hasSubMenu ? 'space-between' : undefined}\n />,\n );\n}\n\nfunction ItemContentText({ styles }) {\n const SItemContentText = Root;\n return sstyled(styles)(<SItemContentText render={Text} />);\n}\n\nfunction ItemHint({ styles }) {\n const SItemHint = Root;\n const { hintId } = React.useContext(menuItemContext);\n\n return sstyled(styles)(<SItemHint render={Flex} id={hintId} aria-hidden='true' />);\n}\n\n/**\n * @deprecated Use Item hint\n */\nfunction Hint(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='hint' />,\n );\n}\n/**\n * @deprecated Use Group with title prop\n */\nfunction Title(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='title' />,\n );\n}\n\n/**\n * @deprecated\n */\nfunction Nesting({ forwardRef }) {\n return <Root render={DropdownMenu.Item} ref={forwardRef} />;\n}\n\n/**\n * @deprecated\n */\nfunction NestingTrigger({ forwardRef }) {\n return (\n <Root\n render={DropdownMenu.Item.Content}\n tag={DropdownMenu.Trigger}\n ref={forwardRef}\n use:role='menuitem'\n />\n );\n}\n\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\n /**\n * @deprecated. Use just Item. See examples on\n */\n Nesting: [Nesting, { Trigger: NestingTrigger, Addon }],\n ItemTitle: Title,\n ItemHint: Hint,\n Group: Dropdown.Group,\n },\n {\n parent: [Dropdown],\n },\n);\n\nDropdownMenu.selectedIndexContext = selectedIndexContext;\n\nexport default DropdownMenu;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,eAAe,MAAM,iBAAiB;AAC7C,SAASC,eAAe,EAAEC,OAAO,EAAEC,IAAI,EAAEC,eAAe,QAAQ,eAAe;AAC/E,SAASC,oBAAoB,QAAQ,qCAAqC;AAC1E,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,QAAQ,QAAQ,6CAA6C;AACtE,SAASC,OAAO,QAAQ,6BAA6B;AACrD,SAASC,MAAM,QAAQ,kCAAkC;AACzD,OAAOC,QAAQ,IAAIC,gBAAgB,EAAEC,oBAAoB,EAAEC,OAAO,QAAQ,mBAAmB;AAC7F,SAASC,IAAI,EAAEC,GAAG,QAAQ,mBAAmB;AAC7C,OAAOC,mBAAmB,IAAIC,sCAAsC,QAAQ,sBAAsB;AAClG,SAASC,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,IAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAG1B,SAASC,iBAAiB,QAAQ,gDAAgD;AAElF,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAC,MAAA;EAAA,IAAMC,QAAQ,GAAAD,MAAA,CAARC,QAAQ;EAAA,oBACxCP,KAAA,CAAAQ,aAAA,CAACV,sCAAsC,CAACW,QAAQ;IAACC,KAAK,EAAE;EAAK,GAC1DH,QAC8C,CAAC;AAAA,CACnD;AAED,IAAMI,eAAe,gBAAGX,KAAK,CAACY,aAAa,CAAC,CAAC,CAAC,CAAC;AAAC,IAE1CC,gBAAgB,0BAAAC,iBAAA;EAAA,SAAAD,iBAAA;IAAA,IAAAE,KAAA;IAAAC,eAAA,OAAAH,gBAAA;IAAA,SAAAI,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAQ,UAAA,OAAAV,gBAAA,KAAAW,MAAA,CAAAJ,IAAA;IAAAK,eAAA,CAAAV,KAAA,6BA0BPf,KAAK,CAAC0B,SAAS,CAAC,CAAC;IAAAD,eAAA,CAAAV,KAAA,UACvB,MAAM;IAAA,OAAAA,KAAA;EAAA;EAAAY,SAAA,CAAAd,gBAAA,EAAAC,iBAAA;EAAA,OAAAc,YAAA,CAAAf,gBAAA;IAAAgB,GAAA;IAAAnB,KAAA,EAEb,SAAAoB,iBAAiBA,CAAA,EAAG;MAAA,IAAAC,MAAA;MAClB,OAAAC,aAAA,CAAAA,aAAA,KAAAC,aAAA,CAAApB,gBAAA;QAEEqB,OAAO,EAAE,CACP,IAAI,EACJ,UAACA,OAAO,EAAK;UACX,IAAIA,OAAO,KAAK,IAAI,EAAE;YACpBC,UAAU,CAAC,YAAM;cAAA,IAAAC,qBAAA,EAAAC,sBAAA;cACf,IAAMC,OAAO,IAAAF,qBAAA,GAAGL,MAAI,CAACQ,OAAO,CAACC,OAAO,cAAAJ,qBAAA,uBAApBA,qBAAA,CAAsBK,gBAAgB,CACpD,mDACF,CAAC;cACD,IAAMC,QAAQ,IAAAL,sBAAA,GAAGN,MAAI,CAACQ,OAAO,CAACC,OAAO,cAAAH,sBAAA,uBAApBA,sBAAA,CAAsBM,aAAa,CAAC,uBAAuB,CAAC;cAE7E,IAAID,QAAQ,IAAIJ,OAAO,IAAIP,MAAI,CAACa,OAAO,CAACC,UAAU,KAAKC,SAAS,EAAE;gBAChEf,MAAI,CAACgB,YAAY,CAACL,QAAQ,EAAE,IAAI,CAAC;gBAEjC,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,OAAO,CAACnB,MAAM,EAAE6B,CAAC,EAAE,EAAE;kBACvC,IAAIV,OAAO,CAACU,CAAC,CAAC,KAAKN,QAAQ,EAAE;oBAC3BX,MAAI,CAACkB,QAAQ,CAACC,gBAAgB,CAACF,CAAC,CAAC;oBACjC;kBACF;gBACF;cACF;cACA;cACA;YACF,CAAC,EAAE,EAAE,CAAC;UACR;QACF,CAAC;MACF;IAEL;EAAC;IAAAnB,GAAA;IAAAnB,KAAA,EAED,SAAAyC,OAAOA,CAACC,KAAK,EAAEC,KAAK,EAAEC,IAAI,EAAE;MAC1BrB,aAAA,CAAApB,gBAAA,uBAAcuC,KAAK,EAAEC,KAAK,EAAEC,IAAI;MAEhC,IAAIA,IAAI,KAAKC,QAAQ,CAACC,aAAa,EAAE;QACnCvB,aAAA,CAAApB,gBAAA,4BAAmByC,IAAI;MACzB;IACF;EAAC;IAAAzB,GAAA;IAAAnB,KAAA,EAED,SAAA+C,eAAeA,CAAA,EAAG;MAChB,IAAAC,aAAA,GAAmC,IAAI,CAACd,OAAO;QAAvCe,QAAQ,GAAAD,aAAA,CAARC,QAAQ;QAAEC,GAAG,GAAAF,aAAA,CAAHE,GAAG;QAAE1B,OAAO,GAAAwB,aAAA,CAAPxB,OAAO;MAC9B,IAAM2B,OAAO,GAAG1E,aAAa,CAACwE,QAAQ,EAAE,CAACG,YAAY,CAACC,IAAI,CAACC,WAAW,CAAC,CAAC;MACxE,IAAMC,YAAY,GAAGJ,OAAO,UAAArC,MAAA,CAAUoC,GAAG,oBAAApC,MAAA,CAAiBoC,GAAG,YAAS;MAEtE,OAAA5B,aAAA,CAAAA,aAAA,KAAAC,aAAA,CAAApB,gBAAA;QAEE,WAAW,EAAE3B,oBAAoB,CAC/B,IAAI,CAACgF,0BAA0B,CAACC,IAAI,CAAC,IAAI,CAAC,EAC1C,IAAI,CAACC,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC,EACjC,IAAI,CAACE,oBAAoB,CAAC,SAAS,CACrC,CAAC;QACD,eAAe,EAAEnC,OAAO,GAAG+B,YAAY,GAAGnB,SAAS;QACnD,eAAe,EAAEe,OAAO,GAAG,MAAM,GAAG;MAAQ;IAEhD;EAAC;IAAAhC,GAAA;IAAAnB,KAAA,EAED,SAAA4D,YAAYA,CAAA,EAAG;MACb,OAAAtC,aAAA,CAAAA,aAAA,KAAAC,aAAA,CAAApB,gBAAA;QAEE0D,SAAS,EAAErF,oBAAoB,CAC7B,IAAI,CAACgF,0BAA0B,CAACC,IAAI,CAAC,IAAI,CAAC,EAC1C,IAAI,CAACE,oBAAoB,CAAC,MAAM,CAAC,EACjC,IAAI,CAACG,kBAAkB,CAACL,IAAI,CAAC,IAAI,CACnC;MAAC;IAEL;EAAC;IAAAtC,GAAA;IAAAnB,KAAA,EAED,SAAA+D,cAAcA,CAAA,EAAG;MACf,OAAAzC,aAAA,CAAAA,aAAA,KAAAC,aAAA,CAAApB,gBAAA;QAEE0D,SAAS,EAAErF,oBAAoB,CAC7B,IAAI,CAACgF,0BAA0B,CAACC,IAAI,CAAC,IAAI,CAAC,EAC1C,IAAI,CAACO,0BAA0B,CAACP,IAAI,CAAC,IAAI,CAC3C;MAAC;IAEL;EAAC;IAAAtC,GAAA;IAAAnB,KAAA,EAED,SAAAiE,eAAeA,CAAA,EAAG;MAChB,OAAA3C,aAAA,CAAAA,aAAA,KACK,IAAI,CAACsC,YAAY,CAAC,CAAC;QACtBM,GAAG,EAAE,IAAI,CAACC,UAAU;QACpBN,SAAS,EAAErF,oBAAoB,CAC7B,IAAI,CAAC4F,yBAAyB,CAACX,IAAI,CAAC,IAAI,CAAC,EACzC,IAAI,CAACD,0BAA0B,CAACC,IAAI,CAAC,IAAI,CAAC,EAC1C,IAAI,CAACE,oBAAoB,CAAC,MAAM,CAAC,EACjC,IAAI,CAACG,kBAAkB,CAACL,IAAI,CAAC,IAAI,CACnC;MAAC;IAEL;EAAC;IAAAtC,GAAA;IAAAnB,KAAA,EAED,SAAAqE,YAAYA,CAAC3B,KAAK,EAAEC,KAAK,EAAE;MAAA,IAAA2B,YAAA;QAAAC,MAAA;MACzB,IAAAC,cAAA,GAAsC,IAAI,CAACtC,OAAO;QAA1CM,gBAAgB,GAAAgC,cAAA,CAAhBhC,gBAAgB;QAAEhB,OAAO,GAAAgD,cAAA,CAAPhD,OAAO;MACjC,IAAMiD,SAAS,IAAAH,YAAA,GAAG5B,KAAK,CAACC,KAAK,cAAA2B,YAAA,cAAAA,YAAA,GAAI3B,KAAK;MACtC,IAAM+B,aAAa,GAAGD,SAAS,KAAKjC,gBAAgB;MACpD,IAAMmC,SAAS,GAAArD,aAAA,CAAAA,aAAA,KAAAC,aAAA,CAAApB,gBAAA,4BACSuC,KAAK,EAAE+B,SAAS;QACtCG,QAAQ,EAAEF,aAAa,IAAIlD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C0C,GAAG,EAAE,SAALA,GAAGA,CAAGtB,IAAI;UAAA,OAAK2B,MAAI,CAAC9B,OAAO,CAACC,KAAK,EAAE+B,SAAS,EAAE7B,IAAI,CAAC;QAAA;QACnDuB,UAAU,EAAE,IAAI,CAACA;MAAU,EAC5B;MAED,IAAIzB,KAAK,CAACmC,GAAG,KAAK1G,eAAe,EAAE;QAAA,IAAA2G,UAAA,EAAAC,YAAA,EAAAC,WAAA;QACjCL,SAAS,CAACM,GAAG,IAAAH,UAAA,GAAGpC,KAAK,CAACuC,GAAG,cAAAH,UAAA,cAAAA,UAAA,GAAI,UAAU;QACvCH,SAAS,CAACO,KAAK,IAAAH,YAAA,GAAGrC,KAAK,CAACwC,KAAK,cAAAH,YAAA,cAAAA,YAAA,GAAI,OAAO;QACxCJ,SAAS,CAACQ,IAAI,IAAAH,WAAA,GAAGtC,KAAK,CAACyC,IAAI,cAAAH,WAAA,cAAAA,WAAA,GAAI,GAAG;QAClCL,SAAS,CAACS,YAAY,GAAG,KAAK;MAChC;MAEA,IAAI1C,KAAK,CAACV,QAAQ,EAAE;QAClB2C,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI;MAClC;MAEA,IAAIpD,aAAA,CAAApB,gBAAA,4BAAoB,eAAe,EAAE;QACvCwE,SAAS,CAACU,OAAO,GAAG,YAAM;UACxBd,MAAI,CAAChC,QAAQ,CAACf,OAAO,CAAC,KAAK,CAAC;QAC9B,CAAC;MACH;MAEA,OAAOmD,SAAS;IAClB;EAAC;IAAAxD,GAAA;IAAAnB,KAAA,EAED,SAAA2D,oBAAoBA,CAAC2B,KAAK,EAAE;MAAA,IAAAC,MAAA;MAC1B,OAAO,UAACC,CAAC,EAAK;QAAA,IAAAC,qBAAA,EAAAC,qBAAA;QACZ,IAAAC,cAAA,GAA8CJ,MAAI,CAACrD,OAAO;UAAlDV,OAAO,GAAAmE,cAAA,CAAPnE,OAAO;UAAEoE,SAAS,GAAAD,cAAA,CAATC,SAAS;UAAEC,aAAa,GAAAF,cAAA,CAAbE,aAAa;;QAEzC;QACA,IAAIP,KAAK,KAAK,MAAM,IAAI,GAAAG,qBAAA,GAACF,MAAI,CAAC1D,OAAO,CAACC,OAAO,cAAA2D,qBAAA,eAApBA,qBAAA,CAAsBK,QAAQ,CAACN,CAAC,CAACO,MAAM,CAAC,KAAI,CAACF,aAAa,EAAE;UACnFL,CAAC,CAACQ,eAAe,CAAC,CAAC;UACnB,OAAO,KAAK;QACd;QAEA,IAAMC,IAAI,GACPT,CAAC,CAACrE,GAAG,KAAK,YAAY,KAAIyE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEM,UAAU,CAAC,OAAO,CAAC,KACxDV,CAAC,CAACrE,GAAG,KAAK,WAAW,KAAIyE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEM,UAAU,CAAC,MAAM,CAAC,CAAC,IACvD,CAACV,CAAC,CAACrE,GAAG,KAAK,OAAO,IAAIqE,CAAC,CAACrE,GAAG,KAAK,GAAG,KAAK,CAAC0E,aAAc;QAC1D,IAAMM,IAAI,GACPX,CAAC,CAACrE,GAAG,KAAK,WAAW,KAAIyE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEM,UAAU,CAAC,OAAO,CAAC,KACvDV,CAAC,CAACrE,GAAG,KAAK,YAAY,KAAIyE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEM,UAAU,CAAC,MAAM,CAAC,CAAC,IACzDV,CAAC,CAACrE,GAAG,KAAK,QAAQ;QACpB,IAAMiF,UAAU,IAAAV,qBAAA,GAAGF,CAAC,CAACO,MAAM,CAACM,YAAY,CAAC,MAAM,CAAC,cAAAX,qBAAA,uBAA7BA,qBAAA,CAA+BQ,UAAU,CAAA3E,aAAA,CAAApB,gBAAA,eAAAoF,MAAA,IAAgB,CAAC;QAE7E,IAAID,KAAK,KAAK,SAAS,IAAIW,IAAI,IAAIG,UAAU,EAAE;UAC7Cb,MAAI,CAAChD,QAAQ,CAACf,OAAO,CAAC,IAAI,CAAC;UAC3B+D,MAAI,CAAChD,QAAQ,CAACC,gBAAgB,CAAC,CAAC,CAAC;UACjCf,UAAU,CAAC,YAAM;YAAA,IAAA6E,qBAAA;YACf,IAAQ9D,gBAAgB,GAAK+C,MAAI,CAACrD,OAAO,CAAjCM,gBAAgB;YACxB,CAAA8D,qBAAA,GAAAf,MAAI,CAACgB,QAAQ,CAAC/D,gBAAgB,CAAC,cAAA8D,qBAAA,eAA/BA,qBAAA,CAAiCE,KAAK,CAAC,CAAC;UAC1C,CAAC,EAAE,CAAC,CAAC;UAELhB,CAAC,CAACiB,cAAc,CAAC,CAAC;UAClBjB,CAAC,CAACQ,eAAe,CAAC,CAAC;UACnB,OAAO,KAAK;QACd;QACA,IAAIV,KAAK,KAAK,MAAM,IAAI9D,OAAO,IAAI2E,IAAI,IAAIC,UAAU,EAAE;UACrD,IACE,CAACP,aAAa,IACbA,aAAa,KAAKL,CAAC,CAACrE,GAAG,KAAK,QAAQ,IAAIoE,MAAI,CAACrD,OAAO,CAACM,gBAAgB,KAAK,CAAC,CAAE,EAC9E;YACA+C,MAAI,CAAChD,QAAQ,CAACf,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI+D,MAAI,CAACmB,UAAU,CAAC5E,OAAO,EAAE;cAC3BpD,QAAQ,CAAC6G,MAAI,CAACmB,UAAU,CAAC5E,OAAO,CAAC;YACnC;YAEA0D,CAAC,CAACiB,cAAc,CAAC,CAAC;YAClBjB,CAAC,CAACQ,eAAe,CAAC,CAAC;YACnB,OAAO,KAAK;UACd;QACF;MACF,CAAC;IACH;EAAC;IAAA7E,GAAA;IAAAnB,KAAA,EAED,SAAAoE,yBAAyBA,CAACoB,CAAC,EAAE;MAC3B,IAAIA,CAAC,CAACrE,GAAG,KAAK,KAAK,EAAE;QACnBqE,CAAC,CAACQ,eAAe,CAAC,CAAC;QACnBR,CAAC,CAACiB,cAAc,CAAC,CAAC;QAClB,OAAO,KAAK;MACd;IACF;EAAC;IAAAtF,GAAA;IAAAnB,KAAA,EAED,SAAA2G,MAAMA,CAAA,EAAG;MAAA,IAAAC,IAAA,QAAA1E,OAAA;MACP,IAAA2E,cAAA,GAA0D,IAAI,CAAC3E,OAAO;QAA9De,QAAQ,GAAA4D,cAAA,CAAR5D,QAAQ;QAAE6D,aAAa,GAAAD,cAAA,CAAbC,aAAa;QAAEC,WAAW,GAAAF,cAAA,CAAXE,WAAW;QAAEC,OAAO,GAAAH,cAAA,CAAPG,OAAO;MAErD,IAAI,CAACrC,SAAS,GAAG,EAAE;MAEnB,oBACErF,KAAA,CAAAQ,aAAA,CAACf,oBAAoB,CAACgB,QAAQ;QAACC,KAAK,EAAE8G;MAAc,gBAClDxH,KAAA,CAAAQ,aAAA,CACUjB,QAAQ,EAAAoI,YAAA;QAAA,WACPD,OAAO,KAAKD,WAAW,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG3E,SAAS;MAAC,GAAAwE,IAAA,gBAEpEtH,KAAA,CAAAQ,aAAA,CAACmD,QAAQ,MAAE,CACP,CACuB,CAAC;IAEpC;EAAC;AAAA,EAhO4BnE,gBAAgB;AAAAiC,eAAA,CAAzCZ,gBAAgB,iBACC,cAAc;AAAAY,eAAA,CAD/BZ,gBAAgB,WAELZ,KAAK;AAAAwB,eAAA,CAFhBZ,gBAAgB,aAGH+G,MAAM,CAACC,MAAM,CAACnI,OAAO,CAAC;AAAA+B,eAAA,CAHnCZ,gBAAgB,kBAKE;EACpBgF,IAAI,EAAE,GAAG;EACTiC,cAAc,EAAE,KAAK;EACrBC,uBAAuB,EAAE,CAAC;EAC1BC,oBAAoB,EAAE,CAAC;EACvBC,IAAI,EAAE7H,iBAAiB;EACvB8H,MAAM,EAAE,IAAI;EACZT,WAAW,EAAE,OAAO;EACpBlB,aAAa,EAAE,KAAK;EACpBD,SAAS,EAAE,cAAc;EACzBoB,OAAO,EAAE;AACX,CAAC;AAAAjG,eAAA,CAhBGZ,gBAAgB,2BAkBW;EAC7BsH,OAAO,EAAE,CACP,CAAC,SAAS,EAAE,cAAc,CAAC,EAC3B,CAAC,SAAS,EAAE,cAAc,CAAC,CAC5B;EACDC,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC;AAC7C,CAAC;AA2MH,SAASC,IAAIA,CAAAC,MAAA,EAAuB;EAAA,IAAAC,KAAA,GAAAC,YAAA;IAAAC,MAAA;EAAA,IAApBC,MAAM,GAAAJ,MAAA,CAANI,MAAM;IAAE/E,QAAQ,GAAA2E,MAAA,CAAR3E,QAAQ;EAC9B,IAAMgF,iBAAiB,GAKQ9I,mBAAmB;EAJlD,IAAM+I,IAAI,GAAG/I,mBAAmB,CAACgJ,GAAG;EAEpC,OAAAJ,MAAA,GAAO1J,OAAO,CAAC2J,MAAM,CAAC,eACpB1I,KAAA,CAAAQ,aAAA,CAACH,sBAAsB,EAAAoI,MAAA,CAAAK,EAAA,6CACrB9I,KAAA,CAAAQ,aAAA,CAACmI,iBAAiB,EAAAF,MAAA,CAAAK,EAAA,sBAAA9G,aAAA,KAAA+G,aAAA;IAAA,UAAsC,IAAI;IAAA,cAAc,EAAE;IAAA,eAAc;EAAO,GAAAR,KAAA,kBAC/FvI,KAAA,CAAAQ,aAAA,CAACX,mBAAmB,CAACmJ,SAAS;IAAC1D,QAAQ,EAAExC;EAAU,gBACjD9C,KAAA,CAAAQ,aAAA,CAACmD,QAAQ,EAAA8E,MAAA,CAAAK,EAAA,gBAAE,CACkB,CAAC,eAChC9I,KAAA,CAAAQ,aAAA,CAACoI,IAAI,EAAAH,MAAA,CAAAK,EAAA;IAAA,eAAa;EAAY,EAAE,CAAC,eACjC9I,KAAA,CAAAQ,aAAA,CAACoI,IAAI,EAAAH,MAAA,CAAAK,EAAA;IAAA,eAAa;EAAU,EAAE,CACb,CACG,CAAC;AAE7B;AACA,SAASG,OAAOA,CAAAC,MAAA,EAAa;EAAA,IAAAC,KAAA,GAAAX,YAAA;IAAAY,MAAA;EAAA,IAAVV,MAAM,GAAAQ,MAAA,CAANR,MAAM;EACvB,IAAMW,oBAAoB,GAE2B1J,IAAI;EAAzD,OAAAyJ,MAAA,GAAOrK,OAAO,CAAC2J,MAAM,CAAC,eAAC1I,KAAA,CAAAQ,aAAA,CAAC6I,oBAAoB,EAAAD,MAAA,CAAAN,EAAA,yBAAA9G,aAAA,KAAAsH,aAAA,KAAAH,KAAA,GAAgB,CAAC;AAC/D;AAEA,SAASpF,IAAIA,CAACX,KAAK,EAAE;EAAA,IAAAmG,KAAA,GAAAf,YAAA;EACnB,IACEtG,OAAO,GAOLkB,KAAK,CAPPlB,OAAO;IACPsH,aAAa,GAMXpG,KAAK,CANPoG,aAAa;IACbC,qBAAqB,GAKnBrG,KAAK,CALPqG,qBAAqB;IACrBC,mBAAmB,GAIjBtG,KAAK,CAJPsG,mBAAmB;IACnBjC,WAAW,GAGTrE,KAAK,CAHPqE,WAAW;IACXkC,SAAS,GAEPvG,KAAK,CAFPuG,SAAS;IACTC,kBAAkB,GAChBxG,KAAK,CADPwG,kBAAkB;EAEpB,IAAMC,WAAW,GAAG;IAClB3H,OAAO,EAAPA,OAAO;IACPsH,aAAa,EAAbA,aAAa;IACbC,qBAAqB,EAArBA,qBAAqB;IACrBC,mBAAmB,EAAnBA,mBAAmB;IACnBjC,WAAW,EAAXA,WAAW;IACXkC,SAAS,EAATA,SAAS;IACTC,kBAAkB,EAAlBA;EACF,CAAC;EACD,oBACE5J,KAAA,CAAAQ,aAAA,CAACH,sBAAsB,qBACrBL,KAAA,CAAAQ,aAAA,CAACsD,YAAY,CAACgG,MAAM,EAAAC,QAAA,KAAKF,WAAW;IAAEG,IAAI,EAAE;EAAK,iBAC/ChK,KAAA,CAAAQ,aAAA,CAAcsD,YAAY,CAACuE,IAAI,EAAA4B,aAAA,KAAAV,KAAA,CAAG,CACf,CACC,CAAC;AAE7B;AAEA,SAASW,IAAIA,CAAAC,MAAA,EAUV;EAAA,IAAAC,KAAA,GAAA5B,YAAA;IAAA6B,MAAA;EAAA,IATDC,EAAE,GAAAH,MAAA,CAAFG,EAAE;IACF5B,MAAM,GAAAyB,MAAA,CAANzB,MAAM;IACN6B,QAAQ,GAAAJ,MAAA,CAARI,QAAQ;IACR5G,QAAQ,GAAAwG,MAAA,CAARxG,QAAQ;IACR6G,UAAU,GAAAL,MAAA,CAAVK,UAAU;IACVR,IAAI,GAAAG,MAAA,CAAJH,IAAI;IACJ1E,QAAQ,GAAA6E,MAAA,CAAR7E,QAAQ;IACRT,UAAU,GAAAsF,MAAA,CAAVtF,UAAU;IACM4F,WAAW,GAAAN,MAAA,CAA3B,cAAc;EAEd,IAAMO,0BAA0B,GAgElBnL,QAAQ,CAAC2K,IAAI;EA/D3B,IAAM/G,OAAO,GAAGnD,KAAK,CAAC2K,MAAM,CAAC,CAAC;EAE9B,IAAAC,eAAA,GAAsC5K,KAAK,CAAC6K,QAAQ,CAAC,KAAK,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAApDI,WAAW,GAAAF,gBAAA;IAAEG,cAAc,GAAAH,gBAAA;EAElC,IAAMI,oBAAoB,GAAG;IAC3BC,SAAS,EAAEb,EAAE;IACb1F,GAAG,EAAEvF,OAAO,CAACmL,UAAU,EAAErH,OAAO,CAAC;IACjC6G,IAAI,EAAJA,IAAI;IACJ1E,QAAQ,EAARA,QAAQ;IACRmF,WAAW,EAAXA;EACF,CAAC;EACD,IAAMW,aAAa,GAAG,EAAE;EAExB,IAAMC,UAAU,GAAGlM,aAAa,CAACwE,QAAQ,EAAE,CAACG,YAAY,CAACE,WAAW,CAAC,EAAE,IAAI,CAAC;EAC5E,IAAMsH,OAAO,GAAGnM,aAAa,CAACwE,QAAQ,EAAE,CAACG,YAAY,CAACoG,IAAI,CAACqB,IAAI,CAACvH,WAAW,CAAC,EAAE,IAAI,CAAC;EACnF,IAAMwH,YAAY,GAChBrM,aAAa,CAACwE,QAAQ,EAAE,CAACG,YAAY,CAACoG,IAAI,CAACuB,OAAO,CAACzH,WAAW,CAAC,EAAE,IAAI,CAAC,IAAIqH,UAAU,IAAIC,OAAO;EAEjG,IAAIA,OAAO,EAAE;IACX,IAAMI,MAAM,UAAAlK,MAAA,CAAUlC,MAAM,CAAC,CAAC,iBAAc;IAE5C4L,oBAAoB,CAACQ,MAAM,GAAGA,MAAM;IACpCN,aAAa,CAACO,IAAI,CAACD,MAAM,CAAC;EAC5B;EAEA,IAAIL,UAAU,EAAE;IACdH,oBAAoB,CAACG,UAAU,GAAG,IAAI;EACxC;EAEAH,oBAAoB,CAACE,aAAa,GAAGA,aAAa;EAElDpL,KAAK,CAAC4L,SAAS,CAAC,YAAM;IACpB,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAI3F,CAAC,EAAK;MACrB,IAAIA,CAAC,CAACO,MAAM,KAAKtD,OAAO,CAACX,OAAO,EAAE;QAChCyI,cAAc,CAAC,IAAI,CAAC;QAEpB,IAAII,UAAU,EAAE;UACdnF,CAAC,CAACQ,eAAe,CAAC,CAAC;QACrB;MACF;IACF,CAAC;IACD,IAAMoF,MAAM,GAAG,SAATA,MAAMA,CAAI5F,CAAC,EAAK;MACpB,IAAIA,CAAC,CAACO,MAAM,KAAKtD,OAAO,CAACX,OAAO,EAAE;QAChCyI,cAAc,CAAC,KAAK,CAAC;QAErB,IAAIpG,UAAU,CAACrC,OAAO,EAAE;UACtBW,OAAO,CAACX,OAAO,CAAC8C,QAAQ,GAAG,CAAC,CAAC;QAC/B;MACF;IACF,CAAC;IAED/B,QAAQ,CAACwI,gBAAgB,CAAC,OAAO,EAAEF,OAAO,EAAE;MAAEG,OAAO,EAAE;IAAK,CAAC,CAAC;IAC9DzI,QAAQ,CAACwI,gBAAgB,CAAC,MAAM,EAAED,MAAM,EAAE;MAAEE,OAAO,EAAE;IAAK,CAAC,CAAC;IAE5D,OAAO,YAAM;MACXzI,QAAQ,CAAC0I,mBAAmB,CAAC,OAAO,EAAEJ,OAAO,EAAE;QAAEG,OAAO,EAAE;MAAK,CAAC,CAAC;MACjEzI,QAAQ,CAAC0I,mBAAmB,CAAC,MAAM,EAAEH,MAAM,EAAE;QAAEE,OAAO,EAAE;MAAK,CAAC,CAAC;IACjE,CAAC;EACH,CAAC,EAAE,CAAC7I,OAAO,CAACX,OAAO,CAAC,CAAC;EAErB,OAAA6H,MAAA,GAAOtL,OAAO,CAAC2J,MAAM,CAAC,eACpB1I,KAAA,CAAAQ,aAAA,CAACG,eAAe,CAACF,QAAQ;IAACC,KAAK,EAAEwK;EAAqB,gBACpDlL,KAAA,CAAAQ,aAAA,CAACkK,0BAA0B,EAAAL,MAAA,CAAAvB,EAAA,+BAAA9G,aAAA,KAAAkK,aAAA;IAAA,OAEpBV,YAAY,GAAG1I,SAAS,GAAGoI,oBAAoB,CAACtG,GAAG;IAAA,mBACvC,CAAC2F,QAAQ,IAAIS,WAAW,IAAI/L,eAAe,CAACkN,UAAU,CAAC,CAAC;IAAA,YAC/DX,YAAY,GAAG1I,SAAS,GAAGkH,IAAI;IAAA,UACjCwB,YAAY,GAAG1I,SAAS,GAAGwH,EAAE;IAAA,gBACvBkB,YAAY,GAAG1I,SAAS,GAAGwC,QAAQ;IAAA,oBAC/BkG,YAAY,GAAG1I,SAAS,GAAG2H;EAAW,GAAAL,KAAA,kBAExDpK,KAAA,CAAAQ,aAAA,CAACmD,QAAQ,EAAA0G,MAAA,CAAAvB,EAAA,gBAAE,CACe,CACJ,CAAC;AAE/B;AAEA,SAASsD,KAAKA,CAAChJ,KAAK,EAAE;EAAA,IAAAiJ,KAAA,GAAA7D,YAAA;IAAA8D,MAAA;EACpB,IAAMC,sBAAsB,GACiC3M,GAAG;EAAhE,OAAA0M,MAAA,GAAOvN,OAAO,CAACqE,KAAK,CAACsF,MAAM,CAAC,eAAC1I,KAAA,CAAAQ,aAAA,CAAC+L,sBAAsB,EAAAD,MAAA,CAAAxD,EAAA,2BAAA9G,aAAA,KAAAwK,aAAA,KAAAH,KAAA,GAAe,CAAC;AACtE;AAEA,SAASI,OAAOA,CAAA,EAAG;EAAA,IAAAC,KAAA,GAAAlE,YAAA;EACjB,oBAAOxI,KAAA,CAAAQ,aAAA,CAAcjB,QAAQ,CAACkN,OAAO,EAAAE,aAAA,KAAAD,KAAA,CAAG,CAAC;AAC3C;AAEA,SAASE,WAAWA,CAAAC,MAAA,EAAa;EAAA,IAAAC,KAAA,GAAAtE,YAAA;IAAAuE,MAAA;EAAA,IAAVrE,MAAM,GAAAmE,MAAA,CAANnE,MAAM;EAC3B,IAAMsE,YAAY,GA8BNrN,IAAI;EA7BhB,IAAMiF,GAAG,GAAG5E,KAAK,CAAC2K,MAAM,CAAC,CAAC;EAC1B,IAAMsC,gBAAgB,GAAGjN,KAAK,CAACkN,UAAU,CAACvM,eAAe,CAAC;EAE1D,IAAIwM,OAAO,GAAGrK,SAAS;EAEvB,IAAImK,gBAAgB,CAAC5B,UAAU,EAAE;IAC/B8B,OAAO,GAAG,MAAM;EAClB;EAEA,IAAAC,gBAAA,GAAsCpN,KAAK,CAAC6K,QAAQ,CAAC,IAAIwC,GAAG,CAACJ,gBAAgB,CAAC7B,aAAa,CAAC,CAAC;IAAAkC,gBAAA,GAAAvC,cAAA,CAAAqC,gBAAA;IAAtFG,WAAW,GAAAD,gBAAA;IAAEE,cAAc,GAAAF,gBAAA;EAElCtN,KAAK,CAAC4L,SAAS,CAAC,YAAM;IACpB,IAAM6B,OAAO,GAAG7I,GAAG,CAACpC,OAAO;IAC3B,IAAMkL,MAAM,GAAGD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,aAAa;IAErC,IACED,MAAM,CAAC3G,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,IAC/C2G,MAAM,CAAC3G,YAAY,CAAC,kBAAkB,CAAC,EACvC;MACAyG,cAAc,CAAC,UAACI,IAAI,EAAK;QACvBA,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC3G,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAEjD,OAAO,IAAIsG,GAAG,CAACO,IAAI,CAAC;MACtB,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACX,gBAAgB,CAAC7B,aAAa,CAAC,CAAC;EAEpC,OAAA2B,MAAA,GAAOhO,OAAO,CAAC2J,MAAM,CAAC,eACpB1I,KAAA,CAAAQ,aAAA,CAACwM,YAAY,EAAAD,MAAA,CAAAjE,EAAA,iBAAA9G,aAAA,KAAA8L,aAAA;IAAA,QAELb,gBAAgB,CAACjD,IAAI;IAAA,MACvBiD,gBAAgB,CAAC9B,SAAS;IAAA,YACpB8B,gBAAgB,CAAC3H,QAAQ;IAAA,OAC9BjG,OAAO,CAAC4N,gBAAgB,CAACrI,GAAG,EAAEA,GAAG,CAAC;IAAA,wBACjBmJ,kBAAA,CAAIR,WAAW,EAAES,IAAI,CAAC,GAAG,CAAC;IAAA,iBACjCf,gBAAgB,CAAC5B,UAAU,GAAG,MAAM,GAAGvI,SAAS;IAAA,iBAChDqK,OAAO;IAAA,gBACRF,gBAAgB,CAACxC,WAAW;IAAA,cAC/B,QAAQ;IAAA,kBACHwC,gBAAgB,CAAC5B,UAAU,GAAG,eAAe,GAAGvI;EAAS,GAAAgK,KAAA,GAC1E,CAAC;AAEN;AAEA,SAASmB,eAAeA,CAAAC,MAAA,EAAa;EAAA,IAAAC,KAAA,GAAA3F,YAAA;IAAA4F,MAAA;EAAA,IAAV1F,MAAM,GAAAwF,MAAA,CAANxF,MAAM;EAC/B,IAAM2F,gBAAgB,GAC2BtO,IAAI;EAArD,OAAAqO,MAAA,GAAOrP,OAAO,CAAC2J,MAAM,CAAC,eAAC1I,KAAA,CAAAQ,aAAA,CAAC6N,gBAAgB,EAAAD,MAAA,CAAAtF,EAAA,qBAAA9G,aAAA,KAAAsM,aAAA,KAAAH,KAAA,GAAgB,CAAC;AAC3D;AAEA,SAASI,QAAQA,CAAAC,MAAA,EAAa;EAAA,IAAAC,KAAA,GAAAjG,YAAA;IAAAkG,MAAA;EAAA,IAAVhG,MAAM,GAAA8F,MAAA,CAAN9F,MAAM;EACxB,IAAMiG,SAAS,GAG2BhP,IAAI;EAF9C,IAAAiP,iBAAA,GAAmB5O,KAAK,CAACkN,UAAU,CAACvM,eAAe,CAAC;IAA5C+K,MAAM,GAAAkD,iBAAA,CAANlD,MAAM;EAEd,OAAAgD,MAAA,GAAO3P,OAAO,CAAC2J,MAAM,CAAC,eAAC1I,KAAA,CAAAQ,aAAA,CAACmO,SAAS,EAAAD,MAAA,CAAA5F,EAAA,cAAA9G,aAAA,KAAA6M,aAAA;IAAA,MAAmBnD,MAAM;IAAA,eAAc;EAAM,GAAA+C,KAAA,GAAE,CAAC;AACnF;;AAEA;AACA;AACA;AACA,SAASlD,IAAIA,CAACnI,KAAK,EAAE;EAAA,IAAA0L,KAAA,GAAAtG,YAAA;IAAAuG,MAAA;EACnB,IAAMrE,0BAA0B,GAEMnL,QAAQ,CAAC2K,IAAI;EADnD,OAAA6E,MAAA,GAAOhQ,OAAO,CAACqE,KAAK,CAACsF,MAAM,CAAC,eAC1B1I,KAAA,CAAAQ,aAAA,CAACkK,0BAA0B,EAAAqE,MAAA,CAAAjG,EAAA,+BAAA9G,aAAA,KAAAgN,aAAA;IAAA,WAAgC;EAAM,GAAAF,KAAA,GAAE,CAAC;AAExE;AACA;AACA;AACA;AACA,SAASG,KAAKA,CAAC7L,KAAK,EAAE;EAAA,IAAA8L,MAAA,GAAA1G,YAAA;IAAA2G,MAAA;EACpB,IAAMzE,0BAA0B,GAEMnL,QAAQ,CAAC2K,IAAI;EADnD,OAAAiF,MAAA,GAAOpQ,OAAO,CAACqE,KAAK,CAACsF,MAAM,CAAC,eAC1B1I,KAAA,CAAAQ,aAAA,CAACkK,0BAA0B,EAAAyE,MAAA,CAAArG,EAAA,+BAAA9G,aAAA,KAAAoN,cAAA;IAAA,WAAgC;EAAO,GAAAF,MAAA,GAAE,CAAC;AAEzE;;AAEA;AACA;AACA;AACA,SAASG,OAAOA,CAAAC,MAAA,EAAiB;EAAA,IAAAC,MAAA,GAAA/G,YAAA;EAAA,IAAdgC,UAAU,GAAA8E,MAAA,CAAV9E,UAAU;EAC3B,oBAAOxK,KAAA,CAAAQ,aAAA,CAAcsD,YAAY,CAACoG,IAAI,EAAAsF,cAAA;IAAA,OAAOhF;EAAU,GAAA+E,MAAA,CAAG,CAAC;AAC7D;;AAEA;AACA;AACA;AACA,SAASE,cAAcA,CAAAC,MAAA,EAAiB;EAAA,IAAAC,MAAA,GAAAnH,YAAA;EAAA,IAAdgC,UAAU,GAAAkF,MAAA,CAAVlF,UAAU;EAClC,oBACExK,KAAA,CAAAQ,aAAA,CACUsD,YAAY,CAACoG,IAAI,CAACuB,OAAO,EAAAmE,cAAA;IAAA,OAC5B9L,YAAY,CAAC2I,OAAO;IAAA,OACpBjC,UAAU;IAAA,YACN;EAAU,GAAAmF,MAAA,CACpB,CAAC;AAEN;AAEA,IAAM7L,YAAY,GAAGhF,eAAe,CAClC+B,gBAAgB,EAChB;EACE4L,OAAO,EAAPA,OAAO;EACP3C,MAAM,EAAEvK,QAAQ,CAACuK,MAAM;EACvBzB,IAAI,EAAJA,IAAI;EACJY,OAAO,EAAPA,OAAO;EACPlF,IAAI,EAAJA,IAAI;EACJmG,IAAI,EAAE,CAACA,IAAI,EAAE;IAAEkC,KAAK,EAALA,KAAK;IAAEX,OAAO,EAAEmB,WAAW;IAAE7M,IAAI,EAAEkO,eAAe;IAAE1C,IAAI,EAAEgD;EAAS,CAAC,CAAC;EACpF;AACJ;AACA;EACIc,OAAO,EAAE,CAACA,OAAO,EAAE;IAAE5C,OAAO,EAAEgD,cAAc;IAAErD,KAAK,EAALA;EAAM,CAAC,CAAC;EACtDyD,SAAS,EAAEZ,KAAK;EAChBV,QAAQ,EAAEhD,IAAI;EACduE,KAAK,EAAEvQ,QAAQ,CAACuQ;AAClB,CAAC,EACD;EACEpC,MAAM,EAAE,CAACnO,QAAQ;AACnB,CACF,CAAC;AAEDuE,YAAY,CAACrE,oBAAoB,GAAGA,oBAAoB;AAExD,eAAeqE,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"DropdownMenu.js","names":["ButtonComponent","createComponent","sstyled","Root","lastInteraction","callAllEventHandlers","isAdvanceMode","isFocusInside","setFocus","forkRef","useUID","Dropdown","AbstractDropdown","selectedIndexContext","enhance","Flex","Box","ScrollAreaComponent","hideScrollBarsFromScreenReadersContext","Text","React","style","_sstyled","insert","localizedMessages","ListBoxContextProvider","_ref22","children","createElement","Provider","value","menuItemContext","createContext","DropdownMenuRoot","_AbstractDropdown","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","createRef","_inherits","_createClass","key","uncontrolledProps","_this2","_objectSpread","_superPropGet","visible","setTimeout","focusAndScrollToSelected","get","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","_this3","_this$menuElements","menuElements","isFocusAlreadyInPopper","popperRef","asProps","itemsCount","undefined","scrollToNodeAsync","then","focus","preventScroll","selectedIndex","from","indexOf","handlers","highlightedIndex","afterOpenPopper","_this$menuElements2","itemRef","props","index","node","document","activeElement","getTriggerProps","_this$asProps","Children","uid","hasMenu","DropdownMenu","Menu","displayName","ariaControls","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","getListProps","onKeyDown","handleArrowKeyDown","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemProps","_props$index","_this4","_this$asProps2","realIndex","isHighlighted","itemProps","tabIndex","tag","_props$use","_props$theme","_props$size","use","theme","size","innerOutline","onClick","place","_this5","e","_this5$menuRef$curren","_e$target$getAttribut","_this5$asProps","placement","inlineActions","contains","target","stopPropagation","show","startsWith","hide","isMenuItem","getAttribute","_this5$itemRefs$highl","itemRefs","preventDefault","triggerRef","render","_ref","_this$asProps3","interaction","timeout","_assignProps","Object","values","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","locale","trigger","popper","List","_ref23","_ref2","arguments[0]","_ref13","styles","SDropdownMenuList","SBar","Bar","cn","_assignProps2","Container","Actions","_ref24","_ref3","_ref14","SDropdownMenuActions","_assignProps3","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends","role","_assignProps4","Item","_ref25","_ref5","_ref15","id","disabled","forwardRef","ariaChecked","SDropdownMenuItemContainer","useRef","_React$useState","useState","_React$useState2","_slicedToArray","highlighted","setHighlighted","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","_assignProps5","isKeyboard","Addon","_ref6","_ref16","SDropdownMenuItemAddon","_assignProps6","Trigger","_ref7","_assignProps7","ItemContent","_ref26","_ref8","_ref17","SItemContent","menuItemCtxValue","useContext","subMenu","_React$useState3","Set","_React$useState4","describedby","setDescribedby","element","parent","parentElement","prev","add","_assignProps8","_toConsumableArray","join","ItemContentText","_ref27","_ref9","_ref18","SItemContentText","_assignProps9","ItemHint","_ref28","_ref0","_ref19","SItemHint","_React$useContext","_assignProps0","_ref1","_ref20","_assignProps1","Title","_ref10","_ref21","_assignProps10","Nesting","_ref29","_ref11","_assignProps11","NestingTrigger","_ref30","_ref12","_assignProps12","ItemTitle","Group"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import ButtonComponent from '@semcore/button';\nimport { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';\nimport { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport Dropdown, { AbstractDropdown, selectedIndexContext, enhance } from '@semcore/dropdown';\nimport { Flex, Box } from '@semcore/flex-box';\nimport ScrollAreaComponent, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nconst menuItemContext = React.createContext({});\n\nclass DropdownMenuRoot extends AbstractDropdown {\n static displayName = 'DropdownMenu';\n static style = style;\n static enhance = Object.values(enhance);\n\n static defaultProps = {\n size: 'm',\n defaultVisible: false,\n defaultHighlightedIndex: 0,\n defaultSelectedIndex: 0,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n inlineActions: false,\n placement: 'bottom-start',\n timeout: 0,\n };\n\n static nestedMenuInteraction = {\n trigger: [\n ['onClick', 'onMouseEnter'],\n ['onClick', 'onMouseLeave'],\n ],\n popper: [['onMouseEnter'], ['onMouseLeave']],\n };\n\n actionsRef = React.createRef();\n role = 'menu';\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n setTimeout(() => {\n this.focusAndScrollToSelected();\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n };\n }\n\n get menuElements() {\n const menuElement = this.menuRef.current;\n\n if (!menuElement) {\n return { selected: null, options: null };\n }\n\n const options = menuElement.querySelectorAll(\n '[role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]',\n );\n const selected = menuElement.querySelector('[aria-checked=\"true\"]');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n const { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.asProps.itemsCount !== undefined || isFocusAlreadyInPopper) return;\n\n this.scrollToNodeAsync(selected, true).then(() => {\n if (this.asProps.visible) {\n selected.focus({ preventScroll: true });\n }\n });\n\n const selectedIndex = Array.from(options).indexOf(selected);\n\n if (selectedIndex !== -1) {\n this.handlers.highlightedIndex(selectedIndex);\n }\n }\n\n afterOpenPopper() {\n const { selected, options } = this.menuElements;\n\n // this case is handled slightly differently on line 63.\n if (selected && options && this.asProps.itemsCount === undefined) return;\n\n super.afterOpenPopper();\n }\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n if (node === document.activeElement) {\n super.scrollToNode(node);\n }\n }\n\n getTriggerProps() {\n const { Children, uid, visible } = this.asProps;\n const hasMenu = isAdvanceMode(Children, [DropdownMenu.Menu.displayName]);\n const ariaControls = hasMenu ? `igc-${uid}-list` : `igc-${uid}-popper`;\n\n return {\n ...super.getTriggerProps(),\n 'onKeyDown': callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleOpenKeyDown.bind(this),\n this.handleKeyDownForMenu('trigger'),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': hasMenu ? 'true' : 'dialog',\n };\n }\n\n getListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n ),\n };\n }\n\n getActionsProps() {\n return {\n ...this.getListProps(),\n ref: this.actionsRef,\n onKeyDown: callAllEventHandlers(\n this.handlePreventTabOnActions.bind(this),\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getItemProps(props, index) {\n const { highlightedIndex, visible } = this.asProps;\n const realIndex = props.index ?? index;\n const isHighlighted = realIndex === highlightedIndex;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: isHighlighted && visible ? 0 : -1,\n ref: (node) => this.itemRef(props, realIndex, node),\n actionsRef: this.actionsRef,\n };\n\n if (props.tag === ButtonComponent) {\n itemProps.use = props.use ?? 'tertiary';\n itemProps.theme = props.theme ?? 'muted';\n itemProps.size = props.size ?? 's';\n itemProps.innerOutline = false;\n }\n\n if (props.selected) {\n itemProps['aria-checked'] = true;\n }\n\n if (super.childRole === 'menuitemradio') {\n itemProps.onClick = () => {\n this.handlers.visible(false);\n };\n }\n\n return itemProps;\n }\n\n handleKeyDownForMenu(place) {\n return (e) => {\n const { visible, placement, inlineActions } = this.asProps;\n\n // stop propagation keyboard events if it calls not on DropdownMenu.Items\n if (place === 'list' && !this.menuRef.current?.contains(e.target) && !inlineActions) {\n e.stopPropagation();\n return false;\n }\n\n const show =\n (e.key === 'ArrowRight' && placement?.startsWith('right')) ||\n (e.key === 'ArrowLeft' && placement?.startsWith('left')) ||\n ((e.key === 'Enter' || e.key === ' ') && !inlineActions);\n const hide =\n (e.key === 'ArrowLeft' && placement?.startsWith('right')) ||\n (e.key === 'ArrowRight' && placement?.startsWith('left')) ||\n e.key === 'Escape';\n const isMenuItem = e.target.getAttribute('role')?.startsWith(super.childRole);\n\n if (place === 'trigger' && show && isMenuItem) {\n this.handlers.visible(true);\n this.handlers.highlightedIndex(0);\n setTimeout(() => {\n const { highlightedIndex } = this.asProps;\n this.itemRefs[highlightedIndex]?.focus();\n }, 0);\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n if (place === 'list' && visible && hide && isMenuItem) {\n if (\n !inlineActions ||\n (inlineActions && (e.key === 'Escape' || this.asProps.highlightedIndex === 0))\n ) {\n this.handlers.visible(false);\n if (this.triggerRef.current) {\n setFocus(this.triggerRef.current);\n }\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n };\n }\n\n handlePreventTabOnActions(e) {\n if (e.key === 'Tab') {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n }\n\n render() {\n const { Children, selectedIndex, interaction, timeout } = this.asProps;\n\n this.itemProps = [];\n\n return (\n <selectedIndexContext.Provider value={selectedIndex}>\n <Root\n render={Dropdown}\n timeout={timeout || (interaction === 'hover' ? [0, 100] : undefined)}\n >\n <Children />\n </Root>\n </selectedIndexContext.Provider>\n );\n }\n}\n\nfunction List({ styles, Children }) {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <ScrollAreaComponent.Container tabIndex={undefined}>\n <Children />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n}\nfunction Actions({ styles }) {\n const SDropdownMenuActions = Root;\n\n return sstyled(styles)(<SDropdownMenuActions render={Flex} />);\n}\n\nfunction Menu(props) {\n const {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n } = props;\n const popperProps = {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n };\n return (\n <ListBoxContextProvider>\n <DropdownMenu.Popper {...popperProps} role={null}>\n <Root render={DropdownMenu.List} />\n </DropdownMenu.Popper>\n </ListBoxContextProvider>\n );\n}\n\nfunction Item({\n id,\n styles,\n disabled,\n Children,\n forwardRef,\n role,\n tabIndex,\n actionsRef,\n 'aria-checked': ariaChecked,\n}) {\n const SDropdownMenuItemContainer = Root;\n const itemRef = React.useRef();\n\n const [highlighted, setHighlighted] = React.useState(false);\n\n const menuItemContextValue = {\n contentId: id,\n ref: forkRef(forwardRef, itemRef),\n role,\n tabIndex,\n ariaChecked,\n };\n const ariaDescribes = [];\n\n const hasSubMenu = isAdvanceMode(Children, [DropdownMenu.displayName], true);\n const hasHint = isAdvanceMode(Children, [DropdownMenu.Item.Hint.displayName], true);\n const advancedMode =\n isAdvanceMode(Children, [DropdownMenu.Item.Content.displayName], true) || hasSubMenu || hasHint;\n\n if (hasHint) {\n const hintId = `igc-${useUID()}-option-hint`;\n\n menuItemContextValue.hintId = hintId;\n ariaDescribes.push(hintId);\n }\n\n if (hasSubMenu) {\n menuItemContextValue.hasSubMenu = true;\n }\n\n menuItemContextValue.ariaDescribes = ariaDescribes;\n\n React.useEffect(() => {\n const onFocus = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(true);\n\n if (hasSubMenu) {\n e.stopPropagation();\n }\n }\n };\n const onBlur = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(false);\n\n if (actionsRef.current) {\n itemRef.current.tabIndex = -1;\n }\n }\n };\n\n document.addEventListener('focus', onFocus, { capture: true });\n document.addEventListener('blur', onBlur, { capture: true });\n\n return () => {\n document.removeEventListener('focus', onFocus, { capture: true });\n document.removeEventListener('blur', onBlur, { capture: true });\n };\n }, [itemRef.current]);\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : menuItemContextValue.ref}\n use:highlighted={!disabled && highlighted && lastInteraction.isKeyboard()}\n use:role={advancedMode ? undefined : role}\n use:id={advancedMode ? undefined : id}\n use:tabIndex={advancedMode ? undefined : tabIndex}\n use:aria-checked={advancedMode ? undefined : ariaChecked}\n >\n <Children />\n </SDropdownMenuItemContainer>\n </menuItemContext.Provider>,\n );\n}\n\nfunction Addon(props) {\n const SDropdownMenuItemAddon = Root;\n return sstyled(props.styles)(<SDropdownMenuItemAddon render={Box} />);\n}\n\nfunction Trigger() {\n return <Root render={Dropdown.Trigger} />;\n}\n\nfunction ItemContent({ styles }) {\n const SItemContent = Root;\n const ref = React.useRef();\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n let subMenu = undefined;\n\n if (menuItemCtxValue.hasSubMenu) {\n subMenu = 'true';\n }\n\n const [describedby, setDescribedby] = React.useState(new Set(menuItemCtxValue.ariaDescribes));\n\n React.useEffect(() => {\n const element = ref.current;\n const parent = element?.parentElement;\n\n if (\n parent.getAttribute('aria-haspopup') === 'true' &&\n parent.getAttribute('aria-describedby')\n ) {\n setDescribedby((prev) => {\n prev.add(parent.getAttribute('aria-describedby'));\n\n return new Set(prev);\n });\n }\n }, [menuItemCtxValue.ariaDescribes]);\n\n return sstyled(styles)(\n <SItemContent\n render={Flex}\n role={menuItemCtxValue.role}\n id={menuItemCtxValue.contentId}\n tabIndex={menuItemCtxValue.tabIndex}\n ref={forkRef(menuItemCtxValue.ref, ref)}\n use:aria-describedby={[...describedby].join(' ')}\n aria-haspopup={menuItemCtxValue.hasSubMenu ? 'true' : undefined}\n aria-expanded={subMenu}\n aria-checked={menuItemCtxValue.ariaChecked}\n alignItems='center'\n justifyContent={menuItemCtxValue.hasSubMenu ? 'space-between' : undefined}\n />,\n );\n}\n\nfunction ItemContentText({ styles }) {\n const SItemContentText = Root;\n return sstyled(styles)(<SItemContentText render={Text} />);\n}\n\nfunction ItemHint({ styles }) {\n const SItemHint = Root;\n const { hintId } = React.useContext(menuItemContext);\n\n return sstyled(styles)(<SItemHint render={Flex} id={hintId} aria-hidden='true' />);\n}\n\n/**\n * @deprecated Use Item hint\n */\nfunction Hint(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='hint' />,\n );\n}\n/**\n * @deprecated Use Group with title prop\n */\nfunction Title(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='title' />,\n );\n}\n\n/**\n * @deprecated\n */\nfunction Nesting({ forwardRef }) {\n return <Root render={DropdownMenu.Item} ref={forwardRef} />;\n}\n\n/**\n * @deprecated\n */\nfunction NestingTrigger({ forwardRef }) {\n return (\n <Root\n render={DropdownMenu.Item.Content}\n tag={DropdownMenu.Trigger}\n ref={forwardRef}\n use:role='menuitem'\n />\n );\n}\n\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\n /**\n * @deprecated. Use just Item. See examples on\n */\n Nesting: [Nesting, { Trigger: NestingTrigger, Addon }],\n ItemTitle: Title,\n ItemHint: Hint,\n Group: Dropdown.Group,\n },\n {\n parent: [Dropdown],\n },\n);\n\nDropdownMenu.selectedIndexContext = selectedIndexContext;\n\nexport default DropdownMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ import { createComponent, sstyled, assignProps, lastInteraction } from "@semcore
12
12
  import ButtonComponent from "@semcore/button";
13
13
  import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
14
14
  import { isAdvanceMode } from "@semcore/core/lib/utils/findComponent";
15
+ import { isFocusInside } from "@semcore/core/lib/utils/focus-lock/isFocusInside";
15
16
  import { setFocus } from "@semcore/core/lib/utils/focus-lock/setFocus";
16
17
  import { forkRef } from "@semcore/core/lib/utils/ref";
17
18
  import { useUID } from "@semcore/core/lib/utils/uniqueID";
@@ -26,26 +27,26 @@ var style = (
26
27
  /*__reshadow_css_start__*/
27
28
  (sstyled.insert(
28
29
  /*__inner_css_start__*/
29
- ".___SDropdownMenuList_1opgv_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1opgv_gg_ .___SBar_1opgv_gg_{z-index:3}.___SDropdownMenuList_1opgv_gg_ .___SShadowHorizontal_1opgv_gg_:after,.___SDropdownMenuList_1opgv_gg_ .___SShadowHorizontal_1opgv_gg_:before,.___SDropdownMenuList_1opgv_gg_ .___SShadowVertical_1opgv_gg_:after,.___SDropdownMenuList_1opgv_gg_ .___SShadowVertical_1opgv_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1opgv_gg_ .___SItemContent_1opgv_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1opgv_gg_.__nesting-trigger_1opgv_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1opgv_gg_,.___SItemContentText_1opgv_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1opgv_gg_:first-child,.___SItemContentText_1opgv_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1opgv_gg_:last-child,.___SItemContentText_1opgv_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1opgv_gg_,.___SDropdownMenuNesting_1opgv_gg_._size_l_1opgv_gg_,.___SDropdownMenuNesting_1opgv_gg_._size_m_1opgv_gg_{padding:0}.___SDropdownMenuNesting_1opgv_gg_.__highlighted_1opgv_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1opgv_gg_._size_l_1opgv_gg_,.___SDropdownNestingItem_1opgv_gg_._size_m_1opgv_gg_{padding-right:0}.___SDropdownNestingItem_1opgv_gg_ .___SDropdownMenuItemContainer_1opgv_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1opgv_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}",
30
+ ".___SDropdownMenuList_1tow4_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1tow4_gg_ .___SBar_1tow4_gg_{z-index:3}.___SDropdownMenuList_1tow4_gg_ .___SShadowHorizontal_1tow4_gg_:after,.___SDropdownMenuList_1tow4_gg_ .___SShadowHorizontal_1tow4_gg_:before,.___SDropdownMenuList_1tow4_gg_ .___SShadowVertical_1tow4_gg_:after,.___SDropdownMenuList_1tow4_gg_ .___SShadowVertical_1tow4_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1tow4_gg_ .___SItemContent_1tow4_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1tow4_gg_.__nesting-trigger_1tow4_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1tow4_gg_,.___SItemContentText_1tow4_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1tow4_gg_:first-child,.___SItemContentText_1tow4_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1tow4_gg_:last-child,.___SItemContentText_1tow4_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1tow4_gg_,.___SDropdownMenuNesting_1tow4_gg_._size_l_1tow4_gg_,.___SDropdownMenuNesting_1tow4_gg_._size_m_1tow4_gg_{padding:0}.___SDropdownMenuNesting_1tow4_gg_.__highlighted_1tow4_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1tow4_gg_._size_l_1tow4_gg_,.___SDropdownNestingItem_1tow4_gg_._size_m_1tow4_gg_{padding-right:0}.___SDropdownNestingItem_1tow4_gg_ .___SDropdownMenuItemContainer_1tow4_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1tow4_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}",
30
31
  /*__inner_css_end__*/
31
- "1opgv_gg_"
32
+ "1tow4_gg_"
32
33
  ), /*__reshadow_css_end__*/
33
34
  {
34
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1opgv_gg_",
35
- "_nesting-trigger": "__nesting-trigger_1opgv_gg_",
36
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1opgv_gg_",
37
- "_size_l": "_size_l_1opgv_gg_",
38
- "_size_m": "_size_m_1opgv_gg_",
39
- "_highlighted": "__highlighted_1opgv_gg_",
40
- "__SDropdownNestingItem": "___SDropdownNestingItem_1opgv_gg_",
41
- "__SItemHint": "___SItemHint_1opgv_gg_",
42
- "__SDropdownMenuList": "___SDropdownMenuList_1opgv_gg_",
43
- "__SBar": "___SBar_1opgv_gg_",
44
- "__SShadowHorizontal": "___SShadowHorizontal_1opgv_gg_",
45
- "__SShadowVertical": "___SShadowVertical_1opgv_gg_",
46
- "__SItemContent": "___SItemContent_1opgv_gg_",
47
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1opgv_gg_",
48
- "__SItemContentText": "___SItemContentText_1opgv_gg_"
35
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1tow4_gg_",
36
+ "_nesting-trigger": "__nesting-trigger_1tow4_gg_",
37
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_1tow4_gg_",
38
+ "_size_l": "_size_l_1tow4_gg_",
39
+ "_size_m": "_size_m_1tow4_gg_",
40
+ "_highlighted": "__highlighted_1tow4_gg_",
41
+ "__SDropdownNestingItem": "___SDropdownNestingItem_1tow4_gg_",
42
+ "__SItemHint": "___SItemHint_1tow4_gg_",
43
+ "__SDropdownMenuList": "___SDropdownMenuList_1tow4_gg_",
44
+ "__SBar": "___SBar_1tow4_gg_",
45
+ "__SShadowHorizontal": "___SShadowHorizontal_1tow4_gg_",
46
+ "__SShadowVertical": "___SShadowVertical_1tow4_gg_",
47
+ "__SItemContent": "___SItemContent_1tow4_gg_",
48
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1tow4_gg_",
49
+ "__SItemContentText": "___SItemContentText_1tow4_gg_"
49
50
  })
50
51
  );
51
52
  var ListBoxContextProvider = function ListBoxContextProvider2(_ref22) {
@@ -76,23 +77,55 @@ var DropdownMenuRoot = /* @__PURE__ */ (function(_AbstractDropdown) {
76
77
  visible: [null, function(visible) {
77
78
  if (visible === true) {
78
79
  setTimeout(function() {
79
- var _this2$menuRef$curren, _this2$menuRef$curren2;
80
- var options = (_this2$menuRef$curren = _this2.menuRef.current) === null || _this2$menuRef$curren === void 0 ? void 0 : _this2$menuRef$curren.querySelectorAll('[role="menuitemcheckbox"], [role="menuitemradio"]');
81
- var selected = (_this2$menuRef$curren2 = _this2.menuRef.current) === null || _this2$menuRef$curren2 === void 0 ? void 0 : _this2$menuRef$curren2.querySelector('[aria-checked="true"]');
82
- if (selected && options && _this2.asProps.itemsCount === void 0) {
83
- _this2.scrollToNode(selected, true);
84
- for (var i = 0; i < options.length; i++) {
85
- if (options[i] === selected) {
86
- _this2.handlers.highlightedIndex(i);
87
- break;
88
- }
89
- }
90
- }
80
+ _this2.focusAndScrollToSelected();
91
81
  }, 30);
92
82
  }
93
83
  }]
94
84
  });
95
85
  }
86
+ }, {
87
+ key: "menuElements",
88
+ get: function get() {
89
+ var menuElement = this.menuRef.current;
90
+ if (!menuElement) {
91
+ return {
92
+ selected: null,
93
+ options: null
94
+ };
95
+ }
96
+ var options = menuElement.querySelectorAll('[role="menuitemcheckbox"], [role="menuitemradio"]');
97
+ var selected = menuElement.querySelector('[aria-checked="true"]');
98
+ return {
99
+ selected,
100
+ options
101
+ };
102
+ }
103
+ }, {
104
+ key: "focusAndScrollToSelected",
105
+ value: function focusAndScrollToSelected() {
106
+ var _this3 = this;
107
+ var _this$menuElements = this.menuElements, selected = _this$menuElements.selected, options = _this$menuElements.options;
108
+ var isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);
109
+ if (!selected || !options || this.asProps.itemsCount !== void 0 || isFocusAlreadyInPopper) return;
110
+ this.scrollToNodeAsync(selected, true).then(function() {
111
+ if (_this3.asProps.visible) {
112
+ selected.focus({
113
+ preventScroll: true
114
+ });
115
+ }
116
+ });
117
+ var selectedIndex = Array.from(options).indexOf(selected);
118
+ if (selectedIndex !== -1) {
119
+ this.handlers.highlightedIndex(selectedIndex);
120
+ }
121
+ }
122
+ }, {
123
+ key: "afterOpenPopper",
124
+ value: function afterOpenPopper() {
125
+ var _this$menuElements2 = this.menuElements, selected = _this$menuElements2.selected, options = _this$menuElements2.options;
126
+ if (selected && options && this.asProps.itemsCount === void 0) return;
127
+ _superPropGet(DropdownMenuRoot2, "afterOpenPopper", this, 3)([]);
128
+ }
96
129
  }, {
97
130
  key: "itemRef",
98
131
  value: function itemRef(props, index, node) {
@@ -138,14 +171,14 @@ var DropdownMenuRoot = /* @__PURE__ */ (function(_AbstractDropdown) {
138
171
  }, {
139
172
  key: "getItemProps",
140
173
  value: function getItemProps(props, index) {
141
- var _props$index, _this3 = this;
174
+ var _props$index, _this4 = this;
142
175
  var _this$asProps2 = this.asProps, highlightedIndex = _this$asProps2.highlightedIndex, visible = _this$asProps2.visible;
143
176
  var realIndex = (_props$index = props.index) !== null && _props$index !== void 0 ? _props$index : index;
144
177
  var isHighlighted = realIndex === highlightedIndex;
145
178
  var itemProps = _objectSpread(_objectSpread({}, _superPropGet(DropdownMenuRoot2, "getItemProps", this, 3)([props, realIndex])), {}, {
146
179
  tabIndex: isHighlighted && visible ? 0 : -1,
147
180
  ref: function ref(node) {
148
- return _this3.itemRef(props, realIndex, node);
181
+ return _this4.itemRef(props, realIndex, node);
149
182
  },
150
183
  actionsRef: this.actionsRef
151
184
  });
@@ -161,7 +194,7 @@ var DropdownMenuRoot = /* @__PURE__ */ (function(_AbstractDropdown) {
161
194
  }
162
195
  if (_superPropGet(DropdownMenuRoot2, "childRole", this, 1) === "menuitemradio") {
163
196
  itemProps.onClick = function() {
164
- _this3.handlers.visible(false);
197
+ _this4.handlers.visible(false);
165
198
  };
166
199
  }
167
200
  return itemProps;
@@ -169,34 +202,34 @@ var DropdownMenuRoot = /* @__PURE__ */ (function(_AbstractDropdown) {
169
202
  }, {
170
203
  key: "handleKeyDownForMenu",
171
204
  value: function handleKeyDownForMenu(place) {
172
- var _this4 = this;
205
+ var _this5 = this;
173
206
  return function(e) {
174
- var _this4$menuRef$curren, _e$target$getAttribut;
175
- var _this4$asProps = _this4.asProps, visible = _this4$asProps.visible, placement = _this4$asProps.placement, inlineActions = _this4$asProps.inlineActions;
176
- if (place === "list" && !((_this4$menuRef$curren = _this4.menuRef.current) !== null && _this4$menuRef$curren !== void 0 && _this4$menuRef$curren.contains(e.target)) && !inlineActions) {
207
+ var _this5$menuRef$curren, _e$target$getAttribut;
208
+ var _this5$asProps = _this5.asProps, visible = _this5$asProps.visible, placement = _this5$asProps.placement, inlineActions = _this5$asProps.inlineActions;
209
+ if (place === "list" && !((_this5$menuRef$curren = _this5.menuRef.current) !== null && _this5$menuRef$curren !== void 0 && _this5$menuRef$curren.contains(e.target)) && !inlineActions) {
177
210
  e.stopPropagation();
178
211
  return false;
179
212
  }
180
213
  var show = e.key === "ArrowRight" && (placement === null || placement === void 0 ? void 0 : placement.startsWith("right")) || e.key === "ArrowLeft" && (placement === null || placement === void 0 ? void 0 : placement.startsWith("left")) || (e.key === "Enter" || e.key === " ") && !inlineActions;
181
214
  var hide = e.key === "ArrowLeft" && (placement === null || placement === void 0 ? void 0 : placement.startsWith("right")) || e.key === "ArrowRight" && (placement === null || placement === void 0 ? void 0 : placement.startsWith("left")) || e.key === "Escape";
182
- var isMenuItem = (_e$target$getAttribut = e.target.getAttribute("role")) === null || _e$target$getAttribut === void 0 ? void 0 : _e$target$getAttribut.startsWith(_superPropGet(DropdownMenuRoot2, "childRole", _this4, 1));
215
+ var isMenuItem = (_e$target$getAttribut = e.target.getAttribute("role")) === null || _e$target$getAttribut === void 0 ? void 0 : _e$target$getAttribut.startsWith(_superPropGet(DropdownMenuRoot2, "childRole", _this5, 1));
183
216
  if (place === "trigger" && show && isMenuItem) {
184
- _this4.handlers.visible(true);
185
- _this4.handlers.highlightedIndex(0);
217
+ _this5.handlers.visible(true);
218
+ _this5.handlers.highlightedIndex(0);
186
219
  setTimeout(function() {
187
- var _this4$itemRefs$highl;
188
- var highlightedIndex = _this4.asProps.highlightedIndex;
189
- (_this4$itemRefs$highl = _this4.itemRefs[highlightedIndex]) === null || _this4$itemRefs$highl === void 0 || _this4$itemRefs$highl.focus();
220
+ var _this5$itemRefs$highl;
221
+ var highlightedIndex = _this5.asProps.highlightedIndex;
222
+ (_this5$itemRefs$highl = _this5.itemRefs[highlightedIndex]) === null || _this5$itemRefs$highl === void 0 || _this5$itemRefs$highl.focus();
190
223
  }, 0);
191
224
  e.preventDefault();
192
225
  e.stopPropagation();
193
226
  return false;
194
227
  }
195
228
  if (place === "list" && visible && hide && isMenuItem) {
196
- if (!inlineActions || inlineActions && (e.key === "Escape" || _this4.asProps.highlightedIndex === 0)) {
197
- _this4.handlers.visible(false);
198
- if (_this4.triggerRef.current) {
199
- setFocus(_this4.triggerRef.current);
229
+ if (!inlineActions || inlineActions && (e.key === "Escape" || _this5.asProps.highlightedIndex === 0)) {
230
+ _this5.handlers.visible(false);
231
+ if (_this5.triggerRef.current) {
232
+ setFocus(_this5.triggerRef.current);
200
233
  }
201
234
  e.preventDefault();
202
235
  e.stopPropagation();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/dropdown-menu",
3
3
  "description": "Semrush DropdownMenu Component",
4
- "version": "16.1.12",
4
+ "version": "16.1.14-prerelease.1",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,10 +14,10 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/button": "16.0.11",
18
- "@semcore/dropdown": "16.1.1",
19
- "@semcore/icon": "16.7.2",
20
- "@semcore/typography": "16.3.1",
17
+ "@semcore/button": "16.0.12-prerelease.1",
18
+ "@semcore/dropdown": "16.1.3-prerelease.1",
19
+ "@semcore/icon": "16.7.3-prerelease.1",
20
+ "@semcore/typography": "16.3.2-prerelease.1",
21
21
  "@semcore/popper": "16.0.11",
22
22
  "@semcore/flex-box": "16.0.11",
23
23
  "@semcore/scroll-area": "16.0.11",
@@ -33,11 +33,11 @@
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/classnames": "2.2.6",
36
- "@semcore/core": "16.5.1",
37
36
  "@semcore/testing-utils": "1.0.0",
38
- "@semcore/base-trigger": "16.4.3",
39
- "@semcore/button": "16.0.11",
40
- "@semcore/icon": "16.7.2"
37
+ "@semcore/core": "16.5.1",
38
+ "@semcore/base-trigger": "16.4.4-prerelease.1",
39
+ "@semcore/button": "16.0.12-prerelease.1",
40
+ "@semcore/icon": "16.7.3-prerelease.1"
41
41
  },
42
42
  "scripts": {
43
43
  "build": "pnpm semcore-builder --source=js && pnpm vite build"