@maas/vue-equipment 1.0.0-beta.6 → 1.0.0-beta.8

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 (141) hide show
  1. package/dist/composables/index.d.ts +5 -5
  2. package/dist/composables/index.js +14 -8
  3. package/dist/composables/index.js.map +1 -1
  4. package/dist/nuxt/module.json +1 -1
  5. package/dist/nuxt/module.mjs +2 -2
  6. package/dist/plugins/.turbo/turbo-lint.log +2 -2
  7. package/dist/plugins/MagicAccordion/demo/data/footer.json +1 -1
  8. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +3 -3
  9. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +2 -2
  10. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue +15 -13
  11. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +6 -157
  12. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue +2 -1
  13. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +4 -2
  14. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.d.ts +1 -1
  15. package/dist/plugins/MagicAccordion/src/symbols/index.d.ts +2 -2
  16. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue +11 -4
  17. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue.d.ts +32 -0
  18. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue +0 -4
  19. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +3 -8
  20. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +5 -7
  21. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +3 -87
  22. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +7 -7
  23. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue.d.ts +1 -4
  24. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue +6 -5
  25. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +3 -157
  26. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +3 -3
  27. package/dist/plugins/MagicCommand/src/composables/private/useCommandScroll.d.ts +2 -2
  28. package/dist/plugins/MagicCommand/src/composables/private/useCommandState.mjs +1 -1
  29. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.d.ts +1 -1
  30. package/dist/plugins/MagicCommand/src/symbols/index.d.ts +4 -4
  31. package/dist/plugins/MagicCommand/src/types/index.d.ts +1 -1
  32. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +3 -3
  33. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue.d.ts +3 -3
  34. package/dist/plugins/MagicCookie/src/symbols/index.d.ts +2 -2
  35. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +10 -12
  36. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +4 -25
  37. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.d.ts +2 -2
  38. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +4 -4
  39. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableScrollLock.mjs +34 -14
  40. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.d.ts +3 -3
  41. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +12 -15
  42. package/dist/plugins/MagicDraggable/src/types/index.d.ts +1 -1
  43. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +20 -21
  44. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +188 -0
  45. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDOM.mjs +34 -14
  46. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.d.ts +2 -2
  47. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +3 -3
  48. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.d.ts +1 -1
  49. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.mjs +28 -10
  50. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.d.ts +2 -2
  51. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.d.ts +3 -3
  52. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +16 -14
  53. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.d.ts +1 -1
  54. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue +15 -15
  55. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +25 -0
  56. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.d.ts +1 -1
  57. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.mjs +8 -2
  58. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +27 -0
  59. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +3 -6
  60. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +56 -0
  61. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +5 -7
  62. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +53 -0
  63. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +1 -12
  64. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +3 -8
  65. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +6 -6
  66. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +1 -85
  67. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +1 -1
  68. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +2 -2
  69. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +3 -4
  70. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +3 -157
  71. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +3 -3
  72. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +1 -1
  73. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.d.ts +3 -3
  74. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.mjs +4 -4
  75. package/dist/plugins/MagicMenu/src/composables/private/useMenuDOM.mjs +35 -15
  76. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.d.ts +1 -1
  77. package/dist/plugins/MagicMenu/src/symbols/index.d.ts +4 -4
  78. package/dist/plugins/MagicModal/src/components/MagicModal.vue +6 -6
  79. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +60 -0
  80. package/dist/plugins/MagicModal/src/composables/private/useModalDOM.mjs +34 -14
  81. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue +13 -13
  82. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +1 -5
  83. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.d.ts +3 -3
  84. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.mjs +2 -2
  85. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +14 -8
  86. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue.d.ts +1 -4
  87. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue +29 -29
  88. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +34 -0
  89. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +1 -1
  90. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +19 -8
  91. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +1 -4
  92. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +35 -0
  93. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue.d.ts +5 -5
  94. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue +3 -4
  95. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue.d.ts +6 -11
  96. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue.d.ts +1 -1
  97. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +3 -4
  98. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue.d.ts +1 -4
  99. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue +23 -24
  100. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue.d.ts +73 -0
  101. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue.d.ts +1 -1
  102. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue.d.ts +1 -1
  103. package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue.d.ts +1 -1
  104. package/dist/plugins/MagicPlayer/src/components/icons/Play.vue.d.ts +1 -1
  105. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue.d.ts +1 -1
  106. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue.d.ts +1 -1
  107. package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue.d.ts +1 -1
  108. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.d.ts +2 -2
  109. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.mjs +3 -3
  110. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.d.ts +10 -10
  111. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.mjs +15 -9
  112. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.d.ts +13 -13
  113. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +18 -11
  114. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +3 -3
  115. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +3 -3
  116. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.d.ts +6 -6
  117. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.mjs +4 -4
  118. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.d.ts +20 -20
  119. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +17 -8
  120. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +4 -10
  121. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue +7 -7
  122. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue.d.ts +4 -10
  123. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +3 -3
  124. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +17 -9
  125. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +4 -9
  126. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.d.ts +2 -2
  127. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.mjs +3 -3
  128. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.mjs +8 -3
  129. package/dist/plugins/MagicScroll/src/symbols/index.d.ts +1 -1
  130. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue +9 -10
  131. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +1 -59
  132. package/dist/plugins/MagicToast/src/components/MagicToastView.vue +5 -8
  133. package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +3 -8
  134. package/dist/plugins/MagicToast/src/composables/private/useToastDrag.mjs +22 -22
  135. package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.mjs +33 -15
  136. package/dist/plugins/MagicToast/src/types/index.d.ts +1 -1
  137. package/dist/plugins/MagicToast/src/utils/defaultOptions.mjs +1 -1
  138. package/dist/utils/index.d.ts +7 -3
  139. package/dist/utils/index.js +25 -0
  140. package/dist/utils/index.js.map +1 -1
  141. package/package.json +3 -3
@@ -11,11 +11,11 @@ interface CountdownOptions {
11
11
  zeroIndexedMonths?: boolean;
12
12
  }
13
13
  declare function useCountdown(options: CountdownOptions, callback?: () => void): {
14
- years: vue.Ref<number, number>;
15
- days: vue.Ref<number, number>;
16
- hours: vue.Ref<number, number>;
17
- minutes: vue.Ref<number, number>;
18
- seconds: vue.Ref<number, number>;
14
+ years: vue.ShallowRef<number, number>;
15
+ days: vue.ShallowRef<number, number>;
16
+ hours: vue.ShallowRef<number, number>;
17
+ minutes: vue.ShallowRef<number, number>;
18
+ seconds: vue.ShallowRef<number, number>;
19
19
  endDateTime: vue.ComputedRef<DateTime<true> | DateTime<false>>;
20
20
  pad: (value: number) => string;
21
21
  restart: () => void;
@@ -1,5 +1,11 @@
1
1
  // useCountdown/index.ts
2
- import { computed, onMounted, ref, unref, watch } from "vue";
2
+ import {
3
+ computed,
4
+ onMounted,
5
+ shallowRef,
6
+ unref,
7
+ watch
8
+ } from "vue";
3
9
  import { MagicTimer } from "@maas/magic-timer";
4
10
  import { DateTime } from "luxon";
5
11
  var defaultOptions = {
@@ -22,11 +28,11 @@ function useCountdown(options, callback) {
22
28
  }
23
29
  }
24
30
  const timer = new MagicTimer();
25
- const years = ref(0);
26
- const days = ref(0);
27
- const hours = ref(0);
28
- const minutes = ref(0);
29
- const seconds = ref(0);
31
+ const years = shallowRef(0);
32
+ const days = shallowRef(0);
33
+ const hours = shallowRef(0);
34
+ const minutes = shallowRef(0);
35
+ const seconds = shallowRef(0);
30
36
  const parseDateTimeArray = (dateTimeArr) => {
31
37
  const [year, month, day, hour, minute, second] = dateTimeArr;
32
38
  return {
@@ -160,10 +166,10 @@ function useEasings() {
160
166
  }
161
167
 
162
168
  // useMetaViewport/index.ts
163
- import { ref as ref2 } from "vue";
169
+ import { shallowRef as shallowRef2 } from "vue";
164
170
  function useMetaViewport(args) {
165
171
  const content = args?.content || "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0";
166
- const metaViewport = ref2(void 0);
172
+ const metaViewport = shallowRef2(void 0);
167
173
  function setMetaViewport() {
168
174
  const metaElement = document.querySelector(
169
175
  'meta[name="viewport"]'
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/composables/useCountdown/index.ts","../../packages/composables/useEasings/index.ts","../../packages/composables/useMetaViewport/index.ts","../../packages/composables/useScrollTo/index.ts"],"sourcesContent":["import { computed, onMounted, ref, unref, watch, type MaybeRef } from 'vue'\nimport { MagicTimer } from '@maas/magic-timer'\nimport { DateTime } from 'luxon'\n\nexport type DateTimeArray = [number, number, number, number?, number?, number?]\n\nexport interface CountdownOptions {\n endDateTime: MaybeRef<DateTimeArray>\n timezone?: MaybeRef<string>\n zeroIndexedMonths?: boolean\n}\n\nconst defaultOptions: CountdownOptions = {\n endDateTime: [1970, 1, 1, 0, 0, 0],\n zeroIndexedMonths: false,\n}\n\nexport function useCountdown(options: CountdownOptions, callback?: () => void) {\n options = { ...defaultOptions, ...options }\n\n if (unref(options.endDateTime).length < 3) {\n console.error(\n 'useCountdownClock: “endDateTime” needs to be an array [YYYY, MM, DD, HH?, MM?, SS?]'\n )\n }\n\n const timezone = unref(options.timezone)\n if (timezone) {\n if (!DateTime.now().setZone(timezone).isValid) {\n console.error(\n `useCountdownClock: “${timezone}” is not a valid timezone. Did you mean ${\n DateTime.local().zoneName\n }? For more information see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones`\n )\n }\n }\n\n const timer = new MagicTimer()\n\n const years = ref(0)\n const days = ref(0)\n const hours = ref(0)\n const minutes = ref(0)\n const seconds = ref(0)\n\n // Parse the end dateTime array into an date and time object\n // If hour, minute or second are not set, set them to 0\n // Optionally add +1 if month is not zero indexed\n const parseDateTimeArray = (dateTimeArr: DateTimeArray) => {\n const [year, month, day, hour, minute, second] = dateTimeArr\n return {\n year,\n month: options.zeroIndexedMonths ? month + 1 : month,\n day,\n hour: hour ?? 0,\n minute: minute ?? 0,\n second: second ?? 0,\n }\n }\n\n const endDateTime = computed(() => {\n const { year, month, day, hour, minute, second } = parseDateTimeArray(\n unref(options.endDateTime)\n )\n\n return DateTime.fromObject(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n },\n {\n zone: unref(options.timezone),\n }\n )\n })\n\n // Update the countdown values on each tick\n // If endDateTime is reached, stop the timer, reset the values and run the callback\n function tick() {\n const now = DateTime.now().setZone(unref(options.timezone))\n const end = endDateTime.value\n\n if (end <= now) {\n timer.stop()\n reset()\n\n if (callback) {\n callback()\n }\n\n return\n }\n\n const diff = end\n .diff(now, [\n 'years',\n 'days',\n 'hours',\n 'minutes',\n 'seconds',\n 'milliseconds',\n ])\n .toObject()\n\n years.value = diff.years ?? 0\n days.value = diff.days ?? 0\n hours.value = diff.hours ?? 0\n minutes.value = diff.minutes ?? 0\n seconds.value = diff.seconds ?? 0\n }\n\n function pad(value: number): string {\n return ('0' + value).slice(-2)\n }\n\n function onTick(callback: () => void) {\n timer.on('tick', callback)\n }\n\n function reset() {\n years.value = 0\n days.value = 0\n hours.value = 0\n minutes.value = 0\n seconds.value = 0\n }\n\n function restart() {\n timer.reset()\n timer.start()\n }\n\n timer.on('tick', tick)\n\n onMounted(() => {\n tick()\n timer.start()\n })\n\n // Watch for changes in the endDateTime\n // and restart the timer\n watch(endDateTime, () => {\n if (timer.state === 'running') {\n return\n }\n\n restart()\n })\n\n return {\n years,\n days,\n hours,\n minutes,\n seconds,\n endDateTime,\n pad,\n restart,\n onTick,\n }\n}\n","import {\n linear,\n easeInQuad,\n easeOutQuad,\n easeInOutQuad,\n easeOutBack,\n easeInCubic,\n easeOutCubic,\n easeInOutCubic,\n easeInQuart,\n easeOutQuart,\n easeInOutQuart,\n easeInQuint,\n easeOutQuint,\n easeInOutQuint,\n} from '@maas/vue-equipment/utils'\n\nexport type EasingKey =\n | 'linear'\n | 'easeInQuad'\n | 'easeOutQuad'\n | 'easeInOutQuad'\n | 'easeOutBack'\n | 'easeInCubic'\n | 'easeOutCubic'\n | 'easeInOutCubic'\n | 'easeInQuart'\n | 'easeOutQuart'\n | 'easeInOutQuart'\n | 'easeInQuint'\n | 'easeOutQuint'\n | 'easeInOutQuint'\n\nexport function useEasings() {\n const easings = {\n linear,\n easeInQuad,\n easeOutQuad,\n easeInOutQuad,\n easeOutBack,\n easeInCubic,\n easeOutCubic,\n easeInOutCubic,\n easeInQuart,\n easeOutQuart,\n easeInOutQuart,\n easeInQuint,\n easeOutQuint,\n easeInOutQuint,\n }\n\n return easings\n}\n","import { ref } from 'vue'\n\nexport type UseMetaViewportArgs = {\n content: string\n}\n\nexport function useMetaViewport(args?: UseMetaViewportArgs) {\n const content =\n args?.content ||\n 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'\n\n const metaViewport = ref<string | undefined>(undefined)\n\n function setMetaViewport() {\n const metaElement = document.querySelector(\n 'meta[name=\"viewport\"]'\n ) as HTMLMetaElement\n\n metaViewport.value = metaElement.content\n metaElement.setAttribute('content', content)\n }\n\n function resetMetaViewport() {\n const metaElement = document.querySelector(\n 'meta[name=\"viewport\"]'\n ) as HTMLMetaElement\n\n if (metaViewport.value) {\n metaElement.setAttribute('content', metaViewport.value)\n }\n }\n\n return {\n setMetaViewport,\n resetMetaViewport,\n }\n}\n","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":["callback","ref","easeOutQuad"]}
1
+ {"version":3,"sources":["../../packages/composables/useCountdown/index.ts","../../packages/composables/useEasings/index.ts","../../packages/composables/useMetaViewport/index.ts","../../packages/composables/useScrollTo/index.ts"],"sourcesContent":["import {\n computed,\n onMounted,\n shallowRef,\n unref,\n watch,\n type MaybeRef,\n} from 'vue'\nimport { MagicTimer } from '@maas/magic-timer'\nimport { DateTime } from 'luxon'\n\nexport type DateTimeArray = [number, number, number, number?, number?, number?]\n\nexport interface CountdownOptions {\n endDateTime: MaybeRef<DateTimeArray>\n timezone?: MaybeRef<string>\n zeroIndexedMonths?: boolean\n}\n\nconst defaultOptions: CountdownOptions = {\n endDateTime: [1970, 1, 1, 0, 0, 0],\n zeroIndexedMonths: false,\n}\n\nexport function useCountdown(options: CountdownOptions, callback?: () => void) {\n options = { ...defaultOptions, ...options }\n\n if (unref(options.endDateTime).length < 3) {\n console.error(\n 'useCountdownClock: “endDateTime” needs to be an array [YYYY, MM, DD, HH?, MM?, SS?]'\n )\n }\n\n const timezone = unref(options.timezone)\n if (timezone) {\n if (!DateTime.now().setZone(timezone).isValid) {\n console.error(\n `useCountdownClock: “${timezone}” is not a valid timezone. Did you mean ${\n DateTime.local().zoneName\n }? For more information see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones`\n )\n }\n }\n\n const timer = new MagicTimer()\n\n const years = shallowRef(0)\n const days = shallowRef(0)\n const hours = shallowRef(0)\n const minutes = shallowRef(0)\n const seconds = shallowRef(0)\n\n // Parse the end dateTime array into an date and time object\n // If hour, minute or second are not set, set them to 0\n // Optionally add +1 if month is not zero indexed\n const parseDateTimeArray = (dateTimeArr: DateTimeArray) => {\n const [year, month, day, hour, minute, second] = dateTimeArr\n return {\n year,\n month: options.zeroIndexedMonths ? month + 1 : month,\n day,\n hour: hour ?? 0,\n minute: minute ?? 0,\n second: second ?? 0,\n }\n }\n\n const endDateTime = computed(() => {\n const { year, month, day, hour, minute, second } = parseDateTimeArray(\n unref(options.endDateTime)\n )\n\n return DateTime.fromObject(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n },\n {\n zone: unref(options.timezone),\n }\n )\n })\n\n // Update the countdown values on each tick\n // If endDateTime is reached, stop the timer, reset the values and run the callback\n function tick() {\n const now = DateTime.now().setZone(unref(options.timezone))\n const end = endDateTime.value\n\n if (end <= now) {\n timer.stop()\n reset()\n\n if (callback) {\n callback()\n }\n\n return\n }\n\n const diff = end\n .diff(now, [\n 'years',\n 'days',\n 'hours',\n 'minutes',\n 'seconds',\n 'milliseconds',\n ])\n .toObject()\n\n years.value = diff.years ?? 0\n days.value = diff.days ?? 0\n hours.value = diff.hours ?? 0\n minutes.value = diff.minutes ?? 0\n seconds.value = diff.seconds ?? 0\n }\n\n function pad(value: number): string {\n return ('0' + value).slice(-2)\n }\n\n function onTick(callback: () => void) {\n timer.on('tick', callback)\n }\n\n function reset() {\n years.value = 0\n days.value = 0\n hours.value = 0\n minutes.value = 0\n seconds.value = 0\n }\n\n function restart() {\n timer.reset()\n timer.start()\n }\n\n timer.on('tick', tick)\n\n onMounted(() => {\n tick()\n timer.start()\n })\n\n // Watch for changes in the endDateTime\n // and restart the timer\n watch(endDateTime, () => {\n if (timer.state === 'running') {\n return\n }\n\n restart()\n })\n\n return {\n years,\n days,\n hours,\n minutes,\n seconds,\n endDateTime,\n pad,\n restart,\n onTick,\n }\n}\n","import {\n linear,\n easeInQuad,\n easeOutQuad,\n easeInOutQuad,\n easeOutBack,\n easeInCubic,\n easeOutCubic,\n easeInOutCubic,\n easeInQuart,\n easeOutQuart,\n easeInOutQuart,\n easeInQuint,\n easeOutQuint,\n easeInOutQuint,\n} from '@maas/vue-equipment/utils'\n\nexport type EasingKey =\n | 'linear'\n | 'easeInQuad'\n | 'easeOutQuad'\n | 'easeInOutQuad'\n | 'easeOutBack'\n | 'easeInCubic'\n | 'easeOutCubic'\n | 'easeInOutCubic'\n | 'easeInQuart'\n | 'easeOutQuart'\n | 'easeInOutQuart'\n | 'easeInQuint'\n | 'easeOutQuint'\n | 'easeInOutQuint'\n\nexport function useEasings() {\n const easings = {\n linear,\n easeInQuad,\n easeOutQuad,\n easeInOutQuad,\n easeOutBack,\n easeInCubic,\n easeOutCubic,\n easeInOutCubic,\n easeInQuart,\n easeOutQuart,\n easeInOutQuart,\n easeInQuint,\n easeOutQuint,\n easeInOutQuint,\n }\n\n return easings\n}\n","import { shallowRef } from 'vue'\n\nexport type UseMetaViewportArgs = {\n content: string\n}\n\nexport function useMetaViewport(args?: UseMetaViewportArgs) {\n const content =\n args?.content ||\n 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'\n\n const metaViewport = shallowRef<string | undefined>(undefined)\n\n function setMetaViewport() {\n const metaElement = document.querySelector(\n 'meta[name=\"viewport\"]'\n ) as HTMLMetaElement\n\n metaViewport.value = metaElement.content\n metaElement.setAttribute('content', content)\n }\n\n function resetMetaViewport() {\n const metaElement = document.querySelector(\n 'meta[name=\"viewport\"]'\n ) as HTMLMetaElement\n\n if (metaViewport.value) {\n metaElement.setAttribute('content', metaViewport.value)\n }\n }\n\n return {\n setMetaViewport,\n resetMetaViewport,\n }\n}\n","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":["callback","shallowRef","easeOutQuad"]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maas/vue-equipment/nuxt",
3
3
  "configKey": "vueEquipment",
4
- "version": "1.0.0-beta.5",
4
+ "version": "1.0.0-beta.7",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "0.8.4",
7
7
  "unbuild": "unknown"
@@ -95,7 +95,7 @@ const functions$1 = [
95
95
  {
96
96
  name: "useCountdown",
97
97
  "package": "composables",
98
- lastUpdated: 1739474856000,
98
+ lastUpdated: 1740490390000,
99
99
  docs: "https://maas.egineering/vue-equipment/composables/useCountdown/",
100
100
  description: "calculate the remaining time until a given moment"
101
101
  },
@@ -109,7 +109,7 @@ const functions$1 = [
109
109
  {
110
110
  name: "useMetaViewport",
111
111
  "package": "composables",
112
- lastUpdated: 1707211312000,
112
+ lastUpdated: 1740490390000,
113
113
  docs: "https://maas.egineering/vue-equipment/composables/useMetaViewport/",
114
114
  description: "set and reset the meta viewport tag programatically"
115
115
  },
@@ -1,5 +1,5 @@
1
1
 
2
2
  
3
- > plugins@1.0.0-beta.4 lint /Users/robinscholz/Repositories/@maas/vue-equipment/packages/plugins
4
- > eslint . --fix
3
+ > plugins@1.0.0-beta.6 lint /Users/robinscholz/Repositories/@maas/vue-equipment/packages/plugins
4
+ > eslint .
5
5
 
@@ -90,7 +90,7 @@
90
90
  "list": [
91
91
  {
92
92
  "url": "https://github.com/magicasaservice",
93
- "label": "Github"
93
+ "label": "GitHub"
94
94
  },
95
95
 
96
96
  {
@@ -20,11 +20,11 @@ declare const mappedAnimation: import("vue").ComputedRef<{
20
20
  }>;
21
21
  declare const onBeforeEnter: () => void, onEnter: () => void, onAfterEnter: () => Promise<void>, onBeforeLeave: () => void, onLeave: () => void, onAfterLeave: () => void;
22
22
  declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
23
- declare var __VLS_18: {
23
+ declare var __VLS_13: {
24
24
  viewActive: boolean | undefined;
25
25
  };
26
26
  type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
27
- default?: (props: typeof __VLS_18) => any;
27
+ default?: (props: typeof __VLS_13) => any;
28
28
  }>;
29
29
  declare const __VLS_self: import("vue").DefineComponent<MagicAccordionContentProps, {
30
30
  AutoSize: typeof AutoSize;
@@ -40,7 +40,7 @@ declare const __VLS_self: import("vue").DefineComponent<MagicAccordionContentPro
40
40
  onLeave: typeof onLeave;
41
41
  onAfterLeave: typeof onAfterLeave;
42
42
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionContentProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
43
- 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, {}, HTMLDivElement>;
43
+ 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>;
44
44
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
45
45
  export default _default;
46
46
  type __VLS_WithSlots<T, S> = T & {
@@ -7,9 +7,9 @@ interface MagicAccordionProviderProps {
7
7
  options?: MagicAccordionOptions;
8
8
  }
9
9
  declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
10
- declare var __VLS_7: {};
10
+ declare var __VLS_6: {};
11
11
  type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
12
- default?: (props: typeof __VLS_7) => any;
12
+ default?: (props: typeof __VLS_6) => any;
13
13
  }>;
14
14
  declare const __VLS_self: import("vue").DefineComponent<MagicAccordionProviderProps, {
15
15
  Primitive: typeof Primitive;
@@ -1,57 +1,59 @@
1
1
  <script>
2
2
  import { defineComponent as _defineComponent } from "vue";
3
3
  import { unref as _unref, renderSlot as _renderSlot, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from "vue";
4
- import { inject, ref, computed, toValue } from "vue";
4
+ import { useTemplateRef, inject, computed, toValue } from "vue";
5
5
  import { Primitive } from "@maas/vue-primitive";
6
6
  import { onKeyStroke } from "@vueuse/core";
7
7
  import { useAccordionTrigger } from "../composables/private/useAccordionTrigger";
8
- import { MagicAccordionInstanceId, MagicAccordionViewId } from "../symbols";
9
8
  import { useAccordionState } from "../composables/private/useAccordionState";
10
9
  import { useAccordionView } from "../composables/private/useAccordionView";
10
+ import { MagicAccordionInstanceId, MagicAccordionViewId } from "../symbols";
11
11
  export default /* @__PURE__ */ _defineComponent({
12
12
  __name: "MagicAccordionTrigger",
13
13
  props: {
14
+ viewId: { type: String, required: false },
14
15
  disabled: { type: null, required: false, default: false },
15
16
  trigger: { type: String, required: false, default: "click" },
16
17
  asChild: { type: Boolean, required: false, default: false }
17
18
  },
18
19
  setup(__props) {
19
- const elRef = ref(void 0);
20
+ const elRef = useTemplateRef("el");
20
21
  const instanceId = inject(MagicAccordionInstanceId, void 0);
21
- const viewId = inject(MagicAccordionViewId, void 0);
22
+ const injectedViewId = inject(MagicAccordionViewId, void 0);
23
+ const mappedViewId = computed(() => __props.viewId ?? injectedViewId);
22
24
  if (!instanceId) {
23
25
  throw new Error(
24
26
  "MagicAccordionTrigger must be nested inside MagicAccordionProvider"
25
27
  );
26
28
  }
27
- if (!viewId) {
29
+ if (!mappedViewId.value) {
28
30
  throw new Error(
29
- "MagicAccordionTrigger must be nested inside MagicAccordionView"
31
+ "MagicAccordionTrigger must be nested inside MagicAccordionView or a viewId must be provided"
30
32
  );
31
33
  }
32
34
  const { initializeState } = useAccordionState(instanceId);
33
35
  const state = initializeState();
34
36
  const { getView } = useAccordionView(instanceId);
35
- const view = getView(viewId);
37
+ const view = getView(mappedViewId.value);
36
38
  const mappedDisabled = computed(
37
39
  () => toValue(__props.disabled) || state.options.disabled
38
40
  );
39
41
  const { onMouseenter, onClick, onEnter } = useAccordionTrigger({
40
- instanceId,
41
- viewId,
42
42
  elRef,
43
+ instanceId,
44
+ viewId: mappedViewId.value,
43
45
  disabled: __props.disabled,
44
46
  trigger: __props.trigger
45
47
  });
46
48
  onKeyStroke("Enter", onEnter);
47
49
  return (_ctx, _cache) => {
48
50
  return _openBlock(), _createBlock(_unref(Primitive), {
49
- ref_key: "elRef",
50
- ref: elRef,
51
+ ref: "el",
51
52
  "as-child": _ctx.asChild,
53
+ "data-id": `${mappedViewId.value}-trigger`,
52
54
  "data-disabled": mappedDisabled.value,
53
- class: "magic-accordion-trigger",
54
55
  as: "button",
56
+ class: "magic-accordion-trigger",
55
57
  onMouseenter: _unref(onMouseenter),
56
58
  onClick: _unref(onClick)
57
59
  }, {
@@ -62,7 +64,7 @@ export default /* @__PURE__ */ _defineComponent({
62
64
  ]),
63
65
  _: 3
64
66
  /* FORWARDED */
65
- }, 8, ["as-child", "data-disabled", "onMouseenter", "onClick"]);
67
+ }, 8, ["as-child", "data-id", "data-disabled", "onMouseenter", "onClick"]);
66
68
  };
67
69
  }
68
70
  });
@@ -2,182 +2,31 @@ import { type MaybeRef } from 'vue';
2
2
  import { Primitive } from '@maas/vue-primitive';
3
3
  import type { Interaction } from '../types/index.js';
4
4
  interface MagicAccordionTriggerProps {
5
+ viewId?: string;
5
6
  disabled?: MaybeRef<boolean>;
6
7
  trigger?: Interaction;
7
8
  asChild?: boolean;
8
9
  }
9
- declare const elRef: import("vue").Ref<import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
10
- asChild: {
11
- type: BooleanConstructor;
12
- default: boolean;
13
- };
14
- as: {
15
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
16
- default: string;
17
- };
18
- }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
19
- [key: string]: any;
20
- }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
21
- asChild: boolean;
22
- as: import("@maas/vue-primitive").ElementOrComponent;
23
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
24
- P: {};
25
- B: {};
26
- D: {};
27
- C: {};
28
- M: {};
29
- Defaults: {};
30
- }, Readonly<import("vue").ExtractPropTypes<{
31
- asChild: {
32
- type: BooleanConstructor;
33
- default: boolean;
34
- };
35
- as: {
36
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
37
- default: string;
38
- };
39
- }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
40
- [key: string]: any;
41
- }>, {}, {}, {}, {
42
- asChild: boolean;
43
- as: import("@maas/vue-primitive").ElementOrComponent;
44
- }> | undefined, import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
45
- asChild: {
46
- type: BooleanConstructor;
47
- default: boolean;
48
- };
49
- as: {
50
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
51
- default: string;
52
- };
53
- }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
54
- [key: string]: any;
55
- }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
56
- asChild: boolean;
57
- as: import("@maas/vue-primitive").ElementOrComponent;
58
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
59
- P: {};
60
- B: {};
61
- D: {};
62
- C: {};
63
- M: {};
64
- Defaults: {};
65
- }, Readonly<import("vue").ExtractPropTypes<{
66
- asChild: {
67
- type: BooleanConstructor;
68
- default: boolean;
69
- };
70
- as: {
71
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
72
- default: string;
73
- };
74
- }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
75
- [key: string]: any;
76
- }>, {}, {}, {}, {
77
- asChild: boolean;
78
- as: import("@maas/vue-primitive").ElementOrComponent;
79
- }> | undefined>;
10
+ declare const mappedViewId: import("vue").ComputedRef<string | undefined>;
80
11
  declare const view: import("../types").AccordionView | undefined;
81
12
  declare const mappedDisabled: import("vue").ComputedRef<boolean | undefined>;
82
13
  declare const onMouseenter: () => void, onClick: () => void;
83
14
  declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
84
- declare const __VLS_0: import("vue").DefineComponent<{
85
- asChild: {
86
- type: BooleanConstructor;
87
- default: boolean;
88
- };
89
- as: {
90
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
91
- default: string;
92
- };
93
- }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
94
- [key: string]: any;
95
- }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
96
- asChild: {
97
- type: BooleanConstructor;
98
- default: boolean;
99
- };
100
- as: {
101
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
102
- default: string;
103
- };
104
- }>>, {
105
- asChild: boolean;
106
- as: import("@maas/vue-primitive").ElementOrComponent;
107
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
108
- declare const __VLS_2: import("vue/jsx-runtime").JSX.Element & {
109
- __ctx?: ({
110
- attrs?: any;
111
- slots?: Readonly<{
112
- [name: string]: import("vue").Slot<any> | undefined;
113
- }> | undefined;
114
- emit?: ((event: string, ...args: any[]) => void) | undefined;
115
- } & {
116
- props?: (Partial<{
117
- asChild: boolean;
118
- as: import("@maas/vue-primitive").ElementOrComponent;
119
- }> & Omit<{
120
- readonly asChild: boolean;
121
- readonly as: import("@maas/vue-primitive").ElementOrComponent;
122
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "asChild" | "as"> & Record<string, unknown>) | undefined;
123
- expose?(exposed: import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
124
- asChild: {
125
- type: BooleanConstructor;
126
- default: boolean;
127
- };
128
- as: {
129
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
130
- default: string;
131
- };
132
- }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
133
- [key: string]: any;
134
- }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
135
- asChild: boolean;
136
- as: import("@maas/vue-primitive").ElementOrComponent;
137
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
138
- P: {};
139
- B: {};
140
- D: {};
141
- C: {};
142
- M: {};
143
- Defaults: {};
144
- }, Readonly<import("vue").ExtractPropTypes<{
145
- asChild: {
146
- type: BooleanConstructor;
147
- default: boolean;
148
- };
149
- as: {
150
- type: import("vue").PropType<import("@maas/vue-primitive").ElementOrComponent>;
151
- default: string;
152
- };
153
- }>>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
154
- [key: string]: any;
155
- }>, {}, {}, {}, {
156
- asChild: boolean;
157
- as: import("@maas/vue-primitive").ElementOrComponent;
158
- }>): void;
159
- }) | undefined;
160
- };
161
- declare var __VLS_6: (Parameters<NonNullable<(typeof __VLS_5)["expose"]>>[0] | null);
162
- declare var __VLS_10: {
15
+ declare var __VLS_12: {
163
16
  viewActive: boolean | undefined;
164
17
  };
165
- declare var __VLS_5: __VLS_PickFunctionalComponentCtx<typeof __VLS_0, typeof __VLS_2>;
166
18
  type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
167
- default?: (props: typeof __VLS_10) => any;
19
+ default?: (props: typeof __VLS_12) => any;
168
20
  }>;
169
- type __VLS_TemplateRefs = {
170
- elRef: typeof __VLS_6;
171
- };
172
21
  declare const __VLS_self: import("vue").DefineComponent<MagicAccordionTriggerProps, {
173
22
  Primitive: typeof Primitive;
174
- elRef: typeof elRef;
23
+ mappedViewId: typeof mappedViewId;
175
24
  view: typeof view;
176
25
  mappedDisabled: typeof mappedDisabled;
177
26
  onMouseenter: typeof onMouseenter;
178
27
  onClick: typeof onClick;
179
28
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
180
- 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, __VLS_TemplateRefs, any>;
29
+ 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>;
181
30
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
182
31
  export default _default;
183
32
  type __VLS_WithSlots<T, S> = T & {
@@ -38,6 +38,7 @@ export default /* @__PURE__ */ _defineComponent({
38
38
  return (_ctx, _cache) => {
39
39
  return _openBlock(), _createBlock(_unref(Primitive), {
40
40
  "as-child": _ctx.asChild,
41
+ "data-id": mappedId.value,
41
42
  "data-active": _unref(view)?.active,
42
43
  class: "magic-accordion-view"
43
44
  }, {
@@ -48,7 +49,7 @@ export default /* @__PURE__ */ _defineComponent({
48
49
  ]),
49
50
  _: 3
50
51
  /* FORWARDED */
51
- }, 8, ["as-child", "data-active"]);
52
+ }, 8, ["as-child", "data-id", "data-active"]);
52
53
  };
53
54
  }
54
55
  });
@@ -4,16 +4,18 @@ interface MagicAccordionViewProps {
4
4
  asChild?: boolean;
5
5
  active?: boolean;
6
6
  }
7
+ declare const mappedId: import("vue").ComputedRef<string>;
7
8
  declare const view: import("../types").AccordionView;
8
9
  declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
9
- declare var __VLS_7: {
10
+ declare var __VLS_6: {
10
11
  viewActive: boolean;
11
12
  };
12
13
  type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
13
- default?: (props: typeof __VLS_7) => any;
14
+ default?: (props: typeof __VLS_6) => any;
14
15
  }>;
15
16
  declare const __VLS_self: import("vue").DefineComponent<MagicAccordionViewProps, {
16
17
  Primitive: typeof Primitive;
18
+ mappedId: typeof mappedId;
17
19
  view: typeof view;
18
20
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionViewProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
21
  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>;
@@ -6,7 +6,7 @@ interface UseAccordionTriggerArgs {
6
6
  viewId: string;
7
7
  trigger: Interaction;
8
8
  disabled: MaybeRef<boolean>;
9
- elRef: Ref<InstanceType<typeof Primitive> | undefined>;
9
+ elRef: Ref<InstanceType<typeof Primitive> | null>;
10
10
  }
11
11
  export declare function useAccordionTrigger(args: UseAccordionTriggerArgs): {
12
12
  onMouseenter: () => void;
@@ -1,5 +1,5 @@
1
- import type { InjectionKey, MaybeRef } from 'vue';
1
+ import type { InjectionKey, MaybeRef, Ref } from 'vue';
2
2
  declare const MagicAccordionInstanceId: InjectionKey<MaybeRef<string>>;
3
3
  declare const MagicAccordionViewId: InjectionKey<string>;
4
- declare const MagicAccordionViewActive: InjectionKey<MaybeRef<boolean>>;
4
+ declare const MagicAccordionViewActive: InjectionKey<Ref<boolean>>;
5
5
  export { MagicAccordionInstanceId, MagicAccordionViewId, MagicAccordionViewActive, };
@@ -2,7 +2,15 @@
2
2
  import { defineComponent as _defineComponent } from "vue";
3
3
  import { unref as _unref, renderSlot as _renderSlot, vShow as _vShow, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, Teleport as _Teleport, createBlock as _createBlock } from "vue";
4
4
  const _hoisted_1 = ["data-id", "data-idle"];
5
- import { ref, inject, watch, nextTick, provide, computed } from "vue";
5
+ import {
6
+ ref,
7
+ inject,
8
+ watch,
9
+ nextTick,
10
+ provide,
11
+ computed,
12
+ useTemplateRef
13
+ } from "vue";
6
14
  import { useMagicKeys } from "@vueuse/core";
7
15
  import { useCommandItem } from "../composables/private/useCommandItem";
8
16
  import { useCommandScroll } from "../composables/private/useCommandScroll";
@@ -25,7 +33,7 @@ export default /* @__PURE__ */ _defineComponent({
25
33
  setup(__props) {
26
34
  const instanceId = inject(MagicCommandInstanceId, void 0);
27
35
  const viewId = inject(MagicCommandViewId, void 0);
28
- const elRef = ref(void 0);
36
+ const elRef = useTemplateRef("el");
29
37
  if (!instanceId) {
30
38
  throw new Error(
31
39
  "MagicCommandContent must be nested inside MagicCommandProvider"
@@ -151,8 +159,7 @@ export default /* @__PURE__ */ _defineComponent({
151
159
  }, {
152
160
  default: _withCtx(() => [
153
161
  isActive.value ? _withDirectives((_openBlock(), _createElementBlock("div", _mergeProps({
154
- ref_key: "elRef",
155
- ref: elRef,
162
+ ref: "el",
156
163
  key: `${_unref(viewId)}-content`,
157
164
  class: "magic-command-content",
158
165
  "data-id": `${_unref(viewId)}-content`,
@@ -0,0 +1,32 @@
1
+ import '@maas/vue-equipment/utils/css/animations/fade-in.css';
2
+ import '@maas/vue-equipment/utils/css/animations/fade-out.css';
3
+ declare const viewId: string | undefined;
4
+ declare const state: import("../types").CommandState;
5
+ declare const isActive: import("vue").ComputedRef<false | HTMLElement | null | undefined>;
6
+ declare const isIdle: import("vue").ComputedRef<boolean>;
7
+ declare const onBeforeEnter: () => void, onEnter: () => void, onAfterEnter: () => void, onBeforeLeave: () => void, onLeave: () => void, onAfterLeave: () => void;
8
+ declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
9
+ declare var __VLS_9: {};
10
+ type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
11
+ default?: (props: typeof __VLS_9) => any;
12
+ }>;
13
+ declare const __VLS_self: import("vue").DefineComponent<{}, {
14
+ viewId: typeof viewId;
15
+ state: typeof state;
16
+ isActive: typeof isActive;
17
+ isIdle: typeof isIdle;
18
+ onBeforeEnter: typeof onBeforeEnter;
19
+ onEnter: typeof onEnter;
20
+ onAfterEnter: typeof onAfterEnter;
21
+ onBeforeLeave: typeof onBeforeLeave;
22
+ onLeave: typeof onLeave;
23
+ onAfterLeave: typeof onAfterLeave;
24
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
25
+ 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>;
26
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
27
+ export default _default;
28
+ type __VLS_WithSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };