@semcore/dropdown-menu 17.0.0-prerelease.27 → 17.0.0-prerelease.30

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,12 +2,17 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [17.0.0] - 2026-02-23
5
+ ## [17.0.0] - 2026-03-09
6
6
 
7
7
  ### BREAK
8
8
 
9
9
  - New major version.
10
10
 
11
+ ### Fixed
12
+
13
+ - Border-radius for shadow under sticky group.
14
+ - Overscroll "bounce" effect for sticky groups.
15
+
11
16
  ## [16.2.2] - 2026-02-10
12
17
 
13
18
  ### Fixed
@@ -24,24 +24,25 @@ var _Context = require("./components/Context");
24
24
  var _VirtualList = require("./components/VirtualList");
25
25
  var _intergalacticDynamicLocales = require("./translations/__intergalactic-dynamic-locales");
26
26
  /*!__reshadow-styles__:"./style/dropdown-menu.shadow.css"*/
27
- const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1r615_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_1r615_gg_ .___SBar_1r615_gg_{z-index:3}.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:before,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1r615_gg_ .___SItemContent_1r615_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1r615_gg_.__nesting-trigger_1r615_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1r615_gg_,.___SItemContentText_1r615_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1r615_gg_:first-child,.___SItemContentText_1r615_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1r615_gg_:last-child,.___SItemContentText_1r615_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_l_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_m_1r615_gg_{padding:0}.___SDropdownMenuNesting_1r615_gg_.__highlighted_1r615_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_1r615_gg_._size_l_1r615_gg_,.___SDropdownNestingItem_1r615_gg_._size_m_1r615_gg_{padding-right:0}.___SDropdownNestingItem_1r615_gg_ .___SDropdownMenuItemContainer_1r615_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1r615_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1r615_gg_"),
27
+ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_wdv28_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_wdv28_gg_ .___SBar_wdv28_gg_{z-index:3}.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:before,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_wdv28_gg_ .___SItemContent_wdv28_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_wdv28_gg_.__nesting-trigger_wdv28_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_wdv28_gg_,.___SItemContentText_wdv28_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_wdv28_gg_:first-child,.___SItemContentText_wdv28_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_wdv28_gg_:last-child,.___SItemContentText_wdv28_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_m_wdv28_gg_{padding:0}.___SDropdownMenuNesting_wdv28_gg_.__highlighted_wdv28_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_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownNestingItem_wdv28_gg_._size_m_wdv28_gg_{padding-right:0}.___SDropdownNestingItem_wdv28_gg_ .___SDropdownMenuItemContainer_wdv28_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_wdv28_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___SScrollContainer_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true]){overscroll-behavior:none}", /*__inner_css_end__*/"wdv28_gg_"),
28
28
  /*__reshadow_css_end__*/
29
29
  {
30
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1r615_gg_",
31
- "_nesting-trigger": "__nesting-trigger_1r615_gg_",
32
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1r615_gg_",
33
- "_size_l": "_size_l_1r615_gg_",
34
- "_size_m": "_size_m_1r615_gg_",
35
- "_highlighted": "__highlighted_1r615_gg_",
36
- "__SDropdownNestingItem": "___SDropdownNestingItem_1r615_gg_",
37
- "__SItemHint": "___SItemHint_1r615_gg_",
38
- "__SDropdownMenuList": "___SDropdownMenuList_1r615_gg_",
39
- "__SBar": "___SBar_1r615_gg_",
40
- "__SShadowHorizontal": "___SShadowHorizontal_1r615_gg_",
41
- "__SShadowVertical": "___SShadowVertical_1r615_gg_",
42
- "__SItemContent": "___SItemContent_1r615_gg_",
43
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1r615_gg_",
44
- "__SItemContentText": "___SItemContentText_1r615_gg_"
30
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_wdv28_gg_",
31
+ "_nesting-trigger": "__nesting-trigger_wdv28_gg_",
32
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_wdv28_gg_",
33
+ "_size_l": "_size_l_wdv28_gg_",
34
+ "_size_m": "_size_m_wdv28_gg_",
35
+ "_highlighted": "__highlighted_wdv28_gg_",
36
+ "__SDropdownNestingItem": "___SDropdownNestingItem_wdv28_gg_",
37
+ "__SItemHint": "___SItemHint_wdv28_gg_",
38
+ "__SDropdownMenuList": "___SDropdownMenuList_wdv28_gg_",
39
+ "__SBar": "___SBar_wdv28_gg_",
40
+ "__SShadowHorizontal": "___SShadowHorizontal_wdv28_gg_",
41
+ "__SShadowVertical": "___SShadowVertical_wdv28_gg_",
42
+ "__SItemContent": "___SItemContent_wdv28_gg_",
43
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_wdv28_gg_",
44
+ "__SItemContentText": "___SItemContentText_wdv28_gg_",
45
+ "__SScrollContainer": "___SScrollContainer_wdv28_gg_"
45
46
  });
46
47
  const menuItemContext = /*#__PURE__*/_react.default.createContext({});
47
48
  class DropdownMenuRoot extends _dropdown.AbstractDropdown {
@@ -305,15 +306,16 @@ function List({
305
306
  _ref1;
306
307
  const SDropdownMenuList = _baseComponents.ScrollArea;
307
308
  const SBar = _baseComponents.ScrollArea.Bar;
309
+ const SScrollContainer = _baseComponents.ScrollArea.Container;
308
310
  return _ref1 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_Context.ListBoxContextProvider, _ref1.cn("ListBoxContextProvider", {}), /*#__PURE__*/_react.default.createElement(SDropdownMenuList, _ref1.cn("SDropdownMenuList", {
309
311
  ...(0, _core.assignProps)({
310
312
  "shadow": true,
311
313
  "shadowSize": 16,
312
314
  "shadowTheme": 'light'
313
315
  }, _ref2)
314
- }), /*#__PURE__*/_react.default.createElement(_baseComponents.ScrollArea.Container, {
315
- tabIndex: undefined
316
- }, /*#__PURE__*/_react.default.createElement(Children, _ref1.cn("Children", {}))), /*#__PURE__*/_react.default.createElement(SBar, _ref1.cn("SBar", {
316
+ }), /*#__PURE__*/_react.default.createElement(SScrollContainer, _ref1.cn("SScrollContainer", {
317
+ "tabIndex": undefined
318
+ }), /*#__PURE__*/_react.default.createElement(Children, _ref1.cn("Children", {}))), /*#__PURE__*/_react.default.createElement(SBar, _ref1.cn("SBar", {
317
319
  "orientation": 'horizontal'
318
320
  })), /*#__PURE__*/_react.default.createElement(SBar, _ref1.cn("SBar", {
319
321
  "orientation": 'vertical'
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["_core","require","_baseComponents","_button","_interopRequireDefault","_assignProps1","_findComponent","_isFocusInside","_setFocus","_ref16","_uniqueID","_dropdown","_interopRequireWildcard","_typography","_react","_Context","_VirtualList","_intergalacticDynamicLocales","style","sstyled","insert","menuItemContext","React","createContext","DropdownMenuRoot","AbstractDropdown","constructor","args","_defineProperty2","default","createRef","uncontrolledProps","visible","setTimeout","focusAndScrollToSelected","menuElements","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","isFocusAlreadyInPopper","isFocusInside","popperRef","dataset","isVirtual","scrollToNodeAsync","then","asProps","focus","preventScroll","selectedIndex","Array","from","indexOf","handlers","highlightedIndex","afterOpenPopper","itemRef","props","index","node","document","activeElement","scrollToNode","getTriggerProps","Children","uid","hasMenu","isAdvanceMode","DropdownMenu","Menu","displayName","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","undefined","getListProps","onKeyDown","handleArrowKeyDown","getVirtualListProps","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemTabIndex","itemIndex","disabled","isHighlighted","shouldRecalculateItemTabIndex","getItemProps","realIndex","itemProps","tabIndex","tag","ButtonComponent","use","theme","size","innerOutline","childRole","onClick","place","e","placement","inlineActions","contains","target","stopPropagation","show","key","startsWith","hide","isMenuItem","getAttribute","highlightedIndexProps","findIndex","p","itemRefs","preventDefault","triggerRef","setFocus","render","_ref","interaction","timeout","createElement","selectedIndexContext","Provider","value","Dropdown","assignProps","Object","values","enhance","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","localizedMessages","locale","trigger","popper","List","styles","_ref2","arguments[0]","_ref1","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","ListBoxContextProvider","cn","ScrollArea","Container","Actions","_ref3","_ref10","SDropdownMenuActions","Flex","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends2","role","Item","id","forwardRef","ariaChecked","_ref5","_ref11","SDropdownMenuItemContainer","useRef","highlighted","setHighlighted","useState","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","useUID","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","forkRef","lastInteraction","isKeyboard","Addon","_ref6","_ref12","SDropdownMenuItemAddon","Box","Trigger","_ref7","ItemContent","_ref8","_ref13","SItemContent","menuItemCtxValue","useContext","subMenu","describedby","setDescribedby","Set","element","parent","parentElement","prev","add","join","ItemContentText","ellipsis","hintProps","_ref9","_ref14","SItemContentText","Text","Fragment","ItemHint","_ref0","_ref15","SItemHint","createComponent","VirtualList","Group","_default","exports"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import { Flex, ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport 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 { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './components/Context';\nimport { VirtualList } from './components/VirtualList';\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\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 /**\n * TODO: It needs to be reconsidered in a future implementation so that component accepts items as a prop instead of JSX.\n * Tab index recalculation flag.\n *\n * When an item becomes disabled while highlighted, we need to transfer focus\n * to the next available focusable item. This flag ensures the focus lock\n * remains within proper boundaries during the initial render cycle.\n */\n shouldRecalculateItemTabIndex = false;\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 }, 50);\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\"]:not([disabled])');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n let { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.menuRef.current?.dataset.isVirtual || 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 if (selected && options && !this.menuRef.current?.dataset.isVirtual) 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 getVirtualListProps() {\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 getItemTabIndex(props, itemIndex) {\n const { disabled, index } = props;\n const { highlightedIndex, visible } = this.asProps;\n\n if (!visible) return -1;\n\n const isHighlighted = (index ?? itemIndex) === highlightedIndex;\n if (isHighlighted && !disabled) {\n return 0;\n }\n\n if (disabled && isHighlighted) {\n this.shouldRecalculateItemTabIndex = true;\n }\n\n if (!isHighlighted && !disabled && this.shouldRecalculateItemTabIndex) {\n this.shouldRecalculateItemTabIndex = false;\n return 0;\n }\n\n return -1;\n }\n\n getItemProps(props, index) {\n const realIndex = props.index ?? index;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: this.getItemTabIndex(props, index),\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 let { highlightedIndex } = this.asProps;\n const highlightedIndexProps = this.itemProps[highlightedIndex];\n\n if (highlightedIndexProps?.disabled) {\n highlightedIndex = this.itemProps.findIndex((p) => !p.disabled);\n }\n\n if (highlightedIndex === -1) return;\n\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: itemRef,\n forwardRef,\n role,\n tabIndex,\n ariaChecked,\n disabled,\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 });\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : forkRef(itemRef, forwardRef)}\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, menuItemCtxValue.forwardRef, 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 disabled={menuItemCtxValue.disabled}\n />,\n );\n}\n\nfunction ItemContentText({ styles, ellipsis = false, hintProps = {} }) {\n const SItemContentText = Root;\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n if (menuItemCtxValue.ref) {\n hintProps.triggerRef = menuItemCtxValue.ref;\n }\n\n return sstyled(styles)(\n <>\n <SItemContentText\n render={Text}\n ellipsis={ellipsis}\n hintProps={hintProps}\n />\n </>,\n );\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\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n VirtualList,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\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","_baseComponents","_button","_interopRequireDefault","_assignProps1","_findComponent","_isFocusInside","_setFocus","_ref16","_uniqueID","_dropdown","_interopRequireWildcard","_typography","_react","_Context","_VirtualList","_intergalacticDynamicLocales","style","sstyled","insert","menuItemContext","React","createContext","DropdownMenuRoot","AbstractDropdown","constructor","args","_defineProperty2","default","createRef","uncontrolledProps","visible","setTimeout","focusAndScrollToSelected","menuElements","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","isFocusAlreadyInPopper","isFocusInside","popperRef","dataset","isVirtual","scrollToNodeAsync","then","asProps","focus","preventScroll","selectedIndex","Array","from","indexOf","handlers","highlightedIndex","afterOpenPopper","itemRef","props","index","node","document","activeElement","scrollToNode","getTriggerProps","Children","uid","hasMenu","isAdvanceMode","DropdownMenu","Menu","displayName","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","undefined","getListProps","onKeyDown","handleArrowKeyDown","getVirtualListProps","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemTabIndex","itemIndex","disabled","isHighlighted","shouldRecalculateItemTabIndex","getItemProps","realIndex","itemProps","tabIndex","tag","ButtonComponent","use","theme","size","innerOutline","childRole","onClick","place","e","placement","inlineActions","contains","target","stopPropagation","show","key","startsWith","hide","isMenuItem","getAttribute","highlightedIndexProps","findIndex","p","itemRefs","preventDefault","triggerRef","setFocus","render","_ref","interaction","timeout","createElement","selectedIndexContext","Provider","value","Dropdown","assignProps","Object","values","enhance","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","localizedMessages","locale","trigger","popper","List","styles","_ref2","arguments[0]","_ref1","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","SScrollContainer","Container","ListBoxContextProvider","cn","Actions","_ref3","_ref10","SDropdownMenuActions","Flex","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends2","role","Item","id","forwardRef","ariaChecked","_ref5","_ref11","SDropdownMenuItemContainer","useRef","highlighted","setHighlighted","useState","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","useUID","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","forkRef","lastInteraction","isKeyboard","Addon","_ref6","_ref12","SDropdownMenuItemAddon","Box","Trigger","_ref7","ItemContent","_ref8","_ref13","SItemContent","menuItemCtxValue","useContext","subMenu","describedby","setDescribedby","Set","element","parent","parentElement","prev","add","join","ItemContentText","ellipsis","hintProps","_ref9","_ref14","SItemContentText","Text","Fragment","ItemHint","_ref0","_ref15","SItemHint","createComponent","VirtualList","Group","_default","exports"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import { Flex, ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport 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 { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './components/Context';\nimport { VirtualList } from './components/VirtualList';\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\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 /**\n * TODO: It needs to be reconsidered in a future implementation so that component accepts items as a prop instead of JSX.\n * Tab index recalculation flag.\n *\n * When an item becomes disabled while highlighted, we need to transfer focus\n * to the next available focusable item. This flag ensures the focus lock\n * remains within proper boundaries during the initial render cycle.\n */\n shouldRecalculateItemTabIndex = false;\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 }, 50);\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\"]:not([disabled])');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n let { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.menuRef.current?.dataset.isVirtual || 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 if (selected && options && !this.menuRef.current?.dataset.isVirtual) 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 getVirtualListProps() {\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 getItemTabIndex(props, itemIndex) {\n const { disabled, index } = props;\n const { highlightedIndex, visible } = this.asProps;\n\n if (!visible) return -1;\n\n const isHighlighted = (index ?? itemIndex) === highlightedIndex;\n if (isHighlighted && !disabled) {\n return 0;\n }\n\n if (disabled && isHighlighted) {\n this.shouldRecalculateItemTabIndex = true;\n }\n\n if (!isHighlighted && !disabled && this.shouldRecalculateItemTabIndex) {\n this.shouldRecalculateItemTabIndex = false;\n return 0;\n }\n\n return -1;\n }\n\n getItemProps(props, index) {\n const realIndex = props.index ?? index;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: this.getItemTabIndex(props, index),\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 let { highlightedIndex } = this.asProps;\n const highlightedIndexProps = this.itemProps[highlightedIndex];\n\n if (highlightedIndexProps?.disabled) {\n highlightedIndex = this.itemProps.findIndex((p) => !p.disabled);\n }\n\n if (highlightedIndex === -1) return;\n\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 const SScrollContainer = ScrollAreaComponent.Container;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <SScrollContainer tabIndex={undefined}>\n <Children />\n </SScrollContainer>\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: itemRef,\n forwardRef,\n role,\n tabIndex,\n ariaChecked,\n disabled,\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 });\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : forkRef(itemRef, forwardRef)}\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, menuItemCtxValue.forwardRef, 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 disabled={menuItemCtxValue.disabled}\n />,\n );\n}\n\nfunction ItemContentText({ styles, ellipsis = false, hintProps = {} }) {\n const SItemContentText = Root;\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n if (menuItemCtxValue.ref) {\n hintProps.triggerRef = menuItemCtxValue.ref;\n }\n\n return sstyled(styles)(\n <>\n <SItemContentText\n render={Text}\n ellipsis={ellipsis}\n hintProps={hintProps}\n />\n </>,\n );\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\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n VirtualList,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\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":[]}
@@ -11,24 +11,25 @@ var _baseComponents = require("@semcore/base-components");
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
  var _Context = require("./Context");
13
13
  /*!__reshadow-styles__:"../style/dropdown-menu.shadow.css"*/
14
- const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1r615_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_1r615_gg_ .___SBar_1r615_gg_{z-index:3}.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:before,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1r615_gg_ .___SItemContent_1r615_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1r615_gg_.__nesting-trigger_1r615_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1r615_gg_,.___SItemContentText_1r615_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1r615_gg_:first-child,.___SItemContentText_1r615_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1r615_gg_:last-child,.___SItemContentText_1r615_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_l_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_m_1r615_gg_{padding:0}.___SDropdownMenuNesting_1r615_gg_.__highlighted_1r615_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_1r615_gg_._size_l_1r615_gg_,.___SDropdownNestingItem_1r615_gg_._size_m_1r615_gg_{padding-right:0}.___SDropdownNestingItem_1r615_gg_ .___SDropdownMenuItemContainer_1r615_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1r615_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1r615_gg_"),
14
+ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_wdv28_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_wdv28_gg_ .___SBar_wdv28_gg_{z-index:3}.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:before,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_wdv28_gg_ .___SItemContent_wdv28_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_wdv28_gg_.__nesting-trigger_wdv28_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_wdv28_gg_,.___SItemContentText_wdv28_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_wdv28_gg_:first-child,.___SItemContentText_wdv28_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_wdv28_gg_:last-child,.___SItemContentText_wdv28_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_m_wdv28_gg_{padding:0}.___SDropdownMenuNesting_wdv28_gg_.__highlighted_wdv28_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_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownNestingItem_wdv28_gg_._size_m_wdv28_gg_{padding-right:0}.___SDropdownNestingItem_wdv28_gg_ .___SDropdownMenuItemContainer_wdv28_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_wdv28_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___SScrollContainer_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true]){overscroll-behavior:none}", /*__inner_css_end__*/"wdv28_gg_"),
15
15
  /*__reshadow_css_end__*/
16
16
  {
17
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1r615_gg_",
18
- "_nesting-trigger": "__nesting-trigger_1r615_gg_",
19
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1r615_gg_",
20
- "_size_l": "_size_l_1r615_gg_",
21
- "_size_m": "_size_m_1r615_gg_",
22
- "_highlighted": "__highlighted_1r615_gg_",
23
- "__SDropdownNestingItem": "___SDropdownNestingItem_1r615_gg_",
24
- "__SItemHint": "___SItemHint_1r615_gg_",
25
- "__SDropdownMenuList": "___SDropdownMenuList_1r615_gg_",
26
- "__SBar": "___SBar_1r615_gg_",
27
- "__SShadowHorizontal": "___SShadowHorizontal_1r615_gg_",
28
- "__SShadowVertical": "___SShadowVertical_1r615_gg_",
29
- "__SItemContent": "___SItemContent_1r615_gg_",
30
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1r615_gg_",
31
- "__SItemContentText": "___SItemContentText_1r615_gg_"
17
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_wdv28_gg_",
18
+ "_nesting-trigger": "__nesting-trigger_wdv28_gg_",
19
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_wdv28_gg_",
20
+ "_size_l": "_size_l_wdv28_gg_",
21
+ "_size_m": "_size_m_wdv28_gg_",
22
+ "_highlighted": "__highlighted_wdv28_gg_",
23
+ "__SDropdownNestingItem": "___SDropdownNestingItem_wdv28_gg_",
24
+ "__SItemHint": "___SItemHint_wdv28_gg_",
25
+ "__SDropdownMenuList": "___SDropdownMenuList_wdv28_gg_",
26
+ "__SBar": "___SBar_wdv28_gg_",
27
+ "__SShadowHorizontal": "___SShadowHorizontal_wdv28_gg_",
28
+ "__SShadowVertical": "___SShadowVertical_wdv28_gg_",
29
+ "__SItemContent": "___SItemContent_wdv28_gg_",
30
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_wdv28_gg_",
31
+ "__SItemContentText": "___SItemContentText_wdv28_gg_",
32
+ "__SScrollContainer": "___SScrollContainer_wdv28_gg_"
32
33
  });
33
34
  class VirtualListRoot extends _core.Component {
34
35
  constructor(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.js","names":["_core","require","_baseComponents","_react","_interopRequireDefault","_Context","style","sstyled","insert","VirtualListRoot","Component","constructor","args","_defineProperty2","default","React","createRef","scrollTop","scrollDirection","e","target","HTMLElement","state","setState","componentDidMount","index","rowHeight","rowsBuffer","asProps","setTimeout","listHeight","listRef","current","getBoundingClientRect","height","containerRef","scrollTo","top","forceUpdate","render","_ref","_ref2","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","rows","styles","renderRow","RenderRow","customData","offsetHeight","prevPrepared","nextPrepared","startIndex","Math","max","floor","lastIndex","min","ceil","length","rowsToRender","slice","rowMarginTop","rowMarginBottom","createElement","ListBoxContextProvider","cn","assignProps","handleScroll","ScrollArea","Container","ref","tabIndex","undefined","h","Box","map","item","key","row","data","VirtualList","exports","createComponent"],"sources":["../../../src/components/VirtualList.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Root, Component, createComponent, sstyled } from '@semcore/core';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './Context';\nimport style from '../style/dropdown-menu.shadow.css';\n\nexport type RenderRowProps<T, D = never> = {\n index: number;\n row: T;\n data: [D] extends [never] ? undefined : D;\n};\n\ntype VirtualListProps<T, D extends object = never> = {\n /** List of all rows in ddMenu */\n rows: T[];\n /** Method for render row, it's better to wrap it via React.memo */\n renderRow: (props: RenderRowProps<T, D>) => React.ReactNode;\n /** The height of row. For now, you should calculate it on your side. */\n rowHeight: number;\n /** The buffer of rows out of visible rows\n * @default 10\n */\n rowsBuffer?: number;\n} & ([D] extends [never] ? { customData?: undefined } : {\n /** Some custom data for each renderRow function */\n customData: D;\n});\n\ntype State = {\n scrollTop: number;\n scrollDirection: 'up' | 'down';\n};\n\nclass VirtualListRoot<T = string, D extends object = never> extends Component<VirtualListProps<T, D>, [], Readonly<{}>, { rowsBuffer: number; index: number }, State> {\n static displayName = 'VirtualList';\n static style = style;\n\n static defaultProps = {\n rowsBuffer: 6,\n };\n\n containerRef = React.createRef<HTMLDivElement>();\n listRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n scrollTop: 0,\n scrollDirection: 'down',\n };\n\n componentDidMount() {\n const { index, rowHeight, rowsBuffer } = this.asProps;\n\n setTimeout(() => {\n const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;\n this.containerRef.current?.scrollTo({ top: index * rowHeight - listHeight + rowHeight / 2 });\n\n if (index <= rowsBuffer) {\n this.forceUpdate(); // we need this for correct render all items with calculated container height\n }\n }, 10); // 10 for correct work in safari\n }\n\n handleScroll = (e: React.SyntheticEvent<HTMLDivElement>) => {\n if (e.target instanceof HTMLElement) {\n const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';\n\n this.setState({\n scrollDirection,\n scrollTop: e.target.scrollTop,\n });\n }\n };\n\n render() {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n const { scrollDirection, scrollTop } = this.state;\n const { rows, rowHeight, rowsBuffer, styles, renderRow: RenderRow, customData } = this.asProps;\n\n const offsetHeight = this.listRef.current?.offsetHeight ?? 0;\n const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;\n const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;\n\n const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);\n\n const lastIndex = Math.min(\n Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared,\n rows.length,\n );\n\n const rowsToRender = rows.slice(startIndex, lastIndex);\n const rowMarginTop = rowHeight * startIndex;\n const rowMarginBottom = rowHeight * (rows.length - lastIndex);\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList\n render={ScrollAreaComponent}\n shadow={true}\n shadowSize={16}\n shadowTheme='light'\n onScroll={this.handleScroll}\n data-is-virtual='true'\n ref={this.listRef}\n >\n <ScrollAreaComponent.Container ref={this.containerRef} tabIndex={undefined} h={rows.length * rowHeight}>\n <Box h={rowMarginTop} />\n {rowsToRender.map((item, index) => {\n // @ts-ignore\n return <RenderRow key={startIndex + index} row={item} index={startIndex + index} data={customData} />;\n })}\n <Box h={rowMarginBottom} />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n }\n}\n\nexport type VirtualListComponent = (<\n T = string,\n D extends object = never,\n>(\n props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<typeof Box, 'div', VirtualListProps<T, D>>, 'tag' | 'children'>\n) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<typeof Box, 'div', VirtualListProps<any, any>>;\n\nexport const VirtualList = createComponent(VirtualListRoot) as VirtualListComponent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VirtualList.js","names":["_core","require","_baseComponents","_react","_interopRequireDefault","_Context","style","sstyled","insert","VirtualListRoot","Component","constructor","args","_defineProperty2","default","React","createRef","scrollTop","scrollDirection","e","target","HTMLElement","state","setState","componentDidMount","index","rowHeight","rowsBuffer","asProps","setTimeout","listHeight","listRef","current","getBoundingClientRect","height","containerRef","scrollTo","top","forceUpdate","render","_ref","_ref2","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","rows","styles","renderRow","RenderRow","customData","offsetHeight","prevPrepared","nextPrepared","startIndex","Math","max","floor","lastIndex","min","ceil","length","rowsToRender","slice","rowMarginTop","rowMarginBottom","createElement","ListBoxContextProvider","cn","assignProps","handleScroll","ScrollArea","Container","ref","tabIndex","undefined","h","Box","map","item","key","row","data","VirtualList","exports","createComponent"],"sources":["../../../src/components/VirtualList.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Root, Component, createComponent, sstyled } from '@semcore/core';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './Context';\nimport style from '../style/dropdown-menu.shadow.css';\n\nexport type RenderRowProps<T, D = never> = {\n index: number;\n row: T;\n data: [D] extends [never] ? undefined : D;\n};\n\ntype VirtualListProps<T, D extends object = never> = {\n /** List of all rows in ddMenu */\n rows: T[];\n /** Method for render row, it's better to wrap it via React.memo */\n renderRow: (props: RenderRowProps<T, D>) => React.ReactNode;\n /** The height of row. For now, you should calculate it on your side. */\n rowHeight: number;\n /** The buffer of rows out of visible rows\n * @default 10\n */\n rowsBuffer?: number;\n} & ([D] extends [never] ? { customData?: undefined } : {\n /** Some custom data for each renderRow function */\n customData: D;\n});\n\ntype State = {\n scrollTop: number;\n scrollDirection: 'up' | 'down';\n};\n\nclass VirtualListRoot<T = string, D extends object = never> extends Component<VirtualListProps<T, D>, [], Readonly<{}>, { rowsBuffer: number; index: number }, State> {\n static displayName = 'VirtualList';\n static style = style;\n\n static defaultProps = {\n rowsBuffer: 6,\n };\n\n containerRef = React.createRef<HTMLDivElement>();\n listRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n scrollTop: 0,\n scrollDirection: 'down',\n };\n\n componentDidMount() {\n const { index, rowHeight, rowsBuffer } = this.asProps;\n\n setTimeout(() => {\n const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;\n this.containerRef.current?.scrollTo({ top: index * rowHeight - listHeight + rowHeight / 2 });\n\n if (index <= rowsBuffer) {\n this.forceUpdate(); // we need this for correct render all items with calculated container height\n }\n }, 10); // 10 for correct work in safari\n }\n\n handleScroll = (e: React.SyntheticEvent<HTMLDivElement>) => {\n if (e.target instanceof HTMLElement) {\n const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';\n\n this.setState({\n scrollDirection,\n scrollTop: e.target.scrollTop,\n });\n }\n };\n\n render() {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n const { scrollDirection, scrollTop } = this.state;\n const { rows, rowHeight, rowsBuffer, styles, renderRow: RenderRow, customData } = this.asProps;\n\n const offsetHeight = this.listRef.current?.offsetHeight ?? 0;\n const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;\n const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;\n\n const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);\n\n const lastIndex = Math.min(\n Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared,\n rows.length,\n );\n\n const rowsToRender = rows.slice(startIndex, lastIndex);\n const rowMarginTop = rowHeight * startIndex;\n const rowMarginBottom = rowHeight * (rows.length - lastIndex);\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList\n render={ScrollAreaComponent}\n shadow={true}\n shadowSize={16}\n shadowTheme='light'\n onScroll={this.handleScroll}\n data-is-virtual='true'\n ref={this.listRef}\n >\n <ScrollAreaComponent.Container ref={this.containerRef} tabIndex={undefined} h={rows.length * rowHeight}>\n <Box h={rowMarginTop} />\n {rowsToRender.map((item, index) => {\n // @ts-ignore\n return <RenderRow key={startIndex + index} row={item} index={startIndex + index} data={customData} />;\n })}\n <Box h={rowMarginBottom} />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n }\n}\n\nexport type VirtualListComponent = (<\n T = string,\n D extends object = never,\n>(\n props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<typeof Box, 'div', VirtualListProps<T, D>>, 'tag' | 'children'>\n) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<typeof Box, 'div', VirtualListProps<any, any>>;\n\nexport const VirtualList = createComponent(VirtualListRoot) as VirtualListComponent;\n"],"mappings":";;;;;;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAFA,IAAAC,eAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAAmD;AAAA,MAAAK,KAAA,8BAAAN,KAAA,CAAAO,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AA8BnD,MAAMC,eAAe,SAA+CC,eAAS,CAAyF;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,qCAQrJC,cAAK,CAACC,SAAS,CAAiB,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,gCACtCC,cAAK,CAACC,SAAS,CAAiB,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,iBAE5B;MACbG,SAAS,EAAE,CAAC;MACZC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,wBAeeK,CAAuC,IAAK;MAC1D,IAAIA,CAAC,CAACC,MAAM,YAAYC,WAAW,EAAE;QACnC,MAAMH,eAAe,GAAGC,CAAC,CAACC,MAAM,CAACH,SAAS,GAAG,IAAI,CAACK,KAAK,CAACL,SAAS,GAAG,MAAM,GAAG,IAAI;QAEjF,IAAI,CAACM,QAAQ,CAAC;UACZL,eAAe;UACfD,SAAS,EAAEE,CAAC,CAACC,MAAM,CAACH;QACtB,CAAC,CAAC;MACJ;IACF,CAAC;EAAA;EAtBDO,iBAAiBA,CAAA,EAAG;IAClB,MAAM;MAAEC,KAAK;MAAEC,SAAS;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACC,OAAO;IAErDC,UAAU,CAAC,MAAM;MACf,MAAMC,UAAU,GAAG,CAAC,IAAI,CAACC,OAAO,CAACC,OAAO,EAAEC,qBAAqB,CAAC,CAAC,CAACC,MAAM,IAAI,CAAC,IAAI,CAAC;MAClF,IAAI,CAACC,YAAY,CAACH,OAAO,EAAEI,QAAQ,CAAC;QAAEC,GAAG,EAAEZ,KAAK,GAAGC,SAAS,GAAGI,UAAU,GAAGJ,SAAS,GAAG;MAAE,CAAC,CAAC;MAE5F,IAAID,KAAK,IAAIE,UAAU,EAAE;QACvB,IAAI,CAACW,WAAW,CAAC,CAAC,CAAC,CAAC;MACtB;IACF,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;EACV;EAaAC,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAAZ,OAAA;MAAAa,KAAA;IACP,MAAMC,iBAAiB,GAwBTC,0BAAmB;IAvBjC,MAAMC,IAAI,GAAGD,0BAAmB,CAACE,GAAG;IAEpC,MAAM;MAAE3B,eAAe;MAAED;IAAU,CAAC,GAAG,IAAI,CAACK,KAAK;IACjD,MAAM;MAAEwB,IAAI;MAAEpB,SAAS;MAAEC,UAAU;MAAEoB,MAAM;MAAEC,SAAS,EAAEC,SAAS;MAAEC;IAAW,CAAC,GAAG,IAAI,CAACtB,OAAO;IAE9F,MAAMuB,YAAY,GAAG,IAAI,CAACpB,OAAO,CAACC,OAAO,EAAEmB,YAAY,IAAI,CAAC;IAC5D,MAAMC,YAAY,GAAGlC,eAAe,KAAK,MAAM,GAAGS,UAAU,GAAG,CAAC,GAAGA,UAAU;IAC7E,MAAM0B,YAAY,GAAGnC,eAAe,KAAK,IAAI,GAAGS,UAAU,GAAG,CAAC,GAAGA,UAAU;IAE3E,MAAM2B,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,KAAK,CAACxC,SAAS,GAAGS,SAAS,CAAC,GAAG0B,YAAY,EAAE,CAAC,CAAC;IAEhF,MAAMM,SAAS,GAAGH,IAAI,CAACI,GAAG,CACxBJ,IAAI,CAACK,IAAI,CAAC,CAAC3C,SAAS,GAAGkC,YAAY,IAAIzB,SAAS,CAAC,GAAG2B,YAAY,EAChEP,IAAI,CAACe,MACP,CAAC;IAED,MAAMC,YAAY,GAAGhB,IAAI,CAACiB,KAAK,CAACT,UAAU,EAAEI,SAAS,CAAC;IACtD,MAAMM,YAAY,GAAGtC,SAAS,GAAG4B,UAAU;IAC3C,MAAMW,eAAe,GAAGvC,SAAS,IAAIoB,IAAI,CAACe,MAAM,GAAGH,SAAS,CAAC;IAE7D,OAAAjB,KAAA,GAAO,IAAAlC,aAAO,EAACwC,MAAM,CAAC,eACpB5C,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAAC7D,QAAA,CAAA8D,sBAAsB,EAAA1B,KAAA,CAAA2B,EAAA,6CACrBjE,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAACxB,iBAAiB,EAAAD,KAAA,CAAA2B,EAAA;MAAA,OAAApE,KAAA,CAAAqE,WAAA;QAAA,UAER,IAAI;QAAA,cACA,EAAE;QAAA,eACF,OAAO;QAAA,YACT,IAAI,CAACC,YAAY;QAAA,mBACX,MAAM;QAAA,OACjB,IAAI,CAACvC;MAAO,GAAAS,IAAA;IAAA,iBAEjBrC,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAAChE,eAAA,CAAAqE,UAAmB,CAACC,SAAS;MAACC,GAAG,EAAE,IAAI,CAACtC,YAAa;MAACuC,QAAQ,EAAEC,SAAU;MAACC,CAAC,EAAE9B,IAAI,CAACe,MAAM,GAAGnC;IAAU,gBACrGvB,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAAChE,eAAA,CAAA2E,GAAG,EAAApC,KAAA,CAAA2B,EAAA;MAAA,KAAIJ;IAAY,EAAG,CAAC,EACvBF,YAAY,CAACgB,GAAG,CAAC,CAACC,IAAI,EAAEtD,KAAK,KAAK;MACjC;MACA,oBAAOtB,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAACjB,SAAS;QAAC+B,GAAG,EAAE1B,UAAU,GAAG7B,KAAM;QAACwD,GAAG,EAAEF,IAAK;QAACtD,KAAK,EAAE6B,UAAU,GAAG7B,KAAM;QAACyD,IAAI,EAAEhC;MAAW,CAAE,CAAC;IACvG,CAAC,CAAC,eACF/C,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAAChE,eAAA,CAAA2E,GAAG,EAAApC,KAAA,CAAA2B,EAAA;MAAA,KAAIH;IAAe,EAAG,CACG,CAAC,eAChC9D,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAACtB,IAAI,EAAAH,KAAA,CAAA2B,EAAA;MAAA,eAAa;IAAY,EAAE,CAAC,eACjCjE,MAAA,CAAAW,OAAA,CAAAoD,aAAA,CAACtB,IAAI,EAAAH,KAAA,CAAA2B,EAAA;MAAA,eAAa;IAAU,EAAE,CACb,CACG,CAAC;EAE7B;AACF;AAAC,IAAAvD,gBAAA,CAAAC,OAAA,EAvFKL,eAAe,iBACE,aAAa;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EAD9BL,eAAe,WAEJH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EAFhBL,eAAe,kBAIG;EACpBkB,UAAU,EAAE;AACd,CAAC;AA0FI,MAAMwD,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAAE,qBAAe,EAAC5E,eAAe,CAAyB","ignoreList":[]}
@@ -12,19 +12,19 @@ SDropdownMenuList {
12
12
  z-index: 3;
13
13
  }
14
14
 
15
- SShadowHorizontal {
16
-
17
- &:before,
18
- &:after {
19
- border-radius: var(--intergalactic-control-rounded, 6px);
15
+ &:not(&:has([data-ui-name="DropdownMenu.Group"][data-sticky="true"])) {
16
+ SShadowHorizontal {
17
+ &:before,
18
+ &:after {
19
+ border-radius: var(--intergalactic-control-rounded, 6px);
20
+ }
20
21
  }
21
- }
22
-
23
- SShadowVertical {
24
22
 
25
- &:before,
26
- &:after {
27
- border-radius: var(--intergalactic-control-rounded, 6px);
23
+ SShadowVertical {
24
+ &:before,
25
+ &:after {
26
+ border-radius: var(--intergalactic-control-rounded, 6px);
27
+ }
28
28
  }
29
29
  }
30
30
  }
@@ -81,3 +81,9 @@ SDropdownNestingItem SDropdownMenuItemContainer {
81
81
  SItemHint {
82
82
  color: var(--intergalactic-text-secondary, #6c6e79);
83
83
  }
84
+
85
+ SScrollContainer {
86
+ &:has([data-ui-name="DropdownMenu.Group"][data-sticky="true"]) {
87
+ overscroll-behavior: none;
88
+ }
89
+ }
@@ -26,24 +26,25 @@ import React from 'react';
26
26
  import { ListBoxContextProvider } from './components/Context';
27
27
  import { VirtualList } from './components/VirtualList';
28
28
  /*!__reshadow-styles__:"./style/dropdown-menu.shadow.css"*/
29
- const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1r615_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_1r615_gg_ .___SBar_1r615_gg_{z-index:3}.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:before,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1r615_gg_ .___SItemContent_1r615_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1r615_gg_.__nesting-trigger_1r615_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1r615_gg_,.___SItemContentText_1r615_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1r615_gg_:first-child,.___SItemContentText_1r615_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1r615_gg_:last-child,.___SItemContentText_1r615_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_l_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_m_1r615_gg_{padding:0}.___SDropdownMenuNesting_1r615_gg_.__highlighted_1r615_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_1r615_gg_._size_l_1r615_gg_,.___SDropdownNestingItem_1r615_gg_._size_m_1r615_gg_{padding-right:0}.___SDropdownNestingItem_1r615_gg_ .___SDropdownMenuItemContainer_1r615_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1r615_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1r615_gg_"),
29
+ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_wdv28_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_wdv28_gg_ .___SBar_wdv28_gg_{z-index:3}.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:before,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_wdv28_gg_ .___SItemContent_wdv28_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_wdv28_gg_.__nesting-trigger_wdv28_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_wdv28_gg_,.___SItemContentText_wdv28_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_wdv28_gg_:first-child,.___SItemContentText_wdv28_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_wdv28_gg_:last-child,.___SItemContentText_wdv28_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_m_wdv28_gg_{padding:0}.___SDropdownMenuNesting_wdv28_gg_.__highlighted_wdv28_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_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownNestingItem_wdv28_gg_._size_m_wdv28_gg_{padding-right:0}.___SDropdownNestingItem_wdv28_gg_ .___SDropdownMenuItemContainer_wdv28_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_wdv28_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___SScrollContainer_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true]){overscroll-behavior:none}", /*__inner_css_end__*/"wdv28_gg_"),
30
30
  /*__reshadow_css_end__*/
31
31
  {
32
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1r615_gg_",
33
- "_nesting-trigger": "__nesting-trigger_1r615_gg_",
34
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1r615_gg_",
35
- "_size_l": "_size_l_1r615_gg_",
36
- "_size_m": "_size_m_1r615_gg_",
37
- "_highlighted": "__highlighted_1r615_gg_",
38
- "__SDropdownNestingItem": "___SDropdownNestingItem_1r615_gg_",
39
- "__SItemHint": "___SItemHint_1r615_gg_",
40
- "__SDropdownMenuList": "___SDropdownMenuList_1r615_gg_",
41
- "__SBar": "___SBar_1r615_gg_",
42
- "__SShadowHorizontal": "___SShadowHorizontal_1r615_gg_",
43
- "__SShadowVertical": "___SShadowVertical_1r615_gg_",
44
- "__SItemContent": "___SItemContent_1r615_gg_",
45
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1r615_gg_",
46
- "__SItemContentText": "___SItemContentText_1r615_gg_"
32
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_wdv28_gg_",
33
+ "_nesting-trigger": "__nesting-trigger_wdv28_gg_",
34
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_wdv28_gg_",
35
+ "_size_l": "_size_l_wdv28_gg_",
36
+ "_size_m": "_size_m_wdv28_gg_",
37
+ "_highlighted": "__highlighted_wdv28_gg_",
38
+ "__SDropdownNestingItem": "___SDropdownNestingItem_wdv28_gg_",
39
+ "__SItemHint": "___SItemHint_wdv28_gg_",
40
+ "__SDropdownMenuList": "___SDropdownMenuList_wdv28_gg_",
41
+ "__SBar": "___SBar_wdv28_gg_",
42
+ "__SShadowHorizontal": "___SShadowHorizontal_wdv28_gg_",
43
+ "__SShadowVertical": "___SShadowVertical_wdv28_gg_",
44
+ "__SItemContent": "___SItemContent_wdv28_gg_",
45
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_wdv28_gg_",
46
+ "__SItemContentText": "___SItemContentText_wdv28_gg_",
47
+ "__SScrollContainer": "___SScrollContainer_wdv28_gg_"
47
48
  });
48
49
  import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
49
50
  const menuItemContext = /*#__PURE__*/React.createContext({});
@@ -308,15 +309,16 @@ function List({
308
309
  _ref1;
309
310
  const SDropdownMenuList = ScrollAreaComponent;
310
311
  const SBar = ScrollAreaComponent.Bar;
312
+ const SScrollContainer = ScrollAreaComponent.Container;
311
313
  return _ref1 = sstyled(styles), /*#__PURE__*/React.createElement(ListBoxContextProvider, _ref1.cn("ListBoxContextProvider", {}), /*#__PURE__*/React.createElement(SDropdownMenuList, _ref1.cn("SDropdownMenuList", {
312
314
  ..._assignProps2({
313
315
  "shadow": true,
314
316
  "shadowSize": 16,
315
317
  "shadowTheme": 'light'
316
318
  }, _ref2)
317
- }), /*#__PURE__*/React.createElement(ScrollAreaComponent.Container, {
318
- tabIndex: undefined
319
- }, /*#__PURE__*/React.createElement(Children, _ref1.cn("Children", {}))), /*#__PURE__*/React.createElement(SBar, _ref1.cn("SBar", {
319
+ }), /*#__PURE__*/React.createElement(SScrollContainer, _ref1.cn("SScrollContainer", {
320
+ "tabIndex": undefined
321
+ }), /*#__PURE__*/React.createElement(Children, _ref1.cn("Children", {}))), /*#__PURE__*/React.createElement(SBar, _ref1.cn("SBar", {
320
322
  "orientation": 'horizontal'
321
323
  })), /*#__PURE__*/React.createElement(SBar, _ref1.cn("SBar", {
322
324
  "orientation": 'vertical'
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["Flex","ScrollArea","ScrollAreaComponent","Box","ButtonComponent","createComponent","sstyled","Root","lastInteraction","callAllEventHandlers","isAdvanceMode","isFocusInside","setFocus","forkRef","useUID","Dropdown","AbstractDropdown","selectedIndexContext","enhance","Text","React","ListBoxContextProvider","VirtualList","style","_sstyled","insert","localizedMessages","menuItemContext","createContext","DropdownMenuRoot","constructor","args","_defineProperty","createRef","uncontrolledProps","visible","setTimeout","focusAndScrollToSelected","menuElements","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","isFocusAlreadyInPopper","popperRef","dataset","isVirtual","scrollToNodeAsync","then","asProps","focus","preventScroll","selectedIndex","Array","from","indexOf","handlers","highlightedIndex","afterOpenPopper","itemRef","props","index","node","document","activeElement","scrollToNode","getTriggerProps","Children","uid","hasMenu","DropdownMenu","Menu","displayName","ariaControls","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","undefined","getListProps","onKeyDown","handleArrowKeyDown","getVirtualListProps","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemTabIndex","itemIndex","disabled","isHighlighted","shouldRecalculateItemTabIndex","getItemProps","realIndex","itemProps","tabIndex","tag","use","theme","size","innerOutline","childRole","onClick","place","e","placement","inlineActions","contains","target","stopPropagation","show","key","startsWith","hide","isMenuItem","getAttribute","highlightedIndexProps","findIndex","p","itemRefs","preventDefault","triggerRef","render","_ref","interaction","timeout","createElement","Provider","value","_assignProps","Object","values","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","locale","trigger","popper","List","styles","_ref2","arguments[0]","_ref1","SDropdownMenuList","SBar","Bar","cn","_assignProps2","Container","Actions","_ref3","_ref10","SDropdownMenuActions","_assignProps3","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends","role","_assignProps4","Item","id","forwardRef","ariaChecked","_ref5","_ref11","SDropdownMenuItemContainer","useRef","highlighted","setHighlighted","useState","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","_assignProps5","isKeyboard","Addon","_ref6","_ref12","SDropdownMenuItemAddon","_assignProps6","Trigger","_ref7","_assignProps7","ItemContent","_ref8","_ref13","SItemContent","menuItemCtxValue","useContext","subMenu","describedby","setDescribedby","Set","element","parent","parentElement","prev","add","_assignProps8","join","ItemContentText","ellipsis","hintProps","_ref9","_ref14","SItemContentText","Fragment","_assignProps9","ItemHint","_ref0","_ref15","SItemHint","_assignProps0","Group"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import { Flex, ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport 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 { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './components/Context';\nimport { VirtualList } from './components/VirtualList';\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\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 /**\n * TODO: It needs to be reconsidered in a future implementation so that component accepts items as a prop instead of JSX.\n * Tab index recalculation flag.\n *\n * When an item becomes disabled while highlighted, we need to transfer focus\n * to the next available focusable item. This flag ensures the focus lock\n * remains within proper boundaries during the initial render cycle.\n */\n shouldRecalculateItemTabIndex = false;\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 }, 50);\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\"]:not([disabled])');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n let { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.menuRef.current?.dataset.isVirtual || 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 if (selected && options && !this.menuRef.current?.dataset.isVirtual) 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 getVirtualListProps() {\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 getItemTabIndex(props, itemIndex) {\n const { disabled, index } = props;\n const { highlightedIndex, visible } = this.asProps;\n\n if (!visible) return -1;\n\n const isHighlighted = (index ?? itemIndex) === highlightedIndex;\n if (isHighlighted && !disabled) {\n return 0;\n }\n\n if (disabled && isHighlighted) {\n this.shouldRecalculateItemTabIndex = true;\n }\n\n if (!isHighlighted && !disabled && this.shouldRecalculateItemTabIndex) {\n this.shouldRecalculateItemTabIndex = false;\n return 0;\n }\n\n return -1;\n }\n\n getItemProps(props, index) {\n const realIndex = props.index ?? index;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: this.getItemTabIndex(props, index),\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 let { highlightedIndex } = this.asProps;\n const highlightedIndexProps = this.itemProps[highlightedIndex];\n\n if (highlightedIndexProps?.disabled) {\n highlightedIndex = this.itemProps.findIndex((p) => !p.disabled);\n }\n\n if (highlightedIndex === -1) return;\n\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: itemRef,\n forwardRef,\n role,\n tabIndex,\n ariaChecked,\n disabled,\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 });\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : forkRef(itemRef, forwardRef)}\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, menuItemCtxValue.forwardRef, 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 disabled={menuItemCtxValue.disabled}\n />,\n );\n}\n\nfunction ItemContentText({ styles, ellipsis = false, hintProps = {} }) {\n const SItemContentText = Root;\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n if (menuItemCtxValue.ref) {\n hintProps.triggerRef = menuItemCtxValue.ref;\n }\n\n return sstyled(styles)(\n <>\n <SItemContentText\n render={Text}\n ellipsis={ellipsis}\n hintProps={hintProps}\n />\n </>,\n );\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\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n VirtualList,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\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":["Flex","ScrollArea","ScrollAreaComponent","Box","ButtonComponent","createComponent","sstyled","Root","lastInteraction","callAllEventHandlers","isAdvanceMode","isFocusInside","setFocus","forkRef","useUID","Dropdown","AbstractDropdown","selectedIndexContext","enhance","Text","React","ListBoxContextProvider","VirtualList","style","_sstyled","insert","localizedMessages","menuItemContext","createContext","DropdownMenuRoot","constructor","args","_defineProperty","createRef","uncontrolledProps","visible","setTimeout","focusAndScrollToSelected","menuElements","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","isFocusAlreadyInPopper","popperRef","dataset","isVirtual","scrollToNodeAsync","then","asProps","focus","preventScroll","selectedIndex","Array","from","indexOf","handlers","highlightedIndex","afterOpenPopper","itemRef","props","index","node","document","activeElement","scrollToNode","getTriggerProps","Children","uid","hasMenu","DropdownMenu","Menu","displayName","ariaControls","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","undefined","getListProps","onKeyDown","handleArrowKeyDown","getVirtualListProps","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemTabIndex","itemIndex","disabled","isHighlighted","shouldRecalculateItemTabIndex","getItemProps","realIndex","itemProps","tabIndex","tag","use","theme","size","innerOutline","childRole","onClick","place","e","placement","inlineActions","contains","target","stopPropagation","show","key","startsWith","hide","isMenuItem","getAttribute","highlightedIndexProps","findIndex","p","itemRefs","preventDefault","triggerRef","render","_ref","interaction","timeout","createElement","Provider","value","_assignProps","Object","values","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","locale","trigger","popper","List","styles","_ref2","arguments[0]","_ref1","SDropdownMenuList","SBar","Bar","SScrollContainer","Container","cn","_assignProps2","Actions","_ref3","_ref10","SDropdownMenuActions","_assignProps3","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends","role","_assignProps4","Item","id","forwardRef","ariaChecked","_ref5","_ref11","SDropdownMenuItemContainer","useRef","highlighted","setHighlighted","useState","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","_assignProps5","isKeyboard","Addon","_ref6","_ref12","SDropdownMenuItemAddon","_assignProps6","Trigger","_ref7","_assignProps7","ItemContent","_ref8","_ref13","SItemContent","menuItemCtxValue","useContext","subMenu","describedby","setDescribedby","Set","element","parent","parentElement","prev","add","_assignProps8","join","ItemContentText","ellipsis","hintProps","_ref9","_ref14","SItemContentText","Fragment","_assignProps9","ItemHint","_ref0","_ref15","SItemHint","_assignProps0","Group"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import { Flex, ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport 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 { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './components/Context';\nimport { VirtualList } from './components/VirtualList';\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\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 /**\n * TODO: It needs to be reconsidered in a future implementation so that component accepts items as a prop instead of JSX.\n * Tab index recalculation flag.\n *\n * When an item becomes disabled while highlighted, we need to transfer focus\n * to the next available focusable item. This flag ensures the focus lock\n * remains within proper boundaries during the initial render cycle.\n */\n shouldRecalculateItemTabIndex = false;\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 }, 50);\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\"]:not([disabled])');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n let { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.menuRef.current?.dataset.isVirtual || 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 if (selected && options && !this.menuRef.current?.dataset.isVirtual) 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 getVirtualListProps() {\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 getItemTabIndex(props, itemIndex) {\n const { disabled, index } = props;\n const { highlightedIndex, visible } = this.asProps;\n\n if (!visible) return -1;\n\n const isHighlighted = (index ?? itemIndex) === highlightedIndex;\n if (isHighlighted && !disabled) {\n return 0;\n }\n\n if (disabled && isHighlighted) {\n this.shouldRecalculateItemTabIndex = true;\n }\n\n if (!isHighlighted && !disabled && this.shouldRecalculateItemTabIndex) {\n this.shouldRecalculateItemTabIndex = false;\n return 0;\n }\n\n return -1;\n }\n\n getItemProps(props, index) {\n const realIndex = props.index ?? index;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: this.getItemTabIndex(props, index),\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 let { highlightedIndex } = this.asProps;\n const highlightedIndexProps = this.itemProps[highlightedIndex];\n\n if (highlightedIndexProps?.disabled) {\n highlightedIndex = this.itemProps.findIndex((p) => !p.disabled);\n }\n\n if (highlightedIndex === -1) return;\n\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 const SScrollContainer = ScrollAreaComponent.Container;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <SScrollContainer tabIndex={undefined}>\n <Children />\n </SScrollContainer>\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: itemRef,\n forwardRef,\n role,\n tabIndex,\n ariaChecked,\n disabled,\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 });\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : forkRef(itemRef, forwardRef)}\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, menuItemCtxValue.forwardRef, 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 disabled={menuItemCtxValue.disabled}\n />,\n );\n}\n\nfunction ItemContentText({ styles, ellipsis = false, hintProps = {} }) {\n const SItemContentText = Root;\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n if (menuItemCtxValue.ref) {\n hintProps.triggerRef = menuItemCtxValue.ref;\n }\n\n return sstyled(styles)(\n <>\n <SItemContentText\n render={Text}\n ellipsis={ellipsis}\n hintProps={hintProps}\n />\n </>,\n );\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\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n VirtualList,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\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":[]}
@@ -6,24 +6,25 @@ import { Root, Component, createComponent, sstyled } from '@semcore/core';
6
6
  import React from 'react';
7
7
  import { ListBoxContextProvider } from './Context';
8
8
  /*!__reshadow-styles__:"../style/dropdown-menu.shadow.css"*/
9
- const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1r615_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_1r615_gg_ .___SBar_1r615_gg_{z-index:3}.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:before,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1r615_gg_ .___SItemContent_1r615_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1r615_gg_.__nesting-trigger_1r615_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1r615_gg_,.___SItemContentText_1r615_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1r615_gg_:first-child,.___SItemContentText_1r615_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1r615_gg_:last-child,.___SItemContentText_1r615_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_l_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_m_1r615_gg_{padding:0}.___SDropdownMenuNesting_1r615_gg_.__highlighted_1r615_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_1r615_gg_._size_l_1r615_gg_,.___SDropdownNestingItem_1r615_gg_._size_m_1r615_gg_{padding-right:0}.___SDropdownNestingItem_1r615_gg_ .___SDropdownMenuItemContainer_1r615_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1r615_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1r615_gg_"),
9
+ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_wdv28_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_wdv28_gg_ .___SBar_wdv28_gg_{z-index:3}.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:before,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_wdv28_gg_ .___SItemContent_wdv28_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_wdv28_gg_.__nesting-trigger_wdv28_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_wdv28_gg_,.___SItemContentText_wdv28_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_wdv28_gg_:first-child,.___SItemContentText_wdv28_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_wdv28_gg_:last-child,.___SItemContentText_wdv28_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_m_wdv28_gg_{padding:0}.___SDropdownMenuNesting_wdv28_gg_.__highlighted_wdv28_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_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownNestingItem_wdv28_gg_._size_m_wdv28_gg_{padding-right:0}.___SDropdownNestingItem_wdv28_gg_ .___SDropdownMenuItemContainer_wdv28_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_wdv28_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___SScrollContainer_wdv28_gg_:has([data-ui-name=\"DropdownMenu.Group\"][data-sticky=true]){overscroll-behavior:none}", /*__inner_css_end__*/"wdv28_gg_"),
10
10
  /*__reshadow_css_end__*/
11
11
  {
12
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1r615_gg_",
13
- "_nesting-trigger": "__nesting-trigger_1r615_gg_",
14
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1r615_gg_",
15
- "_size_l": "_size_l_1r615_gg_",
16
- "_size_m": "_size_m_1r615_gg_",
17
- "_highlighted": "__highlighted_1r615_gg_",
18
- "__SDropdownNestingItem": "___SDropdownNestingItem_1r615_gg_",
19
- "__SItemHint": "___SItemHint_1r615_gg_",
20
- "__SDropdownMenuList": "___SDropdownMenuList_1r615_gg_",
21
- "__SBar": "___SBar_1r615_gg_",
22
- "__SShadowHorizontal": "___SShadowHorizontal_1r615_gg_",
23
- "__SShadowVertical": "___SShadowVertical_1r615_gg_",
24
- "__SItemContent": "___SItemContent_1r615_gg_",
25
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1r615_gg_",
26
- "__SItemContentText": "___SItemContentText_1r615_gg_"
12
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_wdv28_gg_",
13
+ "_nesting-trigger": "__nesting-trigger_wdv28_gg_",
14
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_wdv28_gg_",
15
+ "_size_l": "_size_l_wdv28_gg_",
16
+ "_size_m": "_size_m_wdv28_gg_",
17
+ "_highlighted": "__highlighted_wdv28_gg_",
18
+ "__SDropdownNestingItem": "___SDropdownNestingItem_wdv28_gg_",
19
+ "__SItemHint": "___SItemHint_wdv28_gg_",
20
+ "__SDropdownMenuList": "___SDropdownMenuList_wdv28_gg_",
21
+ "__SBar": "___SBar_wdv28_gg_",
22
+ "__SShadowHorizontal": "___SShadowHorizontal_wdv28_gg_",
23
+ "__SShadowVertical": "___SShadowVertical_wdv28_gg_",
24
+ "__SItemContent": "___SItemContent_wdv28_gg_",
25
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_wdv28_gg_",
26
+ "__SItemContentText": "___SItemContentText_wdv28_gg_",
27
+ "__SScrollContainer": "___SScrollContainer_wdv28_gg_"
27
28
  });
28
29
  class VirtualListRoot extends Component {
29
30
  constructor(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.js","names":["ScrollArea","ScrollAreaComponent","Box","Root","Component","createComponent","sstyled","React","ListBoxContextProvider","style","_sstyled","insert","VirtualListRoot","constructor","args","_defineProperty","createRef","scrollTop","scrollDirection","e","target","HTMLElement","state","setState","componentDidMount","index","rowHeight","rowsBuffer","asProps","setTimeout","listHeight","listRef","current","getBoundingClientRect","height","containerRef","scrollTo","top","forceUpdate","render","_ref","_ref2","SDropdownMenuList","SBar","Bar","rows","styles","renderRow","RenderRow","customData","offsetHeight","prevPrepared","nextPrepared","startIndex","Math","max","floor","lastIndex","min","ceil","length","rowsToRender","slice","rowMarginTop","rowMarginBottom","createElement","cn","_assignProps","handleScroll","Container","ref","tabIndex","undefined","h","map","item","key","row","data","VirtualList"],"sources":["../../../src/components/VirtualList.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Root, Component, createComponent, sstyled } from '@semcore/core';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './Context';\nimport style from '../style/dropdown-menu.shadow.css';\n\nexport type RenderRowProps<T, D = never> = {\n index: number;\n row: T;\n data: [D] extends [never] ? undefined : D;\n};\n\ntype VirtualListProps<T, D extends object = never> = {\n /** List of all rows in ddMenu */\n rows: T[];\n /** Method for render row, it's better to wrap it via React.memo */\n renderRow: (props: RenderRowProps<T, D>) => React.ReactNode;\n /** The height of row. For now, you should calculate it on your side. */\n rowHeight: number;\n /** The buffer of rows out of visible rows\n * @default 10\n */\n rowsBuffer?: number;\n} & ([D] extends [never] ? { customData?: undefined } : {\n /** Some custom data for each renderRow function */\n customData: D;\n});\n\ntype State = {\n scrollTop: number;\n scrollDirection: 'up' | 'down';\n};\n\nclass VirtualListRoot<T = string, D extends object = never> extends Component<VirtualListProps<T, D>, [], Readonly<{}>, { rowsBuffer: number; index: number }, State> {\n static displayName = 'VirtualList';\n static style = style;\n\n static defaultProps = {\n rowsBuffer: 6,\n };\n\n containerRef = React.createRef<HTMLDivElement>();\n listRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n scrollTop: 0,\n scrollDirection: 'down',\n };\n\n componentDidMount() {\n const { index, rowHeight, rowsBuffer } = this.asProps;\n\n setTimeout(() => {\n const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;\n this.containerRef.current?.scrollTo({ top: index * rowHeight - listHeight + rowHeight / 2 });\n\n if (index <= rowsBuffer) {\n this.forceUpdate(); // we need this for correct render all items with calculated container height\n }\n }, 10); // 10 for correct work in safari\n }\n\n handleScroll = (e: React.SyntheticEvent<HTMLDivElement>) => {\n if (e.target instanceof HTMLElement) {\n const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';\n\n this.setState({\n scrollDirection,\n scrollTop: e.target.scrollTop,\n });\n }\n };\n\n render() {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n const { scrollDirection, scrollTop } = this.state;\n const { rows, rowHeight, rowsBuffer, styles, renderRow: RenderRow, customData } = this.asProps;\n\n const offsetHeight = this.listRef.current?.offsetHeight ?? 0;\n const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;\n const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;\n\n const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);\n\n const lastIndex = Math.min(\n Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared,\n rows.length,\n );\n\n const rowsToRender = rows.slice(startIndex, lastIndex);\n const rowMarginTop = rowHeight * startIndex;\n const rowMarginBottom = rowHeight * (rows.length - lastIndex);\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList\n render={ScrollAreaComponent}\n shadow={true}\n shadowSize={16}\n shadowTheme='light'\n onScroll={this.handleScroll}\n data-is-virtual='true'\n ref={this.listRef}\n >\n <ScrollAreaComponent.Container ref={this.containerRef} tabIndex={undefined} h={rows.length * rowHeight}>\n <Box h={rowMarginTop} />\n {rowsToRender.map((item, index) => {\n // @ts-ignore\n return <RenderRow key={startIndex + index} row={item} index={startIndex + index} data={customData} />;\n })}\n <Box h={rowMarginBottom} />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n }\n}\n\nexport type VirtualListComponent = (<\n T = string,\n D extends object = never,\n>(\n props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<typeof Box, 'div', VirtualListProps<T, D>>, 'tag' | 'children'>\n) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<typeof Box, 'div', VirtualListProps<any, any>>;\n\nexport const VirtualList = createComponent(VirtualListRoot) as VirtualListComponent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VirtualList.js","names":["ScrollArea","ScrollAreaComponent","Box","Root","Component","createComponent","sstyled","React","ListBoxContextProvider","style","_sstyled","insert","VirtualListRoot","constructor","args","_defineProperty","createRef","scrollTop","scrollDirection","e","target","HTMLElement","state","setState","componentDidMount","index","rowHeight","rowsBuffer","asProps","setTimeout","listHeight","listRef","current","getBoundingClientRect","height","containerRef","scrollTo","top","forceUpdate","render","_ref","_ref2","SDropdownMenuList","SBar","Bar","rows","styles","renderRow","RenderRow","customData","offsetHeight","prevPrepared","nextPrepared","startIndex","Math","max","floor","lastIndex","min","ceil","length","rowsToRender","slice","rowMarginTop","rowMarginBottom","createElement","cn","_assignProps","handleScroll","Container","ref","tabIndex","undefined","h","map","item","key","row","data","VirtualList"],"sources":["../../../src/components/VirtualList.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Root, Component, createComponent, sstyled } from '@semcore/core';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './Context';\nimport style from '../style/dropdown-menu.shadow.css';\n\nexport type RenderRowProps<T, D = never> = {\n index: number;\n row: T;\n data: [D] extends [never] ? undefined : D;\n};\n\ntype VirtualListProps<T, D extends object = never> = {\n /** List of all rows in ddMenu */\n rows: T[];\n /** Method for render row, it's better to wrap it via React.memo */\n renderRow: (props: RenderRowProps<T, D>) => React.ReactNode;\n /** The height of row. For now, you should calculate it on your side. */\n rowHeight: number;\n /** The buffer of rows out of visible rows\n * @default 10\n */\n rowsBuffer?: number;\n} & ([D] extends [never] ? { customData?: undefined } : {\n /** Some custom data for each renderRow function */\n customData: D;\n});\n\ntype State = {\n scrollTop: number;\n scrollDirection: 'up' | 'down';\n};\n\nclass VirtualListRoot<T = string, D extends object = never> extends Component<VirtualListProps<T, D>, [], Readonly<{}>, { rowsBuffer: number; index: number }, State> {\n static displayName = 'VirtualList';\n static style = style;\n\n static defaultProps = {\n rowsBuffer: 6,\n };\n\n containerRef = React.createRef<HTMLDivElement>();\n listRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n scrollTop: 0,\n scrollDirection: 'down',\n };\n\n componentDidMount() {\n const { index, rowHeight, rowsBuffer } = this.asProps;\n\n setTimeout(() => {\n const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;\n this.containerRef.current?.scrollTo({ top: index * rowHeight - listHeight + rowHeight / 2 });\n\n if (index <= rowsBuffer) {\n this.forceUpdate(); // we need this for correct render all items with calculated container height\n }\n }, 10); // 10 for correct work in safari\n }\n\n handleScroll = (e: React.SyntheticEvent<HTMLDivElement>) => {\n if (e.target instanceof HTMLElement) {\n const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';\n\n this.setState({\n scrollDirection,\n scrollTop: e.target.scrollTop,\n });\n }\n };\n\n render() {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n const { scrollDirection, scrollTop } = this.state;\n const { rows, rowHeight, rowsBuffer, styles, renderRow: RenderRow, customData } = this.asProps;\n\n const offsetHeight = this.listRef.current?.offsetHeight ?? 0;\n const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;\n const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;\n\n const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);\n\n const lastIndex = Math.min(\n Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared,\n rows.length,\n );\n\n const rowsToRender = rows.slice(startIndex, lastIndex);\n const rowMarginTop = rowHeight * startIndex;\n const rowMarginBottom = rowHeight * (rows.length - lastIndex);\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList\n render={ScrollAreaComponent}\n shadow={true}\n shadowSize={16}\n shadowTheme='light'\n onScroll={this.handleScroll}\n data-is-virtual='true'\n ref={this.listRef}\n >\n <ScrollAreaComponent.Container ref={this.containerRef} tabIndex={undefined} h={rows.length * rowHeight}>\n <Box h={rowMarginTop} />\n {rowsToRender.map((item, index) => {\n // @ts-ignore\n return <RenderRow key={startIndex + index} row={item} index={startIndex + index} data={customData} />;\n })}\n <Box h={rowMarginBottom} />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n }\n}\n\nexport type VirtualListComponent = (<\n T = string,\n D extends object = never,\n>(\n props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<typeof Box, 'div', VirtualListProps<T, D>>, 'tag' | 'children'>\n) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<typeof Box, 'div', VirtualListProps<any, any>>;\n\nexport const VirtualList = createComponent(VirtualListRoot) as VirtualListComponent;\n"],"mappings":"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","ignoreList":[]}
@@ -12,19 +12,19 @@ SDropdownMenuList {
12
12
  z-index: 3;
13
13
  }
14
14
 
15
- SShadowHorizontal {
16
-
17
- &:before,
18
- &:after {
19
- border-radius: var(--intergalactic-control-rounded, 6px);
15
+ &:not(&:has([data-ui-name="DropdownMenu.Group"][data-sticky="true"])) {
16
+ SShadowHorizontal {
17
+ &:before,
18
+ &:after {
19
+ border-radius: var(--intergalactic-control-rounded, 6px);
20
+ }
20
21
  }
21
- }
22
-
23
- SShadowVertical {
24
22
 
25
- &:before,
26
- &:after {
27
- border-radius: var(--intergalactic-control-rounded, 6px);
23
+ SShadowVertical {
24
+ &:before,
25
+ &:after {
26
+ border-radius: var(--intergalactic-control-rounded, 6px);
27
+ }
28
28
  }
29
29
  }
30
30
  }
@@ -81,3 +81,9 @@ SDropdownNestingItem SDropdownMenuItemContainer {
81
81
  SItemHint {
82
82
  color: var(--intergalactic-text-secondary, #6c6e79);
83
83
  }
84
+
85
+ SScrollContainer {
86
+ &:has([data-ui-name="DropdownMenu.Group"][data-sticky="true"]) {
87
+ overscroll-behavior: none;
88
+ }
89
+ }
@@ -20,26 +20,27 @@ const style = (
20
20
  /*__reshadow_css_start__*/
21
21
  (sstyled.insert(
22
22
  /*__inner_css_start__*/
23
- ".___SDropdownMenuList_1r615_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_1r615_gg_ .___SBar_1r615_gg_{z-index:3}.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:before,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1r615_gg_ .___SItemContent_1r615_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1r615_gg_.__nesting-trigger_1r615_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1r615_gg_,.___SItemContentText_1r615_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1r615_gg_:first-child,.___SItemContentText_1r615_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1r615_gg_:last-child,.___SItemContentText_1r615_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_l_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_m_1r615_gg_{padding:0}.___SDropdownMenuNesting_1r615_gg_.__highlighted_1r615_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_1r615_gg_._size_l_1r615_gg_,.___SDropdownNestingItem_1r615_gg_._size_m_1r615_gg_{padding-right:0}.___SDropdownNestingItem_1r615_gg_ .___SDropdownMenuItemContainer_1r615_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1r615_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}",
23
+ '.___SDropdownMenuList_wdv28_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_wdv28_gg_ .___SBar_wdv28_gg_{z-index:3}.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:before,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_wdv28_gg_ .___SItemContent_wdv28_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_wdv28_gg_.__nesting-trigger_wdv28_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_wdv28_gg_,.___SItemContentText_wdv28_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_wdv28_gg_:first-child,.___SItemContentText_wdv28_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_wdv28_gg_:last-child,.___SItemContentText_wdv28_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_m_wdv28_gg_{padding:0}.___SDropdownMenuNesting_wdv28_gg_.__highlighted_wdv28_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_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownNestingItem_wdv28_gg_._size_m_wdv28_gg_{padding-right:0}.___SDropdownNestingItem_wdv28_gg_ .___SDropdownMenuItemContainer_wdv28_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_wdv28_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___SScrollContainer_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true]){overscroll-behavior:none}',
24
24
  /*__inner_css_end__*/
25
- "1r615_gg_"
25
+ "wdv28_gg_"
26
26
  ), /*__reshadow_css_end__*/
27
27
  {
28
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1r615_gg_",
29
- "_nesting-trigger": "__nesting-trigger_1r615_gg_",
30
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1r615_gg_",
31
- "_size_l": "_size_l_1r615_gg_",
32
- "_size_m": "_size_m_1r615_gg_",
33
- "_highlighted": "__highlighted_1r615_gg_",
34
- "__SDropdownNestingItem": "___SDropdownNestingItem_1r615_gg_",
35
- "__SItemHint": "___SItemHint_1r615_gg_",
36
- "__SDropdownMenuList": "___SDropdownMenuList_1r615_gg_",
37
- "__SBar": "___SBar_1r615_gg_",
38
- "__SShadowHorizontal": "___SShadowHorizontal_1r615_gg_",
39
- "__SShadowVertical": "___SShadowVertical_1r615_gg_",
40
- "__SItemContent": "___SItemContent_1r615_gg_",
41
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1r615_gg_",
42
- "__SItemContentText": "___SItemContentText_1r615_gg_"
28
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_wdv28_gg_",
29
+ "_nesting-trigger": "__nesting-trigger_wdv28_gg_",
30
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_wdv28_gg_",
31
+ "_size_l": "_size_l_wdv28_gg_",
32
+ "_size_m": "_size_m_wdv28_gg_",
33
+ "_highlighted": "__highlighted_wdv28_gg_",
34
+ "__SDropdownNestingItem": "___SDropdownNestingItem_wdv28_gg_",
35
+ "__SItemHint": "___SItemHint_wdv28_gg_",
36
+ "__SDropdownMenuList": "___SDropdownMenuList_wdv28_gg_",
37
+ "__SBar": "___SBar_wdv28_gg_",
38
+ "__SShadowHorizontal": "___SShadowHorizontal_wdv28_gg_",
39
+ "__SShadowVertical": "___SShadowVertical_wdv28_gg_",
40
+ "__SItemContent": "___SItemContent_wdv28_gg_",
41
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_wdv28_gg_",
42
+ "__SItemContentText": "___SItemContentText_wdv28_gg_",
43
+ "__SScrollContainer": "___SScrollContainer_wdv28_gg_"
43
44
  })
44
45
  );
45
46
  const menuItemContext = /* @__PURE__ */ React.createContext({});
@@ -295,15 +296,16 @@ function List({
295
296
  var _ref2 = arguments[0], _ref1;
296
297
  const SDropdownMenuList = ScrollArea;
297
298
  const SBar = ScrollArea.Bar;
299
+ const SScrollContainer = ScrollArea.Container;
298
300
  return _ref1 = sstyled(styles), /* @__PURE__ */ React.createElement(ListBoxContextProvider, _ref1.cn("ListBoxContextProvider", {}), /* @__PURE__ */ React.createElement(SDropdownMenuList, _ref1.cn("SDropdownMenuList", {
299
301
  ...assignProps({
300
302
  "shadow": true,
301
303
  "shadowSize": 16,
302
304
  "shadowTheme": "light"
303
305
  }, _ref2)
304
- }), /* @__PURE__ */ React.createElement(ScrollArea.Container, {
305
- tabIndex: void 0
306
- }, /* @__PURE__ */ React.createElement(Children, _ref1.cn("Children", {}))), /* @__PURE__ */ React.createElement(SBar, _ref1.cn("SBar", {
306
+ }), /* @__PURE__ */ React.createElement(SScrollContainer, _ref1.cn("SScrollContainer", {
307
+ "tabIndex": void 0
308
+ }), /* @__PURE__ */ React.createElement(Children, _ref1.cn("Children", {}))), /* @__PURE__ */ React.createElement(SBar, _ref1.cn("SBar", {
307
309
  "orientation": "horizontal"
308
310
  })), /* @__PURE__ */ React.createElement(SBar, _ref1.cn("SBar", {
309
311
  "orientation": "vertical"
@@ -8,26 +8,27 @@ const style = (
8
8
  /*__reshadow_css_start__*/
9
9
  (sstyled.insert(
10
10
  /*__inner_css_start__*/
11
- ".___SDropdownMenuList_1r615_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_1r615_gg_ .___SBar_1r615_gg_{z-index:3}.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:before,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1r615_gg_ .___SItemContent_1r615_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1r615_gg_.__nesting-trigger_1r615_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1r615_gg_,.___SItemContentText_1r615_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1r615_gg_:first-child,.___SItemContentText_1r615_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1r615_gg_:last-child,.___SItemContentText_1r615_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_l_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_m_1r615_gg_{padding:0}.___SDropdownMenuNesting_1r615_gg_.__highlighted_1r615_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_1r615_gg_._size_l_1r615_gg_,.___SDropdownNestingItem_1r615_gg_._size_m_1r615_gg_{padding-right:0}.___SDropdownNestingItem_1r615_gg_ .___SDropdownMenuItemContainer_1r615_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1r615_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}",
11
+ '.___SDropdownMenuList_wdv28_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_wdv28_gg_ .___SBar_wdv28_gg_{z-index:3}.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowHorizontal_wdv28_gg_:before,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:after,.___SDropdownMenuList_wdv28_gg_:not(.___SDropdownMenuList_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true])) .___SShadowVertical_wdv28_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_wdv28_gg_ .___SItemContent_wdv28_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_wdv28_gg_.__nesting-trigger_wdv28_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_wdv28_gg_,.___SItemContentText_wdv28_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_wdv28_gg_:first-child,.___SItemContentText_wdv28_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_wdv28_gg_:last-child,.___SItemContentText_wdv28_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownMenuNesting_wdv28_gg_._size_m_wdv28_gg_{padding:0}.___SDropdownMenuNesting_wdv28_gg_.__highlighted_wdv28_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_wdv28_gg_._size_l_wdv28_gg_,.___SDropdownNestingItem_wdv28_gg_._size_m_wdv28_gg_{padding-right:0}.___SDropdownNestingItem_wdv28_gg_ .___SDropdownMenuItemContainer_wdv28_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_wdv28_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___SScrollContainer_wdv28_gg_:has([data-ui-name="DropdownMenu.Group"][data-sticky=true]){overscroll-behavior:none}',
12
12
  /*__inner_css_end__*/
13
- "1r615_gg_"
13
+ "wdv28_gg_"
14
14
  ), /*__reshadow_css_end__*/
15
15
  {
16
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1r615_gg_",
17
- "_nesting-trigger": "__nesting-trigger_1r615_gg_",
18
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1r615_gg_",
19
- "_size_l": "_size_l_1r615_gg_",
20
- "_size_m": "_size_m_1r615_gg_",
21
- "_highlighted": "__highlighted_1r615_gg_",
22
- "__SDropdownNestingItem": "___SDropdownNestingItem_1r615_gg_",
23
- "__SItemHint": "___SItemHint_1r615_gg_",
24
- "__SDropdownMenuList": "___SDropdownMenuList_1r615_gg_",
25
- "__SBar": "___SBar_1r615_gg_",
26
- "__SShadowHorizontal": "___SShadowHorizontal_1r615_gg_",
27
- "__SShadowVertical": "___SShadowVertical_1r615_gg_",
28
- "__SItemContent": "___SItemContent_1r615_gg_",
29
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1r615_gg_",
30
- "__SItemContentText": "___SItemContentText_1r615_gg_"
16
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_wdv28_gg_",
17
+ "_nesting-trigger": "__nesting-trigger_wdv28_gg_",
18
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_wdv28_gg_",
19
+ "_size_l": "_size_l_wdv28_gg_",
20
+ "_size_m": "_size_m_wdv28_gg_",
21
+ "_highlighted": "__highlighted_wdv28_gg_",
22
+ "__SDropdownNestingItem": "___SDropdownNestingItem_wdv28_gg_",
23
+ "__SItemHint": "___SItemHint_wdv28_gg_",
24
+ "__SDropdownMenuList": "___SDropdownMenuList_wdv28_gg_",
25
+ "__SBar": "___SBar_wdv28_gg_",
26
+ "__SShadowHorizontal": "___SShadowHorizontal_wdv28_gg_",
27
+ "__SShadowVertical": "___SShadowVertical_wdv28_gg_",
28
+ "__SItemContent": "___SItemContent_wdv28_gg_",
29
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_wdv28_gg_",
30
+ "__SItemContentText": "___SItemContentText_wdv28_gg_",
31
+ "__SScrollContainer": "___SScrollContainer_wdv28_gg_"
31
32
  })
32
33
  );
33
34
  class VirtualListRoot extends Component {
@@ -12,19 +12,19 @@ SDropdownMenuList {
12
12
  z-index: 3;
13
13
  }
14
14
 
15
- SShadowHorizontal {
16
-
17
- &:before,
18
- &:after {
19
- border-radius: var(--intergalactic-control-rounded, 6px);
15
+ &:not(&:has([data-ui-name="DropdownMenu.Group"][data-sticky="true"])) {
16
+ SShadowHorizontal {
17
+ &:before,
18
+ &:after {
19
+ border-radius: var(--intergalactic-control-rounded, 6px);
20
+ }
20
21
  }
21
- }
22
-
23
- SShadowVertical {
24
22
 
25
- &:before,
26
- &:after {
27
- border-radius: var(--intergalactic-control-rounded, 6px);
23
+ SShadowVertical {
24
+ &:before,
25
+ &:after {
26
+ border-radius: var(--intergalactic-control-rounded, 6px);
27
+ }
28
28
  }
29
29
  }
30
30
  }
@@ -81,3 +81,9 @@ SDropdownNestingItem SDropdownMenuItemContainer {
81
81
  SItemHint {
82
82
  color: var(--intergalactic-text-secondary, #6c6e79);
83
83
  }
84
+
85
+ SScrollContainer {
86
+ &:has([data-ui-name="DropdownMenu.Group"][data-sticky="true"]) {
87
+ overscroll-behavior: none;
88
+ }
89
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/dropdown-menu",
3
3
  "description": "Semrush DropdownMenu Component",
4
- "version": "17.0.0-prerelease.27",
4
+ "version": "17.0.0-prerelease.30",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,9 +14,9 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/button": "^17.0.0-prerelease.27",
18
- "@semcore/dropdown": "^17.0.0-prerelease.27",
19
- "@semcore/typography": "^17.0.0-prerelease.27",
17
+ "@semcore/button": "^17.0.0-prerelease.30",
18
+ "@semcore/dropdown": "^17.0.0-prerelease.30",
19
+ "@semcore/typography": "^17.0.0-prerelease.30",
20
20
  "classnames": "2.2.6"
21
21
  },
22
22
  "peerDependencies": {
@@ -30,12 +30,12 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/classnames": "2.2.6",
33
- "@semcore/core": "17.0.0-prerelease.27",
34
- "@semcore/base-components": "17.0.0-prerelease.27",
33
+ "@semcore/core": "17.0.0-prerelease.30",
34
+ "@semcore/base-components": "17.0.0-prerelease.30",
35
35
  "@semcore/testing-utils": "1.0.0",
36
- "@semcore/button": "17.0.0-prerelease.27",
37
- "@semcore/base-trigger": "17.0.0-prerelease.27",
38
- "@semcore/icon": "16.7.2-prerelease.27"
36
+ "@semcore/base-trigger": "17.0.0-prerelease.30",
37
+ "@semcore/icon": "16.7.2-prerelease.30",
38
+ "@semcore/button": "17.0.0-prerelease.30"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "pnpm semcore-builder --source=js,ts && pnpm vite build"