@maas/vue-equipment 1.0.0-beta.34 → 1.0.0-beta.36

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 (140) hide show
  1. package/dist/composables/useScrollTo/index.js +6 -2
  2. package/dist/composables/useScrollTo/index.js.map +1 -1
  3. package/dist/nuxt/module.d.mts +2 -2
  4. package/dist/nuxt/module.json +1 -1
  5. package/dist/nuxt/module.mjs +8 -1
  6. package/dist/plugins/.turbo/turbo-lint.log +1 -1
  7. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue +15 -6
  8. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +1 -1
  9. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +1 -1
  10. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue +17 -12
  11. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +1 -1
  12. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue +11 -5
  13. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +1 -1
  14. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.d.ts +2 -2
  15. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.mjs +5 -5
  16. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue +28 -10
  17. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue.d.ts +1 -1
  18. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue +11 -5
  19. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue.d.ts +1 -1
  20. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue +19 -9
  21. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +1 -1
  22. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue.d.ts +1 -1
  23. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +17 -2
  24. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +1 -1
  25. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +11 -5
  26. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue.d.ts +1 -1
  27. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue +22 -11
  28. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +1 -1
  29. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue +11 -3
  30. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +1 -1
  31. package/dist/plugins/MagicCommand/src/composables/private/useCommandItem.mjs +3 -1
  32. package/dist/plugins/MagicCommand/src/composables/private/useCommandView.d.ts +1 -1
  33. package/dist/plugins/MagicCommand/src/composables/private/useCommandView.mjs +63 -44
  34. package/dist/plugins/MagicCommand/src/composables/useMagicCommand.mjs +21 -4
  35. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue +12 -3
  36. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +1 -1
  37. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +1 -1
  38. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue +11 -5
  39. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue.d.ts +1 -1
  40. package/dist/plugins/MagicCookie/src/composables/private/useCookieItem.mjs +9 -2
  41. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +11 -2
  42. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +1 -1
  43. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +8 -3
  44. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableScrollLock.mjs +3 -1
  45. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +7 -2
  46. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +7 -2
  47. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +1 -1
  48. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDOM.mjs +3 -1
  49. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +6 -1
  50. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +55 -21
  51. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerState.mjs +3 -1
  52. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerUtils.mjs +21 -8
  53. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.mjs +6 -1
  54. package/dist/plugins/MagicError/index.d.ts +5 -0
  55. package/dist/plugins/MagicError/index.mjs +3 -0
  56. package/dist/plugins/MagicError/nuxt.d.ts +2 -0
  57. package/dist/plugins/MagicError/nuxt.mjs +12 -0
  58. package/dist/plugins/MagicError/package.json +40 -0
  59. package/dist/plugins/MagicError/src/MagicError.d.ts +0 -0
  60. package/dist/plugins/MagicError/src/MagicError.mjs +0 -0
  61. package/dist/plugins/MagicError/src/class/MagicError.d.ts +6 -0
  62. package/dist/plugins/MagicError/src/class/MagicError.mjs +15 -0
  63. package/dist/plugins/MagicError/src/composables/useMagicError.d.ts +18 -0
  64. package/dist/plugins/MagicError/src/composables/useMagicError.mjs +31 -0
  65. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +1 -1
  66. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +22 -10
  67. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +1 -1
  68. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +15 -6
  69. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +1 -1
  70. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +1 -1
  71. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +4 -3
  72. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +19 -9
  73. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +1 -1
  74. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +1 -1
  75. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +19 -13
  76. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +1 -1
  77. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +15 -10
  78. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +1 -1
  79. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +12 -4
  80. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +3 -3
  81. package/dist/plugins/MagicMenu/src/composables/private/useMenuDOM.mjs +3 -1
  82. package/dist/plugins/MagicMenu/src/composables/private/useMenuItem.mjs +12 -2
  83. package/dist/plugins/MagicMenu/src/composables/private/useMenuKeyListener.mjs +22 -10
  84. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +13 -4
  85. package/dist/plugins/MagicMenu/src/types/index.d.ts +2 -2
  86. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +1 -1
  87. package/dist/plugins/MagicModal/src/composables/private/useModalDOM.mjs +3 -1
  88. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +1 -1
  89. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.mjs +7 -3
  90. package/dist/plugins/MagicPie/src/components/MagicPie.vue +15 -2
  91. package/dist/plugins/MagicPie/src/components/MagicPie.vue.d.ts +1 -1
  92. package/dist/plugins/MagicPie/src/composables/private/usePieState.mjs +3 -1
  93. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +17 -7
  94. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue.d.ts +1 -1
  95. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue +11 -5
  96. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +1 -1
  97. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue +11 -5
  98. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +1 -1
  99. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +29 -14
  100. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +1 -1
  101. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +11 -5
  102. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +1 -1
  103. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue +11 -5
  104. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue.d.ts +1 -1
  105. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue.d.ts +1 -1
  106. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +11 -5
  107. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue.d.ts +1 -1
  108. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +17 -7
  109. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue.d.ts +1 -1
  110. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue +11 -5
  111. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue.d.ts +1 -1
  112. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue.d.ts +1 -1
  113. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue.d.ts +1 -1
  114. package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue.d.ts +1 -1
  115. package/dist/plugins/MagicPlayer/src/components/icons/Play.vue.d.ts +1 -1
  116. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue.d.ts +1 -1
  117. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue.d.ts +1 -1
  118. package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue.d.ts +1 -1
  119. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +65 -11
  120. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +1 -0
  121. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +96 -16
  122. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.mjs +3 -1
  123. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.mjs +7 -2
  124. package/dist/plugins/MagicPlayer/src/types/index.d.ts +2 -0
  125. package/dist/plugins/MagicPlayer/src/utils/defaultOptions.mjs +1 -0
  126. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +12 -6
  127. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +1 -1
  128. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue.d.ts +1 -1
  129. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +1 -1
  130. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +11 -3
  131. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +1 -1
  132. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +1 -1
  133. package/dist/plugins/MagicToast/src/components/MagicToastView.vue +11 -3
  134. package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +1 -1
  135. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.d.ts +2 -2
  136. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.mjs +7 -5
  137. package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.mjs +3 -1
  138. package/dist/utils/index.js +3 -1
  139. package/dist/utils/index.js.map +1 -1
  140. package/package.json +16 -21
@@ -111,9 +111,13 @@ function useScrollTo() {
111
111
  easing = easeOutQuad
112
112
  }) {
113
113
  const parentEl = unwrapParent(parent);
114
- if (!parentEl) return;
114
+ if (!parentEl) {
115
+ return;
116
+ }
115
117
  const targetEl = unwrapTarget(target, parentEl);
116
- if (!targetEl) return;
118
+ if (!targetEl) {
119
+ return;
120
+ }
117
121
  disableScrollSnap(parentEl);
118
122
  const mappedOffset = { x: 0, y: 0, ...offset };
119
123
  const distance = getDistance(targetEl, parentEl);
@@ -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) return\n const targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) return\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) 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,10 +1,10 @@
1
- import * as _nuxt_schema from '@nuxt/schema';
1
+ import * as nuxt_schema from 'nuxt/schema';
2
2
 
3
3
  interface ModuleOptions {
4
4
  plugins?: string[] | boolean;
5
5
  composables?: string[] | boolean;
6
6
  }
7
- declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
7
+ declare const _default: nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
8
8
 
9
9
  export { _default as default };
10
10
  export type { ModuleOptions };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maas/vue-equipment/nuxt",
3
3
  "configKey": "vueEquipment",
4
- "version": "1.0.0-beta.33",
4
+ "version": "1.0.0-beta.35",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
@@ -43,6 +43,13 @@ const functions$1 = [
43
43
  docs: "https://maas.egineering/vue-equipment/plugins/MagicEmitter/",
44
44
  description: "MagicEmitter is a wrapper around [mitt](https://github.com/developit/mitt)"
45
45
  },
46
+ {
47
+ name: "MagicError",
48
+ "package": "plugins",
49
+ lastUpdated: 1754925604000,
50
+ docs: "https://maas.egineering/vue-equipment/plugins/MagicError/",
51
+ description: "MagicError is a composable and a class used throughout Vue Equipment for error handling and logging"
52
+ },
46
53
  {
47
54
  name: "MagicMarquee",
48
55
  "package": "plugins",
@@ -123,7 +130,7 @@ const functions$1 = [
123
130
  {
124
131
  name: "useScrollTo",
125
132
  "package": "composables",
126
- lastUpdated: 1734018465000,
133
+ lastUpdated: 1757314730000,
127
134
  docs: "https://maas.egineering/vue-equipment/composables/useScrollTo/",
128
135
  description: "Scroll to an element with consistent speed"
129
136
  }
@@ -1,5 +1,5 @@
1
1
 
2
2
  
3
3
  > plugins@1.0.0-beta.32 lint /Users/robinscholz/Repositories/@maas/vue-equipment/packages/plugins
4
- > eslint .
4
+ > eslint . --fix
5
5
 
@@ -32,6 +32,9 @@ import { inject, computed } from "vue";
32
32
  import { defu } from "defu";
33
33
  import { AutoSize } from "@maas/vue-autosize";
34
34
  import { Primitive } from "@maas/vue-primitive";
35
+ import {
36
+ useMagicError
37
+ } from "@maas/vue-equipment/plugins/MagicError";
35
38
  import { useAccordionView } from "../composables/private/useAccordionView";
36
39
  import { useAccordionState } from "../composables/private/useAccordionState";
37
40
  import { useAccordionCallback } from "../composables/private/useAccordionCallback";
@@ -44,14 +47,20 @@ const { transition, animation } = defineProps({
44
47
  transition: { type: String, required: false },
45
48
  animation: { type: Object, required: false }
46
49
  });
50
+ const magicError = useMagicError({
51
+ prefix: "MagicAccordion",
52
+ source: "MagicAccordionContent"
53
+ });
47
54
  const instanceId = inject(MagicAccordionInstanceId, void 0);
48
55
  const viewId = inject(MagicAccordionViewId, void 0);
49
- if (!instanceId) {
50
- throw new Error("MagicMenuContent must be nested inside MagicMenuProvider");
51
- }
52
- if (!viewId) {
53
- throw new Error("MagicMenuContent must be nested inside MagicMenuView");
54
- }
56
+ magicError.assert(instanceId, {
57
+ message: "MagicAccordionContent must be nested inside MagicAccordionProvider",
58
+ errorCode: "missing_instance_id"
59
+ });
60
+ magicError.assert(viewId, {
61
+ message: "MagicAccordionContent must be nested inside MagicAccordionView",
62
+ errorCode: "missing_view_id"
63
+ });
55
64
  const { initializeState } = useAccordionState(instanceId);
56
65
  const state = initializeState();
57
66
  const { getView } = useAccordionView(instanceId);
@@ -15,7 +15,7 @@ declare var __VLS_24: {
15
15
  type __VLS_Slots = {} & {
16
16
  default?: (props: typeof __VLS_24) => any;
17
17
  };
18
- declare const __VLS_component: import("vue").DefineComponent<MagicAccordionContentProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionContentProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const __VLS_component: import("vue").DefineComponent<MagicAccordionContentProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionContentProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
19
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
20
20
  export default _default;
21
21
  type __VLS_WithSlots<T, S> = T & {
@@ -9,7 +9,7 @@ declare var __VLS_7: {};
9
9
  type __VLS_Slots = {} & {
10
10
  default?: (props: typeof __VLS_7) => any;
11
11
  };
12
- declare const __VLS_component: import("vue").DefineComponent<MagicAccordionProviderProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_component: import("vue").DefineComponent<MagicAccordionProviderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
13
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
14
14
  export default _default;
15
15
  type __VLS_WithSlots<T, S> = T & {
@@ -17,6 +17,9 @@
17
17
  import { useTemplateRef, inject, computed, toValue } from "vue";
18
18
  import { Primitive } from "@maas/vue-primitive";
19
19
  import { onKeyStroke } from "@vueuse/core";
20
+ import {
21
+ useMagicError
22
+ } from "@maas/vue-equipment/plugins/MagicError";
20
23
  import { useAccordionTrigger } from "../composables/private/useAccordionTrigger";
21
24
  import { useAccordionState } from "../composables/private/useAccordionState";
22
25
  import { useAccordionView } from "../composables/private/useAccordionView";
@@ -32,32 +35,34 @@ const {
32
35
  trigger: { type: String, required: false },
33
36
  asChild: { type: Boolean, required: false }
34
37
  });
38
+ const magicError = useMagicError({
39
+ prefix: "MagicAccordion",
40
+ source: "MagicAccordion"
41
+ });
35
42
  const elRef = useTemplateRef("el");
36
43
  const instanceId = inject(MagicAccordionInstanceId, void 0);
37
44
  const injectedViewId = inject(MagicAccordionViewId, void 0);
38
45
  const mappedViewId = computed(() => viewId ?? injectedViewId);
39
- if (!instanceId) {
40
- throw new Error(
41
- "MagicAccordionTrigger must be nested inside MagicAccordionProvider"
42
- );
43
- }
44
- if (!mappedViewId.value) {
45
- throw new Error(
46
- "MagicAccordionTrigger must be nested inside MagicAccordionView or a viewId must be provided"
47
- );
48
- }
46
+ magicError.assert(instanceId, {
47
+ message: "MagicAccordionTrigger must be nested inside MagicAccordionProvider",
48
+ errorCode: "missing_instance_id"
49
+ });
50
+ magicError.assert(mappedViewId.value, {
51
+ message: "MagicAccordionTrigger must be nested inside MagicAccordionView or a viewId must be provided",
52
+ errorCode: "missing_view_id"
53
+ });
49
54
  const { initializeState } = useAccordionState(instanceId);
50
55
  const state = initializeState();
51
56
  const { getView } = useAccordionView(instanceId);
52
57
  const view = getView(mappedViewId.value);
53
58
  const mappedDisabled = computed(
54
- () => toValue(disabled) || state.options.disabled
59
+ () => (toValue(disabled) || state.options.disabled) ?? false
55
60
  );
56
61
  const { onMouseenter, onClick, onKeypress } = useAccordionTrigger({
57
62
  elRef,
58
63
  instanceId,
64
+ mappedDisabled,
59
65
  viewId: mappedViewId.value,
60
- disabled,
61
66
  trigger
62
67
  });
63
68
  onKeyStroke("Enter", onKeypress);
@@ -12,7 +12,7 @@ declare var __VLS_12: {
12
12
  type __VLS_Slots = {} & {
13
13
  default?: (props: typeof __VLS_12) => any;
14
14
  };
15
- declare const __VLS_component: import("vue").DefineComponent<MagicAccordionTriggerProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_component: import("vue").DefineComponent<MagicAccordionTriggerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
16
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
17
17
  export default _default;
18
18
  type __VLS_WithSlots<T, S> = T & {
@@ -12,6 +12,9 @@
12
12
  <script setup>
13
13
  import { computed, inject, onBeforeUnmount, provide, useId } from "vue";
14
14
  import { Primitive } from "@maas/vue-primitive";
15
+ import {
16
+ useMagicError
17
+ } from "@maas/vue-equipment/plugins/MagicError";
15
18
  import {
16
19
  MagicAccordionInstanceId,
17
20
  MagicAccordionViewActive,
@@ -23,12 +26,15 @@ const { id, active } = defineProps({
23
26
  asChild: { type: Boolean, required: false },
24
27
  active: { type: Boolean, required: false }
25
28
  });
29
+ const magicError = useMagicError({
30
+ prefix: "MagicAccordion",
31
+ source: "MagicAccordionView"
32
+ });
26
33
  const instanceId = inject(MagicAccordionInstanceId, void 0);
27
- if (!instanceId) {
28
- throw new Error(
29
- "MagicAccordionView must be nested inside MagicAccordionProvider"
30
- );
31
- }
34
+ magicError.assert(instanceId, {
35
+ message: "MagicAccordionView must be nested inside MagicAccordionProvider",
36
+ errorCode: "missing_instance_id"
37
+ });
32
38
  const mappedId = computed(() => id ?? `magic-accordion-view-${useId()}`);
33
39
  const mappedActive = computed(() => view.active);
34
40
  const { initializeView, deleteView } = useAccordionView(instanceId);
@@ -9,7 +9,7 @@ declare var __VLS_7: {
9
9
  type __VLS_Slots = {} & {
10
10
  default?: (props: typeof __VLS_7) => any;
11
11
  };
12
- declare const __VLS_component: import("vue").DefineComponent<MagicAccordionViewProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionViewProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_component: import("vue").DefineComponent<MagicAccordionViewProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionViewProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
13
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
14
14
  export default _default;
15
15
  type __VLS_WithSlots<T, S> = T & {
@@ -1,11 +1,11 @@
1
- import { type MaybeRef, type Ref } from 'vue';
1
+ import { type ComputedRef, type MaybeRef, type Ref } from 'vue';
2
2
  import { Primitive } from '@maas/vue-primitive';
3
3
  import type { Interaction } from '../../types/index.js';
4
4
  interface UseAccordionTriggerArgs {
5
5
  instanceId: MaybeRef<string>;
6
6
  viewId: string;
7
7
  trigger: Interaction;
8
- disabled: MaybeRef<boolean>;
8
+ mappedDisabled: ComputedRef<boolean>;
9
9
  elRef: Ref<InstanceType<typeof Primitive> | null>;
10
10
  }
11
11
  export declare function useAccordionTrigger(args: UseAccordionTriggerArgs): {
@@ -1,19 +1,19 @@
1
- import { toValue } from "vue";
1
+ import {} from "vue";
2
2
  import { Primitive } from "@maas/vue-primitive";
3
3
  import { useFocus } from "@vueuse/core";
4
4
  import { useAccordionView } from "./useAccordionView.mjs";
5
5
  export function useAccordionTrigger(args) {
6
- const { instanceId, viewId, elRef, disabled, trigger } = args;
6
+ const { instanceId, viewId, elRef, mappedDisabled, trigger } = args;
7
7
  const { selectView, unselectView, getView } = useAccordionView(instanceId);
8
8
  const view = getView(viewId);
9
9
  const { focused } = useFocus(elRef);
10
10
  function onMouseenter() {
11
- if (!toValue(disabled) && trigger === "mouseenter") {
11
+ if (!mappedDisabled.value && trigger === "mouseenter") {
12
12
  selectView(viewId);
13
13
  }
14
14
  }
15
15
  function onClick() {
16
- if (!toValue(disabled) && trigger === "click") {
16
+ if (!mappedDisabled.value && trigger === "click") {
17
17
  if (view?.active) {
18
18
  unselectView(viewId);
19
19
  } else {
@@ -22,7 +22,7 @@ export function useAccordionTrigger(args) {
22
22
  }
23
23
  }
24
24
  function onKeypress(e) {
25
- if (focused.value && !toValue(disabled) && !view?.active) {
25
+ if (focused.value && !mappedDisabled.value && !view?.active) {
26
26
  e.preventDefault();
27
27
  e.stopPropagation();
28
28
  if (view?.active) {
@@ -36,6 +36,9 @@ import {
36
36
  useTemplateRef
37
37
  } from "vue";
38
38
  import { useMagicKeys } from "@vueuse/core";
39
+ import {
40
+ useMagicError
41
+ } from "@maas/vue-equipment/plugins/MagicError";
39
42
  import { useCommandItem } from "../composables/private/useCommandItem";
40
43
  import { useCommandScroll } from "../composables/private/useCommandScroll";
41
44
  import { useCommandCallback } from "../composables/private/useCommandCallback";
@@ -52,17 +55,21 @@ import "@maas/vue-equipment/utils/css/keyframes/fade-out.css";
52
55
  defineOptions({
53
56
  inheritAttrs: false
54
57
  });
58
+ const magicError = useMagicError({
59
+ prefix: "MagicCommand",
60
+ source: "MagicCommandContent"
61
+ });
55
62
  const instanceId = inject(MagicCommandInstanceId, void 0);
56
63
  const viewId = inject(MagicCommandViewId, void 0);
57
64
  const elRef = useTemplateRef("el");
58
- if (!instanceId) {
59
- throw new Error(
60
- "MagicCommandContent must be nested inside MagicCommandProvider"
61
- );
62
- }
63
- if (!viewId) {
64
- throw new Error("MagicCommandContent must be nested inside MagicCommandView");
65
- }
65
+ magicError.assert(instanceId, {
66
+ message: "MagicCommandContent must be nested inside MagicCommandProvider",
67
+ errorCode: "missing_instance_id"
68
+ });
69
+ magicError.assert(viewId, {
70
+ message: "MagicCommandContent must be nested inside MagicCommandView",
71
+ errorCode: "missing_view_id"
72
+ });
66
73
  const { getView } = useCommandView(instanceId);
67
74
  const view = getView(viewId);
68
75
  const { initializeState } = useCommandState(instanceId);
@@ -94,13 +101,19 @@ const {
94
101
  scrollInFromTop
95
102
  } = useCommandScroll(elRef);
96
103
  const keys = useMagicKeys();
104
+ const { logWarning } = magicError;
97
105
  const nextTimeout = ref(void 0);
98
106
  const prevTimeout = ref(void 0);
99
107
  const nextInterval = ref(void 0);
100
108
  const prevInterval = ref(void 0);
101
109
  if (options?.keyListener?.next) {
102
110
  for (const key of options.keyListener.next) {
103
- watch(keys[key], (value) => {
111
+ const mappedKey = keys[key];
112
+ if (!mappedKey) {
113
+ logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
114
+ continue;
115
+ }
116
+ watch(mappedKey, (value) => {
104
117
  if (isIdle.value) {
105
118
  return;
106
119
  }
@@ -121,7 +134,12 @@ if (options?.keyListener?.next) {
121
134
  }
122
135
  if (options?.keyListener?.prev) {
123
136
  for (const key of options.keyListener.prev) {
124
- watch(keys[key], (value) => {
137
+ const mappedKey = keys[key];
138
+ if (!mappedKey) {
139
+ logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
140
+ continue;
141
+ }
142
+ watch(mappedKey, (value) => {
125
143
  if (isIdle.value) {
126
144
  return;
127
145
  }
@@ -4,7 +4,7 @@ declare var __VLS_19: {};
4
4
  type __VLS_Slots = {} & {
5
5
  default?: (props: typeof __VLS_19) => any;
6
6
  };
7
- declare const __VLS_component: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
+ declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
8
8
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
9
9
  export default _default;
10
10
  type __VLS_WithSlots<T, S> = T & {
@@ -15,6 +15,9 @@ import { useMagicDrawer } from "@maas/vue-equipment/plugins/MagicDrawer";
15
15
  import {
16
16
  useMagicEmitter
17
17
  } from "@maas/vue-equipment/plugins/MagicEmitter";
18
+ import {
19
+ useMagicError
20
+ } from "@maas/vue-equipment/plugins/MagicError";
18
21
  import { useMagicCommand } from "../composables/useMagicCommand";
19
22
  import { MagicCommandInstanceId } from "../symbols";
20
23
  defineOptions({
@@ -23,13 +26,16 @@ defineOptions({
23
26
  defineProps({
24
27
  options: { type: null, required: false }
25
28
  });
29
+ const magicError = useMagicError({
30
+ prefix: "MagicCommand",
31
+ source: "MagicCommandDrawer"
32
+ });
26
33
  const instanceId = inject(MagicCommandInstanceId, "");
27
34
  const emitter = useMagicEmitter();
28
- if (!instanceId) {
29
- throw new Error(
30
- "MagicCommandDrawer must be nested inside MagicCommandProvider"
31
- );
32
- }
35
+ magicError.assert(instanceId, {
36
+ message: "MagicCommandDrawer must be nested inside MagicCommandProvider",
37
+ errorCode: "missing_instance_id"
38
+ });
33
39
  function afterLeaveCallback(payload) {
34
40
  if (typeof payload === "string" && payload === instanceId) {
35
41
  close();
@@ -6,7 +6,7 @@ declare var __VLS_7: {};
6
6
  type __VLS_Slots = {} & {
7
7
  default?: (props: typeof __VLS_7) => any;
8
8
  };
9
- declare const __VLS_component: import("vue").DefineComponent<MagicCommandDrawerProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandDrawerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const __VLS_component: import("vue").DefineComponent<MagicCommandDrawerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandDrawerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
10
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
11
11
  export default _default;
12
12
  type __VLS_WithSlots<T, S> = T & {
@@ -24,6 +24,9 @@ import {
24
24
  useId,
25
25
  onMounted
26
26
  } from "vue";
27
+ import {
28
+ useMagicError
29
+ } from "@maas/vue-equipment/plugins/MagicError";
27
30
  import { useCommandItem } from "../composables/private/useCommandItem";
28
31
  import { useCommandState } from "../composables/private/useCommandState";
29
32
  import {
@@ -44,18 +47,25 @@ const {
44
47
  disabled: { type: Boolean, required: false }
45
48
  });
46
49
  const emit = defineEmits(["click"]);
50
+ const magicError = useMagicError({
51
+ prefix: "MagicCommand",
52
+ source: "MagicCommand"
53
+ });
47
54
  const instanceId = inject(MagicCommandInstanceId, void 0);
48
55
  const viewId = inject(MagicCommandViewId, void 0);
49
56
  const contentId = inject(MagicCommandContentId, void 0);
50
- if (!instanceId) {
51
- throw new Error("MagicCommandItem must be nested inside MagicCommandProvider");
52
- }
53
- if (!viewId) {
54
- throw new Error("MagicCommandItem must be nested inside MagicCommandView");
55
- }
56
- if (!contentId) {
57
- throw new Error("MagicCommandItem must be nested inside MagicCommandContent");
58
- }
57
+ magicError.assert(instanceId, {
58
+ message: "MagicCommandItem must be nested inside MagicCommandProvider",
59
+ errorCode: "missing_instance_id"
60
+ });
61
+ magicError.assert(viewId, {
62
+ message: "MagicCommandItem must be nested inside MagicCommandView",
63
+ errorCode: "missing_view_id"
64
+ });
65
+ magicError.assert(contentId, {
66
+ message: "MagicCommandItem must be nested inside MagicCommandContent",
67
+ errorCode: "missing_content_id"
68
+ });
59
69
  const mappedId = computed(() => id ?? `magic-command-item-${useId()}`);
60
70
  const { initializeItem, deleteItem, selectItem } = useCommandItem({
61
71
  instanceId,
@@ -10,7 +10,7 @@ declare var __VLS_1: {
10
10
  type __VLS_Slots = {} & {
11
11
  default?: (props: typeof __VLS_1) => any;
12
12
  };
13
- declare const __VLS_component: import("vue").DefineComponent<MagicCommandItemProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
13
+ declare const __VLS_component: import("vue").DefineComponent<MagicCommandItemProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
14
14
  click: (event: MouseEvent) => any;
15
15
  }, string, import("vue").PublicProps, Readonly<MagicCommandItemProps> & Readonly<{
16
16
  onClick?: ((event: MouseEvent) => any) | undefined;
@@ -6,7 +6,7 @@ declare var __VLS_7: {};
6
6
  type __VLS_Slots = {} & {
7
7
  default?: (props: typeof __VLS_7) => any;
8
8
  };
9
- declare const __VLS_component: import("vue").DefineComponent<MagicCommandProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const __VLS_component: import("vue").DefineComponent<MagicCommandProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
10
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
11
11
  export default _default;
12
12
  type __VLS_WithSlots<T, S> = T & {
@@ -8,6 +8,7 @@
8
8
  import { shallowRef, provide, watch, onBeforeUnmount } from "vue";
9
9
  import { useMagicKeys, usePointer } from "@vueuse/core";
10
10
  import { Primitive } from "@maas/vue-primitive";
11
+ import { useMagicError } from "@maas/vue-equipment/plugins/MagicError";
11
12
  import { createDefu } from "defu";
12
13
  import { useCommandState } from "../composables/private/useCommandState";
13
14
  import { useMagicCommand } from "../composables/useMagicCommand";
@@ -49,9 +50,18 @@ watch([x, y], ([x2, y2]) => {
49
50
  const keys = useMagicKeys();
50
51
  const commandApi = useMagicCommand(id);
51
52
  const { open, close } = commandApi;
53
+ const { logWarning } = useMagicError({
54
+ prefix: "MagicCommand",
55
+ source: "MagicCommandProvider"
56
+ });
52
57
  if (mappedOptions.keyListener?.open) {
53
58
  for (const key of mappedOptions.keyListener.open) {
54
- watch(keys[key], (value) => {
59
+ const mappedKey = keys[key];
60
+ if (!mappedKey) {
61
+ logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
62
+ continue;
63
+ }
64
+ watch(mappedKey, (value) => {
55
65
  if (value) {
56
66
  open();
57
67
  }
@@ -60,7 +70,12 @@ if (mappedOptions.keyListener?.open) {
60
70
  }
61
71
  if (mappedOptions.keyListener?.close) {
62
72
  for (const key of mappedOptions.keyListener.close) {
63
- watch(keys[key], (value) => {
73
+ const mappedKey = keys[key];
74
+ if (!mappedKey) {
75
+ logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
76
+ continue;
77
+ }
78
+ watch(mappedKey, (value) => {
64
79
  if (value) {
65
80
  close();
66
81
  }
@@ -9,7 +9,7 @@ declare var __VLS_7: {};
9
9
  type __VLS_Slots = {} & {
10
10
  default?: (props: typeof __VLS_7) => any;
11
11
  };
12
- declare const __VLS_component: import("vue").DefineComponent<MagicCommandProviderProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_component: import("vue").DefineComponent<MagicCommandProviderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
13
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
14
14
  export default _default;
15
15
  type __VLS_WithSlots<T, S> = T & {
@@ -4,18 +4,24 @@
4
4
 
5
5
  <script setup>
6
6
  import { inject, onBeforeUnmount, useTemplateRef } from "vue";
7
+ import {
8
+ useMagicError
9
+ } from "@maas/vue-equipment/plugins/MagicError";
7
10
  import {
8
11
  useMagicEmitter
9
12
  } from "@maas/vue-equipment/plugins/MagicEmitter";
10
13
  import { MagicCommandInstanceId } from "./../symbols";
11
14
  import { useCommandState } from "../composables/private/useCommandState";
15
+ const magicError = useMagicError({
16
+ prefix: "MagicCommand",
17
+ source: "MagicCommand"
18
+ });
12
19
  const instanceId = inject(MagicCommandInstanceId, "");
13
20
  const emitter = useMagicEmitter();
14
- if (!instanceId) {
15
- throw new Error(
16
- "MagicCommandRenderer must be nested inside MagicCommandProvider"
17
- );
18
- }
21
+ magicError.assert(instanceId, {
22
+ message: "MagicCommandRenderer must be nested inside MagicCommandProvider",
23
+ errorCode: "missing_instance_id"
24
+ });
19
25
  const elRef = useTemplateRef("el");
20
26
  const { initializeState } = useCommandState(instanceId);
21
27
  const state = initializeState();
@@ -1,2 +1,2 @@
1
- declare const _default: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
2
  export default _default;