@semcore/dropdown 17.0.0-prerelease.34 → 17.0.0-prerelease.36
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 +5 -1
- package/lib/cjs/Dropdown.js +6 -1
- package/lib/cjs/Dropdown.js.map +1 -1
- package/lib/es6/Dropdown.js +6 -1
- package/lib/es6/Dropdown.js.map +1 -1
- package/lib/esm/Dropdown.mjs +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,12 +2,16 @@
|
|
|
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-04-
|
|
5
|
+
## [17.0.0] - 2026-04-10
|
|
6
6
|
|
|
7
7
|
### BREAK
|
|
8
8
|
|
|
9
9
|
- New major version.
|
|
10
10
|
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Set default size for `Dropdown.Group`.
|
|
14
|
+
|
|
11
15
|
## [16.1.4] - 2025-12-01
|
|
12
16
|
|
|
13
17
|
### Fixed
|
package/lib/cjs/Dropdown.js
CHANGED
|
@@ -185,12 +185,17 @@ function DropdownPopper({
|
|
|
185
185
|
function DropdownGroup(props) {
|
|
186
186
|
var _ref3 = arguments[0],
|
|
187
187
|
_ref6;
|
|
188
|
+
/*
|
|
189
|
+
`size` is not exposed as a public prop,
|
|
190
|
+
but it may be implicitly inherited from parent components such as Select or DropdownMenu.
|
|
191
|
+
Since `size` directly affects item dimensions, we default it to 'm' to preserve backward compatibility.
|
|
192
|
+
*/
|
|
188
193
|
const {
|
|
189
194
|
styles,
|
|
190
195
|
title,
|
|
191
196
|
Children,
|
|
192
197
|
subTitle,
|
|
193
|
-
size,
|
|
198
|
+
size = 'm',
|
|
194
199
|
sticky
|
|
195
200
|
} = props;
|
|
196
201
|
const SGroup = _baseComponents.Box;
|
package/lib/cjs/Dropdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","names":["_core","require","_baseComponents","_capitalizeFirstLetter","_interopRequireDefault","_i18nEnhance","_uniqueID","_interopRequireWildcard","_useFocusLock","_react","_DropdownItem","_intergalacticDynamicLocales","style","sstyled","insert","INTERACTION_TAGS","DropdownRoot","Component","constructor","args","_defineProperty2","default","React","createRef","name","enabled","phase","fn","state","options","position","placement","split","isVertical","indexOf","len","referenceLen","elements","reference","capitalizeFirstLetter","stretch","rects","popper","width","Math","max","e","visible","interaction","asProps","element","popperRef","current","key","hasFocusableIn","preventDefault","stopPropagation","includes","target","tagName","handlers","uncontrolledProps","getTriggerProps","uid","disablePortal","getI18nText","undefined","handlerTriggerKeyDown","getPopperProps","ignorePortalsStacking","id","tabIndex","role","ref","focusMaster","autoFocus","render","Children","forwardRef","modifiers","other","createElement","Popper","_extends2","defaultModifiers","offset","defaultVisible","i18n","localizedMessages","locale","uniqueIDEnhancement","i18nEnhance","DropdownTrigger","styles","tag","Tag","_ref","arguments[0]","_ref4","hasInputTrigger","isInputTriggerTag","SDropdownTrigger","Trigger","cn","assignProps","DropdownPopper","_ref2","_ref5","SDropdownPopper","DropdownGroup","props","_ref3","_ref6","title","subTitle","size","sticky","SGroup","Box","SDropdownItemContainer","Dropdown","Item","SGroupTitle","Flex","SGroupHint","uidTitle","useUID","uidSubTitle","groupAriaProps","Fragment","createComponent","DropdownItem","Group","parent","_default","exports"],"sources":["../../src/Dropdown.jsx"],"sourcesContent":["import { Popper, Flex, Box, isInputTriggerTag } from '@semcore/base-components';\nimport { createComponent, Root, Component, sstyled } from '@semcore/core';\nimport capitalizeFirstLetter from '@semcore/core/lib/utils/capitalizeFirstLetter';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement, { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport { hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';\nimport React from 'react';\n\nimport { DropdownItem } from './DropdownItem';\nimport style from './style/dropdown.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst INTERACTION_TAGS = ['INPUT', 'TEXTAREA'];\n\nclass DropdownRoot extends Component {\n static displayName = 'Dropdown';\n static style = style;\n static defaultProps = {\n // timeout: [100, 50],\n placement: 'bottom-start',\n offset: [0, 4],\n stretch: 'min',\n defaultVisible: false,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n };\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n popperRef = React.createRef();\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n defaultModifiers = [\n {\n name: 'flip',\n enabled: false,\n },\n {\n name: 'stretch',\n phase: 'beforeRead',\n enabled: true,\n fn: function ({ state, options }) {\n const [position] = state.placement.split('-');\n\n const isVertical = ['left', 'right'].indexOf(position) !== -1;\n const len = isVertical ? 'height' : 'width';\n const referenceLen = state.elements.reference[`offset${capitalizeFirstLetter(len)}`];\n\n if (options.stretch === 'min') {\n state.rects.popper.width = Math.max(state.rects.popper.width, referenceLen);\n state.elements.popper.style[`min${capitalizeFirstLetter(len)}`] = `${referenceLen}px`;\n }\n\n if (options.stretch === 'fixed') {\n state.rects.popper.width = referenceLen;\n state.elements.popper.style[len] = `${referenceLen}px`;\n }\n },\n },\n ];\n\n handlerTriggerKeyDown = (e) => {\n const { visible, interaction } = this.asProps;\n const element = this.popperRef.current;\n\n if (\n interaction === 'click' &&\n visible &&\n e.key === 'Tab' &&\n element &&\n !hasFocusableIn(element)\n ) {\n e.preventDefault();\n e.stopPropagation();\n\n return;\n }\n\n if (e.key === ' ' && INTERACTION_TAGS.includes(e.target.tagName)) return;\n if (e.key === 'Enter' && e.target.tagName === 'TEXTAREA') return;\n\n if (['Enter', ' '].includes(e.key) && interaction !== 'none') {\n e.preventDefault();\n this.handlers.visible(true);\n }\n };\n\n getTriggerProps() {\n const { uid, visible, disablePortal, getI18nText } = this.asProps;\n\n return {\n 'id': `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-popper` : undefined,\n 'focusHint': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-expanded': visible ? 'true' : 'false',\n 'onKeyDown': this.handlerTriggerKeyDown,\n 'aria-haspopup': 'dialog',\n };\n }\n\n getPopperProps() {\n const { uid, disablePortal, ignorePortalsStacking, interaction } = this.asProps;\n\n return {\n id: `igc-${uid}-popper`,\n tabIndex: 0,\n role: 'dialog',\n disablePortal,\n ignorePortalsStacking,\n ref: this.popperRef,\n focusMaster: interaction === 'click',\n autoFocus: 'enforced',\n };\n }\n\n render() {\n const { Children, forwardRef, modifiers = [], stretch, ...other } = this.asProps;\n\n return (\n <Popper\n ref={forwardRef}\n modifiers={[\n ...this.defaultModifiers,\n {\n name: 'stretch',\n options: typeof stretch === 'object' ? stretch : { stretch },\n },\n ...modifiers,\n ]}\n {...other}\n >\n <Children />\n </Popper>\n );\n }\n}\n\nfunction DropdownTrigger({ styles, tag: Tag }) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SDropdownTrigger = Root;\n\n return sstyled(styles)(\n <SDropdownTrigger render={Popper.Trigger} role={hasInputTrigger ? 'combobox' : 'button'} />,\n );\n}\n\nfunction DropdownPopper({ styles }) {\n const SDropdownPopper = Root;\n return sstyled(styles)(<SDropdownPopper render={Popper.Popper} />);\n}\n\nfunction DropdownGroup(props) {\n const { styles, title, Children, subTitle, size, sticky } = props;\n const SGroup = Root;\n const SDropdownItemContainer = Dropdown.Item;\n const SGroupTitle = Flex;\n const SGroupHint = Flex;\n const uidTitle = useUID('title_mi_group');\n const uidSubTitle = useUID('sub_title_mi_group');\n const groupAriaProps = {\n 'aria-labelledby': uidTitle,\n 'aria-describedby': subTitle ? uidSubTitle : undefined,\n };\n return sstyled(styles)(\n <>\n <SDropdownItemContainer notInteractive aria-hidden='true' tabindex={-1} size={size} sticky={sticky}>\n <SGroupTitle id={uidTitle}>{title}</SGroupTitle>\n {subTitle && <SGroupHint id={uidSubTitle}>{subTitle}</SGroupHint>}\n </SDropdownItemContainer>\n <SGroup\n render={Box}\n role='group'\n {...groupAriaProps}\n __excludeProps={['title', 'sticky']}\n data-sticky={sticky}\n >\n <Children />\n </SGroup>\n </>,\n );\n}\n\nconst Dropdown = createComponent(\n DropdownRoot,\n {\n Trigger: DropdownTrigger,\n Popper: DropdownPopper,\n Item: DropdownItem,\n Group: DropdownGroup,\n },\n {\n parent: Popper,\n },\n);\n\nexport default Dropdown;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","names":["_core","require","_baseComponents","_capitalizeFirstLetter","_interopRequireDefault","_i18nEnhance","_uniqueID","_interopRequireWildcard","_useFocusLock","_react","_DropdownItem","_intergalacticDynamicLocales","style","sstyled","insert","INTERACTION_TAGS","DropdownRoot","Component","constructor","args","_defineProperty2","default","React","createRef","name","enabled","phase","fn","state","options","position","placement","split","isVertical","indexOf","len","referenceLen","elements","reference","capitalizeFirstLetter","stretch","rects","popper","width","Math","max","e","visible","interaction","asProps","element","popperRef","current","key","hasFocusableIn","preventDefault","stopPropagation","includes","target","tagName","handlers","uncontrolledProps","getTriggerProps","uid","disablePortal","getI18nText","undefined","handlerTriggerKeyDown","getPopperProps","ignorePortalsStacking","id","tabIndex","role","ref","focusMaster","autoFocus","render","Children","forwardRef","modifiers","other","createElement","Popper","_extends2","defaultModifiers","offset","defaultVisible","i18n","localizedMessages","locale","uniqueIDEnhancement","i18nEnhance","DropdownTrigger","styles","tag","Tag","_ref","arguments[0]","_ref4","hasInputTrigger","isInputTriggerTag","SDropdownTrigger","Trigger","cn","assignProps","DropdownPopper","_ref2","_ref5","SDropdownPopper","DropdownGroup","props","_ref3","_ref6","title","subTitle","size","sticky","SGroup","Box","SDropdownItemContainer","Dropdown","Item","SGroupTitle","Flex","SGroupHint","uidTitle","useUID","uidSubTitle","groupAriaProps","Fragment","createComponent","DropdownItem","Group","parent","_default","exports"],"sources":["../../src/Dropdown.jsx"],"sourcesContent":["import { Popper, Flex, Box, isInputTriggerTag } from '@semcore/base-components';\nimport { createComponent, Root, Component, sstyled } from '@semcore/core';\nimport capitalizeFirstLetter from '@semcore/core/lib/utils/capitalizeFirstLetter';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement, { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport { hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';\nimport React from 'react';\n\nimport { DropdownItem } from './DropdownItem';\nimport style from './style/dropdown.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst INTERACTION_TAGS = ['INPUT', 'TEXTAREA'];\n\nclass DropdownRoot extends Component {\n static displayName = 'Dropdown';\n static style = style;\n static defaultProps = {\n // timeout: [100, 50],\n placement: 'bottom-start',\n offset: [0, 4],\n stretch: 'min',\n defaultVisible: false,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n };\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n popperRef = React.createRef();\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n defaultModifiers = [\n {\n name: 'flip',\n enabled: false,\n },\n {\n name: 'stretch',\n phase: 'beforeRead',\n enabled: true,\n fn: function ({ state, options }) {\n const [position] = state.placement.split('-');\n\n const isVertical = ['left', 'right'].indexOf(position) !== -1;\n const len = isVertical ? 'height' : 'width';\n const referenceLen = state.elements.reference[`offset${capitalizeFirstLetter(len)}`];\n\n if (options.stretch === 'min') {\n state.rects.popper.width = Math.max(state.rects.popper.width, referenceLen);\n state.elements.popper.style[`min${capitalizeFirstLetter(len)}`] = `${referenceLen}px`;\n }\n\n if (options.stretch === 'fixed') {\n state.rects.popper.width = referenceLen;\n state.elements.popper.style[len] = `${referenceLen}px`;\n }\n },\n },\n ];\n\n handlerTriggerKeyDown = (e) => {\n const { visible, interaction } = this.asProps;\n const element = this.popperRef.current;\n\n if (\n interaction === 'click' &&\n visible &&\n e.key === 'Tab' &&\n element &&\n !hasFocusableIn(element)\n ) {\n e.preventDefault();\n e.stopPropagation();\n\n return;\n }\n\n if (e.key === ' ' && INTERACTION_TAGS.includes(e.target.tagName)) return;\n if (e.key === 'Enter' && e.target.tagName === 'TEXTAREA') return;\n\n if (['Enter', ' '].includes(e.key) && interaction !== 'none') {\n e.preventDefault();\n this.handlers.visible(true);\n }\n };\n\n getTriggerProps() {\n const { uid, visible, disablePortal, getI18nText } = this.asProps;\n\n return {\n 'id': `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-popper` : undefined,\n 'focusHint': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-expanded': visible ? 'true' : 'false',\n 'onKeyDown': this.handlerTriggerKeyDown,\n 'aria-haspopup': 'dialog',\n };\n }\n\n getPopperProps() {\n const { uid, disablePortal, ignorePortalsStacking, interaction } = this.asProps;\n\n return {\n id: `igc-${uid}-popper`,\n tabIndex: 0,\n role: 'dialog',\n disablePortal,\n ignorePortalsStacking,\n ref: this.popperRef,\n focusMaster: interaction === 'click',\n autoFocus: 'enforced',\n };\n }\n\n render() {\n const { Children, forwardRef, modifiers = [], stretch, ...other } = this.asProps;\n\n return (\n <Popper\n ref={forwardRef}\n modifiers={[\n ...this.defaultModifiers,\n {\n name: 'stretch',\n options: typeof stretch === 'object' ? stretch : { stretch },\n },\n ...modifiers,\n ]}\n {...other}\n >\n <Children />\n </Popper>\n );\n }\n}\n\nfunction DropdownTrigger({ styles, tag: Tag }) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SDropdownTrigger = Root;\n\n return sstyled(styles)(\n <SDropdownTrigger render={Popper.Trigger} role={hasInputTrigger ? 'combobox' : 'button'} />,\n );\n}\n\nfunction DropdownPopper({ styles }) {\n const SDropdownPopper = Root;\n return sstyled(styles)(<SDropdownPopper render={Popper.Popper} />);\n}\n\nfunction DropdownGroup(props) {\n /*\n `size` is not exposed as a public prop,\n but it may be implicitly inherited from parent components such as Select or DropdownMenu.\n Since `size` directly affects item dimensions, we default it to 'm' to preserve backward compatibility.\n */\n const { styles, title, Children, subTitle, size = 'm', sticky } = props;\n const SGroup = Root;\n const SDropdownItemContainer = Dropdown.Item;\n const SGroupTitle = Flex;\n const SGroupHint = Flex;\n const uidTitle = useUID('title_mi_group');\n const uidSubTitle = useUID('sub_title_mi_group');\n const groupAriaProps = {\n 'aria-labelledby': uidTitle,\n 'aria-describedby': subTitle ? uidSubTitle : undefined,\n };\n return sstyled(styles)(\n <>\n <SDropdownItemContainer notInteractive aria-hidden='true' tabindex={-1} size={size} sticky={sticky}>\n <SGroupTitle id={uidTitle}>{title}</SGroupTitle>\n {subTitle && <SGroupHint id={uidSubTitle}>{subTitle}</SGroupHint>}\n </SDropdownItemContainer>\n <SGroup\n render={Box}\n role='group'\n {...groupAriaProps}\n __excludeProps={['title', 'sticky']}\n data-sticky={sticky}\n >\n <Children />\n </SGroup>\n </>,\n );\n}\n\nconst Dropdown = createComponent(\n DropdownRoot,\n {\n Trigger: DropdownTrigger,\n Popper: DropdownPopper,\n Item: DropdownItem,\n Group: DropdownGroup,\n },\n {\n parent: Popper,\n },\n);\n\nexport default Dropdown;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/es6/Dropdown.js
CHANGED
|
@@ -181,12 +181,17 @@ function DropdownPopper({
|
|
|
181
181
|
function DropdownGroup(props) {
|
|
182
182
|
var _ref3 = arguments[0],
|
|
183
183
|
_ref6;
|
|
184
|
+
/*
|
|
185
|
+
`size` is not exposed as a public prop,
|
|
186
|
+
but it may be implicitly inherited from parent components such as Select or DropdownMenu.
|
|
187
|
+
Since `size` directly affects item dimensions, we default it to 'm' to preserve backward compatibility.
|
|
188
|
+
*/
|
|
184
189
|
const {
|
|
185
190
|
styles,
|
|
186
191
|
title,
|
|
187
192
|
Children,
|
|
188
193
|
subTitle,
|
|
189
|
-
size,
|
|
194
|
+
size = 'm',
|
|
190
195
|
sticky
|
|
191
196
|
} = props;
|
|
192
197
|
const SGroup = Box;
|
package/lib/es6/Dropdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","names":["Popper","Flex","Box","isInputTriggerTag","createComponent","Root","Component","sstyled","capitalizeFirstLetter","i18nEnhance","uniqueIDEnhancement","useUID","hasFocusableIn","React","DropdownItem","style","_sstyled","insert","localizedMessages","INTERACTION_TAGS","DropdownRoot","constructor","args","_defineProperty","createRef","name","enabled","phase","fn","state","options","position","placement","split","isVertical","indexOf","len","referenceLen","elements","reference","stretch","rects","popper","width","Math","max","e","visible","interaction","asProps","element","popperRef","current","key","preventDefault","stopPropagation","includes","target","tagName","handlers","uncontrolledProps","getTriggerProps","uid","disablePortal","getI18nText","undefined","handlerTriggerKeyDown","getPopperProps","ignorePortalsStacking","id","tabIndex","role","ref","focusMaster","autoFocus","render","Children","forwardRef","modifiers","other","createElement","_extends","defaultModifiers","offset","defaultVisible","i18n","locale","DropdownTrigger","styles","tag","Tag","_ref","arguments[0]","_ref4","hasInputTrigger","SDropdownTrigger","Trigger","cn","_assignProps","DropdownPopper","_ref2","_ref5","SDropdownPopper","_assignProps2","DropdownGroup","props","_ref3","_ref6","title","subTitle","size","sticky","SGroup","SDropdownItemContainer","Dropdown","Item","SGroupTitle","SGroupHint","uidTitle","uidSubTitle","groupAriaProps","Fragment","_assignProps3","Group","parent"],"sources":["../../src/Dropdown.jsx"],"sourcesContent":["import { Popper, Flex, Box, isInputTriggerTag } from '@semcore/base-components';\nimport { createComponent, Root, Component, sstyled } from '@semcore/core';\nimport capitalizeFirstLetter from '@semcore/core/lib/utils/capitalizeFirstLetter';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement, { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport { hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';\nimport React from 'react';\n\nimport { DropdownItem } from './DropdownItem';\nimport style from './style/dropdown.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst INTERACTION_TAGS = ['INPUT', 'TEXTAREA'];\n\nclass DropdownRoot extends Component {\n static displayName = 'Dropdown';\n static style = style;\n static defaultProps = {\n // timeout: [100, 50],\n placement: 'bottom-start',\n offset: [0, 4],\n stretch: 'min',\n defaultVisible: false,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n };\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n popperRef = React.createRef();\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n defaultModifiers = [\n {\n name: 'flip',\n enabled: false,\n },\n {\n name: 'stretch',\n phase: 'beforeRead',\n enabled: true,\n fn: function ({ state, options }) {\n const [position] = state.placement.split('-');\n\n const isVertical = ['left', 'right'].indexOf(position) !== -1;\n const len = isVertical ? 'height' : 'width';\n const referenceLen = state.elements.reference[`offset${capitalizeFirstLetter(len)}`];\n\n if (options.stretch === 'min') {\n state.rects.popper.width = Math.max(state.rects.popper.width, referenceLen);\n state.elements.popper.style[`min${capitalizeFirstLetter(len)}`] = `${referenceLen}px`;\n }\n\n if (options.stretch === 'fixed') {\n state.rects.popper.width = referenceLen;\n state.elements.popper.style[len] = `${referenceLen}px`;\n }\n },\n },\n ];\n\n handlerTriggerKeyDown = (e) => {\n const { visible, interaction } = this.asProps;\n const element = this.popperRef.current;\n\n if (\n interaction === 'click' &&\n visible &&\n e.key === 'Tab' &&\n element &&\n !hasFocusableIn(element)\n ) {\n e.preventDefault();\n e.stopPropagation();\n\n return;\n }\n\n if (e.key === ' ' && INTERACTION_TAGS.includes(e.target.tagName)) return;\n if (e.key === 'Enter' && e.target.tagName === 'TEXTAREA') return;\n\n if (['Enter', ' '].includes(e.key) && interaction !== 'none') {\n e.preventDefault();\n this.handlers.visible(true);\n }\n };\n\n getTriggerProps() {\n const { uid, visible, disablePortal, getI18nText } = this.asProps;\n\n return {\n 'id': `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-popper` : undefined,\n 'focusHint': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-expanded': visible ? 'true' : 'false',\n 'onKeyDown': this.handlerTriggerKeyDown,\n 'aria-haspopup': 'dialog',\n };\n }\n\n getPopperProps() {\n const { uid, disablePortal, ignorePortalsStacking, interaction } = this.asProps;\n\n return {\n id: `igc-${uid}-popper`,\n tabIndex: 0,\n role: 'dialog',\n disablePortal,\n ignorePortalsStacking,\n ref: this.popperRef,\n focusMaster: interaction === 'click',\n autoFocus: 'enforced',\n };\n }\n\n render() {\n const { Children, forwardRef, modifiers = [], stretch, ...other } = this.asProps;\n\n return (\n <Popper\n ref={forwardRef}\n modifiers={[\n ...this.defaultModifiers,\n {\n name: 'stretch',\n options: typeof stretch === 'object' ? stretch : { stretch },\n },\n ...modifiers,\n ]}\n {...other}\n >\n <Children />\n </Popper>\n );\n }\n}\n\nfunction DropdownTrigger({ styles, tag: Tag }) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SDropdownTrigger = Root;\n\n return sstyled(styles)(\n <SDropdownTrigger render={Popper.Trigger} role={hasInputTrigger ? 'combobox' : 'button'} />,\n );\n}\n\nfunction DropdownPopper({ styles }) {\n const SDropdownPopper = Root;\n return sstyled(styles)(<SDropdownPopper render={Popper.Popper} />);\n}\n\nfunction DropdownGroup(props) {\n const { styles, title, Children, subTitle, size, sticky } = props;\n const SGroup = Root;\n const SDropdownItemContainer = Dropdown.Item;\n const SGroupTitle = Flex;\n const SGroupHint = Flex;\n const uidTitle = useUID('title_mi_group');\n const uidSubTitle = useUID('sub_title_mi_group');\n const groupAriaProps = {\n 'aria-labelledby': uidTitle,\n 'aria-describedby': subTitle ? uidSubTitle : undefined,\n };\n return sstyled(styles)(\n <>\n <SDropdownItemContainer notInteractive aria-hidden='true' tabindex={-1} size={size} sticky={sticky}>\n <SGroupTitle id={uidTitle}>{title}</SGroupTitle>\n {subTitle && <SGroupHint id={uidSubTitle}>{subTitle}</SGroupHint>}\n </SDropdownItemContainer>\n <SGroup\n render={Box}\n role='group'\n {...groupAriaProps}\n __excludeProps={['title', 'sticky']}\n data-sticky={sticky}\n >\n <Children />\n </SGroup>\n </>,\n );\n}\n\nconst Dropdown = createComponent(\n DropdownRoot,\n {\n Trigger: DropdownTrigger,\n Popper: DropdownPopper,\n Item: DropdownItem,\n Group: DropdownGroup,\n },\n {\n parent: Popper,\n },\n);\n\nexport default Dropdown;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","names":["Popper","Flex","Box","isInputTriggerTag","createComponent","Root","Component","sstyled","capitalizeFirstLetter","i18nEnhance","uniqueIDEnhancement","useUID","hasFocusableIn","React","DropdownItem","style","_sstyled","insert","localizedMessages","INTERACTION_TAGS","DropdownRoot","constructor","args","_defineProperty","createRef","name","enabled","phase","fn","state","options","position","placement","split","isVertical","indexOf","len","referenceLen","elements","reference","stretch","rects","popper","width","Math","max","e","visible","interaction","asProps","element","popperRef","current","key","preventDefault","stopPropagation","includes","target","tagName","handlers","uncontrolledProps","getTriggerProps","uid","disablePortal","getI18nText","undefined","handlerTriggerKeyDown","getPopperProps","ignorePortalsStacking","id","tabIndex","role","ref","focusMaster","autoFocus","render","Children","forwardRef","modifiers","other","createElement","_extends","defaultModifiers","offset","defaultVisible","i18n","locale","DropdownTrigger","styles","tag","Tag","_ref","arguments[0]","_ref4","hasInputTrigger","SDropdownTrigger","Trigger","cn","_assignProps","DropdownPopper","_ref2","_ref5","SDropdownPopper","_assignProps2","DropdownGroup","props","_ref3","_ref6","title","subTitle","size","sticky","SGroup","SDropdownItemContainer","Dropdown","Item","SGroupTitle","SGroupHint","uidTitle","uidSubTitle","groupAriaProps","Fragment","_assignProps3","Group","parent"],"sources":["../../src/Dropdown.jsx"],"sourcesContent":["import { Popper, Flex, Box, isInputTriggerTag } from '@semcore/base-components';\nimport { createComponent, Root, Component, sstyled } from '@semcore/core';\nimport capitalizeFirstLetter from '@semcore/core/lib/utils/capitalizeFirstLetter';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement, { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport { hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';\nimport React from 'react';\n\nimport { DropdownItem } from './DropdownItem';\nimport style from './style/dropdown.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst INTERACTION_TAGS = ['INPUT', 'TEXTAREA'];\n\nclass DropdownRoot extends Component {\n static displayName = 'Dropdown';\n static style = style;\n static defaultProps = {\n // timeout: [100, 50],\n placement: 'bottom-start',\n offset: [0, 4],\n stretch: 'min',\n defaultVisible: false,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n };\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n popperRef = React.createRef();\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n defaultModifiers = [\n {\n name: 'flip',\n enabled: false,\n },\n {\n name: 'stretch',\n phase: 'beforeRead',\n enabled: true,\n fn: function ({ state, options }) {\n const [position] = state.placement.split('-');\n\n const isVertical = ['left', 'right'].indexOf(position) !== -1;\n const len = isVertical ? 'height' : 'width';\n const referenceLen = state.elements.reference[`offset${capitalizeFirstLetter(len)}`];\n\n if (options.stretch === 'min') {\n state.rects.popper.width = Math.max(state.rects.popper.width, referenceLen);\n state.elements.popper.style[`min${capitalizeFirstLetter(len)}`] = `${referenceLen}px`;\n }\n\n if (options.stretch === 'fixed') {\n state.rects.popper.width = referenceLen;\n state.elements.popper.style[len] = `${referenceLen}px`;\n }\n },\n },\n ];\n\n handlerTriggerKeyDown = (e) => {\n const { visible, interaction } = this.asProps;\n const element = this.popperRef.current;\n\n if (\n interaction === 'click' &&\n visible &&\n e.key === 'Tab' &&\n element &&\n !hasFocusableIn(element)\n ) {\n e.preventDefault();\n e.stopPropagation();\n\n return;\n }\n\n if (e.key === ' ' && INTERACTION_TAGS.includes(e.target.tagName)) return;\n if (e.key === 'Enter' && e.target.tagName === 'TEXTAREA') return;\n\n if (['Enter', ' '].includes(e.key) && interaction !== 'none') {\n e.preventDefault();\n this.handlers.visible(true);\n }\n };\n\n getTriggerProps() {\n const { uid, visible, disablePortal, getI18nText } = this.asProps;\n\n return {\n 'id': `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-popper` : undefined,\n 'focusHint': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-expanded': visible ? 'true' : 'false',\n 'onKeyDown': this.handlerTriggerKeyDown,\n 'aria-haspopup': 'dialog',\n };\n }\n\n getPopperProps() {\n const { uid, disablePortal, ignorePortalsStacking, interaction } = this.asProps;\n\n return {\n id: `igc-${uid}-popper`,\n tabIndex: 0,\n role: 'dialog',\n disablePortal,\n ignorePortalsStacking,\n ref: this.popperRef,\n focusMaster: interaction === 'click',\n autoFocus: 'enforced',\n };\n }\n\n render() {\n const { Children, forwardRef, modifiers = [], stretch, ...other } = this.asProps;\n\n return (\n <Popper\n ref={forwardRef}\n modifiers={[\n ...this.defaultModifiers,\n {\n name: 'stretch',\n options: typeof stretch === 'object' ? stretch : { stretch },\n },\n ...modifiers,\n ]}\n {...other}\n >\n <Children />\n </Popper>\n );\n }\n}\n\nfunction DropdownTrigger({ styles, tag: Tag }) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SDropdownTrigger = Root;\n\n return sstyled(styles)(\n <SDropdownTrigger render={Popper.Trigger} role={hasInputTrigger ? 'combobox' : 'button'} />,\n );\n}\n\nfunction DropdownPopper({ styles }) {\n const SDropdownPopper = Root;\n return sstyled(styles)(<SDropdownPopper render={Popper.Popper} />);\n}\n\nfunction DropdownGroup(props) {\n /*\n `size` is not exposed as a public prop,\n but it may be implicitly inherited from parent components such as Select or DropdownMenu.\n Since `size` directly affects item dimensions, we default it to 'm' to preserve backward compatibility.\n */\n const { styles, title, Children, subTitle, size = 'm', sticky } = props;\n const SGroup = Root;\n const SDropdownItemContainer = Dropdown.Item;\n const SGroupTitle = Flex;\n const SGroupHint = Flex;\n const uidTitle = useUID('title_mi_group');\n const uidSubTitle = useUID('sub_title_mi_group');\n const groupAriaProps = {\n 'aria-labelledby': uidTitle,\n 'aria-describedby': subTitle ? uidSubTitle : undefined,\n };\n return sstyled(styles)(\n <>\n <SDropdownItemContainer notInteractive aria-hidden='true' tabindex={-1} size={size} sticky={sticky}>\n <SGroupTitle id={uidTitle}>{title}</SGroupTitle>\n {subTitle && <SGroupHint id={uidSubTitle}>{subTitle}</SGroupHint>}\n </SDropdownItemContainer>\n <SGroup\n render={Box}\n role='group'\n {...groupAriaProps}\n __excludeProps={['title', 'sticky']}\n data-sticky={sticky}\n >\n <Children />\n </SGroup>\n </>,\n );\n}\n\nconst Dropdown = createComponent(\n DropdownRoot,\n {\n Trigger: DropdownTrigger,\n Popper: DropdownPopper,\n Item: DropdownItem,\n Group: DropdownGroup,\n },\n {\n parent: Popper,\n },\n);\n\nexport default Dropdown;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/esm/Dropdown.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/dropdown",
|
|
3
3
|
"description": "Semrush Dropdown Component",
|
|
4
|
-
"version": "17.0.0-prerelease.
|
|
4
|
+
"version": "17.0.0-prerelease.36",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"directory": "semcore/dropdown"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@semcore/
|
|
26
|
-
"@semcore/
|
|
25
|
+
"@semcore/core": "17.0.0-prerelease.36",
|
|
26
|
+
"@semcore/base-components": "17.0.0-prerelease.36",
|
|
27
27
|
"@semcore/testing-utils": "1.0.0"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|