@maas/vue-equipment 0.30.0 → 0.30.2

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 (38) hide show
  1. package/dist/nuxt/module.json +1 -1
  2. package/dist/nuxt/module.mjs +2 -2
  3. package/dist/plugins/MagicAutoSize/src/components/MagicAutoSize.vue +13 -8
  4. package/dist/plugins/MagicMenu/index.mjs +4 -0
  5. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +69 -0
  6. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +21 -0
  7. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +61 -16
  8. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +0 -2
  9. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +2 -2
  10. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +1 -1
  11. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +1 -5
  12. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +84 -0
  13. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +29 -0
  14. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +25 -31
  15. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +26 -0
  16. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +2 -0
  17. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.d.ts +2 -1
  18. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +6 -1
  19. package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.d.ts +15 -0
  20. package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.mjs +70 -0
  21. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.d.ts +21 -0
  22. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.mjs +212 -0
  23. package/dist/plugins/MagicMenu/src/composables/private/useMenuItem.mjs +2 -2
  24. package/dist/plugins/MagicMenu/src/composables/private/useMenuKeyListener.mjs +4 -4
  25. package/dist/plugins/MagicMenu/src/composables/private/useMenuRemote.d.ts +13 -0
  26. package/dist/plugins/MagicMenu/src/composables/private/useMenuRemote.mjs +23 -0
  27. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.d.ts +1 -3
  28. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.mjs +2 -180
  29. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.d.ts +4 -3
  30. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +28 -15
  31. package/dist/plugins/MagicMenu/src/composables/useMagicMenu.d.ts +8 -1
  32. package/dist/plugins/MagicMenu/src/composables/useMagicMenu.mjs +10 -2
  33. package/dist/plugins/MagicMenu/src/symbols/index.d.ts +3 -1
  34. package/dist/plugins/MagicMenu/src/symbols/index.mjs +5 -1
  35. package/dist/plugins/MagicMenu/src/types/index.d.ts +9 -6
  36. package/dist/plugins/MagicMenu/src/utils/defaultOptions.mjs +3 -3
  37. package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue.d.ts +1 -1
  38. package/package.json +1 -1
@@ -1,4 +1,8 @@
1
- import { reactive, computed, toValue } from "vue";
1
+ import {
2
+ reactive,
3
+ computed,
4
+ toValue
5
+ } from "vue";
2
6
  import { useMenuState } from "./useMenuState.mjs";
3
7
  export function useMenuView(instanceId) {
4
8
  const { initializeState } = useMenuState(instanceId);
@@ -9,19 +13,17 @@ export function useMenuView(instanceId) {
9
13
  )
10
14
  );
11
15
  function createView(args) {
12
- const { id, parent } = args;
16
+ const { id, parent, placement } = args;
13
17
  if (parent.views.length === 0) {
14
18
  parent.views.push(toValue(instanceId));
15
19
  }
16
20
  const view = {
17
21
  id,
18
22
  parent,
19
- children: {
20
- trigger: void 0,
21
- content: void 0
22
- },
23
23
  active: false,
24
- items: []
24
+ items: [],
25
+ channels: [],
26
+ placement
25
27
  };
26
28
  return reactive(view);
27
29
  }
@@ -67,17 +69,23 @@ export function useMenuView(instanceId) {
67
69
  const parentId = view?.parent.views[view.parent.views.length - 1];
68
70
  return getView(parentId ?? "");
69
71
  }
70
- function getNonTreeViews(id) {
71
- const currentView2 = getView(id);
72
+ function getUnrelatedViews(id) {
73
+ const argView = getView(id);
72
74
  return state.views?.filter(
73
- (view) => !currentView2?.parent.views.includes(view.id) && view.id !== id
75
+ (view) => !view.parent.views.includes(id) && !argView?.parent.views.includes(view.id) && view.id !== id
76
+ );
77
+ }
78
+ function getDescendingViews(id) {
79
+ const argView = getView(id);
80
+ return state.views?.filter(
81
+ (view) => view.id !== id && !argView?.parent.views.includes(view.id)
74
82
  );
75
83
  }
76
84
  function selectView(id) {
77
85
  const instance = getView(id);
78
86
  if (instance) {
79
87
  instance.active = true;
80
- unselectNonTreeViews(id);
88
+ unselectUnrelatedViews(id);
81
89
  }
82
90
  }
83
91
  function unselectView(id) {
@@ -86,9 +94,13 @@ export function useMenuView(instanceId) {
86
94
  instance.active = false;
87
95
  }
88
96
  }
89
- function unselectNonTreeViews(id) {
90
- const nonTreeViews = getNonTreeViews(id);
91
- nonTreeViews.forEach((view) => view.active = false);
97
+ function unselectUnrelatedViews(id) {
98
+ const unrelatedViews = getUnrelatedViews(id);
99
+ unrelatedViews.forEach((view) => view.active = false);
100
+ }
101
+ function unselectDescendingViews(id) {
102
+ const descendingViews = getDescendingViews(id);
103
+ descendingViews.forEach((view) => view.active = false);
92
104
  }
93
105
  function unselectAllViews() {
94
106
  state.views?.forEach((view) => {
@@ -108,7 +120,8 @@ export function useMenuView(instanceId) {
108
120
  getParentView,
109
121
  selectView,
110
122
  unselectView,
111
- unselectNonTreeViews,
123
+ unselectUnrelatedViews,
124
+ unselectDescendingViews,
112
125
  unselectAllViews
113
126
  };
114
127
  }
@@ -1,6 +1,13 @@
1
1
  import { type MaybeRef } from 'vue';
2
- export declare function useMagicMenu(instanceId: MaybeRef<string>): {
2
+ interface UseMagicMenuArgs {
3
+ instanceId: MaybeRef<string>;
4
+ viewId: string;
5
+ }
6
+ export declare function useMagicMenu(args: UseMagicMenuArgs): {
3
7
  selectView: (id: string) => void;
4
8
  unselectView: (id: string) => void;
9
+ selectChannel: (id: string) => void;
10
+ unselectChannel: (id: string) => void;
5
11
  };
6
12
  export type UseMagicMenuReturn = ReturnType<typeof useMagicMenu>;
13
+ export {};
@@ -1,8 +1,16 @@
1
1
  import { useMenuView } from "./private/useMenuView.mjs";
2
- export function useMagicMenu(instanceId) {
2
+ import { useMenuChannel } from "./private/useMenuChannel.mjs";
3
+ export function useMagicMenu(args) {
4
+ const { instanceId, viewId } = args;
3
5
  const { selectView, unselectView } = useMenuView(instanceId);
6
+ const { selectChannel, unselectChannel } = useMenuChannel({
7
+ instanceId,
8
+ viewId
9
+ });
4
10
  return {
5
11
  selectView,
6
- unselectView
12
+ unselectView,
13
+ selectChannel,
14
+ unselectChannel
7
15
  };
8
16
  }
@@ -6,4 +6,6 @@ declare const MagicMenuViewActive: InjectionKey<boolean>;
6
6
  declare const MagicMenuContentId: InjectionKey<string>;
7
7
  declare const MagicMenuItemId: InjectionKey<string>;
8
8
  declare const MagicMenuItemActive: InjectionKey<boolean>;
9
- export { MagicMenuInstanceId, MagicMenuParentTree, MagicMenuViewId, MagicMenuViewActive, MagicMenuContentId, MagicMenuItemId, MagicMenuItemActive, };
9
+ declare const MagicMenuChannelId: InjectionKey<string>;
10
+ declare const MagicMenuChannelActive: InjectionKey<boolean>;
11
+ export { MagicMenuInstanceId, MagicMenuParentTree, MagicMenuViewId, MagicMenuViewActive, MagicMenuContentId, MagicMenuItemId, MagicMenuItemActive, MagicMenuChannelId, MagicMenuChannelActive, };
@@ -5,6 +5,8 @@ const MagicMenuViewActive = Symbol();
5
5
  const MagicMenuContentId = Symbol();
6
6
  const MagicMenuItemId = Symbol();
7
7
  const MagicMenuItemActive = Symbol();
8
+ const MagicMenuChannelId = Symbol();
9
+ const MagicMenuChannelActive = Symbol();
8
10
  export {
9
11
  MagicMenuInstanceId,
10
12
  MagicMenuParentTree,
@@ -12,5 +14,7 @@ export {
12
14
  MagicMenuViewActive,
13
15
  MagicMenuContentId,
14
16
  MagicMenuItemId,
15
- MagicMenuItemActive
17
+ MagicMenuItemActive,
18
+ MagicMenuChannelId,
19
+ MagicMenuChannelActive
16
20
  };
@@ -1,5 +1,6 @@
1
+ import type { Placement } from '@floating-ui/vue';
1
2
  import type { RequireAllNested } from '@maas/vue-equipment/utils';
2
- type MenuMode = 'dropdown' | 'menubar' | 'context';
3
+ type MenuMode = 'dropdown' | 'menubar' | 'context' | 'navigation';
3
4
  export interface MagicMenuOptions {
4
5
  mode?: MenuMode;
5
6
  transition?: {
@@ -8,7 +9,7 @@ export interface MagicMenuOptions {
8
9
  nested?: string;
9
10
  };
10
11
  }
11
- export type Interaction = 'click' | 'mouseenter' | 'mouseleave' | 'right-click';
12
+ export type Interaction = 'click' | 'mouseenter' | 'right-click';
12
13
  export type Coordinates = {
13
14
  x: number;
14
15
  y: number;
@@ -18,18 +19,20 @@ export interface MenuItem {
18
19
  active: boolean;
19
20
  disabled: boolean;
20
21
  }
22
+ export interface MenuChannel {
23
+ id: string;
24
+ active: boolean;
25
+ }
21
26
  export interface MenuView {
22
27
  id: string;
23
28
  active: boolean;
24
29
  items: MenuItem[];
30
+ channels: MenuChannel[];
25
31
  parent: {
26
32
  item: string;
27
33
  views: string[];
28
34
  };
29
- children: {
30
- trigger?: HTMLElement;
31
- content?: HTMLElement;
32
- };
35
+ placement: Placement;
33
36
  click?: Coordinates;
34
37
  }
35
38
  export interface MenuState {
@@ -1,9 +1,9 @@
1
1
  const defaultOptions = {
2
2
  mode: "menubar",
3
3
  transition: {
4
- initial: "magic-menu-content__initial",
5
- final: "magic-menu-content__final",
6
- nested: "magic-menu-content__nested"
4
+ initial: "magic-menu-content--initial",
5
+ final: "magic-menu-content--final",
6
+ nested: "magic-menu-content--nested"
7
7
  }
8
8
  };
9
9
  export { defaultOptions };
@@ -24,7 +24,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
24
24
  loop: boolean;
25
25
  srcType: MagicPlayerSourceType;
26
26
  autoplay: boolean;
27
- preload: "metadata" | "auto" | "none";
27
+ preload: "metadata" | "none" | "auto";
28
28
  }, {}>, {
29
29
  default?(_: {}): any;
30
30
  }>;
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.30.0",
4
+ "version": "0.30.2",
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",