@maas/vue-equipment 0.29.7 → 0.30.0
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.
- package/dist/nuxt/module.json +1 -1
- package/dist/nuxt/module.mjs +8 -1
- package/dist/plugins/MagicAutoSize/index.d.ts +4 -0
- package/dist/plugins/MagicAutoSize/index.mjs +7 -0
- package/dist/plugins/MagicAutoSize/nuxt.d.ts +2 -0
- package/dist/plugins/MagicAutoSize/nuxt.mjs +14 -0
- package/dist/plugins/MagicAutoSize/src/components/MagicAutoSize.vue +94 -0
- package/dist/plugins/MagicAutoSize/src/components/MagicAutoSize.vue.d.ts +40 -0
- package/dist/plugins/MagicCommand/src/components/MagicCommandBody.vue.d.ts +0 -1
- package/dist/plugins/MagicMenu/index.d.ts +2 -1
- package/dist/plugins/MagicMenu/index.mjs +2 -0
- package/dist/plugins/MagicMenu/nuxt.mjs +10 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +3 -2
- package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +16 -2
- package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +1 -3
- package/dist/plugins/MagicMenu/src/composables/useMagicMenu.d.ts +6 -0
- package/dist/plugins/MagicMenu/src/composables/useMagicMenu.mjs +8 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerControls.vue +1 -1
- package/dist/plugins/index.d.ts +1 -0
- package/dist/plugins/index.mjs +1 -0
- package/package.json +1 -1
package/dist/nuxt/module.json
CHANGED
package/dist/nuxt/module.mjs
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { defineNuxtModule, createResolver, extendViteConfig, installModule, addImportsSources } from '@nuxt/kit';
|
|
2
2
|
|
|
3
3
|
const functions$1 = [
|
|
4
|
+
{
|
|
5
|
+
name: "MagicAutoSize",
|
|
6
|
+
"package": "plugins",
|
|
7
|
+
lastUpdated: 0,
|
|
8
|
+
docs: "https://maas.egineering/vue-equipment/plugins/MagicAutoSize/",
|
|
9
|
+
description: "auto Size"
|
|
10
|
+
},
|
|
4
11
|
{
|
|
5
12
|
name: "MagicCommand",
|
|
6
13
|
"package": "plugins",
|
|
@@ -46,7 +53,7 @@ const functions$1 = [
|
|
|
46
53
|
{
|
|
47
54
|
name: "MagicMenu",
|
|
48
55
|
"package": "plugins",
|
|
49
|
-
lastUpdated:
|
|
56
|
+
lastUpdated: 1719315337000,
|
|
50
57
|
docs: "https://maas.egineering/vue-equipment/plugins/MagicMenu/",
|
|
51
58
|
description: "menu"
|
|
52
59
|
},
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineNuxtModule, createResolver, addComponent } from "@nuxt/kit";
|
|
2
|
+
export default defineNuxtModule({
|
|
3
|
+
meta: {
|
|
4
|
+
name: "@maas/vue-equipment/nuxt/MagicAutoSize"
|
|
5
|
+
},
|
|
6
|
+
setup() {
|
|
7
|
+
const resolver = createResolver(import.meta.url);
|
|
8
|
+
addComponent({
|
|
9
|
+
filePath: resolver.resolve("src/components/MagicAutoSize.vue"),
|
|
10
|
+
name: "MagicAutoSize",
|
|
11
|
+
global: true
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
});
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="magic-auto-size"
|
|
4
|
+
ref="elRef"
|
|
5
|
+
:style="{
|
|
6
|
+
'--magic-auto-size-width': mappedSize?.width,
|
|
7
|
+
'--magic-auto-size-height': mappedSize?.height,
|
|
8
|
+
}"
|
|
9
|
+
>
|
|
10
|
+
<slot />
|
|
11
|
+
</div>
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script lang="ts" setup>
|
|
15
|
+
import { ref, computed, onMounted } from 'vue'
|
|
16
|
+
import { useResizeObserver, useMutationObserver } from '@vueuse/core'
|
|
17
|
+
|
|
18
|
+
interface MagicAutoSizeProps {
|
|
19
|
+
width?: boolean
|
|
20
|
+
height?: boolean
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const props = withDefaults(defineProps<MagicAutoSizeProps>(), {
|
|
24
|
+
width: true,
|
|
25
|
+
height: true,
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
const elRef = ref<HTMLElement | undefined>(undefined)
|
|
29
|
+
|
|
30
|
+
const size = ref<{ width: number; height: number }>()
|
|
31
|
+
const content = ref<HTMLElement | undefined>(undefined)
|
|
32
|
+
|
|
33
|
+
const mappedSize = computed(() => {
|
|
34
|
+
if (size.value) {
|
|
35
|
+
switch (true) {
|
|
36
|
+
case props.width && props.height:
|
|
37
|
+
return {
|
|
38
|
+
width: `${size.value.width}px`,
|
|
39
|
+
height: `${size.value.height}px`,
|
|
40
|
+
}
|
|
41
|
+
case props.width:
|
|
42
|
+
return {
|
|
43
|
+
width: `${size.value.width}px`,
|
|
44
|
+
}
|
|
45
|
+
case props.height:
|
|
46
|
+
return {
|
|
47
|
+
height: `${size.value.height}px`,
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
return undefined
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
useMutationObserver(
|
|
56
|
+
elRef,
|
|
57
|
+
(mutations) => {
|
|
58
|
+
const addedNodes: HTMLElement[] = mutations
|
|
59
|
+
.flatMap((m) => [...m.addedNodes])
|
|
60
|
+
.filter((n) => n instanceof HTMLElement)
|
|
61
|
+
.map((n) => n as HTMLElement)
|
|
62
|
+
|
|
63
|
+
content.value = addedNodes[0]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
childList: true,
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
useResizeObserver(content, () => {
|
|
71
|
+
if (content.value) {
|
|
72
|
+
size.value = {
|
|
73
|
+
width: content.value.offsetWidth,
|
|
74
|
+
height: content.value.offsetHeight,
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
onMounted(() => {
|
|
80
|
+
if (elRef.value) {
|
|
81
|
+
const content = elRef.value.querySelector('*')
|
|
82
|
+
if (content instanceof HTMLElement) {
|
|
83
|
+
size.value = {
|
|
84
|
+
width: content.offsetWidth,
|
|
85
|
+
height: content.offsetHeight,
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
</script>
|
|
91
|
+
|
|
92
|
+
<style>
|
|
93
|
+
.magic-auto-size{--magic-auto-size-transition-function:ease;--magic-auto-size-transition-duration:100ms;height:var(--magic-auto-size-height);transition:all var(--magic-auto-size-transition-duration) var(--magic-auto-size-transition-function);width:var(--magic-auto-size-width)}
|
|
94
|
+
</style>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
interface MagicAutoSizeProps {
|
|
2
|
+
width?: boolean;
|
|
3
|
+
height?: boolean;
|
|
4
|
+
}
|
|
5
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<MagicAutoSizeProps>, {
|
|
6
|
+
width: boolean;
|
|
7
|
+
height: boolean;
|
|
8
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<MagicAutoSizeProps>, {
|
|
9
|
+
width: boolean;
|
|
10
|
+
height: boolean;
|
|
11
|
+
}>>>, {
|
|
12
|
+
width: boolean;
|
|
13
|
+
height: boolean;
|
|
14
|
+
}, {}>, {
|
|
15
|
+
default?(_: {}): any;
|
|
16
|
+
}>;
|
|
17
|
+
export default _default;
|
|
18
|
+
|
|
19
|
+
type __VLS_WithDefaults<P, D> = {
|
|
20
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
21
|
+
default: D[K];
|
|
22
|
+
}> : P[K];
|
|
23
|
+
};
|
|
24
|
+
type __VLS_Prettify<T> = {
|
|
25
|
+
[K in keyof T]: T[K];
|
|
26
|
+
} & {};
|
|
27
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
28
|
+
new (): {
|
|
29
|
+
$slots: S;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
33
|
+
type __VLS_TypePropsToOption<T> = {
|
|
34
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
35
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
36
|
+
} : {
|
|
37
|
+
type: import('vue').PropType<T[K]>;
|
|
38
|
+
required: true;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { useMagicMenu } from './src/composables/useMagicMenu.js';
|
|
1
2
|
import { MagicMenuInstanceId, MagicMenuItemActive, MagicMenuParentTree } from './src/symbols/index.js';
|
|
2
3
|
import type { Plugin } from 'vue';
|
|
3
4
|
declare const MagicMenuPlugin: Plugin;
|
|
4
|
-
export { MagicMenuPlugin, MagicMenuInstanceId, MagicMenuItemActive, MagicMenuParentTree, };
|
|
5
|
+
export { MagicMenuPlugin, useMagicMenu, MagicMenuInstanceId, MagicMenuItemActive, MagicMenuParentTree, };
|
|
@@ -4,6 +4,7 @@ import MagicMenuItem from "./src/components/MagicMenuItem.vue";
|
|
|
4
4
|
import MagicMenuProvider from "./src/components/MagicMenuProvider.vue";
|
|
5
5
|
import MagicMenuTrigger from "./src/components/MagicMenuTrigger.vue";
|
|
6
6
|
import MagicMenuView from "./src/components/MagicMenuView.vue";
|
|
7
|
+
import { useMagicMenu } from "./src/composables/useMagicMenu.mjs";
|
|
7
8
|
import {
|
|
8
9
|
MagicMenuInstanceId,
|
|
9
10
|
MagicMenuItemActive,
|
|
@@ -21,6 +22,7 @@ const MagicMenuPlugin = {
|
|
|
21
22
|
};
|
|
22
23
|
export {
|
|
23
24
|
MagicMenuPlugin,
|
|
25
|
+
useMagicMenu,
|
|
24
26
|
MagicMenuInstanceId,
|
|
25
27
|
MagicMenuItemActive,
|
|
26
28
|
MagicMenuParentTree
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
defineNuxtModule,
|
|
3
|
+
createResolver,
|
|
4
|
+
addComponentsDir,
|
|
5
|
+
addImports
|
|
6
|
+
} from "@nuxt/kit";
|
|
2
7
|
export default defineNuxtModule({
|
|
3
8
|
meta: {
|
|
4
9
|
name: "@maas/vue-equipment/nuxt/MagicMenu"
|
|
@@ -10,5 +15,9 @@ export default defineNuxtModule({
|
|
|
10
15
|
global: true,
|
|
11
16
|
pathPrefix: false
|
|
12
17
|
});
|
|
18
|
+
addImports({
|
|
19
|
+
from: "@maas/vue-equipment/plugins/MagicMenu",
|
|
20
|
+
name: "useMagicMenu"
|
|
21
|
+
});
|
|
13
22
|
}
|
|
14
23
|
});
|
|
@@ -65,11 +65,12 @@ defineOptions({
|
|
|
65
65
|
|
|
66
66
|
interface MagicMenuContentProps {
|
|
67
67
|
placement?: Placement
|
|
68
|
-
arrow?: boolean
|
|
68
|
+
arrow?: boolean | undefined
|
|
69
69
|
referenceEl?: MaybeRef<HTMLElement | ComponentPublicInstance>
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
defineProps<MagicMenuContentProps>()
|
|
72
|
+
withDefaults(defineProps<MagicMenuContentProps>(), { arrow: undefined })
|
|
73
|
+
|
|
73
74
|
const contentRef = ref<HTMLElement | undefined>(undefined)
|
|
74
75
|
|
|
75
76
|
const instanceId = inject(MagicMenuInstanceId, undefined)
|
|
@@ -4,14 +4,28 @@ import '@maas/vue-equipment/utils/css/animations/fade-in.css';
|
|
|
4
4
|
import '@maas/vue-equipment/utils/css/animations/fade-out.css';
|
|
5
5
|
interface MagicMenuContentProps {
|
|
6
6
|
placement?: Placement;
|
|
7
|
-
arrow?: boolean;
|
|
7
|
+
arrow?: boolean | undefined;
|
|
8
8
|
referenceEl?: MaybeRef<HTMLElement | ComponentPublicInstance>;
|
|
9
9
|
}
|
|
10
|
-
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<
|
|
10
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<MagicMenuContentProps>, {
|
|
11
|
+
arrow: undefined;
|
|
12
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<MagicMenuContentProps>, {
|
|
13
|
+
arrow: undefined;
|
|
14
|
+
}>>>, {
|
|
15
|
+
arrow: boolean;
|
|
16
|
+
}, {}>, {
|
|
11
17
|
arrow?(_: {}): any;
|
|
12
18
|
default?(_: {}): any;
|
|
13
19
|
}>;
|
|
14
20
|
export default _default;
|
|
21
|
+
type __VLS_WithDefaults<P, D> = {
|
|
22
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
23
|
+
default: D[K];
|
|
24
|
+
}> : P[K];
|
|
25
|
+
};
|
|
26
|
+
type __VLS_Prettify<T> = {
|
|
27
|
+
[K in keyof T]: T[K];
|
|
28
|
+
} & {};
|
|
15
29
|
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
16
30
|
new (): {
|
|
17
31
|
$slots: S;
|
|
@@ -41,9 +41,7 @@ export function useMenuView(instanceId) {
|
|
|
41
41
|
state.views = state.views?.filter((view) => view.id !== id);
|
|
42
42
|
}
|
|
43
43
|
function getView(id) {
|
|
44
|
-
return state.views?.find((view) =>
|
|
45
|
-
return view.id === id;
|
|
46
|
-
});
|
|
44
|
+
return state.views?.find((view) => view.id === id);
|
|
47
45
|
}
|
|
48
46
|
function getRelativeViewIndex(id) {
|
|
49
47
|
const view = getView(id);
|
|
@@ -146,5 +146,5 @@ const hidden = computed(() => {
|
|
|
146
146
|
</script>
|
|
147
147
|
|
|
148
148
|
<style>
|
|
149
|
-
:root{--magic-player-controls-height:3rem;--magic-player-controls-padding:0.75rem;--magic-player-controls-bottom:1.5rem;--magic-player-controls-left:1.5rem;--magic-player-controls-width:calc(100% - var(--magic-player-controls-left)*2);--magic-player-controls-gap:1rem;--magic-player-controls-border-radius:50rem;--magic-player-controls-background:rgba(32,32,32,.8);--magic-player-controls-backdrop-filter:blur(80px);--magic-player-controls-color:#fff;--magic-player-controls-button-width:3rem;--magic-player-controls-icon-width:1.25rem}@media (max-width:640px){:root{--magic-player-controls-height:2.5rem;--magic-player-controls-bottom:0.75rem;--magic-player-controls-padding:0.5rem}}.magic-player-controls{inset:0;pointer-events:none;position:absolute;width:100%}.magic-player-controls-enter-active{animation:fade-up-in .15s ease}.magic-player-controls-leave-active{animation:fade-up-out .15s ease}.magic-player-controls__bar{align-items:flex-start;bottom:var(--magic-player-controls-bottom);display:flex;flex-direction:column;gap:var(--magic-player-controls-gap);left:var(--magic-player-controls-left);margin:0 auto;pointer-events:auto;position:absolute;width:var(--magic-player-controls-width)}.magic-player-controls__bar--inner{align-items:center;-webkit-backdrop-filter:var(--magic-player-controls-backdrop-filter);backdrop-filter:var(--magic-player-controls-backdrop-filter);background-color:var(--magic-player-controls-background);border-radius:var(--magic-player-controls-border-radius);box-sizing:border-box;color:var(--magic-player-controls-color);display:flex;height:var(--magic-player-controls-height);padding:0 var(--magic-player-controls-padding);width:100%}.magic-player-controls__item{align-items:center;display:inline-flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.magic-player-controls__item.-shrink-0{flex-shrink:0}.magic-player-controls__item.-grow{flex-grow:1}.magic-player-controls__item button{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;border-radius:0;color:inherit;cursor:pointer;display:flex;height:var(--magic-player-controls-height);justify-content:center;outline:none;padding:0;width:var(--magic-player-controls-button-width)}.magic-player-controls__item button svg{display:block;height:auto;width:var(--magic-player-controls-icon-width)}.magic-player-controls__timeline{width:100%}.magic-player-controls.-standalone{inset:unset;position:relative;--magic-player-controls-width:100%;--magic-player-controls-bottom:0;--magic-player-controls-left:0;--magic-player-controls-padding:0;--magic-player-controls-background:unset;--magic-player-controls-border-radius:unset;--magic-player-controls-background:transparent;--magic-player-controls-backdrop-filter:none
|
|
149
|
+
:root{--magic-player-controls-height:3rem;--magic-player-controls-padding:0.75rem;--magic-player-controls-bottom:1.5rem;--magic-player-controls-left:1.5rem;--magic-player-controls-width:calc(100% - var(--magic-player-controls-left)*2);--magic-player-controls-gap:1rem;--magic-player-controls-border-radius:50rem;--magic-player-controls-background:rgba(32,32,32,.8);--magic-player-controls-backdrop-filter:blur(80px);--magic-player-controls-color:#fff;--magic-player-controls-button-width:3rem;--magic-player-controls-icon-width:1.25rem}@media (max-width:640px){:root{--magic-player-controls-height:2.5rem;--magic-player-controls-bottom:0.75rem;--magic-player-controls-padding:0.5rem}}.magic-player-controls{inset:0;pointer-events:none;position:absolute;width:100%}.magic-player-controls-enter-active{animation:fade-up-in .15s ease}.magic-player-controls-leave-active{animation:fade-up-out .15s ease}.magic-player-controls__bar{align-items:flex-start;bottom:var(--magic-player-controls-bottom);display:flex;flex-direction:column;gap:var(--magic-player-controls-gap);left:var(--magic-player-controls-left);margin:0 auto;pointer-events:auto;position:absolute;width:var(--magic-player-controls-width)}.magic-player-controls__bar--inner{align-items:center;-webkit-backdrop-filter:var(--magic-player-controls-backdrop-filter);backdrop-filter:var(--magic-player-controls-backdrop-filter);background-color:var(--magic-player-controls-background);border-radius:var(--magic-player-controls-border-radius);box-sizing:border-box;color:var(--magic-player-controls-color);display:flex;height:var(--magic-player-controls-height);padding:0 var(--magic-player-controls-padding);width:100%}.magic-player-controls__item{align-items:center;display:inline-flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.magic-player-controls__item.-shrink-0{flex-shrink:0}.magic-player-controls__item.-grow{flex-grow:1}.magic-player-controls__item button{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;border-radius:0;color:inherit;cursor:pointer;display:flex;height:var(--magic-player-controls-height);justify-content:center;outline:none;padding:0;width:var(--magic-player-controls-button-width)}.magic-player-controls__item button svg{display:block;height:auto;width:var(--magic-player-controls-icon-width)}.magic-player-controls__timeline{width:100%}.magic-player-controls.-standalone{inset:unset;position:relative;--magic-player-controls-width:100%;--magic-player-controls-bottom:0;--magic-player-controls-left:0;--magic-player-controls-padding:0;--magic-player-controls-background:unset;--magic-player-controls-border-radius:unset;--magic-player-controls-background:transparent;--magic-player-controls-backdrop-filter:none}.magic-player-controls.-standalone .magic-player-controls__bar{position:relative}
|
|
150
150
|
</style>
|
package/dist/plugins/index.d.ts
CHANGED
package/dist/plugins/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maas/vue-equipment",
|
|
3
3
|
"description": "A magic collection of Vue composables, plugins, components and directives",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.30.0",
|
|
5
5
|
"author": "Robin Scholz <https://github.com/robinscholz>, Christoph Jeworutzki <https://github.com/ChristophJeworutzki>",
|
|
6
6
|
"devDependencies": {
|
|
7
7
|
"@antfu/ni": "^0.21.12",
|