@maas/vue-equipment 0.39.2 → 1.0.0-beta.1

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 (321) hide show
  1. package/README.md +6 -16
  2. package/dist/composables/index.d.ts +2 -13
  3. package/dist/composables/index.js +65 -128
  4. package/dist/composables/index.js.map +1 -1
  5. package/dist/nuxt/module.json +1 -1
  6. package/dist/nuxt/module.mjs +26 -40
  7. package/dist/plugins/.turbo/turbo-build.log +0 -0
  8. package/dist/plugins/.turbo/turbo-lint.log +13 -0
  9. package/dist/plugins/.turbo/turbo-release.log +7 -0
  10. package/dist/plugins/MagicAccordion/demo/data/footer.json +117 -0
  11. package/dist/plugins/MagicAccordion/index.d.ts +2 -0
  12. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue +103 -70
  13. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +17 -2
  14. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue +36 -30
  15. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +11 -2
  16. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue +71 -71
  17. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +12 -7
  18. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue +51 -50
  19. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +13 -4
  20. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionCallback.d.ts +6 -6
  21. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionCallback.mjs +6 -6
  22. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionState.mjs +10 -10
  23. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionView.mjs +11 -10
  24. package/dist/plugins/MagicAccordion/src/symbols/index.d.ts +1 -1
  25. package/dist/plugins/MagicAccordion/src/types/index.d.ts +4 -0
  26. package/dist/plugins/MagicAccordion/src/utils/defaultOptions.d.ts +2 -2
  27. package/dist/plugins/MagicAccordion/src/utils/defaultOptions.mjs +7 -2
  28. package/dist/plugins/MagicCommand/demo/data/about.json +3 -0
  29. package/dist/plugins/MagicCommand/demo/data/search.json +594 -0
  30. package/dist/plugins/MagicCommand/index.d.ts +2 -0
  31. package/dist/plugins/MagicCommand/index.mjs +9 -11
  32. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue +192 -0
  33. package/dist/plugins/MagicCommand/src/components/{MagicCommandBody.vue.d.ts → MagicCommandContent.vue.d.ts} +4 -2
  34. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue +60 -53
  35. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue.d.ts +12 -3
  36. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue +108 -79
  37. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +18 -9
  38. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue +55 -53
  39. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue.d.ts +11 -2
  40. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +94 -62
  41. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +52 -7
  42. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +63 -0
  43. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue.d.ts +2 -0
  44. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue +110 -0
  45. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +75 -0
  46. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue +56 -73
  47. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +16 -9
  48. package/dist/plugins/MagicCommand/src/composables/private/useCommandCallback.d.ts +14 -0
  49. package/dist/plugins/MagicCommand/src/composables/private/useCommandCallback.mjs +32 -0
  50. package/dist/plugins/MagicCommand/src/composables/private/useCommandItem.d.ts +15 -6
  51. package/dist/plugins/MagicCommand/src/composables/private/useCommandItem.mjs +77 -44
  52. package/dist/plugins/MagicCommand/src/composables/private/useCommandScroll.d.ts +22 -4
  53. package/dist/plugins/MagicCommand/src/composables/private/useCommandScroll.mjs +45 -28
  54. package/dist/plugins/MagicCommand/src/composables/private/useCommandState.d.ts +7 -0
  55. package/dist/plugins/MagicCommand/src/composables/private/useCommandState.mjs +49 -0
  56. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.d.ts +18 -0
  57. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.mjs +76 -0
  58. package/dist/plugins/MagicCommand/src/composables/private/useCommandView.d.ts +21 -5
  59. package/dist/plugins/MagicCommand/src/composables/private/useCommandView.mjs +193 -18
  60. package/dist/plugins/MagicCommand/src/composables/useMagicCommand.d.ts +14 -5
  61. package/dist/plugins/MagicCommand/src/composables/useMagicCommand.mjs +43 -13
  62. package/dist/plugins/MagicCommand/src/symbols/index.d.ts +8 -1
  63. package/dist/plugins/MagicCommand/src/symbols/index.mjs +18 -1
  64. package/dist/plugins/MagicCommand/src/types/index.d.ts +73 -13
  65. package/dist/plugins/MagicCommand/src/utils/defaultOptions.d.ts +3 -5
  66. package/dist/plugins/MagicCommand/src/utils/defaultOptions.mjs +8 -3
  67. package/dist/plugins/MagicCookie/index.d.ts +5 -3
  68. package/dist/plugins/MagicCookie/index.mjs +7 -3
  69. package/dist/plugins/MagicCookie/nuxt.mjs +5 -9
  70. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue +56 -0
  71. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +33 -0
  72. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue +43 -0
  73. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +32 -0
  74. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue +96 -0
  75. package/dist/plugins/{MagicCommand/src/components/MagicCommandHead.vue.d.ts → MagicCookie/src/components/MagicCookieView.vue.d.ts} +6 -2
  76. package/dist/plugins/MagicCookie/src/composables/private/useCookieCallback.d.ts +9 -0
  77. package/dist/plugins/MagicCookie/src/composables/private/useCookieCallback.mjs +31 -0
  78. package/dist/plugins/MagicCookie/src/composables/private/useCookieItem.d.ts +16 -0
  79. package/dist/plugins/MagicCookie/src/composables/private/useCookieItem.mjs +87 -0
  80. package/dist/plugins/MagicCookie/src/composables/private/useCookieState.d.ts +7 -0
  81. package/dist/plugins/MagicCookie/src/composables/private/useCookieState.mjs +43 -0
  82. package/dist/plugins/MagicCookie/src/composables/useMagicCookie.d.ts +15 -15
  83. package/dist/plugins/MagicCookie/src/composables/useMagicCookie.mjs +59 -60
  84. package/dist/plugins/MagicCookie/src/symbols/index.d.ts +5 -0
  85. package/dist/plugins/MagicCookie/src/symbols/index.mjs +4 -0
  86. package/dist/plugins/MagicCookie/src/types/index.d.ts +31 -13
  87. package/dist/plugins/MagicCookie/src/utils/defaultOptions.d.ts +4 -0
  88. package/dist/plugins/MagicCookie/src/utils/defaultOptions.mjs +10 -0
  89. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +142 -97
  90. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +12 -6
  91. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.d.ts +6 -6
  92. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +3 -1
  93. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.d.ts +3 -4
  94. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +11 -8
  95. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableState.d.ts +2 -1
  96. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableState.mjs +8 -8
  97. package/dist/plugins/MagicDraggable/src/types/index.d.ts +10 -5
  98. package/dist/plugins/MagicDraggable/src/utils/defaultOptions.d.ts +3 -8
  99. package/dist/plugins/MagicDraggable/src/utils/defaultOptions.mjs +5 -5
  100. package/dist/plugins/MagicDrawer/nuxt.mjs +1 -1
  101. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +491 -336
  102. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +12 -6
  103. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerCallback.d.ts +6 -6
  104. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerCallback.mjs +6 -6
  105. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.d.ts +7 -9
  106. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +26 -17
  107. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.d.ts +2 -3
  108. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.d.ts +2 -2
  109. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.mjs +4 -2
  110. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.d.ts +5 -6
  111. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +46 -29
  112. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerState.d.ts +1 -1
  113. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerState.mjs +8 -8
  114. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.d.ts +2 -2
  115. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.mjs +23 -19
  116. package/dist/plugins/MagicDrawer/src/composables/useMagicDrawer.mjs +4 -3
  117. package/dist/plugins/MagicDrawer/src/types/index.d.ts +10 -3
  118. package/dist/plugins/MagicDrawer/src/utils/defaultOptions.d.ts +3 -11
  119. package/dist/plugins/MagicDrawer/src/utils/defaultOptions.mjs +2 -4
  120. package/dist/plugins/MagicEmitter/src/composables/useMagicEmitter.d.ts +190 -46
  121. package/dist/plugins/MagicEmitter/src/types/index.d.ts +1 -1
  122. package/dist/plugins/MagicMarquee/index.d.ts +4 -2
  123. package/dist/plugins/MagicMarquee/index.mjs +2 -1
  124. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue +121 -50
  125. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +14 -10
  126. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.d.ts +3 -7
  127. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.mjs +52 -44
  128. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeState.d.ts +7 -0
  129. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeState.mjs +42 -0
  130. package/dist/plugins/MagicMarquee/src/composables/useMagicMarquee.d.ts +11 -0
  131. package/dist/plugins/MagicMarquee/src/composables/useMagicMarquee.mjs +45 -0
  132. package/dist/plugins/MagicMarquee/src/types/index.d.ts +9 -0
  133. package/dist/plugins/MagicMarquee/src/types/index.mjs +0 -0
  134. package/dist/plugins/MagicMarquee/src/utils/defaultOptions.d.ts +4 -0
  135. package/dist/plugins/MagicMarquee/src/utils/defaultOptions.mjs +5 -0
  136. package/dist/plugins/MagicMenu/index.d.ts +2 -0
  137. package/dist/plugins/MagicMenu/nuxt.mjs +1 -1
  138. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +79 -69
  139. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +10 -1
  140. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +247 -215
  141. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +12 -1
  142. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +235 -211
  143. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +12 -2
  144. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +126 -124
  145. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +15 -6
  146. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +94 -96
  147. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +49 -4
  148. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +98 -87
  149. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +11 -2
  150. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +111 -112
  151. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +11 -2
  152. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +67 -70
  153. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +13 -2
  154. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.d.ts +6 -6
  155. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +8 -8
  156. package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.mjs +35 -26
  157. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.mjs +12 -6
  158. package/dist/plugins/MagicMenu/src/composables/private/useMenuItem.d.ts +1 -1
  159. package/dist/plugins/MagicMenu/src/composables/private/useMenuItem.mjs +20 -14
  160. package/dist/plugins/MagicMenu/src/composables/private/useMenuKeyListener.mjs +20 -13
  161. package/dist/plugins/MagicMenu/src/composables/private/useMenuState.mjs +10 -10
  162. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.mjs +6 -3
  163. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.d.ts +3 -3
  164. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +99 -75
  165. package/dist/plugins/MagicMenu/src/symbols/index.d.ts +3 -3
  166. package/dist/plugins/MagicMenu/src/types/index.d.ts +1 -2
  167. package/dist/plugins/MagicModal/src/components/MagicModal.vue +265 -165
  168. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +12 -6
  169. package/dist/plugins/MagicModal/src/composables/private/useModalCallback.d.ts +6 -6
  170. package/dist/plugins/MagicModal/src/composables/private/useModalCallback.mjs +6 -6
  171. package/dist/plugins/MagicModal/src/composables/private/useModalStore.mjs +1 -1
  172. package/dist/plugins/MagicModal/src/types/index.d.ts +2 -2
  173. package/dist/plugins/MagicModal/src/utils/defaultOptions.mjs +2 -2
  174. package/dist/plugins/MagicNoise/index.d.ts +3 -1
  175. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue +120 -63
  176. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +11 -4
  177. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.mjs +2 -2
  178. package/dist/plugins/MagicPlayer/index.d.ts +4 -9
  179. package/dist/plugins/MagicPlayer/index.mjs +11 -17
  180. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +78 -0
  181. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue.d.ts +2 -0
  182. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue +134 -0
  183. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +33 -0
  184. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue +45 -41
  185. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +11 -5
  186. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +116 -114
  187. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +13 -5
  188. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +111 -58
  189. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +1 -4
  190. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue +42 -23
  191. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue.d.ts +1 -4
  192. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue +83 -0
  193. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue.d.ts +34 -0
  194. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +111 -65
  195. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue.d.ts +1 -4
  196. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +94 -0
  197. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue.d.ts +2 -0
  198. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue +222 -0
  199. package/dist/plugins/MagicPlayer/src/components/{MagicPlayerControls.vue.d.ts → MagicPlayerVideoControls.vue.d.ts} +12 -5
  200. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue.d.ts +1 -1
  201. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue.d.ts +1 -1
  202. package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue.d.ts +1 -1
  203. package/dist/plugins/MagicPlayer/src/components/icons/Play.vue.d.ts +1 -1
  204. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue.d.ts +1 -1
  205. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue.d.ts +1 -1
  206. package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue +23 -1
  207. package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue.d.ts +1 -1
  208. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.mjs +5 -6
  209. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.mjs +18 -22
  210. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +13 -13
  211. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +2 -2
  212. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +4 -4
  213. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.mjs +6 -8
  214. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.d.ts +2 -6
  215. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.mjs +5 -5
  216. package/dist/plugins/MagicPlayer/src/css/magic-player-audio-controls.css +95 -0
  217. package/dist/plugins/MagicPlayer/src/css/magic-player-display-time.css +10 -0
  218. package/dist/plugins/MagicPlayer/src/css/magic-player-timeline.css +89 -0
  219. package/dist/plugins/MagicPlayer/src/css/magic-player-video-controls.css +115 -0
  220. package/dist/plugins/MagicPlayer/src/symbols/index.d.ts +5 -0
  221. package/dist/plugins/MagicPlayer/src/symbols/index.mjs +3 -0
  222. package/dist/plugins/MagicPlayer/src/types/index.d.ts +11 -1
  223. package/dist/plugins/MagicPlayer/src/utils/defaultOptions.d.ts +3 -0
  224. package/dist/plugins/MagicPlayer/src/utils/defaultOptions.mjs +12 -0
  225. package/dist/plugins/MagicScroll/index.d.ts +4 -10
  226. package/dist/plugins/MagicScroll/index.mjs +2 -11
  227. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +67 -31
  228. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +14 -4
  229. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue +78 -64
  230. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue.d.ts +14 -7
  231. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue +39 -39
  232. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +15 -9
  233. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +76 -73
  234. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +13 -7
  235. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.d.ts +13 -0
  236. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.mjs +130 -0
  237. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.d.ts +3 -3
  238. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.mjs +5 -3
  239. package/dist/plugins/MagicScroll/src/symbols/index.d.ts +2 -2
  240. package/dist/plugins/MagicScroll/src/symbols/index.mjs +2 -2
  241. package/dist/plugins/MagicScroll/src/types/index.d.ts +12 -22
  242. package/dist/plugins/MagicToast/index.d.ts +3 -2
  243. package/dist/plugins/MagicToast/index.mjs +3 -3
  244. package/dist/plugins/MagicToast/nuxt.mjs +2 -2
  245. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue +296 -0
  246. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +23 -0
  247. package/dist/plugins/MagicToast/src/components/MagicToastView.vue +155 -0
  248. package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +33 -0
  249. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.d.ts +7 -30
  250. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.mjs +34 -29
  251. package/dist/plugins/MagicToast/src/composables/private/useToastDrag.d.ts +12 -0
  252. package/dist/plugins/MagicToast/src/composables/private/useToastDrag.mjs +312 -0
  253. package/dist/plugins/MagicToast/src/composables/private/useToastListener.d.ts +6 -0
  254. package/dist/plugins/MagicToast/src/composables/private/useToastListener.mjs +25 -0
  255. package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.d.ts +6 -0
  256. package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.mjs +41 -0
  257. package/dist/plugins/MagicToast/src/composables/private/useToastState.d.ts +7 -0
  258. package/dist/plugins/MagicToast/src/composables/private/useToastState.mjs +45 -0
  259. package/dist/plugins/MagicToast/src/composables/private/useToastView.d.ts +12 -0
  260. package/dist/plugins/MagicToast/src/composables/private/useToastView.mjs +51 -0
  261. package/dist/plugins/MagicToast/src/composables/useMagicToast.d.ts +13 -8
  262. package/dist/plugins/MagicToast/src/composables/useMagicToast.mjs +26 -23
  263. package/dist/plugins/MagicToast/src/types/index.d.ts +58 -17
  264. package/dist/plugins/MagicToast/src/utils/defaultOptions.d.ts +2 -3
  265. package/dist/plugins/MagicToast/src/utils/defaultOptions.mjs +21 -4
  266. package/dist/plugins/MagicToast/symbols/index.d.ts +3 -0
  267. package/dist/plugins/MagicToast/symbols/index.mjs +2 -0
  268. package/dist/plugins/index.d.ts +0 -1
  269. package/dist/plugins/index.mjs +0 -1
  270. package/dist/utils/css/animations/auto-size-out.css +12 -0
  271. package/dist/utils/css/animations/squash-y.css +5 -0
  272. package/dist/utils/css/animations.css +2 -1
  273. package/dist/utils/index.d.ts +1 -2
  274. package/dist/utils/index.js +2 -53
  275. package/dist/utils/index.js.map +1 -1
  276. package/package.json +52 -56
  277. package/dist/composables/index.d.mts +0 -108
  278. package/dist/composables/index.mjs +0 -383
  279. package/dist/composables/index.mjs.map +0 -1
  280. package/dist/plugins/MagicAutoSize/index.d.ts +0 -4
  281. package/dist/plugins/MagicAutoSize/index.mjs +0 -7
  282. package/dist/plugins/MagicAutoSize/nuxt.d.ts +0 -2
  283. package/dist/plugins/MagicAutoSize/nuxt.mjs +0 -14
  284. package/dist/plugins/MagicAutoSize/src/components/MagicAutoSize.vue +0 -152
  285. package/dist/plugins/MagicAutoSize/src/components/MagicAutoSize.vue.d.ts +0 -29
  286. package/dist/plugins/MagicCommand/src/components/MagicCommandBody.vue +0 -91
  287. package/dist/plugins/MagicCommand/src/components/MagicCommandFooter.vue +0 -5
  288. package/dist/plugins/MagicCommand/src/components/MagicCommandFooter.vue.d.ts +0 -17
  289. package/dist/plugins/MagicCommand/src/components/MagicCommandGroup.vue +0 -5
  290. package/dist/plugins/MagicCommand/src/components/MagicCommandGroup.vue.d.ts +0 -17
  291. package/dist/plugins/MagicCommand/src/components/MagicCommandHead.vue +0 -5
  292. package/dist/plugins/MagicCommand/src/composables/private/useCommandStore.d.ts +0 -35
  293. package/dist/plugins/MagicCommand/src/composables/private/useCommandStore.mjs +0 -67
  294. package/dist/plugins/MagicCookie/src/components/MagicCookie.vue +0 -117
  295. package/dist/plugins/MagicCookie/src/components/MagicCookie.vue.d.ts +0 -27
  296. package/dist/plugins/MagicCookie/src/composables/private/useCookieApi.d.ts +0 -29
  297. package/dist/plugins/MagicCookie/src/composables/private/useCookieApi.mjs +0 -22
  298. package/dist/plugins/MagicPlayer/src/components/MagicAudioPlayer.vue +0 -89
  299. package/dist/plugins/MagicPlayer/src/components/MagicAudioPlayer.vue.d.ts +0 -28
  300. package/dist/plugins/MagicPlayer/src/components/MagicAudioPlayerControls.vue +0 -95
  301. package/dist/plugins/MagicPlayer/src/components/MagicAudioPlayerControls.vue.d.ts +0 -24
  302. package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue +0 -125
  303. package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue.d.ts +0 -35
  304. package/dist/plugins/MagicPlayer/src/components/MagicPlayerControls.vue +0 -152
  305. package/dist/plugins/MagicScroll/src/components/MagicScrollTransform.vue +0 -42
  306. package/dist/plugins/MagicScroll/src/components/MagicScrollTransform.vue.d.ts +0 -36
  307. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetect.d.ts +0 -56
  308. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetect.mjs +0 -140
  309. package/dist/plugins/MagicToast/src/components/MagicToast.vue +0 -141
  310. package/dist/plugins/MagicToast/src/components/MagicToast.vue.d.ts +0 -14
  311. package/dist/plugins/MagicToast/src/components/MagicToastComponent.vue +0 -64
  312. package/dist/plugins/MagicToast/src/components/MagicToastComponent.vue.d.ts +0 -30
  313. package/dist/plugins/MagicToast/src/composables/private/useToastApi.d.ts +0 -5
  314. package/dist/plugins/MagicToast/src/composables/private/useToastApi.mjs +0 -22
  315. package/dist/plugins/MagicToast/src/composables/private/useToastInternalApi.d.ts +0 -4
  316. package/dist/plugins/MagicToast/src/composables/private/useToastInternalApi.mjs +0 -28
  317. package/dist/plugins/MagicToast/src/composables/private/useToastStore.d.ts +0 -27
  318. package/dist/plugins/MagicToast/src/composables/private/useToastStore.mjs +0 -41
  319. package/dist/utils/index.d.mts +0 -80
  320. package/dist/utils/index.mjs +0 -200
  321. package/dist/utils/index.mjs.map +0 -1
@@ -1,24 +0,0 @@
1
- interface MagicAudioPlayerControlsProps {
2
- id: string;
3
- }
4
- declare function __VLS_template(): {
5
- attrs: Partial<{}>;
6
- slots: {
7
- playIcon?(_: {}): any;
8
- pauseIcon?(_: {}): any;
9
- };
10
- refs: {
11
- barRef: HTMLDivElement;
12
- trackRef: HTMLDivElement;
13
- };
14
- rootEl: HTMLDivElement;
15
- };
16
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
- declare const __VLS_component: import("vue").DefineComponent<MagicAudioPlayerControlsProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAudioPlayerControlsProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, HTMLDivElement>;
18
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
19
- export default _default;
20
- type __VLS_WithTemplateSlots<T, S> = T & {
21
- new (): {
22
- $slots: S;
23
- };
24
- };
@@ -1,125 +0,0 @@
1
- <template>
2
- <div
3
- ref="playerRef"
4
- @mouseenter="onMouseenter"
5
- @mouseleave="onMouseleave"
6
- :class="[
7
- 'magic-player',
8
- {
9
- '-fullscreen': isFullscreen,
10
- '-touched': touched,
11
- '-untouched': !touched,
12
- '-playing': playing,
13
- '-paused': !playing,
14
- '-waiting': waiting,
15
- '-loaded': loaded,
16
- '-muted': muted,
17
- },
18
- ]"
19
- >
20
- <video
21
- ref="videoRef"
22
- class="magic-player__video"
23
- playsinline
24
- disablePictureInPicture
25
- :preload="preload"
26
- :loop="loop"
27
- :muted="muted"
28
- />
29
- <slot />
30
- </div>
31
- </template>
32
-
33
- <script setup lang="ts">
34
- import { ref, watch, onMounted, onBeforeUnmount } from 'vue'
35
- import {
36
- useElementVisibility,
37
- useEventListener,
38
- defaultWindow,
39
- } from '@vueuse/core'
40
- import { usePlayerVideoApi } from '../composables/private/usePlayerVideoApi'
41
- import { usePlayerMediaApi } from '../composables/private/usePlayerMediaApi'
42
- import { usePlayerRuntime } from '../composables/private/usePlayerRuntime'
43
-
44
- import type { MagicPlayerSourceType } from './../types'
45
-
46
- interface MagicPlayerProps {
47
- id: string
48
- srcType?: MagicPlayerSourceType
49
- src: string
50
- autoplay?: boolean
51
- preload?: 'auto' | 'metadata' | 'none'
52
- loop?: boolean
53
- }
54
-
55
- const props = withDefaults(defineProps<MagicPlayerProps>(), {
56
- srcType: 'native',
57
- src: '',
58
- autoplay: false,
59
- preload: 'metadata',
60
- loop: false,
61
- })
62
-
63
- const playerRef = ref<HTMLDivElement | undefined>(undefined)
64
- const videoRef = ref<HTMLVideoElement | undefined>(undefined)
65
-
66
- const isVisible = useElementVisibility(playerRef)
67
-
68
- const { playing, waiting, muted } = usePlayerMediaApi({
69
- id: props.id,
70
- mediaRef: videoRef,
71
- })
72
-
73
- const { initialize, loaded, destroy } = usePlayerRuntime({
74
- id: props.id,
75
- mediaRef: videoRef,
76
- src: props.src,
77
- srcType: props.srcType,
78
- })
79
-
80
- const { onMouseenter, onMouseleave, isFullscreen, touched, play, pause } =
81
- usePlayerVideoApi({
82
- id: props.id,
83
- videoRef: videoRef,
84
- playerRef: playerRef,
85
- })
86
-
87
- function onWindowFocus() {
88
- if (isVisible.value && !playing.value && props.autoplay) {
89
- play()
90
- }
91
- }
92
-
93
- // Auto play when window is focused
94
- useEventListener(defaultWindow, 'focus', onWindowFocus)
95
-
96
- // Auto play when element is visible
97
- watch(
98
- isVisible,
99
- (value) => {
100
- if (value && !playing.value && props.autoplay) {
101
- play()
102
- } else if (!value && playing.value) {
103
- pause()
104
- }
105
- },
106
- {
107
- immediate: true,
108
- }
109
- )
110
-
111
- onMounted(() => {
112
- initialize()
113
- if (props.autoplay) {
114
- muted.value = true
115
- }
116
- })
117
-
118
- onBeforeUnmount(() => {
119
- destroy()
120
- })
121
- </script>
122
-
123
- <style>
124
- .magic-player{aspect-ratio:var(--magic-player-aspect-ratio,16/9);background:var(--magic-player-background,#000);height:var(--magic-player-height,auto);overflow:hidden;position:relative;width:100%}.magic-player.-loaded{--magic-player-background:transparent}.magic-player__video{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}
125
- </style>
@@ -1,35 +0,0 @@
1
- import type { MagicPlayerSourceType } from './../types';
2
- interface MagicPlayerProps {
3
- id: string;
4
- srcType?: MagicPlayerSourceType;
5
- src: string;
6
- autoplay?: boolean;
7
- preload?: 'auto' | 'metadata' | 'none';
8
- loop?: boolean;
9
- }
10
- declare function __VLS_template(): {
11
- attrs: Partial<{}>;
12
- slots: {
13
- default?(_: {}): any;
14
- };
15
- refs: {
16
- playerRef: HTMLDivElement;
17
- videoRef: HTMLVideoElement;
18
- };
19
- rootEl: HTMLDivElement;
20
- };
21
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
- declare const __VLS_component: import("vue").DefineComponent<MagicPlayerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicPlayerProps> & Readonly<{}>, {
23
- loop: boolean;
24
- src: string;
25
- srcType: MagicPlayerSourceType;
26
- autoplay: boolean;
27
- preload: "auto" | "metadata" | "none";
28
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, HTMLDivElement>;
29
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
30
- export default _default;
31
- type __VLS_WithTemplateSlots<T, S> = T & {
32
- new (): {
33
- $slots: S;
34
- };
35
- };
@@ -1,152 +0,0 @@
1
- <template>
2
- <div
3
- class="magic-player-controls"
4
- :class="{
5
- '-fullscreen': isFullscreen,
6
- '-touched': touched,
7
- '-untouched': !touched,
8
- '-playing': playing,
9
- '-paused': !playing,
10
- '-waiting': waiting,
11
- '-idle': idle,
12
- '-not-idle': !idle,
13
- '-hover': mouseEntered,
14
- '-not-hover': !mouseEntered,
15
- '-standalone': standalone,
16
- }"
17
- >
18
- <transition :name="transition">
19
- <div class="magic-player-controls__bar" v-show="!hidden">
20
- <div
21
- v-if="$slots.seekPopover"
22
- v-show="!!seekedTime && touched"
23
- ref="popoverRef"
24
- class="magic-player-controls__popover"
25
- :style="{ marginLeft: `${popoverOffsetX}%` }"
26
- >
27
- <slot name="seekPopover" />
28
- </div>
29
- <div class="magic-player-controls__bar--inner" ref="barRef">
30
- <div class="magic-player-controls__item -shrink-0">
31
- <button v-if="!playing" @click="play">
32
- <slot name="playIcon">
33
- <icon-play />
34
- </slot>
35
- </button>
36
- <button v-else @click="pause">
37
- <slot name="pauseIcon">
38
- <icon-pause />
39
- </slot>
40
- </button>
41
- </div>
42
- <div class="magic-player-controls__item -grow">
43
- <slot name="timelineBefore" />
44
- <div class="magic-player-controls__timeline" ref="trackRef">
45
- <magic-player-timeline :id="id" />
46
- </div>
47
- <slot name="timelineAfter" />
48
- </div>
49
- <div class="magic-player-controls__item -shrink-0">
50
- <button v-if="muted" @click="unmute">
51
- <slot name="volumeOffIcon">
52
- <icon-volume-off />
53
- </slot>
54
- </button>
55
- <button v-else @click="mute">
56
- <slot name="volumeOnIcon">
57
- <icon-volume-on />
58
- </slot>
59
- </button>
60
- </div>
61
- <div class="magic-player-controls__item -shrink-0">
62
- <button v-if="isFullscreen" @click="exitFullscreen">
63
- <slot name="fullscreenExitIcon">
64
- <icon-fullscreen-exit />
65
- </slot>
66
- </button>
67
- <button v-else @click="enterFullscreen">
68
- <slot name="fullscreenEnterIcon">
69
- <icon-fullscreen-enter />
70
- </slot>
71
- </button>
72
- </div>
73
- </div>
74
- </div>
75
- </transition>
76
- </div>
77
- </template>
78
-
79
- <script setup lang="ts">
80
- import { ref, computed } from 'vue'
81
- import { useIdle } from '@vueuse/core'
82
- import IconPlay from './icons/Play.vue'
83
- import IconPause from './icons/Pause.vue'
84
- import IconVolumeOn from './icons/VolumeOn.vue'
85
- import IconVolumeOff from './icons/VolumeOff.vue'
86
- import IconFullscreenEnter from './icons/FullscreenEnter.vue'
87
- import IconFullscreenExit from './icons/FullscreenExit.vue'
88
- import { usePlayerMediaApi } from '../composables/private/usePlayerMediaApi'
89
- import { usePlayerVideoApi } from '../composables/private/usePlayerVideoApi'
90
- import { usePlayerControlsApi } from '../composables/private/usePlayerControlsApi'
91
-
92
- import '@maas/vue-equipment/utils/css/animations/fade-up-in.css'
93
- import '@maas/vue-equipment/utils/css/animations/fade-up-out.css'
94
-
95
- interface MagicPlayerControlsProps {
96
- id: string
97
- standalone?: boolean
98
- transition?: string
99
- }
100
-
101
- const props = withDefaults(defineProps<MagicPlayerControlsProps>(), {
102
- transition: 'magic-player-controls',
103
- })
104
-
105
- const barRef = ref<HTMLDivElement | undefined>(undefined)
106
- const trackRef = ref<HTMLDivElement | undefined>(undefined)
107
- const popoverRef = ref<HTMLDivElement | undefined>(undefined)
108
-
109
- const { playing, waiting, muted } = usePlayerMediaApi({
110
- id: props.id,
111
- })
112
-
113
- const {
114
- touched,
115
- mouseEntered,
116
- isFullscreen,
117
- play,
118
- pause,
119
- mute,
120
- unmute,
121
- enterFullscreen,
122
- exitFullscreen,
123
- } = usePlayerVideoApi({ id: props.id })
124
-
125
- const { popoverOffsetX, seekedTime } = usePlayerControlsApi({
126
- id: props.id,
127
- barRef: barRef,
128
- trackRef: trackRef,
129
- popoverRef: popoverRef,
130
- })
131
-
132
- const { idle } = useIdle(3000)
133
-
134
- const hidden = computed(() => {
135
- switch (true) {
136
- case props.standalone:
137
- return false
138
- case playing.value && idle.value:
139
- return true
140
- case playing.value && !mouseEntered.value:
141
- return true
142
- case !touched.value:
143
- return true
144
- default:
145
- return false
146
- }
147
- })
148
- </script>
149
-
150
- <style>
151
- :root{--magic-player-controls-height:3rem;--magic-player-controls-padding:0.75rem;--magic-player-controls-bottom:1.5rem;--magic-player-controls-left:1.5rem;--magic-player-controls-width:calc(100% - var(--magic-player-controls-left)*2);--magic-player-controls-gap:1rem;--magic-player-controls-border-radius:50rem;--magic-player-controls-background:rgba(32,32,32,.8);--magic-player-controls-backdrop-filter:blur(80px);--magic-player-controls-color:#fff;--magic-player-controls-button-width:3rem;--magic-player-controls-icon-width:1.25rem}@media (max-width:640px){:root{--magic-player-controls-height:2.5rem;--magic-player-controls-bottom:0.75rem;--magic-player-controls-padding:0.5rem}}.magic-player-controls{inset:0;pointer-events:none;position:absolute;width:100%}.magic-player-controls-enter-active{animation:fade-up-in .15s ease}.magic-player-controls-leave-active{animation:fade-up-out .15s ease}.magic-player-controls__bar{align-items:flex-start;bottom:var(--magic-player-controls-bottom);display:flex;flex-direction:column;gap:var(--magic-player-controls-gap);left:var(--magic-player-controls-left);margin:0 auto;pointer-events:auto;position:absolute;width:var(--magic-player-controls-width)}.magic-player-controls__bar--inner{align-items:center;-webkit-backdrop-filter:var(--magic-player-controls-backdrop-filter);backdrop-filter:var(--magic-player-controls-backdrop-filter);background-color:var(--magic-player-controls-background);border-radius:var(--magic-player-controls-border-radius);box-sizing:border-box;color:var(--magic-player-controls-color);display:flex;height:var(--magic-player-controls-height);padding:0 var(--magic-player-controls-padding);width:100%}.magic-player-controls__item{align-items:center;display:inline-flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.magic-player-controls__item.-shrink-0{flex-shrink:0}.magic-player-controls__item.-grow{flex-grow:1}.magic-player-controls__item button{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;border-radius:0;color:inherit;cursor:pointer;display:flex;height:var(--magic-player-controls-height);justify-content:center;outline:none;padding:0;width:var(--magic-player-controls-button-width)}.magic-player-controls__item button svg{display:block;height:auto;width:var(--magic-player-controls-icon-width)}.magic-player-controls__timeline{width:100%}.magic-player-controls.-standalone{inset:unset;position:relative;--magic-player-controls-width:100%;--magic-player-controls-bottom:0;--magic-player-controls-left:0;--magic-player-controls-padding:0;--magic-player-controls-background:unset;--magic-player-controls-border-radius:unset;--magic-player-controls-background:transparent;--magic-player-controls-backdrop-filter:none}.magic-player-controls.-standalone .magic-player-controls__bar{position:relative}
152
- </style>
@@ -1,42 +0,0 @@
1
- <template>
2
- <component :is="as" :style="computedStyle" v-bind="$attrs">
3
- <slot />
4
- </component>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- import { computed } from 'vue'
9
-
10
- interface MagicScrollTransformProps {
11
- as?: string
12
- scale?: number
13
- scaleX?: number
14
- scaleY?: number
15
- skewX?: number
16
- skewY?: number
17
- translateX?: number
18
- translateY?: number
19
- }
20
-
21
- const props = withDefaults(defineProps<MagicScrollTransformProps>(), {
22
- as: 'div',
23
- scale: 1,
24
- scaleX: 1,
25
- scaleY: 1,
26
- skewX: 0,
27
- skewY: 0,
28
- translateX: 0,
29
- translateY: 0,
30
- })
31
-
32
- const computedStyle = computed(() => {
33
- return {
34
- willChange: 'transform',
35
- transform: `matrix(${props.scale || props.scaleX}, ${props.skewY}, ${
36
- props.skewX
37
- }, ${props.scale || props.scaleY}, ${props.translateX}, ${
38
- props.translateY
39
- })`,
40
- }
41
- })
42
- </script>
@@ -1,36 +0,0 @@
1
- interface MagicScrollTransformProps {
2
- as?: string;
3
- scale?: number;
4
- scaleX?: number;
5
- scaleY?: number;
6
- skewX?: number;
7
- skewY?: number;
8
- translateX?: number;
9
- translateY?: number;
10
- }
11
- declare function __VLS_template(): {
12
- attrs: Partial<{}>;
13
- slots: {
14
- default?(_: {}): any;
15
- };
16
- refs: {};
17
- rootEl: any;
18
- };
19
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
- declare const __VLS_component: import("vue").DefineComponent<MagicScrollTransformProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicScrollTransformProps> & Readonly<{}>, {
21
- as: string;
22
- scale: number;
23
- scaleX: number;
24
- scaleY: number;
25
- skewX: number;
26
- skewY: number;
27
- translateX: number;
28
- translateY: number;
29
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
31
- export default _default;
32
- type __VLS_WithTemplateSlots<T, S> = T & {
33
- new (): {
34
- $slots: S;
35
- };
36
- };
@@ -1,56 +0,0 @@
1
- import { type MaybeRef } from 'vue';
2
- import type { MagicScrollCollisionEntry, Offset } from '../../types/index.js';
3
- type AlertPositions = {
4
- top: boolean;
5
- bottom: boolean;
6
- };
7
- type UseCollisionDetectArgs = {
8
- scrollY: MaybeRef<number>;
9
- entries: MagicScrollCollisionEntry[];
10
- parent: HTMLElement | undefined;
11
- };
12
- interface MappedEntry extends Omit<MagicScrollCollisionEntry, 'element'> {
13
- element: HTMLElement;
14
- alerted: {
15
- up: AlertPositions;
16
- down: AlertPositions;
17
- };
18
- }
19
- export declare function useCollisionDetect(args: UseCollisionDetectArgs): {
20
- mappedEntries: import("vue").Ref<{
21
- element: HTMLElement;
22
- alerted: {
23
- up: {
24
- top: boolean;
25
- bottom: boolean;
26
- };
27
- down: {
28
- top: boolean;
29
- bottom: boolean;
30
- };
31
- };
32
- data: Record<string, unknown>;
33
- offset?: {
34
- top: Offset;
35
- bottom: Offset;
36
- } | undefined;
37
- }[], MappedEntry[] | {
38
- element: HTMLElement;
39
- alerted: {
40
- up: {
41
- top: boolean;
42
- bottom: boolean;
43
- };
44
- down: {
45
- top: boolean;
46
- bottom: boolean;
47
- };
48
- };
49
- data: Record<string, unknown>;
50
- offset?: {
51
- top: Offset;
52
- bottom: Offset;
53
- } | undefined;
54
- }[]>;
55
- };
56
- export {};
@@ -1,140 +0,0 @@
1
- import { ref, watch, computed, toValue } from "vue";
2
- import { useIntersectionObserver, useWindowSize } from "@vueuse/core";
3
- import { useMagicEmitter } from "@maas/vue-equipment/plugins";
4
- export function useCollisionDetect(args) {
5
- const { scrollY, entries, parent } = args;
6
- const lastScrollY = ref(0);
7
- const intersecting = ref();
8
- const scrollDirection = ref();
9
- const mappedEntries = ref([]);
10
- const oppositeScrollDirection = computed(
11
- () => scrollDirection.value === "up" ? "down" : "up"
12
- );
13
- const windowDimensions = useWindowSize();
14
- function getOffset(payload) {
15
- return typeof payload === "function" ? payload({
16
- vh: toValue(windowDimensions.height),
17
- vw: toValue(windowDimensions.width)
18
- }) : payload ?? 0;
19
- }
20
- function initialize() {
21
- if (!parent) return;
22
- mappedEntries.value = entries.map((entry) => {
23
- const alerted = {
24
- up: {
25
- top: false,
26
- bottom: false
27
- },
28
- down: {
29
- top: false,
30
- bottom: false
31
- }
32
- };
33
- const offset = { top: 0, bottom: 0, ...entry.offset };
34
- const element = entry.element ? parent?.querySelector(entry.element) : parent;
35
- if (!element) {
36
- return void 0;
37
- } else {
38
- return { ...entry, offset, element, alerted };
39
- }
40
- }).filter((element) => !!element);
41
- useIntersectionObserver(
42
- parent.querySelector("*"),
43
- ([{ isIntersecting }]) => {
44
- intersecting.value = isIntersecting;
45
- },
46
- { rootMargin: "50% 0px 50% 0px", threshold: 0.01 }
47
- );
48
- observeAll();
49
- }
50
- function observeAll() {
51
- if (!lastScrollY.value) {
52
- lastScrollY.value = toValue(scrollY);
53
- resetAll();
54
- return;
55
- }
56
- scrollDirection.value = lastScrollY.value <= toValue(scrollY) ? "down" : "up";
57
- lastScrollY.value = toValue(scrollY);
58
- let i = mappedEntries.value.length;
59
- while (i--) {
60
- const entry = mappedEntries.value[i];
61
- if (!entry.element) return;
62
- const boundingRect = entry.element.getBoundingClientRect();
63
- if (scrollDirection.value) {
64
- observeEntry({
65
- position: "top",
66
- direction: scrollDirection.value,
67
- boundingRect,
68
- entry
69
- });
70
- observeEntry({
71
- position: "bottom",
72
- direction: scrollDirection.value,
73
- boundingRect,
74
- entry
75
- });
76
- resetEntry({
77
- position: "top",
78
- direction: oppositeScrollDirection.value,
79
- boundingRect,
80
- entry
81
- });
82
- resetEntry({
83
- position: "bottom",
84
- direction: oppositeScrollDirection.value,
85
- boundingRect,
86
- entry
87
- });
88
- }
89
- }
90
- }
91
- function resetAll() {
92
- mappedEntries.value = mappedEntries.value.map((entry) => {
93
- const alerted = {
94
- up: {
95
- top: false,
96
- bottom: false
97
- },
98
- down: {
99
- top: false,
100
- bottom: false
101
- }
102
- };
103
- return { ...entry, alerted };
104
- });
105
- }
106
- function observeEntry(args2) {
107
- const { position, direction, boundingRect, entry } = args2;
108
- const offset = getOffset(entry.offset[position] ?? 0);
109
- if (entry.alerted[direction][position]) return;
110
- if (direction === "down" && boundingRect[position] <= offset || direction === "up" && boundingRect[position] >= offset) {
111
- entry.alerted[direction][position] = true;
112
- useMagicEmitter().emit("collision", {
113
- direction,
114
- position,
115
- element: entry.element,
116
- data: entry.data
117
- });
118
- }
119
- }
120
- function resetEntry(args2) {
121
- const { position, direction, boundingRect, entry } = args2;
122
- const offset = getOffset(entry.offset[position] ?? 0);
123
- if (!entry.alerted[direction][position]) return;
124
- if (direction === "down" && boundingRect[position] >= offset || direction === "up" && boundingRect[position] <= offset) {
125
- entry.alerted[direction][position] = false;
126
- }
127
- }
128
- initialize();
129
- watch(
130
- () => toValue(scrollY),
131
- () => {
132
- if (intersecting.value) {
133
- observeAll();
134
- }
135
- }
136
- );
137
- return {
138
- mappedEntries
139
- };
140
- }