@maas/vue-equipment 1.0.0-beta.57 → 1.0.0-beta.59

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 (125) hide show
  1. package/README.md +1 -1
  2. package/dist/composables/useScrollTo/index.js +3 -1
  3. package/dist/composables/useScrollTo/index.js.map +1 -1
  4. package/dist/nuxt/module.json +1 -1
  5. package/dist/nuxt/module.mjs +7 -3
  6. package/dist/plugins/MagicAccordion/src/types/index.d.ts +1 -0
  7. package/dist/plugins/MagicAccordion/src/utils/defaultOptions.d.ts +2 -3
  8. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +6 -15
  9. package/dist/plugins/MagicCommand/src/composables/private/useCommandState.mjs +8 -2
  10. package/dist/plugins/MagicCommand/src/composables/private/useCommandView.mjs +3 -1
  11. package/dist/plugins/MagicCommand/src/types/index.d.ts +1 -1
  12. package/dist/plugins/MagicCommand/src/utils/defaultOptions.d.ts +2 -2
  13. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.d.vue.ts +2 -2
  14. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue +4 -12
  15. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +2 -2
  16. package/dist/plugins/MagicCookie/src/types/index.d.ts +1 -0
  17. package/dist/plugins/MagicCookie/src/utils/defaultOptions.d.ts +2 -3
  18. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +7 -15
  19. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.d.ts +6 -6
  20. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.d.ts +3 -3
  21. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableState.d.ts +2 -2
  22. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableState.mjs +15 -2
  23. package/dist/plugins/MagicDraggable/src/types/index.d.ts +4 -4
  24. package/dist/plugins/MagicDraggable/src/utils/defaultOptions.d.ts +2 -2
  25. package/dist/plugins/MagicDrawer/index.d.ts +6 -1
  26. package/dist/plugins/MagicDrawer/index.mjs +20 -1
  27. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.d.vue.ts +3 -13
  28. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +19 -487
  29. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +3 -13
  30. package/dist/plugins/MagicDrawer/src/components/MagicDrawerBackdrop.d.vue.ts +15 -0
  31. package/dist/plugins/MagicDrawer/src/components/MagicDrawerBackdrop.vue +76 -0
  32. package/dist/plugins/MagicDrawer/src/components/MagicDrawerBackdrop.vue.d.ts +15 -0
  33. package/dist/plugins/MagicDrawer/src/components/MagicDrawerContent.d.vue.ts +23 -0
  34. package/dist/plugins/MagicDrawer/src/components/MagicDrawerContent.vue +410 -0
  35. package/dist/plugins/MagicDrawer/src/components/MagicDrawerContent.vue.d.ts +23 -0
  36. package/dist/plugins/MagicDrawer/src/components/MagicDrawerProvider.d.vue.ts +19 -0
  37. package/dist/plugins/MagicDrawer/src/components/MagicDrawerProvider.vue +67 -0
  38. package/dist/plugins/MagicDrawer/src/components/MagicDrawerProvider.vue.d.ts +19 -0
  39. package/dist/plugins/MagicDrawer/src/components/MagicDrawerTeleport.d.vue.ts +20 -0
  40. package/dist/plugins/MagicDrawer/src/components/MagicDrawerTeleport.vue +36 -0
  41. package/dist/plugins/MagicDrawer/src/components/MagicDrawerTeleport.vue.d.ts +20 -0
  42. package/dist/plugins/MagicDrawer/src/components/MagicDrawerTrigger.d.vue.ts +22 -0
  43. package/dist/plugins/MagicDrawer/src/components/MagicDrawerTrigger.vue +62 -0
  44. package/dist/plugins/MagicDrawer/src/components/MagicDrawerTrigger.vue.d.ts +22 -0
  45. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerCallback.d.ts +3 -2
  46. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerCallback.mjs +11 -11
  47. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDOM.mjs +1 -1
  48. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.d.ts +7 -7
  49. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +12 -4
  50. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.d.ts +2 -2
  51. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.mjs +6 -0
  52. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.d.ts +2 -2
  53. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.mjs +6 -2
  54. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.d.ts +5 -5
  55. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerState.d.ts +2 -2
  56. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerState.mjs +15 -5
  57. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.d.ts +2 -2
  58. package/dist/plugins/MagicDrawer/src/composables/useMagicDrawer.d.ts +3 -2
  59. package/dist/plugins/MagicDrawer/src/composables/useMagicDrawer.mjs +3 -2
  60. package/dist/plugins/MagicDrawer/src/symbols/index.d.ts +7 -0
  61. package/dist/plugins/MagicDrawer/src/symbols/index.mjs +3 -0
  62. package/dist/plugins/MagicDrawer/src/types/index.d.ts +6 -6
  63. package/dist/plugins/MagicDrawer/src/utils/defaultOptions.d.ts +2 -2
  64. package/dist/plugins/MagicMarquee/src/utils/defaultOptions.d.ts +1 -2
  65. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +1 -4
  66. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +3 -1
  67. package/dist/plugins/MagicModal/index.d.ts +8 -3
  68. package/dist/plugins/MagicModal/index.mjs +20 -1
  69. package/dist/plugins/MagicModal/src/components/MagicModal.d.vue.ts +4 -7
  70. package/dist/plugins/MagicModal/src/components/MagicModal.vue +21 -253
  71. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +4 -7
  72. package/dist/plugins/MagicModal/src/components/MagicModalBackdrop.d.vue.ts +15 -0
  73. package/dist/plugins/MagicModal/src/components/MagicModalBackdrop.vue +66 -0
  74. package/dist/plugins/MagicModal/src/components/MagicModalBackdrop.vue.d.ts +15 -0
  75. package/dist/plugins/MagicModal/src/components/MagicModalContent.d.vue.ts +15 -0
  76. package/dist/plugins/MagicModal/src/components/MagicModalContent.vue +176 -0
  77. package/dist/plugins/MagicModal/src/components/MagicModalContent.vue.d.ts +15 -0
  78. package/dist/plugins/MagicModal/src/components/MagicModalProvider.d.vue.ts +19 -0
  79. package/dist/plugins/MagicModal/src/components/MagicModalProvider.vue +58 -0
  80. package/dist/plugins/MagicModal/src/components/MagicModalProvider.vue.d.ts +19 -0
  81. package/dist/plugins/MagicModal/src/components/MagicModalTeleport.d.vue.ts +20 -0
  82. package/dist/plugins/MagicModal/src/components/MagicModalTeleport.vue +36 -0
  83. package/dist/plugins/MagicModal/src/components/MagicModalTeleport.vue.d.ts +20 -0
  84. package/dist/plugins/MagicModal/src/components/MagicModalTrigger.d.vue.ts +22 -0
  85. package/dist/plugins/MagicModal/src/components/MagicModalTrigger.vue +59 -0
  86. package/dist/plugins/MagicModal/src/components/MagicModalTrigger.vue.d.ts +22 -0
  87. package/dist/plugins/MagicModal/src/composables/private/useModalCallback.d.ts +4 -3
  88. package/dist/plugins/MagicModal/src/composables/private/useModalCallback.mjs +8 -8
  89. package/dist/plugins/MagicModal/src/composables/private/useModalDOM.mjs +1 -1
  90. package/dist/plugins/MagicModal/src/composables/private/useModalState.d.ts +2 -2
  91. package/dist/plugins/MagicModal/src/composables/private/useModalState.mjs +15 -2
  92. package/dist/plugins/MagicModal/src/composables/useMagicModal.d.ts +4 -1
  93. package/dist/plugins/MagicModal/src/composables/useMagicModal.mjs +5 -4
  94. package/dist/plugins/MagicModal/src/symbols/index.d.ts +8 -0
  95. package/dist/plugins/MagicModal/src/symbols/index.mjs +3 -0
  96. package/dist/plugins/MagicModal/src/types/index.d.ts +6 -0
  97. package/dist/plugins/MagicModal/src/utils/defaultOptions.d.ts +2 -3
  98. package/dist/plugins/MagicNoise/src/utils/defaultOptions.d.ts +1 -2
  99. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +4 -2
  100. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +7 -2
  101. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +3 -1
  102. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue +29 -8
  103. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +6 -4
  104. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +2 -1
  105. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerPlaylistApi.d.ts +10 -0
  106. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerPlaylistApi.mjs +27 -0
  107. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +1 -1
  108. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +52 -7
  109. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.d.ts +2 -2
  110. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.mjs +13 -2
  111. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.d.ts +6 -0
  112. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.mjs +12 -1
  113. package/dist/plugins/MagicPlayer/src/symbols/index.d.ts +3 -2
  114. package/dist/plugins/MagicPlayer/src/symbols/index.mjs +2 -0
  115. package/dist/plugins/MagicPlayer/src/types/index.d.ts +7 -2
  116. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue +5 -1
  117. package/dist/plugins/MagicToast/src/types/index.d.ts +5 -6
  118. package/dist/plugins/MagicToast/src/utils/defaultOptions.d.ts +2 -2
  119. package/dist/plugins/tsconfig.test.json +8 -0
  120. package/dist/utils/index.d.ts +1 -5
  121. package/dist/utils/index.js +9 -3
  122. package/dist/utils/index.js.map +1 -1
  123. package/dist/utils/types/index.ts +0 -1
  124. package/package.json +11 -5
  125. package/dist/utils/types/RequireAll.ts +0 -3
package/README.md CHANGED
@@ -17,7 +17,7 @@ For the full documentation visit [vue.equipment](https://vue.equipment). We are
17
17
 
18
18
  ## 🐛 Found a Bug?
19
19
 
20
- > If you see something that doesn't look right, [submit a bug report](https://github.com/magicasaservice/vue-equipment/issues/new?assignees=&labels=bug%2Cpending+triage&template=bug_report.yml). See it. Say it. Sorted.
20
+ > If you see something that doesnt look right, [submit a bug report](https://github.com/magicasaservice/vue-equipment/issues/new?assignees=&labels=bug%2Cpending+triage&template=bug_report.yml). See it. Say it. Sorted.
21
21
 
22
22
  ## 📄 License
23
23
 
@@ -80,7 +80,9 @@ function useScrollTo() {
80
80
  const startTime = Date.now();
81
81
  const { x: fromX, y: fromY } = getScrollPosition(parent);
82
82
  if (fromX === top && fromY === left) {
83
- if (callback) callback();
83
+ if (callback) {
84
+ callback();
85
+ }
84
86
  return;
85
87
  }
86
88
  const mappedDuration = { x: 500, y: 500, ...duration };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/composables/useScrollTo/index.ts"],"sourcesContent":["import {\n unrefElement,\n type MaybeComputedElementRef,\n type MaybeElement,\n} from '@vueuse/core'\nimport { easeOutQuad } from '@maas/vue-equipment/utils'\n\nexport type ScrollToTarget =\n | string\n | Element\n | MaybeElement\n | MaybeComputedElementRef\n\nexport type ScrollToParent = ScrollToTarget | Window\n\nexport type ScrollToParams = {\n parent?: Element | Window\n left: number\n top: number\n duration?: { x?: number; y?: number }\n easing?: (t: number) => number\n callback?: () => void\n}\n\nexport type getScrollDurationParams = {\n parent: Element | Window\n left: number\n top: number\n speed: number\n}\n\nexport type scrollToTargetParams = {\n target: ScrollToTarget\n parent?: ScrollToParent\n offset?: {\n x?: number\n y?: number\n }\n speed?: number\n easing?: (t: number) => number\n}\n\n// Private functions\nfunction min(a: number, b: number) {\n return a < b ? a : b\n}\n\nfunction unwrapParent(parent: ScrollToParent) {\n if (parent === window) {\n return parent\n } else if (typeof parent === 'string') {\n return document.querySelector(parent) || document.documentElement\n } else {\n return (\n unrefElement(parent as MaybeComputedElementRef<MaybeElement>) ||\n document.documentElement\n )\n }\n}\n\nfunction unwrapTarget(target: ScrollToTarget, parentEl: Element | Window) {\n if (typeof target === 'string') {\n const queryTarget = parentEl === window ? document : (parentEl as Element)\n return queryTarget.querySelector(target)\n } else {\n return unrefElement(target as MaybeComputedElementRef<MaybeElement>)\n }\n}\n\nfunction isHtmlElement(\n parentEl: Window | SVGElement | Element\n): parentEl is HTMLElement {\n return parentEl instanceof HTMLElement\n}\n\nfunction disableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = 'none'\n }\n}\n\nfunction reenableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = ''\n }\n}\n\n// Public composable\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.scrollX, y: window.scrollY }\n } else if (element instanceof Element) {\n return { x: element.scrollLeft, y: element.scrollTop }\n } else {\n return { x: 0, y: 0 }\n }\n }\n\n function getDistance(\n target: Element,\n parent?: Element | Window\n ): { top: number; left: number } {\n const rect = target.getBoundingClientRect()\n const scrollEl =\n parent || document.scrollingElement || document.documentElement\n\n const scrollTop = scrollEl instanceof Window ? 0 : scrollEl.scrollTop\n const scrollLeft = scrollEl instanceof Window ? 0 : scrollEl.scrollLeft\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n }\n }\n\n function getScrollDuration({\n parent = document.documentElement || document.body,\n left = 0,\n top = 0,\n speed = 500,\n }: getScrollDurationParams) {\n const currentPos = getScrollPosition(parent)\n const distanceX = currentPos.x - left\n const distanceY = currentPos.y - top\n const durationX = Math.abs((distanceX / speed) * 100)\n const durationY = Math.abs((distanceY / speed) * 100)\n\n return { x: durationX, y: durationY }\n }\n\n function scrollTo({\n parent = document.documentElement || document.body,\n top,\n left,\n duration = {},\n easing = easeOutQuad,\n callback,\n }: ScrollToParams) {\n const startTime = Date.now()\n const { x: fromX, y: fromY } = getScrollPosition(parent)\n\n if (fromX === top && fromY === left) {\n if (callback) callback()\n return\n }\n\n const mappedDuration = { x: 500, y: 500, ...duration }\n\n const scroll = () => {\n const currentTime = Date.now()\n\n const timeX = min(1, (currentTime - startTime) / mappedDuration.x)\n const timeY = min(1, (currentTime - startTime) / mappedDuration.y)\n const easedTimeX = easing(timeX)\n const easedTimeY = easing(timeY)\n\n // We use the min of the two times to make sure we scroll at the same speed\n const minTime = Math.min(easedTimeX, easedTimeY)\n\n parent.scroll({\n left: minTime * (left - fromX) + fromX,\n top: minTime * (top - fromY) + fromY,\n })\n\n if (easedTimeX < 1 || easedTimeY < 1) {\n requestAnimationFrame(scroll)\n } else if (callback) {\n callback()\n }\n }\n\n requestAnimationFrame(scroll)\n }\n\n function scrollToTarget({\n target,\n parent = document.documentElement || document.body,\n offset = {},\n speed = 500,\n easing = easeOutQuad,\n }: scrollToTargetParams) {\n const parentEl = unwrapParent(parent)\n if (!parentEl) {\n return\n }\n const targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) {\n return\n }\n\n disableScrollSnap(parentEl)\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl, parentEl)\n const leftDistance = distance.left - mappedOffset.x\n const topDistance = distance.top - mappedOffset.y\n\n const scrollDuration = getScrollDuration({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n speed: speed,\n })\n\n scrollTo({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n duration: scrollDuration,\n easing: easing,\n callback: () => reenableScrollSnap(parentEl),\n })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../packages/composables/useScrollTo/index.ts"],"sourcesContent":["import {\n unrefElement,\n type MaybeComputedElementRef,\n type MaybeElement,\n} from '@vueuse/core'\nimport { easeOutQuad } from '@maas/vue-equipment/utils'\n\nexport type ScrollToTarget =\n | string\n | Element\n | MaybeElement\n | MaybeComputedElementRef\n\nexport type ScrollToParent = ScrollToTarget | Window\n\nexport type ScrollToParams = {\n parent?: Element | Window\n left: number\n top: number\n duration?: { x?: number; y?: number }\n easing?: (t: number) => number\n callback?: () => void\n}\n\nexport type getScrollDurationParams = {\n parent: Element | Window\n left: number\n top: number\n speed: number\n}\n\nexport type scrollToTargetParams = {\n target: ScrollToTarget\n parent?: ScrollToParent\n offset?: {\n x?: number\n y?: number\n }\n speed?: number\n easing?: (t: number) => number\n}\n\n// Private functions\nfunction min(a: number, b: number) {\n return a < b ? a : b\n}\n\nfunction unwrapParent(parent: ScrollToParent) {\n if (parent === window) {\n return parent\n } else if (typeof parent === 'string') {\n return document.querySelector(parent) || document.documentElement\n } else {\n return (\n unrefElement(parent as MaybeComputedElementRef<MaybeElement>) ||\n document.documentElement\n )\n }\n}\n\nfunction unwrapTarget(target: ScrollToTarget, parentEl: Element | Window) {\n if (typeof target === 'string') {\n const queryTarget = parentEl === window ? document : (parentEl as Element)\n return queryTarget.querySelector(target)\n } else {\n return unrefElement(target as MaybeComputedElementRef<MaybeElement>)\n }\n}\n\nfunction isHtmlElement(\n parentEl: Window | SVGElement | Element\n): parentEl is HTMLElement {\n return parentEl instanceof HTMLElement\n}\n\nfunction disableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = 'none'\n }\n}\n\nfunction reenableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = ''\n }\n}\n\n// Public composable\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.scrollX, y: window.scrollY }\n } else if (element instanceof Element) {\n return { x: element.scrollLeft, y: element.scrollTop }\n } else {\n return { x: 0, y: 0 }\n }\n }\n\n function getDistance(\n target: Element,\n parent?: Element | Window\n ): { top: number; left: number } {\n const rect = target.getBoundingClientRect()\n const scrollEl =\n parent || document.scrollingElement || document.documentElement\n\n const scrollTop = scrollEl instanceof Window ? 0 : scrollEl.scrollTop\n const scrollLeft = scrollEl instanceof Window ? 0 : scrollEl.scrollLeft\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n }\n }\n\n function getScrollDuration({\n parent = document.documentElement || document.body,\n left = 0,\n top = 0,\n speed = 500,\n }: getScrollDurationParams) {\n const currentPos = getScrollPosition(parent)\n const distanceX = currentPos.x - left\n const distanceY = currentPos.y - top\n const durationX = Math.abs((distanceX / speed) * 100)\n const durationY = Math.abs((distanceY / speed) * 100)\n\n return { x: durationX, y: durationY }\n }\n\n function scrollTo({\n parent = document.documentElement || document.body,\n top,\n left,\n duration = {},\n easing = easeOutQuad,\n callback,\n }: ScrollToParams) {\n const startTime = Date.now()\n const { x: fromX, y: fromY } = getScrollPosition(parent)\n\n if (fromX === top && fromY === left) {\n if (callback) {\n callback()\n }\n return\n }\n\n const mappedDuration = { x: 500, y: 500, ...duration }\n\n const scroll = () => {\n const currentTime = Date.now()\n\n const timeX = min(1, (currentTime - startTime) / mappedDuration.x)\n const timeY = min(1, (currentTime - startTime) / mappedDuration.y)\n const easedTimeX = easing(timeX)\n const easedTimeY = easing(timeY)\n\n // We use the min of the two times to make sure we scroll at the same speed\n const minTime = Math.min(easedTimeX, easedTimeY)\n\n parent.scroll({\n left: minTime * (left - fromX) + fromX,\n top: minTime * (top - fromY) + fromY,\n })\n\n if (easedTimeX < 1 || easedTimeY < 1) {\n requestAnimationFrame(scroll)\n } else if (callback) {\n callback()\n }\n }\n\n requestAnimationFrame(scroll)\n }\n\n function scrollToTarget({\n target,\n parent = document.documentElement || document.body,\n offset = {},\n speed = 500,\n easing = easeOutQuad,\n }: scrollToTargetParams) {\n const parentEl = unwrapParent(parent)\n if (!parentEl) {\n return\n }\n const targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) {\n return\n }\n\n disableScrollSnap(parentEl)\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl, parentEl)\n const leftDistance = distance.left - mappedOffset.x\n const topDistance = distance.top - mappedOffset.y\n\n const scrollDuration = getScrollDuration({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n speed: speed,\n })\n\n scrollTo({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n duration: scrollDuration,\n easing: easing,\n callback: () => reenableScrollSnap(parentEl),\n })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maas/vue-equipment/nuxt",
3
3
  "configKey": "vueEquipment",
4
- "version": "1.0.0-beta.56",
4
+ "version": "1.0.0-beta.58",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
@@ -137,7 +137,7 @@ const functions$1 = [
137
137
  {
138
138
  name: "useScrollTo",
139
139
  "package": "composables",
140
- lastUpdated: 1757314730000,
140
+ lastUpdated: 1780311933000,
141
141
  docs: "https://maas.egineering/vue-equipment/composables/useScrollTo/",
142
142
  description: "Scroll to an element with consistent speed"
143
143
  }
@@ -145,8 +145,12 @@ const functions$1 = [
145
145
 
146
146
  const functions = functions$1;
147
147
  functions.map((f) => f.name);
148
- const plugins = functions.filter((p) => p.package === "plugins");
149
- const composables = functions.filter((p) => p.package === "composables");
148
+ const plugins = functions.filter(
149
+ (p) => p.package === "plugins" && !p.internal
150
+ );
151
+ const composables = functions.filter(
152
+ (p) => p.package === "composables" && !p.internal
153
+ );
150
154
 
151
155
  const module$1 = defineNuxtModule({
152
156
  meta: {
@@ -8,6 +8,7 @@ export interface MagicAccordionOptions {
8
8
  easing: (t: number) => number;
9
9
  };
10
10
  }
11
+ export type RequiredMagicAccordionOptions = Required<MagicAccordionOptions>;
11
12
  export interface AccordionView {
12
13
  id: string;
13
14
  active: boolean;
@@ -1,4 +1,3 @@
1
- import type { MagicAccordionOptions } from '../types/index.js';
2
- import { type RequireAll } from '@maas/vue-equipment/utils';
3
- declare const defaultOptions: RequireAll<MagicAccordionOptions>;
1
+ import type { RequiredMagicAccordionOptions } from '../types/index.js';
2
+ declare const defaultOptions: RequiredMagicAccordionOptions;
4
3
  export { defaultOptions };
@@ -13,25 +13,16 @@ import { shallowRef, provide, watch } from "vue";
13
13
  import { useMagicKeys, usePointer } from "@vueuse/core";
14
14
  import { VuePrimitive } from "@maas/vue-primitive";
15
15
  import { useMagicError } from "@maas/vue-equipment/plugins/MagicError";
16
- import { createDefu } from "defu";
17
16
  import { useCommandState } from "../composables/private/useCommandState";
18
17
  import { useMagicCommand } from "../composables/useMagicCommand";
19
- import { defaultOptions } from "../utils/defaultOptions";
20
18
  import { MagicCommandInstanceId, MagicCommandProviderOptions } from "../symbols";
21
19
  const { id, options = {} } = defineProps({
22
20
  id: { type: null, required: true },
23
21
  asChild: { type: Boolean, required: false },
24
22
  options: { type: Object, required: false }
25
23
  });
26
- const customDefu = createDefu((obj, key, value) => {
27
- if (key === "open" || key === "close" || key === "next" || key === "prev") {
28
- obj[key] = value;
29
- return true;
30
- }
31
- });
32
- const mappedOptions = customDefu(options, defaultOptions);
33
24
  const { initializeState } = useCommandState(id);
34
- const state = initializeState(mappedOptions);
25
+ const state = initializeState(options);
35
26
  const lastX = shallowRef(0);
36
27
  const lastY = shallowRef(0);
37
28
  const { x, y } = usePointer();
@@ -58,8 +49,8 @@ const { logWarning } = useMagicError({
58
49
  prefix: "MagicCommand",
59
50
  source: "MagicCommandProvider"
60
51
  });
61
- if (mappedOptions.keyListener?.open) {
62
- for (const key of mappedOptions.keyListener.open) {
52
+ if (state.options.keyListener?.open) {
53
+ for (const key of state.options.keyListener.open) {
63
54
  const mappedKey = keys[key];
64
55
  if (!mappedKey) {
65
56
  logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
@@ -72,8 +63,8 @@ if (mappedOptions.keyListener?.open) {
72
63
  });
73
64
  }
74
65
  }
75
- if (mappedOptions.keyListener?.close) {
76
- for (const key of mappedOptions.keyListener.close) {
66
+ if (state.options.keyListener?.close) {
67
+ for (const key of state.options.keyListener.close) {
77
68
  const mappedKey = keys[key];
78
69
  if (!mappedKey) {
79
70
  logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
@@ -87,7 +78,7 @@ if (mappedOptions.keyListener?.close) {
87
78
  }
88
79
  }
89
80
  provide(MagicCommandInstanceId, id);
90
- provide(MagicCommandProviderOptions, mappedOptions);
81
+ provide(MagicCommandProviderOptions, state.options);
91
82
  </script>
92
83
 
93
84
  <style>
@@ -1,5 +1,5 @@
1
1
  import { reactive, toValue, onScopeDispose } from "vue";
2
- import { defu } from "defu";
2
+ import { createDefu } from "defu";
3
3
  import { createStateStore } from "@maas/vue-equipment/utils";
4
4
  import { defaultOptions } from "../../utils/defaultOptions.mjs";
5
5
  const getCommandStateStore = createStateStore(
@@ -9,6 +9,12 @@ const getCommandStateStore = createStateStore(
9
9
  export function useCommandState(instanceId) {
10
10
  const commandStateStore = getCommandStateStore();
11
11
  let scopeCounted = false;
12
+ const customDefu = createDefu((obj, key, value) => {
13
+ if (key === "open" || key === "close" || key === "next" || key === "prev") {
14
+ obj[key] = value;
15
+ return true;
16
+ }
17
+ });
12
18
  function createState(id) {
13
19
  const view = commandStateStore.value.find((state2) => state2.id === id)?.views.findLast((view2) => view2.active)?.id;
14
20
  const state = {
@@ -47,7 +53,7 @@ export function useCommandState(instanceId) {
47
53
  scopeCounted = true;
48
54
  }
49
55
  if (options) {
50
- const mappedOptions = defu(options, defaultOptions);
56
+ const mappedOptions = customDefu(options, defaultOptions);
51
57
  state.options = mappedOptions;
52
58
  }
53
59
  return state;
@@ -68,7 +68,9 @@ export function useCommandView(id) {
68
68
  let view = viewMap.get(id2);
69
69
  if (!view) {
70
70
  view = state.views.find((v) => v.id === id2);
71
- if (view) viewMap.set(id2, view);
71
+ if (view) {
72
+ viewMap.set(id2, view);
73
+ }
72
74
  }
73
75
  return view;
74
76
  }
@@ -15,7 +15,7 @@ export interface MagicCommandOptions {
15
15
  };
16
16
  loop?: boolean;
17
17
  }
18
- export type CommandDefaultOptions = RequireAllNested<MagicCommandOptions>;
18
+ export type RequiredMagicCommandOptions = RequireAllNested<MagicCommandOptions>;
19
19
  export type Action = 'open' | 'close';
20
20
  export type Interaction = 'click' | 'mouseenter';
21
21
  export interface CommandItem {
@@ -1,3 +1,3 @@
1
- import type { CommandDefaultOptions } from '../types/index.js';
2
- declare const defaultOptions: CommandDefaultOptions;
1
+ import type { RequiredMagicCommandOptions } from '../types/index.js';
2
+ declare const defaultOptions: RequiredMagicCommandOptions;
3
3
  export { defaultOptions };
@@ -4,9 +4,9 @@ type MagicCookieProviderProps = {
4
4
  id: MaybeRef<string>;
5
5
  options?: MagicCookieOptions;
6
6
  };
7
- declare var __VLS_7: {};
7
+ declare var __VLS_1: {};
8
8
  type __VLS_Slots = {} & {
9
- default?: (props: typeof __VLS_7) => any;
9
+ default?: (props: typeof __VLS_1) => any;
10
10
  };
11
11
  declare const __VLS_base: import("vue").DefineComponent<MagicCookieProviderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCookieProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
12
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,26 +1,18 @@
1
1
  <template>
2
- <client-only>
3
- <div class="magic-cookie-provider" v-bind="$attrs">
4
- <slot />
5
- </div>
6
- </client-only>
2
+ <div class="magic-cookie-provider">
3
+ <slot />
4
+ </div>
7
5
  </template>
8
6
 
9
7
  <script setup>
10
8
  import { provide } from "vue";
11
- import { defu } from "defu";
12
9
  import { useCookieState } from "../composables/private/useCookieState";
13
- import { defaultOptions } from "../utils/defaultOptions";
14
10
  import { MagicCookieInstanceId } from "../symbols";
15
- defineOptions({
16
- inheritAttrs: false
17
- });
18
11
  const { id, options } = defineProps({
19
12
  id: { type: null, required: true },
20
13
  options: { type: Object, required: false }
21
14
  });
22
- const mappedOptions = defu(options, defaultOptions);
23
15
  const { initializeState } = useCookieState(id);
24
- initializeState(mappedOptions);
16
+ initializeState(options);
25
17
  provide(MagicCookieInstanceId, id);
26
18
  </script>
@@ -4,9 +4,9 @@ type MagicCookieProviderProps = {
4
4
  id: MaybeRef<string>;
5
5
  options?: MagicCookieOptions;
6
6
  };
7
- declare var __VLS_7: {};
7
+ declare var __VLS_1: {};
8
8
  type __VLS_Slots = {} & {
9
- default?: (props: typeof __VLS_7) => any;
9
+ default?: (props: typeof __VLS_1) => any;
10
10
  };
11
11
  declare const __VLS_base: import("vue").DefineComponent<MagicCookieProviderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCookieProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
12
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -22,6 +22,7 @@ export interface MagicCookieOptions {
22
22
  easing: (t: number) => number;
23
23
  };
24
24
  }
25
+ export type RequiredMagicCookieOptions = Required<MagicCookieOptions>;
25
26
  export interface CookieEvents {
26
27
  beforeEnter: string;
27
28
  enter: string;
@@ -1,4 +1,3 @@
1
- import type { MagicCookieOptions } from '../types/index.js';
2
- import { type RequireAll } from '@maas/vue-equipment/utils';
3
- declare const defaultOptions: RequireAll<MagicCookieOptions>;
1
+ import type { RequiredMagicCookieOptions } from '../types/index.js';
2
+ declare const defaultOptions: RequiredMagicCookieOptions;
4
3
  export { defaultOptions };
@@ -9,7 +9,7 @@
9
9
  >
10
10
  <div ref="wrapper" class="magic-draggable__wrapper">
11
11
  <component
12
- :is="mappedOptions.tag"
12
+ :is="state.options.tag"
13
13
  ref="el"
14
14
  class="magic-draggable__drag"
15
15
  :style="style"
@@ -25,7 +25,6 @@
25
25
 
26
26
  <script setup>
27
27
  import { useTemplateRef, computed, toValue, toRefs } from "vue";
28
- import { createDefu } from "defu";
29
28
  import {
30
29
  useMagicError
31
30
  } from "@maas/vue-equipment/plugins/MagicError";
@@ -43,24 +42,17 @@ const magicError = useMagicError({
43
42
  prefix: "MagicDraggable",
44
43
  source: "MagicDraggable"
45
44
  });
46
- const customDefu = createDefu((obj, key, value) => {
47
- if (key === "snapPoints") {
48
- obj[key] = value;
49
- return true;
50
- }
51
- });
52
- const mappedOptions = customDefu(options, defaultOptions);
53
45
  const mappedId = toValue(id);
54
- if (!mappedOptions.snapPoints.length) {
46
+ const elRef = useTemplateRef("el");
47
+ const wrapperRef = useTemplateRef("wrapper");
48
+ const { initializeState } = useDraggableState(id);
49
+ const state = initializeState(options);
50
+ if (!state.options.snapPoints.length) {
55
51
  magicError.throwError({
56
52
  message: "MagicDraggable must have at least one snap point set",
57
53
  errorCode: "missing_snap_point"
58
54
  });
59
55
  }
60
- const elRef = useTemplateRef("el");
61
- const wrapperRef = useTemplateRef("wrapper");
62
- const { initializeState } = useDraggableState(id);
63
- const state = initializeState();
64
56
  const { dragging, activeSnapPoint } = toRefs(state);
65
57
  const disabled = computed(() => {
66
58
  if (options.disabled === void 0) {
@@ -69,7 +61,7 @@ const disabled = computed(() => {
69
61
  return options.disabled;
70
62
  }
71
63
  });
72
- const { snapPoints, animation, initial, threshold, scrollLock } = mappedOptions;
64
+ const { snapPoints, animation, initial, threshold, scrollLock } = state.options;
73
65
  const { onPointerdown, onClick, style, hasDragged } = useDraggableDrag({
74
66
  id,
75
67
  elRef,
@@ -1,14 +1,14 @@
1
1
  import { type Ref, type MaybeRef } from 'vue';
2
- import type { DraggableDefaultOptions } from '../../types/index.js';
2
+ import type { RequiredMagicDraggableOptions } from '../../types/index.js';
3
3
  type UseDraggableDragArgs = {
4
4
  id: MaybeRef<string>;
5
5
  elRef: Ref<HTMLElement | null>;
6
6
  wrapperRef: Ref<HTMLDivElement | null>;
7
- threshold: MaybeRef<DraggableDefaultOptions['threshold']>;
8
- snapPoints: MaybeRef<DraggableDefaultOptions['snapPoints']>;
9
- animation: MaybeRef<DraggableDefaultOptions['animation']>;
10
- initial: MaybeRef<DraggableDefaultOptions['initial']>;
11
- scrollLock: MaybeRef<DraggableDefaultOptions['scrollLock']>;
7
+ threshold: MaybeRef<RequiredMagicDraggableOptions['threshold']>;
8
+ snapPoints: MaybeRef<RequiredMagicDraggableOptions['snapPoints']>;
9
+ animation: MaybeRef<RequiredMagicDraggableOptions['animation']>;
10
+ initial: MaybeRef<RequiredMagicDraggableOptions['initial']>;
11
+ scrollLock: MaybeRef<RequiredMagicDraggableOptions['scrollLock']>;
12
12
  };
13
13
  export declare function useDraggableDrag(args: UseDraggableDragArgs): {
14
14
  initialize: () => Promise<void>;
@@ -1,9 +1,9 @@
1
1
  import { type MaybeRef } from 'vue';
2
- import type { DraggableSnapPoint, Coordinates, DraggableDefaultOptions } from '../../types/index.js';
2
+ import type { DraggableSnapPoint, Coordinates, RequiredMagicDraggableOptions } from '../../types/index.js';
3
3
  type UseDraggableSnapArgs = {
4
4
  id: MaybeRef<string>;
5
- animation: MaybeRef<DraggableDefaultOptions['animation']>;
6
- snapPoints: MaybeRef<DraggableDefaultOptions['snapPoints']>;
5
+ animation: MaybeRef<RequiredMagicDraggableOptions['animation']>;
6
+ snapPoints: MaybeRef<RequiredMagicDraggableOptions['snapPoints']>;
7
7
  };
8
8
  type InterpolateDraggedArgs = {
9
9
  x: number;
@@ -1,6 +1,6 @@
1
1
  import { type MaybeRef } from 'vue';
2
- import type { DraggableState } from '../../types/index.js';
2
+ import type { DraggableState, MagicDraggableOptions } from '../../types/index.js';
3
3
  export declare function useDraggableState(id: MaybeRef<string>): {
4
- initializeState: () => DraggableState;
4
+ initializeState: (options?: MagicDraggableOptions) => DraggableState;
5
5
  draggableStateStore: import("vue").Ref<DraggableState[], DraggableState[]>;
6
6
  };
@@ -1,5 +1,7 @@
1
1
  import { reactive, toValue, onScopeDispose } from "vue";
2
2
  import { createStateStore } from "@maas/vue-equipment/utils";
3
+ import { createDefu } from "defu";
4
+ import { defaultOptions } from "../../utils/defaultOptions.mjs";
3
5
  const getDraggableStateStore = createStateStore(
4
6
  "MagicDraggable",
5
7
  () => []
@@ -7,6 +9,12 @@ const getDraggableStateStore = createStateStore(
7
9
  export function useDraggableState(id) {
8
10
  const draggableStateStore = getDraggableStateStore();
9
11
  let scopeCounted = false;
12
+ const customDefu = createDefu((obj, key, value) => {
13
+ if (key === "snapPoints") {
14
+ obj[key] = value;
15
+ return true;
16
+ }
17
+ });
10
18
  function createState(id2) {
11
19
  const state = {
12
20
  id: id2,
@@ -24,7 +32,8 @@ export function useDraggableState(id) {
24
32
  draggedY: 0,
25
33
  elRect: void 0,
26
34
  wrapperRect: void 0,
27
- activeSnapPoint: void 0
35
+ activeSnapPoint: void 0,
36
+ options: defaultOptions
28
37
  };
29
38
  return reactive(state);
30
39
  }
@@ -39,7 +48,7 @@ export function useDraggableState(id) {
39
48
  (x) => x.id !== currentId
40
49
  );
41
50
  }
42
- function initializeState() {
51
+ function initializeState(options) {
43
52
  const currentId = toValue(id);
44
53
  let state = draggableStateStore.value.find(
45
54
  (entry) => entry.id === currentId
@@ -47,6 +56,10 @@ export function useDraggableState(id) {
47
56
  if (!state) {
48
57
  state = addState(currentId);
49
58
  }
59
+ if (options) {
60
+ const mappedOptions = customDefu(options, defaultOptions);
61
+ state.options = mappedOptions;
62
+ }
50
63
  if (!scopeCounted) {
51
64
  state.refCount++;
52
65
  scopeCounted = true;
@@ -1,4 +1,3 @@
1
- import type { RequireAll } from '@maas/vue-equipment/utils';
2
1
  type Position = 'top-left' | 'top' | 'top-right' | 'left' | 'center' | 'right' | 'bottom-left' | 'bottom' | 'bottom-right';
3
2
  export type Coordinates = {
4
3
  x: number;
@@ -34,9 +33,9 @@ export interface MagicDraggableOptions {
34
33
  };
35
34
  disabled?: boolean;
36
35
  }
37
- export type DraggableDefaultOptions = RequireAll<MagicDraggableOptions> & {
38
- threshold: RequireAll<MagicDraggableOptions['threshold']>;
39
- animation: RequireAll<MagicDraggableOptions['animation']>;
36
+ export type RequiredMagicDraggableOptions = Required<MagicDraggableOptions> & {
37
+ threshold: Required<MagicDraggableOptions['threshold']>;
38
+ animation: Required<MagicDraggableOptions['animation']>;
40
39
  };
41
40
  export interface DraggableState {
42
41
  id: string;
@@ -55,6 +54,7 @@ export interface DraggableState {
55
54
  elRect: DOMRect | undefined;
56
55
  wrapperRect: DOMRect | undefined;
57
56
  activeSnapPoint: DraggableSnapPoint | undefined;
57
+ options: RequiredMagicDraggableOptions;
58
58
  }
59
59
  export interface DraggableEvents {
60
60
  beforeSnap: {
@@ -1,3 +1,3 @@
1
- import type { DraggableDefaultOptions } from '../types/index.js';
2
- declare const defaultOptions: DraggableDefaultOptions;
1
+ import type { RequiredMagicDraggableOptions } from '../types/index.js';
2
+ declare const defaultOptions: RequiredMagicDraggableOptions;
3
3
  export { defaultOptions };
@@ -1,7 +1,12 @@
1
1
  import MagicDrawer from './src/components/MagicDrawer.vue.js';
2
+ import MagicDrawerProvider from './src/components/MagicDrawerProvider.vue.js';
3
+ import MagicDrawerTeleport from './src/components/MagicDrawerTeleport.vue.js';
4
+ import MagicDrawerBackdrop from './src/components/MagicDrawerBackdrop.vue.js';
5
+ import MagicDrawerContent from './src/components/MagicDrawerContent.vue.js';
6
+ import MagicDrawerTrigger from './src/components/MagicDrawerTrigger.vue.js';
2
7
  import { useMagicDrawer } from './src/composables/useMagicDrawer.js';
3
8
  import type { Plugin } from 'vue';
4
9
  import type { MagicDrawerOptions } from './src/types/index.js';
5
10
  declare const MagicDrawerPlugin: Plugin;
6
- export { MagicDrawerPlugin, MagicDrawer, useMagicDrawer };
11
+ export { MagicDrawerPlugin, MagicDrawer, MagicDrawerProvider, MagicDrawerTeleport, MagicDrawerBackdrop, MagicDrawerContent, MagicDrawerTrigger, useMagicDrawer, };
7
12
  export type { MagicDrawerOptions };
@@ -1,8 +1,27 @@
1
1
  import MagicDrawer from "./src/components/MagicDrawer.vue";
2
+ import MagicDrawerProvider from "./src/components/MagicDrawerProvider.vue";
3
+ import MagicDrawerTeleport from "./src/components/MagicDrawerTeleport.vue";
4
+ import MagicDrawerBackdrop from "./src/components/MagicDrawerBackdrop.vue";
5
+ import MagicDrawerContent from "./src/components/MagicDrawerContent.vue";
6
+ import MagicDrawerTrigger from "./src/components/MagicDrawerTrigger.vue";
2
7
  import { useMagicDrawer } from "./src/composables/useMagicDrawer.mjs";
3
8
  const MagicDrawerPlugin = {
4
9
  install: (app) => {
5
10
  app.component("MagicDrawer", MagicDrawer);
11
+ app.component("MagicDrawerProvider", MagicDrawerProvider);
12
+ app.component("MagicDrawerTeleport", MagicDrawerTeleport);
13
+ app.component("MagicDrawerBackdrop", MagicDrawerBackdrop);
14
+ app.component("MagicDrawerContent", MagicDrawerContent);
15
+ app.component("MagicDrawerTrigger", MagicDrawerTrigger);
6
16
  }
7
17
  };
8
- export { MagicDrawerPlugin, MagicDrawer, useMagicDrawer };
18
+ export {
19
+ MagicDrawerPlugin,
20
+ MagicDrawer,
21
+ MagicDrawerProvider,
22
+ MagicDrawerTeleport,
23
+ MagicDrawerBackdrop,
24
+ MagicDrawerContent,
25
+ MagicDrawerTrigger,
26
+ useMagicDrawer
27
+ };
@@ -1,24 +1,14 @@
1
1
  import { type MaybeRef } from 'vue';
2
2
  import type { MagicDrawerOptions } from '../types/index.js';
3
- import '@maas/vue-equipment/utils/css/keyframes/fade-in.css';
4
- import '@maas/vue-equipment/utils/css/keyframes/fade-out.css';
5
- import '@maas/vue-equipment/utils/css/keyframes/slide-ltr-in.css';
6
- import '@maas/vue-equipment/utils/css/keyframes/slide-rtl-in.css';
7
- import '@maas/vue-equipment/utils/css/keyframes/slide-ttb-in.css';
8
- import '@maas/vue-equipment/utils/css/keyframes/slide-btt-in.css';
9
- import '@maas/vue-equipment/utils/css/keyframes/slide-ltr-out.css';
10
- import '@maas/vue-equipment/utils/css/keyframes/slide-rtl-out.css';
11
- import '@maas/vue-equipment/utils/css/keyframes/slide-ttb-out.css';
12
- import '@maas/vue-equipment/utils/css/keyframes/slide-btt-out.css';
13
3
  interface MagicDrawerProps {
14
4
  id: MaybeRef<string>;
15
5
  options?: MagicDrawerOptions;
16
6
  }
17
- declare var __VLS_11: {}, __VLS_38: {};
7
+ declare var __VLS_14: {}, __VLS_20: {};
18
8
  type __VLS_Slots = {} & {
19
- backdrop?: (props: typeof __VLS_11) => any;
9
+ backdrop?: (props: typeof __VLS_14) => any;
20
10
  } & {
21
- default?: (props: typeof __VLS_38) => any;
11
+ default?: (props: typeof __VLS_20) => any;
22
12
  };
23
13
  declare const __VLS_base: import("vue").DefineComponent<MagicDrawerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicDrawerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
14
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;