@maas/vue-equipment 0.1.2 → 0.1.3

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 (100) hide show
  1. package/dist/composables/index.d.mts +87 -0
  2. package/dist/composables/index.d.ts +87 -0
  3. package/dist/composables/index.js +2 -0
  4. package/dist/composables/index.js.map +1 -0
  5. package/dist/composables/index.mjs +2 -0
  6. package/dist/composables/index.mjs.map +1 -0
  7. package/dist/nuxt/module.cjs +5 -0
  8. package/dist/nuxt/module.d.ts +11 -0
  9. package/dist/nuxt/module.json +5 -0
  10. package/dist/nuxt/module.mjs +123 -0
  11. package/dist/nuxt/types.d.ts +15 -0
  12. package/dist/plugins/MagicModal/index.d.ts +4 -0
  13. package/dist/plugins/MagicModal/index.mjs +8 -0
  14. package/dist/plugins/MagicModal/nuxt.d.ts +2 -0
  15. package/dist/plugins/MagicModal/nuxt.mjs +5 -0
  16. package/dist/plugins/MagicModal/src/components/MagicModal.vue +254 -0
  17. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +43 -0
  18. package/dist/plugins/MagicModal/src/composables/useModalApi.d.ts +18 -0
  19. package/dist/plugins/MagicModal/src/composables/useModalApi.mjs +74 -0
  20. package/dist/plugins/MagicModal/src/composables/useModalStore.d.ts +5 -0
  21. package/dist/plugins/MagicModal/src/composables/useModalStore.mjs +15 -0
  22. package/dist/plugins/MagicModal/src/store/modals.d.ts +4 -0
  23. package/dist/plugins/MagicModal/src/store/modals.mjs +9 -0
  24. package/dist/plugins/MagicModal/src/types/index.d.ts +15 -0
  25. package/dist/plugins/MagicModal/src/types/index.mjs +0 -0
  26. package/dist/plugins/MagicModal/src/utils/defaultOptions.d.ts +3 -0
  27. package/dist/plugins/MagicModal/src/utils/defaultOptions.mjs +15 -0
  28. package/dist/plugins/MagicPlayer/index.d.ts +7 -0
  29. package/dist/plugins/MagicPlayer/index.mjs +15 -0
  30. package/dist/plugins/MagicPlayer/nuxt.d.ts +2 -0
  31. package/dist/plugins/MagicPlayer/nuxt.mjs +5 -0
  32. package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue +103 -0
  33. package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue.d.ts +86 -0
  34. package/dist/plugins/MagicPlayer/src/components/MagicPlayerControls.vue +262 -0
  35. package/dist/plugins/MagicPlayer/src/components/MagicPlayerControls.vue.d.ts +25 -0
  36. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +132 -0
  37. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +12 -0
  38. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +155 -0
  39. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue.d.ts +2 -0
  40. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue +13 -0
  41. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue.d.ts +2 -0
  42. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue +14 -0
  43. package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue.d.ts +2 -0
  44. package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue +14 -0
  45. package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue.d.ts +2 -0
  46. package/dist/plugins/MagicPlayer/src/components/icons/Play.vue +11 -0
  47. package/dist/plugins/MagicPlayer/src/components/icons/Play.vue.d.ts +2 -0
  48. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue +14 -0
  49. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue.d.ts +2 -0
  50. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue +11 -0
  51. package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue.d.ts +2 -0
  52. package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue +38 -0
  53. package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue.d.ts +2 -0
  54. package/dist/plugins/MagicPlayer/src/composables/useControls.d.ts +8 -0
  55. package/dist/plugins/MagicPlayer/src/composables/useControls.mjs +15 -0
  56. package/dist/plugins/MagicPlayer/src/composables/useControlsApi.d.ts +17 -0
  57. package/dist/plugins/MagicPlayer/src/composables/useControlsApi.mjs +129 -0
  58. package/dist/plugins/MagicPlayer/src/composables/useMediaApi.d.ts +15 -0
  59. package/dist/plugins/MagicPlayer/src/composables/useMediaApi.mjs +122 -0
  60. package/dist/plugins/MagicPlayer/src/composables/usePlayer.d.ts +12 -0
  61. package/dist/plugins/MagicPlayer/src/composables/usePlayer.mjs +33 -0
  62. package/dist/plugins/MagicPlayer/src/composables/usePlayerApi.d.ts +20 -0
  63. package/dist/plugins/MagicPlayer/src/composables/usePlayerApi.mjs +50 -0
  64. package/dist/plugins/MagicPlayer/src/composables/useRuntimeSourceProvider.d.ts +8 -0
  65. package/dist/plugins/MagicPlayer/src/composables/useRuntimeSourceProvider.mjs +49 -0
  66. package/dist/plugins/MagicPlayer/src/types/index.d.ts +15 -0
  67. package/dist/plugins/MagicPlayer/src/types/index.mjs +1 -0
  68. package/dist/plugins/MagicPlayer/src/types/injectionKeys.d.ts +45 -0
  69. package/dist/plugins/MagicPlayer/src/types/injectionKeys.mjs +10 -0
  70. package/dist/plugins/MagicPlayer/src/utils/index.d.ts +4 -0
  71. package/dist/plugins/MagicPlayer/src/utils/index.mjs +19 -0
  72. package/dist/plugins/MagicScroll/index.d.ts +7 -0
  73. package/dist/plugins/MagicScroll/index.mjs +19 -0
  74. package/dist/plugins/MagicScroll/nuxt.d.ts +2 -0
  75. package/dist/plugins/MagicScroll/nuxt.mjs +5 -0
  76. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +35 -0
  77. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +20 -0
  78. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue +34 -0
  79. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +21 -0
  80. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +80 -0
  81. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +41 -0
  82. package/dist/plugins/MagicScroll/src/components/MagicScrollTransform.vue +42 -0
  83. package/dist/plugins/MagicScroll/src/components/MagicScrollTransform.vue.d.ts +84 -0
  84. package/dist/plugins/MagicScroll/src/composables/useCollisionDetect.d.ts +6 -0
  85. package/dist/plugins/MagicScroll/src/composables/useCollisionDetect.mjs +116 -0
  86. package/dist/plugins/MagicScroll/src/composables/useEmitter.d.ts +15 -0
  87. package/dist/plugins/MagicScroll/src/composables/useEmitter.mjs +9 -0
  88. package/dist/plugins/MagicScroll/src/composables/useProgress.d.ts +7 -0
  89. package/dist/plugins/MagicScroll/src/composables/useProgress.mjs +59 -0
  90. package/dist/plugins/MagicScroll/src/store/index.d.ts +4 -0
  91. package/dist/plugins/MagicScroll/src/store/index.mjs +5 -0
  92. package/dist/plugins/MagicScroll/src/types/index.d.ts +34 -0
  93. package/dist/plugins/MagicScroll/src/types/index.mjs +1 -0
  94. package/dist/plugins/MagicScroll/src/types/injectionKeys.d.ts +12 -0
  95. package/dist/plugins/MagicScroll/src/types/injectionKeys.mjs +5 -0
  96. package/dist/plugins/MagicScroll/src/utils/index.d.ts +2 -0
  97. package/dist/plugins/MagicScroll/src/utils/index.mjs +6 -0
  98. package/dist/plugins/index.d.ts +3 -0
  99. package/dist/plugins/index.mjs +3 -0
  100. package/package.json +13 -13
@@ -0,0 +1,87 @@
1
+ import { Ref } from 'vue';
2
+ import { Font } from 'fontkit';
3
+ import { MaybeElement, MaybeComputedElementRef } from '@vueuse/core';
4
+
5
+ type EasingKey = 'linear' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInQuart' | 'easeOutQuart' | 'easeInOutQuart' | 'easeInQuint' | 'easeOutQuint' | 'easeInOutQuint';
6
+ type EasingFunction = (t: number) => number;
7
+ declare function useEasings(): {
8
+ linear: (t: number) => number;
9
+ easeInQuad: (t: number) => number;
10
+ easeOutQuad: (t: number) => number;
11
+ easeInOutQuad: (t: number) => number;
12
+ easeInCubic: (t: number) => number;
13
+ easeOutCubic: (t: number) => number;
14
+ easeInOutCubic: (t: number) => number;
15
+ easeInQuart: (t: number) => number;
16
+ easeOutQuart: (t: number) => number;
17
+ easeInOutQuart: (t: number) => number;
18
+ easeInQuint: (t: number) => number;
19
+ easeOutQuint: (t: number) => number;
20
+ easeInOutQuint: (t: number) => number;
21
+ };
22
+
23
+ type useGlyphToSvgOptions = {
24
+ fontSize: Ref<number> | number;
25
+ fontWeight: Ref<number> | number;
26
+ fontFile: Ref<Font> | Font;
27
+ };
28
+ declare function useGlyphToSvg({ fontSize, fontWeight, fontFile, }: useGlyphToSvgOptions): {
29
+ copySvg: (codePoint: string) => Promise<void>;
30
+ renderSvg: (codePoint: string) => Promise<string>;
31
+ };
32
+
33
+ type ScrollToTarget = string | Element | MaybeElement | MaybeComputedElementRef;
34
+ type ScrollToParent = ScrollToTarget | Window;
35
+ type ScrollToParams = {
36
+ parent?: Element | Window;
37
+ left: number;
38
+ top: number;
39
+ duration?: {
40
+ x?: number;
41
+ y?: number;
42
+ };
43
+ easing?: EasingFunction;
44
+ callback?: () => void;
45
+ };
46
+ type getScrollDurationParams = {
47
+ parent: Element | Window;
48
+ left: number;
49
+ top: number;
50
+ speed: number;
51
+ };
52
+ type scrollToTargetParams = {
53
+ target: ScrollToTarget;
54
+ parent?: ScrollToParent;
55
+ offset?: {
56
+ x?: number;
57
+ y?: number;
58
+ };
59
+ speed?: number;
60
+ easing?: EasingFunction;
61
+ };
62
+ declare function useScrollTo(): {
63
+ getScrollPosition: (element: Element | Window) => {
64
+ x: number;
65
+ y: number;
66
+ };
67
+ getDistance: (element: Element) => {
68
+ top: number;
69
+ left: number;
70
+ };
71
+ getScrollDuration: ({ parent, left, top, speed, }: getScrollDurationParams) => {
72
+ x: number;
73
+ y: number;
74
+ };
75
+ scrollTo: ({ parent, top, left, duration, easing, callback, }: ScrollToParams) => void;
76
+ scrollToTarget: ({ target, parent, offset, speed, easing, }: scrollToTargetParams) => void;
77
+ };
78
+
79
+ type UseViewportDimensionsOptions = {
80
+ width?: false | string;
81
+ height?: false | string;
82
+ initialWidth?: false | string;
83
+ initialHeight?: false | string;
84
+ };
85
+ declare function useViewportDimensions(options?: UseViewportDimensionsOptions): void;
86
+
87
+ export { EasingFunction, EasingKey, ScrollToParams, ScrollToParent, ScrollToTarget, UseViewportDimensionsOptions, getScrollDurationParams, scrollToTargetParams, useEasings, useGlyphToSvg, useGlyphToSvgOptions, useScrollTo, useViewportDimensions };
@@ -0,0 +1,87 @@
1
+ import { Ref } from 'vue';
2
+ import { Font } from 'fontkit';
3
+ import { MaybeElement, MaybeComputedElementRef } from '@vueuse/core';
4
+
5
+ type EasingKey = 'linear' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInQuart' | 'easeOutQuart' | 'easeInOutQuart' | 'easeInQuint' | 'easeOutQuint' | 'easeInOutQuint';
6
+ type EasingFunction = (t: number) => number;
7
+ declare function useEasings(): {
8
+ linear: (t: number) => number;
9
+ easeInQuad: (t: number) => number;
10
+ easeOutQuad: (t: number) => number;
11
+ easeInOutQuad: (t: number) => number;
12
+ easeInCubic: (t: number) => number;
13
+ easeOutCubic: (t: number) => number;
14
+ easeInOutCubic: (t: number) => number;
15
+ easeInQuart: (t: number) => number;
16
+ easeOutQuart: (t: number) => number;
17
+ easeInOutQuart: (t: number) => number;
18
+ easeInQuint: (t: number) => number;
19
+ easeOutQuint: (t: number) => number;
20
+ easeInOutQuint: (t: number) => number;
21
+ };
22
+
23
+ type useGlyphToSvgOptions = {
24
+ fontSize: Ref<number> | number;
25
+ fontWeight: Ref<number> | number;
26
+ fontFile: Ref<Font> | Font;
27
+ };
28
+ declare function useGlyphToSvg({ fontSize, fontWeight, fontFile, }: useGlyphToSvgOptions): {
29
+ copySvg: (codePoint: string) => Promise<void>;
30
+ renderSvg: (codePoint: string) => Promise<string>;
31
+ };
32
+
33
+ type ScrollToTarget = string | Element | MaybeElement | MaybeComputedElementRef;
34
+ type ScrollToParent = ScrollToTarget | Window;
35
+ type ScrollToParams = {
36
+ parent?: Element | Window;
37
+ left: number;
38
+ top: number;
39
+ duration?: {
40
+ x?: number;
41
+ y?: number;
42
+ };
43
+ easing?: EasingFunction;
44
+ callback?: () => void;
45
+ };
46
+ type getScrollDurationParams = {
47
+ parent: Element | Window;
48
+ left: number;
49
+ top: number;
50
+ speed: number;
51
+ };
52
+ type scrollToTargetParams = {
53
+ target: ScrollToTarget;
54
+ parent?: ScrollToParent;
55
+ offset?: {
56
+ x?: number;
57
+ y?: number;
58
+ };
59
+ speed?: number;
60
+ easing?: EasingFunction;
61
+ };
62
+ declare function useScrollTo(): {
63
+ getScrollPosition: (element: Element | Window) => {
64
+ x: number;
65
+ y: number;
66
+ };
67
+ getDistance: (element: Element) => {
68
+ top: number;
69
+ left: number;
70
+ };
71
+ getScrollDuration: ({ parent, left, top, speed, }: getScrollDurationParams) => {
72
+ x: number;
73
+ y: number;
74
+ };
75
+ scrollTo: ({ parent, top, left, duration, easing, callback, }: ScrollToParams) => void;
76
+ scrollToTarget: ({ target, parent, offset, speed, easing, }: scrollToTargetParams) => void;
77
+ };
78
+
79
+ type UseViewportDimensionsOptions = {
80
+ width?: false | string;
81
+ height?: false | string;
82
+ initialWidth?: false | string;
83
+ initialHeight?: false | string;
84
+ };
85
+ declare function useViewportDimensions(options?: UseViewportDimensionsOptions): void;
86
+
87
+ export { EasingFunction, EasingKey, ScrollToParams, ScrollToParent, ScrollToTarget, UseViewportDimensionsOptions, getScrollDurationParams, scrollToTargetParams, useEasings, useGlyphToSvg, useGlyphToSvgOptions, useScrollTo, useViewportDimensions };
@@ -0,0 +1,2 @@
1
+ "use strict";var S=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var W=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var s in e)S(t,s,{get:e[s],enumerable:!0})},$=(t,e,s,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of M(e))!W.call(t,u)&&u!==s&&S(t,u,{get:()=>e[u],enumerable:!(p=D(e,u))||p.enumerable});return t};var R=t=>$(S({},"__esModule",{value:!0}),t);var G={};X(G,{useEasings:()=>F,useGlyphToSvg:()=>Y,useScrollTo:()=>H,useViewportDimensions:()=>B});module.exports=R(G);function F(){return{linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e*e:-1+(4-2*e)*e,easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1- --e*e*e*e,easeInOutQuart:e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1+--e*e*e*e*e,easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}}var P=require("@vueuse/core"),w=require("vue");function Y({fontSize:t,fontWeight:e,fontFile:s}){let{copy:p}=(0,P.useClipboard)(),u=(0,w.unref)(s),n=(0,w.unref)(t),o=(0,w.unref)(e),c=()=>u.getVariation({wght:o}),f=r=>{let i=n/u.unitsPerEm,a=r.path.scale(i,i).scale(-1,1).rotate(Math.PI),l=a.bbox,g=l.minX,y=l.minY,E=l.height,v=l.width,b=(0,w.unref)(t),h=(E-b)/2+y,O=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${`${(v-b)/2+g} ${h} ${b} ${b}`}" xmlns:xlink="http://www.w3.org/1999/xlink">`;return O+=`<path d="${a.toSVG()}" fill="currentColor" />`,O+="</svg>",O},d=async r=>{let a=(await c()).glyphForCodePoint(r);return f(a)};return{copySvg:async r=>{let i=await d(r);p(i)},renderSvg:d}}var Q=require("@vueuse/core"),I=F();function C(t,e){return t<e?t:e}function V(t){return t===window?t:typeof t=="string"?document.querySelector(t)||document.documentElement:(0,Q.unrefElement)(t)||document.documentElement}function q(t,e){return typeof t=="string"?(e===window?document:e).querySelector(t):(0,Q.unrefElement)(t)}function H(){function t(n){return n===window?{x:window.pageXOffset,y:window.pageYOffset}:n instanceof Element?{x:n.scrollLeft,y:n.scrollTop}:{x:0,y:0}}function e(n){let o=n.getBoundingClientRect(),c=document.scrollingElement||document.documentElement;return{top:o.top+c.scrollTop,left:o.left+c.scrollLeft}}function s({parent:n=document.documentElement||document.body,left:o=0,top:c=0,speed:f=500}){let d=t(n),m=d.x-o,r=d.y-c,i=Math.abs(m/f*100),a=Math.abs(r/f*100);return{x:i,y:a}}function p({parent:n=document.documentElement||document.body,top:o,left:c,duration:f={},easing:d=I.easeOutQuad,callback:m}){let r=Date.now(),{x:i,y:a}=t(n);if(i===o&&a===c){m&&m();return}let l={x:500,y:500,...f},g=()=>{let y=Date.now(),E=C(1,(y-r)/l.x),v=C(1,(y-r)/l.y),b=d(E),h=d(v),T=Math.min(b,h);n.scroll({left:T*(c-i)+i,top:T*(o-a)+a}),b<1||h<1?requestAnimationFrame(g):m&&m()};requestAnimationFrame(g)}function u({target:n,parent:o=document.documentElement||document.body,offset:c={},speed:f=500,easing:d=I.easeOutQuad}){let m=V(o);if(!m)return;let r=q(n,m);if(!r)return;let i={x:0,y:0,...c},a=e(r),l=a.left-i.x,g=a.top-i.y,y=s({parent:m,left:l,top:g,speed:f});p({parent:m,left:l,top:g,duration:y,easing:d})}return{getScrollPosition:t,getDistance:e,getScrollDuration:s,scrollTo:p,scrollToTarget:u}}var x=require("vue");function B(t){let e={width:"--vw",height:"--vh",initialWidth:"--initial-vw",initialHeight:"--initial-vh",...t},s=n=>{let o=Number(window.innerWidth*.01).toFixed(2);e.width&&document.documentElement.style.setProperty(e.width,`${o}px`),n&&e.initialWidth&&document.documentElement.style.setProperty(e.initialWidth,`${o}px`)},p=n=>{let o=Number(window.innerHeight*.01).toFixed(2);e.height&&document.documentElement.style.setProperty(e.height||"--vh",`${o}px`),n&&e.initialHeight&&document.documentElement.style.setProperty(e.initialHeight||"--initial-vh",`${o}px`)},u=()=>{s(),p()};(0,x.onMounted)(()=>{s(!0),p(!0),window.addEventListener("resize",u,{passive:!0})}),(0,x.onUnmounted)(()=>{window.addEventListener("resize",u,{passive:!0})})}0&&(module.exports={useEasings,useGlyphToSvg,useScrollTo,useViewportDimensions});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../packages/composables/index.ts","../../packages/composables/useEasings/index.ts","../../packages/composables/useGlyphToSvg/index.ts","../../packages/composables/useScrollTo/index.ts","../../packages/composables/useViewportDimensions/index.ts"],"sourcesContent":["export * from './useEasings'\nexport * from './useGlyphToSvg'\nexport * from './useScrollTo'\nexport * from './useViewportDimensions'\n","export type EasingKey =\n | 'linear'\n | 'easeInQuad'\n | 'easeOutQuad'\n | 'easeInOutQuad'\n | 'easeInCubic'\n | 'easeOutCubic'\n | 'easeInOutCubic'\n | 'easeInQuart'\n | 'easeOutQuart'\n | 'easeInOutQuart'\n | 'easeInQuint'\n | 'easeOutQuint'\n | 'easeInOutQuint'\n\nexport type EasingFunction = (t: number) => number\n\nexport function useEasings() {\n const easings = {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t * t,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t * t * t,\n easeOutCubic: (t: number) => --t * t * t + 1,\n easeInOutCubic: (t: number) =>\n t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t * t * t * t,\n easeOutQuart: (t: number) => 1 - --t * t * t * t,\n easeInOutQuart: (t: number) =>\n t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t,\n easeInQuint: (t: number) => t * t * t * t * t,\n easeOutQuint: (t: number) => 1 + --t * t * t * t * t,\n easeInOutQuint: (t: number) =>\n t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t,\n }\n\n return easings\n}\n","import { useClipboard } from '@vueuse/core'\nimport { unref } from 'vue'\n\nimport type { Ref } from 'vue'\nimport type { Font } from 'fontkit'\n\nexport type useGlyphToSvgOptions = {\n fontSize: Ref<number> | number\n fontWeight: Ref<number> | number\n fontFile: Ref<Font> | Font\n}\n\nexport function useGlyphToSvg({\n fontSize,\n fontWeight,\n fontFile,\n}: useGlyphToSvgOptions) {\n const { copy } = useClipboard()\n const mappedFontFile = unref(fontFile)\n const mappedFontSize = unref(fontSize)\n const mappedFontWeight = unref(fontWeight)\n\n const loadVariableFont = () => {\n // @ts-ignore\n const variableFont = mappedFontFile.getVariation({\n wght: mappedFontWeight,\n })\n return variableFont\n }\n\n const convertToSvg = (glyph: any) => {\n // Scale according to current font size\n const scale = mappedFontSize / mappedFontFile.unitsPerEm\n const path = glyph.path.scale(scale, scale).scale(-1, 1).rotate(Math.PI)\n\n // Center inside square bounding box\n const bbox = path.bbox\n const minX = bbox.minX\n const minY = bbox.minY\n const height = bbox.height\n const width = bbox.width\n const dims = unref(fontSize)\n\n const centeredY = (height - dims) / 2 + minY\n const centeredX = (width - dims) / 2 + minX\n\n const viewBox = `${centeredX} ${centeredY} ${dims} ${dims}`\n\n let svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">`\n svg += `<path d=\"${path.toSVG()}\" fill=\"currentColor\" />`\n svg += '</svg>'\n\n return svg\n }\n\n const renderSvg = async (codePoint: string) => {\n const font = await loadVariableFont()\n const glyph = font.glyphForCodePoint(codePoint)\n const svg = convertToSvg(glyph)\n return svg\n }\n\n const copySvg = async (codePoint: string) => {\n const svg = await renderSvg(codePoint)\n copy(svg)\n }\n\n return { copySvg, renderSvg }\n}\n","import { useEasings } from '../useEasings'\nimport { unrefElement } from '@vueuse/core'\nimport type { EasingFunction } from '../useEasings'\nimport type { MaybeComputedElementRef, MaybeElement } from '@vueuse/core'\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?: EasingFunction\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?: EasingFunction\n}\n\nconst easings = useEasings()\n\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\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.pageXOffset, y: window.pageYOffset }\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(element: Element): { top: number; left: number } {\n const rect = element.getBoundingClientRect()\n const scrollEl = document.scrollingElement || document.documentElement\n\n return {\n top: rect.top + scrollEl.scrollTop,\n left: rect.left + scrollEl.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 = easings.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 = easings.easeOutQuad,\n }: scrollToTargetParams) {\n let parentEl = unwrapParent(parent)\n if (!parentEl) return\n let targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) return\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl)\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 })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n","import { onMounted, onUnmounted } from 'vue'\n\nexport type UseViewportDimensionsOptions = {\n width?: false | string\n height?: false | string\n initialWidth?: false | string\n initialHeight?: false | string\n}\n\nexport function useViewportDimensions(options?: UseViewportDimensionsOptions) {\n const mappedOptions = {\n width: '--vw',\n height: '--vh',\n initialWidth: '--initial-vw',\n initialHeight: '--initial-vh',\n ...options,\n }\n\n const setViewportWidth = (initial?: boolean) => {\n const vw = Number(window.innerWidth * 0.01).toFixed(2)\n\n if (mappedOptions.width) {\n document.documentElement.style.setProperty(mappedOptions.width, `${vw}px`)\n }\n\n if (initial && mappedOptions.initialWidth) {\n document.documentElement.style.setProperty(\n mappedOptions.initialWidth,\n `${vw}px`\n )\n }\n }\n\n const setViewportHeight = (initial?: boolean) => {\n const vh = Number(window.innerHeight * 0.01).toFixed(2)\n\n if (mappedOptions.height) {\n document.documentElement.style.setProperty(\n mappedOptions.height || '--vh',\n `${vh}px`\n )\n }\n\n if (initial && mappedOptions.initialHeight) {\n document.documentElement.style.setProperty(\n mappedOptions.initialHeight || '--initial-vh',\n `${vh}px`\n )\n }\n }\n\n const setDimensions = () => {\n setViewportWidth()\n setViewportHeight()\n }\n\n onMounted(() => {\n setViewportWidth(true)\n setViewportHeight(true)\n\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n\n onUnmounted(() => {\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n}\n"],"mappings":"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","names":["composables_exports","__export","useEasings","useGlyphToSvg","useScrollTo","useViewportDimensions","__toCommonJS","useEasings","t","import_core","import_vue","useGlyphToSvg","fontSize","fontWeight","fontFile","copy","mappedFontFile","mappedFontSize","mappedFontWeight","loadVariableFont","convertToSvg","glyph","scale","path","bbox","minX","minY","height","width","dims","centeredY","svg","renderSvg","codePoint","import_core","easings","useEasings","min","a","b","unwrapParent","parent","unwrapTarget","target","parentEl","useScrollTo","getScrollPosition","element","getDistance","rect","scrollEl","getScrollDuration","left","top","speed","currentPos","distanceX","distanceY","durationX","durationY","scrollTo","duration","easing","callback","startTime","fromX","fromY","mappedDuration","scroll","currentTime","timeX","timeY","easedTimeX","easedTimeY","minTime","scrollToTarget","offset","targetEl","mappedOffset","distance","leftDistance","topDistance","scrollDuration","import_vue","useViewportDimensions","options","mappedOptions","setViewportWidth","initial","vw","setViewportHeight","vh","setDimensions"]}
@@ -0,0 +1,2 @@
1
+ function O(){return{linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e*e:-1+(4-2*e)*e,easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1- --e*e*e*e,easeInOutQuart:e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1+--e*e*e*e*e,easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}}import{useClipboard as P}from"@vueuse/core";import{unref as h}from"vue";function Y({fontSize:t,fontWeight:e,fontFile:l}){let{copy:d}=P(),f=h(l),n=h(t),o=h(e),a=()=>f.getVariation({wght:o}),p=r=>{let i=n/f.unitsPerEm,s=r.path.scale(i,i).scale(-1,1).rotate(Math.PI),m=s.bbox,g=m.minX,y=m.minY,x=m.height,E=m.width,b=h(t),w=(x-b)/2+y,T=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${`${(E-b)/2+g} ${w} ${b} ${b}`}" xmlns:xlink="http://www.w3.org/1999/xlink">`;return T+=`<path d="${s.toSVG()}" fill="currentColor" />`,T+="</svg>",T},c=async r=>{let s=(await a()).glyphForCodePoint(r);return p(s)};return{copySvg:async r=>{let i=await c(r);d(i)},renderSvg:c}}import{unrefElement as Q}from"@vueuse/core";var S=O();function F(t,e){return t<e?t:e}function I(t){return t===window?t:typeof t=="string"?document.querySelector(t)||document.documentElement:Q(t)||document.documentElement}function C(t,e){return typeof t=="string"?(e===window?document:e).querySelector(t):Q(t)}function B(){function t(n){return n===window?{x:window.pageXOffset,y:window.pageYOffset}:n instanceof Element?{x:n.scrollLeft,y:n.scrollTop}:{x:0,y:0}}function e(n){let o=n.getBoundingClientRect(),a=document.scrollingElement||document.documentElement;return{top:o.top+a.scrollTop,left:o.left+a.scrollLeft}}function l({parent:n=document.documentElement||document.body,left:o=0,top:a=0,speed:p=500}){let c=t(n),u=c.x-o,r=c.y-a,i=Math.abs(u/p*100),s=Math.abs(r/p*100);return{x:i,y:s}}function d({parent:n=document.documentElement||document.body,top:o,left:a,duration:p={},easing:c=S.easeOutQuad,callback:u}){let r=Date.now(),{x:i,y:s}=t(n);if(i===o&&s===a){u&&u();return}let m={x:500,y:500,...p},g=()=>{let y=Date.now(),x=F(1,(y-r)/m.x),E=F(1,(y-r)/m.y),b=c(x),w=c(E),v=Math.min(b,w);n.scroll({left:v*(a-i)+i,top:v*(o-s)+s}),b<1||w<1?requestAnimationFrame(g):u&&u()};requestAnimationFrame(g)}function f({target:n,parent:o=document.documentElement||document.body,offset:a={},speed:p=500,easing:c=S.easeOutQuad}){let u=I(o);if(!u)return;let r=C(n,u);if(!r)return;let i={x:0,y:0,...a},s=e(r),m=s.left-i.x,g=s.top-i.y,y=l({parent:u,left:m,top:g,speed:p});d({parent:u,left:m,top:g,duration:y,easing:c})}return{getScrollPosition:t,getDistance:e,getScrollDuration:l,scrollTo:d,scrollToTarget:f}}import{onMounted as D,onUnmounted as M}from"vue";function z(t){let e={width:"--vw",height:"--vh",initialWidth:"--initial-vw",initialHeight:"--initial-vh",...t},l=n=>{let o=Number(window.innerWidth*.01).toFixed(2);e.width&&document.documentElement.style.setProperty(e.width,`${o}px`),n&&e.initialWidth&&document.documentElement.style.setProperty(e.initialWidth,`${o}px`)},d=n=>{let o=Number(window.innerHeight*.01).toFixed(2);e.height&&document.documentElement.style.setProperty(e.height||"--vh",`${o}px`),n&&e.initialHeight&&document.documentElement.style.setProperty(e.initialHeight||"--initial-vh",`${o}px`)},f=()=>{l(),d()};D(()=>{l(!0),d(!0),window.addEventListener("resize",f,{passive:!0})}),M(()=>{window.addEventListener("resize",f,{passive:!0})})}export{O as useEasings,Y as useGlyphToSvg,B as useScrollTo,z as useViewportDimensions};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../packages/composables/useEasings/index.ts","../../packages/composables/useGlyphToSvg/index.ts","../../packages/composables/useScrollTo/index.ts","../../packages/composables/useViewportDimensions/index.ts"],"sourcesContent":["export type EasingKey =\n | 'linear'\n | 'easeInQuad'\n | 'easeOutQuad'\n | 'easeInOutQuad'\n | 'easeInCubic'\n | 'easeOutCubic'\n | 'easeInOutCubic'\n | 'easeInQuart'\n | 'easeOutQuart'\n | 'easeInOutQuart'\n | 'easeInQuint'\n | 'easeOutQuint'\n | 'easeInOutQuint'\n\nexport type EasingFunction = (t: number) => number\n\nexport function useEasings() {\n const easings = {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t * t,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t * t * t,\n easeOutCubic: (t: number) => --t * t * t + 1,\n easeInOutCubic: (t: number) =>\n t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t * t * t * t,\n easeOutQuart: (t: number) => 1 - --t * t * t * t,\n easeInOutQuart: (t: number) =>\n t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t,\n easeInQuint: (t: number) => t * t * t * t * t,\n easeOutQuint: (t: number) => 1 + --t * t * t * t * t,\n easeInOutQuint: (t: number) =>\n t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t,\n }\n\n return easings\n}\n","import { useClipboard } from '@vueuse/core'\nimport { unref } from 'vue'\n\nimport type { Ref } from 'vue'\nimport type { Font } from 'fontkit'\n\nexport type useGlyphToSvgOptions = {\n fontSize: Ref<number> | number\n fontWeight: Ref<number> | number\n fontFile: Ref<Font> | Font\n}\n\nexport function useGlyphToSvg({\n fontSize,\n fontWeight,\n fontFile,\n}: useGlyphToSvgOptions) {\n const { copy } = useClipboard()\n const mappedFontFile = unref(fontFile)\n const mappedFontSize = unref(fontSize)\n const mappedFontWeight = unref(fontWeight)\n\n const loadVariableFont = () => {\n // @ts-ignore\n const variableFont = mappedFontFile.getVariation({\n wght: mappedFontWeight,\n })\n return variableFont\n }\n\n const convertToSvg = (glyph: any) => {\n // Scale according to current font size\n const scale = mappedFontSize / mappedFontFile.unitsPerEm\n const path = glyph.path.scale(scale, scale).scale(-1, 1).rotate(Math.PI)\n\n // Center inside square bounding box\n const bbox = path.bbox\n const minX = bbox.minX\n const minY = bbox.minY\n const height = bbox.height\n const width = bbox.width\n const dims = unref(fontSize)\n\n const centeredY = (height - dims) / 2 + minY\n const centeredX = (width - dims) / 2 + minX\n\n const viewBox = `${centeredX} ${centeredY} ${dims} ${dims}`\n\n let svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">`\n svg += `<path d=\"${path.toSVG()}\" fill=\"currentColor\" />`\n svg += '</svg>'\n\n return svg\n }\n\n const renderSvg = async (codePoint: string) => {\n const font = await loadVariableFont()\n const glyph = font.glyphForCodePoint(codePoint)\n const svg = convertToSvg(glyph)\n return svg\n }\n\n const copySvg = async (codePoint: string) => {\n const svg = await renderSvg(codePoint)\n copy(svg)\n }\n\n return { copySvg, renderSvg }\n}\n","import { useEasings } from '../useEasings'\nimport { unrefElement } from '@vueuse/core'\nimport type { EasingFunction } from '../useEasings'\nimport type { MaybeComputedElementRef, MaybeElement } from '@vueuse/core'\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?: EasingFunction\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?: EasingFunction\n}\n\nconst easings = useEasings()\n\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\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.pageXOffset, y: window.pageYOffset }\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(element: Element): { top: number; left: number } {\n const rect = element.getBoundingClientRect()\n const scrollEl = document.scrollingElement || document.documentElement\n\n return {\n top: rect.top + scrollEl.scrollTop,\n left: rect.left + scrollEl.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 = easings.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 = easings.easeOutQuad,\n }: scrollToTargetParams) {\n let parentEl = unwrapParent(parent)\n if (!parentEl) return\n let targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) return\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl)\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 })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n","import { onMounted, onUnmounted } from 'vue'\n\nexport type UseViewportDimensionsOptions = {\n width?: false | string\n height?: false | string\n initialWidth?: false | string\n initialHeight?: false | string\n}\n\nexport function useViewportDimensions(options?: UseViewportDimensionsOptions) {\n const mappedOptions = {\n width: '--vw',\n height: '--vh',\n initialWidth: '--initial-vw',\n initialHeight: '--initial-vh',\n ...options,\n }\n\n const setViewportWidth = (initial?: boolean) => {\n const vw = Number(window.innerWidth * 0.01).toFixed(2)\n\n if (mappedOptions.width) {\n document.documentElement.style.setProperty(mappedOptions.width, `${vw}px`)\n }\n\n if (initial && mappedOptions.initialWidth) {\n document.documentElement.style.setProperty(\n mappedOptions.initialWidth,\n `${vw}px`\n )\n }\n }\n\n const setViewportHeight = (initial?: boolean) => {\n const vh = Number(window.innerHeight * 0.01).toFixed(2)\n\n if (mappedOptions.height) {\n document.documentElement.style.setProperty(\n mappedOptions.height || '--vh',\n `${vh}px`\n )\n }\n\n if (initial && mappedOptions.initialHeight) {\n document.documentElement.style.setProperty(\n mappedOptions.initialHeight || '--initial-vh',\n `${vh}px`\n )\n }\n }\n\n const setDimensions = () => {\n setViewportWidth()\n setViewportHeight()\n }\n\n onMounted(() => {\n setViewportWidth(true)\n setViewportHeight(true)\n\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n\n onUnmounted(() => {\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n}\n"],"mappings":"AAiBO,SAASA,GAAa,CAoB3B,MAnBgB,CACd,OAASC,GAAcA,EACvB,WAAaA,GAAcA,EAAIA,EAC/B,YAAcA,GAAcA,GAAK,EAAIA,GACrC,cAAgBA,GAAeA,EAAI,GAAM,EAAIA,EAAIA,EAAI,IAAM,EAAI,EAAIA,GAAKA,EACxE,YAAcA,GAAcA,EAAIA,EAAIA,EACpC,aAAeA,GAAc,EAAEA,EAAIA,EAAIA,EAAI,EAC3C,eAAiBA,GACfA,EAAI,GAAM,EAAIA,EAAIA,EAAIA,GAAKA,EAAI,IAAM,EAAIA,EAAI,IAAM,EAAIA,EAAI,GAAK,EAClE,YAAcA,GAAcA,EAAIA,EAAIA,EAAIA,EACxC,aAAeA,GAAc,GAAI,EAAEA,EAAIA,EAAIA,EAAIA,EAC/C,eAAiBA,GACfA,EAAI,GAAM,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,EAAI,EAAEA,EAAIA,EAAIA,EAAIA,EACtD,YAAcA,GAAcA,EAAIA,EAAIA,EAAIA,EAAIA,EAC5C,aAAeA,GAAc,EAAI,EAAEA,EAAIA,EAAIA,EAAIA,EAAIA,EACnD,eAAiBA,GACfA,EAAI,GAAM,GAAKA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,GAAK,EAAEA,EAAIA,EAAIA,EAAIA,EAAIA,CAClE,CAGF,CCtCA,OAAS,gBAAAC,MAAoB,eAC7B,OAAS,SAAAC,MAAa,MAWf,SAASC,EAAc,CAC5B,SAAAC,EACA,WAAAC,EACA,SAAAC,CACF,EAAyB,CACvB,GAAM,CAAE,KAAAC,CAAK,EAAIN,EAAa,EACxBO,EAAiBN,EAAMI,CAAQ,EAC/BG,EAAiBP,EAAME,CAAQ,EAC/BM,EAAmBR,EAAMG,CAAU,EAEnCM,EAAmB,IAEFH,EAAe,aAAa,CAC/C,KAAME,CACR,CAAC,EAIGE,EAAgBC,GAAe,CAEnC,IAAMC,EAAQL,EAAiBD,EAAe,WACxCO,EAAOF,EAAM,KAAK,MAAMC,EAAOA,CAAK,EAAE,MAAM,GAAI,CAAC,EAAE,OAAO,KAAK,EAAE,EAGjEE,EAAOD,EAAK,KACZE,EAAOD,EAAK,KACZE,EAAOF,EAAK,KACZG,EAASH,EAAK,OACdI,EAAQJ,EAAK,MACbK,EAAOnB,EAAME,CAAQ,EAErBkB,GAAaH,EAASE,GAAQ,EAAIH,EAKpCK,EAAM,oDAFM,IAFGH,EAAQC,GAAQ,EAAIJ,CAEX,IAAIK,CAAS,IAAID,CAAI,IAAIA,CAAI,EAEY,gDACrE,OAAAE,GAAO,YAAYR,EAAK,MAAM,CAAC,2BAC/BQ,GAAO,SAEAA,CACT,EAEMC,EAAY,MAAOC,GAAsB,CAE7C,IAAMZ,GADO,MAAMF,EAAiB,GACjB,kBAAkBc,CAAS,EAE9C,OADYb,EAAaC,CAAK,CAEhC,EAOA,MAAO,CAAE,QALO,MAAOY,GAAsB,CAC3C,IAAMF,EAAM,MAAMC,EAAUC,CAAS,EACrClB,EAAKgB,CAAG,CACV,EAEkB,UAAAC,CAAU,CAC9B,CCnEA,OAAS,gBAAAE,MAAoB,eAuC7B,IAAMC,EAAUC,EAAW,EAE3B,SAASC,EAAIC,EAAWC,EAAW,CACjC,OAAOD,EAAIC,EAAID,EAAIC,CACrB,CAEA,SAASC,EAAaC,EAAwB,CAC5C,OAAIA,IAAW,OACNA,EACE,OAAOA,GAAW,SACpB,SAAS,cAAcA,CAAM,GAAK,SAAS,gBAGhDP,EAAaO,CAA+C,GAC5D,SAAS,eAGf,CAEA,SAASC,EAAaC,EAAwBC,EAA4B,CACxE,OAAI,OAAOD,GAAW,UACAC,IAAa,OAAS,SAAYA,GACnC,cAAcD,CAAM,EAEhCT,EAAaS,CAA+C,CAEvE,CAEO,SAASE,GAAc,CAC5B,SAASC,EAAkBC,EAGzB,CACA,OAAIA,IAAY,OACP,CAAE,EAAG,OAAO,YAAa,EAAG,OAAO,WAAY,EAC7CA,aAAmB,QACrB,CAAE,EAAGA,EAAQ,WAAY,EAAGA,EAAQ,SAAU,EAE9C,CAAE,EAAG,EAAG,EAAG,CAAE,CAExB,CAEA,SAASC,EAAYD,EAAiD,CACpE,IAAME,EAAOF,EAAQ,sBAAsB,EACrCG,EAAW,SAAS,kBAAoB,SAAS,gBAEvD,MAAO,CACL,IAAKD,EAAK,IAAMC,EAAS,UACzB,KAAMD,EAAK,KAAOC,EAAS,UAC7B,CACF,CAEA,SAASC,EAAkB,CACzB,OAAAV,EAAS,SAAS,iBAAmB,SAAS,KAC9C,KAAAW,EAAO,EACP,IAAAC,EAAM,EACN,MAAAC,EAAQ,GACV,EAA4B,CAC1B,IAAMC,EAAaT,EAAkBL,CAAM,EACrCe,EAAYD,EAAW,EAAIH,EAC3BK,EAAYF,EAAW,EAAIF,EAC3BK,EAAY,KAAK,IAAKF,EAAYF,EAAS,GAAG,EAC9CK,EAAY,KAAK,IAAKF,EAAYH,EAAS,GAAG,EAEpD,MAAO,CAAE,EAAGI,EAAW,EAAGC,CAAU,CACtC,CAEA,SAASC,EAAS,CAChB,OAAAnB,EAAS,SAAS,iBAAmB,SAAS,KAC9C,IAAAY,EACA,KAAAD,EACA,SAAAS,EAAW,CAAC,EACZ,OAAAC,EAAS3B,EAAQ,YACjB,SAAA4B,CACF,EAAmB,CACjB,IAAMC,EAAY,KAAK,IAAI,EACrB,CAAE,EAAGC,EAAO,EAAGC,CAAM,EAAIpB,EAAkBL,CAAM,EAEvD,GAAIwB,IAAUZ,GAAOa,IAAUd,EAAM,CAC/BW,GAAUA,EAAS,EACvB,MACF,CAEA,IAAMI,EAAiB,CAAE,EAAG,IAAK,EAAG,IAAK,GAAGN,CAAS,EAE/CO,EAAS,IAAM,CACnB,IAAMC,EAAc,KAAK,IAAI,EAEvBC,EAAQjC,EAAI,GAAIgC,EAAcL,GAAaG,EAAe,CAAC,EAC3DI,EAAQlC,EAAI,GAAIgC,EAAcL,GAAaG,EAAe,CAAC,EAC3DK,EAAaV,EAAOQ,CAAK,EACzBG,EAAaX,EAAOS,CAAK,EAGzBG,EAAU,KAAK,IAAIF,EAAYC,CAAU,EAE/ChC,EAAO,OAAO,CACZ,KAAMiC,GAAWtB,EAAOa,GAASA,EACjC,IAAKS,GAAWrB,EAAMa,GAASA,CACjC,CAAC,EAEGM,EAAa,GAAKC,EAAa,EACjC,sBAAsBL,CAAM,EACnBL,GACTA,EAAS,CAEb,EAEA,sBAAsBK,CAAM,CAC9B,CAEA,SAASO,EAAe,CACtB,OAAAhC,EACA,OAAAF,EAAS,SAAS,iBAAmB,SAAS,KAC9C,OAAAmC,EAAS,CAAC,EACV,MAAAtB,EAAQ,IACR,OAAAQ,EAAS3B,EAAQ,WACnB,EAAyB,CACvB,IAAIS,EAAWJ,EAAaC,CAAM,EAClC,GAAI,CAACG,EAAU,OACf,IAAIiC,EAAWnC,EAAaC,EAAQC,CAAQ,EAC5C,GAAI,CAACiC,EAAU,OAEf,IAAMC,EAAe,CAAE,EAAG,EAAG,EAAG,EAAG,GAAGF,CAAO,EACvCG,EAAW/B,EAAY6B,CAAQ,EAC/BG,EAAeD,EAAS,KAAOD,EAAa,EAC5CG,EAAcF,EAAS,IAAMD,EAAa,EAE1CI,EAAiB/B,EAAkB,CACvC,OAAQP,EACR,KAAMoC,EACN,IAAKC,EACL,MAAO3B,CACT,CAAC,EAEDM,EAAS,CACP,OAAQhB,EACR,KAAMoC,EACN,IAAKC,EACL,SAAUC,EACV,OAAQpB,CACV,CAAC,CACH,CAEA,MAAO,CACL,kBAAAhB,EACA,YAAAE,EACA,kBAAAG,EACA,SAAAS,EACA,eAAAe,CACF,CACF,CC/LA,OAAS,aAAAQ,EAAW,eAAAC,MAAmB,MAShC,SAASC,EAAsBC,EAAwC,CAC5E,IAAMC,EAAgB,CACpB,MAAO,OACP,OAAQ,OACR,aAAc,eACd,cAAe,eACf,GAAGD,CACL,EAEME,EAAoBC,GAAsB,CAC9C,IAAMC,EAAK,OAAO,OAAO,WAAa,GAAI,EAAE,QAAQ,CAAC,EAEjDH,EAAc,OAChB,SAAS,gBAAgB,MAAM,YAAYA,EAAc,MAAO,GAAGG,CAAE,IAAI,EAGvED,GAAWF,EAAc,cAC3B,SAAS,gBAAgB,MAAM,YAC7BA,EAAc,aACd,GAAGG,CAAE,IACP,CAEJ,EAEMC,EAAqBF,GAAsB,CAC/C,IAAMG,EAAK,OAAO,OAAO,YAAc,GAAI,EAAE,QAAQ,CAAC,EAElDL,EAAc,QAChB,SAAS,gBAAgB,MAAM,YAC7BA,EAAc,QAAU,OACxB,GAAGK,CAAE,IACP,EAGEH,GAAWF,EAAc,eAC3B,SAAS,gBAAgB,MAAM,YAC7BA,EAAc,eAAiB,eAC/B,GAAGK,CAAE,IACP,CAEJ,EAEMC,EAAgB,IAAM,CAC1BL,EAAiB,EACjBG,EAAkB,CACpB,EAEAR,EAAU,IAAM,CACdK,EAAiB,EAAI,EACrBG,EAAkB,EAAI,EAEtB,OAAO,iBAAiB,SAAUE,EAAe,CAAE,QAAS,EAAK,CAAC,CACpE,CAAC,EAEDT,EAAY,IAAM,CAChB,OAAO,iBAAiB,SAAUS,EAAe,CAAE,QAAS,EAAK,CAAC,CACpE,CAAC,CACH","names":["useEasings","t","useClipboard","unref","useGlyphToSvg","fontSize","fontWeight","fontFile","copy","mappedFontFile","mappedFontSize","mappedFontWeight","loadVariableFont","convertToSvg","glyph","scale","path","bbox","minX","minY","height","width","dims","centeredY","svg","renderSvg","codePoint","unrefElement","easings","useEasings","min","a","b","unwrapParent","parent","unwrapTarget","target","parentEl","useScrollTo","getScrollPosition","element","getDistance","rect","scrollEl","getScrollDuration","left","top","speed","currentPos","distanceX","distanceY","durationX","durationY","scrollTo","duration","easing","callback","startTime","fromX","fromY","mappedDuration","scroll","currentTime","timeX","timeY","easedTimeX","easedTimeY","minTime","scrollToTarget","offset","targetEl","mappedOffset","distance","leftDistance","topDistance","scrollDuration","onMounted","onUnmounted","useViewportDimensions","options","mappedOptions","setViewportWidth","initial","vw","setViewportHeight","vh","setDimensions"]}
@@ -0,0 +1,5 @@
1
+ module.exports = function(...args) {
2
+ return import('./module.mjs').then(m => m.default.call(this, ...args))
3
+ }
4
+ const _meta = module.exports.meta = require('./module.json')
5
+ module.exports.getMeta = () => Promise.resolve(_meta)
@@ -0,0 +1,11 @@
1
+ import * as _nuxt_schema from '@nuxt/schema';
2
+
3
+ interface ModuleOptions {
4
+ autoImportPlugins?: boolean;
5
+ autoImportComposables?: boolean;
6
+ plugins?: string[];
7
+ composables?: string[];
8
+ }
9
+ declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
10
+
11
+ export { ModuleOptions, _default as default };
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "@maas/vue-equipment",
3
+ "configKey": "vueEquipment",
4
+ "version": "0.1.3"
5
+ }
@@ -0,0 +1,123 @@
1
+ import { defineNuxtModule, createResolver, addPlugin, addImportsDir, addImportsSources } from '@nuxt/kit';
2
+
3
+ const packages = {
4
+ composables: {
5
+ name: "composables",
6
+ display: "Vue Equipment Composables",
7
+ description: "A magic collection of Vue composables",
8
+ dir: "packages/composables"
9
+ },
10
+ plugins: {
11
+ name: "plugins",
12
+ display: "Vue Equipment Plugins",
13
+ description: "A magic collection of Vue plugins",
14
+ dir: "packages/plugins"
15
+ }
16
+ };
17
+ const functions = [
18
+ {
19
+ name: "MagicModal",
20
+ "package": "plugins",
21
+ lastUpdated: 1689600576000,
22
+ docs: "https://maas.egineering/vue-equipment/plugins/MagicModal/",
23
+ description: "modal"
24
+ },
25
+ {
26
+ name: "MagicPlayer",
27
+ "package": "plugins",
28
+ lastUpdated: 1690289302000,
29
+ docs: "https://maas.egineering/vue-equipment/plugins/MagicPlayer/",
30
+ description: "player"
31
+ },
32
+ {
33
+ name: "MagicScroll",
34
+ "package": "plugins",
35
+ lastUpdated: 1689669455000,
36
+ docs: "https://maas.egineering/vue-equipment/plugins/MagicScroll/",
37
+ description: "scroll"
38
+ },
39
+ {
40
+ name: "useEasings",
41
+ "package": "composables",
42
+ lastUpdated: 1682351430000,
43
+ docs: "https://maas.egineering/vue-equipment/composables/useEasings/",
44
+ description: "easings as functions"
45
+ },
46
+ {
47
+ name: "useGlyphToSvg",
48
+ "package": "composables",
49
+ lastUpdated: 1690192429000,
50
+ docs: "https://maas.egineering/vue-equipment/composables/useGlyphToSvg/",
51
+ description: "render [fontkit](https://github.com/foliojs/fontkit) glyphs as SVG"
52
+ },
53
+ {
54
+ name: "useScrollTo",
55
+ "package": "composables",
56
+ lastUpdated: 1682404778000,
57
+ docs: "https://maas.egineering/vue-equipment/composables/useScrollTo/",
58
+ description: "scroll to element with a set speed"
59
+ },
60
+ {
61
+ name: "useViewportDimensions",
62
+ "package": "composables",
63
+ lastUpdated: 1690194481000,
64
+ docs: "https://maas.egineering/vue-equipment/composables/useViewportDimensions/",
65
+ description: "attach viewport dimensions as css variables to the document"
66
+ }
67
+ ];
68
+ const metadata = {
69
+ packages: packages,
70
+ functions: functions
71
+ };
72
+
73
+ const module = defineNuxtModule({
74
+ meta: {
75
+ name: "@maas/vue-equipment",
76
+ configKey: "vueEquipment"
77
+ },
78
+ defaults: {
79
+ autoImportPlugins: false,
80
+ autoImportComposables: false,
81
+ plugins: [],
82
+ composables: []
83
+ },
84
+ async setup(options, nuxt) {
85
+ let plugins;
86
+ let composables;
87
+ const resolver = createResolver(import.meta.url);
88
+ nuxt.options.build.transpile.push("@maas/vue-equipment");
89
+ nuxt.options.alias = nuxt.options.alias || {};
90
+ const packages = ["plugins", "composables"];
91
+ packages.forEach((pkg) => {
92
+ nuxt.options.alias[`@maas/vue-equipment/${pkg}`] = nuxt.options.alias[`@maas/vue-equipment/${pkg}`] || resolver.resolve(`../${pkg}`);
93
+ });
94
+ if (options.autoImportPlugins) {
95
+ plugins = metadata.functions.filter((fn) => fn.package === "plugins").map((fn) => fn.name);
96
+ } else {
97
+ plugins = options.plugins || [];
98
+ }
99
+ for (const plugin of plugins) {
100
+ const nuxtPlugin = await resolver.resolvePath(
101
+ `@maas/vue-equipment/plugins/${plugin}/nuxt`
102
+ );
103
+ const composablesDir = await resolver.resolvePath(
104
+ `@maas/vue-equipment/plugins/${plugin}/src/composables`
105
+ );
106
+ addPlugin(nuxtPlugin);
107
+ addImportsDir(composablesDir, {
108
+ prepend: true
109
+ });
110
+ }
111
+ if (options.autoImportComposables) {
112
+ composables = metadata.functions.filter((fn) => fn.package === "composables").map((fn) => fn.name);
113
+ } else {
114
+ composables = options.composables || [];
115
+ }
116
+ addImportsSources({
117
+ from: "@maas/vue-equipment/composables",
118
+ imports: composables
119
+ });
120
+ }
121
+ });
122
+
123
+ export { module as default };
@@ -0,0 +1,15 @@
1
+
2
+ import { ModuleOptions } from './module'
3
+
4
+ declare module '@nuxt/schema' {
5
+ interface NuxtConfig { ['vueEquipment']?: Partial<ModuleOptions> }
6
+ interface NuxtOptions { ['vueEquipment']?: ModuleOptions }
7
+ }
8
+
9
+ declare module 'nuxt/schema' {
10
+ interface NuxtConfig { ['vueEquipment']?: Partial<ModuleOptions> }
11
+ interface NuxtOptions { ['vueEquipment']?: ModuleOptions }
12
+ }
13
+
14
+
15
+ export { ModuleOptions, default } from './module'
@@ -0,0 +1,4 @@
1
+ import { useModalApi } from './src/composables/useModalApi.js';
2
+ import type { Plugin } from 'vue';
3
+ declare const MagicModal: Plugin;
4
+ export { MagicModal, useModalApi };
@@ -0,0 +1,8 @@
1
+ import MagicModalComponent from "./src/components/MagicModal.vue";
2
+ import { useModalApi } from "./src/composables/useModalApi.mjs";
3
+ const MagicModal = {
4
+ install: (app) => {
5
+ app.component("MagicModal", MagicModalComponent);
6
+ }
7
+ };
8
+ export { MagicModal, useModalApi };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("nuxt/app").Plugin<Record<string, unknown>>;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import { defineNuxtPlugin } from "nuxt/app";
2
+ import { MagicModal } from "./index.mjs";
3
+ export default defineNuxtPlugin((nuxtApp) => {
4
+ nuxtApp.vueApp.use(MagicModal);
5
+ });