@ozen-ui/kit 0.83.3 → 0.84.1

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.
Files changed (57) hide show
  1. package/__inner__/cjs/components/AutocompleteBase/AutocompleteBase.js +3 -1
  2. package/__inner__/cjs/components/AutocompleteBase/entities/open/index.js +1 -0
  3. package/__inner__/cjs/components/AutocompleteBase/entities/open/onOpenChange.js +2 -0
  4. package/__inner__/cjs/components/AutocompleteBase/hooks/useAutocompleteBaseDropdown/useAutocompleteBaseDropdown.js +3 -1
  5. package/__inner__/cjs/components/AutocompleteBase/hooks/useAutocompleteBaseOptions/useAutocompleteBaseOptions.js +17 -5
  6. package/__inner__/cjs/components/AutocompleteBase/hooks/useAutocompleteBaseValue/useAutocompleteBaseValue.js +19 -6
  7. package/__inner__/cjs/components/AutocompleteBase/modules/AutocompleteBaseDropdown/AutocompleteBaseDropdown.js +4 -4
  8. package/__inner__/cjs/components/AutocompleteBase/utils/index.js +2 -0
  9. package/__inner__/cjs/components/AutocompleteBase/utils/isId.js +8 -0
  10. package/__inner__/cjs/components/AutocompleteBase/utils/isInternalOption.js +13 -0
  11. package/__inner__/cjs/components/AutocompleteListCard/modules/AutocompleteListCardDropdown/AutocompleteListCardDropdown.js +5 -5
  12. package/__inner__/cjs/components/ButtonBase/index.js +1 -0
  13. package/__inner__/cjs/components/List/List.css +4 -4
  14. package/__inner__/cjs/components/Sidebar/Sidebar.css +1 -0
  15. package/__inner__/cjs/components/Sidebar/Sidebar.js +2 -4
  16. package/__inner__/cjs/components/Sidebar/modules/SidebarUser/SidebarUser.css +29 -6
  17. package/__inner__/cjs/components/Sidebar/modules/SidebarUser/SidebarUser.js +8 -5
  18. package/__inner__/cjs/components/Sidebar/modules/SidebarUserMenu/SidebarUserMenu.css +17 -11
  19. package/__inner__/cjs/components/Sidebar/modules/SidebarUserMenu/SidebarUserMenu.js +11 -7
  20. package/__inner__/cjs/components/Sidebar/modules/SidebarUserMenu/constants.js +4 -1
  21. package/__inner__/esm/components/AutocompleteBase/AutocompleteBase.js +3 -1
  22. package/__inner__/esm/components/AutocompleteBase/entities/open/index.js +1 -0
  23. package/__inner__/esm/components/AutocompleteBase/entities/open/onOpenChange.js +1 -0
  24. package/__inner__/esm/components/AutocompleteBase/hooks/useAutocompleteBaseDropdown/useAutocompleteBaseDropdown.js +3 -1
  25. package/__inner__/esm/components/AutocompleteBase/hooks/useAutocompleteBaseOptions/useAutocompleteBaseOptions.js +18 -6
  26. package/__inner__/esm/components/AutocompleteBase/hooks/useAutocompleteBaseValue/useAutocompleteBaseValue.js +19 -6
  27. package/__inner__/esm/components/AutocompleteBase/modules/AutocompleteBaseDropdown/AutocompleteBaseDropdown.js +4 -4
  28. package/__inner__/esm/components/AutocompleteBase/utils/index.js +2 -0
  29. package/__inner__/esm/components/AutocompleteBase/utils/isId.js +4 -0
  30. package/__inner__/esm/components/AutocompleteBase/utils/isInternalOption.js +9 -0
  31. package/__inner__/esm/components/AutocompleteListCard/modules/AutocompleteListCardDropdown/AutocompleteListCardDropdown.js +5 -5
  32. package/__inner__/esm/components/ButtonBase/index.js +1 -0
  33. package/__inner__/esm/components/List/List.css +4 -4
  34. package/__inner__/esm/components/Sidebar/Sidebar.css +1 -0
  35. package/__inner__/esm/components/Sidebar/Sidebar.js +2 -4
  36. package/__inner__/esm/components/Sidebar/modules/SidebarUser/SidebarUser.css +29 -6
  37. package/__inner__/esm/components/Sidebar/modules/SidebarUser/SidebarUser.js +8 -5
  38. package/__inner__/esm/components/Sidebar/modules/SidebarUserMenu/SidebarUserMenu.css +17 -11
  39. package/__inner__/esm/components/Sidebar/modules/SidebarUserMenu/SidebarUserMenu.js +13 -9
  40. package/__inner__/esm/components/Sidebar/modules/SidebarUserMenu/constants.js +3 -0
  41. package/__inner__/types/components/AutocompleteBase/entities/input/ref.d.ts +1 -1
  42. package/__inner__/types/components/AutocompleteBase/entities/open/index.d.ts +1 -0
  43. package/__inner__/types/components/AutocompleteBase/entities/open/onOpenChange.d.ts +1 -0
  44. package/__inner__/types/components/AutocompleteBase/hooks/useAutocompleteBaseDropdown/useAutocompleteBaseDropdown.d.ts +4 -3
  45. package/__inner__/types/components/AutocompleteBase/hooks/useAutocompleteBaseOptions/types.d.ts +2 -2
  46. package/__inner__/types/components/AutocompleteBase/hooks/useAutocompleteBaseOptions/useAutocompleteBaseOptions.d.ts +3 -2
  47. package/__inner__/types/components/AutocompleteBase/hooks/useAutocompleteBaseValue/types.d.ts +2 -2
  48. package/__inner__/types/components/AutocompleteBase/types.d.ts +3 -1
  49. package/__inner__/types/components/AutocompleteBase/utils/index.d.ts +2 -0
  50. package/__inner__/types/components/AutocompleteBase/utils/isId.d.ts +2 -0
  51. package/__inner__/types/components/AutocompleteBase/utils/isInternalOption.d.ts +2 -0
  52. package/__inner__/types/components/ButtonBase/index.d.ts +1 -0
  53. package/__inner__/types/components/Sidebar/modules/SidebarUser/types.d.ts +2 -0
  54. package/__inner__/types/components/Sidebar/modules/SidebarUserMenu/constants.d.ts +3 -0
  55. package/__inner__/types/components/Sidebar/modules/SidebarUserMenu/types.d.ts +6 -1
  56. package/__inner__/types/components/Sidebar/types.d.ts +2 -0
  57. package/package.json +4 -4
@@ -16,7 +16,7 @@ var AutocompleteBase = function (inProps) {
16
16
  props: inProps,
17
17
  name: 'AutocompleteBase',
18
18
  });
19
- var dropdown = props.dropdown, input = props.input, inputValueProp = props.inputValue, _a = props.multiple, multiple = _a === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_MULTIPLE : _a, valueProp = props.value, defaultValue = props.defaultValue, searchFunctionProp = props.searchFunction, optionsProp = props.options, _b = props.prepareOption, prepareOptionProp = _b === void 0 ? utils_1.autocompleteBaseDefaultPrepareOption : _b, openProp = props.open, defaultOpen = props.defaultOpen, onOpen = props.onOpen, onClose = props.onClose, _c = props.size, size = _c === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_SIZE : _c, _d = props.disabled, disabled = _d === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_DISABLED : _d, onChange = props.onChange, allowCustomValue = props.allowCustomValue, _e = props.loading, loading = _e === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_LOADING : _e, _f = props.closeOnSelect, closeOnSelect = _f === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_CLOSE_ON_SELECT : _f, _g = props.error, error = _g === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_ERROR : _g, onInputChange = props.onInputChange;
19
+ var dropdown = props.dropdown, input = props.input, inputValueProp = props.inputValue, _a = props.multiple, multiple = _a === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_MULTIPLE : _a, valueProp = props.value, defaultValue = props.defaultValue, searchFunctionProp = props.searchFunction, optionsProp = props.options, _b = props.prepareOption, prepareOptionProp = _b === void 0 ? utils_1.autocompleteBaseDefaultPrepareOption : _b, openProp = props.open, defaultOpen = props.defaultOpen, onOpen = props.onOpen, onClose = props.onClose, _c = props.size, size = _c === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_SIZE : _c, _d = props.disabled, disabled = _d === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_DISABLED : _d, onChange = props.onChange, allowCustomValue = props.allowCustomValue, _e = props.loading, loading = _e === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_LOADING : _e, _f = props.closeOnSelect, closeOnSelect = _f === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_CLOSE_ON_SELECT : _f, _g = props.error, error = _g === void 0 ? constants_1.AUTOCOMPLETE_BASE_DEFAULT_ERROR : _g, onInputChange = props.onInputChange, onOpenChange = props.onOpenChange;
20
20
  var anchorRef = (0, react_1.useRef)(null);
21
21
  var inputRef = (0, react_1.useRef)(null);
22
22
  var dropdownControl = (0, hooks_1.useAutocompleteBaseDropdown)({
@@ -24,6 +24,7 @@ var AutocompleteBase = function (inProps) {
24
24
  defaultOpen: defaultOpen,
25
25
  onOpen: onOpen,
26
26
  onClose: onClose,
27
+ onOpenChange: onOpenChange,
27
28
  });
28
29
  var searchControl = (0, hooks_1.useAutocompleteBaseSearch)(searchFunctionProp);
29
30
  var prepareOption = function (option) { return (tslib_1.__assign(tslib_1.__assign({}, prepareOptionProp(option)), { raw: option })); };
@@ -58,6 +59,7 @@ var AutocompleteBase = function (inProps) {
58
59
  filteredOptions: filteredOptions,
59
60
  valueControl: valueControl,
60
61
  multiple: multiple,
62
+ prepareOption: prepareOption,
61
63
  });
62
64
  var inputEventsControl = (0, hooks_1.useAutocompleteBaseInputEvents)({
63
65
  multiple: multiple,
@@ -3,3 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./onClose"), exports);
5
5
  tslib_1.__exportStar(require("./onOpen"), exports);
6
+ tslib_1.__exportStar(require("./onOpenChange"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,7 +4,7 @@ exports.useAutocompleteBaseDropdown = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var useControlled_1 = require("../../../../hooks/useControlled");
6
6
  var useAutocompleteBaseDropdown = function (_a) {
7
- var openProp = _a.open, defaultOpen = _a.defaultOpen, onClose = _a.onClose, onOpen = _a.onOpen;
7
+ var openProp = _a.open, defaultOpen = _a.defaultOpen, onClose = _a.onClose, onOpen = _a.onOpen, onOpenChange = _a.onOpenChange;
8
8
  var _b = tslib_1.__read((0, useControlled_1.useControlled)({
9
9
  value: openProp,
10
10
  defaultValue: defaultOpen,
@@ -15,11 +15,13 @@ var useAutocompleteBaseDropdown = function (_a) {
15
15
  var close = function () {
16
16
  setIsOpen(false);
17
17
  onClose === null || onClose === void 0 ? void 0 : onClose();
18
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);
18
19
  };
19
20
  /** Открытие */
20
21
  var open = function () {
21
22
  setIsOpen(true);
22
23
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
24
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(true);
23
25
  };
24
26
  /** Переключатель открытия и закрытия */
25
27
  var toggle = function () {
@@ -3,13 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useAutocompleteBaseOptions = void 0;
4
4
  var utils_1 = require("../../utils");
5
5
  var useAutocompleteBaseOptions = function (_a) {
6
- var options = _a.options, filteredOptions = _a.filteredOptions, valueControl = _a.valueControl, multiple = _a.multiple;
6
+ var options = _a.options, filteredOptions = _a.filteredOptions, valueControl = _a.valueControl, multiple = _a.multiple, prepareOption = _a.prepareOption;
7
7
  var isSelected = function (option) {
8
- var _a, _b, _c;
9
- if ((0, utils_1.isMultipleInternalValue)(valueControl.value, multiple)) {
10
- return ((_b = (_a = valueControl.value) === null || _a === void 0 ? void 0 : _a.some(function (selectedOption) { return selectedOption.id === option.id; })) !== null && _b !== void 0 ? _b : false);
8
+ var valueState = valueControl.value;
9
+ if (valueState === null || valueState === undefined) {
10
+ return false;
11
11
  }
12
- return ((_c = valueControl.value) === null || _c === void 0 ? void 0 : _c.id) === option.id;
12
+ var id = (function () {
13
+ if ((0, utils_1.isId)(option)) {
14
+ return option;
15
+ }
16
+ if ((0, utils_1.isInternalOption)(option)) {
17
+ return option.id;
18
+ }
19
+ return prepareOption(option).id;
20
+ })();
21
+ if ((0, utils_1.isMultipleInternalValue)(valueState, multiple)) {
22
+ return valueState.some(function (option) { return option.id === id; });
23
+ }
24
+ return valueState.id === id;
13
25
  };
14
26
  var hasOptions = (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) > 0;
15
27
  return {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useAutocompleteBaseValue = void 0;
4
4
  var tslib_1 = require("tslib");
5
+ var logger_1 = require("@ozen-ui/logger");
5
6
  var useControlled_1 = require("../../../../hooks/useControlled");
6
7
  var array_1 = require("../../../../utils/array");
7
8
  var isNotNil_1 = require("../../../../utils/isNotNil");
@@ -31,9 +32,9 @@ var useAutocompleteBaseValue = function (_a) {
31
32
  onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(event, option, params);
32
33
  };
33
34
  var setValue = function (event, optionId, paramsProp) {
34
- var _a, _b, _c, _d;
35
+ var _a, _b, _c, _d, _e;
35
36
  var source = paramsProp.source;
36
- var option = optionId === null
37
+ var option = optionId === null || (0, array_1.isArray)(optionId)
37
38
  ? null
38
39
  : options.find(function (option) { return option.id === optionId; });
39
40
  if (option === undefined) {
@@ -43,7 +44,19 @@ var useAutocompleteBaseValue = function (_a) {
43
44
  var params = tslib_1.__assign(tslib_1.__assign({}, inProps), { onChange: onChange });
44
45
  if ((0, utils_1.isMultipleProps)(params) &&
45
46
  (0, utils_1.isMultipleInternalValue)(valueState, multiple)) {
46
- if (option === null) {
47
+ if ((0, array_1.isArray)(optionId)) {
48
+ var preparedOptions_1 = [];
49
+ optionId.forEach(function (optionId) {
50
+ var option = options.find(function (option) { return option.id === optionId; });
51
+ if (!option) {
52
+ logger_1.logger.error("\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0439\u0442\u0438 option \u0434\u043B\u044F \"".concat(optionId, "\""));
53
+ return;
54
+ }
55
+ preparedOptions_1.push(option.raw);
56
+ });
57
+ (_a = params.onChange) === null || _a === void 0 ? void 0 : _a.call(params, event, preparedOptions_1, { source: source });
58
+ }
59
+ else if (option === null) {
47
60
  onChange === null || onChange === void 0 ? void 0 : onChange(event, null, { source: source });
48
61
  }
49
62
  else {
@@ -64,13 +77,13 @@ var useAutocompleteBaseValue = function (_a) {
64
77
  }
65
78
  return value_1.map(function (option) { return option.raw; });
66
79
  })();
67
- (_a = params.onChange) === null || _a === void 0 ? void 0 : _a.call(params, event, result, { source: source });
80
+ (_b = params.onChange) === null || _b === void 0 ? void 0 : _b.call(params, event, result, { source: source });
68
81
  }
69
82
  searchControl.deactivate();
70
83
  }
71
84
  else if ((0, utils_1.isSingleProps)(params)) {
72
- inputValue = (_b = option === null || option === void 0 ? void 0 : option.label) !== null && _b !== void 0 ? _b : '';
73
- (_c = params.onChange) === null || _c === void 0 ? void 0 : _c.call(params, event, (_d = option === null || option === void 0 ? void 0 : option.raw) !== null && _d !== void 0 ? _d : null, { source: source });
85
+ inputValue = (_c = option === null || option === void 0 ? void 0 : option.label) !== null && _c !== void 0 ? _c : '';
86
+ (_d = params.onChange) === null || _d === void 0 ? void 0 : _d.call(params, event, (_e = option === null || option === void 0 ? void 0 : option.raw) !== null && _e !== void 0 ? _e : null, { source: source });
74
87
  if (option) {
75
88
  searchControl.deactivate();
76
89
  }
@@ -15,7 +15,7 @@ var AutocompleteBaseContext_1 = require("../../AutocompleteBaseContext");
15
15
  var cnAutocompleteBaseDropdown = (0, classname_1.cn)('AutocompleteBaseDropdown');
16
16
  exports.AutocompleteBaseDropdown = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (_a, ref) {
17
17
  var children = _a.children, _b = _a.strategy, strategy = _b === void 0 ? 'absolute' : _b, _c = _a.offset, offset = _c === void 0 ? [0, 4] : _c, _d = _a.placement, placement = _d === void 0 ? 'bottom-start' : _d, _e = _a.as, as = _e === void 0 ? Paper_1.Paper : _e, className = _a.className, onExited = _a.onExited, popoverProps = tslib_1.__rest(_a, ["children", "strategy", "offset", "placement", "as", "className", "onExited"]);
18
- var _f = (0, AutocompleteBaseContext_1.useAutocompleteBaseContext)(), size = _f.size, dropdownControl = _f.dropdownControl, searchControl = _f.searchControl, anchorRef = _f.anchorRef, inputRef = _f.inputRef;
18
+ var _f = (0, AutocompleteBaseContext_1.useAutocompleteBaseContext)(), size = _f.size, dropdownControl = _f.dropdownControl, searchControl = _f.searchControl, anchorRef = _f.anchorRef;
19
19
  var radius = (0, getPaperSizeToFormElement_1.getPaperSizeToFormElement)(size);
20
20
  var updateStored = (0, useStoredValue_1.useStoredValue)(null);
21
21
  var resizeObserver = (0, useCreateResizeObserver_1.useCreateResizeObserver)(function () {
@@ -23,11 +23,11 @@ exports.AutocompleteBaseDropdown = (0, polymorphicComponentWithRef_1.polymorphic
23
23
  (_a = updateStored.current) === null || _a === void 0 ? void 0 : _a.call(updateStored);
24
24
  });
25
25
  (0, react_1.useEffect)(function () {
26
- var input = inputRef.current;
26
+ var input = anchorRef.current;
27
27
  if (input) {
28
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(inputRef.current);
28
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(anchorRef.current);
29
29
  }
30
- }, [inputRef]);
30
+ }, [anchorRef]);
31
31
  return (react_1.default.createElement(Popover_1.Popover, tslib_1.__assign({ offset: offset, strategy: strategy, placement: placement, setUpdate: function (update) {
32
32
  updateStored.current = update;
33
33
  }, as: as, transitionProps: { classNames: 'AutocompleteBaseDropdown-animation' }, className: cnAutocompleteBaseDropdown('', [className]), equalAnchorWidth: true, disableReturnFocus: true, disableEnforceFocus: true, onExited: function () {
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./isId"), exports);
5
+ tslib_1.__exportStar(require("./isInternalOption"), exports);
4
6
  tslib_1.__exportStar(require("./isMultiple"), exports);
5
7
  tslib_1.__exportStar(require("./isSingle"), exports);
6
8
  tslib_1.__exportStar(require("./prepareOption"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isId = void 0;
4
+ var utils_1 = require("../../../utils");
5
+ var isId = function (value) {
6
+ return (0, utils_1.isString)(value) || (0, utils_1.isNumber)(value);
7
+ };
8
+ exports.isId = isId;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isInternalOption = void 0;
4
+ var utils_1 = require("../../../utils");
5
+ var isInternalOption = function (value) {
6
+ return (0, utils_1.isPlainObject)(value) &&
7
+ Object.keys(value).length === 4 &&
8
+ 'raw' in value &&
9
+ 'disabled' in value &&
10
+ 'label' in value &&
11
+ 'id' in value;
12
+ };
13
+ exports.isInternalOption = isInternalOption;
@@ -18,7 +18,7 @@ exports.AutocompleteListCardDropdown = (0, polymorphicComponentWithRef_1.polymor
18
18
  name: 'AutocompleteListCardDropdown',
19
19
  });
20
20
  var _a = props.as, as = _a === void 0 ? constants_1.AUTOCOMPLETE_LIST_CARD_DEFAULT_DROPDOWN_TAG : _a, onClose = props.onClose, other = tslib_1.__rest(props, ["as", "onClose"]);
21
- var _b = (0, context_1.useAutocompleteListCardContext)(), inputRef = _b.inputRef, size = _b.size, dropdownControl = _b.dropdownControl, multiple = _b.multiple, valueControl = _b.valueControl, disabled = _b.disabled;
21
+ var _b = (0, context_1.useAutocompleteListCardContext)(), anchorRef = _b.anchorRef, size = _b.size, dropdownControl = _b.dropdownControl, multiple = _b.multiple, valueControl = _b.valueControl, disabled = _b.disabled;
22
22
  var children = (0, hooks_1.useAutocompleteListCardDropdownChildren)();
23
23
  var updateStored = (0, useStoredValue_1.useStoredValue)(null);
24
24
  var resizeObserver = (0, useCreateResizeObserver_1.useCreateResizeObserver)(function () {
@@ -26,12 +26,12 @@ exports.AutocompleteListCardDropdown = (0, polymorphicComponentWithRef_1.polymor
26
26
  (_a = updateStored.current) === null || _a === void 0 ? void 0 : _a.call(updateStored);
27
27
  });
28
28
  (0, react_1.useEffect)(function () {
29
- var input = inputRef.current;
29
+ var input = anchorRef.current;
30
30
  if (input) {
31
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(inputRef.current);
31
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(anchorRef.current);
32
32
  }
33
- }, [inputRef]);
34
- return (react_1.default.createElement(DataListCard_1.DataListCard, tslib_1.__assign({}, other, { ref: ref, as: as, anchorRef: inputRef, size: size, open: dropdownControl.isOpen, onClose: function () {
33
+ }, [anchorRef]);
34
+ return (react_1.default.createElement(DataListCard_1.DataListCard, tslib_1.__assign({}, other, { ref: ref, as: as, anchorRef: anchorRef, size: size, open: dropdownControl.isOpen, onClose: function () {
35
35
  onClose === null || onClose === void 0 ? void 0 : onClose();
36
36
  dropdownControl.close();
37
37
  }, setUpdate: function (update) {
@@ -2,3 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./ButtonBase"), exports);
5
+ tslib_1.__exportStar(require("./constants"), exports);
@@ -46,8 +46,8 @@
46
46
  --list-item-avatar-min-width: 24px;
47
47
  --list-item-padding: 4px 8px;
48
48
  --list-item-children-margin-right: 8px;
49
- --list-pipka-height: 40px;
50
- --list-pipka-width: 4px;
49
+ --list-pipka-height: 32px;
50
+ --list-pipka-width: 2px;
51
51
  --list-item-border-radius: var(--border-radius-m);
52
52
  }
53
53
 
@@ -58,8 +58,8 @@
58
58
  --list-item-avatar-min-width: 32px;
59
59
  --list-item-padding: 6px 12px;
60
60
  --list-item-children-margin-right: 12px;
61
- --list-pipka-height: 40px;
62
- --list-pipka-width: 4px;
61
+ --list-pipka-height: 32px;
62
+ --list-pipka-width: 2px;
63
63
  --list-item-border-radius: var(--border-radius-l);
64
64
  }
65
65
 
@@ -36,6 +36,7 @@
36
36
  z-index: 1;
37
37
  }
38
38
 
39
+ .Sidebar-SizerWrapper_forceShow .Sidebar-Sizer,
39
40
  .Sidebar-SizerWrapper:hover .Sidebar-Sizer,
40
41
  .Sidebar-SizerWrapper:focus-within .Sidebar-Sizer {
41
42
  opacity: 1;
@@ -27,7 +27,7 @@ exports.Sidebar = (0, utils_1.polymorphicComponentWithRef)(function (inProps, re
27
27
  name: 'Sidebar',
28
28
  props: inProps,
29
29
  });
30
- var children = props.children, className = props.className, _b = props.as, Tag = _b === void 0 ? constants_1.SIDEBAR_DEFAULT_TAG : _b, _c = props.variant, variant = _c === void 0 ? constants_1.SIDEBAR_DEFAULT_VARIANT : _c, _d = props.rounded, rounded = _d === void 0 ? constants_1.SIDEBAR_DEFAULT_ROUNDED : _d, _e = props.size, size = _e === void 0 ? constants_1.SIDEBAR_DEFAULT_SIZE : _e, _f = props.color, color = _f === void 0 ? constants_1.SIDEBAR_DEFAULT_COLOR : _f, sizer = props.sizer, sizerWrapperProps = props.sizerWrapperProps, style = props.style, other = tslib_1.__rest(props, ["children", "className", "as", "variant", "rounded", "size", "color", "sizer", "sizerWrapperProps", "style"]);
30
+ var children = props.children, className = props.className, _b = props.as, Tag = _b === void 0 ? constants_1.SIDEBAR_DEFAULT_TAG : _b, _c = props.variant, variant = _c === void 0 ? constants_1.SIDEBAR_DEFAULT_VARIANT : _c, _d = props.rounded, rounded = _d === void 0 ? constants_1.SIDEBAR_DEFAULT_ROUNDED : _d, _e = props.size, size = _e === void 0 ? constants_1.SIDEBAR_DEFAULT_SIZE : _e, _f = props.color, color = _f === void 0 ? constants_1.SIDEBAR_DEFAULT_COLOR : _f, sizer = props.sizer, sizerWrapperProps = props.sizerWrapperProps, style = props.style, forceShowSizer = props.forceShowSizer, other = tslib_1.__rest(props, ["children", "className", "as", "variant", "rounded", "size", "color", "sizer", "sizerWrapperProps", "style", "forceShowSizer"]);
31
31
  var memoizedContextValue = (0, react_1.useMemo)(function () { return ({ variant: variant, size: size, color: color }); }, [variant, size, color]);
32
32
  var width = constants_1.SIDEBAR_WIDTH_BY_VARIANT[size][variant];
33
33
  return (react_1.default.createElement(SidebarContext_1.SidebarContext.Provider, { value: memoizedContextValue },
@@ -35,8 +35,6 @@ exports.Sidebar = (0, utils_1.polymorphicComponentWithRef)(function (inProps, re
35
35
  _a[constants_1.SIDEBAR_CSS_VARIABLE.WIDTH] = "".concat(width, "px"),
36
36
  _a))), className: (0, exports.cnSidebar)({ variant: variant, rounded: rounded, size: size, color: color }, [className]) }),
37
37
  children,
38
- sizer && (react_1.default.createElement("div", tslib_1.__assign({}, sizerWrapperProps, { className: (0, exports.cnSidebar)('SizerWrapper', [
39
- sizerWrapperProps === null || sizerWrapperProps === void 0 ? void 0 : sizerWrapperProps.className,
40
- ]) }),
38
+ sizer && (react_1.default.createElement("div", tslib_1.__assign({}, sizerWrapperProps, { className: (0, exports.cnSidebar)('SizerWrapper', { forceShow: forceShowSizer }, [sizerWrapperProps === null || sizerWrapperProps === void 0 ? void 0 : sizerWrapperProps.className]) }),
41
39
  react_1.default.createElement("div", { className: (0, exports.cnSidebar)('Sizer') }, sizer))))));
42
40
  });
@@ -1,5 +1,7 @@
1
1
  .SidebarUser {
2
2
  --sidebar-collapsible-item-gap: var(--spacing-2xs);
3
+ inline-size: 100%;
4
+ box-sizing: border-box;
3
5
  }
4
6
 
5
7
  .SidebarUser-Indicator {
@@ -8,17 +10,38 @@
8
10
 
9
11
  .SidebarUser-Name {
10
12
  color: var(--sidebar-content-primary-color);
13
+ white-space: nowrap;
14
+ overflow: hidden;
15
+ text-overflow: ellipsis;
16
+ }
17
+
18
+ .SidebarUser-Fixed {
19
+ display: flex;
20
+ align-items: center;
11
21
  }
12
22
 
13
23
  .SidebarUser-Content {
14
24
  display: flex;
15
- flex-direction: column;
16
- justify-content: center;
17
- flex-shrink: 0;
25
+ overflow: hidden;
26
+ justify-content: space-between;
27
+ align-items: center;
28
+ flex: 1;
18
29
  white-space: nowrap;
30
+ gap: var(--spacing-xs)
19
31
  }
20
32
 
21
- .SidebarUser-Content_hasStatus {
22
- display: flex;
23
- flex-direction: column;
33
+ .SidebarUser-Info {
34
+ flex: 1;
35
+ overflow: hidden;
36
+ }
37
+
38
+ .SidebarUser-After {
39
+ flex-shrink: 0;
40
+ transition: var(--transition-slow) opacity;
41
+ opacity: 1;
42
+ }
43
+
44
+ .SidebarCollapsibleItem_collapsed .SidebarUser-After {
45
+ opacity: 0;
46
+ transition-duration: 0ms;
24
47
  }
@@ -6,6 +6,7 @@ var react_1 = tslib_1.__importDefault(require("react"));
6
6
  var useThemeProps_1 = require("../../../../hooks/useThemeProps");
7
7
  var utils_1 = require("../../../../utils");
8
8
  var Avatar_1 = require("../../../Avatar");
9
+ var Stack_1 = require("../../../Stack");
9
10
  var Typography_1 = require("../../../Typography");
10
11
  var SidebarContext_1 = require("../../SidebarContext");
11
12
  var SidebarCollapsibleItem_1 = require("../SidebarCollapsibleItem");
@@ -17,17 +18,19 @@ exports.SidebarUser = (0, utils_1.polymorphicComponentWithRef)(function (inProps
17
18
  props: inProps,
18
19
  name: 'SidebarUser',
19
20
  });
20
- var _b = props.as, as = _b === void 0 ? constants_1.SIDEBAR_USER_DEFAULT_TAG : _b, className = props.className, avatarProps = props.avatarProps, name = props.name, online = props.online, status = props.status, other = tslib_1.__rest(props, ["as", "className", "avatarProps", "name", "online", "status"]);
21
+ var _b = props.as, as = _b === void 0 ? constants_1.SIDEBAR_USER_DEFAULT_TAG : _b, className = props.className, avatarProps = props.avatarProps, name = props.name, online = props.online, status = props.status, after = props.after, other = tslib_1.__rest(props, ["as", "className", "avatarProps", "name", "online", "status", "after"]);
21
22
  var _c = (0, SidebarContext_1.useSidebarContext)(), variant = _c.variant, size = _c.size;
22
- var hasStatus = !!status;
23
23
  var isCollapsed = variant !== 'full';
24
24
  return (react_1.default.createElement(SidebarCollapsibleItem_1.SidebarCollapsibleItem, tslib_1.__assign({}, other, { ref: ref, as: as, className: (0, exports.cnSidebarUser)('', [className]), fixed: react_1.default.createElement(Avatar_1.Avatar, tslib_1.__assign({}, avatarProps, { online: (0, utils_1.isFunction)(online) ? online({ collapsed: isCollapsed }) : online, name: (_a = avatarProps === null || avatarProps === void 0 ? void 0 : avatarProps.name) !== null && _a !== void 0 ? _a : name, size: constants_1.SIDEBAR_USER_SIZE_TO_AVATAR[size], indicatorProps: { className: (0, exports.cnSidebarUser)('Indicator') }, className: (0, exports.cnSidebarUser)('Avatar', [avatarProps === null || avatarProps === void 0 ? void 0 : avatarProps.className]), colorScheme: {
25
25
  text: 'content-primary',
26
26
  background: 'background-tertiary',
27
27
  } })), collapsed: isCollapsed, classNames: {
28
- content: (0, exports.cnSidebarUser)('Content', { hasStatus: hasStatus }),
28
+ content: (0, exports.cnSidebarUser)('Content'),
29
+ fixed: (0, exports.cnSidebarUser)('Fixed'),
29
30
  } }),
30
- react_1.default.createElement(Typography_1.Typography, { variant: "text-s", as: "span", className: (0, exports.cnSidebarUser)('Name') }, name),
31
- status));
31
+ react_1.default.createElement(Stack_1.Stack, { direction: "column", className: (0, exports.cnSidebarUser)('Info') },
32
+ react_1.default.createElement(Typography_1.Typography, { variant: "text-s", as: "span", className: (0, exports.cnSidebarUser)('Name') }, name),
33
+ status),
34
+ after && (react_1.default.createElement(Stack_1.Stack, { display: "block", align: "center", justify: "center", className: (0, exports.cnSidebarUser)('After') }, after))));
32
35
  });
33
36
  exports.SidebarUser.displayName = 'SidebarUser';
@@ -1,34 +1,40 @@
1
- /* stylelint-disable */
2
1
  .SidebarUserMenu-Button_color_main.ButtonNext {
3
2
  --button-font-color: var(--color-content-primary);
4
3
  --button-font-color-hover: var(--color-content-primary);
5
4
  --button-font-color-active: var(--color-content-primary);
6
5
  --button-font-color-focus: var(--color-content-primary);
7
6
  }
8
- .SidebarUserMenu-Button_color_accent.ButtonNext {
7
+ .SidebarUserMenu-Button_color_accent.ButtonNext {
9
8
  --button-font-color: var(--color-content-primary-inverse);
10
9
  --button-font-color-hover: var(--color-content-primary-inverse);
11
10
  --button-font-color-active: var(--color-content-primary-inverse);
12
11
  --button-font-color-focus: var(--color-content-primary-inverse);
13
12
  }
14
- .SidebarUserMenu-Chevron {
13
+ .SidebarUserMenu-Chevron {
15
14
  transform: rotate(0deg);
16
15
  transition: var(--transition-default) transform;
16
+ flex-shrink: 0;
17
17
  }
18
- .SidebarUserMenu-Button.ButtonNext {
18
+ .SidebarUserMenu-Button.ButtonNext {
19
19
  inline-size: -moz-fit-content;
20
20
  inline-size: fit-content;
21
+ max-inline-size: 100%;
21
22
  justify-content: flex-start;
22
23
  }
23
- .SidebarUserMenu-Button .ButtonNext-Content {
24
+ .SidebarUserMenu-Button .ButtonNext-Content {
24
25
  flex-grow: initial;
25
26
  gap: var(--spacing-3xs);
26
27
  }
27
- .SidebarUserMenu-Button .ButtonNext-Label {
28
- font: var(--typography-text-2xs_1-font);
29
- letter-spacing: var(--typography-text-2xs_1-letter_spacing, 0);
30
- text-transform: var(--typography-text-2xs_1-text_transform, none);
31
- }
32
- .SidebarUserMenu-Button_open .SidebarUserMenu-Chevron {
28
+ .SidebarUserMenu-Button_manyLines .SidebarUserMenu-Label {
29
+ white-space: normal;
30
+ }
31
+ .SidebarUserMenu-Button_open .SidebarUserMenu-Chevron {
33
32
  transform: rotate(180deg);
34
33
  }
34
+ .SidebarUserMenu-Label {
35
+ display: -webkit-box;
36
+ -webkit-box-orient: block-axis;
37
+ -webkit-line-clamp: var(--sidebar-user-menu-ellipsis);
38
+ overflow: hidden;
39
+ text-align: start;
40
+ }
@@ -10,35 +10,39 @@ var useThemeProps_1 = require("../../../../hooks/useThemeProps");
10
10
  var utils_1 = require("../../../../utils");
11
11
  var ButtonNext_1 = require("../../../ButtonNext");
12
12
  var Menu_1 = require("../../../Menu");
13
+ var Typography_1 = require("../../../Typography");
13
14
  var SidebarContext_1 = require("../../SidebarContext");
14
15
  var constants_1 = require("./constants");
15
16
  exports.cnSidebarUserMenu = (0, utils_1.cn)('SidebarUserMenu');
16
17
  exports.SidebarUserMenu = (0, utils_1.polymorphicComponentWithRef)(function (inProps, ref) {
18
+ var _a;
17
19
  var props = (0, useThemeProps_1.useThemeProps)({
18
20
  props: inProps,
19
21
  name: 'SidebarUserMenu',
20
22
  });
21
- var _a = props.as, as = _a === void 0 ? constants_1.SIDEBAR_USER_MENU_DEFAULT_TAG : _a, className = props.className, children = props.children, label = props.label, open = props.open, onOpenChange = props.onOpenChange, menuProps = props.menuProps, onClick = props.onClick, other = tslib_1.__rest(props, ["as", "className", "children", "label", "open", "onOpenChange", "menuProps", "onClick"]);
23
+ var _b = props.as, as = _b === void 0 ? constants_1.SIDEBAR_USER_MENU_DEFAULT_TAG : _b, className = props.className, children = props.children, label = props.label, _c = props.labelVariant, labelVariant = _c === void 0 ? constants_1.SIDEBAR_USER_MENU_DEFAULT_LABEL_VARIANT : _c, open = props.open, onOpenChange = props.onOpenChange, menuProps = props.menuProps, onClick = props.onClick, _d = props.maxLines, maxLines = _d === void 0 ? constants_1.SIDEBAR_USER_MENU_DEFAULT_MAX_LINES : _d, other = tslib_1.__rest(props, ["as", "className", "children", "label", "labelVariant", "open", "onOpenChange", "menuProps", "onClick", "maxLines"]);
22
24
  var color = (0, SidebarContext_1.useSidebarContext)().color;
23
25
  var buttonRef = (0, react_1.useRef)(null);
24
- var _b = tslib_1.__read((0, useControlled_1.useControlled)({
26
+ var _e = tslib_1.__read((0, useControlled_1.useControlled)({
25
27
  name: 'SidebarUserMenu',
26
28
  value: open,
27
29
  defaultValue: false,
28
30
  state: 'isOpen',
29
- }), 2), isOpen = _b[0], setIsOpenState = _b[1];
31
+ }), 2), isOpen = _e[0], setIsOpenState = _e[1];
30
32
  var setIsOpen = function (isOpen) {
31
33
  setIsOpenState(isOpen);
32
34
  onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange({ open: isOpen });
33
35
  };
36
+ var isManyLines = maxLines > 1;
34
37
  return (react_1.default.createElement(react_1.default.Fragment, null,
35
38
  react_1.default.createElement(ButtonNext_1.Button, tslib_1.__assign({}, other, { as: as, ref: (0, useMultiRef_1.useMultiRef)([ref, buttonRef]), variant: "function", onClick: function (event) {
36
39
  setIsOpen(!isOpen);
37
40
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
38
- }, className: (0, exports.cnSidebarUserMenu)('Button', { color: color, open: isOpen }, [
39
- className,
40
- ]), size: "2xs", iconRight: react_1.default.createElement(icons_1.ChevronDownSmallIcon, { className: (0, exports.cnSidebarUserMenu)('Chevron') }) }), label),
41
- react_1.default.createElement(Menu_1.Menu, tslib_1.__assign({ placement: "right-end" }, menuProps, { size: "xs", anchorRef: buttonRef, open: isOpen, className: (0, exports.cnSidebarUserMenu)('Menu', [menuProps === null || menuProps === void 0 ? void 0 : menuProps.className]), onClose: function () {
41
+ }, style: (0, utils_1.generateCSSVariables)({
42
+ 'sidebar-user-menu-ellipsis': maxLines.toString(),
43
+ }), className: (0, exports.cnSidebarUserMenu)('Button', { color: color, open: isOpen, manyLines: isManyLines }, [className]), size: "2xs", iconRight: react_1.default.createElement(icons_1.ChevronDownSmallIcon, { className: (0, exports.cnSidebarUserMenu)('Chevron') }) }),
44
+ react_1.default.createElement(Typography_1.Typography, { variant: labelVariant, className: (0, exports.cnSidebarUserMenu)('Label'), color: "inherit", as: "span" }, label)),
45
+ react_1.default.createElement(Menu_1.Menu, tslib_1.__assign({ placement: "right-end" }, menuProps, { size: (_a = menuProps === null || menuProps === void 0 ? void 0 : menuProps.size) !== null && _a !== void 0 ? _a : constants_1.SIDEBAR_USER_MENU_DEFAULT_MENU_SIZE, anchorRef: buttonRef, open: isOpen, className: (0, exports.cnSidebarUserMenu)('Menu', [menuProps === null || menuProps === void 0 ? void 0 : menuProps.className]), onClose: function () {
42
46
  var _a;
43
47
  setIsOpen(false);
44
48
  (_a = menuProps === null || menuProps === void 0 ? void 0 : menuProps.onClose) === null || _a === void 0 ? void 0 : _a.call(menuProps);
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SIDEBAR_USER_MENU_DEFAULT_TAG = void 0;
3
+ exports.SIDEBAR_USER_MENU_DEFAULT_MENU_SIZE = exports.SIDEBAR_USER_MENU_DEFAULT_LABEL_VARIANT = exports.SIDEBAR_USER_MENU_DEFAULT_MAX_LINES = exports.SIDEBAR_USER_MENU_DEFAULT_TAG = void 0;
4
4
  var ButtonNext_1 = require("../../../ButtonNext");
5
5
  exports.SIDEBAR_USER_MENU_DEFAULT_TAG = ButtonNext_1.BUTTON_DEFAULT_TAG;
6
+ exports.SIDEBAR_USER_MENU_DEFAULT_MAX_LINES = 1;
7
+ exports.SIDEBAR_USER_MENU_DEFAULT_LABEL_VARIANT = 'text-2xs_1';
8
+ exports.SIDEBAR_USER_MENU_DEFAULT_MENU_SIZE = 'xs';
@@ -13,7 +13,7 @@ export var AutocompleteBase = function (inProps) {
13
13
  props: inProps,
14
14
  name: 'AutocompleteBase',
15
15
  });
16
- var dropdown = props.dropdown, input = props.input, inputValueProp = props.inputValue, _a = props.multiple, multiple = _a === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_MULTIPLE : _a, valueProp = props.value, defaultValue = props.defaultValue, searchFunctionProp = props.searchFunction, optionsProp = props.options, _b = props.prepareOption, prepareOptionProp = _b === void 0 ? autocompleteBaseDefaultPrepareOption : _b, openProp = props.open, defaultOpen = props.defaultOpen, onOpen = props.onOpen, onClose = props.onClose, _c = props.size, size = _c === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_SIZE : _c, _d = props.disabled, disabled = _d === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_DISABLED : _d, onChange = props.onChange, allowCustomValue = props.allowCustomValue, _e = props.loading, loading = _e === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_LOADING : _e, _f = props.closeOnSelect, closeOnSelect = _f === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_CLOSE_ON_SELECT : _f, _g = props.error, error = _g === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_ERROR : _g, onInputChange = props.onInputChange;
16
+ var dropdown = props.dropdown, input = props.input, inputValueProp = props.inputValue, _a = props.multiple, multiple = _a === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_MULTIPLE : _a, valueProp = props.value, defaultValue = props.defaultValue, searchFunctionProp = props.searchFunction, optionsProp = props.options, _b = props.prepareOption, prepareOptionProp = _b === void 0 ? autocompleteBaseDefaultPrepareOption : _b, openProp = props.open, defaultOpen = props.defaultOpen, onOpen = props.onOpen, onClose = props.onClose, _c = props.size, size = _c === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_SIZE : _c, _d = props.disabled, disabled = _d === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_DISABLED : _d, onChange = props.onChange, allowCustomValue = props.allowCustomValue, _e = props.loading, loading = _e === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_LOADING : _e, _f = props.closeOnSelect, closeOnSelect = _f === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_CLOSE_ON_SELECT : _f, _g = props.error, error = _g === void 0 ? AUTOCOMPLETE_BASE_DEFAULT_ERROR : _g, onInputChange = props.onInputChange, onOpenChange = props.onOpenChange;
17
17
  var anchorRef = useRef(null);
18
18
  var inputRef = useRef(null);
19
19
  var dropdownControl = useAutocompleteBaseDropdown({
@@ -21,6 +21,7 @@ export var AutocompleteBase = function (inProps) {
21
21
  defaultOpen: defaultOpen,
22
22
  onOpen: onOpen,
23
23
  onClose: onClose,
24
+ onOpenChange: onOpenChange,
24
25
  });
25
26
  var searchControl = useAutocompleteBaseSearch(searchFunctionProp);
26
27
  var prepareOption = function (option) { return (__assign(__assign({}, prepareOptionProp(option)), { raw: option })); };
@@ -55,6 +56,7 @@ export var AutocompleteBase = function (inProps) {
55
56
  filteredOptions: filteredOptions,
56
57
  valueControl: valueControl,
57
58
  multiple: multiple,
59
+ prepareOption: prepareOption,
58
60
  });
59
61
  var inputEventsControl = useAutocompleteBaseInputEvents({
60
62
  multiple: multiple,
@@ -1,2 +1,3 @@
1
1
  export * from './onClose';
2
2
  export * from './onOpen';
3
+ export * from './onOpenChange';
@@ -1,7 +1,7 @@
1
1
  import { __read } from "tslib";
2
2
  import { useControlled } from '../../../../hooks/useControlled';
3
3
  export var useAutocompleteBaseDropdown = function (_a) {
4
- var openProp = _a.open, defaultOpen = _a.defaultOpen, onClose = _a.onClose, onOpen = _a.onOpen;
4
+ var openProp = _a.open, defaultOpen = _a.defaultOpen, onClose = _a.onClose, onOpen = _a.onOpen, onOpenChange = _a.onOpenChange;
5
5
  var _b = __read(useControlled({
6
6
  value: openProp,
7
7
  defaultValue: defaultOpen,
@@ -12,11 +12,13 @@ export var useAutocompleteBaseDropdown = function (_a) {
12
12
  var close = function () {
13
13
  setIsOpen(false);
14
14
  onClose === null || onClose === void 0 ? void 0 : onClose();
15
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);
15
16
  };
16
17
  /** Открытие */
17
18
  var open = function () {
18
19
  setIsOpen(true);
19
20
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
21
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(true);
20
22
  };
21
23
  /** Переключатель открытия и закрытия */
22
24
  var toggle = function () {
@@ -1,12 +1,24 @@
1
- import { isMultipleInternalValue } from '../../utils';
1
+ import { isId, isInternalOption, isMultipleInternalValue } from '../../utils';
2
2
  export var useAutocompleteBaseOptions = function (_a) {
3
- var options = _a.options, filteredOptions = _a.filteredOptions, valueControl = _a.valueControl, multiple = _a.multiple;
3
+ var options = _a.options, filteredOptions = _a.filteredOptions, valueControl = _a.valueControl, multiple = _a.multiple, prepareOption = _a.prepareOption;
4
4
  var isSelected = function (option) {
5
- var _a, _b, _c;
6
- if (isMultipleInternalValue(valueControl.value, multiple)) {
7
- return ((_b = (_a = valueControl.value) === null || _a === void 0 ? void 0 : _a.some(function (selectedOption) { return selectedOption.id === option.id; })) !== null && _b !== void 0 ? _b : false);
5
+ var valueState = valueControl.value;
6
+ if (valueState === null || valueState === undefined) {
7
+ return false;
8
8
  }
9
- return ((_c = valueControl.value) === null || _c === void 0 ? void 0 : _c.id) === option.id;
9
+ var id = (function () {
10
+ if (isId(option)) {
11
+ return option;
12
+ }
13
+ if (isInternalOption(option)) {
14
+ return option.id;
15
+ }
16
+ return prepareOption(option).id;
17
+ })();
18
+ if (isMultipleInternalValue(valueState, multiple)) {
19
+ return valueState.some(function (option) { return option.id === id; });
20
+ }
21
+ return valueState.id === id;
10
22
  };
11
23
  var hasOptions = (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) > 0;
12
24
  return {