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

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 +1 -0
  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,13 +1,29 @@
1
- <script>
2
- import { defineComponent as _defineComponent } from "vue";
3
- import { unref as _unref, renderSlot as _renderSlot, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from "vue";
4
- const _hoisted_1 = {
5
- viewBox: "0 0 100 100",
6
- xmlns: "http://www.w3.org/2000/svg"
7
- };
8
- const _hoisted_2 = ["points"];
1
+ <template>
2
+ <div
3
+ ref="el"
4
+ class="magic-menu-float"
5
+ :style="floatingStyles"
6
+ :class="placementClasses"
7
+ >
8
+ <div
9
+ v-if="hasArrow"
10
+ ref="arrow"
11
+ class="magic-menu-float__arrow"
12
+ :style="arrowStyles"
13
+ >
14
+ <slot name="arrow">
15
+ <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
16
+ <polygon :points="polygonPoints" fill="currentColor" />
17
+ </svg>
18
+ </slot>
19
+ </div>
20
+ <slot />
21
+ </div>
22
+ </template>
23
+
24
+ <script setup>
9
25
  import {
10
- ref,
26
+ useTemplateRef,
11
27
  computed,
12
28
  inject,
13
29
  toValue
@@ -24,201 +40,158 @@ import { MagicMenuInstanceId, MagicMenuViewId } from "../symbols";
24
40
  import { useMenuView } from "../composables/private/useMenuView";
25
41
  import { useMenuState } from "../composables/private/useMenuState";
26
42
  import { ModeFloatingStrategy } from "../utils/modeFloatingStrategyDefaults";
27
- export default /* @__PURE__ */ _defineComponent({
28
- __name: "MagicMenuFloat",
29
- props: {
30
- placement: { type: null, required: false },
31
- middleware: { type: Array, required: false },
32
- arrow: { type: Boolean, required: false },
33
- referenceEl: { type: null, required: false }
34
- },
35
- setup(__props) {
36
- const elRef = ref(void 0);
37
- const arrowRef = ref(void 0);
38
- const instanceId = inject(MagicMenuInstanceId, void 0);
39
- const viewId = inject(MagicMenuViewId, void 0);
40
- const { initializeState } = useMenuState(instanceId ?? "");
41
- const state = initializeState();
42
- const { getView } = useMenuView(instanceId ?? "");
43
- const view = getView(viewId ?? "");
44
- const mappedPlacement = computed(() => {
45
- if (__props.placement) {
46
- return __props.placement;
47
- }
48
- switch (state.options.mode) {
49
- case "menubar":
50
- return !view?.parent.item ? "bottom-start" : "right-start";
51
- case "dropdown":
52
- return !view?.parent.item ? "bottom" : "right-start";
53
- case "context":
54
- return "right-start";
55
- default:
56
- return void 0;
57
- }
58
- });
59
- const hasArrow = computed(
60
- () => __props.arrow ?? (state.options.mode === "dropdown" && !view?.parent.item)
61
- );
62
- const mappedMiddleware = computed(() => {
63
- const combined = [];
64
- if (__props.middleware) {
65
- combined.push(...__props.middleware);
43
+ const { placement, middleware, arrow, referenceEl } = defineProps({
44
+ placement: { type: null, required: false },
45
+ middleware: { type: Array, required: false },
46
+ arrow: { type: Boolean, required: false },
47
+ referenceEl: { type: null, required: false }
48
+ });
49
+ const elRef = useTemplateRef("el");
50
+ const arrowRef = useTemplateRef("arrow");
51
+ const instanceId = inject(MagicMenuInstanceId, void 0);
52
+ const viewId = inject(MagicMenuViewId, void 0);
53
+ const { initializeState } = useMenuState(instanceId ?? "");
54
+ const state = initializeState();
55
+ const { getView } = useMenuView(instanceId ?? "");
56
+ const view = getView(viewId ?? "");
57
+ const mappedPlacement = computed(() => {
58
+ if (placement) {
59
+ return placement;
60
+ }
61
+ switch (state.options.mode) {
62
+ case "menubar":
63
+ return !view?.parent.item ? "bottom-start" : "right-start";
64
+ case "dropdown":
65
+ return !view?.parent.item ? "bottom" : "right-start";
66
+ case "context":
67
+ return "right-start";
68
+ default:
69
+ return void 0;
70
+ }
71
+ });
72
+ const hasArrow = computed(
73
+ () => arrow ?? (state.options.mode === "dropdown" && !view?.parent.item)
74
+ );
75
+ const mappedMiddleware = computed(() => {
76
+ const combined = [];
77
+ if (middleware) {
78
+ combined.push(...middleware);
79
+ }
80
+ switch (state.options.mode) {
81
+ case "menubar":
82
+ if (!view?.parent.item) {
83
+ combined.push(
84
+ flip({
85
+ crossAxis: true
86
+ })
87
+ );
88
+ } else if (!!view?.parent.item) {
89
+ combined.push(
90
+ flip({
91
+ crossAxis: false
92
+ })
93
+ );
94
+ combined.push(
95
+ shift({
96
+ crossAxis: true,
97
+ limiter: limitShift()
98
+ })
99
+ );
66
100
  }
67
- switch (state.options.mode) {
68
- case "menubar":
69
- if (!view?.parent.item) {
70
- combined.push(
71
- flip({
72
- crossAxis: true
73
- })
74
- );
75
- } else if (!!view?.parent.item) {
76
- combined.push(
77
- flip({
78
- crossAxis: false
79
- })
80
- );
81
- combined.push(
82
- shift({
83
- crossAxis: true,
84
- limiter: limitShift()
85
- })
86
- );
87
- }
88
- break;
89
- case "dropdown":
90
- combined.push(
91
- flip({
92
- mainAxis: true,
93
- crossAxis: false
94
- })
95
- );
96
- combined.push(
97
- shift({
98
- mainAxis: true,
99
- crossAxis: false,
100
- limiter: limitShift()
101
- })
102
- );
103
- if (hasArrow.value) {
104
- combined.push(
105
- floatingArrow({
106
- element: arrowRef.value
107
- })
108
- );
109
- }
110
- break;
111
- case "context":
112
- combined.push(
113
- flip({
114
- mainAxis: true,
115
- crossAxis: true
116
- })
117
- );
118
- break;
101
+ break;
102
+ case "dropdown":
103
+ combined.push(
104
+ flip({
105
+ mainAxis: true,
106
+ crossAxis: false
107
+ })
108
+ );
109
+ combined.push(
110
+ shift({
111
+ mainAxis: true,
112
+ crossAxis: false,
113
+ limiter: limitShift()
114
+ })
115
+ );
116
+ if (hasArrow.value) {
117
+ combined.push(
118
+ floatingArrow({
119
+ element: arrowRef.value
120
+ })
121
+ );
119
122
  }
120
- return combined;
121
- });
122
- const mappedReferenceEl = computed(() => {
123
- if (__props.referenceEl) {
124
- return toValue(__props.referenceEl);
125
- } else if (view?.state.clicked) {
123
+ break;
124
+ case "context":
125
+ combined.push(
126
+ flip({
127
+ mainAxis: true,
128
+ crossAxis: true
129
+ })
130
+ );
131
+ break;
132
+ }
133
+ return combined;
134
+ });
135
+ const mappedReferenceEl = computed(() => {
136
+ if (referenceEl) {
137
+ return toValue(referenceEl);
138
+ } else if (view?.state.clicked) {
139
+ return {
140
+ getBoundingClientRect() {
126
141
  return {
127
- getBoundingClientRect() {
128
- return {
129
- width: 0,
130
- height: 0,
131
- x: view.state.clicked.x,
132
- y: view.state.clicked.y,
133
- top: view.state.clicked.y,
134
- left: view.state.clicked.x,
135
- right: view.state.clicked.x,
136
- bottom: view.state.clicked.y
137
- };
138
- }
142
+ width: 0,
143
+ height: 0,
144
+ x: view.state.clicked.x,
145
+ y: view.state.clicked.y,
146
+ top: view.state.clicked.y,
147
+ left: view.state.clicked.x,
148
+ right: view.state.clicked.x,
149
+ bottom: view.state.clicked.y
139
150
  };
140
- } else {
141
- return document.querySelector(`[data-id="${viewId}-trigger"]`);
142
- }
143
- });
144
- const mappedStrategy = computed(() => {
145
- return state.options.floating?.strategy ?? ModeFloatingStrategy[state.options.mode];
146
- });
147
- const {
148
- floatingStyles,
149
- placement: floatingPlacement,
150
- middlewareData
151
- } = useFloating(mappedReferenceEl, elRef, {
152
- placement: mappedPlacement,
153
- strategy: mappedStrategy,
154
- whileElementsMounted: autoUpdate,
155
- middleware: mappedMiddleware
156
- });
157
- const arrowStyles = computed(() => {
158
- if (!hasArrow.value) {
159
- return {};
160
- }
161
- const translate = `translate3d(${middlewareData.value.arrow?.x ? `${middlewareData.value.arrow.x}px` : "0"}, ${middlewareData.value.arrow?.y ? `${middlewareData.value.arrow.y}px` : "0"}, 0)`;
162
- return {
163
- transform: translate
164
- };
165
- });
166
- const placementClasses = computed(() => {
167
- return floatingPlacement.value.split("-").map((value) => `-${value}`).join(" ");
168
- });
169
- const polygonPoints = computed(() => {
170
- const position = floatingPlacement.value.split("-")[0];
171
- switch (position) {
172
- case "bottom":
173
- return "50,50 100,100 0,100";
174
- case "top":
175
- return "50,50 100,0 0,0";
176
- case "right":
177
- return "50,50 100,100 100,0";
178
- case "left":
179
- return "50,50 0,100 0,0";
180
- default:
181
- return void 0;
182
151
  }
183
- });
184
- return (_ctx, _cache) => {
185
- return _openBlock(), _createElementBlock(
186
- "div",
187
- {
188
- ref_key: "elRef",
189
- ref: elRef,
190
- class: _normalizeClass(["magic-menu-float", placementClasses.value]),
191
- style: _normalizeStyle(_unref(floatingStyles))
192
- },
193
- [
194
- hasArrow.value ? (_openBlock(), _createElementBlock(
195
- "div",
196
- {
197
- key: 0,
198
- ref_key: "arrowRef",
199
- ref: arrowRef,
200
- class: "magic-menu-float__arrow",
201
- style: _normalizeStyle(arrowStyles.value)
202
- },
203
- [
204
- _renderSlot(_ctx.$slots, "arrow", {}, () => [
205
- (_openBlock(), _createElementBlock("svg", _hoisted_1, [
206
- _createElementVNode("polygon", {
207
- points: polygonPoints.value,
208
- fill: "currentColor"
209
- }, null, 8, _hoisted_2)
210
- ]))
211
- ])
212
- ],
213
- 4
214
- /* STYLE */
215
- )) : _createCommentVNode("v-if", true),
216
- _renderSlot(_ctx.$slots, "default")
217
- ],
218
- 6
219
- /* CLASS, STYLE */
220
- );
221
152
  };
153
+ } else {
154
+ return document.querySelector(`[data-id="${viewId}-trigger"]`);
155
+ }
156
+ });
157
+ const mappedStrategy = computed(() => {
158
+ return state.options.floating?.strategy ?? ModeFloatingStrategy[state.options.mode];
159
+ });
160
+ const {
161
+ floatingStyles,
162
+ placement: floatingPlacement,
163
+ middlewareData
164
+ } = useFloating(mappedReferenceEl, elRef, {
165
+ placement: mappedPlacement,
166
+ strategy: mappedStrategy,
167
+ whileElementsMounted: autoUpdate,
168
+ middleware: mappedMiddleware
169
+ });
170
+ const arrowStyles = computed(() => {
171
+ if (!hasArrow.value) {
172
+ return {};
173
+ }
174
+ const translate = `translate3d(${middlewareData.value.arrow?.x ? `${middlewareData.value.arrow.x}px` : "0"}, ${middlewareData.value.arrow?.y ? `${middlewareData.value.arrow.y}px` : "0"}, 0)`;
175
+ return {
176
+ transform: translate
177
+ };
178
+ });
179
+ const placementClasses = computed(() => {
180
+ return floatingPlacement.value.split("-").map((value) => `-${value}`).join(" ");
181
+ });
182
+ const polygonPoints = computed(() => {
183
+ const position = floatingPlacement.value.split("-")[0];
184
+ switch (position) {
185
+ case "bottom":
186
+ return "50,50 100,100 0,100";
187
+ case "top":
188
+ return "50,50 100,0 0,0";
189
+ case "right":
190
+ return "50,50 100,100 100,0";
191
+ case "left":
192
+ return "50,50 0,100 0,0";
193
+ default:
194
+ return void 0;
222
195
  }
223
196
  });
224
197
  </script>
@@ -6,32 +6,47 @@ interface MagicMenuFloatProps {
6
6
  arrow?: boolean;
7
7
  referenceEl?: MaybeRef<HTMLElement | ComponentPublicInstance>;
8
8
  }
9
- declare function __VLS_template(): {
10
- attrs: Partial<{}>;
11
- slots: {
12
- arrow?(_: {}): any;
13
- default?(_: {}): any;
14
- };
15
- refs: {
16
- elRef: HTMLDivElement;
17
- arrowRef: HTMLDivElement;
18
- };
19
- rootEl: HTMLDivElement;
20
- };
21
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
- declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicMenuFloatProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicMenuFloatProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
23
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
9
+ declare const arrow: boolean;
10
+ declare const hasArrow: import("vue").ComputedRef<boolean>;
11
+ declare const floatingStyles: Readonly<import("vue").Ref<{
12
+ position: import("@floating-ui/vue").Strategy;
13
+ top: string;
14
+ left: string;
15
+ transform?: string;
16
+ willChange?: string;
17
+ }, {
18
+ position: import("@floating-ui/vue").Strategy;
19
+ top: string;
20
+ left: string;
21
+ transform?: string;
22
+ willChange?: string;
23
+ }>>;
24
+ declare const arrowStyles: import("vue").ComputedRef<{
25
+ transform?: undefined;
26
+ } | {
27
+ transform: string;
28
+ }>;
29
+ declare const placementClasses: import("vue").ComputedRef<string>;
30
+ declare const polygonPoints: import("vue").ComputedRef<"50,50 100,100 0,100" | "50,50 100,0 0,0" | "50,50 100,100 100,0" | "50,50 0,100 0,0" | undefined>;
31
+ declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
32
+ declare var __VLS_1: {}, __VLS_3: {};
33
+ type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
34
+ arrow?: (props: typeof __VLS_1) => any;
35
+ } & {
36
+ default?: (props: typeof __VLS_3) => any;
37
+ }>;
38
+ declare const __VLS_self: import("vue").DefineComponent<MagicMenuFloatProps, {
39
+ arrow: typeof arrow;
40
+ hasArrow: typeof hasArrow;
41
+ floatingStyles: typeof floatingStyles;
42
+ arrowStyles: typeof arrowStyles;
43
+ placementClasses: typeof placementClasses;
44
+ polygonPoints: typeof polygonPoints;
45
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicMenuFloatProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
46
+ declare const __VLS_component: import("vue").DefineComponent<MagicMenuFloatProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicMenuFloatProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
24
48
  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;
32
- };
33
- };
34
- type __VLS_WithTemplateSlots<T, S> = T & {
49
+ type __VLS_WithSlots<T, S> = T & {
35
50
  new (): {
36
51
  $slots: S;
37
52
  };
@@ -1,20 +1,23 @@
1
- <script>
2
- import { defineComponent as _defineComponent } from "vue";
3
- import { unref as _unref, renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from "vue";
4
- const _hoisted_1 = ["id", "data-disabled", "data-active", "data-pointer-disabled"];
5
- const _hoisted_2 = {
6
- key: 0,
7
- class: "magic-menu-item__pointer-guard"
8
- };
9
- import {
10
- ref,
11
- computed,
12
- inject,
13
- provide,
14
- onBeforeUnmount,
15
- watch,
16
- useId
17
- } from "vue";
1
+ <template>
2
+ <div
3
+ class="magic-menu-item"
4
+ :data-id="mappedId"
5
+ :data-disabled="disabled"
6
+ :data-active="item.active"
7
+ :data-pointer-disabled="pointerDisabled"
8
+ @mouseenter="guardedSelect"
9
+ @mousemove="guardedSelect"
10
+ @touchstart.passive="guardedSelect"
11
+ @mouseleave="guardedUnselect"
12
+ @click="onClick"
13
+ >
14
+ <slot :item-active="item.active" :item-disabled="disabled" />
15
+ <div v-if="pointerDisabled" class="magic-menu-item__pointer-guard" />
16
+ </div>
17
+ </template>
18
+
19
+ <script setup>
20
+ import { computed, inject, provide, onBeforeUnmount, watch, useId } from "vue";
18
21
  import { useMenuItem } from "../composables/private/useMenuItem";
19
22
  import { useMenuState } from "../composables/private/useMenuState";
20
23
  import { useMenuView } from "../composables/private/useMenuView";
@@ -25,103 +28,74 @@ import {
25
28
  MagicMenuItemId,
26
29
  MagicMenuItemActive
27
30
  } from "../symbols";
28
- export default /* @__PURE__ */ _defineComponent({
29
- __name: "MagicMenuItem",
30
- props: {
31
- id: { type: String, required: false },
32
- disabled: { type: Boolean, required: false }
33
- },
34
- emits: ["click"],
35
- setup(__props, { emit: __emit }) {
36
- const emit = __emit;
37
- const instanceId = inject(MagicMenuInstanceId, void 0);
38
- const viewId = inject(MagicMenuViewId, void 0);
39
- const contentId = inject(MagicMenuContentId, void 0);
40
- const elRef = ref(void 0);
41
- if (!instanceId) {
42
- throw new Error("MagicMenuItem must be nested inside MagicMenuProvider");
43
- }
44
- if (!viewId) {
45
- throw new Error("MagicMenuItem must be nested inside MagicMenuView");
46
- }
47
- if (!contentId) {
48
- throw new Error("MagicMenuItem must be nested inside MagicMenuContent");
49
- }
50
- const mappedId = computed(() => __props.id ?? `magic-menu-item-${useId()}`);
51
- const mappedActive = computed(() => item.active);
52
- const { initializeItem, deleteItem, selectItem, unselectItem } = useMenuItem({
53
- instanceId,
54
- viewId
55
- });
56
- const { initializeState } = useMenuState(instanceId);
57
- const state = initializeState();
58
- const item = initializeItem({
59
- id: mappedId.value,
60
- disabled: __props.disabled ?? false
61
- });
62
- const pointerDisabled = computed(() => state.input.disabled.includes("pointer"));
63
- function guardedSelect() {
64
- if (state.input.type === "pointer" && !state.input.disabled.includes("pointer") && !item.active && !item.disabled) {
65
- selectItem(mappedId.value);
66
- }
67
- }
68
- const { getNestedView, unselectAllViews } = useMenuView(instanceId);
69
- const nestedView = computed(() => getNestedView(mappedId.value));
70
- function guardedUnselect() {
71
- if (!nestedView.value || !nestedView.value.active) {
72
- unselectItem(mappedId.value);
73
- } else {
74
- watch(
75
- () => nestedView.value?.active,
76
- (value) => {
77
- if (!value) {
78
- unselectItem(mappedId.value);
79
- }
80
- },
81
- { once: true }
82
- );
83
- }
84
- }
85
- function onClick(event) {
86
- emit("click", event);
87
- state.input.type = "pointer";
88
- state.input.disabled = [];
89
- if (!item.disabled && !item.active) {
90
- selectItem(mappedId.value);
91
- }
92
- if (!nestedView.value) {
93
- state.active = false;
94
- unselectAllViews();
95
- }
96
- }
97
- provide(MagicMenuItemId, mappedId.value);
98
- provide(MagicMenuItemActive, mappedActive);
99
- onBeforeUnmount(() => {
100
- deleteItem(mappedId.value);
101
- });
102
- return (_ctx, _cache) => {
103
- return _openBlock(), _createElementBlock("div", {
104
- id: mappedId.value,
105
- ref_key: "elRef",
106
- ref: elRef,
107
- class: "magic-menu-item",
108
- "data-disabled": _ctx.disabled,
109
- "data-active": _unref(item).active,
110
- "data-pointer-disabled": pointerDisabled.value,
111
- onMouseenter: guardedSelect,
112
- onMousemove: guardedSelect,
113
- onTouchstartPassive: guardedSelect,
114
- onMouseleave: guardedUnselect,
115
- onClick
116
- }, [
117
- _renderSlot(_ctx.$slots, "default", {
118
- itemActive: _unref(item).active,
119
- itemDisabled: _ctx.disabled
120
- }),
121
- pointerDisabled.value ? (_openBlock(), _createElementBlock("div", _hoisted_2)) : _createCommentVNode("v-if", true)
122
- ], 40, _hoisted_1);
123
- };
31
+ const { id, disabled } = defineProps({
32
+ id: { type: String, required: false },
33
+ disabled: { type: Boolean, required: false }
34
+ });
35
+ const emit = defineEmits(["click"]);
36
+ const instanceId = inject(MagicMenuInstanceId, void 0);
37
+ const viewId = inject(MagicMenuViewId, void 0);
38
+ const contentId = inject(MagicMenuContentId, void 0);
39
+ if (!instanceId) {
40
+ throw new Error("MagicMenuItem must be nested inside MagicMenuProvider");
41
+ }
42
+ if (!viewId) {
43
+ throw new Error("MagicMenuItem must be nested inside MagicMenuView");
44
+ }
45
+ if (!contentId) {
46
+ throw new Error("MagicMenuItem must be nested inside MagicMenuContent");
47
+ }
48
+ const mappedId = computed(() => id ?? `magic-menu-item-${useId()}`);
49
+ const mappedActive = computed(() => item.active);
50
+ const { initializeItem, deleteItem, selectItem, unselectItem } = useMenuItem({
51
+ instanceId,
52
+ viewId
53
+ });
54
+ const { initializeState } = useMenuState(instanceId);
55
+ const state = initializeState();
56
+ const item = initializeItem({
57
+ id: mappedId.value,
58
+ disabled: disabled ?? false
59
+ });
60
+ const pointerDisabled = computed(() => state.input.disabled.includes("pointer"));
61
+ function guardedSelect() {
62
+ if (state.input.type === "pointer" && !state.input.disabled.includes("pointer") && !item.active && !item.disabled) {
63
+ selectItem(mappedId.value);
64
+ }
65
+ }
66
+ const { getNestedView, unselectAllViews } = useMenuView(instanceId);
67
+ const nestedView = computed(() => getNestedView(mappedId.value));
68
+ function guardedUnselect() {
69
+ if (!nestedView.value || !nestedView.value.active) {
70
+ unselectItem(mappedId.value);
71
+ } else {
72
+ watch(
73
+ () => nestedView.value?.active,
74
+ (value) => {
75
+ if (!value) {
76
+ unselectItem(mappedId.value);
77
+ }
78
+ },
79
+ { once: true }
80
+ );
124
81
  }
82
+ }
83
+ function onClick(event) {
84
+ emit("click", event);
85
+ state.input.type = "pointer";
86
+ state.input.disabled = [];
87
+ if (!item.disabled && !item.active) {
88
+ selectItem(mappedId.value);
89
+ }
90
+ if (!nestedView.value) {
91
+ state.active = false;
92
+ unselectAllViews();
93
+ }
94
+ }
95
+ provide(MagicMenuItemId, mappedId.value);
96
+ provide(MagicMenuItemActive, mappedActive);
97
+ onBeforeUnmount(() => {
98
+ deleteItem(mappedId.value);
125
99
  });
126
100
  </script>
127
101