@salutejs/plasma-new-hope 0.339.0-canary.2291.18715632452.0 → 0.339.0-canary.2292.18775879461.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 (231) hide show
  1. package/cjs/components/Calendar/hooks/useKeyNavigation.js +1 -1
  2. package/cjs/components/Calendar/hooks/useKeyNavigation.js.map +1 -1
  3. package/cjs/components/Pagination/Pagination.css +19 -0
  4. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +19 -0
  5. package/cjs/components/Select/Select.css +19 -0
  6. package/cjs/components/Select/Select.js +44 -9
  7. package/cjs/components/Select/Select.js.map +1 -1
  8. package/cjs/components/Select/Select.tokens.js +2 -0
  9. package/cjs/components/Select/Select.tokens.js.map +1 -1
  10. package/cjs/components/Select/hooks/useKeyboardNavigation.js +185 -1
  11. package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  12. package/cjs/components/Select/hooks/usePathMaps.js +7 -3
  13. package/cjs/components/Select/hooks/usePathMaps.js.map +1 -1
  14. package/cjs/components/Select/reducers/treePathReducer.js +87 -0
  15. package/cjs/components/Select/reducers/treePathReducer.js.map +1 -0
  16. package/cjs/components/Select/ui/TreeList/TreeList.css +57 -0
  17. package/cjs/components/Select/ui/TreeList/TreeList.js +96 -0
  18. package/cjs/components/Select/ui/TreeList/TreeList.js.map +1 -0
  19. package/cjs/components/Select/ui/TreeList/TreeList.styles.js +30 -0
  20. package/cjs/components/Select/ui/TreeList/TreeList.styles.js.map +1 -0
  21. package/cjs/components/Select/ui/TreeList/TreeList.styles_1t38mek.css +2 -0
  22. package/cjs/components/Select/ui/TreeList/ui/Item/Item.css +54 -0
  23. package/cjs/components/Select/ui/TreeList/ui/Item/Item.js +130 -0
  24. package/cjs/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -0
  25. package/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js +214 -0
  26. package/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js.map +1 -0
  27. package/cjs/components/Select/ui/TreeList/ui/Item/Item.styles_i0dby2.css +15 -0
  28. package/cjs/components/Table/Table.css +19 -0
  29. package/cjs/components/Table/ui/Cell/Cell.css +19 -0
  30. package/cjs/components/Table/ui/EditableCell/EditableCell.css +19 -0
  31. package/cjs/components/Table/ui/HeadCell/HeadCell.css +19 -0
  32. package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +19 -0
  33. package/cjs/components/TextArea/TextArea.js +3 -2
  34. package/cjs/components/TextArea/TextArea.js.map +1 -1
  35. package/cjs/components/TextField/TextField.js +3 -2
  36. package/cjs/components/TextField/TextField.js.map +1 -1
  37. package/cjs/components/Tree/utils/traverseTree.js +2 -23
  38. package/cjs/components/Tree/utils/traverseTree.js.map +1 -1
  39. package/cjs/index.css +19 -0
  40. package/cjs/index.js +2 -0
  41. package/cjs/index.js.map +1 -1
  42. package/cjs/utils/deepCopy.js +30 -0
  43. package/cjs/utils/deepCopy.js.map +1 -0
  44. package/cjs/utils/index.js.map +1 -1
  45. package/emotion/cjs/components/Calendar/hooks/useKeyNavigation.js +0 -1
  46. package/emotion/cjs/components/Select/Select.js +33 -6
  47. package/emotion/cjs/components/Select/Select.tokens.js +2 -0
  48. package/emotion/cjs/components/Select/hooks/useKeyboardNavigation.js +166 -0
  49. package/emotion/cjs/components/Select/hooks/usePathMaps.js +35 -3
  50. package/emotion/cjs/components/Select/reducers/index.js +1 -0
  51. package/emotion/cjs/components/Select/reducers/treePathReducer.js +98 -0
  52. package/emotion/cjs/components/Select/ui/TreeList/TreeList.js +126 -0
  53. package/emotion/cjs/components/Select/ui/TreeList/TreeList.styles.js +36 -0
  54. package/emotion/cjs/components/Select/ui/TreeList/TreeList.types.js +4 -0
  55. package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.js +150 -0
  56. package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js +186 -0
  57. package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.types.js +4 -0
  58. package/emotion/cjs/components/Select/ui/index.js +1 -0
  59. package/emotion/cjs/components/TextArea/TextArea.js +3 -3
  60. package/emotion/cjs/components/TextField/TextField.js +3 -3
  61. package/emotion/cjs/components/Tree/utils/traverseTree.js +2 -60
  62. package/emotion/cjs/examples/components/Combobox/Combobox.js +15 -0
  63. package/emotion/cjs/examples/components/Select/Select.config.js +24 -24
  64. package/emotion/cjs/utils/deepCopy.js +82 -0
  65. package/emotion/cjs/utils/index.js +4 -0
  66. package/emotion/es/components/Calendar/hooks/useKeyNavigation.js +0 -1
  67. package/emotion/es/components/Select/Select.js +35 -8
  68. package/emotion/es/components/Select/Select.tokens.js +2 -0
  69. package/emotion/es/components/Select/hooks/useKeyboardNavigation.js +166 -0
  70. package/emotion/es/components/Select/hooks/usePathMaps.js +36 -4
  71. package/emotion/es/components/Select/reducers/index.js +1 -0
  72. package/emotion/es/components/Select/reducers/treePathReducer.js +81 -0
  73. package/emotion/es/components/Select/ui/TreeList/TreeList.js +75 -0
  74. package/emotion/es/components/Select/ui/TreeList/TreeList.styles.js +13 -0
  75. package/emotion/es/components/Select/ui/TreeList/TreeList.types.js +1 -0
  76. package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.js +99 -0
  77. package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.styles.js +122 -0
  78. package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.types.js +1 -0
  79. package/emotion/es/components/Select/ui/index.js +1 -0
  80. package/emotion/es/components/TextArea/TextArea.js +3 -3
  81. package/emotion/es/components/TextField/TextField.js +3 -3
  82. package/emotion/es/components/Tree/utils/traverseTree.js +1 -59
  83. package/emotion/es/examples/components/Combobox/Combobox.js +0 -7
  84. package/emotion/es/examples/components/Select/Select.config.js +24 -24
  85. package/emotion/es/utils/deepCopy.js +72 -0
  86. package/emotion/es/utils/index.js +1 -0
  87. package/es/components/Calendar/hooks/useKeyNavigation.js +1 -1
  88. package/es/components/Calendar/hooks/useKeyNavigation.js.map +1 -1
  89. package/es/components/Pagination/Pagination.css +19 -0
  90. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +19 -0
  91. package/es/components/Select/Select.css +19 -0
  92. package/es/components/Select/Select.js +44 -9
  93. package/es/components/Select/Select.js.map +1 -1
  94. package/es/components/Select/Select.tokens.js +2 -0
  95. package/es/components/Select/Select.tokens.js.map +1 -1
  96. package/es/components/Select/hooks/useKeyboardNavigation.js +185 -1
  97. package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  98. package/es/components/Select/hooks/usePathMaps.js +7 -3
  99. package/es/components/Select/hooks/usePathMaps.js.map +1 -1
  100. package/es/components/Select/reducers/treePathReducer.js +82 -0
  101. package/es/components/Select/reducers/treePathReducer.js.map +1 -0
  102. package/es/components/Select/ui/TreeList/TreeList.css +57 -0
  103. package/es/components/Select/ui/TreeList/TreeList.js +88 -0
  104. package/es/components/Select/ui/TreeList/TreeList.js.map +1 -0
  105. package/es/components/Select/ui/TreeList/TreeList.styles.js +25 -0
  106. package/es/components/Select/ui/TreeList/TreeList.styles.js.map +1 -0
  107. package/es/components/Select/ui/TreeList/TreeList.styles_1t38mek.css +2 -0
  108. package/es/components/Select/ui/TreeList/ui/Item/Item.css +54 -0
  109. package/es/components/Select/ui/TreeList/ui/Item/Item.js +122 -0
  110. package/es/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -0
  111. package/es/components/Select/ui/TreeList/ui/Item/Item.styles.js +196 -0
  112. package/es/components/Select/ui/TreeList/ui/Item/Item.styles.js.map +1 -0
  113. package/es/components/Select/ui/TreeList/ui/Item/Item.styles_i0dby2.css +15 -0
  114. package/es/components/Table/Table.css +19 -0
  115. package/es/components/Table/ui/Cell/Cell.css +19 -0
  116. package/es/components/Table/ui/EditableCell/EditableCell.css +19 -0
  117. package/es/components/Table/ui/HeadCell/HeadCell.css +19 -0
  118. package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +19 -0
  119. package/es/components/TextArea/TextArea.js +3 -2
  120. package/es/components/TextArea/TextArea.js.map +1 -1
  121. package/es/components/TextField/TextField.js +3 -2
  122. package/es/components/TextField/TextField.js.map +1 -1
  123. package/es/components/Tree/utils/traverseTree.js +2 -23
  124. package/es/components/Tree/utils/traverseTree.js.map +1 -1
  125. package/es/index.css +19 -0
  126. package/es/index.js +1 -0
  127. package/es/index.js.map +1 -1
  128. package/es/utils/deepCopy.js +26 -0
  129. package/es/utils/deepCopy.js.map +1 -0
  130. package/es/utils/index.js.map +1 -1
  131. package/package.json +4 -4
  132. package/styled-components/cjs/components/Calendar/hooks/useKeyNavigation.js +0 -1
  133. package/styled-components/cjs/components/Select/Select.js +33 -6
  134. package/styled-components/cjs/components/Select/Select.tokens.js +2 -0
  135. package/styled-components/cjs/components/Select/hooks/useKeyboardNavigation.js +166 -0
  136. package/styled-components/cjs/components/Select/hooks/usePathMaps.js +35 -3
  137. package/styled-components/cjs/components/Select/reducers/index.js +1 -0
  138. package/styled-components/cjs/components/Select/reducers/treePathReducer.js +98 -0
  139. package/styled-components/cjs/components/Select/ui/TreeList/TreeList.js +126 -0
  140. package/styled-components/cjs/components/Select/ui/TreeList/TreeList.styles.js +50 -0
  141. package/styled-components/cjs/components/Select/ui/TreeList/TreeList.types.js +4 -0
  142. package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.js +150 -0
  143. package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js +300 -0
  144. package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.types.js +4 -0
  145. package/styled-components/cjs/components/Select/ui/index.js +1 -0
  146. package/styled-components/cjs/components/TextArea/TextArea.js +2 -2
  147. package/styled-components/cjs/components/TextField/TextField.js +2 -2
  148. package/styled-components/cjs/components/Tree/utils/traverseTree.js +2 -60
  149. package/styled-components/cjs/examples/components/Combobox/Combobox.js +15 -0
  150. package/styled-components/cjs/examples/components/Select/Select.config.js +12 -4
  151. package/styled-components/cjs/utils/deepCopy.js +82 -0
  152. package/styled-components/cjs/utils/index.js +4 -0
  153. package/styled-components/es/components/Calendar/hooks/useKeyNavigation.js +0 -1
  154. package/styled-components/es/components/Select/Select.js +35 -8
  155. package/styled-components/es/components/Select/Select.tokens.js +2 -0
  156. package/styled-components/es/components/Select/hooks/useKeyboardNavigation.js +166 -0
  157. package/styled-components/es/components/Select/hooks/usePathMaps.js +36 -4
  158. package/styled-components/es/components/Select/reducers/index.js +1 -0
  159. package/styled-components/es/components/Select/reducers/treePathReducer.js +81 -0
  160. package/styled-components/es/components/Select/ui/TreeList/TreeList.js +75 -0
  161. package/styled-components/es/components/Select/ui/TreeList/TreeList.styles.js +27 -0
  162. package/styled-components/es/components/Select/ui/TreeList/TreeList.types.js +1 -0
  163. package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.js +99 -0
  164. package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.styles.js +236 -0
  165. package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.types.js +1 -0
  166. package/styled-components/es/components/Select/ui/index.js +1 -0
  167. package/styled-components/es/components/TextArea/TextArea.js +2 -2
  168. package/styled-components/es/components/TextField/TextField.js +2 -2
  169. package/styled-components/es/components/Tree/utils/traverseTree.js +1 -59
  170. package/styled-components/es/examples/components/Combobox/Combobox.js +0 -7
  171. package/styled-components/es/examples/components/Select/Select.config.js +12 -4
  172. package/styled-components/es/utils/deepCopy.js +72 -0
  173. package/styled-components/es/utils/index.js +1 -0
  174. package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts.map +1 -1
  175. package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts.map +1 -1
  176. package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts.map +1 -1
  177. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +12 -0
  178. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
  179. package/types/components/Range/Range.styles.d.ts.map +1 -1
  180. package/types/components/Select/Select.d.ts.map +1 -1
  181. package/types/components/Select/Select.tokens.d.ts +2 -0
  182. package/types/components/Select/Select.tokens.d.ts.map +1 -1
  183. package/types/components/Select/Select.types.d.ts +26 -2
  184. package/types/components/Select/Select.types.d.ts.map +1 -1
  185. package/types/components/Select/hooks/useKeyboardNavigation.d.ts +6 -2
  186. package/types/components/Select/hooks/useKeyboardNavigation.d.ts.map +1 -1
  187. package/types/components/Select/hooks/usePathMaps.d.ts +2 -1
  188. package/types/components/Select/hooks/usePathMaps.d.ts.map +1 -1
  189. package/types/components/Select/reducers/index.d.ts +1 -0
  190. package/types/components/Select/reducers/index.d.ts.map +1 -1
  191. package/types/components/Select/reducers/treePathReducer.d.ts +14 -0
  192. package/types/components/Select/reducers/treePathReducer.d.ts.map +1 -0
  193. package/types/components/Select/ui/Target/ui/Textfield/Textfield.styles.d.ts.map +1 -1
  194. package/types/components/Select/ui/TreeList/TreeList.d.ts +4 -0
  195. package/types/components/Select/ui/TreeList/TreeList.d.ts.map +1 -0
  196. package/types/components/Select/ui/TreeList/TreeList.styles.d.ts +6 -0
  197. package/types/components/Select/ui/TreeList/TreeList.styles.d.ts.map +1 -0
  198. package/types/components/Select/ui/TreeList/TreeList.types.d.ts +11 -0
  199. package/types/components/Select/ui/TreeList/TreeList.types.d.ts.map +1 -0
  200. package/types/components/Select/ui/TreeList/ui/Item/Item.d.ts +4 -0
  201. package/types/components/Select/ui/TreeList/ui/Item/Item.d.ts.map +1 -0
  202. package/types/components/Select/ui/TreeList/ui/Item/Item.styles.d.ts +64 -0
  203. package/types/components/Select/ui/TreeList/ui/Item/Item.styles.d.ts.map +1 -0
  204. package/types/components/Select/ui/TreeList/ui/Item/Item.types.d.ts +14 -0
  205. package/types/components/Select/ui/TreeList/ui/Item/Item.types.d.ts.map +1 -0
  206. package/types/components/Select/ui/index.d.ts +1 -0
  207. package/types/components/Select/ui/index.d.ts.map +1 -1
  208. package/types/components/Slider/components/Double/Double.styles.d.ts.map +1 -1
  209. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts +12 -0
  210. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts.map +1 -1
  211. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  212. package/types/components/TextArea/TextArea.types.d.ts +4 -0
  213. package/types/components/TextArea/TextArea.types.d.ts.map +1 -1
  214. package/types/components/TextField/TextField.d.ts.map +1 -1
  215. package/types/components/TextField/TextField.types.d.ts +4 -0
  216. package/types/components/TextField/TextField.types.d.ts.map +1 -1
  217. package/types/components/TimePicker/TimePicker.styles.d.ts.map +1 -1
  218. package/types/components/Tree/utils/traverseTree.d.ts.map +1 -1
  219. package/types/examples/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  220. package/types/examples/components/Mask/Mask.d.ts.map +1 -1
  221. package/types/examples/components/NumberFormat/NumberFormat.d.ts.map +1 -1
  222. package/types/examples/components/Select/Select.config.d.ts.map +1 -1
  223. package/types/examples/components/Select/Select.d.ts +12 -0
  224. package/types/examples/components/Select/Select.d.ts.map +1 -1
  225. package/types/examples/components/TextArea/TextArea.d.ts +8 -0
  226. package/types/examples/components/TextArea/TextArea.d.ts.map +1 -1
  227. package/types/examples/components/TextField/TextField.d.ts.map +1 -1
  228. package/types/utils/deepCopy.d.ts +2 -0
  229. package/types/utils/deepCopy.d.ts.map +1 -0
  230. package/types/utils/index.d.ts +1 -0
  231. package/types/utils/index.d.ts.map +1 -1
@@ -0,0 +1,72 @@
1
+ // Blazing-fast хелпер для глубокого копирования объектов.
2
+ // Ссылки на функции (React-компоненты) сохраняются.
3
+ function _array_like_to_array(arr, len) {
4
+ if (len == null || len > arr.length) len = arr.length;
5
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
6
+ return arr2;
7
+ }
8
+ function _array_with_holes(arr) {
9
+ if (Array.isArray(arr)) return arr;
10
+ }
11
+ function _iterable_to_array_limit(arr, i) {
12
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
13
+ if (_i == null) return;
14
+ var _arr = [];
15
+ var _n = true;
16
+ var _d = false;
17
+ var _s, _e;
18
+ try {
19
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
20
+ _arr.push(_s.value);
21
+ if (i && _arr.length === i) break;
22
+ }
23
+ } catch (err) {
24
+ _d = true;
25
+ _e = err;
26
+ } finally{
27
+ try {
28
+ if (!_n && _i["return"] != null) _i["return"]();
29
+ } finally{
30
+ if (_d) throw _e;
31
+ }
32
+ }
33
+ return _arr;
34
+ }
35
+ function _non_iterable_rest() {
36
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
37
+ }
38
+ function _sliced_to_array(arr, i) {
39
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
40
+ }
41
+ function _type_of(obj) {
42
+ "@swc/helpers - typeof";
43
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
44
+ }
45
+ function _unsupported_iterable_to_array(o, minLen) {
46
+ if (!o) return;
47
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
48
+ var n = Object.prototype.toString.call(o).slice(8, -1);
49
+ if (n === "Object" && o.constructor) n = o.constructor.name;
50
+ if (n === "Map" || n === "Set") return Array.from(n);
51
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
52
+ }
53
+ export var deepCopy = function(obj) {
54
+ if (obj === null || (typeof obj === "undefined" ? "undefined" : _type_of(obj)) !== 'object') {
55
+ return obj;
56
+ }
57
+ if (Array.isArray(obj)) {
58
+ return obj.map(function(item) {
59
+ return deepCopy(item);
60
+ });
61
+ }
62
+ if (obj.$$typeof === Symbol.for('react.element') || obj.$$typeof === Symbol.for('react.fragment') || _type_of(obj === null || obj === void 0 ? void 0 : obj.$$typeof) === 'symbol') {
63
+ return obj;
64
+ }
65
+ return Object.fromEntries(Object.entries(obj).map(function(param) {
66
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
67
+ return [
68
+ key,
69
+ deepCopy(value)
70
+ ];
71
+ }));
72
+ };
@@ -13,6 +13,7 @@ export * from "./initialValuesHelper";
13
13
  export { noop } from "./noop";
14
14
  export { getHeightAsNumber } from "./getHeightAsNumber";
15
15
  export { createConditionalComponent } from "./createConditionalComponent";
16
+ export { deepCopy } from "./deepCopy";
16
17
  export var cx = function() {
17
18
  for(var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++){
18
19
  classes[_key] = arguments[_key];
@@ -296,7 +296,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
296
296
  * требуется дождаться обновление DOM и outerRefs
297
297
  */
298
298
  setSelectIndexes([newRowIndex, newColumnIndex]);
299
- }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);
299
+ }, [onPrev, onNext, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);
300
300
  useLayoutEffect(function () {
301
301
  var _outerRefs$current;
302
302
  var _selectIndexes = _slicedToArray(selectIndexes, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { offsetMap } from '../utils';\nimport type { CalendarStateType } from '../store/types';\nimport { sizeMap } from '../store/reducer';\n\nimport type { UseKeyNavigationArgs } from './types';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndex: number, calendarState: CalendarStateType) => {\n if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {\n return 'first';\n }\n\n if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n calendarState: CalendarStateType,\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = offsetMap[calendarState] - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - offsetMap[calendarState];\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext, calendarState }: UseKeyNavigationArgs) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n const firstEndIndex = Math.floor(sizeMap[calendarState].double[0] / 2);\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, firstEndIndex);\n } else if (isSecond) {\n refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState].double[1]);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n calendarState,\n );\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes, outerRefs]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n event.preventDefault();\n\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n event.preventDefault();\n\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n event.preventDefault();\n\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n event.preventDefault();\n\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n event.preventDefault();\n\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n event.preventDefault();\n\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n event.preventDefault();\n\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n event.preventDefault();\n\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndex","calendarState","offsetMap","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","firstEndIndex","Math","floor","sizeMap","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","preventDefault","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { offsetMap } from '../utils';\nimport type { CalendarStateType } from '../store/types';\nimport { sizeMap } from '../store/reducer';\n\nimport type { UseKeyNavigationArgs } from './types';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndex: number, calendarState: CalendarStateType) => {\n if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {\n return 'first';\n }\n\n if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n calendarState: CalendarStateType,\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = offsetMap[calendarState] - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - offsetMap[calendarState];\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext, calendarState }: UseKeyNavigationArgs) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n const firstEndIndex = Math.floor(sizeMap[calendarState].double[0] / 2);\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, firstEndIndex);\n } else if (isSecond) {\n refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState].double[1]);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n calendarState,\n );\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes, outerRefs]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n event.preventDefault();\n\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n event.preventDefault();\n\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n event.preventDefault();\n\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n event.preventDefault();\n\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n event.preventDefault();\n\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n event.preventDefault();\n\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n event.preventDefault();\n\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n event.preventDefault();\n\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndex","calendarState","offsetMap","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","firstEndIndex","Math","floor","sizeMap","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","preventDefault","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
@@ -202,6 +202,25 @@
202
202
  .SelectAll_styles_ql2mqj_d19w91z6__b71a8639{background:var(--surface-solid-card);}
203
203
  .SelectAll_styles_ql2mqj_d1nbef5q__b71a8639{height:0.0625rem;margin-top:var(--d1nbef5q-0);margin-right:var(--plasma-select-divider-margin-right);margin-left:var(--plasma-select-divider-margin-left);background:var(--plasma-select-divider-color);}
204
204
 
205
+
206
+ .Item_styles_i0dby2_s14rxgk6__158876c7{--plasma-cell-title-color:var(--s14rxgk6-0);--plasma-cell-background-color:var(--surface-clear);--plasma-cell-padding:var(--plasma-select-cell-padding);--plasma-cell-padding-left-content:var(--plasma-select-cell-padding-left-content);--plasma-cell-padding-content:var(--plasma-select-cell-padding-content);--plasma-cell-padding-right-content:var(--plasma-select-cell-padding-right-content);--plasma-cell-textbox-gap:var(--plasma-select-cell-textbox-gap);--plasma-cell-gap:var(--plasma-select-cell-gap);--plasma-cell-title-font-family:var(--plasma-select-cell-title-font-family);--plasma-cell-title-font-size:var(--plasma-select-cell-title-font-size);--plasma-cell-title-font-style:var(--plasma-select-cell-title-font-style);--plasma-cell-title-font-weight:var(--plasma-select-cell-title-font-weight);--plasma-cell-title-letter-spacing:var(--plasma-select-cell-title-letter-spacing);--plasma-cell-title-line-height:var(--plasma-select-cell-title-line-height);width:100%;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellContent__158876c7,.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextbox__158876c7{-webkit-flex:1;-ms-flex:1;flex:1;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7{position:relative;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7:before{content:'&nbsp;';visibility:hidden;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7 span{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
207
+
208
+ .Item_styles_i0dby2_s1t6abbl__158876c7{--plasma-checkbox-trigger-size:var(--plasma-select-checkbox-trigger-size);--plasma-checkbox-trigger-border-radius:var(--plasma-select-checkbox-trigger-border-radius);--plasma-checkbox-fill-color:var(--plasma-select-checkbox-fill-color);--plasma-checkbox-icon-color:var(--plasma-select-checkbox-icon-color);--plasma-checkbox-trigger-border-width:var(--plasma-select-checkbox-trigger-border-width);--plasma-checkbox-trigger-border-color:var(--plasma-select-checkbox-trigger-border-color);--plasma-checkbox-trigger-border-checked-color:var(--plasma-select-checkbox-trigger-border-checked-color);}
209
+ .Item_styles_i0dby2_swduayr__158876c7{--plasma-indicator-size:var(--plasma-select-indicator-size);--plasma-indicator-color:var(--plasma-select-item-icon-color);}
210
+ .Item_styles_i0dby2_s1r3fsvz__158876c7{width:var(--s1r3fsvz-0);height:var(--s1r3fsvz-0);}.Item_styles_i0dby2_s1r3fsvz__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}
211
+ .Item_styles_i0dby2_s1us4s6s__158876c7{width:var(--s1us4s6s-0);height:var(--s1us4s6s-0);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}.Item_styles_i0dby2_s1us4s6s__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);}
212
+ .Item_styles_i0dby2_s14lzt5m__158876c7{width:var(--s14lzt5m-0);height:var(--s14lzt5m-0);}
213
+ .Item_styles_i0dby2_d1178nq__158876c7{line-height:0;color:var(--plasma-select-disclosure-icon-color);visibility:var(--d1178nq-0);}.Item_styles_i0dby2_d1178nq__158876c7:hover{color:var(--plasma-select-disclosure-icon-color-hover);}
214
+ .Item_styles_i0dby2_i1noc5rg__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex:none;-ms-flex:none;flex:none;width:var(--i1noc5rg-0);height:var(--i1noc5rg-0);line-height:0;color:var(--plasma-select-item-icon-color);}
215
+ .Item_styles_i0dby2_s1azt70o__158876c7{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-flex:1;-ms-flex:1;flex:1;}
216
+ .Item_styles_i0dby2_wa9o46g__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--plasma-select-item-gap);min-height:var(--plasma-select-item-height);margin:0;box-sizing:content-box;padding:var(--wa9o46g-0);font-family:var(--plasma-select-font-family);font-size:var(--plasma-select-font-size);font-style:var(--plasma-select-font-style);font-weight:var(--plasma-select-font-weight);-webkit-letter-spacing:var(--plasma-select-font-letter-spacing);-moz-letter-spacing:var(--plasma-select-font-letter-spacing);-ms-letter-spacing:var(--plasma-select-font-letter-spacing);letter-spacing:var(--plasma-select-font-letter-spacing);line-height:var(--plasma-select-font-line-height);background-color:var(--surface-clear);color:var(--text-primary);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-clip:padding-box;position:relative;}.Item_styles_i0dby2_wa9o46g__158876c7:hover:not(.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7){cursor:pointer;background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsActive__158876c7{background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7{opacity:var(--plasma-select-item-disabled-opacity);color:var(--plasma-select-item-disabled-color);cursor:not-allowed;}.Item_styles_i0dby2_wa9o46g__158876c7:focus{outline:none;}.Item_styles_i0dby2_wa9o46g__158876c7::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;display:block;box-sizing:content-box;border:0 solid transparent;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-transition:none;transition:none;pointer-events:none;}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsFocused__158876c7:before{outline:none;box-shadow:inset 0 0 0 0.0625rem var(--surface-accent);}
217
+
218
+
219
+ .Item_styles_i0dby2_o1888l7c__158876c7{width:calc(var(--o1888l7c-0) * var(--plasma-select-item-tree-offset-width));-webkit-flex:none;-ms-flex:none;flex:none;margin-right:calc(var(--plasma-select-item-gap) * -1);}
220
+
221
+ .TreeList_styles_1t38mek_lm92bs9__3097faae{width:100%;padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
222
+ .TreeList_styles_1t38mek_s12qznqt__3097faae{max-height:var(--s12qznqt-0);overflow-x:hidden;overflow-y:auto;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));}
223
+
205
224
  .Select_styles_dta4dl_lpxbau6__559b5dde{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
206
225
  .Select_styles_dta4dl_u1yey2x3__559b5dde{max-height:var(--u1yey2x3-0);overflow-x:hidden;overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
207
226
 
@@ -168,6 +168,25 @@
168
168
  .SelectAll_styles_ql2mqj_d19w91z6__b71a8639{background:var(--surface-solid-card);}
169
169
  .SelectAll_styles_ql2mqj_d1nbef5q__b71a8639{height:0.0625rem;margin-top:var(--d1nbef5q-0);margin-right:var(--plasma-select-divider-margin-right);margin-left:var(--plasma-select-divider-margin-left);background:var(--plasma-select-divider-color);}
170
170
 
171
+
172
+ .Item_styles_i0dby2_s14rxgk6__158876c7{--plasma-cell-title-color:var(--s14rxgk6-0);--plasma-cell-background-color:var(--surface-clear);--plasma-cell-padding:var(--plasma-select-cell-padding);--plasma-cell-padding-left-content:var(--plasma-select-cell-padding-left-content);--plasma-cell-padding-content:var(--plasma-select-cell-padding-content);--plasma-cell-padding-right-content:var(--plasma-select-cell-padding-right-content);--plasma-cell-textbox-gap:var(--plasma-select-cell-textbox-gap);--plasma-cell-gap:var(--plasma-select-cell-gap);--plasma-cell-title-font-family:var(--plasma-select-cell-title-font-family);--plasma-cell-title-font-size:var(--plasma-select-cell-title-font-size);--plasma-cell-title-font-style:var(--plasma-select-cell-title-font-style);--plasma-cell-title-font-weight:var(--plasma-select-cell-title-font-weight);--plasma-cell-title-letter-spacing:var(--plasma-select-cell-title-letter-spacing);--plasma-cell-title-line-height:var(--plasma-select-cell-title-line-height);width:100%;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellContent__158876c7,.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextbox__158876c7{-webkit-flex:1;-ms-flex:1;flex:1;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7{position:relative;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7:before{content:'&nbsp;';visibility:hidden;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7 span{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
173
+
174
+ .Item_styles_i0dby2_s1t6abbl__158876c7{--plasma-checkbox-trigger-size:var(--plasma-select-checkbox-trigger-size);--plasma-checkbox-trigger-border-radius:var(--plasma-select-checkbox-trigger-border-radius);--plasma-checkbox-fill-color:var(--plasma-select-checkbox-fill-color);--plasma-checkbox-icon-color:var(--plasma-select-checkbox-icon-color);--plasma-checkbox-trigger-border-width:var(--plasma-select-checkbox-trigger-border-width);--plasma-checkbox-trigger-border-color:var(--plasma-select-checkbox-trigger-border-color);--plasma-checkbox-trigger-border-checked-color:var(--plasma-select-checkbox-trigger-border-checked-color);}
175
+ .Item_styles_i0dby2_swduayr__158876c7{--plasma-indicator-size:var(--plasma-select-indicator-size);--plasma-indicator-color:var(--plasma-select-item-icon-color);}
176
+ .Item_styles_i0dby2_s1r3fsvz__158876c7{width:var(--s1r3fsvz-0);height:var(--s1r3fsvz-0);}.Item_styles_i0dby2_s1r3fsvz__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}
177
+ .Item_styles_i0dby2_s1us4s6s__158876c7{width:var(--s1us4s6s-0);height:var(--s1us4s6s-0);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}.Item_styles_i0dby2_s1us4s6s__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);}
178
+ .Item_styles_i0dby2_s14lzt5m__158876c7{width:var(--s14lzt5m-0);height:var(--s14lzt5m-0);}
179
+ .Item_styles_i0dby2_d1178nq__158876c7{line-height:0;color:var(--plasma-select-disclosure-icon-color);visibility:var(--d1178nq-0);}.Item_styles_i0dby2_d1178nq__158876c7:hover{color:var(--plasma-select-disclosure-icon-color-hover);}
180
+ .Item_styles_i0dby2_i1noc5rg__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex:none;-ms-flex:none;flex:none;width:var(--i1noc5rg-0);height:var(--i1noc5rg-0);line-height:0;color:var(--plasma-select-item-icon-color);}
181
+ .Item_styles_i0dby2_s1azt70o__158876c7{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-flex:1;-ms-flex:1;flex:1;}
182
+ .Item_styles_i0dby2_wa9o46g__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--plasma-select-item-gap);min-height:var(--plasma-select-item-height);margin:0;box-sizing:content-box;padding:var(--wa9o46g-0);font-family:var(--plasma-select-font-family);font-size:var(--plasma-select-font-size);font-style:var(--plasma-select-font-style);font-weight:var(--plasma-select-font-weight);-webkit-letter-spacing:var(--plasma-select-font-letter-spacing);-moz-letter-spacing:var(--plasma-select-font-letter-spacing);-ms-letter-spacing:var(--plasma-select-font-letter-spacing);letter-spacing:var(--plasma-select-font-letter-spacing);line-height:var(--plasma-select-font-line-height);background-color:var(--surface-clear);color:var(--text-primary);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-clip:padding-box;position:relative;}.Item_styles_i0dby2_wa9o46g__158876c7:hover:not(.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7){cursor:pointer;background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsActive__158876c7{background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7{opacity:var(--plasma-select-item-disabled-opacity);color:var(--plasma-select-item-disabled-color);cursor:not-allowed;}.Item_styles_i0dby2_wa9o46g__158876c7:focus{outline:none;}.Item_styles_i0dby2_wa9o46g__158876c7::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;display:block;box-sizing:content-box;border:0 solid transparent;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-transition:none;transition:none;pointer-events:none;}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsFocused__158876c7:before{outline:none;box-shadow:inset 0 0 0 0.0625rem var(--surface-accent);}
183
+
184
+
185
+ .Item_styles_i0dby2_o1888l7c__158876c7{width:calc(var(--o1888l7c-0) * var(--plasma-select-item-tree-offset-width));-webkit-flex:none;-ms-flex:none;flex:none;margin-right:calc(var(--plasma-select-item-gap) * -1);}
186
+
187
+ .TreeList_styles_1t38mek_lm92bs9__3097faae{width:100%;padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
188
+ .TreeList_styles_1t38mek_s12qznqt__3097faae{max-height:var(--s12qznqt-0);overflow-x:hidden;overflow-y:auto;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));}
189
+
171
190
  .Select_styles_dta4dl_lpxbau6__559b5dde{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
172
191
  .Select_styles_dta4dl_u1yey2x3__559b5dde{max-height:var(--u1yey2x3-0);overflow-x:hidden;overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
173
192
 
@@ -168,6 +168,25 @@
168
168
  .SelectAll_styles_ql2mqj_d19w91z6__b71a8639{background:var(--surface-solid-card);}
169
169
  .SelectAll_styles_ql2mqj_d1nbef5q__b71a8639{height:0.0625rem;margin-top:var(--d1nbef5q-0);margin-right:var(--plasma-select-divider-margin-right);margin-left:var(--plasma-select-divider-margin-left);background:var(--plasma-select-divider-color);}
170
170
 
171
+
172
+ .Item_styles_i0dby2_s14rxgk6__158876c7{--plasma-cell-title-color:var(--s14rxgk6-0);--plasma-cell-background-color:var(--surface-clear);--plasma-cell-padding:var(--plasma-select-cell-padding);--plasma-cell-padding-left-content:var(--plasma-select-cell-padding-left-content);--plasma-cell-padding-content:var(--plasma-select-cell-padding-content);--plasma-cell-padding-right-content:var(--plasma-select-cell-padding-right-content);--plasma-cell-textbox-gap:var(--plasma-select-cell-textbox-gap);--plasma-cell-gap:var(--plasma-select-cell-gap);--plasma-cell-title-font-family:var(--plasma-select-cell-title-font-family);--plasma-cell-title-font-size:var(--plasma-select-cell-title-font-size);--plasma-cell-title-font-style:var(--plasma-select-cell-title-font-style);--plasma-cell-title-font-weight:var(--plasma-select-cell-title-font-weight);--plasma-cell-title-letter-spacing:var(--plasma-select-cell-title-letter-spacing);--plasma-cell-title-line-height:var(--plasma-select-cell-title-line-height);width:100%;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellContent__158876c7,.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextbox__158876c7{-webkit-flex:1;-ms-flex:1;flex:1;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7{position:relative;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7:before{content:'&nbsp;';visibility:hidden;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7 span{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
173
+
174
+ .Item_styles_i0dby2_s1t6abbl__158876c7{--plasma-checkbox-trigger-size:var(--plasma-select-checkbox-trigger-size);--plasma-checkbox-trigger-border-radius:var(--plasma-select-checkbox-trigger-border-radius);--plasma-checkbox-fill-color:var(--plasma-select-checkbox-fill-color);--plasma-checkbox-icon-color:var(--plasma-select-checkbox-icon-color);--plasma-checkbox-trigger-border-width:var(--plasma-select-checkbox-trigger-border-width);--plasma-checkbox-trigger-border-color:var(--plasma-select-checkbox-trigger-border-color);--plasma-checkbox-trigger-border-checked-color:var(--plasma-select-checkbox-trigger-border-checked-color);}
175
+ .Item_styles_i0dby2_swduayr__158876c7{--plasma-indicator-size:var(--plasma-select-indicator-size);--plasma-indicator-color:var(--plasma-select-item-icon-color);}
176
+ .Item_styles_i0dby2_s1r3fsvz__158876c7{width:var(--s1r3fsvz-0);height:var(--s1r3fsvz-0);}.Item_styles_i0dby2_s1r3fsvz__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}
177
+ .Item_styles_i0dby2_s1us4s6s__158876c7{width:var(--s1us4s6s-0);height:var(--s1us4s6s-0);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}.Item_styles_i0dby2_s1us4s6s__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);}
178
+ .Item_styles_i0dby2_s14lzt5m__158876c7{width:var(--s14lzt5m-0);height:var(--s14lzt5m-0);}
179
+ .Item_styles_i0dby2_d1178nq__158876c7{line-height:0;color:var(--plasma-select-disclosure-icon-color);visibility:var(--d1178nq-0);}.Item_styles_i0dby2_d1178nq__158876c7:hover{color:var(--plasma-select-disclosure-icon-color-hover);}
180
+ .Item_styles_i0dby2_i1noc5rg__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex:none;-ms-flex:none;flex:none;width:var(--i1noc5rg-0);height:var(--i1noc5rg-0);line-height:0;color:var(--plasma-select-item-icon-color);}
181
+ .Item_styles_i0dby2_s1azt70o__158876c7{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-flex:1;-ms-flex:1;flex:1;}
182
+ .Item_styles_i0dby2_wa9o46g__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--plasma-select-item-gap);min-height:var(--plasma-select-item-height);margin:0;box-sizing:content-box;padding:var(--wa9o46g-0);font-family:var(--plasma-select-font-family);font-size:var(--plasma-select-font-size);font-style:var(--plasma-select-font-style);font-weight:var(--plasma-select-font-weight);-webkit-letter-spacing:var(--plasma-select-font-letter-spacing);-moz-letter-spacing:var(--plasma-select-font-letter-spacing);-ms-letter-spacing:var(--plasma-select-font-letter-spacing);letter-spacing:var(--plasma-select-font-letter-spacing);line-height:var(--plasma-select-font-line-height);background-color:var(--surface-clear);color:var(--text-primary);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-clip:padding-box;position:relative;}.Item_styles_i0dby2_wa9o46g__158876c7:hover:not(.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7){cursor:pointer;background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsActive__158876c7{background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7{opacity:var(--plasma-select-item-disabled-opacity);color:var(--plasma-select-item-disabled-color);cursor:not-allowed;}.Item_styles_i0dby2_wa9o46g__158876c7:focus{outline:none;}.Item_styles_i0dby2_wa9o46g__158876c7::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;display:block;box-sizing:content-box;border:0 solid transparent;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-transition:none;transition:none;pointer-events:none;}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsFocused__158876c7:before{outline:none;box-shadow:inset 0 0 0 0.0625rem var(--surface-accent);}
183
+
184
+
185
+ .Item_styles_i0dby2_o1888l7c__158876c7{width:calc(var(--o1888l7c-0) * var(--plasma-select-item-tree-offset-width));-webkit-flex:none;-ms-flex:none;flex:none;margin-right:calc(var(--plasma-select-item-gap) * -1);}
186
+
187
+ .TreeList_styles_1t38mek_lm92bs9__3097faae{width:100%;padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
188
+ .TreeList_styles_1t38mek_s12qznqt__3097faae{max-height:var(--s12qznqt-0);overflow-x:hidden;overflow-y:auto;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));}
189
+
171
190
  .Select_styles_dta4dl_lpxbau6__559b5dde{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
172
191
  .Select_styles_dta4dl_u1yey2x3__559b5dde{max-height:var(--u1yey2x3-0);overflow-x:hidden;overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
173
192
 
@@ -8,6 +8,7 @@ import { SelectNative } from './ui/SelectNative/SelectNative.js';
8
8
  import { Context } from './Select.context.js';
9
9
  import { initialItemsTransform } from './utils/initialItemsTransform.js';
10
10
  import { pathReducer } from './reducers/pathReducer.js';
11
+ import { treePathReducer } from './reducers/treePathReducer.js';
11
12
  import { focusedPathReducer } from './reducers/focusedPathReducer.js';
12
13
  import { safeUseId } from '../../utils/react.js';
13
14
  import { useOutsideClick } from '../../hooks/useOutsideClick.js';
@@ -16,12 +17,13 @@ import { updateDescendants } from './utils/updateDescendants.js';
16
17
  import { updateAncestors } from './utils/updateAncestors.js';
17
18
  import { updateSingleAncestors } from './utils/updateSingleAncestors.js';
18
19
  import { Target } from './ui/Target/Target.js';
20
+ import { TreeList } from './ui/TreeList/TreeList.js';
19
21
  import { SelectAll } from './ui/SelectAll/SelectAll.js';
20
22
  import { VirtualList } from './ui/VirtualList/VirtualList.js';
21
23
  import { Inner } from './ui/Inner/Inner.js';
22
24
  import { getView } from './utils/getView.js';
23
25
 
24
- var _excluded = ["id", "value", "onChange", "target", "items", "placement", "label", "labelPlacement", "placeholder", "helperText", "disabled", "readOnly", "view", "size", "listOverflow", "listHeight", "listMaxHeight", "listWidth", "contentLeft", "onScrollBottom", "onScroll", "chipView", "variant", "portal", "renderValue", "renderItem", "status", "onItemSelect", "separator", "closeAfterSelect", "isTargetAmount", "beforeList", "afterList", "zIndex", "name", "defaultValue", "virtual", "onToggle", "chipType", "multiselect", "mode", "chipClickArea", "_offset", "required", "requiredPlacement", "hasRequiredIndicator", "optional", "hintText", "hintTrigger", "hintView", "hintSize", "hintTargetPlacement", "hintPlacement", "hintWidth", "hintHasArrow", "hasHint"];
26
+ var _excluded = ["id", "value", "onChange", "target", "items", "treeView", "arrowPlacement", "placement", "label", "labelPlacement", "placeholder", "helperText", "disabled", "readOnly", "view", "size", "listOverflow", "listHeight", "listMaxHeight", "listWidth", "contentLeft", "onScrollBottom", "onScroll", "chipView", "variant", "portal", "renderValue", "renderItem", "status", "onItemSelect", "separator", "closeAfterSelect", "isTargetAmount", "beforeList", "afterList", "zIndex", "name", "defaultValue", "virtual", "onToggle", "chipType", "multiselect", "mode", "chipClickArea", "_offset", "required", "requiredPlacement", "hasRequiredIndicator", "optional", "hintText", "hintTrigger", "hintView", "hintSize", "hintTargetPlacement", "hintPlacement", "hintWidth", "hintHasArrow", "hasHint"];
25
27
 
26
28
  /**
27
29
  * Выпадающий список. Поддерживает выбор одного или нескольких значений.
@@ -34,6 +36,10 @@ var selectRoot = function selectRoot(Root) {
34
36
  _props$target = props.target,
35
37
  target = _props$target === void 0 ? 'textfield-like' : _props$target,
36
38
  items = props.items,
39
+ _props$treeView = props.treeView,
40
+ treeView = _props$treeView === void 0 ? false : _props$treeView,
41
+ _props$arrowPlacement = props.arrowPlacement,
42
+ arrowPlacement = _props$arrowPlacement === void 0 ? 'left' : _props$arrowPlacement,
37
43
  _props$placement = props.placement,
38
44
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
39
45
  label = props.label,
@@ -94,11 +100,12 @@ var selectRoot = function selectRoot(Root) {
94
100
 
95
101
  // Создаем структуры для быстрой работы с деревом
96
102
  var _usePathMaps = usePathMaps(transformedItems),
97
- _usePathMaps2 = _slicedToArray(_usePathMaps, 4),
103
+ _usePathMaps2 = _slicedToArray(_usePathMaps, 5),
98
104
  pathMap = _usePathMaps2[0],
99
105
  focusedToValueMap = _usePathMaps2[1],
100
106
  valueToCheckedMap = _usePathMaps2[2],
101
- valueToItemMap = _usePathMaps2[3];
107
+ valueToItemMap = _usePathMaps2[3],
108
+ valueToPathMap = _usePathMaps2[4];
102
109
  var _useState = useState(props.multiselect ? [] : ''),
103
110
  _useState2 = _slicedToArray(_useState, 2),
104
111
  internalValue = _useState2[0],
@@ -111,10 +118,14 @@ var selectRoot = function selectRoot(Root) {
111
118
  _useReducer2 = _slicedToArray(_useReducer, 2),
112
119
  path = _useReducer2[0],
113
120
  dispatchPath = _useReducer2[1];
114
- var _useReducer3 = useReducer(focusedPathReducer, []),
121
+ var _useReducer3 = useReducer(treePathReducer, {}),
115
122
  _useReducer4 = _slicedToArray(_useReducer3, 2),
116
- focusedPath = _useReducer4[0],
117
- dispatchFocusedPath = _useReducer4[1];
123
+ treePath = _useReducer4[0],
124
+ dispatchTreePath = _useReducer4[1];
125
+ var _useReducer5 = useReducer(focusedPathReducer, []),
126
+ _useReducer6 = _slicedToArray(_useReducer5, 2),
127
+ focusedPath = _useReducer6[0],
128
+ dispatchFocusedPath = _useReducer6[1];
118
129
  var _useState3 = useState(valueToCheckedMap),
119
130
  _useState4 = _slicedToArray(_useState3, 2),
120
131
  checked = _useState4[0],
@@ -189,6 +200,9 @@ var selectRoot = function selectRoot(Root) {
189
200
  dispatchPath({
190
201
  type: 'reset'
191
202
  });
203
+ dispatchTreePath({
204
+ type: 'reset'
205
+ });
192
206
 
193
207
  // Скроллим чипы к левому краю при закрытии компонента
194
208
  var el = rootRef === null || rootRef === void 0 || (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelector('.input-scrollable-wrapper');
@@ -249,6 +263,9 @@ var selectRoot = function selectRoot(Root) {
249
263
  dispatchFocusedPath({
250
264
  type: 'reset'
251
265
  });
266
+ dispatchTreePath({
267
+ type: 'reset'
268
+ });
252
269
  }
253
270
  if (onChange) {
254
271
  onChange(newValues, item);
@@ -273,6 +290,9 @@ var selectRoot = function selectRoot(Root) {
273
290
  dispatchFocusedPath({
274
291
  type: 'reset'
275
292
  });
293
+ dispatchTreePath({
294
+ type: 'reset'
295
+ });
276
296
  }
277
297
 
278
298
  // Закрываем список, если элемент уже выбран.
@@ -311,7 +331,11 @@ var selectRoot = function selectRoot(Root) {
311
331
  pathMap: pathMap,
312
332
  focusedToValueMap: focusedToValueMap,
313
333
  handleListToggle: handleListToggle,
314
- handlePressDown: handlePressDown
334
+ handlePressDown: handlePressDown,
335
+ treePath: treePath,
336
+ dispatchTreePath: dispatchTreePath,
337
+ treeView: treeView,
338
+ valueToPathMap: valueToPathMap
315
339
  }),
316
340
  onKeyDown = _useKeyNavigation.onKeyDown;
317
341
 
@@ -383,7 +407,11 @@ var selectRoot = function selectRoot(Root) {
383
407
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
384
408
  // @ts-ignore
385
409
  // eslint-disable-next-line no-underscore-dangle
386
- _checkboxAppearance: rest._checkboxAppearance
410
+ _checkboxAppearance: rest._checkboxAppearance,
411
+ treePath: treePath,
412
+ dispatchTreePath: dispatchTreePath,
413
+ arrowPlacement: arrowPlacement,
414
+ valueToPathMap: valueToPathMap
387
415
  }
388
416
  }, /*#__PURE__*/React.createElement(FloatingPopover, {
389
417
  ref: floatingPopoverRef,
@@ -432,7 +460,14 @@ var selectRoot = function selectRoot(Root) {
432
460
  chipView: chipView,
433
461
  disabled: disabled,
434
462
  readOnly: readOnly
435
- }, rest), /*#__PURE__*/React.createElement(ListWrapper, {
463
+ }, rest), treeView ? /*#__PURE__*/React.createElement(TreeList, {
464
+ items: items,
465
+ listMaxHeight: listMaxHeight,
466
+ onScroll: virtual ? undefined : handleScroll,
467
+ virtual: virtual,
468
+ beforeList: beforeList,
469
+ afterList: afterList
470
+ }) : /*#__PURE__*/React.createElement(ListWrapper, {
436
471
  ref: listWrapperRef,
437
472
  listWidth: listWidth
438
473
  }, /*#__PURE__*/React.createElement(Ul, {