@salutejs/plasma-new-hope 0.326.0-canary.2011.15500078725.0 → 0.326.0-canary.2013.15518408913.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 (271) hide show
  1. package/cjs/components/Carousel/CarouselNew/Carousel.css +12 -0
  2. package/cjs/components/Carousel/CarouselNew/Carousel.js +98 -0
  3. package/cjs/components/Carousel/CarouselNew/Carousel.js.map +1 -0
  4. package/cjs/components/Carousel/CarouselNew/Carousel.styles.js +11 -0
  5. package/cjs/components/Carousel/CarouselNew/Carousel.styles.js.map +1 -0
  6. package/cjs/components/Carousel/CarouselNew/Carousel.styles_1gx7oht.css +4 -0
  7. package/cjs/components/Carousel/CarouselNew/Carousel.tokens.js +23 -0
  8. package/cjs/components/Carousel/CarouselNew/Carousel.tokens.js.map +1 -0
  9. package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +428 -0
  10. package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -0
  11. package/cjs/components/Carousel/CarouselNew/hooks/useDragScroll.js +62 -0
  12. package/cjs/components/Carousel/CarouselNew/hooks/useDragScroll.js.map +1 -0
  13. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.css +5 -0
  14. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js +227 -0
  15. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js.map +1 -0
  16. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js +39 -0
  17. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js.map +1 -0
  18. package/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.styles_1i4srxq.css +5 -0
  19. package/cjs/components/Carousel/CarouselNew/ui/Dots/utils/index.js +50 -0
  20. package/cjs/components/Carousel/CarouselNew/ui/Dots/utils/index.js.map +1 -0
  21. package/cjs/components/Carousel/CarouselNew/variations/_size/base.js +9 -0
  22. package/cjs/components/Carousel/CarouselNew/variations/_size/base.js.map +1 -0
  23. package/cjs/components/Carousel/CarouselNew/variations/_size/base_x642ct.css +1 -0
  24. package/cjs/components/Carousel/CarouselNew/variations/_view/base.js +9 -0
  25. package/cjs/components/Carousel/CarouselNew/variations/_view/base.js.map +1 -0
  26. package/cjs/components/Carousel/CarouselNew/variations/_view/base_x642ct.css +1 -0
  27. package/cjs/components/Carousel/CarouselOld/Carousel.css +4 -0
  28. package/cjs/components/Carousel/{Carousel.js → CarouselOld/Carousel.js} +1 -1
  29. package/cjs/components/Carousel/CarouselOld/Carousel.js.map +1 -0
  30. package/cjs/components/Carousel/{Carousel.styles.js → CarouselOld/Carousel.styles.js} +9 -9
  31. package/cjs/components/Carousel/CarouselOld/Carousel.styles.js.map +1 -0
  32. package/cjs/components/Carousel/CarouselOld/Carousel.styles_12r304j.css +4 -0
  33. package/cjs/components/Carousel/{CarouselItem.js → CarouselOld/CarouselItem.js} +5 -5
  34. package/cjs/components/Carousel/CarouselOld/CarouselItem.js.map +1 -0
  35. package/cjs/components/Carousel/CarouselOld/CarouselItem_uvoxfy.css +1 -0
  36. package/cjs/components/Carousel/CarouselOld/useCarousel.js.map +1 -0
  37. package/cjs/components/Carousel/{useDragScroll.js → CarouselOld/useDragScroll.js} +1 -1
  38. package/cjs/components/Carousel/CarouselOld/useDragScroll.js.map +1 -0
  39. package/cjs/hooks/useDidMountLayoutEffect.js +19 -0
  40. package/cjs/hooks/useDidMountLayoutEffect.js.map +1 -0
  41. package/cjs/index.css +17 -4
  42. package/cjs/index.js +10 -3
  43. package/cjs/index.js.map +1 -1
  44. package/emotion/cjs/components/Carousel/CarouselNew/Carousel.js +99 -0
  45. package/emotion/cjs/components/Carousel/CarouselNew/Carousel.styles.js +51 -0
  46. package/emotion/cjs/components/Carousel/CarouselNew/Carousel.tokens.js +21 -0
  47. package/emotion/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +419 -0
  48. package/emotion/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js +229 -0
  49. package/emotion/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js +38 -0
  50. package/emotion/cjs/components/Carousel/CarouselNew/ui/Dots/utils/index.js +47 -0
  51. package/emotion/cjs/components/Carousel/CarouselNew/ui/Item/Item.js +38 -0
  52. package/emotion/cjs/components/Carousel/CarouselNew/ui/index.js +27 -0
  53. package/emotion/cjs/components/Carousel/CarouselNew/variations/_size/base.js +8 -0
  54. package/emotion/cjs/components/Carousel/CarouselNew/variations/_size/tokens.json +1 -0
  55. package/emotion/cjs/components/Carousel/CarouselNew/variations/_view/base.js +8 -0
  56. package/emotion/cjs/components/Carousel/CarouselNew/variations/_view/tokens.json +1 -0
  57. package/emotion/cjs/components/Carousel/CarouselOld/Carousel.styles.js +49 -0
  58. package/emotion/cjs/components/Carousel/{CarouselItem.js → CarouselOld/CarouselItem.js} +2 -2
  59. package/emotion/cjs/components/Carousel/CarouselOld/index.js +32 -0
  60. package/emotion/cjs/components/Carousel/index.js +23 -3
  61. package/emotion/cjs/examples/plasma_b2c/components/Carousel/Carousel.config.js +14 -2
  62. package/emotion/cjs/examples/plasma_b2c/components/Carousel/Carousel.js +1 -1
  63. package/emotion/cjs/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +92 -28
  64. package/emotion/cjs/hooks/index.js +7 -0
  65. package/emotion/cjs/hooks/useDidMountLayoutEffect.js +17 -0
  66. package/emotion/es/components/Carousel/CarouselNew/Carousel.js +94 -0
  67. package/emotion/es/components/Carousel/CarouselNew/Carousel.styles.js +44 -0
  68. package/emotion/es/components/Carousel/CarouselNew/Carousel.tokens.js +15 -0
  69. package/emotion/es/components/Carousel/CarouselNew/hooks/useCarousel.js +409 -0
  70. package/emotion/es/components/Carousel/CarouselNew/ui/Dots/Dots.js +219 -0
  71. package/emotion/es/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js +31 -0
  72. package/emotion/es/components/Carousel/CarouselNew/ui/Dots/utils/index.js +41 -0
  73. package/emotion/es/components/Carousel/CarouselNew/ui/Item/Item.js +31 -0
  74. package/emotion/es/components/Carousel/CarouselNew/ui/index.js +2 -0
  75. package/emotion/es/components/Carousel/CarouselNew/variations/_size/base.js +2 -0
  76. package/emotion/es/components/Carousel/CarouselNew/variations/_size/tokens.json +1 -0
  77. package/emotion/es/components/Carousel/CarouselNew/variations/_view/base.js +2 -0
  78. package/emotion/es/components/Carousel/CarouselNew/variations/_view/tokens.json +1 -0
  79. package/emotion/es/components/Carousel/CarouselOld/Carousel.styles.js +42 -0
  80. package/emotion/es/components/Carousel/{CarouselItem.js → CarouselOld/CarouselItem.js} +2 -2
  81. package/emotion/es/components/Carousel/CarouselOld/index.js +3 -0
  82. package/emotion/es/components/Carousel/index.js +7 -3
  83. package/emotion/es/examples/plasma_b2c/components/Carousel/Carousel.config.js +14 -2
  84. package/emotion/es/examples/plasma_b2c/components/Carousel/Carousel.js +2 -2
  85. package/emotion/es/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +92 -28
  86. package/emotion/es/hooks/index.js +1 -0
  87. package/emotion/es/hooks/useDidMountLayoutEffect.js +11 -0
  88. package/es/components/Carousel/CarouselNew/Carousel.css +12 -0
  89. package/es/components/Carousel/CarouselNew/Carousel.js +89 -0
  90. package/es/components/Carousel/CarouselNew/Carousel.js.map +1 -0
  91. package/es/components/Carousel/CarouselNew/Carousel.styles.js +7 -0
  92. package/es/components/Carousel/CarouselNew/Carousel.styles.js.map +1 -0
  93. package/es/components/Carousel/CarouselNew/Carousel.styles_1gx7oht.css +4 -0
  94. package/es/components/Carousel/CarouselNew/Carousel.tokens.js +18 -0
  95. package/es/components/Carousel/CarouselNew/Carousel.tokens.js.map +1 -0
  96. package/es/components/Carousel/CarouselNew/hooks/useCarousel.js +413 -0
  97. package/es/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -0
  98. package/es/components/Carousel/CarouselNew/hooks/useDragScroll.js +58 -0
  99. package/es/components/Carousel/CarouselNew/hooks/useDragScroll.js.map +1 -0
  100. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.css +5 -0
  101. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.js +218 -0
  102. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.js.map +1 -0
  103. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js +31 -0
  104. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js.map +1 -0
  105. package/es/components/Carousel/CarouselNew/ui/Dots/Dots.styles_1i4srxq.css +5 -0
  106. package/es/components/Carousel/CarouselNew/ui/Dots/utils/index.js +44 -0
  107. package/es/components/Carousel/CarouselNew/ui/Dots/utils/index.js.map +1 -0
  108. package/es/components/Carousel/CarouselNew/variations/_size/base.js +5 -0
  109. package/es/components/Carousel/CarouselNew/variations/_size/base.js.map +1 -0
  110. package/es/components/Carousel/CarouselNew/variations/_size/base_x642ct.css +1 -0
  111. package/es/components/Carousel/CarouselNew/variations/_view/base.js +5 -0
  112. package/es/components/Carousel/CarouselNew/variations/_view/base.js.map +1 -0
  113. package/es/components/Carousel/CarouselNew/variations/_view/base_x642ct.css +1 -0
  114. package/es/components/Carousel/CarouselOld/Carousel.css +4 -0
  115. package/es/components/Carousel/{Carousel.js → CarouselOld/Carousel.js} +1 -1
  116. package/es/components/Carousel/CarouselOld/Carousel.js.map +1 -0
  117. package/es/components/Carousel/{Carousel.styles.js → CarouselOld/Carousel.styles.js} +9 -9
  118. package/es/components/Carousel/CarouselOld/Carousel.styles.js.map +1 -0
  119. package/es/components/Carousel/CarouselOld/Carousel.styles_12r304j.css +4 -0
  120. package/es/components/Carousel/{CarouselItem.js → CarouselOld/CarouselItem.js} +5 -5
  121. package/es/components/Carousel/CarouselOld/CarouselItem.js.map +1 -0
  122. package/es/components/Carousel/CarouselOld/CarouselItem_uvoxfy.css +1 -0
  123. package/es/components/Carousel/CarouselOld/useCarousel.js.map +1 -0
  124. package/es/components/Carousel/{useDragScroll.js → CarouselOld/useDragScroll.js} +1 -1
  125. package/es/components/Carousel/CarouselOld/useDragScroll.js.map +1 -0
  126. package/es/hooks/useDidMountLayoutEffect.js +15 -0
  127. package/es/hooks/useDidMountLayoutEffect.js.map +1 -0
  128. package/es/index.css +17 -4
  129. package/es/index.js +6 -3
  130. package/es/index.js.map +1 -1
  131. package/package.json +5 -5
  132. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.js +99 -0
  133. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.styles.js +32 -0
  134. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.tokens.js +21 -0
  135. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.types.js +5 -0
  136. package/styled-components/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +419 -0
  137. package/styled-components/cjs/components/Carousel/CarouselNew/hooks/useDragScroll.js +65 -0
  138. package/styled-components/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.js +229 -0
  139. package/styled-components/cjs/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js +24 -0
  140. package/styled-components/cjs/components/Carousel/CarouselNew/ui/Dots/utils/index.js +47 -0
  141. package/styled-components/cjs/components/Carousel/CarouselNew/ui/Item/Item.js +37 -0
  142. package/styled-components/cjs/components/Carousel/CarouselNew/ui/index.js +27 -0
  143. package/styled-components/cjs/components/Carousel/CarouselNew/variations/_size/base.js +8 -0
  144. package/styled-components/cjs/components/Carousel/CarouselNew/variations/_size/tokens.json +1 -0
  145. package/styled-components/cjs/components/Carousel/CarouselNew/variations/_view/base.js +8 -0
  146. package/styled-components/cjs/components/Carousel/CarouselNew/variations/_view/tokens.json +1 -0
  147. package/styled-components/cjs/components/Carousel/{Carousel.styles.js → CarouselOld/Carousel.styles.js} +3 -3
  148. package/styled-components/cjs/components/Carousel/CarouselOld/Carousel.types.js +5 -0
  149. package/styled-components/cjs/components/Carousel/{CarouselItem.js → CarouselOld/CarouselItem.js} +1 -1
  150. package/styled-components/cjs/components/Carousel/CarouselOld/index.js +32 -0
  151. package/styled-components/cjs/components/Carousel/CarouselOld/useDragScroll.js +65 -0
  152. package/styled-components/cjs/components/Carousel/index.js +23 -3
  153. package/styled-components/cjs/examples/plasma_b2c/components/Carousel/Carousel.config.js +14 -2
  154. package/styled-components/cjs/examples/plasma_b2c/components/Carousel/Carousel.js +1 -1
  155. package/styled-components/cjs/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +92 -28
  156. package/styled-components/cjs/hooks/index.js +7 -0
  157. package/styled-components/cjs/hooks/useDidMountLayoutEffect.js +17 -0
  158. package/styled-components/es/components/Carousel/CarouselNew/Carousel.js +94 -0
  159. package/styled-components/es/components/Carousel/CarouselNew/Carousel.styles.js +24 -0
  160. package/styled-components/es/components/Carousel/CarouselNew/Carousel.tokens.js +15 -0
  161. package/styled-components/es/components/Carousel/CarouselNew/Carousel.types.js +1 -0
  162. package/styled-components/es/components/Carousel/CarouselNew/hooks/useCarousel.js +409 -0
  163. package/styled-components/es/components/Carousel/CarouselNew/hooks/useDragScroll.js +59 -0
  164. package/styled-components/es/components/Carousel/CarouselNew/ui/Dots/Dots.js +219 -0
  165. package/styled-components/es/components/Carousel/CarouselNew/ui/Dots/Dots.styles.js +17 -0
  166. package/styled-components/es/components/Carousel/CarouselNew/ui/Dots/utils/index.js +41 -0
  167. package/styled-components/es/components/Carousel/CarouselNew/ui/Item/Item.js +30 -0
  168. package/styled-components/es/components/Carousel/CarouselNew/ui/index.js +2 -0
  169. package/styled-components/es/components/Carousel/CarouselNew/variations/_size/base.js +2 -0
  170. package/styled-components/es/components/Carousel/CarouselNew/variations/_size/tokens.json +1 -0
  171. package/styled-components/es/components/Carousel/CarouselNew/variations/_view/base.js +2 -0
  172. package/styled-components/es/components/Carousel/CarouselNew/variations/_view/tokens.json +1 -0
  173. package/styled-components/es/components/Carousel/{Carousel.styles.js → CarouselOld/Carousel.styles.js} +3 -3
  174. package/styled-components/es/components/Carousel/CarouselOld/Carousel.types.js +1 -0
  175. package/styled-components/es/components/Carousel/{CarouselItem.js → CarouselOld/CarouselItem.js} +1 -1
  176. package/styled-components/es/components/Carousel/CarouselOld/index.js +3 -0
  177. package/styled-components/es/components/Carousel/CarouselOld/useDragScroll.js +59 -0
  178. package/styled-components/es/components/Carousel/index.js +7 -3
  179. package/styled-components/es/examples/plasma_b2c/components/Carousel/Carousel.config.js +14 -2
  180. package/styled-components/es/examples/plasma_b2c/components/Carousel/Carousel.js +2 -2
  181. package/styled-components/es/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +92 -28
  182. package/styled-components/es/hooks/index.js +1 -0
  183. package/styled-components/es/hooks/useDidMountLayoutEffect.js +11 -0
  184. package/types/components/Carousel/CarouselNew/Carousel.d.ts +32 -0
  185. package/types/components/Carousel/CarouselNew/Carousel.d.ts.map +1 -0
  186. package/types/components/Carousel/CarouselNew/Carousel.styles.d.ts +15 -0
  187. package/types/components/Carousel/CarouselNew/Carousel.styles.d.ts.map +1 -0
  188. package/types/components/Carousel/CarouselNew/Carousel.tokens.d.ts +16 -0
  189. package/types/components/Carousel/CarouselNew/Carousel.tokens.d.ts.map +1 -0
  190. package/types/components/Carousel/CarouselNew/Carousel.types.d.ts +167 -0
  191. package/types/components/Carousel/CarouselNew/Carousel.types.d.ts.map +1 -0
  192. package/types/components/Carousel/CarouselNew/hooks/useCarousel.d.ts +61 -0
  193. package/types/components/Carousel/CarouselNew/hooks/useCarousel.d.ts.map +1 -0
  194. package/types/components/Carousel/CarouselNew/hooks/useDragScroll.d.ts.map +1 -0
  195. package/types/components/Carousel/CarouselNew/ui/Dots/Dots.d.ts +4 -0
  196. package/types/components/Carousel/CarouselNew/ui/Dots/Dots.d.ts.map +1 -0
  197. package/types/components/Carousel/CarouselNew/ui/Dots/Dots.styles.d.ts +6 -0
  198. package/types/components/Carousel/CarouselNew/ui/Dots/Dots.styles.d.ts.map +1 -0
  199. package/types/components/Carousel/CarouselNew/ui/Dots/utils/index.d.ts +4 -0
  200. package/types/components/Carousel/CarouselNew/ui/Dots/utils/index.d.ts.map +1 -0
  201. package/types/components/Carousel/CarouselNew/ui/Item/Item.d.ts +4 -0
  202. package/types/components/Carousel/CarouselNew/ui/Item/Item.d.ts.map +1 -0
  203. package/types/components/Carousel/CarouselNew/ui/index.d.ts +3 -0
  204. package/types/components/Carousel/CarouselNew/ui/index.d.ts.map +1 -0
  205. package/types/components/Carousel/CarouselNew/variations/_size/base.d.ts +2 -0
  206. package/types/components/Carousel/CarouselNew/variations/_size/base.d.ts.map +1 -0
  207. package/types/components/Carousel/CarouselNew/variations/_view/base.d.ts +2 -0
  208. package/types/components/Carousel/CarouselNew/variations/_view/base.d.ts.map +1 -0
  209. package/types/components/Carousel/{Carousel.d.ts → CarouselOld/Carousel.d.ts} +1 -1
  210. package/types/components/Carousel/CarouselOld/Carousel.d.ts.map +1 -0
  211. package/types/components/Carousel/CarouselOld/Carousel.styles.d.ts.map +1 -0
  212. package/types/components/Carousel/{Carousel.types.d.ts → CarouselOld/Carousel.types.d.ts} +1 -1
  213. package/types/components/Carousel/CarouselOld/Carousel.types.d.ts.map +1 -0
  214. package/types/components/Carousel/CarouselOld/CarouselItem.d.ts.map +1 -0
  215. package/types/components/Carousel/CarouselOld/index.d.ts +5 -0
  216. package/types/components/Carousel/CarouselOld/index.d.ts.map +1 -0
  217. package/types/components/Carousel/CarouselOld/useCarousel.d.ts.map +1 -0
  218. package/types/components/Carousel/CarouselOld/useDragScroll.d.ts +2 -0
  219. package/types/components/Carousel/CarouselOld/useDragScroll.d.ts.map +1 -0
  220. package/types/components/Carousel/index.d.ts +7 -4
  221. package/types/components/Carousel/index.d.ts.map +1 -1
  222. package/types/hooks/index.d.ts +1 -0
  223. package/types/hooks/index.d.ts.map +1 -1
  224. package/types/hooks/useDidMountLayoutEffect.d.ts +2 -0
  225. package/types/hooks/useDidMountLayoutEffect.d.ts.map +1 -0
  226. package/cjs/components/Carousel/Carousel.css +0 -4
  227. package/cjs/components/Carousel/Carousel.js.map +0 -1
  228. package/cjs/components/Carousel/Carousel.styles.js.map +0 -1
  229. package/cjs/components/Carousel/Carousel.styles_zmchjj.css +0 -4
  230. package/cjs/components/Carousel/CarouselItem.js.map +0 -1
  231. package/cjs/components/Carousel/CarouselItem_cqjszm.css +0 -1
  232. package/cjs/components/Carousel/useCarousel.js.map +0 -1
  233. package/cjs/components/Carousel/useDragScroll.js.map +0 -1
  234. package/emotion/cjs/components/Carousel/Carousel.styles.js +0 -49
  235. package/emotion/es/components/Carousel/Carousel.styles.js +0 -42
  236. package/es/components/Carousel/Carousel.css +0 -4
  237. package/es/components/Carousel/Carousel.js.map +0 -1
  238. package/es/components/Carousel/Carousel.styles.js.map +0 -1
  239. package/es/components/Carousel/Carousel.styles_zmchjj.css +0 -4
  240. package/es/components/Carousel/CarouselItem.js.map +0 -1
  241. package/es/components/Carousel/CarouselItem_cqjszm.css +0 -1
  242. package/es/components/Carousel/useCarousel.js.map +0 -1
  243. package/es/components/Carousel/useDragScroll.js.map +0 -1
  244. package/types/components/Carousel/Carousel.d.ts.map +0 -1
  245. package/types/components/Carousel/Carousel.styles.d.ts.map +0 -1
  246. package/types/components/Carousel/Carousel.types.d.ts.map +0 -1
  247. package/types/components/Carousel/CarouselItem.d.ts.map +0 -1
  248. package/types/components/Carousel/useCarousel.d.ts.map +0 -1
  249. package/types/components/Carousel/useDragScroll.d.ts.map +0 -1
  250. /package/cjs/components/Carousel/{useCarousel.js → CarouselOld/useCarousel.js} +0 -0
  251. /package/emotion/cjs/components/Carousel/{Carousel.types.js → CarouselNew/Carousel.types.js} +0 -0
  252. /package/emotion/cjs/components/Carousel/{useDragScroll.js → CarouselNew/hooks/useDragScroll.js} +0 -0
  253. /package/emotion/cjs/components/Carousel/{Carousel.js → CarouselOld/Carousel.js} +0 -0
  254. /package/{styled-components/cjs/components/Carousel → emotion/cjs/components/Carousel/CarouselOld}/Carousel.types.js +0 -0
  255. /package/emotion/cjs/components/Carousel/{useCarousel.js → CarouselOld/useCarousel.js} +0 -0
  256. /package/{styled-components/cjs/components/Carousel → emotion/cjs/components/Carousel/CarouselOld}/useDragScroll.js +0 -0
  257. /package/emotion/es/components/Carousel/{Carousel.types.js → CarouselNew/Carousel.types.js} +0 -0
  258. /package/emotion/es/components/Carousel/{useDragScroll.js → CarouselNew/hooks/useDragScroll.js} +0 -0
  259. /package/emotion/es/components/Carousel/{Carousel.js → CarouselOld/Carousel.js} +0 -0
  260. /package/{styled-components/es/components/Carousel → emotion/es/components/Carousel/CarouselOld}/Carousel.types.js +0 -0
  261. /package/emotion/es/components/Carousel/{useCarousel.js → CarouselOld/useCarousel.js} +0 -0
  262. /package/{styled-components/es/components/Carousel → emotion/es/components/Carousel/CarouselOld}/useDragScroll.js +0 -0
  263. /package/es/components/Carousel/{useCarousel.js → CarouselOld/useCarousel.js} +0 -0
  264. /package/styled-components/cjs/components/Carousel/{Carousel.js → CarouselOld/Carousel.js} +0 -0
  265. /package/styled-components/cjs/components/Carousel/{useCarousel.js → CarouselOld/useCarousel.js} +0 -0
  266. /package/styled-components/es/components/Carousel/{Carousel.js → CarouselOld/Carousel.js} +0 -0
  267. /package/styled-components/es/components/Carousel/{useCarousel.js → CarouselOld/useCarousel.js} +0 -0
  268. /package/types/components/Carousel/{useDragScroll.d.ts → CarouselNew/hooks/useDragScroll.d.ts} +0 -0
  269. /package/types/components/Carousel/{Carousel.styles.d.ts → CarouselOld/Carousel.styles.d.ts} +0 -0
  270. /package/types/components/Carousel/{CarouselItem.d.ts → CarouselOld/CarouselItem.d.ts} +0 -0
  271. /package/types/components/Carousel/{useCarousel.d.ts → CarouselOld/useCarousel.d.ts} +0 -0
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "useDidMountEffect", {
9
9
  return _useDidMountEffect.useDidMountEffect;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "useDidMountLayoutEffect", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _useDidMountLayoutEffect.useDidMountLayoutEffect;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "useFocusTrap", {
13
19
  enumerable: true,
14
20
  get: function get() {
@@ -50,5 +56,6 @@ var _useFocusTrap = /*#__PURE__*/require("./useFocusTrap");
50
56
  var _usePreviousValue = /*#__PURE__*/require("./usePreviousValue");
51
57
  var _useForceUpdate = /*#__PURE__*/require("./useForceUpdate");
52
58
  var _useDidMountEffect = /*#__PURE__*/require("./useDidMountEffect");
59
+ var _useDidMountLayoutEffect = /*#__PURE__*/require("./useDidMountLayoutEffect");
53
60
  var _useOutsideClick = /*#__PURE__*/require("./useOutsideClick");
54
61
  var _useIsomorphicLayoutEffect = /*#__PURE__*/require("./useIsomorphicLayoutEffect");
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useDidMountLayoutEffect = void 0;
7
+ var _react = /*#__PURE__*/require("react");
8
+ var useDidMountLayoutEffect = exports.useDidMountLayoutEffect = function useDidMountLayoutEffect(fn, inputs) {
9
+ var didMountRef = (0, _react.useRef)(false);
10
+ (0, _react.useLayoutEffect)(function () {
11
+ if (didMountRef.current) {
12
+ fn();
13
+ } else {
14
+ didMountRef.current = true;
15
+ }
16
+ }, inputs);
17
+ };
@@ -0,0 +1,94 @@
1
+ var _br;
2
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ 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."); }
4
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
6
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
+ import React, { forwardRef, useState, useCallback, Children } from 'react';
9
+ // import { useForkRef } from '@salutejs/plasma-core';
10
+
11
+ import { base as sizeCSS } from "./variations/_size/base";
12
+ import { base as viewCSS } from "./variations/_view/base";
13
+ import { base } from "./Carousel.styles";
14
+ // import { base, CarouselWrapper, CarouselTrack } from './Carousel.styles';
15
+
16
+ import { useCarousel } from "./hooks/useCarousel";
17
+ import { useDragScroll } from "./hooks/useDragScroll";
18
+ import { Dots } from "./ui";
19
+
20
+ /**
21
+ * Компонент для создания списков с прокруткой.
22
+ */
23
+ export var carouselNewRoot = function carouselNewRoot(Root) {
24
+ return /*#__PURE__*/forwardRef(function (_ref,
25
+ // @ts-ignore
26
+ ref) {
27
+ var view = _ref.view,
28
+ size = _ref.size,
29
+ outerIndex = _ref.index,
30
+ scrollAlign = _ref.scrollAlign,
31
+ detectActive = _ref.detectActive,
32
+ detectThreshold = _ref.detectThreshold,
33
+ onIndexChange = _ref.onIndexChange,
34
+ children = _ref.children,
35
+ _ref$isDragScrollDisa = _ref.isDragScrollDisabled,
36
+ isDragScrollDisabled = _ref$isDragScrollDisa === void 0 ? false : _ref$isDragScrollDisa,
37
+ paginationOptions = _ref.paginationOptions;
38
+ var _useState = useState(0),
39
+ _useState2 = _slicedToArray(_useState, 2),
40
+ internalIndex = _useState2[0],
41
+ setInternalIndex = _useState2[1];
42
+ var index = outerIndex !== null && outerIndex !== void 0 ? outerIndex : internalIndex;
43
+ var handleChangeIndex = useCallback(function (index) {
44
+ if (onIndexChange) {
45
+ onIndexChange(index);
46
+ }
47
+ setInternalIndex(index);
48
+ }, [onIndexChange]);
49
+
50
+ // const { scrollRef, trackRef } = useCarousel({
51
+ var _useCarousel = useCarousel({
52
+ index: index,
53
+ scrollAlign: scrollAlign,
54
+ detectActive: detectActive,
55
+ detectThreshold: detectThreshold,
56
+ onIndexChange: onIndexChange
57
+ }),
58
+ scrollRef = _useCarousel.scrollRef;
59
+
60
+ // const handleRef = useForkRef(scrollRef, ref);
61
+
62
+ useDragScroll(scrollRef, isDragScrollDisabled);
63
+ var slidesAmount = Children.count(children);
64
+ return /*#__PURE__*/React.createElement(Root, {
65
+ size: size,
66
+ view: view,
67
+ index: index
68
+ }, _br || (_br = /*#__PURE__*/React.createElement("br", null)), !(paginationOptions !== null && paginationOptions !== void 0 && paginationOptions.disabled) && /*#__PURE__*/React.createElement(Dots, {
69
+ index: index,
70
+ onChange: handleChangeIndex,
71
+ visibleCount: (paginationOptions === null || paginationOptions === void 0 ? void 0 : paginationOptions.visibleDots) || slidesAmount,
72
+ count: slidesAmount,
73
+ centered: (paginationOptions === null || paginationOptions === void 0 ? void 0 : paginationOptions.centered) || false
74
+ }));
75
+ });
76
+ };
77
+ export var carouselNewConfig = {
78
+ name: 'Carousel',
79
+ tag: 'div',
80
+ layout: carouselNewRoot,
81
+ base: base,
82
+ variations: {
83
+ view: {
84
+ css: viewCSS
85
+ },
86
+ size: {
87
+ css: sizeCSS
88
+ }
89
+ },
90
+ defaults: {
91
+ view: 'default',
92
+ size: 's'
93
+ }
94
+ };
@@ -0,0 +1,44 @@
1
+ import _styled from "@emotion/styled/base";
2
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
3
+ import { css } from '@emotion/react';
4
+ export var base = process.env.NODE_ENV === "production" ? {
5
+ name: "lb5cd7-plasma-new-hope__base",
6
+ styles: "position:relative;padding:20px 0;border-top:2px solid #ff000038;&:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#ff000038;};label:plasma-new-hope__base;"
7
+ } : {
8
+ name: "lb5cd7-plasma-new-hope__base",
9
+ styles: "position:relative;padding:20px 0;border-top:2px solid #ff000038;&:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#ff000038;};label:plasma-new-hope__base;",
10
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ2Fyb3VzZWwvQ2Fyb3VzZWxOZXcvQ2Fyb3VzZWwuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUl1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0Nhcm91c2VsL0Nhcm91c2VsTmV3L0Nhcm91c2VsLnN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IENTU1Byb3BlcnRpZXMgfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNmZjAwMDAzODtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjAwMDAzODtcbiAgICB9XG5gO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQv9GA0LjQvNC10L3Rj9C10YLRgdGPLCDQtdGB0LvQuCDRgtGA0LXQsdGD0LXRgtGB0Y8g0LrQvtC80L/QtdC90YHQuNGA0L7QstCw0YLRjCDQvtGC0YHRgtGD0L/RiyDQutC+0L3RgtC10LnQvdC10YDQsCDQsiDRgdC10YLQutC1LlxuICog0J/RgNC4INC+0LHQtdGA0YLRi9Cy0LDQvdC40Lgg0LLQvtC60YDRg9CzIGBgQ2Fyb3VzZWxgYCwg0LTQvtCx0LDQstC70Y/QtdGCINC60LDRgNGD0YHQtdC70Lgg0Lgg0LXQtSDQv9GA0L7QutGA0YPRgtC60LUg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtSDQvtGC0YHRgtGD0L/Riy5cbiAqINCh0YLQuNC70LjQt9C+0LLQsNC90L3Ri9C5INC60L7QvNC/0L7QvdC10L3Rgiwg0L7QsdC70LDQtNCw0Y7RidC40Lkg0LLRgdC10LzQuCDRgdCy0L7QudGB0YLQstCw0LzQuCBgYGRpdmBgLlxuICovXG5leHBvcnQgY29uc3QgQ2Fyb3VzZWxHcmlkV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1wbGFzbWEtZ3JpZC1tYXJnaW4pICogLTEpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1wbGFzbWEtZ3JpZC1tYXJnaW4pICogLTEpO1xuYDtcblxuZXhwb3J0IGNvbnN0IENhcm91c2VsV3JhcHBlciA9IHN0eWxlZC5kaXY8eyBzY3JvbGxTbmFwVHlwZT86ICdtYW5kYXRvcnknIHwgJ3Byb3hpbWl0eScgfCAnbm9uZScgfT5gXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgc2Nyb2xsLXNuYXAtdHlwZTogJHsoeyBzY3JvbGxTbmFwVHlwZSB9KSA9PiBgeCAke3Njcm9sbFNuYXBUeXBlfWB9O1xuXG4gICAgJHtDYXJvdXNlbEdyaWRXcmFwcGVyfSAmIHtcbiAgICAgICAgc2Nyb2xsLXBhZGRpbmc6IDAgdmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wbGFzbWEtZ3JpZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBDYXJvdXNlbFRyYWNrID0gc3R5bGVkLmRpdjx7IGdhcD86IENTU1Byb3BlcnRpZXNbJ2dhcCddIH0+YFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiAkeyh7IGdhcCB9KSA9PiBnYXAgfHwgMH07XG5gO1xuIl19 */",
11
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
12
+ };
13
+
14
+ /**
15
+ * Компонент применяется, если требуется компенсировать отступы контейнера в сетке.
16
+ * При обертывании вокруг ``Carousel``, добавляет карусели и ее прокрутке дополнительные отступы.
17
+ * Стилизованный компонент, обладающий всеми свойствами ``div``.
18
+ */
19
+ export var CarouselGridWrapper = /*#__PURE__*/_styled("div", {
20
+ target: "e1tpidja2",
21
+ label: "plasma-new-hope__CarouselGridWrapper"
22
+ })(process.env.NODE_ENV === "production" ? {
23
+ name: "1y1n8k7",
24
+ styles: "overflow:hidden;margin-left:calc(var(--plasma-grid-margin) * -1);margin-right:calc(var(--plasma-grid-margin) * -1)"
25
+ } : {
26
+ name: "1y1n8k7",
27
+ styles: "overflow:hidden;margin-left:calc(var(--plasma-grid-margin) * -1);margin-right:calc(var(--plasma-grid-margin) * -1)",
28
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ2Fyb3VzZWwvQ2Fyb3VzZWxOZXcvQ2Fyb3VzZWwuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCNkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9DYXJvdXNlbC9DYXJvdXNlbE5ldy9DYXJvdXNlbC5zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzIH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZmYwMDAwMzg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmYwMDAwMzg7XG4gICAgfVxuYDtcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/RgNC40LzQtdC90Y/QtdGC0YHRjywg0LXRgdC70Lgg0YLRgNC10LHRg9C10YLRgdGPINC60L7QvNC/0LXQvdGB0LjRgNC+0LLQsNGC0Ywg0L7RgtGB0YLRg9C/0Ysg0LrQvtC90YLQtdC50L3QtdGA0LAg0LIg0YHQtdGC0LrQtS5cbiAqINCf0YDQuCDQvtCx0LXRgNGC0YvQstCw0L3QuNC4INCy0L7QutGA0YPQsyBgYENhcm91c2VsYGAsINC00L7QsdCw0LLQu9GP0LXRgiDQutCw0YDRg9GB0LXQu9C4INC4INC10LUg0L/RgNC+0LrRgNGD0YLQutC1INC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L7RgtGB0YLRg9C/0YsuXG4gKiDQodGC0LjQu9C40LfQvtCy0LDQvdC90YvQuSDQutC+0LzQv9C+0L3QtdC90YIsINC+0LHQu9Cw0LTQsNGO0YnQuNC5INCy0YHQtdC80Lgg0YHQstC+0LnRgdGC0LLQsNC80LggYGBkaXZgYC5cbiAqL1xuZXhwb3J0IGNvbnN0IENhcm91c2VsR3JpZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKSAqIC0xKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKSAqIC0xKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBDYXJvdXNlbFdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgc2Nyb2xsU25hcFR5cGU/OiAnbWFuZGF0b3J5JyB8ICdwcm94aW1pdHknIHwgJ25vbmUnIH0+YFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIHNjcm9sbC1zbmFwLXR5cGU6ICR7KHsgc2Nyb2xsU25hcFR5cGUgfSkgPT4gYHggJHtzY3JvbGxTbmFwVHlwZX1gfTtcblxuICAgICR7Q2Fyb3VzZWxHcmlkV3JhcHBlcn0gJiB7XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nOiAwIHZhcigtLXBsYXNtYS1ncmlkLW1hcmdpbik7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG5gO1xuXG5leHBvcnQgY29uc3QgQ2Fyb3VzZWxUcmFjayA9IHN0eWxlZC5kaXY8eyBnYXA/OiBDU1NQcm9wZXJ0aWVzWydnYXAnXSB9PmBcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwIHx8IDB9O1xuYDtcbiJdfQ== */",
29
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
30
+ });
31
+ export var CarouselWrapper = /*#__PURE__*/_styled("div", {
32
+ target: "e1tpidja1",
33
+ label: "plasma-new-hope__CarouselWrapper"
34
+ })("position:relative;margin:0;padding:0;list-style:none;-ms-overflow-style:none;scrollbar-width:none;::-webkit-scrollbar{display:none;}overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:", function (_ref) {
35
+ var scrollSnapType = _ref.scrollSnapType;
36
+ return "x ".concat(scrollSnapType);
37
+ }, ";", CarouselGridWrapper, " &{scroll-padding:0 var(--plasma-grid-margin);padding-left:var(--plasma-grid-margin);}user-select:none;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ2Fyb3VzZWwvQ2Fyb3VzZWxOZXcvQ2Fyb3VzZWwuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDa0ciLCJmaWxlIjoiLi4vLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9DYXJvdXNlbC9DYXJvdXNlbE5ldy9DYXJvdXNlbC5zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzIH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZmYwMDAwMzg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmYwMDAwMzg7XG4gICAgfVxuYDtcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/RgNC40LzQtdC90Y/QtdGC0YHRjywg0LXRgdC70Lgg0YLRgNC10LHRg9C10YLRgdGPINC60L7QvNC/0LXQvdGB0LjRgNC+0LLQsNGC0Ywg0L7RgtGB0YLRg9C/0Ysg0LrQvtC90YLQtdC50L3QtdGA0LAg0LIg0YHQtdGC0LrQtS5cbiAqINCf0YDQuCDQvtCx0LXRgNGC0YvQstCw0L3QuNC4INCy0L7QutGA0YPQsyBgYENhcm91c2VsYGAsINC00L7QsdCw0LLQu9GP0LXRgiDQutCw0YDRg9GB0LXQu9C4INC4INC10LUg0L/RgNC+0LrRgNGD0YLQutC1INC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L7RgtGB0YLRg9C/0YsuXG4gKiDQodGC0LjQu9C40LfQvtCy0LDQvdC90YvQuSDQutC+0LzQv9C+0L3QtdC90YIsINC+0LHQu9Cw0LTQsNGO0YnQuNC5INCy0YHQtdC80Lgg0YHQstC+0LnRgdGC0LLQsNC80LggYGBkaXZgYC5cbiAqL1xuZXhwb3J0IGNvbnN0IENhcm91c2VsR3JpZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKSAqIC0xKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKSAqIC0xKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBDYXJvdXNlbFdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgc2Nyb2xsU25hcFR5cGU/OiAnbWFuZGF0b3J5JyB8ICdwcm94aW1pdHknIHwgJ25vbmUnIH0+YFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIHNjcm9sbC1zbmFwLXR5cGU6ICR7KHsgc2Nyb2xsU25hcFR5cGUgfSkgPT4gYHggJHtzY3JvbGxTbmFwVHlwZX1gfTtcblxuICAgICR7Q2Fyb3VzZWxHcmlkV3JhcHBlcn0gJiB7XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nOiAwIHZhcigtLXBsYXNtYS1ncmlkLW1hcmdpbik7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG5gO1xuXG5leHBvcnQgY29uc3QgQ2Fyb3VzZWxUcmFjayA9IHN0eWxlZC5kaXY8eyBnYXA/OiBDU1NQcm9wZXJ0aWVzWydnYXAnXSB9PmBcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwIHx8IDB9O1xuYDtcbiJdfQ== */"));
38
+ export var CarouselTrack = /*#__PURE__*/_styled("div", {
39
+ target: "e1tpidja0",
40
+ label: "plasma-new-hope__CarouselTrack"
41
+ })("display:inline-flex;flex-direction:row;gap:", function (_ref2) {
42
+ var gap = _ref2.gap;
43
+ return gap || 0;
44
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ2Fyb3VzZWwvQ2Fyb3VzZWxOZXcvQ2Fyb3VzZWwuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJEdUUiLCJmaWxlIjoiLi4vLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9DYXJvdXNlbC9DYXJvdXNlbE5ldy9DYXJvdXNlbC5zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzIH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZmYwMDAwMzg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmYwMDAwMzg7XG4gICAgfVxuYDtcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/RgNC40LzQtdC90Y/QtdGC0YHRjywg0LXRgdC70Lgg0YLRgNC10LHRg9C10YLRgdGPINC60L7QvNC/0LXQvdGB0LjRgNC+0LLQsNGC0Ywg0L7RgtGB0YLRg9C/0Ysg0LrQvtC90YLQtdC50L3QtdGA0LAg0LIg0YHQtdGC0LrQtS5cbiAqINCf0YDQuCDQvtCx0LXRgNGC0YvQstCw0L3QuNC4INCy0L7QutGA0YPQsyBgYENhcm91c2VsYGAsINC00L7QsdCw0LLQu9GP0LXRgiDQutCw0YDRg9GB0LXQu9C4INC4INC10LUg0L/RgNC+0LrRgNGD0YLQutC1INC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L7RgtGB0YLRg9C/0YsuXG4gKiDQodGC0LjQu9C40LfQvtCy0LDQvdC90YvQuSDQutC+0LzQv9C+0L3QtdC90YIsINC+0LHQu9Cw0LTQsNGO0YnQuNC5INCy0YHQtdC80Lgg0YHQstC+0LnRgdGC0LLQsNC80LggYGBkaXZgYC5cbiAqL1xuZXhwb3J0IGNvbnN0IENhcm91c2VsR3JpZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKSAqIC0xKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKSAqIC0xKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBDYXJvdXNlbFdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgc2Nyb2xsU25hcFR5cGU/OiAnbWFuZGF0b3J5JyB8ICdwcm94aW1pdHknIHwgJ25vbmUnIH0+YFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIHNjcm9sbC1zbmFwLXR5cGU6ICR7KHsgc2Nyb2xsU25hcFR5cGUgfSkgPT4gYHggJHtzY3JvbGxTbmFwVHlwZX1gfTtcblxuICAgICR7Q2Fyb3VzZWxHcmlkV3JhcHBlcn0gJiB7XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nOiAwIHZhcigtLXBsYXNtYS1ncmlkLW1hcmdpbik7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcGxhc21hLWdyaWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG5gO1xuXG5leHBvcnQgY29uc3QgQ2Fyb3VzZWxUcmFjayA9IHN0eWxlZC5kaXY8eyBnYXA/OiBDU1NQcm9wZXJ0aWVzWydnYXAnXSB9PmBcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwIHx8IDB9O1xuYDtcbiJdfQ== */"));
@@ -0,0 +1,15 @@
1
+ export var classes = {
2
+ dot: 'dot',
3
+ active: 'dot-active',
4
+ animating: 'dot-animating',
5
+ animateIn: 'dot-animate-in',
6
+ animateOut: 'dot-animate-out',
7
+ temporaryNatural: 'dot-temporary-natural',
8
+ shrinking: 'dot-shrinking',
9
+ availableDotsLeft: 'dot-available-dots-left',
10
+ availableDotsRight: 'dot-available-dots-right'
11
+ };
12
+ export var tokens = {
13
+ paginationDotBackground: '--plasma-carousel-pagination-dot-background',
14
+ paginationDotActiveBackground: '--plasma-carousel-pagination-dot-active-background'
15
+ };
@@ -0,0 +1,409 @@
1
+ import { useEffect, useCallback, useRef, useMemo } from 'react';
2
+ import throttle from 'lodash.throttle';
3
+ /**
4
+ * Подсчет смещения из-за паддингов.
5
+ */
6
+ export var getCalculatedOffset = function getCalculatedOffset(scrollEl, trackEl, axis) {
7
+ var paddingProp = axis === 'x' ? 'paddingLeft' : 'paddingTop';
8
+ return parseInt(getComputedStyle(scrollEl)[paddingProp], 10) + parseInt(getComputedStyle(trackEl)[paddingProp], 10);
9
+ };
10
+ var positionModByScrollAlign = function positionModByScrollAlign(_ref) {
11
+ var scrollAlign = _ref.scrollAlign,
12
+ position = _ref.position,
13
+ carouselSize = _ref.carouselSize,
14
+ itemSize = _ref.itemSize,
15
+ offset = _ref.offset,
16
+ scrollStart = _ref.scrollStart,
17
+ axis = _ref.axis;
18
+ if (scrollAlign === 'start') {
19
+ var inaccuracy = 1;
20
+ var paddingOffset = axis === 'y' ? offset - itemSize / 2 + inaccuracy : 0;
21
+ return position + paddingOffset;
22
+ }
23
+ if (scrollAlign === 'center') {
24
+ return position - carouselSize / 2 + itemSize / 2;
25
+ }
26
+ if (scrollAlign === 'end') {
27
+ return position - carouselSize + itemSize + offset;
28
+ }
29
+ if (scrollAlign === 'activeDirection') {
30
+ if (position >= scrollStart + carouselSize - itemSize) {
31
+ return position - carouselSize + itemSize + offset;
32
+ }
33
+ if (position > scrollStart) {
34
+ return scrollStart;
35
+ }
36
+ }
37
+ return position;
38
+ };
39
+
40
+ /**
41
+ * Подсчет скролла до переданного индекса.
42
+ */
43
+ export var getCalculatedPos = function getCalculatedPos(_ref2) {
44
+ var scrollEl = _ref2.scrollEl,
45
+ items = _ref2.items,
46
+ axis = _ref2.axis,
47
+ index = _ref2.index,
48
+ offset = _ref2.offset,
49
+ scrollAlign = _ref2.scrollAlign;
50
+ var position = scrollAlign === 'center' ? offset : 0;
51
+ var carouselSize;
52
+ var itemSize;
53
+ var scrollStart;
54
+ if (items.item(index) === null) {
55
+ return position;
56
+ }
57
+ for (var i = 0; i < index; i++) {
58
+ if (axis === 'x') {
59
+ var _items$item$offsetWid, _items$item;
60
+ 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;
61
+ } else {
62
+ var _items$item$offsetHei, _items$item2;
63
+ position += (_items$item$offsetHei = (_items$item2 = items.item(i)) === null || _items$item2 === void 0 ? void 0 : _items$item2.offsetHeight) !== null && _items$item$offsetHei !== void 0 ? _items$item$offsetHei : 0;
64
+ }
65
+ }
66
+ if (axis === 'x') {
67
+ var _items$item$offsetWid2, _items$item3;
68
+ carouselSize = scrollEl.offsetWidth;
69
+ itemSize = (_items$item$offsetWid2 = (_items$item3 = items.item(index)) === null || _items$item3 === void 0 ? void 0 : _items$item3.offsetWidth) !== null && _items$item$offsetWid2 !== void 0 ? _items$item$offsetWid2 : 0;
70
+ scrollStart = scrollEl.scrollLeft;
71
+ } else {
72
+ var _items$item$offsetHei2, _items$item4;
73
+ carouselSize = scrollEl.offsetHeight;
74
+ itemSize = (_items$item$offsetHei2 = (_items$item4 = items.item(index)) === null || _items$item4 === void 0 ? void 0 : _items$item4.offsetHeight) !== null && _items$item$offsetHei2 !== void 0 ? _items$item$offsetHei2 : 0;
75
+ scrollStart = scrollEl.scrollTop;
76
+ }
77
+ return positionModByScrollAlign({
78
+ scrollAlign: scrollAlign,
79
+ position: position,
80
+ carouselSize: carouselSize,
81
+ itemSize: itemSize,
82
+ offset: offset,
83
+ scrollStart: scrollStart,
84
+ axis: axis
85
+ });
86
+ };
87
+ var DEFAULT_DURATION = 300;
88
+
89
+ // https://css-tricks.com/emulating-css-timing-functions-javascript/
90
+ var tfs = {
91
+ linear: function linear(t) {
92
+ return t;
93
+ },
94
+ // eslint-disable-next-line
95
+ easeIn: function easeIn(t) {
96
+ return Math.pow(t, 1.675);
97
+ },
98
+ // eslint-disable-next-line
99
+ easeOut: function easeOut(t) {
100
+ return 1 - Math.pow(1 - t, 1.675);
101
+ },
102
+ easeInOut: function easeInOut(t) {
103
+ return 0.5 * (Math.sin((t - 0.5) * Math.PI) + 1);
104
+ }
105
+ };
106
+ /**
107
+ * Плавная прокрутка по горизонтали
108
+ * @param {Element} elem
109
+ * @param {number} pos
110
+ * @param {number} duration
111
+ * @param {string} timingFunction
112
+ */
113
+ export var animatedScrollToX = function animatedScrollToX(elem, pos) {
114
+ var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_DURATION;
115
+ var timingFunction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'easeInOut';
116
+ var startTime;
117
+ var startX = elem.scrollLeft;
118
+ var endX = Math.max(0, Math.min(elem.scrollWidth - elem.clientWidth, pos));
119
+ var handleNewAnimationFrame = function handleNewAnimationFrame() {
120
+ startTime = startTime || Date.now();
121
+ var timePos = Math.min(1, Math.max(1, Date.now() - startTime) / duration);
122
+ var scrollPos = tfs[timingFunction](timePos);
123
+ var left = startX + (endX - startX) * scrollPos;
124
+ elem.scrollTo({
125
+ left: left
126
+ });
127
+ if (timePos !== 1) window.requestAnimationFrame(handleNewAnimationFrame);
128
+ };
129
+ window.requestAnimationFrame(handleNewAnimationFrame);
130
+ };
131
+
132
+ /**
133
+ * Прокрутка к указанной позиции с анимацией или без.
134
+ */
135
+ export var scrollToPos = function scrollToPos(_ref3) {
136
+ var scrollEl = _ref3.scrollEl,
137
+ pos = _ref3.pos,
138
+ axis = _ref3.axis,
139
+ animated = _ref3.animated,
140
+ duration = _ref3.duration,
141
+ timingFunction = _ref3.timingFunction;
142
+ if (axis === 'x' && Math.abs(pos - scrollEl.scrollLeft) > 1) {
143
+ if (animated) {
144
+ animatedScrollToX(scrollEl, pos, duration, timingFunction);
145
+ } else {
146
+ scrollEl.scrollTo({
147
+ left: pos
148
+ });
149
+ }
150
+ }
151
+ };
152
+ var round = function round(n) {
153
+ return Math.round(n * 100) / 100;
154
+ };
155
+
156
+ /**
157
+ * Получить позицию (слот) айтема в каруселе.
158
+ * Каждый айтем имеет свой слот относительно вьюпорта карусели.
159
+ */
160
+ export var getItemSlot = function getItemSlot(itemIndex, itemEnd, itemSize, scrollStart, scrollSize, scrollAlign) {
161
+ var prevIndex = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
162
+ var offset = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 0;
163
+ /**
164
+ * Граница и центр скролла (видимой части).
165
+ * Смещение + размер.
166
+ */
167
+ var scrollEnd = scrollStart + scrollSize;
168
+ var scrollCenter = scrollStart + scrollSize / 2;
169
+ var itemCenter = itemEnd - itemSize / 2;
170
+ if (scrollAlign === 'center') {
171
+ return round((itemCenter - scrollCenter) / itemSize);
172
+ }
173
+ if (scrollAlign === 'start') {
174
+ return round((itemEnd - itemSize - scrollStart) / itemSize);
175
+ }
176
+ if (scrollAlign === 'end') {
177
+ return round((itemEnd - (scrollSize + scrollStart)) / itemSize);
178
+ }
179
+ if (scrollAlign === 'activeDirection') {
180
+ var prevStart = offset + itemSize * prevIndex;
181
+ var prevEnd = prevStart + itemSize;
182
+ var prevVisible = prevEnd > scrollStart && prevStart < scrollEnd;
183
+ if (!prevVisible) {
184
+ if (prevIndex < itemIndex) {
185
+ return round((itemEnd - (scrollSize + scrollStart)) / itemSize);
186
+ }
187
+ return round((itemEnd - itemSize - scrollStart) / itemSize);
188
+ }
189
+ }
190
+ return null;
191
+ };
192
+ export function getCarouselItems(track) {
193
+ return track.children;
194
+ }
195
+ export function useDebouncedFunction(func, delay, cleanUp) {
196
+ var timeoutRef = useRef();
197
+
198
+ /**
199
+ * Очистка таймера
200
+ */
201
+ function clearTimer() {
202
+ if (timeoutRef.current) {
203
+ clearTimeout(timeoutRef.current);
204
+ timeoutRef.current = undefined;
205
+ }
206
+ }
207
+
208
+ /**
209
+ * Очищаем таймер при анмаунте компонента, если cleanUp выставлен в true
210
+ * и тем самым отменяем последний запланированный вызов
211
+ */
212
+ useEffect(function () {
213
+ return cleanUp ? clearTimer : undefined;
214
+ }, [cleanUp]);
215
+ return function () {
216
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
217
+ args[_key] = arguments[_key];
218
+ }
219
+ clearTimer();
220
+ timeoutRef.current = setTimeout(function () {
221
+ return func.apply(void 0, args);
222
+ }, delay);
223
+ };
224
+ }
225
+ var THROTTLE_DEFAULT_MS = 100;
226
+ var DEBOUNCE_DEFAULT_MS = 150;
227
+ export var useCarousel = function useCarousel(_ref4) {
228
+ var index = _ref4.index,
229
+ _ref4$detectActive = _ref4.detectActive,
230
+ detectActive = _ref4$detectActive === void 0 ? false : _ref4$detectActive,
231
+ _ref4$detectThreshold = _ref4.detectThreshold,
232
+ detectThreshold = _ref4$detectThreshold === void 0 ? 0.5 : _ref4$detectThreshold,
233
+ _ref4$scrollAlign = _ref4.scrollAlign,
234
+ scrollAlign = _ref4$scrollAlign === void 0 ? 'center' : _ref4$scrollAlign,
235
+ onIndexChange = _ref4.onIndexChange,
236
+ _ref4$throttleMs = _ref4.throttleMs,
237
+ throttleMs = _ref4$throttleMs === void 0 ? THROTTLE_DEFAULT_MS : _ref4$throttleMs,
238
+ _ref4$debounceMs = _ref4.debounceMs,
239
+ debounceMs = _ref4$debounceMs === void 0 ? DEBOUNCE_DEFAULT_MS : _ref4$debounceMs;
240
+ var prevIndex = useRef(null);
241
+ var offset = useRef(0);
242
+ var scrollRef = useRef(null);
243
+ var trackRef = useRef(null);
244
+ var axis = 'x';
245
+
246
+ /**
247
+ * Для того, чтобы не спамить изменениями индекса.
248
+ * Задержка дебаунса слегка больше, чем у тротлинга.
249
+ * Таким образом, событие срабатывает при завершении скролла.
250
+ */
251
+ var debouncedOnIndexChange = useDebouncedFunction(function (i) {
252
+ return onIndexChange === null || onIndexChange === void 0 ? void 0 : onIndexChange(i);
253
+ }, debounceMs);
254
+
255
+ /**
256
+ * Вычисление центрального элемента.
257
+ * Подсчет: от 0 до 1, какое количество ширины/высоты
258
+ * каждого элемента находится по центру скролла.
259
+ */
260
+ var throttledDetectActiveItem = useMemo(function () {
261
+ return throttle(function () {
262
+ if (!detectActive || scrollRef.current === null || trackRef.current === null) {
263
+ return;
264
+ }
265
+
266
+ /**
267
+ * Правая (или нижняя для Оу) граница элемента.
268
+ */
269
+ var itemEdge = offset.current;
270
+
271
+ /**
272
+ * Смещение (отрицательный или положительный отступ)
273
+ * и размер карусели (для Ox - ширина, для Oy - высота).
274
+ */
275
+ var scrollPos = scrollRef.current[axis === 'x' ? 'scrollLeft' : 'scrollTop'];
276
+ var scrollSize = scrollRef.current[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];
277
+
278
+ /**
279
+ * Граница скролла (видимой части).
280
+ * Смещение + размер.
281
+ */
282
+ var scrollEdge = scrollPos + scrollSize;
283
+ var items = getCarouselItems(trackRef.current);
284
+
285
+ /**
286
+ * Проходим по всему списку, суммируя ширины элементов,
287
+ * пока не найдем один элемент, чей центр будет в центре карусели.
288
+ */
289
+ for (var itemIndex = 0; itemIndex < items.length; itemIndex++) {
290
+ var _prevIndex$current;
291
+ var item = items.item(itemIndex);
292
+ if (item === null) {
293
+ // eslint-disable-next-line no-continue
294
+ continue;
295
+ }
296
+
297
+ /**
298
+ * Для Ox - ширина, для Oy - высота.
299
+ */
300
+ var itemSize = item[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];
301
+
302
+ /**
303
+ * Все элементы правее вьюпорта выпадают из процедуры.
304
+ * Сравниваем по предыдущему элементу.
305
+ * [ ... ] ...|n| <- Левый край элемента за пределами начала видимой части
306
+ */
307
+ if (itemEdge > scrollEdge) {
308
+ // eslint-disable-next-line no-continue
309
+ continue;
310
+ }
311
+ itemEdge += itemSize;
312
+
313
+ /**
314
+ * Все элементы левее вьюпорта выпадают из процедуры.
315
+ * Сравниваем по текущему элементу.
316
+ * Правый край элемента за пределами начала видимой части -> |p|... [ ... ]
317
+ */
318
+ if (scrollPos > itemEdge) {
319
+ // eslint-disable-next-line no-continue
320
+ continue;
321
+ }
322
+ var itemSlot = getItemSlot(itemIndex, itemEdge, itemSize, scrollPos, scrollSize, scrollAlign, (_prevIndex$current = prevIndex.current) !== null && _prevIndex$current !== void 0 ? _prevIndex$current : 0, offset.current);
323
+ if (itemSlot !== null) {
324
+ if (detectThreshold && Math.abs(itemSlot) <= detectThreshold) {
325
+ debouncedOnIndexChange === null || debouncedOnIndexChange === void 0 || debouncedOnIndexChange(itemIndex);
326
+ }
327
+ }
328
+ }
329
+ }, throttleMs);
330
+ }, [axis, debouncedOnIndexChange, detectActive, detectThreshold, scrollAlign, throttleMs]);
331
+
332
+ /**
333
+ * Прокрутка до нужной позиции индекса.
334
+ */
335
+ var toIndex = useCallback(function (i) {
336
+ var scrollEl = scrollRef.current;
337
+ var items = trackRef.current ? getCarouselItems(trackRef.current) : null;
338
+ if (scrollEl && items && items.length > 0 && i >= 0) {
339
+ scrollToPos({
340
+ scrollEl: scrollEl,
341
+ pos: getCalculatedPos({
342
+ scrollEl: scrollEl,
343
+ items: items,
344
+ axis: axis,
345
+ index: i,
346
+ offset: offset.current,
347
+ scrollAlign: scrollAlign
348
+ }),
349
+ axis: axis
350
+ });
351
+ prevIndex.current = i;
352
+ }
353
+ }, [axis, scrollAlign]);
354
+ useEffect(function () {
355
+ if (scrollRef.current && trackRef.current) {
356
+ offset.current = getCalculatedOffset(scrollRef.current, trackRef.current, axis);
357
+ }
358
+ }, [axis]);
359
+
360
+ /**
361
+ * Операции на маунте/анмаунте компонента.
362
+ * Создать слушатели событи и т.п.
363
+ */
364
+ useEffect(function () {
365
+ var carouselElement = scrollRef.current;
366
+ if (carouselElement) {
367
+ carouselElement.addEventListener('scroll', throttledDetectActiveItem);
368
+ }
369
+ return function () {
370
+ if (carouselElement) {
371
+ carouselElement.removeEventListener('scroll', throttledDetectActiveItem);
372
+ }
373
+ };
374
+ }, [throttledDetectActiveItem]);
375
+
376
+ /**
377
+ * Нужно вызвать только при первом рендере
378
+ */
379
+ // useEffect(() => {
380
+ // requestAnimationFrame(() => {
381
+ // /**
382
+ // * Прокрутка до начального индекса.
383
+ // */
384
+ // toIndex(index);
385
+ //
386
+ // /**
387
+ // * Если на момент запуска карусель уже находится на нужной позиции,
388
+ // * событие скролла не произойдет, не сработает и определение центра,
389
+ // * необходимо вызвать его вручную.
390
+ // */
391
+ // throttledDetectActiveItem();
392
+ // });
393
+ //
394
+ // // eslint-disable-next-line react-hooks/exhaustive-deps
395
+ // }, []);
396
+
397
+ /**
398
+ * Прокрутка до нужной позиции индекса, если индекс изменился.
399
+ */
400
+ useEffect(function () {
401
+ if (index !== prevIndex.current) {
402
+ toIndex(index);
403
+ }
404
+ }, [index, toIndex]);
405
+ return {
406
+ scrollRef: scrollRef,
407
+ trackRef: trackRef
408
+ };
409
+ };