@salutejs/plasma-new-hope 0.174.0-canary.1452.11462555994.0 → 0.174.0-canary.1497.11463811587.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (412) hide show
  1. package/cjs/components/Combobox/ComboboxOld/Combobox.css +28 -14
  2. package/cjs/components/Combobox/ComboboxOld/Combobox.js +2 -1
  3. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  4. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +32 -18
  5. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js +3 -2
  6. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js.map +1 -1
  7. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +32 -18
  8. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js +3 -2
  9. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js.map +1 -1
  10. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +32 -18
  11. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js +3 -2
  12. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js.map +1 -1
  13. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +32 -18
  14. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js +3 -2
  15. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js.map +1 -1
  16. package/cjs/components/Dropdown/Dropdown.css +30 -16
  17. package/cjs/components/Dropdown/Dropdown.js +67 -45
  18. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  19. package/cjs/components/Dropdown/Dropdown.styles.js +14 -27
  20. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  21. package/cjs/components/Dropdown/Dropdown.styles_18f0qpm.css +2 -0
  22. package/cjs/components/Dropdown/Dropdown.tokens.js +24 -1
  23. package/cjs/components/Dropdown/Dropdown.tokens.js.map +1 -1
  24. package/cjs/components/Dropdown/FloatingPopover.js +104 -0
  25. package/cjs/components/Dropdown/FloatingPopover.js.map +1 -0
  26. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +17 -52
  27. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  28. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.css +46 -6
  29. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +29 -18
  30. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  31. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +27 -31
  32. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  33. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_17va0nk.css +5 -0
  34. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +1 -1
  35. package/cjs/components/Dropdown/ui/DropdownItemOld/{DropdownItem.styles_12e50g5.css → DropdownItem.styles_1lyg81y.css} +1 -1
  36. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +4 -4
  37. package/cjs/components/Dropdown/utils/getItemByFocused.js +13 -0
  38. package/cjs/components/Dropdown/utils/getItemByFocused.js.map +1 -0
  39. package/cjs/components/Dropdown/utils/getItemId.js +10 -0
  40. package/cjs/components/Dropdown/utils/getItemId.js.map +1 -0
  41. package/cjs/components/Dropdown/utils/getPlacement.js +16 -0
  42. package/cjs/components/Dropdown/utils/getPlacement.js.map +1 -0
  43. package/cjs/components/Dropdown/utils/index.js.map +1 -1
  44. package/cjs/components/Select/utils/getCorrectHeight.js.map +1 -1
  45. package/cjs/components/Slider/Slider.css +13 -15
  46. package/cjs/components/Slider/Slider.js +3 -11
  47. package/cjs/components/Slider/Slider.js.map +1 -1
  48. package/cjs/components/Slider/Slider.tokens.js +17 -23
  49. package/cjs/components/Slider/Slider.tokens.js.map +1 -1
  50. package/cjs/components/Slider/components/Double/Double.css +8 -8
  51. package/cjs/components/Slider/components/Double/Double.js +23 -58
  52. package/cjs/components/Slider/components/Double/Double.js.map +1 -1
  53. package/cjs/components/Slider/components/Single/Single.css +14 -14
  54. package/cjs/components/Slider/components/Single/Single.js +33 -64
  55. package/cjs/components/Slider/components/Single/Single.js.map +1 -1
  56. package/cjs/components/Slider/components/Single/Single.styles.js +4 -4
  57. package/cjs/components/Slider/components/Single/Single.styles.js.map +1 -1
  58. package/cjs/components/Slider/components/Single/Single.styles_1r9f1e0.css +6 -0
  59. package/cjs/components/Slider/components/SliderBase/SliderBase.css +5 -5
  60. package/cjs/components/Slider/components/SliderBase/SliderBase.js +12 -31
  61. package/cjs/components/Slider/components/SliderBase/SliderBase.js.map +1 -1
  62. package/cjs/components/Slider/components/SliderBase/SliderBase.styles.js +7 -7
  63. package/cjs/components/Slider/components/SliderBase/SliderBase.styles.js.map +1 -1
  64. package/cjs/components/Slider/components/SliderBase/SliderBase.styles_9s4eb3.css +5 -0
  65. package/cjs/components/Slider/ui/Handler/Handler.css +3 -3
  66. package/cjs/components/Slider/ui/Handler/Handler.js +88 -49
  67. package/cjs/components/Slider/ui/Handler/Handler.js.map +1 -1
  68. package/cjs/components/Slider/ui/Handler/Handler.styles.js +7 -17
  69. package/cjs/components/Slider/ui/Handler/Handler.styles.js.map +1 -1
  70. package/cjs/components/Slider/ui/Handler/Handler.styles_8crx5z.css +2 -0
  71. package/cjs/components/Slider/ui/Thumb/Thumb.css +1 -1
  72. package/cjs/components/Slider/ui/Thumb/Thumb.js +2 -3
  73. package/cjs/components/Slider/ui/Thumb/Thumb.js.map +1 -1
  74. package/cjs/components/Slider/ui/Thumb/Thumb.styles.js +1 -1
  75. package/cjs/components/Slider/ui/Thumb/Thumb.styles.js.map +1 -1
  76. package/cjs/components/Slider/ui/Thumb/Thumb.styles_4w4gzn.css +1 -0
  77. package/cjs/components/Slider/utils/index.js +10 -28
  78. package/cjs/components/Slider/utils/index.js.map +1 -1
  79. package/cjs/components/Slider/variations/_view/base.js +1 -1
  80. package/cjs/components/Slider/variations/_view/base.js.map +1 -1
  81. package/cjs/components/Slider/variations/_view/base_x642ct.css +1 -0
  82. package/cjs/hooks/useOutsideClick.js +1 -1
  83. package/cjs/hooks/useOutsideClick.js.map +1 -1
  84. package/cjs/index.css +24 -28
  85. package/cjs/utils/index.js.map +1 -1
  86. package/emotion/cjs/components/Dropdown/Dropdown.js +58 -37
  87. package/emotion/cjs/components/Dropdown/Dropdown.styles.js +9 -25
  88. package/emotion/cjs/components/Dropdown/Dropdown.tokens.js +36 -2
  89. package/emotion/cjs/components/Dropdown/FloatingPopover.js +109 -0
  90. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +17 -51
  91. package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +29 -18
  92. package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +21 -41
  93. package/emotion/cjs/components/Dropdown/utils/getItemByFocused.js +12 -0
  94. package/emotion/cjs/components/Dropdown/utils/getItemId.js +9 -0
  95. package/emotion/cjs/components/Dropdown/utils/getPlacement.js +15 -0
  96. package/emotion/cjs/components/Dropdown/utils/index.js +23 -1
  97. package/emotion/cjs/components/Slider/Slider.js +2 -10
  98. package/emotion/cjs/components/Slider/Slider.template-doc.mdx +0 -26
  99. package/emotion/cjs/components/Slider/Slider.tokens.js +17 -23
  100. package/emotion/cjs/components/Slider/components/Double/Double.js +19 -54
  101. package/emotion/cjs/components/Slider/components/Single/Single.js +33 -64
  102. package/emotion/cjs/components/Slider/components/Single/Single.styles.js +9 -18
  103. package/emotion/cjs/components/Slider/components/SliderBase/SliderBase.js +12 -31
  104. package/emotion/cjs/components/Slider/components/SliderBase/SliderBase.styles.js +10 -10
  105. package/emotion/cjs/components/Slider/ui/Handler/Handler.js +88 -52
  106. package/emotion/cjs/components/Slider/ui/Handler/Handler.styles.js +15 -9
  107. package/emotion/cjs/components/Slider/ui/Thumb/Thumb.js +2 -3
  108. package/emotion/cjs/components/Slider/ui/Thumb/Thumb.styles.js +3 -3
  109. package/emotion/cjs/components/Slider/utils/index.js +10 -28
  110. package/emotion/cjs/components/Slider/variations/_view/base.js +1 -2
  111. package/emotion/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +5 -5
  112. package/emotion/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  113. package/emotion/cjs/examples/plasma_b2c/components/Slider/Slider.config.js +7 -7
  114. package/emotion/cjs/examples/plasma_b2c/components/Slider/Slider.stories.tsx +16 -90
  115. package/emotion/cjs/examples/plasma_web/components/Dropdown/Dropdown.config.js +5 -5
  116. package/emotion/cjs/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  117. package/emotion/cjs/examples/plasma_web/components/Slider/Slider.config.js +7 -7
  118. package/emotion/cjs/examples/plasma_web/components/Slider/Slider.stories.tsx +15 -90
  119. package/emotion/cjs/hooks/useOutsideClick.js +1 -1
  120. package/emotion/es/components/Dropdown/Dropdown.js +60 -40
  121. package/emotion/es/components/Dropdown/Dropdown.styles.js +9 -25
  122. package/emotion/es/components/Dropdown/Dropdown.tokens.js +35 -1
  123. package/emotion/es/components/Dropdown/FloatingPopover.js +102 -0
  124. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +18 -52
  125. package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +31 -20
  126. package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +22 -42
  127. package/emotion/es/components/Dropdown/utils/getItemByFocused.js +6 -0
  128. package/emotion/es/components/Dropdown/utils/getItemId.js +3 -0
  129. package/emotion/es/components/Dropdown/utils/getPlacement.js +9 -0
  130. package/emotion/es/components/Dropdown/utils/index.js +4 -1
  131. package/emotion/es/components/Slider/Slider.js +2 -11
  132. package/emotion/es/components/Slider/Slider.template-doc.mdx +0 -26
  133. package/emotion/es/components/Slider/Slider.tokens.js +17 -23
  134. package/emotion/es/components/Slider/components/Double/Double.js +19 -54
  135. package/emotion/es/components/Slider/components/Single/Single.js +34 -65
  136. package/emotion/es/components/Slider/components/Single/Single.styles.js +8 -17
  137. package/emotion/es/components/Slider/components/SliderBase/SliderBase.js +12 -31
  138. package/emotion/es/components/Slider/components/SliderBase/SliderBase.styles.js +11 -11
  139. package/emotion/es/components/Slider/ui/Handler/Handler.js +86 -51
  140. package/emotion/es/components/Slider/ui/Handler/Handler.styles.js +16 -10
  141. package/emotion/es/components/Slider/ui/Thumb/Thumb.js +2 -3
  142. package/emotion/es/components/Slider/ui/Thumb/Thumb.styles.js +3 -3
  143. package/emotion/es/components/Slider/utils/index.js +10 -28
  144. package/emotion/es/components/Slider/variations/_view/base.js +1 -2
  145. package/emotion/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +6 -6
  146. package/emotion/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  147. package/emotion/es/examples/plasma_b2c/components/Slider/Slider.config.js +7 -7
  148. package/emotion/es/examples/plasma_b2c/components/Slider/Slider.stories.tsx +16 -90
  149. package/emotion/es/examples/plasma_web/components/Dropdown/Dropdown.config.js +6 -6
  150. package/emotion/es/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  151. package/emotion/es/examples/plasma_web/components/Slider/Slider.config.js +7 -7
  152. package/emotion/es/examples/plasma_web/components/Slider/Slider.stories.tsx +15 -90
  153. package/emotion/es/hooks/useOutsideClick.js +1 -1
  154. package/es/components/Combobox/ComboboxOld/Combobox.css +28 -14
  155. package/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  156. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  157. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +32 -18
  158. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js +3 -2
  159. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js.map +1 -1
  160. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +32 -18
  161. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js +3 -2
  162. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js.map +1 -1
  163. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +32 -18
  164. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js +3 -2
  165. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js.map +1 -1
  166. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +32 -18
  167. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js +3 -2
  168. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js.map +1 -1
  169. package/es/components/Dropdown/Dropdown.css +30 -16
  170. package/es/components/Dropdown/Dropdown.js +68 -47
  171. package/es/components/Dropdown/Dropdown.js.map +1 -1
  172. package/es/components/Dropdown/Dropdown.styles.js +15 -27
  173. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  174. package/es/components/Dropdown/Dropdown.styles_18f0qpm.css +2 -0
  175. package/es/components/Dropdown/Dropdown.tokens.js +24 -1
  176. package/es/components/Dropdown/Dropdown.tokens.js.map +1 -1
  177. package/es/components/Dropdown/FloatingPopover.js +100 -0
  178. package/es/components/Dropdown/FloatingPopover.js.map +1 -0
  179. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +18 -53
  180. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  181. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.css +46 -6
  182. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +31 -20
  183. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  184. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +26 -29
  185. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  186. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_17va0nk.css +5 -0
  187. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +1 -1
  188. package/es/components/Dropdown/ui/DropdownItemOld/{DropdownItem.styles_12e50g5.css → DropdownItem.styles_1lyg81y.css} +1 -1
  189. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +4 -4
  190. package/es/components/Dropdown/utils/getItemByFocused.js +9 -0
  191. package/es/components/Dropdown/utils/getItemByFocused.js.map +1 -0
  192. package/es/components/Dropdown/utils/getItemId.js +6 -0
  193. package/es/components/Dropdown/utils/getItemId.js.map +1 -0
  194. package/es/components/Dropdown/utils/getPlacement.js +12 -0
  195. package/es/components/Dropdown/utils/getPlacement.js.map +1 -0
  196. package/es/components/Dropdown/utils/index.js.map +1 -1
  197. package/es/components/Select/utils/getCorrectHeight.js.map +1 -1
  198. package/es/components/Slider/Slider.css +13 -15
  199. package/es/components/Slider/Slider.js +3 -11
  200. package/es/components/Slider/Slider.js.map +1 -1
  201. package/es/components/Slider/Slider.tokens.js +17 -23
  202. package/es/components/Slider/Slider.tokens.js.map +1 -1
  203. package/es/components/Slider/components/Double/Double.css +8 -8
  204. package/es/components/Slider/components/Double/Double.js +19 -54
  205. package/es/components/Slider/components/Double/Double.js.map +1 -1
  206. package/es/components/Slider/components/Single/Single.css +14 -14
  207. package/es/components/Slider/components/Single/Single.js +34 -65
  208. package/es/components/Slider/components/Single/Single.js.map +1 -1
  209. package/es/components/Slider/components/Single/Single.styles.js +4 -4
  210. package/es/components/Slider/components/Single/Single.styles.js.map +1 -1
  211. package/es/components/Slider/components/Single/Single.styles_1r9f1e0.css +6 -0
  212. package/es/components/Slider/components/SliderBase/SliderBase.css +5 -5
  213. package/es/components/Slider/components/SliderBase/SliderBase.js +12 -31
  214. package/es/components/Slider/components/SliderBase/SliderBase.js.map +1 -1
  215. package/es/components/Slider/components/SliderBase/SliderBase.styles.js +7 -7
  216. package/es/components/Slider/components/SliderBase/SliderBase.styles.js.map +1 -1
  217. package/es/components/Slider/components/SliderBase/SliderBase.styles_9s4eb3.css +5 -0
  218. package/es/components/Slider/ui/Handler/Handler.css +3 -3
  219. package/es/components/Slider/ui/Handler/Handler.js +87 -48
  220. package/es/components/Slider/ui/Handler/Handler.js.map +1 -1
  221. package/es/components/Slider/ui/Handler/Handler.styles.js +7 -17
  222. package/es/components/Slider/ui/Handler/Handler.styles.js.map +1 -1
  223. package/es/components/Slider/ui/Handler/Handler.styles_8crx5z.css +2 -0
  224. package/es/components/Slider/ui/Thumb/Thumb.css +1 -1
  225. package/es/components/Slider/ui/Thumb/Thumb.js +2 -3
  226. package/es/components/Slider/ui/Thumb/Thumb.js.map +1 -1
  227. package/es/components/Slider/ui/Thumb/Thumb.styles.js +1 -1
  228. package/es/components/Slider/ui/Thumb/Thumb.styles.js.map +1 -1
  229. package/es/components/Slider/ui/Thumb/Thumb.styles_4w4gzn.css +1 -0
  230. package/es/components/Slider/utils/index.js +10 -28
  231. package/es/components/Slider/utils/index.js.map +1 -1
  232. package/es/components/Slider/variations/_view/base.js +1 -1
  233. package/es/components/Slider/variations/_view/base.js.map +1 -1
  234. package/es/components/Slider/variations/_view/base_x642ct.css +1 -0
  235. package/es/hooks/useOutsideClick.js +1 -1
  236. package/es/hooks/useOutsideClick.js.map +1 -1
  237. package/es/index.css +24 -28
  238. package/es/utils/index.js.map +1 -1
  239. package/package.json +2 -2
  240. package/styled-components/cjs/components/Dropdown/Dropdown.js +58 -37
  241. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +9 -15
  242. package/styled-components/cjs/components/Dropdown/Dropdown.tokens.js +36 -2
  243. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +109 -0
  244. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +17 -51
  245. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +29 -18
  246. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +17 -19
  247. package/styled-components/cjs/components/Dropdown/utils/getItemByFocused.js +12 -0
  248. package/styled-components/cjs/components/Dropdown/utils/getItemId.js +9 -0
  249. package/styled-components/cjs/components/Dropdown/utils/getPlacement.js +15 -0
  250. package/styled-components/cjs/components/Dropdown/utils/index.js +23 -1
  251. package/styled-components/cjs/components/Slider/Slider.js +2 -10
  252. package/styled-components/cjs/components/Slider/Slider.template-doc.mdx +0 -26
  253. package/styled-components/cjs/components/Slider/Slider.tokens.js +17 -23
  254. package/styled-components/cjs/components/Slider/components/Double/Double.js +19 -54
  255. package/styled-components/cjs/components/Slider/components/Single/Single.js +33 -64
  256. package/styled-components/cjs/components/Slider/components/Single/Single.styles.js +6 -6
  257. package/styled-components/cjs/components/Slider/components/SliderBase/SliderBase.js +12 -31
  258. package/styled-components/cjs/components/Slider/components/SliderBase/SliderBase.styles.js +6 -6
  259. package/styled-components/cjs/components/Slider/ui/Handler/Handler.js +88 -52
  260. package/styled-components/cjs/components/Slider/ui/Handler/Handler.styles.js +4 -7
  261. package/styled-components/cjs/components/Slider/ui/Thumb/Thumb.js +2 -3
  262. package/styled-components/cjs/components/Slider/ui/Thumb/Thumb.styles.js +2 -2
  263. package/styled-components/cjs/components/Slider/utils/index.js +10 -28
  264. package/styled-components/cjs/components/Slider/variations/_view/base.js +1 -2
  265. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +5 -5
  266. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  267. package/styled-components/cjs/examples/plasma_b2c/components/Slider/Slider.config.js +3 -3
  268. package/styled-components/cjs/examples/plasma_b2c/components/Slider/Slider.stories.tsx +16 -90
  269. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Dropdown.config.js +5 -5
  270. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  271. package/styled-components/cjs/examples/plasma_web/components/Slider/Slider.config.js +3 -3
  272. package/styled-components/cjs/examples/plasma_web/components/Slider/Slider.stories.tsx +15 -90
  273. package/styled-components/cjs/hooks/useOutsideClick.js +1 -1
  274. package/styled-components/es/components/Dropdown/Dropdown.js +60 -40
  275. package/styled-components/es/components/Dropdown/Dropdown.styles.js +9 -15
  276. package/styled-components/es/components/Dropdown/Dropdown.tokens.js +35 -1
  277. package/styled-components/es/components/Dropdown/FloatingPopover.js +102 -0
  278. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +18 -52
  279. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +31 -20
  280. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +18 -20
  281. package/styled-components/es/components/Dropdown/utils/getItemByFocused.js +6 -0
  282. package/styled-components/es/components/Dropdown/utils/getItemId.js +3 -0
  283. package/styled-components/es/components/Dropdown/utils/getPlacement.js +9 -0
  284. package/styled-components/es/components/Dropdown/utils/index.js +4 -1
  285. package/styled-components/es/components/Slider/Slider.js +2 -11
  286. package/styled-components/es/components/Slider/Slider.template-doc.mdx +0 -26
  287. package/styled-components/es/components/Slider/Slider.tokens.js +17 -23
  288. package/styled-components/es/components/Slider/components/Double/Double.js +19 -54
  289. package/styled-components/es/components/Slider/components/Single/Single.js +34 -65
  290. package/styled-components/es/components/Slider/components/Single/Single.styles.js +5 -5
  291. package/styled-components/es/components/Slider/components/SliderBase/SliderBase.js +12 -31
  292. package/styled-components/es/components/Slider/components/SliderBase/SliderBase.styles.js +7 -7
  293. package/styled-components/es/components/Slider/ui/Handler/Handler.js +86 -51
  294. package/styled-components/es/components/Slider/ui/Handler/Handler.styles.js +5 -8
  295. package/styled-components/es/components/Slider/ui/Thumb/Thumb.js +2 -3
  296. package/styled-components/es/components/Slider/ui/Thumb/Thumb.styles.js +2 -2
  297. package/styled-components/es/components/Slider/utils/index.js +10 -28
  298. package/styled-components/es/components/Slider/variations/_view/base.js +1 -2
  299. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +6 -6
  300. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  301. package/styled-components/es/examples/plasma_b2c/components/Slider/Slider.config.js +3 -3
  302. package/styled-components/es/examples/plasma_b2c/components/Slider/Slider.stories.tsx +16 -90
  303. package/styled-components/es/examples/plasma_web/components/Dropdown/Dropdown.config.js +6 -6
  304. package/styled-components/es/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  305. package/styled-components/es/examples/plasma_web/components/Slider/Slider.config.js +3 -3
  306. package/styled-components/es/examples/plasma_web/components/Slider/Slider.stories.tsx +15 -90
  307. package/styled-components/es/hooks/useOutsideClick.js +1 -1
  308. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts +2 -1
  309. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts.map +1 -1
  310. package/types/components/Dropdown/Dropdown.d.ts +2 -1
  311. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  312. package/types/components/Dropdown/Dropdown.styles.d.ts +1 -6
  313. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  314. package/types/components/Dropdown/Dropdown.tokens.d.ts +25 -0
  315. package/types/components/Dropdown/Dropdown.tokens.d.ts.map +1 -1
  316. package/types/components/Dropdown/Dropdown.types.d.ts +30 -4
  317. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  318. package/types/components/Dropdown/FloatingPopover.d.ts +5 -0
  319. package/types/components/Dropdown/FloatingPopover.d.ts.map +1 -0
  320. package/types/components/Dropdown/index.d.ts +1 -1
  321. package/types/components/Dropdown/index.d.ts.map +1 -1
  322. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -1
  323. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +1 -12
  324. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +1 -1
  325. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
  326. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts +32 -3
  327. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts.map +1 -1
  328. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +1 -14
  329. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  330. package/types/components/Dropdown/utils/getItemByFocused.d.ts +4 -0
  331. package/types/components/Dropdown/utils/getItemByFocused.d.ts.map +1 -0
  332. package/types/components/Dropdown/utils/getItemId.d.ts +2 -0
  333. package/types/components/Dropdown/utils/getItemId.d.ts.map +1 -0
  334. package/types/components/Dropdown/utils/getPlacement.d.ts +3 -0
  335. package/types/components/Dropdown/utils/getPlacement.d.ts.map +1 -0
  336. package/types/components/Dropdown/utils/index.d.ts +3 -0
  337. package/types/components/Dropdown/utils/index.d.ts.map +1 -1
  338. package/types/components/Select/utils/getCorrectHeight.d.ts +2 -2
  339. package/types/components/Select/utils/getCorrectHeight.d.ts.map +1 -1
  340. package/types/components/Slider/Slider.d.ts.map +1 -1
  341. package/types/components/Slider/Slider.tokens.d.ts +16 -22
  342. package/types/components/Slider/Slider.tokens.d.ts.map +1 -1
  343. package/types/components/Slider/components/Double/Double.d.ts.map +1 -1
  344. package/types/components/Slider/components/Double/Double.types.d.ts +0 -1
  345. package/types/components/Slider/components/Double/Double.types.d.ts.map +1 -1
  346. package/types/components/Slider/components/Single/Single.d.ts.map +1 -1
  347. package/types/components/Slider/components/Single/Single.styles.d.ts +1 -1
  348. package/types/components/Slider/components/Single/Single.styles.d.ts.map +1 -1
  349. package/types/components/Slider/components/Single/Single.types.d.ts +7 -80
  350. package/types/components/Slider/components/Single/Single.types.d.ts.map +1 -1
  351. package/types/components/Slider/components/SliderBase/SliderBase.d.ts.map +1 -1
  352. package/types/components/Slider/components/SliderBase/SliderBase.styles.d.ts +1 -1
  353. package/types/components/Slider/components/SliderBase/SliderBase.styles.d.ts.map +1 -1
  354. package/types/components/Slider/components/SliderBase/SliderBase.types.d.ts +0 -6
  355. package/types/components/Slider/components/SliderBase/SliderBase.types.d.ts.map +1 -1
  356. package/types/components/Slider/ui/Handler/Handler.d.ts.map +1 -1
  357. package/types/components/Slider/ui/Handler/Handler.styles.d.ts +2 -6
  358. package/types/components/Slider/ui/Handler/Handler.styles.d.ts.map +1 -1
  359. package/types/components/Slider/ui/Handler/Handler.types.d.ts +1 -5
  360. package/types/components/Slider/ui/Handler/Handler.types.d.ts.map +1 -1
  361. package/types/components/Slider/ui/Thumb/Thumb.d.ts +1 -1
  362. package/types/components/Slider/ui/Thumb/Thumb.d.ts.map +1 -1
  363. package/types/components/Slider/ui/Thumb/Thumb.styles.d.ts.map +1 -1
  364. package/types/components/Slider/ui/Thumb/Thumb.types.d.ts +0 -1
  365. package/types/components/Slider/ui/Thumb/Thumb.types.d.ts.map +1 -1
  366. package/types/components/Slider/utils/index.d.ts +8 -26
  367. package/types/components/Slider/utils/index.d.ts.map +1 -1
  368. package/types/components/Slider/variations/_view/base.d.ts.map +1 -1
  369. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts +3 -3
  370. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts.map +1 -1
  371. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts +4 -4
  372. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts.map +1 -1
  373. package/types/examples/plasma_b2c/components/Slider/Slider.config.d.ts.map +1 -1
  374. package/types/examples/plasma_b2c/components/Slider/Slider.d.ts +2 -84
  375. package/types/examples/plasma_b2c/components/Slider/Slider.d.ts.map +1 -1
  376. package/types/examples/plasma_web/components/Dropdown/Dropdown.config.d.ts +3 -3
  377. package/types/examples/plasma_web/components/Dropdown/Dropdown.config.d.ts.map +1 -1
  378. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts +4 -4
  379. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts.map +1 -1
  380. package/types/examples/plasma_web/components/Slider/Slider.config.d.ts.map +1 -1
  381. package/types/examples/plasma_web/components/Slider/Slider.d.ts +2 -84
  382. package/types/examples/plasma_web/components/Slider/Slider.d.ts.map +1 -1
  383. package/types/hooks/useOutsideClick.d.ts +1 -1
  384. package/types/hooks/useOutsideClick.d.ts.map +1 -1
  385. package/types/utils/index.d.ts +1 -1
  386. package/types/utils/index.d.ts.map +1 -1
  387. package/cjs/components/Dropdown/Dropdown.styles_1tihqkp.css +0 -3
  388. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_blclup.css +0 -6
  389. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +0 -98
  390. package/cjs/components/Slider/components/Single/Single.styles_1h7n2s2.css +0 -6
  391. package/cjs/components/Slider/components/SliderBase/SliderBase.styles_1qt1224.css +0 -5
  392. package/cjs/components/Slider/ui/Handler/Handler.styles_irtcgm.css +0 -2
  393. package/cjs/components/Slider/ui/Handler/computeKeyPressData.js +0 -122
  394. package/cjs/components/Slider/ui/Handler/computeKeyPressData.js.map +0 -1
  395. package/cjs/components/Slider/ui/Thumb/Thumb.styles_uyn20e.css +0 -1
  396. package/cjs/components/Slider/variations/_view/base_1s3f6q8.css +0 -1
  397. package/emotion/cjs/components/Slider/ui/Handler/computeKeyPressData.js +0 -121
  398. package/emotion/es/components/Slider/ui/Handler/computeKeyPressData.js +0 -115
  399. package/es/components/Dropdown/Dropdown.styles_1tihqkp.css +0 -3
  400. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_blclup.css +0 -6
  401. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +0 -98
  402. package/es/components/Slider/components/Single/Single.styles_1h7n2s2.css +0 -6
  403. package/es/components/Slider/components/SliderBase/SliderBase.styles_1qt1224.css +0 -5
  404. package/es/components/Slider/ui/Handler/Handler.styles_irtcgm.css +0 -2
  405. package/es/components/Slider/ui/Handler/computeKeyPressData.js +0 -118
  406. package/es/components/Slider/ui/Handler/computeKeyPressData.js.map +0 -1
  407. package/es/components/Slider/ui/Thumb/Thumb.styles_uyn20e.css +0 -1
  408. package/es/components/Slider/variations/_view/base_1s3f6q8.css +0 -1
  409. package/styled-components/cjs/components/Slider/ui/Handler/computeKeyPressData.js +0 -121
  410. package/styled-components/es/components/Slider/ui/Handler/computeKeyPressData.js +0 -115
  411. package/types/components/Slider/ui/Handler/computeKeyPressData.d.ts +0 -12
  412. package/types/components/Slider/ui/Handler/computeKeyPressData.d.ts.map +0 -1
@@ -8,30 +8,33 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
8
8
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
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
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, useReducer } from 'react';
12
- import { cx, getPlacements } from '../../utils';
11
+ import React, { createContext, forwardRef, useReducer, useRef } from 'react';
12
+ import { safeUseId } from '@salutejs/plasma-core';
13
+ import { cx } from '../../utils';
14
+ import { useOutsideClick } from '../../hooks';
13
15
  import { pathReducer } from './reducers/pathReducer';
14
16
  import { focusedPathReducer } from './reducers/focusedPathReducer';
15
17
  import { DropdownInner } from './ui';
16
18
  import { base as viewCSS } from './variations/_view/base';
17
19
  import { base as sizeCSS } from './variations/_size/base';
18
- import { Ul, StyledPopover, base } from './Dropdown.styles';
19
- import { childrenWithProps } from './utils';
20
+ import { Ul, base } from './Dropdown.styles';
21
+ import { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';
20
22
  import { classes } from './Dropdown.tokens';
21
23
  import { useKeyNavigation } from './hooks/useKeyboardNavigation';
22
24
  import { useHashMaps } from './hooks/useHashMaps';
25
+ import { FloatingPopover } from './FloatingPopover';
26
+ export var Context = /*#__PURE__*/createContext({});
23
27
 
24
28
  /**
25
29
  * Выпадающий список.
26
30
  */
27
31
  export var dropdownRoot = function dropdownRoot(Root) {
28
32
  return /*#__PURE__*/forwardRef(function (_ref, ref) {
33
+ var _getItemByFocused;
29
34
  var items = _ref.items,
30
35
  children = _ref.children,
31
- _ref$placement = _ref.placement,
32
- placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,
33
- _ref$offset = _ref.offset,
34
- offset = _ref$offset === void 0 ? [0, 0] : _ref$offset,
36
+ placement = _ref.placement,
37
+ offset = _ref.offset,
35
38
  _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
36
39
  closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
37
40
  onToggle = _ref.onToggle,
@@ -68,6 +71,25 @@ export var dropdownRoot = function dropdownRoot(Root) {
68
71
  _useHashMaps2 = _slicedToArray(_useHashMaps, 2),
69
72
  pathMap = _useHashMaps2[0],
70
73
  focusedToValueMap = _useHashMaps2[1];
74
+ var activeDescendantItemValue = ((_getItemByFocused = getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value) || '';
75
+ var floatingPopoverRef = useRef(null);
76
+ var treeId = safeUseId();
77
+
78
+ // Логика работы при клике за пределами выпадающего списка
79
+ var targetRef = useOutsideClick(function (event) {
80
+ if (!isCurrentListOpen || !closeOnOverlayClick) {
81
+ return;
82
+ }
83
+ dispatchPath({
84
+ type: 'reset'
85
+ });
86
+ dispatchFocusedPath({
87
+ type: 'reset'
88
+ });
89
+ if (onToggle) {
90
+ onToggle(false, event);
91
+ }
92
+ }, floatingPopoverRef);
71
93
  var handleGlobalToggle = function handleGlobalToggle(opened, event) {
72
94
  if (opened) {
73
95
  dispatchPath({
@@ -99,66 +121,64 @@ export var dropdownRoot = function dropdownRoot(Root) {
99
121
  }),
100
122
  onKeyDown = _useKeyNavigation.onKeyDown;
101
123
  var isCurrentListOpen = Boolean(path[0]);
102
- var getActiveDescendant = function getActiveDescendant() {
103
- var _focusedToValueMap$ge;
104
- var focusedPathAsString = focusedPath.reduce(function (acc, n) {
105
- return "".concat(acc, "/").concat(n);
106
- }, '').replace(/^(\/)/, '');
107
- return focusedToValueMap === null || focusedToValueMap === void 0 || (_focusedToValueMap$ge = focusedToValueMap.get(focusedPathAsString)) === null || _focusedToValueMap$ge === void 0 ? void 0 : _focusedToValueMap$ge.value.toString();
108
- };
109
- return /*#__PURE__*/React.createElement(StyledPopover, {
124
+ return /*#__PURE__*/React.createElement(Context.Provider, {
125
+ value: {
126
+ focusedPath: focusedPath,
127
+ size: size,
128
+ variant: variant,
129
+ itemRole: itemRole,
130
+ handleGlobalToggle: handleGlobalToggle,
131
+ closeOnSelect: closeOnSelect,
132
+ onHover: onHover,
133
+ onItemClick: onItemClick,
134
+ onItemSelect: onItemSelect,
135
+ hasArrow: hasArrow,
136
+ treeId: treeId
137
+ }
138
+ }, /*#__PURE__*/React.createElement(FloatingPopover, {
139
+ ref: floatingPopoverRef,
110
140
  opened: isCurrentListOpen,
111
141
  onToggle: handleGlobalToggle,
142
+ placement: getPlacement(placement),
112
143
  offset: offset,
113
- placement: getPlacements(placement),
144
+ portal: portal,
114
145
  trigger: trigger,
115
- closeOnOverlayClick: closeOnOverlayClick,
116
- isFocusTrapped: false,
117
146
  target: childrenWithProps(children, {
118
147
  role: 'combobox',
119
- 'aria-controls': 'tree_level_1',
148
+ 'aria-controls': "".concat(treeId, "_tree_level_1"),
120
149
  'aria-expanded': isCurrentListOpen,
121
- 'aria-activedescendant': getActiveDescendant(),
150
+ 'aria-activedescendant': activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue.toString()) : '',
122
151
  onKeyDown: onKeyDown
123
- }),
124
- preventOverflow: false,
125
- usePortal: Boolean(portal),
126
- frame: portal
152
+ })
127
153
  }, /*#__PURE__*/React.createElement(Root, _extends({
128
154
  className: cx(className, classes.dropdownRoot),
129
155
  ref: ref,
130
156
  view: view,
131
- size: size
157
+ size: size,
158
+ style: {
159
+ display: 'inline-block'
160
+ }
132
161
  }, rest), /*#__PURE__*/React.createElement(Ul, {
162
+ ref: targetRef,
163
+ id: "".concat(treeId, "_tree_level_1"),
164
+ role: "tree",
133
165
  listHeight: listHeight,
134
166
  listOverflow: listOverflow,
135
- role: "tree",
136
- id: "tree_level_1",
137
167
  listWidth: listWidth
138
168
  }, items.map(function (item, index) {
139
169
  return /*#__PURE__*/React.createElement(DropdownInner, {
140
170
  key: "".concat(index, "/0"),
141
171
  item: item,
142
172
  currentLevel: 0,
143
- focusedPath: focusedPath,
144
173
  trigger: trigger,
145
174
  path: path,
146
175
  dispatchPath: dispatchPath,
147
176
  index: index,
148
- itemRole: itemRole,
149
177
  listHeight: listHeight,
150
178
  listOverflow: listOverflow,
151
- handleGlobalToggle: handleGlobalToggle,
152
- closeOnSelect: closeOnSelect,
153
- onHover: onHover,
154
- onItemSelect: onItemSelect,
155
- onItemClick: onItemClick,
156
- listWidth: listWidth,
157
- variant: variant,
158
- hasArrow: hasArrow,
159
- size: size
179
+ listWidth: listWidth
160
180
  });
161
- }))));
181
+ })))));
162
182
  });
163
183
  };
164
184
  export var dropdownConfig = {
@@ -1,26 +1,20 @@
1
1
  import styled from 'styled-components';
2
2
  import { css } from 'styled-components';
3
- import { component } from '../../engines';
4
- import { popoverConfig, popoverClasses } from '../Popover';
5
3
  import { getCorrectHeight } from './utils';
6
- import { tokens } from './Dropdown.tokens';
7
- var Popover = /*#__PURE__*/component(popoverConfig);
8
- export var StyledPopover = /*#__PURE__*/styled(Popover).withConfig({
9
- componentId: "plasma-new-hope__sc-13ezpo5-0"
10
- })([".", ",.", "{display:block;}"], /*#__PURE__*/String(popoverClasses.wrapper), /*#__PURE__*/String(popoverClasses.target));
4
+ import { tokens, constants } from './Dropdown.tokens';
11
5
  export var Ul = /*#__PURE__*/styled.ul.withConfig({
12
- componentId: "plasma-new-hope__sc-13ezpo5-1"
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) {
6
+ componentId: "plasma-new-hope__sc-13ezpo5-0"
7
+ })(["box-sizing:border-box;width:", ";height:", ";margin:", ";padding:var(", ") 0;overflow:", ";background:var(", ");box-shadow:", ";border-radius:var(", ");"], function (_ref) {
14
8
  var listWidth = _ref.listWidth;
15
9
  return listWidth || "var(".concat(tokens.width, ")");
16
10
  }, function (_ref2) {
17
11
  var listHeight = _ref2.listHeight;
18
12
  return listHeight ? getCorrectHeight(listHeight) : 'auto';
19
13
  }, function (_ref3) {
20
- var listOverflow = _ref3.listOverflow;
14
+ var isInnerUl = _ref3.isInnerUl;
15
+ return isInnerUl ? "calc(var(".concat(tokens.padding, ") * -1) 0.125rem 0") : 0;
16
+ }, tokens.padding, function (_ref4) {
17
+ var listOverflow = _ref4.listOverflow;
21
18
  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;"]);
19
+ }, constants.background, constants.boxShadow, tokens.borderRadius);
20
+ export var base = /*#__PURE__*/css([""]);
@@ -3,7 +3,7 @@ export var classes = {
3
3
  dropdownItemIsFocused: 'dropdown-item-is-focused',
4
4
  dropdownItemIsDisabled: 'dropdown-item-is-disabled',
5
5
  dropdownItemIsActive: 'dropdown-item-is-active',
6
- dropdownItemIsSelected: 'dropdownItemIsSelected'
6
+ dropdownItemIsSelected: 'dropdown-item-is-selected'
7
7
  };
8
8
  export var tokens = {
9
9
  background: '--plasma-dropdown-background',
@@ -14,6 +14,8 @@ export var tokens = {
14
14
  disclosureIconColor: '--plasma-dropdown-disclosure-icon-color',
15
15
  disabledOpacity: '--plasma-dropdown-disabled-opacity',
16
16
  focusColor: '--plasma-dropdown-focus-color',
17
+ // Old
18
+
17
19
  dividerColor: '--plasma-dropdown-divider-color',
18
20
  dividerMarginTop: '--plasma-dropdown-divider-margin-top',
19
21
  dividerMarginTopTight: '--plasma-dropdown-divider-margin-top-tight',
@@ -28,6 +30,7 @@ export var tokens = {
28
30
  itemBackgroundSelectedHover: '--plasma-dropdown-item-background-selected-hover',
29
31
  // Old
30
32
  itemColor: '--plasma-dropdown-item-color',
33
+ // Old
31
34
  itemColorSelected: '--plasma-dropdown-item-color-selected',
32
35
  // Old
33
36
  itemColorSelectedHover: '--plasma-dropdown-item-color-selected-hover',
@@ -46,11 +49,17 @@ export var tokens = {
46
49
  itemMarginLeft: '--plasma-dropdown-item-margin-left',
47
50
  // Old
48
51
  itemPaddingTop: '--plasma-dropdown-item-padding-top',
52
+ // Old
49
53
  itemPaddingTopTight: '--plasma-dropdown-item-padding-top-tight',
54
+ // Old
50
55
  itemPaddingRight: '--plasma-dropdown-item-padding-right',
56
+ // Old
51
57
  itemPaddingBottom: '--plasma-dropdown-item-padding-bottom',
58
+ // Old
52
59
  itemPaddingBottomTight: '--plasma-dropdown-item-padding-bottom-tight',
60
+ // Old
53
61
  itemPaddingLeft: '--plasma-dropdown-item-padding-left',
62
+ // Old
54
63
  itemContentLeftWidth: '--plasma-dropdown-item-content-left-width',
55
64
  // Old
56
65
  itemContentLeftColor: '--plasma-dropdown-item-content-left-color',
@@ -65,6 +74,20 @@ export var tokens = {
65
74
  itemFontWeightBold: '--plasma-dropdown-item-letter-spacing',
66
75
  itemFontLetterSpacing: '--plasma-dropdown-item-line-height',
67
76
  itemFontLineHeight: '--plasma-dropdown-item-font-weight',
77
+ itemPadding: '--plasma-dropdown-item-padding',
78
+ itemPaddingTight: '--plasma-dropdown-item-padding-tight',
79
+ cellPadding: '--plasma-dropdown-cell-padding',
80
+ cellPaddingLeftContent: '--plasma-dropdown-cell-padding-left-content',
81
+ cellPaddingContent: '--plasma-dropdown-cell-padding-content',
82
+ cellPaddingRightContent: '--plasma-dropdown-cell-padding-right-content',
83
+ cellTextboxGap: '--plasma-dropdown-cell-textbox-gap',
84
+ cellGap: '--plasma-dropdown-cell-gap',
85
+ cellTitleFontFamily: '--plasma-dropdown-cell-title-font-family',
86
+ cellTitleFontSize: '--plasma-dropdown-cell-title-font-size',
87
+ cellTitleFontStyle: '--plasma-dropdown-cell-title-font-style',
88
+ cellTitleFontWeight: '--plasma-dropdown-cell-title-font-weight',
89
+ cellTitleLetterSpacing: '--plasma-dropdown-cell-title-letter-spacing',
90
+ cellTitleLineHeight: '--plasma-dropdown-cell-title-line-height',
68
91
  // TODO: Remove below tokens as soon as they are no longer needed
69
92
  footerBackground: '--plasma-dropdown-footer-background',
70
93
  footerWidth: '--plasma-dropdown-footer-width',
@@ -128,4 +151,15 @@ export var tokens = {
128
151
  groupLabelMarginRight: '--plasma-dropdown-group-label-margin-right',
129
152
  groupLabelMarginBottom: '--plasma-dropdown-group-label-margin-bottom',
130
153
  groupLabelMarginLeft: '--plasma-dropdown-group-label-margin-left'
154
+ };
155
+ export var constants = {
156
+ focusColor: '--surface-accent',
157
+ background: '--surface-solid-card',
158
+ boxShadow: '0px 4px 14px -4px rgba(8, 8, 8, 0.08), 0px 1px 4px -1px rgba(0, 0, 0, 0.04)',
159
+ disclosureIconColor: '--text-secondary',
160
+ itemBackground: '--plasma-colors-transparent',
161
+ itemBackgroundHover: '--surface-transparent-secondary',
162
+ opacity: '0.4',
163
+ cellTitleColor: '--text-primary',
164
+ cellBackgroundColor: '--plasma-colors-transparent'
131
165
  };
@@ -0,0 +1,102 @@
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
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ 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); }
7
+ import { flip, shift, useFloating, FloatingPortal, offset as offsetMiddleware, autoPlacement } from '@floating-ui/react';
8
+ import React, { forwardRef } from 'react';
9
+ import { safeUseId } from '@salutejs/plasma-core';
10
+ var FloatingPopover = /*#__PURE__*/forwardRef(function (_ref, ref) {
11
+ var target = _ref.target,
12
+ children = _ref.children,
13
+ opened = _ref.opened,
14
+ onToggle = _ref.onToggle,
15
+ placement = _ref.placement,
16
+ portal = _ref.portal,
17
+ _ref$offset = _ref.offset,
18
+ offset = _ref$offset === void 0 ? [0, 0] : _ref$offset,
19
+ isInner = _ref.isInner,
20
+ trigger = _ref.trigger;
21
+ var _useFloating = useFloating({
22
+ placement: placement === 'auto' ? undefined : placement,
23
+ open: opened,
24
+ middleware: [placement === 'auto' && autoPlacement(), offsetMiddleware({
25
+ mainAxis: offset[1],
26
+ crossAxis: offset[0]
27
+ }), flip({
28
+ fallbackAxisSideDirection: 'end'
29
+ }), shift()]
30
+ }),
31
+ refs = _useFloating.refs,
32
+ floatingStyles = _useFloating.floatingStyles;
33
+ var wrappedId = safeUseId();
34
+ var handleTargetClick = function handleTargetClick(event) {
35
+ if (trigger === 'hover') {
36
+ return;
37
+ }
38
+ if (onToggle) {
39
+ onToggle(!opened, event);
40
+ }
41
+ };
42
+ var handleTargetMouseEnter = function handleTargetMouseEnter(event) {
43
+ if (trigger === 'click' || opened) {
44
+ return;
45
+ }
46
+ onToggle(true, event);
47
+ };
48
+ var handleTargetMouseLeave = function handleTargetMouseLeave(event) {
49
+ if (event.relatedTarget instanceof HTMLElement && refs.floating.current instanceof HTMLElement) {
50
+ var _refs$floating$curren;
51
+ if (trigger === 'click' || !opened || event.relatedTarget && refs.floating && (_refs$floating$curren = refs.floating.current) !== null && _refs$floating$curren !== void 0 && _refs$floating$curren.contains(event.relatedTarget)) {
52
+ return;
53
+ }
54
+ onToggle(false, event);
55
+ }
56
+ };
57
+ var handleFloatingMouseLeave = function handleFloatingMouseLeave(event) {
58
+ if (event.relatedTarget instanceof HTMLElement && refs.reference.current instanceof HTMLElement) {
59
+ var _refs$reference$curre;
60
+ if (trigger === 'click' || !opened || event.relatedTarget && refs.reference && (_refs$reference$curre = refs.reference.current) !== null && _refs$reference$curre !== void 0 && _refs$reference$curre.contains(event.relatedTarget)) {
61
+ return;
62
+ }
63
+ onToggle(false, event);
64
+ }
65
+ };
66
+ return /*#__PURE__*/React.createElement("div", {
67
+ id: wrappedId,
68
+ style: {
69
+ display: isInner ? 'block' : 'inline-block'
70
+ },
71
+ ref: ref
72
+ }, /*#__PURE__*/React.createElement("div", {
73
+ ref: refs.setReference,
74
+ onClick: handleTargetClick,
75
+ onMouseEnter: handleTargetMouseEnter,
76
+ onMouseLeave: handleTargetMouseLeave
77
+ }, target), opened && /*#__PURE__*/React.createElement(FloatingPortal, getFloatingPortalProps(portal, wrappedId), /*#__PURE__*/React.createElement("div", {
78
+ ref: refs.setFloating,
79
+ onMouseLeave: handleFloatingMouseLeave,
80
+ style: _objectSpread(_objectSpread({}, floatingStyles), {}, {
81
+ zIndex: 1
82
+ })
83
+ }, children)));
84
+ });
85
+ // root - принимает ref контейнера портала.
86
+ // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.
87
+ var getFloatingPortalProps = function getFloatingPortalProps(portal, wrappedId) {
88
+ if (!portal) {
89
+ return {
90
+ id: wrappedId
91
+ };
92
+ }
93
+ if (typeof portal === 'string') {
94
+ return {
95
+ id: portal
96
+ };
97
+ }
98
+ return {
99
+ root: portal
100
+ };
101
+ };
102
+ export { FloatingPopover };
@@ -1,26 +1,18 @@
1
1
  import React from 'react';
2
+ import { safeUseId } from '@salutejs/plasma-core';
2
3
  import { DropdownItem } from '..';
3
- import { Ul, StyledPopover } from '../../Dropdown.styles';
4
+ import { Ul } from '../../Dropdown.styles';
5
+ import { FloatingPopover } from '../../FloatingPopover';
4
6
  var DropdownInner = function DropdownInner(_ref) {
5
7
  var item = _ref.item,
6
8
  currentLevel = _ref.currentLevel,
7
- focusedPath = _ref.focusedPath,
8
9
  path = _ref.path,
9
10
  dispatchPath = _ref.dispatchPath,
10
11
  index = _ref.index,
11
12
  trigger = _ref.trigger,
12
- itemRole = _ref.itemRole,
13
13
  listHeight = _ref.listHeight,
14
14
  listOverflow = _ref.listOverflow,
15
- handleGlobalToggle = _ref.handleGlobalToggle,
16
- closeOnSelect = _ref.closeOnSelect,
17
- onHover = _ref.onHover,
18
- onItemSelect = _ref.onItemSelect,
19
- onItemClick = _ref.onItemClick,
20
- listWidth = _ref.listWidth,
21
- variant = _ref.variant,
22
- hasArrow = _ref.hasArrow,
23
- size = _ref.size;
15
+ listWidth = _ref.listWidth;
24
16
  var handleToggle = function handleToggle(opened) {
25
17
  if (opened) {
26
18
  dispatchPath({
@@ -36,80 +28,54 @@ var DropdownInner = function DropdownInner(_ref) {
36
28
  }
37
29
  };
38
30
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
39
- var listId = "tree_level_".concat(currentLevel + 2);
31
+ var treeId = safeUseId();
32
+ var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
40
33
  var nextLevel = currentLevel + 1;
41
34
  if (item !== null && item !== void 0 && item.items) {
42
- return /*#__PURE__*/React.createElement(StyledPopover, {
43
- opened: isCurrentListOpen,
44
- usePortal: false,
35
+ return /*#__PURE__*/React.createElement(FloatingPopover, {
45
36
  placement: "right-start",
37
+ opened: isCurrentListOpen,
38
+ onToggle: handleToggle,
46
39
  trigger: trigger,
47
40
  target: /*#__PURE__*/React.createElement(DropdownItem, {
48
41
  item: item,
49
42
  index: index,
50
43
  path: path,
51
- focusedPath: focusedPath,
52
44
  currentLevel: currentLevel,
53
- itemRole: itemRole,
54
- onHover: onHover,
55
- onItemSelect: onItemSelect,
56
- onItemClick: onItemClick,
57
- variant: variant,
58
- hasArrow: hasArrow,
59
45
  ariaControls: listId,
60
46
  ariaExpanded: isCurrentListOpen,
61
47
  ariaLevel: nextLevel,
62
- ariaLabel: item.label,
63
- size: size
48
+ ariaLabel: item.label
64
49
  }),
65
- onToggle: handleToggle,
66
- isFocusTrapped: false,
67
- preventOverflow: false
50
+ isInner: true
68
51
  }, /*#__PURE__*/React.createElement(Ul, {
52
+ id: listId,
53
+ role: "group",
54
+ isInnerUl: true,
69
55
  listHeight: listHeight,
70
56
  listOverflow: listOverflow,
71
- role: "group",
72
- id: listId,
73
- listWidth: listWidth,
74
- isInnerUl: true
57
+ listWidth: listWidth
75
58
  }, item.items.map(function (innerItem, innerIndex) {
76
59
  return /*#__PURE__*/React.createElement(DropdownInner, {
77
60
  key: "".concat(innerIndex, "/").concat(currentLevel),
78
61
  item: innerItem,
79
62
  currentLevel: nextLevel,
80
- focusedPath: focusedPath,
81
63
  path: path,
82
64
  dispatchPath: dispatchPath,
83
65
  index: innerIndex,
84
66
  trigger: trigger,
85
- itemRole: itemRole,
86
67
  listHeight: listHeight,
87
68
  listOverflow: listOverflow,
88
- handleGlobalToggle: handleGlobalToggle,
89
- closeOnSelect: closeOnSelect,
90
- onHover: onHover,
91
- onItemSelect: onItemSelect,
92
- onItemClick: onItemClick,
93
- listWidth: listWidth,
94
- variant: variant,
95
- hasArrow: hasArrow,
96
- size: size
69
+ listWidth: listWidth
97
70
  });
98
71
  })));
99
72
  }
100
73
  return /*#__PURE__*/React.createElement(DropdownItem, {
101
74
  item: item,
75
+ path: path,
102
76
  index: index,
103
- focusedPath: focusedPath,
104
77
  currentLevel: currentLevel,
105
- itemRole: itemRole,
106
- handleGlobalToggle: handleGlobalToggle,
107
- closeOnSelect: closeOnSelect,
108
- onHover: onHover,
109
- onItemSelect: onItemSelect,
110
- onItemClick: onItemClick,
111
- variant: variant,
112
- size: size
78
+ ariaLevel: nextLevel
113
79
  });
114
80
  };
115
81
  export { DropdownInner };
@@ -1,28 +1,19 @@
1
- import React, { useEffect, useRef } from 'react';
1
+ import React, { useEffect, useRef, useContext } from 'react';
2
2
  import { classes } from '../../Dropdown.tokens';
3
3
  import { cx } from '../../../../utils';
4
4
  import { IconDisclosureRight } from '../../../_Icon';
5
- import { StyledContentLeft, StyledContentRight, StyledText, Wrapper, DisclosureIconWrapper, Divider } from './DropdownItem.styles';
5
+ import { Context } from '../../Dropdown';
6
+ import { getItemId } from '../../utils';
7
+ import { Wrapper, DisclosureIconWrapper, Divider, CellWrapper, StyledCell } from './DropdownItem.styles';
6
8
  export var DropdownItem = function DropdownItem(_ref) {
7
9
  var item = _ref.item,
8
10
  path = _ref.path,
9
- focusedPath = _ref.focusedPath,
10
11
  currentLevel = _ref.currentLevel,
11
12
  index = _ref.index,
12
- itemRole = _ref.itemRole,
13
- closeOnSelect = _ref.closeOnSelect,
14
- handleGlobalToggle = _ref.handleGlobalToggle,
15
- onHover = _ref.onHover,
16
- onItemSelect = _ref.onItemSelect,
17
- onItemClick = _ref.onItemClick,
18
13
  ariaControls = _ref.ariaControls,
19
14
  ariaExpanded = _ref.ariaExpanded,
20
- ariaHasPopup = _ref.ariaHasPopup,
21
15
  ariaLevel = _ref.ariaLevel,
22
- ariaLabel = _ref.ariaLabel,
23
- variant = _ref.variant,
24
- hasArrow = _ref.hasArrow,
25
- size = _ref.size;
16
+ ariaLabel = _ref.ariaLabel;
26
17
  var value = item.value,
27
18
  label = item.label,
28
19
  disabled = item.disabled,
@@ -32,6 +23,19 @@ export var DropdownItem = function DropdownItem(_ref) {
32
23
  dividerBefore = item.dividerBefore,
33
24
  dividerAfter = item.dividerAfter;
34
25
  var ref = useRef(null);
26
+ var _useContext = useContext(Context),
27
+ focusedPath = _useContext.focusedPath,
28
+ size = _useContext.size,
29
+ variant = _useContext.variant,
30
+ itemRole = _useContext.itemRole,
31
+ handleGlobalToggle = _useContext.handleGlobalToggle,
32
+ closeOnSelect = _useContext.closeOnSelect,
33
+ onHover = _useContext.onHover,
34
+ onItemSelect = _useContext.onItemSelect,
35
+ onItemClick = _useContext.onItemClick,
36
+ hasArrow = _useContext.hasArrow,
37
+ treeId = _useContext.treeId;
38
+ var hasDescendants = Boolean(item.items);
35
39
  var disclosureIconSize = size === 'xs' ? 'xs' : 's';
36
40
  var isDisabledClassName = disabled || isDisabled ? classes.dropdownItemIsDisabled : undefined;
37
41
  var focusedClass = currentLevel === focusedPath.length - 1 && index === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentLevel]) ? classes.dropdownItemIsFocused : undefined;
@@ -55,7 +59,9 @@ export var DropdownItem = function DropdownItem(_ref) {
55
59
  if (onItemClick) {
56
60
  onItemClick(item, event);
57
61
  }
58
- if (handleGlobalToggle && closeOnSelect) {
62
+
63
+ // Закрываем весь дропдаун целиком при клике на айтем без потомков. Только при closeOnSelect === true.
64
+ if (closeOnSelect && !hasDescendants) {
59
65
  handleGlobalToggle(false, event);
60
66
  }
61
67
  };
@@ -67,20 +73,25 @@ export var DropdownItem = function DropdownItem(_ref) {
67
73
  return /*#__PURE__*/React.createElement(React.Fragment, null, dividerBefore && /*#__PURE__*/React.createElement(Divider, {
68
74
  variant: variant
69
75
  }), /*#__PURE__*/React.createElement(Wrapper, {
76
+ ref: ref,
70
77
  className: cx(isDisabledClassName, focusedClass, activeClass),
71
- id: value.toString(),
78
+ id: getItemId(treeId, value.toString()),
72
79
  role: itemRole,
73
- ref: ref,
74
- "aria-disabled": disabled || isDisabled,
75
80
  onClick: handleClick,
76
81
  onMouseEnter: handleHover,
77
82
  variant: variant,
83
+ "aria-disabled": disabled || isDisabled,
78
84
  "aria-controls": ariaControls,
79
85
  "aria-expanded": ariaExpanded,
80
- "aria-haspopup": ariaHasPopup,
81
86
  "aria-level": ariaLevel,
82
87
  "aria-label": ariaLabel
83
- }, contentLeft && /*#__PURE__*/React.createElement(StyledContentLeft, null, contentLeft), /*#__PURE__*/React.createElement(StyledText, null, label), contentRight && /*#__PURE__*/React.createElement(StyledContentRight, null, contentRight), item.items && hasArrow && /*#__PURE__*/React.createElement(DisclosureIconWrapper, null, /*#__PURE__*/React.createElement(IconDisclosureRight, {
88
+ }, /*#__PURE__*/React.createElement(CellWrapper, null, /*#__PURE__*/React.createElement(StyledCell, {
89
+ contentLeft: contentLeft,
90
+ contentRight: contentRight,
91
+ alignContentLeft: "center",
92
+ alignContentRight: "center",
93
+ title: label
94
+ })), item.items && hasArrow && /*#__PURE__*/React.createElement(DisclosureIconWrapper, null, /*#__PURE__*/React.createElement(IconDisclosureRight, {
84
95
  size: disclosureIconSize,
85
96
  color: "inherit"
86
97
  }))), dividerAfter && /*#__PURE__*/React.createElement(Divider, {