@semcore/select 4.46.1 → 4.47.0

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/lib/es6/Select.js CHANGED
@@ -5,6 +5,8 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
5
5
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
6
6
  import _createClass from "@babel/runtime/helpers/createClass";
7
7
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
8
+ import _get from "@babel/runtime/helpers/get";
9
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
10
  import _inherits from "@babel/runtime/helpers/inherits";
9
11
  import _createSuper from "@babel/runtime/helpers/createSuper";
10
12
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
@@ -17,8 +19,9 @@ import { assignProps as _assignProps } from "@semcore/core";
17
19
  var _excluded = ["Children", "options", "multiselect", "value", "uid", "forcedAdvancedMode"];
18
20
  import React from 'react';
19
21
  import cn from 'classnames';
20
- import createComponent, { Component, Root, sstyled } from '@semcore/core';
21
- import { DropdownMenuOld as DropdownMenu } from '@semcore/dropdown-menu';
22
+ import createComponent, { Root, sstyled } from '@semcore/core';
23
+ import DropdownMenu from '@semcore/dropdown-menu';
24
+ import Dropdown, { AbstractDropdown, enhance, selectedIndexContext } from '@semcore/dropdown';
22
25
  import { ButtonTrigger } from '@semcore/base-trigger';
23
26
  import Divider from '@semcore/divider';
24
27
  import findComponent from '@semcore/utils/lib/findComponent';
@@ -28,21 +31,20 @@ import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
28
31
  import InputSearch from './InputSearch';
29
32
  import { useBox } from '@semcore/flex-box';
30
33
  import { selectContext } from './context';
31
- import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
32
- import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
33
34
  import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
34
35
  import { isInputTriggerTag } from '@semcore/popper';
35
- import { Flex } from '@semcore/flex-box';
36
36
  /*__reshadow-styles__:"./style/select.shadow.css"*/
37
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SOptionCheckbox_lr4th_gg_{margin-top:var(--intergalactic-spacing-05x, 2px);margin-right:var(--intergalactic-spacing-2x, 8px);margin-bottom:auto;position:relative;flex-shrink:0;width:16px;height:16px}.___SOptionCheckbox_lr4th_gg_::before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid;border-radius:var(--intergalactic-addon-rounded, 4px);border-color:var(--intergalactic-border-primary, #c4c7cf)}.___SOptionCheckbox_lr4th_gg_::after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;margin:0 var(--intergalactic-spacing-05x, 2px);background-repeat:no-repeat;background-position:center center}.___SOptionCheckbox_lr4th_gg_.__selected_lr4th_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEwIDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04LjI1IDFMNCA1LjI1TDEuNzUgMyIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_lr4th_gg_._size_l_lr4th_gg_{width:20px;height:20px}.___SOptionCheckbox_lr4th_gg_._size_l_lr4th_gg_.__selected_lr4th_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_lr4th_gg_.__indeterminate_lr4th_gg_:before,.___SOptionCheckbox_lr4th_gg_.__selected_lr4th_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_lr4th_gg_.__theme_lr4th_gg_:before{border-color:var(--theme_lr4th)}.___SOptionCheckbox_lr4th_gg_.__theme_lr4th_gg_.__indeterminate_lr4th_gg_:before,.___SOptionCheckbox_lr4th_gg_.__theme_lr4th_gg_.__selected_lr4th_gg_:before{background-color:var(--theme_lr4th);border-color:var(--theme_lr4th)}.___SOptionCheckbox_lr4th_gg_.__selected_lr4th_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_lr4th_gg_.__selected_lr4th_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}.___SOptionCheckbox_lr4th_gg_.__indeterminate_lr4th_gg_:after{background-color:#fff;background-image:none;margin:auto;border-radius:1px}.___SOptionCheckbox_lr4th_gg_.__indeterminate_lr4th_gg_._size_l_lr4th_gg_:after{width:12px;height:2px}.___SOptionCheckbox_lr4th_gg_.__indeterminate_lr4th_gg_._size_m_lr4th_gg_:after{width:8px;height:2px}" /*__inner_css_end__*/, "lr4th_gg_") /*__reshadow_css_end__*/, {
38
- "__SOptionCheckbox": "___SOptionCheckbox_lr4th_gg_",
39
- "_selected": "__selected_lr4th_gg_",
40
- "_size_l": "_size_l_lr4th_gg_",
41
- "_indeterminate": "__indeterminate_lr4th_gg_",
42
- "_theme": "__theme_lr4th_gg_",
43
- "--theme": "--theme_lr4th",
44
- "_size_m": "_size_m_lr4th_gg_"
37
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SOptionCheckbox_jpeh3_gg_{margin-top:var(--intergalactic-spacing-05x, 2px);margin-right:var(--intergalactic-spacing-2x, 8px);margin-bottom:auto;position:relative;flex-shrink:0;width:16px;height:16px}.___SOptionCheckbox_jpeh3_gg_::before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid;border-radius:var(--intergalactic-addon-rounded, 4px);border-color:var(--intergalactic-border-primary, #c4c7cf)}.___SOptionCheckbox_jpeh3_gg_::after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;margin:0 var(--intergalactic-spacing-05x, 2px);background-repeat:no-repeat;background-position:center center}.___SOptionCheckbox_jpeh3_gg_.__selected_jpeh3_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEwIDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04LjI1IDFMNCA1LjI1TDEuNzUgMyIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_jpeh3_gg_._size_l_jpeh3_gg_{width:20px;height:20px}.___SOptionCheckbox_jpeh3_gg_._size_l_jpeh3_gg_.__selected_jpeh3_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_jpeh3_gg_.__indeterminate_jpeh3_gg_:before,.___SOptionCheckbox_jpeh3_gg_.__selected_jpeh3_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_jpeh3_gg_.__theme_jpeh3_gg_:before{border-color:var(--theme_jpeh3)}.___SOptionCheckbox_jpeh3_gg_.__theme_jpeh3_gg_.__indeterminate_jpeh3_gg_:before,.___SOptionCheckbox_jpeh3_gg_.__theme_jpeh3_gg_.__selected_jpeh3_gg_:before{background-color:var(--theme_jpeh3);border-color:var(--theme_jpeh3)}.___SOptionCheckbox_jpeh3_gg_.__selected_jpeh3_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_jpeh3_gg_.__selected_jpeh3_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}.___SOptionCheckbox_jpeh3_gg_.__indeterminate_jpeh3_gg_:after{background-color:#fff;background-image:none;margin:auto;border-radius:1px}.___SOptionCheckbox_jpeh3_gg_.__indeterminate_jpeh3_gg_._size_l_jpeh3_gg_:after{width:12px;height:2px}.___SOptionCheckbox_jpeh3_gg_.__indeterminate_jpeh3_gg_._size_m_jpeh3_gg_:after{width:8px;height:2px}" /*__inner_css_end__*/, "jpeh3_gg_") /*__reshadow_css_end__*/, {
38
+ "__SOptionCheckbox": "___SOptionCheckbox_jpeh3_gg_",
39
+ "_selected": "__selected_jpeh3_gg_",
40
+ "_size_l": "_size_l_jpeh3_gg_",
41
+ "_indeterminate": "__indeterminate_jpeh3_gg_",
42
+ "_theme": "__theme_jpeh3_gg_",
43
+ "--theme": "--theme_jpeh3",
44
+ "_size_m": "_size_m_jpeh3_gg_"
45
45
  });
46
+ import { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
47
+ import { isAdvanceMode } from '@semcore/utils/lib/findComponent';
46
48
  function isSelectedOption(value, valueOption) {
47
49
  return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;
48
50
  }
@@ -52,16 +54,8 @@ function isEmptyValue(value) {
52
54
  function getEmptyValue(multiselect) {
53
55
  return multiselect ? [] : null;
54
56
  }
55
- var scrollToNode = function scrollToNode(node) {
56
- if (!node) return;
57
- if (!node.scrollIntoView) return;
58
- node.scrollIntoView({
59
- block: 'nearest',
60
- inline: 'nearest'
61
- });
62
- };
63
- var RootSelect = /*#__PURE__*/function (_Component) {
64
- _inherits(RootSelect, _Component);
57
+ var RootSelect = /*#__PURE__*/function (_AbstractDropdown) {
58
+ _inherits(RootSelect, _AbstractDropdown);
65
59
  var _super = _createSuper(RootSelect);
66
60
  function RootSelect() {
67
61
  var _this;
@@ -70,30 +64,13 @@ var RootSelect = /*#__PURE__*/function (_Component) {
70
64
  args[_key] = arguments[_key];
71
65
  }
72
66
  _this = _super.call.apply(_super, [this].concat(args));
73
- _defineProperty(_assertThisInitialized(_this), "firstSelectedOptionRef", /*#__PURE__*/React.createRef());
74
- _defineProperty(_assertThisInitialized(_this), "triggerRef", /*#__PURE__*/React.createRef());
75
- _defineProperty(_assertThisInitialized(_this), "isScrolledToFirstOption", false);
76
- _defineProperty(_assertThisInitialized(_this), "lastHandleOptionNodeCall", -1);
77
- _defineProperty(_assertThisInitialized(_this), "handleOptionNode", function (node) {
78
- if (!_this.asProps.scrollToSelected) return;
79
- if (Date.now() - _this.lastHandleOptionNodeCall < 30) return;
80
- _this.lastHandleOptionNodeCall = Date.now();
81
- setTimeout(function () {
82
- // in most cases 10ms timeout works perfectly and scrolls before user can see it
83
- if (_this.asProps.visible) scrollToNode(node);
84
- }, 10);
85
- setTimeout(function () {
86
- // in rare cases 10ms timeout it not enough so 30ms timeout saves the day
87
- if (_this.asProps.visible) scrollToNode(node);
88
- }, 30);
89
- });
90
- _defineProperty(_assertThisInitialized(_this), "bindHandlerOptionClick", function (optionValue) {
67
+ _defineProperty(_assertThisInitialized(_this), "role", 'listbox');
68
+ _defineProperty(_assertThisInitialized(_this), "bindHandlerOptionClick", function (optionValue, index) {
91
69
  return function (e) {
92
70
  var newValue = optionValue;
93
71
  var _this$asProps = _this.asProps,
94
72
  value = _this$asProps.value,
95
- multiselect = _this$asProps.multiselect,
96
- interaction = _this$asProps.interaction;
73
+ multiselect = _this$asProps.multiselect;
97
74
  if (Array.isArray(value)) {
98
75
  if (value.includes(optionValue)) {
99
76
  newValue = value.filter(function (v) {
@@ -106,6 +83,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
106
83
  _this.handlers.value(newValue, e);
107
84
  if (!multiselect) {
108
85
  _this.handlers.visible(false);
86
+ e.preventDefault();
109
87
  }
110
88
  };
111
89
  });
@@ -118,18 +96,47 @@ var RootSelect = /*#__PURE__*/function (_Component) {
118
96
  return _this;
119
97
  }
120
98
  _createClass(RootSelect, [{
99
+ key: "itemRef",
100
+ value: function itemRef(props, index, node) {
101
+ _get(_getPrototypeOf(RootSelect.prototype), "itemRef", this).call(this, props, index, node);
102
+ var highlightedIndex = this.asProps.highlightedIndex;
103
+ var isHighlighted = index === highlightedIndex;
104
+ if (isHighlighted) {
105
+ this.scrollToNode(node);
106
+ }
107
+ }
108
+ }, {
121
109
  key: "uncontrolledProps",
122
110
  value: function uncontrolledProps() {
123
- return {
124
- visible: null,
111
+ var _this2 = this;
112
+ return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(RootSelect.prototype), "uncontrolledProps", this).call(this)), {}, {
113
+ visible: [null, function (visible) {
114
+ if (visible === true) {
115
+ setTimeout(function () {
116
+ var _this2$menuRef$curren, _this2$menuRef$curren2;
117
+ var options = (_this2$menuRef$curren = _this2.menuRef.current) === null || _this2$menuRef$curren === void 0 ? void 0 : _this2$menuRef$curren.querySelectorAll('[role="option"]');
118
+ var selected = (_this2$menuRef$curren2 = _this2.menuRef.current) === null || _this2$menuRef$curren2 === void 0 ? void 0 : _this2$menuRef$curren2.querySelector('[aria-selected="true"]');
119
+ if (selected && options) {
120
+ _this2.scrollToNode(selected);
121
+ for (var i = 0; i < options.length; i++) {
122
+ if (options[i] === selected) {
123
+ _this2.handlers.highlightedIndex(i);
124
+ break;
125
+ }
126
+ }
127
+ }
128
+ // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)
129
+ // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.
130
+ }, 30);
131
+ }
132
+ }],
125
133
  value: null
126
- };
134
+ });
127
135
  }
128
136
  }, {
129
137
  key: "getTriggerProps",
130
138
  value: function getTriggerProps() {
131
139
  var _this$asProps2 = this.asProps,
132
- size = _this$asProps2.size,
133
140
  disabled = _this$asProps2.disabled,
134
141
  visible = _this$asProps2.visible,
135
142
  state = _this$asProps2.state,
@@ -139,18 +146,20 @@ var RootSelect = /*#__PURE__*/function (_Component) {
139
146
  forwardRef = _this$asProps2.forwardRef,
140
147
  name = _this$asProps2.name,
141
148
  multiselect = _this$asProps2.multiselect,
149
+ getI18nText = _this$asProps2.getI18nText,
150
+ highlightedIndex = _this$asProps2.highlightedIndex,
142
151
  uid = _this$asProps2.uid,
143
- disablePortal = _this$asProps2.disablePortal,
144
- getI18nText = _this$asProps2.getI18nText;
145
- return {
146
- id: "igc-".concat(uid, "-trigger"),
147
- 'aria-controls': visible ? "igc-".concat(uid, "-list") : undefined,
148
- focusHint: visible && !disablePortal ? getI18nText('triggerHint') : undefined,
149
- 'aria-haspopup': 'listbox',
150
- 'aria-expanded': visible ? 'true' : 'false',
152
+ Children = _this$asProps2.Children,
153
+ hasChildren = _this$asProps2.children;
154
+ var isMenu = isAdvanceMode(Children, [Select.Menu.displayName], true) || !hasChildren;
155
+ var ariaControls = isMenu ? "igc-".concat(uid, "-list") : "igc-".concat(uid, "-popper");
156
+ return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(RootSelect.prototype), "getTriggerProps", this).call(this)), {}, {
157
+ onKeyDown: callAllEventHandlers(this.handlePreventCommonKeyDown.bind(this), this.handleOpenKeyDown.bind(this), this.handleArrowKeyDown.bind(this)),
158
+ 'aria-controls': visible ? ariaControls : undefined,
159
+ 'aria-haspopup': isMenu ? 'listbox' : 'dialog',
151
160
  'aria-disabled': disabled ? 'true' : 'false',
161
+ 'aria-activedescendant': visible && highlightedIndex !== null ? "igc-".concat(uid, "-option-").concat(highlightedIndex) : undefined,
152
162
  empty: isEmptyValue(value),
153
- size: size,
154
163
  value: value,
155
164
  name: name,
156
165
  $hiddenRef: forwardRef,
@@ -161,60 +170,56 @@ var RootSelect = /*#__PURE__*/function (_Component) {
161
170
  active: visible,
162
171
  onClear: this.handlerClear,
163
172
  children: this.renderChildrenTrigger(value, options),
164
- getI18nText: getI18nText,
165
- ref: this.triggerRef
166
- };
173
+ getI18nText: getI18nText
174
+ });
167
175
  }
168
176
  }, {
169
177
  key: "getListProps",
170
178
  value: function getListProps() {
171
- var _this$asProps3 = this.asProps,
172
- multiselect = _this$asProps3.multiselect,
173
- uid = _this$asProps3.uid;
174
- return {
175
- 'aria-multiselectable': multiselect ? 'true' : undefined,
176
- id: "igc-".concat(uid, "-list"),
177
- role: 'listbox',
178
- 'aria-label': 'List of options'
179
- };
179
+ var multiselect = this.asProps.multiselect;
180
+ return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(RootSelect.prototype), "getListProps", this).call(this)), {}, {
181
+ 'aria-multiselectable': multiselect ? 'true' : undefined
182
+ });
180
183
  }
181
184
  }, {
182
- key: "getMenuProps",
183
- value: function getMenuProps() {
184
- var _this$asProps4 = this.asProps,
185
- uid = _this$asProps4.uid,
186
- getI18nText = _this$asProps4.getI18nText,
187
- multiselect = _this$asProps4.multiselect;
188
- return {
189
- 'aria-multiselectable': multiselect ? 'true' : undefined,
190
- id: "igc-".concat(uid, "-list"),
191
- role: 'listbox',
192
- 'aria-label': getI18nText('optionsList')
193
- };
185
+ key: "getPopperProps",
186
+ value: function getPopperProps() {
187
+ return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(RootSelect.prototype), "getPopperProps", this).call(this)), {}, {
188
+ onKeyDown: callAllEventHandlers(this.handlePreventCommonKeyDown.bind(this), this.handlePreventPopperKeyDown.bind(this), this.handleArrowKeyDown.bind(this))
189
+ });
194
190
  }
195
191
  }, {
196
192
  key: "getOptionProps",
197
- value: function getOptionProps(props) {
198
- var value = this.asProps.value;
199
- var selected = isSelectedOption(value, props.value);
200
- var other = {};
201
- if (selected) {
202
- other.ref = this.handleOptionNode;
203
- }
204
- return _objectSpread({
193
+ value: function getOptionProps(props, index) {
194
+ var _props$selected,
195
+ _this3 = this;
196
+ var _this$asProps3 = this.asProps,
197
+ value = _this$asProps3.value,
198
+ highlightedIndex = _this$asProps3.highlightedIndex,
199
+ focusSourceRef = _this$asProps3.focusSourceRef,
200
+ _this$asProps3$size = _this$asProps3.size,
201
+ size = _this$asProps3$size === void 0 ? 'm' : _this$asProps3$size;
202
+ var highlighted = index === highlightedIndex && focusSourceRef.current === 'keyboard';
203
+ var selected = (_props$selected = props.selected) !== null && _props$selected !== void 0 ? _props$selected : isSelectedOption(value, props.value);
204
+ return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(RootSelect.prototype), "getItemProps", this).call(this, props, index)), {}, {
205
+ highlighted: highlighted,
205
206
  selected: selected,
206
207
  'aria-selected': selected ? 'true' : 'false',
207
208
  'aria-disabled': props.disabled ? 'true' : 'false',
208
209
  role: 'option',
209
- onClick: this.bindHandlerOptionClick(props.value)
210
- }, other);
210
+ onClick: this.bindHandlerOptionClick(props.value, index),
211
+ ref: function ref(node) {
212
+ return _this3.itemRef(props, index, node);
213
+ },
214
+ size: size
215
+ });
211
216
  }
212
217
  }, {
213
218
  key: "getOptionCheckboxProps",
214
219
  value: function getOptionCheckboxProps() {
215
- var _this$asProps5 = this.asProps,
216
- size = _this$asProps5.size,
217
- resolveColor = _this$asProps5.resolveColor;
220
+ var _this$asProps4 = this.asProps,
221
+ size = _this$asProps4.size,
222
+ resolveColor = _this$asProps4.resolveColor;
218
223
  return {
219
224
  size: size,
220
225
  resolveColor: resolveColor
@@ -228,6 +233,17 @@ var RootSelect = /*#__PURE__*/function (_Component) {
228
233
  'aria-disabled': 'true'
229
234
  };
230
235
  }
236
+ }, {
237
+ key: "handleOpenKeyDown",
238
+ value: function handleOpenKeyDown(e) {
239
+ _get(_getPrototypeOf(RootSelect.prototype), "handleOpenKeyDown", this).call(this, e);
240
+ if (this.asProps.visible !== true && ['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(e.key)) {
241
+ var hasInputSearch = isAdvanceMode(this.asProps.Children, [Select.InputSearch.displayName], true);
242
+ var defaultIndex = hasInputSearch ? null : 0;
243
+ this.handlers.highlightedIndex(defaultIndex);
244
+ return false;
245
+ }
246
+ }
231
247
  }, {
232
248
  key: "renderChildrenTrigger",
233
249
  value: function renderChildrenTrigger(value, options) {
@@ -252,16 +268,17 @@ var RootSelect = /*#__PURE__*/function (_Component) {
252
268
  key: "render",
253
269
  value: function render() {
254
270
  var _ref2 = this.asProps;
255
- var _this$asProps6 = this.asProps,
256
- Children = _this$asProps6.Children,
257
- options = _this$asProps6.options,
258
- multiselect = _this$asProps6.multiselect,
259
- value = _this$asProps6.value,
260
- uid = _this$asProps6.uid,
261
- forcedAdvancedMode = _this$asProps6.forcedAdvancedMode,
262
- other = _objectWithoutProperties(_this$asProps6, _excluded);
271
+ var _this$asProps5 = this.asProps,
272
+ Children = _this$asProps5.Children,
273
+ options = _this$asProps5.options,
274
+ multiselect = _this$asProps5.multiselect,
275
+ value = _this$asProps5.value,
276
+ uid = _this$asProps5.uid,
277
+ forcedAdvancedMode = _this$asProps5.forcedAdvancedMode,
278
+ other = _objectWithoutProperties(_this$asProps5, _excluded);
263
279
  var advancedMode = forcedAdvancedMode || findComponent(Children, [Select.Trigger.displayName, Select.Popper.displayName]);
264
280
  logger.warn(options && advancedMode, "Don't use at the same time 'options' property and '<Select.Trigger/>/<Select.Popper/>'", other['data-ui-name'] || Select.displayName);
281
+ this.itemProps = [];
265
282
  if (options) {
266
283
  var _ref = this.asProps;
267
284
  return /*#__PURE__*/React.createElement(DropdownMenu, _assignProps({}, _ref), /*#__PURE__*/React.createElement(Select.Trigger, other), /*#__PURE__*/React.createElement(Select.Menu, null, options.map(function (option, index) {
@@ -275,19 +292,27 @@ var RootSelect = /*#__PURE__*/function (_Component) {
275
292
  }
276
293
  }]);
277
294
  return RootSelect;
278
- }(Component);
295
+ }(AbstractDropdown);
279
296
  _defineProperty(RootSelect, "displayName", 'Select');
280
297
  _defineProperty(RootSelect, "style", style);
281
- _defineProperty(RootSelect, "enhance", [uniqueIDEnhancement(), i18nEnhance(localizedMessages), resolveColorEnhance()]);
298
+ _defineProperty(RootSelect, "enhance", Object.values(enhance).concat([resolveColorEnhance()]));
282
299
  _defineProperty(RootSelect, "defaultProps", function (props) {
300
+ var _props$highlightedInd, _props$selectedIndex, _props$interaction, _props$timeout;
301
+ var hasInputSearch = props.children && isAdvanceMode(props.children, [Select.InputSearch.displayName], true);
302
+ var defaultIndex = hasInputSearch ? null : 0;
283
303
  return {
284
304
  placeholder: props.multiselect ? 'Select options' : 'Select option',
285
305
  size: 'm',
286
306
  defaultValue: getEmptyValue(props.multiselect),
287
307
  defaultVisible: false,
308
+ defaultHighlightedIndex: (_props$highlightedInd = props.highlightedIndex) !== null && _props$highlightedInd !== void 0 ? _props$highlightedInd : defaultIndex,
309
+ defaultSelectedIndex: (_props$selectedIndex = props.selectedIndex) !== null && _props$selectedIndex !== void 0 ? _props$selectedIndex : defaultIndex,
288
310
  scrollToSelected: true,
289
311
  i18n: localizedMessages,
290
- locale: 'en'
312
+ locale: 'en',
313
+ interaction: (_props$interaction = props.interaction) !== null && _props$interaction !== void 0 ? _props$interaction : 'click',
314
+ inlineActions: false,
315
+ timeout: (_props$timeout = props.timeout) !== null && _props$timeout !== void 0 ? _props$timeout : 0
291
316
  };
292
317
  });
293
318
  function Trigger(_ref8) {
@@ -302,12 +327,13 @@ function Trigger(_ref8) {
302
327
  Tag = _ref8$tag === void 0 ? ButtonTrigger : _ref8$tag,
303
328
  getI18nText = _ref8.getI18nText;
304
329
  var hasInputTrigger = isInputTriggerTag(Tag);
305
- var SSelectTrigger = DropdownMenu.Trigger;
330
+ var SSelectTrigger = Dropdown.Trigger;
306
331
  return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SSelectTrigger, _ref6.cn("SSelectTrigger", _objectSpread({}, _assignProps3({
307
332
  "tag": Tag,
308
333
  "placeholder": getI18nText('selectPlaceholder'),
334
+ "role": 'combobox',
309
335
  "aria-autocomplete": hasInputTrigger && 'list' || undefined
310
- }, _ref3))), addonTextChildren(Children, Tag.Text || ButtonTrigger.Text, Tag.Addon || ButtonTrigger.Addon, true), name && /*#__PURE__*/React.createElement("input", _ref6.cn("input", {
336
+ }, _ref3))), addonTextChildren(Children, Tag.Text || ButtonTrigger.Text, Tag.Value || ButtonTrigger.Text, Tag.Addon || ButtonTrigger.Addon, true), name && /*#__PURE__*/React.createElement("input", _ref6.cn("input", {
311
337
  "type": 'hidden',
312
338
  "defaultValue": value,
313
339
  "name": name,
@@ -318,14 +344,14 @@ var optionPropsContext = /*#__PURE__*/React.createContext({});
318
344
  function Option(props) {
319
345
  var _ref4 = arguments[0],
320
346
  _ref7;
321
- var SSelectOption = DropdownMenu.Item;
347
+ var SSelectOption = Dropdown.Item;
322
348
  var styles = props.styles,
323
349
  Children = props.Children;
324
- return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SSelectOption, _ref7.cn("SSelectOption", _objectSpread({}, _assignProps4({
325
- "tag": Flex
326
- }, _ref4))), /*#__PURE__*/React.createElement(optionPropsContext.Provider, {
350
+ var hasCheckbox = isAdvanceMode(Children, [Select.Option.Checkbox.displayName]);
351
+ var hasContent = isAdvanceMode(Children, [Select.Option.Content.displayName]);
352
+ return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SSelectOption, _ref7.cn("SSelectOption", _objectSpread({}, _assignProps4({}, _ref4))), /*#__PURE__*/React.createElement(optionPropsContext.Provider, {
327
353
  value: props
328
- }, /*#__PURE__*/React.createElement(Children, _ref7.cn("Children", {}))));
354
+ }, hasCheckbox && !hasContent ? /*#__PURE__*/React.createElement(Select.Option.Content, null, /*#__PURE__*/React.createElement(Children, _ref7.cn("Children", {}))) : /*#__PURE__*/React.createElement(Children, _ref7.cn("Children", {}))));
329
355
  }
330
356
  function Checkbox(providedProps) {
331
357
  var optionProps = React.useContext(optionPropsContext);
@@ -369,13 +395,16 @@ var Select = createComponent(RootSelect, {
369
395
  Addon: ButtonTrigger.Addon,
370
396
  Text: ButtonTrigger.Text
371
397
  }],
372
- Popper: DropdownMenu.Popper,
398
+ Popper: Dropdown.Popper,
373
399
  List: DropdownMenu.List,
374
400
  Menu: DropdownMenu.Menu,
375
401
  Option: [Option, {
376
402
  Addon: DropdownMenu.Item.Addon,
403
+ Content: DropdownMenu.Item.Content,
404
+ Hint: DropdownMenu.Item.Hint,
377
405
  Checkbox: Checkbox
378
406
  }],
407
+ Group: Dropdown.Group,
379
408
  OptionTitle: DropdownMenu.ItemTitle,
380
409
  OptionHint: DropdownMenu.ItemHint,
381
410
  Divider: Divider,
@@ -388,5 +417,6 @@ var Select = createComponent(RootSelect, {
388
417
  export var wrapSelect = function wrapSelect(wrapper) {
389
418
  return wrapper;
390
419
  };
420
+ Select.selectedIndexContext = selectedIndexContext;
391
421
  export default Select;
392
422
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["React","cn","createComponent","Component","Root","sstyled","DropdownMenuOld","DropdownMenu","ButtonTrigger","Divider","findComponent","logger","resolveColorEnhance","addonTextChildren","InputSearch","useBox","selectContext","uniqueIDEnhancement","i18nEnhance","localizedMessages","isInputTriggerTag","Flex","style","_sstyled","insert","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","scrollToNode","node","scrollIntoView","block","inline","RootSelect","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","args","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","asProps","scrollToSelected","Date","now","lastHandleOptionNodeCall","setTimeout","visible","optionValue","e","newValue","_this$asProps","interaction","filter","v","handlers","emptyValue","_createClass","key","uncontrolledProps","getTriggerProps","_this$asProps2","size","disabled","state","placeholder","options","forwardRef","name","uid","disablePortal","getI18nText","id","undefined","focusHint","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","ref","triggerRef","getListProps","_this$asProps3","role","getMenuProps","_this$asProps4","getOptionProps","props","selected","other","handleOptionNode","_objectSpread","onClick","bindHandlerOptionClick","getOptionCheckboxProps","_this$asProps5","resolveColor","getDividerProps","my","reduce","acc","selectedOption","find","o","push","label","render","_ref2","_this$asProps6","Children","forcedAdvancedMode","_objectWithoutProperties","_excluded","advancedMode","Select","Trigger","displayName","Popper","warn","_ref","createElement","_assignProps","Menu","map","option","index","Option","_extends","Checkbox","_assignProps2","defaultValue","defaultVisible","i18n","locale","_ref8","_ref3","arguments[0]","_ref6","styles","_ref8$tag","tag","Tag","hasInputTrigger","SSelectTrigger","_assignProps3","Text","Addon","optionPropsContext","createContext","_ref4","_ref7","SSelectOption","Item","_assignProps4","Provider","providedProps","optionProps","useContext","useMemo","_useBox","_useBox2","_slicedToArray","SOptionCheckbox","componentProps","theme","indeterminate","_styles$cn","className","tabIndex","InputSearchWrapper","_ref5","_assignProps5","List","OptionTitle","ItemTitle","OptionHint","ItemHint","_______childrenComponents","Input","parent","context","wrapSelect","wrapper"],"sources":["../../src/Select.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport { DropdownMenuOld as DropdownMenu } from '@semcore/dropdown-menu';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport logger from '@semcore/utils/lib/logger';\nimport resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport InputSearch from './InputSearch';\nimport { useBox } from '@semcore/flex-box';\nimport { selectContext } from './context';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport { isInputTriggerTag } from '@semcore/popper';\nimport { Flex } from '@semcore/flex-box';\n\nimport style from './style/select.shadow.css';\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 scrollToNode = (node) => {\n if (!node) return;\n if (!node.scrollIntoView) return;\n node.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n};\n\nclass RootSelect extends Component {\n static displayName = 'Select';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages), resolveColorEnhance()];\n\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n scrollToSelected: true,\n i18n: localizedMessages,\n locale: 'en',\n });\n\n firstSelectedOptionRef = React.createRef();\n\n triggerRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n size,\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n uid,\n disablePortal,\n getI18nText,\n } = this.asProps;\n\n return {\n id: `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-list` : undefined,\n focusHint: visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-haspopup': 'listbox',\n 'aria-expanded': visible ? 'true' : 'false',\n 'aria-disabled': disabled ? 'true' : 'false',\n empty: isEmptyValue(value),\n size,\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 ref: this.triggerRef,\n };\n }\n\n getListProps() {\n const { multiselect, uid } = this.asProps;\n\n return {\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': 'List of options',\n };\n }\n\n getMenuProps() {\n const { uid, getI18nText, multiselect } = this.asProps;\n\n return {\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': getI18nText('optionsList'),\n };\n }\n\n getOptionProps(props) {\n const { value } = this.asProps;\n const selected = isSelectedOption(value, props.value);\n const other = {};\n\n if (selected) {\n other.ref = this.handleOptionNode;\n }\n\n return {\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': props.disabled ? 'true' : 'false',\n role: 'option',\n onClick: this.bindHandlerOptionClick(props.value),\n ...other,\n };\n }\n\n lastHandleOptionNodeCall = -1;\n handleOptionNode = (node) => {\n if (!this.asProps.scrollToSelected) return;\n if (Date.now() - this.lastHandleOptionNodeCall < 30) return;\n this.lastHandleOptionNodeCall = Date.now();\n setTimeout(() => {\n // in most cases 10ms timeout works perfectly and scrolls before user can see it\n if (this.asProps.visible) scrollToNode(node);\n }, 10);\n setTimeout(() => {\n // in rare cases 10ms timeout it not enough so 30ms timeout saves the day\n if (this.asProps.visible) scrollToNode(node);\n }, 30);\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) => (e) => {\n let newValue = optionValue;\n const { value, multiselect, interaction } = 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.value(newValue, e);\n if (!multiselect) {\n this.handlers.visible(false);\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, 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 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={DropdownMenu.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n >\n {addonTextChildren(\n Children,\n Tag.Text || 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\nconst optionPropsContext = React.createContext({});\nfunction Option(props) {\n const SSelectOption = Root;\n const { styles, Children } = props;\n\n return sstyled(styles)(\n <SSelectOption render={DropdownMenu.Item} tag={Flex}>\n <optionPropsContext.Provider value={props}>\n <Children />\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\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: DropdownMenu.Popper,\n List: DropdownMenu.List,\n Menu: DropdownMenu.Menu,\n Option: [\n Option,\n {\n Addon: DropdownMenu.Item.Addon,\n Checkbox,\n },\n ],\n OptionTitle: DropdownMenu.ItemTitle,\n OptionHint: DropdownMenu.ItemHint,\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;\n\nexport default Select;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","names":["React","cn","createComponent","Root","sstyled","DropdownMenu","Dropdown","AbstractDropdown","enhance","selectedIndexContext","ButtonTrigger","Divider","findComponent","logger","resolveColorEnhance","addonTextChildren","InputSearch","useBox","selectContext","localizedMessages","isInputTriggerTag","style","_sstyled","insert","callAllEventHandlers","isAdvanceMode","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","RootSelect","_AbstractDropdown","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","args","_key","call","apply","concat","_defineProperty","_assertThisInitialized","optionValue","index","e","newValue","_this$asProps","asProps","filter","v","handlers","visible","preventDefault","emptyValue","_createClass","key","itemRef","props","node","_get","_getPrototypeOf","prototype","highlightedIndex","isHighlighted","scrollToNode","uncontrolledProps","_this2","_objectSpread","setTimeout","_this2$menuRef$curren","_this2$menuRef$curren2","options","menuRef","current","querySelectorAll","selected","querySelector","i","getTriggerProps","_this$asProps2","disabled","state","placeholder","forwardRef","name","getI18nText","uid","Children","hasChildren","children","isMenu","Select","Menu","displayName","ariaControls","onKeyDown","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleArrowKeyDown","undefined","empty","$hiddenRef","active","onClear","handlerClear","renderChildrenTrigger","getListProps","getPopperProps","handlePreventPopperKeyDown","getOptionProps","_props$selected","_this3","_this$asProps3","focusSourceRef","_this$asProps3$size","size","highlighted","role","onClick","bindHandlerOptionClick","ref","getOptionCheckboxProps","_this$asProps4","resolveColor","getDividerProps","my","hasInputSearch","defaultIndex","reduce","acc","selectedOption","find","o","push","label","render","_ref2","_this$asProps5","forcedAdvancedMode","other","_objectWithoutProperties","_excluded","advancedMode","Trigger","Popper","warn","itemProps","_ref","createElement","_assignProps","map","option","Option","_extends","id","Checkbox","_assignProps2","Object","values","_props$highlightedInd","_props$selectedIndex","_props$interaction","_props$timeout","defaultValue","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","selectedIndex","scrollToSelected","i18n","locale","interaction","inlineActions","timeout","_ref8","_ref3","arguments[0]","_ref6","styles","_ref8$tag","tag","Tag","hasInputTrigger","SSelectTrigger","_assignProps3","Text","Value","Addon","optionPropsContext","createContext","_ref4","_ref7","SSelectOption","Item","hasCheckbox","hasContent","Content","_assignProps4","Provider","providedProps","optionProps","useContext","useMemo","_useBox","_useBox2","_slicedToArray","SOptionCheckbox","componentProps","theme","indeterminate","_styles$cn","className","tabIndex","InputSearchWrapper","_ref5","_assignProps5","List","Hint","Group","OptionTitle","ItemTitle","OptionHint","ItemHint","_______childrenComponents","Input","parent","context","wrapSelect","wrapper"],"sources":["../../src/Select.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport createComponent, { Root, sstyled } from '@semcore/core';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport Dropdown, { AbstractDropdown, enhance, selectedIndexContext } from '@semcore/dropdown';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport logger from '@semcore/utils/lib/logger';\nimport resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport InputSearch from './InputSearch';\nimport { useBox } from '@semcore/flex-box';\nimport { selectContext } from './context';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport { isInputTriggerTag } from '@semcore/popper';\n\nimport style from './style/select.shadow.css';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\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\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, [Select.InputSearch.displayName], 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 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 ? `igc-${uid}-option-${highlightedIndex}` : 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 }\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, focusSourceRef, size = 'm' } = this.asProps;\n const highlighted = index === highlightedIndex && focusSourceRef.current === 'keyboard';\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 handleOpenKeyDown(e) {\n super.handleOpenKeyDown(e);\n\n if (this.asProps.visible !== true && ['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(e.key)) {\n const hasInputSearch = isAdvanceMode(\n this.asProps.Children,\n [Select.InputSearch.displayName],\n true,\n );\n const defaultIndex = hasInputSearch ? null : 0;\n\n this.handlers.highlightedIndex(defaultIndex);\n\n return false;\n }\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.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, 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 || ButtonTrigger.Text,\n 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\nconst optionPropsContext = React.createContext({});\nfunction Option(props) {\n const SSelectOption = Root;\n const { styles, Children } = props;\n\n const hasCheckbox = isAdvanceMode(Children, [Select.Option.Checkbox.displayName]);\n const hasContent = isAdvanceMode(Children, [Select.Option.Content.displayName]);\n\n return sstyled(styles)(\n <SSelectOption render={Dropdown.Item}>\n <optionPropsContext.Provider value={props}>\n {hasCheckbox && !hasContent ? (\n <Select.Option.Content>\n <Children />\n </Select.Option.Content>\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\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: DropdownMenu.Menu,\n Option: [\n Option,\n {\n Addon: DropdownMenu.Item.Addon,\n Content: DropdownMenu.Item.Content,\n Hint: DropdownMenu.Item.Hint,\n Checkbox,\n },\n ],\n Group: Dropdown.Group,\n OptionTitle: DropdownMenu.ItemTitle,\n OptionHint: DropdownMenu.ItemHint,\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport DropdownMenu, {\n DropdownMenuContext,\n DropdownMenuItemProps,\n DropdownMenuProps,\n DropdownMenuHandlers,\n DropdownMenuTriggerProps,\n} from '@semcore/dropdown-menu';\nimport { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport Input, { InputValueProps } from '@semcore/input';\nimport { BoxProps } from '@semcore/flex-box';\n\n/** @deprecated */\nexport interface ISelectInputSearch extends SelectInputSearch, UnknownProperties {}\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\n/** @deprecated */\nexport interface ISelectProps<T extends SelectValue = SelectValue> extends SelectProps<T> {}\nexport type SelectProps<T extends SelectValue = SelectValue> = DropdownMenuProps &\n BaseTriggerProps & {\n /**\n * Multiple select\n */\n multiselect?: boolean;\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 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\n/** @deprecated */\nexport interface ISelectOption extends SelectOption, UnknownProperties {}\n\n/** @deprecated */\nexport interface ISelectOptionProps extends SelectOptionProps, UnknownProperties {}\nexport type SelectOptionProps = DropdownMenuItemProps & {\n /** Value of the option */\n value: string | number;\n};\n\n/** @deprecated */\nexport interface ISelectOptionCheckboxProps extends SelectOptionCheckboxProps, UnknownProperties {}\nexport type SelectOptionCheckboxProps = BoxProps & {\n /** Checkbox theme */\n theme?: string;\n /** Visual indeterminate state */\n indeterminate?: boolean;\n\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\n/** @deprecated */\nexport interface ISelectContext extends SelectContext, UnknownProperties {}\nexport type SelectContext = DropdownMenuContext & {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface ISelectHandlers extends SelectHandlers, UnknownProperties {}\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) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', SelectProps>;\n\ndeclare const Select: IntergalacticSelectComponent & {\n Trigger: Intergalactic.Component<\n 'div',\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 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 };\n OptionTitle: typeof DropdownMenu.ItemTitle;\n OptionHint: typeof DropdownMenu.ItemHint;\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":""}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport DropdownMenu, {\n DropdownMenuContext,\n DropdownMenuItemProps,\n DropdownMenuProps,\n DropdownMenuHandlers,\n DropdownMenuTriggerProps,\n} from '@semcore/dropdown-menu';\nimport Dropdown from '@semcore/dropdown';\nimport { ButtonTrigger, BaseTriggerProps, ButtonTriggerProps } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport Input, { InputValueProps } from '@semcore/input';\nimport { BoxProps, Flex } from '@semcore/flex-box';\n\n/** @deprecated */\nexport interface ISelectInputSearch extends SelectInputSearch, UnknownProperties {}\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\n/** @deprecated */\nexport interface ISelectProps<T extends SelectValue = SelectValue> extends SelectProps<T> {}\nexport type SelectProps<T extends SelectValue = SelectValue> = DropdownMenuProps &\n BaseTriggerProps & {\n /**\n * Multiple select\n */\n multiselect?: boolean;\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 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\n/** @deprecated */\nexport interface ISelectOption extends SelectOption, UnknownProperties {}\n\n/** @deprecated */\nexport interface ISelectOptionProps extends SelectOptionProps, UnknownProperties {}\nexport type SelectOptionProps = DropdownMenuItemProps & {\n /**\n * Enables selected state\n */\n selected?: boolean;\n /** Value of the option */\n value: string | number;\n};\n\n/** @deprecated */\nexport interface ISelectOptionCheckboxProps extends SelectOptionCheckboxProps, UnknownProperties {}\nexport type SelectOptionCheckboxProps = BoxProps & {\n /** Checkbox theme */\n theme?: string;\n /** Visual indeterminate state */\n indeterminate?: boolean;\n\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\n/** @deprecated */\nexport interface ISelectContext extends SelectContext, UnknownProperties {}\nexport type SelectContext = DropdownMenuContext & {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface ISelectHandlers extends SelectHandlers, UnknownProperties {}\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) &\n Intergalactic.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 Hint: typeof Flex;\n };\n /**\n * @deprecated Use Select.Group\n */\n OptionTitle: typeof DropdownMenu.ItemTitle;\n /**\n * @deprecated Use Select.Option.Hint or Select.Group with subTitle property\n */\n OptionHint: typeof DropdownMenu.ItemHint;\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":""}