@semcore/select 17.0.0-prerelease.30 → 17.0.0-prerelease.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
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-03-09
5
+ ## [17.0.0] - 2026-03-27
6
6
 
7
7
  ### BREAK
8
8
 
package/lib/cjs/Select.js CHANGED
@@ -277,7 +277,6 @@ class RootSelect extends _dropdown.AbstractDropdown {
277
277
  const defaultIndex = hasInputSearch ? null : 0;
278
278
  return {
279
279
  placeholder: props.multiselect ? 'Select options' : 'Select option',
280
- size: 'm',
281
280
  defaultValue: getEmptyValue(props.multiselect),
282
281
  defaultVisible: false,
283
282
  defaultHighlightedIndex: props.highlightedIndex ?? defaultIndex,
@@ -411,15 +410,13 @@ function OptionText(providedProps) {
411
410
  selected: optionProps?.selected,
412
411
  disabled: optionProps?.disabled,
413
412
  size: optionProps?.size,
414
- hintProps: optionProps?.hintProps ?? {},
415
413
  ...(providedProps || {})
416
414
  }), [providedProps, optionProps]);
417
- if (optionProps.itemRef) {
418
- props.hintProps.triggerRef = optionProps.itemRef;
419
- }
420
- props.hintProps.visible = selectedIndex === optionProps.index;
421
415
  return _ref9 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(_typography.Text, _ref9.cn("Text", {
422
- ...props
416
+ ...props,
417
+ "hint:triggerRef": optionProps.itemRef,
418
+ "hint:visible": selectedIndex === optionProps.index,
419
+ "hint:placement": 'right'
423
420
  }));
424
421
  }
425
422
  const InputSearchWrapper = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["_core","require","_baseComponents","_baseTrigger","_addonTextChildren","_interopRequireDefault","_assignProps7","_resolveColorEnhance","_findComponent","_interopRequireWildcard","_logger","_divider","_dropdown","_dropdownMenu","_typography","_classnames","_react","_context","_InputSearch","_intergalacticDynamicLocales","style","sstyled","insert","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","ListBoxContextProvider","children","default","createElement","hideScrollBarsFromScreenReadersContext","Provider","RootSelect","AbstractDropdown","constructor","args","_defineProperty2","optionValue","index","e","newValue","asProps","filter","v","concat","handlers","highlightedIndex","visible","preventDefault","emptyValue","itemRef","props","node","isHighlighted","scrollToNode","uncontrolledProps","hasInputSearch","isAdvanceMode","Children","Select","InputSearch","displayName","defaultIndex","lastInteraction","isMouse","defaultHighlightedIndex","setTimeout","options","menuRef","current","querySelectorAll","selected","querySelector","i","getTriggerProps","disabled","state","placeholder","forwardRef","name","getI18nText","uid","hasChildren","isMenu","Menu","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleArrowKeyDown","undefined","itemRefs","handlerClear","renderChildrenTrigger","onBlur","prevHighlightedIndex","onFocus","getListProps","getPopperProps","onKeyDown","handlePreventPopperKeyDown","getOptionProps","size","highlighted","isKeyboard","getItemProps","bindHandlerOptionClick","getOptionCheckboxProps","resolveColor","getDividerProps","reduce","acc","selectedOption","find","o","push","label","render","_ref2","_value","forcedAdvancedMode","other","advancedMode","findComponent","Trigger","Popper","logger","warn","itemProps","_ref","DropdownMenu","assignProps","map","option","Option","_extends2","key","id","Checkbox","Object","values","enhance","resolveColorEnhance","defaultValue","defaultVisible","defaultSelectedIndex","selectedIndex","scrollToSelected","i18n","localizedMessages","locale","interaction","inlineActions","timeout","styles","$hiddenRef","tag","Tag","ButtonTrigger","_ref3","arguments[0]","_ref7","hasInputTrigger","isInputTriggerTag","SSelectTrigger","Dropdown","cn","addonTextChildren","Text","Value","Addon","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","role","List","optionPropsContext","React","createContext","_ref5","_ref8","SSelectOption","Item","useRef","hasCheckbox","hasContent","Content","optionPropsContextValue","providedProps","optionProps","useContext","useMemo","SOptionCheckbox","componentProps","useBox","theme","indeterminate","className","tabIndex","OptionText","_ref9","selectedIndexContext","hintProps","triggerRef","InputSearchWrapper","_ref6","createComponent","Hint","Group","Divider","_______childrenComponents","Input","parent","context","selectContext","wrapSelect","wrapper","exports","_default"],"sources":["../../src/Select.jsx"],"sourcesContent":["import { hideScrollBarsFromScreenReadersContext, useBox, isInputTriggerTag } from '@semcore/base-components';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport { createComponent, Root, sstyled, lastInteraction } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport logger from '@semcore/core/lib/utils/logger';\nimport Divider from '@semcore/divider';\nimport Dropdown, { AbstractDropdown, enhance, selectedIndexContext } from '@semcore/dropdown';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { Text } from '@semcore/typography';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { selectContext } from './context';\nimport InputSearch from './InputSearch';\nimport style from './style/select.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nclass RootSelect extends AbstractDropdown {\n static displayName = 'Select';\n\n static style = style;\n static enhance = Object.values(enhance).concat([resolveColorEnhance()]);\n\n static defaultProps = (props) => {\n const hasInputSearch =\n props.children && isAdvanceMode(props.children, [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ], true);\n const defaultIndex = hasInputSearch ? null : 0;\n\n return {\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n defaultHighlightedIndex: props.highlightedIndex ?? defaultIndex,\n defaultSelectedIndex: props.selectedIndex ?? defaultIndex,\n scrollToSelected: true,\n i18n: localizedMessages,\n locale: 'en',\n interaction: props.interaction ?? 'click',\n inlineActions: false,\n timeout: props.timeout ?? 0,\n };\n };\n\n role = 'listbox';\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n const { highlightedIndex } = this.asProps;\n const isHighlighted = index === highlightedIndex;\n\n if (isHighlighted) {\n this.scrollToNode(node);\n }\n }\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n const hasInputSearch = isAdvanceMode(\n this.asProps.Children,\n [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ],\n true,\n );\n\n const defaultIndex = hasInputSearch || lastInteraction.isMouse()\n ? null\n : this.props.defaultHighlightedIndex;\n\n this.handlers.highlightedIndex(defaultIndex);\n\n setTimeout(() => {\n const options = this.menuRef.current?.querySelectorAll('[role=\"option\"]');\n const selected = this.menuRef.current?.querySelector('[aria-selected=\"true\"]');\n\n if (selected && options) {\n this.scrollToNode(selected);\n\n for (let i = 0; i < options.length; i++) {\n if (options[i] === selected) {\n this.handlers.highlightedIndex(i);\n break;\n }\n }\n }\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n getI18nText,\n highlightedIndex,\n uid,\n Children,\n children: hasChildren,\n } = this.asProps;\n\n const isMenu = isAdvanceMode(Children, [Select.Menu.displayName], true) || !hasChildren;\n const ariaControls = isMenu ? `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.handleArrowKeyDown.bind(this),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': isMenu ? 'listbox' : 'dialog',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-activedescendant':\n visible && highlightedIndex !== null && this.itemRefs[highlightedIndex]\n ? `igc-${uid}-option-${highlightedIndex}`\n : undefined,\n 'empty': isEmptyValue(value),\n value,\n name,\n '$hiddenRef': forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n 'active': visible,\n 'onClear': this.handlerClear,\n 'children': this.renderChildrenTrigger(value, options),\n getI18nText,\n\n 'onBlur': () => {\n // if popper is opened and we moved from the trigger in select - it means we moved on some controls in popper and should hide highlighted for the option\n if (this.asProps.visible) {\n this.prevHighlightedIndex = this.asProps.highlightedIndex;\n this.handlers.highlightedIndex(null);\n }\n },\n 'onFocus': () => {\n // if popper is opened and we moved to the trigger in select - it means we moved from some controls in popper and should highlight the last highlighted option\n if (this.asProps.visible) {\n const index = this.prevHighlightedIndex;\n this.handlers.highlightedIndex(index);\n }\n },\n };\n }\n\n getListProps() {\n const { multiselect } = this.asProps;\n\n return {\n ...super.getListProps(),\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getOptionProps(props, index) {\n const { value, highlightedIndex, size = 'm' } = this.asProps;\n const highlighted =\n index === highlightedIndex && lastInteraction.isKeyboard() && !props.disabled;\n const selected = props.selected ?? isSelectedOption(value, props.value);\n\n return {\n ...super.getItemProps(props, index),\n highlighted,\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': props.disabled ? 'true' : 'false',\n 'role': 'option',\n 'onClick': this.bindHandlerOptionClick(props.value, index),\n 'ref': (node) => this.itemRef(props, index, node),\n size,\n };\n }\n\n getOptionCheckboxProps() {\n const { size, resolveColor } = this.asProps;\n\n return {\n size,\n resolveColor,\n };\n }\n\n getDividerProps() {\n return { 'my': 1, 'aria-disabled': 'true' };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue, index) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.highlightedIndex(index);\n this.handlers.value(newValue, e);\n if (!multiselect) {\n this.handlers.visible(false);\n e.preventDefault();\n }\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n render() {\n const { Children, options, multiselect, value: _value, uid, forcedAdvancedMode, ...other } =\n this.asProps;\n const advancedMode =\n forcedAdvancedMode ||\n findComponent(Children, [Select.Trigger.displayName, Select.Popper.displayName]);\n\n logger.warn(\n options && advancedMode,\n 'Don\\'t use at the same time \\'options\\' property and \\'<Select.Trigger/>/<Select.Popper/>\\'',\n other['data-ui-name'] || Select.displayName,\n );\n\n this.itemProps = [];\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, index) => {\n return (\n <Select.Option key={option.value} id={`igc-${uid}-option-${index}`} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({\n Children,\n name,\n value,\n styles,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SSelectTrigger = Root;\n\n return sstyled(styles)(\n <SSelectTrigger\n render={Dropdown.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n role='combobox'\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n >\n {addonTextChildren(\n Children,\n Tag.Text || Tag.Value || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type='hidden' defaultValue={value} name={name} ref={$hiddenRef} />}\n </SSelectTrigger>,\n );\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 <Select.Popper {...popperProps} role={null}>\n <Root render={Select.List} />\n </Select.Popper>\n </ListBoxContextProvider>\n );\n}\n\nconst optionPropsContext = React.createContext({});\nfunction Option(props) {\n const SSelectOption = Root;\n const { styles, Children, highlighted } = props;\n const itemRef = React.useRef(null);\n\n const hasCheckbox = isAdvanceMode(Children, [Select.Option.Checkbox.displayName]);\n const hasContent = isAdvanceMode(Children, [Select.Option.Content.displayName]);\n\n const optionPropsContextValue = {\n ...props,\n itemRef,\n highlighted,\n };\n\n return sstyled(styles)(\n <SSelectOption render={Dropdown.Item} ref={itemRef}>\n <optionPropsContext.Provider value={optionPropsContextValue}>\n {hasCheckbox && !hasContent\n ? (\n <Select.Option.Content>\n <Children />\n </Select.Option.Content>\n )\n : (\n <Children />\n )}\n </optionPropsContext.Provider>\n </SSelectOption>,\n );\n}\n\nfunction Checkbox(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const props = React.useMemo(\n () => ({\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected, resolveColor, indeterminate } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n indeterminate,\n selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n tabIndex={-1}\n />\n );\n}\n\nfunction OptionText(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const selectedIndex = React.useContext(selectedIndexContext);\n const props = React.useMemo(\n () => ({\n key: optionProps?.id,\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n hintProps: optionProps?.hintProps ?? {},\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n\n if (optionProps.itemRef) {\n props.hintProps.triggerRef = optionProps.itemRef;\n }\n\n props.hintProps.visible = selectedIndex === optionProps.index;\n\n return sstyled(props.styles)(\n <Text\n {...props}\n />,\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: Dropdown.Popper,\n List: DropdownMenu.List,\n Menu: Menu,\n Option: [\n Option,\n {\n Addon: DropdownMenu.Item.Addon,\n Content: DropdownMenu.Item.Content,\n Text: OptionText,\n Hint: DropdownMenu.Item.Hint,\n Checkbox,\n },\n ],\n Group: Dropdown.Group,\n Divider,\n InputSearch: [InputSearchWrapper, InputSearch._______childrenComponents],\n Input: [InputSearchWrapper, InputSearch._______childrenComponents],\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport const wrapSelect = (wrapper) => wrapper;\nSelect.selectedIndexContext = selectedIndexContext;\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Select.js","names":["_core","require","_baseComponents","_baseTrigger","_addonTextChildren","_interopRequireDefault","_assignProps7","_resolveColorEnhance","_findComponent","_interopRequireWildcard","_logger","_divider","_dropdown","_dropdownMenu","_typography","_classnames","_react","_context","_InputSearch","_intergalacticDynamicLocales","style","sstyled","insert","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","ListBoxContextProvider","children","default","createElement","hideScrollBarsFromScreenReadersContext","Provider","RootSelect","AbstractDropdown","constructor","args","_defineProperty2","optionValue","index","e","newValue","asProps","filter","v","concat","handlers","highlightedIndex","visible","preventDefault","emptyValue","itemRef","props","node","isHighlighted","scrollToNode","uncontrolledProps","hasInputSearch","isAdvanceMode","Children","Select","InputSearch","displayName","defaultIndex","lastInteraction","isMouse","defaultHighlightedIndex","setTimeout","options","menuRef","current","querySelectorAll","selected","querySelector","i","getTriggerProps","disabled","state","placeholder","forwardRef","name","getI18nText","uid","hasChildren","isMenu","Menu","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleArrowKeyDown","undefined","itemRefs","handlerClear","renderChildrenTrigger","onBlur","prevHighlightedIndex","onFocus","getListProps","getPopperProps","onKeyDown","handlePreventPopperKeyDown","getOptionProps","size","highlighted","isKeyboard","getItemProps","bindHandlerOptionClick","getOptionCheckboxProps","resolveColor","getDividerProps","reduce","acc","selectedOption","find","o","push","label","render","_ref2","_value","forcedAdvancedMode","other","advancedMode","findComponent","Trigger","Popper","logger","warn","itemProps","_ref","DropdownMenu","assignProps","map","option","Option","_extends2","key","id","Checkbox","Object","values","enhance","resolveColorEnhance","defaultValue","defaultVisible","defaultSelectedIndex","selectedIndex","scrollToSelected","i18n","localizedMessages","locale","interaction","inlineActions","timeout","styles","$hiddenRef","tag","Tag","ButtonTrigger","_ref3","arguments[0]","_ref7","hasInputTrigger","isInputTriggerTag","SSelectTrigger","Dropdown","cn","addonTextChildren","Text","Value","Addon","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","role","List","optionPropsContext","React","createContext","_ref5","_ref8","SSelectOption","Item","useRef","hasCheckbox","hasContent","Content","optionPropsContextValue","providedProps","optionProps","useContext","useMemo","SOptionCheckbox","componentProps","useBox","theme","indeterminate","className","tabIndex","OptionText","_ref9","selectedIndexContext","InputSearchWrapper","_ref6","createComponent","Hint","Group","Divider","_______childrenComponents","Input","parent","context","selectContext","wrapSelect","wrapper","exports","_default"],"sources":["../../src/Select.jsx"],"sourcesContent":["import { hideScrollBarsFromScreenReadersContext, useBox, isInputTriggerTag } from '@semcore/base-components';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport { createComponent, Root, sstyled, lastInteraction } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport logger from '@semcore/core/lib/utils/logger';\nimport Divider from '@semcore/divider';\nimport Dropdown, { AbstractDropdown, enhance, selectedIndexContext } from '@semcore/dropdown';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { Text } from '@semcore/typography';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { selectContext } from './context';\nimport InputSearch from './InputSearch';\nimport style from './style/select.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nclass RootSelect extends AbstractDropdown {\n static displayName = 'Select';\n\n static style = style;\n static enhance = Object.values(enhance).concat([resolveColorEnhance()]);\n\n static defaultProps = (props) => {\n const hasInputSearch =\n props.children && isAdvanceMode(props.children, [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ], true);\n const defaultIndex = hasInputSearch ? null : 0;\n\n return {\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n defaultHighlightedIndex: props.highlightedIndex ?? defaultIndex,\n defaultSelectedIndex: props.selectedIndex ?? defaultIndex,\n scrollToSelected: true,\n i18n: localizedMessages,\n locale: 'en',\n interaction: props.interaction ?? 'click',\n inlineActions: false,\n timeout: props.timeout ?? 0,\n };\n };\n\n role = 'listbox';\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n const { highlightedIndex } = this.asProps;\n const isHighlighted = index === highlightedIndex;\n\n if (isHighlighted) {\n this.scrollToNode(node);\n }\n }\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n const hasInputSearch = isAdvanceMode(\n this.asProps.Children,\n [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ],\n true,\n );\n\n const defaultIndex = hasInputSearch || lastInteraction.isMouse()\n ? null\n : this.props.defaultHighlightedIndex;\n\n this.handlers.highlightedIndex(defaultIndex);\n\n setTimeout(() => {\n const options = this.menuRef.current?.querySelectorAll('[role=\"option\"]');\n const selected = this.menuRef.current?.querySelector('[aria-selected=\"true\"]');\n\n if (selected && options) {\n this.scrollToNode(selected);\n\n for (let i = 0; i < options.length; i++) {\n if (options[i] === selected) {\n this.handlers.highlightedIndex(i);\n break;\n }\n }\n }\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n getI18nText,\n highlightedIndex,\n uid,\n Children,\n children: hasChildren,\n } = this.asProps;\n\n const isMenu = isAdvanceMode(Children, [Select.Menu.displayName], true) || !hasChildren;\n const ariaControls = isMenu ? `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.handleArrowKeyDown.bind(this),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': isMenu ? 'listbox' : 'dialog',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-activedescendant':\n visible && highlightedIndex !== null && this.itemRefs[highlightedIndex]\n ? `igc-${uid}-option-${highlightedIndex}`\n : undefined,\n 'empty': isEmptyValue(value),\n value,\n name,\n '$hiddenRef': forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n 'active': visible,\n 'onClear': this.handlerClear,\n 'children': this.renderChildrenTrigger(value, options),\n getI18nText,\n\n 'onBlur': () => {\n // if popper is opened and we moved from the trigger in select - it means we moved on some controls in popper and should hide highlighted for the option\n if (this.asProps.visible) {\n this.prevHighlightedIndex = this.asProps.highlightedIndex;\n this.handlers.highlightedIndex(null);\n }\n },\n 'onFocus': () => {\n // if popper is opened and we moved to the trigger in select - it means we moved from some controls in popper and should highlight the last highlighted option\n if (this.asProps.visible) {\n const index = this.prevHighlightedIndex;\n this.handlers.highlightedIndex(index);\n }\n },\n };\n }\n\n getListProps() {\n const { multiselect } = this.asProps;\n\n return {\n ...super.getListProps(),\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getOptionProps(props, index) {\n const { value, highlightedIndex, size = 'm' } = this.asProps;\n const highlighted =\n index === highlightedIndex && lastInteraction.isKeyboard() && !props.disabled;\n const selected = props.selected ?? isSelectedOption(value, props.value);\n\n return {\n ...super.getItemProps(props, index),\n highlighted,\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': props.disabled ? 'true' : 'false',\n 'role': 'option',\n 'onClick': this.bindHandlerOptionClick(props.value, index),\n 'ref': (node) => this.itemRef(props, index, node),\n size,\n };\n }\n\n getOptionCheckboxProps() {\n const { size, resolveColor } = this.asProps;\n\n return {\n size,\n resolveColor,\n };\n }\n\n getDividerProps() {\n return { 'my': 1, 'aria-disabled': 'true' };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue, index) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.highlightedIndex(index);\n this.handlers.value(newValue, e);\n if (!multiselect) {\n this.handlers.visible(false);\n e.preventDefault();\n }\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n render() {\n const { Children, options, multiselect, value: _value, uid, forcedAdvancedMode, ...other } =\n this.asProps;\n const advancedMode =\n forcedAdvancedMode ||\n findComponent(Children, [Select.Trigger.displayName, Select.Popper.displayName]);\n\n logger.warn(\n options && advancedMode,\n 'Don\\'t use at the same time \\'options\\' property and \\'<Select.Trigger/>/<Select.Popper/>\\'',\n other['data-ui-name'] || Select.displayName,\n );\n\n this.itemProps = [];\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, index) => {\n return (\n <Select.Option key={option.value} id={`igc-${uid}-option-${index}`} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({\n Children,\n name,\n value,\n styles,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SSelectTrigger = Root;\n\n return sstyled(styles)(\n <SSelectTrigger\n render={Dropdown.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n role='combobox'\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n >\n {addonTextChildren(\n Children,\n Tag.Text || Tag.Value || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type='hidden' defaultValue={value} name={name} ref={$hiddenRef} />}\n </SSelectTrigger>,\n );\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 <Select.Popper {...popperProps} role={null}>\n <Root render={Select.List} />\n </Select.Popper>\n </ListBoxContextProvider>\n );\n}\n\nconst optionPropsContext = React.createContext({});\nfunction Option(props) {\n const SSelectOption = Root;\n const { styles, Children, highlighted } = props;\n const itemRef = React.useRef(null);\n\n const hasCheckbox = isAdvanceMode(Children, [Select.Option.Checkbox.displayName]);\n const hasContent = isAdvanceMode(Children, [Select.Option.Content.displayName]);\n\n const optionPropsContextValue = {\n ...props,\n itemRef,\n highlighted,\n };\n\n return sstyled(styles)(\n <SSelectOption render={Dropdown.Item} ref={itemRef}>\n <optionPropsContext.Provider value={optionPropsContextValue}>\n {hasCheckbox && !hasContent\n ? (\n <Select.Option.Content>\n <Children />\n </Select.Option.Content>\n )\n : (\n <Children />\n )}\n </optionPropsContext.Provider>\n </SSelectOption>,\n );\n}\n\nfunction Checkbox(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const props = React.useMemo(\n () => ({\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected, resolveColor, indeterminate } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n indeterminate,\n selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n tabIndex={-1}\n />\n );\n}\n\nfunction OptionText(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const selectedIndex = React.useContext(selectedIndexContext);\n const props = React.useMemo(\n () => ({\n key: optionProps?.id,\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n\n return sstyled(props.styles)(\n <Text\n {...props}\n hint:triggerRef={optionProps.itemRef}\n hint:visible={selectedIndex === optionProps.index}\n hint:placement='right'\n />,\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: Dropdown.Popper,\n List: DropdownMenu.List,\n Menu: Menu,\n Option: [\n Option,\n {\n Addon: DropdownMenu.Item.Addon,\n Content: DropdownMenu.Item.Content,\n Text: OptionText,\n Hint: DropdownMenu.Item.Hint,\n Checkbox,\n },\n ],\n Group: Dropdown.Group,\n Divider,\n InputSearch: [InputSearchWrapper, InputSearch._______childrenComponents],\n Input: [InputSearchWrapper, InputSearch._______childrenComponents],\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport const wrapSelect = (wrapper) => wrapper;\nSelect.selectedIndexContext = selectedIndexContext;\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { BoxProps, Flex } from '@semcore/base-components';\nimport type { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps } from '@semcore/base-trigger';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type Divider from '@semcore/divider';\nimport type Dropdown from '@semcore/dropdown';\nimport type {\n DropdownMenuContext,\n DropdownMenuItemProps,\n DropdownMenuProps,\n DropdownMenuHandlers,\n DropdownMenuTriggerProps,\n} from '@semcore/dropdown-menu';\nimport type DropdownMenu from '@semcore/dropdown-menu';\nimport type { InputValueProps } from '@semcore/input';\nimport type Input from '@semcore/input';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\nexport type SelectInputSearch = InputValueProps & {};\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport type SelectProps<T extends SelectValue = SelectValue> = DropdownMenuProps &\n BaseTriggerProps & {\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?:\n | ((value: T, e: React.SyntheticEvent) => boolean | void)\n | React.Dispatch<React.SetStateAction<T>>;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * If provided, adds a hidden <input /> tag with the given name for enhancing accessibility.\n */\n name?: string;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * If enabled, after opening select popper view will be scrolled to selected option or, if there are multiple selected options, to the first selected option.\n * @default true\n */\n scrollToSelected?: boolean;\n };\n\nexport type SelectOptionProps = DropdownMenuItemProps & {\n /**\n * Enables selected state\n */\n selected?: boolean;\n /** Value of the option */\n value: string | number;\n};\n\nexport type SelectOptionCheckboxProps = BoxProps & {\n /** Checkbox theme */\n theme?: string;\n /** Visual indeterminate state */\n indeterminate?: boolean;\n /** Controls the selected state */\n selected?: boolean;\n};\n\ndeclare const InputSearch: Intergalactic.Component<'div', SelectInputSearch> & {\n SearchIcon: typeof Input.Addon;\n Value: typeof Input.Value;\n Clear: typeof Input.Addon;\n};\n\nexport type SelectContext = DropdownMenuContext & {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n};\n\nexport type SelectHandlers = DropdownMenuHandlers & {\n value: (index: SelectValue) => void;\n};\n\ntype IntergalacticSelectComponent<PropsExtending = {}> = (<\n Value extends SelectValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n SelectProps<Value>,\n SelectContext,\n [handlers: SelectHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', SelectProps>;\n\ndeclare const Select: IntergalacticSelectComponent & {\n Trigger: Intergalactic.Component<\n typeof Dropdown.Trigger,\n DropdownMenuTriggerProps & ButtonTriggerProps,\n {},\n [handlers: SelectHandlers]\n > & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Group: typeof Dropdown.Group;\n Option: Intergalactic.Component<\n 'option',\n SelectOptionProps,\n SelectContext,\n [handlers: SelectHandlers]\n > & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: Intergalactic.Component<'div', SelectOptionCheckboxProps>;\n Content: typeof Flex;\n Text: typeof Text;\n Hint: typeof Flex;\n };\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\ndeclare const wrapSelect: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticSelectComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticSelectComponent<PropsExtending>;\n\nexport { InputSearch, wrapSelect };\nexport default Select;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { BoxProps, Flex } from '@semcore/base-components';\nimport type { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps, LinkTriggerProps } from '@semcore/base-trigger';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type Divider from '@semcore/divider';\nimport type Dropdown from '@semcore/dropdown';\nimport type {\n DropdownMenuContext,\n DropdownMenuItemProps,\n DropdownMenuProps,\n DropdownMenuHandlers,\n DropdownMenuTriggerProps,\n} from '@semcore/dropdown-menu';\nimport type DropdownMenu from '@semcore/dropdown-menu';\nimport type { InputValueProps } from '@semcore/input';\nimport type Input from '@semcore/input';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\nexport type SelectInputSearch = InputValueProps & {};\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport type SelectProps<T extends SelectValue = SelectValue> = Intergalactic.InternalTypings.EfficientOmit<DropdownMenuProps, 'size'> &\n Intergalactic.InternalTypings.EfficientOmit<BaseTriggerProps, 'size'> & {\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?:\n | ((value: T, e: React.SyntheticEvent) => boolean | void)\n | React.Dispatch<React.SetStateAction<T>>;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * If provided, adds a hidden <input /> tag with the given name for enhancing accessibility.\n */\n name?: string;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * If enabled, after opening select popper view will be scrolled to selected option or, if there are multiple selected options, to the first selected option.\n * @default true\n */\n scrollToSelected?: boolean;\n } & ({\n tag?: never;\n /**\n * Default type for size from BaseTriggerProps if there is no customization via `tag`.\n */\n size?: BaseTriggerProps['size'];\n } | {});\n\nexport type SelectOptionProps = DropdownMenuItemProps & {\n /**\n * Enables selected state\n */\n selected?: boolean;\n /** Value of the option */\n value: string | number;\n};\n\nexport type SelectOptionCheckboxProps = BoxProps & {\n /** Checkbox theme */\n theme?: string;\n /** Visual indeterminate state */\n indeterminate?: boolean;\n /** Controls the selected state */\n selected?: boolean;\n};\n\ndeclare const InputSearch: Intergalactic.Component<'div', SelectInputSearch> & {\n SearchIcon: typeof Input.Addon;\n Value: typeof Input.Value;\n Clear: typeof Input.Addon;\n};\n\nexport type SelectContext = DropdownMenuContext & {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n};\n\nexport type SelectHandlers = DropdownMenuHandlers & {\n value: (index: SelectValue) => void;\n};\n\ntype IntergalacticSelectComponent<PropsExtending = {}> = (<\n Value extends SelectValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n SelectProps<Value>,\n SelectContext,\n [handlers: SelectHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', SelectProps>;\n\ndeclare const Select: IntergalacticSelectComponent & {\n Trigger: Intergalactic.Component<\n typeof Dropdown.Trigger,\n DropdownMenuTriggerProps & (ButtonTriggerProps | LinkTriggerProps),\n {},\n [handlers: SelectHandlers]\n > & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Group: typeof Dropdown.Group;\n Option: Intergalactic.Component<\n 'option',\n SelectOptionProps,\n SelectContext,\n [handlers: SelectHandlers]\n > & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: Intergalactic.Component<'div', SelectOptionCheckboxProps>;\n Content: typeof Flex;\n Text: typeof Text;\n Hint: typeof Flex;\n };\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\ndeclare const wrapSelect: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticSelectComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticSelectComponent<PropsExtending>;\n\nexport { InputSearch, wrapSelect };\nexport default Select;\n"],"mappings":"","ignoreList":[]}
package/lib/es6/Select.js CHANGED
@@ -276,7 +276,6 @@ _defineProperty(RootSelect, "defaultProps", props => {
276
276
  const defaultIndex = hasInputSearch ? null : 0;
277
277
  return {
278
278
  placeholder: props.multiselect ? 'Select options' : 'Select option',
279
- size: 'm',
280
279
  defaultValue: getEmptyValue(props.multiselect),
281
280
  defaultVisible: false,
282
281
  defaultHighlightedIndex: props.highlightedIndex ?? defaultIndex,
@@ -410,15 +409,13 @@ function OptionText(providedProps) {
410
409
  selected: optionProps?.selected,
411
410
  disabled: optionProps?.disabled,
412
411
  size: optionProps?.size,
413
- hintProps: optionProps?.hintProps ?? {},
414
412
  ...(providedProps || {})
415
413
  }), [providedProps, optionProps]);
416
- if (optionProps.itemRef) {
417
- props.hintProps.triggerRef = optionProps.itemRef;
418
- }
419
- props.hintProps.visible = selectedIndex === optionProps.index;
420
414
  return _ref9 = sstyled(props.styles), /*#__PURE__*/React.createElement(Text, _ref9.cn("Text", {
421
- ...props
415
+ ...props,
416
+ "hint:triggerRef": optionProps.itemRef,
417
+ "hint:visible": selectedIndex === optionProps.index,
418
+ "hint:placement": 'right'
422
419
  }));
423
420
  }
424
421
  const InputSearchWrapper = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["hideScrollBarsFromScreenReadersContext","useBox","isInputTriggerTag","ButtonTrigger","createComponent","Root","sstyled","lastInteraction","addonTextChildren","callAllEventHandlers","resolveColorEnhance","findComponent","isAdvanceMode","logger","Divider","Dropdown","AbstractDropdown","enhance","selectedIndexContext","DropdownMenu","Text","cn","React","selectContext","InputSearch","style","_sstyled","insert","localizedMessages","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","ListBoxContextProvider","children","createElement","Provider","RootSelect","constructor","args","_defineProperty","optionValue","index","e","newValue","asProps","filter","v","concat","handlers","highlightedIndex","visible","preventDefault","emptyValue","itemRef","props","node","isHighlighted","scrollToNode","uncontrolledProps","hasInputSearch","Children","Select","displayName","defaultIndex","isMouse","defaultHighlightedIndex","setTimeout","options","menuRef","current","querySelectorAll","selected","querySelector","i","getTriggerProps","disabled","state","placeholder","forwardRef","name","getI18nText","uid","hasChildren","isMenu","Menu","ariaControls","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleArrowKeyDown","undefined","itemRefs","handlerClear","renderChildrenTrigger","onBlur","prevHighlightedIndex","onFocus","getListProps","getPopperProps","onKeyDown","handlePreventPopperKeyDown","getOptionProps","size","highlighted","isKeyboard","getItemProps","bindHandlerOptionClick","getOptionCheckboxProps","resolveColor","getDividerProps","reduce","acc","selectedOption","find","o","push","label","render","_ref2","_value","forcedAdvancedMode","other","advancedMode","Trigger","Popper","warn","itemProps","_ref","_assignProps","map","option","Option","_extends","key","id","Checkbox","_assignProps2","Object","values","defaultValue","defaultVisible","defaultSelectedIndex","selectedIndex","scrollToSelected","i18n","locale","interaction","inlineActions","timeout","styles","$hiddenRef","tag","Tag","_ref3","arguments[0]","_ref7","hasInputTrigger","SSelectTrigger","_assignProps3","Value","Addon","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","role","List","_assignProps4","optionPropsContext","createContext","_ref5","_ref8","SSelectOption","Item","useRef","hasCheckbox","hasContent","Content","optionPropsContextValue","_assignProps5","providedProps","optionProps","useContext","useMemo","SOptionCheckbox","componentProps","theme","indeterminate","className","tabIndex","OptionText","_ref9","hintProps","triggerRef","InputSearchWrapper","_ref6","_assignProps6","Hint","Group","_______childrenComponents","Input","parent","context","wrapSelect","wrapper"],"sources":["../../src/Select.jsx"],"sourcesContent":["import { hideScrollBarsFromScreenReadersContext, useBox, isInputTriggerTag } from '@semcore/base-components';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport { createComponent, Root, sstyled, lastInteraction } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport logger from '@semcore/core/lib/utils/logger';\nimport Divider from '@semcore/divider';\nimport Dropdown, { AbstractDropdown, enhance, selectedIndexContext } from '@semcore/dropdown';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { Text } from '@semcore/typography';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { selectContext } from './context';\nimport InputSearch from './InputSearch';\nimport style from './style/select.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nclass RootSelect extends AbstractDropdown {\n static displayName = 'Select';\n\n static style = style;\n static enhance = Object.values(enhance).concat([resolveColorEnhance()]);\n\n static defaultProps = (props) => {\n const hasInputSearch =\n props.children && isAdvanceMode(props.children, [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ], true);\n const defaultIndex = hasInputSearch ? null : 0;\n\n return {\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n defaultHighlightedIndex: props.highlightedIndex ?? defaultIndex,\n defaultSelectedIndex: props.selectedIndex ?? defaultIndex,\n scrollToSelected: true,\n i18n: localizedMessages,\n locale: 'en',\n interaction: props.interaction ?? 'click',\n inlineActions: false,\n timeout: props.timeout ?? 0,\n };\n };\n\n role = 'listbox';\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n const { highlightedIndex } = this.asProps;\n const isHighlighted = index === highlightedIndex;\n\n if (isHighlighted) {\n this.scrollToNode(node);\n }\n }\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n const hasInputSearch = isAdvanceMode(\n this.asProps.Children,\n [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ],\n true,\n );\n\n const defaultIndex = hasInputSearch || lastInteraction.isMouse()\n ? null\n : this.props.defaultHighlightedIndex;\n\n this.handlers.highlightedIndex(defaultIndex);\n\n setTimeout(() => {\n const options = this.menuRef.current?.querySelectorAll('[role=\"option\"]');\n const selected = this.menuRef.current?.querySelector('[aria-selected=\"true\"]');\n\n if (selected && options) {\n this.scrollToNode(selected);\n\n for (let i = 0; i < options.length; i++) {\n if (options[i] === selected) {\n this.handlers.highlightedIndex(i);\n break;\n }\n }\n }\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n getI18nText,\n highlightedIndex,\n uid,\n Children,\n children: hasChildren,\n } = this.asProps;\n\n const isMenu = isAdvanceMode(Children, [Select.Menu.displayName], true) || !hasChildren;\n const ariaControls = isMenu ? `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.handleArrowKeyDown.bind(this),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': isMenu ? 'listbox' : 'dialog',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-activedescendant':\n visible && highlightedIndex !== null && this.itemRefs[highlightedIndex]\n ? `igc-${uid}-option-${highlightedIndex}`\n : undefined,\n 'empty': isEmptyValue(value),\n value,\n name,\n '$hiddenRef': forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n 'active': visible,\n 'onClear': this.handlerClear,\n 'children': this.renderChildrenTrigger(value, options),\n getI18nText,\n\n 'onBlur': () => {\n // if popper is opened and we moved from the trigger in select - it means we moved on some controls in popper and should hide highlighted for the option\n if (this.asProps.visible) {\n this.prevHighlightedIndex = this.asProps.highlightedIndex;\n this.handlers.highlightedIndex(null);\n }\n },\n 'onFocus': () => {\n // if popper is opened and we moved to the trigger in select - it means we moved from some controls in popper and should highlight the last highlighted option\n if (this.asProps.visible) {\n const index = this.prevHighlightedIndex;\n this.handlers.highlightedIndex(index);\n }\n },\n };\n }\n\n getListProps() {\n const { multiselect } = this.asProps;\n\n return {\n ...super.getListProps(),\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getOptionProps(props, index) {\n const { value, highlightedIndex, size = 'm' } = this.asProps;\n const highlighted =\n index === highlightedIndex && lastInteraction.isKeyboard() && !props.disabled;\n const selected = props.selected ?? isSelectedOption(value, props.value);\n\n return {\n ...super.getItemProps(props, index),\n highlighted,\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': props.disabled ? 'true' : 'false',\n 'role': 'option',\n 'onClick': this.bindHandlerOptionClick(props.value, index),\n 'ref': (node) => this.itemRef(props, index, node),\n size,\n };\n }\n\n getOptionCheckboxProps() {\n const { size, resolveColor } = this.asProps;\n\n return {\n size,\n resolveColor,\n };\n }\n\n getDividerProps() {\n return { 'my': 1, 'aria-disabled': 'true' };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue, index) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.highlightedIndex(index);\n this.handlers.value(newValue, e);\n if (!multiselect) {\n this.handlers.visible(false);\n e.preventDefault();\n }\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n render() {\n const { Children, options, multiselect, value: _value, uid, forcedAdvancedMode, ...other } =\n this.asProps;\n const advancedMode =\n forcedAdvancedMode ||\n findComponent(Children, [Select.Trigger.displayName, Select.Popper.displayName]);\n\n logger.warn(\n options && advancedMode,\n 'Don\\'t use at the same time \\'options\\' property and \\'<Select.Trigger/>/<Select.Popper/>\\'',\n other['data-ui-name'] || Select.displayName,\n );\n\n this.itemProps = [];\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, index) => {\n return (\n <Select.Option key={option.value} id={`igc-${uid}-option-${index}`} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({\n Children,\n name,\n value,\n styles,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SSelectTrigger = Root;\n\n return sstyled(styles)(\n <SSelectTrigger\n render={Dropdown.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n role='combobox'\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n >\n {addonTextChildren(\n Children,\n Tag.Text || Tag.Value || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type='hidden' defaultValue={value} name={name} ref={$hiddenRef} />}\n </SSelectTrigger>,\n );\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 <Select.Popper {...popperProps} role={null}>\n <Root render={Select.List} />\n </Select.Popper>\n </ListBoxContextProvider>\n );\n}\n\nconst optionPropsContext = React.createContext({});\nfunction Option(props) {\n const SSelectOption = Root;\n const { styles, Children, highlighted } = props;\n const itemRef = React.useRef(null);\n\n const hasCheckbox = isAdvanceMode(Children, [Select.Option.Checkbox.displayName]);\n const hasContent = isAdvanceMode(Children, [Select.Option.Content.displayName]);\n\n const optionPropsContextValue = {\n ...props,\n itemRef,\n highlighted,\n };\n\n return sstyled(styles)(\n <SSelectOption render={Dropdown.Item} ref={itemRef}>\n <optionPropsContext.Provider value={optionPropsContextValue}>\n {hasCheckbox && !hasContent\n ? (\n <Select.Option.Content>\n <Children />\n </Select.Option.Content>\n )\n : (\n <Children />\n )}\n </optionPropsContext.Provider>\n </SSelectOption>,\n );\n}\n\nfunction Checkbox(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const props = React.useMemo(\n () => ({\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected, resolveColor, indeterminate } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n indeterminate,\n selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n tabIndex={-1}\n />\n );\n}\n\nfunction OptionText(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const selectedIndex = React.useContext(selectedIndexContext);\n const props = React.useMemo(\n () => ({\n key: optionProps?.id,\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n hintProps: optionProps?.hintProps ?? {},\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n\n if (optionProps.itemRef) {\n props.hintProps.triggerRef = optionProps.itemRef;\n }\n\n props.hintProps.visible = selectedIndex === optionProps.index;\n\n return sstyled(props.styles)(\n <Text\n {...props}\n />,\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: Dropdown.Popper,\n List: DropdownMenu.List,\n Menu: Menu,\n Option: [\n Option,\n {\n Addon: DropdownMenu.Item.Addon,\n Content: DropdownMenu.Item.Content,\n Text: OptionText,\n Hint: DropdownMenu.Item.Hint,\n Checkbox,\n },\n ],\n Group: Dropdown.Group,\n Divider,\n InputSearch: [InputSearchWrapper, InputSearch._______childrenComponents],\n Input: [InputSearchWrapper, InputSearch._______childrenComponents],\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport const wrapSelect = (wrapper) => wrapper;\nSelect.selectedIndexContext = selectedIndexContext;\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Select.js","names":["hideScrollBarsFromScreenReadersContext","useBox","isInputTriggerTag","ButtonTrigger","createComponent","Root","sstyled","lastInteraction","addonTextChildren","callAllEventHandlers","resolveColorEnhance","findComponent","isAdvanceMode","logger","Divider","Dropdown","AbstractDropdown","enhance","selectedIndexContext","DropdownMenu","Text","cn","React","selectContext","InputSearch","style","_sstyled","insert","localizedMessages","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","ListBoxContextProvider","children","createElement","Provider","RootSelect","constructor","args","_defineProperty","optionValue","index","e","newValue","asProps","filter","v","concat","handlers","highlightedIndex","visible","preventDefault","emptyValue","itemRef","props","node","isHighlighted","scrollToNode","uncontrolledProps","hasInputSearch","Children","Select","displayName","defaultIndex","isMouse","defaultHighlightedIndex","setTimeout","options","menuRef","current","querySelectorAll","selected","querySelector","i","getTriggerProps","disabled","state","placeholder","forwardRef","name","getI18nText","uid","hasChildren","isMenu","Menu","ariaControls","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleArrowKeyDown","undefined","itemRefs","handlerClear","renderChildrenTrigger","onBlur","prevHighlightedIndex","onFocus","getListProps","getPopperProps","onKeyDown","handlePreventPopperKeyDown","getOptionProps","size","highlighted","isKeyboard","getItemProps","bindHandlerOptionClick","getOptionCheckboxProps","resolveColor","getDividerProps","reduce","acc","selectedOption","find","o","push","label","render","_ref2","_value","forcedAdvancedMode","other","advancedMode","Trigger","Popper","warn","itemProps","_ref","_assignProps","map","option","Option","_extends","key","id","Checkbox","_assignProps2","Object","values","defaultValue","defaultVisible","defaultSelectedIndex","selectedIndex","scrollToSelected","i18n","locale","interaction","inlineActions","timeout","styles","$hiddenRef","tag","Tag","_ref3","arguments[0]","_ref7","hasInputTrigger","SSelectTrigger","_assignProps3","Value","Addon","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","role","List","_assignProps4","optionPropsContext","createContext","_ref5","_ref8","SSelectOption","Item","useRef","hasCheckbox","hasContent","Content","optionPropsContextValue","_assignProps5","providedProps","optionProps","useContext","useMemo","SOptionCheckbox","componentProps","theme","indeterminate","className","tabIndex","OptionText","_ref9","InputSearchWrapper","_ref6","_assignProps6","Hint","Group","_______childrenComponents","Input","parent","context","wrapSelect","wrapper"],"sources":["../../src/Select.jsx"],"sourcesContent":["import { hideScrollBarsFromScreenReadersContext, useBox, isInputTriggerTag } from '@semcore/base-components';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport { createComponent, Root, sstyled, lastInteraction } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport logger from '@semcore/core/lib/utils/logger';\nimport Divider from '@semcore/divider';\nimport Dropdown, { AbstractDropdown, enhance, selectedIndexContext } from '@semcore/dropdown';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { Text } from '@semcore/typography';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { selectContext } from './context';\nimport InputSearch from './InputSearch';\nimport style from './style/select.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nconst ListBoxContextProvider = ({ children }) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n\nclass RootSelect extends AbstractDropdown {\n static displayName = 'Select';\n\n static style = style;\n static enhance = Object.values(enhance).concat([resolveColorEnhance()]);\n\n static defaultProps = (props) => {\n const hasInputSearch =\n props.children && isAdvanceMode(props.children, [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ], true);\n const defaultIndex = hasInputSearch ? null : 0;\n\n return {\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n defaultHighlightedIndex: props.highlightedIndex ?? defaultIndex,\n defaultSelectedIndex: props.selectedIndex ?? defaultIndex,\n scrollToSelected: true,\n i18n: localizedMessages,\n locale: 'en',\n interaction: props.interaction ?? 'click',\n inlineActions: false,\n timeout: props.timeout ?? 0,\n };\n };\n\n role = 'listbox';\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n const { highlightedIndex } = this.asProps;\n const isHighlighted = index === highlightedIndex;\n\n if (isHighlighted) {\n this.scrollToNode(node);\n }\n }\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n const hasInputSearch = isAdvanceMode(\n this.asProps.Children,\n [\n Select.InputSearch.displayName,\n InputSearch.displayName,\n ],\n true,\n );\n\n const defaultIndex = hasInputSearch || lastInteraction.isMouse()\n ? null\n : this.props.defaultHighlightedIndex;\n\n this.handlers.highlightedIndex(defaultIndex);\n\n setTimeout(() => {\n const options = this.menuRef.current?.querySelectorAll('[role=\"option\"]');\n const selected = this.menuRef.current?.querySelector('[aria-selected=\"true\"]');\n\n if (selected && options) {\n this.scrollToNode(selected);\n\n for (let i = 0; i < options.length; i++) {\n if (options[i] === selected) {\n this.handlers.highlightedIndex(i);\n break;\n }\n }\n }\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 30);\n }\n },\n ],\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n getI18nText,\n highlightedIndex,\n uid,\n Children,\n children: hasChildren,\n } = this.asProps;\n\n const isMenu = isAdvanceMode(Children, [Select.Menu.displayName], true) || !hasChildren;\n const ariaControls = isMenu ? `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.handleArrowKeyDown.bind(this),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': isMenu ? 'listbox' : 'dialog',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-activedescendant':\n visible && highlightedIndex !== null && this.itemRefs[highlightedIndex]\n ? `igc-${uid}-option-${highlightedIndex}`\n : undefined,\n 'empty': isEmptyValue(value),\n value,\n name,\n '$hiddenRef': forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n 'active': visible,\n 'onClear': this.handlerClear,\n 'children': this.renderChildrenTrigger(value, options),\n getI18nText,\n\n 'onBlur': () => {\n // if popper is opened and we moved from the trigger in select - it means we moved on some controls in popper and should hide highlighted for the option\n if (this.asProps.visible) {\n this.prevHighlightedIndex = this.asProps.highlightedIndex;\n this.handlers.highlightedIndex(null);\n }\n },\n 'onFocus': () => {\n // if popper is opened and we moved to the trigger in select - it means we moved from some controls in popper and should highlight the last highlighted option\n if (this.asProps.visible) {\n const index = this.prevHighlightedIndex;\n this.handlers.highlightedIndex(index);\n }\n },\n };\n }\n\n getListProps() {\n const { multiselect } = this.asProps;\n\n return {\n ...super.getListProps(),\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getOptionProps(props, index) {\n const { value, highlightedIndex, size = 'm' } = this.asProps;\n const highlighted =\n index === highlightedIndex && lastInteraction.isKeyboard() && !props.disabled;\n const selected = props.selected ?? isSelectedOption(value, props.value);\n\n return {\n ...super.getItemProps(props, index),\n highlighted,\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': props.disabled ? 'true' : 'false',\n 'role': 'option',\n 'onClick': this.bindHandlerOptionClick(props.value, index),\n 'ref': (node) => this.itemRef(props, index, node),\n size,\n };\n }\n\n getOptionCheckboxProps() {\n const { size, resolveColor } = this.asProps;\n\n return {\n size,\n resolveColor,\n };\n }\n\n getDividerProps() {\n return { 'my': 1, 'aria-disabled': 'true' };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue, index) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.highlightedIndex(index);\n this.handlers.value(newValue, e);\n if (!multiselect) {\n this.handlers.visible(false);\n e.preventDefault();\n }\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n render() {\n const { Children, options, multiselect, value: _value, uid, forcedAdvancedMode, ...other } =\n this.asProps;\n const advancedMode =\n forcedAdvancedMode ||\n findComponent(Children, [Select.Trigger.displayName, Select.Popper.displayName]);\n\n logger.warn(\n options && advancedMode,\n 'Don\\'t use at the same time \\'options\\' property and \\'<Select.Trigger/>/<Select.Popper/>\\'',\n other['data-ui-name'] || Select.displayName,\n );\n\n this.itemProps = [];\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, index) => {\n return (\n <Select.Option key={option.value} id={`igc-${uid}-option-${index}`} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({\n Children,\n name,\n value,\n styles,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n const SSelectTrigger = Root;\n\n return sstyled(styles)(\n <SSelectTrigger\n render={Dropdown.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n role='combobox'\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n >\n {addonTextChildren(\n Children,\n Tag.Text || Tag.Value || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type='hidden' defaultValue={value} name={name} ref={$hiddenRef} />}\n </SSelectTrigger>,\n );\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 <Select.Popper {...popperProps} role={null}>\n <Root render={Select.List} />\n </Select.Popper>\n </ListBoxContextProvider>\n );\n}\n\nconst optionPropsContext = React.createContext({});\nfunction Option(props) {\n const SSelectOption = Root;\n const { styles, Children, highlighted } = props;\n const itemRef = React.useRef(null);\n\n const hasCheckbox = isAdvanceMode(Children, [Select.Option.Checkbox.displayName]);\n const hasContent = isAdvanceMode(Children, [Select.Option.Content.displayName]);\n\n const optionPropsContextValue = {\n ...props,\n itemRef,\n highlighted,\n };\n\n return sstyled(styles)(\n <SSelectOption render={Dropdown.Item} ref={itemRef}>\n <optionPropsContext.Provider value={optionPropsContextValue}>\n {hasCheckbox && !hasContent\n ? (\n <Select.Option.Content>\n <Children />\n </Select.Option.Content>\n )\n : (\n <Children />\n )}\n </optionPropsContext.Provider>\n </SSelectOption>,\n );\n}\n\nfunction Checkbox(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const props = React.useMemo(\n () => ({\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected, resolveColor, indeterminate } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n indeterminate,\n selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n tabIndex={-1}\n />\n );\n}\n\nfunction OptionText(providedProps) {\n const optionProps = React.useContext(optionPropsContext);\n const selectedIndex = React.useContext(selectedIndexContext);\n const props = React.useMemo(\n () => ({\n key: optionProps?.id,\n selected: optionProps?.selected,\n disabled: optionProps?.disabled,\n size: optionProps?.size,\n ...(providedProps || {}),\n }),\n [providedProps, optionProps],\n );\n\n return sstyled(props.styles)(\n <Text\n {...props}\n hint:triggerRef={optionProps.itemRef}\n hint:visible={selectedIndex === optionProps.index}\n hint:placement='right'\n />,\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: Dropdown.Popper,\n List: DropdownMenu.List,\n Menu: Menu,\n Option: [\n Option,\n {\n Addon: DropdownMenu.Item.Addon,\n Content: DropdownMenu.Item.Content,\n Text: OptionText,\n Hint: DropdownMenu.Item.Hint,\n Checkbox,\n },\n ],\n Group: Dropdown.Group,\n Divider,\n InputSearch: [InputSearchWrapper, InputSearch._______childrenComponents],\n Input: [InputSearchWrapper, InputSearch._______childrenComponents],\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport const wrapSelect = (wrapper) => wrapper;\nSelect.selectedIndexContext = selectedIndexContext;\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { BoxProps, Flex } from '@semcore/base-components';\nimport type { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps } from '@semcore/base-trigger';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type Divider from '@semcore/divider';\nimport type Dropdown from '@semcore/dropdown';\nimport type {\n DropdownMenuContext,\n DropdownMenuItemProps,\n DropdownMenuProps,\n DropdownMenuHandlers,\n DropdownMenuTriggerProps,\n} from '@semcore/dropdown-menu';\nimport type DropdownMenu from '@semcore/dropdown-menu';\nimport type { InputValueProps } from '@semcore/input';\nimport type Input from '@semcore/input';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\nexport type SelectInputSearch = InputValueProps & {};\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport type SelectProps<T extends SelectValue = SelectValue> = DropdownMenuProps &\n BaseTriggerProps & {\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?:\n | ((value: T, e: React.SyntheticEvent) => boolean | void)\n | React.Dispatch<React.SetStateAction<T>>;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * If provided, adds a hidden <input /> tag with the given name for enhancing accessibility.\n */\n name?: string;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * If enabled, after opening select popper view will be scrolled to selected option or, if there are multiple selected options, to the first selected option.\n * @default true\n */\n scrollToSelected?: boolean;\n };\n\nexport type SelectOptionProps = DropdownMenuItemProps & {\n /**\n * Enables selected state\n */\n selected?: boolean;\n /** Value of the option */\n value: string | number;\n};\n\nexport type SelectOptionCheckboxProps = BoxProps & {\n /** Checkbox theme */\n theme?: string;\n /** Visual indeterminate state */\n indeterminate?: boolean;\n /** Controls the selected state */\n selected?: boolean;\n};\n\ndeclare const InputSearch: Intergalactic.Component<'div', SelectInputSearch> & {\n SearchIcon: typeof Input.Addon;\n Value: typeof Input.Value;\n Clear: typeof Input.Addon;\n};\n\nexport type SelectContext = DropdownMenuContext & {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n};\n\nexport type SelectHandlers = DropdownMenuHandlers & {\n value: (index: SelectValue) => void;\n};\n\ntype IntergalacticSelectComponent<PropsExtending = {}> = (<\n Value extends SelectValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n SelectProps<Value>,\n SelectContext,\n [handlers: SelectHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', SelectProps>;\n\ndeclare const Select: IntergalacticSelectComponent & {\n Trigger: Intergalactic.Component<\n typeof Dropdown.Trigger,\n DropdownMenuTriggerProps & ButtonTriggerProps,\n {},\n [handlers: SelectHandlers]\n > & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Group: typeof Dropdown.Group;\n Option: Intergalactic.Component<\n 'option',\n SelectOptionProps,\n SelectContext,\n [handlers: SelectHandlers]\n > & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: Intergalactic.Component<'div', SelectOptionCheckboxProps>;\n Content: typeof Flex;\n Text: typeof Text;\n Hint: typeof Flex;\n };\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\ndeclare const wrapSelect: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticSelectComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticSelectComponent<PropsExtending>;\n\nexport { InputSearch, wrapSelect };\nexport default Select;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { BoxProps, Flex } from '@semcore/base-components';\nimport type { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps, LinkTriggerProps } from '@semcore/base-trigger';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type Divider from '@semcore/divider';\nimport type Dropdown from '@semcore/dropdown';\nimport type {\n DropdownMenuContext,\n DropdownMenuItemProps,\n DropdownMenuProps,\n DropdownMenuHandlers,\n DropdownMenuTriggerProps,\n} from '@semcore/dropdown-menu';\nimport type DropdownMenu from '@semcore/dropdown-menu';\nimport type { InputValueProps } from '@semcore/input';\nimport type Input from '@semcore/input';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\nexport type SelectInputSearch = InputValueProps & {};\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport type SelectProps<T extends SelectValue = SelectValue> = Intergalactic.InternalTypings.EfficientOmit<DropdownMenuProps, 'size'> &\n Intergalactic.InternalTypings.EfficientOmit<BaseTriggerProps, 'size'> & {\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?:\n | ((value: T, e: React.SyntheticEvent) => boolean | void)\n | React.Dispatch<React.SetStateAction<T>>;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * If provided, adds a hidden <input /> tag with the given name for enhancing accessibility.\n */\n name?: string;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * If enabled, after opening select popper view will be scrolled to selected option or, if there are multiple selected options, to the first selected option.\n * @default true\n */\n scrollToSelected?: boolean;\n } & ({\n tag?: never;\n /**\n * Default type for size from BaseTriggerProps if there is no customization via `tag`.\n */\n size?: BaseTriggerProps['size'];\n } | {});\n\nexport type SelectOptionProps = DropdownMenuItemProps & {\n /**\n * Enables selected state\n */\n selected?: boolean;\n /** Value of the option */\n value: string | number;\n};\n\nexport type SelectOptionCheckboxProps = BoxProps & {\n /** Checkbox theme */\n theme?: string;\n /** Visual indeterminate state */\n indeterminate?: boolean;\n /** Controls the selected state */\n selected?: boolean;\n};\n\ndeclare const InputSearch: Intergalactic.Component<'div', SelectInputSearch> & {\n SearchIcon: typeof Input.Addon;\n Value: typeof Input.Value;\n Clear: typeof Input.Addon;\n};\n\nexport type SelectContext = DropdownMenuContext & {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n};\n\nexport type SelectHandlers = DropdownMenuHandlers & {\n value: (index: SelectValue) => void;\n};\n\ntype IntergalacticSelectComponent<PropsExtending = {}> = (<\n Value extends SelectValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n SelectProps<Value>,\n SelectContext,\n [handlers: SelectHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', SelectProps>;\n\ndeclare const Select: IntergalacticSelectComponent & {\n Trigger: Intergalactic.Component<\n typeof Dropdown.Trigger,\n DropdownMenuTriggerProps & (ButtonTriggerProps | LinkTriggerProps),\n {},\n [handlers: SelectHandlers]\n > & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Group: typeof Dropdown.Group;\n Option: Intergalactic.Component<\n 'option',\n SelectOptionProps,\n SelectContext,\n [handlers: SelectHandlers]\n > & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: Intergalactic.Component<'div', SelectOptionCheckboxProps>;\n Content: typeof Flex;\n Text: typeof Text;\n Hint: typeof Flex;\n };\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\ndeclare const wrapSelect: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticSelectComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticSelectComponent<PropsExtending>;\n\nexport { InputSearch, wrapSelect };\nexport default Select;\n"],"mappings":"","ignoreList":[]}
@@ -273,7 +273,6 @@ _defineProperty(RootSelect, "defaultProps", (props) => {
273
273
  const defaultIndex = hasInputSearch ? null : 0;
274
274
  return {
275
275
  placeholder: props.multiselect ? "Select options" : "Select option",
276
- size: "m",
277
276
  defaultValue: getEmptyValue(props.multiselect),
278
277
  defaultVisible: false,
279
278
  defaultHighlightedIndex: props.highlightedIndex ?? defaultIndex,
@@ -405,15 +404,13 @@ function OptionText(providedProps) {
405
404
  selected: optionProps == null ? void 0 : optionProps.selected,
406
405
  disabled: optionProps == null ? void 0 : optionProps.disabled,
407
406
  size: optionProps == null ? void 0 : optionProps.size,
408
- hintProps: (optionProps == null ? void 0 : optionProps.hintProps) ?? {},
409
407
  ...providedProps || {}
410
408
  }), [providedProps, optionProps]);
411
- if (optionProps.itemRef) {
412
- props.hintProps.triggerRef = optionProps.itemRef;
413
- }
414
- props.hintProps.visible = selectedIndex === optionProps.index;
415
409
  return _ref9 = sstyled(props.styles), /* @__PURE__ */ React.createElement(Text, _ref9.cn("Text", {
416
- ...props
410
+ ...props,
411
+ "hint:triggerRef": optionProps.itemRef,
412
+ "hint:visible": selectedIndex === optionProps.index,
413
+ "hint:placement": "right"
417
414
  }));
418
415
  }
419
416
  const InputSearchWrapper = function() {
@@ -1,5 +1,5 @@
1
1
  import type { BoxProps, Flex } from '@semcore/base-components';
2
- import type { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps } from '@semcore/base-trigger';
2
+ import type { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps, LinkTriggerProps } from '@semcore/base-trigger';
3
3
  import type { PropGetterFn, Intergalactic } from '@semcore/core';
4
4
  import type Divider from '@semcore/divider';
5
5
  import type Dropdown from '@semcore/dropdown';
@@ -27,8 +27,8 @@ export type SelectOption = {
27
27
  label?: React.ReactNode;
28
28
  };
29
29
 
30
- export type SelectProps<T extends SelectValue = SelectValue> = DropdownMenuProps &
31
- BaseTriggerProps & {
30
+ export type SelectProps<T extends SelectValue = SelectValue> = Intergalactic.InternalTypings.EfficientOmit<DropdownMenuProps, 'size'> &
31
+ Intergalactic.InternalTypings.EfficientOmit<BaseTriggerProps, 'size'> & {
32
32
  /**
33
33
  * Options array
34
34
  */
@@ -73,7 +73,13 @@ export type SelectProps<T extends SelectValue = SelectValue> = DropdownMenuProps
73
73
  * @default true
74
74
  */
75
75
  scrollToSelected?: boolean;
76
- };
76
+ } & ({
77
+ tag?: never;
78
+ /**
79
+ * Default type for size from BaseTriggerProps if there is no customization via `tag`.
80
+ */
81
+ size?: BaseTriggerProps['size'];
82
+ } | {});
77
83
 
78
84
  export type SelectOptionProps = DropdownMenuItemProps & {
79
85
  /**
@@ -127,7 +133,7 @@ Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', SelectProps>;
127
133
  declare const Select: IntergalacticSelectComponent & {
128
134
  Trigger: Intergalactic.Component<
129
135
  typeof Dropdown.Trigger,
130
- DropdownMenuTriggerProps & ButtonTriggerProps,
136
+ DropdownMenuTriggerProps & (ButtonTriggerProps | LinkTriggerProps),
131
137
  {},
132
138
  [handlers: SelectHandlers]
133
139
  > & {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/select",
3
3
  "description": "Semrush Select Component",
4
- "version": "17.0.0-prerelease.30",
4
+ "version": "17.0.0-prerelease.31",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -13,14 +13,14 @@
13
13
  "types": "./lib/types/index.d.ts"
14
14
  },
15
15
  "dependencies": {
16
- "@semcore/base-trigger": "^17.0.0-prerelease.30",
17
- "@semcore/button": "^17.0.0-prerelease.30",
18
- "@semcore/checkbox": "^17.0.0-prerelease.30",
19
- "@semcore/divider": "^17.0.0-prerelease.30",
20
- "@semcore/dropdown": "^17.0.0-prerelease.30",
21
- "@semcore/dropdown-menu": "^17.0.0-prerelease.30",
22
- "@semcore/input": "^17.0.0-prerelease.30",
23
- "@semcore/typography": "^17.0.0-prerelease.30",
16
+ "@semcore/base-trigger": "^17.0.0-prerelease.31",
17
+ "@semcore/button": "^17.0.0-prerelease.31",
18
+ "@semcore/checkbox": "^17.0.0-prerelease.31",
19
+ "@semcore/divider": "^17.0.0-prerelease.31",
20
+ "@semcore/dropdown": "^17.0.0-prerelease.31",
21
+ "@semcore/dropdown-menu": "^17.0.0-prerelease.31",
22
+ "@semcore/input": "^17.0.0-prerelease.31",
23
+ "@semcore/typography": "^17.0.0-prerelease.31",
24
24
  "classnames": "2.2.6"
25
25
  },
26
26
  "peerDependencies": {
@@ -34,9 +34,9 @@
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/classnames": "2.2.6",
37
- "@semcore/core": "17.0.0-prerelease.30",
38
- "@semcore/base-components": "17.0.0-prerelease.30",
39
- "@semcore/icon": "16.7.2-prerelease.30",
37
+ "@semcore/core": "17.0.0-prerelease.31",
38
+ "@semcore/base-components": "17.0.0-prerelease.31",
39
+ "@semcore/icon": "16.7.2-prerelease.31",
40
40
  "@semcore/testing-utils": "1.0.0"
41
41
  },
42
42
  "scripts": {