@salutejs/plasma-new-hope 0.173.1-canary.1502.11462220468.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 (271) 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/Tabs/createTabsController.js.map +1 -1
  46. package/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +3 -8
  47. package/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js.map +1 -1
  48. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.css +1 -1
  49. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +5 -15
  50. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  51. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js +1 -1
  52. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js.map +1 -1
  53. package/{es/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base_4ob3q5.css → cjs/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base_9miwn.css} +1 -1
  54. package/cjs/hooks/useOutsideClick.js +1 -1
  55. package/cjs/hooks/useOutsideClick.js.map +1 -1
  56. package/cjs/index.css +13 -15
  57. package/emotion/cjs/components/Dropdown/Dropdown.js +58 -37
  58. package/emotion/cjs/components/Dropdown/Dropdown.styles.js +9 -25
  59. package/emotion/cjs/components/Dropdown/Dropdown.tokens.js +36 -2
  60. package/emotion/cjs/components/Dropdown/FloatingPopover.js +109 -0
  61. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +17 -51
  62. package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +29 -18
  63. package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +21 -41
  64. package/emotion/cjs/components/Dropdown/utils/getItemByFocused.js +12 -0
  65. package/emotion/cjs/components/Dropdown/utils/getItemId.js +9 -0
  66. package/emotion/cjs/components/Dropdown/utils/getPlacement.js +15 -0
  67. package/emotion/cjs/components/Dropdown/utils/index.js +23 -1
  68. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +3 -13
  69. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +5 -20
  70. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js +1 -1
  71. package/emotion/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +5 -5
  72. package/emotion/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  73. package/emotion/cjs/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +33 -72
  74. package/emotion/cjs/examples/plasma_web/components/Dropdown/Dropdown.config.js +5 -5
  75. package/emotion/cjs/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  76. package/emotion/cjs/examples/plasma_web/components/Tabs/Tabs.stories.tsx +33 -72
  77. package/emotion/cjs/hooks/useOutsideClick.js +1 -1
  78. package/emotion/es/components/Dropdown/Dropdown.js +60 -40
  79. package/emotion/es/components/Dropdown/Dropdown.styles.js +9 -25
  80. package/emotion/es/components/Dropdown/Dropdown.tokens.js +35 -1
  81. package/emotion/es/components/Dropdown/FloatingPopover.js +102 -0
  82. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +18 -52
  83. package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +31 -20
  84. package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +22 -42
  85. package/emotion/es/components/Dropdown/utils/getItemByFocused.js +6 -0
  86. package/emotion/es/components/Dropdown/utils/getItemId.js +3 -0
  87. package/emotion/es/components/Dropdown/utils/getPlacement.js +9 -0
  88. package/emotion/es/components/Dropdown/utils/index.js +4 -1
  89. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +3 -14
  90. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +5 -21
  91. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js +1 -1
  92. package/emotion/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +6 -6
  93. package/emotion/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  94. package/emotion/es/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +33 -72
  95. package/emotion/es/examples/plasma_web/components/Dropdown/Dropdown.config.js +6 -6
  96. package/emotion/es/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  97. package/emotion/es/examples/plasma_web/components/Tabs/Tabs.stories.tsx +33 -72
  98. package/emotion/es/hooks/useOutsideClick.js +1 -1
  99. package/es/components/Combobox/ComboboxOld/Combobox.css +28 -14
  100. package/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  101. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  102. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +32 -18
  103. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js +3 -2
  104. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js.map +1 -1
  105. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +32 -18
  106. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js +3 -2
  107. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js.map +1 -1
  108. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +32 -18
  109. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js +3 -2
  110. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js.map +1 -1
  111. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +32 -18
  112. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js +3 -2
  113. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js.map +1 -1
  114. package/es/components/Dropdown/Dropdown.css +30 -16
  115. package/es/components/Dropdown/Dropdown.js +68 -47
  116. package/es/components/Dropdown/Dropdown.js.map +1 -1
  117. package/es/components/Dropdown/Dropdown.styles.js +15 -27
  118. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  119. package/es/components/Dropdown/Dropdown.styles_18f0qpm.css +2 -0
  120. package/es/components/Dropdown/Dropdown.tokens.js +24 -1
  121. package/es/components/Dropdown/Dropdown.tokens.js.map +1 -1
  122. package/es/components/Dropdown/FloatingPopover.js +100 -0
  123. package/es/components/Dropdown/FloatingPopover.js.map +1 -0
  124. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +18 -53
  125. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  126. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.css +46 -6
  127. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +31 -20
  128. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  129. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +26 -29
  130. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  131. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_17va0nk.css +5 -0
  132. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +1 -1
  133. package/es/components/Dropdown/ui/DropdownItemOld/{DropdownItem.styles_12e50g5.css → DropdownItem.styles_1lyg81y.css} +1 -1
  134. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.css +4 -4
  135. package/es/components/Dropdown/utils/getItemByFocused.js +9 -0
  136. package/es/components/Dropdown/utils/getItemByFocused.js.map +1 -0
  137. package/es/components/Dropdown/utils/getItemId.js +6 -0
  138. package/es/components/Dropdown/utils/getItemId.js.map +1 -0
  139. package/es/components/Dropdown/utils/getPlacement.js +12 -0
  140. package/es/components/Dropdown/utils/getPlacement.js.map +1 -0
  141. package/es/components/Dropdown/utils/index.js.map +1 -1
  142. package/es/components/Select/utils/getCorrectHeight.js.map +1 -1
  143. package/es/components/Tabs/createTabsController.js.map +1 -1
  144. package/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +4 -9
  145. package/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js.map +1 -1
  146. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.css +1 -1
  147. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +6 -16
  148. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  149. package/es/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js +1 -1
  150. package/es/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js.map +1 -1
  151. package/{cjs/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base_4ob3q5.css → es/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base_9miwn.css} +1 -1
  152. package/es/hooks/useOutsideClick.js +1 -1
  153. package/es/hooks/useOutsideClick.js.map +1 -1
  154. package/es/index.css +13 -15
  155. package/package.json +2 -2
  156. package/styled-components/cjs/components/Dropdown/Dropdown.js +58 -37
  157. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +9 -15
  158. package/styled-components/cjs/components/Dropdown/Dropdown.tokens.js +36 -2
  159. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +109 -0
  160. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +17 -51
  161. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +29 -18
  162. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +17 -19
  163. package/styled-components/cjs/components/Dropdown/utils/getItemByFocused.js +12 -0
  164. package/styled-components/cjs/components/Dropdown/utils/getItemId.js +9 -0
  165. package/styled-components/cjs/components/Dropdown/utils/getPlacement.js +15 -0
  166. package/styled-components/cjs/components/Dropdown/utils/index.js +23 -1
  167. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +3 -13
  168. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +5 -20
  169. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js +1 -1
  170. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +5 -5
  171. package/styled-components/cjs/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  172. package/styled-components/cjs/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +33 -72
  173. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Dropdown.config.js +5 -5
  174. package/styled-components/cjs/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  175. package/styled-components/cjs/examples/plasma_web/components/Tabs/Tabs.stories.tsx +33 -72
  176. package/styled-components/cjs/hooks/useOutsideClick.js +1 -1
  177. package/styled-components/es/components/Dropdown/Dropdown.js +60 -40
  178. package/styled-components/es/components/Dropdown/Dropdown.styles.js +9 -15
  179. package/styled-components/es/components/Dropdown/Dropdown.tokens.js +35 -1
  180. package/styled-components/es/components/Dropdown/FloatingPopover.js +102 -0
  181. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +18 -52
  182. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +31 -20
  183. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +18 -20
  184. package/styled-components/es/components/Dropdown/utils/getItemByFocused.js +6 -0
  185. package/styled-components/es/components/Dropdown/utils/getItemId.js +3 -0
  186. package/styled-components/es/components/Dropdown/utils/getPlacement.js +9 -0
  187. package/styled-components/es/components/Dropdown/utils/index.js +4 -1
  188. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +3 -14
  189. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +5 -21
  190. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.js +1 -1
  191. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.config.js +6 -6
  192. package/styled-components/es/examples/plasma_b2c/components/Dropdown/Dropdown.stories.tsx +6 -5
  193. package/styled-components/es/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +33 -72
  194. package/styled-components/es/examples/plasma_web/components/Dropdown/Dropdown.config.js +6 -6
  195. package/styled-components/es/examples/plasma_web/components/Dropdown/Dropdown.stories.tsx +6 -5
  196. package/styled-components/es/examples/plasma_web/components/Tabs/Tabs.stories.tsx +33 -72
  197. package/styled-components/es/hooks/useOutsideClick.js +1 -1
  198. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts +2 -1
  199. package/types/components/Combobox/ComboboxOld/Combobox.types.d.ts.map +1 -1
  200. package/types/components/Dropdown/Dropdown.d.ts +2 -1
  201. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  202. package/types/components/Dropdown/Dropdown.styles.d.ts +1 -6
  203. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  204. package/types/components/Dropdown/Dropdown.tokens.d.ts +25 -0
  205. package/types/components/Dropdown/Dropdown.tokens.d.ts.map +1 -1
  206. package/types/components/Dropdown/Dropdown.types.d.ts +30 -4
  207. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  208. package/types/components/Dropdown/FloatingPopover.d.ts +5 -0
  209. package/types/components/Dropdown/FloatingPopover.d.ts.map +1 -0
  210. package/types/components/Dropdown/index.d.ts +1 -1
  211. package/types/components/Dropdown/index.d.ts.map +1 -1
  212. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -1
  213. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +1 -12
  214. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +1 -1
  215. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
  216. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts +32 -3
  217. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts.map +1 -1
  218. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +1 -14
  219. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  220. package/types/components/Dropdown/utils/getItemByFocused.d.ts +4 -0
  221. package/types/components/Dropdown/utils/getItemByFocused.d.ts.map +1 -0
  222. package/types/components/Dropdown/utils/getItemId.d.ts +2 -0
  223. package/types/components/Dropdown/utils/getItemId.d.ts.map +1 -0
  224. package/types/components/Dropdown/utils/getPlacement.d.ts +3 -0
  225. package/types/components/Dropdown/utils/getPlacement.d.ts.map +1 -0
  226. package/types/components/Dropdown/utils/index.d.ts +3 -0
  227. package/types/components/Dropdown/utils/index.d.ts.map +1 -1
  228. package/types/components/Select/utils/getCorrectHeight.d.ts +2 -2
  229. package/types/components/Select/utils/getCorrectHeight.d.ts.map +1 -1
  230. package/types/components/Tabs/TabItem.types.d.ts +8 -50
  231. package/types/components/Tabs/TabItem.types.d.ts.map +1 -1
  232. package/types/components/Tabs/Tabs.types.d.ts +2 -44
  233. package/types/components/Tabs/Tabs.types.d.ts.map +1 -1
  234. package/types/components/Tabs/createTabsController.d.ts +2 -2
  235. package/types/components/Tabs/createTabsController.d.ts.map +1 -1
  236. package/types/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.d.ts.map +1 -1
  237. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +2 -2
  238. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  239. package/types/components/Tabs/ui/horizontal/HorizontalTabs/variations/_view/base.d.ts.map +1 -1
  240. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts +3 -3
  241. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.config.d.ts.map +1 -1
  242. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts +4 -4
  243. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts.map +1 -1
  244. package/types/examples/plasma_b2c/components/Tabs/TabItem.d.ts +2 -17
  245. package/types/examples/plasma_b2c/components/Tabs/TabItem.d.ts.map +1 -1
  246. package/types/examples/plasma_b2c/components/Tabs/Tabs.d.ts +1 -1
  247. package/types/examples/plasma_b2c/components/Tabs/Tabs.d.ts.map +1 -1
  248. package/types/examples/plasma_web/components/Dropdown/Dropdown.config.d.ts +3 -3
  249. package/types/examples/plasma_web/components/Dropdown/Dropdown.config.d.ts.map +1 -1
  250. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts +4 -4
  251. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts.map +1 -1
  252. package/types/examples/plasma_web/components/Tabs/TabItem.d.ts +2 -17
  253. package/types/examples/plasma_web/components/Tabs/TabItem.d.ts.map +1 -1
  254. package/types/examples/plasma_web/components/Tabs/Tabs.d.ts +1 -1
  255. package/types/examples/plasma_web/components/Tabs/Tabs.d.ts.map +1 -1
  256. package/types/hooks/useOutsideClick.d.ts +1 -1
  257. package/types/hooks/useOutsideClick.d.ts.map +1 -1
  258. package/cjs/components/Dropdown/Dropdown.styles_1tihqkp.css +0 -3
  259. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles_blclup.css +0 -6
  260. package/cjs/components/Tabs/ui/horizontal/const.js +0 -11
  261. package/cjs/components/Tabs/ui/horizontal/const.js.map +0 -1
  262. package/emotion/cjs/components/Tabs/ui/horizontal/const.js +0 -10
  263. package/emotion/es/components/Tabs/ui/horizontal/const.js +0 -4
  264. package/es/components/Dropdown/Dropdown.styles_1tihqkp.css +0 -3
  265. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles_blclup.css +0 -6
  266. package/es/components/Tabs/ui/horizontal/const.js +0 -7
  267. package/es/components/Tabs/ui/horizontal/const.js.map +0 -1
  268. package/styled-components/cjs/components/Tabs/ui/horizontal/const.js +0 -10
  269. package/styled-components/es/components/Tabs/ui/horizontal/const.js +0 -4
  270. package/types/components/Tabs/ui/horizontal/const.d.ts +0 -2
  271. package/types/components/Tabs/ui/horizontal/const.d.ts.map +0 -1
@@ -12,7 +12,6 @@ import { Tabs } from './Tabs';
12
12
  import { TabItem } from './TabItem';
13
13
 
14
14
  const clips = ['none', 'scroll', 'showAll'];
15
- const headerClips = ['none', 'scroll'];
16
15
  const sizes = ['xs', 's', 'm', 'l'] as const;
17
16
  const headerSizes = ['h5', 'h4', 'h3', 'h2', 'h1'] as const;
18
17
 
@@ -21,6 +20,7 @@ type HeaderSize = typeof headerSizes[number];
21
20
 
22
21
  type CustomStoryTabsProps = {
23
22
  itemQuantity: number;
23
+ hasDivider: boolean;
24
24
  contentLeft: string;
25
25
  contentRight: string;
26
26
  stretch: boolean;
@@ -30,12 +30,12 @@ type CustomStoryTabsProps = {
30
30
  const contentLeftOptions = ['none', 'icon'];
31
31
  const contentRightOptions = ['none', 'counter', 'icon'];
32
32
 
33
- const getContentLeft = (contentLeftOption: string, size: string) => {
33
+ const getContentLeft = (contentLeftOption: string, size: Size) => {
34
34
  const iconSize = size === 'xs' ? 'xs' : 's';
35
35
  return contentLeftOption === 'icon' ? <IconMic size={iconSize} color="inherit" /> : undefined;
36
36
  };
37
37
 
38
- const getContentRight = (contentRightOption: string, size: string) => {
38
+ const getContentRight = (contentRightOption: string, size: Size) => {
39
39
  const iconSize = size === 'xs' ? 'xs' : 's';
40
40
  const counterSize = size === 'xs' ? 'xxs' : 'xs';
41
41
 
@@ -96,7 +96,7 @@ const StoryHorizontalDefault = (props: HorizontalStoryTabsProps) => {
96
96
  const [index, setIndex] = useState(0);
97
97
 
98
98
  return (
99
- <Tabs view="divider" hasDivider={hasDivider} stretch={stretch} disabled={disabled} size={size}>
99
+ <Tabs view={hasDivider ? 'divider' : 'clear'} stretch={stretch} disabled={disabled} size={size}>
100
100
  {items.map((_, i) => {
101
101
  if (helperText !== '') {
102
102
  return (
@@ -152,7 +152,7 @@ const StoryHorizontalScroll = (props: HorizontalStoryTabsProps) => {
152
152
  const [index, setIndex] = useState(0);
153
153
 
154
154
  return (
155
- <Tabs clip={clip} view="divider" hasDivider={hasDivider} disabled={disabled} size={size} style={{ width }}>
155
+ <Tabs clip={clip} view={hasDivider ? 'divider' : 'clear'} disabled={disabled} size={size} style={{ width }}>
156
156
  {items.map((_, i) => {
157
157
  if (helperText !== '') {
158
158
  return (
@@ -220,7 +220,7 @@ const StoryHorizontalShowAll = (props: HorizontalStoryTabsProps) => {
220
220
  });
221
221
 
222
222
  return (
223
- <Tabs clip={clip} view="divider" hasDivider={hasDivider} disabled={disabled} size={size}>
223
+ <Tabs clip={clip} view={hasDivider ? 'divider' : 'clear'} disabled={disabled} size={size}>
224
224
  {visibleItems.map((_, i) => {
225
225
  if (helperText !== '') {
226
226
  return (
@@ -603,47 +603,31 @@ export const VerticalTabs: StoryObj<VerticalStoryTabsProps> = {
603
603
  },
604
604
  };
605
605
 
606
- const StoryHeaderDefault = (props: HorizontalStoryTabsProps) => {
607
- const { disabled, itemQuantity, size, helperText } = props;
608
- const items = Array(itemQuantity).fill(0);
609
- const [index, setIndex] = useState(0);
610
-
611
- return (
612
- <Tabs view="clear" disabled={disabled} size={size as HeaderSize}>
613
- {items.map((_, i) => (
614
- <TabItem
615
- key={`item:${i}`}
616
- view="clear"
617
- selected={i === index}
618
- onClick={() => !disabled && setIndex(i)}
619
- tabIndex={!disabled ? 0 : -1}
620
- disabled={disabled}
621
- value={helperText}
622
- size={size as HeaderSize}
623
- >
624
- {`Label${i + 1}`}
625
- </TabItem>
626
- ))}
627
- </Tabs>
628
- );
629
- };
630
-
631
- const StoryHeaderScroll = (props: HorizontalStoryTabsProps) => {
632
- const { disabled, itemQuantity, size, helperText, width } = props;
606
+ const StoryHeaderTabs = (props: StoryTabsProps) => {
607
+ const {
608
+ disabled,
609
+ itemQuantity,
610
+ size,
611
+ contentLeft: contentLeftOption,
612
+ contentRight: contentRightOption,
613
+ hasDivider,
614
+ stretch,
615
+ } = props;
633
616
  const items = Array(itemQuantity).fill(0);
634
617
  const [index, setIndex] = useState(0);
635
618
 
636
619
  return (
637
- <Tabs view="clear" disabled={disabled} size={size as HeaderSize} style={{ width }}>
620
+ <Tabs view={hasDivider ? 'divider' : 'clear'} disabled={disabled} size={size} stretch={stretch}>
638
621
  {items.map((_, i) => (
639
622
  <TabItem
640
623
  key={`item:${i}`}
641
- view="clear"
624
+ view="divider"
642
625
  selected={i === index}
643
626
  onClick={() => !disabled && setIndex(i)}
644
627
  tabIndex={!disabled ? 0 : -1}
645
628
  disabled={disabled}
646
- value={helperText}
629
+ contentLeft={getContentLeft(contentLeftOption, size as Size)}
630
+ contentRight={getContentRight(contentRightOption, size as Size)}
647
631
  size={size as HeaderSize}
648
632
  >
649
633
  {`Label${i + 1}`}
@@ -653,60 +637,37 @@ const StoryHeaderScroll = (props: HorizontalStoryTabsProps) => {
653
637
  );
654
638
  };
655
639
 
656
- export const HeaderTabs: StoryObj<HorizontalStoryTabsProps> = {
640
+ export const HeaderTabs: StoryObj<StoryTabsProps> = {
657
641
  args: {
658
642
  size: 'h5',
659
643
  disabled: false,
660
- helperText: '',
661
- itemQuantity: 6,
662
- width: '12rem',
644
+ hasDivider: true,
645
+ itemQuantity: 4,
663
646
  },
664
647
  argTypes: {
665
- clip: {
666
- options: headerClips,
648
+ size: {
649
+ options: headerSizes,
667
650
  control: {
668
651
  type: 'select',
669
652
  },
670
653
  },
671
- width: {
672
- control: {
673
- type: 'text',
674
- },
675
- if: { arg: 'clip', eq: 'scroll' },
676
- },
677
- stretch: {
678
- table: {
679
- disable: true,
680
- },
681
- },
682
654
  contentLeft: {
683
- table: {
684
- disable: true,
655
+ options: contentLeftOptions,
656
+ control: {
657
+ type: 'select',
685
658
  },
686
659
  },
687
660
  contentRight: {
688
- table: {
689
- disable: true,
661
+ options: contentRightOptions,
662
+ control: {
663
+ type: 'select',
690
664
  },
691
665
  },
692
- hasDivider: {
666
+ clip: {
693
667
  table: {
694
668
  disable: true,
695
669
  },
696
670
  },
697
- size: {
698
- options: headerSizes,
699
- control: {
700
- type: 'select',
701
- },
702
- },
703
- },
704
- render: (args) => {
705
- switch (args.clip) {
706
- case 'scroll':
707
- return <StoryHeaderScroll {...args} />;
708
- default:
709
- return <StoryHeaderDefault {...args} />;
710
- }
711
671
  },
672
+ render: (args) => <StoryHeaderTabs {...args} />,
712
673
  };
@@ -11,7 +11,7 @@ var useOutsideClick = exports.useOutsideClick = function useOutsideClick(callbac
11
11
  var handleClickOutside = function handleClickOutside(event) {
12
12
  if (ref.current && !ref.current.contains(event.target)) {
13
13
  if (!(secondaryRef !== null && secondaryRef !== void 0 && secondaryRef.current) || secondaryRef.current && !secondaryRef.current.contains(event.target)) {
14
- callback();
14
+ callback(event);
15
15
  }
16
16
  }
17
17
  };
@@ -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 };