mce 0.18.3 → 0.18.5

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.
@@ -10,38 +10,16 @@ type __VLS_Slots = Slots & {
10
10
  declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
11
11
  editor: typeof Editor;
12
12
  resizeStrategy: import("vue").PropType<import("../composables").ResizeStrategy>;
13
- activeStrategy: {
14
- type: import("vue").PropType<import("../composables").ActiveStrategy>;
15
- default: import("../composables").ActiveStrategy;
16
- };
17
- doubleclickStrategy: {
18
- type: import("vue").PropType<import("../composables").DoubleclickStrategy>;
19
- default: import("../composables").DoubleclickStrategy;
20
- };
21
- hoverStrategy: {
22
- type: import("vue").PropType<import("../composables").HoverStrategy>;
23
- default: import("../composables").HoverStrategy;
24
- };
13
+ activeStrategy: import("vue").PropType<import("../composables").ActiveStrategy>;
14
+ doubleclickStrategy: import("vue").PropType<import("../composables").DoubleclickStrategy>;
15
+ hoverStrategy: import("vue").PropType<import("../composables").HoverStrategy>;
25
16
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
26
17
  editor: typeof Editor;
27
18
  resizeStrategy: import("vue").PropType<import("../composables").ResizeStrategy>;
28
- activeStrategy: {
29
- type: import("vue").PropType<import("../composables").ActiveStrategy>;
30
- default: import("../composables").ActiveStrategy;
31
- };
32
- doubleclickStrategy: {
33
- type: import("vue").PropType<import("../composables").DoubleclickStrategy>;
34
- default: import("../composables").DoubleclickStrategy;
35
- };
36
- hoverStrategy: {
37
- type: import("vue").PropType<import("../composables").HoverStrategy>;
38
- default: import("../composables").HoverStrategy;
39
- };
40
- }>> & Readonly<{}>, {
41
- activeStrategy: import("../composables").ActiveStrategy;
42
- doubleclickStrategy: import("../composables").DoubleclickStrategy;
43
- hoverStrategy: import("../composables").HoverStrategy;
44
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
19
+ activeStrategy: import("vue").PropType<import("../composables").ActiveStrategy>;
20
+ doubleclickStrategy: import("vue").PropType<import("../composables").DoubleclickStrategy>;
21
+ hoverStrategy: import("vue").PropType<import("../composables").HoverStrategy>;
22
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
45
23
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
46
24
  declare const _default: typeof __VLS_export;
47
25
  export default _default;
@@ -0,0 +1,13 @@
1
+ import type { Element2D } from 'modern-canvas';
2
+ type __VLS_Props = {
3
+ element: Element2D;
4
+ scale: [number, number];
5
+ offset: [number, number];
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ end: () => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ onEnd?: (() => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -4,13 +4,13 @@ declare var __VLS_8: {
4
4
  ok: () => void;
5
5
  cancel: () => void;
6
6
  setAspectRatio: (ratio: 0 | [number, number]) => void;
7
- }, __VLS_10: {}, __VLS_25: {};
7
+ }, __VLS_10: {}, __VLS_32: {};
8
8
  type __VLS_Slots = {} & {
9
9
  'foreground-cropper'?: (props: typeof __VLS_8) => any;
10
10
  } & {
11
11
  default?: (props: typeof __VLS_10) => any;
12
12
  } & {
13
- transform?: (props: typeof __VLS_25) => any;
13
+ transform?: (props: typeof __VLS_32) => any;
14
14
  };
15
15
  declare const __VLS_base: import("vue").DefineComponent<{}, {
16
16
  transform: Readonly<import("vue").ShallowRef<({
@@ -100,8 +100,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
100
100
  movable: boolean;
101
101
  rotatable: boolean;
102
102
  resizable: boolean;
103
- tag: string | any;
104
103
  resizeStrategy: "free" | "lockAspectRatio";
104
+ tag: string | any;
105
105
  lockAspectRatioStrategy: "all" | "diagonal";
106
106
  handleShape: "rect" | "circle";
107
107
  handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
@@ -133,8 +133,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
133
133
  movable: boolean;
134
134
  rotatable: boolean;
135
135
  resizable: boolean;
136
- tag: string | any;
137
136
  resizeStrategy: "free" | "lockAspectRatio";
137
+ tag: string | any;
138
138
  lockAspectRatioStrategy: "all" | "diagonal";
139
139
  handleShape: "rect" | "circle";
140
140
  handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
@@ -166,7 +166,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
166
166
  onStart?: ((context: Mce.TransformContext) => any) | undefined;
167
167
  onEnd?: ((context: Mce.TransformContext) => any) | undefined;
168
168
  "onUpdate:modelValue"?: ((value: Partial<Mce.TransformValue> | undefined) => any) | undefined;
169
- }>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "threshold" | "ui" | "movable" | "rotatable" | "resizable" | "tag" | "resizeStrategy" | "lockAspectRatioStrategy" | "handleShape" | "handles")> & {
169
+ }>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "threshold" | "ui" | "movable" | "rotatable" | "resizable" | "resizeStrategy" | "tag" | "lockAspectRatioStrategy" | "handleShape" | "handles")> & {
170
170
  start: (event?: MouseEvent, index?: number) => boolean;
171
171
  activeHandle: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined;
172
172
  transforming: boolean;
@@ -285,8 +285,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
285
285
  movable: boolean;
286
286
  rotatable: boolean;
287
287
  resizable: boolean;
288
- tag: string | any;
289
288
  resizeStrategy: "free" | "lockAspectRatio";
289
+ tag: string | any;
290
290
  lockAspectRatioStrategy: "all" | "diagonal";
291
291
  handleShape: "rect" | "circle";
292
292
  handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
@@ -318,8 +318,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
318
318
  movable: boolean;
319
319
  rotatable: boolean;
320
320
  resizable: boolean;
321
- tag: string | any;
322
321
  resizeStrategy: "free" | "lockAspectRatio";
322
+ tag: string | any;
323
323
  lockAspectRatioStrategy: "all" | "diagonal";
324
324
  handleShape: "rect" | "circle";
325
325
  handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
@@ -351,7 +351,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
351
351
  onStart?: ((context: Mce.TransformContext) => any) | undefined;
352
352
  onEnd?: ((context: Mce.TransformContext) => any) | undefined;
353
353
  "onUpdate:modelValue"?: ((value: Partial<Mce.TransformValue> | undefined) => any) | undefined;
354
- }>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "threshold" | "ui" | "movable" | "rotatable" | "resizable" | "tag" | "resizeStrategy" | "lockAspectRatioStrategy" | "handleShape" | "handles")> & {
354
+ }>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "threshold" | "ui" | "movable" | "rotatable" | "resizable" | "resizeStrategy" | "tag" | "lockAspectRatioStrategy" | "handleShape" | "handles")> & {
355
355
  start: (event?: MouseEvent, index?: number) => boolean;
356
356
  activeHandle: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined;
357
357
  transforming: 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;
@@ -76,8 +76,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
76
76
  movable: boolean;
77
77
  rotatable: boolean;
78
78
  resizable: boolean;
79
- tag: string | any;
80
79
  resizeStrategy: "free" | "lockAspectRatio";
80
+ tag: string | any;
81
81
  lockAspectRatioStrategy: "all" | "diagonal";
82
82
  handleShape: "rect" | "circle";
83
83
  handles: Handle[];
@@ -4,6 +4,7 @@ type __VLS_Props = {
4
4
  endTime: number;
5
5
  msPerPx?: number;
6
6
  active?: boolean;
7
+ rev?: number;
7
8
  };
8
9
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
10
  msPerPx: number;
@@ -5,12 +5,17 @@ export interface IconAliases {
5
5
  close: IconValue;
6
6
  play: IconValue;
7
7
  pause: IconValue;
8
+ skipPrevious: IconValue;
9
+ skipNext: IconValue;
10
+ stepBackward: IconValue;
11
+ stepForward: IconValue;
8
12
  gps: IconValue;
9
13
  arrowRight: IconValue;
10
14
  arrowDown: IconValue;
11
15
  mouseLeftClick: IconValue;
12
16
  mouseRightClick: IconValue;
13
17
  check: IconValue;
18
+ plus: IconValue;
14
19
  collapse: IconValue;
15
20
  frame: IconValue;
16
21
  group: IconValue;
package/dist/index.css CHANGED
@@ -535,7 +535,6 @@
535
535
  height: 100%;
536
536
  --text-color: rgba(var(--m-theme-on-background), var(--m-low-emphasis-opacity));
537
537
  --border-color: rgba(var(--m-border-color), var(--m-border-opacity));
538
- cursor: pointer;
539
538
  }
540
539
  .m-ruler--vertical {
541
540
  width: var(--size);
@@ -754,6 +753,44 @@
754
753
  .m-cropper__transform_rect {
755
754
  width: 100%;
756
755
  height: 100%;
756
+ }.m-path-editor {
757
+ position: absolute;
758
+ left: 0;
759
+ top: 0;
760
+ width: 100%;
761
+ height: 100%;
762
+ pointer-events: none;
763
+ color: rgba(var(--m-theme-primary), 1);
764
+ }
765
+ .m-path-editor__hit {
766
+ fill: none;
767
+ stroke: transparent;
768
+ stroke-width: 12;
769
+ pointer-events: stroke;
770
+ cursor: copy;
771
+ }
772
+ .m-path-editor__handle-line {
773
+ stroke: currentColor;
774
+ stroke-width: 1;
775
+ stroke-dasharray: 3 2;
776
+ opacity: 0.6;
777
+ }
778
+ .m-path-editor__anchor {
779
+ fill: white;
780
+ stroke: currentColor;
781
+ stroke-width: 1.5;
782
+ pointer-events: auto;
783
+ cursor: move;
784
+ }
785
+ .m-path-editor__anchor--selected {
786
+ fill: rgba(var(--m-theme-primary), 1);
787
+ }
788
+ .m-path-editor__control {
789
+ fill: currentColor;
790
+ stroke: white;
791
+ stroke-width: 1;
792
+ pointer-events: auto;
793
+ cursor: move;
757
794
  }.m-selection {
758
795
  position: absolute;
759
796
  left: 0;
@@ -1020,7 +1057,6 @@
1020
1057
  top: 0;
1021
1058
  width: 10px;
1022
1059
  color: rgb(var(--m-theme-on-surface));
1023
- cursor: col-resize;
1024
1060
  }
1025
1061
  .m-payhead__header {
1026
1062
  position: relative;
@@ -1073,75 +1109,6 @@
1073
1109
  .m-segment--active {
1074
1110
  outline: 1px solid rgb(var(--m-theme-on-surface));
1075
1111
  }
1076
- .m-segment__animation {
1077
- position: absolute;
1078
- bottom: 2px;
1079
- }
1080
- .m-segment__animation--in {
1081
- width: 0;
1082
- left: 4px;
1083
- background-color: white;
1084
- height: 2px;
1085
- }
1086
- .m-segment__animation--in:after {
1087
- border-color: transparent transparent transparent white;
1088
- border-style: solid;
1089
- border-width: 5px 0 0 6px;
1090
- bottom: 0;
1091
- content: "";
1092
- display: block;
1093
- height: 0;
1094
- left: 100%;
1095
- position: absolute;
1096
- width: 0;
1097
- }
1098
- .m-segment__animation--out {
1099
- width: 0;
1100
- right: 4px;
1101
- background-color: white;
1102
- height: 2px;
1103
- }
1104
- .m-segment__animation--out:before {
1105
- border-color: transparent white transparent transparent;
1106
- border-style: solid;
1107
- border-width: 5px 6px 0 0;
1108
- bottom: 0;
1109
- content: "";
1110
- display: block;
1111
- height: 0;
1112
- position: absolute;
1113
- right: 100%;
1114
- width: 0;
1115
- }
1116
- .m-segment__animation--stay {
1117
- left: 0;
1118
- background-color: white;
1119
- height: 2px;
1120
- }
1121
- .m-segment__animation--stay:before {
1122
- border-color: transparent white transparent transparent;
1123
- border-style: solid;
1124
- border-width: 5px 6px 0 0;
1125
- bottom: 0;
1126
- content: "";
1127
- display: block;
1128
- height: 0;
1129
- position: absolute;
1130
- right: 100%;
1131
- width: 0;
1132
- }
1133
- .m-segment__animation--stay:after {
1134
- border-color: transparent transparent transparent white;
1135
- border-style: solid;
1136
- border-width: 5px 0 0 6px;
1137
- bottom: 0;
1138
- content: "";
1139
- display: block;
1140
- height: 0;
1141
- left: 100%;
1142
- position: absolute;
1143
- width: 0;
1144
- }
1145
1112
  .m-segment__edge {
1146
1113
  align-items: center;
1147
1114
  background-color: rgb(var(--m-theme-on-surface));
@@ -1173,6 +1140,9 @@
1173
1140
  right: 0;
1174
1141
  }
1175
1142
  .m-segment__node {
1143
+ position: relative;
1144
+ z-index: 1;
1145
+ cursor: move;
1176
1146
  border-radius: 2px;
1177
1147
  padding: 2px 8px;
1178
1148
  white-space: nowrap;
@@ -1181,13 +1151,31 @@
1181
1151
  }
1182
1152
  .m-segment__block {
1183
1153
  position: absolute;
1184
- left: 0;
1185
1154
  top: 0;
1186
- font-size: 12px;
1187
- padding: 0 8px;
1188
- text-wrap: nowrap;
1189
- overflow: visible;
1190
- border-bottom: 1px solid rgb(var(--m-theme-surface));
1155
+ height: 100%;
1156
+ border: 1px solid rgba(255, 255, 255, 0.4);
1157
+ border-radius: 2px;
1158
+ box-sizing: border-box;
1159
+ pointer-events: auto;
1160
+ overflow: hidden;
1161
+ }
1162
+ .m-segment__block--animation {
1163
+ background-color: rgba(255, 255, 255, 0.18);
1164
+ }
1165
+ .m-segment__block--animation:hover {
1166
+ background-color: rgba(255, 255, 255, 0.28);
1167
+ }
1168
+ .m-segment__block--media {
1169
+ background-color: rgba(64, 156, 96, 0.85);
1170
+ }
1171
+ .m-segment__block--media:hover {
1172
+ background-color: rgb(64, 156, 96);
1173
+ }
1174
+ .m-segment__block--video {
1175
+ background-color: rgba(116, 84, 196, 0.85);
1176
+ }
1177
+ .m-segment__block--video:hover {
1178
+ background-color: rgb(116, 84, 196);
1191
1179
  }.m-track {
1192
1180
  position: relative;
1193
1181
  display: flex;
@@ -1195,15 +1183,92 @@
1195
1183
  background-color: rgb(var(--m-theme-background));
1196
1184
  }.m-trackhead {
1197
1185
  display: flex;
1186
+ align-items: center;
1198
1187
  height: 22px;
1199
1188
  min-height: 22px;
1200
- align-items: center;
1201
- color: rgba(var(--m-theme-on-surface), 0.6);
1189
+ padding: 0 4px;
1190
+ color: rgba(var(--m-theme-on-surface), 0.8);
1202
1191
  font-size: 0.75rem;
1203
1192
  width: 100%;
1193
+ border-radius: 4px;
1194
+ user-select: none;
1195
+ }
1196
+ .m-trackhead:hover {
1197
+ background-color: rgba(var(--m-theme-on-surface), 0.06);
1198
+ }
1199
+ .m-trackhead--selected {
1200
+ background-color: rgba(var(--m-theme-primary), calc(var(--m-activated-opacity) * 3));
1201
+ }
1202
+ .m-trackhead--dropping {
1203
+ box-shadow: 0 1px 0 0 rgb(var(--m-theme-on-background));
1204
+ }
1205
+ .m-trackhead__thumbnail {
1206
+ display: flex;
1207
+ align-items: center;
1208
+ justify-content: center;
1209
+ width: 14px;
1210
+ height: 14px;
1211
+ flex: none;
1212
+ margin-right: 6px;
1213
+ font-size: 0.875rem;
1214
+ opacity: 0.7;
1215
+ }
1216
+ .m-trackhead__name {
1217
+ flex: 1;
1218
+ min-width: 0;
1219
+ position: relative;
1204
1220
  white-space: nowrap;
1205
1221
  overflow: hidden;
1206
1222
  text-overflow: ellipsis;
1223
+ }
1224
+ .m-trackhead__input {
1225
+ position: absolute;
1226
+ inset: 0;
1227
+ width: 100%;
1228
+ height: 100%;
1229
+ padding: 0 2px;
1230
+ margin: 0;
1231
+ border: none;
1232
+ outline: 1px solid rgb(var(--m-theme-primary));
1233
+ background: rgb(var(--m-theme-surface));
1234
+ color: inherit;
1235
+ font: inherit;
1236
+ border-radius: 2px;
1237
+ }
1238
+ .m-trackhead__action {
1239
+ display: flex;
1240
+ align-items: center;
1241
+ flex: none;
1242
+ gap: 1px;
1243
+ margin-left: 4px;
1244
+ }
1245
+ .m-trackhead__action .m-trackhead__btn {
1246
+ opacity: 0;
1247
+ pointer-events: none;
1248
+ }
1249
+ .m-trackhead__action--show .m-trackhead__btn {
1250
+ opacity: 1;
1251
+ pointer-events: auto;
1252
+ }
1253
+ .m-trackhead__btn {
1254
+ display: inline-flex;
1255
+ align-items: center;
1256
+ justify-content: center;
1257
+ width: 16px;
1258
+ height: 16px;
1259
+ padding: 0;
1260
+ border: 0;
1261
+ border-radius: 3px;
1262
+ background: transparent;
1263
+ color: inherit;
1264
+ font-size: 0.75rem;
1265
+ }
1266
+ .m-trackhead__btn:hover {
1267
+ background-color: rgba(var(--m-theme-on-surface), 0.12);
1268
+ }
1269
+ .m-trackhead__btn--show {
1270
+ opacity: 1 !important;
1271
+ pointer-events: auto !important;
1207
1272
  }.m-timeline {
1208
1273
  position: relative;
1209
1274
  color: rgb(var(--m-theme-on-surface));
@@ -1216,15 +1281,58 @@
1216
1281
  .m-timeline__toolbar {
1217
1282
  display: flex;
1218
1283
  align-items: center;
1219
- height: 24px;
1284
+ gap: 8px;
1285
+ height: 28px;
1286
+ padding: 0 8px;
1220
1287
  border-bottom: 1px solid rgba(var(--m-border-color), var(--m-border-opacity));
1288
+ font-size: 0.75rem;
1289
+ user-select: none;
1221
1290
  }
1222
- .m-timeline__play {
1223
- position: absolute;
1224
- left: 50%;
1225
- transform: translateX(-50%);
1291
+ .m-timeline__time {
1292
+ display: flex;
1293
+ align-items: center;
1294
+ gap: 4px;
1295
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
1296
+ font-variant-numeric: tabular-nums;
1297
+ min-width: 120px;
1298
+ }
1299
+ .m-timeline__time-sep {
1300
+ opacity: 0.5;
1301
+ }
1302
+ .m-timeline__time--muted {
1303
+ opacity: 0.5;
1304
+ }
1305
+ .m-timeline__controls {
1306
+ display: flex;
1307
+ align-items: center;
1308
+ gap: 2px;
1309
+ }
1310
+ .m-timeline__btn {
1311
+ display: inline-flex;
1312
+ align-items: center;
1313
+ justify-content: center;
1314
+ width: 22px;
1315
+ height: 22px;
1316
+ padding: 0;
1317
+ border: 0;
1318
+ border-radius: 4px;
1319
+ background: transparent;
1320
+ color: inherit;
1226
1321
  cursor: pointer;
1227
1322
  }
1323
+ .m-timeline__btn:hover {
1324
+ background-color: rgba(var(--m-theme-on-surface), 0.08);
1325
+ }
1326
+ .m-timeline__btn:active {
1327
+ background-color: rgba(var(--m-theme-on-surface), 0.16);
1328
+ }
1329
+ .m-timeline__btn--primary {
1330
+ width: 26px;
1331
+ height: 26px;
1332
+ }
1333
+ .m-timeline__toolbar-spacer {
1334
+ flex: 1;
1335
+ }
1228
1336
  .m-timeline__main {
1229
1337
  position: relative;
1230
1338
  display: flex;
@@ -1267,6 +1375,9 @@
1267
1375
  height: 24px;
1268
1376
  min-height: 24px;
1269
1377
  }
1378
+ .m-timeline__ruler, .m-timeline__ruler * {
1379
+ cursor: default;
1380
+ }
1270
1381
  .m-timeline__track {
1271
1382
  position: relative;
1272
1383
  display: flex;
@@ -1347,6 +1458,81 @@
1347
1458
  .m-text-editor__editor {
1348
1459
  pointer-events: auto !important;
1349
1460
  cursor: move;
1461
+ }.m-workflow {
1462
+ position: absolute;
1463
+ inset: 0;
1464
+ pointer-events: none;
1465
+ z-index: 2;
1466
+ }
1467
+ .m-workflow__preview {
1468
+ position: absolute;
1469
+ inset: 0;
1470
+ width: 100%;
1471
+ height: 100%;
1472
+ overflow: visible;
1473
+ pointer-events: none;
1474
+ }
1475
+ .m-workflow__preview path {
1476
+ fill: none;
1477
+ stroke: rgb(var(--m-theme-primary, 30 200 230));
1478
+ stroke-width: 2;
1479
+ stroke-linecap: round;
1480
+ }
1481
+ .m-workflow__port {
1482
+ position: absolute;
1483
+ display: flex;
1484
+ align-items: center;
1485
+ justify-content: center;
1486
+ width: 18px;
1487
+ height: 18px;
1488
+ margin: -9px 0 0 -9px;
1489
+ border-radius: 50%;
1490
+ background: rgb(var(--m-theme-primary, 30 200 230));
1491
+ color: #fff;
1492
+ font-size: 12px;
1493
+ cursor: crosshair;
1494
+ pointer-events: auto;
1495
+ user-select: none;
1496
+ box-shadow: 0 0 0 2px #fff;
1497
+ }
1498
+ .m-workflow__backdrop {
1499
+ position: fixed;
1500
+ inset: 0;
1501
+ pointer-events: auto;
1502
+ }
1503
+ .m-workflow__menu {
1504
+ position: absolute;
1505
+ min-width: 200px;
1506
+ padding: 6px;
1507
+ background: #fff;
1508
+ border-radius: 12px;
1509
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
1510
+ pointer-events: auto;
1511
+ }
1512
+ .m-workflow__menu-title {
1513
+ padding: 6px 10px;
1514
+ font-size: 12px;
1515
+ color: #9ca3af;
1516
+ }
1517
+ .m-workflow__menu-item {
1518
+ display: flex;
1519
+ align-items: center;
1520
+ justify-content: space-between;
1521
+ width: 100%;
1522
+ padding: 8px 10px;
1523
+ border: 0;
1524
+ border-radius: 8px;
1525
+ background: transparent;
1526
+ font-size: 14px;
1527
+ color: #1f2937;
1528
+ cursor: pointer;
1529
+ }
1530
+ .m-workflow__menu-item:hover {
1531
+ background: #f3f4f6;
1532
+ }
1533
+ .m-workflow__menu-kbd {
1534
+ font-size: 12px;
1535
+ color: #9ca3af;
1350
1536
  }.m-floatbar .m-overlay-content {
1351
1537
  overflow: visible;
1352
1538
  }.m-float-panel {
package/dist/index.d.ts CHANGED
@@ -18,5 +18,6 @@ export * from './plugin';
18
18
  export * from './plugins';
19
19
  export * from './scene';
20
20
  export * from './types';
21
+ export * from './utils/create';
21
22
  export type { Camera2D, Element2D, Engine } from 'modern-canvas';
22
23
  export type { Document, Element, NormalizedElement } from 'modern-idoc';