@salutejs/plasma-new-hope 0.141.0-canary.1420.10717002054.0 → 0.141.0-canary.1422.10721189833.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +6 -4
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Combobox/ComboboxOld/Combobox.js +15 -8
  4. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  5. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +6 -4
  6. package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +15 -8
  7. package/emotion/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  8. package/emotion/cjs/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  9. package/emotion/cjs/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  10. package/emotion/cjs/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  11. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +6 -4
  12. package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +15 -8
  13. package/emotion/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  14. package/emotion/es/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  15. package/emotion/es/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  16. package/emotion/es/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  17. package/es/components/Combobox/ComboboxNew/Combobox.js +6 -4
  18. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  19. package/es/components/Combobox/ComboboxOld/Combobox.js +15 -8
  20. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  21. package/package.json +4 -4
  22. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +6 -4
  23. package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +15 -8
  24. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  25. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  26. package/styled-components/cjs/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  27. package/styled-components/cjs/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  28. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +6 -4
  29. package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +15 -8
  30. package/styled-components/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  31. package/styled-components/es/examples/plasma_b2c/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  32. package/styled-components/es/examples/plasma_web/components/Combobox/ComboboxNew/Combobox.stories.tsx +2 -0
  33. package/styled-components/es/examples/plasma_web/components/Combobox/ComboboxOld/Combobox.stories.tsx +18 -3
  34. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  35. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +7 -1
  36. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  37. package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
  38. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts +6 -0
  39. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts.map +1 -1
@@ -47,6 +47,7 @@ const meta: Meta<StorySelectProps> = {
47
47
  usePortal: false,
48
48
  disabled: false,
49
49
  readOnly: false,
50
+ alwaysOpened: false,
50
51
  label: 'Label',
51
52
  placeholder: 'Placeholder',
52
53
  enumerationType: 'comma',
@@ -81,7 +82,7 @@ const getSelectItems = (slug: string, elemCount: number) =>
81
82
  }));
82
83
 
83
84
  const StorySingle = (args: StorySelectProps) => {
84
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
85
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
85
86
 
86
87
  const [value, setValue] = useState<ComboboxPrimitiveValue | undefined>('item_0');
87
88
 
@@ -104,6 +105,7 @@ const StorySingle = (args: StorySelectProps) => {
104
105
  view={view}
105
106
  disabled={disabled}
106
107
  readOnly={readOnly}
108
+ alwaysOpened={alwaysOpened}
107
109
  onChangeValue={onChangeValue}
108
110
  >
109
111
  <ComboboxItem value={undefined} text="Clear" />
@@ -129,7 +131,18 @@ export const Single: StoryObj<StorySelectProps> = {
129
131
  };
130
132
 
131
133
  const StoryMultiple = (args: StorySelectProps) => {
132
- const { usePortal, placement, label, placeholder, readOnly, disabled, enumerationType, size = 'm', view } = args;
134
+ const {
135
+ usePortal,
136
+ placement,
137
+ label,
138
+ placeholder,
139
+ readOnly,
140
+ disabled,
141
+ enumerationType,
142
+ alwaysOpened,
143
+ size = 'm',
144
+ view,
145
+ } = args;
133
146
 
134
147
  const [value, setValue] = useState<Array<ComboboxPrimitiveValue> | undefined>(['item_2', 'item_3']);
135
148
 
@@ -153,6 +166,7 @@ const StoryMultiple = (args: StorySelectProps) => {
153
166
  view={view}
154
167
  disabled={disabled}
155
168
  readOnly={readOnly}
169
+ alwaysOpened={alwaysOpened}
156
170
  onChangeValue={onChangeValue}
157
171
  >
158
172
  <ComboboxItem value={undefined} text="Clear" />
@@ -174,7 +188,7 @@ export const Multiple: StoryObj<StorySelectProps> = {
174
188
  };
175
189
 
176
190
  const StoryAddCustomItem = (args: StorySelectProps) => {
177
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
191
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
178
192
 
179
193
  const [opened, setOpened] = useState(false);
180
194
  const [items, setItems] = useState(getSelectItems('item', 1));
@@ -225,6 +239,7 @@ const StoryAddCustomItem = (args: StorySelectProps) => {
225
239
  disabled={disabled}
226
240
  readOnly={readOnly}
227
241
  opened={opened}
242
+ alwaysOpened={alwaysOpened}
228
243
  onToggle={onToggle}
229
244
  onChangeValue={onChangeValue}
230
245
  onKeyDown={onKeyDown}
@@ -73,6 +73,7 @@ const meta: Meta<StorySelectProps> = {
73
73
  variant: 'normal',
74
74
  disabled: false,
75
75
  readOnly: false,
76
+ alwaysOpened: false,
76
77
  },
77
78
  parameters: {
78
79
  controls: {
@@ -86,6 +87,7 @@ const meta: Meta<StorySelectProps> = {
86
87
  'helperText',
87
88
  'isTargetAmount',
88
89
  'closeAfterSelect',
90
+ 'alwaysOpened',
89
91
  'variant',
90
92
  'disabled',
91
93
  'readOnly',
@@ -47,6 +47,7 @@ const meta: Meta<StorySelectProps> = {
47
47
  usePortal: false,
48
48
  disabled: false,
49
49
  readOnly: false,
50
+ alwaysOpened: false,
50
51
  label: 'Label',
51
52
  placeholder: 'Placeholder',
52
53
  enumerationType: 'comma',
@@ -81,7 +82,7 @@ const getSelectItems = (slug: string, elemCount: number) =>
81
82
  }));
82
83
 
83
84
  const StorySingle = (args: StorySelectProps) => {
84
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
85
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
85
86
 
86
87
  const [value, setValue] = useState<ComboboxPrimitiveValue | undefined>('item_0');
87
88
 
@@ -104,6 +105,7 @@ const StorySingle = (args: StorySelectProps) => {
104
105
  view={view}
105
106
  disabled={disabled}
106
107
  readOnly={readOnly}
108
+ alwaysOpened={alwaysOpened}
107
109
  onChangeValue={onChangeValue}
108
110
  >
109
111
  <ComboboxItem value={undefined} text="Clear" />
@@ -129,7 +131,18 @@ export const Single: StoryObj<StorySelectProps> = {
129
131
  };
130
132
 
131
133
  const StoryMultiple = (args: StorySelectProps) => {
132
- const { usePortal, placement, label, placeholder, readOnly, disabled, enumerationType, size = 'm', view } = args;
134
+ const {
135
+ usePortal,
136
+ placement,
137
+ label,
138
+ placeholder,
139
+ readOnly,
140
+ disabled,
141
+ enumerationType,
142
+ alwaysOpened,
143
+ size = 'm',
144
+ view,
145
+ } = args;
133
146
 
134
147
  const [value, setValue] = useState<Array<ComboboxPrimitiveValue> | undefined>(['item_2', 'item_3']);
135
148
 
@@ -153,6 +166,7 @@ const StoryMultiple = (args: StorySelectProps) => {
153
166
  view={view}
154
167
  disabled={disabled}
155
168
  readOnly={readOnly}
169
+ alwaysOpened={alwaysOpened}
156
170
  onChangeValue={onChangeValue}
157
171
  >
158
172
  <ComboboxItem value={undefined} text="Clear" />
@@ -174,7 +188,7 @@ export const Multiple: StoryObj<StorySelectProps> = {
174
188
  };
175
189
 
176
190
  const StoryAddCustomItem = (args: StorySelectProps) => {
177
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
191
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
178
192
 
179
193
  const [opened, setOpened] = useState(false);
180
194
  const [items, setItems] = useState(getSelectItems('item', 1));
@@ -225,6 +239,7 @@ const StoryAddCustomItem = (args: StorySelectProps) => {
225
239
  disabled={disabled}
226
240
  readOnly={readOnly}
227
241
  opened={opened}
242
+ alwaysOpened={alwaysOpened}
228
243
  onToggle={onToggle}
229
244
  onChangeValue={onChangeValue}
230
245
  onKeyDown={onKeyDown}
@@ -1,4 +1,4 @@
1
- var _excluded = ["multiple", "value", "onChange", "isTargetAmount", "items", "placement", "label", "placeholder", "helperText", "contentLeft", "textBefore", "textAfter", "variant", "listOverflow", "listHeight", "listWidth", "portal", "renderItem", "view", "size", "labelPlacement", "readOnly", "disabled", "filter", "closeAfterSelect"];
1
+ var _excluded = ["multiple", "value", "onChange", "isTargetAmount", "items", "placement", "label", "placeholder", "helperText", "contentLeft", "textBefore", "textAfter", "variant", "listOverflow", "listHeight", "listWidth", "portal", "renderItem", "view", "size", "labelPlacement", "readOnly", "disabled", "alwaysOpened", "filter", "closeAfterSelect"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -58,6 +58,8 @@ export var comboboxRoot = function comboboxRoot(Root) {
58
58
  readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
59
59
  _props$disabled = props.disabled,
60
60
  disabled = _props$disabled === void 0 ? false : _props$disabled,
61
+ _props$alwaysOpened = props.alwaysOpened,
62
+ alwaysOpened = _props$alwaysOpened === void 0 ? false : _props$alwaysOpened,
61
63
  filter = props.filter,
62
64
  outerCloseAfterSelect = props.closeAfterSelect,
63
65
  rest = _objectWithoutProperties(props, _excluded);
@@ -107,7 +109,7 @@ export var comboboxRoot = function comboboxRoot(Root) {
107
109
  _useState6 = _slicedToArray(_useState5, 2),
108
110
  checked = _useState6[0],
109
111
  setChecked = _useState6[1];
110
- var isCurrentListOpen = Boolean(path[0]);
112
+ var isCurrentListOpen = alwaysOpened || Boolean(path[0]);
111
113
  var activeDescendantItemValue = ((_getItemByFocused = getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value) || '';
112
114
  var withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;
113
115
  var closeAfterSelect = outerCloseAfterSelect !== null && outerCloseAfterSelect !== void 0 ? outerCloseAfterSelect : !multiple;
@@ -217,7 +219,7 @@ export var comboboxRoot = function comboboxRoot(Root) {
217
219
  newValues.push(item.value);
218
220
  }
219
221
  });
220
- if (closeAfterSelect) {
222
+ if (!alwaysOpened && closeAfterSelect) {
221
223
  dispatchPath({
222
224
  type: 'reset'
223
225
  });
@@ -262,7 +264,7 @@ export var comboboxRoot = function comboboxRoot(Root) {
262
264
  updateSingleAncestors(item, checkedCopy, 'dot');
263
265
  }
264
266
  setTextValue(isCurrentChecked ? '' : item.label);
265
- if (closeAfterSelect) {
267
+ if (!alwaysOpened && closeAfterSelect) {
266
268
  dispatchPath({
267
269
  type: 'reset'
268
270
  });
@@ -1,4 +1,4 @@
1
- var _excluded = ["name", "form", "readOnly", "disabled", "label", "placeholder", "id", "children", "role", "view", "size", "frame", "usePortal", "negativeResultContent", "enumerationType", "opened", "placement", "onToggle", "onKeyDown", "filterFunction"];
1
+ var _excluded = ["name", "form", "readOnly", "disabled", "label", "placeholder", "id", "children", "role", "view", "size", "frame", "usePortal", "negativeResultContent", "enumerationType", "opened", "alwaysOpened", "placement", "onToggle", "onKeyDown", "filterFunction"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -43,6 +43,8 @@ export var comboboxRoot = function comboboxRoot(Root) {
43
43
  enumerationType = _ref$enumerationType === void 0 ? 'comma' : _ref$enumerationType,
44
44
  _ref$opened = _ref.opened,
45
45
  opened = _ref$opened === void 0 ? false : _ref$opened,
46
+ _ref$alwaysOpened = _ref.alwaysOpened,
47
+ alwaysOpened = _ref$alwaysOpened === void 0 ? false : _ref$alwaysOpened,
46
48
  _ref$placement = _ref.placement,
47
49
  placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,
48
50
  onToggle = _ref.onToggle,
@@ -73,7 +75,7 @@ export var comboboxRoot = function comboboxRoot(Root) {
73
75
  itemsRefs: itemsRefs,
74
76
  inputRef: inputRef
75
77
  };
76
- var _useState3 = useState(opened),
78
+ var _useState3 = useState(alwaysOpened || opened),
77
79
  _useState4 = _slicedToArray(_useState3, 2),
78
80
  isVisible = _useState4[0],
79
81
  setIsVisible = _useState4[1];
@@ -99,11 +101,11 @@ export var comboboxRoot = function comboboxRoot(Root) {
99
101
  if (disabled || readOnly) {
100
102
  return;
101
103
  }
102
- setIsVisible(opened);
103
- }, [opened, disabled, readOnly]);
104
+ setIsVisible(alwaysOpened || opened);
105
+ }, [opened, alwaysOpened, disabled, readOnly]);
104
106
  useEffect(function () {
105
107
  // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список
106
- if (opened) {
108
+ if (alwaysOpened || opened) {
107
109
  setFilterValue('');
108
110
  }
109
111
  }, []);
@@ -117,10 +119,10 @@ export var comboboxRoot = function comboboxRoot(Root) {
117
119
  setFilterValue('');
118
120
  }
119
121
  if (onToggle) {
120
- onToggle(openValue, event);
122
+ onToggle(alwaysOpened || openValue, event);
121
123
  return;
122
124
  }
123
- setIsVisible(openValue);
125
+ setIsVisible(alwaysOpened || openValue);
124
126
  };
125
127
  var closedWithoutChanges = useRef(true);
126
128
  var updateValue = function updateValue(item, event) {
@@ -134,7 +136,7 @@ export var comboboxRoot = function comboboxRoot(Root) {
134
136
  }
135
137
  var newSelected = getNewSelected(rest.value, newValue, 'single');
136
138
  (_rest$onChangeValue2 = rest.onChangeValue) === null || _rest$onChangeValue2 === void 0 || _rest$onChangeValue2.call(rest, newSelected);
137
- onInnerToggle === null || onInnerToggle === void 0 || onInnerToggle(false, event);
139
+ onInnerToggle === null || onInnerToggle === void 0 || onInnerToggle(alwaysOpened || false, event);
138
140
  closedWithoutChanges.current = false;
139
141
  };
140
142
  var onClickChildrenItem = function onClickChildrenItem(event) {
@@ -178,6 +180,11 @@ export var comboboxRoot = function comboboxRoot(Root) {
178
180
  onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);
179
181
  onKeyDownTarget(event);
180
182
  };
183
+ useEffect(function () {
184
+ if (alwaysOpened && rest.valueType === 'single') {
185
+ setSearch(String(value));
186
+ }
187
+ }, [value, alwaysOpened]);
181
188
  return /*#__PURE__*/React.createElement(StyledRoot, {
182
189
  ref: comboboxRef
183
190
  }, /*#__PURE__*/React.createElement(StyledNativeSelect, {
@@ -73,6 +73,7 @@ const meta: Meta<StorySelectProps> = {
73
73
  variant: 'normal',
74
74
  disabled: false,
75
75
  readOnly: false,
76
+ alwaysOpened: false,
76
77
  },
77
78
  parameters: {
78
79
  controls: {
@@ -86,6 +87,7 @@ const meta: Meta<StorySelectProps> = {
86
87
  'helperText',
87
88
  'isTargetAmount',
88
89
  'closeAfterSelect',
90
+ 'alwaysOpened',
89
91
  'variant',
90
92
  'disabled',
91
93
  'readOnly',
@@ -47,6 +47,7 @@ const meta: Meta<StorySelectProps> = {
47
47
  usePortal: false,
48
48
  disabled: false,
49
49
  readOnly: false,
50
+ alwaysOpened: false,
50
51
  label: 'Label',
51
52
  placeholder: 'Placeholder',
52
53
  enumerationType: 'comma',
@@ -81,7 +82,7 @@ const getSelectItems = (slug: string, elemCount: number) =>
81
82
  }));
82
83
 
83
84
  const StorySingle = (args: StorySelectProps) => {
84
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
85
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
85
86
 
86
87
  const [value, setValue] = useState<ComboboxPrimitiveValue | undefined>('item_0');
87
88
 
@@ -104,6 +105,7 @@ const StorySingle = (args: StorySelectProps) => {
104
105
  view={view}
105
106
  disabled={disabled}
106
107
  readOnly={readOnly}
108
+ alwaysOpened={alwaysOpened}
107
109
  onChangeValue={onChangeValue}
108
110
  >
109
111
  <ComboboxItem value={undefined} text="Clear" />
@@ -129,7 +131,18 @@ export const Single: StoryObj<StorySelectProps> = {
129
131
  };
130
132
 
131
133
  const StoryMultiple = (args: StorySelectProps) => {
132
- const { usePortal, placement, label, placeholder, readOnly, disabled, enumerationType, size = 'm', view } = args;
134
+ const {
135
+ usePortal,
136
+ placement,
137
+ label,
138
+ placeholder,
139
+ readOnly,
140
+ disabled,
141
+ enumerationType,
142
+ alwaysOpened,
143
+ size = 'm',
144
+ view,
145
+ } = args;
133
146
 
134
147
  const [value, setValue] = useState<Array<ComboboxPrimitiveValue> | undefined>(['item_2', 'item_3']);
135
148
 
@@ -153,6 +166,7 @@ const StoryMultiple = (args: StorySelectProps) => {
153
166
  view={view}
154
167
  disabled={disabled}
155
168
  readOnly={readOnly}
169
+ alwaysOpened={alwaysOpened}
156
170
  onChangeValue={onChangeValue}
157
171
  >
158
172
  <ComboboxItem value={undefined} text="Clear" />
@@ -174,7 +188,7 @@ export const Multiple: StoryObj<StorySelectProps> = {
174
188
  };
175
189
 
176
190
  const StoryAddCustomItem = (args: StorySelectProps) => {
177
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
191
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
178
192
 
179
193
  const [opened, setOpened] = useState(false);
180
194
  const [items, setItems] = useState(getSelectItems('item', 1));
@@ -225,6 +239,7 @@ const StoryAddCustomItem = (args: StorySelectProps) => {
225
239
  disabled={disabled}
226
240
  readOnly={readOnly}
227
241
  opened={opened}
242
+ alwaysOpened={alwaysOpened}
228
243
  onToggle={onToggle}
229
244
  onChangeValue={onChangeValue}
230
245
  onKeyDown={onKeyDown}
@@ -73,6 +73,7 @@ const meta: Meta<StorySelectProps> = {
73
73
  variant: 'normal',
74
74
  disabled: false,
75
75
  readOnly: false,
76
+ alwaysOpened: false,
76
77
  },
77
78
  parameters: {
78
79
  controls: {
@@ -86,6 +87,7 @@ const meta: Meta<StorySelectProps> = {
86
87
  'helperText',
87
88
  'isTargetAmount',
88
89
  'closeAfterSelect',
90
+ 'alwaysOpened',
89
91
  'variant',
90
92
  'disabled',
91
93
  'readOnly',
@@ -47,6 +47,7 @@ const meta: Meta<StorySelectProps> = {
47
47
  usePortal: false,
48
48
  disabled: false,
49
49
  readOnly: false,
50
+ alwaysOpened: false,
50
51
  label: 'Label',
51
52
  placeholder: 'Placeholder',
52
53
  enumerationType: 'comma',
@@ -81,7 +82,7 @@ const getSelectItems = (slug: string, elemCount: number) =>
81
82
  }));
82
83
 
83
84
  const StorySingle = (args: StorySelectProps) => {
84
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
85
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
85
86
 
86
87
  const [value, setValue] = useState<ComboboxPrimitiveValue | undefined>('item_0');
87
88
 
@@ -104,6 +105,7 @@ const StorySingle = (args: StorySelectProps) => {
104
105
  view={view}
105
106
  disabled={disabled}
106
107
  readOnly={readOnly}
108
+ alwaysOpened={alwaysOpened}
107
109
  onChangeValue={onChangeValue}
108
110
  >
109
111
  <ComboboxItem value={undefined} text="Clear" />
@@ -129,7 +131,18 @@ export const Single: StoryObj<StorySelectProps> = {
129
131
  };
130
132
 
131
133
  const StoryMultiple = (args: StorySelectProps) => {
132
- const { usePortal, placement, label, placeholder, readOnly, disabled, enumerationType, size = 'm', view } = args;
134
+ const {
135
+ usePortal,
136
+ placement,
137
+ label,
138
+ placeholder,
139
+ readOnly,
140
+ disabled,
141
+ enumerationType,
142
+ alwaysOpened,
143
+ size = 'm',
144
+ view,
145
+ } = args;
133
146
 
134
147
  const [value, setValue] = useState<Array<ComboboxPrimitiveValue> | undefined>(['item_2', 'item_3']);
135
148
 
@@ -153,6 +166,7 @@ const StoryMultiple = (args: StorySelectProps) => {
153
166
  view={view}
154
167
  disabled={disabled}
155
168
  readOnly={readOnly}
169
+ alwaysOpened={alwaysOpened}
156
170
  onChangeValue={onChangeValue}
157
171
  >
158
172
  <ComboboxItem value={undefined} text="Clear" />
@@ -174,7 +188,7 @@ export const Multiple: StoryObj<StorySelectProps> = {
174
188
  };
175
189
 
176
190
  const StoryAddCustomItem = (args: StorySelectProps) => {
177
- const { usePortal, placement, label, placeholder, readOnly, disabled, size = 'm', view } = args;
191
+ const { usePortal, placement, label, placeholder, readOnly, disabled, alwaysOpened, size = 'm', view } = args;
178
192
 
179
193
  const [opened, setOpened] = useState(false);
180
194
  const [items, setItems] = useState(getSelectItems('item', 1));
@@ -225,6 +239,7 @@ const StoryAddCustomItem = (args: StorySelectProps) => {
225
239
  disabled={disabled}
226
240
  readOnly={readOnly}
227
241
  opened={opened}
242
+ alwaysOpened={alwaysOpened}
228
243
  onToggle={onToggle}
229
244
  onChangeValue={onChangeValue}
230
245
  onKeyDown={onKeyDown}
@@ -23,7 +23,7 @@ import { IconArrowWrapper, StyledArrow, Ul, StyledEmptyState, base } from './Com
23
23
  import { base as base$1 } from './variations/_view/base.js';
24
24
  import { base as base$2 } from './variations/_size/base.js';
25
25
 
26
- var _excluded = ["multiple", "value", "onChange", "isTargetAmount", "items", "placement", "label", "placeholder", "helperText", "contentLeft", "textBefore", "textAfter", "variant", "listOverflow", "listHeight", "listWidth", "portal", "renderItem", "view", "size", "labelPlacement", "readOnly", "disabled", "filter", "closeAfterSelect"];
26
+ var _excluded = ["multiple", "value", "onChange", "isTargetAmount", "items", "placement", "label", "placeholder", "helperText", "contentLeft", "textBefore", "textAfter", "variant", "listOverflow", "listHeight", "listWidth", "portal", "renderItem", "view", "size", "labelPlacement", "readOnly", "disabled", "alwaysOpened", "filter", "closeAfterSelect"];
27
27
  var Context = /*#__PURE__*/createContext({});
28
28
 
29
29
  /**
@@ -59,6 +59,8 @@ var comboboxRoot = function comboboxRoot(Root) {
59
59
  readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
60
60
  _props$disabled = props.disabled,
61
61
  disabled = _props$disabled === void 0 ? false : _props$disabled,
62
+ _props$alwaysOpened = props.alwaysOpened,
63
+ alwaysOpened = _props$alwaysOpened === void 0 ? false : _props$alwaysOpened,
62
64
  filter = props.filter,
63
65
  outerCloseAfterSelect = props.closeAfterSelect,
64
66
  rest = _objectWithoutProperties(props, _excluded);
@@ -108,7 +110,7 @@ var comboboxRoot = function comboboxRoot(Root) {
108
110
  _useState6 = _slicedToArray(_useState5, 2),
109
111
  checked = _useState6[0],
110
112
  setChecked = _useState6[1];
111
- var isCurrentListOpen = Boolean(path[0]);
113
+ var isCurrentListOpen = alwaysOpened || Boolean(path[0]);
112
114
  var activeDescendantItemValue = ((_getItemByFocused = getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value) || '';
113
115
  var withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;
114
116
  var closeAfterSelect = outerCloseAfterSelect !== null && outerCloseAfterSelect !== void 0 ? outerCloseAfterSelect : !multiple;
@@ -218,7 +220,7 @@ var comboboxRoot = function comboboxRoot(Root) {
218
220
  newValues.push(item.value);
219
221
  }
220
222
  });
221
- if (closeAfterSelect) {
223
+ if (!alwaysOpened && closeAfterSelect) {
222
224
  dispatchPath({
223
225
  type: 'reset'
224
226
  });
@@ -263,7 +265,7 @@ var comboboxRoot = function comboboxRoot(Root) {
263
265
  updateSingleAncestors(item, checkedCopy, 'dot');
264
266
  }
265
267
  setTextValue(isCurrentChecked ? '' : item.label);
266
- if (closeAfterSelect) {
268
+ if (!alwaysOpened && closeAfterSelect) {
267
269
  dispatchPath({
268
270
  type: 'reset'
269
271
  });