@salutejs/plasma-new-hope 0.326.1-canary.2018.15778039519.0 → 0.326.1-canary.2019.15674501487.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +3 -3
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  4. package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
  5. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +0 -12
  6. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  7. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
  8. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  9. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
  10. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  11. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
  12. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  13. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
  14. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
  15. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
  16. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  17. package/cjs/components/Carousel/CarouselNew/Carousel.css +5 -5
  18. package/cjs/components/Carousel/CarouselNew/Carousel.js +6 -9
  19. package/cjs/components/Carousel/CarouselNew/Carousel.js.map +1 -1
  20. package/cjs/components/Carousel/CarouselNew/Carousel.styles.js +4 -13
  21. package/cjs/components/Carousel/CarouselNew/Carousel.styles.js.map +1 -1
  22. package/cjs/components/Carousel/CarouselNew/Carousel.styles_151pk3s.css +5 -0
  23. package/cjs/components/Carousel/CarouselNew/Carousel.tokens.js +1 -9
  24. package/cjs/components/Carousel/CarouselNew/Carousel.tokens.js.map +1 -1
  25. package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +357 -49
  26. package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -1
  27. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js +38 -52
  28. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js.map +1 -1
  29. package/cjs/components/Carousel/CarouselOld/CarouselItem.js +1 -1
  30. package/cjs/components/Carousel/CarouselOld/CarouselItem.js.map +1 -1
  31. package/{es/components/Carousel/CarouselOld/CarouselItem_uvoxfy.css → cjs/components/Carousel/CarouselOld/CarouselItem_cghzk7.css} +1 -1
  32. package/cjs/components/Checkbox/Checkbox.js +1 -2
  33. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  34. package/cjs/components/CodeField/CodeField.css +6 -6
  35. package/cjs/components/CodeField/CodeField.styles.js +1 -1
  36. package/cjs/components/CodeField/CodeField.styles.js.map +1 -1
  37. package/{es/components/CodeField/CodeField.styles_7zxgpc.css → cjs/components/CodeField/CodeField.styles_ebdpd0.css} +1 -1
  38. package/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -2
  39. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  40. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  41. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  42. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
  43. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  44. package/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -2
  45. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  46. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
  47. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  48. package/cjs/components/Drawer/Drawer.js +3 -4
  49. package/cjs/components/Drawer/Drawer.js.map +1 -1
  50. package/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  51. package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
  52. package/cjs/components/Dropdown/Dropdown.js +2 -2
  53. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  54. package/cjs/components/Dropdown/FloatingPopover.js +2 -2
  55. package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
  56. package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  57. package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  58. package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  59. package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  60. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
  61. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  62. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
  63. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  64. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  65. package/cjs/components/Mask/Mask.js +3 -3
  66. package/cjs/components/Mask/Mask.js.map +1 -1
  67. package/cjs/components/Modal/Modal.js +2 -3
  68. package/cjs/components/Modal/Modal.js.map +1 -1
  69. package/cjs/components/Modal/hooks/useModal.js +1 -1
  70. package/cjs/components/Modal/hooks/useModal.js.map +1 -1
  71. package/cjs/components/Popup/Popup.js +1 -2
  72. package/cjs/components/Popup/Popup.js.map +1 -1
  73. package/cjs/components/Popup/PopupContext.js +15 -13
  74. package/cjs/components/Popup/PopupContext.js.map +1 -1
  75. package/cjs/components/Radiobox/Radiobox.js +2 -3
  76. package/cjs/components/Radiobox/Radiobox.js.map +1 -1
  77. package/cjs/components/Rating/Rating.css +6 -6
  78. package/cjs/components/Rating/Rating.styles.js +1 -1
  79. package/cjs/components/Rating/Rating.styles.js.map +1 -1
  80. package/{es/components/Rating/Rating.styles_hi5qwl.css → cjs/components/Rating/Rating.styles_dg76kk.css} +1 -1
  81. package/cjs/components/Rating/utils/getIcons.css +6 -6
  82. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
  83. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  84. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
  85. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  86. package/cjs/components/Select/FloatingPopover.js +2 -2
  87. package/cjs/components/Select/FloatingPopover.js.map +1 -1
  88. package/cjs/components/Select/Select.js +2 -2
  89. package/cjs/components/Select/Select.js.map +1 -1
  90. package/cjs/components/Select/ui/Inner/Inner.js +2 -2
  91. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  92. package/cjs/components/Spinner/Spinner.js +2 -2
  93. package/cjs/components/Spinner/Spinner.js.map +1 -1
  94. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
  95. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  96. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.css +4 -4
  97. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
  98. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  99. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js +1 -1
  100. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js.map +1 -1
  101. package/cjs/components/Tabs/ui/vertical/VerticalTabs/{VerticalTabs.styles_1egpt45.css → VerticalTabs.styles_1khdtzl.css} +1 -1
  102. package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
  103. package/cjs/components/TextField/TextField.js +3 -4
  104. package/cjs/components/TextField/TextField.js.map +1 -1
  105. package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
  106. package/cjs/index.css +22 -22
  107. package/cjs/index.js +0 -2
  108. package/cjs/index.js.map +1 -1
  109. package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
  110. package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  111. package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +0 -12
  112. package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
  113. package/emotion/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
  114. package/emotion/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
  115. package/emotion/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
  116. package/emotion/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
  117. package/emotion/cjs/components/Carousel/CarouselNew/Carousel.js +6 -9
  118. package/emotion/cjs/components/Carousel/CarouselNew/Carousel.styles.js +17 -12
  119. package/emotion/cjs/components/Carousel/CarouselNew/Carousel.tokens.js +1 -9
  120. package/emotion/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +353 -50
  121. package/emotion/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js +38 -52
  122. package/emotion/cjs/components/Carousel/CarouselOld/CarouselItem.js +1 -1
  123. package/emotion/cjs/components/Checkbox/Checkbox.js +1 -1
  124. package/emotion/cjs/components/CodeField/CodeField.styles.js +6 -6
  125. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  126. package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  127. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
  128. package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
  129. package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
  130. package/emotion/cjs/components/Drawer/Drawer.js +8 -8
  131. package/emotion/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  132. package/emotion/cjs/components/Dropdown/Dropdown.js +2 -1
  133. package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
  134. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  135. package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
  136. package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  137. package/emotion/cjs/components/Mask/Mask.js +3 -3
  138. package/emotion/cjs/components/Modal/Modal.js +5 -6
  139. package/emotion/cjs/components/Modal/hooks/useModal.js +1 -1
  140. package/emotion/cjs/components/Popup/Popup.js +1 -1
  141. package/emotion/cjs/components/Popup/PopupContext.js +20 -14
  142. package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
  143. package/emotion/cjs/components/Rating/Rating.styles.js +11 -11
  144. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
  145. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  146. package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
  147. package/emotion/cjs/components/Select/Select.js +2 -1
  148. package/emotion/cjs/components/Select/ui/Inner/Inner.js +2 -1
  149. package/emotion/cjs/components/Spinner/Spinner.js +2 -2
  150. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
  151. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
  152. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js +8 -8
  153. package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  154. package/emotion/cjs/components/TextField/TextField.js +4 -4
  155. package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  156. package/emotion/cjs/examples/plasma_b2c/components/Carousel/Carousel.config.js +2 -2
  157. package/emotion/cjs/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +14 -10
  158. package/emotion/cjs/examples/plasma_web/components/Carousel/Carousel.config.js +2 -2
  159. package/emotion/cjs/examples/plasma_web/components/Carousel/Carousel.stories.tsx +15 -10
  160. package/emotion/cjs/hooks/index.js +1 -8
  161. package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
  162. package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
  163. package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +0 -12
  164. package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
  165. package/emotion/es/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
  166. package/emotion/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
  167. package/emotion/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
  168. package/emotion/es/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
  169. package/emotion/es/components/Carousel/CarouselNew/Carousel.js +6 -9
  170. package/emotion/es/components/Carousel/CarouselNew/Carousel.styles.js +18 -13
  171. package/emotion/es/components/Carousel/CarouselNew/Carousel.tokens.js +1 -9
  172. package/emotion/es/components/Carousel/CarouselNew/hooks/useCarousel.js +349 -50
  173. package/emotion/es/components/Carousel/CarouselNew/ui/Dots/Dots.js +38 -52
  174. package/emotion/es/components/Carousel/CarouselOld/CarouselItem.js +1 -1
  175. package/emotion/es/components/Checkbox/Checkbox.js +1 -2
  176. package/emotion/es/components/CodeField/CodeField.styles.js +6 -6
  177. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
  178. package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  179. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  180. package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
  181. package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  182. package/emotion/es/components/Drawer/Drawer.js +3 -3
  183. package/emotion/es/components/Drawer/hooks/useDrawer.js +2 -2
  184. package/emotion/es/components/Dropdown/Dropdown.js +1 -1
  185. package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
  186. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  187. package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
  188. package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  189. package/emotion/es/components/Mask/Mask.js +3 -3
  190. package/emotion/es/components/Modal/Modal.js +3 -4
  191. package/emotion/es/components/Modal/hooks/useModal.js +1 -1
  192. package/emotion/es/components/Popup/Popup.js +2 -2
  193. package/emotion/es/components/Popup/PopupContext.js +20 -14
  194. package/emotion/es/components/Radiobox/Radiobox.js +2 -2
  195. package/emotion/es/components/Rating/Rating.styles.js +11 -11
  196. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
  197. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  198. package/emotion/es/components/Select/FloatingPopover.js +1 -1
  199. package/emotion/es/components/Select/Select.js +2 -1
  200. package/emotion/es/components/Select/ui/Inner/Inner.js +2 -1
  201. package/emotion/es/components/Spinner/Spinner.js +1 -1
  202. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
  203. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
  204. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js +8 -8
  205. package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
  206. package/emotion/es/components/TextField/TextField.js +3 -3
  207. package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
  208. package/emotion/es/examples/plasma_b2c/components/Carousel/Carousel.config.js +2 -2
  209. package/emotion/es/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +14 -10
  210. package/emotion/es/examples/plasma_web/components/Carousel/Carousel.config.js +2 -2
  211. package/emotion/es/examples/plasma_web/components/Carousel/Carousel.stories.tsx +15 -10
  212. package/emotion/es/hooks/index.js +1 -2
  213. package/es/components/Autocomplete/Autocomplete.js +1 -1
  214. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  215. package/es/components/Autocomplete/FloatingPopover.js +1 -1
  216. package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
  217. package/es/components/Calendar/CalendarBase/CalendarBase.js +0 -12
  218. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  219. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
  220. package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  221. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
  222. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  223. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
  224. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  225. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
  226. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
  227. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
  228. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  229. package/es/components/Carousel/CarouselNew/Carousel.css +5 -5
  230. package/es/components/Carousel/CarouselNew/Carousel.js +6 -9
  231. package/es/components/Carousel/CarouselNew/Carousel.js.map +1 -1
  232. package/es/components/Carousel/CarouselNew/Carousel.styles.js +4 -13
  233. package/es/components/Carousel/CarouselNew/Carousel.styles.js.map +1 -1
  234. package/es/components/Carousel/CarouselNew/Carousel.styles_151pk3s.css +5 -0
  235. package/es/components/Carousel/CarouselNew/Carousel.tokens.js +1 -9
  236. package/es/components/Carousel/CarouselNew/Carousel.tokens.js.map +1 -1
  237. package/es/components/Carousel/CarouselNew/hooks/useCarousel.js +349 -51
  238. package/es/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -1
  239. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.js +38 -52
  240. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.js.map +1 -1
  241. package/es/components/Carousel/CarouselOld/CarouselItem.js +1 -1
  242. package/es/components/Carousel/CarouselOld/CarouselItem.js.map +1 -1
  243. package/{cjs/components/Carousel/CarouselOld/CarouselItem_uvoxfy.css → es/components/Carousel/CarouselOld/CarouselItem_cghzk7.css} +1 -1
  244. package/es/components/Checkbox/Checkbox.js +1 -2
  245. package/es/components/Checkbox/Checkbox.js.map +1 -1
  246. package/es/components/CodeField/CodeField.css +6 -6
  247. package/es/components/CodeField/CodeField.styles.js +1 -1
  248. package/es/components/CodeField/CodeField.styles.js.map +1 -1
  249. package/{cjs/components/CodeField/CodeField.styles_7zxgpc.css → es/components/CodeField/CodeField.styles_ebdpd0.css} +1 -1
  250. package/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
  251. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  252. package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  253. package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  254. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  255. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  256. package/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
  257. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  258. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
  259. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  260. package/es/components/Drawer/Drawer.js +3 -4
  261. package/es/components/Drawer/Drawer.js.map +1 -1
  262. package/es/components/Drawer/hooks/useDrawer.js +2 -2
  263. package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
  264. package/es/components/Dropdown/Dropdown.js +1 -1
  265. package/es/components/Dropdown/Dropdown.js.map +1 -1
  266. package/es/components/Dropdown/FloatingPopover.js +1 -1
  267. package/es/components/Dropdown/FloatingPopover.js.map +1 -1
  268. package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  269. package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  270. package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  271. package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  272. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  273. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  274. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
  275. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  276. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  277. package/es/components/Mask/Mask.js +3 -3
  278. package/es/components/Mask/Mask.js.map +1 -1
  279. package/es/components/Modal/Modal.js +2 -3
  280. package/es/components/Modal/Modal.js.map +1 -1
  281. package/es/components/Modal/hooks/useModal.js +1 -1
  282. package/es/components/Modal/hooks/useModal.js.map +1 -1
  283. package/es/components/Popup/Popup.js +1 -2
  284. package/es/components/Popup/Popup.js.map +1 -1
  285. package/es/components/Popup/PopupContext.js +16 -14
  286. package/es/components/Popup/PopupContext.js.map +1 -1
  287. package/es/components/Radiobox/Radiobox.js +2 -3
  288. package/es/components/Radiobox/Radiobox.js.map +1 -1
  289. package/es/components/Rating/Rating.css +6 -6
  290. package/es/components/Rating/Rating.styles.js +1 -1
  291. package/es/components/Rating/Rating.styles.js.map +1 -1
  292. package/{cjs/components/Rating/Rating.styles_hi5qwl.css → es/components/Rating/Rating.styles_dg76kk.css} +1 -1
  293. package/es/components/Rating/utils/getIcons.css +6 -6
  294. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
  295. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  296. package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
  297. package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  298. package/es/components/Select/FloatingPopover.js +1 -1
  299. package/es/components/Select/FloatingPopover.js.map +1 -1
  300. package/es/components/Select/Select.js +1 -1
  301. package/es/components/Select/Select.js.map +1 -1
  302. package/es/components/Select/ui/Inner/Inner.js +1 -1
  303. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  304. package/es/components/Spinner/Spinner.js +1 -1
  305. package/es/components/Spinner/Spinner.js.map +1 -1
  306. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
  307. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  308. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.css +4 -4
  309. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
  310. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  311. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js +1 -1
  312. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js.map +1 -1
  313. package/es/components/Tabs/ui/vertical/VerticalTabs/{VerticalTabs.styles_1egpt45.css → VerticalTabs.styles_1khdtzl.css} +1 -1
  314. package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
  315. package/es/components/TextField/TextField.js +1 -2
  316. package/es/components/TextField/TextField.js.map +1 -1
  317. package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
  318. package/es/index.css +22 -22
  319. package/es/index.js +0 -1
  320. package/es/index.js.map +1 -1
  321. package/package.json +2 -2
  322. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
  323. package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  324. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +0 -12
  325. package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
  326. package/styled-components/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
  327. package/styled-components/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
  328. package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
  329. package/styled-components/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
  330. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.js +6 -9
  331. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.styles.js +3 -6
  332. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.tokens.js +1 -9
  333. package/styled-components/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +353 -50
  334. package/styled-components/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js +38 -52
  335. package/styled-components/cjs/components/Carousel/CarouselOld/CarouselItem.js +1 -1
  336. package/styled-components/cjs/components/Checkbox/Checkbox.js +1 -1
  337. package/styled-components/cjs/components/CodeField/CodeField.styles.js +1 -1
  338. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  339. package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  340. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
  341. package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
  342. package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
  343. package/styled-components/cjs/components/Drawer/Drawer.js +8 -8
  344. package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  345. package/styled-components/cjs/components/Dropdown/Dropdown.js +2 -1
  346. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
  347. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  348. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
  349. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  350. package/styled-components/cjs/components/Mask/Mask.js +3 -3
  351. package/styled-components/cjs/components/Modal/Modal.js +5 -6
  352. package/styled-components/cjs/components/Modal/hooks/useModal.js +1 -1
  353. package/styled-components/cjs/components/Popup/Popup.js +1 -1
  354. package/styled-components/cjs/components/Popup/PopupContext.js +20 -14
  355. package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
  356. package/styled-components/cjs/components/Rating/Rating.styles.js +1 -1
  357. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
  358. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  359. package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
  360. package/styled-components/cjs/components/Select/Select.js +2 -1
  361. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +2 -1
  362. package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
  363. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
  364. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
  365. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js +1 -1
  366. package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  367. package/styled-components/cjs/components/TextField/TextField.js +3 -3
  368. package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  369. package/styled-components/cjs/examples/plasma_b2c/components/Carousel/Carousel.config.js +2 -2
  370. package/styled-components/cjs/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +14 -10
  371. package/styled-components/cjs/examples/plasma_web/components/Carousel/Carousel.config.js +2 -2
  372. package/styled-components/cjs/examples/plasma_web/components/Carousel/Carousel.stories.tsx +15 -10
  373. package/styled-components/cjs/hooks/index.js +1 -8
  374. package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
  375. package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
  376. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +0 -12
  377. package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
  378. package/styled-components/es/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
  379. package/styled-components/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
  380. package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
  381. package/styled-components/es/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
  382. package/styled-components/es/components/Carousel/CarouselNew/Carousel.js +6 -9
  383. package/styled-components/es/components/Carousel/CarouselNew/Carousel.styles.js +4 -7
  384. package/styled-components/es/components/Carousel/CarouselNew/Carousel.tokens.js +1 -9
  385. package/styled-components/es/components/Carousel/CarouselNew/hooks/useCarousel.js +349 -50
  386. package/styled-components/es/components/Carousel/CarouselNew/ui/Dots/Dots.js +38 -52
  387. package/styled-components/es/components/Carousel/CarouselOld/CarouselItem.js +1 -1
  388. package/styled-components/es/components/Checkbox/Checkbox.js +1 -2
  389. package/styled-components/es/components/CodeField/CodeField.styles.js +1 -1
  390. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
  391. package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  392. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  393. package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
  394. package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  395. package/styled-components/es/components/Drawer/Drawer.js +3 -3
  396. package/styled-components/es/components/Drawer/hooks/useDrawer.js +2 -2
  397. package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
  398. package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
  399. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  400. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
  401. package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  402. package/styled-components/es/components/Mask/Mask.js +3 -3
  403. package/styled-components/es/components/Modal/Modal.js +3 -4
  404. package/styled-components/es/components/Modal/hooks/useModal.js +1 -1
  405. package/styled-components/es/components/Popup/Popup.js +2 -2
  406. package/styled-components/es/components/Popup/PopupContext.js +20 -14
  407. package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
  408. package/styled-components/es/components/Rating/Rating.styles.js +1 -1
  409. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
  410. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
  411. package/styled-components/es/components/Select/FloatingPopover.js +1 -1
  412. package/styled-components/es/components/Select/Select.js +2 -1
  413. package/styled-components/es/components/Select/ui/Inner/Inner.js +2 -1
  414. package/styled-components/es/components/Spinner/Spinner.js +1 -1
  415. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
  416. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
  417. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.styles.js +1 -1
  418. package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
  419. package/styled-components/es/components/TextField/TextField.js +2 -2
  420. package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
  421. package/styled-components/es/examples/plasma_b2c/components/Carousel/Carousel.config.js +2 -2
  422. package/styled-components/es/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +14 -10
  423. package/styled-components/es/examples/plasma_web/components/Carousel/Carousel.config.js +2 -2
  424. package/styled-components/es/examples/plasma_web/components/Carousel/Carousel.stories.tsx +15 -10
  425. package/styled-components/es/hooks/index.js +1 -2
  426. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  427. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
  428. package/types/components/Calendar/ui/CalendarDays/CalendarDays.d.ts.map +1 -1
  429. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.d.ts.map +1 -1
  430. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.d.ts.map +1 -1
  431. package/types/components/Calendar/ui/CalendarYears/CalendarYears.d.ts.map +1 -1
  432. package/types/components/Carousel/CarouselNew/Carousel.d.ts.map +1 -1
  433. package/types/components/Carousel/CarouselNew/Carousel.styles.d.ts +1 -4
  434. package/types/components/Carousel/CarouselNew/Carousel.styles.d.ts.map +1 -1
  435. package/types/components/Carousel/CarouselNew/Carousel.tokens.d.ts +0 -8
  436. package/types/components/Carousel/CarouselNew/Carousel.tokens.d.ts.map +1 -1
  437. package/types/components/Carousel/CarouselNew/Carousel.types.d.ts +3 -8
  438. package/types/components/Carousel/CarouselNew/Carousel.types.d.ts.map +1 -1
  439. package/types/components/Carousel/CarouselNew/hooks/useCarousel.d.ts +52 -11
  440. package/types/components/Carousel/CarouselNew/hooks/useCarousel.d.ts.map +1 -1
  441. package/types/components/Carousel/CarouselNew/ui/Dots/Dots.d.ts.map +1 -1
  442. package/types/components/Carousel/CarouselOld/CarouselItem.d.ts.map +1 -1
  443. package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  444. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  445. package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
  446. package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  447. package/types/components/Drawer/Drawer.d.ts +1 -1
  448. package/types/components/Drawer/Drawer.d.ts.map +1 -1
  449. package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
  450. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  451. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
  452. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
  453. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
  454. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
  455. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
  456. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
  457. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
  458. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
  459. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
  460. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
  461. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
  462. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
  463. package/types/components/Modal/Modal.d.ts +1 -1
  464. package/types/components/Modal/Modal.d.ts.map +1 -1
  465. package/types/components/Popup/Popup.d.ts +1 -1
  466. package/types/components/Popup/Popup.d.ts.map +1 -1
  467. package/types/components/Popup/Popup.types.d.ts +1 -1
  468. package/types/components/Popup/Popup.types.d.ts.map +1 -1
  469. package/types/components/Popup/PopupContext.d.ts.map +1 -1
  470. package/types/components/Radiobox/Radiobox.d.ts +2 -2
  471. package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
  472. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
  473. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  474. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
  475. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
  476. package/types/components/Select/Select.d.ts.map +1 -1
  477. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  478. package/types/components/Spinner/Spinner.d.ts +1 -1
  479. package/types/components/Spinner/Spinner.d.ts.map +1 -1
  480. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
  481. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  482. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
  483. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
  484. package/types/components/TextField/TextField.d.ts +1 -1
  485. package/types/components/TextField/TextField.d.ts.map +1 -1
  486. package/types/hooks/index.d.ts +0 -1
  487. package/types/hooks/index.d.ts.map +1 -1
  488. package/cjs/components/Carousel/CarouselNew/Carousel.styles_1benby5.css +0 -5
  489. package/cjs/hooks/useDisableScroll.js +0 -30
  490. package/cjs/hooks/useDisableScroll.js.map +0 -1
  491. package/emotion/cjs/hooks/useDisableScroll.js +0 -28
  492. package/emotion/es/hooks/useDisableScroll.js +0 -22
  493. package/es/components/Carousel/CarouselNew/Carousel.styles_1benby5.css +0 -5
  494. package/es/hooks/useDisableScroll.js +0 -26
  495. package/es/hooks/useDisableScroll.js.map +0 -1
  496. package/styled-components/cjs/hooks/useDisableScroll.js +0 -28
  497. package/styled-components/es/hooks/useDisableScroll.js +0 -22
  498. package/types/hooks/useDisableScroll.d.ts +0 -3
  499. package/types/hooks/useDisableScroll.d.ts.map +0 -1
@@ -0,0 +1,5 @@
1
+ .b13uu57o{position:relative;}
2
+ .c1gygdut{position:relative;margin-left:calc(var(--plasma_private-carousel-padding) * -1);margin-right:calc(var(--plasma_private-carousel-padding) * -1);padding:0;list-style:none;-ms-overflow-style:none;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;-webkit-scroll-behavior:smooth;-moz-scroll-behavior:smooth;-ms-scroll-behavior:smooth;scroll-behavior:smooth;-webkit-scroll-snap-type:x mandatory;-moz-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);--plasma_private-carousel-padding:0.625rem;}.c1gygdut::-webkit-scrollbar{display:none;}
3
+ .c76zbfp{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}
4
+ .i1cnnvc1{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0.75rem;z-index:10;--plasma-icon-button-color:var(--text-primary);--plasma-icon-button-background-color:var(--surface-transparent-secondary);--plasma-icon-button-loading-background-color:var(--plasma-icon-button-background-color);--plasma-icon-button-background-color-hover:var(--surface-transparent-secondary-hover);--plasma-icon-button-background-color-active:var(--surface-transparent-secondary-active);--plasma-icon-button-height:2.5rem;--plasma-icon-button-width:2.5rem;--plasma-icon-button-padding:1rem;--plasma-icon-button-radius:0.625rem;}.i1cnnvc1.carousel-right-control-button{left:auto;right:0.75rem;}
5
+ .c1ff2k98{position:relative;}
@@ -12,19 +12,11 @@ var classes = {
12
12
  shrinking: 'dot-shrinking',
13
13
  availableDotsLeft: 'dot-available-dots-left',
14
14
  availableDotsRight: 'dot-available-dots-right',
15
- leftControlButton: 'carousel-left-control-button',
16
15
  rightControlButton: 'carousel-right-control-button'
17
16
  };
18
17
  var tokens = {
19
18
  paginationDotBackground: '--plasma-carousel-pagination-dot-background',
20
- paginationDotActiveBackground: '--plasma-carousel-pagination-dot-active-background',
21
- controlIconButtonRadius: '--plasma-carousel-control-icon-button-radius',
22
- controlIconButtonColor: '--plasma-carousel-control-icon-button-color',
23
- controlIconButtonBackgroundColor: '--plasma-carousel-control-icon-button-background-color',
24
- controlIconButtonColorHover: '--plasma-carousel-control-icon-button-color-hover',
25
- controlIconButtonBackgroundColorHover: '--plasma-carousel-control-icon-button-background-color-hover',
26
- controlIconButtonColorActive: '--plasma-carousel-control-icon-button-color-active',
27
- controlIconButtonBackgroundColorActive: '--plasma-carousel-control-icon-button-background-color-active'
19
+ paginationDotActiveBackground: '--plasma-carousel-pagination-dot-active-background'
28
20
  };
29
21
 
30
22
  exports.classes = classes;
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.tokens.js","sources":["../../../../src/components/Carousel/CarouselNew/Carousel.tokens.ts"],"sourcesContent":["export const classes = {\n dot: 'dot',\n active: 'dot-active',\n animating: 'dot-animating',\n animateIn: 'dot-animate-in',\n animateOut: 'dot-animate-out',\n temporaryNatural: 'dot-temporary-natural',\n shrinking: 'dot-shrinking',\n availableDotsLeft: 'dot-available-dots-left',\n availableDotsRight: 'dot-available-dots-right',\n leftControlButton: 'carousel-left-control-button',\n rightControlButton: 'carousel-right-control-button',\n};\n\nexport const tokens = {\n paginationDotBackground: '--plasma-carousel-pagination-dot-background',\n paginationDotActiveBackground: '--plasma-carousel-pagination-dot-active-background',\n controlIconButtonRadius: '--plasma-carousel-control-icon-button-radius',\n controlIconButtonColor: '--plasma-carousel-control-icon-button-color',\n controlIconButtonBackgroundColor: '--plasma-carousel-control-icon-button-background-color',\n controlIconButtonColorHover: '--plasma-carousel-control-icon-button-color-hover',\n controlIconButtonBackgroundColorHover: '--plasma-carousel-control-icon-button-background-color-hover',\n controlIconButtonColorActive: '--plasma-carousel-control-icon-button-color-active',\n controlIconButtonBackgroundColorActive: '--plasma-carousel-control-icon-button-background-color-active',\n};\n"],"names":["classes","dot","active","animating","animateIn","animateOut","temporaryNatural","shrinking","availableDotsLeft","availableDotsRight","leftControlButton","rightControlButton","tokens","paginationDotBackground","paginationDotActiveBackground","controlIconButtonRadius","controlIconButtonColor","controlIconButtonBackgroundColor","controlIconButtonColorHover","controlIconButtonBackgroundColorHover","controlIconButtonColorActive","controlIconButtonBackgroundColorActive"],"mappings":";;;;AAAO,IAAMA,OAAO,GAAG;AACnBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE,YAAY;AACpBC,EAAAA,SAAS,EAAE,eAAe;AAC1BC,EAAAA,SAAS,EAAE,gBAAgB;AAC3BC,EAAAA,UAAU,EAAE,iBAAiB;AAC7BC,EAAAA,gBAAgB,EAAE,uBAAuB;AACzCC,EAAAA,SAAS,EAAE,eAAe;AAC1BC,EAAAA,iBAAiB,EAAE,yBAAyB;AAC5CC,EAAAA,kBAAkB,EAAE,0BAA0B;AAC9CC,EAAAA,iBAAiB,EAAE,8BAA8B;AACjDC,EAAAA,kBAAkB,EAAE,+BAAA;AACxB,EAAC;AAEM,IAAMC,MAAM,GAAG;AAClBC,EAAAA,uBAAuB,EAAE,6CAA6C;AACtEC,EAAAA,6BAA6B,EAAE,oDAAoD;AACnFC,EAAAA,uBAAuB,EAAE,8CAA8C;AACvEC,EAAAA,sBAAsB,EAAE,6CAA6C;AACrEC,EAAAA,gCAAgC,EAAE,wDAAwD;AAC1FC,EAAAA,2BAA2B,EAAE,mDAAmD;AAChFC,EAAAA,qCAAqC,EAAE,8DAA8D;AACrGC,EAAAA,4BAA4B,EAAE,oDAAoD;AAClFC,EAAAA,sCAAsC,EAAE,+DAAA;AAC5C;;;;;"}
1
+ {"version":3,"file":"Carousel.tokens.js","sources":["../../../../src/components/Carousel/CarouselNew/Carousel.tokens.ts"],"sourcesContent":["export const classes = {\n dot: 'dot',\n active: 'dot-active',\n animating: 'dot-animating',\n animateIn: 'dot-animate-in',\n animateOut: 'dot-animate-out',\n temporaryNatural: 'dot-temporary-natural',\n shrinking: 'dot-shrinking',\n availableDotsLeft: 'dot-available-dots-left',\n availableDotsRight: 'dot-available-dots-right',\n rightControlButton: 'carousel-right-control-button',\n};\n\nexport const tokens = {\n paginationDotBackground: '--plasma-carousel-pagination-dot-background',\n paginationDotActiveBackground: '--plasma-carousel-pagination-dot-active-background',\n};\n"],"names":["classes","dot","active","animating","animateIn","animateOut","temporaryNatural","shrinking","availableDotsLeft","availableDotsRight","rightControlButton","tokens","paginationDotBackground","paginationDotActiveBackground"],"mappings":";;;;AAAO,IAAMA,OAAO,GAAG;AACnBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE,YAAY;AACpBC,EAAAA,SAAS,EAAE,eAAe;AAC1BC,EAAAA,SAAS,EAAE,gBAAgB;AAC3BC,EAAAA,UAAU,EAAE,iBAAiB;AAC7BC,EAAAA,gBAAgB,EAAE,uBAAuB;AACzCC,EAAAA,SAAS,EAAE,eAAe;AAC1BC,EAAAA,iBAAiB,EAAE,yBAAyB;AAC5CC,EAAAA,kBAAkB,EAAE,0BAA0B;AAC9CC,EAAAA,kBAAkB,EAAE,+BAAA;AACxB,EAAC;AAEM,IAAMC,MAAM,GAAG;AAClBC,EAAAA,uBAAuB,EAAE,6CAA6C;AACtEC,EAAAA,6BAA6B,EAAE,oDAAA;AACnC;;;;;"}
@@ -3,74 +3,382 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var throttle = require('lodash.throttle');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
6
11
 
7
12
  /**
8
- * Подсчет отступа для скролла до переданного индекса.
13
+ * Подсчет смещения из-за паддингов.
9
14
  */
10
- var getCalculatedPos = function getCalculatedPos(_ref) {
11
- var scrollRef = _ref.scrollRef,
12
- trackRef = _ref.trackRef,
13
- itemsCollection = _ref.itemsCollection,
14
- index = _ref.index,
15
- scrollAlign = _ref.scrollAlign;
16
- var item = itemsCollection.item(index);
17
- if (!item || !trackRef.current || !scrollRef.current) {
18
- return 0;
15
+ var getCalculatedOffset = function getCalculatedOffset(scrollEl, trackEl) {
16
+ var paddingProp = 'paddingLeft';
17
+ return parseInt(getComputedStyle(scrollEl)[paddingProp], 10) + parseInt(getComputedStyle(trackEl)[paddingProp], 10);
18
+ };
19
+ var positionModByScrollAlign = function positionModByScrollAlign(_ref) {
20
+ var scrollAlign = _ref.scrollAlign,
21
+ position = _ref.position,
22
+ carouselSize = _ref.carouselSize,
23
+ itemSize = _ref.itemSize,
24
+ offset = _ref.offset,
25
+ scrollStart = _ref.scrollStart;
26
+ if (scrollAlign === 'start') {
27
+ var paddingOffset = 0;
28
+ return position + paddingOffset;
19
29
  }
20
- var itemRect = item.getBoundingClientRect();
21
- var trackRect = trackRef.current.getBoundingClientRect();
22
- var scrollRect = scrollRef.current.getBoundingClientRect();
23
- var left = itemRect.left - trackRect.left + trackRef.current.scrollLeft;
24
- switch (scrollAlign) {
25
- case 'start':
26
- {
27
- return left;
28
- }
29
- case 'center':
30
- {
31
- return left - scrollRect.width / 2 + itemRect.width / 2;
32
- }
33
- case 'end':
34
- {
35
- return left - scrollRect.width + itemRect.width;
36
- }
37
- default:
38
- {
39
- return 0;
40
- }
30
+ if (scrollAlign === 'center') {
31
+ return position - carouselSize / 2 + itemSize / 2;
32
+ }
33
+ if (scrollAlign === 'end') {
34
+ return position - carouselSize + itemSize + offset;
35
+ }
36
+ if (scrollAlign === 'activeDirection') {
37
+ if (position >= scrollStart + carouselSize - itemSize) {
38
+ return position - carouselSize + itemSize + offset;
39
+ }
40
+ if (position > scrollStart) {
41
+ return scrollStart;
42
+ }
41
43
  }
44
+ return position;
42
45
  };
43
- var useCarousel = function useCarousel(_ref2) {
44
- var index = _ref2.index,
46
+
47
+ /**
48
+ * Подсчет скролла до переданного индекса.
49
+ */
50
+ var getCalculatedPos = function getCalculatedPos(_ref2) {
51
+ var _items$item$offsetWid2, _items$item2;
52
+ var scrollEl = _ref2.scrollEl,
53
+ items = _ref2.items,
54
+ index = _ref2.index,
55
+ offset = _ref2.offset,
45
56
  scrollAlign = _ref2.scrollAlign;
57
+ var position = scrollAlign === 'center' ? offset : 0;
58
+ if (items.item(index) === null) {
59
+ return position;
60
+ }
61
+ for (var i = 0; i < index; i++) {
62
+ var _items$item$offsetWid, _items$item;
63
+ position += (_items$item$offsetWid = (_items$item = items.item(i)) === null || _items$item === void 0 ? void 0 : _items$item.offsetWidth) !== null && _items$item$offsetWid !== void 0 ? _items$item$offsetWid : 0;
64
+ }
65
+ var carouselSize = scrollEl.offsetWidth;
66
+ var itemSize = (_items$item$offsetWid2 = (_items$item2 = items.item(index)) === null || _items$item2 === void 0 ? void 0 : _items$item2.offsetWidth) !== null && _items$item$offsetWid2 !== void 0 ? _items$item$offsetWid2 : 0;
67
+ var scrollStart = scrollEl.scrollLeft;
68
+ return positionModByScrollAlign({
69
+ scrollAlign: scrollAlign,
70
+ position: position,
71
+ carouselSize: carouselSize,
72
+ itemSize: itemSize,
73
+ offset: offset,
74
+ scrollStart: scrollStart
75
+ });
76
+ };
77
+ var DEFAULT_DURATION = 300;
78
+
79
+ // https://css-tricks.com/emulating-css-timing-functions-javascript/
80
+ var tfs = {
81
+ linear: function linear(t) {
82
+ return t;
83
+ },
84
+ // eslint-disable-next-line
85
+ easeIn: function easeIn(t) {
86
+ return Math.pow(t, 1.675);
87
+ },
88
+ // eslint-disable-next-line
89
+ easeOut: function easeOut(t) {
90
+ return 1 - Math.pow(1 - t, 1.675);
91
+ },
92
+ easeInOut: function easeInOut(t) {
93
+ return 0.5 * (Math.sin((t - 0.5) * Math.PI) + 1);
94
+ }
95
+ };
96
+ /**
97
+ * Плавная прокрутка по горизонтали
98
+ * @param {Element} elem
99
+ * @param {number} pos
100
+ * @param {number} duration
101
+ * @param {string} timingFunction
102
+ */
103
+ var animatedScrollToX = function animatedScrollToX(elem, pos) {
104
+ var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_DURATION;
105
+ var timingFunction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'easeInOut';
106
+ var startTime;
107
+ var startX = elem.scrollLeft;
108
+ var endX = Math.max(0, Math.min(elem.scrollWidth - elem.clientWidth, pos));
109
+ var handleNewAnimationFrame = function handleNewAnimationFrame() {
110
+ startTime = startTime || Date.now();
111
+ var timePos = Math.min(1, Math.max(1, Date.now() - startTime) / duration);
112
+ var scrollPos = tfs[timingFunction](timePos);
113
+ var left = startX + (endX - startX) * scrollPos;
114
+ elem.scrollTo({
115
+ left: left
116
+ });
117
+ if (timePos !== 1) window.requestAnimationFrame(handleNewAnimationFrame);
118
+ };
119
+ window.requestAnimationFrame(handleNewAnimationFrame);
120
+ };
121
+
122
+ /**
123
+ * Прокрутка к указанной позиции с анимацией или без.
124
+ */
125
+ var scrollToPos = function scrollToPos(_ref3) {
126
+ var scrollEl = _ref3.scrollEl,
127
+ pos = _ref3.pos,
128
+ animated = _ref3.animated,
129
+ duration = _ref3.duration,
130
+ timingFunction = _ref3.timingFunction;
131
+ if (Math.abs(pos - scrollEl.scrollLeft) > 1) {
132
+ if (animated) {
133
+ animatedScrollToX(scrollEl, pos, duration, timingFunction);
134
+ } else {
135
+ scrollEl.scrollTo({
136
+ left: pos
137
+ });
138
+ }
139
+ }
140
+ };
141
+ var round = function round(n) {
142
+ return Math.round(n * 100) / 100;
143
+ };
144
+
145
+ /**
146
+ * Получить позицию (слот) айтема в каруселе.
147
+ * Каждый айтем имеет свой слот относительно вьюпорта карусели.
148
+ */
149
+ var getItemSlot = function getItemSlot(itemIndex, itemEnd, itemSize, scrollStart, scrollSize, scrollAlign) {
150
+ var prevIndex = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
151
+ var offset = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 0;
152
+ /**
153
+ * Граница и центр скролла (видимой части).
154
+ * Смещение + размер.
155
+ */
156
+ var scrollEnd = scrollStart + scrollSize;
157
+ var scrollCenter = scrollStart + scrollSize / 2;
158
+ var itemCenter = itemEnd - itemSize / 2;
159
+ if (scrollAlign === 'center') {
160
+ return round((itemCenter - scrollCenter) / itemSize);
161
+ }
162
+ if (scrollAlign === 'start') {
163
+ return round((itemEnd - itemSize - scrollStart) / itemSize);
164
+ }
165
+ if (scrollAlign === 'end') {
166
+ return round((itemEnd - (scrollSize + scrollStart)) / itemSize);
167
+ }
168
+ if (scrollAlign === 'activeDirection') {
169
+ var prevStart = offset + itemSize * prevIndex;
170
+ var prevEnd = prevStart + itemSize;
171
+ var prevVisible = prevEnd > scrollStart && prevStart < scrollEnd;
172
+ if (!prevVisible) {
173
+ if (prevIndex < itemIndex) {
174
+ return round((itemEnd - (scrollSize + scrollStart)) / itemSize);
175
+ }
176
+ return round((itemEnd - itemSize - scrollStart) / itemSize);
177
+ }
178
+ }
179
+ return null;
180
+ };
181
+ function getCarouselItems(track) {
182
+ return track.children;
183
+ }
184
+ function useDebouncedFunction(func, delay, cleanUp) {
185
+ var timeoutRef = React.useRef();
186
+
187
+ /**
188
+ * Очистка таймера
189
+ */
190
+ function clearTimer() {
191
+ if (timeoutRef.current) {
192
+ clearTimeout(timeoutRef.current);
193
+ timeoutRef.current = undefined;
194
+ }
195
+ }
196
+
197
+ /**
198
+ * Очищаем таймер при анмаунте компонента, если cleanUp выставлен в true
199
+ * и тем самым отменяем последний запланированный вызов
200
+ */
201
+ React.useEffect(function () {
202
+ return cleanUp ? clearTimer : undefined;
203
+ }, [cleanUp]);
204
+ return function () {
205
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
206
+ args[_key] = arguments[_key];
207
+ }
208
+ clearTimer();
209
+ timeoutRef.current = setTimeout(function () {
210
+ return func.apply(void 0, args);
211
+ }, delay);
212
+ };
213
+ }
214
+ var THROTTLE_DEFAULT_MS = 100;
215
+ var DEBOUNCE_DEFAULT_MS = 150;
216
+ var useCarousel = function useCarousel(_ref4) {
217
+ var index = _ref4.index,
218
+ onIndexChange = _ref4.onIndexChange,
219
+ _ref4$detectActive = _ref4.detectActive,
220
+ detectActive = _ref4$detectActive === void 0 ? false : _ref4$detectActive,
221
+ _ref4$detectThreshold = _ref4.detectThreshold,
222
+ detectThreshold = _ref4$detectThreshold === void 0 ? 0.5 : _ref4$detectThreshold,
223
+ _ref4$scrollAlign = _ref4.scrollAlign,
224
+ scrollAlign = _ref4$scrollAlign === void 0 ? 'center' : _ref4$scrollAlign,
225
+ _ref4$throttleMs = _ref4.throttleMs,
226
+ throttleMs = _ref4$throttleMs === void 0 ? THROTTLE_DEFAULT_MS : _ref4$throttleMs,
227
+ _ref4$debounceMs = _ref4.debounceMs,
228
+ debounceMs = _ref4$debounceMs === void 0 ? DEBOUNCE_DEFAULT_MS : _ref4$debounceMs;
229
+ var prevIndex = React.useRef(null);
230
+ var offset = React.useRef(0);
46
231
  var scrollRef = React.useRef(null);
47
232
  var trackRef = React.useRef(null);
48
233
 
49
- // Прокрутка до нужной позиции индекса, если индекс изменился.
234
+ /**
235
+ * Для того, чтобы не спамить изменениями индекса.
236
+ * Задержка дебаунса слегка больше, чем у тротлинга.
237
+ * Таким образом, событие срабатывает при завершении скролла.
238
+ */
239
+ var debouncedOnIndexChange = useDebouncedFunction(function (i) {
240
+ return onIndexChange === null || onIndexChange === void 0 ? void 0 : onIndexChange(i);
241
+ }, debounceMs);
242
+
243
+ /**
244
+ * Вычисление центрального элемента.
245
+ * Подсчет: от 0 до 1, какое количество ширины/высоты
246
+ * каждого элемента находится по центру скролла.
247
+ */
248
+ var throttledDetectActiveItem = React.useMemo(function () {
249
+ return throttle__default.default(function () {
250
+ if (!detectActive || scrollRef.current === null || trackRef.current === null) {
251
+ return;
252
+ }
253
+
254
+ /**
255
+ * Правая (или нижняя для Оу) граница элемента.
256
+ */
257
+ var itemEdge = offset.current;
258
+
259
+ /**
260
+ * Смещение (отрицательный или положительный отступ)
261
+ * и размер карусели (для Ox - ширина, для Oy - высота).
262
+ */
263
+ var scrollPos = scrollRef.current['scrollLeft' ];
264
+ var scrollSize = scrollRef.current['offsetWidth' ];
265
+
266
+ /**
267
+ * Граница скролла (видимой части).
268
+ * Смещение + размер.
269
+ */
270
+ var scrollEdge = scrollPos + scrollSize;
271
+ var items = getCarouselItems(trackRef.current);
272
+
273
+ /**
274
+ * Проходим по всему списку, суммируя ширины элементов,
275
+ * пока не найдем один элемент, чей центр будет в центре карусели.
276
+ */
277
+ for (var itemIndex = 0; itemIndex < items.length; itemIndex++) {
278
+ var _prevIndex$current;
279
+ var item = items.item(itemIndex);
280
+ if (item === null) {
281
+ // eslint-disable-next-line no-continue
282
+ continue;
283
+ }
284
+
285
+ /**
286
+ * Для Ox - ширина, для Oy - высота.
287
+ */
288
+ var itemSize = item['offsetWidth' ];
289
+
290
+ /**
291
+ * Все элементы правее вьюпорта выпадают из процедуры.
292
+ * Сравниваем по предыдущему элементу.
293
+ * [ ... ] ...|n| <- Левый край элемента за пределами начала видимой части
294
+ */
295
+ if (itemEdge > scrollEdge) {
296
+ // eslint-disable-next-line no-continue
297
+ continue;
298
+ }
299
+ itemEdge += itemSize;
300
+
301
+ /**
302
+ * Все элементы левее вьюпорта выпадают из процедуры.
303
+ * Сравниваем по текущему элементу.
304
+ * Правый край элемента за пределами начала видимой части -> |p|... [ ... ]
305
+ */
306
+ if (scrollPos > itemEdge) {
307
+ // eslint-disable-next-line no-continue
308
+ continue;
309
+ }
310
+ var itemSlot = getItemSlot(itemIndex, itemEdge, itemSize, scrollPos, scrollSize, scrollAlign, (_prevIndex$current = prevIndex.current) !== null && _prevIndex$current !== void 0 ? _prevIndex$current : 0, offset.current);
311
+ if (itemSlot !== null) {
312
+ if (detectThreshold && Math.abs(itemSlot) <= detectThreshold) {
313
+ debouncedOnIndexChange === null || debouncedOnIndexChange === void 0 || debouncedOnIndexChange(itemIndex);
314
+ }
315
+ }
316
+ }
317
+ }, throttleMs);
318
+ }, [debouncedOnIndexChange, detectActive, detectThreshold, scrollAlign, throttleMs]);
319
+
320
+ /**
321
+ * Прокрутка до нужной позиции индекса.
322
+ */
323
+ var toIndex = React.useCallback(function (i) {
324
+ var scrollEl = scrollRef.current;
325
+ var items = trackRef.current ? getCarouselItems(trackRef.current) : null;
326
+ if (scrollEl && items && items.length > 0 && i >= 0) {
327
+ scrollToPos({
328
+ scrollEl: scrollEl,
329
+ pos: getCalculatedPos({
330
+ scrollEl: scrollEl,
331
+ items: items,
332
+ index: i,
333
+ offset: offset.current,
334
+ scrollAlign: scrollAlign
335
+ })
336
+ });
337
+ prevIndex.current = i;
338
+ }
339
+ }, [scrollAlign]);
50
340
  React.useEffect(function () {
51
- if (!scrollRef.current || !trackRef.current) {
52
- return;
341
+ if (scrollRef.current && trackRef.current) {
342
+ offset.current = getCalculatedOffset(scrollRef.current, trackRef.current);
53
343
  }
54
- var itemsCollection = trackRef.current.children;
55
- if (itemsCollection && itemsCollection.length > 0) {
56
- var pos = getCalculatedPos({
57
- scrollRef: scrollRef,
58
- trackRef: trackRef,
59
- itemsCollection: itemsCollection,
60
- index: index,
61
- scrollAlign: scrollAlign
62
- });
63
- scrollRef.current.scrollTo({
64
- left: pos
65
- });
344
+ }, []);
345
+
346
+ /**
347
+ * Операции на маунте/анмаунте компонента.
348
+ * Создать слушатели событи и т.п.
349
+ */
350
+ React.useEffect(function () {
351
+ var carouselElement = scrollRef.current;
352
+ if (carouselElement) {
353
+ carouselElement.addEventListener('scroll', throttledDetectActiveItem);
354
+ }
355
+ return function () {
356
+ if (carouselElement) {
357
+ carouselElement.removeEventListener('scroll', throttledDetectActiveItem);
358
+ }
359
+ };
360
+ }, [throttledDetectActiveItem]);
361
+
362
+ /**
363
+ * Прокрутка до нужной позиции индекса, если индекс изменился.
364
+ */
365
+ React.useEffect(function () {
366
+ if (index !== prevIndex.current) {
367
+ toIndex(index);
66
368
  }
67
- }, [index]);
369
+ }, [index, toIndex]);
68
370
  return {
69
371
  scrollRef: scrollRef,
70
372
  trackRef: trackRef
71
373
  };
72
374
  };
73
375
 
376
+ exports.animatedScrollToX = animatedScrollToX;
377
+ exports.getCalculatedOffset = getCalculatedOffset;
74
378
  exports.getCalculatedPos = getCalculatedPos;
379
+ exports.getCarouselItems = getCarouselItems;
380
+ exports.getItemSlot = getItemSlot;
381
+ exports.scrollToPos = scrollToPos;
75
382
  exports.useCarousel = useCarousel;
383
+ exports.useDebouncedFunction = useDebouncedFunction;
76
384
  //# sourceMappingURL=useCarousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCarousel.js","sources":["../../../../../src/components/Carousel/CarouselNew/hooks/useCarousel.tsx"],"sourcesContent":["import { useEffect, useRef, RefObject } from 'react';\n\nimport { CarouselNewProps as CarouselProps } from '../Carousel.types';\n\n/**\n * Подсчет отступа для скролла до переданного индекса.\n */\nexport const getCalculatedPos = ({\n scrollRef,\n trackRef,\n itemsCollection,\n index,\n scrollAlign,\n}: {\n scrollRef: RefObject<HTMLDivElement>;\n trackRef: RefObject<HTMLDivElement>;\n itemsCollection: HTMLCollection;\n index: number;\n scrollAlign: CarouselProps['scrollAlign'];\n}): number => {\n const item = itemsCollection.item(index);\n\n if (!item || !trackRef.current || !scrollRef.current) {\n return 0;\n }\n\n const itemRect = item.getBoundingClientRect();\n const trackRect = trackRef.current.getBoundingClientRect();\n const scrollRect = scrollRef.current.getBoundingClientRect();\n\n const left = itemRect.left - trackRect.left + trackRef.current.scrollLeft;\n\n switch (scrollAlign) {\n case 'start': {\n return left;\n }\n case 'center': {\n return left - scrollRect.width / 2 + itemRect.width / 2;\n }\n case 'end': {\n return left - scrollRect.width + itemRect.width;\n }\n default: {\n return 0;\n }\n }\n};\n\ntype UseCarouselOptions = Pick<CarouselProps, 'scrollAlign'> & {\n index: number;\n};\n\ntype UseCarouselHookResult = {\n scrollRef: RefObject<HTMLDivElement>;\n trackRef: RefObject<HTMLDivElement>;\n};\n\nexport const useCarousel = ({ index, scrollAlign }: UseCarouselOptions): UseCarouselHookResult => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const trackRef = useRef<HTMLDivElement>(null);\n\n // Прокрутка до нужной позиции индекса, если индекс изменился.\n useEffect(() => {\n if (!scrollRef.current || !trackRef.current) {\n return;\n }\n\n const itemsCollection = trackRef.current.children;\n\n if (itemsCollection && itemsCollection.length > 0) {\n const pos = getCalculatedPos({\n scrollRef,\n trackRef,\n itemsCollection,\n index,\n scrollAlign,\n });\n\n scrollRef.current.scrollTo({ left: pos });\n }\n }, [index]);\n\n return {\n scrollRef,\n trackRef,\n };\n};\n"],"names":["getCalculatedPos","_ref","scrollRef","trackRef","itemsCollection","index","scrollAlign","item","current","itemRect","getBoundingClientRect","trackRect","scrollRect","left","scrollLeft","width","useCarousel","_ref2","useRef","useEffect","children","length","pos","scrollTo"],"mappings":"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"}
1
+ {"version":3,"file":"useCarousel.js","sources":["../../../../../src/components/Carousel/CarouselNew/hooks/useCarousel.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useRef, useMemo } from 'react';\nimport throttle from 'lodash.throttle';\n\nimport { CarouselNewProps as CarouselProps, ScrollAlign } from '../Carousel.types';\n\n/**\n * Подсчет смещения из-за паддингов.\n */\nexport const getCalculatedOffset = (scrollEl: Element, trackEl: Element) => {\n const paddingProp = 'paddingLeft';\n return parseInt(getComputedStyle(scrollEl)[paddingProp], 10) + parseInt(getComputedStyle(trackEl)[paddingProp], 10);\n};\n\nconst positionModByScrollAlign = ({\n scrollAlign,\n position,\n carouselSize,\n itemSize,\n offset,\n scrollStart,\n}: {\n scrollAlign: ScrollAlign;\n position: number;\n carouselSize: number;\n itemSize: number;\n offset: number;\n scrollStart: number;\n}) => {\n if (scrollAlign === 'start') {\n const paddingOffset = 0;\n return position + paddingOffset;\n }\n if (scrollAlign === 'center') {\n return position - carouselSize / 2 + itemSize / 2;\n }\n if (scrollAlign === 'end') {\n return position - carouselSize + itemSize + offset;\n }\n if (scrollAlign === 'activeDirection') {\n if (position >= scrollStart + carouselSize - itemSize) {\n return position - carouselSize + itemSize + offset;\n }\n if (position > scrollStart) {\n return scrollStart;\n }\n }\n return position;\n};\n\n/**\n * Подсчет скролла до переданного индекса.\n */\nexport const getCalculatedPos = ({\n scrollEl,\n items,\n index,\n offset,\n scrollAlign,\n}: {\n scrollEl: HTMLElement;\n items: HTMLCollectionOf<HTMLElement>;\n index: number;\n offset: number;\n scrollAlign: ScrollAlign;\n}) => {\n let position = scrollAlign === 'center' ? offset : 0;\n\n if (items.item(index) === null) {\n return position;\n }\n\n for (let i = 0; i < index; i++) {\n position += items.item(i)?.offsetWidth ?? 0;\n }\n\n const carouselSize = scrollEl.offsetWidth;\n const itemSize = items.item(index)?.offsetWidth ?? 0;\n const scrollStart = scrollEl.scrollLeft;\n\n return positionModByScrollAlign({\n scrollAlign,\n position,\n carouselSize,\n itemSize,\n offset,\n scrollStart,\n });\n};\n\nconst DEFAULT_DURATION = 300;\n\n// https://css-tricks.com/emulating-css-timing-functions-javascript/\nconst tfs = {\n linear: (t: number) => t,\n // eslint-disable-next-line\n easeIn: (t: number) => Math.pow(t, 1.675),\n // eslint-disable-next-line\n easeOut: (t: number) => 1 - Math.pow(1 - t, 1.675),\n easeInOut: (t: number) => 0.5 * (Math.sin((t - 0.5) * Math.PI) + 1),\n};\n\nexport type TimingFunction = keyof typeof tfs;\n\n/**\n * Плавная прокрутка по горизонтали\n * @param {Element} elem\n * @param {number} pos\n * @param {number} duration\n * @param {string} timingFunction\n */\nexport const animatedScrollToX = (\n elem: Element,\n pos: number,\n duration: number = DEFAULT_DURATION,\n timingFunction: TimingFunction = 'easeInOut',\n): void => {\n let startTime: number;\n const startX = elem.scrollLeft;\n const endX = Math.max(0, Math.min(elem.scrollWidth - elem.clientWidth, pos));\n\n const handleNewAnimationFrame = (): void => {\n startTime = startTime || Date.now();\n const timePos = Math.min(1, Math.max(1, Date.now() - startTime) / duration);\n const scrollPos = tfs[timingFunction](timePos);\n const left = startX + (endX - startX) * scrollPos;\n elem.scrollTo({ left });\n if (timePos !== 1) window.requestAnimationFrame(handleNewAnimationFrame);\n };\n\n window.requestAnimationFrame(handleNewAnimationFrame);\n};\n\n/**\n * Прокрутка к указанной позиции с анимацией или без.\n */\nexport const scrollToPos = ({\n scrollEl,\n pos,\n animated,\n duration,\n timingFunction,\n}: {\n scrollEl: HTMLElement;\n pos: number;\n animated?: boolean;\n duration?: number;\n timingFunction?: TimingFunction;\n}) => {\n if (Math.abs(pos - scrollEl.scrollLeft) > 1) {\n if (animated) {\n animatedScrollToX(scrollEl, pos, duration, timingFunction);\n } else {\n scrollEl.scrollTo({ left: pos });\n }\n }\n};\n\nconst round = (n: number) => Math.round(n * 100) / 100;\n\n/**\n * Получить позицию (слот) айтема в каруселе.\n * Каждый айтем имеет свой слот относительно вьюпорта карусели.\n */\nexport const getItemSlot = (\n itemIndex: number,\n itemEnd: number,\n itemSize: number,\n scrollStart: number,\n scrollSize: number,\n scrollAlign: ScrollAlign,\n prevIndex = 0,\n offset = 0,\n) => {\n /**\n * Граница и центр скролла (видимой части).\n * Смещение + размер.\n */\n const scrollEnd = scrollStart + scrollSize;\n const scrollCenter = scrollStart + scrollSize / 2;\n const itemCenter = itemEnd - itemSize / 2;\n\n if (scrollAlign === 'center') {\n return round((itemCenter - scrollCenter) / itemSize);\n }\n if (scrollAlign === 'start') {\n return round((itemEnd - itemSize - scrollStart) / itemSize);\n }\n if (scrollAlign === 'end') {\n return round((itemEnd - (scrollSize + scrollStart)) / itemSize);\n }\n if (scrollAlign === 'activeDirection') {\n const prevStart = offset + itemSize * prevIndex;\n const prevEnd = prevStart + itemSize;\n const prevVisible = prevEnd > scrollStart && prevStart < scrollEnd;\n\n if (!prevVisible) {\n if (prevIndex < itemIndex) {\n return round((itemEnd - (scrollSize + scrollStart)) / itemSize);\n }\n return round((itemEnd - itemSize - scrollStart) / itemSize);\n }\n }\n return null;\n};\n\nexport function getCarouselItems(track: HTMLElement): HTMLCollectionOf<HTMLElement> {\n return track.children as HTMLCollectionOf<HTMLElement>;\n}\n\nexport function useDebouncedFunction(func: (...args: any) => any, delay: number, cleanUp?: boolean) {\n const timeoutRef = useRef<number>();\n\n /**\n * Очистка таймера\n */\n function clearTimer() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }\n\n /**\n * Очищаем таймер при анмаунте компонента, если cleanUp выставлен в true\n * и тем самым отменяем последний запланированный вызов\n */\n useEffect(() => (cleanUp ? clearTimer : undefined), [cleanUp]);\n\n return (...args: any[]) => {\n clearTimer();\n timeoutRef.current = setTimeout(() => func(...args), delay);\n };\n}\n\ntype UseCarouselOptions = Pick<CarouselProps, 'scrollAlign'> & {\n index: number;\n throttleMs?: number;\n debounceMs?: number;\n detectActive?: boolean;\n detectThreshold?: number;\n onIndexChange?: (e: any) => void;\n};\n\ntype UseCarouselHookResult = {\n scrollRef: React.RefObject<HTMLDivElement>;\n trackRef: React.RefObject<HTMLDivElement>;\n};\n\nconst THROTTLE_DEFAULT_MS = 100;\nconst DEBOUNCE_DEFAULT_MS = 150;\n\nexport const useCarousel = ({\n index,\n onIndexChange,\n detectActive = false,\n detectThreshold = 0.5,\n scrollAlign = 'center',\n throttleMs = THROTTLE_DEFAULT_MS,\n debounceMs = DEBOUNCE_DEFAULT_MS,\n}: UseCarouselOptions): UseCarouselHookResult => {\n const prevIndex = useRef<number | null>(null);\n const offset = useRef(0);\n const scrollRef = useRef<HTMLDivElement>(null);\n const trackRef = useRef<HTMLDivElement>(null);\n const axis = 'x';\n\n /**\n * Для того, чтобы не спамить изменениями индекса.\n * Задержка дебаунса слегка больше, чем у тротлинга.\n * Таким образом, событие срабатывает при завершении скролла.\n */\n const debouncedOnIndexChange = useDebouncedFunction((i: number) => onIndexChange?.(i), debounceMs);\n\n /**\n * Вычисление центрального элемента.\n * Подсчет: от 0 до 1, какое количество ширины/высоты\n * каждого элемента находится по центру скролла.\n */\n const throttledDetectActiveItem = useMemo(() => {\n return throttle(() => {\n if (!detectActive || scrollRef.current === null || trackRef.current === null) {\n return;\n }\n\n /**\n * Правая (или нижняя для Оу) граница элемента.\n */\n let itemEdge = offset.current;\n\n /**\n * Смещение (отрицательный или положительный отступ)\n * и размер карусели (для Ox - ширина, для Oy - высота).\n */\n const scrollPos = scrollRef.current[axis === 'x' ? 'scrollLeft' : 'scrollTop'];\n const scrollSize = scrollRef.current[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];\n\n /**\n * Граница скролла (видимой части).\n * Смещение + размер.\n */\n const scrollEdge = scrollPos + scrollSize;\n\n const items = getCarouselItems(trackRef.current);\n\n /**\n * Проходим по всему списку, суммируя ширины элементов,\n * пока не найдем один элемент, чей центр будет в центре карусели.\n */\n for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n const item = items.item(itemIndex);\n\n if (item === null) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n /**\n * Для Ox - ширина, для Oy - высота.\n */\n const itemSize = item[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];\n\n /**\n * Все элементы правее вьюпорта выпадают из процедуры.\n * Сравниваем по предыдущему элементу.\n * [ ... ] ...|n| <- Левый край элемента за пределами начала видимой части\n */\n if (itemEdge > scrollEdge) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n itemEdge += itemSize;\n\n /**\n * Все элементы левее вьюпорта выпадают из процедуры.\n * Сравниваем по текущему элементу.\n * Правый край элемента за пределами начала видимой части -> |p|... [ ... ]\n */\n if (scrollPos > itemEdge) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n const itemSlot = getItemSlot(\n itemIndex,\n itemEdge,\n itemSize,\n scrollPos,\n scrollSize,\n scrollAlign,\n prevIndex.current ?? 0,\n offset.current,\n );\n\n if (itemSlot !== null) {\n if (detectThreshold && Math.abs(itemSlot) <= detectThreshold) {\n debouncedOnIndexChange?.(itemIndex);\n }\n }\n }\n }, throttleMs);\n }, [debouncedOnIndexChange, detectActive, detectThreshold, scrollAlign, throttleMs]);\n\n /**\n * Прокрутка до нужной позиции индекса.\n */\n const toIndex = useCallback(\n (i: number) => {\n const scrollEl = scrollRef.current;\n const items = trackRef.current ? getCarouselItems(trackRef.current) : null;\n\n if (scrollEl && items && items.length > 0 && i >= 0) {\n scrollToPos({\n scrollEl,\n pos: getCalculatedPos({\n scrollEl,\n items,\n index: i,\n offset: offset.current,\n scrollAlign,\n }),\n });\n prevIndex.current = i;\n }\n },\n [scrollAlign],\n );\n\n useEffect(() => {\n if (scrollRef.current && trackRef.current) {\n offset.current = getCalculatedOffset(scrollRef.current, trackRef.current);\n }\n }, []);\n\n /**\n * Операции на маунте/анмаунте компонента.\n * Создать слушатели событи и т.п.\n */\n useEffect(() => {\n const carouselElement = scrollRef.current;\n\n if (carouselElement) {\n carouselElement.addEventListener('scroll', throttledDetectActiveItem);\n }\n\n return () => {\n if (carouselElement) {\n carouselElement.removeEventListener('scroll', throttledDetectActiveItem);\n }\n };\n }, [throttledDetectActiveItem]);\n\n /**\n * Прокрутка до нужной позиции индекса, если индекс изменился.\n */\n useEffect(() => {\n if (index !== prevIndex.current) {\n toIndex(index);\n }\n }, [index, toIndex]);\n\n return {\n scrollRef,\n trackRef,\n };\n};\n"],"names":["getCalculatedOffset","scrollEl","trackEl","paddingProp","parseInt","getComputedStyle","positionModByScrollAlign","_ref","scrollAlign","position","carouselSize","itemSize","offset","scrollStart","paddingOffset","getCalculatedPos","_ref2","_items$item$offsetWid2","_items$item2","items","index","item","i","_items$item$offsetWid","_items$item","offsetWidth","scrollLeft","DEFAULT_DURATION","tfs","linear","t","easeIn","Math","pow","easeOut","easeInOut","sin","PI","animatedScrollToX","elem","pos","duration","arguments","length","undefined","timingFunction","startTime","startX","endX","max","min","scrollWidth","clientWidth","handleNewAnimationFrame","Date","now","timePos","scrollPos","left","scrollTo","window","requestAnimationFrame","scrollToPos","_ref3","animated","abs","round","n","getItemSlot","itemIndex","itemEnd","scrollSize","prevIndex","scrollEnd","scrollCenter","itemCenter","prevStart","prevEnd","prevVisible","getCarouselItems","track","children","useDebouncedFunction","func","delay","cleanUp","timeoutRef","useRef","clearTimer","current","clearTimeout","useEffect","_len","args","Array","_key","setTimeout","apply","THROTTLE_DEFAULT_MS","DEBOUNCE_DEFAULT_MS","useCarousel","_ref4","onIndexChange","_ref4$detectActive","detectActive","_ref4$detectThreshold","detectThreshold","_ref4$scrollAlign","_ref4$throttleMs","throttleMs","_ref4$debounceMs","debounceMs","scrollRef","trackRef","debouncedOnIndexChange","throttledDetectActiveItem","useMemo","throttle","itemEdge","scrollEdge","_prevIndex$current","itemSlot","toIndex","useCallback","carouselElement","addEventListener","removeEventListener"],"mappings":"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"}