@alfalab/core-components-select 17.2.0 → 17.3.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.
Files changed (180) hide show
  1. package/components/arrow/Component.js +1 -1
  2. package/components/arrow/index.css +4 -4
  3. package/components/base-checkmark/Component.js +1 -1
  4. package/components/base-checkmark/index.css +5 -5
  5. package/components/base-option/Component.js +1 -1
  6. package/components/base-option/index.css +14 -14
  7. package/components/base-select/Component.js +44 -40
  8. package/components/base-select/index.css +12 -12
  9. package/components/base-select/mobile.css +13 -13
  10. package/components/checkmark/Component.js +1 -1
  11. package/components/checkmark/index.css +11 -11
  12. package/components/checkmark-mobile/Component.js +1 -1
  13. package/components/checkmark-mobile/index.css +7 -7
  14. package/components/field/Component.js +2 -2
  15. package/components/field/index.css +13 -13
  16. package/components/footer/Component.js +3 -3
  17. package/components/footer/index.css +6 -6
  18. package/components/optgroup/Component.js +4 -3
  19. package/components/optgroup/index.css +7 -7
  20. package/components/option/Component.js +4 -3
  21. package/components/option/index.css +20 -20
  22. package/components/options-list/Component.js +3 -3
  23. package/components/options-list/index.css +10 -10
  24. package/components/search/Component.js +1 -1
  25. package/components/search/index.css +3 -3
  26. package/components/virtual-options-list/Component.js +3 -3
  27. package/components/virtual-options-list/index.css +16 -16
  28. package/consts.d.ts +11 -1
  29. package/consts.js +11 -0
  30. package/cssm/components/arrow/index.module.css +1 -1
  31. package/cssm/components/base-checkmark/index.module.css +1 -1
  32. package/cssm/components/base-option/index.module.css +1 -1
  33. package/cssm/components/base-select/Component.js +42 -38
  34. package/cssm/components/base-select/index.module.css +1 -1
  35. package/cssm/components/base-select/mobile.module.css +1 -1
  36. package/cssm/components/checkmark/index.module.css +3 -3
  37. package/cssm/components/checkmark-mobile/index.module.css +1 -1
  38. package/cssm/components/field/Component.js +1 -1
  39. package/cssm/components/field/index.module.css +1 -1
  40. package/cssm/components/footer/Component.js +2 -2
  41. package/cssm/components/footer/index.module.css +1 -1
  42. package/cssm/components/optgroup/Component.js +3 -2
  43. package/cssm/components/optgroup/index.module.css +3 -3
  44. package/cssm/components/option/Component.js +3 -2
  45. package/cssm/components/option/index.module.css +8 -8
  46. package/cssm/components/options-list/Component.js +2 -2
  47. package/cssm/components/options-list/index.module.css +3 -3
  48. package/cssm/components/search/index.module.css +1 -1
  49. package/cssm/components/virtual-options-list/Component.js +2 -2
  50. package/cssm/components/virtual-options-list/index.module.css +3 -3
  51. package/cssm/consts.d.ts +11 -1
  52. package/cssm/consts.js +11 -0
  53. package/cssm/mobile/Component.mobile.js +1 -1
  54. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +2 -2
  55. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +1 -1
  56. package/cssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +1 -1
  57. package/cssm/typings.d.ts +10 -5
  58. package/esm/components/arrow/Component.js +1 -1
  59. package/esm/components/arrow/index.css +4 -4
  60. package/esm/components/base-checkmark/Component.js +1 -1
  61. package/esm/components/base-checkmark/index.css +5 -5
  62. package/esm/components/base-option/Component.js +1 -1
  63. package/esm/components/base-option/index.css +14 -14
  64. package/esm/components/base-select/Component.js +46 -42
  65. package/esm/components/base-select/index.css +12 -12
  66. package/esm/components/base-select/mobile.css +13 -13
  67. package/esm/components/checkmark/Component.js +1 -1
  68. package/esm/components/checkmark/index.css +11 -11
  69. package/esm/components/checkmark-mobile/Component.js +1 -1
  70. package/esm/components/checkmark-mobile/index.css +7 -7
  71. package/esm/components/field/Component.js +2 -2
  72. package/esm/components/field/index.css +13 -13
  73. package/esm/components/footer/Component.js +3 -3
  74. package/esm/components/footer/index.css +6 -6
  75. package/esm/components/optgroup/Component.js +4 -3
  76. package/esm/components/optgroup/index.css +7 -7
  77. package/esm/components/option/Component.js +4 -3
  78. package/esm/components/option/index.css +20 -20
  79. package/esm/components/options-list/Component.js +4 -4
  80. package/esm/components/options-list/index.css +10 -10
  81. package/esm/components/search/Component.js +1 -1
  82. package/esm/components/search/index.css +3 -3
  83. package/esm/components/virtual-options-list/Component.js +4 -4
  84. package/esm/components/virtual-options-list/index.css +16 -16
  85. package/esm/consts.d.ts +11 -1
  86. package/esm/consts.js +11 -1
  87. package/esm/mobile/Component.mobile.js +2 -2
  88. package/esm/presets/index.js +1 -1
  89. package/esm/presets/useSelectWithApply/hook.js +1 -1
  90. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  91. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +3 -3
  92. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +4 -4
  93. package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  94. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +4 -4
  95. package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  96. package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  97. package/esm/presets/useSelectWithLoading/hook.js +1 -1
  98. package/esm/presets/useSelectWithLoading/index.css +2 -2
  99. package/esm/shared/index.js +1 -1
  100. package/esm/typings.d.ts +10 -5
  101. package/mobile/Component.mobile.js +2 -2
  102. package/modern/components/arrow/Component.js +1 -1
  103. package/modern/components/arrow/index.css +4 -4
  104. package/modern/components/base-checkmark/Component.js +1 -1
  105. package/modern/components/base-checkmark/index.css +5 -5
  106. package/modern/components/base-option/Component.js +1 -1
  107. package/modern/components/base-option/index.css +14 -14
  108. package/modern/components/base-select/Component.js +44 -39
  109. package/modern/components/base-select/index.css +12 -12
  110. package/modern/components/base-select/mobile.css +13 -13
  111. package/modern/components/checkmark/Component.js +1 -1
  112. package/modern/components/checkmark/index.css +11 -11
  113. package/modern/components/checkmark-mobile/Component.js +1 -1
  114. package/modern/components/checkmark-mobile/index.css +7 -7
  115. package/modern/components/field/Component.js +2 -2
  116. package/modern/components/field/index.css +13 -13
  117. package/modern/components/footer/Component.js +3 -3
  118. package/modern/components/footer/index.css +6 -6
  119. package/modern/components/optgroup/Component.js +4 -3
  120. package/modern/components/optgroup/index.css +7 -7
  121. package/modern/components/option/Component.js +4 -3
  122. package/modern/components/option/index.css +20 -20
  123. package/modern/components/options-list/Component.js +4 -4
  124. package/modern/components/options-list/index.css +10 -10
  125. package/modern/components/search/Component.js +1 -1
  126. package/modern/components/search/index.css +3 -3
  127. package/modern/components/virtual-options-list/Component.js +4 -4
  128. package/modern/components/virtual-options-list/index.css +16 -16
  129. package/modern/consts.d.ts +11 -1
  130. package/modern/consts.js +11 -1
  131. package/modern/mobile/Component.mobile.js +2 -2
  132. package/modern/presets/index.js +1 -1
  133. package/modern/presets/useSelectWithApply/hook.js +1 -1
  134. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  135. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +3 -3
  136. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +4 -4
  137. package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  138. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +4 -4
  139. package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  140. package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  141. package/modern/presets/useSelectWithLoading/hook.js +1 -1
  142. package/modern/presets/useSelectWithLoading/index.css +2 -2
  143. package/modern/shared/index.js +1 -1
  144. package/modern/typings.d.ts +10 -5
  145. package/package.json +8 -8
  146. package/presets/index.js +1 -1
  147. package/presets/useSelectWithApply/hook.js +1 -1
  148. package/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  149. package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +3 -3
  150. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +4 -4
  151. package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  152. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +4 -4
  153. package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  154. package/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  155. package/presets/useSelectWithLoading/hook.js +1 -1
  156. package/presets/useSelectWithLoading/index.css +2 -2
  157. package/shared/index.js +1 -1
  158. package/src/components/base-select/Component.tsx +47 -38
  159. package/src/components/checkmark/index.module.css +1 -1
  160. package/src/components/field/Component.tsx +1 -1
  161. package/src/components/footer/Component.tsx +2 -2
  162. package/src/components/optgroup/Component.tsx +3 -2
  163. package/src/components/optgroup/index.module.css +2 -2
  164. package/src/components/option/Component.tsx +3 -2
  165. package/src/components/option/index.module.css +6 -6
  166. package/src/components/options-list/Component.tsx +3 -3
  167. package/src/components/options-list/index.module.css +2 -2
  168. package/src/components/virtual-options-list/Component.tsx +7 -3
  169. package/src/components/virtual-options-list/index.module.css +2 -2
  170. package/src/consts.ts +11 -0
  171. package/src/mobile/Component.mobile.tsx +2 -2
  172. package/src/presets/useSelectWithApply/options-list-with-apply/footer/Component.tsx +2 -2
  173. package/src/typings.ts +10 -5
  174. package/typings.d.ts +10 -5
  175. /package/esm/{hook-b4192713.d.ts → hook-e8eb700a.d.ts} +0 -0
  176. /package/esm/{hook-b4192713.js → hook-e8eb700a.js} +0 -0
  177. /package/{hook-5269e0eb.d.ts → hook-6aa923ff.d.ts} +0 -0
  178. /package/{hook-5269e0eb.js → hook-6aa923ff.js} +0 -0
  179. /package/modern/{hook-328d58fb.d.ts → hook-a738ac9d.d.ts} +0 -0
  180. /package/modern/{hook-328d58fb.js → hook-a738ac9d.js} +0 -0
@@ -12,12 +12,12 @@ import { Option } from '../components/option/Component.js';
12
12
  import { OptionsList } from '../components/options-list/Component.js';
13
13
  import { Search } from '../components/search/Component.js';
14
14
  import { VirtualOptionsList } from '../components/virtual-options-list/Component.js';
15
- import { u as useSelectWithApply } from '../hook-b4192713.js';
15
+ import { u as useSelectWithApply } from '../hook-e8eb700a.js';
16
16
  import { Header } from '../presets/useSelectWithApply/options-list-with-apply/header/Component.js';
17
17
 
18
18
  var VIRTUAL_OPTIONS_LIST_THRESHOLD = 30;
19
19
  var SelectMobile = forwardRef(function (_a, ref) {
20
- var _b = _a.autocomplete, autocomplete = _b === void 0 ? false : _b, _c = _a.multiple, multiple = _c === void 0 ? false : _c, _d = _a.allowUnselect, allowUnselect = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, _f = _a.closeOnSelect, closeOnSelect = _f === void 0 ? !multiple : _f, _g = _a.circularNavigation, circularNavigation = _g === void 0 ? false : _g, _h = _a.defaultOpen, defaultOpen = _h === void 0 ? false : _h, openProp = _a.open, _j = _a.size, size = _j === void 0 ? 'm' : _j, _k = _a.optionsSize, optionsSize = _k === void 0 ? 'm' : _k, _l = _a.fieldProps, fieldProps = _l === void 0 ? {} : _l, _m = _a.optionProps, optionProps = _m === void 0 ? {} : _m, _o = _a.optionsListProps, optionsListProps = _o === void 0 ? {} : _o, _p = _a.Arrow, Arrow$1 = _p === void 0 ? Arrow : _p, _q = _a.Field, Field$1 = _q === void 0 ? Field : _q, _r = _a.Optgroup, Optgroup$1 = _r === void 0 ? Optgroup : _r, _s = _a.Option, Option$1 = _s === void 0 ? Option : _s, _t = _a.Search, Search$1 = _t === void 0 ? Search : _t, selected = _a.selected, _u = _a.isBottomSheet, isBottomSheet = _u === void 0 ? true : _u, options = _a.options, _v = _a.OptionsList, OptionsList$1 = _v === void 0 ? options.length > VIRTUAL_OPTIONS_LIST_THRESHOLD
20
+ var _b = _a.autocomplete, autocomplete = _b === void 0 ? false : _b, _c = _a.multiple, multiple = _c === void 0 ? false : _c, _d = _a.allowUnselect, allowUnselect = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, _f = _a.closeOnSelect, closeOnSelect = _f === void 0 ? !multiple : _f, _g = _a.circularNavigation, circularNavigation = _g === void 0 ? false : _g, _h = _a.defaultOpen, defaultOpen = _h === void 0 ? false : _h, openProp = _a.open, _j = _a.size, size = _j === void 0 ? 56 : _j, _k = _a.optionsSize, optionsSize = _k === void 0 ? 56 : _k, _l = _a.fieldProps, fieldProps = _l === void 0 ? {} : _l, _m = _a.optionProps, optionProps = _m === void 0 ? {} : _m, _o = _a.optionsListProps, optionsListProps = _o === void 0 ? {} : _o, _p = _a.Arrow, Arrow$1 = _p === void 0 ? Arrow : _p, _q = _a.Field, Field$1 = _q === void 0 ? Field : _q, _r = _a.Optgroup, Optgroup$1 = _r === void 0 ? Optgroup : _r, _s = _a.Option, Option$1 = _s === void 0 ? Option : _s, _t = _a.Search, Search$1 = _t === void 0 ? Search : _t, selected = _a.selected, _u = _a.isBottomSheet, isBottomSheet = _u === void 0 ? true : _u, options = _a.options, _v = _a.OptionsList, OptionsList$1 = _v === void 0 ? options.length > VIRTUAL_OPTIONS_LIST_THRESHOLD
21
21
  ? VirtualOptionsList
22
22
  : OptionsList : _v, onChange = _a.onChange, _w = _a.showClear, showClear = _w === void 0 ? true : _w, showSelectAll = _a.showSelectAll, showHeaderWithSelectAll = _a.showHeaderWithSelectAll, _x = _a.useWithApplyHook, useWithApplyHook = _x === void 0 ? multiple : _x, showSearch = _a.showSearch, searchProps = _a.searchProps, restProps = __rest(_a, ["autocomplete", "multiple", "allowUnselect", "disabled", "closeOnSelect", "circularNavigation", "defaultOpen", "open", "size", "optionsSize", "fieldProps", "optionProps", "optionsListProps", "Arrow", "Field", "Optgroup", "Option", "Search", "selected", "isBottomSheet", "options", "OptionsList", "onChange", "showClear", "showSelectAll", "showHeaderWithSelectAll", "useWithApplyHook", "showSearch", "searchProps"]);
23
23
  var typedRestBottomSheetProps = restProps;
@@ -1,3 +1,3 @@
1
1
  export { useSelectWithLoading } from './useSelectWithLoading/hook.js';
2
2
  export { useLazyLoading } from './useLazyLoading/hook.js';
3
- export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-b4192713.js';
3
+ export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-e8eb700a.js';
@@ -1,4 +1,4 @@
1
1
  import 'tslib';
2
2
  import 'react';
3
3
  import '../../utils.js';
4
- export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../../hook-b4192713.js';
4
+ export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../../hook-e8eb700a.js';
@@ -2,6 +2,6 @@ import 'tslib';
2
2
  import 'react';
3
3
  import '../../../components/options-list/Component.js';
4
4
  import '../../../consts.js';
5
- export { O as OptionsListWithApply } from '../../../hook-b4192713.js';
5
+ export { O as OptionsListWithApply } from '../../../hook-e8eb700a.js';
6
6
  import './footer/Component.js';
7
7
  import './header/Component.js';
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { ButtonDesktop } from '@alfalab/core-components-button/esm/desktop';
3
3
  import { getDataTestId } from '@alfalab/core-components-shared/esm';
4
4
 
5
- var styles = {"footer":"select__footer_1lhq3"};
5
+ var styles = {"footer":"select__footer_1bjm6"};
6
6
  require('./index.css')
7
7
 
8
8
  var Footer = function (_a) {
@@ -10,8 +10,8 @@ var Footer = function (_a) {
10
10
  return (React.createElement("div", {
11
11
  // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
12
12
  tabIndex: 0, className: styles.footer },
13
- React.createElement(ButtonDesktop, { size: 'xxs', view: 'primary', onClick: handleApply, dataTestId: getDataTestId(dataTestId, 'apply') }, "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C"),
14
- showClear && selectedDraft.length > 0 && (React.createElement(ButtonDesktop, { size: 'xxs', view: 'secondary', onClick: handleClear, dataTestId: getDataTestId(dataTestId, 'clear') }, "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C"))));
13
+ React.createElement(ButtonDesktop, { size: 32, view: 'primary', onClick: handleApply, dataTestId: getDataTestId(dataTestId, 'apply') }, "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C"),
14
+ showClear && selectedDraft.length > 0 && (React.createElement(ButtonDesktop, { size: 32, view: 'secondary', onClick: handleClear, dataTestId: getDataTestId(dataTestId, 'clear') }, "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C"))));
15
15
  };
16
16
 
17
17
  export { Footer };
@@ -1,5 +1,5 @@
1
- /* hash: k1tdv */
2
- :root {
1
+ /* hash: vrnud */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-bg-primary: #fff; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -17,10 +17,10 @@
17
17
  --gap-s: 12px;
18
18
  } :root {
19
19
  } :root {
20
- } .select__footer_1lhq3 {
20
+ } .select__footer_1bjm6 {
21
21
  background-color: var(--color-light-bg-primary);
22
22
  padding: var(--gap-s);
23
23
  outline: none
24
- } .select__footer_1lhq3 > * + * {
24
+ } .select__footer_1bjm6 > * + * {
25
25
  margin-left: var(--gap-xs);
26
26
  }
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import cn from 'classnames';
3
3
  import { Checkbox } from '@alfalab/core-components-checkbox/esm';
4
4
 
5
- var styles = {"desktop":"select__desktop_boj2v","mobile":"select__mobile_boj2v"};
5
+ var styles = {"desktop":"select__desktop_1g9s3","mobile":"select__mobile_1g9s3"};
6
6
  require('./index.css')
7
7
 
8
8
  var Header = function (_a) {
@@ -1,5 +1,5 @@
1
- /* hash: 12dlh */
2
- :root {
1
+ /* hash: 1m5co */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root {
@@ -16,8 +16,8 @@
16
16
  --gap-s: 12px;
17
17
  } :root {
18
18
  } :root {
19
- } .select__desktop_boj2v {
19
+ } .select__desktop_1g9s3 {
20
20
  padding: var(--gap-s);
21
- } .select__mobile_boj2v {
21
+ } .select__mobile_1g9s3 {
22
22
  padding: var(--gap-s) var(--gap-xs);
23
23
  }
@@ -1 +1 @@
1
- export * from "../../../hook-b4192713";
1
+ export * from "../../../hook-e8eb700a";
@@ -1 +1 @@
1
- export { O as OptionsListWithApply } from '../../../hook-b4192713.js';
1
+ export { O as OptionsListWithApply } from '../../../hook-e8eb700a.js';
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { Skeleton } from '@alfalab/core-components-skeleton/esm';
4
4
  import { Option } from '../../components/option/Component.js';
5
5
 
6
- var styles = {"skeleton":"select__skeleton_afn0z"};
6
+ var styles = {"skeleton":"select__skeleton_y8y4e"};
7
7
  require('./index.css')
8
8
 
9
9
  function useSelectWithLoading(_a) {
@@ -1,5 +1,5 @@
1
- /* hash: 39qai */
2
- .select__skeleton_afn0z {
1
+ /* hash: 6xg3z */
2
+ .select__skeleton_y8y4e {
3
3
  position: absolute;
4
4
  top: 50%;
5
5
  transform: translateY(-50%);
@@ -1,6 +1,6 @@
1
1
  export { useSelectWithLoading } from '../presets/useSelectWithLoading/hook.js';
2
2
  export { useLazyLoading } from '../presets/useLazyLoading/hook.js';
3
- export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-b4192713.js';
3
+ export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-e8eb700a.js';
4
4
  export { defaultAccessor, defaultFilterFn, getSelectTestIds, isGroup, isOptionShape, joinOptions, lastIndexOf, processOptions, usePrevious, useVisibleOptions } from '../utils.js';
5
5
  export { Option } from '../components/option/Component.js';
6
6
  export { BaseOption } from '../components/base-option/Component.js';
package/esm/typings.d.ts CHANGED
@@ -107,12 +107,14 @@ type BaseSelectProps = {
107
107
  multiple?: boolean;
108
108
  /**
109
109
  * Размер компонента
110
+ * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
110
111
  */
111
- size?: 's' | 'm' | 'l' | 'xl';
112
+ size?: 's' | 'm' | 'l' | 'xl' | 48 | 56 | 64 | 72;
112
113
  /**
113
114
  * Размер пунктов меню
115
+ * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
114
116
  */
115
- optionsSize?: 's' | 'm' | 'l' | 'xl';
117
+ optionsSize?: 's' | 'm' | 'l' | 'xl' | 48 | 56 | 64 | 72;
116
118
  /**
117
119
  * Растягивает компонент на ширину контейнера
118
120
  */
@@ -377,8 +379,9 @@ type OptionsListProps = {
377
379
  scrollbarClassName?: string;
378
380
  /**
379
381
  * Размер компонента
382
+ * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
380
383
  */
381
- size?: 's' | 'm' | 'l' | 'xl';
384
+ size?: 's' | 'm' | 'l' | 'xl' | 48 | 56 | 64 | 72;
382
385
  /**
383
386
  * Компонент пункта меню
384
387
  */
@@ -480,8 +483,9 @@ type OptgroupProps = {
480
483
  className?: string;
481
484
  /**
482
485
  * Размер компонента
486
+ * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
483
487
  */
484
- size?: 's' | 'm' | 'l' | 'xl';
488
+ size?: 's' | 'm' | 'l' | 'xl' | 48 | 56 | 64 | 72;
485
489
  /**
486
490
  * Заголовок группы
487
491
  */
@@ -498,8 +502,9 @@ type OptionProps = {
498
502
  className?: string;
499
503
  /**
500
504
  * Размер компонента
505
+ * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
501
506
  */
502
- size?: 's' | 'm' | 'l' | 'xl';
507
+ size?: 's' | 'm' | 'l' | 'xl' | 48 | 56 | 64 | 72;
503
508
  /**
504
509
  * Контент пункта меню
505
510
  */
@@ -16,7 +16,7 @@ var components_option_Component = require('../components/option/Component.js');
16
16
  var components_optionsList_Component = require('../components/options-list/Component.js');
17
17
  var components_search_Component = require('../components/search/Component.js');
18
18
  var components_virtualOptionsList_Component = require('../components/virtual-options-list/Component.js');
19
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-5269e0eb.js');
19
+ var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-6aa923ff.js');
20
20
  var presets_useSelectWithApply_optionsListWithApply_header_Component = require('../presets/useSelectWithApply/options-list-with-apply/header/Component.js');
21
21
 
22
22
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -25,7 +25,7 @@ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
25
25
 
26
26
  var VIRTUAL_OPTIONS_LIST_THRESHOLD = 30;
27
27
  var SelectMobile = React.forwardRef(function (_a, ref) {
28
- var _b = _a.autocomplete, autocomplete = _b === void 0 ? false : _b, _c = _a.multiple, multiple = _c === void 0 ? false : _c, _d = _a.allowUnselect, allowUnselect = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, _f = _a.closeOnSelect, closeOnSelect = _f === void 0 ? !multiple : _f, _g = _a.circularNavigation, circularNavigation = _g === void 0 ? false : _g, _h = _a.defaultOpen, defaultOpen = _h === void 0 ? false : _h, openProp = _a.open, _j = _a.size, size = _j === void 0 ? 'm' : _j, _k = _a.optionsSize, optionsSize = _k === void 0 ? 'm' : _k, _l = _a.fieldProps, fieldProps = _l === void 0 ? {} : _l, _m = _a.optionProps, optionProps = _m === void 0 ? {} : _m, _o = _a.optionsListProps, optionsListProps = _o === void 0 ? {} : _o, _p = _a.Arrow, Arrow = _p === void 0 ? components_arrow_Component.Arrow : _p, _q = _a.Field, Field = _q === void 0 ? components_field_Component.Field : _q, _r = _a.Optgroup, Optgroup = _r === void 0 ? components_optgroup_Component.Optgroup : _r, _s = _a.Option, Option = _s === void 0 ? components_option_Component.Option : _s, _t = _a.Search, Search = _t === void 0 ? components_search_Component.Search : _t, selected = _a.selected, _u = _a.isBottomSheet, isBottomSheet = _u === void 0 ? true : _u, options = _a.options, _v = _a.OptionsList, OptionsList = _v === void 0 ? options.length > VIRTUAL_OPTIONS_LIST_THRESHOLD
28
+ var _b = _a.autocomplete, autocomplete = _b === void 0 ? false : _b, _c = _a.multiple, multiple = _c === void 0 ? false : _c, _d = _a.allowUnselect, allowUnselect = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, _f = _a.closeOnSelect, closeOnSelect = _f === void 0 ? !multiple : _f, _g = _a.circularNavigation, circularNavigation = _g === void 0 ? false : _g, _h = _a.defaultOpen, defaultOpen = _h === void 0 ? false : _h, openProp = _a.open, _j = _a.size, size = _j === void 0 ? 56 : _j, _k = _a.optionsSize, optionsSize = _k === void 0 ? 56 : _k, _l = _a.fieldProps, fieldProps = _l === void 0 ? {} : _l, _m = _a.optionProps, optionProps = _m === void 0 ? {} : _m, _o = _a.optionsListProps, optionsListProps = _o === void 0 ? {} : _o, _p = _a.Arrow, Arrow = _p === void 0 ? components_arrow_Component.Arrow : _p, _q = _a.Field, Field = _q === void 0 ? components_field_Component.Field : _q, _r = _a.Optgroup, Optgroup = _r === void 0 ? components_optgroup_Component.Optgroup : _r, _s = _a.Option, Option = _s === void 0 ? components_option_Component.Option : _s, _t = _a.Search, Search = _t === void 0 ? components_search_Component.Search : _t, selected = _a.selected, _u = _a.isBottomSheet, isBottomSheet = _u === void 0 ? true : _u, options = _a.options, _v = _a.OptionsList, OptionsList = _v === void 0 ? options.length > VIRTUAL_OPTIONS_LIST_THRESHOLD
29
29
  ? components_virtualOptionsList_Component.VirtualOptionsList
30
30
  : components_optionsList_Component.OptionsList : _v, onChange = _a.onChange, _w = _a.showClear, showClear = _w === void 0 ? true : _w, showSelectAll = _a.showSelectAll, showHeaderWithSelectAll = _a.showHeaderWithSelectAll, _x = _a.useWithApplyHook, useWithApplyHook = _x === void 0 ? multiple : _x, showSearch = _a.showSearch, searchProps = _a.searchProps, restProps = tslib.__rest(_a, ["autocomplete", "multiple", "allowUnselect", "disabled", "closeOnSelect", "circularNavigation", "defaultOpen", "open", "size", "optionsSize", "fieldProps", "optionProps", "optionsListProps", "Arrow", "Field", "Optgroup", "Option", "Search", "selected", "isBottomSheet", "options", "OptionsList", "onChange", "showClear", "showSelectAll", "showHeaderWithSelectAll", "useWithApplyHook", "showSearch", "searchProps"]);
31
31
  var typedRestBottomSheetProps = restProps;
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import cn from 'classnames';
3
3
  import { ChevronDownMIcon } from '@alfalab/icons-glyph/ChevronDownMIcon';
4
4
 
5
- const styles = {"arrow":"select__arrow_1lz5y","open":"select__open_1lz5y"};
5
+ const styles = {"arrow":"select__arrow_1on7d","open":"select__open_1on7d"};
6
6
  require('./index.css')
7
7
 
8
8
  const Arrow = ({ open, className }) => (React.createElement(ChevronDownMIcon, { className: cn(styles.arrow, className, { [styles.open]: open }) }));
@@ -1,5 +1,5 @@
1
- /* hash: 1wo3y */
2
- :root {
1
+ /* hash: 1appp */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -26,13 +26,13 @@
26
26
  /* checkmark */
27
27
 
28
28
  /* optgroup */
29
- } .select__arrow_1lz5y {
29
+ } .select__arrow_1on7d {
30
30
  display: block;
31
31
  width: 24px;
32
32
  height: 24px;
33
33
  color: var(--select-arrow-color);
34
34
 
35
35
  transition: transform 0.15s ease-in-out, opacity 0.2s ease;
36
- } .select__open_1lz5y {
36
+ } .select__open_1on7d {
37
37
  transform: var(--arrow-transform);
38
38
  }
@@ -3,7 +3,7 @@ import cn from 'classnames';
3
3
  import { Checkbox } from '@alfalab/core-components-checkbox/modern';
4
4
  import { CheckmarkMIcon } from '@alfalab/icons-glyph/CheckmarkMIcon';
5
5
 
6
- const styles = {"checkmark":"select__checkmark_1tkf0","single":"select__single_1tkf0","selected":"select__selected_1tkf0"};
6
+ const styles = {"checkmark":"select__checkmark_1lqnh","single":"select__single_1lqnh","selected":"select__selected_1lqnh"};
7
7
  require('./index.css')
8
8
 
9
9
  const BaseCheckmark = ({ selected, disabled = false, className, multiple, }) => {
@@ -1,5 +1,5 @@
1
- /* hash: c2v41 */
2
- :root {
1
+ /* hash: 7oo6u */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root {
@@ -23,14 +23,14 @@
23
23
  /* checkmark */
24
24
 
25
25
  /* optgroup */
26
- } .select__checkmark_1tkf0 {
26
+ } .select__checkmark_1lqnh {
27
27
  flex-shrink: 0;
28
28
  box-sizing: border-box;
29
- } .select__single_1tkf0 {
29
+ } .select__single_1lqnh {
30
30
  display: flex;
31
31
  align-items: center;
32
32
  justify-content: center;
33
33
  opacity: 0
34
- } .select__single_1tkf0.select__selected_1tkf0 {
34
+ } .select__single_1lqnh.select__selected_1lqnh {
35
35
  opacity: 1;
36
36
  }
@@ -2,7 +2,7 @@ import React, { isValidElement } from 'react';
2
2
  import cn from 'classnames';
3
3
  import { BaseCheckmark } from '../base-checkmark/Component.js';
4
4
 
5
- const styles = {"option":"select__option_1d9qs","disabled":"select__disabled_1d9qs","checkmarkBefore":"select__checkmarkBefore_1d9qs","mobile":"select__mobile_1d9qs","checkmarkAfter":"select__checkmarkAfter_1d9qs","textContent":"select__textContent_1d9qs","selected":"select__selected_1d9qs","highlighted":"select__highlighted_1d9qs","content":"select__content_1d9qs"};
5
+ const styles = {"option":"select__option_13bmv","disabled":"select__disabled_13bmv","checkmarkBefore":"select__checkmarkBefore_13bmv","mobile":"select__mobile_13bmv","checkmarkAfter":"select__checkmarkAfter_13bmv","textContent":"select__textContent_13bmv","selected":"select__selected_13bmv","highlighted":"select__highlighted_13bmv","content":"select__content_13bmv"};
6
6
  require('./index.css')
7
7
 
8
8
  const BaseOption = ({ className, option, children, selected, highlighted, disabled, multiple, Checkmark = BaseCheckmark, checkmarkPosition = multiple ? 'before' : 'after', innerProps, dataTestId, mobile = false, }) => {
@@ -1,5 +1,5 @@
1
- /* hash: btu2k */
2
- :root {
1
+ /* hash: njoj2 */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-modal-bg-primary: #fff;
5
5
  --color-light-text-primary: #0e0e0e;
@@ -43,7 +43,7 @@
43
43
  /* checkmark */
44
44
 
45
45
  /* optgroup */
46
- } .select__option_1d9qs {
46
+ } .select__option_13bmv {
47
47
  font-size: 16px;
48
48
  line-height: 20px;
49
49
  font-weight: 400;
@@ -60,32 +60,32 @@
60
60
  position: relative;
61
61
  cursor: pointer;
62
62
  min-height: var(--size-s-height)
63
- } .select__option_1d9qs:not(.select__disabled_1d9qs):active {
63
+ } .select__option_13bmv:not(.select__disabled_13bmv):active {
64
64
  background: var(--select-option-active-background);
65
65
  color: var(--select-option-active-color);
66
- } .select__option_1d9qs.select__checkmarkBefore_1d9qs {
66
+ } .select__option_13bmv.select__checkmarkBefore_13bmv {
67
67
  padding: 0 0 0 var(--gap-s)
68
- } .select__option_1d9qs.select__checkmarkBefore_1d9qs.select__mobile_1d9qs {
68
+ } .select__option_13bmv.select__checkmarkBefore_13bmv.select__mobile_13bmv {
69
69
  padding-left: var(--gap-m);
70
- } .select__option_1d9qs.select__checkmarkAfter_1d9qs {
70
+ } .select__option_13bmv.select__checkmarkAfter_13bmv {
71
71
  padding: 0 var(--gap-s) 0 0
72
- } .select__option_1d9qs.select__checkmarkAfter_1d9qs.select__mobile_1d9qs {
72
+ } .select__option_13bmv.select__checkmarkAfter_13bmv.select__mobile_13bmv {
73
73
  padding-right: var(--gap-l);
74
- } .select__option_1d9qs.select__textContent_1d9qs {
74
+ } .select__option_13bmv.select__textContent_13bmv {
75
75
  padding: var(--gap-s)
76
- } .select__option_1d9qs.select__textContent_1d9qs.select__mobile_1d9qs {
76
+ } .select__option_13bmv.select__textContent_13bmv.select__mobile_13bmv {
77
77
  padding: var(--gap-m) var(--gap-l) var(--gap-m) var(--gap-m);
78
- } .select__selected_1d9qs {
78
+ } .select__selected_13bmv {
79
79
  background: var(--select-option-selected-background);
80
80
  color: var(--select-option-selected-color);
81
81
  cursor: default;
82
- } .select__highlighted_1d9qs {
82
+ } .select__highlighted_13bmv {
83
83
  background: var(--select-option-hover-background);
84
84
  color: var(--select-option-hover-color);
85
- } .select__disabled_1d9qs {
85
+ } .select__disabled_13bmv {
86
86
  cursor: var(--disabled-cursor);
87
87
  background: var(--select-option-disabled-background);
88
88
  color: var(--select-option-disabled-color);
89
- } .select__content_1d9qs {
89
+ } .select__content_13bmv {
90
90
  flex: 1;
91
91
  }
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useRef, useMemo, useCallback, useEffect } from 'react';
1
+ import React, { forwardRef, useRef, useMemo, useEffect, useCallback } from 'react';
2
2
  import mergeRefs from 'react-merge-refs';
3
3
  import { ResizeObserver } from '@juggle/resize-observer';
4
4
  import cn from 'classnames';
@@ -9,10 +9,10 @@ import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
9
9
  import { defaultAccessor, defaultFilterFn, processOptions } from '../../utils.js';
10
10
  import { NativeSelect } from '../native-select/Component.js';
11
11
 
12
- const styles = {"component":"select__component_1lmy5","popoverInner":"select__popoverInner_1lmy5","optionsListWrapper":"select__optionsListWrapper_1lmy5","optionsListBorder":"select__optionsListBorder_1lmy5","nativeSelect":"select__nativeSelect_1lmy5","block":"select__block_1lmy5","emptySearchPlaceholder":"select__emptySearchPlaceholder_1lmy5","search":"select__search_1lmy5"};
12
+ const styles = {"component":"select__component_1hdfx","popoverInner":"select__popoverInner_1hdfx","optionsListWrapper":"select__optionsListWrapper_1hdfx","optionsListBorder":"select__optionsListBorder_1hdfx","nativeSelect":"select__nativeSelect_1hdfx","block":"select__block_1hdfx","emptySearchPlaceholder":"select__emptySearchPlaceholder_1hdfx","search":"select__search_1hdfx"};
13
13
  require('./index.css')
14
14
 
15
- const mobileStyles = {"sheet":"select__sheet_1o9ho","sheetContent":"select__sheetContent_1o9ho","modalContent":"select__modalContent_1o9ho","sheetContainer":"select__sheetContainer_1o9ho","optionsListWrapper":"select__optionsListWrapper_1o9ho","optionsList":"select__optionsList_1o9ho","scrollbar":"select__scrollbar_1o9ho","search":"select__search_1o9ho","option":"select__option_1o9ho","optionGroup":"select__optionGroup_1o9ho"};
15
+ const mobileStyles = {"sheet":"select__sheet_jo8og","sheetContent":"select__sheetContent_jo8og","modalContent":"select__modalContent_jo8og","sheetContainer":"select__sheetContainer_jo8og","optionsListWrapper":"select__optionsListWrapper_jo8og","optionsList":"select__optionsList_jo8og","scrollbar":"select__scrollbar_jo8og","search":"select__search_jo8og","option":"select__option_jo8og","optionGroup":"select__optionGroup_jo8og"};
16
16
  require('./mobile.css')
17
17
 
18
18
  /* eslint-disable no-nested-ternary */
@@ -21,13 +21,12 @@ const isItemDisabled = (option) => Boolean(option?.disabled);
21
21
  const BaseSelect = forwardRef(
22
22
  // TODO: 😭
23
23
  // eslint-disable-next-line complexity
24
- ({ dataTestId, className, fieldClassName, optionGroupClassName, optionsListClassName, optionClassName, popperClassName, options, autocomplete = false, multiple = false, allowUnselect = false, disabled = false, closeOnSelect = !multiple, circularNavigation = false, nativeSelect = false, defaultOpen = false, open: openProp, popoverPosition = 'bottom-start', preventFlip = true, optionsListWidth = 'content', name, id, selected, size = 's', optionsSize = size, error, hint, block, label, labelView, placeholder, fieldProps = {}, optionsListProps = {}, optionProps = {}, searchProps = {}, showSearch = false, valueRenderer, onChange, onOpen, onFocus, onBlur, onScroll, Arrow, Field = () => null, OptionsList = () => null, Optgroup = () => null, Option = () => null, Search = () => null, updatePopover, zIndexPopover, showEmptyOptionsList = false, visibleOptions, view, isBottomSheet = true, footer, swipeable, modalProps, modalFooterProps, modalHeaderProps, bottomSheetProps, Popover, ModalMobile, BottomSheet, }, ref) => {
24
+ ({ dataTestId, className, fieldClassName, optionGroupClassName, optionsListClassName, optionClassName, popperClassName, options, autocomplete = false, multiple = false, allowUnselect = false, disabled = false, closeOnSelect = !multiple, circularNavigation = false, nativeSelect = false, defaultOpen = false, open: openProp, popoverPosition = 'bottom-start', preventFlip = true, optionsListWidth = 'content', name, id, selected, size = 48, optionsSize = size, error, hint, block, label, labelView, placeholder, fieldProps = {}, optionsListProps = {}, optionProps = {}, searchProps = {}, showSearch = false, valueRenderer, onChange, onOpen, onFocus, onBlur, onScroll, Arrow, Field = () => null, OptionsList = () => null, Optgroup = () => null, Option = () => null, Search = () => null, updatePopover, zIndexPopover, showEmptyOptionsList = false, visibleOptions, view, isBottomSheet = true, footer, swipeable, modalProps, modalFooterProps, modalHeaderProps, bottomSheetProps, Popover, ModalMobile, BottomSheet, }, ref) => {
25
25
  const rootRef = useRef(null);
26
26
  const fieldRef = useRef(null);
27
27
  const listRef = useRef(null);
28
28
  const initiatorRef = useRef(null);
29
29
  const searchRef = useRef(null);
30
- const alreadyClickedRef = useRef(false);
31
30
  const scrollableContainerRef = useRef(null);
32
31
  const onOpenRef = useRef(onOpen);
33
32
  const [searchState, setSearchState] = React.useState('');
@@ -88,6 +87,24 @@ const BaseSelect = forwardRef(
88
87
  isItemDisabled,
89
88
  defaultHighlightedIndex: selectedItems.length === 0 ? -1 : undefined,
90
89
  scrollIntoView,
90
+ onSelectedItemChange: (changes) => {
91
+ const selectedItem = changes.selectedItem || initiatorRef.current;
92
+ if (selectedItem && !selectedItem.disabled) {
93
+ const alreadySelected = selectedItems.includes(selectedItem);
94
+ const allowRemove = allowUnselect || (multiple && selectedItems.length > 1);
95
+ if (alreadySelected && allowRemove) {
96
+ removeSelectedItem(selectedItem);
97
+ }
98
+ if (!alreadySelected) {
99
+ if (multiple) {
100
+ addSelectedItem(selectedItem);
101
+ }
102
+ else {
103
+ setSelectedItems([selectedItem]);
104
+ }
105
+ }
106
+ }
107
+ },
91
108
  onIsOpenChange: (changes) => {
92
109
  if (onOpenRef.current) {
93
110
  /**
@@ -114,16 +131,9 @@ const BaseSelect = forwardRef(
114
131
  }
115
132
  }
116
133
  },
117
- // eslint-disable-next-line complexity
118
134
  stateReducer: (state, actionAndChanges) => {
119
135
  const { type, changes } = actionAndChanges;
120
- const { selectedItem } = changes;
121
136
  switch (type) {
122
- case useCombobox.stateChangeTypes.InputBlur:
123
- if (view === 'mobile') {
124
- return state;
125
- }
126
- return changes;
127
137
  case useCombobox.stateChangeTypes.InputKeyDownArrowDown:
128
138
  if (!circularNavigation && state.highlightedIndex === options.length - 1) {
129
139
  return { ...changes, highlightedIndex: state.highlightedIndex };
@@ -135,45 +145,40 @@ const BaseSelect = forwardRef(
135
145
  }
136
146
  return changes;
137
147
  case useCombobox.stateChangeTypes.InputKeyDownEnter:
138
- case useCombobox.stateChangeTypes.ItemClick:
148
+ case useCombobox.stateChangeTypes.ItemClick: {
149
+ const { selectedItem } = changes;
139
150
  initiatorRef.current = selectedItem || null;
140
- if (selectedItem && !selectedItem.disabled && !alreadyClickedRef.current) {
141
- // TODO!!! Проблема downshift + React 18. ItemClick срабатывает дважды. См https://github.com/downshift-js/downshift/issues/1384
142
- if (view === 'mobile' && React.version.indexOf('18') === 0) {
143
- alreadyClickedRef.current = true;
144
- setTimeout(() => {
145
- alreadyClickedRef.current = false;
146
- });
147
- }
148
- const alreadySelected = selectedItems.includes(selectedItem);
149
- const allowRemove = allowUnselect || (multiple && selectedItems.length > 1);
150
- if (alreadySelected && allowRemove) {
151
- removeSelectedItem(selectedItem);
152
- }
153
- if (!alreadySelected) {
154
- if (multiple) {
155
- addSelectedItem(selectedItem);
156
- }
157
- else {
158
- setSelectedItems([selectedItem]);
159
- }
160
- }
161
- }
162
151
  return {
163
152
  ...changes,
153
+ selectedItem: state.selectedItem === selectedItem ? null : selectedItem,
164
154
  isOpen: !closeOnSelect || (view === 'mobile' && multiple),
165
155
  // при closeOnSelect === false - сохраняем подсвеченный индекс
166
156
  highlightedIndex: state.isOpen && !closeOnSelect
167
157
  ? state.highlightedIndex
168
158
  : changes.highlightedIndex,
169
159
  };
160
+ }
170
161
  default:
171
162
  return changes;
172
163
  }
173
164
  },
174
165
  });
175
- const menuProps = getMenuProps({ ref: listRef }, { suppressRefError: true });
166
+ useEffect(() => {
167
+ /*
168
+ * При изменении openProp, состояние внутри downshift в useEnhancedReducer не меняется, поэтому меняем его таким способом
169
+ * Скорее всего это исправят в будущих версиях downshift
170
+ */
171
+ if (openProp !== undefined) {
172
+ if (openProp) {
173
+ openMenu();
174
+ }
175
+ else {
176
+ closeMenu();
177
+ }
178
+ }
179
+ }, [openProp, openMenu, closeMenu]);
176
180
  const inputProps = getInputProps(getDropdownProps({ ref: mergeRefs([ref, fieldRef]) }));
181
+ const { ref: menuRef, ...menuProps } = getMenuProps({ ref: listRef }, { suppressRefError: true });
177
182
  const handleEntered = (node, isAppearing) => {
178
183
  if (showSearch)
179
184
  searchRef.current?.focus();
@@ -342,7 +347,7 @@ const BaseSelect = forwardRef(
342
347
  if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch)
343
348
  return null;
344
349
  const listProps = optionsListProps;
345
- return (React.createElement("div", { ...menuProps, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper) },
350
+ return (React.createElement("div", { ...menuProps, ref: view === 'desktop' ? menuRef : undefined, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper) },
346
351
  React.createElement(OptionsList, { ...listProps, ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn({ [mobileStyles.optionsList]: view === 'mobile' }), scrollbarClassName: cn({ [mobileStyles.scrollbar]: view === 'mobile' }), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn(optionGroupClassName, {
347
352
  [mobileStyles.optionGroup]: view === 'mobile',
348
353
  }), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll }),
@@ -356,7 +361,7 @@ const BaseSelect = forwardRef(
356
361
  };
357
362
  const renderInBottomSheet = () => {
358
363
  if (!nativeSelect && BottomSheet) {
359
- return (React.createElement(BottomSheet, { dataTestId: getDataTestId(dataTestId, 'bottom-sheet'), open: open, className: mobileStyles.sheet, contentClassName: mobileStyles.sheetContent, containerClassName: mobileStyles.sheetContainer, title: label || placeholder, actionButton: footer, stickyHeader: true, hasCloser: true, swipeable: swipeable, initialHeight: showSearch ? 'full' : 'default', ...bottomSheetProps, scrollableContainerRef: scrollableContainerRef, onClose: () => {
364
+ return (React.createElement(BottomSheet, { dataTestId: getDataTestId(dataTestId, 'bottom-sheet'), open: open, className: mobileStyles.sheet, contentClassName: mobileStyles.sheetContent, containerClassName: mobileStyles.sheetContainer, title: label || placeholder, actionButton: footer, stickyHeader: true, hasCloser: true, swipeable: swipeable, initialHeight: showSearch ? 'full' : 'default', ...bottomSheetProps, sheetContainerRef: menuRef, scrollableContainerRef: scrollableContainerRef, onClose: () => {
360
365
  closeMenu();
361
366
  bottomSheetProps?.onClose?.();
362
367
  }, transitionProps: {
@@ -373,7 +378,7 @@ const BaseSelect = forwardRef(
373
378
  };
374
379
  const renderInModalMobile = () => {
375
380
  if (!nativeSelect && ModalMobile) {
376
- return (React.createElement(ModalMobile, { dataTestId: getDataTestId(dataTestId, 'modal'), open: open, hasCloser: true, ...modalProps, onClose: (...args) => {
381
+ return (React.createElement(ModalMobile, { dataTestId: getDataTestId(dataTestId, 'modal'), open: open, hasCloser: true, ...modalProps, componentRef: menuRef, onClose: (...args) => {
377
382
  closeMenu();
378
383
  modalProps?.onClose?.(...args);
379
384
  }, contentClassName: cn(mobileStyles.sheetContent, modalProps?.contentClassName), ref: mergeRefs([