@salutejs/plasma-new-hope 0.78.0-canary.1203.8970261959.0 → 0.78.0-dev.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (450) hide show
  1. package/cjs/components/Calendar/Calendar.types.js.map +1 -1
  2. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +1 -3
  3. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  4. package/cjs/components/Calendar/hooks/useDays.js +3 -6
  5. package/cjs/components/Calendar/hooks/useDays.js.map +1 -1
  6. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +1 -2
  7. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  8. package/cjs/components/Combobox/Combobox.css +20 -7
  9. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +18 -6
  10. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +2 -2
  11. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +18 -6
  12. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +2 -2
  13. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +18 -6
  14. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +2 -2
  15. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +18 -6
  16. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +2 -2
  17. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.css +4 -23
  18. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +81 -10
  19. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  20. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +21 -9
  21. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  22. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +4 -0
  23. package/cjs/components/Combobox/utils/index.js +23 -0
  24. package/cjs/components/Combobox/utils/index.js.map +1 -0
  25. package/cjs/components/Dropdown/Dropdown.css +28 -2
  26. package/cjs/components/Dropdown/Dropdown.js +141 -54
  27. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  28. package/cjs/components/Dropdown/Dropdown.styles.js +40 -7
  29. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  30. package/cjs/components/Dropdown/Dropdown.styles_1tihqkp.css +3 -0
  31. package/cjs/components/Dropdown/Dropdown.tokens.js +26 -23
  32. package/cjs/components/Dropdown/Dropdown.tokens.js.map +1 -1
  33. package/cjs/components/Dropdown/hooks/useHashMaps.js +34 -0
  34. package/cjs/components/Dropdown/hooks/useHashMaps.js.map +1 -0
  35. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +247 -0
  36. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -0
  37. package/cjs/components/Dropdown/reducers/focusedPathReducer.js +37 -0
  38. package/cjs/components/Dropdown/reducers/focusedPathReducer.js.map +1 -0
  39. package/cjs/components/Dropdown/reducers/pathReducer.js +41 -0
  40. package/cjs/components/Dropdown/reducers/pathReducer.js.map +1 -0
  41. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +125 -0
  42. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -0
  43. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.css +7 -4
  44. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +79 -100
  45. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  46. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +31 -5
  47. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  48. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +5 -0
  49. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +30 -0
  50. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +1 -0
  51. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles_12e50g5.css +4 -0
  52. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +4 -0
  53. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +112 -0
  54. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -0
  55. package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +1 -1
  56. package/cjs/components/Dropdown/ui/DropdownItemOld/variations/_size/base.js.map +1 -0
  57. package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +1 -1
  58. package/cjs/components/Dropdown/ui/DropdownItemOld/variations/_view/base.js.map +1 -0
  59. package/cjs/components/Dropdown/ui/DropdownOld/Dropdown.styles.js +29 -0
  60. package/cjs/components/Dropdown/ui/DropdownOld/Dropdown.styles.js.map +1 -0
  61. package/cjs/components/Dropdown/ui/DropdownOld/Dropdown.styles_3w3l45.css +2 -0
  62. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.css +7 -0
  63. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +99 -0
  64. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -0
  65. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.js +115 -0
  66. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.js.map +1 -0
  67. package/cjs/components/Dropdown/ui/DropdownOld/utils/index.js +23 -0
  68. package/cjs/components/Dropdown/ui/DropdownOld/utils/index.js.map +1 -0
  69. package/cjs/components/Dropdown/ui/DropdownOld/variations/_size/base.js +9 -0
  70. package/cjs/components/Dropdown/ui/DropdownOld/variations/_size/base.js.map +1 -0
  71. package/cjs/components/Dropdown/ui/DropdownOld/variations/_view/base.js +9 -0
  72. package/cjs/components/Dropdown/ui/DropdownOld/variations/_view/base.js.map +1 -0
  73. package/cjs/components/Dropdown/utils/index.js +16 -0
  74. package/cjs/components/Dropdown/utils/index.js.map +1 -1
  75. package/cjs/components/Pagination/Pagination.css +17 -7
  76. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +17 -7
  77. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +1 -1
  78. package/cjs/components/Select/Select.css +17 -7
  79. package/cjs/components/Select/ui/SelectDivider/SelectDivider.css +18 -6
  80. package/cjs/components/Select/ui/SelectDivider/SelectDivider.js +2 -2
  81. package/cjs/components/Select/ui/SelectFooter/SelectFooter.css +18 -6
  82. package/cjs/components/Select/ui/SelectFooter/SelectFooter.js +2 -2
  83. package/cjs/components/Select/ui/SelectGroup/SelectGroup.css +18 -6
  84. package/cjs/components/Select/ui/SelectGroup/SelectGroup.js +2 -2
  85. package/cjs/components/Select/ui/SelectHeader/SelectHeader.css +18 -6
  86. package/cjs/components/Select/ui/SelectHeader/SelectHeader.js +2 -2
  87. package/cjs/components/Select/ui/SelectItem/SelectItem.css +19 -7
  88. package/cjs/components/Select/ui/SelectItem/SelectItem.js +3 -3
  89. package/cjs/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  90. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  91. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  92. package/cjs/components/Select/ui/SelectItem/{SelectItem.styles_6h17aw.css → SelectItem.styles_vk39mp.css} +1 -1
  93. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  94. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  95. package/cjs/index.css +21 -8
  96. package/cjs/index.js +13 -2
  97. package/cjs/index.js.map +1 -1
  98. package/es/components/Calendar/Calendar.types.js.map +1 -1
  99. package/es/components/Calendar/CalendarBase/CalendarBase.js +1 -3
  100. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  101. package/es/components/Calendar/hooks/useDays.js +3 -6
  102. package/es/components/Calendar/hooks/useDays.js.map +1 -1
  103. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +1 -2
  104. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  105. package/es/components/Combobox/Combobox.css +20 -7
  106. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +18 -6
  107. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +2 -2
  108. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +18 -6
  109. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +2 -2
  110. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +18 -6
  111. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +2 -2
  112. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +18 -6
  113. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +2 -2
  114. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.css +4 -23
  115. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +82 -11
  116. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  117. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +19 -10
  118. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  119. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +4 -0
  120. package/es/components/Combobox/utils/index.js +19 -0
  121. package/es/components/Combobox/utils/index.js.map +1 -0
  122. package/es/components/Dropdown/Dropdown.css +28 -2
  123. package/es/components/Dropdown/Dropdown.js +147 -60
  124. package/es/components/Dropdown/Dropdown.js.map +1 -1
  125. package/es/components/Dropdown/Dropdown.styles.js +39 -7
  126. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  127. package/es/components/Dropdown/Dropdown.styles_1tihqkp.css +3 -0
  128. package/es/components/Dropdown/Dropdown.tokens.js +26 -23
  129. package/es/components/Dropdown/Dropdown.tokens.js.map +1 -1
  130. package/es/components/Dropdown/hooks/useHashMaps.js +30 -0
  131. package/es/components/Dropdown/hooks/useHashMaps.js.map +1 -0
  132. package/es/components/Dropdown/hooks/useKeyboardNavigation.js +242 -0
  133. package/es/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -0
  134. package/es/components/Dropdown/reducers/focusedPathReducer.js +33 -0
  135. package/es/components/Dropdown/reducers/focusedPathReducer.js.map +1 -0
  136. package/es/components/Dropdown/reducers/pathReducer.js +37 -0
  137. package/es/components/Dropdown/reducers/pathReducer.js.map +1 -0
  138. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +121 -0
  139. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -0
  140. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.css +7 -4
  141. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +80 -100
  142. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  143. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +30 -5
  144. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  145. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +5 -0
  146. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +23 -0
  147. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +1 -0
  148. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles_12e50g5.css +4 -0
  149. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +4 -0
  150. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +107 -0
  151. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -0
  152. package/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +1 -1
  153. package/es/components/Dropdown/ui/DropdownItemOld/variations/_size/base.js.map +1 -0
  154. package/es/components/Dropdown/ui/DropdownItemOld/variations/_size/base_x642ct.css +1 -0
  155. package/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +1 -1
  156. package/es/components/Dropdown/ui/DropdownItemOld/variations/_view/base.js.map +1 -0
  157. package/es/components/Dropdown/ui/DropdownItemOld/variations/_view/base_x642ct.css +1 -0
  158. package/es/components/Dropdown/ui/DropdownOld/Dropdown.styles.js +24 -0
  159. package/es/components/Dropdown/ui/DropdownOld/Dropdown.styles.js.map +1 -0
  160. package/es/components/Dropdown/ui/DropdownOld/Dropdown.styles_3w3l45.css +2 -0
  161. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.css +7 -0
  162. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +94 -0
  163. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -0
  164. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.js +111 -0
  165. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.js.map +1 -0
  166. package/es/components/Dropdown/ui/DropdownOld/utils/index.js +18 -0
  167. package/es/components/Dropdown/ui/DropdownOld/utils/index.js.map +1 -0
  168. package/es/components/Dropdown/ui/DropdownOld/variations/_size/base.js +5 -0
  169. package/es/components/Dropdown/ui/DropdownOld/variations/_size/base.js.map +1 -0
  170. package/es/components/Dropdown/ui/DropdownOld/variations/_size/base_x642ct.css +1 -0
  171. package/es/components/Dropdown/ui/DropdownOld/variations/_view/base.js +5 -0
  172. package/es/components/Dropdown/ui/DropdownOld/variations/_view/base.js.map +1 -0
  173. package/es/components/Dropdown/ui/DropdownOld/variations/_view/base_x642ct.css +1 -0
  174. package/es/components/Dropdown/utils/index.js +16 -2
  175. package/es/components/Dropdown/utils/index.js.map +1 -1
  176. package/es/components/Pagination/Pagination.css +17 -7
  177. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +17 -7
  178. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +1 -1
  179. package/es/components/Select/Select.css +17 -7
  180. package/es/components/Select/ui/SelectDivider/SelectDivider.css +18 -6
  181. package/es/components/Select/ui/SelectDivider/SelectDivider.js +2 -2
  182. package/es/components/Select/ui/SelectFooter/SelectFooter.css +18 -6
  183. package/es/components/Select/ui/SelectFooter/SelectFooter.js +2 -2
  184. package/es/components/Select/ui/SelectGroup/SelectGroup.css +18 -6
  185. package/es/components/Select/ui/SelectGroup/SelectGroup.js +2 -2
  186. package/es/components/Select/ui/SelectHeader/SelectHeader.css +18 -6
  187. package/es/components/Select/ui/SelectHeader/SelectHeader.js +2 -2
  188. package/es/components/Select/ui/SelectItem/SelectItem.css +19 -7
  189. package/es/components/Select/ui/SelectItem/SelectItem.js +3 -3
  190. package/es/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  191. package/es/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  192. package/es/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  193. package/es/components/Select/ui/SelectItem/{SelectItem.styles_6h17aw.css → SelectItem.styles_vk39mp.css} +1 -1
  194. package/es/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  195. package/es/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  196. package/es/index.css +21 -8
  197. package/es/index.js +6 -1
  198. package/es/index.js.map +1 -1
  199. package/package.json +2 -2
  200. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +1 -3
  201. package/styled-components/cjs/components/Calendar/hooks/useDays.js +3 -6
  202. package/styled-components/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +1 -2
  203. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +91 -2
  204. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +27 -7
  205. package/styled-components/cjs/components/Combobox/utils/index.js +23 -0
  206. package/styled-components/cjs/components/Dropdown/Dropdown.js +140 -54
  207. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +22 -7
  208. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +325 -66
  209. package/styled-components/cjs/components/Dropdown/Dropdown.tokens.js +26 -23
  210. package/styled-components/cjs/components/Dropdown/hooks/useHashMaps.js +32 -0
  211. package/styled-components/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +249 -0
  212. package/styled-components/cjs/components/Dropdown/index.js +9 -1
  213. package/styled-components/cjs/components/Dropdown/reducers/focusedPathReducer.js +40 -0
  214. package/styled-components/cjs/components/Dropdown/reducers/pathReducer.js +44 -0
  215. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +117 -0
  216. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +5 -0
  217. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +77 -105
  218. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +24 -19
  219. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +33 -0
  220. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.js +5 -0
  221. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +119 -0
  222. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/Dropdown.styles.js +19 -0
  223. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/Dropdown.types.js +5 -0
  224. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +101 -0
  225. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.js +118 -0
  226. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/utils/index.js +21 -0
  227. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/variations/_size/base.js +8 -0
  228. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/variations/_size/tokens.json +1 -0
  229. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/variations/_view/base.js +8 -0
  230. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/variations/_view/tokens.json +1 -0
  231. package/styled-components/cjs/components/Dropdown/ui/index.js +39 -5
  232. package/styled-components/cjs/components/Dropdown/utils/index.js +15 -1
  233. package/styled-components/cjs/components/Dropdown/variations/_size/tokens.json +1 -9
  234. package/styled-components/cjs/components/Dropdown/variations/_view/tokens.json +1 -1
  235. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.js +1 -1
  236. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +1 -1
  237. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  238. package/styled-components/cjs/examples/plasma_b2c/components/Calendar/Calendar.stories.tsx +6 -18
  239. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +25 -0
  240. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.js +11 -0
  241. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +292 -0
  242. package/styled-components/cjs/examples/plasma_web/components/Calendar/Calendar.stories.tsx +6 -18
  243. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Dropdown.config.js +25 -0
  244. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Dropdown.js +11 -0
  245. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +292 -0
  246. package/styled-components/cjs/examples/sds_engineer/components/Calendar/Calendar.stories.tsx +6 -18
  247. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +1 -3
  248. package/styled-components/es/components/Calendar/hooks/useDays.js +3 -6
  249. package/styled-components/es/components/Calendar/ui/CalendarDays/CalendarDays.js +1 -2
  250. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +90 -3
  251. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +23 -6
  252. package/styled-components/es/components/Combobox/utils/index.js +15 -0
  253. package/styled-components/es/components/Dropdown/Dropdown.js +142 -55
  254. package/styled-components/es/components/Dropdown/Dropdown.styles.js +18 -5
  255. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +325 -66
  256. package/styled-components/es/components/Dropdown/Dropdown.tokens.js +26 -23
  257. package/styled-components/es/components/Dropdown/hooks/useHashMaps.js +26 -0
  258. package/styled-components/es/components/Dropdown/hooks/useKeyboardNavigation.js +243 -0
  259. package/styled-components/es/components/Dropdown/index.js +1 -0
  260. package/styled-components/es/components/Dropdown/reducers/focusedPathReducer.js +34 -0
  261. package/styled-components/es/components/Dropdown/reducers/pathReducer.js +38 -0
  262. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +111 -0
  263. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +1 -0
  264. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +78 -107
  265. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +21 -15
  266. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +25 -0
  267. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.js +1 -0
  268. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +111 -0
  269. package/styled-components/es/components/Dropdown/ui/DropdownOld/Dropdown.styles.js +13 -0
  270. package/styled-components/es/components/Dropdown/ui/DropdownOld/Dropdown.types.js +1 -0
  271. package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +92 -0
  272. package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.js +112 -0
  273. package/styled-components/es/components/Dropdown/ui/DropdownOld/utils/index.js +15 -0
  274. package/styled-components/es/components/Dropdown/ui/DropdownOld/variations/_size/base.js +2 -0
  275. package/styled-components/es/components/Dropdown/ui/DropdownOld/variations/_size/tokens.json +1 -0
  276. package/styled-components/es/components/Dropdown/ui/DropdownOld/variations/_view/base.js +2 -0
  277. package/styled-components/es/components/Dropdown/ui/DropdownOld/variations/_view/tokens.json +1 -0
  278. package/styled-components/es/components/Dropdown/ui/index.js +5 -1
  279. package/styled-components/es/components/Dropdown/utils/index.js +15 -1
  280. package/styled-components/es/components/Dropdown/variations/_size/tokens.json +1 -9
  281. package/styled-components/es/components/Dropdown/variations/_view/tokens.json +1 -1
  282. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.js +2 -2
  283. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.styles.js +1 -1
  284. package/styled-components/es/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  285. package/styled-components/es/examples/plasma_b2c/components/Calendar/Calendar.stories.tsx +6 -18
  286. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +19 -0
  287. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.js +5 -0
  288. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +292 -0
  289. package/styled-components/es/examples/plasma_web/components/Calendar/Calendar.stories.tsx +6 -18
  290. package/styled-components/es/examples/plasma_web/components/Dropdown/Dropdown.config.js +19 -0
  291. package/styled-components/es/examples/plasma_web/components/Dropdown/Dropdown.js +5 -0
  292. package/styled-components/es/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +292 -0
  293. package/styled-components/es/examples/sds_engineer/components/Calendar/Calendar.stories.tsx +6 -18
  294. package/types/components/Calendar/Calendar.types.d.ts +0 -4
  295. package/types/components/Calendar/Calendar.types.d.ts.map +1 -1
  296. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  297. package/types/components/Calendar/hooks/useDays.d.ts +1 -1
  298. package/types/components/Calendar/hooks/useDays.d.ts.map +1 -1
  299. package/types/components/Calendar/ui/CalendarDays/CalendarDays.d.ts.map +1 -1
  300. package/types/components/Calendar/ui/CalendarDays/CalendarDays.types.d.ts +0 -1
  301. package/types/components/Calendar/ui/CalendarDays/CalendarDays.types.d.ts.map +1 -1
  302. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts +15 -13
  303. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  304. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts +5 -1
  305. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts.map +1 -1
  306. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts +59 -2
  307. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts.map +1 -1
  308. package/types/components/Combobox/utils/index.d.ts +4 -0
  309. package/types/components/Combobox/utils/index.d.ts.map +1 -0
  310. package/types/components/Dropdown/Dropdown.d.ts +4 -4
  311. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  312. package/types/components/Dropdown/Dropdown.styles.d.ts +8 -1
  313. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  314. package/types/components/Dropdown/Dropdown.tokens.d.ts +24 -22
  315. package/types/components/Dropdown/Dropdown.tokens.d.ts.map +1 -1
  316. package/types/components/Dropdown/Dropdown.types.d.ts +64 -40
  317. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  318. package/types/components/Dropdown/hooks/useHashMaps.d.ts +6 -0
  319. package/types/components/Dropdown/hooks/useHashMaps.d.ts.map +1 -0
  320. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts +37 -0
  321. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts.map +1 -0
  322. package/types/components/Dropdown/index.d.ts +3 -1
  323. package/types/components/Dropdown/index.d.ts.map +1 -1
  324. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts +16 -0
  325. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts.map +1 -0
  326. package/types/components/Dropdown/reducers/pathReducer.d.ts +20 -0
  327. package/types/components/Dropdown/reducers/pathReducer.d.ts.map +1 -0
  328. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts +5 -0
  329. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -0
  330. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +26 -0
  331. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +1 -0
  332. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts +2 -56
  333. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
  334. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts +5 -2
  335. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts.map +1 -1
  336. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +44 -38
  337. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  338. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.d.ts +7 -0
  339. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.d.ts.map +1 -0
  340. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.d.ts +60 -0
  341. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItem.type.d.ts.map +1 -0
  342. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +58 -0
  343. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -0
  344. package/types/components/Dropdown/ui/DropdownItemOld/variations/_size/base.d.ts.map +1 -0
  345. package/types/components/Dropdown/ui/DropdownItemOld/variations/_view/base.d.ts.map +1 -0
  346. package/types/components/Dropdown/ui/DropdownOld/Dropdown.styles.d.ts +8 -0
  347. package/types/components/Dropdown/ui/DropdownOld/Dropdown.styles.d.ts.map +1 -0
  348. package/types/components/Dropdown/ui/DropdownOld/Dropdown.types.d.ts +76 -0
  349. package/types/components/Dropdown/ui/DropdownOld/Dropdown.types.d.ts.map +1 -0
  350. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +26 -0
  351. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -0
  352. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.d.ts +113 -0
  353. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.tokens.d.ts.map +1 -0
  354. package/types/components/Dropdown/ui/DropdownOld/utils/index.d.ts +4 -0
  355. package/types/components/Dropdown/ui/DropdownOld/utils/index.d.ts.map +1 -0
  356. package/types/components/Dropdown/ui/DropdownOld/variations/_size/base.d.ts +2 -0
  357. package/types/components/Dropdown/ui/DropdownOld/variations/_size/base.d.ts.map +1 -0
  358. package/types/components/Dropdown/ui/DropdownOld/variations/_view/base.d.ts +2 -0
  359. package/types/components/Dropdown/ui/DropdownOld/variations/_view/base.d.ts.map +1 -0
  360. package/types/components/Dropdown/ui/index.d.ts +5 -1
  361. package/types/components/Dropdown/ui/index.d.ts.map +1 -1
  362. package/types/components/Dropdown/utils/index.d.ts +5 -2
  363. package/types/components/Dropdown/utils/index.d.ts.map +1 -1
  364. package/types/components/Select/ui/SelectItem/SelectItem.d.ts +2 -2
  365. package/types/components/Select/ui/SelectItem/SelectItem.d.ts.map +1 -1
  366. package/types/components/Select/ui/SelectItem/SelectItem.type.d.ts +2 -2
  367. package/types/components/Select/utils/index.d.ts +1 -1
  368. package/types/components/_Icon/Icon.assets/DisclosureRight.d.ts.map +1 -1
  369. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts.map +1 -0
  370. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts +13 -0
  371. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts.map +1 -0
  372. package/types/examples/plasma_web/components/Dropdown/Dropdown.config.d.ts.map +1 -0
  373. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts +13 -0
  374. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts.map +1 -0
  375. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +0 -1
  376. package/cjs/components/Dropdown/Dropdown.styles_1daxhqh.css +0 -2
  377. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +0 -4
  378. package/cjs/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +0 -1
  379. package/cjs/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +0 -1
  380. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +0 -1
  381. package/es/components/Dropdown/Dropdown.styles_1daxhqh.css +0 -2
  382. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +0 -4
  383. package/es/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +0 -1
  384. package/es/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +0 -1
  385. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +0 -19
  386. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +0 -9
  387. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +0 -27
  388. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +0 -13
  389. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +0 -194
  390. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +0 -27
  391. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +0 -13
  392. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  393. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +0 -27
  394. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +0 -13
  395. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +0 -195
  396. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +0 -27
  397. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +0 -13
  398. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  399. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.config.js +0 -22
  400. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.js +0 -21
  401. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +0 -277
  402. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +0 -19
  403. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +0 -9
  404. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +0 -21
  405. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +0 -7
  406. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +0 -194
  407. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +0 -21
  408. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +0 -7
  409. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  410. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +0 -21
  411. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +0 -7
  412. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +0 -195
  413. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +0 -21
  414. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +0 -7
  415. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  416. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.config.js +0 -16
  417. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.js +0 -15
  418. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +0 -277
  419. package/types/components/Dropdown/ui/DropdownItem/variations/_size/base.d.ts.map +0 -1
  420. package/types/components/Dropdown/ui/DropdownItem/variations/_view/base.d.ts.map +0 -1
  421. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.d.ts.map +0 -1
  422. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts +0 -30
  423. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts.map +0 -1
  424. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.d.ts.map +0 -1
  425. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts +0 -30
  426. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts.map +0 -1
  427. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts +0 -18
  428. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts.map +0 -1
  429. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts +0 -30
  430. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts.map +0 -1
  431. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts +0 -18
  432. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts.map +0 -1
  433. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts +0 -30
  434. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts.map +0 -1
  435. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts +0 -15
  436. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts.map +0 -1
  437. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts +0 -51
  438. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts.map +0 -1
  439. /package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base_x642ct.css +0 -0
  440. /package/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base_x642ct.css +0 -0
  441. /package/{es/components/Dropdown/ui/DropdownItem → cjs/components/Dropdown/ui/DropdownOld}/variations/_size/base_x642ct.css +0 -0
  442. /package/{es/components/Dropdown/ui/DropdownItem → cjs/components/Dropdown/ui/DropdownOld}/variations/_view/base_x642ct.css +0 -0
  443. /package/styled-components/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +0 -0
  444. /package/styled-components/cjs/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +0 -0
  445. /package/styled-components/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.js +0 -0
  446. /package/styled-components/es/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.js +0 -0
  447. /package/types/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_size/base.d.ts +0 -0
  448. /package/types/components/Dropdown/ui/{DropdownItem → DropdownItemOld}/variations/_view/base.d.ts +0 -0
  449. /package/types/examples/plasma_b2c/components/Dropdown/{Normal/Dropdown.config.d.ts → Dropdown.config.d.ts} +0 -0
  450. /package/types/examples/{plasma_b2c/components/Dropdown/Tight → plasma_web/components/Dropdown}/Dropdown.config.d.ts +0 -0
@@ -3,78 +3,337 @@ id: dropdown
3
3
  title: Dropdown
4
4
  ---
5
5
 
6
- import { PropsTable, Description } from '@site/src/components';
6
+ import { PropsTable, Description, StorybookLink } from '@site/src/components';
7
+ import Tabs from '@theme/Tabs';
8
+ import TabItem from '@theme/TabItem';
7
9
 
8
10
  # Dropdown
9
- Набор компонентов для создания выпадающих списков.
11
+ Выпадающий многоуровневый список.
12
+
13
+ <StorybookLink name="Dropdown" />
10
14
 
11
15
  <Description name="Dropdown" />
12
- <PropsTable name="Dropdown" exclude={['css']} />
16
+ <PropsTable name="Dropdown" />
13
17
 
14
- # DropdownItem
18
+ ## Использование
19
+ Обязательным параметром является только массив `items`. Внутри items может быть такой же вложенный массив items. Формат следующий:
15
20
 
16
- <Description name="DropdownItem" />
17
- <PropsTable name="DropdownItem" exclude={['css']} />
21
+ ```tsx
22
+ type Items = Array<{
23
+ /**
24
+ * Значение у item
25
+ */
26
+ value: string | number;
27
+ /**
28
+ * Метка-подпись к item
29
+ */
30
+ label: string;
31
+ /**
32
+ * Список дочерних items.
33
+ */
34
+ items?: Items;
35
+ /**
36
+ * Item не активен
37
+ */
38
+ disabled?: boolean;
39
+ /**
40
+ * Слот для контента слева
41
+ */
42
+ contentLeft?: ReactNode;
43
+ /**
44
+ * Слот для контента справа
45
+ */
46
+ contentRight?: ReactNode;
47
+ /**
48
+ * Выбранный item.
49
+ * @deprecated использовать ContentLeft || ContentRight
50
+ */
51
+ isActive?: boolean;
52
+ /**
53
+ * Кастомный цвет текста
54
+ * @deprecated
55
+ */
56
+ color?: string;
57
+ /**
58
+ * Айтем не активен
59
+ * @deprecated использовать disabled
60
+ */
61
+ isDisabled?: boolean;
62
+ }>;
63
+ ```
18
64
 
19
- ## Использование
65
+ ## Примеры
66
+
67
+ <Tabs>
68
+ <TabItem value="default" label="Default" default>
69
+ ```tsx live
70
+ import React from 'react';
71
+ import { Button, Dropdown } from '@salutejs/plasma-web';
20
72
 
21
- ```tsx live
22
- import React, { useState } from 'react';
23
- import { Dropdown, DropdownItem } from '@salutejs/{{ package }}';
24
- import { surfaceSolidSecondary } from '@salutejs/{{ theme }}';
25
-
26
- export function App() {
27
- const [selected, setSelected] = useState('');
28
- const [isOpen, setIsOpen] = useState(false);
29
-
30
- const handleSelect = (value: string, text: string) => {
31
- setSelected(value);
32
- setIsOpen(false);
33
- };
34
-
35
- const getDropdownItems = (slug: string, elemCount: number) =>
36
- [...Array(elemCount).keys()].map((num) => ({
37
- value: `${slug}_${num}`,
38
- child: `${slug} ${num}`,
39
- }));
40
-
41
- return (
42
- <div style=\{{height: "400px", background: surfaceSolidSecondary, padding: "1rem" }}>
43
- <Dropdown
44
- target={<Button>Target</Button>}
45
- isOpen={isOpen}
46
- onToggle={() => {
47
- setIsOpen(!isOpen);
48
- }}
49
- offset={[10, 15]}
50
- view="primary"
51
- size="m"
52
- placement="right"
53
- trigger="click"
54
- closeOnOverlayClick={false}
55
- closeOnEsc
56
- isFocusTrapped
57
- >
58
- {getDropdownItems('item', 6).map((item) => (
59
- <DropdownItem
60
- key={item.value}
61
- isSelected={Boolean(item.value === selected)}
62
- onSelect={() => handleSelect(item.value, item.child)}
63
- value={item.value}
64
- >
65
- {item.child}
66
- </DropdownItem>
67
- ))}
68
- <DropdownItem
69
- isSelected={selected === 'disabled'}
70
- onSelect={() => handleSelect('disabled', 'disabled')}
71
- value="disabled"
72
- disabled
73
+ export function App() {
74
+ const items = [
75
+ {
76
+ value: 'north_america',
77
+ label: 'Северная Америка',
78
+ },
79
+ {
80
+ value: 'south_america',
81
+ label: 'Южная Америка',
82
+ items: [
83
+ {
84
+ value: 'brazil',
85
+ label: 'Бразилия',
86
+ items: [
87
+ {
88
+ value: 'rio_de_janeiro',
89
+ label: 'Рио-де-Жанейро',
90
+ },
91
+ {
92
+ value: 'sao_paulo',
93
+ label: 'Сан-Паулу',
94
+ },
95
+ ],
96
+ },
97
+ {
98
+ value: 'argentina',
99
+ label: 'Аргентина',
100
+ },
101
+ ],
102
+ },
103
+ ];
104
+
105
+
106
+ return (
107
+ <div style={{ height:"300px" }}>
108
+ <Dropdown
109
+ items={items}
73
110
  >
74
- disabled
75
- </DropdownItem>
76
- </Dropdown>
77
- </div>
78
- );
79
- }
80
- ```
111
+ <Button text="Список стран" />
112
+ </Dropdown>
113
+ </div>
114
+ );
115
+ }
116
+ ```
117
+ </TabItem>
118
+
119
+ <TabItem value="size" label="Size">
120
+ Размер `Dropdown` задается с помощью свойства `size`.<br />
121
+ Возможные значения свойства: `"l"`, `"m"`, `"s"` или `"xs"`.
122
+
123
+ ```tsx live
124
+ import React from 'react';
125
+ import { Button, Dropdown } from '@salutejs/plasma-web';
126
+
127
+ export function App() {
128
+ const items = [
129
+ {
130
+ value: 'north_america',
131
+ label: 'Северная Америка',
132
+ },
133
+ {
134
+ value: 'south_america',
135
+ label: 'Южная Америка',
136
+ items: [
137
+ {
138
+ value: 'brazil',
139
+ label: 'Бразилия',
140
+ items: [
141
+ {
142
+ value: 'rio_de_janeiro',
143
+ label: 'Рио-де-Жанейро',
144
+ },
145
+ {
146
+ value: 'sao_paulo',
147
+ label: 'Сан-Паулу',
148
+ },
149
+ ],
150
+ },
151
+ {
152
+ value: 'argentina',
153
+ label: 'Аргентина',
154
+ },
155
+ ],
156
+ },
157
+ ];
158
+
159
+ return (
160
+ <div style={{ height: "300px", display: "flex", gap: "50px" }}>
161
+ <Dropdown
162
+ items={items}
163
+ size="l"
164
+ >
165
+ <Button text="Список стран" />
166
+ </Dropdown>
167
+
168
+ <Dropdown
169
+ items={items}
170
+ size="m" // default
171
+ >
172
+ <Button text="Список стран" />
173
+ </Dropdown>
174
+
175
+ <Dropdown
176
+ items={items}
177
+ size="s"
178
+ >
179
+ <Button text="Список стран" />
180
+ </Dropdown>
181
+
182
+ <Dropdown
183
+ items={items}
184
+ size="xs"
185
+ >
186
+ <Button text="Список стран" />
187
+ </Dropdown>
188
+ </div>
189
+ );
190
+ }
191
+ ```
192
+ </TabItem>
193
+
194
+ <TabItem value="placement" label="Placement">
195
+ Параметр `placement` принимает либо строку: `"top"`, `"right"`, `"bottom"`, `"left"`, `"auto"`, либо массив этих же значений, например: `["top", "bottom"]`.<br />
196
+ Default value для placement - `"bottom"`.
197
+
198
+ ```tsx live
199
+ import React from 'react';
200
+ import { Button, Dropdown } from '@salutejs/plasma-web';
201
+
202
+ export function App() {
203
+ const items = [
204
+ {
205
+ value: 'north_america',
206
+ label: 'Северная Америка',
207
+ },
208
+ {
209
+ value: 'south_america',
210
+ label: 'Южная Америка',
211
+ items: [
212
+ {
213
+ value: 'brazil',
214
+ label: 'Бразилия',
215
+ items: [
216
+ {
217
+ value: 'rio_de_janeiro',
218
+ label: 'Рио-де-Жанейро',
219
+ },
220
+ {
221
+ value: 'sao_paulo',
222
+ label: 'Сан-Паулу',
223
+ },
224
+ ],
225
+ },
226
+ {
227
+ value: 'argentina',
228
+ label: 'Аргентина',
229
+ },
230
+ ],
231
+ },
232
+ ];
233
+
234
+ return (
235
+ <div style={{ height: "300px", display: "flex", gap: "50px" }}>
236
+ <Dropdown
237
+ items={items}
238
+ >
239
+ <Button text="Список стран" />
240
+ </Dropdown>
241
+
242
+ <Dropdown
243
+ items={items}
244
+ placement="right"
245
+ >
246
+ <Button text="Список стран" />
247
+ </Dropdown>
248
+
249
+ <Dropdown
250
+ items={items}
251
+ placement="left"
252
+ >
253
+ <Button text="Список стран" />
254
+ </Dropdown>
255
+
256
+ <Dropdown
257
+ items={items}
258
+ placement={['top', 'bottom']}
259
+ >
260
+ <Button text="Список стран" />
261
+ </Dropdown>
262
+ </div>
263
+ );
264
+ }
265
+ ```
266
+ </TabItem>
267
+
268
+ <TabItem value="trigger" label="Trigger">
269
+ Параметр `trigger` принимает строку: `"click"` или `"hover"`.<br />
270
+ Default value - `"click"`.<br />
271
+ Для примера показано значение `"hover"`.
272
+
273
+ ```tsx live
274
+ import React from 'react';
275
+ import { Button, Dropdown } from '@salutejs/plasma-web';
276
+
277
+ export function App() {
278
+ const items = [
279
+ {
280
+ value: 'north_america',
281
+ label: 'Северная Америка',
282
+ },
283
+ {
284
+ value: 'south_america',
285
+ label: 'Южная Америка',
286
+ items: [
287
+ {
288
+ value: 'brazil',
289
+ label: 'Бразилия',
290
+ items: [
291
+ {
292
+ value: 'rio_de_janeiro',
293
+ label: 'Рио-де-Жанейро',
294
+ },
295
+ {
296
+ value: 'sao_paulo',
297
+ label: 'Сан-Паулу',
298
+ },
299
+ ],
300
+ },
301
+ {
302
+ value: 'argentina',
303
+ label: 'Аргентина',
304
+ },
305
+ ],
306
+ },
307
+ ];
308
+
309
+
310
+ return (
311
+ <div style={{ height:"300px" }}>
312
+ <Dropdown
313
+ items={items}
314
+ trigger="hover"
315
+ >
316
+ <Button text="Список стран" />
317
+ </Dropdown>
318
+ </div>
319
+ );
320
+ }
321
+ ```
322
+ </TabItem>
323
+ </Tabs>
324
+
325
+ ## Клавиатурная навигация
326
+
327
+ Данный компонент соответствует требования W3C: [Combobox](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/) и частично [TreeView](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/).
328
+
329
+ - `Tab` - закрывает дропдаун. Перемещает фокус на следующий элемент на странице;
330
+ - `Enter` - открывает/закрывает дропдаун. Если на элементе - выбирает его;
331
+ - `Space` - открывает/закрывает дропдаун. Если на элементе - выбирает его;
332
+ - `Home` - открывает дропдаун и перемещает фокус на первый элемент;
333
+ - `End` - открывает дропдаун и перемещает фокус на последний элемент;
334
+ - `PageUp` - перемещает фокус на 10 элементов выше либо в начало списка;
335
+ - `PageDown` - перемещает фокус на 10 элементов ниже либо в конце списка;
336
+ - `ArrowUp` - открывает дропдаун и перемещает фокус на первый элемент. Перемещает фокус на один элемент выше;
337
+ - `ArrowDown` - открывает дропдаун и перемещает фокус на первый элемент. Перемещает фокус на один элемент ниже;
338
+ - `ArrowRight` - если фокус на элементе вложенного списка - открывает его и перемещает фокус на первый элемент;
339
+ - `ArrowLeft` - закрывает текущий список и перемещает фокус на предыдущий;
@@ -5,47 +5,38 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.tokens = exports.classes = void 0;
7
7
  var classes = exports.classes = {
8
- dropdownItemIsSelected: 'dropdown-item-is-selected',
9
- dropdownItemIsDisabled: 'dropdown-item-is-disabled'
8
+ dropdownRoot: 'dropdown-root',
9
+ dropdownItemIsFocused: 'dropdown-item-is-focused',
10
+ dropdownItemIsDisabled: 'dropdown-item-is-disabled',
11
+ dropdownItemIsActive: 'dropdown-item-is-active',
12
+ dropdownItemIsSelected: 'dropdownItemIsSelected'
10
13
  };
11
14
  var tokens = exports.tokens = {
12
15
  background: '--plasma-dropdown-background',
13
16
  boxShadow: '--plasma-dropdown-box-shadow',
14
17
  width: '--plasma-dropdown-width',
15
- height: '--plasma-dropdown-height',
16
18
  borderRadius: '--plasma-dropdown-border-radius',
17
- paddingTop: '--plasma-dropdown-padding-top',
18
- paddingRight: '--plasma-dropdown-padding-right',
19
- paddingBottom: '--plasma-dropdown-padding-bottom',
20
- paddingLeft: '--plasma-dropdown-padding-left',
19
+ padding: '--plasma-dropdown-padding',
20
+ disclosureIconColor: '--plasma-dropdown-disclosure-icon-color',
21
21
  itemBackground: '--plasma-dropdown-item-background',
22
22
  itemColor: '--plasma-dropdown-item-color',
23
23
  itemBackgroundHover: '--plasma-dropdown-item-background-hover',
24
- itemBackgroundSelected: '--plasma-dropdown-item-background-selected',
25
- itemColorSelected: '--plasma-dropdown-item-color-selected',
26
- itemBackgroundSelectedHover: '--plasma-dropdown-item-background-selected-hover',
27
- itemColorSelectedHover: '--plasma-dropdown-item-color-selected-hover',
28
- itemWidth: '--plasma-dropdown-item-width',
29
- itemHeight: '--plasma-dropdown-item-height',
30
24
  itemBorderRadius: '--plasma-dropdown-item-border-radius',
31
25
  itemPaddingTop: '--plasma-dropdown-item-padding-top',
26
+ itemPaddingTopTight: '--plasma-dropdown-item-padding-top-tight',
32
27
  itemPaddingRight: '--plasma-dropdown-item-padding-right',
33
28
  itemPaddingBottom: '--plasma-dropdown-item-padding-bottom',
29
+ itemPaddingBottomTight: '--plasma-dropdown-item-padding-bottom-tight',
34
30
  itemPaddingLeft: '--plasma-dropdown-item-padding-left',
35
- itemMarginTop: '--plasma-dropdown-item-margin-top',
36
- itemMarginRight: '--plasma-dropdown-item-margin-right',
37
- itemMarginBottom: '--plasma-dropdown-item-margin-bottom',
38
- itemMarginLeft: '--plasma-dropdown-item-margin-left',
39
31
  itemFontFamily: '--plasma-dropdown-item-font-family',
40
32
  itemFontSize: '--plasma-dropdown-item-font-size',
41
33
  itemFontStyle: '--plasma-dropdown-item-font-style',
42
34
  itemFontWeightBold: '--plasma-dropdown-item-letter-spacing',
43
35
  itemFontLetterSpacing: '--plasma-dropdown-item-line-height',
44
36
  itemFontLineHeight: '--plasma-dropdown-item-font-weight',
45
- itemContentLeftColor: '--plasma-dropdown-item-content-left-color',
46
- itemContentRightColor: '--plasma-dropdown-item-content-right-color',
47
- itemContentLeftWidth: '--plasma-dropdown-item-content-left-width',
48
- itemContentRightWidth: '--plasma-dropdown-item-content-right-width',
37
+ disabledOpacity: '--plasma-dropdown-disabled-opacity',
38
+ focusColor: '--plasma-dropdown-focus-color',
39
+ // TODO: Remove below tokens as soon as they are no longer needed
49
40
  footerBackground: '--plasma-dropdown-footer-background',
50
41
  footerWidth: '--plasma-dropdown-footer-width',
51
42
  footerHeight: '--plasma-dropdown-footer-height',
@@ -113,6 +104,18 @@ var tokens = exports.tokens = {
113
104
  groupLabelMarginRight: '--plasma-dropdown-group-label-margin-right',
114
105
  groupLabelMarginBottom: '--plasma-dropdown-group-label-margin-bottom',
115
106
  groupLabelMarginLeft: '--plasma-dropdown-group-label-margin-left',
116
- disabledOpacity: '--plasma-dropdown-disabled-opacity',
117
- focusColor: '--plasma-dropdown-focus-color'
107
+ itemBackgroundSelected: '--plasma-dropdown-item-background-selected',
108
+ itemColorSelected: '--plasma-dropdown-item-color-selected',
109
+ itemBackgroundSelectedHover: '--plasma-dropdown-item-background-selected-hover',
110
+ itemColorSelectedHover: '--plasma-dropdown-item-color-selected-hover',
111
+ itemContentLeftColor: '--plasma-dropdown-item-content-left-color',
112
+ itemContentRightColor: '--plasma-dropdown-item-content-right-color',
113
+ itemWidth: '--plasma-dropdown-item-width',
114
+ itemHeight: '--plasma-dropdown-item-height',
115
+ itemMarginTop: '--plasma-dropdown-item-margin-top',
116
+ itemMarginRight: '--plasma-dropdown-item-margin-right',
117
+ itemMarginBottom: '--plasma-dropdown-item-margin-bottom',
118
+ itemMarginLeft: '--plasma-dropdown-item-margin-left',
119
+ itemContentLeftWidth: '--plasma-dropdown-item-content-left-width',
120
+ itemContentRightWidth: '--plasma-dropdown-item-content-right-width'
118
121
  };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useHashMaps = void 0;
7
+ var _react = /*#__PURE__*/require("react");
8
+ // Данный хук рекурсивно проходится по дереву items и создает 2 мапы: мапу путей и мапу фокусов.
9
+ // Нужно для получения всей информации об item, зная только путь до него.
10
+
11
+ var useHashMaps = exports.useHashMaps = function useHashMaps(items) {
12
+ return (0, _react.useMemo)(function () {
13
+ var pathMap = new Map();
14
+ var focusedToValueMap = new Map();
15
+ pathMap.set('root', items.length);
16
+ var rec = function rec(items) {
17
+ var prevIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
18
+ items.forEach(function (item, index) {
19
+ var value = item.value,
20
+ innerItems = item.items;
21
+ var currIndex = "".concat(prevIndex, "/").concat(index).replace(/^(\/)/, '');
22
+ focusedToValueMap.set(currIndex, item);
23
+ if (innerItems) {
24
+ pathMap.set(value, innerItems.length);
25
+ rec(innerItems, currIndex);
26
+ }
27
+ });
28
+ };
29
+ rec(items);
30
+ return [pathMap, focusedToValueMap];
31
+ }, [items]);
32
+ };