@maas/vue-equipment 1.0.0-beta.2 → 1.0.0-beta.21

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 (217) hide show
  1. package/README.md +2 -2
  2. package/dist/composables/index.d.ts +5 -5
  3. package/dist/composables/index.js +23 -13
  4. package/dist/composables/index.js.map +1 -1
  5. package/dist/nuxt/module.d.mts +2 -1
  6. package/dist/nuxt/module.json +2 -2
  7. package/dist/nuxt/module.mjs +9 -2
  8. package/dist/nuxt/types.d.mts +3 -1
  9. package/dist/plugins/.turbo/turbo-lint.log +2 -10
  10. package/dist/plugins/MagicAccordion/nuxt.d.ts +1 -1
  11. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue +59 -82
  12. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +35 -22
  13. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue +17 -31
  14. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +12 -21
  15. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue +57 -62
  16. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +23 -59
  17. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue +34 -45
  18. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +17 -22
  19. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.d.ts +1 -1
  20. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.mjs +1 -0
  21. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionView.mjs +1 -0
  22. package/dist/plugins/MagicAccordion/src/composables/useMagicAccordion.mjs +1 -0
  23. package/dist/plugins/MagicAccordion/src/symbols/index.d.ts +2 -2
  24. package/dist/plugins/MagicCommand/nuxt.d.ts +1 -1
  25. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue +146 -152
  26. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue.d.ts +24 -13
  27. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue +42 -52
  28. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue.d.ts +12 -21
  29. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue +72 -87
  30. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +29 -28
  31. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue +37 -47
  32. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue.d.ts +12 -21
  33. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +61 -77
  34. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +12 -58
  35. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +23 -39
  36. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue +80 -86
  37. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +25 -60
  38. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue +36 -48
  39. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +15 -22
  40. package/dist/plugins/MagicCommand/src/composables/private/useCommandScroll.d.ts +2 -2
  41. package/dist/plugins/MagicCommand/src/composables/private/useCommandState.mjs +1 -1
  42. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.d.ts +1 -1
  43. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.mjs +1 -0
  44. package/dist/plugins/MagicCommand/src/symbols/index.d.ts +4 -4
  45. package/dist/plugins/MagicCommand/src/types/index.d.ts +1 -1
  46. package/dist/plugins/MagicCookie/nuxt.d.ts +1 -1
  47. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue +34 -41
  48. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +13 -22
  49. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue +19 -36
  50. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +9 -21
  51. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue +40 -72
  52. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue.d.ts +21 -12
  53. package/dist/plugins/MagicCookie/src/composables/private/useCookieItem.mjs +0 -1
  54. package/dist/plugins/MagicCookie/src/symbols/index.d.ts +2 -2
  55. package/dist/plugins/MagicDraggable/nuxt.d.ts +1 -1
  56. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +81 -100
  57. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +94 -22
  58. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.d.ts +2 -2
  59. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +43 -63
  60. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableScrollLock.mjs +34 -14
  61. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.d.ts +2 -15
  62. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +117 -64
  63. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableState.mjs +6 -5
  64. package/dist/plugins/MagicDraggable/src/types/index.d.ts +2 -1
  65. package/dist/plugins/MagicDraggable/src/utils/defaultOptions.mjs +1 -1
  66. package/dist/plugins/MagicDrawer/nuxt.d.ts +1 -1
  67. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +271 -308
  68. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +165 -23
  69. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDOM.mjs +34 -14
  70. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.d.ts +2 -2
  71. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +3 -3
  72. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.d.ts +1 -1
  73. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.mjs +28 -10
  74. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.d.ts +2 -2
  75. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.d.ts +3 -3
  76. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +16 -14
  77. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.d.ts +1 -1
  78. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.mjs +1 -1
  79. package/dist/plugins/MagicDrawer/src/types/index.mjs +1 -0
  80. package/dist/plugins/MagicEmitter/nuxt.d.ts +1 -1
  81. package/dist/plugins/MagicEmitter/src/composables/useMagicEmitter.d.ts +100 -100
  82. package/dist/plugins/MagicMarquee/nuxt.d.ts +1 -1
  83. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue +38 -72
  84. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +14 -25
  85. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.d.ts +1 -1
  86. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.mjs +8 -2
  87. package/dist/plugins/MagicMarquee/src/composables/useMagicMarquee.d.ts +1 -1
  88. package/dist/plugins/MagicMenu/nuxt.d.ts +1 -1
  89. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +51 -63
  90. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +18 -21
  91. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +178 -214
  92. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +41 -24
  93. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +171 -198
  94. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +40 -25
  95. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +87 -113
  96. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +31 -28
  97. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +82 -81
  98. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +12 -58
  99. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +63 -86
  100. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +19 -23
  101. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +94 -97
  102. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +27 -60
  103. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +49 -61
  104. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +15 -22
  105. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +1 -1
  106. package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.mjs +15 -5
  107. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.d.ts +3 -3
  108. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.mjs +4 -4
  109. package/dist/plugins/MagicMenu/src/composables/private/useMenuDOM.mjs +35 -15
  110. package/dist/plugins/MagicMenu/src/composables/private/useMenuKeyListener.mjs +6 -2
  111. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.d.ts +1 -1
  112. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.mjs +2 -0
  113. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +18 -6
  114. package/dist/plugins/MagicMenu/src/composables/useMagicMenu.mjs +1 -0
  115. package/dist/plugins/MagicMenu/src/symbols/index.d.ts +4 -4
  116. package/dist/plugins/MagicMenu/src/utils/modeDelayDefaults.d.ts +2 -2
  117. package/dist/plugins/MagicMenu/src/utils/modeDelayDefaults.mjs +2 -2
  118. package/dist/plugins/MagicModal/nuxt.d.ts +1 -1
  119. package/dist/plugins/MagicModal/src/components/MagicModal.vue +133 -168
  120. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +44 -21
  121. package/dist/plugins/MagicModal/src/composables/private/useModalDOM.mjs +34 -14
  122. package/dist/plugins/MagicModal/src/types/index.mjs +1 -0
  123. package/dist/plugins/MagicNoise/nuxt.d.ts +1 -1
  124. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue +50 -81
  125. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +1 -10
  126. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.d.ts +3 -3
  127. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.mjs +2 -2
  128. package/dist/plugins/MagicPie/index.d.ts +7 -0
  129. package/dist/plugins/MagicPie/index.mjs +8 -0
  130. package/dist/plugins/MagicPie/nuxt.d.ts +2 -0
  131. package/dist/plugins/MagicPie/nuxt.mjs +23 -0
  132. package/dist/plugins/MagicPie/src/components/MagicPie.vue +168 -0
  133. package/dist/plugins/MagicPie/src/components/MagicPie.vue.d.ts +7 -0
  134. package/dist/plugins/MagicPie/src/composables/private/usePieState.d.ts +6 -0
  135. package/dist/plugins/MagicPie/src/composables/private/usePieState.mjs +33 -0
  136. package/dist/plugins/MagicPie/src/composables/useMagicPie.d.ts +13 -0
  137. package/dist/plugins/MagicPie/src/composables/useMagicPie.mjs +43 -0
  138. package/dist/plugins/MagicPie/src/types/index.d.ts +9 -0
  139. package/dist/plugins/MagicPie/src/types/index.mjs +0 -0
  140. package/dist/plugins/MagicPlayer/nuxt.d.ts +1 -1
  141. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +58 -63
  142. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue +99 -127
  143. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +30 -26
  144. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue +32 -42
  145. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +1 -10
  146. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +106 -105
  147. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +1 -10
  148. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +51 -76
  149. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +29 -14
  150. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue +18 -37
  151. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue.d.ts +12 -11
  152. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue +41 -55
  153. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue.d.ts +23 -23
  154. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +60 -109
  155. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +74 -71
  156. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue +163 -209
  157. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue.d.ts +63 -33
  158. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.d.ts +0 -4
  159. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.mjs +6 -47
  160. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.d.ts +7 -34
  161. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.mjs +154 -235
  162. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.d.ts +3 -17
  163. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +17 -157
  164. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +2 -3
  165. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +7 -25
  166. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.d.ts +7 -0
  167. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.mjs +56 -0
  168. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.d.ts +3 -8
  169. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.mjs +7 -62
  170. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.d.ts +32 -51
  171. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.mjs +49 -2
  172. package/dist/plugins/MagicPlayer/src/symbols/index.d.ts +5 -2
  173. package/dist/plugins/MagicPlayer/src/symbols/index.mjs +10 -1
  174. package/dist/plugins/MagicPlayer/src/types/index.d.ts +29 -0
  175. package/dist/plugins/MagicScroll/nuxt.d.ts +1 -1
  176. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +54 -61
  177. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +9 -23
  178. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue +56 -71
  179. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue.d.ts +9 -23
  180. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue +26 -33
  181. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +45 -37
  182. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +63 -71
  183. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +13 -24
  184. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.d.ts +2 -2
  185. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.mjs +16 -6
  186. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.d.ts +2 -2
  187. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.mjs +41 -26
  188. package/dist/plugins/MagicScroll/src/symbols/index.d.ts +1 -1
  189. package/dist/plugins/MagicToast/nuxt.d.ts +1 -1
  190. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue +94 -118
  191. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +1 -10
  192. package/dist/plugins/MagicToast/src/components/MagicToastView.vue +54 -81
  193. package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +24 -23
  194. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.d.ts +2 -2
  195. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.mjs +5 -5
  196. package/dist/plugins/MagicToast/src/composables/private/useToastDrag.mjs +22 -22
  197. package/dist/plugins/MagicToast/src/composables/private/useToastListener.mjs +1 -0
  198. package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.mjs +33 -15
  199. package/dist/plugins/MagicToast/src/composables/private/useToastView.mjs +1 -0
  200. package/dist/plugins/MagicToast/src/composables/useMagicToast.d.ts +1 -0
  201. package/dist/plugins/MagicToast/src/composables/useMagicToast.mjs +10 -2
  202. package/dist/plugins/MagicToast/src/types/index.d.ts +1 -1
  203. package/dist/plugins/MagicToast/src/utils/defaultOptions.mjs +1 -1
  204. package/dist/plugins/index.d.ts +1 -0
  205. package/dist/plugins/index.mjs +1 -0
  206. package/dist/utils/index.d.ts +9 -4
  207. package/dist/utils/index.js +39 -3
  208. package/dist/utils/index.js.map +1 -1
  209. package/package.json +17 -8
  210. package/dist/nuxt/module.cjs +0 -5
  211. package/dist/nuxt/module.d.ts +0 -9
  212. package/dist/nuxt/types.d.ts +0 -1
  213. package/dist/plugins/MagicAccordion/demo/data/footer.json +0 -117
  214. package/dist/plugins/MagicCommand/demo/data/about.json +0 -3
  215. package/dist/plugins/MagicCommand/demo/data/search.json +0 -594
  216. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerStateEmitter.d.ts +0 -15
  217. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerStateEmitter.mjs +0 -9
@@ -1,3 +1,4 @@
1
+ import {} from "vue";
1
2
  import { useMenuState } from "./useMenuState.mjs";
2
3
  import { useMenuView } from "./useMenuView.mjs";
3
4
  import { useMenuItem } from "./useMenuItem.mjs";
@@ -20,10 +21,13 @@ export function useMenuKeyListener(instanceId) {
20
21
  switch (true) {
21
22
  case (!state.active && state.options.debug):
22
23
  throw new Error(`'MagicMenu ${state.id} is not active'`);
23
- default:
24
+ case state.active:
24
25
  state.input.type = "keyboard";
25
- e.preventDefault();
26
26
  e.stopPropagation();
27
+ e.preventDefault();
28
+ break;
29
+ default:
30
+ state.input.type = "keyboard";
27
31
  }
28
32
  }
29
33
  function getEnabledItems(view) {
@@ -7,7 +7,7 @@ type UseMenuTriggerArgs = {
7
7
  itemId?: string;
8
8
  mappedDisabled: ComputedRef<boolean>;
9
9
  mappedTrigger: ComputedRef<Interaction[]>;
10
- elRef: Ref<InstanceType<typeof Primitive> | undefined>;
10
+ elRef: Ref<InstanceType<typeof Primitive> | null>;
11
11
  };
12
12
  export declare function useMenuTrigger(args: UseMenuTriggerArgs): {
13
13
  onMouseenter: () => void;
@@ -1,3 +1,5 @@
1
+ import {} from "vue";
2
+ import { Primitive } from "@maas/vue-primitive";
1
3
  import { useMagicKeys, useFocus } from "@vueuse/core";
2
4
  import { useMenuView } from "./useMenuView.mjs";
3
5
  import { useMenuState } from "./useMenuState.mjs";
@@ -68,7 +68,9 @@ export function useMenuView(instanceId) {
68
68
  }
69
69
  function getRelativeViewIndex(id) {
70
70
  const view = getView(id);
71
- if (!view) return -1;
71
+ if (!view) {
72
+ return -1;
73
+ }
72
74
  const nestingLevel = view.parent.views.length;
73
75
  return state.views.findIndex(
74
76
  (v) => v.parent.views.length === nestingLevel && v.id === id
@@ -90,25 +92,33 @@ export function useMenuView(instanceId) {
90
92
  }
91
93
  function getParentView(id) {
92
94
  const view = getView(id);
93
- if (!view) return void 0;
95
+ if (!view) {
96
+ return void 0;
97
+ }
94
98
  const parentId = view.parent.views[view.parent.views.length - 1];
95
99
  return parentId ? getView(parentId) : void 0;
96
100
  }
97
101
  function getUnrelatedViews(id) {
98
102
  const view = getView(id);
99
- if (!view) return [];
103
+ if (!view) {
104
+ return [];
105
+ }
100
106
  const parentViewsSet = new Set(view.parent.views);
101
107
  return state.views.filter((v) => v.id !== id && !parentViewsSet.has(v.id));
102
108
  }
103
109
  function getDescendingViews(id) {
104
110
  const view = getView(id);
105
- if (!view) return [];
111
+ if (!view) {
112
+ return [];
113
+ }
106
114
  const parentViewsSet = new Set(view.parent.views);
107
115
  return state.views.filter((v) => v.id !== id && !parentViewsSet.has(v.id));
108
116
  }
109
117
  async function selectView(id, delayMs = 0) {
110
118
  const view = getView(id);
111
- if (!view) return;
119
+ if (!view) {
120
+ return;
121
+ }
112
122
  if (view.state.unselectAbortController) {
113
123
  view.state.unselectAbortController.abort();
114
124
  }
@@ -128,7 +138,9 @@ export function useMenuView(instanceId) {
128
138
  }
129
139
  async function unselectView(id, delayMs = 0) {
130
140
  const view = getView(id);
131
- if (!view) return;
141
+ if (!view) {
142
+ return;
143
+ }
132
144
  if (view.state.selectAbortController) {
133
145
  view.state.selectAbortController.abort();
134
146
  }
@@ -1,3 +1,4 @@
1
+ import {} from "vue";
1
2
  import { useMenuView } from "./private/useMenuView.mjs";
2
3
  import { useMenuChannel } from "./private/useMenuChannel.mjs";
3
4
  export function useMagicMenu(args) {
@@ -1,11 +1,11 @@
1
- import type { InjectionKey, MaybeRef } from 'vue';
1
+ import type { InjectionKey, MaybeRef, Ref } from 'vue';
2
2
  declare const MagicMenuInstanceId: InjectionKey<MaybeRef<string>>;
3
3
  declare const MagicMenuParentTree: InjectionKey<string[]>;
4
4
  declare const MagicMenuViewId: InjectionKey<string>;
5
- declare const MagicMenuViewActive: InjectionKey<MaybeRef<boolean>>;
5
+ declare const MagicMenuViewActive: InjectionKey<Ref<boolean>>;
6
6
  declare const MagicMenuContentId: InjectionKey<string>;
7
7
  declare const MagicMenuItemId: InjectionKey<string>;
8
- declare const MagicMenuItemActive: InjectionKey<MaybeRef<boolean>>;
8
+ declare const MagicMenuItemActive: InjectionKey<Ref<boolean>>;
9
9
  declare const MagicMenuChannelId: InjectionKey<string>;
10
- declare const MagicMenuChannelActive: InjectionKey<MaybeRef<boolean>>;
10
+ declare const MagicMenuChannelActive: InjectionKey<Ref<boolean>>;
11
11
  export { MagicMenuInstanceId, MagicMenuParentTree, MagicMenuViewId, MagicMenuViewActive, MagicMenuContentId, MagicMenuItemId, MagicMenuItemActive, MagicMenuChannelId, MagicMenuChannelActive, };
@@ -2,10 +2,10 @@ export declare enum ModeDelayMouseenter {
2
2
  menubar = 0,
3
3
  dropdown = 0,
4
4
  context = 0,
5
- navigation = 50
5
+ navigation = 0
6
6
  }
7
7
  export declare enum ModeDelayMouseleave {
8
- navigation = 200
8
+ navigation = 100
9
9
  }
10
10
  export declare enum ModeDelayClick {
11
11
  menubar = 0,
@@ -2,11 +2,11 @@ export var ModeDelayMouseenter = /* @__PURE__ */ ((ModeDelayMouseenter2) => {
2
2
  ModeDelayMouseenter2[ModeDelayMouseenter2["menubar"] = 0] = "menubar";
3
3
  ModeDelayMouseenter2[ModeDelayMouseenter2["dropdown"] = 0] = "dropdown";
4
4
  ModeDelayMouseenter2[ModeDelayMouseenter2["context"] = 0] = "context";
5
- ModeDelayMouseenter2[ModeDelayMouseenter2["navigation"] = 50] = "navigation";
5
+ ModeDelayMouseenter2[ModeDelayMouseenter2["navigation"] = 0] = "navigation";
6
6
  return ModeDelayMouseenter2;
7
7
  })(ModeDelayMouseenter || {});
8
8
  export var ModeDelayMouseleave = /* @__PURE__ */ ((ModeDelayMouseleave2) => {
9
- ModeDelayMouseleave2[ModeDelayMouseleave2["navigation"] = 200] = "navigation";
9
+ ModeDelayMouseleave2[ModeDelayMouseleave2["navigation"] = 100] = "navigation";
10
10
  return ModeDelayMouseleave2;
11
11
  })(ModeDelayMouseleave || {});
12
12
  export var ModeDelayClick = /* @__PURE__ */ ((ModeDelayClick2) => {
@@ -1,2 +1,2 @@
1
- declare const _default: import("@nuxt/schema").NuxtModule<import("@nuxt/schema").ModuleOptions, import("@nuxt/schema").ModuleOptions, false>;
1
+ declare const _default: import("nuxt/schema").NuxtModule<import("nuxt/schema").ModuleOptions, import("nuxt/schema").ModuleOptions, false>;
2
2
  export default _default;
@@ -1,9 +1,55 @@
1
- <script>
2
- import { defineComponent as _defineComponent } from "vue";
3
- import { unref as _unref, renderSlot as _renderSlot, vShow as _vShow, withModifiers as _withModifiers, createElementVNode as _createElementVNode, withDirectives as _withDirectives, Transition as _Transition, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveDynamicComponent as _resolveDynamicComponent, createVNode as _createVNode, mergeProps as _mergeProps, Teleport as _Teleport } from "vue";
4
- const _hoisted_1 = ["id"];
1
+ <template>
2
+ <teleport
3
+ v-if="wrapperActive"
4
+ :to="mappedOptions.teleport?.target"
5
+ :disabled="mappedOptions.teleport?.disabled"
6
+ >
7
+ <div
8
+ ref="modal"
9
+ class="magic-modal"
10
+ :data-id="mappedId"
11
+ v-bind="$attrs"
12
+ aria-modal="true"
13
+ @click.self="close"
14
+ >
15
+ <transition
16
+ v-if="mappedOptions.backdrop || !!$slots.backdrop"
17
+ :name="mappedOptions.transition?.backdrop"
18
+ >
19
+ <div
20
+ v-show="innerActive"
21
+ class="magic-modal__backdrop"
22
+ @click.self="close"
23
+ >
24
+ <slot name="backdrop" />
25
+ </div>
26
+ </transition>
27
+ <transition
28
+ :name="mappedOptions.transition?.content"
29
+ @before-leave="onBeforeLeave"
30
+ @leave="onLeave"
31
+ @after-leave="onAfterLeave"
32
+ @before-enter="onBeforeEnter"
33
+ @enter="onEnter"
34
+ @after-enter="onAfterEnter"
35
+ >
36
+ <component
37
+ :is="mappedOptions.tag"
38
+ v-show="innerActive"
39
+ class="magic-modal__content"
40
+ @click.self="close"
41
+ >
42
+ <slot />
43
+ </component>
44
+ </transition>
45
+ </div>
46
+ </teleport>
47
+ </template>
48
+
49
+ <script setup>
5
50
  import {
6
- ref,
51
+ useTemplateRef,
52
+ shallowRef,
7
53
  watch,
8
54
  nextTick,
9
55
  toValue,
@@ -18,171 +64,90 @@ import { useModalCallback } from "../composables/private/useModalCallback";
18
64
  import { useMagicModal } from "../composables/useMagicModal";
19
65
  import "@maas/vue-equipment/utils/css/animations/fade-in.css";
20
66
  import "@maas/vue-equipment/utils/css/animations/fade-out.css";
21
- export default /* @__PURE__ */ _defineComponent({
22
- ...{
23
- inheritAttrs: false
24
- },
25
- __name: "MagicModal",
26
- props: {
27
- id: { type: null, required: true },
28
- props: { type: Object, required: false },
29
- options: { type: Object, required: false, default: () => ({}) }
30
- },
31
- setup(__props) {
32
- const customDefu = createDefu((obj, key, value) => {
33
- if (key === "close") {
34
- obj[key] = value;
35
- return true;
36
- }
37
- });
38
- const mappedOptions = customDefu(__props.options, defaultOptions);
39
- const modalRef = ref(void 0);
40
- const {
41
- trapFocus,
42
- releaseFocus,
43
- lockScroll,
44
- unlockScroll,
45
- addScrollLockPadding,
46
- removeScrollLockPadding
47
- } = useModalDOM({
48
- focusTarget: modalRef,
49
- focusTrap: mappedOptions.focusTrap
50
- });
51
- const { isActive, close } = useMagicModal(__props.id);
52
- const innerActive = ref(false);
53
- const wrapperActive = ref(false);
54
- const {
55
- onBeforeEnter,
56
- onEnter,
57
- onAfterEnter,
58
- onBeforeLeave,
59
- onLeave,
60
- onAfterLeave
61
- } = useModalCallback({
62
- id: __props.id,
63
- mappedOptions,
64
- addScrollLockPadding,
65
- removeScrollLockPadding,
66
- lockScroll,
67
- unlockScroll,
68
- trapFocus,
69
- releaseFocus,
70
- wrapperActive
71
- });
72
- async function onOpen() {
73
- wrapperActive.value = true;
74
- await nextTick();
75
- innerActive.value = true;
76
- }
77
- function onClose() {
78
- innerActive.value = false;
79
- }
80
- if (mappedOptions.keyListener?.close) {
81
- for (const key of mappedOptions.keyListener.close) {
82
- onKeyStroke(key, (e) => {
83
- close();
84
- e.preventDefault();
85
- });
86
- }
87
- }
88
- watch(isActive, async (value) => {
89
- if (value) {
90
- await onOpen();
91
- } else {
92
- onClose();
93
- }
94
- });
95
- onBeforeUnmount(() => {
67
+ defineOptions({
68
+ inheritAttrs: false
69
+ });
70
+ const customDefu = createDefu((obj, key, value) => {
71
+ if (key === "close") {
72
+ obj[key] = value;
73
+ return true;
74
+ }
75
+ });
76
+ const { id, options = {} } = defineProps({
77
+ id: { type: null, required: true },
78
+ props: { type: Object, required: false },
79
+ options: { type: Object, required: false }
80
+ });
81
+ const mappedOptions = customDefu(options, defaultOptions);
82
+ const mappedId = toValue(id);
83
+ const modalRef = useTemplateRef("modal");
84
+ const {
85
+ trapFocus,
86
+ releaseFocus,
87
+ lockScroll,
88
+ unlockScroll,
89
+ addScrollLockPadding,
90
+ removeScrollLockPadding
91
+ } = useModalDOM({
92
+ focusTarget: modalRef,
93
+ focusTrap: mappedOptions.focusTrap
94
+ });
95
+ const { isActive, close } = useMagicModal(id);
96
+ const innerActive = shallowRef(false);
97
+ const wrapperActive = shallowRef(false);
98
+ const {
99
+ onBeforeEnter,
100
+ onEnter,
101
+ onAfterEnter,
102
+ onBeforeLeave,
103
+ onLeave,
104
+ onAfterLeave
105
+ } = useModalCallback({
106
+ id,
107
+ mappedOptions,
108
+ addScrollLockPadding,
109
+ removeScrollLockPadding,
110
+ lockScroll,
111
+ unlockScroll,
112
+ trapFocus,
113
+ releaseFocus,
114
+ wrapperActive
115
+ });
116
+ async function onOpen() {
117
+ wrapperActive.value = true;
118
+ await nextTick();
119
+ innerActive.value = true;
120
+ }
121
+ function onClose() {
122
+ innerActive.value = false;
123
+ }
124
+ if (mappedOptions.keyListener?.close) {
125
+ for (const key of mappedOptions.keyListener.close) {
126
+ onKeyStroke(key, (e) => {
96
127
  close();
128
+ e.preventDefault();
97
129
  });
98
- onUnmounted(() => {
99
- if (mappedOptions.scrollLock) {
100
- unlockScroll();
101
- if (typeof mappedOptions.scrollLock === "object" && mappedOptions.scrollLock.padding) {
102
- removeScrollLockPadding();
103
- }
104
- }
105
- if (mappedOptions.focusTrap) {
106
- releaseFocus();
107
- }
108
- });
109
- return (_ctx, _cache) => {
110
- return wrapperActive.value ? (_openBlock(), _createBlock(_Teleport, {
111
- key: 0,
112
- to: _unref(mappedOptions).teleport?.target,
113
- disabled: _unref(mappedOptions).teleport?.disabled
114
- }, [
115
- _createElementVNode("div", _mergeProps({
116
- id: toValue(_ctx.id),
117
- ref_key: "modalRef",
118
- ref: modalRef,
119
- class: "magic-modal"
120
- }, _ctx.$attrs, {
121
- "aria-modal": "true",
122
- onClick: _cache[1] || (_cache[1] = _withModifiers(
123
- //@ts-ignore
124
- (...args) => _unref(close) && _unref(close)(...args),
125
- ["self"]
126
- ))
127
- }), [
128
- _unref(mappedOptions).backdrop || !!_ctx.$slots.backdrop ? (_openBlock(), _createBlock(_Transition, {
129
- key: 0,
130
- name: _unref(mappedOptions).transition?.backdrop,
131
- persisted: ""
132
- }, {
133
- default: _withCtx(() => [
134
- _withDirectives(_createElementVNode(
135
- "div",
136
- {
137
- class: "magic-modal__backdrop",
138
- onClick: _cache[0] || (_cache[0] = _withModifiers(
139
- //@ts-ignore
140
- (...args) => _unref(close) && _unref(close)(...args),
141
- ["self"]
142
- ))
143
- },
144
- [
145
- _renderSlot(_ctx.$slots, "backdrop")
146
- ],
147
- 512
148
- /* NEED_PATCH */
149
- ), [
150
- [_vShow, innerActive.value]
151
- ])
152
- ]),
153
- _: 3
154
- /* FORWARDED */
155
- }, 8, ["name"])) : _createCommentVNode("v-if", true),
156
- _createVNode(_Transition, {
157
- name: _unref(mappedOptions).transition?.content,
158
- onBeforeLeave: _unref(onBeforeLeave),
159
- onLeave: _unref(onLeave),
160
- onAfterLeave: _unref(onAfterLeave),
161
- onBeforeEnter: _unref(onBeforeEnter),
162
- onEnter: _unref(onEnter),
163
- onAfterEnter: _unref(onAfterEnter),
164
- persisted: ""
165
- }, {
166
- default: _withCtx(() => [
167
- _withDirectives((_openBlock(), _createBlock(_resolveDynamicComponent(_unref(mappedOptions).tag), {
168
- class: "magic-modal__content",
169
- onClick: _withModifiers(_unref(close), ["self"])
170
- }, {
171
- default: _withCtx(() => [
172
- _renderSlot(_ctx.$slots, "default")
173
- ]),
174
- _: 3
175
- /* FORWARDED */
176
- }, 8, ["onClick"])), [
177
- [_vShow, innerActive.value]
178
- ])
179
- ]),
180
- _: 3
181
- /* FORWARDED */
182
- }, 8, ["name", "onBeforeLeave", "onLeave", "onAfterLeave", "onBeforeEnter", "onEnter", "onAfterEnter"])
183
- ], 16, _hoisted_1)
184
- ], 8, ["to", "disabled"])) : _createCommentVNode("v-if", true);
185
- };
130
+ }
131
+ }
132
+ watch(isActive, async (value) => {
133
+ if (value) {
134
+ await onOpen();
135
+ } else {
136
+ onClose();
137
+ }
138
+ });
139
+ onBeforeUnmount(() => {
140
+ close();
141
+ });
142
+ onUnmounted(() => {
143
+ if (mappedOptions.scrollLock) {
144
+ unlockScroll();
145
+ if (typeof mappedOptions.scrollLock === "object" && mappedOptions.scrollLock.padding) {
146
+ removeScrollLockPadding();
147
+ }
148
+ }
149
+ if (mappedOptions.focusTrap) {
150
+ releaseFocus();
186
151
  }
187
152
  });
188
153
  </script>
@@ -7,31 +7,54 @@ interface MagicModalProps {
7
7
  props?: Record<string, unknown>;
8
8
  options?: MagicModalOptions;
9
9
  }
10
- declare function __VLS_template(): {
11
- attrs: Partial<{}>;
12
- slots: {
13
- backdrop?(_: {}): any;
14
- default?(_: {}): any;
10
+ declare const mappedOptions: Omit<MagicModalOptions, keyof MagicModalOptions> & Omit<import("../../../../utils/index.js").RequireAll<MagicModalOptions>, keyof MagicModalOptions> & {
11
+ transition: {
12
+ content?: string;
13
+ backdrop?: string;
15
14
  };
16
- refs: {
17
- modalRef: HTMLDivElement;
15
+ tag: "div" | "dialog";
16
+ scrollLock: boolean | {
17
+ padding: boolean;
18
18
  };
19
- rootEl: any;
20
- };
21
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
- declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicModalProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicModalProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
23
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
24
- export default _default;
25
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
26
- type __VLS_TypePropsToOption<T> = {
27
- [K in keyof T]-?: {} extends Pick<T, K> ? {
28
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
29
- } : {
30
- type: import('vue').PropType<T[K]>;
31
- required: true;
19
+ keyListener: {
20
+ close?: string[] | false;
21
+ };
22
+ backdrop: boolean;
23
+ focusTrap: boolean | import("focus-trap").Options;
24
+ teleport: {
25
+ target?: string;
26
+ disabled?: boolean;
32
27
  };
33
28
  };
34
- type __VLS_WithTemplateSlots<T, S> = T & {
29
+ declare const mappedId: string;
30
+ declare const close: () => void;
31
+ declare const innerActive: import("vue").ShallowRef<boolean, boolean>;
32
+ declare const wrapperActive: import("vue").ShallowRef<boolean, boolean>;
33
+ declare const onBeforeEnter: () => void, onEnter: () => void, onAfterEnter: () => Promise<void>, onBeforeLeave: () => void, onLeave: () => void, onAfterLeave: () => void;
34
+ declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
35
+ declare var __VLS_9: {}, __VLS_32: {};
36
+ type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
37
+ backdrop?: (props: typeof __VLS_9) => any;
38
+ } & {
39
+ default?: (props: typeof __VLS_32) => any;
40
+ }>;
41
+ declare const __VLS_self: import("vue").DefineComponent<MagicModalProps, {
42
+ mappedOptions: typeof mappedOptions;
43
+ mappedId: typeof mappedId;
44
+ close: typeof close;
45
+ innerActive: typeof innerActive;
46
+ wrapperActive: typeof wrapperActive;
47
+ onBeforeEnter: typeof onBeforeEnter;
48
+ onEnter: typeof onEnter;
49
+ onAfterEnter: typeof onAfterEnter;
50
+ onBeforeLeave: typeof onBeforeLeave;
51
+ onLeave: typeof onLeave;
52
+ onAfterLeave: typeof onAfterLeave;
53
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicModalProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
54
+ declare const __VLS_component: import("vue").DefineComponent<MagicModalProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicModalProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
55
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
56
+ export default _default;
57
+ type __VLS_WithSlots<T, S> = T & {
35
58
  new (): {
36
59
  $slots: S;
37
60
  };
@@ -1,14 +1,18 @@
1
- import { ref } from "vue";
1
+ import { ref, shallowRef } from "vue";
2
2
  import { defu } from "defu";
3
3
  import { useScrollLock } from "@vueuse/core";
4
4
  import { useFocusTrap } from "@vueuse/integrations/useFocusTrap";
5
- import { matchClass } from "@maas/vue-equipment/utils";
5
+ import {
6
+ matchClass,
7
+ scrollbarGutterSupport,
8
+ scrollbarWidth
9
+ } from "@maas/vue-equipment/utils";
6
10
  const defaultOptions = {
7
11
  focusTrap: false,
8
12
  focusTarget: void 0,
9
13
  scrollLock: true
10
14
  };
11
- const scrollLock = typeof window !== "undefined" ? useScrollLock(document?.documentElement) : ref(false);
15
+ const scrollLock = typeof window !== "undefined" ? useScrollLock(document?.documentElement) : shallowRef(false);
12
16
  export function useModalDOM(args) {
13
17
  const positionFixedElements = ref([]);
14
18
  const mappedOptions = defu(args, defaultOptions);
@@ -36,24 +40,40 @@ export function useModalDOM(args) {
36
40
  function addScrollLockPadding() {
37
41
  if (typeof window === "undefined") return;
38
42
  const exclude = new RegExp(/magic-modal(__backdrop)?/);
39
- const scrollbarWidth = window.innerWidth - document.body.offsetWidth;
40
- document.body.style.setProperty("--scrollbar-width", `${scrollbarWidth}px`);
41
- document.body.style.paddingRight = "var(--scrollbar-width)";
43
+ document.body.style.setProperty(
44
+ "--scrollbar-width",
45
+ `${scrollbarWidth()}px`
46
+ );
42
47
  positionFixedElements.value = [
43
48
  ...document.body.getElementsByTagName("*")
44
49
  ].filter(
45
- (x) => getComputedStyle(x, null).getPropertyValue("position") === "fixed" && !matchClass(x, exclude)
46
- );
47
- positionFixedElements.value.forEach(
48
- (elem) => elem.style.paddingRight = "var(--scrollbar-width)"
50
+ (x) => getComputedStyle(x, null).getPropertyValue("position") === "fixed" && getComputedStyle(x, null).getPropertyValue("right") === "0px" && !matchClass(x, exclude)
49
51
  );
52
+ switch (scrollbarGutterSupport()) {
53
+ case true:
54
+ document.documentElement.style.scrollbarGutter = "stable";
55
+ positionFixedElements.value.forEach((elem) => {
56
+ elem.style.scrollbarGutter = "stable";
57
+ elem.style.overflow = "auto";
58
+ });
59
+ break;
60
+ case false:
61
+ document.body.style.paddingRight = "var(--scrollbar-width)";
62
+ positionFixedElements.value.forEach(
63
+ (elem) => elem.style.paddingRight = "var(--scrollbar-width)"
64
+ );
65
+ break;
66
+ }
50
67
  }
51
68
  function removeScrollLockPadding() {
52
- document.body.style.paddingRight = "";
69
+ document.documentElement.style.scrollbarGutter = "";
53
70
  document.body.style.removeProperty("--scrollbar-width");
54
- positionFixedElements.value.forEach(
55
- (elem) => elem.style.paddingRight = ""
56
- );
71
+ document.body.style.paddingRight = "";
72
+ positionFixedElements.value.forEach((elem) => {
73
+ elem.style.paddingRight = "";
74
+ elem.style.scrollbarGutter = "";
75
+ elem.style.overflow = "";
76
+ });
57
77
  }
58
78
  return {
59
79
  trapFocus,
@@ -0,0 +1 @@
1
+ import {} from "focus-trap";
@@ -1,2 +1,2 @@
1
- declare const _default: import("@nuxt/schema").NuxtModule<import("@nuxt/schema").ModuleOptions, import("@nuxt/schema").ModuleOptions, false>;
1
+ declare const _default: import("nuxt/schema").NuxtModule<import("nuxt/schema").ModuleOptions, import("nuxt/schema").ModuleOptions, false>;
2
2
  export default _default;