@bylqwjc/media-editor-video 1.0.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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/chunk-EK7ODJWE.js +1 -0
  4. package/dist/index-CX2iAapm.d.ts +51 -0
  5. package/dist/index.d.ts +61 -0
  6. package/dist/index.js +2273 -0
  7. package/dist/lazy.d.ts +7 -0
  8. package/dist/lazy.js +1 -0
  9. package/dist/legacy.js +65 -0
  10. package/node_modules/@media-editor/client/LICENSE +21 -0
  11. package/node_modules/@media-editor/client/README.md +27 -0
  12. package/node_modules/@media-editor/client/dist/index.d.ts +24 -0
  13. package/node_modules/@media-editor/client/dist/index.js +1 -0
  14. package/node_modules/@media-editor/client/package.json +22 -0
  15. package/node_modules/@media-editor/core/LICENSE +21 -0
  16. package/node_modules/@media-editor/core/README.md +14 -0
  17. package/node_modules/@media-editor/core/dist/browser.d.ts +100 -0
  18. package/node_modules/@media-editor/core/dist/browser.js +3 -0
  19. package/node_modules/@media-editor/core/dist/chunk-MGKYVYOH.js +1 -0
  20. package/node_modules/@media-editor/core/dist/chunk-USY6UDGL.js +1 -0
  21. package/node_modules/@media-editor/core/dist/chunk-XCBM7P7N.js +1 -0
  22. package/node_modules/@media-editor/core/dist/engine.d.ts +359 -0
  23. package/node_modules/@media-editor/core/dist/engine.js +1 -0
  24. package/node_modules/@media-editor/core/dist/index.d.ts +264 -0
  25. package/node_modules/@media-editor/core/dist/index.js +1 -0
  26. package/node_modules/@media-editor/core/dist/platform-presets-B-o4C6uY.d.ts +80 -0
  27. package/node_modules/@media-editor/core/dist/state-B85vkf7_.d.ts +1027 -0
  28. package/node_modules/@media-editor/core/node_modules/zod/LICENSE +21 -0
  29. package/node_modules/@media-editor/core/node_modules/zod/README.md +208 -0
  30. package/node_modules/@media-editor/core/node_modules/zod/index.d.cts +4 -0
  31. package/node_modules/@media-editor/core/node_modules/zod/index.js +1 -0
  32. package/node_modules/@media-editor/core/node_modules/zod/package.json +74 -0
  33. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.d.cts +164 -0
  34. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.js +1 -0
  35. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.d.cts +5 -0
  36. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.js +1 -0
  37. package/node_modules/@media-editor/core/node_modules/zod/v3/external.d.cts +6 -0
  38. package/node_modules/@media-editor/core/node_modules/zod/v3/external.js +1 -0
  39. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  40. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.js +0 -0
  41. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  42. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.js +1 -0
  43. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  44. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.js +1 -0
  45. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  46. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.js +0 -0
  47. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  48. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.js +0 -0
  49. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.d.cts +85 -0
  50. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.js +1 -0
  51. package/node_modules/@media-editor/core/node_modules/zod/v3/index.d.cts +4 -0
  52. package/node_modules/@media-editor/core/node_modules/zod/v3/index.js +1 -0
  53. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.d.cts +3 -0
  54. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.js +1 -0
  55. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.d.cts +102 -0
  56. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.js +0 -0
  57. package/node_modules/@media-editor/core/node_modules/zod/v3/types.d.cts +1031 -0
  58. package/node_modules/@media-editor/core/node_modules/zod/v3/types.js +1 -0
  59. package/node_modules/@media-editor/core/package.json +34 -0
  60. package/package.json +33 -0
package/dist/index.js ADDED
@@ -0,0 +1,2273 @@
1
+ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buildFilterCss as Br,evenize as Yt,outputSize as Do}from"@media-editor/core";import{fitStickerBox as Dr,getOverlayRotation as mn,overlayBBox as Ut,scaleOverlay as _o,translateOverlay as jo}from"@media-editor/core/browser";import{VideoEditorEngine as _r}from"@media-editor/core/engine";import{VideoEditorEngine as ja}from"@media-editor/core/engine";const mo='-apple-system, "PingFang SC", "Microsoft YaHei", sans-serif',Yo=["Arial","Segoe UI","Microsoft YaHei","Microsoft JhengHei","PingFang SC","Helvetica","Verdana","Tahoma","Trebuchet MS","Georgia","Times New Roman","Courier New","NSimSun","SimSun","SimHei","KaiTi","FangSong","Noto Sans SC"],jr={"Microsoft YaHei":"\u5FAE\u8F6F\u96C5\u9ED1","Microsoft JhengHei":"\u5FAE\u8F6F\u6B63\u9ED1\u4F53","PingFang SC":"\u82F9\u65B9",SimSun:"\u5B8B\u4F53",NSimSun:"\u65B0\u5B8B\u4F53",SimHei:"\u9ED1\u4F53",KaiTi:"\u6977\u4F53",FangSong:"\u4EFF\u5B8B","Noto Sans SC":"\u601D\u6E90\u9ED1\u4F53","Songti SC":"\u5B8B\u4F53-\u7B80","Heiti SC":"\u9ED1\u4F53-\u7B80","Kaiti SC":"\u6977\u4F53-\u7B80",STSong:"\u534E\u6587\u5B8B\u4F53",STHeiti:"\u534E\u6587\u9ED1\u4F53",STKaiti:"\u534E\u6587\u6977\u4F53",STFangsong:"\u534E\u6587\u4EFF\u5B8B",STZhongsong:"\u534E\u6587\u4E2D\u5B8B",YouYuan:"\u5E7C\u5706",LiSu:"\u96B6\u4E66"},Yr=["microsoft yahei","microsoft jhenghei","pingfang","simsun","nsimsun","simhei","kaiti","fangsong","noto sans sc","songti","heiti","stsong","stheiti","stkaiti","stfangsong","stzhongsong","youyuan","lisu"],Vo={heading:{text:"Heading and some body",fontSize:120,width:600,fontWeight:"700",textAlign:"center",color:"#ffffff",backgroundColor:"transparent",borderColor:"#000000",borderWidth:0,boxShadow:{color:"rgba(0,0,0,0.35)",x:0,y:4,blur:18}},subtitle:{text:"Subtitle line",fontSize:72,width:560,fontWeight:"600",textAlign:"center",color:"#ffffff",backgroundColor:"transparent",borderColor:"#000000",borderWidth:0,boxShadow:{color:"rgba(0,0,0,0.28)",x:0,y:2,blur:12}},label:{text:"Label",fontSize:44,width:300,fontWeight:"700",textAlign:"center",color:"#ffffff",backgroundColor:"rgba(8,8,10,0.72)",borderColor:"#000000",borderWidth:0,boxShadow:{color:"rgba(0,0,0,0.18)",x:0,y:2,blur:8},paddingX:24,paddingY:16}},po=[{key:"none",label:"Cut",short:"Cut",duration:0},{key:"fade",label:"Fade",short:"Fade",duration:.45},{key:"slide",label:"Slide",short:"Slide",duration:.45},{key:"wipe",label:"Wipe",short:"Wipe",duration:.45},{key:"flip",label:"Flip",short:"Flip",duration:.35},{key:"clockWipe",label:"Clock",short:"Clock",duration:.5},{key:"star",label:"Star",short:"Star",duration:.35},{key:"circle",label:"Circle",short:"Circle",duration:.45},{key:"rectangle",label:"Rectangle",short:"Rect",duration:.45}];let Xo=!1,qo=!1;const zt="me-video-timeline-selectionchange",Wo="Aa Sample 123";let Vn=null;function sn(){if(Xo||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-text-enhancer-style",e.textContent=`
2
+ .me-video-inspector-rail {
3
+ flex: 0 0 min(380px, 32vw);
4
+ min-width: 320px;
5
+ max-width: 420px;
6
+ min-height: 0;
7
+ height: 100%;
8
+ align-self: stretch;
9
+ display: flex;
10
+ flex-direction: column;
11
+ background: color-mix(in srgb, var(--me-surface, #141416) 98%, transparent);
12
+ border-left: 1px solid var(--me-border, #26262b);
13
+ box-shadow: inset 1px 0 0 rgba(255,255,255,0.02);
14
+ box-sizing: border-box;
15
+ overflow: hidden;
16
+ }
17
+ .me-video-inspector-rail[hidden] {
18
+ display: none !important;
19
+ }
20
+ .me-video-text-panel {
21
+ position: relative;
22
+ z-index: 1;
23
+ width: 100%;
24
+ min-width: 0;
25
+ height: 100%;
26
+ padding: 20px 18px 24px;
27
+ border-radius: 0;
28
+ border: 0;
29
+ background: transparent;
30
+ color: var(--me-fg, #ededf0);
31
+ box-shadow: none;
32
+ backdrop-filter: none;
33
+ font: 13px/1.45 ${mo};
34
+ box-sizing: border-box;
35
+ overflow: auto;
36
+ }
37
+ .me-video-text-panel[hidden] {
38
+ display: none !important;
39
+ }
40
+ .me-video-text-toolbar {
41
+ display: flex;
42
+ align-items: center;
43
+ flex-wrap: wrap;
44
+ gap: 8px;
45
+ margin-bottom: 14px;
46
+ }
47
+ .me-video-text-toolbar strong {
48
+ margin-right: auto;
49
+ font-size: 18px;
50
+ font-weight: 700;
51
+ }
52
+ .me-video-text-hint {
53
+ margin: 0 0 12px;
54
+ color: var(--me-fg-muted, #9a9aa3);
55
+ font-size: 11px;
56
+ line-height: 1.5;
57
+ }
58
+ .me-video-text-list {
59
+ display: flex;
60
+ flex-wrap: wrap;
61
+ gap: 8px;
62
+ margin-bottom: 14px;
63
+ }
64
+ .me-video-text-chip,
65
+ .me-video-text-preset,
66
+ .me-video-text-mini,
67
+ .me-video-text-align,
68
+ .me-video-text-cta {
69
+ border: 1px solid var(--me-border, #26262b);
70
+ background: var(--me-chip, #1c1c20);
71
+ color: var(--me-fg, #ededf0);
72
+ border-radius: 999px;
73
+ cursor: pointer;
74
+ font: inherit;
75
+ transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
76
+ }
77
+ .me-video-text-chip {
78
+ max-width: 100%;
79
+ padding: 7px 12px;
80
+ }
81
+ .me-video-text-chip.is-active,
82
+ .me-video-text-preset.is-active,
83
+ .me-video-text-align.is-active,
84
+ .me-video-text-cta:hover,
85
+ .me-video-text-mini:hover {
86
+ border-color: var(--me-accent, #7c7cf0);
87
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 14%, var(--me-chip, #1c1c20));
88
+ }
89
+ .me-video-text-preset,
90
+ .me-video-text-cta {
91
+ padding: 8px 12px;
92
+ font-weight: 600;
93
+ }
94
+ .me-video-text-mini {
95
+ padding: 7px 10px;
96
+ }
97
+ .me-video-text-empty {
98
+ color: var(--me-fg-muted, #9a9aa3);
99
+ font-size: 11px;
100
+ margin-bottom: 12px;
101
+ }
102
+ .me-video-text-grid {
103
+ display: grid;
104
+ grid-template-columns: repeat(2, minmax(0, 1fr));
105
+ gap: 10px;
106
+ }
107
+ .me-video-text-field {
108
+ display: flex;
109
+ flex-direction: column;
110
+ gap: 6px;
111
+ min-width: 0;
112
+ }
113
+ .me-video-text-field.is-span-2 {
114
+ grid-column: span 2;
115
+ }
116
+ .me-video-text-field label {
117
+ color: var(--me-fg-muted, #9a9aa3);
118
+ font-size: 11px;
119
+ font-weight: 600;
120
+ letter-spacing: 0.02em;
121
+ text-transform: uppercase;
122
+ }
123
+ .me-video-text-field textarea,
124
+ .me-video-text-field input,
125
+ .me-video-text-field select {
126
+ width: 100%;
127
+ min-width: 0;
128
+ border: 1px solid var(--me-border, #26262b);
129
+ border-radius: 10px;
130
+ background: var(--me-chip, #1c1c20);
131
+ color: var(--me-fg, #ededf0);
132
+ font: inherit;
133
+ box-sizing: border-box;
134
+ }
135
+ .me-video-text-field textarea {
136
+ min-height: 88px;
137
+ padding: 10px 12px;
138
+ resize: vertical;
139
+ }
140
+ .me-video-text-field input[type="number"],
141
+ .me-video-text-field select {
142
+ height: 38px;
143
+ padding: 0 12px;
144
+ }
145
+ .me-video-text-field input[type="color"] {
146
+ height: 38px;
147
+ padding: 4px;
148
+ }
149
+ .me-video-text-inline {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 6px;
153
+ flex-wrap: wrap;
154
+ }
155
+ .me-video-text-inline > * {
156
+ min-width: 0;
157
+ }
158
+ .me-video-text-inline input[type="range"] {
159
+ flex: 1;
160
+ min-width: 0;
161
+ }
162
+ .me-video-text-inline span {
163
+ color: var(--me-fg-muted, #9a9aa3);
164
+ font-size: 11px;
165
+ min-width: 32px;
166
+ text-align: right;
167
+ }
168
+ .me-video-text-align {
169
+ padding: 7px 10px;
170
+ min-width: 38px;
171
+ font-weight: 700;
172
+ }
173
+ .me-video-text-actions {
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 8px;
177
+ margin-top: 14px;
178
+ }
179
+ .me-video-text-actions .me-video-text-cta {
180
+ flex: 1;
181
+ }
182
+ .me-video-text-danger {
183
+ border-color: rgba(239, 68, 68, 0.35);
184
+ color: #fca5a5;
185
+ }
186
+ .me-video-text-tool {
187
+ display: flex;
188
+ flex-direction: column;
189
+ align-items: center;
190
+ justify-content: center;
191
+ gap: 6px;
192
+ width: 68px;
193
+ min-height: 68px;
194
+ padding: 10px 8px;
195
+ border-radius: 16px;
196
+ border: 1px solid var(--me-border, #26262b);
197
+ background: var(--me-surface, #141416);
198
+ color: var(--me-fg-muted, #9a9aa3);
199
+ cursor: pointer;
200
+ font: 12px/1.2 ${mo};
201
+ box-shadow: inset 0 0 0 1px transparent;
202
+ transition: transform 120ms ease, color 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
203
+ }
204
+ .me-video-feature-one-tool{
205
+ background: transparent!important;
206
+ color: var(--me-fg-muted, #9a9aa3)!important;
207
+ }
208
+ .me-video-text-tool:hover,
209
+ .me-video-text-tool.is-active {
210
+ color: var(--me-fg, #ededf0);
211
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 36%, var(--me-border, #26262b));
212
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, var(--me-surface, #141416));
213
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 18%, transparent);
214
+ transform: translateY(-1px);
215
+ }
216
+ .me-video-text-tool-icon {
217
+ display: inline-flex;
218
+ align-items: center;
219
+ justify-content: center;
220
+ width: 28px;
221
+ height: 28px;
222
+ font-size: 15px;
223
+ font-weight: 800;
224
+ }
225
+ .me-video-text-tool-icon svg {
226
+ width: 16px;
227
+ height: 16px;
228
+ display: block;
229
+ flex-shrink: 0;
230
+ }
231
+ .me-video-toolrail button[data-me-trim-hidden="true"] {
232
+ display: none !important;
233
+ }
234
+ .me-video-toolrail button[data-me-annotate-hidden="true"] {
235
+ display: none !important;
236
+ }
237
+ .me-video-text-tool-label {
238
+ font-size: 11px;
239
+ font-weight: 600;
240
+ }
241
+ .me-video-text-section {
242
+ display: flex;
243
+ flex-direction: column;
244
+ gap: 10px;
245
+ margin-top: 18px;
246
+ }
247
+ .me-video-text-section-title {
248
+ margin: 0;
249
+ display: flex;
250
+ align-items: center;
251
+ justify-content: space-between;
252
+ gap: 10px;
253
+ font-size: 16px;
254
+ font-weight: 700;
255
+ color: var(--me-fg, #ededf0);
256
+ }
257
+ .me-video-text-section-body {
258
+ display: flex;
259
+ flex-direction: column;
260
+ gap: 10px;
261
+ }
262
+ .me-video-feature-one-placeholder {
263
+ min-height: 148px;
264
+ border: 1px dashed color-mix(in srgb, var(--me-border, #26262b) 88%, transparent);
265
+ border-radius: 14px;
266
+ padding: 16px;
267
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 72%, transparent);
268
+ color: var(--me-fg-muted, #9a9aa3);
269
+ display: flex;
270
+ align-items: center;
271
+ justify-content: center;
272
+ text-align: center;
273
+ line-height: 1.6;
274
+ }
275
+ .me-video-add-tool-icon svg {
276
+ width: 18px;
277
+ height: 18px;
278
+ display: block;
279
+ }
280
+ .me-video-add-canvas-layer {
281
+ position: absolute;
282
+ inset: 0;
283
+ z-index: 14;
284
+ pointer-events: auto;
285
+ }
286
+ .me-video-add-canvas-layer[hidden] {
287
+ display: none !important;
288
+ }
289
+ .me-video-add-canvas-layer[data-tool="eraser"] {
290
+ cursor: cell;
291
+ }
292
+ .me-video-add-canvas-layer[data-tool="brush"],
293
+ .me-video-add-canvas-layer[data-tool="line"],
294
+ .me-video-add-canvas-layer[data-tool="arrow"],
295
+ .me-video-add-canvas-layer[data-tool="rectangle"],
296
+ .me-video-add-canvas-layer[data-tool="ellipse"] {
297
+ cursor: crosshair;
298
+ }
299
+ .me-video-add-preview-svg {
300
+ position: absolute;
301
+ overflow: visible;
302
+ pointer-events: none;
303
+ }
304
+ .me-video-add-preview-shape {
305
+ fill: none;
306
+ stroke-linecap: round;
307
+ stroke-linejoin: round;
308
+ }
309
+ .me-video-add-body {
310
+ display: flex;
311
+ flex-direction: column;
312
+ gap: 22px;
313
+ margin-top: 6px;
314
+ }
315
+ .me-video-add-section {
316
+ display: flex;
317
+ flex-direction: column;
318
+ gap: 12px;
319
+ }
320
+ .me-video-add-section-head {
321
+ display: flex;
322
+ align-items: center;
323
+ justify-content: space-between;
324
+ gap: 12px;
325
+ }
326
+ .me-video-add-section-title,
327
+ .me-video-add-section-value {
328
+ color: color-mix(in srgb, var(--me-fg-muted, #64748b) 94%, transparent);
329
+ font-size: 13px;
330
+ font-weight: 700;
331
+ line-height: 1.4;
332
+ }
333
+ .me-video-add-section-value {
334
+ color: var(--me-accent, #4f46e5);
335
+ }
336
+ .me-video-add-tool-grid {
337
+ display: grid;
338
+ grid-template-columns: repeat(3, minmax(0, 1fr));
339
+ gap: 12px;
340
+ }
341
+ .me-video-add-tool-card {
342
+ min-height: 72px;
343
+ padding: 14px 10px;
344
+ border: 1px solid color-mix(in srgb, var(--me-border, #d9dde5) 88%, transparent);
345
+ border-radius: 16px;
346
+ background: color-mix(in srgb, var(--me-surface, #ffffff) 94%, transparent);
347
+ color: color-mix(in srgb, var(--me-fg, #334155) 84%, transparent);
348
+ display: flex;
349
+ flex-direction: column;
350
+ align-items: center;
351
+ justify-content: center;
352
+ gap: 8px;
353
+ cursor: pointer;
354
+ transition: border-color 120ms ease, color 120ms ease, background 120ms ease, transform 120ms ease, box-shadow 120ms ease;
355
+ }
356
+ .me-video-add-tool-card:hover,
357
+ .me-video-add-tool-card.is-active {
358
+ color: var(--me-accent, #4f46e5);
359
+ border-color: color-mix(in srgb, var(--me-accent, #4f46e5) 56%, white 12%);
360
+ background: color-mix(in srgb, var(--me-accent, #4f46e5) 8%, var(--me-surface, #ffffff));
361
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #4f46e5) 22%, transparent);
362
+ transform: translateY(-1px);
363
+ }
364
+ .me-video-add-tool-icon {
365
+ display: inline-flex;
366
+ align-items: center;
367
+ justify-content: center;
368
+ width: 22px;
369
+ height: 22px;
370
+ }
371
+ .me-video-add-tool-label {
372
+ font-size: 12px;
373
+ font-weight: 600;
374
+ line-height: 1;
375
+ }
376
+ .me-video-add-color-grid {
377
+ display: grid;
378
+ grid-template-columns: repeat(4, minmax(0, 1fr));
379
+ gap: 14px 12px;
380
+ }
381
+ .me-video-add-color-chip {
382
+ min-height: 40px;
383
+ border-radius: 12px;
384
+ border: 1px solid color-mix(in srgb, var(--me-border, #d9dde5) 90%, transparent);
385
+ cursor: pointer;
386
+ transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
387
+ }
388
+ .me-video-add-color-chip:hover,
389
+ .me-video-add-color-chip.is-active {
390
+ transform: translateY(-1px);
391
+ }
392
+ .me-video-add-color-chip.is-active {
393
+ box-shadow: 0 0 0 2px var(--me-surface, #ffffff), 0 0 0 4px var(--me-accent, #4f46e5);
394
+ border-color: var(--me-accent, #4f46e5);
395
+ }
396
+ .me-video-add-color-chip[data-tone="light"] {
397
+ border-color: color-mix(in srgb, var(--me-border, #cbd5e1) 100%, transparent);
398
+ }
399
+ .me-video-add-custom-color {
400
+ display: flex;
401
+ flex-direction: column;
402
+ gap: 12px;
403
+ padding: 12px;
404
+ border-radius: 16px;
405
+ border: 1px solid color-mix(in srgb, var(--me-border, #d9dde5) 88%, transparent);
406
+ background: color-mix(in srgb, var(--me-surface, #ffffff) 96%, transparent);
407
+ --me-add-color-current: #ff4d4f;
408
+ --me-add-color-hue: #ff0000;
409
+ }
410
+ .me-video-add-custom-color.is-active {
411
+ border-color: color-mix(in srgb, var(--me-accent, #4f46e5) 38%, var(--me-border, #d9dde5));
412
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #4f46e5) 10%, transparent);
413
+ }
414
+ .me-video-add-custom-head {
415
+ display: flex;
416
+ align-items: center;
417
+ gap: 10px;
418
+ }
419
+ .me-video-add-custom-preview {
420
+ width: 34px;
421
+ height: 34px;
422
+ border-radius: 999px;
423
+ border: 2px solid var(--me-surface, #ffffff);
424
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--me-border, #d9dde5) 96%, transparent);
425
+ background: var(--me-add-color-current, #ff4d4f);
426
+ flex-shrink: 0;
427
+ }
428
+ .me-video-add-custom-label {
429
+ font-size: 13px;
430
+ font-weight: 600;
431
+ color: var(--me-fg, #101828);
432
+ }
433
+ .me-video-add-spectrum {
434
+ position: relative;
435
+ height: 168px;
436
+ border-radius: 14px;
437
+ overflow: hidden;
438
+ cursor: crosshair;
439
+ background:
440
+ linear-gradient(to top, #000000, transparent),
441
+ linear-gradient(to right, #ffffff, var(--me-add-color-hue, #ff0000));
442
+ }
443
+ .me-video-add-spectrum-thumb {
444
+ position: absolute;
445
+ width: 16px;
446
+ height: 16px;
447
+ border-radius: 999px;
448
+ border: 2px solid #ffffff;
449
+ box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.22);
450
+ transform: translate(-50%, -50%);
451
+ pointer-events: none;
452
+ }
453
+ .me-video-add-hue-row {
454
+ display: flex;
455
+ align-items: center;
456
+ gap: 12px;
457
+ }
458
+ .me-video-add-hue-slider {
459
+ flex: 1;
460
+ width: 100%;
461
+ height: 12px;
462
+ margin: 0;
463
+ appearance: none;
464
+ border-radius: 999px;
465
+ outline: none;
466
+ border: none;
467
+ background: linear-gradient(
468
+ 90deg,
469
+ #ff0000 0%,
470
+ #ffff00 17%,
471
+ #00ff00 33%,
472
+ #00ffff 50%,
473
+ #0000ff 67%,
474
+ #ff00ff 83%,
475
+ #ff0000 100%
476
+ );
477
+ }
478
+ .me-video-add-hue-slider::-webkit-slider-runnable-track {
479
+ height: 12px;
480
+ border-radius: 999px;
481
+ background: transparent;
482
+ }
483
+ .me-video-add-hue-slider::-moz-range-track {
484
+ height: 12px;
485
+ border-radius: 999px;
486
+ background: transparent;
487
+ }
488
+ .me-video-add-hue-slider::-webkit-slider-thumb {
489
+ appearance: none;
490
+ width: 18px;
491
+ height: 18px;
492
+ margin-top: -3px;
493
+ border-radius: 999px;
494
+ border: 2px solid #ffffff;
495
+ box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.22);
496
+ background: var(--me-add-color-current, #ff4d4f);
497
+ cursor: ew-resize;
498
+ }
499
+ .me-video-add-hue-slider::-moz-range-thumb {
500
+ width: 18px;
501
+ height: 18px;
502
+ border-radius: 999px;
503
+ border: 2px solid #ffffff;
504
+ box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.22);
505
+ background: var(--me-add-color-current, #ff4d4f);
506
+ cursor: ew-resize;
507
+ }
508
+ .me-video-add-rgb-grid {
509
+ display: grid;
510
+ grid-template-columns: repeat(3, minmax(0, 1fr));
511
+ gap: 10px;
512
+ }
513
+ .me-video-add-rgb-field {
514
+ display: flex;
515
+ flex-direction: column;
516
+ gap: 6px;
517
+ align-items: center;
518
+ }
519
+ .me-video-add-rgb-input {
520
+ width: 100%;
521
+ min-height: 40px;
522
+ padding: 0 10px;
523
+ border-radius: 12px;
524
+ border: 1px solid color-mix(in srgb, var(--me-border, #d9dde5) 88%, transparent);
525
+ background: color-mix(in srgb, var(--me-surface, #ffffff) 98%, transparent);
526
+ color: var(--me-fg, #101828);
527
+ text-align: center;
528
+ font: inherit;
529
+ font-variant-numeric: tabular-nums;
530
+ box-sizing: border-box;
531
+ }
532
+ .me-video-add-rgb-label {
533
+ font-size: 12px;
534
+ font-weight: 600;
535
+ color: var(--me-fg-muted, #667085);
536
+ }
537
+ .me-video-add-slider {
538
+ width: 100%;
539
+ margin: 2px 0 0;
540
+ accent-color: var(--me-accent, #4f46e5);
541
+ }
542
+ @media (max-width: 360px) {
543
+ .me-video-add-tool-grid {
544
+ grid-template-columns: repeat(2, minmax(0, 1fr));
545
+ }
546
+ .me-video-add-color-grid {
547
+ grid-template-columns: repeat(3, minmax(0, 1fr));
548
+ }
549
+ }
550
+ .me-video-text-row {
551
+ display: grid;
552
+ grid-template-columns: 98px minmax(0, 1fr);
553
+ gap: 12px;
554
+ align-items: center;
555
+ }
556
+ .me-video-text-row.is-area {
557
+ grid-template-columns: 1fr;
558
+ align-items: stretch;
559
+ }
560
+ .me-video-text-row-label {
561
+ color: var(--me-fg-muted, #9a9aa3);
562
+ font-size: 13px;
563
+ font-weight: 500;
564
+ line-height: 1.35;
565
+ }
566
+ .me-video-text-row.is-area .me-video-text-row-label {
567
+ margin-bottom: -2px;
568
+ }
569
+ .me-video-text-input,
570
+ .me-video-text-select,
571
+ .me-video-font-picker-trigger {
572
+ width: 100%;
573
+ min-height: 42px;
574
+ border: 1px solid var(--me-border, #26262b);
575
+ border-radius: 12px;
576
+ background: var(--me-chip, #1c1c20);
577
+ color: var(--me-fg, #ededf0);
578
+ font: inherit;
579
+ box-sizing: border-box;
580
+ }
581
+ .me-video-text-input {
582
+ padding: 0 12px;
583
+ }
584
+ .me-video-text-input[type="number"] {
585
+ font-variant-numeric: tabular-nums;
586
+ }
587
+ .me-video-text-select {
588
+ padding: 0 12px;
589
+ }
590
+ .me-video-font-picker {
591
+ position: relative;
592
+ width: 100%;
593
+ }
594
+ .me-video-font-picker-trigger {
595
+ appearance: none;
596
+ display: flex;
597
+ align-items: center;
598
+ justify-content: space-between;
599
+ gap: 12px;
600
+ padding: 0 12px;
601
+ text-align: left;
602
+ cursor: pointer;
603
+ }
604
+ .me-video-font-picker.is-open .me-video-font-picker-trigger {
605
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 40%, var(--me-border, #26262b));
606
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, transparent);
607
+ }
608
+ .me-video-font-picker-trigger:disabled {
609
+ cursor: not-allowed;
610
+ opacity: 0.7;
611
+ }
612
+ .me-video-font-picker-label {
613
+ min-width: 0;
614
+ overflow: hidden;
615
+ text-overflow: ellipsis;
616
+ white-space: nowrap;
617
+ font-size: 14px;
618
+ font-weight: 600;
619
+ }
620
+ .me-video-font-picker-chevron {
621
+ flex-shrink: 0;
622
+ color: var(--me-fg-muted, #9a9aa3);
623
+ font-size: 12px;
624
+ transition: transform 120ms ease;
625
+ }
626
+ .me-video-font-picker.is-open .me-video-font-picker-chevron {
627
+ transform: rotate(180deg);
628
+ }
629
+ .me-video-font-picker-dropdown {
630
+ position: absolute;
631
+ top: calc(100% + 8px);
632
+ left: 0;
633
+ right: 0;
634
+ z-index: 72;
635
+ display: flex;
636
+ flex-direction: column;
637
+ gap: 10px;
638
+ padding: 12px;
639
+ border-radius: 16px;
640
+ border: 1px solid color-mix(in srgb, var(--me-accent, #7c7cf0) 28%, var(--me-border, #26262b));
641
+ background: color-mix(in srgb, var(--me-surface, #141416) 98%, transparent);
642
+ box-shadow: 0 20px 44px rgba(0, 0, 0, 0.32);
643
+ backdrop-filter: blur(12px);
644
+ }
645
+ .me-video-font-picker-dropdown[hidden] {
646
+ display: none !important;
647
+ }
648
+ .me-video-font-picker-search {
649
+ display: flex;
650
+ align-items: center;
651
+ gap: 8px;
652
+ min-height: 44px;
653
+ padding: 0 12px;
654
+ border-radius: 12px;
655
+ border: 1px solid color-mix(in srgb, var(--me-accent, #7c7cf0) 40%, var(--me-border, #26262b));
656
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 92%, transparent);
657
+ }
658
+ .me-video-font-picker-search-icon {
659
+ flex-shrink: 0;
660
+ color: var(--me-fg-muted, #9a9aa3);
661
+ font-size: 15px;
662
+ line-height: 1;
663
+ }
664
+ .me-video-font-picker-search-icon svg {
665
+ display: block;
666
+ width: 16px;
667
+ height: 16px;
668
+ }
669
+ .me-video-font-picker-search-input {
670
+ min-height: 0;
671
+ height: auto;
672
+ border: 0 !important;
673
+ background: transparent !important;
674
+ padding: 0 !important;
675
+ box-shadow: none !important;
676
+ }
677
+ .me-video-font-picker-search-input:focus {
678
+ outline: none;
679
+ }
680
+ .me-video-font-picker-list {
681
+ display: flex;
682
+ flex-direction: column;
683
+ gap: 4px;
684
+ max-height: 360px;
685
+ overflow: auto;
686
+ padding-right: 2px;
687
+ }
688
+ .me-video-font-picker-option {
689
+ font: inherit;
690
+ display: flex;
691
+ flex-direction: column;
692
+ align-items: flex-start;
693
+ gap: 4px;
694
+ width: 100%;
695
+ padding: 10px 12px;
696
+ border: 0;
697
+ border-radius: 12px;
698
+ background: transparent;
699
+ color: var(--me-fg, #ededf0);
700
+ cursor: pointer;
701
+ text-align: left;
702
+ transition: background 120ms ease, transform 120ms ease;
703
+ }
704
+ .me-video-font-picker-option:hover,
705
+ .me-video-font-picker-option.is-active {
706
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, var(--me-chip, #1c1c20));
707
+ transform: translateY(-1px);
708
+ }
709
+ .me-video-font-picker-option-name {
710
+ font-size: 14px;
711
+ font-weight: 600;
712
+ color: var(--me-fg-muted, #cfcfd6);
713
+ }
714
+ .me-video-font-picker-option-preview {
715
+ font-size: 16px;
716
+ font-weight: 700;
717
+ line-height: 1.2;
718
+ color: var(--me-fg, #ededf0);
719
+ }
720
+ .me-video-font-picker-message {
721
+ padding: 12px;
722
+ color: var(--me-fg-muted, #9a9aa3);
723
+ font-size: 13px;
724
+ }
725
+ .me-video-text-textarea {
726
+ min-height: 112px;
727
+ padding: 12px;
728
+ resize: vertical;
729
+ }
730
+ .me-video-text-color-control {
731
+ display: grid;
732
+ grid-template-columns: 44px minmax(0, 1fr);
733
+ gap: 8px;
734
+ align-items: center;
735
+ }
736
+ .me-video-text-color-control:has(.me-video-text-transparent-toggle) {
737
+ grid-template-columns: 44px minmax(0, 1fr) auto;
738
+ }
739
+ .me-video-text-color-swatch {
740
+ width: 44px;
741
+ height: 42px;
742
+ padding: 4px;
743
+ border-radius: 12px;
744
+ border: 1px solid var(--me-border, #26262b);
745
+ background: var(--me-chip, #1c1c20);
746
+ box-sizing: border-box;
747
+ }
748
+ .me-video-text-color-text {
749
+ text-transform: lowercase;
750
+ }
751
+ .me-video-text-toggle-group {
752
+ display: flex;
753
+ align-items: center;
754
+ gap: 8px;
755
+ flex-wrap: wrap;
756
+ }
757
+ .me-video-text-toggle {
758
+ display: inline-flex;
759
+ align-items: center;
760
+ justify-content: center;
761
+ min-width: 40px;
762
+ height: 40px;
763
+ padding: 0 12px;
764
+ border: 1px solid var(--me-border, #26262b);
765
+ border-radius: 12px;
766
+ background: var(--me-chip, #1c1c20);
767
+ color: var(--me-fg, #ededf0);
768
+ cursor: pointer;
769
+ font: inherit;
770
+ transition: background 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease;
771
+ }
772
+ .me-video-text-toggle:hover,
773
+ .me-video-text-toggle.is-active {
774
+ border-color: var(--me-accent, #7c7cf0);
775
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 14%, var(--me-chip, #1c1c20));
776
+ transform: translateY(-1px);
777
+ }
778
+ .me-video-text-toggle.is-italic {
779
+ font-style: italic;
780
+ font-weight: 700;
781
+ }
782
+ .me-video-text-toggle.is-underline {
783
+ text-decoration: underline;
784
+ text-decoration-thickness: 2px;
785
+ }
786
+ .me-video-text-toggle.is-strike {
787
+ text-decoration: line-through;
788
+ text-decoration-thickness: 2px;
789
+ }
790
+ .me-video-text-transparent-toggle {
791
+ min-width: auto;
792
+ padding: 0 10px;
793
+ font-size: 12px;
794
+ white-space: nowrap;
795
+ }
796
+ .me-video-text-slider-row {
797
+ display: grid;
798
+ grid-template-columns: 76px minmax(0, 1fr);
799
+ gap: 8px;
800
+ align-items: center;
801
+ }
802
+ .me-video-text-slider-row input[type="range"] {
803
+ width: 100%;
804
+ min-width: 0;
805
+ accent-color: var(--me-accent, #7c7cf0);
806
+ }
807
+ .me-video-audio-panel {
808
+ display: flex;
809
+ flex-direction: column;
810
+ gap: 16px;
811
+ }
812
+ .me-video-audio-panel .me-video-text-toolbar {
813
+ margin-bottom: 0;
814
+ }
815
+ .me-video-audio-panel .me-video-text-toolbar strong {
816
+ margin-right: 0;
817
+ }
818
+ .me-video-audio-panel .me-video-audio-source {
819
+ margin: -8px 0 4px;
820
+ color: var(--me-fg-muted, #9a9aa3);
821
+ font-size: 12px;
822
+ line-height: 1.4;
823
+ word-break: break-word;
824
+ }
825
+ .me-video-audio-panel .me-video-text-grid {
826
+ grid-template-columns: minmax(0, 1fr);
827
+ gap: 14px;
828
+ }
829
+ .me-video-audio-panel .me-video-text-field input[readonly] {
830
+ cursor: default;
831
+ }
832
+ .me-video-audio-panel .me-video-text-field input[type="range"]:disabled {
833
+ opacity: 0.55;
834
+ cursor: not-allowed;
835
+ }
836
+ .me-video-audio-panel .me-video-audio-value {
837
+ width: 88px;
838
+ flex: 0 0 88px;
839
+ height: 38px;
840
+ padding: 0 12px;
841
+ text-align: right;
842
+ font-variant-numeric: tabular-nums;
843
+ }
844
+ .me-video-audio-panel .me-video-audio-value.is-compact {
845
+ width: 72px;
846
+ flex-basis: 72px;
847
+ }
848
+ .me-video-audio-panel .me-video-audio-value.is-readonly {
849
+ color: var(--me-fg-muted, #9a9aa3);
850
+ }
851
+ .me-video-audio-panel .me-video-audio-hint {
852
+ margin: -4px 0 0;
853
+ color: var(--me-fg-muted, #9a9aa3);
854
+ font-size: 11px;
855
+ line-height: 1.5;
856
+ }
857
+ .me-video-ratio-panel {
858
+ width: 100%;
859
+ }
860
+ .me-video-ratio-card-grid {
861
+ display: flex;
862
+ flex-direction: column;
863
+ gap: 12px;
864
+ }
865
+ .me-video-ratio-preset-group {
866
+ width: 100%;
867
+ display: flex;
868
+ flex-direction: column;
869
+ gap: 10px;
870
+ padding: 16px 18px;
871
+ border-radius: 18px;
872
+ border: 1px solid var(--me-border, #26262b);
873
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 84%, var(--me-bg, #08080a) 16%);
874
+ color: var(--me-fg, #ededf0);
875
+ cursor: pointer;
876
+ font: inherit;
877
+ text-align: left;
878
+ transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
879
+ }
880
+ .me-video-ratio-preset-group:hover {
881
+ transform: translateY(-1px);
882
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 34%, var(--me-border, #26262b));
883
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 7%, var(--me-chip, #1c1c20));
884
+ }
885
+ .me-video-ratio-preset-group.is-active {
886
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 48%, var(--me-border, #26262b));
887
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 16%, transparent);
888
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, var(--me-chip, #1c1c20));
889
+ }
890
+ .me-video-ratio-preset-head {
891
+ display: flex;
892
+ align-items: flex-start;
893
+ justify-content: space-between;
894
+ gap: 12px;
895
+ }
896
+ .me-video-ratio-preset-title {
897
+ min-width: 0;
898
+ display: flex;
899
+ align-items: baseline;
900
+ flex-wrap: wrap;
901
+ gap: 8px 10px;
902
+ }
903
+ .me-video-ratio-preset-ratio {
904
+ font-size: 26px;
905
+ font-weight: 800;
906
+ line-height: 1;
907
+ letter-spacing: -0.03em;
908
+ color: var(--me-fg, #ededf0);
909
+ }
910
+ .me-video-ratio-preset-size {
911
+ font-size: 16px;
912
+ font-weight: 700;
913
+ line-height: 1.2;
914
+ color: var(--me-fg, #ededf0);
915
+ }
916
+ .me-video-ratio-preset-marker {
917
+ width: 14px;
918
+ height: 14px;
919
+ border-radius: 4px;
920
+ flex-shrink: 0;
921
+ border: 1.5px solid color-mix(in srgb, var(--me-border, #26262b) 56%, #ffffff 44%);
922
+ background: transparent;
923
+ margin-top: 3px;
924
+ transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
925
+ }
926
+ .me-video-ratio-preset-group.is-active .me-video-ratio-preset-marker {
927
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 52%, var(--me-border, #26262b));
928
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 14%, transparent);
929
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 18%, transparent);
930
+ }
931
+ .me-video-ratio-preset-hint {
932
+ margin: 0;
933
+ font-size: 14px;
934
+ line-height: 1.45;
935
+ font-weight: 700;
936
+ color: color-mix(in srgb, var(--me-accent, #7c7cf0) 82%, #2563eb 18%);
937
+ }
938
+ .me-video-ratio-preset-tags {
939
+ display: flex;
940
+ flex-wrap: wrap;
941
+ gap: 8px;
942
+ }
943
+ .me-video-ratio-preset-tag {
944
+ display: inline-flex;
945
+ align-items: center;
946
+ min-height: 26px;
947
+ padding: 0 10px;
948
+ border-radius: 8px;
949
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 10%, transparent);
950
+ color: color-mix(in srgb, var(--me-accent, #7c7cf0) 84%, #2563eb 16%);
951
+ font-size: 12px;
952
+ font-weight: 700;
953
+ line-height: 1;
954
+ }
955
+ .me-video-ratio-dimension-grid {
956
+ display: grid;
957
+ grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr);
958
+ gap: 10px;
959
+ align-items: end;
960
+ }
961
+ .me-video-ratio-dimension-grid .me-video-text-field {
962
+ min-width: 0;
963
+ }
964
+ .me-video-ratio-cross {
965
+ color: var(--me-fg-muted, #9a9aa3);
966
+ font-size: 16px;
967
+ font-weight: 700;
968
+ text-align: center;
969
+ padding-bottom: 10px;
970
+ }
971
+ .me-video-ratio-lock-row {
972
+ display: flex;
973
+ align-items: center;
974
+ flex-wrap: wrap;
975
+ gap: 8px;
976
+ }
977
+ .me-video-ratio-lock-toggle,
978
+ .me-video-ratio-quick,
979
+ .me-video-ratio-fit-button {
980
+ border: 1px solid var(--me-border, #26262b);
981
+ background: var(--me-chip, #1c1c20);
982
+ color: var(--me-fg, #ededf0);
983
+ border-radius: 12px;
984
+ cursor: pointer;
985
+ font: inherit;
986
+ transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
987
+ }
988
+ .me-video-ratio-lock-toggle,
989
+ .me-video-ratio-quick {
990
+ min-height: 38px;
991
+ padding: 0 12px;
992
+ font-size: 12px;
993
+ font-weight: 600;
994
+ }
995
+ .me-video-ratio-fit-group {
996
+ display: grid;
997
+ grid-template-columns: repeat(3, minmax(0, 1fr));
998
+ gap: 8px;
999
+ }
1000
+ .me-video-ratio-fit-button {
1001
+ min-height: 44px;
1002
+ padding: 8px 10px;
1003
+ display: inline-flex;
1004
+ align-items: center;
1005
+ justify-content: center;
1006
+ text-align: center;
1007
+ font-size: 12px;
1008
+ font-weight: 700;
1009
+ line-height: 1.35;
1010
+ }
1011
+ .me-video-ratio-lock-inline {
1012
+ width: 30px;
1013
+ height: 30px;
1014
+ min-width: 30px;
1015
+ padding: 0;
1016
+ border-radius: 999px;
1017
+ display: inline-flex;
1018
+ align-items: center;
1019
+ justify-content: center;
1020
+ font-size: 15px;
1021
+ line-height: 1;
1022
+ flex-shrink: 0;
1023
+ }
1024
+ .me-video-ratio-lock-toggle:hover,
1025
+ .me-video-ratio-lock-toggle.is-active,
1026
+ .me-video-ratio-quick:hover,
1027
+ .me-video-ratio-fit-button:hover,
1028
+ .me-video-ratio-fit-button.is-active {
1029
+ transform: translateY(-1px);
1030
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 36%, var(--me-border, #26262b));
1031
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, var(--me-chip, #1c1c20));
1032
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 16%, transparent);
1033
+ }
1034
+ .me-video-ratio-summary,
1035
+ .me-video-ratio-note {
1036
+ margin: 0;
1037
+ color: var(--me-fg-muted, #9a9aa3);
1038
+ font-size: 12px;
1039
+ line-height: 1.55;
1040
+ }
1041
+ .me-video-ratio-summary strong {
1042
+ color: var(--me-fg, #ededf0);
1043
+ font-weight: 700;
1044
+ }
1045
+ .me-video-color-panel {
1046
+ width: 100%;
1047
+ }
1048
+ .me-video-color-grid {
1049
+ display: grid;
1050
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1051
+ gap: 12px;
1052
+ }
1053
+ .me-video-color-card {
1054
+ display: flex;
1055
+ flex-direction: column;
1056
+ gap: 10px;
1057
+ width: 100%;
1058
+ padding: 10px;
1059
+ border-radius: 18px;
1060
+ border: 1px solid var(--me-border, #26262b);
1061
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 88%, transparent);
1062
+ color: var(--me-fg, #ededf0);
1063
+ cursor: pointer;
1064
+ font: inherit;
1065
+ text-align: left;
1066
+ transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
1067
+ }
1068
+ .me-video-color-card:hover {
1069
+ transform: translateY(-1px);
1070
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 34%, var(--me-border, #26262b));
1071
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 7%, var(--me-chip, #1c1c20));
1072
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, transparent);
1073
+ }
1074
+ .me-video-color-card.is-active {
1075
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 48%, var(--me-border, #26262b));
1076
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, var(--me-chip, #1c1c20));
1077
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 16%, transparent);
1078
+ }
1079
+ .me-video-color-preview {
1080
+ position: relative;
1081
+ overflow: hidden;
1082
+ width: 100%;
1083
+ height: 104px;
1084
+ border-radius: 14px;
1085
+ background:
1086
+ radial-gradient(circle at 22% 30%, rgba(255,255,255,0.22), transparent 24%),
1087
+ linear-gradient(135deg, #9ad7c8 0%, #7fb9b3 36%, #6ba68f 58%, #cbac82 100%);
1088
+ transition: filter 120ms ease;
1089
+ }
1090
+ .me-video-color-preview img {
1091
+ width: 100%;
1092
+ height: 100%;
1093
+ display: block;
1094
+ object-fit: cover;
1095
+ }
1096
+ .me-video-color-preview img[hidden] {
1097
+ display: none !important;
1098
+ }
1099
+ .me-video-color-card-title {
1100
+ font-size: 15px;
1101
+ font-weight: 700;
1102
+ line-height: 1.35;
1103
+ color: var(--me-fg, #ededf0);
1104
+ text-align: center;
1105
+ }
1106
+ .me-video-color-slider-control {
1107
+ display: grid;
1108
+ grid-template-columns: 68px minmax(0, 1fr);
1109
+ gap: 10px;
1110
+ align-items: center;
1111
+ min-width: 0;
1112
+ }
1113
+ .me-video-color-slider-value {
1114
+ min-height: 38px;
1115
+ padding: 0 10px;
1116
+ border-radius: 10px;
1117
+ border: 1px solid var(--me-border, #26262b);
1118
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 92%, transparent);
1119
+ color: var(--me-fg, #ededf0);
1120
+ display: inline-flex;
1121
+ align-items: center;
1122
+ justify-content: center;
1123
+ font-size: 13px;
1124
+ font-weight: 700;
1125
+ font-variant-numeric: tabular-nums;
1126
+ box-sizing: border-box;
1127
+ }
1128
+ .me-video-color-slider-control input[type="range"] {
1129
+ --me-slider-track: linear-gradient(90deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.58) 100%);
1130
+ width: 100%;
1131
+ min-width: 0;
1132
+ height: 18px;
1133
+ margin: 0;
1134
+ padding: 0;
1135
+ background: transparent;
1136
+ appearance: none;
1137
+ -webkit-appearance: none;
1138
+ --me-slider-track: linear-gradient(90deg, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0.36) 100%);
1139
+ }
1140
+ .me-video-color-slider-control input[type="range"]::-webkit-slider-runnable-track {
1141
+ height: 6px;
1142
+ border-radius: 999px;
1143
+ background: var(--me-slider-track);
1144
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-border-strong, #34343a) 32%, transparent);
1145
+ }
1146
+ .me-video-color-slider-control input[type="range"]::-webkit-slider-thumb {
1147
+ -webkit-appearance: none;
1148
+ width: 14px;
1149
+ height: 14px;
1150
+ margin-top: -4px;
1151
+ border: 1.5px solid color-mix(in srgb, var(--me-border-strong, #34343a) 56%, white 12%);
1152
+ border-radius: 999px;
1153
+ background: color-mix(in srgb, #ffffff 88%, var(--me-chip, #1c1c20) 12%);
1154
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--me-surface, #141416) 72%, transparent), 0 2px 10px rgba(0,0,0,0.22);
1155
+ cursor: pointer;
1156
+ }
1157
+ .me-video-color-slider-control input[type="range"]::-moz-range-track {
1158
+ height: 6px;
1159
+ border: 0;
1160
+ border-radius: 999px;
1161
+ background: var(--me-slider-track);
1162
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-border-strong, #34343a) 32%, transparent);
1163
+ }
1164
+ .me-video-color-slider-control input[type="range"]::-moz-range-thumb {
1165
+ width: 14px;
1166
+ height: 14px;
1167
+ border: 1.5px solid color-mix(in srgb, var(--me-border-strong, #34343a) 56%, white 12%);
1168
+ border-radius: 999px;
1169
+ background: color-mix(in srgb, #ffffff 88%, var(--me-chip, #1c1c20) 12%);
1170
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--me-surface, #141416) 72%, transparent), 0 2px 10px rgba(0,0,0,0.22);
1171
+ cursor: pointer;
1172
+ }
1173
+ .me-video-color-slider-control input[type="range"][data-adjustment="brightness"] {
1174
+ --me-slider-track: linear-gradient(
1175
+ 90deg,
1176
+ color-mix(in srgb, var(--me-border-strong, #34343a) 96%, transparent) 0%,
1177
+ color-mix(in srgb, var(--me-fg-muted, #9a9aa3) 84%, white 16%) 46%,
1178
+ color-mix(in srgb, #ffffff 92%, var(--me-accent, #7c7cf0) 8%) 100%
1179
+ );
1180
+ }
1181
+ .me-video-color-slider-control input[type="range"][data-adjustment="contrast"] {
1182
+ --me-slider-track: linear-gradient(90deg, #5f6368 0%, #8f9499 50%, #ffffff 100%);
1183
+ }
1184
+ .me-video-color-slider-control input[type="range"][data-adjustment="saturation"] {
1185
+ --me-slider-track: linear-gradient(90deg, #6f3b47 0%, #9a4c62 24%, #d44b46 56%, #ff3b30 100%);
1186
+ }
1187
+ .me-video-color-slider-control input[type="range"][data-adjustment="temperature"] {
1188
+ --me-slider-track: linear-gradient(90deg, #2f5fff 0%, #7e8192 50%, #e2c13c 100%);
1189
+ }
1190
+ .me-video-color-slider-control input[type="range"][data-adjustment="tint"] {
1191
+ --me-slider-track: linear-gradient(90deg, #4caf50 0%, #87907f 50%, #d946ef 100%);
1192
+ }
1193
+ .me-video-color-slider-control input[type="range"][data-adjustment="vibrance"] {
1194
+ --me-slider-track: linear-gradient(90deg, #6d4b56 0%, #a24d61 30%, #d34a4a 65%, #ff3b30 100%);
1195
+ }
1196
+ .me-video-color-slider-control input[type="range"][data-adjustment="gamma"] {
1197
+ --me-slider-track: linear-gradient(90deg, #4f5563 0%, #7b8599 45%, #d5d9e2 100%);
1198
+ }
1199
+ .me-video-color-slider-control input[type="range"][data-adjustment="highlights"],
1200
+ .me-video-color-slider-control input[type="range"][data-adjustment="shadows"],
1201
+ .me-video-color-slider-control input[type="range"][data-adjustment="whites"],
1202
+ .me-video-color-slider-control input[type="range"][data-adjustment="blacks"],
1203
+ .me-video-color-slider-control input[type="range"][data-adjustment="lightSense"] {
1204
+ --me-slider-track: linear-gradient(90deg, #4e5259 0%, #7d828c 50%, #d8dde8 100%);
1205
+ }
1206
+ .me-video-color-slider-control input[type="range"][data-adjustment="sharpen"],
1207
+ .me-video-color-slider-control input[type="range"][data-adjustment="clarity"],
1208
+ .me-video-color-slider-control input[type="range"][data-adjustment="grain"],
1209
+ .me-video-color-slider-control input[type="range"][data-adjustment="fade"],
1210
+ .me-video-color-slider-control input[type="range"][data-adjustment="vignette"] {
1211
+ --me-slider-track: linear-gradient(
1212
+ 90deg,
1213
+ color-mix(in srgb, var(--me-border-strong, #34343a) 92%, transparent) 0%,
1214
+ color-mix(in srgb, var(--me-fg-muted, #9a9aa3) 88%, transparent) 42%,
1215
+ color-mix(in srgb, var(--me-accent, #7c7cf0) 22%, var(--me-fg, #ededf0)) 100%
1216
+ );
1217
+ }
1218
+ .me-video-effects-panel .me-video-text-section {
1219
+ gap: 12px;
1220
+ margin-top: 14px;
1221
+ padding: 14px 14px 12px;
1222
+ border-radius: 16px;
1223
+ border: 1px solid color-mix(in srgb, var(--me-border, #26262b) 86%, transparent);
1224
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 62%, var(--me-surface, #141416) 38%);
1225
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
1226
+ }
1227
+ .me-video-effects-panel .me-video-text-section-title {
1228
+ padding-bottom: 4px;
1229
+ font-size: 14px;
1230
+ border-bottom: 1px solid color-mix(in srgb, var(--me-border, #26262b) 74%, transparent);
1231
+ }
1232
+ .me-video-effects-panel .me-video-text-section-body {
1233
+ gap: 0;
1234
+ }
1235
+ .me-video-effects-panel .me-video-text-row {
1236
+ grid-template-columns: 68px minmax(0, 1fr);
1237
+ align-items: center;
1238
+ padding: 8px 0;
1239
+ }
1240
+ .me-video-effects-panel .me-video-text-section-body > .me-video-text-row + .me-video-text-row {
1241
+ border-top: 1px solid color-mix(in srgb, var(--me-border, #26262b) 64%, transparent);
1242
+ }
1243
+ .me-video-effects-panel .me-video-text-row-label {
1244
+ font-size: 12px;
1245
+ font-weight: 600;
1246
+ color: color-mix(in srgb, var(--me-fg, #ededf0) 88%, var(--me-fg-muted, #9a9aa3));
1247
+ }
1248
+ .me-video-effects-panel .me-video-color-slider-control {
1249
+ grid-template-columns: minmax(0, 1fr) 62px;
1250
+ gap: 8px;
1251
+ }
1252
+ .me-video-effects-panel .me-video-color-slider-value {
1253
+ display: none;
1254
+ }
1255
+ .me-video-feature-one-panel .me-video-color-slider-control input[type="range"] {
1256
+ align-self: center;
1257
+ }
1258
+ .me-video-feature-one-panel .me-video-color-number-control input[type="number"] {
1259
+ width: 100%;
1260
+ min-height: 34px;
1261
+ padding: 0 8px;
1262
+ border-radius: 10px;
1263
+ border: 1px solid var(--me-border, #26262b);
1264
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 92%, transparent);
1265
+ color: var(--me-fg, #ededf0);
1266
+ box-sizing: border-box;
1267
+ font-size: 12px;
1268
+ font-weight: 700;
1269
+ font-variant-numeric: tabular-nums;
1270
+ text-align: right;
1271
+ outline: none;
1272
+ appearance: textfield;
1273
+ -moz-appearance: textfield;
1274
+ transition: border-color 120ms ease, box-shadow 120ms ease, opacity 120ms ease;
1275
+ }
1276
+ .me-video-feature-one-panel .me-video-color-number-control input[type="number"]:focus {
1277
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 58%, var(--me-border-strong, #34343a));
1278
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--me-accent, #7c7cf0) 16%, transparent);
1279
+ }
1280
+ .me-video-feature-one-panel .me-video-color-number-control input[type="number"]:disabled {
1281
+ opacity: 0.48;
1282
+ cursor: not-allowed;
1283
+ }
1284
+ .me-video-feature-one-panel .me-video-color-number-control input[type="number"]::-webkit-outer-spin-button,
1285
+ .me-video-feature-one-panel .me-video-color-number-control input[type="number"]::-webkit-inner-spin-button {
1286
+ -webkit-appearance: none;
1287
+ margin: 0;
1288
+ }
1289
+ .me-video-feature-one-meta-section .me-video-text-row {
1290
+ align-items: flex-start;
1291
+ }
1292
+ .me-video-feature-one-meta-value {
1293
+ min-height: 20px;
1294
+ padding: 2px 0;
1295
+ color: var(--me-fg, #ededf0);
1296
+ font-size: 13px;
1297
+ line-height: 1.45;
1298
+ word-break: break-word;
1299
+ white-space: normal;
1300
+ }
1301
+ .me-video-sticker-panel {
1302
+ width: 100%;
1303
+ }
1304
+ .me-video-sticker-upload-zone {
1305
+ position: relative;
1306
+ display: flex;
1307
+ flex-direction: column;
1308
+ align-items: center;
1309
+ justify-content: center;
1310
+ gap: 8px;
1311
+ min-height: 148px;
1312
+ padding: 18px 16px;
1313
+ border-radius: 18px;
1314
+ border: 1.5px dashed color-mix(in srgb, var(--me-border, #26262b) 72%, #ffffff 28%);
1315
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 80%, transparent);
1316
+ text-align: center;
1317
+ cursor: pointer;
1318
+ transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
1319
+ overflow: hidden;
1320
+ }
1321
+ .me-video-sticker-upload-zone:hover,
1322
+ .me-video-sticker-upload-zone.is-dragover {
1323
+ transform: translateY(-1px);
1324
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 44%, var(--me-border, #26262b));
1325
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 10%, var(--me-chip, #1c1c20));
1326
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 14%, transparent);
1327
+ }
1328
+ .me-video-sticker-upload-zone input {
1329
+ display: none !important;
1330
+ }
1331
+ .me-video-sticker-upload-icon {
1332
+ display: inline-flex;
1333
+ align-items: center;
1334
+ justify-content: center;
1335
+ width: 52px;
1336
+ height: 52px;
1337
+ border-radius: 16px;
1338
+ background: color-mix(in srgb, var(--me-bg, #08080a) 16%, transparent);
1339
+ font-size: 26px;
1340
+ }
1341
+ .me-video-sticker-upload-text {
1342
+ font-size: 15px;
1343
+ font-weight: 700;
1344
+ color: var(--me-fg, #ededf0);
1345
+ }
1346
+ .me-video-sticker-upload-subtext {
1347
+ font-size: 12px;
1348
+ line-height: 1.5;
1349
+ color: var(--me-fg-muted, #9a9aa3);
1350
+ }
1351
+ .me-video-sticker-library {
1352
+ display: flex;
1353
+ flex-direction: column;
1354
+ gap: 16px;
1355
+ }
1356
+ .me-video-sticker-library-group {
1357
+ display: flex;
1358
+ flex-direction: column;
1359
+ gap: 10px;
1360
+ }
1361
+ .me-video-sticker-library-title {
1362
+ font-size: 13px;
1363
+ font-weight: 700;
1364
+ color: var(--me-fg, #ededf0);
1365
+ }
1366
+ .me-video-sticker-grid {
1367
+ display: grid;
1368
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1369
+ gap: 10px;
1370
+ }
1371
+ .me-video-sticker-card {
1372
+ min-height: 72px;
1373
+ border-radius: 14px;
1374
+ border: 1px solid var(--me-border, #26262b);
1375
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 88%, transparent);
1376
+ color: var(--me-fg, #ededf0);
1377
+ cursor: pointer;
1378
+ display: inline-flex;
1379
+ align-items: center;
1380
+ justify-content: center;
1381
+ padding: 10px;
1382
+ font: inherit;
1383
+ transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
1384
+ }
1385
+ .me-video-sticker-card:hover {
1386
+ transform: translateY(-1px);
1387
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 36%, var(--me-border, #26262b));
1388
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 10%, var(--me-chip, #1c1c20));
1389
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 14%, transparent);
1390
+ }
1391
+ .me-video-sticker-card-emoji {
1392
+ font-size: 32px;
1393
+ line-height: 1;
1394
+ }
1395
+ .me-video-sticker-card img {
1396
+ width: 40px;
1397
+ height: 40px;
1398
+ object-fit: contain;
1399
+ display: block;
1400
+ }
1401
+ @media (max-width: 960px) {
1402
+ .me-video-workspace {
1403
+ position: relative;
1404
+ }
1405
+ .me-video-inspector-rail {
1406
+ position: absolute;
1407
+ top: 12px;
1408
+ right: 12px;
1409
+ bottom: 12px;
1410
+ width: min(380px, calc(100% - 96px));
1411
+ max-width: min(380px, calc(100% - 96px));
1412
+ min-width: min(320px, calc(100% - 96px));
1413
+ z-index: 48;
1414
+ border: 1px solid var(--me-border, #26262b);
1415
+ border-radius: 18px;
1416
+ box-shadow: 0 22px 68px rgba(0, 0, 0, 0.28);
1417
+ }
1418
+ .me-video-text-panel {
1419
+ height: 100%;
1420
+ }
1421
+ }
1422
+ @media (max-width: 920px) {
1423
+ .me-video-text-panel {
1424
+ padding: 18px 16px 20px;
1425
+ }
1426
+ }
1427
+ `,document.head.appendChild(e),Xo=!0}function wn(){if(qo||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-timeline-enhancer-style",e.textContent=`
1428
+ .me-video-transition-panel {
1429
+ width: 100%;
1430
+ }
1431
+ .me-video-transition-selection {
1432
+ margin: 4px 0 10px;
1433
+ color: var(--me-fg, #ededf0);
1434
+ font-size: 12px;
1435
+ font-weight: 600;
1436
+ }
1437
+ .me-video-transition-grid {
1438
+ display: grid;
1439
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1440
+ gap: 8px;
1441
+ margin-bottom: 12px;
1442
+ }
1443
+ .me-video-transition-choice {
1444
+ display: flex;
1445
+ flex-direction: column;
1446
+ align-items: flex-start;
1447
+ justify-content: space-between;
1448
+ gap: 6px;
1449
+ min-height: 66px;
1450
+ padding: 10px;
1451
+ border-radius: 12px;
1452
+ border: 1px solid var(--me-border, #26262b);
1453
+ background: var(--me-chip, #1c1c20);
1454
+ color: var(--me-fg, #ededf0);
1455
+ cursor: pointer;
1456
+ font: inherit;
1457
+ text-align: left;
1458
+ transition: transform 120ms ease, background 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
1459
+ }
1460
+ .me-video-transition-choice:hover,
1461
+ .me-video-transition-choice.is-active {
1462
+ transform: translateY(-1px);
1463
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 36%, var(--me-border, #26262b));
1464
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 12%, var(--me-chip, #1c1c20));
1465
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 16%, transparent);
1466
+ }
1467
+ .me-video-transition-choice strong {
1468
+ font-size: 12px;
1469
+ font-weight: 700;
1470
+ }
1471
+ .me-video-transition-choice span {
1472
+ color: var(--me-fg-muted, #9a9aa3);
1473
+ font-size: 11px;
1474
+ line-height: 1.45;
1475
+ }
1476
+ .me-video-transition-track {
1477
+ position: absolute;
1478
+ inset: 22px 0 auto 0;
1479
+ height: 60px;
1480
+ pointer-events: none;
1481
+ z-index: 18;
1482
+ }
1483
+ .me-video-transition-marker {
1484
+ position: absolute;
1485
+ top: 0;
1486
+ transform: translateX(-50%);
1487
+ border: 0;
1488
+ background: transparent;
1489
+ padding: 0;
1490
+ pointer-events: auto;
1491
+ cursor: pointer;
1492
+ font: inherit;
1493
+ }
1494
+ .me-video-transition-marker.is-cut-only {
1495
+ width: 18px;
1496
+ height: 60px;
1497
+ }
1498
+ .me-video-transition-marker::before {
1499
+ content: "";
1500
+ position: absolute;
1501
+ left: 50%;
1502
+ top: 14px;
1503
+ width: 2px;
1504
+ height: 38px;
1505
+ transform: translateX(-50%);
1506
+ background: color-mix(in srgb, var(--me-border-strong, #34343a) 84%, transparent);
1507
+ }
1508
+ .me-video-transition-pill {
1509
+ position: relative;
1510
+ display: inline-flex;
1511
+ align-items: center;
1512
+ justify-content: center;
1513
+ min-width: 54px;
1514
+ height: 24px;
1515
+ padding: 0 10px;
1516
+ border-radius: 999px;
1517
+ border: 1px solid var(--me-border, #26262b);
1518
+ background: rgba(20, 20, 22, 0.92);
1519
+ color: var(--me-fg-muted, #9a9aa3);
1520
+ font-size: 11px;
1521
+ font-weight: 700;
1522
+ letter-spacing: 0.01em;
1523
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
1524
+ transition: transform 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
1525
+ }
1526
+ .me-video-transition-marker.is-cut-only .me-video-transition-pill {
1527
+ min-width: 10px;
1528
+ width: 10px;
1529
+ height: 10px;
1530
+ padding: 0;
1531
+ border-radius: 999px;
1532
+ background: color-mix(in srgb, var(--me-border-strong, #34343a) 72%, transparent);
1533
+ border-color: color-mix(in srgb, var(--me-border, #26262b) 86%, transparent);
1534
+ box-shadow: none;
1535
+ color: transparent;
1536
+ font-size: 0;
1537
+ }
1538
+ .me-video-transition-marker:hover .me-video-transition-pill,
1539
+ .me-video-transition-marker.is-active .me-video-transition-pill {
1540
+ transform: translateY(-1px);
1541
+ color: var(--me-fg, #ededf0);
1542
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 36%, var(--me-border, #26262b));
1543
+ }
1544
+ .me-video-transition-marker.is-cut-only:hover .me-video-transition-pill,
1545
+ .me-video-transition-marker.is-cut-only.is-active .me-video-transition-pill {
1546
+ color: transparent;
1547
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 32%, var(--me-chip, #1c1c20));
1548
+ }
1549
+ .me-video-transition-marker.is-enabled .me-video-transition-pill,
1550
+ .me-video-transition-marker.is-active .me-video-transition-pill {
1551
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 14%, rgba(20, 20, 22, 0.92));
1552
+ color: var(--me-fg, #ededf0);
1553
+ }
1554
+ .me-video-transition-actions {
1555
+ display: flex;
1556
+ align-items: center;
1557
+ gap: 8px;
1558
+ margin-top: 2px;
1559
+ }
1560
+ .me-video-transition-actions .me-video-text-cta {
1561
+ flex: 1;
1562
+ }
1563
+ .me-video-text-timeline {
1564
+ display: flex;
1565
+ flex-direction: column;
1566
+ gap: 6px;
1567
+ margin-top: 6px;
1568
+ padding-bottom: 4px;
1569
+ position: relative;
1570
+ z-index: 2;
1571
+ }
1572
+ .me-video-overlay-track-host {
1573
+ position: relative;
1574
+ margin-top: 6px;
1575
+ overflow: visible;
1576
+ }
1577
+ .me-video-text-timeline.me-video-overlay-timeline {
1578
+ position: absolute;
1579
+ inset: 0;
1580
+ display: block;
1581
+ margin-top: 0;
1582
+ padding-bottom: 0;
1583
+ pointer-events: none;
1584
+ z-index: 6;
1585
+ }
1586
+ .me-video-text-track-row {
1587
+ position: relative;
1588
+ height: 36px;
1589
+ border-radius: 8px;
1590
+ background: color-mix(in srgb, var(--me-chip, #1c1c20) 78%, transparent);
1591
+ overflow: visible;
1592
+ }
1593
+ .me-video-overlay-track-row {
1594
+ position: absolute;
1595
+ left: 0;
1596
+ right: 0;
1597
+ height: 36px;
1598
+ overflow: visible;
1599
+ pointer-events: none;
1600
+ }
1601
+ .me-video-text-track-clip {
1602
+ position: absolute;
1603
+ top: 3px;
1604
+ bottom: 3px;
1605
+ min-width: 36px;
1606
+ border-radius: 8px;
1607
+ border: 2px solid rgba(255, 255, 255, 0.18);
1608
+ background: linear-gradient(180deg, rgba(66, 45, 112, 0.96) 0%, rgba(55, 36, 94, 0.96) 100%);
1609
+ color: #f6eeff;
1610
+ display: flex;
1611
+ align-items: center;
1612
+ gap: 8px;
1613
+ padding: 0 12px 0 34px;
1614
+ box-sizing: border-box;
1615
+ cursor: grab;
1616
+ user-select: none;
1617
+ touch-action: none;
1618
+ overflow: hidden;
1619
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
1620
+ opacity: 0.82;
1621
+ transform: none;
1622
+ pointer-events: auto;
1623
+ z-index: 2;
1624
+ }
1625
+ .me-video-text-track-clip.is-active {
1626
+ border: 3px solid #ffffff;
1627
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.26), 0 10px 22px rgba(0, 0, 0, 0.28);
1628
+ opacity: 1;
1629
+ transform: translateY(-1px);
1630
+ }
1631
+ .me-video-text-track-icon {
1632
+ position: absolute;
1633
+ left: 10px;
1634
+ top: 50%;
1635
+ transform: translateY(-50%);
1636
+ font-size: 11px;
1637
+ font-weight: 700;
1638
+ letter-spacing: 0.01em;
1639
+ opacity: 0.96;
1640
+ pointer-events: none;
1641
+ }
1642
+ .me-video-text-track-label {
1643
+ min-width: 0;
1644
+ overflow: hidden;
1645
+ text-overflow: ellipsis;
1646
+ white-space: nowrap;
1647
+ font-size: 12px;
1648
+ font-weight: 600;
1649
+ line-height: 1;
1650
+ pointer-events: none;
1651
+ }
1652
+ .me-video-text-track-handle {
1653
+ position: absolute;
1654
+ top: 0;
1655
+ bottom: 0;
1656
+ width: 10px;
1657
+ cursor: ew-resize;
1658
+ background: var(--me-accent, #7c7cf0);
1659
+ }
1660
+ .me-video-text-track-handle.is-start {
1661
+ left: 0;
1662
+ border-radius: 8px 0 0 8px;
1663
+ }
1664
+ .me-video-text-track-handle.is-end {
1665
+ right: 0;
1666
+ border-radius: 0 8px 8px 0;
1667
+ }
1668
+ .me-video-text-track-handle::before {
1669
+ content: "";
1670
+ position: absolute;
1671
+ left: 50%;
1672
+ top: 50%;
1673
+ width: 2px;
1674
+ height: 16px;
1675
+ border-radius: 2px;
1676
+ transform: translate(-50%, -50%);
1677
+ background: rgba(255, 255, 255, 0.85);
1678
+ }
1679
+ .me-video-text-track-clip.is-active .me-video-text-track-handle {
1680
+ background: var(--me-accent, #7c7cf0);
1681
+ }
1682
+ .me-video-sticker-track-clip {
1683
+ background: linear-gradient(180deg, rgba(10, 125, 88, 0.96) 0%, rgba(8, 104, 73, 0.96) 100%);
1684
+ color: #f0fff7;
1685
+ }
1686
+ .me-video-filter-track-clip {
1687
+ background: linear-gradient(180deg, rgba(154, 88, 15, 0.96) 0%, rgba(121, 66, 10, 0.96) 100%);
1688
+ color: #fff7ed;
1689
+ }
1690
+ .me-video-sticker-track-clip .me-video-text-track-icon {
1691
+ font-size: 13px;
1692
+ }
1693
+ .me-video-filter-track-clip .me-video-text-track-icon {
1694
+ font-size: 12px;
1695
+ letter-spacing: 0.02em;
1696
+ }
1697
+ .me-video-sticker-track-clip .me-video-text-track-handle {
1698
+ background: #10b981;
1699
+ }
1700
+ .me-video-filter-track-clip .me-video-text-track-handle {
1701
+ background: #f59e0b;
1702
+ }
1703
+ .me-video-sticker-canvas-hit::before {
1704
+ border-radius: 16px;
1705
+ }
1706
+ .me-video-filter-effect-layer,
1707
+ .me-video-filter-control-layer {
1708
+ position: absolute;
1709
+ inset: 0;
1710
+ overflow: visible;
1711
+ }
1712
+ .me-video-filter-effect-layer {
1713
+ z-index: 10;
1714
+ pointer-events: none;
1715
+ }
1716
+ .me-video-filter-control-layer {
1717
+ z-index: 16;
1718
+ pointer-events: none;
1719
+ }
1720
+ .me-video-filter-canvas-effect {
1721
+ position: absolute;
1722
+ inset: 0;
1723
+ border-radius: 16px;
1724
+ background: rgba(255, 255, 255, 0.035);
1725
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08), 0 10px 24px rgba(0, 0, 0, 0.12);
1726
+ pointer-events: none;
1727
+ }
1728
+ .me-video-filter-canvas-hit {
1729
+ background: transparent;
1730
+ pointer-events: auto;
1731
+ }
1732
+ .me-video-filter-canvas-hit::before {
1733
+ border-radius: 16px;
1734
+ }
1735
+ .me-video-text-canvas-layer {
1736
+ position: absolute;
1737
+ inset: 0;
1738
+ z-index: 12;
1739
+ pointer-events: none;
1740
+ }
1741
+ .me-video-text-canvas-layer.me-video-sticker-canvas-layer {
1742
+ pointer-events: none;
1743
+ }
1744
+ .me-video-text-canvas-hit {
1745
+ position: absolute;
1746
+ border: 0;
1747
+ background: transparent;
1748
+ cursor: pointer;
1749
+ pointer-events: auto;
1750
+ box-sizing: border-box;
1751
+ touch-action: none;
1752
+ overflow: visible;
1753
+ }
1754
+ .me-video-text-canvas-hit::before {
1755
+ content: "";
1756
+ position: absolute;
1757
+ inset: -3px;
1758
+ border-radius: 12px;
1759
+ border: 0 solid transparent;
1760
+ transition: border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
1761
+ pointer-events: none;
1762
+ }
1763
+ .me-video-text-canvas-hit.is-active::before {
1764
+ border-width: 2px;
1765
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 88%, white 12%);
1766
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 24%, transparent), 0 12px 28px rgba(0, 0, 0, 0.18);
1767
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 10%, transparent);
1768
+ }
1769
+ .me-video-text-canvas-hit.is-active {
1770
+ cursor: move;
1771
+ }
1772
+ .me-video-text-canvas-handle {
1773
+ position: absolute;
1774
+ width: 12px;
1775
+ height: 12px;
1776
+ margin: -6px 0 0 -6px;
1777
+ border: 0;
1778
+ border-radius: 999px;
1779
+ background: #ffffff;
1780
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18);
1781
+ pointer-events: auto;
1782
+ display: none;
1783
+ padding: 0;
1784
+ }
1785
+ .me-video-text-canvas-hit.is-active .me-video-text-canvas-handle {
1786
+ display: block;
1787
+ }
1788
+ .me-video-text-canvas-handle[data-handle="tl"],
1789
+ .me-video-text-canvas-handle[data-handle="br"] {
1790
+ cursor: nwse-resize;
1791
+ }
1792
+ .me-video-text-canvas-handle[data-handle="tr"],
1793
+ .me-video-text-canvas-handle[data-handle="bl"] {
1794
+ cursor: nesw-resize;
1795
+ }
1796
+ .me-video-text-canvas-handle[data-handle="tm"],
1797
+ .me-video-text-canvas-handle[data-handle="bm"] {
1798
+ cursor: ns-resize;
1799
+ }
1800
+ .me-video-text-canvas-handle[data-handle="ml"],
1801
+ .me-video-text-canvas-handle[data-handle="mr"] {
1802
+ cursor: ew-resize;
1803
+ }
1804
+ .me-video-text-canvas-handle[data-handle="rotate"] {
1805
+ width: 14px;
1806
+ height: 14px;
1807
+ margin: 0;
1808
+ transform: translate(-50%, -26px);
1809
+ background: var(--me-accent, #7c7cf0);
1810
+ box-shadow: 0 0 0 2px #ffffff, 0 6px 14px rgba(0, 0, 0, 0.22);
1811
+ cursor: grab;
1812
+ }
1813
+ .me-video-text-canvas-handle[data-handle="rotate"]::after {
1814
+ content: "";
1815
+ position: absolute;
1816
+ left: 50%;
1817
+ top: 100%;
1818
+ width: 2px;
1819
+ height: 16px;
1820
+ transform: translateX(-50%);
1821
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 80%, white 20%);
1822
+ border-radius: 999px;
1823
+ }
1824
+ .me-video-text-canvas-handle[data-handle="rotate"]:active {
1825
+ cursor: grabbing;
1826
+ }
1827
+ .me-video-timeline-scroll > div > div:has(> [data-clipblock]) {
1828
+ height: 52px !important;
1829
+ }
1830
+ [data-clipblock] {
1831
+ opacity: 0.82 !important;
1832
+ transform: none !important;
1833
+ }
1834
+ [data-clipblock] > div:nth-child(2) {
1835
+ border: 2px solid rgba(255, 255, 255, 0.18) !important;
1836
+ box-shadow: none !important;
1837
+ }
1838
+ .me-video-multi-selected {
1839
+ opacity: 1 !important;
1840
+ transform: translateY(-1px) !important;
1841
+ }
1842
+ .me-video-multi-selected > div:nth-child(2) {
1843
+ border: 3px solid #ffffff !important;
1844
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.26), 0 10px 22px rgba(0, 0, 0, 0.28) !important;
1845
+ }
1846
+ @media (max-width: 920px) {
1847
+ .me-video-transition-grid {
1848
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1849
+ }
1850
+ }
1851
+ `,document.head.appendChild(e),qo=!0}function re(e,t,n){return Math.min(Math.max(e,t),n)}function In(e){if(!Number.isFinite(e))return 0;let t=e%360;return t>180&&(t-=360),t<-180&&(t+=360),Math.abs(t)<.001?0:t}function Xn(e="auto"){return e!=="auto"?e:typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: light)").matches?"light":"dark"}function Ko(e){if(!e)return null;const t=String(e).toLowerCase();return t==="zh-hant"||/^zh-(tw|hk|mo)/.test(t)?"zh-Hant":t==="zh"||t.startsWith("zh-")?"zh":(t.startsWith("en"),"en")}function ln(e){const t=Ko(e);return t||(typeof navigator<"u"?Ko(navigator.language)??"en":"en")}const fo={en:{untitledText:"Untitled text",textPresets:{heading:"Heading and some body",subtitle:"Subtitle line",label:"Label"},text:{tool:"Text",addText:"Add text",moveOnCanvas:"Move on canvas",close:"Close",hint:"Match the reference text styling here first. This version renders text as a full-length overlay, so font, shadow, stroke, background and alignment will export exactly.",empty:"No text overlay yet. Add one to start editing.",heading:"Heading",subtitle:"Subtitle",label:"Label",placeholder:"Type your text",content:"Content",font:"Font",weight:"Weight",fontSize:"Font Size",boxWidth:"Box Width",color:"Color",background:"Background",stroke:"Stroke",strokeColor:"Stroke Color",opacity:"Opacity",shadowBlur:"Shadow Blur",align:"Align",duplicate:"Duplicate",delete:"Delete",addLabel:"Add label"},transitions:{tool:"Transitions",title:"Transitions",fadeAll:"Fade all",close:"Close",hint:"Pick a cut between clips on the timeline. These transitions are exported through ffmpeg xfade/acrossfade, so the result is baked into the final video.",empty:"Need at least 2 clips to place a transition. Split or duplicate a clip first.",duration:"Duration",clearSelected:"Clear selected",clearAll:"Clear all",cut:"Cut",instantCut:"Instant cut",selection:(e,t)=>`Between clip ${e} and clip ${t}`,selectionEmpty:"Open Trim to place transitions on the timeline.",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`Between clip ${e} and clip ${t}`,markerTitle:(e,t,n,o)=>`Clip ${e} \u2192 ${t}: ${n}${o?` (${o})`:""}`,options:{none:{label:"Cut",short:"Cut"},fade:{label:"Fade",short:"Fade"},slide:{label:"Slide",short:"Slide"},wipe:{label:"Wipe",short:"Wipe"},flip:{label:"Flip",short:"Flip"},clockWipe:{label:"Clock",short:"Clock"},star:{label:"Star",short:"Star"},circle:{label:"Circle",short:"Circle"},rectangle:{label:"Rectangle",short:"Rect"}}}},zh:{untitledText:"\u672A\u547D\u540D\u6587\u5B57",textPresets:{heading:"\u4E3B\u6807\u9898\u548C\u6B63\u6587",subtitle:"\u5B57\u5E55\u6587\u6848",label:"\u6807\u7B7E"},text:{tool:"\u6587\u5B57",addText:"\u6DFB\u52A0\u6587\u5B57",moveOnCanvas:"\u753B\u5E03\u5B9A\u4F4D",close:"\u5173\u95ED",hint:"\u5148\u5728\u8FD9\u91CC\u628A\u6587\u5B57\u6837\u5F0F\u8C03\u5230\u548C\u53C2\u8003\u4E00\u81F4\u3002\u8BE5\u7248\u672C\u4F1A\u628A\u6587\u5B57\u4F5C\u4E3A\u5B8C\u6574\u8986\u76D6\u5C42\u5BFC\u51FA\uFF0C\u5B57\u4F53\u3001\u9634\u5F71\u3001\u63CF\u8FB9\u3001\u80CC\u666F\u548C\u5BF9\u9F50\u65B9\u5F0F\u90FD\u4F1A\u88AB\u51C6\u786E\u4FDD\u7559\u3002",empty:"\u8FD8\u6CA1\u6709\u6587\u5B57\u56FE\u5C42\uFF0C\u5148\u6DFB\u52A0\u4E00\u4E2A\u5F00\u59CB\u7F16\u8F91\u3002",heading:"\u6807\u9898",subtitle:"\u5B57\u5E55",label:"\u6807\u7B7E",placeholder:"\u8F93\u5165\u6587\u5B57\u5185\u5BB9",content:"\u5185\u5BB9",font:"\u5B57\u4F53",weight:"\u5B57\u91CD",fontSize:"\u5B57\u53F7",boxWidth:"\u6587\u672C\u5BBD\u5EA6",color:"\u989C\u8272",background:"\u80CC\u666F",stroke:"\u63CF\u8FB9",strokeColor:"\u63CF\u8FB9\u989C\u8272",opacity:"\u900F\u660E\u5EA6",shadowBlur:"\u9634\u5F71\u6A21\u7CCA",align:"\u5BF9\u9F50",duplicate:"\u590D\u5236",delete:"\u5220\u9664",addLabel:"\u6DFB\u52A0\u6807\u7B7E"},transitions:{tool:"\u8F6C\u573A",title:"\u8F6C\u573A",fadeAll:"\u5168\u90E8\u6DE1\u5165\u6DE1\u51FA",close:"\u5173\u95ED",hint:"\u5728\u65F6\u95F4\u8F74\u4E0A\u9009\u62E9\u4E24\u4E2A\u7247\u6BB5\u4E4B\u95F4\u7684\u5207\u70B9\u3002\u8F6C\u573A\u4F1A\u901A\u8FC7 ffmpeg \u7684 xfade/acrossfade \u70D8\u7119\u8FDB\u6700\u7EC8\u5BFC\u51FA\u89C6\u9891\u3002",empty:"\u81F3\u5C11\u9700\u8981 2 \u4E2A\u7247\u6BB5\u624D\u80FD\u8BBE\u7F6E\u8F6C\u573A\u3002\u53EF\u4EE5\u5148\u5206\u5272\u6216\u590D\u5236\u7247\u6BB5\u3002",duration:"\u65F6\u957F",clearSelected:"\u6E05\u9664\u5F53\u524D",clearAll:"\u6E05\u9664\u5168\u90E8",cut:"\u786C\u5207",instantCut:"\u76F4\u63A5\u5207\u6362",selection:(e,t)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5`,selectionEmpty:"\u6253\u5F00\u526A\u8F91\u5DE5\u5177\u540E\uFF0C\u53EF\u5728\u65F6\u95F4\u8F74\u4E0A\u8BBE\u7F6E\u8F6C\u573A\u3002",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`\u7B2C ${e} \u6BB5\u5230\u7B2C ${t} \u6BB5\u4E4B\u95F4`,markerTitle:(e,t,n,o)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5\uFF1A${n}${o?`\uFF08${o}\uFF09`:""}`,options:{none:{label:"\u786C\u5207",short:"\u786C\u5207"},fade:{label:"\u6DE1\u5316",short:"\u6DE1\u5316"},slide:{label:"\u6ED1\u52A8",short:"\u6ED1\u52A8"},wipe:{label:"\u64E6\u9664",short:"\u64E6\u9664"},flip:{label:"\u7FFB\u8F6C",short:"\u7FFB\u8F6C"},clockWipe:{label:"\u65F6\u949F",short:"\u65F6\u949F"},star:{label:"\u661F\u5F62",short:"\u661F\u5F62"},circle:{label:"\u5706\u5F62",short:"\u5706\u5F62"},rectangle:{label:"\u77E9\u5F62",short:"\u77E9\u5F62"}}}},"zh-Hant":{untitledText:"\u672A\u547D\u540D\u6587\u5B57",textPresets:{heading:"\u4E3B\u6A19\u984C\u548C\u6B63\u6587",subtitle:"\u5B57\u5E55\u6587\u6848",label:"\u6A19\u7C64"},text:{tool:"\u6587\u5B57",addText:"\u65B0\u589E\u6587\u5B57",moveOnCanvas:"\u756B\u5E03\u5B9A\u4F4D",close:"\u95DC\u9589",hint:"\u5148\u5728\u9019\u88E1\u628A\u6587\u5B57\u6A23\u5F0F\u8ABF\u5230\u548C\u53C3\u8003\u4E00\u81F4\u3002\u9019\u500B\u7248\u672C\u6703\u628A\u6587\u5B57\u4F5C\u70BA\u5B8C\u6574\u8986\u84CB\u5C64\u5C0E\u51FA\uFF0C\u5B57\u9AD4\u3001\u9670\u5F71\u3001\u63CF\u908A\u3001\u80CC\u666F\u548C\u5C0D\u9F4A\u65B9\u5F0F\u90FD\u6703\u88AB\u6E96\u78BA\u4FDD\u7559\u3002",empty:"\u9084\u6C92\u6709\u6587\u5B57\u5716\u5C64\uFF0C\u5148\u65B0\u589E\u4E00\u500B\u958B\u59CB\u7DE8\u8F2F\u3002",heading:"\u6A19\u984C",subtitle:"\u5B57\u5E55",label:"\u6A19\u7C64",placeholder:"\u8F38\u5165\u6587\u5B57\u5167\u5BB9",content:"\u5167\u5BB9",font:"\u5B57\u9AD4",weight:"\u5B57\u91CD",fontSize:"\u5B57\u7D1A",boxWidth:"\u6587\u5B57\u5BEC\u5EA6",color:"\u984F\u8272",background:"\u80CC\u666F",stroke:"\u63CF\u908A",strokeColor:"\u63CF\u908A\u984F\u8272",opacity:"\u900F\u660E\u5EA6",shadowBlur:"\u9670\u5F71\u6A21\u7CCA",align:"\u5C0D\u9F4A",duplicate:"\u8907\u88FD",delete:"\u522A\u9664",addLabel:"\u65B0\u589E\u6A19\u7C64"},transitions:{tool:"\u8F49\u5834",title:"\u8F49\u5834",fadeAll:"\u5168\u90E8\u6DE1\u5316",close:"\u95DC\u9589",hint:"\u5728\u6642\u9593\u8EF8\u4E0A\u9078\u64C7\u5169\u500B\u7247\u6BB5\u4E4B\u9593\u7684\u5207\u9EDE\u3002\u8F49\u5834\u6703\u900F\u904E ffmpeg \u7684 xfade/acrossfade \u70D8\u7119\u9032\u6700\u7D42\u5C0E\u51FA\u5F71\u7247\u3002",empty:"\u81F3\u5C11\u9700\u8981 2 \u500B\u7247\u6BB5\u624D\u80FD\u8A2D\u5B9A\u8F49\u5834\u3002\u53EF\u4EE5\u5148\u5206\u5272\u6216\u8907\u88FD\u7247\u6BB5\u3002",duration:"\u6642\u9577",clearSelected:"\u6E05\u9664\u76EE\u524D",clearAll:"\u6E05\u9664\u5168\u90E8",cut:"\u786C\u5207",instantCut:"\u76F4\u63A5\u5207\u63DB",selection:(e,t)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5`,selectionEmpty:"\u6253\u958B\u526A\u8F2F\u5DE5\u5177\u5F8C\uFF0C\u53EF\u5728\u6642\u9593\u8EF8\u4E0A\u8A2D\u5B9A\u8F49\u5834\u3002",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`\u7B2C ${e} \u6BB5\u5230\u7B2C ${t} \u6BB5\u4E4B\u9593`,markerTitle:(e,t,n,o)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5\uFF1A${n}${o?`\uFF08${o}\uFF09`:""}`,options:{none:{label:"\u786C\u5207",short:"\u786C\u5207"},fade:{label:"\u6DE1\u5316",short:"\u6DE1\u5316"},slide:{label:"\u6ED1\u52D5",short:"\u6ED1\u52D5"},wipe:{label:"\u64E6\u9664",short:"\u64E6\u9664"},flip:{label:"\u7FFB\u8F49",short:"\u7FFB\u8F49"},clockWipe:{label:"\u6642\u9418",short:"\u6642\u9418"},star:{label:"\u661F\u5F62",short:"\u661F\u5F62"},circle:{label:"\u5713\u5F62",short:"\u5713\u5F62"},rectangle:{label:"\u77E9\u5F62",short:"\u77E9\u5F62"}}}}};function Uo(e){const t=ln(e);return fo[t]??fo.en}const Go={en:{tool:"Effects",title:"Effects",close:"Close",hint:"Adjust color, tone, and finishing details here.",details:"Details",empty:"No effect settings yet."},zh:{tool:"\u7279\u6548",title:"\u7279\u6548",close:"\u5173\u95ED",hint:"\u5728\u8FD9\u91CC\u53EF\u4EE5\u8C03\u6574\u8272\u5F69\u3001\u660E\u5EA6\u548C\u6548\u679C\u7EC6\u8282\u3002",details:"\u7EC6\u8282\u8C03\u6574",empty:"\u6682\u65E0\u53EF\u8C03\u6574\u9879"},"zh-Hant":{tool:"\u7279\u6548",title:"\u7279\u6548",close:"\u95DC\u9589",hint:"\u5728\u9019\u88E1\u53EF\u4EE5\u8ABF\u6574\u8272\u5F69\u3001\u660E\u5EA6\u8207\u6548\u679C\u7D30\u7BC0\u3002",details:"\u7D30\u7BC0\u8ABF\u6574",empty:"\u66AB\u7121\u53EF\u8ABF\u6574\u9805"}};function Vr(e){const t=ln(e);return Go[t]??Go.en}const Zo={en:{title:"Audio",close:"Close",source:"Source",speed:"Speed",duration:"Duration",volume:"Volume",fadeIn:"Fade In",fadeOut:"Fade Out",speedHint:"Speed can be adjusted here and will be used when exporting audio."},zh:{title:"\u97F3\u8F68",close:"\u5173\u95ED",source:"\u6765\u6E90",speed:"\u500D\u6570",duration:"\u65F6\u957F",volume:"\u97F3\u91CF",fadeIn:"\u6DE1\u5165\u65F6\u957F",fadeOut:"\u6DE1\u51FA\u65F6\u957F",speedHint:"\u8FD9\u91CC\u53EF\u4EE5\u76F4\u63A5\u8C03\u6574\u97F3\u9891\u500D\u6570\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u6309\u8BE5\u500D\u6570\u5904\u7406\u3002"},"zh-Hant":{title:"\u97F3\u8ECC",close:"\u95DC\u9589",source:"\u4F86\u6E90",speed:"\u500D\u6578",duration:"\u6642\u9577",volume:"\u97F3\u91CF",fadeIn:"\u6DE1\u5165\u6642\u9577",fadeOut:"\u6DE1\u51FA\u6642\u9577",speedHint:"\u9019\u88E1\u53EF\u4EE5\u76F4\u63A5\u8ABF\u6574\u97F3\u8A0A\u500D\u6578\uFF0C\u5C0E\u51FA\u6642\u6703\u6309\u8A72\u500D\u6578\u8655\u7406\u3002"}};function Xr(e){const t=ln(e);return Zo[t]??Zo.en}const Jo={en:{tool:"Adjust",title:"Adjust",close:"Close",hint:"Select an adjustment layer to edit its controls here.",details:"Details",placeholder:"Select an adjustment layer to start editing.",videoInfoHint:"Default video details are shown here when no adjustment layer is selected.",videoInfoTitle:"Video details",videoName:"Name",ratio:"Ratio",canvasSize:"Canvas",resolution:"Resolution",frameRate:"Frame rate",bitrate:"Bitrate",format:"Format",fileSize:"File size",codec:"Codec",sourceSize:"Source size",videoLength:"Duration",notAvailable:"-"},zh:{tool:"\u8C03\u8282",title:"\u8C03\u8282",close:"\u5173\u95ED",hint:"\u9009\u4E2D\u8C03\u8282\u56FE\u5C42\u540E\uFF0C\u53EF\u4EE5\u5728\u8FD9\u91CC\u7EE7\u7EED\u8C03\u6574\u53C2\u6570\u3002",details:"\u7EC6\u8282\u8C03\u6574",placeholder:"\u8BF7\u5148\u9009\u4E2D\u4E00\u4E2A\u8C03\u8282\u56FE\u5C42\u518D\u7EE7\u7EED\u7F16\u8F91\u3002",videoInfoHint:"\u5F53\u524D\u672A\u9009\u4E2D\u8C03\u8282\u56FE\u5C42\uFF0C\u8FD9\u91CC\u663E\u793A\u9ED8\u8BA4\u89C6\u9891\u4FE1\u606F\u3002",videoInfoTitle:"\u89C6\u9891\u4FE1\u606F",videoName:"\u540D\u79F0",ratio:"\u6BD4\u4F8B",canvasSize:"\u753B\u5E03\u5927\u5C0F",resolution:"\u5206\u8FA8\u7387",frameRate:"\u5E27\u7387",bitrate:"\u7801\u7387",format:"\u683C\u5F0F",fileSize:"\u6587\u4EF6\u5927\u5C0F",codec:"\u7F16\u7801",sourceSize:"\u6E90\u5C3A\u5BF8",videoLength:"\u89C6\u9891\u65F6\u957F",notAvailable:"-"},"zh-Hant":{tool:"\u8ABF\u7BC0",title:"\u8ABF\u7BC0",close:"\u95DC\u9589",hint:"\u9078\u4E2D\u8ABF\u7BC0\u5716\u5C64\u5F8C\uFF0C\u53EF\u4EE5\u5728\u9019\u88E1\u7E7C\u7E8C\u8ABF\u6574\u53C3\u6578\u3002",details:"\u7D30\u7BC0\u8ABF\u6574",placeholder:"\u8ACB\u5148\u9078\u4E2D\u4E00\u500B\u8ABF\u7BC0\u5716\u5C64\u518D\u7E7C\u7E8C\u7DE8\u8F2F\u3002",videoInfoHint:"\u76EE\u524D\u672A\u9078\u4E2D\u8ABF\u7BC0\u5716\u5C64\uFF0C\u9019\u88E1\u986F\u793A\u9810\u8A2D\u8996\u983B\u8CC7\u8A0A\u3002",videoInfoTitle:"\u8996\u983B\u8CC7\u8A0A",videoName:"\u540D\u7A31",ratio:"\u6BD4\u4F8B",canvasSize:"\u756B\u5E03\u5927\u5C0F",resolution:"\u89E3\u6790\u5EA6",frameRate:"\u5E40\u7387",bitrate:"\u78BC\u7387",format:"\u683C\u5F0F",fileSize:"\u6A94\u6848\u5927\u5C0F",codec:"\u7DE8\u78BC",sourceSize:"\u4F86\u6E90\u5C3A\u5BF8",videoLength:"\u8996\u983B\u6642\u9577",notAvailable:"-"}};function qr(e){const t=ln(e);return Jo[t]??Jo.en}function Wr(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1852
+ <path d="M9 15l6-6" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/>
1853
+ <path d="M7.6 16.4l-1.2 2.4a.7.7 0 0 0 .93.93L9.7 18.5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
1854
+ <path d="M14.4 8.4l1.2-2.4a.7.7 0 0 1 .93-.93l1.47 1.47a.7.7 0 0 1-.05 1.04L15.6 8.8" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
1855
+ <path d="M6 7.4l.52 1.18L7.7 9.1l-1.18.52L6 10.8l-.52-1.18L4.3 9.1l1.18-.52L6 7.4Z" fill="#f59e0b" stroke="none"/>
1856
+ <path d="M17.6 11.2l.38.86.86.38-.86.38-.38.86-.38-.86-.86-.38.86-.38.38-.86Z" fill="var(--me-accent, #7c7cf0)" stroke="none"/>
1857
+ <circle cx="11.2" cy="12.8" r="1.55" fill="#22c55e" stroke="white" stroke-width=".9"/>
1858
+ </svg>`}function Kr(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1859
+ <path d="M6 6v12" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
1860
+ <path d="M18 6v12" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
1861
+ <rect x="4.2" y="8" width="3.6" height="4.8" rx="1.8" fill="currentColor"/>
1862
+ <rect x="16.2" y="11.2" width="3.6" height="4.8" rx="1.8" fill="currentColor"/>
1863
+ </svg>`}function kn(e,t){const n=vo(t),o=e.transitions.options[n.key]??e.transitions.options.none;return{...n,label:o.label,short:o.short}}function qn(e,t=fo.en.untitledText){return String(e??"").replace(/\s+/g," ").trim()||t}function Ia(e){if(!e)return!1;const t=String(e).trim().toLowerCase();return t!==""&&t!=="transparent"}function vo(e){return po.find(t=>t.key===e)??po[0]}function pn(e){const t=Number(e)||0;return`${t.toFixed(t>=1?1:2).replace(/0+$/,"").replace(/\.$/,"")}s`}function Dt(e){return Math.max(0,(Number(e?.out)||0)-(Number(e?.in)||0))}function xn(e){return re(Number(e)||1,.5,2)}function Ur(e){return`${xn(e).toFixed(2)}x`}function Gr(e,t=1){const n=String(e??"").trim().replace(/x$/i,""),o=Number(n);return Number.isFinite(o)?xn(o):xn(t)}function Zr(e,t=0){const n=String(e??"").trim().replace(/s$/i,""),o=Number(n);return Number.isFinite(o)?Math.max(0,o):Math.max(0,t)}function Wn(e,t=.4,n=.4){const o=vo(e?.type??"none"),l=Math.max(0,Math.min(1.2,t-.05,n-.05));if(o.key==="none"||l<=.05)return{type:"none",duration:0};const s=Number(e?.duration),m=re(Number.isFinite(s)?s:o.duration,.1,l);return{type:o.key,duration:m}}function ho(e){const t=e?.clips??[],n=Math.max(0,t.length-1),o=Array.isArray(e?.transitions)?e.transitions:[],l=[];for(let s=0;s<n;s++)l.push(Wn(o[s],Dt(t[s]),Dt(t[s+1])));return l}function Qo(e,t,n="heading"){const l=e.getState().canvas??{w:1080,h:1920},s=Vo[n]??Vo.heading,m=Math.min(s.width,Math.max(240,l.w-64)),x=Math.min(s.fontSize,Math.max(32,Math.round(l.w*.11))),h=re(Math.round(l.h*.18),32,Math.max(32,l.h-180));return{type:"text",x:Math.round((l.w-m)/2),y:h,text:t.textPresets[n]??s.text,color:s.color,fontSize:x,fontFamily:"Arial",fontWeight:s.fontWeight,fontStyle:"normal",textAlign:s.textAlign,width:m,backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderWidth:s.borderWidth,paddingX:s.paddingX??Math.max(14,Math.round(x*.18)),paddingY:s.paddingY??Math.max(10,Math.round(x*.14)),boxShadow:s.boxShadow?{...s.boxShadow}:void 0,lineHeight:1.1,textPreset:n,textDecoration:"",textTransform:void 0,animation:"none",rotation:0}}const Vt=3,_e=.5,Xt=.1,bn=99,xo=36,er=6;function at(e,t=0){return Number.isFinite(e?.startAt)?Math.max(0,Number(e.startAt)):Math.max(0,t)}function $t(e,t=0,n=Vt){const o=at(e,t);return Number.isFinite(e?.endAt)?Math.max(o+_e,Number(e.endAt)):o+Math.max(_e,n)}function En(e,t=Vt){return Math.max(_e,$t(e,0,t)-at(e,0))}function ft(e,t=0){return Number.isFinite(e?.timelineTrack)?re(Math.round(Number(e.timelineTrack)),0,bn):Math.max(0,t)}function Jr(e){return e==="pen"||e==="line"||e==="arrow"||e==="rect"||e==="ellipse"}function Qt(e){return Jr(e?.type)}function Gt(e){return e?.type==="text"||e?.type==="sticker"||e?.type==="filter"||e?.type==="adjust"||Qt(e)}function Sn(e){return e*(xo+er)}function bo(e){const t=Array.isArray(e)?e:e?.overlays;return[...new Set((t??[]).filter(n=>Gt(n)).map(n=>ft(n)))].sort((n,o)=>n-o)}function Hn(e){const t=new Map;return bo(e).forEach((n,o)=>{t.set(n,o)}),t}function Qr(e){return bo(e).length}function ei(e){const t=Qr(e);return t?Sn(t-1)+xo:0}function Rn(e,t){const o=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!o)return{timelineInner:null,timelineHost:null};o.style.position="relative";const l=o.firstElementChild,s=ei(t),m=[];for(const S of o.children)S instanceof HTMLElement&&S.classList.contains("me-video-overlay-track-host")&&m.push(S);const x=[...o.children].find(S=>S!==l&&!(S instanceof HTMLElement&&S.classList.contains("me-video-overlay-track-host")))??null;if(!x)return m.forEach(S=>S.remove()),{timelineInner:o,timelineHost:null};const h=m.shift()??null;if(m.forEach(S=>S.remove()),s<=0)return h?.remove(),{timelineInner:o,timelineHost:null};const y=h??document.createElement("div");return h||(y.className="me-video-overlay-track-host"),y.style.height=`${s}px`,(y.parentElement!==o||y.nextElementSibling!==x)&&o.insertBefore(y,x),{timelineInner:o,timelineHost:y}}function ti(e){return((Array.isArray(e)?e:e?.overlays)??[]).reduce((n,o)=>Gt(o)?Math.max(n,$t(o)):n,0)}function tr(e,t,n,o){return e<o-1e-6&&n<t-1e-6}function Ha(e,t,n,o=-1){const l=new Map;(e??[]).forEach((s,m)=>{if(m===o||!Gt(s))return;const x=ft(s);let h=l.get(x);h||(h=[],l.set(x,h)),h.push({startAt:at(s),endAt:$t(s)})});for(let s=0;s<=bn;s++)if((l.get(s)??[]).every(x=>!tr(t,n,x.startAt,x.endAt)))return s;return bn}function ni(e,t,n,o,l){const s=re(Math.round(Number(l)||0),0,bn);return(e??[]).every((m,x)=>x===t||!Gt(m)||ft(m)!==s?!0:!tr(n,o,at(m),$t(m)))}function mt(e,t,n,o,l,s,m){if(!e)return m;const x=e.getBoundingClientRect(),h=Math.max(0,s-x.top),y=bo(t),S=re(Math.floor(h/(xo+er)),0,y.length),U=S<y.length?y[S]:re((y[y.length-1]??-1)+1,0,bn);return ni(t,n,o,l,U)?U:m}function Zt(e,t,n={}){const o=at(e,0),l=En(e),s=Number.isFinite(n.startAt)?Number(n.startAt):o,m=Number.isFinite(n.endAt)?Number(n.endAt):s+l,x=Math.max(0,s),h=Math.max(x+_e,m),y=Math.max(_e,Number(t)||Vt,h),S=re(x,0,Math.max(0,y-_e)),U=re(h,S+_e,Math.max(S+_e,y));return{startAt:S,endAt:U,timelineTrack:ft({timelineTrack:n.timelineTrack??e?.timelineTrack})}}function nr(e,t=1){const n=Math.max(0,Math.round(Number(t)||0));return n?(e??[]).map(o=>Gt(o)?{...o,timelineTrack:re(ft(o)+n,0,bn)}:o):[...e??[]]}function en(e){return nr(e,1)}function or(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="text").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function rr(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="sticker").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function ir(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="filter").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function ar(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="adjust").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function go(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>Qt(t.overlay)).sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function oi(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>Gt(t.overlay)).sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function kt(e){return[...new Set((e??[]).map(t=>Number(t)).filter(t=>Number.isInteger(t)&&t>=0))].sort((t,n)=>t-n)}function Kn(e){if(e.__meVideoTimelineSelectionStore)return e.__meVideoTimelineSelectionStore;const t={video:new Set,text:new Set,audio:new Set,anchors:{video:null,text:null,audio:null},initialized:!1};return e.__meVideoTimelineSelectionStore=t,t}function ri(e,t){return t==="text"?e.text:t==="audio"?e.audio:e.video}function sr(){return["video","text","audio"]}function _t(e,t){return kt([...ri(Kn(e),t)])}function yo(e,t){const n=kt(t),o=kt([...e]);return o.length===n.length&&o.every((l,s)=>l===n[s])?!1:(e.clear(),n.forEach(l=>e.add(l)),!0)}function ii(e){e.dispatchEvent(new CustomEvent(zt))}function fn(e,t={},n={}){const o=Kn(e);let l=!1;if(Object.prototype.hasOwnProperty.call(t,"video")&&(l=yo(o.video,t.video)||l),Object.prototype.hasOwnProperty.call(t,"text")&&(l=yo(o.text,t.text)||l),Object.prototype.hasOwnProperty.call(t,"audio")&&(l=yo(o.audio,t.audio)||l),Object.prototype.hasOwnProperty.call(n,"video")){const s=Number.isInteger(n.video)&&n.video>=0?n.video:null;o.anchors.video!==s&&(o.anchors.video=s,l=!0)}if(Object.prototype.hasOwnProperty.call(n,"text")){const s=Number.isInteger(n.text)&&n.text>=0?n.text:null;o.anchors.text!==s&&(o.anchors.text=s,l=!0)}if(Object.prototype.hasOwnProperty.call(n,"audio")){const s=Number.isInteger(n.audio)&&n.audio>=0?n.audio:null;o.anchors.audio!==s&&(o.anchors.audio=s,l=!0)}return l&&ii(e),o}function gt(e,t,n,o={}){const l=kt(n),s={[t]:l},m={[t]:l.length?o.anchor??l[l.length-1]:null};if(!o.preserveOther)for(const x of sr())x!==t&&(s[x]=[],m[x]=null);return fn(e,s,m),l}function wo(e){fn(e,{video:[],text:[],audio:[]},{video:null,text:null,audio:null})}function ai(e){return _t(e,"video").length>0||_t(e,"text").length>0||_t(e,"audio").length>0}function ko(e,t,n){const o=new Set(kt(n)),l=_t(e,t),s=l.filter(m=>o.has(m));return l.length!==s.length&&fn(e,{[t]:s},{[t]:s.length?s[s.length-1]:null}),s}function Pt(e,t,n,o,l=[]){const s=kt(l),m=!!(o?.ctrlKey||o?.metaKey),x=!!o?.shiftKey,h=Kn(e),y=_t(e,t);let S=y,U=n;if(x){const B=h.anchors[t],ne=s.indexOf(B),Q=s.indexOf(n);if(ne!==-1&&Q!==-1){const k=Math.min(ne,Q),$=Math.max(ne,Q),K=s.slice(k,$+1);S=m?kt([...y,...K]):K,U=B}else m?S=y.includes(n)?y.filter(k=>k!==n):[...y,n]:S=[n]}else m?S=y.includes(n)?y.filter(B=>B!==n):[...y,n]:S=[n];S=kt(S);const w={[t]:S},I={[t]:S.length?U:null};if(!m)for(const B of sr())B!==t&&(w[B]=[],I[B]=null);return fn(e,w,I),S}function si(e,t){const n=Kn(e);n.initialized||(n.initialized=!0)}function Ln(e){const t=typeof e.getState=="function"?e.getState():null;return Math.max(typeof e.contentDuration=="function"?e.contentDuration():0,ti(t),_e)}function Eo(e){const t=String(e??"").trim();if(!t)return NaN;const n=t.split(":").map(l=>l.trim()).filter(Boolean);if(!n.length)return NaN;let o=0;for(const l of n){const s=Number(l);if(!Number.isFinite(s))return NaN;o=o*60+s}return o}function Un(e){return e instanceof HTMLElement?String(e.dataset.meRawTimeText||e.textContent||"").trim():""}function gn(e){const t=e.querySelector(".me-video-timeline-scroll > div > div:first-child");if(t){const l=[...t.children].find(m=>m instanceof HTMLElement&&String(m.style.transform||"").includes("translateX(-50%)")),s=Eo(Un(l));if(Number.isFinite(s))return s}const n=[...e.querySelectorAll(".me-video-trim-actions span")].find(l=>Un(l).includes("/")),o=Un(n);if(o){const l=Eo(o.split("/")[0]);if(Number.isFinite(l))return l}return 0}function Fn(e,t){return ko(e,"video",(t??[]).map((n,o)=>o)).filter(n=>!!t[n])}function So(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="text")}function lr(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="sticker")}function cr(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="filter")}function Gn(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="adjust")}function dr(e,t){return _t(e,"text").filter(n=>Qt(t.overlays?.[n]))}function $n(e,t){const n=oi(t).map(o=>o.index);return ko(e,"text",n).filter(o=>Gt(t.overlays?.[o]))}function Tn(e,t){return ko(e,"audio",(t??[]).map((n,o)=>o)).filter(n=>!!t[n])}function li(e,t){const n=kt(t).filter(s=>!!e[s]);if(!n.length)return{clips:e,selection:[],changed:!1};const o=n[n.length-1]+1,l=n.map(s=>({...e[s]}));return{clips:[...e.slice(0,o),...l,...e.slice(o)],selection:l.map((s,m)=>o+m),changed:!0}}function Lo(e,t){const n=kt(t).filter(x=>Gt(e[x]));if(!n.length)return{overlays:e,selection:[],changed:!1};const o=n.map(x=>{const h=e[x];return h?.type==="pen"?{...h,points:(h.points??[]).map((y,S)=>(S%2===0,(Number(y)||0)+24))}:h?.type==="line"||h?.type==="arrow"?{...h,x1:(Number(h.x1)||0)+24,y1:(Number(h.y1)||0)+24,x2:(Number(h.x2)||0)+24,y2:(Number(h.y2)||0)+24}:{...h,x:(Number(h.x)||0)+24,y:(Number(h.y)||0)+24}}),s=[...nr(e,o.length),...o.map((x,h)=>({...x,timelineTrack:re(h,0,bn)}))],m=s.length-o.length;return{overlays:s,selection:o.map((x,h)=>m+h),changed:!0}}function ci(e,t){const n=kt(t).filter(s=>!!e[s]);if(!n.length)return{audioClips:e,selection:[],changed:!1};const o=n[n.length-1]+1,l=n.map(s=>{const m=e[s];return{...m,track:Number.isInteger(m?.track)&&m.track>=0?m.track:s,startAt:Math.max(0,(Number(m.startAt)||0)+.2)}});return{audioClips:[...e.slice(0,o),...l,...e.slice(o)],selection:l.map((s,m)=>o+m),changed:!0}}function di(e,t){const n=kt(t).filter(l=>!!e[l]);if(!n.length||n.length>=e.length)return{clips:e,selection:n,changed:!1};const o=new Set(n);return{clips:e.filter((l,s)=>!o.has(s)),selection:[],changed:!0}}function To(e,t){const n=new Set(kt(t).filter(o=>Gt(e[o])));return n.size?{overlays:e.filter((o,l)=>!n.has(l)),selection:[],changed:!0}:{overlays:e,selection:[],changed:!1}}function ui(e,t){const n=new Set(kt(t).filter(o=>!!e[o]));return n.size?{audioClips:e.filter((o,l)=>!n.has(l)),selection:[],changed:!0}:{audioClips:e,selection:[],changed:!1}}function mi(e,t,n){const o=new Set(kt(t).filter(h=>!!e[h]));if(!o.size)return{clips:e,selection:[],changed:!1};let l=0,s=!1;const m=[],x=[];for(let h=0;h<e.length;h++){const y=e[h],S=Math.max(0,(Number(y?.out)||0)-(Number(y?.in)||0)),U=l+S;if(o.has(h)&&n>l+Xt&&n<U-Xt){const w=(Number(y.in)||0)+(n-l);x.push(m.length),m.push({...y,out:w}),x.push(m.length),m.push({...y,in:w}),s=!0}else o.has(h)&&x.push(m.length),m.push(y);l=U}return{clips:s?m:e,selection:s?x:kt(t),changed:s}}function pi(e,t,n,o){const l=new Set(kt(t).filter(h=>Gt(e[h])));if(!l.size)return{overlays:e,selection:[],changed:!1};let s=!1;const m=[],x=[];for(let h=0;h<e.length;h++){const y=e[h];if(Gt(y)&&l.has(h)){const S=at(y),U=$t(y,S),w=re(o,S+_e,U-_e);if(w>S+1e-6&&w<U-1e-6){x.push(m.length),m.push({...y,...Zt(y,n,{startAt:S,endAt:w,timelineTrack:ft(y)})}),x.push(m.length),m.push({...y,...Zt(y,n,{startAt:w,endAt:U,timelineTrack:ft(y)})}),s=!0;continue}x.push(m.length)}m.push(y)}return{overlays:s?m:e,selection:s?x:kt(t),changed:s}}function fi(e,t,n){const o=new Set(kt(t).filter(x=>!!e[x]));if(!o.size)return{audioClips:e,selection:[],changed:!1};let l=!1;const s=[],m=[];for(let x=0;x<e.length;x++){const h=e[x],y=Math.max(0,Number(h?.startAt)||0),S=Dt(h),U=y+S;if(o.has(x)&&n>y+Xt&&n<U-Xt){const w=(Number(h.in)||0)+(n-y),I=Math.max(0,w-(Number(h.in)||0)),B=Math.max(0,(Number(h.out)||0)-w);m.push(s.length),s.push({...h,track:Number.isInteger(h?.track)&&h.track>=0?h.track:x,out:w,fadeIn:Math.min(Number(h.fadeIn)||0,I),fadeOut:0}),m.push(s.length),s.push({...h,track:Number.isInteger(h?.track)&&h.track>=0?h.track:x,in:w,startAt:n,fadeIn:0,fadeOut:Math.min(Number(h.fadeOut)||0,B)}),l=!0;continue}o.has(x)&&m.push(s.length),s.push(h)}return{audioClips:l?s:e,selection:l?m:kt(t),changed:l}}function vi(e,t,n){const o=new Set(kt(t));let l=0;for(let s=0;s<e.length;s++){const m=e[s],x=Math.max(0,(Number(m?.out)||0)-(Number(m?.in)||0)),h=l+x;if(o.has(s)&&n>l+Xt&&n<h-Xt)return!0;l=h}return!1}function hi(e,t,n){return kt(t).some(o=>{const l=e[o];if(!Gt(l))return!1;const s=at(l),m=$t(l,s);return n>s+_e&&n<m-_e})}function xi(e,t,n){return kt(t).some(o=>{const l=e[o];if(!l)return!1;const s=Math.max(0,Number(l.startAt)||0),m=s+Dt(l);return n>s+Xt&&n<m-Xt})}function bi(e,t){const n=t.getState(),o=n.clips??[],l=n.audioClips??[],s=n.overlays??[],m=Fn(e,o),x=Tn(e,l),h=$n(e,n);if(!m.length&&!x.length&&!h.length)return!1;let y=o,S=l,U=s,w=m,I=x,B=h,ne=!1;if(m.length){const Q=li(y,m);y=Q.clips,w=Q.selection,ne=Q.changed||ne}if(x.length){const Q=ci(S,x);S=Q.audioClips,I=Q.selection,ne=Q.changed||ne}if(h.length){const Q=Lo(U,h);U=Q.overlays,B=Q.selection,ne=Q.changed||ne}return ne?(t.commit({clips:y,audioClips:S,overlays:U}),fn(e,{video:w,audio:I,text:B},{video:w.length?w[w.length-1]:null,audio:I.length?I[I.length-1]:null,text:B.length?B[B.length-1]:null}),!0):!1}function gi(e,t){const n=t.getState(),o=n.clips??[],l=n.audioClips??[],s=n.overlays??[],m=Fn(e,o),x=Tn(e,l),h=$n(e,n);let y=o,S=l,U=s,w=m,I=x,B=h,ne=!1;const Q=di(y,m);Q.changed&&(y=Q.clips,w=Q.selection,ne=!0);const k=To(U,h);k.changed&&(U=k.overlays,B=k.selection,ne=!0);const $=ui(S,x);return $.changed&&(S=$.audioClips,I=$.selection,ne=!0),ne?(t.commit({clips:y,audioClips:S,overlays:U}),fn(e,{video:w,audio:I,text:B},{video:w.length?w[w.length-1]:null,audio:I.length?I[I.length-1]:null,text:B.length?B[B.length-1]:null}),!0):!1}function yi(e,t){const n=t.getState(),o=n.clips??[],l=n.audioClips??[],s=n.overlays??[],m=gn(e),x=Fn(e,o),h=Tn(e,l),y=$n(e,n);let S=o,U=l,w=s,I=x,B=h,ne=y,Q=!1;if(x.length){const k=mi(S,x,m);S=k.clips,I=k.selection,Q=k.changed||Q}if(h.length){const k=fi(U,h,m);U=k.audioClips,B=k.selection,Q=k.changed||Q}if(y.length){const k=pi(w,y,Math.max(Ln(t),m+_e),m);w=k.overlays,ne=k.selection,Q=k.changed||Q}return Q?(t.commit({clips:S,audioClips:U,overlays:w}),fn(e,{video:I,audio:B,text:ne},{video:I.length?I[I.length-1]:null,audio:B.length?B[B.length-1]:null,text:ne.length?ne[ne.length-1]:null}),!0):!1}function Zn(e,t){const n=document.createElement("div");n.className="me-video-text-field";const o=document.createElement("label");return o.textContent=e,n.append(o,t),n}function jt(e){const t=document.createElement("button");return t.type="button",t.className="me-video-text-mini",t.textContent=e,t}function wi(e,t){const n=document.createElement("button");return n.type="button",n.className="me-video-text-preset",n.dataset.preset=t,n.textContent=e,n}const ki=[{value:"300",label:"Light"},{value:"400",label:"Regular"},{value:"500",label:"Medium"},{value:"600",label:"Semibold"},{value:"700",label:"Bold"},{value:"800",label:"Extra Bold"}],ur={en:{content:"Content",preset:"Preset",styles:"Styles",size:"Size",fill:"Fill",decoration:"Decoration",italic:"Italic",underline:"Underline",strike:"Strike",case:"Case",caseNone:"None",uppercase:"Uppercase",lowercase:"Lowercase",capitalize:"Capitalize",alignLeft:"Left",alignCenter:"Center",alignRight:"Right",animations:"Animations",animation:"Animation",fontStroke:"Font stroke",fontShadow:"Font shadow",x:"X",y:"Y",blur:"Blur",transparent:"Transparent",none:"None"},zh:{content:"\u5185\u5BB9",preset:"\u9884\u8BBE",styles:"\u6837\u5F0F",size:"\u5927\u5C0F",fill:"\u586B\u5145",decoration:"\u4FEE\u9970",italic:"\u659C\u4F53",underline:"\u4E0B\u5212\u7EBF",strike:"\u5220\u9664\u7EBF",case:"\u5927\u5C0F\u5199",caseNone:"\u65E0",uppercase:"\u5168\u90E8\u5927\u5199",lowercase:"\u5168\u90E8\u5C0F\u5199",capitalize:"\u9996\u5B57\u6BCD\u5927\u5199",alignLeft:"\u5DE6\u5BF9\u9F50",alignCenter:"\u5C45\u4E2D",alignRight:"\u53F3\u5BF9\u9F50",animations:"\u52A8\u753B",animation:"\u52A8\u753B",fontStroke:"\u6587\u5B57\u63CF\u8FB9",fontShadow:"\u6587\u5B57\u9634\u5F71",x:"X",y:"Y",blur:"\u6A21\u7CCA",transparent:"\u900F\u660E",none:"\u65E0"},"zh-Hant":{content:"\u5167\u5BB9",preset:"\u9810\u8A2D",styles:"\u6A23\u5F0F",size:"\u5927\u5C0F",fill:"\u586B\u5145",decoration:"\u4FEE\u98FE",italic:"\u659C\u9AD4",underline:"\u5E95\u7DDA",strike:"\u522A\u9664\u7DDA",case:"\u5927\u5C0F\u5BEB",caseNone:"\u7121",uppercase:"\u5168\u90E8\u5927\u5BEB",lowercase:"\u5168\u90E8\u5C0F\u5BEB",capitalize:"\u9996\u5B57\u6BCD\u5927\u5BEB",alignLeft:"\u9760\u5DE6",alignCenter:"\u7F6E\u4E2D",alignRight:"\u9760\u53F3",animations:"\u52D5\u756B",animation:"\u52D5\u756B",fontStroke:"\u6587\u5B57\u63CF\u908A",fontShadow:"\u6587\u5B57\u9670\u5F71",x:"X",y:"Y",blur:"\u6A21\u7CCA",transparent:"\u900F\u660E",none:"\u7121"}},mr={en:{tool:"Ratio",title:"Ratio & canvas size",restore:"Restore",close:"Close",commonPresets:"Platform ratio presets",customSize:"Custom resolution",fitMode:"Canvas fill mode",width:"Width (px)",height:"Height (px)",lockRatio:"Lock ratio",unlockRatio:"Unlock ratio",quickPortrait:"1080p Portrait",quickLandscape:"1080p Landscape",summary:"Current output",baseOutput:"Base output",cover:"Crop to fill",contain:"Fit inside",force:"Stretch to fill",coverHint:"Fills the canvas and crops any overflow.",containHint:"Keeps the full frame and may add letterboxing.",forceHint:"Stretches the frame to the target size without cropping.",cinematic:"Cinematic",tablet:"Tablet"},zh:{tool:"\u6BD4\u4F8B",title:"\u6BD4\u4F8B\u4E0E\u753B\u5E03\u5C3A\u5BF8",restore:"\u6062\u590D",close:"\u5173\u95ED",commonPresets:"\u5E73\u53F0\u6BD4\u4F8B\u9884\u8BBE",customSize:"\u81EA\u5B9A\u4E49\u5206\u8FA8\u7387",fitMode:"\u753B\u9762\u586B\u5145\u9009\u9879",width:"\u5BBD\u5EA6 (px)",height:"\u9AD8\u5EA6 (px)",lockRatio:"\u9501\u5B9A\u6BD4\u4F8B",unlockRatio:"\u89E3\u9501\u6BD4\u4F8B",quickPortrait:"1080p \u7AD6\u5C4F",quickLandscape:"1080p \u6A2A\u5C4F",summary:"\u5F53\u524D\u8F93\u51FA",baseOutput:"\u539F\u59CB\u8F93\u51FA",cover:"\u88C1\u526A\u94FA\u6EE1",contain:"\u5B8C\u6574\u663E\u793A",force:"\u62C9\u4F38\u94FA\u6EE1",coverHint:"\u94FA\u6EE1\u753B\u5E03\uFF0C\u591A\u4F59\u533A\u57DF\u4F1A\u88AB\u88C1\u526A\u3002",containHint:"\u5B8C\u6574\u4FDD\u7559\u753B\u9762\uFF0C\u53EF\u80FD\u51FA\u73B0\u7559\u767D\u3002",forceHint:"\u5F3A\u5236\u62C9\u4F38\u5230\u76EE\u6807\u5C3A\u5BF8\uFF0C\u4E0D\u88C1\u526A\u3002",cinematic:"\u7535\u5F71\u5BBD\u5C4F",tablet:"\u5E73\u677F"},"zh-Hant":{tool:"\u6BD4\u4F8B",title:"\u6BD4\u4F8B\u8207\u756B\u5E03\u5C3A\u5BF8",restore:"\u9084\u539F",close:"\u95DC\u9589",commonPresets:"\u5E73\u53F0\u6BD4\u4F8B\u9810\u8A2D",customSize:"\u81EA\u8A02\u89E3\u6790\u5EA6",fitMode:"\u756B\u9762\u586B\u5145\u9078\u9805",width:"\u5BEC\u5EA6 (px)",height:"\u9AD8\u5EA6 (px)",lockRatio:"\u9396\u5B9A\u6BD4\u4F8B",unlockRatio:"\u89E3\u9396\u6BD4\u4F8B",quickPortrait:"1080p \u76F4\u5F0F",quickLandscape:"1080p \u6A6B\u5F0F",summary:"\u76EE\u524D\u8F38\u51FA",baseOutput:"\u539F\u59CB\u8F38\u51FA",cover:"\u88C1\u5207\u92EA\u6EFF",contain:"\u5B8C\u6574\u986F\u793A",force:"\u62C9\u4F38\u92EA\u6EFF",coverHint:"\u92EA\u6EFF\u756B\u5E03\uFF0C\u591A\u9918\u5340\u57DF\u6703\u88AB\u88C1\u5207\u3002",containHint:"\u5B8C\u6574\u4FDD\u7559\u756B\u9762\uFF0C\u53EF\u80FD\u51FA\u73FE\u7559\u767D\u3002",forceHint:"\u5F37\u5236\u62C9\u4F38\u81F3\u76EE\u6A19\u5C3A\u5BF8\uFF0C\u4E0D\u88C1\u5207\u3002",cinematic:"\u96FB\u5F71\u5BEC\u87A2\u5E55",tablet:"\u5E73\u677F"}},Ei=[{id:"facebook-post",platform:"Facebook",type:"Post",iconText:"f",iconTheme:"facebook",ratios:["1:1","4:5","16:9"]},{id:"facebook-story",platform:"Facebook",type:"Story",iconText:"f",iconTheme:"facebook",ratios:["9:16"]},{id:"instagram-post",platform:"Instagram",type:"Post",iconText:"IG",iconTheme:"instagram",ratios:["1:1","4:5","16:9"]},{id:"instagram-story",platform:"Instagram",type:"Story",iconText:"IG",iconTheme:"instagram",ratios:["9:16"]},{id:"tiktok-photo",platform:"TikTok",type:"Photo",iconText:"T",iconTheme:"tiktok",ratios:["1:1","4:5","9:16"]},{id:"x-post",platform:"X",type:"Post",iconText:"X",iconTheme:"x",ratios:["1:1","16:9"]},{id:"linkedin-post",platform:"LinkedIn",type:"Post",iconText:"in",iconTheme:"linkedin",ratios:["1:1","16:9"]},{id:"pinterest-post",platform:"Pinterest",type:"Post",iconText:"P",iconTheme:"pinterest",ratios:["2:3","1:1"]},{id:"reddit-media",platform:"Reddit",type:"Media",iconText:"R",iconTheme:"reddit",ratios:["1:1","16:9"]},{id:"threads-post",platform:"Threads",type:"Post",iconText:"@",iconTheme:"threads",ratios:["1:1","4:5","16:9"]},{id:"telegram-post",platform:"Telegram",type:"Post",iconText:"TG",iconTheme:"telegram",ratios:["1:1","16:9"]}],Si=["9:16","16:9","1:1","4:5","2:3","3:2"],pr={en:{tool:"Sticker",title:"Stickers",uploadTitle:"Upload sticker",uploadHint:"Click or drop an image here",uploadFormats:"Supports PNG, JPG, WEBP, SVG",libraryTitle:"Built-in sticker library",classicTitle:"Classic stickers",vibeTitle:"Vibe stickers",shapeTitle:"Shape stickers",defaultLabel:"Sticker",uploadedLabel:"Image sticker",emojiLabel:"Emoji sticker"},zh:{tool:"\u8D34\u7EB8",title:"\u8D34\u7EB8",uploadTitle:"\u81EA\u5B9A\u4E49\u672C\u5730\u56FE\u7247\u8D34\u7EB8",uploadHint:"\u70B9\u51FB\u6216\u62D6\u62FD\u56FE\u7247\u5230\u8FD9\u91CC",uploadFormats:"\u652F\u6301 PNG\u3001JPG\u3001WEBP\u3001SVG",libraryTitle:"\u5185\u7F6E\u7ECF\u5178\u8D34\u7EB8\u5E93",classicTitle:"\u7ECF\u5178\u8D34\u7EB8",vibeTitle:"\u6C1B\u56F4\u8D34\u7EB8",shapeTitle:"\u5F62\u72B6\u8D34\u7EB8",defaultLabel:"\u8D34\u7EB8",uploadedLabel:"\u56FE\u7247\u8D34\u7EB8",emojiLabel:"\u8868\u60C5\u8D34\u7EB8"},"zh-Hant":{tool:"\u8CBC\u7D19",title:"\u8CBC\u7D19",uploadTitle:"\u81EA\u8A02\u672C\u6A5F\u5716\u7247\u8CBC\u7D19",uploadHint:"\u9EDE\u64CA\u6216\u62D6\u62FD\u5716\u7247\u5230\u9019\u88E1",uploadFormats:"\u652F\u63F4 PNG\u3001JPG\u3001WEBP\u3001SVG",libraryTitle:"\u5167\u5EFA\u7D93\u5178\u8CBC\u7D19\u5EAB",classicTitle:"\u7D93\u5178\u8CBC\u7D19",vibeTitle:"\u6C1B\u570D\u8CBC\u7D19",shapeTitle:"\u5F62\u72C0\u8CBC\u7D19",defaultLabel:"\u8CBC\u7D19",uploadedLabel:"\u5716\u7247\u8CBC\u7D19",emojiLabel:"\u8868\u60C5\u8CBC\u7D19"}},Co={en:{tool:"Color",title:"Color",filterTool:"Filter",filterTitle:"Filter",presets:"Filter presets",adjustments:"Adjustments",reset:"Reset",brightness:"Brightness",contrast:"Contrast",saturation:"Saturation",temperature:"Temperature",tint:"Tint",vibrance:"Vibrance",gamma:"Gamma",colorSection:"Color",toneSection:"Brightness",effectsSection:"Effects",highlights:"Highlights",shadows:"Shadows",whites:"Whites",blacks:"Blacks",lightSense:"Light Sense",sharpen:"Sharpen",clarity:"Clarity",grain:"Grain",fade:"Fade",vignette:"Vignette",presetNames:{none:"Normal",sepia:"Retro",cool:"Cold",warm:"Warm",vivid:"Cyber",bw:"B&W"}},zh:{tool:"\u8C03\u8272",title:"\u8C03\u8272",filterTool:"\u6EE4\u955C",filterTitle:"\u6EE4\u955C",presets:"\u6EE4\u955C\u9884\u8BBE",adjustments:"\u753B\u9762\u5FAE\u8C03",reset:"\u91CD\u7F6E",brightness:"\u4EAE\u5EA6",contrast:"\u5BF9\u6BD4\u5EA6",saturation:"\u9971\u548C\u5EA6",temperature:"\u8272\u6E29",tint:"\u8272\u8C03",vibrance:"\u81EA\u7136\u9971\u548C\u5EA6",gamma:"Gamma",colorSection:"\u8272\u5F69",toneSection:"\u660E\u5EA6",effectsSection:"\u6548\u679C",highlights:"\u9AD8\u5149",shadows:"\u9634\u5F71",whites:"\u767D\u8272",blacks:"\u9ED1\u8272",lightSense:"\u5149\u611F",sharpen:"\u9510\u5316",clarity:"\u6E05\u6670",grain:"\u9897\u7C92",fade:"\u892A\u8272",vignette:"\u6697\u89D2",presetNames:{none:"\u539F\u753B (Normal)",sepia:"\u590D\u53E4 (Retro)",cool:"\u51B7\u8272 (Cold)",warm:"\u6696\u9633 (Warm)",vivid:"\u8D5B\u535A (Cyber)",bw:"\u9ED1\u767D (B&W)"}},"zh-Hant":{tool:"\u8ABF\u8272",title:"\u8ABF\u8272",filterTool:"\u6FFE\u93E1",filterTitle:"\u6FFE\u93E1",presets:"\u6FFE\u93E1\u9810\u8A2D",adjustments:"\u756B\u9762\u5FAE\u8ABF",reset:"\u91CD\u8A2D",brightness:"\u4EAE\u5EA6",contrast:"\u5C0D\u6BD4\u5EA6",saturation:"\u98FD\u548C\u5EA6",temperature:"\u8272\u6EAB",tint:"\u8272\u8ABF",vibrance:"\u81EA\u7136\u98FD\u548C\u5EA6",gamma:"Gamma",colorSection:"\u8272\u5F69",toneSection:"\u660E\u5EA6",effectsSection:"\u6548\u679C",highlights:"\u9AD8\u5149",shadows:"\u9670\u5F71",whites:"\u767D\u8272",blacks:"\u9ED1\u8272",lightSense:"\u5149\u611F",sharpen:"\u92B3\u5316",clarity:"\u6E05\u6670",grain:"\u9846\u7C92",fade:"\u892A\u8272",vignette:"\u6697\u89D2",presetNames:{none:"\u539F\u756B (Normal)",sepia:"\u5FA9\u53E4 (Retro)",cool:"\u51B7\u8272 (Cold)",warm:"\u6696\u967D (Warm)",vivid:"\u8CFD\u535A (Cyber)",bw:"\u9ED1\u767D (B&W)"}}};function Li(e){const t=ln(e);return{...pr.en,...pr[t]??{}}}function Mo(e){const t=ln(e),n=Co[t]??{};return{...Co.en,...n,presetNames:{...Co.en.presetNames,...n.presetNames??{}}}}function Cn(e,t,n="rgba(255,255,255,0.16)"){let o="";return e==="triangle"?o=`<polygon points="128,28 224,220 32,220" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="circle"?o=`<circle cx="128" cy="128" r="94" fill="${t}" stroke="${n}" stroke-width="8"/>`:e==="square"?o=`<rect x="40" y="40" width="176" height="176" rx="40" fill="${t}" stroke="${n}" stroke-width="8"/>`:e==="diamond"?o=`<polygon points="128,24 224,128 128,232 32,128" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="star"?o=`<polygon points="128,24 154,92 228,96 170,142 188,220 128,176 68,220 86,142 28,96 102,92" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="heart"?o=`<path d="M128 220c-7-7-18-16-30-27C64 165 38 141 38 102c0-28 20-50 48-50 18 0 33 10 42 24 9-14 24-24 42-24 28 0 48 22 48 50 0 39-26 63-60 91-12 11-23 20-30 27Z" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:o=`<rect x="40" y="40" width="176" height="176" rx="40" fill="${t}" stroke="${n}" stroke-width="8"/>`,`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">${o}</svg>`)}`}function Ti(e){return[{id:"classic",title:e.classicTitle,items:[{id:"heart-eyes",emoji:"\u{1F60D}",label:`${e.emojiLabel} 1`},{id:"joy",emoji:"\u{1F602}",label:`${e.emojiLabel} 2`},{id:"grin",emoji:"\u{1F603}",label:`${e.emojiLabel} 3`},{id:"pray",emoji:"\u{1F64F}",label:`${e.emojiLabel} 4`},{id:"thumbs-up",emoji:"\u{1F44D}",label:`${e.emojiLabel} 5`},{id:"hundred",emoji:"\u{1F4AF}",label:`${e.emojiLabel} 6`},{id:"cat-smile",emoji:"\u{1F63A}",label:`${e.emojiLabel} 7`},{id:"cat-happy",emoji:"\u{1F638}",label:`${e.emojiLabel} 8`},{id:"paw",emoji:"\u{1F43E}",label:`${e.emojiLabel} 9`},{id:"fish",emoji:"\u{1F41F}",label:`${e.emojiLabel} 10`}]},{id:"vibe",title:e.vibeTitle,items:[{id:"sparkles",emoji:"\u2728",label:`${e.emojiLabel} 5`},{id:"heart",emoji:"\u{1F497}",label:`${e.emojiLabel} 6`},{id:"fire",emoji:"\u{1F525}",label:`${e.emojiLabel} 7`},{id:"party",emoji:"\u{1F389}",label:`${e.emojiLabel} 8`}]},{id:"shape",title:e.shapeTitle,items:[{id:"triangle",src:Cn("triangle","#f97316"),label:"Triangle"},{id:"circle",src:Cn("circle","#22c55e"),label:"Circle"},{id:"square",src:Cn("square","#3b82f6"),label:"Square"},{id:"diamond",src:Cn("diamond","#8b5cf6"),label:"Diamond"},{id:"star",src:Cn("star","#facc15"),label:"Star"},{id:"heart-shape",src:Cn("heart","#fb7185"),label:"Heart"}]}]}function Ci(e){const t=ln(e),n={...ur.en,...ur[t]??{}};return n.searchFont||(n.searchFont=t==="zh-Hant"?"\u641C\u5C0B\u5B57\u9AD4...":t==="zh"?"\u641C\u7D22\u5B57\u4F53...":"Search font..."),n.loadingFonts||(n.loadingFonts=t==="zh-Hant"?"\u6B63\u5728\u8B80\u53D6\u5B57\u9AD4...":t==="zh"?"\u6B63\u5728\u8BFB\u53D6\u5B57\u4F53...":"Loading fonts..."),n.noFonts||(n.noFonts=t==="zh-Hant"?"\u627E\u4E0D\u5230\u5B57\u9AD4":t==="zh"?"\u6CA1\u6709\u627E\u5230\u5B57\u4F53":"No fonts found"),n.sampleText||(n.sampleText=Wo),n}function Mi(e){const t=ln(e);return{...mr.en,...mr[t]??{}}}const fr={en:{tool:"Annotate",title:"Annotate",hint:"Configure the annotation tools here.",tools:"Tools",color:"Color",custom:"Custom",width:"Line width",reset:"Reset",brush:"Brush",eraser:"Eraser",line:"Line",arrow:"Arrow",rectangle:"Rectangle",ellipse:"Ellipse"},zh:{tool:"\u6807\u6CE8",title:"\u6807\u6CE8",hint:"\u5728\u8FD9\u91CC\u914D\u7F6E\u6807\u6CE8\u5DE5\u5177\u7684\u6837\u5F0F\u53C2\u6570\u3002",tools:"\u5DE5\u5177",color:"\u989C\u8272",custom:"\u81EA\u5B9A\u4E49",width:"\u7EBF\u5BBD",reset:"\u91CD\u7F6E",brush:"\u753B\u7B14",eraser:"\u6A61\u76AE",line:"\u76F4\u7EBF",arrow:"\u7BAD\u5934",rectangle:"\u77E9\u5F62",ellipse:"\u692D\u5706"},"zh-Hant":{tool:"\u6A19\u8A3B",title:"\u6A19\u8A3B",hint:"\u5728\u9019\u88E1\u8A2D\u5B9A\u6A19\u8A3B\u5DE5\u5177\u7684\u6A23\u5F0F\u53C3\u6578\u3002",tools:"\u5DE5\u5177",color:"\u984F\u8272",custom:"\u81EA\u8A02",width:"\u7DDA\u5BEC",reset:"\u91CD\u8A2D",brush:"\u756B\u7B46",eraser:"\u6A61\u76AE",line:"\u76F4\u7DDA",arrow:"\u7BAD\u982D",rectangle:"\u77E9\u5F62",ellipse:"\u6A62\u5713"}};function Ni(e){const t=ln(e);return fr[t]??fr.en}const vr=[{key:"brush"},{key:"eraser"},{key:"line"},{key:"arrow"},{key:"rectangle"},{key:"ellipse"}],Bn=2,Dn=24,Mn=14,Ra=["pen","line","arrow","rect","ellipse"],Ai={brush:"pen",line:"line",arrow:"arrow",rectangle:"rect",ellipse:"ellipse"},hr=["#ffffff","#ff4d4f","#ff7a45","#ffa940","#fadb14","#95de64","#52c41a","#13c2c2","#40a9ff","#2f54eb","#7c7cf0","#eb2f96","#722ed1","#000000"],cn={tool:"brush",color:"#ff4d4f",width:4};function Oi(e){switch(e){case"eraser":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M7.2 15.8 14.9 8a1.8 1.8 0 0 1 2.6 0l2.6 2.6a1.8 1.8 0 0 1 0 2.6l-5.3 5.3a2.4 2.4 0 0 1-1.7.7h-4a2.4 2.4 0 0 1-1.7-.7l-1-1a1.2 1.2 0 0 1 0-1.7Z" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"/><path d="M13.1 19.2h6.2" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"/></svg>';case"line":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 19 19 5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/></svg>';case"arrow":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 16 15 6" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/><path d="M10.5 6H15v4.5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg>';case"rectangle":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><rect x="5.5" y="5.5" width="13" height="13" rx="1.8" fill="none" stroke="currentColor" stroke-width="1.8"/></svg>';case"ellipse":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><ellipse cx="12" cy="12" rx="6.6" ry="6.6" fill="none" stroke="currentColor" stroke-width="1.8"/></svg>';default:return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m8.2 15.8 7.9-7.9a1.9 1.9 0 0 1 2.7 2.7l-7.9 7.9" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/><path d="M7.5 16.5c-.5 2.5-2.4 3.8-3.8 4 .2-1.5 1.5-3.3 4-3.8Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"/></svg>'}}function zi(){return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m5 19 3.9-1 9.2-9.2a1.8 1.8 0 0 0 0-2.6l-.3-.3a1.8 1.8 0 0 0-2.6 0L6 15.1 5 19Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/><path d="m13.7 7.3 3 3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/><path d="m5 19 3.3-3.3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>'}function xr(e,t){switch(e?.type){case"pen":return t.brush;case"line":return t.line;case"arrow":return t.arrow;case"rect":return t.rectangle;case"ellipse":return t.ellipse;default:return t.tool}}function Fa(e){switch(e?.type){case"pen":return"brush";case"line":return"line";case"arrow":return"arrow";case"rect":return"rectangle";case"ellipse":return"ellipse";default:return cn.tool}}function Jn(e=cn){const t=vr.some(o=>o.key===e?.tool)?e.tool:cn.tool,n=gr(e?.color);return{tool:t,color:n,width:re(Math.round(Number(e?.width)||cn.width),Bn,Dn)}}function No(e,t){return e?.tool===t?.tool&&e?.color===t?.color&&Number(e?.width)===Number(t?.width)}function br(e){return No(e,cn)}function Pi(e){return`${re(Math.round(Number(e)||cn.width),Bn,Dn)}px`}function gr(e){const t=String(e??"").trim().toLowerCase();return/^#?[0-9a-f]{3}$/.test(t)?`#${t.replace("#","").split("").map(o=>`${o}${o}`).join("")}`:/^#?[0-9a-f]{6}$/.test(t)?`#${t.replace("#","")}`:cn.color}function Qn(e){const t=gr(e);return{r:Number.parseInt(t.slice(1,3),16),g:Number.parseInt(t.slice(3,5),16),b:Number.parseInt(t.slice(5,7),16)}}function eo(e,t,n){return`#${[e,t,n].map(o=>re(Math.round(Number(o)||0),0,255).toString(16).padStart(2,"0")).join("")}`}function Ao(e,t,n){const o=re(Number(e)||0,0,255)/255,l=re(Number(t)||0,0,255)/255,s=re(Number(n)||0,0,255)/255,m=Math.max(o,l,s),x=Math.min(o,l,s),h=m-x;let y=0;return h>0&&(m===o?y=60*((l-s)/h%6):m===l?y=60*((s-o)/h+2):y=60*((o-l)/h+4)),y<0&&(y+=360),{h:y,s:m<=0?0:h/m,v:m}}function Oo(e,t,n){const o=((Number(e)||0)%360+360)%360,l=re(Number(t)||0,0,1),s=re(Number(n)||0,0,1),m=s*l,x=o/60,h=m*(1-Math.abs(x%2-1));let y=0,S=0,U=0;x>=0&&x<1?(y=m,S=h):x<2?(y=h,S=m):x<3?(S=m,U=h):x<4?(S=h,U=m):x<5?(y=h,U=m):(y=m,U=h);const w=s-m;return{r:Math.round((y+w)*255),g:Math.round((S+w)*255),b:Math.round((U+w)*255)}}function Ii(e){const t=Oo(e,1,1);return eo(t.r,t.g,t.b)}const Hi=["none","sepia","cool","warm","vivid","bw"],$a=["brightness","contrast","saturation","temperature","tint","vibrance","gamma"],Nn={brightness:0,contrast:0,saturation:0,temperature:0,tint:0,vibrance:0,gamma:0,highlights:0,shadows:0,whites:0,blacks:0,lightSense:0,sharpen:0,clarity:0,grain:0,fade:0,vignette:0},zo=Object.keys(Nn);function yr(e){return[{title:e.colorSection,items:[{key:"temperature",label:e.temperature,format:"offset",min:-1,max:1},{key:"tint",label:e.tint,format:"offset",min:-1,max:1},{key:"saturation",label:e.saturation,format:"percent",min:-1,max:1},{key:"vibrance",label:e.vibrance,format:"offset",min:-1,max:1},{key:"gamma",label:e.gamma,format:"percent",min:-1,max:1}]},{title:e.toneSection,items:[{key:"brightness",label:e.brightness,format:"percent",min:-1,max:1},{key:"contrast",label:e.contrast,format:"percent",min:-1,max:1},{key:"highlights",label:e.highlights,format:"offset",min:-1,max:1},{key:"shadows",label:e.shadows,format:"offset",min:-1,max:1},{key:"whites",label:e.whites,format:"offset",min:-1,max:1},{key:"blacks",label:e.blacks,format:"offset",min:-1,max:1},{key:"lightSense",label:e.lightSense,format:"offset",min:-1,max:1}]},{title:e.effectsSection,items:[{key:"sharpen",label:e.sharpen,format:"amount",min:0,max:1},{key:"clarity",label:e.clarity,format:"amount",min:0,max:1},{key:"grain",label:e.grain,format:"amount",min:0,max:1},{key:"fade",label:e.fade,format:"amount",min:0,max:1},{key:"vignette",label:e.vignette,format:"amount",min:0,max:1}]}]}function Ri(e){if(typeof e.applyMut=="function"){e.applyMut(t=>({...t,filters:{...t.filters,...Nn}}));return}e.setFilters({...Nn})}function Fi(e){const t=new Map($r.map(n=>[n.id,n]));return Hi.map(n=>{if(n==="none")return{id:"",css:"",label:e.presetNames.none};const o=t.get(n);return o?{...o,label:e.presetNames[n]??o.label??n}:null}).filter(Boolean)}function wr(e,t="percent"){if(t==="offset"){const n=Math.round((Number(e)||0)*100);return n>0?`+${n}`:`${n}`}return t==="amount"?`${Math.round((Number(e)||0)*100)}%`:`${Math.round((1+(Number(e)||0))*100)}%`}function Po(e){return[e?.textContent,e?.getAttribute?.("title"),e?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function Io(e){return e instanceof HTMLButtonElement?(e.dataset.meTrimHidden="true",e):e??null}function $i(e){return e instanceof HTMLButtonElement?(e.dataset.meAnnotateHidden="true",e):e??null}function to(e){const t=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(e.find(n=>{const o=Po(n);return t.some(l=>o.includes(l))})??e[0]??null)}function Bi(e){const t=["annotate","annotation","markup","draw","doodle","\u6807\u6CE8","\u5857\u9E26","\u5857\u9D09"];return $i(e.find(n=>{const o=Po(n);return t.some(l=>o.includes(l))})??null)}function kr(e,t,n){try{const o=document.createElement("canvas");o.width=208,o.height=118;const l=o.getContext("2d");if(!l)return"";const s=t/n,m=o.width/o.height;let x=0,h=0,y=t,S=n;return s>m?(y=n*m,x=(t-y)/2):s<m&&(S=t/m,h=(n-S)/2),l.drawImage(e,x,h,y,S,0,0,o.width,o.height),o.toDataURL("image/jpeg",.82)}catch{return""}}function Di(e){const t=e.querySelector(".me-video-canvas-stage canvas");if(t instanceof HTMLCanvasElement&&t.width>8&&t.height>8)return kr(t,t.width,t.height);const n=e.querySelector("video");return n instanceof HTMLVideoElement&&n.videoWidth>8&&n.videoHeight>8?kr(n,n.videoWidth,n.videoHeight):""}function _i(e){const t=String(e??"").split(":").map(l=>Number(l));if(t.length!==2)return null;const[n,o]=t;return!(n>0)||!(o>0)?null:n/o}function no(e,t=1080){const n=_i(e)??1;return n>=1?{w:Math.max(2,Yt(t*n)),h:Math.max(2,Yt(t))}:{w:Math.max(2,Yt(t)),h:Math.max(2,Yt(t/n))}}function ji(){return Ei.map(e=>({...e,ratios:e.ratios.map(t=>({ratio:t,...no(t)}))}))}function Er(e){return`${e.platform} ${e.type}`}function Yi(e){switch(e.id){case"facebook-post":return"FB Post";case"facebook-story":return"FB Story";case"instagram-post":return"IG Post";case"instagram-story":return"IG Story";case"tiktok-photo":return"TikTok";case"x-post":return"X Post";case"linkedin-post":return"LinkedIn";case"pinterest-post":return"Pinterest";case"reddit-media":return"Reddit";case"threads-post":return"Threads";case"telegram-post":return"Telegram";default:return Er(e)}}function Vi(e){return Si.map(t=>{const n=no(t),o=e.filter(l=>l.ratios.some(s=>s.ratio===t));return o.length?{ratio:t,...n,groups:o,hint:o.map(l=>Er(l)).join(" / "),tags:o.map(l=>Yi(l))}:null}).filter(Boolean)}function An(e){return`${Math.max(2,Yt(e?.w??0))} x ${Math.max(2,Yt(e?.h??0))} px`}function Sr(e){const t=e?.canvas??{w:1080,h:1920};return Do(t,{...e,scale:void 0})}function _n(e){return e?.scale?{w:Math.max(2,Yt(e.scale.width)),h:Math.max(2,Yt(e.scale.height))}:Sr(e)}function Ho(e){return e==="contain"||e==="force"?e:"cover"}function vn(e,t){const n=Number(e),o=Number.isFinite(n)&&n>0?n:t;return Math.max(2,Yt(o||2))}function Xi(e,t){const n=Math.max(2,Yt(t?.w??0)),o=Math.max(2,Yt(t?.h??0));return e.find(l=>Math.abs(l.w-n)<=2&&Math.abs(l.h-o)<=2)??null}function qi(e,t){switch(Ho(t)){case"contain":return e.containHint;case"force":return e.forceHint;default:return e.coverHint}}function oo(e,t){e.replaceChildren();for(const n of t){const o=document.createElement("option");o.value=n.value,o.textContent=n.label,e.appendChild(o)}}function jn(e=[],t=[]){const n=typeof Intl<"u"?new Intl.Collator(void 0,{sensitivity:"base",numeric:!0}):null,o=new Set;return[...e,...t].map(l=>String(l??"").trim()).filter(Boolean).filter(l=>{const s=l.toLowerCase();return o.has(s)?!1:(o.add(s),!0)}).sort((l,s)=>n?n.compare(l,s):l.localeCompare(s))}function Ro(e){return`"${String(e??"").replace(/\\/g,"\\\\").replace(/"/g,'\\"')}", ${mo}`}function ro(e){const t=String(e??"").trim();return jr[t]||t}function Fo(e){const t=String(e??"").trim(),n=ro(t);return n&&n!==t?`${n} (${t})`:t}function Wi(e){const t=String(e??"").trim();return`${t} ${ro(t)} ${Fo(t)}`.toLowerCase()}function Lr(e){return/[\u3400-\u9fff\uf900-\ufaff]/.test(String(e??""))}function Ki(e){const t=String(e??"").trim().toLowerCase();return t?Yr.some(n=>t.includes(n))?!0:Lr(ro(e)):!1}function Ui(e,t=!1){const n=jn(e);if(!t)return n;const o=[],l=[];for(const s of n)Ki(s)?o.push(s):l.push(s);return[...o,...l]}async function Gi(){return Vn||(Vn=(async()=>{const e=jn(Yo);if(typeof window>"u"||typeof window.queryLocalFonts!="function")return e;try{const n=(await window.queryLocalFonts()).map(o=>o?.family||o?.fullName||"").filter(Boolean);return jn(n,e)}catch{return e}})(),Vn)}function Zi(e){const t=document.createElement("div");t.className="me-video-font-picker";const n=document.createElement("button");n.type="button",n.className="me-video-font-picker-trigger";const o=document.createElement("span");o.className="me-video-font-picker-label";const l=document.createElement("span");l.className="me-video-font-picker-chevron",l.textContent="v",n.append(o,l);const s=document.createElement("div");s.className="me-video-font-picker-dropdown",s.hidden=!0;const m=document.createElement("label");m.className="me-video-font-picker-search";const x=document.createElement("span");x.className="me-video-font-picker-search-icon",x.innerHTML='<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><circle cx="7" cy="7" r="4.5" stroke="currentColor" stroke-width="1.4"></circle><path d="M10.5 10.5L14 14" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path></svg>';const h=document.createElement("input");h.type="search",h.className="me-video-font-picker-search-input",h.placeholder=e.searchFont,h.autocomplete="off",h.spellcheck=!1;const y=document.createElement("div");y.className="me-video-font-picker-list",m.append(x,h),s.append(m,y),t.append(n,s);let S=!1,U=!1,w=!1,I="Arial",B=jn(Yo),ne=!1;const Q=typeof requestAnimationFrame=="function"?requestAnimationFrame:W=>setTimeout(W,0);function k(){I||(I="Arial"),B=jn(B,[I])}function $(W){const J=document.createElement("div");return J.className="me-video-font-picker-message",J.textContent=W,J}function K(W){const J=document.createElement("button");J.type="button",J.className="me-video-font-picker-option",W===I&&J.classList.add("is-active"),J.dataset.family=W;const ve=document.createElement("span");ve.className="me-video-font-picker-option-name",ve.textContent=Fo(W),ve.style.fontFamily=Ro(W);const he=document.createElement("span");return he.className="me-video-font-picker-option-preview",he.textContent=e.sampleText||Wo,he.style.fontFamily=Ro(W),J.append(ve,he),J.addEventListener("click",()=>{ee(W),t.dispatchEvent(new CustomEvent("fontchange",{detail:{value:W}})),X(!1),n.focus()}),J}function V(){const W=I||"Arial";o.textContent=ro(W),o.style.fontFamily=Ro(I||"Arial"),n.title=Fo(W),n.disabled=U}function Z(){if(y.replaceChildren(),!S)return;if(w){y.appendChild($(e.loadingFonts));return}k();const W=String(h.value??"").trim().toLowerCase(),J=Ui(B.filter(ve=>!W||Wi(ve).includes(W)),ne);if(!J.length){y.appendChild($(e.noFonts));return}for(const ve of J)y.appendChild(K(ve))}function X(W){U&&W||(S=!!W,t.classList.toggle("is-open",S),s.hidden=!S,S?Q(()=>{h.focus(),h.select()}):h.value="",Z())}async function se(){if(!w){w=!0,Z();try{B=await Gi(),k()}finally{w=!1,Z()}}}function ee(W,{silent:J=!1}={}){I=String(W??"").trim()||"Arial",k(),V(),!J&&S&&Z()}function q(){return I||"Arial"}function Y(W){U=!!W,U&&X(!1),V(),h.disabled=U}function T(W){const J=Lr(W);ne!==J&&(ne=J,S&&Z())}function D(W){S&&(t.contains(W.target)||X(!1))}return n.addEventListener("click",async()=>{const W=!S;X(W),W&&await se()}),h.addEventListener("input",()=>Z()),document.addEventListener("pointerdown",D,!0),ee("Arial",{silent:!0}),Y(!1),{wrap:t,setValue:ee,getValue:q,setDisabled:Y,setContextText:T,destroy(){document.removeEventListener("pointerdown",D,!0)}}}function Ji(e){const t=String(e??"").trim().toLowerCase();return/^#([0-9a-f]{3}|[0-9a-f]{6})$/.test(t)?t.length===7?t:`#${t.slice(1).split("").map(n=>`${n}${n}`).join("")}`:null}function hn(e,t="#ffffff"){const n=String(e??"").trim();if(!n)return t;if(n.toLowerCase()==="transparent")return"transparent";const o=Ji(n);if(o)return o;const l=n.match(/^rgba?\(([^)]+)\)$/i);if(l){const s=l[1].split(",").slice(0,3).map(m=>re(Math.round(Number(m.trim())||0),0,255));if(s.length===3)return`#${s.map(m=>m.toString(16).padStart(2,"0")).join("")}`}return t}function Ct(e,t,n=""){const o=document.createElement("div");o.className=`me-video-text-row${n?` ${n}`:""}`;const l=document.createElement("label");return l.className="me-video-text-row-label",l.textContent=e,o.append(l,t),o}function qt(e){const t=document.createElement("section");t.className="me-video-text-section";const n=document.createElement("h4");n.className="me-video-text-section-title",n.textContent=e;const o=document.createElement("div");return o.className="me-video-text-section-body",t.append(n,o),{section:t,body:o,title:n}}function io({allowTransparent:e=!1,fallback:t="#ffffff",transparentLabel:n="Transparent"}={}){const o=document.createElement("div");o.className="me-video-text-color-control";const l=document.createElement("input");l.type="color",l.className="me-video-text-color-swatch",l.value=hn(t,"#ffffff");const s=document.createElement("input");s.type="text",s.className="me-video-text-input me-video-text-color-text",s.spellcheck=!1,o.append(l,s);let m=null;e&&(m=document.createElement("button"),m.type="button",m.className="me-video-text-toggle me-video-text-transparent-toggle",m.textContent=n,o.appendChild(m));function x(){return o.dataset.transparent==="true"}function h(w){o.dataset.transparent=w?"true":"false",m?.classList.toggle("is-active",w),l.disabled=w,w?s.value="transparent":(!s.value||s.value==="transparent")&&(s.value=l.value||hn(t,"#ffffff"))}function y(w){if(e&&String(w??"").trim().toLowerCase()==="transparent"){h(!0);return}const I=hn(w,hn(t,"#ffffff"));l.value=I==="transparent"?hn(t,"#ffffff"):I,s.value=I==="transparent"?"transparent":I,e&&h(I==="transparent")}function S(){return e&&x()?"transparent":hn(s.value||l.value,l.value||hn(t,"#ffffff"))}function U(w){l.disabled=w||e&&x(),s.disabled=w,m&&(m.disabled=w)}return y(t),{wrap:o,swatch:l,text:s,transparentButton:m,setTransparent:h,setValue:y,getValue:S,setDisabled:U}}function ao(e){const t=e.querySelector(".me-video-workspace");if(!t)return null;let n=t.querySelector(".me-video-inspector-rail");return n||(n=document.createElement("aside"),n.className="me-video-inspector-rail",n.hidden=!0,t.appendChild(n)),n}function tn(e,t){const n=ao(e);return n?(t.parentElement!==n&&n.appendChild(t),n):null}function It(e){const t=ao(e);if(!t)return;const n=[...t.children].some(o=>o instanceof HTMLElement&&!o.hidden);t.hidden=!n}function Tr(e,t,n){const o=ao(e);if(!(!o||!(t instanceof HTMLElement))){for(const l of o.children)if(!(!(l instanceof HTMLElement)||l===t)){if(n){l.dataset.meInspectorPrevHidden||(l.dataset.meInspectorPrevHidden=l.hidden?"true":"false"),l.hidden=!0;continue}Object.prototype.hasOwnProperty.call(l.dataset,"meInspectorPrevHidden")&&(l.hidden=l.dataset.meInspectorPrevHidden==="true",delete l.dataset.meInspectorPrevHidden)}}}function Cr(e){return new Set(String(e??"").split(/\s+/).map(t=>t.trim()).filter(Boolean))}function Qi(e){return[...e].join(" ").trim()}function ea(e,t,n,o){sn(),wn();const l=o(),s=Uo(l),m=s.text,x=Ci(l),h=document.createElement("div");h.className="me-video-text-panel",h.hidden=!0,e.appendChild(h);const y=document.createElement("div");y.className="me-video-text-toolbar";const S=document.createElement("strong");S.textContent=m.tool;const U=jt(m.addText),w=jt(m.moveOnCanvas),I=jt(m.duplicate),B=jt(m.delete);B.classList.add("me-video-text-danger");const ne=jt(m.close);y.append(S);const Q=document.createElement("div");Q.className="me-video-text-list";const k=document.createElement("div");k.className="me-video-text-empty",k.textContent=m.empty;const $=document.createElement("textarea");$.className="me-video-text-input me-video-text-textarea",$.placeholder=m.placeholder;const K=document.createElement("select");K.className="me-video-text-select",oo(K,[{value:"none",label:x.none},{value:"heading",label:m.heading},{value:"subtitle",label:m.subtitle},{value:"label",label:m.label}]);const V=Zi(x),Z=document.createElement("select");Z.className="me-video-text-select",oo(Z,ki);const X=document.createElement("input");X.type="number",X.min="8",X.max="320",X.step="1",X.className="me-video-text-input";const se=io({fallback:"#ffffff"}),ee=io({allowTransparent:!0,fallback:"#111111",transparentLabel:x.transparent}),q=document.createElement("div");q.className="me-video-text-inline";const Y=[{value:"left",label:x.alignLeft},{value:"center",label:x.alignCenter},{value:"right",label:x.alignRight}].map(u=>{const L=document.createElement("button");return L.type="button",L.className="me-video-text-align",L.dataset.align=u.value,L.textContent=u.label,q.appendChild(L),{value:u.value,button:L}}),T=document.createElement("div");T.className="me-video-text-toggle-group";const D=document.createElement("button");D.type="button",D.className="me-video-text-toggle is-italic",D.title=x.italic,D.textContent="I";const W=document.createElement("button");W.type="button",W.className="me-video-text-toggle is-underline",W.title=x.underline,W.textContent="U";const J=document.createElement("button");J.type="button",J.className="me-video-text-toggle is-strike",J.title=x.strike,J.textContent="S",T.append(D,W,J);const ve=document.createElement("select");ve.className="me-video-text-select",oo(ve,[{value:"none",label:x.caseNone},{value:"uppercase",label:x.uppercase},{value:"lowercase",label:x.lowercase},{value:"capitalize",label:x.capitalize}]);const he=document.createElement("div");he.className="me-video-text-slider-row";const He=document.createElement("input");He.type="number",He.min="0",He.max="100",He.step="1",He.className="me-video-text-input";const ue=document.createElement("input");ue.type="range",ue.min="0",ue.max="100",ue.step="1",he.append(He,ue);const Ee=document.createElement("select");Ee.className="me-video-text-select",oo(Ee,[{value:"none",label:x.none}]);const We=io({fallback:"#000000"}),Fe=document.createElement("input");Fe.type="number",Fe.min="0",Fe.max="32",Fe.step="1",Fe.className="me-video-text-input";const R=io({fallback:"#000000"}),C=document.createElement("input");C.type="number",C.min="-80",C.max="80",C.step="1",C.className="me-video-text-input";const $e=document.createElement("input");$e.type="number",$e.min="-80",$e.max="80",$e.step="1",$e.className="me-video-text-input";const Se=document.createElement("input");Se.type="number",Se.min="0",Se.max="80",Se.step="1",Se.className="me-video-text-input";const ce=document.createElement("div");ce.className="me-video-text-section-body",ce.append(Ct(m.content,$,"is-area"),Ct(x.preset,K));const Re=qt(x.styles);Re.body.append(Ct(m.font,V.wrap),Ct(m.weight,Z),Ct(x.size,X),Ct(m.color,se.wrap),Ct(x.fill,ee.wrap),Ct(m.align,q),Ct(x.decoration,T),Ct(x.case,ve),Ct(m.opacity,he));const O=qt(x.animations);O.body.append(Ct(x.animation,Ee));const G=qt(x.fontStroke);G.body.append(Ct(m.color,We.wrap),Ct(x.size,Fe));const H=qt(x.fontShadow);H.body.append(Ct(m.color,R.wrap),Ct(x.x,C),Ct(x.y,$e),Ct(x.blur,Se)),h.append(y,k,ce,Re.section,O.section,G.section,H.section);let _=null,le=null,Xe=null,Le=null,Ze=null,Ue=null,je=null,ct=null,ot=!1,Te=null,rt=!1,ht=!1;const Et="text",xe=typeof requestAnimationFrame=="function"?requestAnimationFrame:u=>setTimeout(u,16),Ce=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ie()),ke=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ie()),Qe=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],nt={key:"rotate",x:.5,y:0};function vt(){Promise.resolve().then(()=>{ht=!1;const u=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,u-1)})}function yt(u){ht=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return u()}finally{vt()}}function ie(){rt||(rt=!0,xe(()=>{rt=!1,qe()}))}function ye(u){const L=!!u;if(L===ot){qe();return}ot=L,ot&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Et}})),qe()}function Ye(){return le?[...le.querySelectorAll("button")].filter(u=>u!==_&&!u.classList.contains("me-video-text-tool")):[]}function Ge(){Ye()[0]?.click()}function it(){if(!_)return;const u=Xn(n());_.dataset.theme=u}function Lt(){tn(e,h),It(e)}function Tt(){h.hidden=!ot,_&&_.classList.toggle("is-active",ot),Lt()}function Rt(u){if(!u.length){Te=null;return}const L=So(e,t.getState());Te=L.length?L[L.length-1]:null}function dt(){const u=t.getState().overlays??[];if(Te==null)return null;const L=u[Te];return L?.type==="text"?L:null}function Ht(){return Ln(t)}function bt(){return gn(e)}function Ft(){if(!t.history?.present)return;const u=bt(),L=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(L)?L:-1)-u)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:u}},typeof t.emit=="function"&&t.emit())}function wt(u,L,i={}){const f=(t.getState().overlays??[])[u];!f||f.type!=="text"||t.updateOverlay(u,Zt(f,Ht(),L),i)}function Mt(u){if(typeof t.applyMut=="function"){t.applyMut(i=>({...i,overlays:[...en(i.overlays),{...u,timelineTrack:0}]}));return}const L=en(t.getState().overlays);t.commit?.({overlays:[...L,{...u,timelineTrack:0}]})}function ut(u,L={}){if(Te==null)return;const i=L.preservePreset||Object.prototype.hasOwnProperty.call(u,"textPreset")?u:{...u,textPreset:"none"};t.updateOverlay(Te,i)}function Wt(u="heading"){const L=Ht();let i=re(bt(),0,Math.max(0,L-_e)),c=Math.min(L,i+Vt);c-i<_e&&(i=re(L-Vt,0,Math.max(0,L-_e)),c=Math.max(i+_e,L));const f={...Qo(t,s,u),...Zt(null,L,{startAt:i,endAt:c,timelineTrack:0})};Mt(f);const r=t.getState().overlays??[];Te=r.length?r.length-1:null,Te!=null&&gt(e,"text",[Te]),Ge(),ye(!0)}function g(){const u=t.getState(),L=Lo(u.overlays??[],So(e,u));L.changed&&(t.commit({overlays:L.overlays}),Te=L.selection.length?L.selection[L.selection.length-1]:null,gt(e,"text",L.selection),qe())}function N(){const u=t.getState(),L=To(u.overlays??[],So(e,u));L.changed&&(t.commit({overlays:L.overlays}),Te=null,gt(e,"text",[]),qe())}function j(u){if(!dt()){Wt(u);return}const i=Qo(t,s,u);ut({text:i.text,fontSize:i.fontSize,width:i.width,fontWeight:i.fontWeight,fontFamily:i.fontFamily,fontStyle:i.fontStyle,textAlign:i.textAlign,color:i.color,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,paddingX:i.paddingX,paddingY:i.paddingY,lineHeight:i.lineHeight,boxShadow:i.boxShadow?{...i.boxShadow}:void 0,textDecoration:i.textDecoration??"",textTransform:i.textTransform,animation:"none",textPreset:u},{preservePreset:!0})}function we(){const{timelineInner:u,timelineHost:L}=Rn(e,t.getState());if(!u||!L){Le?.remove(),Le=null,Ce&&Ze&&(Ce.unobserve(Ze),Ze=null),Xe=null;return}Xe=u,(!Le||!Le.isConnected||Le.parentElement!==L)&&(Le?.remove(),Le=document.createElement("div"),Le.className="me-video-text-timeline me-video-overlay-timeline me-video-text-overlay-layer");for(const i of[...L.children])i!==Le&&i instanceof HTMLElement&&i.classList.contains("me-video-text-overlay-layer")&&i.remove();(Le.parentElement!==L||L.lastElementChild!==Le)&&L.appendChild(Le),Ce&&Ze!==Xe&&(Ze&&Ce.unobserve(Ze),Ze=Xe,Ce.observe(Xe))}function Oe(){const u=e.querySelector(".me-video-canvas-stage");if(!u){je?.remove(),je=null,ke&&ct&&(ke.unobserve(ct),ct=null),Ue=null;return}Ue=u,Ue.style.position="relative",!je||!je.isConnected||je.parentElement!==Ue?(je?.remove(),je=document.createElement("div"),je.className="me-video-text-canvas-layer",je.addEventListener("pointerdown",L=>{L.target===je&&(L.preventDefault(),L.stopPropagation())}),je.addEventListener("click",L=>{L.target===je&&(L.preventDefault(),L.stopPropagation(),Te=null,wo(e),ot?ye(!1):qe())}),Ue.appendChild(je)):Ue.lastElementChild!==je&&Ue.appendChild(je),ke&&ct!==Ue&&(ct&&ke.unobserve(ct),ct=Ue,ke.observe(Ue))}function p(){if(!Ue)return null;const L=t.getState().canvas??{},i=Math.max(1,Number(L.w)||0),c=Math.max(1,Number(L.h)||0);if(!i||!c)return null;const f=Ue.getBoundingClientRect(),r=Ue.querySelector("canvas, video, img")||[...Ue.children].find(z=>z!==je)||null;let a=0,d=0,v=Ue.clientWidth||i,M=Ue.clientHeight||c;if(r instanceof HTMLElement){const z=r.getBoundingClientRect();z.width>0&&z.height>0&&(a=z.left-f.left,d=z.top-f.top,v=z.width,M=z.height)}if(!(v>0&&M>0)){const z=Ue.clientWidth||i,F=Ue.clientHeight||c,E=Math.min(z/i,F/c)||1;v=i*E,M=c*E,a=Math.max(0,(z-v)/2),d=Math.max(0,(F-M)/2)}return{stageLeft:f.left,stageTop:f.top,left:a,top:d,scaleX:v/i,scaleY:M/c}}function b(u,L){const i=at(u),c=$t(u,i);return L>=i-.001&&L<=c+.001}function A(u,L,i){const c=Pt(e,"text",u,L,i);Te=c.length?c[c.length-1]:null,ye(!0),qe()}function ae(u,L,i){return{x:(u-i.stageLeft-i.left)/i.scaleX,y:(L-i.stageTop-i.top)/i.scaleY}}function de(u,L,i,c){return{x:i,y:c,fontSize:L.fontSize,width:L.width,paddingX:L.paddingX,paddingY:L.paddingY,borderWidth:L.borderWidth,boxShadow:L.boxShadow}}function me(u,L,i){const c=(t.getState().overlays??[])[u];if(!c||c.type!=="text")return;const f=t.getState().canvas??{w:1080,h:1920},r=Ut(c);if(!r)return;const a=L.clientX,d=L.clientY,v=Math.max(0,(Number(f.w)||0)-r.w),M=Math.max(0,(Number(f.h)||0)-r.h),z=(P,te,oe)=>{const Be=(P-a)/i.scaleX,ge=(te-d)/i.scaleY,fe=re(r.x+Be,0,v),pe=re(r.y+ge,0,M);t.updateOverlay(u,{x:fe,y:pe},oe?{transient:!0}:void 0)},F=P=>{P.preventDefault(),z(P.clientX,P.clientY,!0)},E=P=>{window.removeEventListener("pointermove",F),window.removeEventListener("pointerup",E),window.removeEventListener("pointercancel",E),z(P.clientX,P.clientY,!1)};window.addEventListener("pointermove",F),window.addEventListener("pointerup",E),window.addEventListener("pointercancel",E)}function ze(u,L,i,c){const f=(t.getState().overlays??[])[u];if(!f||f.type!=="text")return;const r=Ut(f);if(!r)return;const a=t.getState().canvas??{w:1080,h:1920},d=L.x===.5?.5:1-L.x,v=L.y===.5?.5:1-L.y,M=r.x+r.w*d,z=r.y+r.h*v,F=Math.max(.1,24/Math.max(24,r.w),24/Math.max(24,r.h)),E=L.x===.5?1/0:Math.max(.1,(d===0?(Number(a.w)||0)-M:M)/Math.max(1,r.w)),P=L.y===.5?1/0:Math.max(.1,(v===0?(Number(a.h)||0)-z:z)/Math.max(1,r.h)),te=Math.max(F,Math.min(E,P,8)),oe=(fe,pe,De)=>{const et=ae(fe,pe,c),tt=[];L.x!==.5&&tt.push(Math.abs(et.x-M)/Math.max(1,r.w)),L.y!==.5&&tt.push(Math.abs(et.y-z)/Math.max(1,r.h));const st=tt.length?Math.max(...tt):1,St=re(st,F,te),Kt=_o(f,St),dn=Ut(Kt);if(!dn)return;const un=M-dn.w*d,an=z-dn.h*v;t.updateOverlay(u,de(f,Kt,un,an),De?{transient:!0}:void 0)},Be=fe=>{fe.preventDefault(),oe(fe.clientX,fe.clientY,!0)},ge=fe=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",ge),oe(fe.clientX,fe.clientY,!1)};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",ge)}function be(u,L,i){const c=(t.getState().overlays??[])[u];if(!c||c.type!=="text")return;const f=Ut(c);if(!f)return;const r=i.stageLeft+i.left+(f.x+f.w/2)*i.scaleX,a=i.stageTop+i.top+(f.y+f.h/2)*i.scaleY,d=Math.atan2(L.clientY-a,L.clientX-r),v=mn(c),M=(E,P,te,oe)=>{const Be=Math.atan2(P-a,E-r);let ge=In(v+(Be-d)*180/Math.PI);oe&&(ge=Math.round(ge/15)*15),t.updateOverlay(u,{rotation:ge},te?{transient:!0}:void 0)},z=E=>{E.preventDefault(),M(E.clientX,E.clientY,!0,E.shiftKey)},F=E=>{window.removeEventListener("pointermove",z),window.removeEventListener("pointerup",F),window.removeEventListener("pointercancel",F),M(E.clientX,E.clientY,!1,E.shiftKey)};window.addEventListener("pointermove",z),window.addEventListener("pointerup",F),window.addEventListener("pointercancel",F)}function Pe(u,L){if(Oe(),!je)return;je.replaceChildren();const i=p();if(!i){je.hidden=!0;return}je.hidden=!1;const c=bt(),f=u.map(a=>a.index),r=u.filter(a=>b(a.overlay,c));for(const a of r){const d=Ut(a.overlay);if(!d)continue;const v=document.createElement("button");v.type="button",v.className="me-video-text-canvas-hit";const M=L.has(a.index),z=M&&Te===a.index;M&&v.classList.add("is-active"),v.title=qn(a.overlay.text,s.untitledText),v.style.left=`${i.left+d.x*i.scaleX}px`,v.style.top=`${i.top+d.y*i.scaleY}px`,v.style.width=`${Math.max(18,d.w*i.scaleX)}px`,v.style.height=`${Math.max(18,d.h*i.scaleY)}px`;const F=mn(a.overlay);if(F&&(v.style.transform=`rotate(${F}deg)`,v.style.transformOrigin="center center"),v.addEventListener("pointerdown",E=>{if(E.preventDefault(),E.stopPropagation(),E.shiftKey||E.ctrlKey||E.metaKey){A(a.index,E,f);return}Te=a.index,gt(e,"text",[a.index]),ye(!0),me(a.index,E,i)}),z){for(const P of Qe){const te=document.createElement("span");te.className="me-video-text-canvas-handle",te.dataset.handle=P.key,te.style.left=`${P.x*100}%`,te.style.top=`${P.y*100}%`,te.addEventListener("pointerdown",oe=>{oe.preventDefault(),oe.stopPropagation(),Te=a.index,gt(e,"text",[a.index]),ye(!0),ze(a.index,P,oe,i)}),v.appendChild(te)}const E=document.createElement("span");E.className="me-video-text-canvas-handle",E.dataset.handle=nt.key,E.style.left=`${nt.x*100}%`,E.style.top=`${nt.y*100}%`,E.addEventListener("pointerdown",P=>{P.preventDefault(),P.stopPropagation(),Te=a.index,gt(e,"text",[a.index]),ye(!0),be(a.index,P,i)}),v.appendChild(E)}je.appendChild(v)}}function Me(u,L,i){if(!Xe)return;const c=(t.getState().overlays??[])[u];if(!c||c.type!=="text")return;if(i.shiftKey||i.ctrlKey||i.metaKey){i.preventDefault(),i.stopPropagation();const P=Pt(e,"text",u,i,or(t.getState()).map(te=>te.index));Te=P.length?P[P.length-1]:null,Ge(),ye(!0);return}i.preventDefault(),i.stopPropagation(),Te=u,gt(e,"text",[u]),Ge(),ot||ye(!0);const f=Ht(),r=Math.max(Xe.clientWidth/f,.001),a=at(c),d=$t(c,a),v=Math.max(_e,d-a),M=ft(c),z=i.clientX,F=P=>{const te=(P.clientX-z)/r,oe=t.getState().overlays??[];if(L==="move"){const fe=Math.max(0,a+te),pe=fe+v,De=mt(Le,oe,u,fe,pe,P.clientY,M);wt(u,{startAt:fe,endAt:pe,timelineTrack:De},{transient:!0});return}if(L==="start"){const fe=re(a+te,0,d-_e),pe=mt(Le,oe,u,fe,d,P.clientY,M);wt(u,{startAt:fe,endAt:d,timelineTrack:pe},{transient:!0});return}const Be=Math.max(a+_e,d+te),ge=mt(Le,oe,u,a,Be,P.clientY,M);wt(u,{startAt:a,endAt:Be,timelineTrack:ge},{transient:!0})},E=P=>{window.removeEventListener("pointermove",F),window.removeEventListener("pointerup",E),window.removeEventListener("pointercancel",E);const te=(P.clientX-z)/r,oe=t.getState().overlays??[];if(L==="move"){const fe=Math.max(0,a+te),pe=fe+v,De=mt(Le,oe,u,fe,pe,P.clientY,M);wt(u,{startAt:fe,endAt:pe,timelineTrack:De});return}if(L==="start"){const fe=re(a+te,0,d-_e),pe=mt(Le,oe,u,fe,d,P.clientY,M);wt(u,{startAt:fe,endAt:d,timelineTrack:pe});return}const Be=Math.max(a+_e,d+te),ge=mt(Le,oe,u,a,Be,P.clientY,M);wt(u,{startAt:a,endAt:Be,timelineTrack:ge})};window.addEventListener("pointermove",F),window.addEventListener("pointerup",E),window.addEventListener("pointercancel",E),qe()}function Ie(u,L){if(we(),!Le||!Xe||(Le.replaceChildren(),Le.hidden=u.length===0,!u.length))return;const i=Ht(),c=Xe.clientWidth/i,f=Hn(t.getState()),r=new Map;for(const a of u){const d=ft(a.overlay),v=f.get(d)??d;let M=r.get(d);M||(M=document.createElement("div"),M.className="me-video-overlay-track-row",M.dataset.track=String(d),M.style.top=`${Sn(v)}px`,r.set(d,M),Le.appendChild(M));const z=document.createElement("div");z.className="me-video-text-track-clip",L.has(a.index)&&z.classList.add("is-active");const F=at(a.overlay),E=En(a.overlay);z.style.left=`${F*c}px`,z.style.width=`${Math.max(36,E*c)}px`;const P=document.createElement("span");P.className="me-video-text-track-icon",P.textContent="Aa";const te=document.createElement("span");te.className="me-video-text-track-label",te.textContent=qn(a.overlay.text,s.untitledText),te.title=te.textContent;const oe=document.createElement("span");oe.className="me-video-text-track-handle is-start";const Be=document.createElement("span");Be.className="me-video-text-track-handle is-end",z.append(P,te,oe,Be),z.addEventListener("pointerdown",ge=>Me(a.index,"move",ge)),oe.addEventListener("pointerdown",ge=>Me(a.index,"start",ge)),Be.addEventListener("pointerdown",ge=>Me(a.index,"end",ge)),z.addEventListener("click",ge=>{if(ge.preventDefault(),ge.stopPropagation(),ge.shiftKey||ge.ctrlKey||ge.metaKey){Ge(),qe();return}const fe=Pt(e,"text",a.index,ge,u.map(pe=>pe.index));Te=fe.length?fe[fe.length-1]:null,Ge(),ye(!0),qe()}),M.appendChild(z)}}function Je(u,L){Q.replaceChildren(),Q.hidden=u.length===0,k.hidden=u.length>0;for(const i of u){const c=document.createElement("button");c.type="button",c.className="me-video-text-chip",L.has(i.index)&&c.classList.add("is-active"),c.textContent=qn(i.overlay.text,s.untitledText),c.title=qn(i.overlay.text,s.untitledText),c.addEventListener("click",f=>{const r=Pt(e,"text",i.index,f,u.map(a=>a.index));Te=r.length?r[r.length-1]:null,qe()}),Q.appendChild(c)}}function Ae(u){$.disabled=u,V.setDisabled(u),Z.disabled=u,X.disabled=u,Y.forEach(({button:L})=>L.disabled=u),ve.disabled=u,Ee.disabled=u,He.disabled=u,ue.disabled=u,Fe.disabled=u,C.disabled=u,$e.disabled=u,Se.disabled=u,se.setDisabled(u),ee.setDisabled(u),We.setDisabled(u),R.setDisabled(u),I.disabled=u,B.disabled=u,w.disabled=u,D.disabled=u,W.disabled=u,J.disabled=u}function Ne(u){const L=String(re(Math.round(Number(u)||0),0,100));He.value=L,ue.value=L}function Ke(u){const L=Cr(u?.textDecoration);D.classList.toggle("is-active",!!u&&String(u.fontStyle??"normal")==="italic"),W.classList.toggle("is-active",!!u&&L.has("underline")),J.classList.toggle("is-active",!!u&&L.has("line-through"))}function lt(u="left"){Y.forEach(({value:L,button:i})=>{})}function pt(u){if(Ae(!!!u),!u){K.value="none",$.value="",V.setContextText(""),V.setValue("Arial",{silent:!0}),Z.value="700",X.value="72",se.setValue("#ffffff"),ee.setValue("transparent"),lt("center"),ve.value="none",Ee.value="none",We.setValue("#000000"),Fe.value="0",R.setValue("#000000"),C.value="0",$e.value="4",Se.value="18",Ne(100),Ke(null);return}const i=u.boxShadow??{};K.value=String(u.textPreset??"none"),$.value=String(u.text??""),V.setContextText(u.text??""),V.setValue(String(u.fontFamily??"Arial"),{silent:!0}),Z.value=String(u.fontWeight??"700"),X.value=String(Math.round(Number(u.fontSize)||72)),se.setValue(u.color??"#ffffff"),ee.setValue(u.backgroundColor??"transparent"),lt(u.textAlign==="right"||u.textAlign==="center"?u.textAlign:"left"),ve.value=u.textTransform?String(u.textTransform):"none",Ee.value=u.animation?String(u.animation):"none",We.setValue(u.borderColor??"#000000"),Fe.value=String(Math.round(Number(u.borderWidth)||0)),R.setValue(i.color??"#000000"),C.value=String(Math.round(Number(i.x)||0)),$e.value=String(Math.round(Number(i.y)||0)),Se.value=String(Math.round(Number(i.blur)||0)),Ne(Number.isFinite(u.opacity)?u.opacity:100),Ke(u)}function qe(){yt(()=>{const u=or(t.getState());Rt(u);const L=new Set(_t(e,"text"));Ie(u,L),Pe(u,L),Je(u,L),pt(dt()),Tt(),Lt(),it()}),Ft()}function Ve(){yt(()=>{const u=e.querySelector(".me-video-toolrail");u&&(le=u,Bi([...le.querySelectorAll("button")].filter(L=>L instanceof HTMLButtonElement&&L!==_&&!L.classList.contains("me-video-text-tool"))),(!_||!_.isConnected)&&(_=document.createElement("button"),_.type="button",_.className="me-video-text-tool",_.innerHTML=`<span class="me-video-text-tool-icon">T</span><span class="me-video-text-tool-label">${m.tool}</span>`,_.addEventListener("click",()=>{Wt("heading")})),_.isConnected||le.appendChild(_),it(),Lt())})}function xt(u){return!!u&&(u===h||h.contains(u)||u===_||u===Le||Le?.contains?.(u)||u===je||je?.contains?.(u))}function Ot(u){return u.some(L=>{if(!xt(L.target))return!0;for(const i of L.addedNodes)if(!xt(i))return!0;for(const i of L.removedNodes)if(!xt(i))return!0;return!1})}function Bt(u,L){u.swatch.addEventListener("input",()=>{u.transparentButton&&u.wrap.dataset.transparent==="true"&&u.setTransparent(!1),u.text.value=u.swatch.value,L(u.getValue())}),u.text.addEventListener("change",()=>{const i=String(u.text.value??"").trim();if(u.transparentButton&&i.toLowerCase()==="transparent"){u.setTransparent(!0),L("transparent");return}const c=hn(i,u.swatch.value||"#ffffff");u.swatch.value=c==="transparent"?u.swatch.value||"#ffffff":c,u.text.value=c,u.transparentButton&&u.setTransparent(!1),L(c)}),u.transparentButton?.addEventListener("click",()=>{const i=u.wrap.dataset.transparent!=="true";u.setTransparent(i),L(u.getValue())})}function Nt(u){const L=dt();if(!L)return;const i={color:"#000000",x:0,y:4,blur:18,...L.boxShadow??{}};ut({boxShadow:{...i,...u}})}function nn(u){const L=dt();if(!L)return;const i=Cr(L.textDecoration);i.has(u)?i.delete(u):i.add(u),ut({textDecoration:Qi(i)||void 0})}const on=new MutationObserver(u=>{ht||e.__meVideoEnhancerObserverLock||Ot(u)&&(Ve(),ie())}),Jt=u=>{u?.detail?.id!==Et&&ot&&(ot=!1,qe())},At=()=>{qe()};on.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",Jt),e.addEventListener(zt,At),window.addEventListener("resize",Lt);const rn=t.subscribe(()=>{qe()});return U.addEventListener("click",()=>Wt("heading")),w.addEventListener("click",()=>{Ge(),ye(!0)}),I.addEventListener("click",g),B.addEventListener("click",N),ne.addEventListener("click",()=>{ye(!1)}),$.addEventListener("input",()=>{V.setContextText($.value),ut({text:$.value})}),K.addEventListener("change",()=>{if(K.value==="none"){dt()&&ut({textPreset:"none"},{preservePreset:!0});return}j(K.value)}),V.wrap.addEventListener("fontchange",()=>ut({fontFamily:V.getValue()})),Z.addEventListener("change",()=>ut({fontWeight:Z.value})),X.addEventListener("change",()=>ut({fontSize:re(Number(X.value)||72,8,320)})),Bt(se,u=>ut({color:u})),Bt(ee,u=>ut({backgroundColor:u})),Y.forEach(({value:u,button:L})=>{L.addEventListener("click",()=>{lt(u),ut({textAlign:u})})}),ve.addEventListener("change",()=>ut({textTransform:ve.value==="none"?void 0:ve.value})),Ee.addEventListener("change",()=>ut({animation:Ee.value==="none"?void 0:Ee.value})),Fe.addEventListener("change",()=>ut({borderWidth:re(Number(Fe.value)||0,0,32)})),Bt(We,u=>ut({borderColor:u})),Bt(R,u=>Nt({color:u})),C.addEventListener("change",()=>Nt({x:re(Number(C.value)||0,-80,80)})),$e.addEventListener("change",()=>Nt({y:re(Number($e.value)||0,-80,80)})),Se.addEventListener("change",()=>Nt({blur:re(Number(Se.value)||0,0,80)})),He.addEventListener("input",()=>{const u=re(Number(He.value)||0,0,100);Ne(u),ut({opacity:u})}),ue.addEventListener("input",()=>{const u=re(Number(ue.value)||0,0,100);Ne(u),ut({opacity:u})}),D.addEventListener("click",()=>{const u=dt();u&&ut({fontStyle:String(u.fontStyle??"normal")==="italic"?"normal":"italic"})}),W.addEventListener("click",()=>nn("underline")),J.addEventListener("click",()=>nn("line-through")),Ve(),qe(),{destroy(){on.disconnect(),Ce&&Ze&&Ce.unobserve(Ze),ke&&ct&&ke.unobserve(ct),rn(),e.removeEventListener("me-video-inspector-open",Jt),e.removeEventListener(zt,At),window.removeEventListener("resize",Lt),V.destroy(),_?.remove(),Le?.remove(),je?.remove(),h.remove(),It(e)}}}function ta(e,t,n){sn(),wn();const o=Li(n()),l=Ti(o),s=document.createElement("div");s.className="me-video-text-panel me-video-sticker-panel",s.hidden=!0,e.appendChild(s);const m=document.createElement("div");m.className="me-video-text-toolbar";const x=document.createElement("strong");x.textContent=o.title,m.append(x);const h=qt(o.uploadTitle),y=document.createElement("label");y.className="me-video-sticker-upload-zone";const S=document.createElement("span");S.className="me-video-sticker-upload-icon",S.textContent="\u{1F5BC}";const U=document.createElement("span");U.className="me-video-sticker-upload-text",U.textContent=o.uploadHint;const w=document.createElement("span");w.className="me-video-sticker-upload-subtext",w.textContent=o.uploadFormats;const I=document.createElement("input");I.type="file",I.accept="image/png,image/jpeg,image/webp,image/svg+xml",y.append(S,U,w,I),h.body.appendChild(y);const B=qt(o.libraryTitle),ne=document.createElement("div");ne.className="me-video-sticker-library",B.body.appendChild(ne),s.append(m,h.section,B.section);let Q=null,k=null,$=null,K=null,V=null,Z=null,X=null,se=null,ee=null,q=!1,Y=null,T=!1,D=!1;const W="sticker",J=typeof requestAnimationFrame=="function"?requestAnimationFrame:g=>setTimeout(g,16),ve=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>Fe()),he=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>Fe()),He=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],ue={key:"rotate",x:.5,y:0};function Ee(){Promise.resolve().then(()=>{D=!1;const g=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,g-1)})}function We(g){D=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return g()}finally{Ee()}}function Fe(){T||(T=!0,J(()=>{T=!1,dt()}))}function R(g){const N=!!g;if(N===q){dt();return}q=N,q&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:W}})),dt()}function C(g=k){return g?[...g.children].filter(N=>N instanceof HTMLButtonElement&&!N.classList.contains("me-video-text-tool")):[]}function $e(g){return[g?.textContent,g?.getAttribute?.("title"),g?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function Se(g){const N=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(g.find(j=>{const we=$e(j);return N.some(Oe=>we.includes(Oe))})??g[0]??null)}function ce(g){const N=[o.tool,o.title,"sticker","stickers","\u8D34\u7EB8","\u8CBC\u7D19"].map(j=>String(j??"").trim().toLowerCase()).filter(Boolean);return g.find(j=>{const we=$e(j);return N.some(Oe=>we.includes(Oe))})??g[Math.min(5,Math.max(0,g.length-1))]??null}function Re(){if(Q?.classList.toggle("is-active",q),!!$&&q){$.classList.remove("is-active");return}}function O(){$&&($.classList.contains("is-active")||$.click())}function G(){tn(e,s),It(e)}function H(){s.hidden=!q,Re(),G()}function _(g){if(!g.length){Y=null;return}const N=lr(e,t.getState());Y=N.length?N[N.length-1]:null}function le(){return Ln(t)}function Xe(){return gn(e)}function Le(){if(!t.history?.present)return;const g=Xe(),N=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(N)?N:-1)-g)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:g}},typeof t.emit=="function"&&t.emit())}function Ze(g){return g?.emoji?`${o.defaultLabel} ${g.emoji}`:g?.src?o.uploadedLabel:o.defaultLabel}function Ue(g){const N=Ut(g);if(!N)return null;if(!g?.emoji)return N;const j=.84,we=N.w*(1-j)/2,Oe=N.h*(1-j)/2;return{x:N.x+we,y:N.y+Oe,w:N.w*j,h:N.h*j}}function je(g,N){if(!g?.emoji)return N;const we=1/.84,Oe=(we-1)/2;return{x:N.x-N.w*Oe,y:N.y-N.h*Oe,w:N.w*we,h:N.h*we}}function ct(g,N){const j=Math.max(1,Number(N?.w)||1080),we=Math.max(1,Number(N?.h)||1920),Oe=re(Number.isFinite(g?.w)?g.w:8,8,Math.max(8,j)),p=re(Number.isFinite(g?.h)?g.h:8,8,Math.max(8,we));return{x:re(Number.isFinite(g?.x)?g.x:0,0,Math.max(0,j-Oe)),y:re(Number.isFinite(g?.y)?g.y:0,0,Math.max(0,we-p)),w:Oe,h:p}}function ot(g){return g?.emoji||"\u2726"}function Te(g,N,j={}){const Oe=(t.getState().overlays??[])[g];!Oe||Oe.type!=="sticker"||t.updateOverlay(g,Zt(Oe,le(),N),j)}function rt(g){if(typeof t.applyMut=="function"){t.applyMut(j=>({...j,overlays:[...en(j.overlays),{...g,timelineTrack:0}]}));return}const N=en(t.getState().overlays);t.commit?.({overlays:[...N,{...g,timelineTrack:0}]})}function ht(g){return new Promise(N=>{const j=new Image;j.onload=()=>N({w:j.naturalWidth||256,h:j.naturalHeight||256}),j.onerror=()=>N({w:256,h:256}),j.src=g})}async function Et(g){const N=le();let j=re(Xe(),0,Math.max(0,N-_e)),we=Math.min(N,j+Vt);we-j<_e&&(j=re(N-Vt,0,Math.max(0,N-_e)),we=Math.max(j+_e,N));const Oe=t.getState().canvas??{w:1080,h:1920},p=g.emoji?{w:256,h:256}:await ht(g.src),b=Math.max(96,Math.round(Math.min(Oe.w,Oe.h)*.24)),A=Dr(p.w,p.h,b),ae={type:"sticker",x:Math.round((Oe.w-A.w)/2),y:Math.round((Oe.h-A.h)/2),w:A.w,h:A.h,rotation:0,...g.emoji?{emoji:g.emoji}:{src:g.src},...Zt(null,N,{startAt:j,endAt:we,timelineTrack:0})};rt(ae);const de=t.getState().overlays??[];Y=de.length?de.length-1:null,Y!=null&&gt(e,"text",[Y]),O(),R(!0)}async function xe(g){const N=g?.[0];if(!N||!String(N.type||"").startsWith("image/")&&!/\.(png|jpe?g|webp|svg)$/i.test(N.name||""))return;const j=await new Promise((we,Oe)=>{const p=new FileReader;p.onload=()=>we(String(p.result||"")),p.onerror=()=>Oe(p.error||new Error("Failed to read sticker file")),p.readAsDataURL(N)}).catch(()=>"");j&&(I.value="",await Et({src:j}))}function Ce(){ne.replaceChildren();for(const g of l){const N=document.createElement("div");N.className="me-video-sticker-library-group";const j=document.createElement("div");j.className="me-video-sticker-library-title",j.textContent=g.title;const we=document.createElement("div");we.className="me-video-sticker-grid";for(const Oe of g.items){const p=document.createElement("button");if(p.type="button",p.className="me-video-sticker-card",p.title=Oe.label,p.setAttribute("aria-label",Oe.label),Oe.emoji){const b=document.createElement("span");b.className="me-video-sticker-card-emoji",b.textContent=Oe.emoji,p.appendChild(b)}else if(Oe.src){const b=document.createElement("img");b.src=Oe.src,b.alt=Oe.label,p.appendChild(b)}p.addEventListener("click",()=>{Et(Oe)}),we.appendChild(p)}N.append(j,we),ne.appendChild(N)}}function ke(){We(()=>{const g=e.querySelector(".me-video-toolrail");g&&(k=g,(!Q||!Q.isConnected)&&(Q=document.createElement("button"),Q.type="button",Q.className="me-video-text-tool",Q.innerHTML=`<span class="me-video-text-tool-icon">\u2726</span><span class="me-video-text-tool-label">${o.tool}</span>`,Q.title=o.tool,Q.setAttribute("aria-label",o.tool),Q.addEventListener("click",()=>{const N=!q;N&&O(),R(N)})),Q.isConnected||k.appendChild(Q),G())})}function Qe(){const{timelineInner:g,timelineHost:N}=Rn(e,t.getState());if(!g||!N){V?.remove(),V=null,ve&&Z&&(ve.unobserve(Z),Z=null),K=null;return}K=g,(!V||!V.isConnected||V.parentElement!==N)&&(V?.remove(),V=document.createElement("div"),V.className="me-video-text-timeline me-video-sticker-timeline me-video-overlay-timeline me-video-sticker-overlay-layer");for(const j of[...N.children])j!==V&&j instanceof HTMLElement&&j.classList.contains("me-video-sticker-overlay-layer")&&j.remove();(V.parentElement!==N||N.lastElementChild!==V)&&N.appendChild(V),ve&&Z!==K&&(Z&&ve.unobserve(Z),Z=K,ve.observe(K))}function nt(){const g=e.querySelector(".me-video-canvas-stage");if(!g){se?.remove(),se=null,he&&ee&&(he.unobserve(ee),ee=null),X=null;return}X=g,X.style.position="relative",!se||!se.isConnected||se.parentElement!==X?(se?.remove(),se=document.createElement("div"),se.className="me-video-text-canvas-layer me-video-sticker-canvas-layer",se.addEventListener("pointerdown",N=>{N.target===se&&(N.preventDefault(),N.stopPropagation())}),se.addEventListener("click",N=>{N.target===se&&(N.preventDefault(),N.stopPropagation(),Y=null,wo(e),q?R(!1):dt())}),X.appendChild(se)):X.lastElementChild!==se&&X.appendChild(se),he&&ee!==X&&(ee&&he.unobserve(ee),ee=X,he.observe(X))}function vt(){if(!X)return null;const N=t.getState().canvas??{},j=Math.max(1,Number(N.w)||0),we=Math.max(1,Number(N.h)||0);if(!j||!we)return null;const Oe=X.getBoundingClientRect(),p=X.querySelector("canvas, video, img")||[...X.children].find(me=>me!==se)||null;let b=0,A=0,ae=X.clientWidth||j,de=X.clientHeight||we;if(p instanceof HTMLElement){const me=p.getBoundingClientRect();me.width>0&&me.height>0&&(b=me.left-Oe.left,A=me.top-Oe.top,ae=me.width,de=me.height)}if(!(ae>0&&de>0)){const me=X.clientWidth||j,ze=X.clientHeight||we,be=Math.min(me/j,ze/we)||1;ae=j*be,de=we*be,b=Math.max(0,(me-ae)/2),A=Math.max(0,(ze-de)/2)}return{stageLeft:Oe.left,stageTop:Oe.top,left:b,top:A,scaleX:ae/j,scaleY:de/we}}function yt(g,N){const j=at(g),we=$t(g,j);return N>=j-.001&&N<=we+.001}function ie(g,N,j){const we=Pt(e,"text",g,N,j);Y=we.length?we[we.length-1]:null,R(!0),dt()}function ye(g,N,j){return{x:(g-j.stageLeft-j.left)/j.scaleX,y:(N-j.stageTop-j.top)/j.scaleY}}function Ye(g,N,j){const we=(t.getState().overlays??[])[g];if(!we||we.type!=="sticker")return;const Oe=t.getState().canvas??{w:1080,h:1920},p=Ut(we);if(!p)return;const b=N.clientX,A=N.clientY,ae=Math.max(0,(Number(Oe.w)||0)-p.w),de=Math.max(0,(Number(Oe.h)||0)-p.h),me=(Pe,Me,Ie)=>{const Je=(Pe-b)/j.scaleX,Ae=(Me-A)/j.scaleY,Ne=re(p.x+Je,0,ae),Ke=re(p.y+Ae,0,de);t.updateOverlay(g,{x:Ne,y:Ke},Ie?{transient:!0}:void 0)},ze=Pe=>{Pe.preventDefault(),me(Pe.clientX,Pe.clientY,!0)},be=Pe=>{window.removeEventListener("pointermove",ze),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",be),me(Pe.clientX,Pe.clientY,!1)};window.addEventListener("pointermove",ze),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",be)}function Ge(g,N,j,we){const Oe=(t.getState().overlays??[])[g];if(!Oe||Oe.type!=="sticker")return;const p=Ue(Oe);if(!p)return;const b=t.getState().canvas??{w:1080,h:1920},A=N.x===.5?.5:1-N.x,ae=N.y===.5?.5:1-N.y,de=p.x+p.w*A,me=p.y+p.h*ae,ze=Math.max(.1,24/Math.max(24,p.w),24/Math.max(24,p.h)),be=N.x===.5?1/0:Math.max(.1,(A===0?(Number(b.w)||0)-de:de)/Math.max(1,p.w)),Pe=N.y===.5?1/0:Math.max(.1,(ae===0?(Number(b.h)||0)-me:me)/Math.max(1,p.h)),Me=Math.max(ze,Math.min(be,Pe,8)),Ie=(Ne,Ke,lt)=>{const pt=ye(Ne,Ke,we),qe=[];N.x!==.5&&qe.push(Math.abs(pt.x-de)/Math.max(1,p.w)),N.y!==.5&&qe.push(Math.abs(pt.y-me)/Math.max(1,p.h));const Ve=qe.filter(Number.isFinite),xt=Ve.length?Math.max(...Ve):1,Ot=re(xt,ze,Me),Bt={x:de-p.w*Ot*A,y:me-p.h*Ot*ae,w:Math.max(8,p.w*Ot),h:Math.max(8,p.h*Ot)},Nt=ct(je(Oe,Bt),b);t.updateOverlay(g,{x:Nt.x,y:Nt.y,w:Nt.w,h:Nt.h},lt?{transient:!0}:void 0)},Je=Ne=>{Ne.preventDefault(),Ie(Ne.clientX,Ne.clientY,!0)},Ae=Ne=>{window.removeEventListener("pointermove",Je),window.removeEventListener("pointerup",Ae),window.removeEventListener("pointercancel",Ae),Ie(Ne.clientX,Ne.clientY,!1)};window.addEventListener("pointermove",Je),window.addEventListener("pointerup",Ae),window.addEventListener("pointercancel",Ae)}function it(g,N,j){const we=(t.getState().overlays??[])[g];if(!we||we.type!=="sticker")return;const Oe=Ue(we);if(!Oe)return;const p=j.stageLeft+j.left+(Oe.x+Oe.w/2)*j.scaleX,b=j.stageTop+j.top+(Oe.y+Oe.h/2)*j.scaleY,A=Math.atan2(N.clientY-b,N.clientX-p),ae=mn(we),de=(be,Pe,Me,Ie)=>{const Je=Math.atan2(Pe-b,be-p);let Ae=In(ae+(Je-A)*180/Math.PI);Ie&&(Ae=Math.round(Ae/15)*15),t.updateOverlay(g,{rotation:Ae},Me?{transient:!0}:void 0)},me=be=>{be.preventDefault(),de(be.clientX,be.clientY,!0,be.shiftKey)},ze=be=>{window.removeEventListener("pointermove",me),window.removeEventListener("pointerup",ze),window.removeEventListener("pointercancel",ze),de(be.clientX,be.clientY,!1,be.shiftKey)};window.addEventListener("pointermove",me),window.addEventListener("pointerup",ze),window.addEventListener("pointercancel",ze)}function Lt(g,N){if(nt(),!se)return;se.replaceChildren();const j=vt();if(!j){se.hidden=!0;return}se.hidden=!1;const we=Xe(),Oe=g.map(b=>b.index),p=g.filter(b=>yt(b.overlay,we));for(const b of p){const A=Ue(b.overlay);if(!A)continue;const ae=document.createElement("button");ae.type="button",ae.className="me-video-text-canvas-hit me-video-sticker-canvas-hit";const de=N.has(b.index),me=de&&Y===b.index;de&&ae.classList.add("is-active"),ae.title=Ze(b.overlay),ae.style.left=`${j.left+A.x*j.scaleX}px`,ae.style.top=`${j.top+A.y*j.scaleY}px`,ae.style.width=`${Math.max(18,A.w*j.scaleX)}px`,ae.style.height=`${Math.max(18,A.h*j.scaleY)}px`;const ze=mn(b.overlay);if(ze&&(ae.style.transform=`rotate(${ze}deg)`,ae.style.transformOrigin="center center"),ae.addEventListener("pointerdown",be=>{if(be.preventDefault(),be.stopPropagation(),be.shiftKey||be.ctrlKey||be.metaKey){ie(b.index,be,Oe);return}Y=b.index,gt(e,"text",[b.index]),R(!0),Ye(b.index,be,j)}),me){for(const Pe of He){const Me=document.createElement("span");Me.className="me-video-text-canvas-handle",Me.dataset.handle=Pe.key,Me.style.left=`${Pe.x*100}%`,Me.style.top=`${Pe.y*100}%`,Me.addEventListener("pointerdown",Ie=>{Ie.preventDefault(),Ie.stopPropagation(),Y=b.index,gt(e,"text",[b.index]),R(!0),Ge(b.index,Pe,Ie,j)}),ae.appendChild(Me)}const be=document.createElement("span");be.className="me-video-text-canvas-handle",be.dataset.handle=ue.key,be.style.left=`${ue.x*100}%`,be.style.top=`${ue.y*100}%`,be.addEventListener("pointerdown",Pe=>{Pe.preventDefault(),Pe.stopPropagation(),Y=b.index,gt(e,"text",[b.index]),R(!0),it(b.index,Pe,j)}),ae.appendChild(be)}se.appendChild(ae)}}function Tt(g,N,j){if(!K)return;const we=(t.getState().overlays??[])[g];if(!we||we.type!=="sticker")return;if(j.shiftKey||j.ctrlKey||j.metaKey){j.preventDefault(),j.stopPropagation();const Pe=Pt(e,"text",g,j,rr(t.getState()).map(Me=>Me.index));Y=Pe.length?Pe[Pe.length-1]:null,O(),R(!0);return}j.preventDefault(),j.stopPropagation(),Y=g,gt(e,"text",[g]),O(),q||R(!0);const Oe=le(),p=Math.max(K.clientWidth/Oe,.001),b=at(we),A=$t(we,b),ae=Math.max(_e,A-b),de=ft(we),me=j.clientX,ze=Pe=>{const Me=(Pe.clientX-me)/p,Ie=t.getState().overlays??[];if(N==="move"){const Ne=Math.max(0,b+Me),Ke=Ne+ae,lt=mt(V,Ie,g,Ne,Ke,Pe.clientY,de);Te(g,{startAt:Ne,endAt:Ke,timelineTrack:lt},{transient:!0});return}if(N==="start"){const Ne=re(b+Me,0,A-_e),Ke=mt(V,Ie,g,Ne,A,Pe.clientY,de);Te(g,{startAt:Ne,endAt:A,timelineTrack:Ke},{transient:!0});return}const Je=Math.max(b+_e,A+Me),Ae=mt(V,Ie,g,b,Je,Pe.clientY,de);Te(g,{startAt:b,endAt:Je,timelineTrack:Ae},{transient:!0})},be=Pe=>{window.removeEventListener("pointermove",ze),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",be);const Me=(Pe.clientX-me)/p,Ie=t.getState().overlays??[];if(N==="move"){const Ne=Math.max(0,b+Me),Ke=Ne+ae,lt=mt(V,Ie,g,Ne,Ke,Pe.clientY,de);Te(g,{startAt:Ne,endAt:Ke,timelineTrack:lt});return}if(N==="start"){const Ne=re(b+Me,0,A-_e),Ke=mt(V,Ie,g,Ne,A,Pe.clientY,de);Te(g,{startAt:Ne,endAt:A,timelineTrack:Ke});return}const Je=Math.max(b+_e,A+Me),Ae=mt(V,Ie,g,b,Je,Pe.clientY,de);Te(g,{startAt:b,endAt:Je,timelineTrack:Ae})};window.addEventListener("pointermove",ze),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",be),dt()}function Rt(g,N){if(Qe(),!V||!K||(V.replaceChildren(),V.hidden=g.length===0,!g.length))return;const j=le(),we=K.clientWidth/j,Oe=Hn(t.getState()),p=new Map;for(const b of g){const A=ft(b.overlay),ae=Oe.get(A)??A;let de=p.get(A);de||(de=document.createElement("div"),de.className="me-video-overlay-track-row",de.dataset.track=String(A),de.style.top=`${Sn(ae)}px`,p.set(A,de),V.appendChild(de));const me=document.createElement("div");me.className="me-video-text-track-clip me-video-sticker-track-clip",N.has(b.index)&&me.classList.add("is-active");const ze=at(b.overlay),be=En(b.overlay);me.style.left=`${ze*we}px`,me.style.width=`${Math.max(36,be*we)}px`;const Pe=document.createElement("span");Pe.className="me-video-text-track-icon",Pe.textContent=ot(b.overlay);const Me=document.createElement("span");Me.className="me-video-text-track-label",Me.textContent=Ze(b.overlay),Me.title=Me.textContent;const Ie=document.createElement("span");Ie.className="me-video-text-track-handle is-start";const Je=document.createElement("span");Je.className="me-video-text-track-handle is-end",me.append(Pe,Me,Ie,Je),me.addEventListener("pointerdown",Ae=>Tt(b.index,"move",Ae)),Ie.addEventListener("pointerdown",Ae=>Tt(b.index,"start",Ae)),Je.addEventListener("pointerdown",Ae=>Tt(b.index,"end",Ae)),me.addEventListener("click",Ae=>{if(Ae.preventDefault(),Ae.stopPropagation(),Ae.shiftKey||Ae.ctrlKey||Ae.metaKey){O(),dt();return}const Ne=Pt(e,"text",b.index,Ae,g.map(Ke=>Ke.index));Y=Ne.length?Ne[Ne.length-1]:null,O(),R(!0),dt()}),de.appendChild(me)}}function dt(){We(()=>{ke();const g=C().find(we=>we.classList.contains("is-active"))??null;q&&g&&g!==$&&g!==Q&&(O(),Fe());const N=rr(t.getState());_(N);const j=new Set(lr(e,t.getState()));Rt(N,j),Lt(N,j),H(),G()}),Le()}function Ht(g){return!!g&&(g===s||s.contains(g)||g===Q||Q?.contains?.(g)||g===V||V?.contains?.(g)||g===se||se?.contains?.(g))}function bt(g){return g.some(N=>{if(!Ht(N.target))return!0;for(const j of N.addedNodes)if(!Ht(j))return!0;for(const j of N.removedNodes)if(!Ht(j))return!0;return!1})}const Ft=new MutationObserver(g=>{D||e.__meVideoEnhancerObserverLock||bt(g)&&(ke(),Fe())}),wt=g=>{g?.detail?.id!==W&&q&&(q=!1,dt())},Mt=()=>{dt()},ut=g=>{const N=g.target;if(!(N instanceof Node)||!Q||!Q.contains(N))return;g.preventDefault(),g.stopPropagation(),g.stopImmediatePropagation?.();const j=!q;j&&(O(),Fe()),R(j)};Ft.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",wt),e.addEventListener(zt,Mt),e.addEventListener("click",ut,!0),window.addEventListener("resize",G);const Wt=t.subscribe(()=>{dt()});return I.addEventListener("change",()=>{xe(I.files)}),y.addEventListener("dragenter",g=>{g.preventDefault(),y.classList.add("is-dragover")}),y.addEventListener("dragover",g=>{g.preventDefault(),y.classList.add("is-dragover")}),y.addEventListener("dragleave",g=>{g.target===y&&y.classList.remove("is-dragover")}),y.addEventListener("drop",g=>{g.preventDefault(),y.classList.remove("is-dragover"),xe(g.dataTransfer?.files)}),Ce(),ke=function(){We(()=>{const g=e.querySelector(".me-video-toolrail");if(!g)return;k=g;const N=C(k);$=Se(N),Q=ce(N),Re(),G()})},ke(),dt(),{destroy(){Ft.disconnect(),ve&&Z&&ve.unobserve(Z),he&&ee&&he.unobserve(ee),Wt(),e.removeEventListener("me-video-inspector-open",wt),e.removeEventListener(zt,Mt),e.removeEventListener("click",ut,!0),window.removeEventListener("resize",G),q=!1,Re(),V?.remove(),se?.remove(),s.remove(),It(e)}}}function na(e,t,n){sn(),wn();const o=Mo(n()),l=Fi(o),s=new Map(l.map(p=>[String(p.id??""),p])),m=l.find(p=>p.id)?.id??"",x=document.createElement("div");x.className="me-video-text-panel me-video-color-panel me-video-filter-panel",x.hidden=!0,e.appendChild(x);const h=document.createElement("div");h.className="me-video-text-toolbar";const y=document.createElement("strong");y.textContent=o.filterTitle;const S=jt(o.reset);h.append(y,S);const U=qt(o.presets),w=document.createElement("div");w.className="me-video-color-grid",U.body.appendChild(w);const I=l.map(p=>{const b=document.createElement("button");b.type="button",b.className="me-video-color-card",b.dataset.presetId=p.id??"";const A=document.createElement("div");A.className="me-video-color-preview",A.style.filter=p.css||"none";const ae=document.createElement("img");ae.alt="",ae.draggable=!1,ae.hidden=!0,A.appendChild(ae);const de=document.createElement("div");return de.className="me-video-color-card-title",de.textContent=p.label,b.append(A,de),w.appendChild(b),{entry:p,buttonEl:b,previewImage:ae}});x.append(h,U.section);let B=null,ne=null,Q=null,k=null,$=null,K=null,V=null,Z=null,X=null,se=null,ee=null,q=null,Y=!1,T=null,D=!1,W=!1,J="";const ve="filter",he=typeof requestAnimationFrame=="function"?requestAnimationFrame:p=>setTimeout(p,16),He=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>C()),ue=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>C()),Ee=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],We={key:"rotate",x:.5,y:0};function Fe(){Promise.resolve().then(()=>{W=!1;const p=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,p-1)})}function R(p){W=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return p()}finally{Fe()}}function C(){D||(D=!0,he(()=>{D=!1,Mt()}))}function $e(p=ne){return p?[...p.children].filter(b=>b instanceof HTMLButtonElement&&b!==k&&!b.classList.contains("me-video-text-tool")):[]}function Se(p){const b=[o.filterTool,o.filterTitle,"filter","filters","\u6EE4\u955C","\u6FFE\u93E1"].map(A=>String(A??"").trim().toLowerCase()).filter(Boolean);return p.find(A=>{const ae=Po(A);return b.some(de=>ae.includes(de))})??p[3]??null}function ce(){Q&&(Q.classList.contains("is-active")||Q.click())}function Re(){tn(e,x),It(e)}function O(p){const b=!!p;if(b===Y){Mt();return}Y=b,Y&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:ve}})),Mt()}function G(){if(B?.classList.toggle("is-active",Y),!!Q&&Y){Q.classList.remove("is-active");return}}function H(){x.hidden=!Y,G(),Re()}function _(){const p=t.getState().overlays??[];if(T==null)return null;const b=p[T];return b?.type==="filter"?b:null}function le(){return Ln(t)}function Xe(){return gn(e)}function Le(){if(!t.history?.present)return;const p=Xe(),b=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(b)?b:-1)-p)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:p}},typeof t.emit=="function"&&t.emit())}function Ze(p){if(!p.length){T=null;return}const b=cr(e,t.getState());T=b.length?b[b.length-1]:null}function Ue(p){return String(p?.filterPreset??"").trim()}function je(p){return s.get(Ue(p))??null}function ct(p){return je(p)?.css||"none"}function ot(p){return je(p)?.label||o.filterTitle}function Te(p){const b=Number(p?.w),A=Number(p?.h);return!(b>0)||!(A>0)?null:{x:Number(p?.x)||0,y:Number(p?.y)||0,w:Math.max(48,b),h:Math.max(48,A)}}function rt(p,b){const A=Te(p);if(!A)return p;const ae=Math.max(.1,Number(b)||1);return{...p,w:Math.max(48,A.w*ae),h:Math.max(48,A.h*ae)}}function ht(p,b,A={}){const de=(t.getState().overlays??[])[p];!de||de.type!=="filter"||t.updateOverlay(p,Zt(de,le(),b),A)}function Et(p,b){T!=null&&t.updateOverlay(T,p,b)}function xe(p){if(typeof t.applyMut=="function"){t.applyMut(A=>({...A,overlays:[...en(A.overlays),{...p,timelineTrack:0}]}));return}const b=en(t.getState().overlays);t.commit?.({overlays:[...b,{...p,timelineTrack:0}]})}function Ce(p=m){const b=t.getState().canvas??{w:1080,h:1920},A=re(Math.round((Number(b.w)||1080)*.68),180,Math.max(180,(Number(b.w)||1080)-48)),ae=re(Math.round((Number(b.h)||1920)*.3),120,Math.max(120,(Number(b.h)||1920)-48));return{type:"filter",x:Math.round(((Number(b.w)||1080)-A)/2),y:Math.round(((Number(b.h)||1920)-ae)/2),w:A,h:ae,rotation:0,filterPreset:p||void 0}}function ke(p=m){const b=le();let A=re(Xe(),0,Math.max(0,b-_e)),ae=Math.min(b,A+Vt);ae-A<_e&&(A=re(b-Vt,0,Math.max(0,b-_e)),ae=Math.max(A+_e,b));const de={...Ce(p),...Zt(null,b,{startAt:A,endAt:ae,timelineTrack:0})};xe(de);const me=t.getState().overlays??[];T=me.length?me.length-1:null,T!=null&&gt(e,"text",[T]),vt(!0),ce(),O(!0)}function Qe(p){if(!_()){ke(p);return}Et({filterPreset:p||void 0}),O(!0)}function nt(p){if(p){if(!J){p.hidden=!0,p.removeAttribute("src");return}p.src!==J&&(p.src=J),p.hidden=!1}}function vt(p=!1){if(J&&!p)return;const b=Di(e);b&&(b===J&&!p||(J=b,I.forEach(({previewImage:A})=>nt(A))))}function yt(){_()&&Et({filterPreset:void 0})}function ie(){R(()=>{const p=e.querySelector(".me-video-toolrail");if(!p)return;ne=p;const b=$e(ne);Q=to(b),$=Se(b),$?(k?.remove(),B=$):((!k||!k.isConnected)&&(k=document.createElement("button"),k.type="button",k.className="me-video-text-tool me-video-filter-tool",k.innerHTML=`<span class="me-video-text-tool-icon">\u25A3</span><span class="me-video-text-tool-label">${o.filterTool}</span>`),k.title=o.filterTool,k.setAttribute("aria-label",o.filterTool),k.isConnected?$?.parentElement===ne&&k.nextSibling!==$&&ne.insertBefore(k,$):$?.parentElement===ne?ne.insertBefore(k,$):ne.appendChild(k),B=k),B?.setAttribute?.("title",o.filterTool),B?.setAttribute?.("aria-label",o.filterTool),G(),Re()})}function ye(){const{timelineInner:p,timelineHost:b}=Rn(e,t.getState());if(!p||!b){V?.remove(),V=null,He&&Z&&(He.unobserve(Z),Z=null),K=null;return}K=p,(!V||!V.isConnected||V.parentElement!==b)&&(V?.remove(),V=document.createElement("div"),V.className="me-video-text-timeline me-video-overlay-timeline me-video-filter-overlay-layer");for(const A of[...b.children])A!==V&&A instanceof HTMLElement&&A.classList.contains("me-video-filter-overlay-layer")&&A.remove();(V.parentElement!==b||b.lastElementChild!==V)&&b.appendChild(V),He&&Z!==K&&(Z&&He.unobserve(Z),Z=K,He.observe(K))}function Ye(){const p=e.querySelector(".me-video-canvas-stage");if(!p){se?.remove(),se=null,ee?.remove(),ee=null,ue&&q&&(ue.unobserve(q),q=null),X=null;return}X=p,X.style.position="relative",(!se||!se.isConnected||se.parentElement!==X)&&(se?.remove(),se=document.createElement("div"),se.className="me-video-filter-effect-layer",X.appendChild(se)),(!ee||!ee.isConnected||ee.parentElement!==X)&&(ee?.remove(),ee=document.createElement("div"),ee.className="me-video-filter-control-layer",X.appendChild(ee)),X.lastElementChild!==ee&&X.appendChild(ee),ue&&q!==X&&(q&&ue.unobserve(q),q=X,ue.observe(X))}function Ge(){if(!X)return null;const b=t.getState().canvas??{},A=Math.max(1,Number(b.w)||0),ae=Math.max(1,Number(b.h)||0);if(!A||!ae)return null;const de=X.getBoundingClientRect(),me=X.querySelector("canvas, video, img")||[...X.children].find(Ie=>Ie!==se&&Ie!==ee)||null;let ze=0,be=0,Pe=X.clientWidth||A,Me=X.clientHeight||ae;if(me instanceof HTMLElement){const Ie=me.getBoundingClientRect();Ie.width>0&&Ie.height>0&&(ze=Ie.left-de.left,be=Ie.top-de.top,Pe=Ie.width,Me=Ie.height)}if(!(Pe>0&&Me>0)){const Ie=X.clientWidth||A,Je=X.clientHeight||ae,Ae=Math.min(Ie/A,Je/ae)||1;Pe=A*Ae,Me=ae*Ae,ze=Math.max(0,(Ie-Pe)/2),be=Math.max(0,(Je-Me)/2)}return{stageLeft:de.left,stageTop:de.top,left:ze,top:be,scaleX:Pe/A,scaleY:Me/ae}}function it(p,b){const A=at(p),ae=$t(p,A);return b>=A-.001&&b<=ae+.001}function Lt(p,b,A){const ae=Pt(e,"text",p,b,A);T=ae.length?ae[ae.length-1]:null,O(!0),Mt()}function Tt(p,b,A){return{x:(p-A.stageLeft-A.left)/A.scaleX,y:(b-A.stageTop-A.top)/A.scaleY}}function Rt(p,b,A){const ae=(t.getState().overlays??[])[p];if(!ae||ae.type!=="filter")return;const de=t.getState().canvas??{w:1080,h:1920},me=Te(ae);if(!me)return;const ze=b.clientX,be=b.clientY,Pe=Math.max(0,(Number(de.w)||0)-me.w),Me=Math.max(0,(Number(de.h)||0)-me.h),Ie=(Ne,Ke,lt)=>{const pt=(Ne-ze)/A.scaleX,qe=(Ke-be)/A.scaleY,Ve=re(me.x+pt,0,Pe),xt=re(me.y+qe,0,Me);t.updateOverlay(p,{x:Ve,y:xt},lt?{transient:!0}:void 0)},Je=Ne=>{Ne.preventDefault(),Ie(Ne.clientX,Ne.clientY,!0)},Ae=Ne=>{window.removeEventListener("pointermove",Je),window.removeEventListener("pointerup",Ae),window.removeEventListener("pointercancel",Ae),Ie(Ne.clientX,Ne.clientY,!1)};window.addEventListener("pointermove",Je),window.addEventListener("pointerup",Ae),window.addEventListener("pointercancel",Ae)}function dt(p,b,A,ae){const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;const me=Te(de);if(!me)return;const ze=t.getState().canvas??{w:1080,h:1920},be=b.x===.5?.5:1-b.x,Pe=b.y===.5?.5:1-b.y,Me=me.x+me.w*be,Ie=me.y+me.h*Pe,Je=Math.max(.1,48/Math.max(48,me.w),48/Math.max(48,me.h)),Ae=b.x===.5?1/0:Math.max(.1,(be===0?(Number(ze.w)||0)-Me:Me)/Math.max(1,me.w)),Ne=b.y===.5?1/0:Math.max(.1,(Pe===0?(Number(ze.h)||0)-Ie:Ie)/Math.max(1,me.h)),Ke=Math.max(Je,Math.min(Ae,Ne,8)),lt=(Ve,xt,Ot)=>{const Bt=Tt(Ve,xt,ae),Nt=[];b.x!==.5&&Nt.push(Math.abs(Bt.x-Me)/Math.max(1,me.w)),b.y!==.5&&Nt.push(Math.abs(Bt.y-Ie)/Math.max(1,me.h));const nn=Nt.length?Math.max(...Nt):1,on=re(nn,Je,Ke),Jt=rt(de,on),At=Te(Jt);if(!At)return;const rn=Me-At.w*be,u=Ie-At.h*Pe;t.updateOverlay(p,{x:rn,y:u,w:At.w,h:At.h},Ot?{transient:!0}:void 0)},pt=Ve=>{Ve.preventDefault(),lt(Ve.clientX,Ve.clientY,!0)},qe=Ve=>{window.removeEventListener("pointermove",pt),window.removeEventListener("pointerup",qe),window.removeEventListener("pointercancel",qe),lt(Ve.clientX,Ve.clientY,!1)};window.addEventListener("pointermove",pt),window.addEventListener("pointerup",qe),window.addEventListener("pointercancel",qe)}function Ht(p,b,A){const ae=(t.getState().overlays??[])[p];if(!ae||ae.type!=="filter")return;const de=Te(ae);if(!de)return;const me=A.stageLeft+A.left+(de.x+de.w/2)*A.scaleX,ze=A.stageTop+A.top+(de.y+de.h/2)*A.scaleY,be=Math.atan2(b.clientY-ze,b.clientX-me),Pe=mn(ae),Me=(Ae,Ne,Ke,lt)=>{const pt=Math.atan2(Ne-ze,Ae-me);let qe=In(Pe+(pt-be)*180/Math.PI);lt&&(qe=Math.round(qe/15)*15),t.updateOverlay(p,{rotation:qe},Ke?{transient:!0}:void 0)},Ie=Ae=>{Ae.preventDefault(),Me(Ae.clientX,Ae.clientY,!0,Ae.shiftKey)},Je=Ae=>{window.removeEventListener("pointermove",Ie),window.removeEventListener("pointerup",Je),window.removeEventListener("pointercancel",Je),Me(Ae.clientX,Ae.clientY,!1,Ae.shiftKey)};window.addEventListener("pointermove",Ie),window.addEventListener("pointerup",Je),window.addEventListener("pointercancel",Je)}function bt(p,b){if(Ye(),!se||!ee)return;if(se.replaceChildren(),ee.replaceChildren(),!Ge()){se.hidden=!0,ee.hidden=!0;return}ee.hidden=!0;const ae=Xe();if(!p.filter(me=>it(me.overlay,ae)).length){se.hidden=!0;return}se.hidden=!0}function Ft(p,b,A){if(!K)return;const ae=(t.getState().overlays??[])[p];if(!ae||ae.type!=="filter")return;if(A.shiftKey||A.ctrlKey||A.metaKey){A.preventDefault(),A.stopPropagation();const Ne=Pt(e,"text",p,A,ir(t.getState()).map(Ke=>Ke.index));T=Ne.length?Ne[Ne.length-1]:null,ce(),O(!0);return}A.preventDefault(),A.stopPropagation(),T=p,gt(e,"text",[p]),ce(),Y||O(!0);const de=le(),me=Math.max(K.clientWidth/de,.001),ze=at(ae),be=$t(ae,ze),Pe=Math.max(_e,be-ze),Me=ft(ae),Ie=A.clientX,Je=Ne=>{const Ke=(Ne.clientX-Ie)/me,lt=t.getState().overlays??[];if(b==="move"){const Ve=Math.max(0,ze+Ke),xt=Ve+Pe,Ot=mt(V,lt,p,Ve,xt,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:xt,timelineTrack:Ot},{transient:!0});return}if(b==="start"){const Ve=re(ze+Ke,0,be-_e),xt=mt(V,lt,p,Ve,be,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:be,timelineTrack:xt},{transient:!0});return}const pt=Math.max(ze+_e,be+Ke),qe=mt(V,lt,p,ze,pt,Ne.clientY,Me);ht(p,{startAt:ze,endAt:pt,timelineTrack:qe},{transient:!0})},Ae=Ne=>{window.removeEventListener("pointermove",Je),window.removeEventListener("pointerup",Ae),window.removeEventListener("pointercancel",Ae);const Ke=(Ne.clientX-Ie)/me,lt=t.getState().overlays??[];if(b==="move"){const Ve=Math.max(0,ze+Ke),xt=Ve+Pe,Ot=mt(V,lt,p,Ve,xt,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:xt,timelineTrack:Ot});return}if(b==="start"){const Ve=re(ze+Ke,0,be-_e),xt=mt(V,lt,p,Ve,be,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:be,timelineTrack:xt});return}const pt=Math.max(ze+_e,be+Ke),qe=mt(V,lt,p,ze,pt,Ne.clientY,Me);ht(p,{startAt:ze,endAt:pt,timelineTrack:qe})};window.addEventListener("pointermove",Je),window.addEventListener("pointerup",Ae),window.addEventListener("pointercancel",Ae),Mt()}function wt(p,b){if(ye(),!V||!K||(V.replaceChildren(),V.hidden=p.length===0,!p.length))return;const A=le(),ae=K.clientWidth/A,de=Hn(t.getState()),me=new Map;for(const ze of p){const be=ft(ze.overlay),Pe=de.get(be)??be;let Me=me.get(be);Me||(Me=document.createElement("div"),Me.className="me-video-overlay-track-row",Me.dataset.track=String(be),Me.style.top=`${Sn(Pe)}px`,me.set(be,Me),V.appendChild(Me));const Ie=document.createElement("div");Ie.className="me-video-text-track-clip me-video-filter-track-clip",b.has(ze.index)&&Ie.classList.add("is-active");const Je=at(ze.overlay),Ae=En(ze.overlay);Ie.style.left=`${Je*ae}px`,Ie.style.width=`${Math.max(36,Ae*ae)}px`;const Ne=document.createElement("span");Ne.className="me-video-text-track-icon",Ne.textContent="Fx";const Ke=document.createElement("span");Ke.className="me-video-text-track-label",Ke.textContent=ot(ze.overlay),Ke.title=Ke.textContent;const lt=document.createElement("span");lt.className="me-video-text-track-handle is-start";const pt=document.createElement("span");pt.className="me-video-text-track-handle is-end",Ie.append(Ne,Ke,lt,pt),Ie.addEventListener("pointerdown",qe=>Ft(ze.index,"move",qe)),lt.addEventListener("pointerdown",qe=>Ft(ze.index,"start",qe)),pt.addEventListener("pointerdown",qe=>Ft(ze.index,"end",qe)),Ie.addEventListener("click",qe=>{if(qe.preventDefault(),qe.stopPropagation(),qe.shiftKey||qe.ctrlKey||qe.metaKey){ce(),Mt();return}const Ve=Pt(e,"text",ze.index,qe,p.map(xt=>xt.index));T=Ve.length?Ve[Ve.length-1]:null,ce(),O(!0),Mt()}),Me.appendChild(Ie)}}function Mt(){R(()=>{ie(),vt();const p=ir(t.getState());Ze(p);const b=new Set(cr(e,t.getState()));wt(p,b),bt(p,b);const A=Ue(_());I.forEach(({entry:ae,buttonEl:de,previewImage:me})=>{de.classList.toggle("is-active",String(ae.id??"")===A),nt(me)}),S.disabled=!A,H(),Re()}),Le()}function ut(p){return!!p&&(p===x||x.contains(p)||p===B||B?.contains?.(p)||p===k||k?.contains?.(p)||p===V||V?.contains?.(p)||p===se||se?.contains?.(p)||p===ee||ee?.contains?.(p))}function Wt(p){return p.some(b=>{if(!ut(b.target))return!0;for(const A of b.addedNodes)if(!ut(A))return!0;for(const A of b.removedNodes)if(!ut(A))return!0;return!1})}const g=new MutationObserver(p=>{W||e.__meVideoEnhancerObserverLock||Wt(p)&&(ie(),C())}),N=p=>{const b=p.target;!(b instanceof Node)||!B||!B.contains(b)||(p.preventDefault(),p.stopPropagation(),p.stopImmediatePropagation?.(),ke(m))},j=p=>{p?.detail?.id!==ve&&Y&&(Y=!1,Mt())},we=()=>{Mt()};g.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",j),e.addEventListener(zt,we),e.addEventListener("click",N,!0),window.addEventListener("resize",Re);const Oe=t.subscribe(()=>{Mt()});return I.forEach(({entry:p,buttonEl:b})=>{b.addEventListener("click",()=>{Qe(p.id||"")})}),S.addEventListener("click",()=>{yt()}),ie(),Mt(),{destroy(){g.disconnect(),He&&Z&&He.unobserve(Z),ue&&q&&ue.unobserve(q),Oe(),e.removeEventListener("me-video-inspector-open",j),e.removeEventListener(zt,we),e.removeEventListener("click",N,!0),window.removeEventListener("resize",Re),k?.remove(),V?.remove(),se?.remove(),ee?.remove(),x.remove(),It(e)}}}function oa(e,t,n,o){sn();const l=Mo(o()),s=Vr(o()),m=yr(l),x=document.createElement("div");x.className="me-video-text-panel me-video-color-panel me-video-effects-panel",x.hidden=!0,e.appendChild(x);const h=document.createElement("div");h.className="me-video-text-toolbar";const y=document.createElement("strong");y.textContent=s.title;const S=jt(l.reset),U=jt(s.close);h.append(y,S,U),x.appendChild(h);const w=document.createElement("p");w.className="me-video-text-hint",w.textContent=s.hint,x.appendChild(w);const I=m.map(O=>{const G=qt(O.title),H=O.items.map(_=>{const le=document.createElement("div");le.className="me-video-color-slider-control";const Xe=document.createElement("span");Xe.className="me-video-color-slider-value";const Le=document.createElement("input");return Le.type="range",Le.min=String(_.min),Le.max=String(_.max),Le.step="0.02",Le.dataset.adjustment=_.key,le.append(Xe,Le),G.body.appendChild(Ct(_.label,le)),{..._,value:Xe,range:Le}});return x.appendChild(G.section),{...O,controls:H}});let B=null,ne=null,Q=null,k=null,$=!1,K=!1,V=!1;const Z="effects",X=typeof requestAnimationFrame=="function"?requestAnimationFrame:O=>setTimeout(O,16);function se(){Promise.resolve().then(()=>{V=!1;const O=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,O-1)})}function ee(O){V=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return O()}finally{se()}}function q(){K||(K=!0,X(()=>{K=!1,We()}))}function Y(O=ne){return O?[...O.children].filter(G=>G instanceof HTMLButtonElement&&G!==B&&!G.classList.contains("me-video-text-tool")):[]}function T(){k&&(k.isConnected&&(k.style.display=k.dataset.meTrimDisplay??"",k.hidden=k.dataset.meTrimHidden==="true",delete k.dataset.meTrimDisplay,delete k.dataset.meTrimHidden),k=null)}function D(O){if(!O){T();return}k!==O&&(T(),O.classList.remove("is-active"),O.dataset.meTrimDisplay=O.style.display??"",O.dataset.meTrimHidden=O.hidden?"true":"false",O.hidden=!0,O.style.display="none",k=O)}function W(){if(Q&&!Q.classList.contains("is-active")){Q.click();return}const O=Y()[0];O&&!O.classList.contains("is-active")&&O.click()}function J(O){if(!B||!(O instanceof HTMLButtonElement))return;const G=O.getAttribute("style");G?B.setAttribute("style",G):B.removeAttribute("style"),B.hidden=!1,B.style.display=""}function ve(){B&&(B.dataset.theme=Xn(n()))}function he(){tn(e,x),It(e)}function He(O){const G=!!O;if(G===$){We();return}$=G,$&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Z}})),We()}function ue(){if(B?.classList.toggle("is-active",$),!!Q&&$){Q.classList.remove("is-active");return}}function Ee(){x.hidden=!$,ue(),he()}function We(){ee(()=>{Y().find(_=>_!==Q&&!_.hidden&&_.style.display!=="none"&&_.classList.contains("is-active"))&&($=!1),$&&W();const G=t.getState().filters??{},H=zo.some(_=>Math.abs(Number(G[_])||0)>1e-4);I.forEach(_=>{_.controls.forEach(le=>{const Xe=re(Number(G[le.key])||0,le.min,le.max);le.range.value=String(Xe),le.value.textContent=wr(Xe,le.format)})}),S.disabled=!H,Ee(),ve()})}function Fe(){ee(()=>{const O=e.querySelector(".me-video-toolrail");if(!O)return;ne=O;const G=Y(ne);Q=to(G),D(Q);const H=Q??G[0]??null;(!B||!B.isConnected)&&(B=document.createElement("button"),B.type="button",B.className="me-video-text-tool me-video-effects-tool",B.innerHTML=`<span class="me-video-text-tool-icon">${Wr()}</span><span class="me-video-text-tool-label">${s.tool}</span>`),B.setAttribute("title",s.tool),B.setAttribute("aria-label",s.tool),J(H),B.isConnected?H?.parentElement===ne&&B.nextSibling!==H&&ne.insertBefore(B,H):H?.parentElement===ne?ne.insertBefore(B,H):ne.appendChild(B),ve(),ue(),he()})}function R(O){return!!O&&(O===x||x.contains(O)||O===B||B?.contains?.(O))}function C(O){return O.some(G=>{if(!R(G.target))return!0;for(const H of G.addedNodes)if(!R(H))return!0;for(const H of G.removedNodes)if(!R(H))return!0;return!1})}const $e=new MutationObserver(O=>{V||e.__meVideoEnhancerObserverLock||C(O)&&(Fe(),q())}),Se=O=>{O?.detail?.id!==Z&&$&&($=!1,We())},ce=O=>{const G=O.target;if(!(G instanceof Node)||!B||!B.contains(G))return;O.preventDefault(),O.stopPropagation(),O.stopImmediatePropagation?.();const H=!$;H&&W(),He(H)};$e.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",Se),e.addEventListener("click",ce,!0),window.addEventListener("resize",q);const Re=t.subscribe(()=>{q()});return I.forEach(O=>{O.controls.forEach(G=>{G.range.addEventListener("input",()=>{const H=re(Number(G.range.value)||0,G.min,G.max);G.value.textContent=wr(H,G.format),t.setFilter(G.key,H,{transient:!0})}),G.range.addEventListener("change",()=>{const H=re(Number(G.range.value)||0,G.min,G.max);t.setFilter(G.key,H)})})}),S.addEventListener("click",()=>{Ri(t)}),U.addEventListener("click",()=>{He(!1)}),Fe(),We(),{destroy(){$e.disconnect(),Re(),e.removeEventListener("me-video-inspector-open",Se),e.removeEventListener("click",ce,!0),window.removeEventListener("resize",q),T(),B?.remove(),x.remove(),It(e)}}}function ra(e,t,n,o){sn(),wn();const l=Mo(o()),s=qr(o()),m=yr(l),x=new Set(["brightness","contrast","saturation","temperature","tint","vibrance","gamma","highlights","shadows","whites","blacks","lightSense"]);function h(i,c,f){return i==="percent"?{min:(1+c)*100,max:(1+f)*100}:{min:c*100,max:f*100}}function y(i,c){const f=Number(i)||0;return c==="percent"?(1+f)*100:f*100}function S(i,c){const f=Number(i)||0;return c==="percent"?f/100-1:f/100}function U(i,c){const f=Math.round(y(i,c)*10)/10;return Number.isInteger(f),String(f)}function w(i,c){let f=Math.abs(Math.round(Number(i)||0)),r=Math.abs(Math.round(Number(c)||0));for(;r;){const a=f%r;f=r,r=a}return f||1}function I(i){const c=Math.max(1,Yt(i?.w??0)),f=Math.max(1,Yt(i?.h??0)),r=w(c,f);return`${c/r}:${f/r}`}function B(i){const c=Number(i);if(!(c>0))return s.notAvailable;const f=["B","KB","MB","GB","TB"];let r=c,a=0;for(;r>=1024&&a<f.length-1;)r/=1024,a+=1;const d=r>=100||a===0?0:r>=10?1:2;return`${r.toFixed(d)} ${f[a]}`}function ne(i){const c=Number(i);return c>0?`${c.toFixed(2)} fps`:s.notAvailable}function Q(i,c){const f=Number(i),r=Number(c);if(!(f>0)||!(r>0))return s.notAvailable;const a=f*8/r;return a>=1e6?`${(a/1e6).toFixed(2)} Mbps`:a>=1e3?`${Math.round(a/1e3)} Kbps`:`${Math.round(a)} bps`}function k(i){const c=String(i?.file?.type||i?.type||i?.mime||"").trim();if(c.includes("/"))return c.split("/").pop().toUpperCase();const r=String(i?.file?.name||i?.name||"").trim().match(/\.([a-z0-9]+)$/i);return r?r[1].toUpperCase():s.notAvailable}function $(i){return String(i?.codec||i?.videoCodec||i?.codecName||i?.encoding||"").trim()||s.notAvailable}function K(i){const c=Math.max(0,Math.round(Number(i?.width??i?.dims?.w)||0)),f=Math.max(0,Math.round(Number(i?.height??i?.dims?.h)||0));return!(c>0)||!(f>0)?s.notAvailable:`${c} x ${f} px`}function V(){const c=t.getState().clips??[],f=_t(e,"video").filter(v=>!!c[v]),a=(c[f[f.length-1]]??c[0]??null)?.srcIdx??0;return{source:(typeof t.getVideoSource=="function"?t.getVideoSource(a):null)??t.videoSources?.[a]??t.videoSources?.[0]??null,sourceIndex:a}}function Z(){const i=t.getState(),{source:c,sourceIndex:f}=V(),r=i.canvas??{w:1080,h:1920},a=_n(i),d=Number(c?.frameRate??c?.fps)||30,v=Number(c?.duration)||ke()||0,M=Number(c?.file?.size??c?.size)||0;return{videoName:String(c?.file?.name||c?.name||"").trim()||(c?`video-${f+1}`:s.notAvailable),ratio:I(a),canvasSize:An(r),resolution:An(a),frameRate:ne(d),bitrate:Q(M,v),format:k(c),fileSize:B(M),codec:$(c),sourceSize:K(c),videoLength:pn(ke())}}const X=document.createElement("div");X.className="me-video-text-panel me-video-color-panel me-video-effects-panel me-video-feature-one-panel",X.hidden=!0,e.appendChild(X);const se=document.createElement("div");se.className="me-video-text-toolbar";const ee=document.createElement("strong");ee.textContent=s.title;const q=jt(l.reset);se.append(ee,q);const Y=document.createElement("p");Y.className="me-video-text-hint",Y.textContent=s.hint;const T=document.createElement("div");T.className="me-video-text-empty",T.textContent=s.placeholder;const D=document.createElement("div");D.className="me-video-text-panel me-video-feature-one-info-panel",D.hidden=!0,e.appendChild(D);const W=document.createElement("div");W.className="me-video-text-toolbar";const J=document.createElement("strong");J.textContent=s.videoInfoTitle,W.append(J);const ve=qt(s.videoInfoTitle);ve.section.classList.add("me-video-feature-one-meta-section"),ve.title.remove();const he=[{key:"videoName",label:s.videoName},{key:"ratio",label:s.ratio},{key:"canvasSize",label:s.canvasSize},{key:"resolution",label:s.resolution},{key:"frameRate",label:s.frameRate},{key:"bitrate",label:s.bitrate},{key:"format",label:s.format},{key:"fileSize",label:s.fileSize},{key:"codec",label:s.codec},{key:"sourceSize",label:s.sourceSize},{key:"videoLength",label:s.videoLength}].map(i=>{const c=document.createElement("div");return c.className="me-video-feature-one-meta-value",ve.body.appendChild(Ct(i.label,c)),{...i,valueEl:c}});X.append(se,Y,T),D.append(W,ve.section);const He=m.map(i=>{const c=qt(i.title),f=i.items.map(r=>{const a=h(r.format,r.min,r.max),d=document.createElement("div");d.className="me-video-color-slider-control me-video-color-number-control";const v=document.createElement("input");v.type="range",v.min=String(r.min),v.max=String(r.max),v.step="0.01",v.dataset.adjustment=r.key;const M=document.createElement("input");return M.type="number",M.min=String(a.min),M.max=String(a.max),M.step="1",M.inputMode="decimal",M.dataset.adjustment=r.key,d.append(v,M),c.body.appendChild(Ct(r.label,d)),{...r,range:v,input:M,displayMin:a.min,displayMax:a.max}});return X.appendChild(c.section),{...i,section:c.section,controls:f}});let ue=null,Ee=null,We=null,Fe=null,R=null,C=null,$e=null,Se=null,ce=null,Re=null,O=null,G=!1,H=null,_=!1,le=!1;const Xe="adjust",Le=typeof requestAnimationFrame=="function"?requestAnimationFrame:i=>setTimeout(i,16),Ze=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>rt()),Ue=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>rt()),je=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],ct={key:"rotate",x:.5,y:0};function ot(){Promise.resolve().then(()=>{le=!1;const i=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,i-1)})}function Te(i){le=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return i()}finally{ot()}}function rt(){_||(_=!0,Le(()=>{_=!1,Ve()}))}function ht(i=Ee){return i?[...i.children].filter(c=>c instanceof HTMLButtonElement&&c!==ue&&!c.classList.contains("me-video-text-tool")):[]}function Et(){Fe&&(Fe.isConnected&&(Fe.style.display=Fe.dataset.meTrimDisplay??"",Fe.hidden=Fe.dataset.meTrimHidden==="true",delete Fe.dataset.meTrimDisplay,delete Fe.dataset.meTrimHidden),Fe=null)}function xe(i){if(!i){Et();return}Fe!==i&&(Et(),i.classList.remove("is-active"),i.dataset.meTrimDisplay=i.style.display??"",i.dataset.meTrimHidden=i.hidden?"true":"false",i.hidden=!0,i.style.display="none",Fe=i)}function Ce(){if(We&&!We.classList.contains("is-active")){We.click();return}const i=ht()[0];i&&!i.classList.contains("is-active")&&i.click()}function ke(){return Ln(t)}function Qe(){return gn(e)}function nt(){if(!t.history?.present)return;const i=Qe(),c=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(c)?c:-1)-i)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:i}},typeof t.emit=="function"&&t.emit())}function vt(i){const c={...Nn};for(const f of zo){const r=Number(i?.[f]);Number.isFinite(r)&&(c[f]=x.has(f)?re(r,-1,1):re(r,0,1))}return c}function yt(i){const c=vt(i);return zo.some(f=>Math.abs(Number(c[f])||0)>1e-4)}function ie(i){const c=vt(i),f=[],r=Br(c,"");return r&&f.push(r),Math.abs(c.vibrance)>1e-4&&f.push(`saturate(${(1+c.vibrance*.65).toFixed(3)})`),Math.abs(c.temperature)>1e-4&&(c.temperature>0&&f.push(`sepia(${Math.min(.36,c.temperature*.28).toFixed(3)})`),f.push(`hue-rotate(${(-c.temperature*14).toFixed(2)}deg)`)),Math.abs(c.tint)>1e-4&&f.push(`hue-rotate(${(c.tint*10).toFixed(2)}deg)`),Math.abs(c.gamma)>1e-4&&f.push(`brightness(${(1+c.gamma*.08).toFixed(3)})`),(c.clarity>1e-4||c.sharpen>1e-4)&&f.push(`contrast(${(1+c.clarity*.16+c.sharpen*.1).toFixed(3)})`),f.join(" ").trim()||"none"}function ye(i){const c=vt(i),f=[];if(c.fade>1e-4&&f.push(`linear-gradient(0deg, rgba(255,245,235,${(c.fade*.18).toFixed(3)}), rgba(255,245,235,${(c.fade*.18).toFixed(3)}))`),c.vignette>1e-4){const r=(.28+c.vignette*.3).toFixed(3),a=(.16+c.vignette*.22).toFixed(3);f.push(`radial-gradient(circle at center, rgba(0,0,0,0) ${r}, rgba(0,0,0,${a}) 100%)`)}return c.grain>1e-4&&f.push(`linear-gradient(135deg, rgba(255,255,255,${(c.grain*.05).toFixed(3)}) 0%, rgba(0,0,0,${(c.grain*.05).toFixed(3)}) 100%)`),f.join(", ")}function Ye(){const i=t.getState().overlays??[];if(H==null)return null;const c=i[H];return c?.type==="adjust"?c:null}function Ge(i){if(!i.length){H=null;return}const c=Gn(e,t.getState());H=c.length?c[c.length-1]:null}function it(i){const c=Number(i?.w),f=Number(i?.h);return!(c>0)||!(f>0)?null:{x:Number(i?.x)||0,y:Number(i?.y)||0,w:Math.max(48,c),h:Math.max(48,f)}}function Lt(i,c){const f=it(i);if(!f)return i;const r=Math.max(.1,Number(c)||1);return{...i,w:Math.max(48,f.w*r),h:Math.max(48,f.h*r)}}function Tt(i,c,f={}){const a=(t.getState().overlays??[])[i];!a||a.type!=="adjust"||t.updateOverlay(i,Zt(a,ke(),c),f)}function Rt(i,c){H!=null&&t.updateOverlay(H,i,c)}function dt(i){const c=t.getState().overlays??[],f=c.length;if(typeof t.applyMut=="function")return t.applyMut(a=>({...a,overlays:[...en(a.overlays),{...i,timelineTrack:0}]})),f;const r=en(c);return t.commit?.({overlays:[...r,{...i,timelineTrack:0}]}),f}function Ht(){const i=t.getState().canvas??{w:1080,h:1920};return{type:"adjust",x:0,y:0,w:Math.max(1,Number(i.w)||1080),h:Math.max(1,Number(i.h)||1920),rotation:0,...Nn}}function bt(){const i=ke();let c=re(Qe(),0,Math.max(0,i-_e)),f=Math.min(i,c+Vt);f-c<_e&&(c=re(i-Vt,0,Math.max(0,i-_e)),f=Math.max(c+_e,i));const r={...Ht(),...Zt(null,i,{startAt:c,endAt:f,timelineTrack:0})},a=dt(r);H=Number.isInteger(a)?a:null,gt(e,"text",H==null?[]:[H],{preserveOther:!0}),Ce(),pt(H!=null)}function Ft(){const i=t.getState(),c=Lo(i.overlays??[],Gn(e,i));c.changed&&(t.commit({overlays:c.overlays}),H=c.selection.length?c.selection[c.selection.length-1]:null,gt(e,"text",c.selection),Ve())}function wt(){const i=t.getState(),c=To(i.overlays??[],Gn(e,i));c.changed&&(t.commit({overlays:c.overlays}),H=null,gt(e,"text",[]),Ve())}function Mt(){Ye()&&Rt({...Nn})}function ut(i){if(!ue||!(i instanceof HTMLButtonElement))return;const c=i.getAttribute("style");c?ue.setAttribute("style",c):ue.removeAttribute("style"),ue.hidden=!1,ue.style.display=""}function Wt(){ue&&(ue.dataset.theme=Xn(n()))}function g(){tn(e,X),tn(e,D),It(e)}function N(){const{timelineInner:i,timelineHost:c}=Rn(e,t.getState());if(!i||!c){C?.remove(),C=null,Ze&&$e&&(Ze.unobserve($e),$e=null),R=null;return}R=i,(!C||!C.isConnected||C.parentElement!==c)&&(C?.remove(),C=document.createElement("div"),C.className="me-video-text-timeline me-video-overlay-timeline me-video-feature-one-overlay-layer");for(const f of[...c.children])f!==C&&f instanceof HTMLElement&&f.classList.contains("me-video-feature-one-overlay-layer")&&f.remove();(C.parentElement!==c||c.lastElementChild!==C)&&c.appendChild(C),Ze&&$e!==R&&($e&&Ze.unobserve($e),$e=R,Ze.observe(R))}function j(){const i=e.querySelector(".me-video-canvas-stage");if(!i){ce?.remove(),ce=null,Re?.remove(),Re=null,Ue&&O&&(Ue.unobserve(O),O=null),Se=null;return}Se=i,Se.style.position="relative",(!ce||!ce.isConnected||ce.parentElement!==Se)&&(ce?.remove(),ce=document.createElement("div"),ce.className="me-video-filter-effect-layer",Se.appendChild(ce)),(!Re||!Re.isConnected||Re.parentElement!==Se)&&(Re?.remove(),Re=document.createElement("div"),Re.className="me-video-filter-control-layer",Se.appendChild(Re)),Se.lastElementChild!==Re&&Se.appendChild(Re),Ue&&O!==Se&&(O&&Ue.unobserve(O),O=Se,Ue.observe(Se))}function we(){if(!Se)return null;const c=t.getState().canvas??{},f=Math.max(1,Number(c.w)||0),r=Math.max(1,Number(c.h)||0);if(!f||!r)return null;const a=Se.getBoundingClientRect(),d=Se.querySelector("canvas, video, img")||[...Se.children].find(E=>E!==ce&&E!==Re)||null;let v=0,M=0,z=Se.clientWidth||f,F=Se.clientHeight||r;if(d instanceof HTMLElement){const E=d.getBoundingClientRect();E.width>0&&E.height>0&&(v=E.left-a.left,M=E.top-a.top,z=E.width,F=E.height)}if(!(z>0&&F>0)){const E=Se.clientWidth||f,P=Se.clientHeight||r,te=Math.min(E/f,P/r)||1;z=f*te,F=r*te,v=Math.max(0,(E-z)/2),M=Math.max(0,(P-F)/2)}return{stageLeft:a.left,stageTop:a.top,left:v,top:M,scaleX:z/f,scaleY:F/r}}function Oe(i,c){const f=at(i),r=$t(i,f);return c>=f-.001&&c<=r+.001}function p(i,c,f){const r=Pt(e,"text",i,c,f);H=r.length?r[r.length-1]:null,pt(!0),Ve()}function b(i,c,f){return{x:(i-f.stageLeft-f.left)/f.scaleX,y:(c-f.stageTop-f.top)/f.scaleY}}function A(i,c,f){const r=(t.getState().overlays??[])[i];if(!r||r.type!=="adjust")return;const a=t.getState().canvas??{w:1080,h:1920},d=it(r);if(!d)return;const v=c.clientX,M=c.clientY,z=Math.max(0,(Number(a.w)||0)-d.w),F=Math.max(0,(Number(a.h)||0)-d.h),E=(oe,Be,ge)=>{const fe=(oe-v)/f.scaleX,pe=(Be-M)/f.scaleY,De=re(d.x+fe,0,z),et=re(d.y+pe,0,F);t.updateOverlay(i,{x:De,y:et},ge?{transient:!0}:void 0)},P=oe=>{oe.preventDefault(),E(oe.clientX,oe.clientY,!0)},te=oe=>{window.removeEventListener("pointermove",P),window.removeEventListener("pointerup",te),window.removeEventListener("pointercancel",te),E(oe.clientX,oe.clientY,!1)};window.addEventListener("pointermove",P),window.addEventListener("pointerup",te),window.addEventListener("pointercancel",te)}function ae(i,c,f,r){const a=(t.getState().overlays??[])[i];if(!a||a.type!=="adjust")return;const d=it(a);if(!d)return;const v=t.getState().canvas??{w:1080,h:1920},M=c.x===.5?.5:1-c.x,z=c.y===.5?.5:1-c.y,F=d.x+d.w*M,E=d.y+d.h*z,P=Math.max(.1,48/Math.max(48,d.w),48/Math.max(48,d.h)),te=c.x===.5?1/0:Math.max(.1,(M===0?(Number(v.w)||0)-F:F)/Math.max(1,d.w)),oe=c.y===.5?1/0:Math.max(.1,(z===0?(Number(v.h)||0)-E:E)/Math.max(1,d.h)),Be=Math.max(P,Math.min(te,oe,8)),ge=(De,et,tt)=>{const st=b(De,et,r),St=[];c.x!==.5&&St.push(Math.abs(st.x-F)/Math.max(1,d.w)),c.y!==.5&&St.push(Math.abs(st.y-E)/Math.max(1,d.h));const Kt=St.length?Math.max(...St):1,dn=re(Kt,P,Be),un=Lt(a,dn),an=it(un);if(!an)return;const uo=F-an.w*M,Yn=E-an.h*z;t.updateOverlay(i,{x:uo,y:Yn,w:an.w,h:an.h},tt?{transient:!0}:void 0)},fe=De=>{De.preventDefault(),ge(De.clientX,De.clientY,!0)},pe=De=>{window.removeEventListener("pointermove",fe),window.removeEventListener("pointerup",pe),window.removeEventListener("pointercancel",pe),ge(De.clientX,De.clientY,!1)};window.addEventListener("pointermove",fe),window.addEventListener("pointerup",pe),window.addEventListener("pointercancel",pe)}function de(i,c,f){const r=(t.getState().overlays??[])[i];if(!r||r.type!=="adjust")return;const a=it(r);if(!a)return;const d=f.stageLeft+f.left+(a.x+a.w/2)*f.scaleX,v=f.stageTop+f.top+(a.y+a.h/2)*f.scaleY,M=Math.atan2(c.clientY-v,c.clientX-d),z=mn(r),F=(te,oe,Be,ge)=>{const fe=Math.atan2(oe-v,te-d);let pe=In(z+(fe-M)*180/Math.PI);ge&&(pe=Math.round(pe/15)*15),t.updateOverlay(i,{rotation:pe},Be?{transient:!0}:void 0)},E=te=>{te.preventDefault(),F(te.clientX,te.clientY,!0,te.shiftKey)},P=te=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",P),window.removeEventListener("pointercancel",P),F(te.clientX,te.clientY,!1,te.shiftKey)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",P),window.addEventListener("pointercancel",P)}function me(i,c){if(j(),!ce||!Re)return;if(ce.replaceChildren(),Re.replaceChildren(),!we()){ce.hidden=!0,Re.hidden=!0;return}Re.hidden=!0;const r=Qe();if(!i.filter(d=>Oe(d.overlay,r)).length){ce.hidden=!0;return}ce.hidden=!0}function ze(i,c,f){if(!R)return;const r=(t.getState().overlays??[])[i];if(!r||r.type!=="adjust")return;if(f.shiftKey||f.ctrlKey||f.metaKey){f.preventDefault(),f.stopPropagation();const oe=Pt(e,"text",i,f,ar(t.getState()).map(Be=>Be.index));H=oe.length?oe[oe.length-1]:null,Ce(),pt(!0);return}f.preventDefault(),f.stopPropagation(),H=i,gt(e,"text",[i]),Ce(),G||pt(!0);const a=ke(),d=Math.max(R.clientWidth/a,.001),v=at(r),M=$t(r,v),z=Math.max(_e,M-v),F=ft(r),E=f.clientX,P=oe=>{const Be=(oe.clientX-E)/d,ge=t.getState().overlays??[];if(c==="move"){const De=Math.max(0,v+Be),et=De+z,tt=mt(C,ge,i,De,et,oe.clientY,F);Tt(i,{startAt:De,endAt:et,timelineTrack:tt},{transient:!0});return}if(c==="start"){const De=re(v+Be,0,M-_e),et=mt(C,ge,i,De,M,oe.clientY,F);Tt(i,{startAt:De,endAt:M,timelineTrack:et},{transient:!0});return}const fe=Math.max(v+_e,M+Be),pe=mt(C,ge,i,v,fe,oe.clientY,F);Tt(i,{startAt:v,endAt:fe,timelineTrack:pe},{transient:!0})},te=oe=>{window.removeEventListener("pointermove",P),window.removeEventListener("pointerup",te),window.removeEventListener("pointercancel",te);const Be=(oe.clientX-E)/d,ge=t.getState().overlays??[];if(c==="move"){const De=Math.max(0,v+Be),et=De+z,tt=mt(C,ge,i,De,et,oe.clientY,F);Tt(i,{startAt:De,endAt:et,timelineTrack:tt});return}if(c==="start"){const De=re(v+Be,0,M-_e),et=mt(C,ge,i,De,M,oe.clientY,F);Tt(i,{startAt:De,endAt:M,timelineTrack:et});return}const fe=Math.max(v+_e,M+Be),pe=mt(C,ge,i,v,fe,oe.clientY,F);Tt(i,{startAt:v,endAt:fe,timelineTrack:pe})};window.addEventListener("pointermove",P),window.addEventListener("pointerup",te),window.addEventListener("pointercancel",te),Ve()}function be(i,c){if(N(),!C||!R||(C.replaceChildren(),C.hidden=i.length===0,!i.length))return;const f=ke(),r=R.clientWidth/f,a=Hn(t.getState()),d=new Map;for(const v of i){const M=ft(v.overlay),z=a.get(M)??M;let F=d.get(M);F||(F=document.createElement("div"),F.className="me-video-overlay-track-row",F.dataset.track=String(M),F.style.top=`${Sn(z)}px`,d.set(M,F),C.appendChild(F));const E=document.createElement("div");E.className="me-video-text-track-clip me-video-filter-track-clip",c.has(v.index)&&E.classList.add("is-active");const P=at(v.overlay),te=En(v.overlay);E.style.left=`${P*r}px`,E.style.width=`${Math.max(36,te*r)}px`;const oe=document.createElement("span");oe.className="me-video-text-track-icon",oe.textContent="Adj";const Be=document.createElement("span");Be.className="me-video-text-track-label",Be.textContent=s.tool,Be.title=Be.textContent;const ge=document.createElement("span");ge.className="me-video-text-track-handle is-start";const fe=document.createElement("span");fe.className="me-video-text-track-handle is-end",E.append(oe,Be,ge,fe),E.addEventListener("pointerdown",pe=>ze(v.index,"move",pe)),ge.addEventListener("pointerdown",pe=>ze(v.index,"start",pe)),fe.addEventListener("pointerdown",pe=>ze(v.index,"end",pe)),E.addEventListener("click",pe=>{if(pe.preventDefault(),pe.stopPropagation(),pe.shiftKey||pe.ctrlKey||pe.metaKey){Ce(),Ve();return}const De=Pt(e,"text",v.index,pe,i.map(et=>et.index));H=De.length?De[De.length-1]:null,Ce(),pt(!0),Ve()}),F.appendChild(E)}}function Pe(i){He.forEach(c=>{c.controls.forEach(f=>{f.range.disabled=i,f.input.disabled=i})}),q.disabled=i}function Me(){const i=Z();he.forEach(c=>{const f=String(i[c.key]??s.notAvailable);c.valueEl.textContent=f,c.valueEl.title=f})}function Ie(i){const c=!!i;if(Pe(!c),q.hidden=!c,T.hidden=c,He.forEach(r=>{r.section.hidden=!c}),Me(),!c)return;const f=vt(i);He.forEach(r=>{r.controls.forEach(a=>{const d=re(Number(f[a.key])||0,a.min,a.max);a.range.value=String(d),a.input.value=U(d,a.format)})}),c&&(q.disabled=!yt(i))}function Je(){return G&&!!Ye()}function Ae(){return ht().some(f=>f!==We&&!f.hidden&&f.style.display!=="none"&&f.classList.contains("is-active"))?!0:[...e.querySelectorAll(".me-video-toolrail .me-video-text-tool.is-active")].some(f=>f!==ue)}function Ne(){const i=ao(e);return i instanceof HTMLElement?[...i.children].some(c=>c instanceof HTMLElement&&c!==X&&c!==D&&!c.hidden):!1}function Ke(){return G&&!!Ye()&&!Ae()}function lt(){const i=Tn(e,t.getState().audioClips??[]).length>0;return!Ae()&&!Ne()&&!i&&!Ye()}function pt(i){const c=!!i;if(c===G){Ve();return}G=c,G&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Xe}})),Ve()}function qe(){X.hidden=!Ke(),D.hidden=!lt(),Ot(),g()}function Ve(){Te(()=>{Ae()&&(G=!1),G&&Ce(),xt();const i=ar(t.getState());Ge(i);const c=new Set(Gn(e,t.getState()));be(i,c),me(i,c),Ie(Ye()),qe(),Wt()}),nt()}function xt(){Te(()=>{const i=e.querySelector(".me-video-toolrail");if(!i)return;Ee=i;const c=ht(Ee);We=to(c),xe(We);const f=We??c[0]??null;(!ue||!ue.isConnected)&&(ue=document.createElement("button"),ue.type="button",ue.className="me-video-text-tool me-video-feature-one-tool",ue.innerHTML=`<span class="me-video-text-tool-icon">${Kr()}</span><span class="me-video-text-tool-label">${s.tool}</span>`,ue.addEventListener("click",()=>{bt()})),ue.setAttribute("title",s.tool),ue.setAttribute("aria-label",s.tool),ut(f),ue.isConnected?f?.parentElement===Ee&&ue.nextSibling!==f&&Ee.insertBefore(ue,f):f?.parentElement===Ee?Ee.insertBefore(ue,f):Ee.appendChild(ue),Wt(),ue.classList.toggle("is-active",Je()),Ot(),g()})}function Ot(){if(ue?.classList.toggle("is-active",Je()),!!We){if(Je()){We.classList.remove("is-active");return}We.classList.remove("is-active")}}function Bt(i){return!!i&&(i===X||X.contains(i)||i===D||D.contains(i)||i===ue||ue?.contains?.(i)||i===C||C?.contains?.(i)||i===ce||ce?.contains?.(i)||i===Re||Re?.contains?.(i))}function Nt(i){return i.some(c=>{if(!Bt(c.target))return!0;for(const f of c.addedNodes)if(!Bt(f))return!0;for(const f of c.removedNodes)if(!Bt(f))return!0;return!1})}const nn=new MutationObserver(i=>{le||e.__meVideoEnhancerObserverLock||Nt(i)&&(xt(),rt())}),on=i=>{i?.detail?.id!==Xe&&(G=!1,X.hidden=!0,D.hidden=!0,Ot(),g(),rt())},Jt=i=>{const c=i.target;c instanceof Element&&c.closest(".me-video-toolrail button")&&rt()},At=()=>{Ve()};nn.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",on),e.addEventListener("click",Jt,!0),e.addEventListener(zt,At),window.addEventListener("resize",g);const rn=t.subscribe(()=>{Ve()});function u(i){const c=Number(i.input.value);if(!Number.isFinite(c))return null;const f=re(c,i.displayMin,i.displayMax),r=re(S(f,i.format),i.min,i.max);return{displayValue:f,internalValue:r}}function L(i){const c=Number(i.range.value);if(!Number.isFinite(c))return null;const f=re(c,i.min,i.max);return{internalValue:f,displayValue:re(y(f,i.format),i.displayMin,i.displayMax)}}return He.forEach(i=>{i.controls.forEach(c=>{c.range.addEventListener("input",()=>{const f=L(c);f&&(c.input.value=U(f.internalValue,c.format),Rt({[c.key]:f.internalValue},{transient:!0}))}),c.range.addEventListener("change",()=>{const f=L(c);if(!f){Ve();return}c.input.value=U(f.internalValue,c.format),Rt({[c.key]:f.internalValue})}),c.input.addEventListener("input",()=>{const f=u(c);f&&(c.range.value=String(f.internalValue),Rt({[c.key]:f.internalValue},{transient:!0}))}),c.input.addEventListener("change",()=>{const f=u(c);if(!f){Ve();return}c.range.value=String(f.internalValue),c.input.value=U(f.internalValue,c.format),Rt({[c.key]:f.internalValue})}),c.input.addEventListener("blur",()=>{const f=u(c);if(!f){Ve();return}c.range.value=String(f.internalValue),c.input.value=U(f.internalValue,c.format)})})}),q.addEventListener("click",()=>{Mt()}),xt(),Ve(),{destroy(){nn.disconnect(),rn(),Ze&&$e&&Ze.unobserve($e),Ue&&O&&Ue.unobserve(O),e.removeEventListener("me-video-inspector-open",on),e.removeEventListener("click",Jt,!0),e.removeEventListener(zt,At),window.removeEventListener("resize",g),Et(),ue?.remove(),C?.remove(),ce?.remove(),Re?.remove(),X.remove(),D.remove(),It(e)}}}function ia(e,t,n){sn();const o=Mi(n()),l=ji(),s=Vi(l),m=document.createElement("div");m.className="me-video-text-panel me-video-ratio-panel",m.hidden=!0,e.appendChild(m);const x=document.createElement("div");x.className="me-video-text-toolbar";const h=document.createElement("strong");h.textContent=o.title,x.append(h);const y=qt(o.commonPresets),S=document.createElement("div");S.className="me-video-ratio-card-grid",y.body.appendChild(S);const U=qt(o.customSize),w=document.createElement("input");w.type="number",w.min="2",w.step="2",w.className="me-video-text-input";const I=document.createElement("input");I.type="number",I.min="2",I.step="2",I.className="me-video-text-input";const B=Zn(o.width,w),ne=Zn(o.height,I),Q=document.createElement("div");Q.className="me-video-ratio-dimension-grid";const k=document.createElement("div");k.className="me-video-ratio-cross",k.textContent="x",Q.append(B,k,ne);const $=document.createElement("div");$.className="me-video-ratio-lock-row";const K=document.createElement("button");K.type="button",K.className="me-video-ratio-lock-toggle me-video-ratio-lock-inline";const V=document.createElement("button");V.type="button",V.className="me-video-ratio-quick",V.textContent=o.quickPortrait;const Z=document.createElement("button");Z.type="button",Z.className="me-video-ratio-quick",Z.textContent=o.quickLandscape,U.title.appendChild(K),$.append(V,Z);const X=document.createElement("p");X.className="me-video-ratio-summary",U.body.append(Q,$,X);const se=qt(o.fitMode),ee=document.createElement("div");ee.className="me-video-ratio-fit-group";const q=[{fit:"cover",label:o.cover},{fit:"contain",label:o.contain},{fit:"force",label:o.force}].map(ie=>{const ye=document.createElement("button");return ye.type="button",ye.className="me-video-ratio-fit-button",ye.dataset.fit=ie.fit,ye.textContent=ie.label,ee.appendChild(ye),{fit:ie.fit,button:ye}}),Y=document.createElement("p");Y.className="me-video-ratio-note",se.body.append(ee,Y),m.append(x,U.section,se.section,y.section);let T=null,D=null,W=null,J=null,ve=null,he=!1,He=!0,ue=!1,Ee=!1;const We="resize",Fe=no("9:16"),R=no("16:9"),C=typeof requestAnimationFrame=="function"?requestAnimationFrame:ie=>setTimeout(ie,16);function $e(){Promise.resolve().then(()=>{Ee=!1;const ie=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,ie-1)})}function Se(ie){Ee=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return ie()}finally{$e()}}function ce(){ue||(ue=!0,C(()=>{ue=!1,Ce()}))}function Re(ie=D){return ie?[...ie.children].filter(ye=>ye instanceof HTMLButtonElement&&ye!==T&&!ye.classList.contains("me-video-text-tool")):[]}function O(ie){return[ie?.textContent,ie?.getAttribute?.("title"),ie?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function G(ie){const ye=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(ie.find(Ye=>{const Ge=O(Ye);return ye.some(it=>Ge.includes(it))})??ie[0]??null)}function H(){if(J&&he){J.classList.remove("is-active");return}}function _(ie){const ye=[o.tool,o.title,"ratio","resize","\u6BD4\u4F8B","\u756B\u5E03","\u753B\u5E03"].map(Ye=>String(Ye??"").trim().toLowerCase()).filter(Boolean);return ie.find(Ye=>{const Ge=O(Ye);return ye.some(it=>Ge.includes(it))})??ie[ie.length-1]??null}function le(){ve&&(ve.isConnected&&(ve.style.display=ve.dataset.meResizeDisplay??"",ve.hidden=ve.dataset.meResizeHidden==="true",delete ve.dataset.meResizeDisplay,delete ve.dataset.meResizeHidden),ve=null)}function Xe(ie){if(!ie){le();return}ve!==ie&&(le(),ie.dataset.meResizeDisplay=ie.style.display??"",ie.dataset.meResizeHidden=ie.hidden?"true":"false",ie.hidden=!0,ie.style.display="none",ve=ie)}function Le(){J&&(J.classList.contains("is-active")||J.click())}function Ze(){tn(e,m),It(e)}function Ue(ie){const ye=!!ie;if(ye===he){Ce();return}he=ye,he&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:We}})),Ce()}function je(){const ie=e.querySelector(".me-video-toolrail");if(!ie)return;D=ie;const ye=Re(D);J=G(ye),W=_(ye),Xe(W),(!T||!T.isConnected)&&(T=document.createElement("button"),T.type="button",T.className="me-video-text-tool me-video-ratio-tool",T.innerHTML=`<span class="me-video-text-tool-icon">\u2922</span><span class="me-video-text-tool-label">${o.tool}</span>`,T.title=o.tool,T.setAttribute("aria-label",o.tool),T.addEventListener("click",()=>{const Ye=!he;Ye&&(Le(),ce()),Ue(Ye)})),T.isConnected?W?.parentElement===D&&T.nextSibling!==W&&D.insertBefore(T,W):W?.parentElement===D?D.insertBefore(T,W):D.appendChild(T),T.classList.toggle("is-active",he),H(),Ze()}function ct(){m.hidden=!he,T?.classList.toggle("is-active",he),H(),Ze()}function ot(ie=t.getState()){return Ho(ie?.scale?.fit)}function Te(){K.textContent=He?"\u{1F512}":"\u{1F513}",K.title=He?o.lockRatio:o.unlockRatio,K.setAttribute("aria-label",K.title),K.classList.toggle("is-active",He)}function rt(ie,ye,Ye=ot(),Ge=!1){const it={width:vn(ie,2),height:vn(ye,2),fit:Ho(Ye)};if(Ge){t.patch({scale:it},{transient:!0});return}t.commit({scale:it})}function ht(ie){const ye=_n(t.getState()),Ye=vn(ie,ye.w);if(!He)return{width:Ye,height:vn(I.value,ye.h)};const Ge=ye.w>0&&ye.h>0?ye.w/ye.h:1;return{width:Ye,height:vn(Ye/Ge,ye.h)}}function Et(ie){const ye=_n(t.getState()),Ye=vn(ie,ye.h);if(!He)return{width:vn(w.value,ye.w),height:Ye};const Ge=ye.w>0&&ye.h>0?ye.w/ye.h:1;return{width:vn(Ye*Ge,ye.w),height:Ye}}function xe(ie){const ye=Xi(s,ie);S.replaceChildren();for(const Ye of s){const Ge=document.createElement("button");Ge.type="button",Ge.className="me-video-ratio-preset-group",Ge.title=`${Ye.ratio} (${An(Ye)})`,ye&&ye.ratio===Ye.ratio&&Ge.classList.add("is-active");const it=document.createElement("div");it.className="me-video-ratio-preset-head";const Lt=document.createElement("div");Lt.className="me-video-ratio-preset-title";const Tt=document.createElement("strong");Tt.className="me-video-ratio-preset-ratio",Tt.textContent=Ye.ratio;const Rt=document.createElement("span");Rt.className="me-video-ratio-preset-size",Rt.textContent=`(${An(Ye)})`,Lt.append(Tt,Rt);const dt=document.createElement("span");dt.className="me-video-ratio-preset-marker",dt.setAttribute("aria-hidden","true"),it.append(Lt,dt);const Ht=document.createElement("p");Ht.className="me-video-ratio-preset-hint",Ht.textContent=Ye.hint;const bt=document.createElement("div");bt.className="me-video-ratio-preset-tags";for(const Ft of Ye.tags){const wt=document.createElement("span");wt.className="me-video-ratio-preset-tag",wt.textContent=Ft,bt.appendChild(wt)}Ge.addEventListener("click",()=>{rt(Ye.w,Ye.h,ot())}),Ge.append(it,Ht,bt),S.appendChild(Ge)}}function Ce(){Se(()=>{je();const ie=t.getState(),ye=Re().find(Lt=>Lt.classList.contains("is-active"))??null;he&&ye&&ye!==J&&(Le(),ce());const Ye=_n(ie),Ge=Sr(ie),it=ot(ie);w.value=String(Ye.w),I.value=String(Ye.h),Te(),X.innerHTML=`<strong>${o.summary}:</strong> ${An(Ye)}${ie.scale?` | ${o.baseOutput}: ${An(Ge)}`:""}`,Y.textContent=qi(o,it),q.forEach(Lt=>{Lt.button.classList.toggle("is-active",Lt.fit===it)}),xe(Ye),ct()})}function ke(ie){return!!ie&&(ie===m||m.contains(ie))}function Qe(ie){return ie.some(ye=>{if(!ke(ye.target))return!0;for(const Ye of ye.addedNodes)if(!ke(Ye))return!0;for(const Ye of ye.removedNodes)if(!ke(Ye))return!0;return!1})}const nt=new MutationObserver(ie=>{Ee||e.__meVideoEnhancerObserverLock||Qe(ie)&&(Se(()=>{je()}),ce())}),vt=ie=>{ie?.detail?.id!==We&&(he&&(he=!1,ct()),ce())};nt.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",vt),window.addEventListener("resize",ce);const yt=t.subscribe(()=>{ce()});return w.addEventListener("input",()=>{const ie=ht(w.value);rt(ie.width,ie.height,ot(),!0)}),w.addEventListener("change",()=>{const ie=ht(w.value);rt(ie.width,ie.height,ot())}),I.addEventListener("input",()=>{const ie=Et(I.value);rt(ie.width,ie.height,ot(),!0)}),I.addEventListener("change",()=>{const ie=Et(I.value);rt(ie.width,ie.height,ot())}),K.addEventListener("click",()=>{He=!He,Ce()}),V.addEventListener("click",()=>{rt(Fe.w,Fe.h,ot())}),Z.addEventListener("click",()=>{rt(R.w,R.h,ot())}),q.forEach(ie=>{ie.button.addEventListener("click",()=>{const ye=_n(t.getState());rt(ye.w,ye.h,ie.fit)})}),je(),Ce(),{destroy(){nt.disconnect(),yt(),e.removeEventListener("me-video-inspector-open",vt),window.removeEventListener("resize",ce),le(),T?.remove(),m.remove(),It(e)}}}function aa(e,t,n,o){sn(),wn();const l=Uo(o()),s=l.transitions,m=document.createElement("div");m.className="me-video-text-panel me-video-transition-panel",m.hidden=!0,e.appendChild(m);const x=document.createElement("div");x.className="me-video-text-toolbar";const h=document.createElement("strong");h.textContent=s.title;const y=jt(s.fadeAll),S=jt(s.close);x.append(h,y,S);const U=document.createElement("p");U.className="me-video-text-hint",U.textContent=s.hint;const w=document.createElement("div");w.className="me-video-text-list";const I=document.createElement("div");I.className="me-video-text-empty",I.textContent=s.empty;const B=document.createElement("div");B.className="me-video-transition-selection";const ne=document.createElement("div");ne.className="me-video-transition-grid";const Q=po.map(xe=>{const Ce=kn(l,xe.key),ke=document.createElement("button");return ke.type="button",ke.className="me-video-transition-choice",ke.dataset.transition=xe.key,ke.innerHTML=`<strong>${Ce.label}</strong><span>${xe.key==="none"?s.instantCut:`${s.duration} ${pn(xe.duration)}`}</span>`,ne.appendChild(ke),ke}),k=document.createElement("input");k.type="range",k.min="0.1",k.max="1.2",k.step="0.05";const $=document.createElement("div");$.className="me-video-text-inline";const K=document.createElement("span");$.append(k,K);const V=Zn(s.duration,$);V.classList.add("is-span-2");const Z=document.createElement("div");Z.className="me-video-transition-actions";const X=jt(s.clearSelected),se=wi(s.clearAll,"clear");se.classList.add("me-video-text-cta"),Z.append(se,X),m.append(x,U,w,I,B,ne,V,Z);let ee=null,q=null,Y=null,T=null,D=null,W=!1,J=0,ve=!1,he=!1;const He="transition",ue=typeof requestAnimationFrame=="function"?requestAnimationFrame:xe=>setTimeout(xe,16),Ee=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>R());function We(){Promise.resolve().then(()=>{he=!1;const xe=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,xe-1)})}function Fe(xe){he=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return xe()}finally{We()}}function R(){ve||(ve=!0,ue(()=>{ve=!1,je()}))}function C(xe){const Ce=!!xe;if(Ce===W){je();return}W=Ce,W&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:He}})),je()}function $e(){return q?[...q.querySelectorAll("button")].filter(xe=>xe!==ee):[]}function Se(){$e()[0]?.click()}function ce(){ee&&(ee.dataset.theme=Xn(n()))}function Re(){tn(e,m),It(e)}function O(){m.hidden=!W,ee&&ee.classList.toggle("is-active",W),Re()}function G(xe){const Ce=Math.max(0,(xe.clips??[]).length-1);if(!Ce){J=0;return}J=re(J,0,Ce-1)}function H(xe,Ce=!1){if(Ce){t.patch({transitions:xe},{transient:!0});return}t.commit({transitions:xe})}function _(xe,Ce=!1){const ke=t.getState(),Qe=ho(ke),nt=ke.clips??[];G(ke),!(!Qe.length||!nt[J]||!nt[J+1])&&(Qe[J]=Wn({...Qe[J],...xe},Dt(nt[J]),Dt(nt[J+1])),H(Qe,Ce))}function le(xe){const Ce=t.getState(),ke=ho(Ce),Qe=Ce.clips??[];if(G(Ce),!ke.length||!Qe[J]||!Qe[J+1])return;const nt=kn(l,xe);ke[J]=Wn({type:xe,duration:xe==="none"?0:ke[J]?.duration||nt.duration},Dt(Qe[J]),Dt(Qe[J+1])),H(ke)}function Xe(xe){const ke=t.getState().clips??[];if(ke.length<2)return;const Qe=kn(l,xe),nt=[];for(let vt=0;vt<ke.length-1;vt++)nt.push(Wn({type:xe,duration:xe==="none"?0:Qe.duration},Dt(ke[vt]),Dt(ke[vt+1])));H(nt)}function Le(){const Ce=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!Ce){T?.remove(),T=null,Ee&&D&&(Ee.unobserve(D),D=null),Y=null;return}Y=Ce,Y.style.position="relative",(!T||!T.isConnected||T.parentElement!==Y)&&(T?.remove(),T=document.createElement("div"),T.className="me-video-transition-track",Y.appendChild(T)),Ee&&D!==Y&&(D&&Ee.unobserve(D),D=Y,Ee.observe(Y))}function Ze(xe,Ce){w.replaceChildren();const ke=Math.max(0,(xe.clips??[]).length-1);for(let Qe=0;Qe<ke;Qe++){const nt=document.createElement("button");nt.type="button",nt.className="me-video-text-chip",Qe===J&&nt.classList.add("is-active");const vt=Ce[Qe],yt=kn(l,vt?.type??"none");nt.textContent=s.boundary(Qe+1,Qe+2,yt.short),nt.title=s.boundaryTitle(Qe+1,Qe+2),nt.addEventListener("click",()=>{J=Qe,Se(),C(!0)}),w.appendChild(nt)}}function Ue(xe,Ce){if(Le(),!T||!Y)return;T.replaceChildren();const ke=xe.clips??[];if(ke.length<2)return;const Qe=Math.max(typeof t.contentDuration=="function"?t.contentDuration():0,.001),nt=Y.clientWidth/Qe;let vt=0;for(let yt=0;yt<ke.length-1;yt++){vt+=Dt(ke[yt]);const ie=Ce[yt],ye=kn(l,ie?.type??"none"),Ye=ie?.type==="none",Ge=document.createElement("button");Ge.type="button",Ge.className="me-video-transition-marker",Ye&&Ge.classList.add("is-cut-only"),ie?.type!=="none"&&Ge.classList.add("is-enabled"),yt===J&&Ge.classList.add("is-active"),Ge.style.left=`${vt*nt}px`,Ge.title=s.markerTitle(yt+1,yt+2,ye.label,ie?.type!=="none"?pn(ie.duration):"");const it=document.createElement("span");it.className="me-video-transition-pill",it.textContent=Ye?"":ye.short,Ge.appendChild(it),Ge.addEventListener("click",()=>{J=yt,Se(),C(!0)}),T.appendChild(Ge)}}function je(){Fe(()=>{const xe=t.getState(),Ce=ho(xe);G(xe),Ze(xe,Ce),Ue(xe,Ce);const ke=Ce[J]??null,Qe=kn(l,ke?.type??"none");I.hidden=Ce.length>0,B.textContent=ke?s.selection(J+1,J+2):s.selectionEmpty,k.disabled=!ke||Qe.key==="none",X.disabled=!ke,se.disabled=Ce.length===0,y.disabled=Ce.length===0,k.value=String(ke&&Qe.key!=="none"?ke.duration:vo("fade").duration),K.textContent=ke&&Qe.key!=="none"?pn(ke.duration):s.cut,Q.forEach(nt=>{const vt=!!ke&&nt.dataset.transition===Qe.key;nt.classList.toggle("is-active",vt),nt.disabled=!ke}),O(),Re(),ce()})}function ct(){Fe(()=>{const xe=e.querySelector(".me-video-toolrail");xe&&(q=xe,(!ee||!ee.isConnected)&&(ee=document.createElement("button"),ee.type="button",ee.className="me-video-text-tool",ee.innerHTML=`<span class="me-video-text-tool-icon">Fx</span><span class="me-video-text-tool-label">${s.tool}</span>`,ee.addEventListener("click",()=>{const Ce=!W;Ce&&Se(),C(Ce)})),ee.isConnected||q.appendChild(ee),ce(),Re())})}function ot(xe){return!!xe&&(xe===m||m.contains(xe)||xe===ee||xe===T||T?.contains(xe))}function Te(xe){return xe.some(Ce=>{if(!ot(Ce.target))return!0;for(const ke of Ce.addedNodes)if(!ot(ke))return!0;for(const ke of Ce.removedNodes)if(!ot(ke))return!0;return!1})}const rt=new MutationObserver(xe=>{he||e.__meVideoEnhancerObserverLock||Te(xe)&&(ct(),R())}),ht=xe=>{xe?.detail?.id!==He&&W&&(W=!1,je())};rt.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",ht),window.addEventListener("resize",R);const Et=t.subscribe(()=>{R()});return Q.forEach(xe=>{xe.addEventListener("click",()=>{le(xe.dataset.transition??"none")})}),k.addEventListener("input",()=>{K.textContent=pn(k.value),_({duration:Number(k.value)||.4},!0)}),k.addEventListener("change",()=>{_({duration:Number(k.value)||.4})}),y.addEventListener("click",()=>Xe("fade")),X.addEventListener("click",()=>le("none")),se.addEventListener("click",()=>Xe("none")),S.addEventListener("click",()=>{C(!1)}),ct(),je(),{destroy(){rt.disconnect(),Et(),Ee?.disconnect(),e.removeEventListener("me-video-inspector-open",ht),window.removeEventListener("resize",R),ee?.remove(),T?.remove(),m.remove(),It(e)}}}function sa(e,t,n){sn();const o=Ni(n()),l=typeof requestAnimationFrame=="function"?requestAnimationFrame:r=>setTimeout(r,16),s=document.createElement("div");s.className="me-video-text-panel me-video-add-panel",s.hidden=!0,e.appendChild(s);const m=document.createElement("div");m.className="me-video-text-toolbar";const x=document.createElement("strong");x.textContent=o.title;const h=jt(o.reset);m.append(x,h);const y=document.createElement("p");y.className="me-video-text-hint",y.textContent=o.hint;const S=document.createElement("div");S.className="me-video-add-body";const U=document.createElement("section");U.className="me-video-add-section";const w=document.createElement("div");w.className="me-video-add-section-head";const I=document.createElement("span");I.className="me-video-add-section-title",I.textContent=o.tools,w.appendChild(I);const B=document.createElement("div");B.className="me-video-add-tool-grid";const ne=document.createElement("section");ne.className="me-video-add-section";const Q=document.createElement("div");Q.className="me-video-add-section-head";const k=document.createElement("span");k.className="me-video-add-section-title",k.textContent=o.color,Q.appendChild(k);const $=document.createElement("div");$.className="me-video-add-color-grid";const K=document.createElement("div");K.className="me-video-add-custom-color";const V=document.createElement("div");V.className="me-video-add-custom-head";const Z=document.createElement("div");Z.className="me-video-add-custom-preview";const X=document.createElement("span");X.className="me-video-add-custom-label",X.textContent=o.custom,V.append(Z,X);const se=document.createElement("div");se.className="me-video-add-spectrum";const ee=document.createElement("span");ee.className="me-video-add-spectrum-thumb",se.appendChild(ee);const q=document.createElement("div");q.className="me-video-add-hue-row";const Y=document.createElement("div");Y.className="me-video-add-custom-preview";const T=document.createElement("input");T.type="range",T.min="0",T.max="360",T.step="1",T.className="me-video-add-hue-slider",q.append(Y,T);const D=document.createElement("div");D.className="me-video-add-rgb-grid";const W={};["r","g","b"].forEach(r=>{const a=document.createElement("label");a.className="me-video-add-rgb-field";const d=document.createElement("input");d.type="number",d.min="0",d.max="255",d.step="1",d.inputMode="numeric",d.className="me-video-add-rgb-input";const v=document.createElement("span");v.className="me-video-add-rgb-label",v.textContent=r.toUpperCase(),a.append(d,v),D.appendChild(a),W[r]=d}),K.append(V,se,q,D);const J=document.createElement("section");J.className="me-video-add-section";const ve=document.createElement("div");ve.className="me-video-add-section-head";const he=document.createElement("span");he.className="me-video-add-section-title",he.textContent=o.width;const He=document.createElement("span");He.className="me-video-add-section-value",ve.append(he,He);const ue=document.createElement("input");ue.type="range",ue.min=String(Bn),ue.max=String(Dn),ue.step="1",ue.className="me-video-add-slider",U.append(w,B),ne.append(Q,$,K),J.append(ve,ue),S.append(U,ne,J),s.append(m,y,S);let Ee=null,We=null,Fe=null,R=null,C=null,$e=null,Se=null,ce=null,Re=null,O=!1,G=!1,H=null,_=Jn(),le=null,Xe=null,Le=null,Ze=0,Ue=0;const je="add",ct=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"ml",x:0,y:.5},{key:"mr",x:1,y:.5},{key:"bl",x:0,y:1},{key:"bm",x:.5,y:1},{key:"br",x:1,y:1}],ot={key:"rotate",x:.5,y:0},Te=typeof ResizeObserver=="function"?new ResizeObserver(()=>{bt()}):null,rt=typeof ResizeObserver=="function"?new ResizeObserver(()=>{bt()}):null,ht=vr.map(r=>{const a=document.createElement("button");return a.type="button",a.className="me-video-add-tool-card",a.dataset.tool=r.key,a.innerHTML=`<span class="me-video-add-tool-icon">${Oi(r.key)}</span><span class="me-video-add-tool-label">${o[r.key]}</span>`,a.addEventListener("click",()=>{wt({tool:r.key})}),B.appendChild(a),a}),Et=hr.map(r=>{const a=document.createElement("button");return a.type="button",a.className="me-video-add-color-chip",a.dataset.color=r,a.dataset.tone=r==="#ffffff"?"light":"dark",a.style.background=r,a.title=r,a.setAttribute("aria-label",r),a.addEventListener("click",()=>{wt({color:r})}),$.appendChild(a),a});function xe(r,a,d){Le?.();const v=r==="mouse"?["mousemove"]:["pointermove"],M=r==="mouse"?["mouseup"]:["pointerup","pointercancel"],z=E=>{a(E)},F=E=>{v.forEach(P=>window.removeEventListener(P,z)),M.forEach(P=>window.removeEventListener(P,F)),Le=null,d(E)};Le=()=>{v.forEach(E=>window.removeEventListener(E,z)),M.forEach(E=>window.removeEventListener(E,F))},v.forEach(E=>window.addEventListener(E,z)),M.forEach(E=>window.addEventListener(E,F))}function Ce(r,a){const d=se.getBoundingClientRect();if(!(d.width>0&&d.height>0))return;const v=re((r-d.left)/d.width,0,1),M=1-re((a-d.top)/d.height,0,1),z=Qn(_.color),F=Ao(z.r,z.g,z.b),E=Oo(F.h,v,M);wt({color:eo(E.r,E.g,E.b)})}function ke(r){const a=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),d=r.type==="mousedown"?"mouse":"pointer";if(d==="mouse"){if(a<Ue)return}else Ue=a+80;r.preventDefault(),r.stopPropagation(),Ce(r.clientX,r.clientY),xe(d,v=>{v.preventDefault(),Ce(v.clientX,v.clientY)},()=>{})}function Qe(r){const a=Qn(_.color),d=Ao(a.r,a.g,a.b),v=Oo(re(Number(r)||0,0,360),d.s,d.v);wt({color:eo(v.r,v.g,v.b)})}function nt(r,a){const d=Qn(_.color),v={r:d.r,g:d.g,b:d.b};Number.isFinite(Number(a))&&(v[r]=re(Number(a),0,255)),wt({color:eo(v.r,v.g,v.b)})}function vt(){return(t.getState().overlays??[]).map((r,a)=>({overlay:r,index:a})).filter(r=>Qt(r.overlay))}function yt(){const r=t.getState().overlays??[];if(H==null)return null;const a=r[H];return Qt(a)?a:null}function ie(){const r=yt();if(!r)return!1;const a=Jn({tool:_.tool,color:r.color,width:r.width});return No(_,a)?!1:(_=a,!0)}function ye(r,a,d={}){if(!yt()||H==null)return;const M={};Object.prototype.hasOwnProperty.call(a,"color")&&(M.color=r.color),Object.prototype.hasOwnProperty.call(a,"width")&&(M.width=r.width),Object.keys(M).length&&t.updateOverlay(H,M,d)}function Ye(){return Ln(t)}function Ge(){return gn(e)}function it(r,a,d={}){const M=(t.getState().overlays??[])[r];Qt(M)&&t.updateOverlay(r,Zt(M,Ye(),a),d)}function Lt(r){const a=t.getState().overlays??[],d=a.length;if(typeof t.applyMut=="function")return t.applyMut(M=>({...M,overlays:[...en(M.overlays),{...r,timelineTrack:0}]})),d;const v=en(a);return t.commit?.({overlays:[...v,{...r,timelineTrack:0}]}),d}function Tt(r){const a=Ye();let d=re(Ge(),0,Math.max(0,a-_e)),v=Math.min(a,d+Vt);v-d<_e&&(d=re(a-Vt,0,Math.max(0,a-_e)),v=Math.max(d+_e,a));const M={...r,...Zt(null,a,{startAt:d,endAt:v,timelineTrack:0})},z=Lt(M);H=Number.isInteger(z)?z:null,gt(e,"text",H==null?[]:[H]),g(),p(!0)}function Rt(){const{timelineInner:r,timelineHost:a}=Rn(e,t.getState());if(!r||!a){ce?.remove(),ce=null,Te&&Re&&(Te.unobserve(Re),Re=null),Se=null;return}Se=r,(!ce||!ce.isConnected||ce.parentElement!==a)&&(ce?.remove(),ce=document.createElement("div"),ce.className="me-video-text-timeline me-video-overlay-timeline me-video-add-overlay-layer");for(const d of[...a.children])d!==ce&&d instanceof HTMLElement&&d.classList.contains("me-video-add-overlay-layer")&&d.remove();(ce.parentElement!==a||a.lastElementChild!==ce)&&a.appendChild(ce),Te&&Re!==Se&&(Re&&Te.unobserve(Re),Re=Se,Te.observe(Se))}function dt(r,a,d){if(!Se)return;const v=(t.getState().overlays??[])[r];if(!Qt(v))return;if(d.shiftKey||d.ctrlKey||d.metaKey){d.preventDefault(),d.stopPropagation();const fe=Pt(e,"text",r,d,go(t.getState()).map(pe=>pe.index));H=fe.length?fe[fe.length-1]:null,g(),p(!0);return}d.preventDefault(),d.stopPropagation(),H=r,gt(e,"text",[r]),g(),O||p(!0);const M=Ye(),z=Math.max(Se.clientWidth/M,.001),F=at(v),E=$t(v,F),P=Math.max(_e,E-F),te=ft(v),oe=d.clientX,Be=fe=>{const pe=(fe.clientX-oe)/z,De=t.getState().overlays??[];if(a==="move"){const st=Math.max(0,F+pe),St=st+P,Kt=mt(ce,De,r,st,St,fe.clientY,te);it(r,{startAt:st,endAt:St,timelineTrack:Kt},{transient:!0});return}if(a==="start"){const st=re(F+pe,0,E-_e),St=mt(ce,De,r,st,E,fe.clientY,te);it(r,{startAt:st,endAt:E,timelineTrack:St},{transient:!0});return}const et=Math.max(F+_e,E+pe),tt=mt(ce,De,r,F,et,fe.clientY,te);it(r,{startAt:F,endAt:et,timelineTrack:tt},{transient:!0})},ge=fe=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",ge);const pe=(fe.clientX-oe)/z,De=t.getState().overlays??[];if(a==="move"){const st=Math.max(0,F+pe),St=st+P,Kt=mt(ce,De,r,st,St,fe.clientY,te);it(r,{startAt:st,endAt:St,timelineTrack:Kt});return}if(a==="start"){const st=re(F+pe,0,E-_e),St=mt(ce,De,r,st,E,fe.clientY,te);it(r,{startAt:st,endAt:E,timelineTrack:St});return}const et=Math.max(F+_e,E+pe),tt=mt(ce,De,r,F,et,fe.clientY,te);it(r,{startAt:F,endAt:et,timelineTrack:tt})};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",ge),At()}function Ht(r,a){if(Rt(),!ce||!Se||(ce.replaceChildren(),ce.hidden=r.length===0,!r.length))return;const d=Ye(),v=Se.clientWidth/d,M=Hn(t.getState()),z=new Map;for(const F of r){const E=ft(F.overlay),P=M.get(E)??E;let te=z.get(E);te||(te=document.createElement("div"),te.className="me-video-overlay-track-row",te.dataset.track=String(E),te.style.top=`${Sn(P)}px`,z.set(E,te),ce.appendChild(te));const oe=document.createElement("div");oe.className="me-video-text-track-clip me-video-add-track-clip",a.has(F.index)&&oe.classList.add("is-active");const Be=at(F.overlay),ge=En(F.overlay);oe.style.left=`${Be*v}px`,oe.style.width=`${Math.max(36,ge*v)}px`;const fe=document.createElement("span");fe.className="me-video-text-track-icon",fe.textContent="+";const pe=document.createElement("span");pe.className="me-video-text-track-label",pe.textContent=xr(F.overlay,o),pe.title=pe.textContent;const De=document.createElement("span");De.className="me-video-text-track-handle is-start";const et=document.createElement("span");et.className="me-video-text-track-handle is-end",oe.append(fe,pe,De,et),oe.addEventListener("pointerdown",tt=>dt(F.index,"move",tt)),De.addEventListener("pointerdown",tt=>dt(F.index,"start",tt)),et.addEventListener("pointerdown",tt=>dt(F.index,"end",tt)),oe.addEventListener("click",tt=>{if(tt.preventDefault(),tt.stopPropagation(),tt.shiftKey||tt.ctrlKey||tt.metaKey){g(),At();return}const st=Pt(e,"text",F.index,tt,r.map(St=>St.index));H=st.length?st[st.length-1]:null,g(),p(!0),At()}),te.appendChild(oe)}}function bt(){G||(G=!0,l(()=>{G=!1,At()}))}function Ft(){ht.forEach(d=>{d.classList.toggle("is-active",d.dataset.tool===_.tool)}),Et.forEach(d=>{d.classList.toggle("is-active",d.dataset.color===_.color)});const r=Qn(_.color),a=Ao(r.r,r.g,r.b);K.classList.toggle("is-active",!hr.includes(_.color)),K.style.setProperty("--me-add-color-current",_.color),K.style.setProperty("--me-add-color-hue",Ii(a.h)),Z.style.background=_.color,Y.style.background=_.color,ee.style.left=`${a.s*100}%`,ee.style.top=`${(1-a.v)*100}%`,T.value=String(Math.round(a.h)),W.r.value=String(r.r),W.g.value=String(r.g),W.b.value=String(r.b),ue.value=String(re(Math.round(Number(_.width)||cn.width),Bn,Dn)),He.textContent=Pi(_.width),h.disabled=br(_)}function wt(r,a={}){const d=Jn({..._,...r});if(No(_,d)){a.applyToSelected&&ye(d,r,a.overlayOptions);return}_=d,a.applyToSelected!==!1&&ye(d,r,a.overlayOptions),Ft(),bt()}function Mt(){if(br(_)){Ft();return}_=Jn(),Ft(),bt()}function ut(r=We){return r?[...r.children].filter(a=>a instanceof HTMLButtonElement&&a!==Ee&&!a.classList.contains("me-video-text-tool")):[]}function Wt(){Ee?.classList.toggle("is-active",O)}function g(){Fe&&(Fe.classList.contains("is-active")||Fe.click())}function N(){tn(e,s),It(e)}function j(){le=null}function we(){Xe?.(),Xe=null,j()}function Oe(){s.hidden=!O,Wt(),N()}function p(r){const a=!!r;if(a===O){At();return}O=a,O?(e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:je}})),g()):(we(),Le?.(),Le=null),At()}function b(){const r=e.querySelector(".me-video-toolrail");r&&(We=r,Fe=to(ut(r)),(!Ee||!Ee.isConnected)&&(Ee=document.createElement("button"),Ee.type="button",Ee.className="me-video-text-tool me-video-add-tool",Ee.innerHTML=`<span class="me-video-text-tool-icon">${zi()}</span><span class="me-video-text-tool-label">${o.tool}</span>`,Ee.title=o.tool,Ee.setAttribute("aria-label",o.tool),Ee.addEventListener("click",()=>{const a=!O;a&&g(),p(a)})),Ee.isConnected?Ee.parentElement===We&&Ee!==We.lastElementChild&&We.appendChild(Ee):We.appendChild(Ee),Oe())}function A(){const r=e.querySelector(".me-video-canvas-stage");if(!r){C?.remove(),C=null,rt&&$e&&(rt.unobserve($e),$e=null),R=null;return}R=r,R.style.position="relative",!C||!C.isConnected||C.parentElement!==R?(C?.remove(),C=document.createElement("div"),C.className="me-video-add-canvas-layer",C.addEventListener("pointerdown",Jt),C.addEventListener("mousedown",Jt),C.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation()}),R.appendChild(C)):R.lastElementChild!==C&&R.appendChild(C),rt&&$e!==R&&($e&&rt.unobserve($e),$e=R,rt.observe(R)),C.hidden=!O,C.dataset.tool=_.tool}function ae(){if(!R)return null;const r=t.getState().canvas??{},a=Math.max(1,Number(r.w)||0),d=Math.max(1,Number(r.h)||0);if(!a||!d)return null;const v=R.getBoundingClientRect(),M=R.querySelector("canvas, video, img")||[...R.children].find(te=>te!==C)||null;let z=0,F=0,E=R.clientWidth||a,P=R.clientHeight||d;if(M instanceof HTMLElement){const te=M.getBoundingClientRect();te.width>0&&te.height>0&&(z=te.left-v.left,F=te.top-v.top,E=te.width,P=te.height)}if(!(E>0&&P>0)){const te=R.clientWidth||a,oe=R.clientHeight||d,Be=Math.min(te/a,oe/d)||1;E=a*Be,P=d*Be,z=Math.max(0,(te-E)/2),F=Math.max(0,(oe-P)/2)}return{stageLeft:v.left,stageTop:v.top,left:z,top:F,width:E,height:P,canvasWidth:a,canvasHeight:d,scaleX:E/a,scaleY:P/d}}function de(r,a,d){return{x:re((r-d.stageLeft-d.left)/d.scaleX,0,d.canvasWidth),y:re((a-d.stageTop-d.top)/d.scaleY,0,d.canvasHeight)}}function me(r,a,d){return Number.isFinite(r?.clientX)&&Number.isFinite(r?.clientY)?de(r.clientX,r.clientY,a):d}function ze(r,a){return{x:Math.min(r.x,a.x),y:Math.min(r.y,a.y),w:Math.abs(a.x-r.x),h:Math.abs(a.y-r.y)}}function be(r,a){const d=at(r),v=$t(r,d);return a>=d-.001&&a<=v+.001}function Pe(r,a,d){const v=Pt(e,"text",r,a,d);H=v.length?v[v.length-1]:null,p(!0),At()}function Me(r,a,d,v,M){const z=Math.atan2(v-a,d-r),F=Math.max(12,M*3.5),E=d-F*Math.cos(z-Math.PI/7),P=v-F*Math.sin(z-Math.PI/7),te=d-F*Math.cos(z+Math.PI/7),oe=v-F*Math.sin(z+Math.PI/7);return`M ${E} ${P} L ${d} ${v} L ${te} ${oe}`}function Ie(r){if(!Array.isArray(r)||r.length<4)return"";let a=`M ${r[0]} ${r[1]}`;for(let d=2;d<r.length;d+=2)a+=` L ${r[d]} ${r[d+1]}`;return a}function Je(r){const a=document.createElementNS("http://www.w3.org/2000/svg","svg");return a.classList.add("me-video-add-preview-svg"),a.setAttribute("viewBox",`0 0 ${r.canvasWidth} ${r.canvasHeight}`),a.setAttribute("width",String(r.width)),a.setAttribute("height",String(r.height)),a.style.left=`${r.left}px`,a.style.top=`${r.top}px`,a.style.width=`${r.width}px`,a.style.height=`${r.height}px`,a}function Ae(r,a,d){const v=document.createElementNS("http://www.w3.org/2000/svg",r);return v.classList.add("me-video-add-preview-shape"),v.setAttribute("stroke",a),v.setAttribute("stroke-width",String(d)),v}function Ne(r){if(!le)return null;const a=Je(r);if(le.type==="pen"){const d=Ie(le.points);if(!d)return a;const v=Ae("path",le.color,le.width);return v.setAttribute("d",d),a.appendChild(v),a}if(le.type==="line"||le.type==="arrow"){const d=Ae("line",le.color,le.width);if(d.setAttribute("x1",String(le.x1)),d.setAttribute("y1",String(le.y1)),d.setAttribute("x2",String(le.x2)),d.setAttribute("y2",String(le.y2)),a.appendChild(d),le.type==="arrow"){const v=Ae("path",le.color,le.width);v.setAttribute("d",Me(le.x1,le.y1,le.x2,le.y2,le.width)),a.appendChild(v)}return a}if(le.type==="rect"){const d=Ae("rect",le.color,le.width);return d.setAttribute("x",String(le.x)),d.setAttribute("y",String(le.y)),d.setAttribute("width",String(le.w)),d.setAttribute("height",String(le.h)),a.appendChild(d),a}if(le.type==="ellipse"){const d=Ae("ellipse",le.color,le.width);return d.setAttribute("cx",String(le.x+le.w/2)),d.setAttribute("cy",String(le.y+le.h/2)),d.setAttribute("rx",String(Math.abs(le.w/2))),d.setAttribute("ry",String(Math.abs(le.h/2))),a.appendChild(d),a}return a}function Ke(){if(A(),!C)return;const r=ae();if(C.hidden=!O||!r,!O||!r){C.replaceChildren();return}C.dataset.tool=_.tool,C.replaceChildren();const a=Ne(r);a&&C.appendChild(a);const d=go(t.getState()),v=new Set(dr(e,t.getState())),M=Ge(),z=d.map(P=>P.index),F=d.filter(P=>be(P.overlay,M)),E=_.tool==="eraser"?[]:v.size?F.filter(P=>v.has(P.index)):F;for(const P of E){const te=Ut(P.overlay);if(!te)continue;const oe=document.createElement("button");oe.type="button",oe.className="me-video-text-canvas-hit";const Be=v.has(P.index),ge=Be&&H===P.index;Be&&oe.classList.add("is-active"),oe.title=xr(P.overlay,o),oe.style.left=`${r.left+te.x*r.scaleX}px`,oe.style.top=`${r.top+te.y*r.scaleY}px`,oe.style.width=`${Math.max(18,te.w*r.scaleX)}px`,oe.style.height=`${Math.max(18,te.h*r.scaleY)}px`;const fe=mn(P.overlay);if(fe&&(oe.style.transform=`rotate(${fe}deg)`,oe.style.transformOrigin="center center"),oe.addEventListener("pointerdown",pe=>{if(pe.preventDefault(),pe.stopPropagation(),pe.shiftKey||pe.ctrlKey||pe.metaKey){Pe(P.index,pe,z);return}H=P.index,gt(e,"text",[P.index]),p(!0),lt(P.index,pe,r)}),ge){for(const De of ct){const et=document.createElement("span");et.className="me-video-text-canvas-handle",et.dataset.handle=De.key,et.style.left=`${De.x*100}%`,et.style.top=`${De.y*100}%`,et.addEventListener("pointerdown",tt=>{tt.preventDefault(),tt.stopPropagation(),H=P.index,gt(e,"text",[P.index]),p(!0),pt(P.index,De,tt,r)}),oe.appendChild(et)}const pe=document.createElement("span");pe.className="me-video-text-canvas-handle",pe.dataset.handle=ot.key,pe.style.left=`${ot.x*100}%`,pe.style.top=`${ot.y*100}%`,pe.addEventListener("pointerdown",De=>{De.preventDefault(),De.stopPropagation(),H=P.index,gt(e,"text",[P.index]),p(!0),qe(P.index,De,r)}),oe.appendChild(pe)}C.appendChild(oe)}}function lt(r,a,d){const v=(t.getState().overlays??[])[r];if(!Qt(v))return;const M=t.getState().canvas??{w:1080,h:1920},z=Ut(v);if(!z)return;const F=a.clientX,E=a.clientY,P=Math.max(0,(Number(M.w)||0)-z.w),te=Math.max(0,(Number(M.h)||0)-z.h),oe=(fe,pe,De)=>{const et=(fe-F)/d.scaleX,tt=(pe-E)/d.scaleY,st=re(z.x+et,0,P),St=re(z.y+tt,0,te),Kt=jo(v,st-z.x,St-z.y);t.updateOverlay(r,Kt,De?{transient:!0}:void 0)},Be=fe=>{fe.preventDefault(),oe(fe.clientX,fe.clientY,!0)},ge=fe=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",ge),oe(fe.clientX,fe.clientY,!1)};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",ge)}function pt(r,a,d,v){const M=(t.getState().overlays??[])[r];if(!Qt(M))return;const z=Ut(M);if(!z)return;const F=t.getState().canvas??{w:1080,h:1920},E=a.x===.5?.5:1-a.x,P=a.y===.5?.5:1-a.y,te=z.x+z.w*E,oe=z.y+z.h*P,Be=Math.max(.1,24/Math.max(24,z.w),24/Math.max(24,z.h)),ge=a.x===.5?1/0:Math.max(.1,(E===0?(Number(F.w)||0)-te:te)/Math.max(1,z.w)),fe=a.y===.5?1/0:Math.max(.1,(P===0?(Number(F.h)||0)-oe:oe)/Math.max(1,z.h)),pe=Math.max(Be,Math.min(ge,fe,8)),De=(st,St,Kt)=>{const dn=de(st,St,v),un=[];a.x!==.5&&un.push(Math.abs(dn.x-te)/Math.max(1,z.w)),a.y!==.5&&un.push(Math.abs(dn.y-oe)/Math.max(1,z.h));const an=un.length?Math.max(...un):1,uo=re(an,Be,pe),Yn=_o(M,uo),Pn=Ut(Yn);if(!Pn)return;const Ir=te-Pn.w*E,Hr=oe-Pn.h*P,Rr=jo(Yn,Ir-Pn.x,Hr-Pn.y);t.updateOverlay(r,Rr,Kt?{transient:!0}:void 0)},et=st=>{st.preventDefault(),De(st.clientX,st.clientY,!0)},tt=st=>{window.removeEventListener("pointermove",et),window.removeEventListener("pointerup",tt),window.removeEventListener("pointercancel",tt),De(st.clientX,st.clientY,!1)};window.addEventListener("pointermove",et),window.addEventListener("pointerup",tt),window.addEventListener("pointercancel",tt)}function qe(r,a,d){const v=(t.getState().overlays??[])[r];if(!Qt(v))return;const M=Ut(v);if(!M)return;const z=d.stageLeft+d.left+(M.x+M.w/2)*d.scaleX,F=d.stageTop+d.top+(M.y+M.h/2)*d.scaleY,E=Math.atan2(a.clientY-F,a.clientX-z),P=mn(v),te=(ge,fe,pe,De)=>{const et=Math.atan2(fe-F,ge-z);let tt=In(P+(et-E)*180/Math.PI);De&&(tt=Math.round(tt/15)*15),t.updateOverlay(r,{rotation:tt},pe?{transient:!0}:void 0)},oe=ge=>{ge.preventDefault(),te(ge.clientX,ge.clientY,!0,ge.shiftKey)},Be=ge=>{window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",Be),window.removeEventListener("pointercancel",Be),te(ge.clientX,ge.clientY,!1,ge.shiftKey)};window.addEventListener("pointermove",oe),window.addEventListener("pointerup",Be),window.addEventListener("pointercancel",Be)}function Ve(r,a,d,v,M,z,F){const E=M-d,P=z-v,te=E*E+P*P||1,oe=re(((r-d)*E+(a-v)*P)/te,0,1),Be=d+oe*E,ge=v+oe*P;return(r-Be)**2+(a-ge)**2<=F*F}function xt(r,a,d){if(!r)return!1;if(r.type==="pen"){for(let v=0;v+3<r.points.length;v+=2)if(Ve(a,d,r.points[v],r.points[v+1],r.points[v+2],r.points[v+3],Mn+(Number(r.width)||0)/2))return!0;return!1}return r.type==="line"||r.type==="arrow"?Ve(a,d,r.x1,r.y1,r.x2,r.y2,Mn+(Number(r.width)||0)/2):r.type==="rect"||r.type==="ellipse"?a>=r.x-Mn&&a<=r.x+r.w+Mn&&d>=r.y-Mn&&d<=r.y+r.h+Mn:!1}function Ot(r){const a=vt();for(let d=a.length-1;d>=0;d--)if(xt(a[d].overlay,r.x,r.y)){t.removeOverlay(a[d].index),bt();return}}function Bt(r,a,d){Ot(r),Nt(d,v=>{v.preventDefault(),Ot(de(v.clientX,v.clientY,a))},()=>{})}function Nt(r,a,d){we();const v=r==="mouse"?["mousemove"]:["pointermove"],M=r==="mouse"?["mouseup"]:["pointerup","pointercancel"],z=E=>{a(E)},F=E=>{v.forEach(P=>window.removeEventListener(P,z)),M.forEach(P=>window.removeEventListener(P,F)),Xe=null,d(E)};Xe=()=>{v.forEach(E=>window.removeEventListener(E,z)),M.forEach(E=>window.removeEventListener(E,F))},v.forEach(E=>window.addEventListener(E,z)),M.forEach(E=>window.addEventListener(E,F))}function nn(r,a,d){const v=[r.x,r.y],M=z=>{const F=v[v.length-2],E=v[v.length-1];Math.hypot(z.x-F,z.y-E)<1||v.push(z.x,z.y)};le={type:"pen",points:[...v],color:_.color,width:_.width},Ke(),Nt(d,z=>{z.preventDefault();const F=de(z.clientX,z.clientY,a);M(F),le={type:"pen",points:[...v],color:_.color,width:_.width},Ke()},z=>{const F=me(z,a,{x:v[v.length-2],y:v[v.length-1]});M(F);const E=[...v];j(),Ke(),!(E.length<4)&&(Tt({type:"pen",points:E,color:_.color,width:_.width,rotation:0}),bt())})}function on(r,a,d,v){const M=Ai[r];if(!M)return;const z=F=>{if(M==="line"||M==="arrow")return{type:M,x1:a.x,y1:a.y,x2:F.x,y2:F.y,color:_.color,width:_.width};const E=ze(a,F);return{type:M,x:E.x,y:E.y,w:E.w,h:E.h,color:_.color,width:_.width}};le=z(a),Ke(),Nt(v,F=>{F.preventDefault();const E=de(F.clientX,F.clientY,d);le=z(E),Ke()},F=>{const E=me(F,d,a),P=z(E);j(),Ke(),P&&((P.type==="line"||P.type==="arrow")&&Math.hypot(P.x2-P.x1,P.y2-P.y1)<2||(P.type==="rect"||P.type==="ellipse")&&(P.w<2||P.h<2)||Tt({...P,rotation:0}))})}function Jt(r){if(!O)return;const a=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),d=r.type==="mousedown"?"mouse":"pointer";if(d==="mouse"){if(a<Ze)return}else Ze=a+80;if(typeof r.button=="number"&&r.button!==0)return;r.preventDefault(),r.stopPropagation();const v=ae();if(!v)return;const M=de(r.clientX,r.clientY,v);if(_.tool==="eraser"){Bt(M,v,d);return}if(_.tool==="brush"){nn(M,v,d);return}on(_.tool,M,v,d)}function At(){const r=dr(e,t.getState());H=r.length?r[r.length-1]:null,ie(),ut().find(d=>d!==Fe&&!d.hidden&&d.style.display!=="none"&&d.classList.contains("is-active"))&&(O=!1,we()),O&&g(),Ft(),Oe(),Ke(),Ht(go(t.getState()),new Set(r)),N()}function rn(r){return!!r&&(r===s||s.contains(r)||r===Ee||Ee?.contains?.(r)||r===ce||ce?.contains?.(r)||r===C||C?.contains?.(r))}function u(r){return r.some(a=>{if(!rn(a.target))return!0;for(const d of a.addedNodes)if(!rn(d))return!0;for(const d of a.removedNodes)if(!rn(d))return!0;return!1})}const L=new MutationObserver(r=>{u(r)&&(b(),bt())}),i=r=>{r?.detail?.id!==je&&O&&p(!1)},c=()=>{bt()};L.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",i),e.addEventListener(zt,c),window.addEventListener("resize",bt);const f=t.subscribe(()=>{bt()});return h.addEventListener("click",()=>{Mt()}),se.addEventListener("pointerdown",ke),se.addEventListener("mousedown",ke),T.addEventListener("input",()=>{Qe(T.value)}),Object.entries(W).forEach(([r,a])=>{a.addEventListener("input",()=>{nt(r,a.value)})}),ue.addEventListener("input",()=>{wt({width:re(Number(ue.value)||cn.width,Bn,Dn)})}),b(),At(),{destroy(){L.disconnect(),f(),we(),Le?.(),Le=null,Te&&Re&&Te.unobserve(Re),Te?.disconnect?.(),rt&&$e&&rt.unobserve($e),rt?.disconnect?.(),e.removeEventListener("me-video-inspector-open",i),e.removeEventListener(zt,c),window.removeEventListener("resize",bt),Ee?.remove(),ce?.remove(),C?.remove(),s.remove(),It(e)}}}function la(e,t,n){sn();const o=Xr(n()),l=document.createElement("div");l.className="me-video-text-panel me-video-audio-panel",l.hidden=!0;const s=document.createElement("div");s.className="me-video-text-toolbar";const m=document.createElement("strong");m.textContent=o.title;const x=jt(o.close);s.append(m,x);const h=document.createElement("div");h.className="me-video-audio-source";const y=document.createElement("div");y.className="me-video-text-grid";function S(H=""){const _=document.createElement("input");return _.type="text",_.readOnly=!0,_.className=["me-video-audio-value",H].filter(Boolean).join(" "),_}function U(H,_,le){const Xe=document.createElement("div");return Xe.className="me-video-text-inline",Xe.append(_,le),Zn(H,Xe)}const w=document.createElement("input");w.type="range",w.min="50",w.max="200",w.step="1",w.disabled=!1,w.value="100",w.title=o.speedHint;const I=S("is-compact is-readonly");I.readOnly=!1,I.classList.remove("is-readonly"),I.inputMode="decimal",I.title=o.speedHint;const B=U(o.speed,w,I),ne=document.createElement("input");ne.type="range",ne.min=String(Xt),ne.max="1",ne.step="0.01",ne.disabled=!1,ne.value="1";const Q=S("is-readonly");Q.readOnly=!1,Q.classList.remove("is-readonly"),Q.inputMode="decimal";const k=U(o.duration,ne,Q),$=document.createElement("input");$.type="range",$.min="0",$.max="2",$.step="0.01";const K=S(),V=U(o.volume,$,K),Z=document.createElement("input");Z.type="range",Z.min="0",Z.max="0.1",Z.step="0.05";const X=S(),se=U(o.fadeIn,Z,X),ee=document.createElement("input");ee.type="range",ee.min="0",ee.max="0.1",ee.step="0.05";const q=S(),Y=U(o.fadeOut,ee,q);y.append(B,k,V,se,Y),l.append(s,h,y);let T=null,D=!1,W=!1;const J="audio",ve=typeof requestAnimationFrame=="function"?requestAnimationFrame:H=>setTimeout(H,16);function he(H){const _=Math.max(0,Number(H)||0);return _<=1e-4?"-\u221EdB":`${(20*Math.log10(_)).toFixed(1)}dB`}function He(){const H=e.querySelector(".me-video-trim-panel");if(H instanceof HTMLElement)for(const _ of[...H.children].slice(2))_ instanceof HTMLElement&&_.querySelector('input[type="range"]')&&/♪/.test(_.textContent??"")&&(_.style.display="none")}function ue(){l.hidden=!D,tn(e,l),Tr(e,l,D),It(e)}function Ee(H){const _=!!H;if(_===D){ue();return}D=_,D&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:J}})),ue()}function We(){fn(e,{audio:[]},{audio:null})}function Fe(H,_,le,Xe){let Le=re(Number(_)||0,0,H),Ze=re(Number(le)||0,0,H);return Le+Ze<=H?{fadeIn:Le,fadeOut:Ze}:(Xe==="fadeOut"?Le=Math.max(0,H-Ze):Ze=Math.max(0,H-Le),{fadeIn:Le,fadeOut:Ze})}function R(H){const _=t.getAudioSource?.(H?.srcIdx);return Math.max(Dt(H),Number(_?.duration)||0)}function C(H,_=!1,le="fadeIn"){const Xe=t.getState(),Le=Xe.audioClips??[];if(T==null||!Le[T])return;const Ze=Le[T],Ue=Dt({...Ze,...H}),je=Fe(Ue,H.fadeIn??Ze.fadeIn,H.fadeOut??Ze.fadeOut,le),ct=Te=>({...Te,...H,speed:xn(H.speed??Te.speed),volume:re(Number(H.volume??Te.volume)||0,0,2),fadeIn:je.fadeIn,fadeOut:je.fadeOut}),ot=typeof t.patchAudio=="function"?t.patchAudio(Xe,T,ct).audioClips??Le:Le.map((Te,rt)=>rt===T?ct(Te):Te);if(_){t.patch({audioClips:ot},{transient:!0});return}t.commit({audioClips:ot})}function $e(H,_=!1){const Xe=t.getState().audioClips??[];if(T==null||!Xe[T])return;const Le=Xe[T],Ze=R(Le),Ue=Math.max(0,Number(Le.in)||0),je=Math.max(Xt,Ze-Ue),ct=re(Number(H)||0,Xt,je);C({out:Ue+ct},_,"fadeIn")}function Se(){if(He(),!(e.querySelector(".me-video-trim-panel")instanceof HTMLElement)){D&&Ee(!1),T=null;return}const _=t.getState(),le=_.audioClips??[],Xe=Tn(e,le),Le=Fn(e,_.clips??[]),Ze=$n(e,_),Ue=Xe.length===1&&Le.length===0&&Ze.length===0?Xe[0]:null;if(T=Number.isInteger(Ue)&&le[Ue]?Ue:null,T==null){D&&Ee(!1);return}const je=le[T],ct=t.getAudioSource?.(je.srcIdx),ot=ct?.file?.name||ct?.name||`${o.source} ${T+1}`,Te=Dt(je),rt=Math.max(Te,Number(ct?.duration)||0),ht=Math.max(Te,Math.max(Xt,rt-Math.max(0,Number(je.in)||0))),Et=xn(je.speed),xe=re(Number(je.fadeIn)||0,0,Te),Ce=re(Number(je.fadeOut)||0,0,Math.max(0,Te-xe));h.textContent=`${o.source}: ${ot}`,w.value=String(Math.round(Et*100)),I.value=Ur(Et),ne.max=String(ht),ne.value=String(re(Te,Xt,ht)),Q.value=pn(Te),$.value=String(re(Number(je.volume)||0,0,2)),K.value=he(je.volume),Z.max=String(Math.max(.1,Te)),ee.max=String(Math.max(.1,Te)),Z.value=String(xe),ee.value=String(Ce),X.value=pn(xe),q.value=pn(Ce),Z.disabled=Te<=1e-4,ee.disabled=Te<=1e-4,Ee(!0)}function ce(){W||(W=!0,ve(()=>{W=!1,Se()}))}const Re=H=>{if(H?.detail?.id!==J){if(_t(e,"audio").length>0){We();return}D&&Ee(!1)}},O=new MutationObserver(()=>{ce()});O.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",Re),e.addEventListener(zt,ce);const G=t.subscribe(()=>{ce()});return x.addEventListener("click",()=>{We()}),w.addEventListener("input",()=>{C({speed:xn((Number(w.value)||100)/100)},!0,"fadeIn")}),w.addEventListener("change",()=>{C({speed:xn((Number(w.value)||100)/100)},!1,"fadeIn")}),I.addEventListener("change",()=>{const H=T==null?null:(t.getState().audioClips??[])[T]??null;C({speed:Gr(I.value,H?.speed??1)},!1,"fadeIn")}),I.addEventListener("keydown",H=>{H.key==="Enter"&&(H.preventDefault(),I.blur())}),ne.addEventListener("input",()=>{$e(Number(ne.value)||0,!0)}),ne.addEventListener("change",()=>{$e(Number(ne.value)||0,!1)}),Q.addEventListener("change",()=>{const H=T==null?null:(t.getState().audioClips??[])[T]??null;$e(Zr(Q.value,Dt(H)),!1)}),Q.addEventListener("keydown",H=>{H.key==="Enter"&&(H.preventDefault(),Q.blur())}),$.addEventListener("input",()=>{C({volume:Number($.value)||0},!0,"fadeIn")}),$.addEventListener("change",()=>{C({volume:Number($.value)||0},!1,"fadeIn")}),Z.addEventListener("input",()=>{C({fadeIn:Number(Z.value)||0},!0,"fadeIn")}),Z.addEventListener("change",()=>{C({fadeIn:Number(Z.value)||0},!1,"fadeIn")}),ee.addEventListener("input",()=>{C({fadeOut:Number(ee.value)||0},!0,"fadeOut")}),ee.addEventListener("change",()=>{C({fadeOut:Number(ee.value)||0},!1,"fadeOut")}),Se(),{destroy(){O.disconnect(),G(),e.removeEventListener("me-video-inspector-open",Re),e.removeEventListener(zt,ce),Tr(e,l,!1),l.remove(),It(e)}}}function ca(e,t){wn();let n=!1;const o=typeof requestAnimationFrame=="function"?requestAnimationFrame:k=>setTimeout(k,16);function l(k){return!!k.closest(["[data-clipblock]","[data-audioclip]",".me-video-text-track-clip",".me-video-text-canvas-hit",".me-video-text-chip",".me-video-trim-action-btn",".me-video-transition-marker",".me-video-text-panel",".me-video-inspector-rail",".me-video-toolrail button",".me-video-timeline-zoom button","input","select","textarea","button","label"].join(","))}function s(){n||(n=!0,o(()=>{n=!1,S()}))}function m(){const k=new Set(_t(e,"video"));for(const $ of e.querySelectorAll("[data-clipblock]")){const K=Number($.getAttribute("data-clipblock"));$.classList.toggle("me-video-multi-selected",Number.isInteger(K)&&k.has(K))}}function x(k=1/0){const $=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!($ instanceof HTMLElement))return[];const K=[];for(const V of $.querySelectorAll("span")){if(!String(V.textContent??"").trim().startsWith("\u266A"))continue;const X=V.parentElement;!(X instanceof HTMLElement)||K.includes(X)||K.push(X)}return Number.isFinite(k)?K.slice(0,Math.max(0,k)):K}function h(){const k=t.getState().audioClips??[],$=new Set(_t(e,"audio")),K=x(),V=K.slice(0,k.length);K.slice(k.length).forEach(Z=>{Z instanceof HTMLElement&&(Z.removeAttribute("data-audioclip"),Z.classList.remove("me-video-multi-selected"),Z.style.removeProperty("background"),Z.style.removeProperty("border"),Z.style.removeProperty("box-shadow"),Z.style.removeProperty("color"),Z.style.removeProperty("transform"),Z.style.removeProperty("opacity"))}),V.forEach((Z,X)=>{Z.dataset.audioclip=String(X);const se=$.has(X),ee=[...Z.children].filter(he=>he instanceof HTMLElement),q=ee.length>1?1:0,Y=ee[q]??null,T=ee.filter((he,He)=>He!==q),D=[...Z.querySelectorAll("span")],W=se?"linear-gradient(180deg, rgba(34,197,94,0.96) 0%, rgba(21,128,61,0.94) 100%)":"linear-gradient(180deg, rgba(220,252,231,0.98) 0%, rgba(187,247,208,0.94) 100%)",J=se?"2px solid rgba(21,128,61,0.96)":"2px solid rgba(34,197,94,0.5)",ve="#166534";Z.classList.toggle("me-video-multi-selected",se),Z.style.boxShadow=se?"0 0 0 2px rgba(34,197,94,0.22), 0 8px 18px rgba(22,101,52,0.16)":"0 1px 6px rgba(22,101,52,0.08)",Z.style.background=W,Z.style.border=J,Z.style.color=ve,Z.style.transform=se?"translateY(-1px)":"none",Z.style.opacity=se?"1":"0.98",Y instanceof HTMLElement&&(Y.style.background=W,Y.style.border=J,Y.style.color=ve,Y.style.boxShadow=se?"0 0 0 1px rgba(21,128,61,0.14), 0 8px 18px rgba(22,101,52,0.14)":"0 1px 6px rgba(22,101,52,0.08)"),T.forEach(he=>{he.style.background=se?"rgba(21,128,61,0.92)":"rgba(34,197,94,0.72)",he.style.opacity="1"}),D.forEach((he,He)=>{he.style.color=He===0?ve:"rgba(22,101,52,0.9)",he.style.opacity="1"})})}function y(k,$,K,V){const Z=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")];if(Z.length<3)return;const X=k.clips??[],se=k.audioClips??[],ee=gn(e),q=$.length>0||K.length>0||V.length>0,Y=vi(X,$,ee)||xi(se,K,ee)||hi(k.overlays??[],V,ee),T=q,D=K.length>0||V.length>0||$.length>0&&$.length<X.length,W=[Y,T,D];Z.forEach((J,ve)=>{const he=W[ve];J.disabled=!he,J.style.opacity=he?"1":"0.5",ve===2?(J.style.color=he?"#dc2626":"var(--me-fg-muted, #9a9aa3)",J.style.background="",J.style.boxShadow=""):(J.style.color=he?"var(--me-fg, #ededf0)":"var(--me-fg-muted, #9a9aa3)",J.style.background="",J.style.boxShadow="")})}function S(){const k=t.getState();si(e,k);const $=Fn(e,k.clips??[]),K=Tn(e,k.audioClips??[]),V=$n(e,k);m(),h(),y(k,$,K,V)}function U(k){if(!(k.target instanceof Element))return;const $=k.target.closest("[data-clipblock]");if(!$||!e.contains($))return;const K=Number($.getAttribute("data-clipblock"));if(!Number.isInteger(K))return;const V=(t.getState().clips??[]).map((Z,X)=>X);if(k.shiftKey||k.ctrlKey||k.metaKey){k.preventDefault(),k.stopPropagation(),Pt(e,"video",K,k,V),s();return}gt(e,"video",[K]),s()}function w(k){if(!(k.target instanceof Element))return;const $=k.target.closest("[data-audioclip]");if(!$||!e.contains($))return;const K=Number($.getAttribute("data-audioclip"));if(!Number.isInteger(K))return;const V=(t.getState().audioClips??[]).map((Z,X)=>X);if(k.shiftKey||k.ctrlKey||k.metaKey){k.preventDefault(),k.stopPropagation(),Pt(e,"audio",K,k,V),s();return}gt(e,"audio",[K]),s()}function I(k){k.target instanceof Element&&e.contains(k.target)&&(l(k.target)||ai(e)&&(wo(e),s()))}function B(k){if(!(k.target instanceof Element))return;const $=k.target.closest("[data-clipblock]");if($&&e.contains($)&&(k.shiftKey||k.ctrlKey||k.metaKey)){k.preventDefault(),k.stopPropagation();return}const K=k.target.closest(".me-video-trim-actions .me-video-trim-action-btn");if(!K||!e.contains(K))return;const Z=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].indexOf(K);Z!==-1&&(k.preventDefault(),k.stopPropagation(),Z===0?yi(e,t):Z===1?bi(e,t):Z===2&&gi(e,t),s())}const ne=new MutationObserver(()=>{s()});ne.observe(e,{childList:!0,subtree:!0}),e.addEventListener("pointerdown",U,!0),e.addEventListener("pointerdown",w,!0),e.addEventListener("pointerdown",I,!0),e.addEventListener("click",B,!0),e.addEventListener(zt,s),window.addEventListener("resize",s);const Q=t.subscribe(()=>{s()});return S(),{destroy(){ne.disconnect(),Q(),e.removeEventListener("pointerdown",U,!0),e.removeEventListener("pointerdown",w,!0),e.removeEventListener("pointerdown",I,!0),e.removeEventListener("click",B,!0),e.removeEventListener(zt,s),window.removeEventListener("resize",s)}}}const so=[{key:"480p",label:"480P",shortEdge:480},{key:"720p",label:"720P",shortEdge:720},{key:"1080p",label:"1080P",shortEdge:1080},{key:"2k",label:"2K",shortEdge:1440},{key:"4k",label:"4K",shortEdge:2160},{key:"8k",label:"8K",shortEdge:4320},{key:"source",label:"\u539F\u59CB"},{key:"custom",label:"\u81EA\u5B9A\u4E49"}],da=[{key:"mov",label:"MOV",extension:"mov"},{key:"mp4",label:"MP4",extension:"mp4"},{key:"mxf",label:"MXF",extension:"mxf"}],ua=[24,25,30,50,60],ma=[{key:"aac",label:"AAC"},{key:"mp3",label:"MP3"}],pa=[96,128,192,256,320],Mr="me-video-export-enhancer-styles";function fa(){if(document.getElementById(Mr))return;const e=document.createElement("style");e.id=Mr,e.textContent=`
1864
+ .me-video-export-overlay {
1865
+ position: absolute;
1866
+ inset: 0;
1867
+ z-index: 130;
1868
+ display: flex;
1869
+ align-items: center;
1870
+ justify-content: center;
1871
+ padding: 24px;
1872
+ background: rgba(3, 3, 4, 0.66);
1873
+ backdrop-filter: blur(10px);
1874
+ }
1875
+ .me-video-export-overlay[hidden] {
1876
+ display: none !important;
1877
+ }
1878
+ .me-video-export-card {
1879
+ width: min(920px, 100%);
1880
+ max-height: min(760px, calc(100vh - 48px));
1881
+ display: flex;
1882
+ flex-direction: column;
1883
+ border-radius: 18px;
1884
+ border: 1px solid var(--me-border, #26262b);
1885
+ background: var(--me-surface, #141416);
1886
+ color: var(--me-fg, #ededf0);
1887
+ box-shadow: 0 28px 90px rgba(0, 0, 0, 0.36);
1888
+ overflow: hidden;
1889
+ }
1890
+ .me-video-export-head,
1891
+ .me-video-export-foot {
1892
+ display: flex;
1893
+ align-items: center;
1894
+ gap: 12px;
1895
+ padding: 16px 20px;
1896
+ border-bottom: 1px solid var(--me-border, #26262b);
1897
+ }
1898
+ .me-video-export-foot {
1899
+ border-top: 1px solid var(--me-border, #26262b);
1900
+ border-bottom: 0;
1901
+ justify-content: space-between;
1902
+ }
1903
+ .me-video-export-title {
1904
+ font-size: 16px;
1905
+ font-weight: 700;
1906
+ }
1907
+ .me-video-export-close {
1908
+ margin-left: auto;
1909
+ width: 34px;
1910
+ height: 34px;
1911
+ border: 1px solid var(--me-border, #26262b);
1912
+ border-radius: 999px;
1913
+ background: var(--me-chip, #1c1c20);
1914
+ color: var(--me-fg, #ededf0);
1915
+ cursor: pointer;
1916
+ font: inherit;
1917
+ }
1918
+ .me-video-export-body {
1919
+ display: grid;
1920
+ grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
1921
+ gap: 22px;
1922
+ padding: 22px 20px;
1923
+ overflow: auto;
1924
+ }
1925
+ .me-video-export-preview-column {
1926
+ display: flex;
1927
+ flex-direction: column;
1928
+ gap: 12px;
1929
+ }
1930
+ .me-video-export-preview-shell {
1931
+ position: relative;
1932
+ display: flex;
1933
+ align-items: center;
1934
+ justify-content: center;
1935
+ min-height: 420px;
1936
+ padding: 16px;
1937
+ border-radius: 16px;
1938
+ background:
1939
+ radial-gradient(circle at top, rgba(91, 91, 214, 0.18), transparent 52%),
1940
+ linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)),
1941
+ var(--me-chip, #1c1c20);
1942
+ border: 1px solid var(--me-border, #26262b);
1943
+ overflow: hidden;
1944
+ }
1945
+ .me-video-export-preview-shell img {
1946
+ max-width: 100%;
1947
+ max-height: 388px;
1948
+ border-radius: 14px;
1949
+ object-fit: contain;
1950
+ box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
1951
+ background: rgba(0, 0, 0, 0.16);
1952
+ }
1953
+ .me-video-export-preview-empty {
1954
+ font-size: 13px;
1955
+ color: var(--me-fg-muted, #9a9aa3);
1956
+ text-align: center;
1957
+ line-height: 1.6;
1958
+ }
1959
+ .me-video-export-preview-note {
1960
+ font-size: 12px;
1961
+ color: var(--me-fg-muted, #9a9aa3);
1962
+ line-height: 1.6;
1963
+ }
1964
+ .me-video-export-form {
1965
+ display: flex;
1966
+ flex-direction: column;
1967
+ gap: 18px;
1968
+ min-width: 0;
1969
+ }
1970
+ .me-video-export-field,
1971
+ .me-video-export-section {
1972
+ display: flex;
1973
+ flex-direction: column;
1974
+ gap: 8px;
1975
+ }
1976
+ .me-video-export-section {
1977
+ padding-top: 4px;
1978
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
1979
+ }
1980
+ .me-video-export-label,
1981
+ .me-video-export-section-title {
1982
+ font-size: 13px;
1983
+ font-weight: 600;
1984
+ color: var(--me-fg, #ededf0);
1985
+ }
1986
+ .me-video-export-input,
1987
+ .me-video-export-select,
1988
+ .me-video-export-static {
1989
+ width: 100%;
1990
+ min-height: 42px;
1991
+ padding: 10px 12px;
1992
+ border: 1px solid var(--me-border, #26262b);
1993
+ border-radius: 10px;
1994
+ background: var(--me-chip, #1c1c20);
1995
+ color: var(--me-fg, #ededf0);
1996
+ font: inherit;
1997
+ }
1998
+ .me-video-export-static {
1999
+ display: flex;
2000
+ align-items: center;
2001
+ color: var(--me-fg-muted, #9a9aa3);
2002
+ }
2003
+ .me-video-export-inline {
2004
+ display: grid;
2005
+ grid-template-columns: minmax(0, 1fr) 120px;
2006
+ gap: 10px;
2007
+ align-items: center;
2008
+ }
2009
+ .me-video-export-dimensions {
2010
+ display: grid;
2011
+ grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr);
2012
+ gap: 8px;
2013
+ align-items: center;
2014
+ }
2015
+ .me-video-export-dimensions span {
2016
+ text-align: center;
2017
+ color: var(--me-fg-muted, #9a9aa3);
2018
+ font-size: 13px;
2019
+ }
2020
+ .me-video-export-hint {
2021
+ font-size: 12px;
2022
+ color: var(--me-fg-muted, #9a9aa3);
2023
+ line-height: 1.55;
2024
+ }
2025
+ .me-video-export-custom-size {
2026
+ padding: 12px;
2027
+ border: 1px solid rgba(255, 255, 255, 0.08);
2028
+ border-radius: 12px;
2029
+ background: rgba(255, 255, 255, 0.02);
2030
+ }
2031
+ .me-video-export-custom-size[data-active="true"] {
2032
+ border-color: rgba(91, 91, 214, 0.55);
2033
+ box-shadow: inset 0 0 0 1px rgba(91, 91, 214, 0.18);
2034
+ }
2035
+ .me-video-export-summary {
2036
+ display: flex;
2037
+ align-items: center;
2038
+ gap: 10px;
2039
+ min-width: 0;
2040
+ color: var(--me-fg-muted, #9a9aa3);
2041
+ }
2042
+ .me-video-export-summary-icon {
2043
+ width: 18px;
2044
+ height: 18px;
2045
+ flex: 0 0 auto;
2046
+ border: 1px solid rgba(255, 255, 255, 0.16);
2047
+ border-radius: 4px;
2048
+ background:
2049
+ linear-gradient(
2050
+ 90deg,
2051
+ transparent 0,
2052
+ transparent 4px,
2053
+ rgba(255, 255, 255, 0.14) 4px,
2054
+ rgba(255, 255, 255, 0.14) 5px,
2055
+ transparent 5px,
2056
+ transparent 10px,
2057
+ rgba(255, 255, 255, 0.14) 10px,
2058
+ rgba(255, 255, 255, 0.14) 11px,
2059
+ transparent 11px
2060
+ ),
2061
+ linear-gradient(
2062
+ 180deg,
2063
+ transparent 0,
2064
+ transparent 5px,
2065
+ rgba(255, 255, 255, 0.14) 5px,
2066
+ rgba(255, 255, 255, 0.14) 6px,
2067
+ transparent 6px,
2068
+ transparent 11px,
2069
+ rgba(255, 255, 255, 0.14) 11px,
2070
+ rgba(255, 255, 255, 0.14) 12px,
2071
+ transparent 12px
2072
+ ),
2073
+ rgba(255, 255, 255, 0.03);
2074
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
2075
+ }
2076
+ .me-video-export-summary-value {
2077
+ font-size: 13px;
2078
+ line-height: 1.5;
2079
+ }
2080
+ .me-video-export-actions {
2081
+ display: flex;
2082
+ align-items: center;
2083
+ gap: 10px;
2084
+ flex-shrink: 0;
2085
+ }
2086
+ .me-video-export-btn {
2087
+ min-width: 104px;
2088
+ height: 40px;
2089
+ padding: 0 16px;
2090
+ border: 0;
2091
+ border-radius: 10px;
2092
+ font: inherit;
2093
+ font-weight: 600;
2094
+ cursor: pointer;
2095
+ }
2096
+ .me-video-export-btn-secondary {
2097
+ background: var(--me-chip, #1c1c20);
2098
+ color: var(--me-fg, #ededf0);
2099
+ border: 1px solid var(--me-border, #26262b);
2100
+ }
2101
+ .me-video-export-btn-primary {
2102
+ background: var(--me-accent, #5b5bd6);
2103
+ color: var(--me-accent-fg, #ffffff);
2104
+ }
2105
+ @media (max-width: 900px) {
2106
+ .me-video-export-body {
2107
+ grid-template-columns: 1fr;
2108
+ }
2109
+ .me-video-export-preview-shell {
2110
+ min-height: 280px;
2111
+ }
2112
+ .me-video-export-foot {
2113
+ flex-direction: column;
2114
+ align-items: stretch;
2115
+ }
2116
+ .me-video-export-actions {
2117
+ justify-content: flex-end;
2118
+ }
2119
+ }
2120
+ `,document.head.appendChild(e)}function Nr(e){return String(e??"").trim().replace(/\.[a-z0-9]+$/i,"")}function $o(e,t="video"){return String(e??"").replace(/[\\/:*?"<>|]+/g," ").replace(/\s+/g," ").trim()||t}function yn(e,t,n,o){const l=Math.round(Number(e));return Number.isFinite(l)?Math.min(n,Math.max(t,l)):o}function On(e,t){const n=yn(e,2,8192,t);return n%2===0?n:n-1}function Ar(e){return Do(e.canvas,e)}function Ba(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),o=Math.floor(t%3600/60),l=t%60;return n>0?`${n}:${String(o).padStart(2,"0")}:${String(l).padStart(2,"0")}`:`${o}:${String(l).padStart(2,"0")}`}function va(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),o=Math.floor(t%3600/60),l=t%60;return n>0?l>0?`${n} \u5C0F\u65F6 ${o} \u5206 ${l} \u79D2`:`${n} \u5C0F\u65F6 ${o} \u5206`:o>0?l>0?`${o} \u5206 ${l} \u79D2`:`${o} \u5206`:`${l} \u79D2`}function ha(e){const t=Math.max(0,Number(e)||0);return t>=1024*1024*1024?`${(t/(1024*1024*1024)).toFixed(2).replace(/\.?0+$/,"")} GB`:t>=1024*1024?`${(t/(1024*1024)).toFixed(t>=10*1024*1024?0:1).replace(/\.?0+$/,"")} MB`:t>=1024?`${Math.round(t/1024)} KB`:`${Math.round(t)} B`}function lo(e){return`${e.w}\xD7${e.h}`}function zn(e,t="mp4"){const n=String(e??"").toLowerCase();return n==="mov"||n==="mxf"||n==="mp4"?n:t}function xa(e,t="mp4"){const n=String(e??"").match(/\.([a-z0-9]+)$/i);return zn(n?.[1],t)}function ba(e,t,n,o){const l=co(e,t.key,n,o);return`${t.label} \xB7 ${lo(l)}`}function co(e,t,n,o){const l=Ar(e);if(t==="source")return l;if(t==="custom")return{w:On(n,l.w),h:On(o,l.h)};const s=so.find(h=>h.key===t);if(!s?.shortEdge)return l;const m=l.w>0&&l.h>0?l.w/l.h:1;if(l.w<=l.h){const h=On(s.shortEdge,l.w);return{w:h,h:On(h/m,l.h)}}const x=On(s.shortEdge,l.h);return{w:On(x*m,l.w),h:x}}function Bo(e,t){const n=Math.min(e.w,e.h);let o=2200;return n<=480?o=1400:n<=720?o=3200:n<=1080?o=6800:n<=1440?o=12e3:n<=2160?o=22e3:o=48e3,t>=50&&(o=Math.round(o*1.35)),o}function ga(e){const t=e.exportSettings;if(!t?.width||!t?.height)return"source";const n=Math.min(t.width,t.height);return so.find(l=>l.shortEdge&&Math.abs(l.shortEdge-n)<=6)?.key??"custom"}function ya(e,t,n){const o=String(t||n||"video.mp4"),l=zn(e.exportSettings?.format,xa(o,"mp4"));return`${$o(e.exportSettings?.fileName||Nr(o),"video")}.${l}`}function Or(e,t,n){return typeof e.onExported!="function"?e:{...e,onExported(o,l){e.onExported(o,ya(t.getState(),l,n()))}}}function wa(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:h=>setTimeout(h,16),o=[".me-video-preview-footer span"].join(",");function l(h){return String(h??"").replace(/(\d+:\d{2})\.\d+/g,"$1")}function s(){for(const h of e.querySelectorAll(o)){if(h instanceof HTMLElement&&h.childElementCount>0)continue;const y=String(h.textContent??"");if(!/^\s*\d+:\d{2}(?:\.\d+)?(?:\s*\/\s*\d+:\d{2}(?:\.\d+)?)?\s*$/.test(y))continue;if(h instanceof HTMLElement){const U=String(h.dataset.meRawTimeText||""),w=l(U);(!U||y!==w)&&(h.dataset.meRawTimeText=y)}const S=l(y);S!==h.textContent&&(h.textContent=S)}}function m(){t||(t=!0,n(()=>{t=!1,s()}))}const x=new MutationObserver(()=>{m()});return x.observe(e,{childList:!0,subtree:!0,characterData:!0}),m(),{destroy(){x.disconnect()}}}function ka(e){let t=!1,n=null;const o=new Set,l=typeof requestAnimationFrame=="function"?requestAnimationFrame:y=>setTimeout(y,16);function s(y){!n||!(y instanceof HTMLElement)||o.has(y)||(n.observe(y),o.add(y))}function m(){const y=e.querySelector(".me-video-workspace");y instanceof HTMLElement&&y.style.setProperty("padding","0","important");const S=e.querySelector(".me-video-preview-shell");if(!(S instanceof HTMLElement))return;const U=S.querySelector(".me-video-preview-scroll");if(!(U instanceof HTMLElement))return;const w=S.querySelector(".me-video-preview-footer"),I=U.querySelector(".me-video-canvas-stage"),B=w instanceof HTMLElement?Math.ceil(w.getBoundingClientRect().height):0,ne=Math.max(0,S.clientHeight-B);S.style.display="grid",S.style.gridTemplateRows=w instanceof HTMLElement?"minmax(0, 1fr) auto":"minmax(0, 1fr)",S.style.height="100%",S.style.minHeight="0",S.style.gap="0",S.style.overflow="hidden",S.style.boxSizing="border-box",U.style.alignSelf="stretch",U.style.justifySelf="stretch",U.style.flex="1 1 0",U.style.minHeight="0",U.style.maxHeight="none",U.style.height=ne>0?`${ne}px`:"100%",I instanceof HTMLElement&&(I.style.minHeight="100%",I.style.boxSizing="border-box"),s(S),s(U),s(w),s(I)}function x(){t||(t=!0,l(()=>{t=!1,m()}))}typeof ResizeObserver=="function"&&(n=new ResizeObserver(()=>{x()}));const h=new MutationObserver(()=>{x()});return h.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),window.addEventListener("resize",x),x(),{destroy(){h.disconnect(),n?.disconnect?.(),window.removeEventListener("resize",x)}}}function Ea(e,t){let l=!1,s=null;const m=typeof requestAnimationFrame=="function"?requestAnimationFrame:Y=>setTimeout(Y,16);function x(Y,T){return Number.isInteger(Y?.track)&&Y.track>=0?Y.track:T}function h(Y){const T=[...new Set((Y??[]).map(x))].sort((D,W)=>D-W);return T.length?T:[0]}function y(Y){const T=h(Y);return new Map(T.map((D,W)=>[D,W]))}function S(Y,T){const D=h(Y);return T<D.length?D[T]:Math.max(...D)+1}function U(Y,T,D=!1){const W=Math.max(0,Math.round(Number(T)||0)),ve=t.getState().audioClips??[],he=ve[Y];if(!he||x(he,Y)===W)return;const He=ve.map((ue,Ee)=>Ee===Y?{...ue,track:W}:ue);if(D){t.patch({audioClips:He},{transient:!0});return}t.commit({audioClips:He})}function w(){return e.querySelector(".me-video-timeline-scroll > div")}function I(Y){if(!(Y instanceof HTMLElement))return null;const T=[...Y.children].filter(W=>W instanceof HTMLElement),D=T.findIndex(W=>W.querySelector("[data-clipblock]"));return D===-1?null:T[D+1]instanceof HTMLElement?T[D+1]:null}function B(Y,T=1/0){if(!(Y instanceof HTMLElement))return[];const D=[...Y.children].filter(W=>W instanceof HTMLElement&&/♪/.test(W.textContent??"")&&!!W.querySelector("span"));return Number.isFinite(T)?D.slice(0,Math.max(0,T)):D}function ne(Y,T){if(!(Y instanceof HTMLElement)||!(T instanceof HTMLElement))return!1;let D=Y;for(;D&&D!==T;){if(`${D.style?.cursor||""} ${typeof window<"u"&&window.getComputedStyle?window.getComputedStyle(D).cursor:""}`.includes("ew-resize"))return!0;D=D.parentElement}return!1}function Q(Y,T,D){if(!(Y instanceof HTMLElement)||!Number.isFinite(D))return null;const W=Y.getBoundingClientRect(),J=32,he=h(T).length,He=Math.floor(Math.max(0,D-W.top)/J),ue=re(He,0,he);return S(T,ue)}function k(){const T=t.getState().audioClips??[],D=e.querySelector(".me-video-timeline-area"),W=e.querySelector(".me-video-timeline-scroll"),J=e.querySelector(".me-video-trim-panel"),ve=w(),he=I(ve);if(!(D instanceof HTMLElement)||!(W instanceof HTMLElement)||!(he instanceof HTMLElement))return;const He=y(T),ue=Math.max(1,He.size||T.length||1),Ee=32,We=ue>0?ue*28+Math.max(0,ue-1)*4:28;D.style.setProperty("max-height","none","important"),D.style.setProperty("overflow","visible","important"),W.style.setProperty("overflow-y","visible","important"),J instanceof HTMLElement&&J.style.setProperty("overflow","visible","important"),he.style.height=`${We}px`,he.style.minHeight=`${We}px`,he.style.overflow="visible";const Fe="color-mix(in srgb, var(--me-chip, #f1f1f3) 90%, var(--me-border, #d4d4d8) 10%)",R="color-mix(in srgb, var(--me-fg, #374151) 82%, var(--me-fg-muted, #6b7280) 18%)",C="transparent";he.style.background=ue>1?`repeating-linear-gradient(to bottom, ${Fe} 0px, ${Fe} 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) ${Ee}px)`:Fe,he.style.backgroundSize=`100% ${Ee}px`;const $e=B(he,T.length),Se=new Set($e),ce=T.length===0;he.style.color=ce?R:"",[...he.children].forEach(O=>{if(O instanceof HTMLElement&&!Se.has(O)){if(ce){O.style.background="transparent",O.style.border="none",O.style.boxShadow="none",O.style.borderColor=C,O.style.color=R,O.querySelectorAll("span, label, button, strong, small").forEach(G=>{G instanceof HTMLElement&&(G.style.color=R,G.style.background="transparent",G.style.border="none",G.style.borderColor=C,G.style.boxShadow="none")});return}O.style.removeProperty("background"),O.style.removeProperty("border"),O.style.removeProperty("box-shadow"),O.style.removeProperty("border-color"),O.style.removeProperty("color"),O.querySelectorAll("span, label, button, strong, small").forEach(G=>{G instanceof HTMLElement&&(G.style.removeProperty("color"),G.style.removeProperty("background"),G.style.removeProperty("border"),G.style.removeProperty("border-color"),G.style.removeProperty("box-shadow"))})}}),$e.forEach((O,G)=>{const H=T[G],_=x(H,G),le=He.get(_)??G;O.style.top=`${le*Ee+2}px`,O.style.bottom="auto",O.style.height="24px"});const Re=D.lastElementChild;if(Re instanceof HTMLElement){const G=Re.querySelectorAll("label")[1];G instanceof HTMLElement&&(G.style.height=`${We}px`,G.style.minHeight=`${We}px`,ce?(G.style.background=Fe,G.style.border="none",G.style.borderColor=C,G.style.boxShadow="none",G.style.color=R,G.querySelectorAll("span, strong, small").forEach(H=>{H instanceof HTMLElement&&(H.style.color=R,H.style.border="none")})):(G.style.removeProperty("background"),G.style.removeProperty("border"),G.style.removeProperty("border-color"),G.style.removeProperty("box-shadow"),G.style.removeProperty("color"),G.querySelectorAll("span, strong, small").forEach(H=>{H instanceof HTMLElement&&(H.style.removeProperty("color"),H.style.removeProperty("border"))})))}}function $(){l||(l=!0,m(()=>{l=!1,k()}))}function K(Y){if(Y.button!==0||!(Y.target instanceof Element))return;const T=Y.target.closest("[data-audioclip]");if(!(T instanceof HTMLElement)||!e.contains(T)||ne(Y.target,T))return;const D=Number(T.getAttribute("data-audioclip"));if(!Number.isInteger(D))return;const J=(t.getState().audioClips??[])[D];J&&(s={index:D,pointerId:Y.pointerId,startTrack:x(J,D),currentTrack:x(J,D)})}function V(Y){if(!s||Y.pointerId!==s.pointerId)return;const T=w(),D=I(T),W=t.getState().audioClips??[],J=Q(D,W,Y.clientY);!Number.isInteger(J)||J===s.currentTrack||(s.currentTrack=J,U(s.index,J,!0),$())}function Z(Y,T=!1){if(!s||Y!==s.pointerId)return;const D=s;if(s=null,T){D.currentTrack!==D.startTrack&&U(D.index,D.startTrack,!1);return}D.currentTrack!==D.startTrack&&(U(D.index,D.currentTrack,!1),$())}function X(Y){Z(Y.pointerId,!1)}function se(Y){Z(Y.pointerId,!0)}const ee=new MutationObserver(()=>{$()});ee.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),e.addEventListener(zt,$),e.addEventListener("pointerdown",K,!0),window.addEventListener("pointermove",V),window.addEventListener("pointerup",X),window.addEventListener("pointercancel",se),window.addEventListener("resize",$);const q=t.subscribe(()=>{$()});return $(),{destroy(){ee.disconnect(),q(),e.removeEventListener(zt,$),e.removeEventListener("pointerdown",K,!0),window.removeEventListener("resize",$),window.removeEventListener("pointermove",V),window.removeEventListener("pointerup",X),window.removeEventListener("pointercancel",se)}}}function Sa(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:x=>setTimeout(x,16);function o(){t||(t=!0,n(()=>{t=!1,s()}))}function l(x){return String(x?.style?.transform||"").includes("translateX(-50%)")}function s(){const x=e.querySelector(".me-video-timeline-scroll > div > div:first-child");if(x instanceof HTMLElement)for(const h of[...x.children]){if(!(h instanceof HTMLElement)||l(h))continue;const y=Eo(Un(h));Number.isFinite(y)&&Math.abs(y-Math.round(y))>.001?(h.dataset.meIntegerTickHidden="true",h.style.setProperty("display","none","important")):h.dataset.meIntegerTickHidden==="true"&&(h.style.removeProperty("display"),delete h.dataset.meIntegerTickHidden)}}const m=new MutationObserver(()=>{o()});return m.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener(zt,o),window.addEventListener("resize",o),o(),{destroy(){m.disconnect(),e.removeEventListener(zt,o),window.removeEventListener("resize",o)}}}let zr=!1;function La(){if(zr||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-trim-history-enhancer-style",e.textContent=`
2121
+ .me-video-history[data-trim-proxy-hidden="true"] {
2122
+ display: none !important;
2123
+ }
2124
+ .me-video-trim-history-proxy {
2125
+ display: flex;
2126
+ align-items: center;
2127
+ gap: 6px;
2128
+ flex: 0 0 auto;
2129
+ margin-right: 2px;
2130
+ }
2131
+ .me-video-trim-history-proxy-btn {
2132
+ flex: 0 0 auto;
2133
+ min-width: 30px;
2134
+ height: 30px;
2135
+ min-height: 30px;
2136
+ display: inline-flex;
2137
+ align-items: center;
2138
+ justify-content: center;
2139
+ gap: 6px;
2140
+ padding: 0 12px;
2141
+ border: 0;
2142
+ border-radius: 999px;
2143
+ background: transparent;
2144
+ color: var(--me-fg-muted, #9a9aa3);
2145
+ box-shadow: none;
2146
+ cursor: pointer;
2147
+ font: inherit;
2148
+ white-space: nowrap;
2149
+ }
2150
+ .me-video-trim-history-proxy-btn:hover {
2151
+ background: color-mix(in srgb, var(--me-fg, #ededf0) 10%, transparent);
2152
+ color: var(--me-fg, #ededf0);
2153
+ }
2154
+ .me-video-trim-history-proxy-btn[disabled] {
2155
+ opacity: 0.45;
2156
+ cursor: default;
2157
+ }
2158
+ .me-video-trim-history-proxy-btn svg,
2159
+ .me-video-trim-history-proxy-btn .me-video-history-icon {
2160
+ width: 16px;
2161
+ height: 16px;
2162
+ display: block;
2163
+ color: currentColor;
2164
+ fill: none;
2165
+ stroke: currentColor;
2166
+ stroke-width: 1.75;
2167
+ stroke-linecap: round;
2168
+ stroke-linejoin: round;
2169
+ }
2170
+ .me-video-trim-history-proxy-label {
2171
+ display: inline-block;
2172
+ font-size: 12px;
2173
+ line-height: 1;
2174
+ }
2175
+ @media (max-width: 760px) {
2176
+ .me-video-trim-history-proxy {
2177
+ gap: 4px;
2178
+ margin-right: 0;
2179
+ }
2180
+ .me-video-trim-history-proxy-btn {
2181
+ width: 30px;
2182
+ min-width: 30px;
2183
+ height: 30px;
2184
+ min-height: 30px;
2185
+ gap: 0;
2186
+ padding: 0;
2187
+ }
2188
+ .me-video-trim-history-proxy-label {
2189
+ display: none;
2190
+ }
2191
+ }
2192
+ `,document.head.appendChild(e),zr=!0}function Ta(e){La();let t=!1,n=null;const o=typeof requestAnimationFrame=="function"?requestAnimationFrame:w=>setTimeout(w,16);function l(){return e.querySelector(".me-video-topbar .me-video-history")}function s(){const w=l();return w instanceof HTMLElement?[...w.querySelectorAll("button")]:[]}function m(w){n instanceof HTMLElement||(n=document.createElement("div"),n.className="me-video-trim-history-proxy");const I=w.querySelector(".me-video-trim-action-btn");return n.parentElement!==w?w.insertBefore(n,I??w.firstChild):I&&n.nextElementSibling!==I&&w.insertBefore(n,I),n}function x(w,I){const B=String(w??"").trim();if(!B)return"";if(I===0){if(/\s/.test(B))return B.split(/\s+/)[0];if(B.length>2)return B.slice(0,2)}return B}function h(w,I,B){w.dataset.historyIndex=String(B);const ne=w.querySelector(".me-video-trim-history-proxy-icon"),Q=w.querySelector(".me-video-trim-history-proxy-label");ne instanceof HTMLElement&&ne.innerHTML!==I.innerHTML&&(ne.innerHTML=I.innerHTML),w.disabled=I.disabled,w.title=I.title||"";const k=I.getAttribute("aria-label"),$=(k||I.title||"").trim();Q instanceof HTMLElement&&(Q.textContent=x($,B)),k?w.setAttribute("aria-label",k):w.removeAttribute("aria-label")}function y(){const w=l(),I=e.querySelector(".me-video-trim-actions");if(!(w instanceof HTMLElement)||!(I instanceof HTMLElement)){w?.removeAttribute("data-trim-proxy-hidden"),n?.remove();return}const B=s();if(!B.length){w.removeAttribute("data-trim-proxy-hidden"),n?.remove();return}w.setAttribute("data-trim-proxy-hidden","true");const ne=m(I),Q=[];for(B.forEach((k,$)=>{let K=ne.children[$];if(!(K instanceof HTMLButtonElement)){K=document.createElement("button"),K.type="button",K.className="me-video-trim-history-proxy-btn";const V=document.createElement("span");V.className="me-video-trim-history-proxy-icon";const Z=document.createElement("span");Z.className="me-video-trim-history-proxy-label",K.append(V,Z),K.addEventListener("click",()=>{const X=s()[$];!X||X.disabled||(X.click(),S())}),ne.appendChild(K)}h(K,k,$),Q.push(K)});ne.children.length>Q.length;)ne.lastElementChild?.remove()}function S(){t||(t=!0,o(()=>{t=!1,y()}))}const U=new MutationObserver(()=>{S()});return U.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["disabled","style","class","hidden","title","aria-label"]}),window.addEventListener("resize",S),S(),{destroy(){U.disconnect(),window.removeEventListener("resize",S),l()?.removeAttribute("data-trim-proxy-hidden"),n?.remove()}}}function Ca(e,t,n){fa();const o=document.createElement("div");o.className="me-video-export-overlay",o.hidden=!0,o.innerHTML=`
2193
+ <div class="me-video-export-card" role="dialog" aria-modal="true" aria-label="\u5BFC\u51FA\u8BBE\u7F6E">
2194
+ <div class="me-video-export-head">
2195
+ <strong class="me-video-export-title">\u5BFC\u51FA\u8BBE\u7F6E</strong>
2196
+ <button type="button" class="me-video-export-close" aria-label="\u5173\u95ED">\xD7</button>
2197
+ </div>
2198
+ <div class="me-video-export-body">
2199
+ <div class="me-video-export-preview-column">
2200
+ <div class="me-video-export-preview-shell">
2201
+ <img alt="\u5BFC\u51FA\u9884\u89C8" hidden />
2202
+ <div class="me-video-export-preview-empty">\u5F53\u524D\u753B\u9762\u9884\u89C8\u4F1A\u663E\u793A\u5728\u8FD9\u91CC</div>
2203
+ </div>
2204
+ <div class="me-video-export-preview-note"></div>
2205
+ </div>
2206
+ <div class="me-video-export-form">
2207
+ <label class="me-video-export-field">
2208
+ <span class="me-video-export-label">\u6807\u9898</span>
2209
+ <input class="me-video-export-input" data-field="title" type="text" maxlength="120" />
2210
+ </label>
2211
+ <label class="me-video-export-field">
2212
+ <span class="me-video-export-label">\u5BFC\u51FA\u81F3</span>
2213
+ <div class="me-video-export-static">\u7CFB\u7EDF\u4FDD\u5B58\u5BF9\u8BDD\u6846\u6216\u6D4F\u89C8\u5668\u9ED8\u8BA4\u4E0B\u8F7D\u76EE\u5F55</div>
2214
+ </label>
2215
+ <section class="me-video-export-section">
2216
+ <div class="me-video-export-section-title">\u89C6\u9891\u5BFC\u51FA</div>
2217
+ <label class="me-video-export-field">
2218
+ <span class="me-video-export-label">\u5206\u8FA8\u7387</span>
2219
+ <select class="me-video-export-select" data-field="resolutionPreset"></select>
2220
+ </label>
2221
+ <label class="me-video-export-field">
2222
+ <span class="me-video-export-label">\u683C\u5F0F</span>
2223
+ <select class="me-video-export-select" data-field="format"></select>
2224
+ </label>
2225
+ <div class="me-video-export-field me-video-export-custom-size" data-custom-resolution>
2226
+ <span class="me-video-export-label">\u81EA\u5B9A\u4E49\u5927\u5C0F</span>
2227
+ <div class="me-video-export-dimensions">
2228
+ <input class="me-video-export-input" data-field="customWidth" type="number" min="2" step="2" />
2229
+ <span>\xD7</span>
2230
+ <input class="me-video-export-input" data-field="customHeight" type="number" min="2" step="2" />
2231
+ </div>
2232
+ <div class="me-video-export-hint" data-field="customResolutionHint"></div>
2233
+ </div>
2234
+ <label class="me-video-export-field">
2235
+ <span class="me-video-export-label">\u5E27\u7387</span>
2236
+ <select class="me-video-export-select" data-field="frameRate"></select>
2237
+ </label>
2238
+ <div class="me-video-export-field">
2239
+ <span class="me-video-export-label">\u89C6\u9891\u7801\u7387</span>
2240
+ <div class="me-video-export-inline">
2241
+ <select class="me-video-export-select" data-field="bitrateMode">
2242
+ <option value="auto">\u81EA\u52A8</option>
2243
+ <option value="custom">\u81EA\u5B9A\u4E49</option>
2244
+ </select>
2245
+ <input class="me-video-export-input" data-field="videoBitrateKbps" type="number" min="100" max="50000" step="100" />
2246
+ </div>
2247
+ <div class="me-video-export-hint" data-field="videoBitrateHint"></div>
2248
+ </div>
2249
+ </section>
2250
+ <section class="me-video-export-section">
2251
+ <div class="me-video-export-section-title">\u97F3\u9891\u8BBE\u7F6E</div>
2252
+ <label class="me-video-export-field">
2253
+ <span class="me-video-export-label">\u7F16\u7801</span>
2254
+ <select class="me-video-export-select" data-field="audioCodec"></select>
2255
+ </label>
2256
+ <label class="me-video-export-field">
2257
+ <span class="me-video-export-label">\u6BD4\u7279\u7387</span>
2258
+ <select class="me-video-export-select" data-field="audioBitrateKbps"></select>
2259
+ </label>
2260
+ </section>
2261
+ </div>
2262
+ </div>
2263
+ <div class="me-video-export-foot">
2264
+ <div class="me-video-export-summary">
2265
+ <span class="me-video-export-summary-value"></span>
2266
+ </div>
2267
+ <div class="me-video-export-actions">
2268
+ <button type="button" class="me-video-export-btn me-video-export-btn-secondary" data-action="cancel">\u53D6\u6D88</button>
2269
+ <button type="button" class="me-video-export-btn me-video-export-btn-primary" data-action="confirm">\u5BFC\u51FA</button>
2270
+ </div>
2271
+ </div>
2272
+ </div>
2273
+ `,e.appendChild(o);const l=o.querySelector(".me-video-export-close"),s=o.querySelector('[data-action="cancel"]'),m=o.querySelector('[data-action="confirm"]'),x=o.querySelector("img"),h=o.querySelector(".me-video-export-preview-empty"),y=o.querySelector(".me-video-export-preview-note"),S=o.querySelector(".me-video-export-summary-value"),U=o.querySelector("[data-custom-resolution]"),w=o.querySelector('[data-field="title"]'),I=o.querySelector('[data-field="resolutionPreset"]'),B=o.querySelector('[data-field="customWidth"]'),ne=o.querySelector('[data-field="customHeight"]'),Q=o.querySelector('[data-field="customResolutionHint"]'),k=o.querySelector('[data-field="format"]'),$=o.querySelector('[data-field="frameRate"]'),K=o.querySelector('[data-field="bitrateMode"]'),V=o.querySelector('[data-field="videoBitrateKbps"]'),Z=o.querySelector('[data-field="videoBitrateHint"]'),X=o.querySelector('[data-field="audioCodec"]'),se=o.querySelector('[data-field="audioBitrateKbps"]'),ee=new Map;for(const R of so){const C=document.createElement("option");C.value=R.key,C.textContent=R.label,I.appendChild(C),ee.set(R.key,C)}for(const R of da){const C=document.createElement("option");C.value=R.key,C.textContent=R.label,k.appendChild(C)}for(const R of ua){const C=document.createElement("option");C.value=String(R),C.textContent=`${R} FPS`,$.appendChild(C)}for(const R of ma){const C=document.createElement("option");C.value=R.key,C.textContent=R.label,X.appendChild(C)}for(const R of pa){const C=document.createElement("option");C.value=String(R),C.textContent=`${R} kbps`,se.appendChild(C)}let q=null,Y=!1;function T(){const R=e.querySelector(".me-video-canvas-stage canvas, .me-video-preview-scroll canvas");if(!(R instanceof HTMLCanvasElement))return"";try{return R.toDataURL("image/png")}catch{return""}}function D(){const R=T();if(R){x.src=R,x.hidden=!1,h.hidden=!0;return}x.hidden=!0,h.hidden=!1}function W(){const R=t.getState(),C=Ar(R),$e=ga(R),Se=co(R,$e,R.exportSettings?.width??C.w,R.exportSettings?.height??C.h),ce=yn(R.exportSettings?.frameRate,12,120,30),Re=Bo(Se,ce);return{title:$o(R.exportSettings?.fileName||Nr(n()),"video"),resolutionPreset:$e,customWidth:R.exportSettings?.width??C.w,customHeight:R.exportSettings?.height??C.h,format:zn(R.exportSettings?.format,"mp4"),frameRate:ce,bitrateMode:R.exportSettings?.videoBitrateKbps!=null?"custom":"auto",videoBitrateKbps:R.exportSettings?.videoBitrateKbps??Re,audioCodec:R.exportSettings?.audioCodec??"aac",audioBitrateKbps:R.exportSettings?.audioBitrateKbps??192}}function J(){const R=t.getState(),C=yn(q.frameRate,12,120,30),$e=co(R,q.resolutionPreset,q.customWidth,q.customHeight),Se=Bo($e,C);return{fileName:$o(q.title,"video"),width:q.resolutionPreset==="source"?void 0:$e.w,height:q.resolutionPreset==="source"?void 0:$e.h,format:zn(q.format,"mp4"),frameRate:C,videoBitrateKbps:q.bitrateMode==="custom"?yn(q.videoBitrateKbps,100,5e4,Se):void 0,audioBitrateKbps:yn(q.audioBitrateKbps,32,320,192),audioCodec:q.audioCodec==="mp3"?"mp3":"aac"}}function ve(){if(!q)return;const R=t.getState(),C=co(R,q.resolutionPreset,q.customWidth,q.customHeight),$e=Bo(C,q.frameRate),Se=q.bitrateMode==="custom"?yn(q.videoBitrateKbps,100,5e4,$e):$e,ce=yn(q.audioBitrateKbps,32,320,192),Re=Math.max(0,Number(t.contentDuration())||0),O=Re>0?(Se+ce)*1e3*Re/8:0;for(const G of so){const H=ee.get(G.key);H&&(H.textContent=ba(R,G,q.customWidth,q.customHeight))}w.value=q.title,I.value=q.resolutionPreset,B.value=String(q.customWidth),ne.value=String(q.customHeight),k.value=zn(q.format,"mp4"),$.value=String(q.frameRate),K.value=q.bitrateMode,V.value=String(Se),V.disabled=q.bitrateMode!=="custom",X.value=q.audioCodec,se.value=String(ce),U.dataset.active=q.resolutionPreset==="custom"?"true":"false",Q.textContent=q.resolutionPreset==="custom"?`\u5F53\u524D\u6309\u81EA\u5B9A\u4E49\u5927\u5C0F\u5BFC\u51FA\uFF1A${lo(C)}`:`\u4FEE\u6539\u5BBD\u9AD8\u4F1A\u81EA\u52A8\u5207\u6362\u4E3A\u81EA\u5B9A\u4E49\u5927\u5C0F\uFF0C\u5F53\u524D\u9884\u8BBE\u8F93\u51FA\uFF1A${lo(C)}`,Z.textContent=q.bitrateMode==="custom"?`\u5EFA\u8BAE\u503C ${$e} kbps`:`\u81EA\u52A8\u7801\u7387\u5C06\u6309 ${$e} kbps \u4F30\u7B97`,y.textContent=`\u8F93\u51FA\u5C3A\u5BF8 ${lo(C)} \xB7 ${q.frameRate} FPS \xB7 ${zn(q.format,"mp4").toUpperCase()} \xB7 \u97F3\u9891 ${ce} kbps`,S.textContent=`\u65F6\u957F: ${va(Re)} | \u5927\u5C0F: ${ha(O)}\uFF08\u4F30\u8BA1\uFF09`,D()}function he(){q=W(),o.hidden=!1,ve()}function He(){o.hidden=!0,q=null}function ue(){!q||!(e.querySelector(".me-video-done")instanceof HTMLButtonElement)||(t.commit({exportSettings:J()}),Y=!0,He(),requestAnimationFrame(()=>{const C=e.querySelector(".me-video-done");C instanceof HTMLButtonElement&&C.click()}))}function Ee(R){if(!(R.target instanceof Element))return;const C=R.target.closest(".me-video-done");if(!(!C||!e.contains(C))&&!(!(C instanceof HTMLButtonElement)||C.disabled)){if(Y){Y=!1;return}R.preventDefault(),R.stopPropagation(),he()}}function We(R){R.key==="Escape"&&!o.hidden&&(R.preventDefault(),He())}function Fe(R,C){q&&(q={...q,[R]:C},ve())}return l.addEventListener("click",He),s.addEventListener("click",He),m.addEventListener("click",ue),o.addEventListener("click",R=>{R.target===o&&He()}),w.addEventListener("input",()=>Fe("title",w.value)),I.addEventListener("change",()=>Fe("resolutionPreset",I.value)),k.addEventListener("change",()=>Fe("format",k.value)),B.addEventListener("input",()=>{q&&(q={...q,resolutionPreset:"custom",customWidth:B.value},ve())}),ne.addEventListener("input",()=>{q&&(q={...q,resolutionPreset:"custom",customHeight:ne.value},ve())}),$.addEventListener("change",()=>Fe("frameRate",$.value)),K.addEventListener("change",()=>Fe("bitrateMode",K.value)),V.addEventListener("input",()=>Fe("videoBitrateKbps",V.value)),X.addEventListener("change",()=>Fe("audioCodec",X.value)),se.addEventListener("change",()=>Fe("audioBitrateKbps",se.value)),e.addEventListener("click",Ee,!0),window.addEventListener("keydown",We),{destroy(){e.removeEventListener("click",Ee,!0),window.removeEventListener("keydown",We),o.remove()}}}function Pr(e,t={}){const n=t.height??"100vh",o=()=>{document.fullscreenElement!==e&&e.style.setProperty("--me-editor-shell-height",n)};return o(),requestAnimationFrame(o),window.addEventListener("resize",o),document.addEventListener("fullscreenchange",o),()=>{window.removeEventListener("resize",o),document.removeEventListener("fullscreenchange",o)}}function Ma(e,t={}){const{append:n=!0,backButton:o="\u8FD4\u56DE",className:l="editor-shell",fitToViewport:s=!0,height:m="auto",hostClassName:x="editor-host",actionsClassName:h="editor-actions",onBack:y}=t,S=document.createElement("div");S.className=l,m!=="auto"&&(S.style.height=m);const U=document.createElement("div");U.className=h;let w=null;o!==!1&&(o instanceof HTMLElement?w=o:(w=document.createElement("button"),w.type="button",w.className="btn btn-ghost",w.textContent=typeof o=="string"?o:"\u8FD4\u56DE"),w&&typeof y=="function"&&w.addEventListener("click",y),w&&U.appendChild(w));const I=document.createElement("div");I.className=x,S.append(U,I),n!==!1&&e.appendChild(S);const B=s?Pr(S):()=>{};return{shell:S,actions:U,host:I,backButton:w,destroy(){B(),w&&typeof y=="function"&&w.removeEventListener("click",y),S.remove()}}}function Na(e,t={}){e.style.position||(e.style.position="relative");const n=document.createElement("div");n.style.cssText="position:relative;width:100%;height:100%;min-height:0;overflow:hidden",e.appendChild(n);const o=document.createElement("div");o.style.cssText="width:100%;height:100%;min-height:0",n.appendChild(o);const l=t.engine??new _r,s=()=>{const ee=m.source;return ee&&typeof ee=="object"&&"name"in ee&&typeof ee.name=="string"?ee.name:"video.mp4"};let m={...t,engine:l},x=Fr(o,Or(m,l,s));const h=ea(n,l,()=>m.theme,()=>m.locale),y=ra(n,l,()=>m.theme,()=>m.locale),S=na(n,l,()=>m.locale),U=oa(n,l,()=>m.theme,()=>m.locale),w=ta(n,l,()=>m.locale),I=aa(n,l,()=>m.theme,()=>m.locale),B=ia(n,l,()=>m.locale),ne=sa(n,l,()=>m.locale),Q=la(n,l,()=>m.locale),k=ca(n,l),$=Ta(n),K=ka(n),V=wa(n),Z=Ea(n,l),X=Sa(n),se=Ca(n,l,s);return{update(ee={}){m={...m,...ee,engine:l},x.update(Or(m,l,s))},destroy(){se.destroy(),Z.destroy(),V.destroy(),K.destroy(),$.destroy(),X.destroy(),k.destroy(),Q.destroy(),ne.destroy(),B.destroy(),I.destroy(),w.destroy(),U.destroy(),S.destroy(),y.destroy(),h.destroy(),x.destroy(),n.remove()}}}export{ja as VideoEditorEngine,Ma as createVideoEditorShell,Pr as fitVideoEditorShellToViewport,Na as mountVideoEditor};