vevet 3.19.2 → 4.0.0-beta.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 (714) hide show
  1. package/README.md +81 -18
  2. package/lib/cjs/{Application → Vevet}/events/createOnPageLoad/index.js +7 -7
  3. package/lib/cjs/Vevet/events/createOnPageLoad/index.js.map +1 -0
  4. package/lib/cjs/Vevet/events/createOnPageLoad/types.js.map +1 -0
  5. package/lib/cjs/{Application → Vevet}/events/createViewport/index.js +19 -25
  6. package/lib/cjs/Vevet/events/createViewport/index.js.map +1 -0
  7. package/lib/cjs/Vevet/events/createViewport/types.js.map +1 -0
  8. package/lib/cjs/Vevet/exported.js +3 -0
  9. package/lib/cjs/Vevet/exported.js.map +1 -0
  10. package/lib/cjs/Vevet/global.js +3 -0
  11. package/lib/cjs/Vevet/global.js.map +1 -0
  12. package/lib/cjs/Vevet/index.js +94 -0
  13. package/lib/cjs/Vevet/index.js.map +1 -0
  14. package/lib/cjs/{Application → Vevet}/types.js.map +1 -1
  15. package/lib/cjs/{utils/internal → Vevet/utils}/fetchWebpSupport.js +1 -1
  16. package/lib/cjs/Vevet/utils/fetchWebpSupport.js.map +1 -0
  17. package/lib/cjs/Vevet/utils/getDeviceInfo.js.map +1 -0
  18. package/lib/cjs/base/Callbacks/index.js +65 -48
  19. package/lib/cjs/base/Callbacks/index.js.map +1 -1
  20. package/lib/cjs/base/Component/index.js +15 -4
  21. package/lib/cjs/base/Component/index.js.map +1 -1
  22. package/lib/cjs/base/Module/index.js +118 -64
  23. package/lib/cjs/base/Module/index.js.map +1 -1
  24. package/lib/cjs/base/MutableProps/index.js +30 -55
  25. package/lib/cjs/base/MutableProps/index.js.map +1 -1
  26. package/lib/cjs/base/Plugin/index.js +20 -1
  27. package/lib/cjs/base/Plugin/index.js.map +1 -1
  28. package/lib/cjs/components/AnimationFrame/index.js +14 -21
  29. package/lib/cjs/components/AnimationFrame/index.js.map +1 -1
  30. package/lib/cjs/components/Ctx2D/index.js +40 -25
  31. package/lib/cjs/components/Ctx2D/index.js.map +1 -1
  32. package/lib/cjs/components/Ctx2DPrerender/index.js +17 -7
  33. package/lib/cjs/components/Ctx2DPrerender/index.js.map +1 -1
  34. package/lib/cjs/components/CustomCursor/index.js +75 -51
  35. package/lib/cjs/components/CustomCursor/index.js.map +1 -1
  36. package/lib/cjs/components/{SmoothScroll → CustomScroll}/AnimatonFrame.js +2 -2
  37. package/lib/cjs/components/{SmoothScroll → CustomScroll}/AnimatonFrame.js.map +1 -1
  38. package/lib/cjs/components/{SmoothScroll → CustomScroll}/Elements.js +9 -9
  39. package/lib/cjs/components/{SmoothScroll → CustomScroll}/Elements.js.map +1 -1
  40. package/lib/cjs/components/{SmoothScroll → CustomScroll}/index.js +72 -66
  41. package/lib/cjs/components/CustomScroll/index.js.map +1 -0
  42. package/lib/cjs/components/CustomScroll/types.js.map +1 -0
  43. package/lib/cjs/components/{SmoothScrollDragPlugin → CustomScrollDragPlugin}/index.js +45 -44
  44. package/lib/cjs/components/CustomScrollDragPlugin/index.js.map +1 -0
  45. package/lib/cjs/components/CustomScrollDragPlugin/types.js.map +1 -0
  46. package/lib/cjs/components/{SmoothScrollKeyboardPlugin → CustomScrollKeyboardPlugin}/index.js +51 -47
  47. package/lib/cjs/components/CustomScrollKeyboardPlugin/index.js.map +1 -0
  48. package/lib/cjs/components/CustomScrollKeyboardPlugin/types.js.map +1 -0
  49. package/lib/cjs/components/DraggerBase/index.js +74 -26
  50. package/lib/cjs/components/DraggerBase/index.js.map +1 -1
  51. package/lib/cjs/components/DraggerDirection/index.js +12 -6
  52. package/lib/cjs/components/DraggerDirection/index.js.map +1 -1
  53. package/lib/cjs/components/DraggerMove/index.js +44 -13
  54. package/lib/cjs/components/DraggerMove/index.js.map +1 -1
  55. package/lib/cjs/components/Marquee/index.js +240 -160
  56. package/lib/cjs/components/Marquee/index.js.map +1 -1
  57. package/lib/cjs/components/Preloader/index.js +45 -16
  58. package/lib/cjs/components/Preloader/index.js.map +1 -1
  59. package/lib/cjs/components/ProgressPreloader/index.js +79 -41
  60. package/lib/cjs/components/ProgressPreloader/index.js.map +1 -1
  61. package/lib/cjs/components/ProgressPreloader/utils/preloadCustomElement.js +12 -1
  62. package/lib/cjs/components/ProgressPreloader/utils/preloadCustomElement.js.map +1 -1
  63. package/lib/cjs/components/ScrollBar/Bar/index.js +90 -36
  64. package/lib/cjs/components/ScrollBar/Bar/index.js.map +1 -1
  65. package/lib/cjs/components/ScrollBar/index.js +59 -20
  66. package/lib/cjs/components/ScrollBar/index.js.map +1 -1
  67. package/lib/cjs/components/ScrollView/index.js +56 -20
  68. package/lib/cjs/components/ScrollView/index.js.map +1 -1
  69. package/lib/cjs/components/SectionScrollProgress/index.js +68 -31
  70. package/lib/cjs/components/SectionScrollProgress/index.js.map +1 -1
  71. package/lib/cjs/components/SlideProgress/index.js +72 -38
  72. package/lib/cjs/components/SlideProgress/index.js.map +1 -1
  73. package/lib/cjs/components/SplitText/index.js +52 -23
  74. package/lib/cjs/components/SplitText/index.js.map +1 -1
  75. package/lib/cjs/components/SplitText/utils/splitBase.js +6 -1
  76. package/lib/cjs/components/SplitText/utils/splitBase.js.map +1 -1
  77. package/lib/cjs/components/SplitText/utils/wrapLetters.js +11 -3
  78. package/lib/cjs/components/SplitText/utils/wrapLetters.js.map +1 -1
  79. package/lib/cjs/components/SplitText/utils/wrapLines.js +11 -5
  80. package/lib/cjs/components/SplitText/utils/wrapLines.js.map +1 -1
  81. package/lib/cjs/components/SplitText/utils/wrapWords.js +13 -2
  82. package/lib/cjs/components/SplitText/utils/wrapWords.js.map +1 -1
  83. package/lib/cjs/components/Timeline/index.js +77 -21
  84. package/lib/cjs/components/Timeline/index.js.map +1 -1
  85. package/lib/cjs/components/index.js +4 -4
  86. package/lib/cjs/components/index.js.map +1 -1
  87. package/lib/cjs/index.js +10 -3
  88. package/lib/cjs/index.js.map +1 -1
  89. package/lib/cjs/types/index.js +19 -0
  90. package/lib/cjs/types/index.js.map +1 -0
  91. package/lib/cjs/utils/common/PCancelable.js +16 -0
  92. package/lib/cjs/utils/common/PCancelable.js.map +1 -1
  93. package/lib/cjs/utils/common/normalizedTimeoutCallback.js +19 -4
  94. package/lib/cjs/utils/common/normalizedTimeoutCallback.js.map +1 -1
  95. package/lib/cjs/utils/common/objectKeys.js +11 -1
  96. package/lib/cjs/utils/common/objectKeys.js.map +1 -1
  97. package/lib/cjs/utils/common/pickObjectProps.js +14 -2
  98. package/lib/cjs/utils/common/pickObjectProps.js.map +1 -1
  99. package/lib/cjs/utils/common/times.js +12 -3
  100. package/lib/cjs/utils/common/times.js.map +1 -1
  101. package/lib/cjs/utils/common/uid.js +4 -2
  102. package/lib/cjs/utils/common/uid.js.map +1 -1
  103. package/lib/cjs/utils/image/load.js +3 -3
  104. package/lib/cjs/utils/image/load.js.map +1 -1
  105. package/lib/cjs/utils/image/pathsToProps.js +12 -5
  106. package/lib/cjs/utils/image/pathsToProps.js.map +1 -1
  107. package/lib/cjs/utils/image/sizesToSrcSet.js +7 -3
  108. package/lib/cjs/utils/image/sizesToSrcSet.js.map +1 -1
  109. package/lib/cjs/utils/internal/getApp.js +12 -0
  110. package/lib/cjs/utils/internal/getApp.js.map +1 -1
  111. package/lib/cjs/utils/listeners/isIntersectionObserverSupported.js +1 -1
  112. package/lib/cjs/utils/listeners/onResize.js +13 -12
  113. package/lib/cjs/utils/listeners/onResize.js.map +1 -1
  114. package/lib/cjs/utils/math/clamp.js +10 -5
  115. package/lib/cjs/utils/math/clamp.js.map +1 -1
  116. package/lib/cjs/utils/math/clampScope.js +8 -1
  117. package/lib/cjs/utils/math/clampScope.js.map +1 -1
  118. package/lib/cjs/utils/math/easing.js +6 -2
  119. package/lib/cjs/utils/math/easing.js.map +1 -1
  120. package/lib/cjs/utils/math/inScope.js +6 -3
  121. package/lib/cjs/utils/math/inScope.js.map +1 -1
  122. package/lib/cjs/utils/math/lerp.js +11 -3
  123. package/lib/cjs/utils/math/lerp.js.map +1 -1
  124. package/lib/cjs/utils/math/normalizeNestedScope.js +12 -3
  125. package/lib/cjs/utils/math/normalizeNestedScope.js.map +1 -1
  126. package/lib/cjs/utils/math/scoped.js +18 -7
  127. package/lib/cjs/utils/math/scoped.js.map +1 -1
  128. package/lib/cjs/utils/math/spreadScope.js +17 -3
  129. package/lib/cjs/utils/math/spreadScope.js.map +1 -1
  130. package/lib/cjs/utils/math/wrap.js +9 -3
  131. package/lib/cjs/utils/math/wrap.js.map +1 -1
  132. package/lib/cjs/utils/scroll/getScrollValues.js +13 -1
  133. package/lib/cjs/utils/scroll/getScrollValues.js.map +1 -1
  134. package/lib/cjs/utils/scroll/isPageScrolling.js +30 -0
  135. package/lib/cjs/utils/scroll/isPageScrolling.js.map +1 -1
  136. package/lib/cjs/utils/scroll/normalizeWheel.js +7 -2
  137. package/lib/cjs/utils/scroll/normalizeWheel.js.map +1 -1
  138. package/lib/cjs/utils/scroll/onScroll.js +14 -7
  139. package/lib/cjs/utils/scroll/onScroll.js.map +1 -1
  140. package/lib/cjs/utils/scroll/scrollTo.js +8 -7
  141. package/lib/cjs/utils/scroll/scrollTo.js.map +1 -1
  142. package/lib/cjs/utils/scroll/scrollToElement.js +8 -6
  143. package/lib/cjs/utils/scroll/scrollToElement.js.map +1 -1
  144. package/lib/cjs/version.js +1 -1
  145. package/lib/esm/{Application → Vevet}/events/createOnPageLoad/index.js +7 -7
  146. package/lib/esm/Vevet/events/createOnPageLoad/index.js.map +1 -0
  147. package/lib/esm/Vevet/events/createOnPageLoad/types.js.map +1 -0
  148. package/lib/esm/{Application → Vevet}/events/createViewport/index.js +20 -26
  149. package/lib/esm/Vevet/events/createViewport/index.js.map +1 -0
  150. package/lib/esm/Vevet/events/createViewport/types.js.map +1 -0
  151. package/lib/esm/Vevet/exported.js +2 -0
  152. package/lib/esm/Vevet/exported.js.map +1 -0
  153. package/lib/esm/Vevet/global.js +2 -0
  154. package/lib/esm/Vevet/global.js.map +1 -0
  155. package/lib/esm/Vevet/index.js +72 -0
  156. package/lib/esm/Vevet/index.js.map +1 -0
  157. package/lib/esm/{Application → Vevet}/types.js.map +1 -1
  158. package/lib/esm/{utils/internal → Vevet/utils}/fetchWebpSupport.js +1 -1
  159. package/lib/esm/Vevet/utils/fetchWebpSupport.js.map +1 -0
  160. package/lib/esm/Vevet/utils/getDeviceInfo.js.map +1 -0
  161. package/lib/esm/base/Callbacks/index.js +66 -48
  162. package/lib/esm/base/Callbacks/index.js.map +1 -1
  163. package/lib/esm/base/Component/index.js +15 -4
  164. package/lib/esm/base/Component/index.js.map +1 -1
  165. package/lib/esm/base/Module/index.js +119 -65
  166. package/lib/esm/base/Module/index.js.map +1 -1
  167. package/lib/esm/base/MutableProps/index.js +35 -60
  168. package/lib/esm/base/MutableProps/index.js.map +1 -1
  169. package/lib/esm/base/Plugin/index.js +20 -1
  170. package/lib/esm/base/Plugin/index.js.map +1 -1
  171. package/lib/esm/components/AnimationFrame/index.js +14 -21
  172. package/lib/esm/components/AnimationFrame/index.js.map +1 -1
  173. package/lib/esm/components/Ctx2D/index.js +40 -25
  174. package/lib/esm/components/Ctx2D/index.js.map +1 -1
  175. package/lib/esm/components/Ctx2DPrerender/index.js +17 -7
  176. package/lib/esm/components/Ctx2DPrerender/index.js.map +1 -1
  177. package/lib/esm/components/CustomCursor/index.js +75 -51
  178. package/lib/esm/components/CustomCursor/index.js.map +1 -1
  179. package/lib/esm/components/{SmoothScroll → CustomScroll}/AnimatonFrame.js +2 -2
  180. package/lib/esm/components/{SmoothScroll → CustomScroll}/AnimatonFrame.js.map +1 -1
  181. package/lib/esm/components/{SmoothScroll → CustomScroll}/Elements.js +8 -8
  182. package/lib/esm/components/{SmoothScroll → CustomScroll}/Elements.js.map +1 -1
  183. package/lib/esm/components/{SmoothScroll → CustomScroll}/index.js +30 -24
  184. package/lib/esm/components/CustomScroll/index.js.map +1 -0
  185. package/lib/esm/components/CustomScroll/types.js.map +1 -0
  186. package/lib/esm/components/{SmoothScrollDragPlugin → CustomScrollDragPlugin}/index.js +28 -27
  187. package/lib/esm/components/CustomScrollDragPlugin/index.js.map +1 -0
  188. package/lib/esm/components/CustomScrollDragPlugin/types.js.map +1 -0
  189. package/lib/esm/components/{SmoothScrollKeyboardPlugin → CustomScrollKeyboardPlugin}/index.js +37 -33
  190. package/lib/esm/components/CustomScrollKeyboardPlugin/index.js.map +1 -0
  191. package/lib/esm/components/CustomScrollKeyboardPlugin/types.js.map +1 -0
  192. package/lib/esm/components/DraggerBase/index.js +74 -28
  193. package/lib/esm/components/DraggerBase/index.js.map +1 -1
  194. package/lib/esm/components/DraggerDirection/index.js +12 -6
  195. package/lib/esm/components/DraggerDirection/index.js.map +1 -1
  196. package/lib/esm/components/DraggerMove/index.js +44 -13
  197. package/lib/esm/components/DraggerMove/index.js.map +1 -1
  198. package/lib/esm/components/Marquee/index.js +220 -161
  199. package/lib/esm/components/Marquee/index.js.map +1 -1
  200. package/lib/esm/components/Preloader/index.js +45 -16
  201. package/lib/esm/components/Preloader/index.js.map +1 -1
  202. package/lib/esm/components/ProgressPreloader/index.js +79 -40
  203. package/lib/esm/components/ProgressPreloader/index.js.map +1 -1
  204. package/lib/esm/components/ProgressPreloader/utils/preloadCustomElement.js +12 -1
  205. package/lib/esm/components/ProgressPreloader/utils/preloadCustomElement.js.map +1 -1
  206. package/lib/esm/components/ScrollBar/Bar/index.js +89 -32
  207. package/lib/esm/components/ScrollBar/Bar/index.js.map +1 -1
  208. package/lib/esm/components/ScrollBar/index.js +49 -15
  209. package/lib/esm/components/ScrollBar/index.js.map +1 -1
  210. package/lib/esm/components/ScrollView/index.js +56 -20
  211. package/lib/esm/components/ScrollView/index.js.map +1 -1
  212. package/lib/esm/components/SectionScrollProgress/index.js +68 -31
  213. package/lib/esm/components/SectionScrollProgress/index.js.map +1 -1
  214. package/lib/esm/components/SlideProgress/index.js +72 -38
  215. package/lib/esm/components/SlideProgress/index.js.map +1 -1
  216. package/lib/esm/components/SplitText/index.js +52 -23
  217. package/lib/esm/components/SplitText/index.js.map +1 -1
  218. package/lib/esm/components/SplitText/utils/splitBase.js +6 -1
  219. package/lib/esm/components/SplitText/utils/splitBase.js.map +1 -1
  220. package/lib/esm/components/SplitText/utils/wrapLetters.js +11 -3
  221. package/lib/esm/components/SplitText/utils/wrapLetters.js.map +1 -1
  222. package/lib/esm/components/SplitText/utils/wrapLines.js +11 -5
  223. package/lib/esm/components/SplitText/utils/wrapLines.js.map +1 -1
  224. package/lib/esm/components/SplitText/utils/wrapWords.js +13 -2
  225. package/lib/esm/components/SplitText/utils/wrapWords.js.map +1 -1
  226. package/lib/esm/components/Timeline/index.js +70 -22
  227. package/lib/esm/components/Timeline/index.js.map +1 -1
  228. package/lib/esm/components/index.js +4 -4
  229. package/lib/esm/components/index.js.map +1 -1
  230. package/lib/esm/index.js +9 -3
  231. package/lib/esm/index.js.map +1 -1
  232. package/lib/esm/types/index.js +3 -0
  233. package/lib/esm/types/index.js.map +1 -0
  234. package/lib/esm/utils/common/PCancelable.js +16 -0
  235. package/lib/esm/utils/common/PCancelable.js.map +1 -1
  236. package/lib/esm/utils/common/normalizedTimeoutCallback.js +19 -4
  237. package/lib/esm/utils/common/normalizedTimeoutCallback.js.map +1 -1
  238. package/lib/esm/utils/common/objectKeys.js +11 -1
  239. package/lib/esm/utils/common/objectKeys.js.map +1 -1
  240. package/lib/esm/utils/common/pickObjectProps.js +14 -2
  241. package/lib/esm/utils/common/pickObjectProps.js.map +1 -1
  242. package/lib/esm/utils/common/times.js +12 -3
  243. package/lib/esm/utils/common/times.js.map +1 -1
  244. package/lib/esm/utils/common/uid.js +4 -2
  245. package/lib/esm/utils/common/uid.js.map +1 -1
  246. package/lib/esm/utils/image/load.js +3 -3
  247. package/lib/esm/utils/image/load.js.map +1 -1
  248. package/lib/esm/utils/image/pathsToProps.js +12 -5
  249. package/lib/esm/utils/image/pathsToProps.js.map +1 -1
  250. package/lib/esm/utils/image/sizesToSrcSet.js +7 -3
  251. package/lib/esm/utils/image/sizesToSrcSet.js.map +1 -1
  252. package/lib/esm/utils/internal/getApp.js +12 -0
  253. package/lib/esm/utils/internal/getApp.js.map +1 -1
  254. package/lib/esm/utils/listeners/isIntersectionObserverSupported.js +1 -1
  255. package/lib/esm/utils/listeners/onResize.js +11 -12
  256. package/lib/esm/utils/listeners/onResize.js.map +1 -1
  257. package/lib/esm/utils/math/clamp.js +10 -5
  258. package/lib/esm/utils/math/clamp.js.map +1 -1
  259. package/lib/esm/utils/math/clampScope.js +8 -1
  260. package/lib/esm/utils/math/clampScope.js.map +1 -1
  261. package/lib/esm/utils/math/easing.js +6 -2
  262. package/lib/esm/utils/math/easing.js.map +1 -1
  263. package/lib/esm/utils/math/inScope.js +6 -3
  264. package/lib/esm/utils/math/inScope.js.map +1 -1
  265. package/lib/esm/utils/math/lerp.js +11 -3
  266. package/lib/esm/utils/math/lerp.js.map +1 -1
  267. package/lib/esm/utils/math/normalizeNestedScope.js +12 -3
  268. package/lib/esm/utils/math/normalizeNestedScope.js.map +1 -1
  269. package/lib/esm/utils/math/scoped.js +17 -6
  270. package/lib/esm/utils/math/scoped.js.map +1 -1
  271. package/lib/esm/utils/math/spreadScope.js +17 -3
  272. package/lib/esm/utils/math/spreadScope.js.map +1 -1
  273. package/lib/esm/utils/math/wrap.js +9 -3
  274. package/lib/esm/utils/math/wrap.js.map +1 -1
  275. package/lib/esm/utils/scroll/getScrollValues.js +13 -1
  276. package/lib/esm/utils/scroll/getScrollValues.js.map +1 -1
  277. package/lib/esm/utils/scroll/isPageScrolling.js +30 -0
  278. package/lib/esm/utils/scroll/isPageScrolling.js.map +1 -1
  279. package/lib/esm/utils/scroll/normalizeWheel.js +7 -2
  280. package/lib/esm/utils/scroll/normalizeWheel.js.map +1 -1
  281. package/lib/esm/utils/scroll/onScroll.js +14 -7
  282. package/lib/esm/utils/scroll/onScroll.js.map +1 -1
  283. package/lib/esm/utils/scroll/scrollTo.js +8 -7
  284. package/lib/esm/utils/scroll/scrollTo.js.map +1 -1
  285. package/lib/esm/utils/scroll/scrollToElement.js +8 -6
  286. package/lib/esm/utils/scroll/scrollToElement.js.map +1 -1
  287. package/lib/esm/version.js +1 -1
  288. package/lib/styles/base.scss +0 -2
  289. package/lib/styles/components/CustomCursor.scss +7 -7
  290. package/{src/styles/components/SmoothScroll.scss → lib/styles/components/CustomScroll.scss} +3 -3
  291. package/lib/styles/components/Preloader.scss +1 -1
  292. package/lib/styles/components/ScrollBar.scss +4 -4
  293. package/lib/styles/components/index.scss +1 -1
  294. package/lib/styles/index.scss +0 -1
  295. package/lib/types/Vevet/events/createOnPageLoad/index.d.ts +3 -0
  296. package/lib/types/Vevet/events/createOnPageLoad/index.d.ts.map +1 -0
  297. package/lib/types/Vevet/events/createOnPageLoad/types.d.ts +20 -0
  298. package/lib/types/Vevet/events/createOnPageLoad/types.d.ts.map +1 -0
  299. package/lib/types/Vevet/events/createViewport/index.d.ts +4 -0
  300. package/lib/types/Vevet/events/createViewport/index.d.ts.map +1 -0
  301. package/lib/types/Vevet/events/createViewport/types.d.ts +85 -0
  302. package/lib/types/Vevet/events/createViewport/types.d.ts.map +1 -0
  303. package/lib/types/Vevet/exported.d.ts +6 -0
  304. package/lib/types/Vevet/exported.d.ts.map +1 -0
  305. package/lib/types/Vevet/global.d.ts +51 -0
  306. package/lib/types/Vevet/global.d.ts.map +1 -0
  307. package/lib/types/Vevet/index.d.ts +4 -0
  308. package/lib/types/Vevet/index.d.ts.map +1 -0
  309. package/lib/types/Vevet/types.d.ts +43 -0
  310. package/lib/types/Vevet/types.d.ts.map +1 -0
  311. package/lib/types/Vevet/utils/fetchWebpSupport.d.ts +3 -0
  312. package/lib/types/Vevet/utils/fetchWebpSupport.d.ts.map +1 -0
  313. package/lib/types/Vevet/utils/getDeviceInfo.d.ts.map +1 -0
  314. package/lib/types/base/Callbacks/index.d.ts +67 -46
  315. package/lib/types/base/Callbacks/index.d.ts.map +1 -1
  316. package/lib/types/base/Callbacks/types.d.ts +46 -14
  317. package/lib/types/base/Callbacks/types.d.ts.map +1 -1
  318. package/lib/types/base/Component/index.d.ts +19 -5
  319. package/lib/types/base/Component/index.d.ts.map +1 -1
  320. package/lib/types/base/Component/types.d.ts +15 -3
  321. package/lib/types/base/Component/types.d.ts.map +1 -1
  322. package/lib/types/base/Module/index.d.ts +124 -74
  323. package/lib/types/base/Module/index.d.ts.map +1 -1
  324. package/lib/types/base/Module/types.d.ts +29 -3
  325. package/lib/types/base/Module/types.d.ts.map +1 -1
  326. package/lib/types/base/MutableProps/index.d.ts +34 -77
  327. package/lib/types/base/MutableProps/index.d.ts.map +1 -1
  328. package/lib/types/base/MutableProps/types.d.ts +14 -8
  329. package/lib/types/base/MutableProps/types.d.ts.map +1 -1
  330. package/lib/types/base/Plugin/index.d.ts +24 -1
  331. package/lib/types/base/Plugin/index.d.ts.map +1 -1
  332. package/lib/types/base/Plugin/types.d.ts +11 -0
  333. package/lib/types/base/Plugin/types.d.ts.map +1 -1
  334. package/lib/types/components/AnimationFrame/index.d.ts +20 -18
  335. package/lib/types/components/AnimationFrame/index.d.ts.map +1 -1
  336. package/lib/types/components/AnimationFrame/types.d.ts +18 -3
  337. package/lib/types/components/AnimationFrame/types.d.ts.map +1 -1
  338. package/lib/types/components/Ctx2D/index.d.ts +37 -15
  339. package/lib/types/components/Ctx2D/index.d.ts.map +1 -1
  340. package/lib/types/components/Ctx2D/types.d.ts +40 -13
  341. package/lib/types/components/Ctx2D/types.d.ts.map +1 -1
  342. package/lib/types/components/Ctx2DPrerender/index.d.ts +13 -4
  343. package/lib/types/components/Ctx2DPrerender/index.d.ts.map +1 -1
  344. package/lib/types/components/Ctx2DPrerender/types.d.ts +13 -2
  345. package/lib/types/components/Ctx2DPrerender/types.d.ts.map +1 -1
  346. package/lib/types/components/CustomCursor/index.d.ts +59 -36
  347. package/lib/types/components/CustomCursor/index.d.ts.map +1 -1
  348. package/lib/types/components/CustomCursor/types.d.ts +52 -12
  349. package/lib/types/components/CustomCursor/types.d.ts.map +1 -1
  350. package/lib/types/components/{SmoothScroll → CustomScroll}/AnimatonFrame.d.ts.map +1 -1
  351. package/lib/types/components/{SmoothScroll → CustomScroll}/Elements.d.ts +3 -3
  352. package/lib/types/components/{SmoothScroll → CustomScroll}/Elements.d.ts.map +1 -1
  353. package/lib/types/components/{SmoothScroll → CustomScroll}/index.d.ts +46 -32
  354. package/lib/types/components/CustomScroll/index.d.ts.map +1 -0
  355. package/lib/types/components/CustomScroll/types.d.ts +137 -0
  356. package/lib/types/components/CustomScroll/types.d.ts.map +1 -0
  357. package/lib/types/components/CustomScrollDragPlugin/index.d.ts +62 -0
  358. package/lib/types/components/CustomScrollDragPlugin/index.d.ts.map +1 -0
  359. package/lib/types/components/CustomScrollDragPlugin/types.d.ts +52 -0
  360. package/lib/types/components/CustomScrollDragPlugin/types.d.ts.map +1 -0
  361. package/lib/types/components/CustomScrollKeyboardPlugin/index.d.ts +47 -0
  362. package/lib/types/components/CustomScrollKeyboardPlugin/index.d.ts.map +1 -0
  363. package/lib/types/components/CustomScrollKeyboardPlugin/types.d.ts +16 -0
  364. package/lib/types/components/{SmoothScrollKeyboardPlugin → CustomScrollKeyboardPlugin}/types.d.ts.map +1 -1
  365. package/lib/types/components/DraggerBase/index.d.ts +93 -28
  366. package/lib/types/components/DraggerBase/index.d.ts.map +1 -1
  367. package/lib/types/components/DraggerBase/types.d.ts +21 -3
  368. package/lib/types/components/DraggerBase/types.d.ts.map +1 -1
  369. package/lib/types/components/DraggerDirection/index.d.ts +6 -2
  370. package/lib/types/components/DraggerDirection/index.d.ts.map +1 -1
  371. package/lib/types/components/DraggerDirection/types.d.ts +15 -1
  372. package/lib/types/components/DraggerDirection/types.d.ts.map +1 -1
  373. package/lib/types/components/DraggerMove/index.d.ts +38 -8
  374. package/lib/types/components/DraggerMove/index.d.ts.map +1 -1
  375. package/lib/types/components/DraggerMove/types.d.ts +15 -2
  376. package/lib/types/components/DraggerMove/types.d.ts.map +1 -1
  377. package/lib/types/components/Marquee/index.d.ts +59 -36
  378. package/lib/types/components/Marquee/index.d.ts.map +1 -1
  379. package/lib/types/components/Marquee/types.d.ts +18 -8
  380. package/lib/types/components/Marquee/types.d.ts.map +1 -1
  381. package/lib/types/components/Preloader/index.d.ts +52 -15
  382. package/lib/types/components/Preloader/index.d.ts.map +1 -1
  383. package/lib/types/components/Preloader/types.d.ts +16 -5
  384. package/lib/types/components/Preloader/types.d.ts.map +1 -1
  385. package/lib/types/components/ProgressPreloader/index.d.ts +85 -25
  386. package/lib/types/components/ProgressPreloader/index.d.ts.map +1 -1
  387. package/lib/types/components/ProgressPreloader/types.d.ts +51 -14
  388. package/lib/types/components/ProgressPreloader/types.d.ts.map +1 -1
  389. package/lib/types/components/ProgressPreloader/utils/preloadCustomElement.d.ts +3 -0
  390. package/lib/types/components/ProgressPreloader/utils/preloadCustomElement.d.ts.map +1 -1
  391. package/lib/types/components/ScrollBar/Bar/index.d.ts +81 -16
  392. package/lib/types/components/ScrollBar/Bar/index.d.ts.map +1 -1
  393. package/lib/types/components/ScrollBar/Bar/types.d.ts +38 -16
  394. package/lib/types/components/ScrollBar/Bar/types.d.ts.map +1 -1
  395. package/lib/types/components/ScrollBar/index.d.ts +49 -12
  396. package/lib/types/components/ScrollBar/index.d.ts.map +1 -1
  397. package/lib/types/components/ScrollBar/types.d.ts +8 -6
  398. package/lib/types/components/ScrollBar/types.d.ts.map +1 -1
  399. package/lib/types/components/ScrollView/index.d.ts +65 -21
  400. package/lib/types/components/ScrollView/index.d.ts.map +1 -1
  401. package/lib/types/components/SectionScrollProgress/index.d.ts +83 -28
  402. package/lib/types/components/SectionScrollProgress/index.d.ts.map +1 -1
  403. package/lib/types/components/SectionScrollProgress/types.d.ts +15 -6
  404. package/lib/types/components/SectionScrollProgress/types.d.ts.map +1 -1
  405. package/lib/types/components/SlideProgress/index.d.ts +59 -24
  406. package/lib/types/components/SlideProgress/index.d.ts.map +1 -1
  407. package/lib/types/components/SlideProgress/types.d.ts +24 -15
  408. package/lib/types/components/SlideProgress/types.d.ts.map +1 -1
  409. package/lib/types/components/SplitText/index.d.ts +64 -18
  410. package/lib/types/components/SplitText/index.d.ts.map +1 -1
  411. package/lib/types/components/SplitText/types.d.ts +36 -8
  412. package/lib/types/components/SplitText/types.d.ts.map +1 -1
  413. package/lib/types/components/SplitText/utils/splitBase.d.ts +3 -1
  414. package/lib/types/components/SplitText/utils/splitBase.d.ts.map +1 -1
  415. package/lib/types/components/SplitText/utils/wrapLetters.d.ts +3 -1
  416. package/lib/types/components/SplitText/utils/wrapLetters.d.ts.map +1 -1
  417. package/lib/types/components/SplitText/utils/wrapLines.d.ts +3 -1
  418. package/lib/types/components/SplitText/utils/wrapLines.d.ts.map +1 -1
  419. package/lib/types/components/SplitText/utils/wrapWords.d.ts +3 -1
  420. package/lib/types/components/SplitText/utils/wrapWords.d.ts.map +1 -1
  421. package/lib/types/components/Timeline/index.d.ts +69 -21
  422. package/lib/types/components/Timeline/index.d.ts.map +1 -1
  423. package/lib/types/components/Timeline/types.d.ts +32 -7
  424. package/lib/types/components/Timeline/types.d.ts.map +1 -1
  425. package/lib/types/components/index.d.ts +4 -4
  426. package/lib/types/components/index.d.ts.map +1 -1
  427. package/lib/types/index.d.ts +9 -2
  428. package/lib/types/index.d.ts.map +1 -1
  429. package/lib/types/types/index.d.ts +3 -0
  430. package/lib/types/types/index.d.ts.map +1 -0
  431. package/lib/types/types/utility.d.ts +2 -3
  432. package/lib/types/types/utility.d.ts.map +1 -1
  433. package/lib/types/utils/common/PCancelable.d.ts +16 -0
  434. package/lib/types/utils/common/PCancelable.d.ts.map +1 -1
  435. package/lib/types/utils/common/normalizedTimeoutCallback.d.ts +19 -4
  436. package/lib/types/utils/common/normalizedTimeoutCallback.d.ts.map +1 -1
  437. package/lib/types/utils/common/objectKeys.d.ts +11 -1
  438. package/lib/types/utils/common/objectKeys.d.ts.map +1 -1
  439. package/lib/types/utils/common/pickObjectProps.d.ts +14 -2
  440. package/lib/types/utils/common/pickObjectProps.d.ts.map +1 -1
  441. package/lib/types/utils/common/times.d.ts +12 -3
  442. package/lib/types/utils/common/times.d.ts.map +1 -1
  443. package/lib/types/utils/common/uid.d.ts +4 -2
  444. package/lib/types/utils/common/uid.d.ts.map +1 -1
  445. package/lib/types/utils/image/load.d.ts +8 -5
  446. package/lib/types/utils/image/load.d.ts.map +1 -1
  447. package/lib/types/utils/image/pathsToProps.d.ts +10 -4
  448. package/lib/types/utils/image/pathsToProps.d.ts.map +1 -1
  449. package/lib/types/utils/image/sizesToSrcSet.d.ts +7 -3
  450. package/lib/types/utils/image/sizesToSrcSet.d.ts.map +1 -1
  451. package/lib/types/utils/internal/getApp.d.ts +9 -1
  452. package/lib/types/utils/internal/getApp.d.ts.map +1 -1
  453. package/lib/types/utils/listeners/isIntersectionObserverSupported.d.ts +1 -1
  454. package/lib/types/utils/listeners/onResize.d.ts +11 -12
  455. package/lib/types/utils/listeners/onResize.d.ts.map +1 -1
  456. package/lib/types/utils/math/clamp.d.ts +7 -2
  457. package/lib/types/utils/math/clamp.d.ts.map +1 -1
  458. package/lib/types/utils/math/clampScope.d.ts +8 -1
  459. package/lib/types/utils/math/clampScope.d.ts.map +1 -1
  460. package/lib/types/utils/math/easing.d.ts +4 -1
  461. package/lib/types/utils/math/easing.d.ts.map +1 -1
  462. package/lib/types/utils/math/inScope.d.ts +5 -2
  463. package/lib/types/utils/math/inScope.d.ts.map +1 -1
  464. package/lib/types/utils/math/lerp.d.ts +10 -2
  465. package/lib/types/utils/math/lerp.d.ts.map +1 -1
  466. package/lib/types/utils/math/normalizeNestedScope.d.ts +12 -3
  467. package/lib/types/utils/math/normalizeNestedScope.d.ts.map +1 -1
  468. package/lib/types/utils/math/scoped.d.ts +16 -5
  469. package/lib/types/utils/math/scoped.d.ts.map +1 -1
  470. package/lib/types/utils/math/spreadScope.d.ts +17 -3
  471. package/lib/types/utils/math/spreadScope.d.ts.map +1 -1
  472. package/lib/types/utils/math/wrap.d.ts +9 -3
  473. package/lib/types/utils/math/wrap.d.ts.map +1 -1
  474. package/lib/types/utils/scroll/getScrollValues.d.ts +13 -1
  475. package/lib/types/utils/scroll/getScrollValues.d.ts.map +1 -1
  476. package/lib/types/utils/scroll/isPageScrolling.d.ts +20 -0
  477. package/lib/types/utils/scroll/isPageScrolling.d.ts.map +1 -1
  478. package/lib/types/utils/scroll/normalizeWheel.d.ts +10 -2
  479. package/lib/types/utils/scroll/normalizeWheel.d.ts.map +1 -1
  480. package/lib/types/utils/scroll/onScroll.d.ts +10 -5
  481. package/lib/types/utils/scroll/onScroll.d.ts.map +1 -1
  482. package/lib/types/utils/scroll/scrollTo.d.ts +12 -9
  483. package/lib/types/utils/scroll/scrollTo.d.ts.map +1 -1
  484. package/lib/types/utils/scroll/scrollToElement.d.ts +9 -7
  485. package/lib/types/utils/scroll/scrollToElement.d.ts.map +1 -1
  486. package/lib/types/version.d.ts +1 -1
  487. package/package.json +6 -7
  488. package/src/{Application → Vevet}/events/createOnPageLoad/index.ts +8 -8
  489. package/src/Vevet/events/createOnPageLoad/types.ts +21 -0
  490. package/src/{Application → Vevet}/events/createViewport/index.ts +33 -35
  491. package/src/{Application → Vevet}/events/createViewport/stories/index.tsx +7 -5
  492. package/src/Vevet/events/createViewport/types.ts +93 -0
  493. package/src/Vevet/exported.ts +15 -0
  494. package/src/Vevet/global.ts +51 -0
  495. package/src/Vevet/index.ts +98 -0
  496. package/src/{Application → Vevet}/stories/index.tsx +2 -2
  497. package/src/Vevet/types.ts +48 -0
  498. package/src/base/Callbacks/index.ts +70 -51
  499. package/src/base/Callbacks/types.ts +53 -14
  500. package/src/base/Component/index.ts +19 -5
  501. package/src/base/Component/types.ts +15 -3
  502. package/src/base/Module/index.ts +125 -78
  503. package/src/base/Module/types.ts +32 -3
  504. package/src/base/MutableProps/index.ts +44 -73
  505. package/src/base/MutableProps/types.ts +15 -8
  506. package/src/base/Plugin/index.ts +24 -1
  507. package/src/base/Plugin/types.ts +11 -0
  508. package/src/components/AnimationFrame/index.ts +21 -28
  509. package/src/components/AnimationFrame/types.ts +23 -3
  510. package/src/components/Ctx2D/index.ts +46 -34
  511. package/src/components/Ctx2D/types.ts +53 -13
  512. package/src/components/Ctx2DPrerender/index.ts +18 -7
  513. package/src/components/Ctx2DPrerender/types.ts +13 -2
  514. package/src/components/CustomCursor/index.ts +85 -60
  515. package/src/components/CustomCursor/stories/index.tsx +0 -3
  516. package/src/components/CustomCursor/types.ts +63 -12
  517. package/src/components/{SmoothScroll → CustomScroll}/AnimatonFrame.ts +2 -2
  518. package/src/components/{SmoothScroll → CustomScroll}/Elements.ts +14 -14
  519. package/src/components/{SmoothScroll → CustomScroll}/index.ts +61 -44
  520. package/src/components/{SmoothScroll → CustomScroll}/stories/Default.tsx +8 -8
  521. package/src/components/{SmoothScroll → CustomScroll}/stories/WithHorizontal.tsx +9 -9
  522. package/src/components/{SmoothScroll → CustomScroll}/stories/WithInnerLerp.tsx +9 -9
  523. package/src/components/{SmoothScroll → CustomScroll}/stories/index.stories.tsx +1 -1
  524. package/src/components/CustomScroll/types.ts +165 -0
  525. package/src/components/{SmoothScrollDragPlugin → CustomScrollDragPlugin}/index.ts +41 -41
  526. package/src/components/{SmoothScrollDragPlugin → CustomScrollDragPlugin}/stories/index.stories.tsx +1 -1
  527. package/src/components/{SmoothScrollDragPlugin → CustomScrollDragPlugin}/stories/index.tsx +10 -10
  528. package/src/components/CustomScrollDragPlugin/types.ts +59 -0
  529. package/src/components/{SmoothScrollKeyboardPlugin → CustomScrollKeyboardPlugin}/index.ts +47 -43
  530. package/src/components/{SmoothScrollKeyboardPlugin → CustomScrollKeyboardPlugin}/stories/index.stories.tsx +1 -1
  531. package/src/components/{SmoothScrollKeyboardPlugin → CustomScrollKeyboardPlugin}/stories/index.tsx +10 -10
  532. package/src/components/{SmoothScrollKeyboardPlugin → CustomScrollKeyboardPlugin}/types.ts +6 -2
  533. package/src/components/DraggerBase/index.ts +101 -37
  534. package/src/components/DraggerBase/types.ts +25 -3
  535. package/src/components/DraggerDirection/index.ts +12 -6
  536. package/src/components/DraggerDirection/types.ts +18 -1
  537. package/src/components/DraggerMove/index.ts +44 -13
  538. package/src/components/DraggerMove/types.ts +17 -2
  539. package/src/components/Marquee/index.ts +255 -186
  540. package/src/components/Marquee/stories/index.tsx +16 -2
  541. package/src/components/Marquee/types.ts +18 -8
  542. package/src/components/Preloader/index.ts +56 -20
  543. package/src/components/Preloader/types.ts +18 -5
  544. package/src/components/ProgressPreloader/index.ts +104 -48
  545. package/src/components/ProgressPreloader/types.ts +65 -14
  546. package/src/components/ProgressPreloader/utils/preloadCustomElement.ts +13 -2
  547. package/src/components/ScrollBar/Bar/index.ts +112 -62
  548. package/src/components/ScrollBar/Bar/types.ts +46 -17
  549. package/src/components/ScrollBar/index.ts +65 -20
  550. package/src/components/ScrollBar/stories/{WithSmoothScrollComponent.tsx → WithCustomScrollComponent.tsx} +5 -5
  551. package/src/components/ScrollBar/stories/index.stories.tsx +3 -3
  552. package/src/components/ScrollBar/types.ts +10 -6
  553. package/src/components/ScrollView/index.ts +73 -27
  554. package/src/components/ScrollView/stories/index.tsx +5 -2
  555. package/src/components/SectionScrollProgress/index.ts +97 -41
  556. package/src/components/SectionScrollProgress/stories/WithCustomScroll.tsx +6 -6
  557. package/src/components/SectionScrollProgress/types.ts +19 -6
  558. package/src/components/SlideProgress/index.ts +78 -45
  559. package/src/components/SlideProgress/types.ts +24 -15
  560. package/src/components/SplitText/index.ts +71 -31
  561. package/src/components/SplitText/types.ts +48 -8
  562. package/src/components/SplitText/utils/splitBase.ts +6 -2
  563. package/src/components/SplitText/utils/wrapLetters.ts +11 -3
  564. package/src/components/SplitText/utils/wrapLines.ts +11 -5
  565. package/src/components/SplitText/utils/wrapWords.ts +14 -3
  566. package/src/components/Timeline/index.ts +98 -26
  567. package/src/components/Timeline/stories/index.stories.tsx +0 -5
  568. package/src/components/Timeline/types.ts +37 -7
  569. package/src/components/index.ts +4 -4
  570. package/src/index.ts +14 -4
  571. package/src/styles/base.scss +0 -2
  572. package/src/styles/components/CustomCursor.scss +7 -7
  573. package/{lib/styles/components/SmoothScroll.scss → src/styles/components/CustomScroll.scss} +3 -3
  574. package/src/styles/components/Preloader.scss +1 -1
  575. package/src/styles/components/ScrollBar.scss +4 -4
  576. package/src/styles/components/index.scss +1 -1
  577. package/src/styles/index.scss +0 -1
  578. package/src/types/index.ts +2 -0
  579. package/src/types/utility.ts +2 -2
  580. package/src/utils/common/PCancelable.ts +17 -0
  581. package/src/utils/common/normalizedTimeoutCallback.ts +19 -4
  582. package/src/utils/common/objectKeys.ts +12 -2
  583. package/src/utils/common/pickObjectProps.ts +16 -4
  584. package/src/utils/common/times.ts +12 -3
  585. package/src/utils/common/uid.ts +5 -3
  586. package/src/utils/image/load.ts +9 -4
  587. package/src/utils/image/pathsToProps.ts +12 -5
  588. package/src/utils/image/sizesToSrcSet.ts +7 -3
  589. package/src/utils/internal/getApp.ts +25 -0
  590. package/src/utils/listeners/isIntersectionObserverSupported.ts +1 -1
  591. package/src/utils/listeners/onResize.ts +16 -21
  592. package/src/utils/math/clamp.ts +10 -5
  593. package/src/utils/math/clampScope.ts +9 -2
  594. package/src/utils/math/easing.ts +6 -2
  595. package/src/utils/math/inScope.ts +6 -3
  596. package/src/utils/math/lerp.ts +11 -3
  597. package/src/utils/math/normalizeNestedScope.ts +12 -3
  598. package/src/utils/math/scoped.ts +17 -6
  599. package/src/utils/math/spreadScope.ts +17 -3
  600. package/src/utils/math/wrap.ts +9 -3
  601. package/src/utils/scroll/getScrollValues.ts +13 -1
  602. package/src/utils/scroll/isPageScrolling.ts +31 -0
  603. package/src/utils/scroll/normalizeWheel.ts +10 -2
  604. package/src/utils/scroll/onScroll.ts +18 -11
  605. package/src/utils/scroll/scrollTo.ts +16 -10
  606. package/src/utils/scroll/scrollToElement.ts +9 -7
  607. package/src/version.ts +1 -1
  608. package/lib/cjs/Application/events/createOnPageLoad/index.js.map +0 -1
  609. package/lib/cjs/Application/events/createOnPageLoad/types.js.map +0 -1
  610. package/lib/cjs/Application/events/createViewport/index.js.map +0 -1
  611. package/lib/cjs/Application/events/createViewport/types.js.map +0 -1
  612. package/lib/cjs/Application/index.js +0 -222
  613. package/lib/cjs/Application/index.js.map +0 -1
  614. package/lib/cjs/components/BaseTimeline/index.js +0 -125
  615. package/lib/cjs/components/BaseTimeline/index.js.map +0 -1
  616. package/lib/cjs/components/BaseTimeline/types.js.map +0 -1
  617. package/lib/cjs/components/SmoothScroll/index.js.map +0 -1
  618. package/lib/cjs/components/SmoothScroll/types.js.map +0 -1
  619. package/lib/cjs/components/SmoothScrollDragPlugin/index.js.map +0 -1
  620. package/lib/cjs/components/SmoothScrollDragPlugin/types.js.map +0 -1
  621. package/lib/cjs/components/SmoothScrollKeyboardPlugin/index.js.map +0 -1
  622. package/lib/cjs/components/SmoothScrollKeyboardPlugin/types.js +0 -3
  623. package/lib/cjs/components/SmoothScrollKeyboardPlugin/types.js.map +0 -1
  624. package/lib/cjs/utils/internal/fetchWebpSupport.js.map +0 -1
  625. package/lib/cjs/utils/internal/getDeviceInfo.js.map +0 -1
  626. package/lib/cjs/vevet.js +0 -6
  627. package/lib/cjs/vevet.js.map +0 -1
  628. package/lib/esm/Application/events/createOnPageLoad/index.js.map +0 -1
  629. package/lib/esm/Application/events/createOnPageLoad/types.js.map +0 -1
  630. package/lib/esm/Application/events/createViewport/index.js.map +0 -1
  631. package/lib/esm/Application/events/createViewport/types.js.map +0 -1
  632. package/lib/esm/Application/index.js +0 -134
  633. package/lib/esm/Application/index.js.map +0 -1
  634. package/lib/esm/components/BaseTimeline/index.js +0 -75
  635. package/lib/esm/components/BaseTimeline/index.js.map +0 -1
  636. package/lib/esm/components/BaseTimeline/types.js.map +0 -1
  637. package/lib/esm/components/SmoothScroll/index.js.map +0 -1
  638. package/lib/esm/components/SmoothScroll/types.js.map +0 -1
  639. package/lib/esm/components/SmoothScrollDragPlugin/index.js.map +0 -1
  640. package/lib/esm/components/SmoothScrollDragPlugin/types.js.map +0 -1
  641. package/lib/esm/components/SmoothScrollKeyboardPlugin/index.js.map +0 -1
  642. package/lib/esm/components/SmoothScrollKeyboardPlugin/types.js +0 -2
  643. package/lib/esm/components/SmoothScrollKeyboardPlugin/types.js.map +0 -1
  644. package/lib/esm/utils/internal/fetchWebpSupport.js.map +0 -1
  645. package/lib/esm/utils/internal/getDeviceInfo.js.map +0 -1
  646. package/lib/esm/vevet.js +0 -3
  647. package/lib/esm/vevet.js.map +0 -1
  648. package/lib/styles/globals/index.scss +0 -18
  649. package/lib/types/Application/events/createOnPageLoad/index.d.ts +0 -5
  650. package/lib/types/Application/events/createOnPageLoad/index.d.ts.map +0 -1
  651. package/lib/types/Application/events/createOnPageLoad/types.d.ts +0 -5
  652. package/lib/types/Application/events/createOnPageLoad/types.d.ts.map +0 -1
  653. package/lib/types/Application/events/createViewport/index.d.ts +0 -20
  654. package/lib/types/Application/events/createViewport/index.d.ts.map +0 -1
  655. package/lib/types/Application/events/createViewport/types.d.ts +0 -52
  656. package/lib/types/Application/events/createViewport/types.d.ts.map +0 -1
  657. package/lib/types/Application/index.d.ts +0 -89
  658. package/lib/types/Application/index.d.ts.map +0 -1
  659. package/lib/types/Application/types.d.ts +0 -41
  660. package/lib/types/Application/types.d.ts.map +0 -1
  661. package/lib/types/components/BaseTimeline/index.d.ts +0 -40
  662. package/lib/types/components/BaseTimeline/index.d.ts.map +0 -1
  663. package/lib/types/components/BaseTimeline/types.d.ts +0 -34
  664. package/lib/types/components/BaseTimeline/types.d.ts.map +0 -1
  665. package/lib/types/components/SmoothScroll/index.d.ts.map +0 -1
  666. package/lib/types/components/SmoothScroll/types.d.ts +0 -105
  667. package/lib/types/components/SmoothScroll/types.d.ts.map +0 -1
  668. package/lib/types/components/SmoothScrollDragPlugin/index.d.ts +0 -50
  669. package/lib/types/components/SmoothScrollDragPlugin/index.d.ts.map +0 -1
  670. package/lib/types/components/SmoothScrollDragPlugin/types.d.ts +0 -39
  671. package/lib/types/components/SmoothScrollDragPlugin/types.d.ts.map +0 -1
  672. package/lib/types/components/SmoothScrollKeyboardPlugin/index.d.ts +0 -31
  673. package/lib/types/components/SmoothScrollKeyboardPlugin/index.d.ts.map +0 -1
  674. package/lib/types/components/SmoothScrollKeyboardPlugin/types.d.ts +0 -12
  675. package/lib/types/utils/internal/fetchWebpSupport.d.ts +0 -3
  676. package/lib/types/utils/internal/fetchWebpSupport.d.ts.map +0 -1
  677. package/lib/types/utils/internal/getDeviceInfo.d.ts.map +0 -1
  678. package/lib/types/vevet.d.ts +0 -3
  679. package/lib/types/vevet.d.ts.map +0 -1
  680. package/src/Application/events/createOnPageLoad/types.ts +0 -5
  681. package/src/Application/events/createViewport/types.ts +0 -55
  682. package/src/Application/index.ts +0 -204
  683. package/src/Application/types.ts +0 -41
  684. package/src/components/BaseTimeline/index.ts +0 -123
  685. package/src/components/BaseTimeline/stories/Basic.tsx +0 -65
  686. package/src/components/BaseTimeline/stories/Nested.tsx +0 -108
  687. package/src/components/BaseTimeline/stories/index.stories.tsx +0 -16
  688. package/src/components/BaseTimeline/types.ts +0 -36
  689. package/src/components/SmoothScroll/types.ts +0 -114
  690. package/src/components/SmoothScrollDragPlugin/types.ts +0 -40
  691. package/src/components/Timeline/stories/Nested.tsx +0 -135
  692. package/src/styles/globals/index.scss +0 -18
  693. package/src/vevet.ts +0 -4
  694. /package/lib/cjs/{Application → Vevet}/events/createOnPageLoad/types.js +0 -0
  695. /package/lib/cjs/{Application → Vevet}/events/createViewport/types.js +0 -0
  696. /package/lib/cjs/{Application → Vevet}/types.js +0 -0
  697. /package/lib/cjs/{utils/internal → Vevet/utils}/getDeviceInfo.js +0 -0
  698. /package/lib/cjs/components/{BaseTimeline → CustomScroll}/types.js +0 -0
  699. /package/lib/cjs/components/{SmoothScroll → CustomScrollDragPlugin}/types.js +0 -0
  700. /package/lib/cjs/components/{SmoothScrollDragPlugin → CustomScrollKeyboardPlugin}/types.js +0 -0
  701. /package/lib/esm/{Application → Vevet}/events/createOnPageLoad/types.js +0 -0
  702. /package/lib/esm/{Application → Vevet}/events/createViewport/types.js +0 -0
  703. /package/lib/esm/{Application → Vevet}/types.js +0 -0
  704. /package/lib/esm/{utils/internal → Vevet/utils}/getDeviceInfo.js +0 -0
  705. /package/lib/esm/components/{BaseTimeline → CustomScroll}/types.js +0 -0
  706. /package/lib/esm/components/{SmoothScroll → CustomScrollDragPlugin}/types.js +0 -0
  707. /package/lib/esm/components/{SmoothScrollDragPlugin → CustomScrollKeyboardPlugin}/types.js +0 -0
  708. /package/lib/types/{utils/internal → Vevet/utils}/getDeviceInfo.d.ts +0 -0
  709. /package/lib/types/components/{SmoothScroll → CustomScroll}/AnimatonFrame.d.ts +0 -0
  710. /package/src/{Application → Vevet}/events/.eslintrc +0 -0
  711. /package/src/{Application → Vevet}/events/createViewport/stories/index.stories.tsx +0 -0
  712. /package/src/{Application → Vevet}/stories/index.stories.tsx +0 -0
  713. /package/src/{utils/internal → Vevet/utils}/fetchWebpSupport.ts +0 -0
  714. /package/src/{utils/internal → Vevet/utils}/getDeviceInfo.ts +0 -0
@@ -1,326 +1,395 @@
1
1
  import { selectOne } from 'vevet-dom';
2
2
  import { NMarquee } from './types';
3
3
  import { Component as ComponentClass } from '@/base/Component';
4
- import { wrap } from '@/utils/math';
5
- import { onResize } from '@/utils/listeners/onResize';
6
4
  import { AnimationFrame } from '../AnimationFrame';
7
5
  import { getApp } from '@/utils/internal/getApp';
6
+ import { wrap } from '@/utils/math';
7
+ import { onResize } from '@/utils/listeners';
8
8
 
9
9
  export type { NMarquee };
10
10
 
11
11
  /**
12
- * Custom Marquee
12
+ * A custom marquee component that smoothly scrolls its child elements.
13
+ *
14
+ * This component is designed to loop elements horizontally within a container,
15
+ * with support for customization such as speed, gap, pause on hover, and more.
13
16
  */
14
17
  export class Marquee<
15
18
  StaticProps extends NMarquee.IStaticProps = NMarquee.IStaticProps,
16
19
  ChangeableProps extends NMarquee.IChangeableProps = NMarquee.IChangeableProps,
17
20
  CallbacksTypes extends NMarquee.ICallbacksTypes = NMarquee.ICallbacksTypes,
18
21
  > extends ComponentClass<StaticProps, ChangeableProps, CallbacksTypes> {
22
+ /**
23
+ * Returns the default properties for the marquee.
24
+ */
19
25
  protected _getDefaultProps() {
20
26
  return {
21
27
  ...super._getDefaultProps(),
22
28
  container: `#${this.prefix}`,
23
- viewportTarget: 'width',
24
29
  resizeDebounce: 0,
30
+ hasWillChange: true,
31
+ canCloneNodes: true,
25
32
  speed: 1,
33
+ gap: 0,
26
34
  isEnabled: true,
27
35
  pauseOnHover: false,
28
- prependWhitespace: true,
29
36
  isFpsNormalized: true,
37
+ isCentered: false,
30
38
  };
31
39
  }
32
40
 
41
+ /**
42
+ * Returns the prefix for the marquee.
43
+ */
33
44
  get prefix() {
34
45
  return `${getApp().prefix}marquee`;
35
46
  }
36
47
 
37
- /** Marquee container */
48
+ /** Marquee container element */
38
49
  protected _container: HTMLElement;
39
50
 
40
- /** Marquee container */
51
+ /** Marquee container element */
41
52
  get container() {
42
53
  return this._container;
43
54
  }
44
55
 
45
- /** Initial html */
46
- protected _initialHTML: string;
56
+ /** Current container width */
57
+ private _width = 0;
58
+
59
+ /** Initial child nodes of the container */
60
+ private _initialNodes: ChildNode[] = [];
61
+
62
+ /** Array of marquee element nodes */
63
+ private _elements: HTMLElement[] = [];
64
+
65
+ /** Timeout for resize debounce */
66
+ private _resizeTimeout: NodeJS.Timeout | null = null;
67
+
68
+ /** Array of widths of each element in the marquee */
69
+ private _widths: number[] = [];
70
+
71
+ /** Total width of all elements in the marquee */
72
+ private _totalWidth = 0;
47
73
 
48
- /** Mutation observer */
49
- protected _mutationObserver?: MutationObserver;
74
+ /** Total width of all elements in the marquee */
75
+ get totalWidth() {
76
+ return this._totalWidth;
77
+ }
50
78
 
51
- /** Items quantity */
52
- protected _quantity: number;
79
+ /** Last setup handler for teardown */
80
+ private _lastSetup?: () => void;
53
81
 
54
- /** Items */
55
- protected _items: HTMLElement[];
82
+ /** Current animation X position */
83
+ protected _x: number;
56
84
 
57
- /** Single item width */
58
- protected _itemWidth: number;
85
+ /** Current animation X position */
86
+ get x() {
87
+ return this._x;
88
+ }
59
89
 
60
- /** X Coordinate */
61
- protected _xCoord: number;
90
+ set x(value) {
91
+ this._x = value;
92
+ this.render(0);
93
+ }
62
94
 
63
- /** Can play */
95
+ /** Whether the marquee can play (used for pausing) */
64
96
  protected _canPlay: boolean;
65
97
 
66
- /** Animation frame */
67
- protected _animationFrame?: AnimationFrame;
98
+ /** Animation frame instance */
99
+ protected _raf: AnimationFrame;
68
100
 
69
101
  constructor(initialProps?: StaticProps & ChangeableProps, canInit = true) {
70
102
  super(initialProps, false);
71
103
 
72
104
  this._container = selectOne(this.props.container)! as HTMLElement;
73
- if (!(this._container instanceof HTMLElement)) {
105
+ const container = this._container;
106
+ if (!(container instanceof HTMLElement)) {
74
107
  throw new Error('No container');
75
108
  }
76
109
 
77
- this.toggleClassName(this._container, this.className(''), true);
110
+ this.toggleClassName(container, this.className(''), true);
78
111
 
79
- this._initialHTML = this._container.innerHTML;
80
- this._quantity = 0;
81
- this._items = [];
82
- this._itemWidth = 0;
83
- this._xCoord = 0;
112
+ // Initialize internal variables
113
+ this._x = 0;
84
114
  this._canPlay = true;
85
115
 
86
- this.resize();
116
+ // Apply base styles to the container
117
+ container.style.position = 'relative';
118
+ container.style.display = 'flex';
119
+ container.style.flexDirection = 'row';
120
+ container.style.alignItems = 'center';
121
+ container.style.justifyContent = 'flex-start';
122
+ container.style.width = '100%';
123
+ container.style.overflow = 'hidden';
124
+
125
+ // Setup elements in the marquee
126
+ this._setup();
127
+
128
+ // Create animation frame
129
+ this._raf = new AnimationFrame({
130
+ isEnabled: this.props.isEnabled,
131
+ });
132
+ this._raf.addCallback('frame', () => this._render());
87
133
 
134
+ // Initialize the component if canInit is true
88
135
  if (canInit) {
89
136
  this.init();
90
137
  }
91
138
  }
92
139
 
93
- /** Init the class */
140
+ /** Initializes the component and sets up event listeners */
94
141
  protected _init() {
95
142
  super._init();
96
143
 
97
144
  this._setEvents();
98
145
  }
99
146
 
100
- /** Handle properties mutation */
101
- protected _onPropsMutate() {
102
- super._onPropsMutate();
103
-
104
- if (this.props.isEnabled) {
105
- this._animationFrame?.play();
106
- } else {
107
- this._animationFrame?.pause();
108
- }
109
- }
110
-
111
- /** Set module event */
147
+ /** Sets up event listeners for the marquee component */
112
148
  protected _setEvents() {
113
149
  const { container, props } = this;
114
- const { viewportTarget, resizeDebounce } = props;
115
-
116
- // create animation frame
117
- this._animationFrame = new AnimationFrame();
118
- this._animationFrame.addCallback('frame', () => this._render());
119
- this.addDestroyableAction(() => this._animationFrame?.destroy());
120
150
 
121
- // initial play
122
- if (this.props.isEnabled) {
123
- this._animationFrame.play();
124
- }
125
-
126
- // pause on hover
151
+ // Pause on hover
127
152
  this.addEventListener(container, 'mouseenter', () => {
128
- if (this.props.pauseOnHover) {
153
+ if (props.pauseOnHover) {
129
154
  this._canPlay = false;
130
155
  }
131
156
  });
132
157
 
133
- // play on mouseleave
158
+ // Resume on mouse leave
134
159
  this.addEventListener(container, 'mouseleave', () => {
135
160
  this._canPlay = true;
136
161
  });
162
+ }
137
163
 
138
- // resize the scene
139
- const resizeHandler = onResize({
140
- onResize: () => this.resize(),
141
- element: this.container,
142
- viewportTarget,
143
- resizeDebounce,
144
- hasBothEvents: true,
145
- });
146
- this.addDestroyableAction(() => resizeHandler.remove());
164
+ /** Handles property changes and re-renders the component */
165
+ protected _onPropsMutate() {
166
+ super._onPropsMutate();
147
167
 
148
- // resize on page load
149
- getApp()
150
- .onPageLoad()
151
- .then(() => this.resize())
152
- .catch(() => {});
168
+ if (this.props.isEnabled) {
169
+ this._raf?.play();
170
+ } else {
171
+ this._raf?.pause();
172
+ }
173
+
174
+ // Rerender the elements
175
+ this.render(0);
153
176
  }
154
177
 
155
- public resize() {
178
+ /** Initializes the marquee setup, including resizing and cloning elements */
179
+ protected _setup() {
180
+ this._lastSetup?.();
181
+
156
182
  if (this.isDestroyed) {
157
183
  return;
158
184
  }
159
185
 
160
- this._createItems();
161
- }
162
-
163
- protected _createItems() {
164
- this._disconnectMutations();
186
+ const container = this._container;
165
187
 
166
- const { container } = this;
188
+ // Save initial child nodes
189
+ this._initialNodes = [...Array.from(container.childNodes)];
167
190
 
168
- // clear
169
- this._quantity = 0;
170
- this._items = [];
171
- this.container.innerHTML = '';
191
+ // Wrap text node if necessary
192
+ this._wrapTextNode();
172
193
 
173
- // apply styles to the container
174
- container.style.position = 'relative';
175
- container.style.display = 'block';
176
- container.style.width = '100%';
177
- container.style.overflow = 'hidden';
178
- container.style.whiteSpace = 'nowrap';
194
+ // Store element references
195
+ this._elements = Array.from(container.querySelectorAll('*'));
179
196
 
180
- // create the first item and get its sizes
181
- // to calculate the further quantity of inner elements
182
- const firstItem = this._createItem(true);
183
-
184
- // get first item width
185
- let itemWidth = firstItem.clientWidth;
186
- if (itemWidth <= 0) {
187
- itemWidth = window.innerWidth;
188
- }
189
- this._itemWidth = itemWidth;
197
+ // Handle container resizing
198
+ const onContainerResize = onResize({
199
+ onResize: () => this._handleResize(),
200
+ element: container,
201
+ viewportTarget: 'width',
202
+ hasBothEvents: false,
203
+ });
190
204
 
191
- // get items quantity
192
- if (itemWidth < container.clientWidth) {
193
- this._quantity = Math.ceil(
194
- (container.clientWidth + itemWidth) / itemWidth,
195
- );
196
- }
197
- this._quantity = Math.max(this._quantity, 4);
205
+ // Resize on page load
206
+ getApp()
207
+ .onPageLoad()
208
+ .then(() => this._handleResize())
209
+ .catch(() => {});
198
210
 
199
- // now when we know the total quantity,
200
- // we can create the rest of the items
201
- for (let index = 1; index < this._quantity; index += 1) {
202
- this._createItem(false);
203
- }
211
+ // Set resize events for individual elements
212
+ const elementsResize = onResize({
213
+ onResize: () => this._handleResize(),
214
+ element: this._elements,
215
+ viewportTarget: 'width',
216
+ hasBothEvents: false,
217
+ });
204
218
 
205
- // render for the first time
206
- this._render(0);
219
+ // Add necessary styles to elements
220
+ this._elements.forEach((element, index) =>
221
+ this._addElementStyles(element, index !== 0),
222
+ );
207
223
 
208
- // enable mutation observer
209
- this._observeMutations();
224
+ // Setup cleanup function
225
+ this._lastSetup = () => {
226
+ onContainerResize.remove();
227
+ elementsResize.remove();
228
+ };
210
229
  }
211
230
 
212
- /** Create a single item */
213
- protected _createItem(isFirst = false) {
214
- const element = document.createElement('div');
215
- element.classList.add(this.className('__element'));
231
+ /**
232
+ * Wraps the first text node in the container in a span if no other elements exist.
233
+ */
234
+ private _wrapTextNode() {
235
+ const node = this._container.childNodes[0];
216
236
 
217
- if (!isFirst) {
218
- element.setAttribute('aria-hidden', 'true');
237
+ // Wrap text node if it's the first child and not already wrapped
238
+ if (!node || node.nodeType !== 3) {
239
+ return;
219
240
  }
220
241
 
221
- const prefix = `${this.props.prependWhitespace ? '&nbsp;' : ''}`;
222
- const body = this._initialHTML;
242
+ const wrapper = document.createElement('span');
243
+ wrapper.style.position = 'relative';
244
+ wrapper.style.display = 'block';
245
+ wrapper.style.width = 'max-content';
246
+ wrapper.style.whiteSpace = 'nowrap';
247
+ wrapper.appendChild(node);
248
+ this._container.appendChild(wrapper);
249
+ }
223
250
 
224
- element.innerHTML = `${prefix}${body}`;
251
+ /**
252
+ * Adds necessary styles to a given element.
253
+ */
254
+ private _addElementStyles(element: HTMLElement, isAbsolute: boolean) {
255
+ const el = element;
256
+
257
+ el.style.position = isAbsolute ? 'absolute' : 'relative';
258
+ el.style.top = isAbsolute ? '50%' : '0';
259
+ el.style.left = '0';
260
+ el.style.width = element.style.width || 'max-content';
261
+ el.style.willChange = this.props.hasWillChange ? 'transform' : '';
262
+ }
225
263
 
226
- // apply styles
227
- if (!isFirst) {
228
- element.style.position = 'absolute';
229
- element.style.top = '0';
230
- element.style.left = '0';
264
+ /** Handles resize events and updates the layout accordingly */
265
+ private _handleResize() {
266
+ if (this.isDestroyed) {
267
+ return;
231
268
  }
232
269
 
233
- element.style.display = 'inline-block';
234
-
235
- // append the element
236
- this.container.appendChild(element);
237
- this._items.push(element);
270
+ if (this._resizeTimeout) {
271
+ clearTimeout(this._resizeTimeout);
272
+ }
238
273
 
239
- return element;
274
+ this._resizeTimeout = setTimeout(
275
+ () => this.resize(),
276
+ this.props.resizeDebounce,
277
+ );
240
278
  }
241
279
 
242
- /**
243
- * Observe DOM changes
244
- * If a change happens inside the parent element,
245
- * we recreate the marquee element
246
- */
247
- protected _observeMutations() {
248
- if (this._mutationObserver) {
280
+ /** Resizes the marquee, recalculating element positions and cloning if necessary */
281
+ public resize() {
282
+ if (this.isDestroyed) {
249
283
  return;
250
284
  }
251
285
 
252
- const config: MutationObserverInit = {
253
- childList: true,
254
- };
286
+ const { container, props } = this;
255
287
 
256
- const callback: MutationCallback = (mutationsList) => {
257
- mutationsList.forEach((mutation) => {
258
- if (mutation.type === 'childList') {
259
- this._initialHTML = this.container.innerHTML;
288
+ // Update container width
289
+ this._width = container.offsetWidth;
260
290
 
261
- this._createItems();
262
- }
263
- });
264
- };
291
+ // Update element widths
292
+ this._widths = [];
293
+ this._elements.forEach((element, index) => {
294
+ this._widths[index] = element.offsetWidth + props.gap;
295
+ });
296
+ this._totalWidth = this._widths.reduce((a, b) => a + b, 0);
297
+
298
+ // Determine how many times to duplicate elements
299
+ const maxWidth = Math.max(...this._widths);
300
+ const copyQuantity = Math.ceil((this._width + maxWidth) / this._totalWidth);
301
+
302
+ // update total width
303
+ this._totalWidth = Math.max(this._totalWidth, this._width + maxWidth);
304
+
305
+ // Clone elements if necessary
306
+ if (props.canCloneNodes && copyQuantity > 1) {
307
+ for (let i = 1; i < copyQuantity; i += 1) {
308
+ this._elements.forEach((element) => {
309
+ const copy = element.cloneNode(true) as HTMLElement;
310
+ this._addElementStyles(copy, true);
311
+ container.appendChild(copy);
312
+ });
313
+ }
265
314
 
266
- this._mutationObserver = new MutationObserver(callback);
267
- this._mutationObserver.observe(this.container, config);
268
- }
315
+ // Update element references after cloning
316
+ this._elements = Array.from(container.querySelectorAll('*'));
317
+ this.resize();
318
+ }
269
319
 
270
- /**
271
- * Destroy mutation observer
272
- */
273
- protected _disconnectMutations() {
274
- this._mutationObserver?.disconnect();
275
- this._mutationObserver = undefined;
320
+ // Trigger resize callbacks
321
+ this.callbacks.tbt('resize', undefined);
322
+
323
+ // Rerender the marquee
324
+ this.render(0);
276
325
  }
277
326
 
278
- /** Render marquee */
279
- public render(speed = this.props.speed) {
327
+ /** Renders the marquee, adjusting element positions */
328
+ public render(speed?: number) {
280
329
  this._render(speed);
281
330
  }
282
331
 
283
- /** Render marquee */
284
- protected _render(speedProp?: number) {
285
- if (!this._canPlay) {
332
+ /**
333
+ * Renders the marquee, calculating element positions based on the provided speed.
334
+ */
335
+ protected _render(speedProp = this.props.speed) {
336
+ if (!this._canPlay || this.isDestroyed) {
286
337
  return;
287
338
  }
288
339
 
289
- const { _quantity: qunantity, _itemWidth: itemWidth, props } = this;
290
- const { isFpsNormalized } = props;
340
+ const { isFpsNormalized, isCentered } = this.props;
291
341
 
292
- const fpsMultiplier = isFpsNormalized
293
- ? (this._animationFrame?.easeMultiplier ?? 1)
294
- : 1;
342
+ // Calculate speed, adjusting for frame rate if necessary
343
+ const fpsMultiplier = isFpsNormalized ? this._raf.fpsMultiplier : 1;
344
+ const speed = speedProp * fpsMultiplier;
295
345
 
296
- const defaultSpeed = props.speed * fpsMultiplier;
297
- const speed = speedProp ?? defaultSpeed;
346
+ // Update animation time
347
+ this._x -= speed;
298
348
 
299
- this._xCoord -= speed;
349
+ // Calculate current position of the elements
350
+ const centerX = this._width * 0.5;
351
+ const position = this._x + (isCentered ? centerX : 0);
300
352
 
301
- // get total width
302
- const totalWidth = itemWidth * (qunantity - 1);
353
+ // Update each element's position
354
+ let prevStaticX = 0;
355
+ for (let index = 0; index < this._elements.length; index += 1) {
356
+ const element = this._elements[index];
357
+ const elementWidth = this._widths[index];
303
358
 
304
- // render elements
305
- for (let index = 0; index < qunantity; index += 1) {
306
- const element = this._items[index];
359
+ const x = wrap(
360
+ -elementWidth,
361
+ this._totalWidth - elementWidth,
362
+ position + prevStaticX,
363
+ );
307
364
 
308
- // calulate transforms
309
- const x = wrap(-itemWidth, totalWidth, this._xCoord + itemWidth * index);
365
+ // Apply transformations to position the element
366
+ const y = element.style.position === 'relative' ? '0' : '-50%';
367
+ element.style.transform = `translate(${x}px, ${y})`;
310
368
 
311
- // apply transforms
312
- element.style.transform = `matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0, ${x}, 0, 0,1)`;
369
+ prevStaticX += elementWidth;
313
370
  }
314
371
 
315
- // callbacks
372
+ // Trigger render callbacks
316
373
  this.callbacks.tbt('render', undefined);
317
374
  }
318
375
 
376
+ /** Destroys the marquee and removes all event listeners */
319
377
  protected _destroy() {
320
378
  super._destroy();
321
379
 
322
- this._disconnectMutations();
380
+ this._raf?.destroy();
381
+ this._lastSetup?.();
382
+
383
+ if (this._resizeTimeout) {
384
+ clearTimeout(this._resizeTimeout);
385
+ this._resizeTimeout = null;
386
+ }
387
+
388
+ // Remove all children and restore the initial nodes
389
+ while (this._container.firstChild) {
390
+ this._container.removeChild(this._container.firstChild);
391
+ }
323
392
 
324
- this.container.innerHTML = this._initialHTML;
393
+ this._initialNodes.forEach((node) => this._container.appendChild(node));
325
394
  }
326
395
  }
@@ -1,5 +1,6 @@
1
1
  import React, { FC, useEffect, useRef, useState } from 'react';
2
2
  import { Marquee, NMarquee } from '..';
3
+ import { times } from '@/utils/common';
3
4
 
4
5
  interface IProps extends NMarquee.IChangeableProps {}
5
6
 
@@ -17,6 +18,8 @@ export const Component: FC<IProps> = (props) => {
17
18
  const instance = new Marquee({
18
19
  ...props,
19
20
  container: ref.current,
21
+ gap: 10,
22
+ isCentered: true,
20
23
  });
21
24
 
22
25
  setMarquee(instance);
@@ -48,12 +51,23 @@ export const Component: FC<IProps> = (props) => {
48
51
  Manual render
49
52
  </button>
50
53
 
54
+ <button type="button" onClick={() => marquee?.destroy()}>
55
+ Destroy
56
+ </button>
57
+
51
58
  <br />
52
59
 
53
60
  <br />
54
61
 
55
- <div style={{ background: '#ccc', width }}>
56
- <span ref={ref}>Marquee</span>
62
+ <div style={{ background: '#ccc', width, fontSize: 20 }}>
63
+ <div ref={ref}>
64
+ {times(
65
+ (index) => (
66
+ <div key={index}>Text {index}</div>
67
+ ),
68
+ 3,
69
+ )}
70
+ </div>
57
71
  </div>
58
72
  </>
59
73
  );
@@ -1,5 +1,4 @@
1
1
  import { NComponent } from '@/base/Component/types';
2
- import { TOnResizeTarget } from '@/utils/listeners/onResize';
3
2
 
4
3
  export namespace NMarquee {
5
4
  export interface IStaticProps extends NComponent.IStaticProps {
@@ -8,21 +7,21 @@ export namespace NMarquee {
8
7
  * @default '#v-marquee'
9
8
  */
10
9
  container?: string | HTMLElement;
11
- /**
12
- * Viewport target
13
- * @default 'width'
14
- */
15
- viewportTarget?: TOnResizeTarget;
16
10
  /**
17
11
  * Timeout of resize event
18
12
  * @default 0
19
13
  */
20
14
  resizeDebounce?: number;
21
15
  /**
22
- * Prepend a whitespace
16
+ * If `true`, the `will-change` CSS property will be applied to the elements to improve performance.
17
+ * @default true
18
+ */
19
+ hasWillChange?: boolean;
20
+ /**
21
+ * If need to clone nodes for a better animation. May be useful to set `false` when using with such frameworks as React.
23
22
  * @default true
24
23
  */
25
- prependWhitespace?: boolean;
24
+ canCloneNodes?: boolean;
26
25
  }
27
26
 
28
27
  export interface IChangeableProps extends NComponent.IChangeableProps {
@@ -31,6 +30,11 @@ export namespace NMarquee {
31
30
  * @default 1
32
31
  */
33
32
  speed?: number;
33
+ /**
34
+ * Gap between elements
35
+ * @default 0
36
+ */
37
+ gap?: number;
34
38
  /**
35
39
  * Enable animation
36
40
  * @default true
@@ -47,9 +51,15 @@ export namespace NMarquee {
47
51
  * @default true
48
52
  */
49
53
  isFpsNormalized?: boolean;
54
+ /**
55
+ * If need to center elements
56
+ * @default false
57
+ */
58
+ isCentered?: boolean;
50
59
  }
51
60
 
52
61
  export interface ICallbacksTypes extends NComponent.ICallbacksTypes {
53
62
  render: undefined;
63
+ resize: undefined;
54
64
  }
55
65
  }