mce 0.1.0 → 0.1.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 (77) hide show
  1. package/dist/components/ProgressIndicator.vue.d.ts +15 -0
  2. package/dist/components/Rulers.vue.d.ts +1 -6
  3. package/dist/components/Selector.vue.d.ts +6 -6
  4. package/dist/components/shared/Icon.vue.d.ts +24 -0
  5. package/dist/components/shared/Menu.vue.d.ts +1 -0
  6. package/dist/components/shared/Ruler.vue.d.ts +14 -4
  7. package/dist/components/shared/Transformable.vue.d.ts +2 -2
  8. package/dist/components/timeline/Playhead.vue.d.ts +3 -0
  9. package/dist/components/timeline/Segment.vue.d.ts +11 -0
  10. package/dist/components/timeline/Timeline.vue.d.ts +3 -0
  11. package/dist/components/timeline/Track.vue.d.ts +13 -0
  12. package/dist/components/timeline/Trackhead.vue.d.ts +7 -0
  13. package/dist/composables/icon.d.ts +105 -0
  14. package/dist/composables/icons.d.ts +22 -0
  15. package/dist/composables/index.d.ts +2 -0
  16. package/dist/editor.d.ts +21 -2
  17. package/dist/iconsets/mdi-svg.d.ts +25 -0
  18. package/dist/index.css +1 -1
  19. package/dist/index.d.ts +2 -0
  20. package/dist/index.js +4109 -3509
  21. package/dist/locale/en.d.ts +75 -0
  22. package/dist/mixins/0.command.d.ts +23 -0
  23. package/dist/{plugins → mixins}/0.config/base.d.ts +3 -1
  24. package/dist/{plugins → mixins}/0.config.d.ts +1 -1
  25. package/dist/{plugins → mixins}/0.context.d.ts +3 -2
  26. package/dist/{plugins → mixins}/0.element.d.ts +1 -1
  27. package/dist/{plugins → mixins}/0.font.d.ts +1 -1
  28. package/dist/mixins/0.locale.d.ts +22 -0
  29. package/dist/{plugins → mixins}/1.frame.d.ts +4 -4
  30. package/dist/{plugins → mixins}/1.hotkey.d.ts +7 -10
  31. package/dist/mixins/1.timeline.d.ts +18 -0
  32. package/dist/{plugins → mixins}/1.upload.d.ts +1 -1
  33. package/dist/{plugins → mixins}/2.box.d.ts +1 -1
  34. package/dist/mixins/2.export/json.d.ts +25 -0
  35. package/dist/mixins/2.export.d.ts +28 -0
  36. package/dist/{plugins/2.loader.d.ts → mixins/2.load.d.ts} +2 -2
  37. package/dist/mixins/2.loader/json.d.ts +2 -0
  38. package/dist/{plugins → mixins}/3.view.d.ts +1 -1
  39. package/dist/{plugins → mixins}/4.0.text.d.ts +1 -1
  40. package/dist/mixins/4.1.lock.d.ts +12 -0
  41. package/dist/{plugins → mixins}/4.2.element.d.ts +1 -8
  42. package/dist/{plugins → mixins}/4.3.frame.d.ts +3 -3
  43. package/dist/{plugins → mixins}/4.4.doc.d.ts +3 -3
  44. package/dist/{plugins → mixins}/snapshot.d.ts +1 -1
  45. package/dist/mixins.d.ts +1 -0
  46. package/dist/plugins/delete.d.ts +12 -0
  47. package/dist/plugins/flip.d.ts +2 -2
  48. package/dist/plugins/{2.exporter/video.d.ts → gif.d.ts} +4 -2
  49. package/dist/plugins/{insert/image.d.ts → image.d.ts} +6 -1
  50. package/dist/plugins/layerOrder.d.ts +19 -0
  51. package/dist/plugins/{4.1.lock.d.ts → lock.d.ts} +0 -6
  52. package/dist/plugins/menu.d.ts +2 -3
  53. package/dist/plugins/{theme.d.ts → mp4.d.ts} +2 -1
  54. package/dist/plugins/{2.exporter/pdf.d.ts → pdf.d.ts} +1 -1
  55. package/dist/plugins/{2.exporter/pptx.d.ts → pptx.d.ts} +1 -1
  56. package/dist/plugins/saveAs.d.ts +1 -4
  57. package/dist/plugins/{insert/text.d.ts → text.d.ts} +1 -1
  58. package/dist/plugins/url.d.ts +2 -0
  59. package/dist/plugins/view.d.ts +18 -0
  60. package/dist/plugins.d.ts +1 -0
  61. package/dist/typed-global.d.ts +3 -1
  62. package/dist/typed-plugins.d.ts +35 -35
  63. package/package.json +25 -48
  64. package/dist/plugins/0.command.d.ts +0 -27
  65. package/dist/plugins/0.i18n.d.ts +0 -13
  66. package/dist/plugins/2.exporter/0.json.d.ts +0 -10
  67. package/dist/plugins/2.exporter/image.d.ts +0 -11
  68. package/dist/plugins/2.exporter.d.ts +0 -27
  69. package/dist/plugins/2.loader/0.url.d.ts +0 -2
  70. package/dist/plugins/2.loader/image.d.ts +0 -2
  71. package/dist/plugins/2.loader/json.d.ts +0 -2
  72. package/dist/plugins/2.loader/pptx.d.ts +0 -2
  73. package/dist/plugins/2.loader/txt.d.ts +0 -2
  74. package/dist/plugins/arrange.d.ts +0 -19
  75. package/dist/preset-plugins.d.ts +0 -1
  76. /package/dist/components/{Starter.vue.d.ts → Setup.vue.d.ts} +0 -0
  77. /package/dist/plugins/{align.d.ts → layerPosition.d.ts} +0 -0
@@ -0,0 +1,15 @@
1
+ type __VLS_Props = {
2
+ label?: string;
3
+ indeterminate?: boolean;
4
+ };
5
+ type __VLS_ModelProps = {
6
+ modelValue?: number;
7
+ };
8
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
9
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ "update:modelValue": (value: number) => any;
11
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
12
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
13
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
@@ -1,8 +1,3 @@
1
- type __VLS_Props = {
2
- size?: number;
3
- };
4
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
5
- size: number;
6
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
2
  declare const _default: typeof __VLS_export;
8
3
  export default _default;
@@ -39,7 +39,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
39
39
  readonly handles?: ("move" | "rotate-top-left" | "rotate-top-right" | "rotate-bottom-left" | "rotate-bottom-right" | "resize-top" | "resize-right" | "resize-bottom" | "resize-left" | "resize-top-left" | "resize-top-right" | "resize-bottom-left" | "resize-bottom-right")[] | undefined;
40
40
  readonly initialSize?: boolean | undefined;
41
41
  readonly borderStyle?: "solid" | "dashed" | undefined;
42
- readonly getTipText?: ((type: "rotate" | "resize") => string) | undefined;
42
+ readonly tipFormat?: ((type: "size") => string) | undefined;
43
43
  readonly onMove?: ((args_0: OrientedBoundingBox, args_1: OrientedBoundingBox) => any) | undefined;
44
44
  readonly onEnd?: ((args_0: OrientedBoundingBox) => any) | undefined;
45
45
  readonly onStart?: ((args_0: OrientedBoundingBox) => any) | undefined;
@@ -75,7 +75,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
75
75
  handles?: ("move" | "rotate-top-left" | "rotate-top-right" | "rotate-bottom-left" | "rotate-bottom-right" | "resize-top" | "resize-right" | "resize-bottom" | "resize-left" | "resize-top-left" | "resize-top-right" | "resize-bottom-left" | "resize-bottom-right")[];
76
76
  initialSize?: boolean;
77
77
  borderStyle?: "solid" | "dashed";
78
- getTipText?: (type: "rotate" | "resize") => string;
78
+ tipFormat?: (type: "size") => string;
79
79
  }> & Readonly<{
80
80
  onMove?: ((args_0: OrientedBoundingBox, args_1: OrientedBoundingBox) => any) | undefined;
81
81
  onEnd?: ((args_0: OrientedBoundingBox) => any) | undefined;
@@ -93,8 +93,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
93
93
  }, string, {
94
94
  color: string;
95
95
  visibility: "visible" | "none" | "auto";
96
- resizeStrategy: "free" | "aspectRatio" | "diagonalAspectRatio";
97
96
  tag: string | any;
97
+ resizeStrategy: "free" | "aspectRatio" | "diagonalAspectRatio";
98
98
  moveable: boolean;
99
99
  rotatable: boolean;
100
100
  resizable: boolean;
@@ -125,8 +125,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
125
125
  } & Readonly<{
126
126
  color: string;
127
127
  visibility: "visible" | "none" | "auto";
128
- resizeStrategy: "free" | "aspectRatio" | "diagonalAspectRatio";
129
128
  tag: string | any;
129
+ resizeStrategy: "free" | "aspectRatio" | "diagonalAspectRatio";
130
130
  moveable: boolean;
131
131
  rotatable: boolean;
132
132
  resizable: boolean;
@@ -150,13 +150,13 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
150
150
  handles?: ("move" | "rotate-top-left" | "rotate-top-right" | "rotate-bottom-left" | "rotate-bottom-right" | "resize-top" | "resize-right" | "resize-bottom" | "resize-left" | "resize-top-left" | "resize-top-right" | "resize-bottom-left" | "resize-bottom-right")[];
151
151
  initialSize?: boolean;
152
152
  borderStyle?: "solid" | "dashed";
153
- getTipText?: (type: "rotate" | "resize") => string;
153
+ tipFormat?: (type: "size") => string;
154
154
  }> & Readonly<{
155
155
  onMove?: ((args_0: OrientedBoundingBox, args_1: OrientedBoundingBox) => any) | undefined;
156
156
  onEnd?: ((args_0: OrientedBoundingBox) => any) | undefined;
157
157
  onStart?: ((args_0: OrientedBoundingBox) => any) | undefined;
158
158
  "onUpdate:modelValue"?: ((args_0: OrientedBoundingBox) => any) | undefined;
159
- }>, "start" | "transforming" | "activeHandle" | ("color" | "visibility" | "resizeStrategy" | "tag" | "moveable" | "rotatable" | "resizable" | "threshold" | "handleStrategy" | "handleColor" | "handles")> & import("vue").ShallowUnwrapRef<{
159
+ }>, "start" | "transforming" | "activeHandle" | ("color" | "visibility" | "tag" | "resizeStrategy" | "moveable" | "rotatable" | "resizable" | "threshold" | "handleStrategy" | "handleColor" | "handles")> & import("vue").ShallowUnwrapRef<{
160
160
  start: (event?: MouseEvent, index?: number) => boolean;
161
161
  activeHandle: import("vue").Ref<("move" | "rotate-top-left" | "rotate-top-right" | "rotate-bottom-left" | "rotate-bottom-right" | "resize-top" | "resize-right" | "resize-bottom" | "resize-left" | "resize-top-left" | "resize-top-right" | "resize-bottom-left" | "resize-bottom-right") | undefined, ("move" | "rotate-top-left" | "rotate-top-right" | "rotate-bottom-left" | "rotate-bottom-right" | "resize-top" | "resize-right" | "resize-bottom" | "resize-left" | "resize-top-left" | "resize-top-right" | "resize-bottom-left" | "resize-bottom-right") | undefined>;
162
162
  transforming: import("vue").Ref<boolean, boolean>;
@@ -0,0 +1,24 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ icon: {
3
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
4
+ };
5
+ tag: {
6
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
7
+ default: string;
8
+ };
9
+ disabled: BooleanConstructor;
10
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
11
+ icon: {
12
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
13
+ };
14
+ tag: {
15
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
16
+ default: string;
17
+ };
18
+ disabled: BooleanConstructor;
19
+ }>> & Readonly<{}>, {
20
+ disabled: boolean;
21
+ tag: string | Function | Record<string, any>;
22
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
@@ -9,6 +9,7 @@ export interface MenuItem {
9
9
  key: string;
10
10
  handle?: (event: MouseEvent) => void;
11
11
  type?: 'divider';
12
+ checked?: boolean;
12
13
  disabled?: boolean;
13
14
  children?: MenuItem[];
14
15
  }
@@ -3,15 +3,25 @@ type __VLS_Props = {
3
3
  size?: number;
4
4
  vertical?: boolean;
5
5
  zoom?: number;
6
- offset?: number;
7
- aabb?: AxisAlignedBoundingBox;
6
+ position?: number;
7
+ unit?: number;
8
+ unitFractions?: number[];
9
+ selected?: AxisAlignedBoundingBox;
8
10
  pixelRatio?: number;
11
+ refline?: boolean;
12
+ axis?: boolean;
13
+ labelFormat?: (tick: number) => string;
9
14
  };
10
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
15
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
16
+ box: import("vue").Ref<AxisAlignedBoundingBox | undefined, AxisAlignedBoundingBox | undefined>;
17
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
18
  size: number;
19
+ position: number;
12
20
  pixelRatio: number;
13
21
  zoom: number;
14
- offset: number;
22
+ unit: number;
23
+ unitFractions: number[];
24
+ labelFormat: (tick: number) => string;
15
25
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
26
  declare const _default: typeof __VLS_export;
17
27
  export default _default;
@@ -16,7 +16,7 @@ type __VLS_Props = {
16
16
  handles?: Handle[];
17
17
  initialSize?: boolean;
18
18
  borderStyle?: 'solid' | 'dashed';
19
- getTipText?: (type: 'rotate' | 'resize') => string;
19
+ tipFormat?: (type: 'size') => string;
20
20
  };
21
21
  declare function start(event?: MouseEvent, index?: number): boolean;
22
22
  declare var __VLS_7: {
@@ -59,8 +59,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
59
59
  }>, {
60
60
  color: string;
61
61
  visibility: "visible" | "none" | "auto";
62
- resizeStrategy: "free" | "aspectRatio" | "diagonalAspectRatio";
63
62
  tag: string | any;
63
+ resizeStrategy: "free" | "aspectRatio" | "diagonalAspectRatio";
64
64
  moveable: boolean;
65
65
  rotatable: boolean;
66
66
  resizable: boolean;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { TimelineNode } from 'modern-canvas';
2
+ type __VLS_Props = {
3
+ node: TimelineNode;
4
+ msPerPx?: number;
5
+ active?: boolean;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
+ msPerPx: number;
9
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,13 @@
1
+ declare var __VLS_1: {};
2
+ type __VLS_Slots = {} & {
3
+ default?: (props: typeof __VLS_1) => any;
4
+ };
5
+ declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
9
+ type __VLS_WithSlots<T, S> = T & {
10
+ new (): {
11
+ $slots: S;
12
+ };
13
+ };
@@ -0,0 +1,7 @@
1
+ import type { Element2D } from 'modern-canvas';
2
+ type __VLS_Props = {
3
+ node: Element2D;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,105 @@
1
+ import type { Component, MaybeRefOrGetter } from 'vue';
2
+ export type IconValue = string | (string | [path: string, opacity: number])[] | Component;
3
+ export declare function makeIconProps(): {
4
+ icon: {
5
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
6
+ };
7
+ tag: {
8
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
9
+ default: string;
10
+ };
11
+ };
12
+ export declare const MceSvgIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
13
+ icon: {
14
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
15
+ };
16
+ tag: {
17
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
18
+ default: string;
19
+ };
20
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
21
+ [key: string]: any;
22
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
+ icon: {
24
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
25
+ };
26
+ tag: {
27
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
28
+ default: string;
29
+ };
30
+ }>> & Readonly<{}>, {
31
+ tag: string | Function | Record<string, any>;
32
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
33
+ export declare const MceComponentIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
34
+ icon: {
35
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
36
+ };
37
+ tag: {
38
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
39
+ default: string;
40
+ };
41
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
42
+ [key: string]: any;
43
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
44
+ icon: {
45
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
46
+ };
47
+ tag: {
48
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
49
+ default: string;
50
+ };
51
+ }>> & Readonly<{}>, {
52
+ tag: string | Function | Record<string, any>;
53
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
54
+ export declare function useIcon(props: MaybeRefOrGetter<IconValue | undefined>): {
55
+ iconData: import("vue").ComputedRef<{
56
+ component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
57
+ icon: {
58
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
59
+ };
60
+ tag: {
61
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
62
+ default: string;
63
+ };
64
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
65
+ [key: string]: any;
66
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
67
+ icon: {
68
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
69
+ };
70
+ tag: {
71
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
72
+ default: string;
73
+ };
74
+ }>> & Readonly<{}>, {
75
+ tag: string | Function | Record<string, any>;
76
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
77
+ icon?: undefined;
78
+ } | {
79
+ component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
80
+ icon: {
81
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
82
+ };
83
+ tag: {
84
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
85
+ default: string;
86
+ };
87
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
88
+ [key: string]: any;
89
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
90
+ icon: {
91
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
92
+ };
93
+ tag: {
94
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
95
+ default: string;
96
+ };
97
+ }>> & Readonly<{}>, {
98
+ tag: string | Function | Record<string, any>;
99
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
100
+ icon: any;
101
+ } | {
102
+ component: Component;
103
+ icon: string;
104
+ }>;
105
+ };
@@ -0,0 +1,22 @@
1
+ import type { Component, InjectionKey } from 'vue';
2
+ import type { IconValue } from './icon';
3
+ export interface IconAliases {
4
+ [name: string]: IconValue;
5
+ play: IconValue;
6
+ pause: IconValue;
7
+ gps: IconValue;
8
+ menuRight: IconValue;
9
+ mouseLeftClick: IconValue;
10
+ mouseRightClick: IconValue;
11
+ check: IconValue;
12
+ }
13
+ export interface IconSet {
14
+ component: Component;
15
+ }
16
+ export interface IconsOptions {
17
+ defaultSet: string;
18
+ aliases: Partial<IconAliases>;
19
+ sets: Record<string, IconSet>;
20
+ }
21
+ export declare const IconsSymbol: InjectionKey<IconsOptions>;
22
+ export declare function createIcons(options?: Partial<IconsOptions>): IconsOptions;
@@ -1,4 +1,6 @@
1
1
  export * from './editor';
2
+ export * from './icon';
3
+ export * from './icons';
2
4
  export * from './menu';
3
5
  export * from './overlay';
4
6
  export * from './strategy';
package/dist/editor.d.ts CHANGED
@@ -16,14 +16,33 @@ export declare class Editor extends Observable<Events> {
16
16
  debug: import("vue").Ref<boolean, boolean>;
17
17
  config: RemovableRef<Mce.Config>;
18
18
  onEmit?: <K extends keyof Events & string>(event: K, ...args: Events[K]) => void;
19
+ plugins: Map<string, PluginObject>;
20
+ protected _setups: (() => void)[];
19
21
  constructor(options?: Options);
20
22
  protected _setupObservable(): void;
21
23
  log: (...args: any[]) => void;
22
24
  emit: <K extends keyof Events & string>(event: K, ...args: Events[K]) => this;
23
25
  protected _setupOptions(options: Options): void;
24
- protected _setupPlugins(plugins: Plugin[], options: Options): void;
26
+ protected _useMixins(mixins: Mixin[], options: Options): void;
27
+ use(plugins: Plugin[], options: Options): void;
28
+ protected _setuped: boolean;
29
+ setup: () => void;
25
30
  install: (app: App) => void;
26
31
  }
27
32
  export declare function createEditor(options?: Options): Editor;
28
- export type Plugin = (editor: Editor, options: Options) => ((editor: Editor, options: Options) => void) | Plugin[] | Record<string, any> | undefined | void;
33
+ export interface PluginObject {
34
+ name: string;
35
+ ignore?: boolean | (() => boolean);
36
+ events?: {
37
+ [K in keyof Events]: (...args: Events[K]) => void;
38
+ };
39
+ commands?: Mce.Command[];
40
+ hotkeys?: Mce.Hotkey[];
41
+ loaders?: Mce.Loader[];
42
+ exporters?: Mce.Exporter[];
43
+ setup?: () => void;
44
+ }
45
+ export type Plugin = PluginObject | ((editor: Editor, options: Options) => PluginObject);
29
46
  export declare function definePlugin(cb: Plugin): Plugin;
47
+ export type Mixin = (editor: Editor, options: Options) => (() => void) | Mixin[] | Record<string, any> | undefined | void;
48
+ export declare function defineMixin(cb: Mixin): Mixin;
@@ -0,0 +1,25 @@
1
+ import type { IconAliases } from '../composables/icons';
2
+ export declare const aliases: IconAliases;
3
+ export declare const svg: {
4
+ component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
+ icon: {
6
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
7
+ };
8
+ tag: {
9
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
10
+ default: string;
11
+ };
12
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
13
+ [key: string]: any;
14
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
15
+ icon: {
16
+ type: (ObjectConstructor | ArrayConstructor | FunctionConstructor | StringConstructor)[];
17
+ };
18
+ tag: {
19
+ type: (ObjectConstructor | FunctionConstructor | StringConstructor)[];
20
+ default: string;
21
+ };
22
+ }>> & Readonly<{}>, {
23
+ tag: string | Function | Record<string, any>;
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
25
+ };
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .mce-auxiliary{position:absolute;overflow:hidden;inset:0}.mce-auxiliary__alignment{position:absolute;background-color:#ff4aff;height:1px;width:1px}.mce-auxiliary__area{position:absolute;display:flex;align-items:center;justify-content:center;background-color:#f424fd33}.mce-auxiliary__area:before{content:"";background:#1690ff;height:1px;width:100%}.mce-auxiliary__area:after{position:absolute;content:"";height:5px;width:100%;border-left:1px solid #1690ff;border-right:1px solid #1690ff}.mce-auxiliary__area--vertical:before{height:100%;width:1px}.mce-auxiliary__area--vertical:after{height:100%;width:5px;border-left:none;border-right:none;border-top:1px solid #1690ff;border-bottom:1px solid #1690ff}.mce-bottombar{position:absolute}.mce-overlay>*{pointer-events:auto}.mce-menu{-webkit-user-select:none;user-select:none}.mce-list{display:flex;flex-direction:column;background-color:rgba(var(--mce-theme-on-surface),1);color:rgba(var(--mce-theme-surface),1);box-shadow:var(--mce-shadow);padding:4px;border-radius:4px;gap:2px}.mce-list__divider{border-bottom:1px solid rgba(var(--mce-theme-surface),.12)}.mce-list-item{display:flex;width:100%;padding:4px 8px;border-radius:4px;cursor:pointer;align-items:center;gap:12px}.mce-list-item--opened,.mce-list-item:hover{background-color:rgba(var(--mce-theme-primary),1);color:rgba(var(--mce-theme-on-primary),1)}.mce-list-item--disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.4}.mce-list-item__title{flex:1;display:flex;align-items:center;font-size:12px;white-space:nowrap}.mce-list-item__append{width:12px;height:12px}.mce-list-item__append>svg{display:block;width:100%;height:100%}.mce-context-menu__title{flex:1}.mce-context-menu__kbd{margin-left:24px;opacity:.3}.mce-drawing{pointer-events:auto!important;position:fixed}.mce-drawing__content{margin:4px;border:1px solid rgba(0,0,0,.168627451);border-radius:4px;width:fit-content;height:22px;padding:0 4px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-color:rgba(var(--mce-theme-surface),1)}.mce-frame{position:absolute;border:1px solid rgba(0,0,0,.168627451)}.mce-frame__name{position:absolute;top:0;left:0;transform:translateY(-100%) translateY(-4px);transform-origin:left bottom;font-size:12px;line-height:1.5;white-space:nowrap;pointer-events:auto;-webkit-user-select:none;user-select:none}.mce-frame__name>div{position:relative;min-width:28px;box-sizing:content-box;color:rgba(var(--mce-theme-on-surface),.8)}.mce-frame__name>input{position:absolute;left:0;top:0;outline:none;width:100%;height:100%;border:1px solid rgba(0,0,0,.168627451);border-radius:4px;cursor:default}.mce-back-selected-aera{pointer-events:auto!important;position:absolute;left:50%;bottom:24px;padding:4px 8px;display:flex;align-items:center;gap:4px;color:rgba(var(--mce-theme-surface),1);background-color:rgba(var(--mce-theme-on-background),.3);transform:translate(-50%);border-radius:8px;font-size:14px;cursor:pointer}.mce-hover{position:absolute;border-style:solid;border-width:2px;color:rgba(var(--mce-theme-primary),1)}.mce-tooltip{background:rgb(var(--mce-theme-surface-variant));color:rgb(var(--mce-theme-on-surface-variant));border-radius:4px;font-size:.875rem;line-height:1.6;display:inline-block;padding:5px 16px;text-transform:initial;width:auto;opacity:1;transition-property:opacity,transform;overflow-wrap:break-word}.mce-ruler{position:absolute;left:0;top:0}.mce-ruler__canvas{display:block;pointer-events:auto;cursor:pointer;background-color:rgba(var(--mce-theme-surface),1);color:rgba(var(--mce-theme-on-background),.3)}.mce-ruler-refline{position:absolute;border-style:dashed;border-width:0;border-color:rgba(var(--mce-theme-primary),1);pointer-events:auto!important}.mce-ruler-refline--vertical{border-top-width:1px;cursor:ns-resize}.mce-ruler-refline--horizontal{border-left-width:1px;cursor:ew-resize}.mce-ruler-refline--temp{border-color:rgba(var(--mce-theme-primary),.3)}.mce-scrollbar{position:absolute;display:flex;pointer-events:auto!important}.mce-scrollbar--vertical{right:0;flex-direction:column}.mce-scrollbar--horizontal{bottom:0}.mce-scrollbar__track{flex:1}.mce-scrollbar__thumb{position:absolute;border-radius:calc(infinity * 1px);background-color:rgba(var(--mce-theme-on-background),.3)}.mce-scrollbar__thumb--active,.mce-scrollbar__thumb:hover{background-color:rgba(var(--mce-theme-on-background),.4)}.mce-transformable{left:0;top:0}.mce-transformable__svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}.mce-transformable__box{stroke:currentColor;stroke-width:1px}.mce-transformable__handle{stroke:currentColor;stroke-width:1px;pointer-events:none}.mce-transformable__handle-box{stroke-width:1px;fill:transparent;stroke:transparent}.mce-parent-element-box{position:absolute;pointer-events:none;border-width:1px;border-style:dashed;color:rgba(var(--mce-theme-primary),1);opacity:.5}.mce-select-range-box{position:absolute;border-width:1px;border-style:solid;color:rgba(var(--mce-theme-primary),1);background-color:rgba(var(--mce-theme-primary),.1)}.mce-current-box{position:absolute;color:rgba(var(--mce-theme-primary),1)}.mce-selected-element-box{position:absolute;border-width:1px;border-style:solid;color:rgba(var(--mce-theme-primary),1)}.mce-starter{pointer-events:auto;position:absolute;width:100%;height:100%;background-color:rgba(var(--mce-theme-surface),1);display:flex;align-items:center;justify-content:center}.mce-starter__container{display:flex;margin:auto;flex-direction:column;gap:8px}.mce-starter__btn{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;cursor:pointer}.mce-starter__btn:hover{background-color:rgba(var(--mce-theme-background),1)}.mce-starter__kbd{margin-left:4px;display:flex;gap:4px}.mce-starter__kbd kbd{display:flex;align-items:center;justify-content:center;border-radius:4px;width:1.2em;height:1.2em;border:1px solid rgba(var(--mce-theme-on-surface),1)}.mce-statusbar[data-v-93456dcb]{-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;gap:4px;font-size:12px;line-height:1;width:100%;height:24px;padding:0 8px;background-color:rgba(var(--mce-theme-surface),1);color:rgba(var(--mce-theme-on-surface),1);font-weight:700}.mce-statusbar__item[data-v-93456dcb]{display:flex;align-items:center;gap:4px}.mce-statusbar__item>svg[data-v-93456dcb]{width:1em;height:1em}.mce-statusbar__divider[data-v-93456dcb]{width:0;height:60%;border-right:1px solid rgba(var(--mce-theme-on-surface),.2);margin:0 8px}.mce-statusbar__kbd[data-v-93456dcb]{outline:1px solid rgba(var(--mce-theme-on-surface),.4);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;padding:0 2px;font-family:system-ui,-apple-system,sans-serif}.mce-text-editor{position:absolute;width:0;height:0;left:0;top:0;overflow:visible}.mce-text-editor__wrapper{position:absolute}.mce-text-editor__editor{pointer-events:auto!important;cursor:move}.mce-drawboard{--mce-theme-primary: 97, 101, 253;--mce-theme-on-primary: 247, 247, 248;--mce-theme-surface: 255, 255, 255;--mce-theme-on-surface: 56, 56, 56;--mce-theme-surface-variant: 35, 37, 41;--mce-theme-on-surface-variant: 255, 255, 255;--mce-theme-background: 240, 242, 245;--mce-theme-on-background: 56, 56, 56;--mce-shadow: 0 8px 32px 2px rgba(0, 0, 0, .08), 0 0 1px rgba(0, 0, 0, .2)}.mce-drawboard{position:relative;width:100%;height:100%;display:flex;flex-direction:column;background-color:rgba(var(--mce-theme-surface),1);color:rgba(var(--mce-theme-on-surface),1);overflow:hidden;-webkit-user-select:none;user-select:none}.mce-drawboard *{box-sizing:border-box}.mce-drawboard__overlay-container{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.mce-drawboard__main{position:relative;width:100%;flex:1;overflow:hidden}.mce-drawboard__main>*{pointer-events:none}.mce-drawboard__canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
1
+ .mce-auxiliary{position:absolute;overflow:hidden;inset:0}.mce-auxiliary__alignment{position:absolute;background-color:#ff4aff;height:1px;width:1px}.mce-auxiliary__area{position:absolute;display:flex;align-items:center;justify-content:center;background-color:#f424fd33}.mce-auxiliary__area:before{content:"";background:#1690ff;height:1px;width:100%}.mce-auxiliary__area:after{position:absolute;content:"";height:5px;width:100%;border-left:1px solid #1690ff;border-right:1px solid #1690ff}.mce-auxiliary__area--vertical:before{height:100%;width:1px}.mce-auxiliary__area--vertical:after{height:100%;width:5px;border-left:none;border-right:none;border-top:1px solid #1690ff;border-bottom:1px solid #1690ff}.mce-bottombar{position:absolute}.mce-icon{align-items:center;display:inline-flex;font-feature-settings:"liga";height:1em;justify-content:center;letter-spacing:normal;line-height:1;position:relative;opacity:var(--mce-icon-opacity, 1);text-indent:0;text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;width:1em;min-width:1em}.mce-icon__svg{fill:currentColor;width:100%;height:100%}.mce-overlay>*{pointer-events:auto}.mce-menu{-webkit-user-select:none;user-select:none}.mce-list{display:flex;flex-direction:column;background-color:rgb(var(--mce-theme-on-surface));color:rgb(var(--mce-theme-surface));box-shadow:var(--mce-shadow);padding:8px;border-radius:8px;gap:2px;max-height:inherit;overflow-y:auto}.mce-list__divider{border-bottom:1px solid rgba(var(--mce-theme-surface),.12)}.mce-list-item{display:flex;width:100%;padding:4px 8px;border-radius:4px;cursor:pointer;align-items:center;gap:12px}.mce-list-item--opened,.mce-list-item:hover{background-color:rgba(var(--mce-theme-primary),1);color:rgba(var(--mce-theme-on-primary),1)}.mce-list-item--disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.4}.mce-list-item__prepend{width:12px;height:12px;display:flex;align-items:center;justify-content:center}.mce-list-item__title{flex:1;display:flex;align-items:center;font-size:12px;white-space:nowrap}.mce-list-item__append{width:12px;height:12px;display:flex;align-items:center;justify-content:center;font-size:22px}.mce-context-menu__title{flex:1}.mce-context-menu__kbd{letter-spacing:.08em;margin-left:24px;opacity:.3}.mce-drawing{pointer-events:auto!important;position:fixed}.mce-drawing__content{margin:4px;border:1px solid rgba(0,0,0,.168627451);border-radius:4px;width:fit-content;height:22px;padding:0 4px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-color:rgba(var(--mce-theme-surface),1)}.mce-frame{position:absolute}.mce-frame--outline{outline:1px solid rgba(0,0,0,.168627451)}.mce-frame__name{position:absolute;top:0;left:0;transform:translateY(-100%) translateY(-4px);transform-origin:left bottom;font-size:12px;line-height:1.5;white-space:nowrap;pointer-events:auto;-webkit-user-select:none;user-select:none}.mce-frame__name>div{position:relative;min-width:28px;box-sizing:content-box;color:rgba(var(--mce-theme-on-surface),.8)}.mce-frame__name>input{position:absolute;left:0;top:0;outline:none;width:100%;height:100%;border:1px solid rgba(0,0,0,.168627451);border-radius:4px;cursor:default}.mce-back-selected-aera{pointer-events:auto!important;position:absolute;left:50%;bottom:24px;padding:4px 8px;display:flex;align-items:center;gap:4px;color:rgba(var(--mce-theme-surface),1);background-color:rgba(var(--mce-theme-on-background),var(--mce-medium-emphasis-opacity));transform:translate(-50%);-webkit-backdrop-filter:blur(var(--mce-blur));backdrop-filter:blur(var(--mce-blur));border-radius:8px;font-size:14px;cursor:pointer}.mce-hover{position:absolute;border-style:solid;border-width:2px;color:rgba(var(--mce-theme-primary),1)}.mce-tooltip{background:rgb(var(--mce-theme-surface-variant));color:rgb(var(--mce-theme-on-surface-variant));border-radius:4px;font-size:.875rem;line-height:1.6;display:inline-block;padding:5px 16px;text-transform:initial;width:auto;opacity:1;transition-property:opacity,transform;overflow-wrap:break-word}.mce-ruler{position:absolute;left:0;top:0;width:100%;height:100%;--text-color: rgba(var(--mce-theme-on-background), var(--mce-low-emphasis-opacity));--border-color: rgba(var(--mce-border-color), var(--mce-border-opacity))}.mce-ruler--vertical{width:var(--size)}.mce-ruler--horizontal{height:var(--size)}.mce-ruler__canvas{display:block;pointer-events:auto;cursor:pointer;background-color:rgb(var(--mce-theme-surface));-webkit-backdrop-filter:blur(var(--mce-blur));backdrop-filter:blur(var(--mce-blur))}.mce-ruler-refline{position:absolute;border-style:dashed;border-width:0;border-color:rgb(var(--mce-theme-primary));pointer-events:auto!important}.mce-ruler-refline--vertical{border-top-width:1px;cursor:ns-resize}.mce-ruler-refline--horizontal{border-left-width:1px;cursor:ew-resize}.mce-ruler-refline--temp{border-color:rgba(var(--mce-theme-primary),var(--mce-low-emphasis-opacity));pointer-events:none!important}.mce-rulers{position:absolute;inset:0;pointer-events:none}.mce-rulers__left-top{position:absolute;left:0;top:0;width:16px;height:16px;border:1px solid rgba(var(--mce-border-color),var(--mce-border-opacity));border-top-width:0;border-left-width:0;background-color:rgb(var(--mce-theme-surface))}.mce-scrollbar{position:absolute;display:flex;pointer-events:auto!important}.mce-scrollbar--vertical{right:0;flex-direction:column}.mce-scrollbar--horizontal{bottom:0}.mce-scrollbar__track{flex:1}.mce-scrollbar__thumb{position:absolute;border-radius:calc(infinity * 1px);background-color:rgba(var(--mce-theme-on-background),var(--mce-low-emphasis-opacity));-webkit-backdrop-filter:blur(var(--mce-blur));backdrop-filter:blur(var(--mce-blur))}.mce-scrollbar__thumb--active,.mce-scrollbar__thumb:hover{background-color:rgba(var(--mce-theme-on-background),var(--mce-medium-emphasis-opacity))}.mce-transformable{left:0;top:0;color:rgb(var(--mce-theme-primary))}.mce-transformable__svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}.mce-transformable__box{stroke:currentColor;stroke-width:1px}.mce-transformable__handle{stroke:currentColor;stroke-width:1px;pointer-events:none}.mce-transformable__handle-box{stroke-width:1px;fill:transparent;stroke:transparent}.mce-transformable__tip{position:absolute;bottom:0;left:50%;transform:translate(-50%,calc(100% + 8px));background-color:rgb(var(--mce-theme-primary));color:rgb(var(--mce-theme-on-primary));font-size:12px;padding:2px 4px;border-radius:3px;text-wrap:nowrap}.mce-parent-element-obb{position:absolute;pointer-events:none;border-width:1px;border-style:dashed;color:rgba(var(--mce-theme-primary),1);opacity:.5}.mce-selected-area{position:absolute;border-width:1px;border-style:solid;color:rgba(var(--mce-theme-primary),1);background-color:rgba(var(--mce-theme-primary),.1)}.mce-selection-obb{position:absolute;color:rgba(var(--mce-theme-primary),1)}.mce-element-obb{position:absolute;border-width:1px;border-style:solid;color:rgba(var(--mce-theme-primary),1)}.progress-indicator[data-v-49cebb96]{display:flex;align-items:center;gap:12px}.progress-indicator__status[data-v-49cebb96]{font-size:12px;color:rgb(var(--mce-theme-on-surface))}.progress-indicator__bar[data-v-49cebb96]{position:relative;width:100px;height:6px;background-color:rgb(var(--mce-theme-background));border-radius:4px;overflow:hidden}.progress-indicator__bar-fill[data-v-49cebb96]{position:absolute;top:0;left:0;height:100%;background-color:rgb(var(--mce-theme-primary));transition:width .3s ease}.progress-indicator__bar-indeterminate[data-v-49cebb96]{position:absolute;top:0;left:-30%;width:30%;height:100%;background-color:#3b82f6;animation:indeterminate-slide-49cebb96 1.5s linear infinite}@keyframes indeterminate-slide-49cebb96{0%{left:-30%}to{left:100%}}.mce-statusbar[data-v-b59bbabb]{-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;gap:4px;font-size:12px;line-height:1;width:100%;height:24px;padding:0 8px;background-color:rgba(var(--mce-theme-surface),1);color:rgba(var(--mce-theme-on-surface),1);font-weight:700}.mce-statusbar__main[data-v-b59bbabb]{flex:1;display:flex;align-items:center}.mce-statusbar__item[data-v-b59bbabb]{display:flex;align-items:center;gap:4px}.mce-statusbar__item>svg[data-v-b59bbabb]{width:1em;height:1em}.mce-statusbar__divider[data-v-b59bbabb]{width:0;height:60%;border-right:1px solid rgba(var(--mce-theme-on-surface),.2);margin:0 8px}.mce-statusbar__kbd[data-v-b59bbabb]{outline:1px solid rgba(var(--mce-theme-on-surface),.4);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;padding:0 2px;font-family:system-ui,-apple-system,sans-serif}.mce-text-editor{position:absolute;width:0;height:0;left:0;top:0;overflow:visible}.mce-text-editor__wrapper{position:absolute}.mce-text-editor__editor{pointer-events:auto!important;cursor:move}.mce-payhead{bottom:0;left:-5px;position:absolute;top:0;width:10px;color:rgb(var(--mce-theme-on-surface));cursor:col-resize}.mce-payhead__header{position:relative;background-color:transparent;border:2px solid currentColor;border-bottom:none;height:12px;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;width:10px}.mce-payhead__header:after{box-sizing:content-box;content:"";background-color:transparent;border-bottom:2px solid currentColor;border-right:2px solid currentColor;bottom:0;display:block;height:5px;position:absolute;right:0;transform:rotate(45deg) translate(2.8px,2px);width:5px}.mce-payhead__main{background-color:currentColor;bottom:0;left:4px;position:absolute;top:16px;transform:translate(.5px);width:1px}.mce-segment{display:flex;font-size:12px;align-items:center;position:absolute;top:2px;height:calc(100% - 4px);-webkit-user-select:none;user-select:none;flex-wrap:nowrap;color:#fff;border-radius:2px;background-color:#cc9641}.mce-segment--active{outline:1px solid rgb(var(--mce-theme-on-surface))}.mce-segment__animation{position:absolute;bottom:2px}.mce-segment__animation--in{width:0;left:4px;background-color:#fff;height:2px}.mce-segment__animation--in:after{border-color:transparent transparent transparent white;border-style:solid;border-width:5px 0 0 6px;bottom:0;content:"";display:block;height:0;left:100%;position:absolute;width:0}.mce-segment__animation--out{width:0;right:4px;background-color:#fff;height:2px}.mce-segment__animation--out:before{border-color:transparent white transparent transparent;border-style:solid;border-width:5px 6px 0 0;bottom:0;content:"";display:block;height:0;position:absolute;right:100%;width:0}.mce-segment__animation--stay{left:0;background-color:#fff;height:2px}.mce-segment__animation--stay:before{border-color:transparent white transparent transparent;border-style:solid;border-width:5px 6px 0 0;bottom:0;content:"";display:block;height:0;position:absolute;right:100%;width:0}.mce-segment__animation--stay:after{border-color:transparent transparent transparent white;border-style:solid;border-width:5px 0 0 6px;bottom:0;content:"";display:block;height:0;left:100%;position:absolute;width:0}.mce-segment__edge{align-items:center;background-color:rgb(var(--mce-theme-on-surface));bottom:0;content:"";display:flex;justify-content:center;pointer-events:auto;position:absolute;top:0;width:4px;cursor:col-resize}.mce-segment__edge:before{background-color:rgb(var(--mce-theme-surface));content:"";display:block;height:10px;width:2px}.mce-segment__edge--front{border-bottom-left-radius:2px;border-top-left-radius:2px;left:0}.mce-segment__edge--end{border-bottom-right-radius:2px;border-top-right-radius:2px;right:0}.mce-segment__node{border-radius:2px;padding:2px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mce-track{position:relative;display:flex;height:22px;background-color:rgb(var(--mce-theme-background))}.mce-trackhead{display:flex;height:22px;min-height:22px;align-items:center;color:rgba(var(--mce-theme-on-surface),.6);font-size:12px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mce-timeline{position:relative;height:160px;color:rgb(var(--mce-theme-on-surface));background-color:rgb(var(--mce-theme-surface));display:flex;flex-direction:column;width:100%;border-top:1px solid rgba(var(--mce-border-color),var(--mce-border-opacity));border-bottom:1px solid rgba(var(--mce-border-color),var(--mce-border-opacity))}.mce-timeline__toolbar{display:flex;align-items:center;height:24px;border-bottom:1px solid rgba(var(--mce-border-color),var(--mce-border-opacity))}.mce-timeline__play{position:absolute;left:50%;transform:translate(-50%);cursor:pointer}.mce-timeline__main{position:relative;display:flex;min-height:0;flex:1}.mce-timeline__left{display:flex;flex-direction:column-reverse;align-items:center;width:120px;height:max-content;min-height:100%;padding-top:24px;overflow:hidden}.mce-timeline__left-wrapper{position:relative;height:100%;width:100%;padding:0 0 0 4px}.mce-timeline__right{position:relative;display:flex;min-width:0;flex:1;overflow:hidden;flex-direction:column;border-left:1px solid rgba(var(--mce-border-color),var(--mce-border-opacity));padding-left:48px}.mce-timeline__right-wrapper{position:relative;height:100%;width:100%}.mce-timeline__ruler{position:relative;width:100%;height:24px;min-height:24px}.mce-timeline__track{position:relative;display:flex;flex-direction:column-reverse;justify-content:start;gap:8px;flex:1;height:max-content;min-height:100%;overflow:hidden}.mce-drawboard{--mce-theme-primary: 97, 101, 253;--mce-theme-on-primary: 247, 247, 248;--mce-theme-surface: 255, 255, 255;--mce-theme-on-surface: 56, 56, 56;--mce-theme-surface-variant: 35, 37, 41;--mce-theme-on-surface-variant: 255, 255, 255;--mce-theme-background: 240, 242, 245;--mce-theme-on-background: 56, 56, 56;--mce-border-color: 0, 0, 0;--mce-border-opacity: .08;--mce-high-emphasis-opacity: 1;--mce-medium-emphasis-opacity: .5;--mce-low-emphasis-opacity: .3;--mce-shadow: 0 8px 32px 2px rgba(0, 0, 0, .08), 0 0 1px rgba(0, 0, 0, .2);--mce-blur: 8px}.mce-drawboard{position:relative;width:100%;height:100%;display:flex;flex-direction:column;background-color:rgb(var(--mce-theme-surface));color:rgb(var(--mce-theme-on-surface));overflow:hidden;-webkit-user-select:none;user-select:none;cursor:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4Ij48aW1hZ2UgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQ0FZQUFBQ3FhWEhlQUFBR0JVbEVRVlI0QWV5WXowOGtSUlRIZXhhRlVTRUVRamlRRUFnbitBK01ISmlERi84SkU0OWNTRkQ1RlRETUhFQVE5S3pSZytGSE5pSGVKRkZqQW5PQnJLekdZRlRRRzRSQUVHRloxdDBaRk1YdnAzZHIwcGxNTTkzTDdzeDAwNlJlcXZyVnE2cjMvYjczdW91NVpkM3d2NGlBRzU0QWxsc0d4RVFNYzA1QmgyZ3FQQTJBVGpRQVJGY2w1WXVTYWttTmhCNTVRV1Btc05NdytBMndCZ1dnZUFaNHpkblpXZkx5OGpLVHpXYS9QVGs1U1oyZW5xWmsrSkxFRUFJWjJMTk82bUEyQUJqUEFRS282dVBqNC9HNnVycGhKbXBxYXJvYkdob0c2K3ZyaDBUSS9hT2pJNGg0UlhPR0RBZ2pLOWlMUFRRVm5JYlRlSXZqakNFZzN0allPSUF5bFVwWnNWak1vdWNaYVdwcWVsZEVIR2N5bWE5RlZFcTZseVdRRWNnU0FiVDh0eHRSSkpweHBmOWROT2wwbXM1S0pwTTVJZ3daOFhqOE5ZZ1NHZmNPRHcrVGxJbU1JU091M3BEQi9wQXJWV1UySE1Rem5FUWdvZnJpNHNMV0p4SUo1bklDRVVnczlqZ3JEQm5OemMzdlVDWWk0MVFsa3RTQ3dKU0lEVlFPMHlBQXViVzB0UFE1aXA2ZUhycUNBaEZJTFBhWURHTVV0Qkp4RW5CcFFQVDI5djU0Y0hEd014bUFHTDFiN3lUQ1pJV1BFbkhidGlSNlF3RGdrZjkwNnIrU2kxZ3N4ck0xUGo2dVIyOE5JaEN0dFYrY2hvd0NKVkxvWGVIdGtHZHM1U1FBOEJmYS94L0orY0xDd3J4Nnkwc0dZSmN2RUlFWU1zejhreEk1MFZma202MnRyZGVsNTRYSnU4ZjRJbFhwbXZOUUNDRDZmK3Y0ODRHQmdZMzkvZjFmTkg1cUVsaUxPSWt3V1VHSmRIWjJmcm01dVZsV0V2SUp5R1dBSE0vT3pjMHRxdmRWQnRpN0NVUWd6cXpvNk9nWWtUMmZUajdCdklUMStQeGEvczVPQXFoNU1zQXVBUmxtUjBaRzdQc0FaWUJJOTh4YU9wMjI5NnF0clgxVkE2N1hYTUx3cDZRa2NLRE96elhLZ0N5Z0RMTFNadmthcUw5MkdaZzlJSEoxZGRWQzBHMXZiMytpbnVpWDVUMlFUNEF6Q3lBZ016OC92eUFIcmF2dUJNd1hFc0FpZ0hVS091eDFhZHJzNnVyNlZPT1NSbDNuNVpvYkFTWUx6b2VHaHU3eU1zUnBKTGZTWllDTkV5eGpkQWhMZG5kM2Z4c2RIWDEvWW1MaVBYMGUrNldqNUNnOXNvOEFTRlc2bGs4QUorT0lJY0RPQXIyMGJNZUszUW1TeWFTZDJvQkYyR3huWitmM3djSEJENGVIaHovUVBtKzJ0YldOVDA1TzNoa2JHMXZYL0FOSlJuSXVLUXNKaFFnQUxNNUFBbzVsRnhjWDUrU2c1L2ZBOHZMeVYvcU1maVRBYjdXM3Q2ZG1abWJ1VEU5UHIybVBJNGNjYTN3cStVdkNPV1FDNU91eGRLMFFBWnlPSXhDQVU5d0o3REpnSXBGSTBCVVVreUZyYTJzL3pjN09ic2pvUkFMb1EvVk9RY2ZjZmVrZlNpQUEwaUZmajZWcnhRZ3dYNE9Nbnp2QjFOU1VFL3dmZ29NQStrK05UZVRQTkFZOFpRYlJGVVVBa2NBaEhDTTZSZThFMUw4QVdTc3JLMStvcDdidnFTZktBS1luM1lrNGM2UzlxWDB5amJNNFUwdEsyOXd5QUM5TUdaZ3M4SFFuaU1mamtBWkloQ2pUQTVob0E1cUlReXAyQU9jY3ppdUxYRVVBRWNGQkhNWHBLKzhFcHY0M05qYStGNUpIRWdEVEF4ckFFTWxlN01uZWlNeksyN3dRUUlyaXZLYzdRWDkvUDlkbkFDT3NZejFScmdqQStYUmZSUUMyT0E0QWdOaFpvRStiRGNSRUhDTlQvK3ZyNjdmMWpDMlJaaDNyRWFrcnN4VWpBTENrTEdDSTZKVjNncXFxS213TkFZd3JHandoS1VZQU5vQ0FBS0thMVFVbjl6c0JrZWRlWUxKQjlmK0RGb1NXQUlCUkJvL01yMFVBNTY0djBCYnAzOWZYOTUzR1pBcUVrUUZra0ZUbGE4Vk85cElCZ0FDTW5RSGE4S0grUVJMZTlkdDdlM3UvNnRuaVgrYnU3dTdQTk9hdER3SFlzb2Jza2JweW14Y0M4QjRnZ0FJY0lCOEk4TWV0cmExdjY2WDRSa3RMUzUrTStPYno2U05Mc0dXTjFKWGR2Qkpnc2dBQ0FNbU5qcHNlVjF1RW14NDY1ckNoQkVKSkFKSGxZc1B0RGdLNDVpS015UUN5ZzNjRjZROXBsUjErZWVjMUEyUnFFVkVpQzBDQVFnS2dpVHc5MFNmOXNjR1dOUlV2ZmdnQURNQUFDQWxrQXFBaGc3RkovY0JFSDBCK0NXQ05JWUZ5Z0FpQTAwTk1vTUFENW1rSVlCMUNqZWNMK2tESmRRZ0lGRkEzWnlNQzNKaTVLZm9vQTI1S3BOMXdSaG5neHN4TjBZY3VBL3dHTGlMQUwyTmhzNDh5SUd3UjlZc255Z0MvaklYTlBzcUFzRVhVTDU0b0Evd3lGamI3S0FQQ0ZsRy9lS0lNOE10WTJPeWpEQWg2Uksvci8vOEFBQUQvLzltR1FIRUFBQUFHU1VSQlZBTUFFTFdobi9KQ0EzY0FBQUFBU1VWT1JLNUNZSUk9IiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiLz48L3N2Zz4=) 4 4,auto}.mce-drawboard *{box-sizing:border-box}.mce-drawboard__overlay-container{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.mce-drawboard__main{position:relative;width:100%;flex:1;overflow:hidden}.mce-drawboard__main>*{pointer-events:none}.mce-drawboard__canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,9 @@ export { default as Drawboard } from './components/Drawboard.vue';
4
4
  export { default as Transformable } from './components/shared/Transformable.vue';
5
5
  export * from './composables';
6
6
  export * from './editor';
7
+ export * from './mixins';
7
8
  export * from './models';
9
+ export * from './plugins';
8
10
  export * from './sw';
9
11
  export * from './types';
10
12
  export * from './utils';