@salutejs/plasma-new-hope 0.165.2-canary.1478.11345360096.0 → 0.166.0-canary.1392.11343531504.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. package/cjs/components/Attach/Attach.js +8 -17
  2. package/cjs/components/Attach/Attach.js.map +1 -1
  3. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.js +1 -1
  4. package/cjs/components/Segment/tokens.js +15 -1
  5. package/cjs/components/Segment/tokens.js.map +1 -1
  6. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.css +13 -7
  7. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +180 -88
  8. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  9. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +37 -1
  10. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js.map +1 -1
  11. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles_1tb4sy2.css +8 -0
  12. package/cjs/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js +1 -1
  13. package/cjs/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js.map +1 -1
  14. package/cjs/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base_a7w5s0.css +1 -0
  15. package/cjs/components/Segment/ui/SegmentGroup/variations/_orientation/base.js +9 -0
  16. package/cjs/components/Segment/ui/SegmentGroup/variations/_orientation/base.js.map +1 -0
  17. package/cjs/components/Segment/ui/SegmentGroup/variations/_orientation/base_1ejecy9.css +1 -0
  18. package/cjs/components/Segment/ui/SegmentGroup/variations/_pilled/base.js +1 -1
  19. package/cjs/components/Segment/ui/SegmentGroup/variations/_pilled/base.js.map +1 -1
  20. package/cjs/components/Segment/ui/SegmentGroup/variations/_pilled/base_pxl3nb.css +1 -0
  21. package/cjs/components/Segment/ui/SegmentGroup/variations/_size/base.js +1 -1
  22. package/cjs/components/Segment/ui/SegmentGroup/variations/_size/base.js.map +1 -1
  23. package/cjs/components/Segment/ui/SegmentGroup/variations/_size/base_18cpjsq.css +1 -0
  24. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.css +6 -4
  25. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +18 -9
  26. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  27. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +30 -1
  28. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js.map +1 -1
  29. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles_13rhpr7.css +4 -0
  30. package/cjs/components/Segment/ui/SegmentItem/variations/_pilled/base.js +1 -1
  31. package/cjs/components/Segment/ui/SegmentItem/variations/_pilled/base.js.map +1 -1
  32. package/cjs/components/Segment/ui/SegmentItem/variations/_pilled/{base_15s0fel.css → base_omc5u1.css} +1 -1
  33. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +1 -1
  34. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js.map +1 -1
  35. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base_dettiq.css +1 -0
  36. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -1
  37. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -1
  38. package/cjs/components/_Icon/Icon.assets/DisclosureDownWithOffset.js +22 -0
  39. package/cjs/components/_Icon/Icon.assets/DisclosureDownWithOffset.js.map +1 -0
  40. package/cjs/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js +22 -0
  41. package/cjs/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js.map +1 -0
  42. package/cjs/components/_Icon/Icon.assets/DisclosureRightWithOffset.js +22 -0
  43. package/cjs/components/_Icon/Icon.assets/DisclosureRightWithOffset.js.map +1 -0
  44. package/cjs/components/_Icon/Icon.assets/DisclosureUpWithOffset.js +22 -0
  45. package/cjs/components/_Icon/Icon.assets/DisclosureUpWithOffset.js.map +1 -0
  46. package/cjs/components/_Icon/Icons/IconDisclosureDownWithOffset.js +23 -0
  47. package/cjs/components/_Icon/Icons/IconDisclosureDownWithOffset.js.map +1 -0
  48. package/cjs/components/_Icon/Icons/IconDisclosureLeftWithOffset.js +23 -0
  49. package/cjs/components/_Icon/Icons/IconDisclosureLeftWithOffset.js.map +1 -0
  50. package/cjs/components/_Icon/Icons/IconDisclosureRightWithOffset.js +23 -0
  51. package/cjs/components/_Icon/Icons/IconDisclosureRightWithOffset.js.map +1 -0
  52. package/cjs/components/_Icon/Icons/IconDisclosureUpWithOffset.js +23 -0
  53. package/cjs/components/_Icon/Icons/IconDisclosureUpWithOffset.js.map +1 -0
  54. package/cjs/index.css +19 -11
  55. package/emotion/cjs/components/Attach/Attach.js +8 -17
  56. package/emotion/cjs/components/Attach/Attach.template-doc.mdx +0 -69
  57. package/emotion/cjs/components/Segment/Segment.template-doc.mdx +3 -3
  58. package/emotion/cjs/components/Segment/tokens.js +15 -1
  59. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +174 -85
  60. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +29 -29
  61. package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js +1 -1
  62. package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_orientation/base.js +10 -0
  63. package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_orientation/tokens.json +1 -0
  64. package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_pilled/base.js +1 -1
  65. package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_size/base.js +1 -1
  66. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +18 -9
  67. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +20 -6
  68. package/emotion/cjs/components/Segment/ui/SegmentItem/variations/_pilled/base.js +1 -1
  69. package/emotion/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  70. package/emotion/cjs/components/_Icon/Icon.assets/DisclosureDownWithOffset.js +21 -0
  71. package/emotion/cjs/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js +21 -0
  72. package/emotion/cjs/components/_Icon/Icon.assets/DisclosureRightWithOffset.js +21 -0
  73. package/emotion/cjs/components/_Icon/Icon.assets/DisclosureUpWithOffset.js +21 -0
  74. package/emotion/cjs/components/_Icon/Icons/IconDisclosureDownWithOffset.js +22 -0
  75. package/emotion/cjs/components/_Icon/Icons/IconDisclosureLeftWithOffset.js +22 -0
  76. package/emotion/cjs/components/_Icon/Icons/IconDisclosureRightWithOffset.js +22 -0
  77. package/emotion/cjs/components/_Icon/Icons/IconDisclosureUpWithOffset.js +22 -0
  78. package/emotion/cjs/components/_Icon/index.js +28 -0
  79. package/emotion/cjs/examples/plasma_b2c/components/Segment/Segment.stories.tsx +124 -42
  80. package/emotion/cjs/examples/plasma_b2c/components/Segment/SegmentGroup.config.js +13 -10
  81. package/emotion/cjs/examples/plasma_b2c/components/Segment/SegmentItem.config.js +9 -9
  82. package/emotion/cjs/examples/plasma_b2c/components/Toast/Toast.config.js +5 -5
  83. package/emotion/cjs/examples/plasma_web/components/Segment/Segment.stories.tsx +125 -42
  84. package/emotion/cjs/examples/plasma_web/components/Segment/SegmentGroup.config.js +15 -9
  85. package/emotion/cjs/examples/plasma_web/components/Segment/SegmentItem.config.js +9 -9
  86. package/emotion/cjs/examples/plasma_web/components/Toast/Toast.config.js +5 -5
  87. package/emotion/es/components/Attach/Attach.js +8 -17
  88. package/emotion/es/components/Attach/Attach.template-doc.mdx +0 -69
  89. package/emotion/es/components/Segment/Segment.template-doc.mdx +3 -3
  90. package/emotion/es/components/Segment/tokens.js +15 -1
  91. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +177 -88
  92. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +29 -29
  93. package/emotion/es/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js +1 -1
  94. package/emotion/es/components/Segment/ui/SegmentGroup/variations/_orientation/base.js +4 -0
  95. package/emotion/es/components/Segment/ui/SegmentGroup/variations/_orientation/tokens.json +1 -0
  96. package/emotion/es/components/Segment/ui/SegmentGroup/variations/_pilled/base.js +1 -1
  97. package/emotion/es/components/Segment/ui/SegmentGroup/variations/_size/base.js +1 -1
  98. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +19 -10
  99. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +20 -6
  100. package/emotion/es/components/Segment/ui/SegmentItem/variations/_pilled/base.js +1 -1
  101. package/emotion/es/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  102. package/emotion/es/components/_Icon/Icon.assets/DisclosureDownWithOffset.js +14 -0
  103. package/emotion/es/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js +14 -0
  104. package/emotion/es/components/_Icon/Icon.assets/DisclosureRightWithOffset.js +14 -0
  105. package/emotion/es/components/_Icon/Icon.assets/DisclosureUpWithOffset.js +14 -0
  106. package/emotion/es/components/_Icon/Icons/IconDisclosureDownWithOffset.js +15 -0
  107. package/emotion/es/components/_Icon/Icons/IconDisclosureLeftWithOffset.js +15 -0
  108. package/emotion/es/components/_Icon/Icons/IconDisclosureRightWithOffset.js +15 -0
  109. package/emotion/es/components/_Icon/Icons/IconDisclosureUpWithOffset.js +15 -0
  110. package/emotion/es/components/_Icon/index.js +4 -0
  111. package/emotion/es/examples/plasma_b2c/components/Segment/Segment.stories.tsx +124 -42
  112. package/emotion/es/examples/plasma_b2c/components/Segment/SegmentGroup.config.js +13 -10
  113. package/emotion/es/examples/plasma_b2c/components/Segment/SegmentItem.config.js +9 -9
  114. package/emotion/es/examples/plasma_b2c/components/Toast/Toast.config.js +5 -5
  115. package/emotion/es/examples/plasma_web/components/Segment/Segment.stories.tsx +125 -42
  116. package/emotion/es/examples/plasma_web/components/Segment/SegmentGroup.config.js +15 -9
  117. package/emotion/es/examples/plasma_web/components/Segment/SegmentItem.config.js +9 -9
  118. package/emotion/es/examples/plasma_web/components/Toast/Toast.config.js +5 -5
  119. package/es/components/Attach/Attach.js +8 -17
  120. package/es/components/Attach/Attach.js.map +1 -1
  121. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.js +1 -1
  122. package/es/components/Segment/tokens.js +15 -1
  123. package/es/components/Segment/tokens.js.map +1 -1
  124. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.css +13 -7
  125. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +183 -92
  126. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  127. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +34 -2
  128. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js.map +1 -1
  129. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles_1tb4sy2.css +8 -0
  130. package/es/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js +1 -1
  131. package/es/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js.map +1 -1
  132. package/es/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base_a7w5s0.css +1 -0
  133. package/es/components/Segment/ui/SegmentGroup/variations/_orientation/base.js +5 -0
  134. package/es/components/Segment/ui/SegmentGroup/variations/_orientation/base.js.map +1 -0
  135. package/es/components/Segment/ui/SegmentGroup/variations/_orientation/base_1ejecy9.css +1 -0
  136. package/es/components/Segment/ui/SegmentGroup/variations/_pilled/base.js +1 -1
  137. package/es/components/Segment/ui/SegmentGroup/variations/_pilled/base.js.map +1 -1
  138. package/es/components/Segment/ui/SegmentGroup/variations/_pilled/base_pxl3nb.css +1 -0
  139. package/es/components/Segment/ui/SegmentGroup/variations/_size/base.js +1 -1
  140. package/es/components/Segment/ui/SegmentGroup/variations/_size/base.js.map +1 -1
  141. package/es/components/Segment/ui/SegmentGroup/variations/_size/base_18cpjsq.css +1 -0
  142. package/es/components/Segment/ui/SegmentItem/SegmentItem.css +6 -4
  143. package/es/components/Segment/ui/SegmentItem/SegmentItem.js +19 -10
  144. package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  145. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +29 -2
  146. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js.map +1 -1
  147. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles_13rhpr7.css +4 -0
  148. package/es/components/Segment/ui/SegmentItem/variations/_pilled/base.js +1 -1
  149. package/es/components/Segment/ui/SegmentItem/variations/_pilled/base.js.map +1 -1
  150. package/es/components/Segment/ui/SegmentItem/variations/_pilled/{base_15s0fel.css → base_omc5u1.css} +1 -1
  151. package/es/components/Segment/ui/SegmentItem/variations/_view/base.js +1 -1
  152. package/es/components/Segment/ui/SegmentItem/variations/_view/base.js.map +1 -1
  153. package/es/components/Segment/ui/SegmentItem/variations/_view/base_dettiq.css +1 -0
  154. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -1
  155. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -1
  156. package/es/components/_Icon/Icon.assets/DisclosureDownWithOffset.js +18 -0
  157. package/es/components/_Icon/Icon.assets/DisclosureDownWithOffset.js.map +1 -0
  158. package/es/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js +18 -0
  159. package/es/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js.map +1 -0
  160. package/es/components/_Icon/Icon.assets/DisclosureRightWithOffset.js +18 -0
  161. package/es/components/_Icon/Icon.assets/DisclosureRightWithOffset.js.map +1 -0
  162. package/es/components/_Icon/Icon.assets/DisclosureUpWithOffset.js +18 -0
  163. package/es/components/_Icon/Icon.assets/DisclosureUpWithOffset.js.map +1 -0
  164. package/es/components/_Icon/Icons/IconDisclosureDownWithOffset.js +19 -0
  165. package/es/components/_Icon/Icons/IconDisclosureDownWithOffset.js.map +1 -0
  166. package/es/components/_Icon/Icons/IconDisclosureLeftWithOffset.js +19 -0
  167. package/es/components/_Icon/Icons/IconDisclosureLeftWithOffset.js.map +1 -0
  168. package/es/components/_Icon/Icons/IconDisclosureRightWithOffset.js +19 -0
  169. package/es/components/_Icon/Icons/IconDisclosureRightWithOffset.js.map +1 -0
  170. package/es/components/_Icon/Icons/IconDisclosureUpWithOffset.js +19 -0
  171. package/es/components/_Icon/Icons/IconDisclosureUpWithOffset.js.map +1 -0
  172. package/es/index.css +19 -11
  173. package/package.json +2 -2
  174. package/styled-components/cjs/components/Attach/Attach.js +8 -17
  175. package/styled-components/cjs/components/Attach/Attach.template-doc.mdx +0 -69
  176. package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +3 -3
  177. package/styled-components/cjs/components/Segment/tokens.js +15 -1
  178. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +174 -85
  179. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +18 -6
  180. package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js +1 -1
  181. package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_orientation/base.js +10 -0
  182. package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_orientation/tokens.json +1 -0
  183. package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_pilled/base.js +1 -1
  184. package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_size/base.js +1 -1
  185. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +18 -9
  186. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +16 -4
  187. package/styled-components/cjs/components/Segment/ui/SegmentItem/variations/_pilled/base.js +1 -1
  188. package/styled-components/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  189. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureDownWithOffset.js +21 -0
  190. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js +21 -0
  191. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureRightWithOffset.js +21 -0
  192. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureUpWithOffset.js +21 -0
  193. package/styled-components/cjs/components/_Icon/Icons/IconDisclosureDownWithOffset.js +22 -0
  194. package/styled-components/cjs/components/_Icon/Icons/IconDisclosureLeftWithOffset.js +22 -0
  195. package/styled-components/cjs/components/_Icon/Icons/IconDisclosureRightWithOffset.js +22 -0
  196. package/styled-components/cjs/components/_Icon/Icons/IconDisclosureUpWithOffset.js +22 -0
  197. package/styled-components/cjs/components/_Icon/index.js +28 -0
  198. package/styled-components/cjs/examples/plasma_b2c/components/Segment/Segment.stories.tsx +124 -42
  199. package/styled-components/cjs/examples/plasma_b2c/components/Segment/SegmentGroup.config.js +10 -7
  200. package/styled-components/cjs/examples/plasma_b2c/components/Segment/SegmentItem.config.js +8 -8
  201. package/styled-components/cjs/examples/plasma_b2c/components/Toast/Toast.config.js +1 -1
  202. package/styled-components/cjs/examples/plasma_web/components/Segment/Segment.stories.tsx +125 -42
  203. package/styled-components/cjs/examples/plasma_web/components/Segment/SegmentGroup.config.js +13 -7
  204. package/styled-components/cjs/examples/plasma_web/components/Segment/SegmentItem.config.js +8 -8
  205. package/styled-components/cjs/examples/plasma_web/components/Toast/Toast.config.js +1 -1
  206. package/styled-components/es/components/Attach/Attach.js +8 -17
  207. package/styled-components/es/components/Attach/Attach.template-doc.mdx +0 -69
  208. package/styled-components/es/components/Segment/Segment.template-doc.mdx +3 -3
  209. package/styled-components/es/components/Segment/tokens.js +15 -1
  210. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +177 -88
  211. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +18 -6
  212. package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.js +1 -1
  213. package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_orientation/base.js +4 -0
  214. package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_orientation/tokens.json +1 -0
  215. package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_pilled/base.js +1 -1
  216. package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_size/base.js +1 -1
  217. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +19 -10
  218. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +16 -4
  219. package/styled-components/es/components/Segment/ui/SegmentItem/variations/_pilled/base.js +1 -1
  220. package/styled-components/es/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  221. package/styled-components/es/components/_Icon/Icon.assets/DisclosureDownWithOffset.js +14 -0
  222. package/styled-components/es/components/_Icon/Icon.assets/DisclosureLeftWithOffset.js +14 -0
  223. package/styled-components/es/components/_Icon/Icon.assets/DisclosureRightWithOffset.js +14 -0
  224. package/styled-components/es/components/_Icon/Icon.assets/DisclosureUpWithOffset.js +14 -0
  225. package/styled-components/es/components/_Icon/Icons/IconDisclosureDownWithOffset.js +15 -0
  226. package/styled-components/es/components/_Icon/Icons/IconDisclosureLeftWithOffset.js +15 -0
  227. package/styled-components/es/components/_Icon/Icons/IconDisclosureRightWithOffset.js +15 -0
  228. package/styled-components/es/components/_Icon/Icons/IconDisclosureUpWithOffset.js +15 -0
  229. package/styled-components/es/components/_Icon/index.js +4 -0
  230. package/styled-components/es/examples/plasma_b2c/components/Segment/Segment.stories.tsx +124 -42
  231. package/styled-components/es/examples/plasma_b2c/components/Segment/SegmentGroup.config.js +10 -7
  232. package/styled-components/es/examples/plasma_b2c/components/Segment/SegmentItem.config.js +8 -8
  233. package/styled-components/es/examples/plasma_b2c/components/Toast/Toast.config.js +1 -1
  234. package/styled-components/es/examples/plasma_web/components/Segment/Segment.stories.tsx +125 -42
  235. package/styled-components/es/examples/plasma_web/components/Segment/SegmentGroup.config.js +13 -7
  236. package/styled-components/es/examples/plasma_web/components/Segment/SegmentItem.config.js +8 -8
  237. package/styled-components/es/examples/plasma_web/components/Toast/Toast.config.js +1 -1
  238. package/types/components/Attach/Attach.d.ts.map +1 -1
  239. package/types/components/Attach/Attach.types.d.ts +0 -4
  240. package/types/components/Attach/Attach.types.d.ts.map +1 -1
  241. package/types/components/Segment/tokens.d.ts +14 -0
  242. package/types/components/Segment/tokens.d.ts.map +1 -1
  243. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +10 -0
  244. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  245. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.styles.d.ts +12 -0
  246. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.styles.d.ts.map +1 -1
  247. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.types.d.ts +19 -2
  248. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.types.d.ts.map +1 -1
  249. package/types/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base.d.ts.map +1 -1
  250. package/types/components/Segment/ui/SegmentGroup/variations/_orientation/base.d.ts +2 -0
  251. package/types/components/Segment/ui/SegmentGroup/variations/_orientation/base.d.ts.map +1 -0
  252. package/types/components/Segment/ui/SegmentGroup/variations/_pilled/base.d.ts.map +1 -1
  253. package/types/components/Segment/ui/SegmentGroup/variations/_size/base.d.ts.map +1 -1
  254. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +8 -2
  255. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
  256. package/types/components/Segment/ui/SegmentItem/SegmentItem.styles.d.ts +7 -1
  257. package/types/components/Segment/ui/SegmentItem/SegmentItem.styles.d.ts.map +1 -1
  258. package/types/components/Segment/ui/SegmentItem/SegmentItem.types.d.ts +14 -1
  259. package/types/components/Segment/ui/SegmentItem/SegmentItem.types.d.ts.map +1 -1
  260. package/types/components/Segment/ui/SegmentItem/variations/_pilled/base.d.ts.map +1 -1
  261. package/types/components/Segment/ui/SegmentItem/variations/_view/base.d.ts.map +1 -1
  262. package/types/components/_Icon/Icon.assets/DisclosureDownWithOffset.d.ts +4 -0
  263. package/types/components/_Icon/Icon.assets/DisclosureDownWithOffset.d.ts.map +1 -0
  264. package/types/components/_Icon/Icon.assets/DisclosureLeftWithOffset.d.ts +4 -0
  265. package/types/components/_Icon/Icon.assets/DisclosureLeftWithOffset.d.ts.map +1 -0
  266. package/types/components/_Icon/Icon.assets/DisclosureRightWithOffset.d.ts +4 -0
  267. package/types/components/_Icon/Icon.assets/DisclosureRightWithOffset.d.ts.map +1 -0
  268. package/types/components/_Icon/Icon.assets/DisclosureUpWithOffset.d.ts +4 -0
  269. package/types/components/_Icon/Icon.assets/DisclosureUpWithOffset.d.ts.map +1 -0
  270. package/types/components/_Icon/Icons/IconDisclosureDownWithOffset.d.ts +4 -0
  271. package/types/components/_Icon/Icons/IconDisclosureDownWithOffset.d.ts.map +1 -0
  272. package/types/components/_Icon/Icons/IconDisclosureLeftWithOffset.d.ts +4 -0
  273. package/types/components/_Icon/Icons/IconDisclosureLeftWithOffset.d.ts.map +1 -0
  274. package/types/components/_Icon/Icons/IconDisclosureRightWithOffset.d.ts +4 -0
  275. package/types/components/_Icon/Icons/IconDisclosureRightWithOffset.d.ts.map +1 -0
  276. package/types/components/_Icon/Icons/IconDisclosureUpWithOffset.d.ts +4 -0
  277. package/types/components/_Icon/Icons/IconDisclosureUpWithOffset.d.ts.map +1 -0
  278. package/types/components/_Icon/index.d.ts +4 -0
  279. package/types/components/_Icon/index.d.ts.map +1 -1
  280. package/types/examples/plasma_b2c/components/Segment/Segment.d.ts +10 -1
  281. package/types/examples/plasma_b2c/components/Segment/Segment.d.ts.map +1 -1
  282. package/types/examples/plasma_b2c/components/Segment/SegmentGroup.config.d.ts +3 -0
  283. package/types/examples/plasma_b2c/components/Segment/SegmentGroup.config.d.ts.map +1 -1
  284. package/types/examples/plasma_b2c/components/Segment/SegmentItem.config.d.ts.map +1 -1
  285. package/types/examples/plasma_web/components/Segment/Segment.d.ts +13 -1
  286. package/types/examples/plasma_web/components/Segment/Segment.d.ts.map +1 -1
  287. package/types/examples/plasma_web/components/Segment/SegmentGroup.config.d.ts +6 -0
  288. package/types/examples/plasma_web/components/Segment/SegmentGroup.config.d.ts.map +1 -1
  289. package/types/examples/plasma_web/components/Segment/SegmentItem.config.d.ts.map +1 -1
  290. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles_m9i9p0.css +0 -4
  291. package/cjs/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base_escgtx.css +0 -1
  292. package/cjs/components/Segment/ui/SegmentGroup/variations/_pilled/base_fqbatz.css +0 -1
  293. package/cjs/components/Segment/ui/SegmentGroup/variations/_size/base_m358nl.css +0 -1
  294. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles_18h1p52.css +0 -2
  295. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base_1m1u2ys.css +0 -1
  296. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles_m9i9p0.css +0 -4
  297. package/es/components/Segment/ui/SegmentGroup/variations/_filledBackgound/base_escgtx.css +0 -1
  298. package/es/components/Segment/ui/SegmentGroup/variations/_pilled/base_fqbatz.css +0 -1
  299. package/es/components/Segment/ui/SegmentGroup/variations/_size/base_m358nl.css +0 -1
  300. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles_18h1p52.css +0 -2
  301. package/es/components/Segment/ui/SegmentItem/variations/_view/base_1m1u2ys.css +0 -1
@@ -1,5 +1,5 @@
1
1
  var _IconCloseCircleOutli;
2
- var _excluded = ["flow", "buttonType", "hasAttachment", "acceptedFileFormats", "size", "view", "className", "style", "isLoading", "disabled", "id", "name", "onChange", "onClear"];
2
+ var _excluded = ["flow", "buttonType", "hasAttachment", "acceptedFileFormats", "size", "view", "className", "style", "isLoading", "disabled"];
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
5
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -36,10 +36,6 @@ export var attachRoot = function attachRoot(Root) {
36
36
  style = props.style,
37
37
  isLoading = props.isLoading,
38
38
  disabled = props.disabled,
39
- id = props.id,
40
- name = props.name,
41
- onChange = props.onChange,
42
- onClear = props.onClear,
43
39
  rest = _objectWithoutProperties(props, _excluded);
44
40
  var innerRef = useRef(null);
45
41
  var ref = useForkRef(outerRef, innerRef);
@@ -108,22 +104,16 @@ export var attachRoot = function attachRoot(Root) {
108
104
  }
109
105
  inputRef.current.click();
110
106
  };
111
- var handleChange = function handleChange(e) {
112
- if (!e.target.files) {
107
+ var handleChange = function handleChange() {
108
+ if (!inputRef.current || !inputRef.current.files) {
113
109
  return;
114
110
  }
115
- if (onChange) {
116
- onChange(e);
117
- }
118
- setFilename(e.target.files[0].name);
111
+ setFilename(inputRef.current.files[0].name);
119
112
  };
120
113
  var handleClear = function handleClear() {
121
114
  if (!inputRef.current) {
122
115
  return;
123
116
  }
124
- if (onClear) {
125
- onClear();
126
- }
127
117
  inputRef.current.value = '';
128
118
  setFilename('');
129
119
  setTruncatedFilename('');
@@ -138,11 +128,12 @@ export var attachRoot = function attachRoot(Root) {
138
128
  ref: inputRef,
139
129
  accept: accept,
140
130
  type: "file",
141
- id: id,
142
- name: name,
131
+ id: "attachHiddenInput",
132
+ name: "attachHiddenInput",
143
133
  onChange: handleChange
144
134
  }), /*#__PURE__*/React.createElement(StyledHiddenInputHelper, {
145
- ref: inputHelperRef
135
+ ref: inputHelperRef,
136
+ id: "attachHiddenInputHelper"
146
137
  }, filename), /*#__PURE__*/React.createElement(AttachButton, _extends({
147
138
  buttonType: buttonType,
148
139
  view: view,
@@ -61,72 +61,3 @@ export function App() {
61
61
  );
62
62
  }
63
63
  ```
64
-
65
- ### Пример использования в форме
66
-
67
- ```tsx live
68
- import React, { useState } from 'react';
69
- import { Attach, Button } from '@salutejs/{{ package }}';
70
-
71
- function App() {
72
- const ids = ['0', '1', '2'];
73
- const [isLoading, setIsLoading] = useState(false);
74
- const [attachedFiles, setAttachedFiles] = useState([]);
75
-
76
- const handleAttachFile = (e) => {
77
- setAttachedFiles((prevAttachedFiles) => [
78
- ...prevAttachedFiles,
79
- {
80
- fileData: e.target.files[0],
81
- id: e.target.id,
82
- },
83
- ]);
84
- };
85
-
86
- const handleAttachClear = (id) => {
87
- setAttachedFiles(attachedFiles.filter((file) => file.id !== id));
88
- };
89
-
90
- const handleSubmit = (e) => {
91
- e.preventDefault();
92
- setIsLoading(true);
93
-
94
- const formData = new FormData(e.target);
95
- console.log('formData', Object.fromEntries(formData));
96
-
97
- setTimeout(() => {
98
- setAttachedFiles([]);
99
- setIsLoading(false);
100
- }, 2000);
101
- };
102
-
103
- return (
104
- <>
105
- <span>{isLoading ? 'Форма отправляется' : 'Прикрепленные файлы:'}</span>
106
- {!isLoading && attachedFiles.length > 0 && (
107
- <div style=\{{ display: 'flex', flexDirection: 'column', gap: '0px' }}>
108
- {attachedFiles.map((file) => (
109
- <span>{file.fileData.name}</span>
110
- ))}
111
- </div>
112
- )}
113
-
114
- {!isLoading && (
115
- <form onSubmit={handleSubmit} style=\{{ display: 'flex', flexDirection: 'column', gap: '30px' }}>
116
- {ids.map((id) => (
117
- <Attach
118
- id={id}
119
- name={`attach${id}`}
120
- text={`Загрузить файл ${id}`}
121
- onChange={handleAttachFile}
122
- onClear={() => handleAttachClear(id)}
123
- />
124
- ))}
125
-
126
- <Button type="submit">Отправить</Button>
127
- </form>
128
- )}
129
- </>
130
- );
131
- }
132
- ```
@@ -21,12 +21,12 @@ import { PropsTable, Description } from '@site/src/components';
21
21
 
22
22
  ### Провайдер контекста
23
23
 
24
- Оберните в `SegmentProvider` компонент, в котором будут использованы SegmentGroup с SegmentItem.
24
+ Оберните в `SegmentProvider` компонент, в котором будут использованы SegmentGroup с SegmentItem.
25
25
  Внутри данного провайдера есть доступ к хуку `useSegment`.
26
26
 
27
27
  ### Выбранные по умолчанию SegmentItem
28
28
 
29
- Можно задать выбранные по умолчанию сегменты с помощью свойства `defaultSelected`.
29
+ Можно задать выбранные по умолчанию сегменты с помощью свойства `defaultSelected`.
30
30
  Оно передается в `SegmentProvider`, в виде массива `value` элеметов.
31
31
 
32
32
  ```tsx live
@@ -42,7 +42,7 @@ export function App() {
42
42
  return (
43
43
  <>
44
44
  <div>Выбранные элементы: {selectedSegmentItems.join(', ')}</div>
45
- <SegmentGroup view='filled' selectionMode='multiple' filledBackground pilled>
45
+ <SegmentGroup hasBackground pilled>
46
46
  {items.map((_, i) => (
47
47
  <SegmentItem
48
48
  label={`Label ${i}`}
@@ -2,7 +2,12 @@ export var classes = {
2
2
  selectedSegmentItem: 'selected-segment-item',
3
3
  segmentPilled: 'segment-pilled',
4
4
  segmentGroupFilledBackground: 'segment-group-filled-background',
5
- segmentStretch: 'segment-stretched'
5
+ segmentStretch: 'segment-stretched',
6
+ segmentVertical: 'segment-vertical',
7
+ segmentArrowPadding: 'segment-arrow-padding',
8
+ segmentGroupClipScroll: 'segment-group-clip-scroll',
9
+ segmentXsSize: 'segment-xs-size',
10
+ segmentAdditionalText: 'segment-additional-text'
6
11
  };
7
12
  export var tokens = {
8
13
  fontFamily: '--plasma-segment-item-font-family',
@@ -17,6 +22,8 @@ export var tokens = {
17
22
  groupPilledBorderRadius: '--plasma-segment-group-pilled-border-radius',
18
23
  groupWidth: '--plasma-segment-group-width',
19
24
  groupHeight: '--plasma-segment-group-height',
25
+ groupArrowPadding: '--plasma-segment-group-arrow-padding',
26
+ groupVerticalArrowPadding: '--plasma-segment-group-vertical-arrow-padding',
20
27
  groupBackgroundColor: '--plasma-segment-group-background-color',
21
28
  groupFilledBackgroundColor: '--plasma-segment-group-filled-background-color',
22
29
  itemBorderRadius: '--plasma-segment-item-border-radius',
@@ -24,14 +31,21 @@ export var tokens = {
24
31
  itemWidth: '--plasma-segment-item-width',
25
32
  itemHeight: '--plasma-segment-item-height',
26
33
  itemPadding: '--plasma-segment-item-padding',
34
+ itemPilledPadding: '--plasma-segment-item-pilled-padding',
27
35
  itemMarginLeft: '--plasma-segment-item-margin-left',
36
+ itemContentPadding: '--plasma-segment-item-content-padding',
37
+ itemIconMargin: '--plasma-segment-item-content-icon-margin',
28
38
  itemColor: '--plasma-segment-item-color',
29
39
  itemBackgroundColor: '--plasma-segment-item-background-color',
30
40
  itemColorHover: '--plasma-segment-item-color-hover',
31
41
  itemBackgroundColorHover: '--plasma-segment-item-background-color-hover',
42
+ itemAdditionalColor: '--plasma-segment-item-additional-color',
43
+ itemAdditionalColorHover: '--plasma-segment-item-additional-color-hover',
32
44
  itemSelectedColor: '--plasma-segment-item-selected-color',
33
45
  itemSelectedBackgroundColor: '--plasma-segment-item-selected-background-color',
34
46
  itemSelectedColorHover: '--plasma-segment-item-selected-color-hover',
35
47
  itemSelectedBackgroundColorHover: '--plasma-segment-item-selected-background-color-hover',
48
+ itemSelectedAdditionalColor: '--plasma-segment-item-selected-additional-color',
49
+ itemSelectedAdditionalColorHover: '--plasma-segment-item-selected-additional-color-hover',
36
50
  disabledOpacity: '--plasma-segment-disabled-opacity'
37
51
  };
@@ -1,4 +1,4 @@
1
- var _excluded = ["id", "selectionMode", "pilled", "stretch", "filledBackground", "disabled", "size", "view", "children"];
1
+ var _excluded = ["id", "selectionMode", "pilled", "stretch", "clip", "orientation", "filledBackground", "hasBackground", "disabled", "size", "view", "children"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -8,9 +8,9 @@ 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, useCallback, useMemo, useState, Children, useEffect } from 'react';
12
- import { safeUseId, useCarousel } from '@salutejs/plasma-core';
13
- import { IconDisclosureLeft, IconDisclosureRight } from '../../../_Icon';
11
+ import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef } from 'react';
12
+ import { safeUseId } from '@salutejs/plasma-core';
13
+ import { IconDisclosureLeftWithOffset, IconDisclosureRightWithOffset, IconDisclosureDownWithOffset, IconDisclosureUpWithOffset } from '../../../_Icon';
14
14
  import { classes, tokens } from '../../tokens';
15
15
  import { cx } from '../../../../utils';
16
16
  import { useSegmentInner } from '../../SegmentProvider/SegmentProvider';
@@ -20,147 +20,233 @@ import { base as disabledCSS } from './variations/_disabled/base';
20
20
  import { base as pilledCSS } from './variations/_pilled/base';
21
21
  import { base as filledBackgroundCSS } from './variations/_filledBackgound/base';
22
22
  import { base as stretchCSS } from './variations/_stretch/base';
23
- import { StyledArrow, StyledContent, StyledContentWrapper, base } from './SegmentGroup.styles';
23
+ import { base as orientationCSS } from './variations/_orientation/base';
24
+ import { StyledContent, StyledContentWrapper, base, StyledLeftArrow, StyledRightArrow, StyledTopArrow, StyledBottomArrow } from './SegmentGroup.styles';
25
+ var Keys = /*#__PURE__*/function (Keys) {
26
+ Keys[Keys["end"] = 35] = "end";
27
+ Keys[Keys["home"] = 36] = "home";
28
+ Keys[Keys["left"] = 37] = "left";
29
+ Keys[Keys["right"] = 39] = "right";
30
+ return Keys;
31
+ }(Keys || {});
32
+ export var getChildNodes = function getChildNodes(wrapper) {
33
+ var container = wrapper === null || wrapper === void 0 ? void 0 : wrapper.firstChild;
34
+ return container ? Array.from(container === null || container === void 0 ? void 0 : container.childNodes) : [];
35
+ };
24
36
  export var segmentGroupRoot = function segmentGroupRoot(Root) {
25
37
  return /*#__PURE__*/forwardRef(function (props, outerRef) {
26
38
  var id = props.id,
27
39
  selectionMode = props.selectionMode,
28
40
  pilled = props.pilled,
29
41
  stretch = props.stretch,
42
+ _props$clip = props.clip,
43
+ clip = _props$clip === void 0 ? true : _props$clip,
44
+ _props$orientation = props.orientation,
45
+ orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,
30
46
  _props$filledBackgrou = props.filledBackground,
31
47
  filledBackground = _props$filledBackgrou === void 0 ? false : _props$filledBackgrou,
48
+ _props$hasBackground = props.hasBackground,
49
+ hasBackground = _props$hasBackground === void 0 ? false : _props$hasBackground,
32
50
  _props$disabled = props.disabled,
33
51
  disabled = _props$disabled === void 0 ? false : _props$disabled,
34
52
  size = props.size,
35
53
  view = props.view,
36
54
  children = props.children,
37
55
  rest = _objectWithoutProperties(props, _excluded);
56
+ var scrollRef = useRef(null);
57
+ var trackRef = useRef(null);
58
+ var leftArrowRef = useRef(null);
38
59
  var _useSegmentInner = useSegmentInner(),
39
60
  setSelectionMode = _useSegmentInner.setSelectionMode,
40
61
  setDisabledGroup = _useSegmentInner.setDisabledGroup;
41
- var _useState = useState(0),
62
+ var _useState = useState(true),
42
63
  _useState2 = _slicedToArray(_useState, 2),
43
- index = _useState2[0],
44
- setIndex = _useState2[1];
45
- var _useState3 = useState(false),
64
+ firstItemVisible = _useState2[0],
65
+ setFirstItemVisible = _useState2[1];
66
+ var _useState3 = useState(true),
46
67
  _useState4 = _slicedToArray(_useState3, 2),
47
- firstItemVisible = _useState4[0],
48
- setFirstItemVisible = _useState4[1];
49
- var _useState5 = useState(false),
50
- _useState6 = _slicedToArray(_useState5, 2),
51
- lastItemVisible = _useState6[0],
52
- setLastItemVisible = _useState6[1];
68
+ lastItemVisible = _useState4[0],
69
+ setLastItemVisible = _useState4[1];
53
70
  var uniqId = safeUseId();
54
71
  var segmentGroupId = id || uniqId;
55
- var pilledAttr = view !== 'clear' && pilled;
56
- var filledBackgroundAttr = view !== 'clear' && filledBackground;
72
+ var canClip = clip && !stretch;
73
+ var isVertical = orientation === 'vertical';
74
+ var stretchClass = (clip ? firstItemVisible && lastItemVisible : true) && stretch ? classes.segmentStretch : undefined;
75
+ var orientationClass = isVertical ? classes.segmentVertical : undefined;
76
+ var clipScrollClass = canClip ? classes.segmentGroupClipScroll : undefined;
77
+ var pilledAttr = (view !== 'clear' || hasBackground) && pilled;
78
+ var filledBackgroundAttr = view !== 'clear' && filledBackground || hasBackground;
57
79
  var pilledClass = pilledAttr ? classes.segmentPilled : undefined;
58
80
  var filledClass = filledBackgroundAttr ? classes.segmentGroupFilledBackground : undefined;
59
- var stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.segmentStretch : undefined;
60
- var items = (Children === null || Children === void 0 ? void 0 : Children.map(children, function (child) {
61
- return child;
62
- })) || [];
63
81
  var onPrev = useCallback(function () {
64
- !disabled && setIndex(function (prevIndex) {
65
- return prevIndex > 0 ? prevIndex - 1 : 0;
82
+ if (disabled || !scrollRef.current) {
83
+ return;
84
+ }
85
+ var childNodes = getChildNodes(scrollRef.current);
86
+ var scrollLeft = Math.round(scrollRef.current.scrollLeft);
87
+ var firstOverflowingTab = childNodes.slice().reverse().find(function (child) {
88
+ if (!child || child.offsetLeft === undefined) {
89
+ return;
90
+ }
91
+ var tabStartX = child.offsetLeft;
92
+ return tabStartX < scrollLeft;
66
93
  });
67
- }, [disabled]);
94
+ firstOverflowingTab === null || firstOverflowingTab === void 0 || firstOverflowingTab.scrollIntoView({
95
+ block: 'nearest',
96
+ inline: 'nearest'
97
+ });
98
+ }, [disabled, scrollRef]);
68
99
  var onNext = useCallback(function () {
69
- !disabled && setIndex(function (prevIndex) {
70
- return prevIndex < items.length - 1 ? prevIndex + 1 : prevIndex;
100
+ if (disabled || !scrollRef.current) {
101
+ return;
102
+ }
103
+ var scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);
104
+ var childNodes = getChildNodes(scrollRef.current);
105
+ var lastOverflowingChild = childNodes.find(function (child) {
106
+ if (!child || child.offsetLeft === undefined) {
107
+ return;
108
+ }
109
+ var tabEndX = child.offsetLeft + child.offsetWidth;
110
+ return tabEndX > scrollRight;
71
111
  });
72
- }, [disabled]);
73
- var onIntersecting = function onIntersecting(setVisible) {
74
- return function (entries) {
75
- /*
76
- * Пробегаемся по элементам на которых есть слушатель события появления.
77
- * Если элемент находится в зоне видимости или выходит из нее, меняем значение флага видимости
78
- */
79
- entries.forEach(function (entry) {
80
- if (entry.isIntersecting) {
81
- setVisible(true);
82
- } else {
83
- setVisible(false);
84
- }
112
+ lastOverflowingChild === null || lastOverflowingChild === void 0 || lastOverflowingChild.scrollIntoView({
113
+ block: 'nearest',
114
+ inline: 'nearest'
115
+ });
116
+ }, [disabled, scrollRef]);
117
+ var onKeyDown = useCallback(function (event) {
118
+ var childNodes = getChildNodes(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current);
119
+ var index = childNodes.findIndex(function (child) {
120
+ return document.activeElement === child;
121
+ });
122
+ var minIndex = 0;
123
+ var maxIndex = childNodes.length - 1;
124
+ var nextIndex;
125
+ switch (event.keyCode) {
126
+ case Keys.end:
127
+ nextIndex = maxIndex;
128
+ break;
129
+ case Keys.left:
130
+ nextIndex = index > minIndex ? index - 1 : index;
131
+ break;
132
+ case Keys.right:
133
+ nextIndex = index < maxIndex ? index + 1 : index;
134
+ break;
135
+ case Keys.home:
136
+ nextIndex = minIndex;
137
+ break;
138
+ default:
139
+ return;
140
+ }
141
+ if (nextIndex !== index) {
142
+ var _childNodes$nextIndex, _childNodes$nextIndex2;
143
+ event.preventDefault();
144
+ (_childNodes$nextIndex = childNodes[nextIndex]) === null || _childNodes$nextIndex === void 0 || _childNodes$nextIndex.focus();
145
+ (_childNodes$nextIndex2 = childNodes[nextIndex]) === null || _childNodes$nextIndex2 === void 0 || _childNodes$nextIndex2.scrollIntoView({
146
+ block: 'center',
147
+ inline: 'center',
148
+ behavior: 'smooth'
85
149
  });
86
- };
87
- };
88
- var _useCarousel = useCarousel({
89
- index: index,
90
- axis: 'x',
91
- scrollAlign: 'start',
92
- detectActive: true,
93
- debounceMs: 250,
94
- onIndexChange: setIndex
95
- }),
96
- scrollRef = _useCarousel.scrollRef,
97
- trackRef = _useCarousel.trackRef;
150
+ }
151
+ }, []);
152
+ var handleScroll = useCallback(function (event) {
153
+ var _event$stopPropagatio;
154
+ (_event$stopPropagatio = event.stopPropagation) === null || _event$stopPropagatio === void 0 || _event$stopPropagatio.call(event);
155
+ if (!canClip) {
156
+ setFirstItemVisible(true);
157
+ setLastItemVisible(true);
158
+ return;
159
+ }
160
+ if (isVertical) {
161
+ var maxScrollTop = event.currentTarget.scrollHeight - event.currentTarget.clientHeight;
162
+ var scrollTop = Math.round(event.currentTarget.scrollTop);
163
+ setFirstItemVisible(scrollTop <= 0);
164
+ setLastItemVisible(scrollTop >= maxScrollTop);
165
+ return;
166
+ }
167
+ var maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;
168
+ var scrollLeft = Math.round(event.currentTarget.scrollLeft);
169
+ setFirstItemVisible(scrollLeft <= 0);
170
+ setLastItemVisible(scrollLeft >= maxScrollLeft);
171
+ }, [isVertical, canClip]);
172
+ useEffect(function () {
173
+ handleScroll({
174
+ currentTarget: scrollRef.current
175
+ });
176
+ }, [handleScroll]);
177
+ useEffect(function () {
178
+ var _scrollRef$current, _scrollRef$current2, _scrollRef$current3, _scrollRef$current4;
179
+ if (!canClip) {
180
+ setLastItemVisible(true);
181
+ return;
182
+ }
183
+ setLastItemVisible(isVertical ? ((_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollHeight) === ((_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientHeight) : ((_scrollRef$current3 = scrollRef.current) === null || _scrollRef$current3 === void 0 ? void 0 : _scrollRef$current3.scrollWidth) === ((_scrollRef$current4 = scrollRef.current) === null || _scrollRef$current4 === void 0 ? void 0 : _scrollRef$current4.clientWidth));
184
+ }, [isVertical, canClip]);
185
+
186
+ // Этот хук компенсирует появление левой/верхней стрелки при прокрутке
187
+ useEffect(function () {
188
+ if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {
189
+ return;
190
+ }
191
+ if (isVertical) {
192
+ scrollRef.current.scrollTo({
193
+ top: Math.round(scrollRef.current.scrollTop + leftArrowRef.current.clientHeight)
194
+ });
195
+ return;
196
+ }
197
+ scrollRef.current.scrollTo({
198
+ left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth)
199
+ });
200
+ }, [firstItemVisible, isVertical]);
98
201
  var PreviousButton = useMemo(function () {
99
- return /*#__PURE__*/React.createElement(StyledArrow, {
202
+ var ArrowNode = isVertical ? StyledTopArrow : StyledLeftArrow;
203
+ return /*#__PURE__*/React.createElement(ArrowNode, {
100
204
  type: "button",
101
205
  "aria-label": "\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u0441\u0435\u0433\u043C\u0435\u043D\u0442",
102
206
  onClick: onPrev,
103
207
  tabIndex: disabled ? -1 : 0,
104
208
  disabled: disabled
105
- }, /*#__PURE__*/React.createElement(IconDisclosureLeft, {
209
+ }, isVertical ? /*#__PURE__*/React.createElement(IconDisclosureUpWithOffset, {
210
+ color: "var(".concat(tokens.arrowColor, ")"),
211
+ size: "s"
212
+ }) : /*#__PURE__*/React.createElement(IconDisclosureLeftWithOffset, {
106
213
  color: "var(".concat(tokens.arrowColor, ")")
107
214
  }));
108
- }, [onPrev]);
215
+ }, [onPrev, isVertical]);
109
216
  var NextButton = useMemo(function () {
110
- return /*#__PURE__*/React.createElement(StyledArrow, {
217
+ var ArrowNode = isVertical ? StyledBottomArrow : StyledRightArrow;
218
+ return /*#__PURE__*/React.createElement(ArrowNode, {
111
219
  type: "button",
112
220
  "aria-label": "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0441\u0435\u0433\u043C\u0435\u043D\u0442",
113
221
  onClick: onNext,
114
222
  tabIndex: disabled ? -1 : 0,
115
223
  disabled: disabled
116
- }, /*#__PURE__*/React.createElement(IconDisclosureRight, {
224
+ }, isVertical ? /*#__PURE__*/React.createElement(IconDisclosureDownWithOffset, {
225
+ color: "var(".concat(tokens.arrowColor, ")"),
226
+ size: "s"
227
+ }) : /*#__PURE__*/React.createElement(IconDisclosureRightWithOffset, {
117
228
  color: "var(".concat(tokens.arrowColor, ")")
118
229
  }));
119
- }, [onNext]);
230
+ }, [onNext, isVertical]);
120
231
  useEffect(function () {
121
232
  selectionMode && setSelectionMode(selectionMode);
122
233
  setDisabledGroup(disabled);
123
234
  }, [selectionMode, disabled]);
124
- useEffect(function () {
125
- var _trackRef$current;
126
- // Intersection observer для первого сегмента
127
- var observeFirstItem = new IntersectionObserver(onIntersecting(setFirstItemVisible), {
128
- root: null,
129
- rootMargin: '0px',
130
- threshold: 0.5
131
- });
132
-
133
- // Intersection observer для последнего сегмента
134
- var observeLastItem = new IntersectionObserver(onIntersecting(setLastItemVisible), {
135
- root: null,
136
- rootMargin: '0px',
137
- threshold: 0.5
138
- });
139
-
140
- // получаем список сегментов внутри SegmentGroup
141
- var childrenArray = Array.from(((_trackRef$current = trackRef.current) === null || _trackRef$current === void 0 ? void 0 : _trackRef$current.children) || []);
142
- if (childrenArray.length) {
143
- // подписываемся на событие появление внутри SegmentGroup
144
- observeFirstItem.observe(childrenArray[0]);
145
- observeLastItem.observe(childrenArray[childrenArray.length - 1]);
146
- }
147
- return function () {
148
- // отписываемся от события появления внутри SegmentGroup
149
- observeFirstItem.disconnect();
150
- observeLastItem.disconnect();
151
- };
152
- }, [children]);
153
235
  return /*#__PURE__*/React.createElement(Root, _extends({
154
236
  view: view,
155
237
  size: size,
238
+ orientation: orientation,
156
239
  id: segmentGroupId,
157
240
  ref: outerRef,
158
241
  filledBackground: filledBackgroundAttr,
159
242
  disabled: disabled,
160
243
  pilled: pilledAttr,
161
- className: cx(pilledClass, filledClass, stretchClass)
244
+ className: cx(pilledClass, filledClass, stretchClass, orientationClass),
245
+ onKeyDown: onKeyDown
162
246
  }, rest), !firstItemVisible && PreviousButton, /*#__PURE__*/React.createElement(StyledContentWrapper, {
163
- ref: scrollRef
247
+ className: cx(clipScrollClass),
248
+ ref: scrollRef,
249
+ onScroll: handleScroll
164
250
  }, /*#__PURE__*/React.createElement(StyledContent, {
165
251
  ref: trackRef
166
252
  }, children)), !lastItemVisible && NextButton);
@@ -190,6 +276,9 @@ export var segmentGroupConfig = {
190
276
  css: stretchCSS,
191
277
  attrs: true
192
278
  },
279
+ orientation: {
280
+ css: orientationCSS
281
+ },
193
282
  filledBackground: {
194
283
  css: filledBackgroundCSS,
195
284
  attrs: true