@salutejs/plasma-new-hope 0.77.1-canary.1199.8844794649.0 → 0.78.0-canary.1185.8884845022.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (318) hide show
  1. package/cjs/components/Combobox/Combobox.css +12 -7
  2. package/cjs/components/Combobox/Combobox.js +1 -1
  3. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +10 -6
  4. package/cjs/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +3 -3
  5. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +10 -6
  6. package/cjs/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +3 -3
  7. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +10 -6
  8. package/cjs/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +3 -3
  9. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +10 -6
  10. package/cjs/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +3 -3
  11. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.css +4 -23
  12. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +81 -10
  13. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  14. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +21 -9
  15. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  16. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +4 -0
  17. package/cjs/components/Combobox/utils/index.js +23 -0
  18. package/cjs/components/Combobox/utils/index.js.map +1 -0
  19. package/cjs/components/Dropdown/Dropdown.css +20 -2
  20. package/cjs/components/Dropdown/Dropdown.js +136 -53
  21. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  22. package/cjs/components/Dropdown/Dropdown.styles.js +40 -7
  23. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  24. package/cjs/components/Dropdown/Dropdown.styles_1tihqkp.css +3 -0
  25. package/cjs/components/Dropdown/Dropdown.tokens.js +12 -24
  26. package/cjs/components/Dropdown/Dropdown.tokens.js.map +1 -1
  27. package/cjs/components/Dropdown/hooks/useHashMaps.js +31 -0
  28. package/cjs/components/Dropdown/hooks/useHashMaps.js.map +1 -0
  29. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +200 -0
  30. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -0
  31. package/cjs/components/Dropdown/reducers/focusedPathReducer.js +37 -0
  32. package/cjs/components/Dropdown/reducers/focusedPathReducer.js.map +1 -0
  33. package/cjs/components/Dropdown/reducers/pathReducer.js +41 -0
  34. package/cjs/components/Dropdown/reducers/pathReducer.js.map +1 -0
  35. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +116 -0
  36. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -0
  37. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.css +7 -4
  38. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +79 -100
  39. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  40. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +31 -4
  41. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  42. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +5 -0
  43. package/cjs/components/Dropdown/utils/index.js +14 -13
  44. package/cjs/components/Dropdown/utils/index.js.map +1 -1
  45. package/cjs/components/Pagination/Pagination.css +39 -7
  46. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +39 -7
  47. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +2 -2
  48. package/cjs/components/Select/Select.css +39 -7
  49. package/cjs/components/Select/Select.js +3 -3
  50. package/cjs/components/Select/ui/SelectDivider/SelectDivider.css +10 -6
  51. package/cjs/components/Select/ui/SelectDivider/SelectDivider.js +3 -3
  52. package/cjs/components/Select/ui/SelectFooter/SelectFooter.css +10 -6
  53. package/cjs/components/Select/ui/SelectFooter/SelectFooter.js +3 -3
  54. package/cjs/components/Select/ui/SelectGroup/SelectGroup.css +10 -6
  55. package/cjs/components/Select/ui/SelectGroup/SelectGroup.js +3 -3
  56. package/cjs/components/Select/ui/SelectHeader/SelectHeader.css +10 -6
  57. package/cjs/components/Select/ui/SelectHeader/SelectHeader.js +3 -3
  58. package/cjs/components/Select/ui/SelectItem/SelectItem.css +59 -7
  59. package/cjs/components/Select/ui/SelectItem/SelectItem.js +4 -4
  60. package/cjs/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  61. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +3 -3
  62. package/cjs/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  63. package/cjs/components/Select/ui/SelectItem/SelectItem.styles_1jgsd1a.css +1 -0
  64. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  65. package/cjs/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  66. package/cjs/index.css +13 -8
  67. package/cjs/index.js +5 -2
  68. package/cjs/index.js.map +1 -1
  69. package/es/components/Combobox/Combobox.css +12 -7
  70. package/es/components/Combobox/Combobox.js +1 -1
  71. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.css +10 -6
  72. package/es/components/Combobox/ui/ComboboxDivider/ComboboxDivider.js +3 -3
  73. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.css +10 -6
  74. package/es/components/Combobox/ui/ComboboxFooter/ComboboxFooter.js +3 -3
  75. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.css +10 -6
  76. package/es/components/Combobox/ui/ComboboxGroup/ComboboxGroup.js +3 -3
  77. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.css +10 -6
  78. package/es/components/Combobox/ui/ComboboxHeader/ComboboxHeader.js +3 -3
  79. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.css +4 -23
  80. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +82 -11
  81. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  82. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +19 -10
  83. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  84. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_s4sk53.css +4 -0
  85. package/es/components/Combobox/utils/index.js +19 -0
  86. package/es/components/Combobox/utils/index.js.map +1 -0
  87. package/es/components/Dropdown/Dropdown.css +20 -2
  88. package/es/components/Dropdown/Dropdown.js +142 -59
  89. package/es/components/Dropdown/Dropdown.js.map +1 -1
  90. package/es/components/Dropdown/Dropdown.styles.js +39 -7
  91. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  92. package/es/components/Dropdown/Dropdown.styles_1tihqkp.css +3 -0
  93. package/es/components/Dropdown/Dropdown.tokens.js +12 -24
  94. package/es/components/Dropdown/Dropdown.tokens.js.map +1 -1
  95. package/es/components/Dropdown/hooks/useHashMaps.js +27 -0
  96. package/es/components/Dropdown/hooks/useHashMaps.js.map +1 -0
  97. package/es/components/Dropdown/hooks/useKeyboardNavigation.js +196 -0
  98. package/es/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -0
  99. package/es/components/Dropdown/reducers/focusedPathReducer.js +33 -0
  100. package/es/components/Dropdown/reducers/focusedPathReducer.js.map +1 -0
  101. package/es/components/Dropdown/reducers/pathReducer.js +37 -0
  102. package/es/components/Dropdown/reducers/pathReducer.js.map +1 -0
  103. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +112 -0
  104. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -0
  105. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.css +7 -4
  106. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +80 -100
  107. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  108. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +30 -4
  109. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  110. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1o4szyu.css +5 -0
  111. package/es/components/Dropdown/utils/index.js +14 -14
  112. package/es/components/Dropdown/utils/index.js.map +1 -1
  113. package/es/components/Pagination/Pagination.css +39 -7
  114. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +39 -7
  115. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +2 -2
  116. package/es/components/Select/Select.css +39 -7
  117. package/es/components/Select/Select.js +3 -3
  118. package/es/components/Select/ui/SelectDivider/SelectDivider.css +10 -6
  119. package/es/components/Select/ui/SelectDivider/SelectDivider.js +3 -3
  120. package/es/components/Select/ui/SelectFooter/SelectFooter.css +10 -6
  121. package/es/components/Select/ui/SelectFooter/SelectFooter.js +3 -3
  122. package/es/components/Select/ui/SelectGroup/SelectGroup.css +10 -6
  123. package/es/components/Select/ui/SelectGroup/SelectGroup.js +3 -3
  124. package/es/components/Select/ui/SelectHeader/SelectHeader.css +10 -6
  125. package/es/components/Select/ui/SelectHeader/SelectHeader.js +3 -3
  126. package/es/components/Select/ui/SelectItem/SelectItem.css +59 -7
  127. package/es/components/Select/ui/SelectItem/SelectItem.js +4 -4
  128. package/es/components/Select/ui/SelectItem/SelectItem.js.map +1 -1
  129. package/es/components/Select/ui/SelectItem/SelectItem.styles.js +3 -3
  130. package/es/components/Select/ui/SelectItem/SelectItem.styles.js.map +1 -1
  131. package/es/components/Select/ui/SelectItem/SelectItem.styles_1jgsd1a.css +1 -0
  132. package/es/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  133. package/es/components/_Icon/Icon.assets/DisclosureRight.js.map +1 -1
  134. package/es/index.css +13 -8
  135. package/es/index.js +3 -1
  136. package/es/index.js.map +1 -1
  137. package/package.json +2 -2
  138. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.js +91 -2
  139. package/styled-components/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +27 -7
  140. package/styled-components/cjs/components/Combobox/utils/index.js +23 -0
  141. package/styled-components/cjs/components/Dropdown/Dropdown.js +138 -53
  142. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +22 -7
  143. package/styled-components/cjs/components/Dropdown/Dropdown.tokens.js +12 -24
  144. package/styled-components/cjs/components/Dropdown/hooks/useHashMaps.js +29 -0
  145. package/styled-components/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +199 -0
  146. package/styled-components/cjs/components/Dropdown/index.js +9 -1
  147. package/styled-components/cjs/components/Dropdown/reducers/focusedPathReducer.js +40 -0
  148. package/styled-components/cjs/components/Dropdown/reducers/pathReducer.js +44 -0
  149. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +113 -0
  150. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +5 -0
  151. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +77 -105
  152. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +30 -15
  153. package/styled-components/cjs/components/Dropdown/ui/index.js +14 -13
  154. package/styled-components/cjs/components/Dropdown/utils/index.js +14 -13
  155. package/styled-components/cjs/components/Dropdown/variations/_size/tokens.json +1 -9
  156. package/styled-components/cjs/components/Dropdown/variations/_view/tokens.json +1 -1
  157. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.js +2 -2
  158. package/styled-components/cjs/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  159. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  160. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +25 -0
  161. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.js +11 -0
  162. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +295 -0
  163. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.js +90 -3
  164. package/styled-components/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.js +23 -6
  165. package/styled-components/es/components/Combobox/utils/index.js +15 -0
  166. package/styled-components/es/components/Dropdown/Dropdown.js +140 -54
  167. package/styled-components/es/components/Dropdown/Dropdown.styles.js +18 -5
  168. package/styled-components/es/components/Dropdown/Dropdown.tokens.js +12 -24
  169. package/styled-components/es/components/Dropdown/hooks/useHashMaps.js +23 -0
  170. package/styled-components/es/components/Dropdown/hooks/useKeyboardNavigation.js +193 -0
  171. package/styled-components/es/components/Dropdown/index.js +1 -0
  172. package/styled-components/es/components/Dropdown/reducers/focusedPathReducer.js +34 -0
  173. package/styled-components/es/components/Dropdown/reducers/pathReducer.js +38 -0
  174. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +107 -0
  175. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.type.js +1 -0
  176. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +78 -107
  177. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +27 -11
  178. package/styled-components/es/components/Dropdown/ui/index.js +2 -1
  179. package/styled-components/es/components/Dropdown/utils/index.js +13 -13
  180. package/styled-components/es/components/Dropdown/variations/_size/tokens.json +1 -9
  181. package/styled-components/es/components/Dropdown/variations/_view/tokens.json +1 -1
  182. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.js +2 -2
  183. package/styled-components/es/components/Select/ui/SelectItem/SelectItem.styles.js +2 -2
  184. package/styled-components/es/components/_Icon/Icon.assets/DisclosureRight.js +1 -2
  185. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +19 -0
  186. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.js +5 -0
  187. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +295 -0
  188. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts +15 -13
  189. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  190. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts +5 -1
  191. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.styles.d.ts.map +1 -1
  192. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts +59 -2
  193. package/types/components/Combobox/ui/ComboboxItem/ComboboxItem.type.d.ts.map +1 -1
  194. package/types/components/Combobox/utils/index.d.ts +4 -0
  195. package/types/components/Combobox/utils/index.d.ts.map +1 -0
  196. package/types/components/Dropdown/Dropdown.d.ts +4 -4
  197. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  198. package/types/components/Dropdown/Dropdown.styles.d.ts +8 -1
  199. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  200. package/types/components/Dropdown/Dropdown.tokens.d.ts +9 -22
  201. package/types/components/Dropdown/Dropdown.tokens.d.ts.map +1 -1
  202. package/types/components/Dropdown/Dropdown.types.d.ts +64 -40
  203. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  204. package/types/components/Dropdown/hooks/useHashMaps.d.ts +6 -0
  205. package/types/components/Dropdown/hooks/useHashMaps.d.ts.map +1 -0
  206. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts +23 -0
  207. package/types/components/Dropdown/hooks/useKeyboardNavigation.d.ts.map +1 -0
  208. package/types/components/Dropdown/index.d.ts +3 -1
  209. package/types/components/Dropdown/index.d.ts.map +1 -1
  210. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts +16 -0
  211. package/types/components/Dropdown/reducers/focusedPathReducer.d.ts.map +1 -0
  212. package/types/components/Dropdown/reducers/pathReducer.d.ts +20 -0
  213. package/types/components/Dropdown/reducers/pathReducer.d.ts.map +1 -0
  214. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts +5 -0
  215. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -0
  216. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +26 -0
  217. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +1 -0
  218. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts +2 -56
  219. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
  220. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts +5 -1
  221. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts.map +1 -1
  222. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +44 -38
  223. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  224. package/types/components/Dropdown/ui/index.d.ts +2 -1
  225. package/types/components/Dropdown/ui/index.d.ts.map +1 -1
  226. package/types/components/Dropdown/utils/index.d.ts +5 -3
  227. package/types/components/Dropdown/utils/index.d.ts.map +1 -1
  228. package/types/components/Select/ui/SelectItem/SelectItem.d.ts +2 -2
  229. package/types/components/Select/ui/SelectItem/SelectItem.type.d.ts +2 -2
  230. package/types/components/Select/utils/index.d.ts +1 -1
  231. package/types/components/_Icon/Icon.assets/DisclosureRight.d.ts.map +1 -1
  232. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts.map +1 -0
  233. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts +13 -0
  234. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts.map +1 -0
  235. package/cjs/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +0 -1
  236. package/cjs/components/Dropdown/Dropdown.styles_1daxhqh.css +0 -2
  237. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +0 -4
  238. package/cjs/components/Dropdown/ui/DropdownItem/variations/_size/base.js +0 -9
  239. package/cjs/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +0 -1
  240. package/cjs/components/Dropdown/ui/DropdownItem/variations/_size/base_x642ct.css +0 -1
  241. package/cjs/components/Dropdown/ui/DropdownItem/variations/_view/base.js +0 -9
  242. package/cjs/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +0 -1
  243. package/cjs/components/Dropdown/ui/DropdownItem/variations/_view/base_x642ct.css +0 -1
  244. package/cjs/components/Select/ui/SelectItem/SelectItem.styles_6h17aw.css +0 -1
  245. package/es/components/Combobox/ui/ComboboxItem/ComboboxItem.styles_936wgl.css +0 -1
  246. package/es/components/Dropdown/Dropdown.styles_1daxhqh.css +0 -2
  247. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_1juhjtq.css +0 -4
  248. package/es/components/Dropdown/ui/DropdownItem/variations/_size/base.js +0 -5
  249. package/es/components/Dropdown/ui/DropdownItem/variations/_size/base.js.map +0 -1
  250. package/es/components/Dropdown/ui/DropdownItem/variations/_size/base_x642ct.css +0 -1
  251. package/es/components/Dropdown/ui/DropdownItem/variations/_view/base.js +0 -5
  252. package/es/components/Dropdown/ui/DropdownItem/variations/_view/base.js.map +0 -1
  253. package/es/components/Dropdown/ui/DropdownItem/variations/_view/base_x642ct.css +0 -1
  254. package/es/components/Select/ui/SelectItem/SelectItem.styles_6h17aw.css +0 -1
  255. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +0 -80
  256. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_size/base.js +0 -8
  257. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +0 -19
  258. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_view/base.js +0 -8
  259. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +0 -9
  260. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +0 -27
  261. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +0 -13
  262. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +0 -194
  263. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +0 -27
  264. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +0 -13
  265. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  266. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +0 -27
  267. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +0 -13
  268. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +0 -195
  269. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +0 -27
  270. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +0 -13
  271. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  272. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.config.js +0 -22
  273. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.js +0 -21
  274. package/styled-components/cjs/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +0 -277
  275. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +0 -80
  276. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_size/base.js +0 -2
  277. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_size/tokens.json +0 -19
  278. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_view/base.js +0 -2
  279. package/styled-components/es/components/Dropdown/ui/DropdownItem/variations/_view/tokens.json +0 -9
  280. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.js +0 -21
  281. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.js +0 -7
  282. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.stories.tsx +0 -194
  283. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.js +0 -21
  284. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.js +0 -7
  285. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  286. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.js +0 -21
  287. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.js +0 -7
  288. package/styled-components/es/examples/plasma_web/components/Dropdown/Normal/Dropdown.stories.tsx +0 -195
  289. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.js +0 -21
  290. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.js +0 -7
  291. package/styled-components/es/examples/plasma_web/components/Dropdown/Tight/Dropdown.stories.tsx +0 -195
  292. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.config.js +0 -16
  293. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.js +0 -15
  294. package/styled-components/es/examples/sds_engineer/components/Dropdown/Dropdown.stories.tsx +0 -277
  295. package/types/components/Dropdown/ui/DropdownItem/variations/_size/base.d.ts +0 -2
  296. package/types/components/Dropdown/ui/DropdownItem/variations/_size/base.d.ts.map +0 -1
  297. package/types/components/Dropdown/ui/DropdownItem/variations/_view/base.d.ts +0 -2
  298. package/types/components/Dropdown/ui/DropdownItem/variations/_view/base.d.ts.map +0 -1
  299. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.config.d.ts.map +0 -1
  300. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts +0 -30
  301. package/types/examples/plasma_b2c/components/Dropdown/Normal/Dropdown.d.ts.map +0 -1
  302. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.d.ts +0 -18
  303. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.config.d.ts.map +0 -1
  304. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts +0 -30
  305. package/types/examples/plasma_b2c/components/Dropdown/Tight/Dropdown.d.ts.map +0 -1
  306. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts +0 -18
  307. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.config.d.ts.map +0 -1
  308. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts +0 -30
  309. package/types/examples/plasma_web/components/Dropdown/Normal/Dropdown.d.ts.map +0 -1
  310. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts +0 -18
  311. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.config.d.ts.map +0 -1
  312. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts +0 -30
  313. package/types/examples/plasma_web/components/Dropdown/Tight/Dropdown.d.ts.map +0 -1
  314. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts +0 -15
  315. package/types/examples/sds_engineer/components/Dropdown/Dropdown.config.d.ts.map +0 -1
  316. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts +0 -51
  317. package/types/examples/sds_engineer/components/Dropdown/Dropdown.d.ts.map +0 -1
  318. /package/types/examples/plasma_b2c/components/Dropdown/{Normal/Dropdown.config.d.ts → Dropdown.config.d.ts} +0 -0
@@ -1,8 +1,95 @@
1
- import { dropdownItemRoot } from '../../../Dropdown';
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["id", "className", "children", "text", "isSelected", "name", "checked", "value", "view", "size", "disabled", "role", "contentLeft", "contentRight", "onSelect", "onClick", "onChange"];
3
+ 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); }
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
8
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
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; }
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; }
11
+ import React, { forwardRef, useCallback, useMemo } from 'react';
12
+ import { safeUseId } from '@salutejs/plasma-core';
13
+ import { classes } from '../../Combobox.tokens';
14
+ import { getValidComponent } from '../../utils';
15
+ import { cx } from '../../../../utils';
2
16
  import { base as viewCSS } from './variations/_view/base';
3
17
  import { base as sizeCSS } from './variations/_size/base';
4
- import { base } from './ComboboxItem.styles';
5
- export var comboboxItemRoot = dropdownItemRoot;
18
+ import { StyledContentLeft, StyledContentRight, StyledText, base } from './ComboboxItem.styles';
19
+ export var comboboxItemRoot = function comboboxItemRoot(Root) {
20
+ return /*#__PURE__*/forwardRef(function (_ref, outerRootRef) {
21
+ var id = _ref.id,
22
+ className = _ref.className,
23
+ children = _ref.children,
24
+ text = _ref.text,
25
+ isSelected = _ref.isSelected,
26
+ name = _ref.name,
27
+ checked = _ref.checked,
28
+ value = _ref.value,
29
+ view = _ref.view,
30
+ size = _ref.size,
31
+ disabled = _ref.disabled,
32
+ _ref$role = _ref.role,
33
+ role = _ref$role === void 0 ? 'option' : _ref$role,
34
+ ContentLeftComponent = _ref.contentLeft,
35
+ ContentRightComponent = _ref.contentRight,
36
+ onSelect = _ref.onSelect,
37
+ onClick = _ref.onClick,
38
+ onChange = _ref.onChange,
39
+ rest = _objectWithoutProperties(_ref, _excluded);
40
+ var uniqId = safeUseId();
41
+ var innerId = id || uniqId;
42
+ var withComboboxItemIsSelected = checked || isSelected ? classes.comboboxItemIsDisabled : undefined;
43
+ var withComboboxItemIsDisabled = disabled ? classes.comboboxItemIsDisabled : undefined;
44
+ var handleOnClick = useCallback(function (event) {
45
+ if (disabled) {
46
+ return;
47
+ }
48
+ onClick === null || onClick === void 0 || onClick(event);
49
+ if (onSelect && !ContentLeftComponent) {
50
+ onSelect(value, text);
51
+ }
52
+ }, [onSelect, disabled]);
53
+ var handleOnChange = useCallback(function (event) {
54
+ if (disabled) {
55
+ return;
56
+ }
57
+ onChange === null || onChange === void 0 || onChange(event);
58
+ if (onSelect && ContentLeftComponent) {
59
+ onSelect(value, text);
60
+ }
61
+ }, [onSelect, disabled]);
62
+ var contentProps = _objectSpread({
63
+ name: name,
64
+ value: value,
65
+ checked: checked || isSelected,
66
+ disabled: disabled,
67
+ tabIndex: -1
68
+ }, !disabled && {
69
+ onChange: handleOnChange
70
+ });
71
+ var ContentLeft = useMemo(function () {
72
+ return getValidComponent(ContentLeftComponent, contentProps);
73
+ }, [ContentRightComponent, contentProps]);
74
+ var ContentRight = useMemo(function () {
75
+ return getValidComponent(ContentRightComponent, contentProps);
76
+ }, [ContentRightComponent, contentProps]);
77
+ return /*#__PURE__*/React.createElement(Root, _extends({
78
+ className: cx(withComboboxItemIsSelected, withComboboxItemIsDisabled, className),
79
+ view: view,
80
+ size: size,
81
+ id: innerId,
82
+ isSelected: isSelected,
83
+ role: role,
84
+ ref: outerRootRef,
85
+ tabIndex: 0,
86
+ "aria-disabled": disabled,
87
+ "aria-selected": isSelected,
88
+ onClick: handleOnClick,
89
+ "data-value": value
90
+ }, rest), text ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledContentLeft, null, ContentLeftComponent && ContentLeft), /*#__PURE__*/React.createElement(StyledText, null, text), /*#__PURE__*/React.createElement(StyledContentRight, null, ContentRightComponent && ContentRight)) : children);
91
+ });
92
+ };
6
93
  export var comboboxItemConfig = {
7
94
  name: 'ComboboxItem',
8
95
  tag: 'div',
@@ -1,8 +1,25 @@
1
+ var _templateObject;
2
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
1
3
  import { css } from 'styled-components';
2
- import { tokens } from '../../Combobox.tokens';
3
- import { dropdownTokens } from '../../../Dropdown';
4
- import { baseContent as dropdownItemBase } from '../../../Dropdown/ui/DropdownItem/DropdownItem.styles';
4
+ import styled from 'styled-components';
5
+ import { classes, tokens } from '../../Combobox.tokens';
6
+ import { addFocus, applyEllipsis } from '../../../../mixins';
7
+ export var StyledContentLeft = /*#__PURE__*/styled.div.withConfig({
8
+ componentId: "plasma-new-hope__sc-i4bkda-0"
9
+ })(["display:inline-flex;min-width:var(", ");color:var(", ");"], tokens.itemContentLeftWidth, tokens.itemContentLeftColor);
10
+ export var StyledContentRight = /*#__PURE__*/styled.div.withConfig({
11
+ componentId: "plasma-new-hope__sc-i4bkda-1"
12
+ })(["margin-left:auto;display:inline-flex;min-width:var(", ");color:var(", ");"], tokens.itemContentRightWidth, tokens.itemContentRightColor);
13
+ export var StyledText = /*#__PURE__*/styled.div.withConfig({
14
+ componentId: "plasma-new-hope__sc-i4bkda-2"
15
+ })(["", ";"], /*#__PURE__*/applyEllipsis());
5
16
 
6
- // NOTE: Необходимое переопределение токенов из компонента DropdownItem т.к. используются его части
7
- export var mappingOverride = /*#__PURE__*/"\n ".concat(dropdownTokens.itemBackground, ": var(").concat(tokens.itemBackground, ");\n ").concat(dropdownTokens.itemColor, ": var(").concat(tokens.itemColor, ");\n ").concat(dropdownTokens.itemBackgroundHover, ": var(").concat(tokens.itemBackgroundHover, ");\n ").concat(dropdownTokens.itemBackgroundSelected, ": var(").concat(tokens.itemBackgroundSelected, ");\n ").concat(dropdownTokens.itemColorSelected, ": var(").concat(tokens.itemColorSelected, ");\n ").concat(dropdownTokens.itemBackgroundSelectedHover, ": var(").concat(tokens.itemBackgroundSelectedHover, ");\n ").concat(dropdownTokens.itemColorSelectedHover, ": var(").concat(tokens.itemColorSelectedHover, ");\n ").concat(dropdownTokens.itemContentLeftColor, ": var(").concat(tokens.itemContentLeftColor, ");\n ").concat(dropdownTokens.itemContentRightColor, ": var(").concat(tokens.itemContentRightColor, ");\n ").concat(dropdownTokens.disabledOpacity, ": var(").concat(tokens.disabledOpacity, ");\n ").concat(dropdownTokens.focusColor, ": var(").concat(tokens.focusColor, ");\n ").concat(dropdownTokens.itemWidth, ": var(").concat(tokens.itemWidth, ");\n ").concat(dropdownTokens.itemHeight, ": var(").concat(tokens.itemHeight, ");\n ").concat(dropdownTokens.itemBorderRadius, ": var(").concat(tokens.itemBorderRadius, ");\n ").concat(dropdownTokens.itemPaddingTop, ": var(").concat(tokens.itemPaddingTop, ");\n ").concat(dropdownTokens.itemPaddingRight, ": var(").concat(tokens.itemPaddingRight, ");\n ").concat(dropdownTokens.itemPaddingBottom, ": var(").concat(tokens.itemPaddingBottom, ");\n ").concat(dropdownTokens.itemPaddingLeft, ": var(").concat(tokens.itemPaddingLeft, ");\n ").concat(dropdownTokens.itemMarginTop, ": var(").concat(tokens.itemMarginTop, ");\n ").concat(dropdownTokens.itemMarginRight, ": var(").concat(tokens.itemMarginRight, ");\n ").concat(dropdownTokens.itemMarginBottom, ": var(").concat(tokens.itemMarginBottom, ");\n ").concat(dropdownTokens.itemMarginLeft, ": var(").concat(tokens.itemMarginLeft, ");\n ").concat(dropdownTokens.itemFontFamily, ": var(").concat(tokens.itemFontFamily, ");\n ").concat(dropdownTokens.itemFontSize, ": var(").concat(tokens.itemFontSize, ");\n ").concat(dropdownTokens.itemFontStyle, ": var(").concat(tokens.itemFontStyle, ");\n ").concat(dropdownTokens.itemFontWeightBold, ": var(").concat(tokens.itemFontWeightBold, ");\n ").concat(dropdownTokens.itemFontLetterSpacing, ": var(").concat(tokens.itemFontLetterSpacing, ");\n ").concat(dropdownTokens.itemFontLineHeight, ": var(").concat(tokens.itemFontLineHeight, ");\n ").concat(dropdownTokens.itemContentLeftWidth, ": var(").concat(tokens.itemContentLeftWidth, ");\n ").concat(dropdownTokens.itemContentRightWidth, ": var(").concat(tokens.itemContentRightWidth, ");\n");
8
- export var base = /*#__PURE__*/css(["", ";", ";"], dropdownItemBase, mappingOverride);
17
+ // INFO: Для возможности переиспользования стилей в других компонентах
18
+ export var baseContent = /*#__PURE__*/"\n box-sizing: content-box;\n display: flex;\n align-items: center;\n user-select: none;\n\n :focus {\n outline: none;\n }\n\n ".concat(addFocus({
19
+ outlineSize: '0.0625rem',
20
+ outlineOffset: '0',
21
+ outlineColor: "var(".concat(tokens.focusColor, ")"),
22
+ outlineRadius: "var(".concat(tokens.itemBorderRadius, ")"),
23
+ hasTransition: false
24
+ }), ";\n\n width: 100%;\n\n font-family: var(").concat(tokens.itemFontFamily, ");\n font-size: var(").concat(tokens.itemFontSize, ");\n font-style: var(").concat(tokens.itemFontStyle, ");\n font-weight: var(").concat(tokens.itemFontWeightBold, ");\n letter-spacing: var(").concat(tokens.itemFontLetterSpacing, ");\n line-height: var(").concat(tokens.itemFontLineHeight, ");\n\n background: var(").concat(tokens.itemBackground, ");\n color: var(").concat(tokens.itemColor, ");\n border-radius: var(").concat(tokens.itemBorderRadius, ");\n\n width: var(").concat(tokens.itemWidth, ");\n height: var(").concat(tokens.itemHeight, ");\n\n padding: var(").concat(tokens.itemPaddingTop, ") var(").concat(tokens.itemPaddingRight, ") var(").concat(tokens.itemPaddingBottom, ")\n var(").concat(tokens.itemPaddingLeft, ");\n\n margin: var(").concat(tokens.itemMarginTop, ") var(").concat(tokens.itemMarginRight, ") var(").concat(tokens.itemMarginBottom, ")\n var(").concat(tokens.itemMarginLeft, ");\n\n &:hover:not(.").concat(classes.comboboxItemIsDisabled, ") {\n cursor: pointer;\n background: var(").concat(tokens.itemBackgroundHover, ");\n }\n\n &.").concat(String(classes.comboboxItemIsSelected), " {\n color: var(").concat(tokens.itemColorSelected, ");\n background: var(").concat(tokens.itemBackgroundSelected, ");\n\n &:hover:not(.").concat(classes.comboboxItemIsDisabled, ") {\n background: var(").concat(tokens.itemBackgroundSelectedHover, ");\n }\n }\n\n &.").concat(classes.comboboxItemIsDisabled, " {\n opacity: var(").concat(tokens.disabledOpacity, ");\n cursor: not-allowed;\n }\n");
25
+ export var base = /*#__PURE__*/css(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n ", ";\n"])), baseContent);
@@ -0,0 +1,15 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ import React, { cloneElement, isValidElement } from 'react';
3
+ var isReactObject = function isReactObject(element) {
4
+ return _typeof(element) === 'object' || typeof element === 'function';
5
+ };
6
+ export var getValidComponent = function getValidComponent(element, props) {
7
+ if ( /*#__PURE__*/isValidElement(element)) {
8
+ return /*#__PURE__*/cloneElement(element, props);
9
+ }
10
+ if (isReactObject(element)) {
11
+ var Component = element;
12
+ return /*#__PURE__*/React.createElement(Component, props);
13
+ }
14
+ return element;
15
+ };
@@ -1,82 +1,168 @@
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
32
  placement = _ref$placement === void 0 ? 'auto' : _ref$placement,
31
- _ref$trigger = _ref.trigger,
32
- trigger = _ref$trigger === void 0 ? 'click' : _ref$trigger,
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 ? 'option' : _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
+ hasArrow = _ref.hasArrow,
41
56
  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,
57
+ var _useReducer = useReducer(pathReducer, []),
58
+ _useReducer2 = _slicedToArray(_useReducer, 2),
59
+ path = _useReducer2[0],
60
+ dispatchPath = _useReducer2[1];
61
+ var _useReducer3 = useReducer(focusedPathReducer, []),
62
+ _useReducer4 = _slicedToArray(_useReducer3, 2),
63
+ focusedPath = _useReducer4[0],
64
+ dispatchFocusedPath = _useReducer4[1];
65
+ var _useHashMaps = useHashMaps(items),
66
+ _useHashMaps2 = _slicedToArray(_useHashMaps, 2),
67
+ pathMap = _useHashMaps2[0],
68
+ focusedToValueMap = _useHashMaps2[1];
69
+ var handleGlobalToggle = function handleGlobalToggle(opened, event) {
70
+ if (opened) {
71
+ dispatchPath({
72
+ type: 'opened_first_level'
73
+ });
74
+ } else {
75
+ dispatchFocusedPath({
76
+ type: 'reset'
77
+ });
78
+ dispatchPath({
79
+ type: 'reset'
80
+ });
81
+ }
82
+ if (onToggle) {
83
+ onToggle(opened, event);
84
+ }
85
+ };
86
+ var _useKeyNavigation = useKeyNavigation({
87
+ focusedPath: focusedPath,
88
+ dispatchFocusedPath: dispatchFocusedPath,
89
+ path: path,
90
+ dispatchPath: dispatchPath,
91
+ pathMap: pathMap,
92
+ focusedToValueMap: focusedToValueMap,
93
+ handleGlobalToggle: handleGlobalToggle,
94
+ closeOnSelect: closeOnSelect,
95
+ onItemSelect: onItemSelect,
96
+ onItemClick: onItemClick
97
+ }),
98
+ onKeyDown = _useKeyNavigation.onKeyDown;
99
+ var isCurrentListOpen = Boolean(path[0]);
100
+ var getActiveDescendant = function getActiveDescendant() {
101
+ var _focusedToValueMap$ge;
102
+ var focusedPathAsString = focusedPath.reduce(function (acc, n) {
103
+ return "".concat(acc, "/").concat(n);
104
+ }, '').replace(/^(\/)/, '');
105
+ return focusedToValueMap === null || focusedToValueMap === void 0 || (_focusedToValueMap$ge = focusedToValueMap.get(focusedPathAsString)) === null || _focusedToValueMap$ge === void 0 ? void 0 : _focusedToValueMap$ge.value.toString();
106
+ };
107
+ return /*#__PURE__*/React.createElement(Root, _extends({
108
+ className: cx(className, classes.dropdownRoot),
109
+ ref: ref,
110
+ view: view,
111
+ size: size,
112
+ items: items
113
+ }, rest), /*#__PURE__*/React.createElement(StyledPopover, {
114
+ isOpen: isCurrentListOpen,
52
115
  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,
116
+ onToggle: handleGlobalToggle,
59
117
  offset: offset,
60
- preventOverflow: preventOverflow,
61
- hasArrow: hasArrow,
62
118
  placement: getPlacements(placement),
63
119
  trigger: trigger,
64
120
  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)));
121
+ isFocusTrapped: false,
122
+ target: childrenWithProps(children, {
123
+ role: 'combobox',
124
+ 'aria-controls': 'listbox1',
125
+ 'aria-expanded': isCurrentListOpen,
126
+ 'aria-haspopup': 'listbox',
127
+ 'aria-activedescendant': getActiveDescendant(),
128
+ onKeyDown: onKeyDown
129
+ })
130
+ }, /*#__PURE__*/React.createElement(Ul, {
131
+ listHeight: listHeight,
132
+ listOverflow: listOverflow,
133
+ role: "listbox",
134
+ id: "listbox1",
135
+ listWidth: listWidth
136
+ }, items.map(function (item, index) {
137
+ return /*#__PURE__*/React.createElement(DropdownInner, {
138
+ key: "".concat(index, "/0"),
139
+ item: item,
140
+ currentLevel: 0,
141
+ focusedPath: focusedPath,
142
+ trigger: trigger,
143
+ path: path,
144
+ dispatchPath: dispatchPath,
145
+ index: index,
146
+ itemRole: itemRole,
147
+ listHeight: listHeight,
148
+ listOverflow: listOverflow,
149
+ handleGlobalToggle: handleGlobalToggle,
150
+ closeOnSelect: closeOnSelect,
151
+ onHover: onHover,
152
+ onItemSelect: onItemSelect,
153
+ onItemClick: onItemClick,
154
+ listWidth: listWidth,
155
+ variant: variant,
156
+ hasArrow: hasArrow
157
+ });
158
+ }))));
73
159
  });
74
160
  };
75
161
  export var dropdownConfig = {
76
162
  name: 'Dropdown',
77
163
  tag: 'div',
78
164
  layout: dropdownRoot,
79
- base: '',
165
+ base: base,
80
166
  variations: {
81
167
  view: {
82
168
  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,35 @@
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'
4
6
  };
5
7
  export var tokens = {
6
8
  background: '--plasma-dropdown-background',
7
9
  boxShadow: '--plasma-dropdown-box-shadow',
8
10
  width: '--plasma-dropdown-width',
9
- height: '--plasma-dropdown-height',
10
11
  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',
12
+ padding: '--plasma-dropdown-padding',
13
+ disclosureIconColor: '--plasma-dropdown-disclosure-icon-color',
15
14
  itemBackground: '--plasma-dropdown-item-background',
16
15
  itemColor: '--plasma-dropdown-item-color',
17
16
  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
17
  itemBorderRadius: '--plasma-dropdown-item-border-radius',
25
18
  itemPaddingTop: '--plasma-dropdown-item-padding-top',
19
+ itemPaddingTopTight: '--plasma-dropdown-item-padding-top-tight',
26
20
  itemPaddingRight: '--plasma-dropdown-item-padding-right',
27
21
  itemPaddingBottom: '--plasma-dropdown-item-padding-bottom',
22
+ itemPaddingBottomTight: '--plasma-dropdown-item-padding-bottom-tight',
28
23
  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
24
  itemFontFamily: '--plasma-dropdown-item-font-family',
34
25
  itemFontSize: '--plasma-dropdown-item-font-size',
35
26
  itemFontStyle: '--plasma-dropdown-item-font-style',
36
27
  itemFontWeightBold: '--plasma-dropdown-item-letter-spacing',
37
28
  itemFontLetterSpacing: '--plasma-dropdown-item-line-height',
38
29
  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',
30
+ disabledOpacity: '--plasma-dropdown-disabled-opacity',
31
+ focusColor: '--plasma-dropdown-focus-color',
32
+ // TODO: Remove below tokens as soon as they are no longer needed
43
33
  footerBackground: '--plasma-dropdown-footer-background',
44
34
  footerWidth: '--plasma-dropdown-footer-width',
45
35
  footerHeight: '--plasma-dropdown-footer-height',
@@ -106,7 +96,5 @@ export var tokens = {
106
96
  groupLabelMarginTop: '--plasma-dropdown-group-label-margin-top',
107
97
  groupLabelMarginRight: '--plasma-dropdown-group-label-margin-right',
108
98
  groupLabelMarginBottom: '--plasma-dropdown-group-label-margin-bottom',
109
- groupLabelMarginLeft: '--plasma-dropdown-group-label-margin-left',
110
- disabledOpacity: '--plasma-dropdown-disabled-opacity',
111
- focusColor: '--plasma-dropdown-focus-color'
99
+ groupLabelMarginLeft: '--plasma-dropdown-group-label-margin-left'
112
100
  };
@@ -0,0 +1,23 @@
1
+ import { useMemo } from 'react';
2
+ export var useHashMaps = function useHashMaps(items) {
3
+ return useMemo(function () {
4
+ var pathMap = new Map();
5
+ var focusedToValueMap = new Map();
6
+ pathMap.set('root', items.length);
7
+ var rec = function rec(items) {
8
+ var prevIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
9
+ items.forEach(function (item, index) {
10
+ var value = item.value,
11
+ innerItems = item.items;
12
+ var currIndex = "".concat(prevIndex, "/").concat(index).replace(/^(\/)/, '');
13
+ focusedToValueMap.set(currIndex, item);
14
+ if (innerItems) {
15
+ pathMap.set(value, innerItems.length);
16
+ rec(innerItems, currIndex);
17
+ }
18
+ });
19
+ };
20
+ rec(items);
21
+ return [pathMap, focusedToValueMap];
22
+ }, [items]);
23
+ };