@semcore/dropdown-menu 16.2.2 → 17.0.0-prerelease.18
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 +6 -0
- package/lib/cjs/DropdownMenu.js +394 -467
- package/lib/cjs/DropdownMenu.js.map +1 -1
- package/lib/cjs/components/Context.js +8 -8
- package/lib/cjs/components/Context.js.map +1 -1
- package/lib/cjs/components/VirtualList.js +98 -115
- package/lib/cjs/components/VirtualList.js.map +1 -1
- package/lib/cjs/index.d.js.map +1 -1
- package/lib/cjs/index.js +3 -3
- package/lib/cjs/style/dropdown-menu.shadow.css +1 -1
- package/lib/cjs/translations/__intergalactic-dynamic-locales.js +16 -16
- package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/es6/DropdownMenu.js +378 -455
- package/lib/es6/DropdownMenu.js.map +1 -1
- package/lib/es6/components/Context.js +6 -7
- package/lib/es6/components/Context.js.map +1 -1
- package/lib/es6/components/VirtualList.js +95 -112
- package/lib/es6/components/VirtualList.js.map +1 -1
- package/lib/es6/index.d.js.map +1 -1
- package/lib/es6/style/dropdown-menu.shadow.css +1 -1
- package/lib/es6/translations/__intergalactic-dynamic-locales.js +15 -15
- package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/esm/DropdownMenu.mjs +363 -374
- package/lib/esm/components/Context.mjs +6 -7
- package/lib/esm/components/VirtualList.mjs +97 -99
- package/lib/esm/style/dropdown-menu.shadow.css +1 -1
- package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +1 -1
- package/lib/types/index.d.ts +3 -79
- package/package.json +11 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.js","names":["ButtonComponent","createComponent","sstyled","Root","lastInteraction","callAllEventHandlers","isAdvanceMode","isFocusInside","setFocus","forkRef","useUID","Dropdown","AbstractDropdown","selectedIndexContext","enhance","Flex","Box","ScrollAreaComponent","Text","React","ListBoxContextProvider","VirtualList","style","_sstyled","insert","localizedMessages","menuItemContext","createContext","DropdownMenuRoot","_AbstractDropdown","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","createRef","_inherits","_createClass","key","value","uncontrolledProps","_this2","_objectSpread","_superPropGet","visible","setTimeout","focusAndScrollToSelected","get","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","_this$menuRef$current","_this3","_this$menuElements","menuElements","isFocusAlreadyInPopper","popperRef","dataset","isVirtual","scrollToNodeAsync","then","asProps","focus","preventScroll","selectedIndex","from","indexOf","handlers","highlightedIndex","afterOpenPopper","_this$menuRef$current2","_this$menuElements2","itemRef","props","index","node","document","activeElement","getTriggerProps","_this$asProps","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","_this$asProps2","isHighlighted","shouldRecalculateItemTabIndex","getItemProps","_props$index","_this4","realIndex","itemProps","tabIndex","tag","_props$use","_props$theme","_props$size","use","theme","size","innerOutline","onClick","place","_this5","e","_this5$menuRef$curren","_e$target$getAttribut","_this5$asProps","placement","inlineActions","contains","target","stopPropagation","show","startsWith","hide","isMenuItem","getAttribute","_this5$itemRefs$highl","highlightedIndexProps","findIndex","p","itemRefs","preventDefault","triggerRef","render","_ref","_this$asProps3","interaction","timeout","createElement","Provider","_assignProps","Object","values","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","locale","trigger","popper","List","_ref22","_ref2","arguments[0]","_ref13","styles","SDropdownMenuList","SBar","Bar","cn","_assignProps2","Container","Actions","_ref23","_ref3","_ref14","SDropdownMenuActions","_assignProps3","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends","role","_assignProps4","Item","_ref24","_ref5","_ref15","id","forwardRef","ariaChecked","SDropdownMenuItemContainer","useRef","_React$useState","useState","_React$useState2","_slicedToArray","highlighted","setHighlighted","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","_assignProps5","isKeyboard","Addon","_ref6","_ref16","SDropdownMenuItemAddon","_assignProps6","Trigger","_ref7","_assignProps7","ItemContent","_ref25","_ref8","_ref17","SItemContent","menuItemCtxValue","useContext","subMenu","_React$useState3","Set","_React$useState4","describedby","setDescribedby","element","parent","parentElement","prev","add","_assignProps8","_toConsumableArray","join","ItemContentText","_ref26","_ref9","_ref18","SItemContentText","_assignProps9","ItemHint","_ref27","_ref0","_ref19","SItemHint","_React$useContext","_assignProps0","_ref1","_ref20","_assignProps1","Title","_ref10","_ref21","_assignProps10","Nesting","_ref28","_ref11","_assignProps11","NestingTrigger","_ref29","_ref12","_assignProps12","ItemTitle","Group"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import ButtonComponent from '@semcore/button';\nimport { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';\nimport { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport Dropdown, { AbstractDropdown, selectedIndexContext, enhance } from '@semcore/dropdown';\nimport { Flex, Box } from '@semcore/flex-box';\nimport ScrollAreaComponent from '@semcore/scroll-area';\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: forkRef(forwardRef, itemRef),\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 }, [itemRef.current]);\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : menuItemContextValue.ref}\n use:highlighted={!disabled && highlighted && lastInteraction.isKeyboard()}\n use:role={advancedMode ? undefined : role}\n use:id={advancedMode ? undefined : id}\n use:tabIndex={advancedMode ? undefined : tabIndex}\n use:aria-checked={advancedMode ? undefined : ariaChecked}\n >\n <Children />\n </SDropdownMenuItemContainer>\n </menuItemContext.Provider>,\n );\n}\n\nfunction Addon(props) {\n const SDropdownMenuItemAddon = Root;\n return sstyled(props.styles)(<SDropdownMenuItemAddon render={Box} />);\n}\n\nfunction Trigger() {\n return <Root render={Dropdown.Trigger} />;\n}\n\nfunction ItemContent({ styles }) {\n const SItemContent = Root;\n const ref = React.useRef();\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n let subMenu = undefined;\n\n if (menuItemCtxValue.hasSubMenu) {\n subMenu = 'true';\n }\n\n const [describedby, setDescribedby] = React.useState(new Set(menuItemCtxValue.ariaDescribes));\n\n React.useEffect(() => {\n const element = ref.current;\n const parent = element?.parentElement;\n\n if (\n parent.getAttribute('aria-haspopup') === 'true' &&\n parent.getAttribute('aria-describedby')\n ) {\n setDescribedby((prev) => {\n prev.add(parent.getAttribute('aria-describedby'));\n\n return new Set(prev);\n });\n }\n }, [menuItemCtxValue.ariaDescribes]);\n\n return sstyled(styles)(\n <SItemContent\n render={Flex}\n role={menuItemCtxValue.role}\n id={menuItemCtxValue.contentId}\n tabIndex={menuItemCtxValue.tabIndex}\n ref={forkRef(menuItemCtxValue.ref, ref)}\n use:aria-describedby={[...describedby].join(' ')}\n aria-haspopup={menuItemCtxValue.hasSubMenu ? 'true' : undefined}\n aria-expanded={subMenu}\n aria-checked={menuItemCtxValue.ariaChecked}\n alignItems='center'\n justifyContent={menuItemCtxValue.hasSubMenu ? 'space-between' : undefined}\n disabled={menuItemCtxValue.disabled}\n />,\n );\n}\n\nfunction ItemContentText({ styles }) {\n const SItemContentText = Root;\n return sstyled(styles)(<SItemContentText render={Text} />);\n}\n\nfunction ItemHint({ styles }) {\n const SItemHint = Root;\n const { hintId } = React.useContext(menuItemContext);\n\n return sstyled(styles)(<SItemHint render={Flex} id={hintId} aria-hidden='true' />);\n}\n\n/**\n * @deprecated Use Item hint\n */\nfunction Hint(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='hint' />,\n );\n}\n/**\n * @deprecated Use Group with title prop\n */\nfunction Title(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='title' />,\n );\n}\n\n/**\n * @deprecated\n */\nfunction Nesting({ forwardRef }) {\n return <Root render={DropdownMenu.Item} ref={forwardRef} />;\n}\n\n/**\n * @deprecated\n */\nfunction NestingTrigger({ forwardRef }) {\n return (\n <Root\n render={DropdownMenu.Item.Content}\n tag={DropdownMenu.Trigger}\n ref={forwardRef}\n use:role='menuitem'\n />\n );\n}\n\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n VirtualList,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\n /**\n * @deprecated. Use just Item. See examples on\n */\n Nesting: [Nesting, { Trigger: NestingTrigger, Addon }],\n ItemTitle: Title,\n ItemHint: Hint,\n Group: Dropdown.Group,\n },\n {\n parent: [Dropdown],\n },\n);\n\nDropdownMenu.selectedIndexContext = selectedIndexContext;\n\nexport default DropdownMenu;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DropdownMenu.js","names":["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,9 +1,8 @@
|
|
|
1
|
-
import { hideScrollBarsFromScreenReadersContext } from '@semcore/
|
|
1
|
+
import { hideScrollBarsFromScreenReadersContext } from '@semcore/base-components';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
3
|
+
export const ListBoxContextProvider = ({
|
|
4
|
+
children
|
|
5
|
+
}) => /*#__PURE__*/React.createElement(hideScrollBarsFromScreenReadersContext.Provider, {
|
|
6
|
+
value: true
|
|
7
|
+
}, children);
|
|
9
8
|
//# sourceMappingURL=Context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["hideScrollBarsFromScreenReadersContext","React","ListBoxContextProvider","
|
|
1
|
+
{"version":3,"file":"Context.js","names":["hideScrollBarsFromScreenReadersContext","React","ListBoxContextProvider","children","createElement","Provider","value"],"sources":["../../../src/components/Context.tsx"],"sourcesContent":["import { hideScrollBarsFromScreenReadersContext } from '@semcore/base-components';\nimport React from 'react';\n\nexport const ListBoxContextProvider = ({ children }: React.PropsWithChildren) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n"],"mappings":"AAAA,SAASA,sCAAsC,QAAQ,0BAA0B;AACjF,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EAAEC;AAAkC,CAAC,kBAC1EF,KAAA,CAAAG,aAAA,CAACJ,sCAAsC,CAACK,QAAQ;EAACC,KAAK,EAAE;AAAK,GAC1DH,QAC8C,CAClD","ignoreList":[]}
|
|
@@ -1,143 +1,126 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _callSuper from "@babel/runtime/helpers/callSuper";
|
|
5
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
2
|
import { sstyled as _sstyled } from "@semcore/core";
|
|
8
3
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
9
|
-
import { Box } from '@semcore/base-components';
|
|
4
|
+
import { ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';
|
|
10
5
|
import { Root, Component, createComponent, sstyled } from '@semcore/core';
|
|
11
|
-
import ScrollAreaComponent from '@semcore/scroll-area';
|
|
12
6
|
import React from 'react';
|
|
13
7
|
import { ListBoxContextProvider } from './Context';
|
|
14
8
|
/*!__reshadow-styles__:"../style/dropdown-menu.shadow.css"*/
|
|
15
|
-
|
|
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_"),
|
|
16
10
|
/*__reshadow_css_end__*/
|
|
17
11
|
{
|
|
18
|
-
"__SDropdownMenuItemContainer": "
|
|
19
|
-
"_nesting-trigger": "__nesting-
|
|
20
|
-
"__SDropdownMenuNesting": "
|
|
21
|
-
"_size_l": "
|
|
22
|
-
"_size_m": "
|
|
23
|
-
"_highlighted": "
|
|
24
|
-
"__SDropdownNestingItem": "
|
|
25
|
-
"__SItemHint": "
|
|
26
|
-
"__SDropdownMenuList": "
|
|
27
|
-
"__SBar": "
|
|
28
|
-
"__SShadowHorizontal": "
|
|
29
|
-
"__SShadowVertical": "
|
|
30
|
-
"__SItemContent": "
|
|
31
|
-
"__SDropdownMenuItemAddon": "
|
|
32
|
-
"__SItemContentText": "
|
|
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_"
|
|
33
27
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
_this = _callSuper(this, VirtualListRoot, [].concat(args));
|
|
42
|
-
_defineProperty(_this, "containerRef", /*#__PURE__*/React.createRef());
|
|
43
|
-
_defineProperty(_this, "listRef", /*#__PURE__*/React.createRef());
|
|
44
|
-
_defineProperty(_this, "state", {
|
|
28
|
+
class VirtualListRoot extends Component {
|
|
29
|
+
constructor(...args) {
|
|
30
|
+
super(...args);
|
|
31
|
+
_defineProperty(this, "containerRef", /*#__PURE__*/React.createRef());
|
|
32
|
+
_defineProperty(this, "listRef", /*#__PURE__*/React.createRef());
|
|
33
|
+
_defineProperty(this, "state", {
|
|
45
34
|
scrollTop: 0,
|
|
46
35
|
scrollDirection: 'down'
|
|
47
36
|
});
|
|
48
|
-
_defineProperty(
|
|
37
|
+
_defineProperty(this, "handleScroll", e => {
|
|
49
38
|
if (e.target instanceof HTMLElement) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
scrollDirection
|
|
39
|
+
const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';
|
|
40
|
+
this.setState({
|
|
41
|
+
scrollDirection,
|
|
53
42
|
scrollTop: e.target.scrollTop
|
|
54
43
|
});
|
|
55
44
|
}
|
|
56
45
|
});
|
|
57
|
-
return _this;
|
|
58
46
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var lastIndex = Math.min(Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared, rows.length);
|
|
103
|
-
var rowsToRender = rows.slice(startIndex, lastIndex);
|
|
104
|
-
var rowMarginTop = rowHeight * startIndex;
|
|
105
|
-
var rowMarginBottom = rowHeight * (rows.length - lastIndex);
|
|
106
|
-
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(ListBoxContextProvider, _ref2.cn("ListBoxContextProvider", {}), /*#__PURE__*/React.createElement(SDropdownMenuList, _ref2.cn("SDropdownMenuList", _objectSpread({}, _assignProps({
|
|
47
|
+
componentDidMount() {
|
|
48
|
+
const {
|
|
49
|
+
index,
|
|
50
|
+
rowHeight,
|
|
51
|
+
rowsBuffer
|
|
52
|
+
} = this.asProps;
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;
|
|
55
|
+
this.containerRef.current?.scrollTo({
|
|
56
|
+
top: index * rowHeight - listHeight + rowHeight / 2
|
|
57
|
+
});
|
|
58
|
+
if (index <= rowsBuffer) {
|
|
59
|
+
this.forceUpdate(); // we need this for correct render all items with calculated container height
|
|
60
|
+
}
|
|
61
|
+
}, 10); // 10 for correct work in safari
|
|
62
|
+
}
|
|
63
|
+
render() {
|
|
64
|
+
var _ref = this.asProps,
|
|
65
|
+
_ref2;
|
|
66
|
+
const SDropdownMenuList = ScrollAreaComponent;
|
|
67
|
+
const SBar = ScrollAreaComponent.Bar;
|
|
68
|
+
const {
|
|
69
|
+
scrollDirection,
|
|
70
|
+
scrollTop
|
|
71
|
+
} = this.state;
|
|
72
|
+
const {
|
|
73
|
+
rows,
|
|
74
|
+
rowHeight,
|
|
75
|
+
rowsBuffer,
|
|
76
|
+
styles,
|
|
77
|
+
renderRow: RenderRow,
|
|
78
|
+
customData
|
|
79
|
+
} = this.asProps;
|
|
80
|
+
const offsetHeight = this.listRef.current?.offsetHeight ?? 0;
|
|
81
|
+
const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;
|
|
82
|
+
const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;
|
|
83
|
+
const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);
|
|
84
|
+
const lastIndex = Math.min(Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared, rows.length);
|
|
85
|
+
const rowsToRender = rows.slice(startIndex, lastIndex);
|
|
86
|
+
const rowMarginTop = rowHeight * startIndex;
|
|
87
|
+
const rowMarginBottom = rowHeight * (rows.length - lastIndex);
|
|
88
|
+
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(ListBoxContextProvider, _ref2.cn("ListBoxContextProvider", {}), /*#__PURE__*/React.createElement(SDropdownMenuList, _ref2.cn("SDropdownMenuList", {
|
|
89
|
+
..._assignProps({
|
|
107
90
|
"shadow": true,
|
|
108
91
|
"shadowSize": 16,
|
|
109
92
|
"shadowTheme": 'light',
|
|
110
93
|
"onScroll": this.handleScroll,
|
|
111
94
|
"data-is-virtual": 'true',
|
|
112
95
|
"ref": this.listRef
|
|
113
|
-
}, _ref)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
96
|
+
}, _ref)
|
|
97
|
+
}), /*#__PURE__*/React.createElement(ScrollAreaComponent.Container, {
|
|
98
|
+
ref: this.containerRef,
|
|
99
|
+
tabIndex: undefined,
|
|
100
|
+
h: rows.length * rowHeight
|
|
101
|
+
}, /*#__PURE__*/React.createElement(Box, _ref2.cn("Box", {
|
|
102
|
+
"h": rowMarginTop
|
|
103
|
+
})), rowsToRender.map((item, index) => {
|
|
104
|
+
// @ts-ignore
|
|
105
|
+
return /*#__PURE__*/React.createElement(RenderRow, {
|
|
106
|
+
key: startIndex + index,
|
|
107
|
+
row: item,
|
|
108
|
+
index: startIndex + index,
|
|
109
|
+
data: customData
|
|
110
|
+
});
|
|
111
|
+
}), /*#__PURE__*/React.createElement(Box, _ref2.cn("Box", {
|
|
112
|
+
"h": rowMarginBottom
|
|
113
|
+
}))), /*#__PURE__*/React.createElement(SBar, _ref2.cn("SBar", {
|
|
114
|
+
"orientation": 'horizontal'
|
|
115
|
+
})), /*#__PURE__*/React.createElement(SBar, _ref2.cn("SBar", {
|
|
116
|
+
"orientation": 'vertical'
|
|
117
|
+
}))));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
137
120
|
_defineProperty(VirtualListRoot, "displayName", 'VirtualList');
|
|
138
121
|
_defineProperty(VirtualListRoot, "style", style);
|
|
139
122
|
_defineProperty(VirtualListRoot, "defaultProps", {
|
|
140
123
|
rowsBuffer: 6
|
|
141
124
|
});
|
|
142
|
-
export
|
|
125
|
+
export const VirtualList = createComponent(VirtualListRoot);
|
|
143
126
|
//# sourceMappingURL=VirtualList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualList.js","names":["Box","Root","Component","createComponent","sstyled","ScrollAreaComponent","React","ListBoxContextProvider","style","_sstyled","insert","VirtualListRoot","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","createRef","scrollTop","scrollDirection","e","target","HTMLElement","state","setState","_inherits","_createClass","key","value","componentDidMount","_this2","_this$asProps","asProps","index","rowHeight","rowsBuffer","setTimeout","_this2$listRef$curren","_this2$listRef$curren2","_this2$containerRef$c","listHeight","listRef","current","getBoundingClientRect","height","containerRef","scrollTo","top","forceUpdate","render","_ref","_ref2","_this$listRef$current","_this$listRef$current2","SDropdownMenuList","SBar","Bar","_this$state","_this$asProps2","rows","styles","RenderRow","renderRow","customData","offsetHeight","prevPrepared","nextPrepared","startIndex","Math","max","floor","lastIndex","min","ceil","rowsToRender","slice","rowMarginTop","rowMarginBottom","createElement","cn","_objectSpread","_assignProps","handleScroll","Container","ref","tabIndex","undefined","h","map","item","row","data","VirtualList"],"sources":["../../../src/components/VirtualList.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Root, Component, createComponent, sstyled } from '@semcore/core';\nimport ScrollAreaComponent from '@semcore/scroll-area';\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>, {}, State, [], { rowsBuffer: number; index: number }> {\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":[]}
|
package/lib/es6/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { Box, BoxProps, FlexProps, Flex, eventInteraction, ScrollAreaProps } from '@semcore/base-components';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type {\n DropdownContext,\n DropdownProps,\n DropdownHandlers,\n DropdownTriggerProps,\n DropdownPopperAriaProps,\n} from '@semcore/dropdown';\nimport type Dropdown from '@semcore/dropdown';\nimport type { Text } from '@semcore/typography';\n\nimport type { VirtualList, RenderRowProps } from './components/VirtualList';\n\nexport type DropdownMenuSize = 'm' | 'l';\n\nexport type DropdownMenuProps = DropdownProps & {\n /**\n * Set role `menuitemradio` (or `menuitemcheckbox` if `multiselect`) for Dropdown.Item\n */\n selectable?: boolean;\n /**\n * Multiple select\n */\n multiselect?: boolean;\n /**\n * Size of the menu\n * @default m\n */\n size?: DropdownMenuSize;\n /**\n * Index of the element selected by default\n */\n defaultHighlightedIndex?: number | null;\n /**\n * Index of the selected item\n */\n highlightedIndex?: number | null;\n /**\n * Callback for highlightedIndex change\n * highlightedIndex - Index of the selected item\n */\n onHighlightedIndexChange?: (highlightedIndex: number | null) => void;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * Flag for menu that using as actions on DropdownMenu.Item\n */\n inlineActions?: boolean;\n\n /**\n * Count of menu items (for virtual lists only)\n */\n itemsCount?: number;\n};\n\nexport type DropdownMenuListProps = BoxProps &\n ScrollAreaProps & {\n /**\n * Size of the menu\n * @default m\n */\n size?: DropdownMenuSize;\n };\n\nexport type DropdownMenuMenuProps = DropdownMenuListProps & {};\n\nexport type DropdownMenuItemProps = FlexProps & {\n /**\n * Enables selected state. For selectable dropdowns only.\n */\n selected?: boolean;\n /**\n * Disables item\n */\n disabled?: boolean;\n /**\n * Size of the component\n * @default m\n */\n size?: DropdownMenuSize;\n /**\n * Index of item (used in virtualized lists)\n */\n index?: number;\n};\n\nexport type DropdownMenuContext = DropdownContext & {\n /**\n * Tracks which menu item is currently highlighted/focused for keyboard navigation\n **/\n highlightedIndex?: number;\n /**\n * Returns props for the menu list container\n **/\n getListProps: PropGetterFn;\n /**\n * Returns props for individual menu items\n **/\n getItemProps: PropGetterFn;\n /**\n * Returns props for item hint/description elements\n **/\n getItemHintProps: PropGetterFn;\n /**\n * Returns props for item title elements\n **/\n getItemTitleProps: PropGetterFn;\n};\n\nexport type DropdownMenuHandlers = DropdownHandlers & {\n highlightedIndex: (index: number) => void;\n};\n\nexport type DropdownMenuTriggerProps = DropdownTriggerProps;\n\ndeclare const DropdownMenu: Intergalactic.Component<\n 'div',\n DropdownMenuProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n> & {\n Trigger: typeof Dropdown.Trigger;\n Popper: Intergalactic.Component<'div', DropdownMenuProps & DropdownPopperAriaProps>;\n List: Intergalactic.Component<\n 'div',\n DropdownMenuListProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Actions: Intergalactic.Component<\n typeof Flex,\n DropdownMenuListProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Menu: Intergalactic.Component<\n 'div',\n DropdownMenuMenuProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Item: Intergalactic.Component<\n typeof Dropdown.Item,\n DropdownMenuItemProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n > & {\n Addon: typeof Box;\n Content: typeof Flex;\n Text: typeof Text;\n Hint: typeof Flex;\n };\n\n Group: typeof Dropdown.Group;\n\n VirtualList: typeof VirtualList;\n\n selectedIndexContext: React.Context<number>;\n nestedMenuInteraction: eventInteraction;\n};\n\nexport default DropdownMenu;\n\nexport {\n RenderRowProps,\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -41,7 +41,7 @@ SDropdownMenuItemContainer[nesting-trigger] {
|
|
|
41
41
|
|
|
42
42
|
SDropdownMenuItemAddon,
|
|
43
43
|
SItemContentText {
|
|
44
|
-
display: inline-flex;
|
|
44
|
+
display: inline-flex; /* todo: Brauer Ilia - why? should be changed to inline/inline-block for SItemContentText */
|
|
45
45
|
margin-left: var(--intergalactic-spacing-1x, 4px);
|
|
46
46
|
margin-right: var(--intergalactic-spacing-1x, 4px);
|
|
47
47
|
|