@salutejs/plasma-new-hope 0.78.0-canary.1195.8939186735.0 → 0.78.0-canary.1201.8968491632.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (425) hide show
  1. package/cjs/components/Button/Button.styles.js +0 -1
  2. package/cjs/components/Button/Button.styles.js.map +1 -1
  3. package/cjs/components/Combobox/Combobox.css +17 -7
  4. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +15 -6
  5. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +2 -2
  6. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +15 -6
  7. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +2 -2
  8. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +15 -6
  9. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +2 -2
  10. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +15 -6
  11. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +2 -2
  12. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.css +4 -23
  13. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +81 -10
  14. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  15. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +21 -9
  16. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  17. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +4 -0
  18. package/cjs/components/Combobox/utils/index.js +23 -0
  19. package/cjs/components/Combobox/utils/index.js.map +1 -0
  20. package/cjs/components/Drawer/Drawer.js +0 -1
  21. package/cjs/components/Drawer/Drawer.js.map +1 -1
  22. package/cjs/components/Dropdown/Dropdown.css +25 -2
  23. package/cjs/components/Dropdown/Dropdown.js +138 -54
  24. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  25. package/cjs/components/Dropdown/Dropdown.styles.js +40 -7
  26. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  27. package/cjs/components/Dropdown/Dropdown.styles_1tihqkp.css +3 -0
  28. package/cjs/components/Dropdown/Dropdown.tokens.js +26 -23
  29. package/cjs/components/Dropdown/Dropdown.tokens.js.map +1 -1
  30. package/cjs/components/Dropdown/hooks/useHashMaps.js +34 -0
  31. package/cjs/components/Dropdown/hooks/useHashMaps.js.map +1 -0
  32. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +223 -0
  33. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -0
  34. package/cjs/components/Dropdown/reducers/focusedPathReducer.js +37 -0
  35. package/cjs/components/Dropdown/reducers/focusedPathReducer.js.map +1 -0
  36. package/cjs/components/Dropdown/reducers/pathReducer.js +41 -0
  37. package/cjs/components/Dropdown/reducers/pathReducer.js.map +1 -0
  38. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +122 -0
  39. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -0
  40. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.css +7 -4
  41. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +79 -100
  42. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  43. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +31 -5
  44. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  45. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +5 -0
  46. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +30 -0
  47. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +1 -0
  48. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles_12e50g5.css +4 -0
  49. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +4 -0
  50. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +112 -0
  51. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -0
  52. package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +1 -1
  53. package/cjs/components/Dropdown/ui/DropdownItemOld/variations/_size/base.js.map +1 -0
  54. package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +1 -1
  55. package/cjs/components/Dropdown/ui/DropdownItemOld/variations/_view/base.js.map +1 -0
  56. package/cjs/components/Dropdown/utils/index.js +16 -0
  57. package/cjs/components/Dropdown/utils/index.js.map +1 -1
  58. package/cjs/components/Pagination/Pagination.css +14 -7
  59. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +14 -7
  60. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +1 -1
  61. package/cjs/components/Select/Select.css +14 -7
  62. package/cjs/components/Select/ui/SelectDivider/SelectDivider.css +15 -6
  63. package/cjs/components/Select/ui/SelectDivider/SelectDivider.js +2 -2
  64. package/cjs/components/Select/ui/SelectFooter/SelectFooter.css +15 -6
  65. package/cjs/components/Select/ui/SelectFooter/SelectFooter.js +2 -2
  66. package/cjs/components/Select/ui/SelectGroup/SelectGroup.css +15 -6
  67. package/cjs/components/Select/ui/SelectGroup/SelectGroup.js +2 -2
  68. package/cjs/components/Select/ui/SelectHeader/SelectHeader.css +15 -6
  69. package/cjs/components/Select/ui/SelectHeader/SelectHeader.js +2 -2
  70. package/cjs/components/Select/ui/SelectItem/SelectItem.css +16 -7
  71. package/cjs/components/Select/ui/SelectItem/SelectItem.js +3 -3
  72. package/cjs/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  73. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  74. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  75. package/cjs/components/Select/ui/SelectItem/{SelectItem.styles_6h17aw.css → SelectItem.styles_vk39mp.css} +1 -1
  76. package/cjs/components/TextField/TextField.js +2 -2
  77. package/cjs/components/TextField/TextField.js.map +1 -1
  78. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  79. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  80. package/cjs/index.css +18 -10
  81. package/cjs/index.js +8 -7
  82. package/cjs/index.js.map +1 -1
  83. package/es/components/Button/Button.styles.js +0 -1
  84. package/es/components/Button/Button.styles.js.map +1 -1
  85. package/es/components/Combobox/Combobox.css +17 -7
  86. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +15 -6
  87. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +2 -2
  88. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +15 -6
  89. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +2 -2
  90. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +15 -6
  91. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +2 -2
  92. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +15 -6
  93. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +2 -2
  94. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.css +4 -23
  95. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +82 -11
  96. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  97. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +19 -10
  98. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  99. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +4 -0
  100. package/es/components/Combobox/utils/index.js +19 -0
  101. package/es/components/Combobox/utils/index.js.map +1 -0
  102. package/es/components/Drawer/Drawer.js +0 -1
  103. package/es/components/Drawer/Drawer.js.map +1 -1
  104. package/es/components/Dropdown/Dropdown.css +25 -2
  105. package/es/components/Dropdown/Dropdown.js +144 -60
  106. package/es/components/Dropdown/Dropdown.js.map +1 -1
  107. package/es/components/Dropdown/Dropdown.styles.js +39 -7
  108. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  109. package/es/components/Dropdown/Dropdown.styles_1tihqkp.css +3 -0
  110. package/es/components/Dropdown/Dropdown.tokens.js +26 -23
  111. package/es/components/Dropdown/Dropdown.tokens.js.map +1 -1
  112. package/es/components/Dropdown/hooks/useHashMaps.js +30 -0
  113. package/es/components/Dropdown/hooks/useHashMaps.js.map +1 -0
  114. package/es/components/Dropdown/hooks/useKeyboardNavigation.js +218 -0
  115. package/es/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -0
  116. package/es/components/Dropdown/reducers/focusedPathReducer.js +33 -0
  117. package/es/components/Dropdown/reducers/focusedPathReducer.js.map +1 -0
  118. package/es/components/Dropdown/reducers/pathReducer.js +37 -0
  119. package/es/components/Dropdown/reducers/pathReducer.js.map +1 -0
  120. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +118 -0
  121. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -0
  122. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.css +7 -4
  123. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +80 -100
  124. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  125. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +30 -5
  126. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  127. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +5 -0
  128. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +23 -0
  129. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +1 -0
  130. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles_12e50g5.css +4 -0
  131. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +4 -0
  132. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +107 -0
  133. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -0
  134. package/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +1 -1
  135. package/es/components/Dropdown/ui/DropdownItemOld/variations/_size/base.js.map +1 -0
  136. package/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +1 -1
  137. package/es/components/Dropdown/ui/DropdownItemOld/variations/_view/base.js.map +1 -0
  138. package/es/components/Dropdown/utils/index.js +16 -2
  139. package/es/components/Dropdown/utils/index.js.map +1 -1
  140. package/es/components/Pagination/Pagination.css +14 -7
  141. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +14 -7
  142. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +1 -1
  143. package/es/components/Select/Select.css +14 -7
  144. package/es/components/Select/ui/SelectDivider/SelectDivider.css +15 -6
  145. package/es/components/Select/ui/SelectDivider/SelectDivider.js +2 -2
  146. package/es/components/Select/ui/SelectFooter/SelectFooter.css +15 -6
  147. package/es/components/Select/ui/SelectFooter/SelectFooter.js +2 -2
  148. package/es/components/Select/ui/SelectGroup/SelectGroup.css +15 -6
  149. package/es/components/Select/ui/SelectGroup/SelectGroup.js +2 -2
  150. package/es/components/Select/ui/SelectHeader/SelectHeader.css +15 -6
  151. package/es/components/Select/ui/SelectHeader/SelectHeader.js +2 -2
  152. package/es/components/Select/ui/SelectItem/SelectItem.css +16 -7
  153. package/es/components/Select/ui/SelectItem/SelectItem.js +3 -3
  154. package/es/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  155. package/es/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  156. package/es/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  157. package/es/components/Select/ui/SelectItem/{SelectItem.styles_6h17aw.css → SelectItem.styles_vk39mp.css} +1 -1
  158. package/es/components/TextField/TextField.js +3 -3
  159. package/es/components/TextField/TextField.js.map +1 -1
  160. package/es/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  161. package/es/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  162. package/es/index.css +18 -10
  163. package/es/index.js +4 -3
  164. package/es/index.js.map +1 -1
  165. package/package.json +2 -2
  166. package/styled-components/cjs/components/Button/Button.styles.js +2 -10
  167. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +91 -2
  168. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +27 -7
  169. package/styled-components/cjs/components/Combobox/utils/index.js +23 -0
  170. package/styled-components/cjs/components/Dropdown/Dropdown.js +140 -54
  171. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +22 -7
  172. package/styled-components/cjs/components/Dropdown/Dropdown.tokens.js +26 -23
  173. package/styled-components/cjs/components/Dropdown/hooks/useHashMaps.js +32 -0
  174. package/styled-components/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +221 -0
  175. package/styled-components/cjs/components/Dropdown/index.js +9 -1
  176. package/styled-components/cjs/components/Dropdown/reducers/focusedPathReducer.js +40 -0
  177. package/styled-components/cjs/components/Dropdown/reducers/pathReducer.js +44 -0
  178. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +117 -0
  179. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +5 -0
  180. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +77 -105
  181. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +24 -19
  182. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +33 -0
  183. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.js +5 -0
  184. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +119 -0
  185. package/styled-components/cjs/components/Dropdown/ui/index.js +19 -5
  186. package/styled-components/cjs/components/Dropdown/utils/index.js +15 -1
  187. package/styled-components/cjs/components/Dropdown/variations/_size/tokens.json +1 -9
  188. package/styled-components/cjs/components/Dropdown/variations/_view/tokens.json +1 -1
  189. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.js +1 -1
  190. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +1 -1
  191. package/styled-components/cjs/components/TextField/TextField.js +4 -4
  192. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  193. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +25 -0
  194. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.js +11 -0
  195. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +292 -0
  196. package/styled-components/cjs/index.js +0 -11
  197. package/styled-components/es/components/Button/Button.styles.js +2 -10
  198. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +90 -3
  199. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +23 -6
  200. package/styled-components/es/components/Combobox/utils/index.js +15 -0
  201. package/styled-components/es/components/Dropdown/Dropdown.js +142 -55
  202. package/styled-components/es/components/Dropdown/Dropdown.styles.js +18 -5
  203. package/styled-components/es/components/Dropdown/Dropdown.tokens.js +26 -23
  204. package/styled-components/es/components/Dropdown/hooks/useHashMaps.js +26 -0
  205. package/styled-components/es/components/Dropdown/hooks/useKeyboardNavigation.js +215 -0
  206. package/styled-components/es/components/Dropdown/index.js +1 -0
  207. package/styled-components/es/components/Dropdown/reducers/focusedPathReducer.js +34 -0
  208. package/styled-components/es/components/Dropdown/reducers/pathReducer.js +38 -0
  209. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +111 -0
  210. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +1 -0
  211. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +78 -107
  212. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +21 -15
  213. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +25 -0
  214. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.js +1 -0
  215. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +111 -0
  216. package/styled-components/es/components/Dropdown/ui/index.js +3 -1
  217. package/styled-components/es/components/Dropdown/utils/index.js +15 -1
  218. package/styled-components/es/components/Dropdown/variations/_size/tokens.json +1 -9
  219. package/styled-components/es/components/Dropdown/variations/_view/tokens.json +1 -1
  220. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.js +2 -2
  221. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.styles.js +1 -1
  222. package/styled-components/es/components/TextField/TextField.js +4 -4
  223. package/styled-components/es/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  224. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +19 -0
  225. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.js +5 -0
  226. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +292 -0
  227. package/styled-components/es/index.js +0 -1
  228. package/types/components/Button/Button.styles.d.ts +0 -1
  229. package/types/components/Button/Button.styles.d.ts.map +1 -1
  230. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts +15 -13
  231. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  232. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts +5 -1
  233. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts.map +1 -1
  234. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts +59 -2
  235. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts.map +1 -1
  236. package/types/components/Combobox/utils/index.d.ts +4 -0
  237. package/types/components/Combobox/utils/index.d.ts.map +1 -0
  238. package/types/components/Dropdown/Dropdown.d.ts +4 -4
  239. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  240. package/types/components/Dropdown/Dropdown.styles.d.ts +8 -1
  241. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  242. package/types/components/Dropdown/Dropdown.tokens.d.ts +24 -22
  243. package/types/components/Dropdown/Dropdown.tokens.d.ts.map +1 -1
  244. package/types/components/Dropdown/Dropdown.types.d.ts +64 -40
  245. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  246. package/types/components/Dropdown/hooks/useHashMaps.d.ts +6 -0
  247. package/types/components/Dropdown/hooks/useHashMaps.d.ts.map +1 -0
  248. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts +37 -0
  249. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts.map +1 -0
  250. package/types/components/Dropdown/index.d.ts +3 -1
  251. package/types/components/Dropdown/index.d.ts.map +1 -1
  252. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts +16 -0
  253. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts.map +1 -0
  254. package/types/components/Dropdown/reducers/pathReducer.d.ts +20 -0
  255. package/types/components/Dropdown/reducers/pathReducer.d.ts.map +1 -0
  256. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts +5 -0
  257. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -0
  258. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +26 -0
  259. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +1 -0
  260. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts +2 -56
  261. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
  262. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts +5 -2
  263. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts.map +1 -1
  264. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +44 -38
  265. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  266. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.d.ts +7 -0
  267. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.d.ts.map +1 -0
  268. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.d.ts +60 -0
  269. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.d.ts.map +1 -0
  270. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +58 -0
  271. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -0
  272. package/types/components/Dropdown/ui/DropdownItemOld/variations/_size/base.d.ts.map +1 -0
  273. package/types/components/Dropdown/ui/DropdownItemOld/variations/_view/base.d.ts.map +1 -0
  274. package/types/components/Dropdown/ui/index.d.ts +3 -1
  275. package/types/components/Dropdown/ui/index.d.ts.map +1 -1
  276. package/types/components/Dropdown/utils/index.d.ts +5 -2
  277. package/types/components/Dropdown/utils/index.d.ts.map +1 -1
  278. package/types/components/Select/ui/SelectItem/SelectItem.d.ts +2 -2
  279. package/types/components/Select/ui/SelectItem/SelectItem.d.ts.map +1 -1
  280. package/types/components/Select/ui/SelectItem/SelectItem.type.d.ts +2 -2
  281. package/types/components/Select/utils/index.d.ts +1 -1
  282. package/types/components/TextField/TextField.d.ts +2 -2
  283. package/types/components/TextField/TextField.d.ts.map +1 -1
  284. package/types/components/_Icon/Icon.assets/DisclosureRight.d.ts.map +1 -1
  285. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts.map +1 -0
  286. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts +13 -0
  287. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts.map +1 -0
  288. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts +2 -2
  289. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts.map +1 -1
  290. package/types/examples/plasma_web/components/TextField/TextField.d.ts +2 -2
  291. package/types/examples/plasma_web/components/TextField/TextField.d.ts.map +1 -1
  292. package/types/examples/sds_engineer/components/TextField/TextField.d.ts +2 -2
  293. package/types/examples/sds_engineer/components/TextField/TextField.d.ts.map +1 -1
  294. package/types/index.d.ts +0 -1
  295. package/types/index.d.ts.map +1 -1
  296. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +0 -1
  297. package/cjs/components/Dropdown/Dropdown.styles_1daxhqh.css +0 -2
  298. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +0 -4
  299. package/cjs/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +0 -1
  300. package/cjs/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +0 -1
  301. package/cjs/components/IconButton/IconButton.css +0 -24
  302. package/cjs/components/IconButton/IconButton.js +0 -50
  303. package/cjs/components/IconButton/IconButton.js.map +0 -1
  304. package/cjs/components/IconButton/IconButton.styles.js +0 -16
  305. package/cjs/components/IconButton/IconButton.styles.js.map +0 -1
  306. package/cjs/components/IconButton/IconButton.styles_1hknr37.css +0 -1
  307. package/cjs/components/IconButton/IconButton.tokens.js +0 -32
  308. package/cjs/components/IconButton/IconButton.tokens.js.map +0 -1
  309. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +0 -1
  310. package/es/components/Dropdown/Dropdown.styles_1daxhqh.css +0 -2
  311. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +0 -4
  312. package/es/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +0 -1
  313. package/es/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +0 -1
  314. package/es/components/IconButton/IconButton.css +0 -24
  315. package/es/components/IconButton/IconButton.js +0 -45
  316. package/es/components/IconButton/IconButton.js.map +0 -1
  317. package/es/components/IconButton/IconButton.styles.js +0 -12
  318. package/es/components/IconButton/IconButton.styles.js.map +0 -1
  319. package/es/components/IconButton/IconButton.styles_1hknr37.css +0 -1
  320. package/es/components/IconButton/IconButton.tokens.js +0 -28
  321. package/es/components/IconButton/IconButton.tokens.js.map +0 -1
  322. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +0 -80
  323. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +0 -19
  324. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +0 -9
  325. package/styled-components/cjs/components/IconButton/IconButton.js +0 -47
  326. package/styled-components/cjs/components/IconButton/IconButton.styles.js +0 -12
  327. package/styled-components/cjs/components/IconButton/IconButton.tokens.js +0 -31
  328. package/styled-components/cjs/components/IconButton/index.js +0 -25
  329. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +0 -27
  330. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +0 -13
  331. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +0 -194
  332. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +0 -27
  333. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +0 -13
  334. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  335. package/styled-components/cjs/examples/plasma_b2c/components/IconButton/IconButton.config.js +0 -45
  336. package/styled-components/cjs/examples/plasma_b2c/components/IconButton/IconButton.js +0 -11
  337. package/styled-components/cjs/examples/plasma_b2c/components/IconButton/IconButton.stories.tsx +0 -69
  338. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +0 -27
  339. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +0 -13
  340. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +0 -195
  341. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +0 -27
  342. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +0 -13
  343. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  344. package/styled-components/cjs/examples/plasma_web/components/IconButton/IconButton.config.js +0 -45
  345. package/styled-components/cjs/examples/plasma_web/components/IconButton/IconButton.js +0 -11
  346. package/styled-components/cjs/examples/plasma_web/components/IconButton/IconButton.stories.tsx +0 -69
  347. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.config.js +0 -22
  348. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.js +0 -21
  349. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +0 -277
  350. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +0 -80
  351. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +0 -19
  352. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +0 -9
  353. package/styled-components/es/components/IconButton/IconButton.js +0 -41
  354. package/styled-components/es/components/IconButton/IconButton.styles.js +0 -6
  355. package/styled-components/es/components/IconButton/IconButton.tokens.js +0 -25
  356. package/styled-components/es/components/IconButton/index.js +0 -2
  357. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +0 -21
  358. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +0 -7
  359. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +0 -194
  360. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +0 -21
  361. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +0 -7
  362. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  363. package/styled-components/es/examples/plasma_b2c/components/IconButton/IconButton.config.js +0 -39
  364. package/styled-components/es/examples/plasma_b2c/components/IconButton/IconButton.js +0 -5
  365. package/styled-components/es/examples/plasma_b2c/components/IconButton/IconButton.stories.tsx +0 -69
  366. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +0 -21
  367. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +0 -7
  368. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +0 -195
  369. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +0 -21
  370. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +0 -7
  371. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  372. package/styled-components/es/examples/plasma_web/components/IconButton/IconButton.config.js +0 -39
  373. package/styled-components/es/examples/plasma_web/components/IconButton/IconButton.js +0 -5
  374. package/styled-components/es/examples/plasma_web/components/IconButton/IconButton.stories.tsx +0 -69
  375. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.config.js +0 -16
  376. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.js +0 -15
  377. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +0 -277
  378. package/types/components/Dropdown/ui/DropdownItem/variations/_size/base.d.ts.map +0 -1
  379. package/types/components/Dropdown/ui/DropdownItem/variations/_view/base.d.ts.map +0 -1
  380. package/types/components/IconButton/IconButton.d.ts +0 -35
  381. package/types/components/IconButton/IconButton.d.ts.map +0 -1
  382. package/types/components/IconButton/IconButton.styles.d.ts +0 -3
  383. package/types/components/IconButton/IconButton.styles.d.ts.map +0 -1
  384. package/types/components/IconButton/IconButton.tokens.d.ts +0 -26
  385. package/types/components/IconButton/IconButton.tokens.d.ts.map +0 -1
  386. package/types/components/IconButton/index.d.ts +0 -3
  387. package/types/components/IconButton/index.d.ts.map +0 -1
  388. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.d.ts.map +0 -1
  389. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts +0 -30
  390. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts.map +0 -1
  391. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.d.ts +0 -18
  392. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.d.ts.map +0 -1
  393. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts +0 -30
  394. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts.map +0 -1
  395. package/types/examples/plasma_b2c/components/IconButton/IconButton.config.d.ts +0 -38
  396. package/types/examples/plasma_b2c/components/IconButton/IconButton.config.d.ts.map +0 -1
  397. package/types/examples/plasma_b2c/components/IconButton/IconButton.d.ts +0 -32
  398. package/types/examples/plasma_b2c/components/IconButton/IconButton.d.ts.map +0 -1
  399. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts +0 -18
  400. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts.map +0 -1
  401. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts +0 -30
  402. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts.map +0 -1
  403. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts +0 -18
  404. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts.map +0 -1
  405. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts +0 -30
  406. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts.map +0 -1
  407. package/types/examples/plasma_web/components/IconButton/IconButton.config.d.ts +0 -38
  408. package/types/examples/plasma_web/components/IconButton/IconButton.config.d.ts.map +0 -1
  409. package/types/examples/plasma_web/components/IconButton/IconButton.d.ts +0 -32
  410. package/types/examples/plasma_web/components/IconButton/IconButton.d.ts.map +0 -1
  411. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts +0 -15
  412. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts.map +0 -1
  413. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts +0 -51
  414. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts.map +0 -1
  415. /package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base_x642ct.css +0 -0
  416. /package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base_x642ct.css +0 -0
  417. /package/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base_x642ct.css +0 -0
  418. /package/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base_x642ct.css +0 -0
  419. /package/styled-components/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +0 -0
  420. /package/styled-components/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +0 -0
  421. /package/styled-components/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +0 -0
  422. /package/styled-components/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +0 -0
  423. /package/types/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.d.ts +0 -0
  424. /package/types/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.d.ts +0 -0
  425. /package/types/examples/plasma_b2c/components/Dropdown/{Normal/Dropdown.config.d.ts → Dropdown.config.d.ts} +0 -0
@@ -1,82 +1,169 @@
1
- var _excluded = ["id", "target", "children", "hasArrow", "role", "view", "size", "frame", "onToggle", "isFocusTrapped", "isOpen", "placement", "trigger", "offset", "preventOverflow", "closeOnOverlayClick", "closeOnEsc"];
1
+ var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
8
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
3
9
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
10
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
- import React, { forwardRef, useRef } from 'react';
6
- import { useFocusTrap, useForkRef, useUniqId } from '@salutejs/plasma-core';
11
+ import React, { forwardRef, useReducer } from 'react';
12
+ import { cx } from '../../utils';
13
+ import { pathReducer } from './reducers/pathReducer';
14
+ import { focusedPathReducer } from './reducers/focusedPathReducer';
15
+ import { DropdownInner } from './ui';
7
16
  import { base as viewCSS } from './variations/_view/base';
8
17
  import { base as sizeCSS } from './variations/_size/base';
9
- import { StyledDropdown, StyledPopover } from './Dropdown.styles';
10
- import { getPlacements } from './utils';
18
+ import { Ul, StyledPopover, base } from './Dropdown.styles';
19
+ import { getPlacements, childrenWithProps } from './utils';
20
+ import { classes } from './Dropdown.tokens';
21
+ import { useKeyNavigation } from './hooks/useKeyboardNavigation';
22
+ import { useHashMaps } from './hooks/useHashMaps';
23
+
11
24
  /**
12
- * Выпадающий список без внешнего контроля видимости.
25
+ * Выпадающий список.
13
26
  */
14
27
  export var dropdownRoot = function dropdownRoot(Root) {
15
- return /*#__PURE__*/forwardRef(function (_ref, outerRootRef) {
16
- var id = _ref.id,
17
- target = _ref.target,
28
+ return /*#__PURE__*/forwardRef(function (_ref, ref) {
29
+ var items = _ref.items,
18
30
  children = _ref.children,
19
- hasArrow = _ref.hasArrow,
20
- role = _ref.role,
21
- view = _ref.view,
22
- size = _ref.size,
23
- frame = _ref.frame,
24
- _onToggle = _ref.onToggle,
25
- _ref$isFocusTrapped = _ref.isFocusTrapped,
26
- isFocusTrapped = _ref$isFocusTrapped === void 0 ? true : _ref$isFocusTrapped,
27
- _ref$isOpen = _ref.isOpen,
28
- isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
29
31
  _ref$placement = _ref.placement,
30
- placement = _ref$placement === void 0 ? 'auto' : _ref$placement,
31
- _ref$trigger = _ref.trigger,
32
- trigger = _ref$trigger === void 0 ? 'click' : _ref$trigger,
32
+ placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,
33
33
  _ref$offset = _ref.offset,
34
- offset = _ref$offset === void 0 ? [0, 6] : _ref$offset,
35
- _ref$preventOverflow = _ref.preventOverflow,
36
- preventOverflow = _ref$preventOverflow === void 0 ? false : _ref$preventOverflow,
34
+ offset = _ref$offset === void 0 ? [0, 0] : _ref$offset,
37
35
  _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
38
- closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? false : _ref$closeOnOverlayCl,
39
- _ref$closeOnEsc = _ref.closeOnEsc,
40
- closeOnEsc = _ref$closeOnEsc === void 0 ? false : _ref$closeOnEsc,
36
+ closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
37
+ onToggle = _ref.onToggle,
38
+ size = _ref.size,
39
+ view = _ref.view,
40
+ _ref$itemRole = _ref.itemRole,
41
+ itemRole = _ref$itemRole === void 0 ? 'treeitem' : _ref$itemRole,
42
+ className = _ref.className,
43
+ listWidth = _ref.listWidth,
44
+ listHeight = _ref.listHeight,
45
+ listOverflow = _ref.listOverflow,
46
+ _ref$closeOnSelect = _ref.closeOnSelect,
47
+ closeOnSelect = _ref$closeOnSelect === void 0 ? true : _ref$closeOnSelect,
48
+ onHover = _ref.onHover,
49
+ onItemSelect = _ref.onItemSelect,
50
+ onItemClick = _ref.onItemClick,
51
+ _ref$trigger = _ref.trigger,
52
+ trigger = _ref$trigger === void 0 ? 'click' : _ref$trigger,
53
+ _ref$variant = _ref.variant,
54
+ variant = _ref$variant === void 0 ? 'normal' : _ref$variant,
55
+ _ref$hasArrow = _ref.hasArrow,
56
+ hasArrow = _ref$hasArrow === void 0 ? true : _ref$hasArrow,
41
57
  rest = _objectWithoutProperties(_ref, _excluded);
42
- var uniqId = useUniqId();
43
- var innerId = id || uniqId;
44
- var rootRef = useRef(null);
45
- var dropdownRef = useRef(null);
46
- var handleRef = useForkRef(rootRef, outerRootRef);
47
- var trapRef = useFocusTrap(isOpen && isFocusTrapped);
48
- var dropdownForkRef = useForkRef(dropdownRef, trapRef);
49
- return /*#__PURE__*/React.createElement(StyledPopover, {
50
- role: role,
51
- isOpen: isOpen,
58
+ var _useReducer = useReducer(pathReducer, []),
59
+ _useReducer2 = _slicedToArray(_useReducer, 2),
60
+ path = _useReducer2[0],
61
+ dispatchPath = _useReducer2[1];
62
+ var _useReducer3 = useReducer(focusedPathReducer, []),
63
+ _useReducer4 = _slicedToArray(_useReducer3, 2),
64
+ focusedPath = _useReducer4[0],
65
+ dispatchFocusedPath = _useReducer4[1];
66
+ var _useHashMaps = useHashMaps(items),
67
+ _useHashMaps2 = _slicedToArray(_useHashMaps, 2),
68
+ pathMap = _useHashMaps2[0],
69
+ focusedToValueMap = _useHashMaps2[1];
70
+ var handleGlobalToggle = function handleGlobalToggle(opened, event) {
71
+ if (opened) {
72
+ dispatchPath({
73
+ type: 'opened_first_level'
74
+ });
75
+ } else {
76
+ dispatchFocusedPath({
77
+ type: 'reset'
78
+ });
79
+ dispatchPath({
80
+ type: 'reset'
81
+ });
82
+ }
83
+ if (onToggle) {
84
+ onToggle(opened, event);
85
+ }
86
+ };
87
+ var _useKeyNavigation = useKeyNavigation({
88
+ focusedPath: focusedPath,
89
+ dispatchFocusedPath: dispatchFocusedPath,
90
+ path: path,
91
+ dispatchPath: dispatchPath,
92
+ pathMap: pathMap,
93
+ focusedToValueMap: focusedToValueMap,
94
+ handleGlobalToggle: handleGlobalToggle,
95
+ closeOnSelect: closeOnSelect,
96
+ onItemSelect: onItemSelect,
97
+ onItemClick: onItemClick
98
+ }),
99
+ onKeyDown = _useKeyNavigation.onKeyDown;
100
+ var isCurrentListOpen = Boolean(path[0]);
101
+ var getActiveDescendant = function getActiveDescendant() {
102
+ var _focusedToValueMap$ge;
103
+ var focusedPathAsString = focusedPath.reduce(function (acc, n) {
104
+ return "".concat(acc, "/").concat(n);
105
+ }, '').replace(/^(\/)/, '');
106
+ return focusedToValueMap === null || focusedToValueMap === void 0 || (_focusedToValueMap$ge = focusedToValueMap.get(focusedPathAsString)) === null || _focusedToValueMap$ge === void 0 ? void 0 : _focusedToValueMap$ge.value.toString();
107
+ };
108
+ return /*#__PURE__*/React.createElement(Root, _extends({
109
+ className: cx(className, classes.dropdownRoot),
110
+ ref: ref,
111
+ view: view,
112
+ size: size,
113
+ items: items
114
+ }, rest), /*#__PURE__*/React.createElement(StyledPopover, {
115
+ isOpen: isCurrentListOpen,
52
116
  usePortal: false,
53
- onToggle: function onToggle(is, event) {
54
- return _onToggle === null || _onToggle === void 0 ? void 0 : _onToggle(is, event);
55
- },
56
- id: innerId,
57
- ref: dropdownForkRef,
58
- target: target,
117
+ onToggle: handleGlobalToggle,
59
118
  offset: offset,
60
- preventOverflow: preventOverflow,
61
- hasArrow: hasArrow,
62
119
  placement: getPlacements(placement),
63
120
  trigger: trigger,
64
121
  closeOnOverlayClick: closeOnOverlayClick,
65
- closeOnEsc: closeOnEsc,
66
- isFocusTrapped: isFocusTrapped,
67
- frame: frame
68
- }, /*#__PURE__*/React.createElement(Root, _extends({
69
- ref: handleRef,
70
- view: view,
71
- size: size
72
- }, rest), /*#__PURE__*/React.createElement(StyledDropdown, null, children)));
122
+ isFocusTrapped: false,
123
+ target: childrenWithProps(children, {
124
+ role: 'combobox',
125
+ 'aria-controls': 'listbox1',
126
+ 'aria-expanded': isCurrentListOpen,
127
+ 'aria-activedescendant': getActiveDescendant(),
128
+ onKeyDown: onKeyDown
129
+ }),
130
+ preventOverflow: false
131
+ }, /*#__PURE__*/React.createElement(Ul, {
132
+ listHeight: listHeight,
133
+ listOverflow: listOverflow,
134
+ role: "tree",
135
+ id: "listbox1",
136
+ listWidth: listWidth
137
+ }, items.map(function (item, index) {
138
+ return /*#__PURE__*/React.createElement(DropdownInner, {
139
+ key: "".concat(index, "/0"),
140
+ item: item,
141
+ currentLevel: 0,
142
+ focusedPath: focusedPath,
143
+ trigger: trigger,
144
+ path: path,
145
+ dispatchPath: dispatchPath,
146
+ index: index,
147
+ itemRole: itemRole,
148
+ listHeight: listHeight,
149
+ listOverflow: listOverflow,
150
+ handleGlobalToggle: handleGlobalToggle,
151
+ closeOnSelect: closeOnSelect,
152
+ onHover: onHover,
153
+ onItemSelect: onItemSelect,
154
+ onItemClick: onItemClick,
155
+ listWidth: listWidth,
156
+ variant: variant,
157
+ hasArrow: hasArrow
158
+ });
159
+ }))));
73
160
  });
74
161
  };
75
162
  export var dropdownConfig = {
76
163
  name: 'Dropdown',
77
164
  tag: 'div',
78
165
  layout: dropdownRoot,
79
- base: '',
166
+ base: base,
80
167
  variations: {
81
168
  view: {
82
169
  css: viewCSS
@@ -1,13 +1,26 @@
1
1
  import styled from 'styled-components';
2
+ import { css } from 'styled-components';
2
3
  import { component } from '../../engines';
3
4
  import { popoverConfig, popoverClasses } from '../Popover';
5
+ import { getCorrectHeight } from './utils';
4
6
  import { tokens } from './Dropdown.tokens';
5
-
6
- // issue #823
7
7
  var Popover = /*#__PURE__*/component(popoverConfig);
8
8
  export var StyledPopover = /*#__PURE__*/styled(Popover).withConfig({
9
9
  componentId: "plasma-new-hope__sc-13ezpo5-0"
10
- })([".", "{display:block;}"], /*#__PURE__*/String(popoverClasses.target));
11
- export var StyledDropdown = /*#__PURE__*/styled.div.withConfig({
10
+ })([".", ",.", "{display:block;}"], /*#__PURE__*/String(popoverClasses.wrapper), /*#__PURE__*/String(popoverClasses.target));
11
+ export var Ul = /*#__PURE__*/styled.ul.withConfig({
12
12
  componentId: "plasma-new-hope__sc-13ezpo5-1"
13
- })(["box-sizing:border-box;background:var(", ");box-shadow:var(", ");border-radius:var(", ");width:var(", ");height:var(", ");padding:var(", ") var(", ") var(", ") var(", ");"], tokens.background, tokens.boxShadow, tokens.borderRadius, tokens.width, tokens.height, tokens.paddingTop, tokens.paddingRight, tokens.paddingBottom, tokens.paddingLeft);
13
+ })(["box-sizing:border-box;background:var(", ");box-shadow:var(", ");border-radius:var(", ");width:", ";height:", ";overflow:", ";margin:", ";padding:var(", ");"], tokens.background, tokens.boxShadow, tokens.borderRadius, function (_ref) {
14
+ var listWidth = _ref.listWidth;
15
+ return listWidth || "var(".concat(tokens.width, ")");
16
+ }, function (_ref2) {
17
+ var listHeight = _ref2.listHeight;
18
+ return listHeight ? getCorrectHeight(listHeight) : 'auto';
19
+ }, function (_ref3) {
20
+ var listOverflow = _ref3.listOverflow;
21
+ return listOverflow || 'initial';
22
+ }, function (_ref4) {
23
+ var isInnerUl = _ref4.isInnerUl;
24
+ return isInnerUl ? "calc(var(".concat(tokens.padding, ") * -1) 0 0 var(").concat(tokens.padding, ")") : 0;
25
+ }, tokens.padding);
26
+ export var base = /*#__PURE__*/css(["display:inline-block;"]);
@@ -1,45 +1,36 @@
1
1
  export var classes = {
2
- dropdownItemIsSelected: 'dropdown-item-is-selected',
3
- dropdownItemIsDisabled: 'dropdown-item-is-disabled'
2
+ dropdownRoot: 'dropdown-root',
3
+ dropdownItemIsFocused: 'dropdown-item-is-focused',
4
+ dropdownItemIsDisabled: 'dropdown-item-is-disabled',
5
+ dropdownItemIsActive: 'dropdown-item-is-active',
6
+ dropdownItemIsSelected: 'dropdownItemIsSelected'
4
7
  };
5
8
  export var tokens = {
6
9
  background: '--plasma-dropdown-background',
7
10
  boxShadow: '--plasma-dropdown-box-shadow',
8
11
  width: '--plasma-dropdown-width',
9
- height: '--plasma-dropdown-height',
10
12
  borderRadius: '--plasma-dropdown-border-radius',
11
- paddingTop: '--plasma-dropdown-padding-top',
12
- paddingRight: '--plasma-dropdown-padding-right',
13
- paddingBottom: '--plasma-dropdown-padding-bottom',
14
- paddingLeft: '--plasma-dropdown-padding-left',
13
+ padding: '--plasma-dropdown-padding',
14
+ disclosureIconColor: '--plasma-dropdown-disclosure-icon-color',
15
15
  itemBackground: '--plasma-dropdown-item-background',
16
16
  itemColor: '--plasma-dropdown-item-color',
17
17
  itemBackgroundHover: '--plasma-dropdown-item-background-hover',
18
- itemBackgroundSelected: '--plasma-dropdown-item-background-selected',
19
- itemColorSelected: '--plasma-dropdown-item-color-selected',
20
- itemBackgroundSelectedHover: '--plasma-dropdown-item-background-selected-hover',
21
- itemColorSelectedHover: '--plasma-dropdown-item-color-selected-hover',
22
- itemWidth: '--plasma-dropdown-item-width',
23
- itemHeight: '--plasma-dropdown-item-height',
24
18
  itemBorderRadius: '--plasma-dropdown-item-border-radius',
25
19
  itemPaddingTop: '--plasma-dropdown-item-padding-top',
20
+ itemPaddingTopTight: '--plasma-dropdown-item-padding-top-tight',
26
21
  itemPaddingRight: '--plasma-dropdown-item-padding-right',
27
22
  itemPaddingBottom: '--plasma-dropdown-item-padding-bottom',
23
+ itemPaddingBottomTight: '--plasma-dropdown-item-padding-bottom-tight',
28
24
  itemPaddingLeft: '--plasma-dropdown-item-padding-left',
29
- itemMarginTop: '--plasma-dropdown-item-margin-top',
30
- itemMarginRight: '--plasma-dropdown-item-margin-right',
31
- itemMarginBottom: '--plasma-dropdown-item-margin-bottom',
32
- itemMarginLeft: '--plasma-dropdown-item-margin-left',
33
25
  itemFontFamily: '--plasma-dropdown-item-font-family',
34
26
  itemFontSize: '--plasma-dropdown-item-font-size',
35
27
  itemFontStyle: '--plasma-dropdown-item-font-style',
36
28
  itemFontWeightBold: '--plasma-dropdown-item-letter-spacing',
37
29
  itemFontLetterSpacing: '--plasma-dropdown-item-line-height',
38
30
  itemFontLineHeight: '--plasma-dropdown-item-font-weight',
39
- itemContentLeftColor: '--plasma-dropdown-item-content-left-color',
40
- itemContentRightColor: '--plasma-dropdown-item-content-right-color',
41
- itemContentLeftWidth: '--plasma-dropdown-item-content-left-width',
42
- itemContentRightWidth: '--plasma-dropdown-item-content-right-width',
31
+ disabledOpacity: '--plasma-dropdown-disabled-opacity',
32
+ focusColor: '--plasma-dropdown-focus-color',
33
+ // TODO: Remove below tokens as soon as they are no longer needed
43
34
  footerBackground: '--plasma-dropdown-footer-background',
44
35
  footerWidth: '--plasma-dropdown-footer-width',
45
36
  footerHeight: '--plasma-dropdown-footer-height',
@@ -107,6 +98,18 @@ export var tokens = {
107
98
  groupLabelMarginRight: '--plasma-dropdown-group-label-margin-right',
108
99
  groupLabelMarginBottom: '--plasma-dropdown-group-label-margin-bottom',
109
100
  groupLabelMarginLeft: '--plasma-dropdown-group-label-margin-left',
110
- disabledOpacity: '--plasma-dropdown-disabled-opacity',
111
- focusColor: '--plasma-dropdown-focus-color'
101
+ itemBackgroundSelected: '--plasma-dropdown-item-background-selected',
102
+ itemColorSelected: '--plasma-dropdown-item-color-selected',
103
+ itemBackgroundSelectedHover: '--plasma-dropdown-item-background-selected-hover',
104
+ itemColorSelectedHover: '--plasma-dropdown-item-color-selected-hover',
105
+ itemContentLeftColor: '--plasma-dropdown-item-content-left-color',
106
+ itemContentRightColor: '--plasma-dropdown-item-content-right-color',
107
+ itemWidth: '--plasma-dropdown-item-width',
108
+ itemHeight: '--plasma-dropdown-item-height',
109
+ itemMarginTop: '--plasma-dropdown-item-margin-top',
110
+ itemMarginRight: '--plasma-dropdown-item-margin-right',
111
+ itemMarginBottom: '--plasma-dropdown-item-margin-bottom',
112
+ itemMarginLeft: '--plasma-dropdown-item-margin-left',
113
+ itemContentLeftWidth: '--plasma-dropdown-item-content-left-width',
114
+ itemContentRightWidth: '--plasma-dropdown-item-content-right-width'
112
115
  };
@@ -0,0 +1,26 @@
1
+ import { useMemo } from 'react';
2
+ // Данный хук рекурсивно проходится по дереву items и создаем 2 мапы: мапу путей и мапу фокусов.
3
+ // Нужно для получения информации всей об item, зная только путь до нее.
4
+
5
+ export var useHashMaps = function useHashMaps(items) {
6
+ return useMemo(function () {
7
+ var pathMap = new Map();
8
+ var focusedToValueMap = new Map();
9
+ pathMap.set('root', items.length);
10
+ var rec = function rec(items) {
11
+ var prevIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
12
+ items.forEach(function (item, index) {
13
+ var value = item.value,
14
+ innerItems = item.items;
15
+ var currIndex = "".concat(prevIndex, "/").concat(index).replace(/^(\/)/, '');
16
+ focusedToValueMap.set(currIndex, item);
17
+ if (innerItems) {
18
+ pathMap.set(value, innerItems.length);
19
+ rec(innerItems, currIndex);
20
+ }
21
+ });
22
+ };
23
+ rec(items);
24
+ return [pathMap, focusedToValueMap];
25
+ }, [items]);
26
+ };
@@ -0,0 +1,215 @@
1
+ var JUMP_SIZE = 10;
2
+ export var keys = {
3
+ Enter: 'Enter',
4
+ Space: 'Space',
5
+ Tab: 'Tab',
6
+ Escape: 'Escape',
7
+ ArrowLeft: 'ArrowLeft',
8
+ ArrowRight: 'ArrowRight',
9
+ ArrowUp: 'ArrowUp',
10
+ ArrowDown: 'ArrowDown',
11
+ Home: 'Home',
12
+ End: 'End',
13
+ PageUp: 'PageUp',
14
+ PageDown: 'PageDown'
15
+ };
16
+ var getFurtherPath = function getFurtherPath(focusedPath, focusedToValueMap) {
17
+ var focusedPathAsString = focusedPath.reduce(function (acc, n) {
18
+ return "".concat(acc, "/").concat(n);
19
+ }, '').replace(/^(\/)/, '');
20
+ return focusedToValueMap.get(focusedPathAsString);
21
+ };
22
+ export var useKeyNavigation = function useKeyNavigation(_ref) {
23
+ var focusedPath = _ref.focusedPath,
24
+ dispatchFocusedPath = _ref.dispatchFocusedPath,
25
+ path = _ref.path,
26
+ dispatchPath = _ref.dispatchPath,
27
+ pathMap = _ref.pathMap,
28
+ focusedToValueMap = _ref.focusedToValueMap,
29
+ handleGlobalToggle = _ref.handleGlobalToggle,
30
+ closeOnSelect = _ref.closeOnSelect,
31
+ onItemSelect = _ref.onItemSelect,
32
+ onItemClick = _ref.onItemClick;
33
+ var currentLength = pathMap.get(path === null || path === void 0 ? void 0 : path[path.length - 1]) || 0;
34
+ var currentIndex = (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[focusedPath.length - 1]) || 0;
35
+ var onKeyDown = function onKeyDown(event) {
36
+ var code = event.code;
37
+ if (code === keys.ArrowUp) {
38
+ if (focusedPath.length) {
39
+ if (currentIndex <= 0) {
40
+ return;
41
+ }
42
+ dispatchFocusedPath({
43
+ type: 'change_last_focus',
44
+ value: currentIndex - 1
45
+ });
46
+ } else {
47
+ dispatchPath({
48
+ type: 'opened_first_level'
49
+ });
50
+ dispatchFocusedPath({
51
+ type: 'set_initial_focus'
52
+ });
53
+ handleGlobalToggle(true, event);
54
+ }
55
+ }
56
+ if (code === keys.ArrowDown) {
57
+ if (focusedPath.length) {
58
+ if (currentIndex + 1 >= currentLength) {
59
+ return;
60
+ }
61
+ dispatchFocusedPath({
62
+ type: 'change_last_focus',
63
+ value: currentIndex + 1
64
+ });
65
+ } else {
66
+ dispatchPath({
67
+ type: 'opened_first_level'
68
+ });
69
+ dispatchFocusedPath({
70
+ type: 'set_initial_focus'
71
+ });
72
+ handleGlobalToggle(true, event);
73
+ }
74
+ }
75
+ if (code === keys.ArrowLeft) {
76
+ if (focusedPath.length) {
77
+ dispatchPath({
78
+ type: 'removed_last_level'
79
+ });
80
+ dispatchFocusedPath({
81
+ type: 'return_prev_focus'
82
+ });
83
+ }
84
+ if (focusedPath.length === 1) {
85
+ handleGlobalToggle(false, event);
86
+ }
87
+ }
88
+ if (code === keys.ArrowRight) {
89
+ if (focusedPath.length) {
90
+ var currentItem = getFurtherPath(focusedPath, focusedToValueMap);
91
+ if (currentItem !== null && currentItem !== void 0 && currentItem.items) {
92
+ dispatchPath({
93
+ type: 'added_next_level',
94
+ value: currentItem.value.toString()
95
+ });
96
+ dispatchFocusedPath({
97
+ type: 'add_focus',
98
+ value: 0
99
+ });
100
+ }
101
+ }
102
+ }
103
+ if (code === keys.Enter || code === keys.Space) {
104
+ event.preventDefault();
105
+ if (path[0]) {
106
+ var _currentItem = getFurtherPath(focusedPath, focusedToValueMap);
107
+ if (_currentItem !== null && _currentItem !== void 0 && _currentItem.disabled || _currentItem !== null && _currentItem !== void 0 && _currentItem.isDisabled) {
108
+ return;
109
+ }
110
+ if (_currentItem !== null && _currentItem !== void 0 && _currentItem.items) {
111
+ dispatchPath({
112
+ type: 'added_next_level',
113
+ value: _currentItem.value.toString()
114
+ });
115
+ dispatchFocusedPath({
116
+ type: 'add_focus',
117
+ value: 0
118
+ });
119
+ } else {
120
+ if (closeOnSelect) {
121
+ handleGlobalToggle(false, event);
122
+ }
123
+ if (onItemSelect && _currentItem) {
124
+ onItemSelect(_currentItem, event);
125
+ }
126
+ if (onItemClick && _currentItem) {
127
+ onItemClick(_currentItem, event);
128
+ }
129
+ }
130
+ } else {
131
+ dispatchPath({
132
+ type: 'opened_first_level'
133
+ });
134
+ dispatchFocusedPath({
135
+ type: 'set_initial_focus'
136
+ });
137
+ }
138
+ }
139
+ if (code === keys.Tab || code === keys.Escape) {
140
+ dispatchFocusedPath({
141
+ type: 'reset'
142
+ });
143
+ dispatchPath({
144
+ type: 'reset'
145
+ });
146
+ handleGlobalToggle(false, event);
147
+ }
148
+ if (code === keys.Home) {
149
+ if (path[0]) {
150
+ dispatchFocusedPath({
151
+ type: 'change_last_focus',
152
+ value: 0
153
+ });
154
+ } else {
155
+ dispatchPath({
156
+ type: 'opened_first_level'
157
+ });
158
+ dispatchFocusedPath({
159
+ type: 'set_initial_focus'
160
+ });
161
+ handleGlobalToggle(true, event);
162
+ }
163
+ }
164
+ if (code === keys.End) {
165
+ if (path[0]) {
166
+ dispatchFocusedPath({
167
+ type: 'change_last_focus',
168
+ value: currentLength - 1
169
+ });
170
+ } else {
171
+ dispatchPath({
172
+ type: 'opened_first_level'
173
+ });
174
+ dispatchFocusedPath({
175
+ type: 'change_last_focus',
176
+ value: (pathMap.get('root') || 0) - 1
177
+ });
178
+ handleGlobalToggle(true, event);
179
+ }
180
+ }
181
+ if (code === keys.PageUp) {
182
+ if (path[0]) {
183
+ if (currentIndex <= JUMP_SIZE) {
184
+ dispatchFocusedPath({
185
+ type: 'change_last_focus',
186
+ value: 0
187
+ });
188
+ } else {
189
+ dispatchFocusedPath({
190
+ type: 'change_last_focus',
191
+ value: currentIndex - JUMP_SIZE
192
+ });
193
+ }
194
+ }
195
+ }
196
+ if (code === keys.PageDown) {
197
+ if (path[0]) {
198
+ if (currentLength - currentIndex <= JUMP_SIZE) {
199
+ dispatchFocusedPath({
200
+ type: 'change_last_focus',
201
+ value: currentLength - 1
202
+ });
203
+ } else {
204
+ dispatchFocusedPath({
205
+ type: 'change_last_focus',
206
+ value: currentIndex + JUMP_SIZE
207
+ });
208
+ }
209
+ }
210
+ }
211
+ };
212
+ return {
213
+ onKeyDown: onKeyDown
214
+ };
215
+ };
@@ -1,3 +1,4 @@
1
1
  export { dropdownRoot, dropdownConfig } from './Dropdown';
2
2
  export { classes as dropdownClasses, tokens as dropdownTokens } from './Dropdown.tokens';
3
+ export { useKeyNavigation as useDropdownKeyNavigation } from './hooks/useKeyboardNavigation';
3
4
  export * from './ui';
@@ -0,0 +1,34 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ export function focusedPathReducer(state, action) {
8
+ switch (action.type) {
9
+ case 'reset':
10
+ {
11
+ return [];
12
+ }
13
+ case 'set_initial_focus':
14
+ {
15
+ return [0];
16
+ }
17
+ case 'change_last_focus':
18
+ {
19
+ return [].concat(_toConsumableArray(state.slice(0, -1)), [action.value]);
20
+ }
21
+ case 'add_focus':
22
+ {
23
+ return [].concat(_toConsumableArray(state), [action.value]);
24
+ }
25
+ case 'return_prev_focus':
26
+ {
27
+ return _toConsumableArray(state.slice(0, -1));
28
+ }
29
+ default:
30
+ {
31
+ return state;
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,38 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ export function pathReducer(state, action) {
8
+ switch (action.type) {
9
+ case 'reset':
10
+ {
11
+ return [];
12
+ }
13
+ case 'opened_first_level':
14
+ {
15
+ return ['root'];
16
+ }
17
+ case 'added_next_level':
18
+ {
19
+ return [].concat(_toConsumableArray(state), [action.value]);
20
+ }
21
+ case 'removed_last_level':
22
+ {
23
+ return _toConsumableArray(state.slice(0, -1));
24
+ }
25
+ case 'changed_on_level':
26
+ {
27
+ return [].concat(_toConsumableArray(state.slice(0, action.level)), [action.value]);
28
+ }
29
+ case 'cut_by_level':
30
+ {
31
+ return state.slice(0, action.level);
32
+ }
33
+ default:
34
+ {
35
+ return state;
36
+ }
37
+ }
38
+ }