@codingfactory/mediables-vue 2.8.0 → 2.9.1

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 (53) hide show
  1. package/dist/PixiFrameExporter-DGTn9-uZ.cjs +2 -0
  2. package/dist/{PixiFrameExporter-CqKXaoCX.cjs.map → PixiFrameExporter-DGTn9-uZ.cjs.map} +1 -1
  3. package/dist/{PixiFrameExporter-BcywK0MP.js → PixiFrameExporter-qCsqARff.js} +60 -59
  4. package/dist/{PixiFrameExporter-BcywK0MP.js.map → PixiFrameExporter-qCsqARff.js.map} +1 -1
  5. package/dist/components/video/ui-v2/AssetRail.vue.d.ts +2 -0
  6. package/dist/components/video/ui-v2/AssetRailItem.vue.d.ts +7 -0
  7. package/dist/components/video/ui-v2/AudioMixerPanel.vue.d.ts +33 -0
  8. package/dist/components/video/ui-v2/CaptionSrtPanel.vue.d.ts +9 -0
  9. package/dist/components/video/ui-v2/DesktopInspectorSections.vue.d.ts +21 -0
  10. package/dist/components/video/ui-v2/DraftRecoveryBanner.vue.d.ts +12 -0
  11. package/dist/components/video/ui-v2/KeyframePresetPanel.vue.d.ts +26 -0
  12. package/dist/components/video/ui-v2/MobileClipSummary.vue.d.ts +4 -0
  13. package/dist/components/video/ui-v2/MobileToolPicker.vue.d.ts +3 -0
  14. package/dist/components/video/ui-v2/SplitPanelLayout.vue.d.ts +9 -5
  15. package/dist/components/video/ui-v2/TimelineTrackHeader.vue.d.ts +2 -0
  16. package/dist/composables/useClientVideoExport.d.ts +27 -0
  17. package/dist/composables/useLiveStream.d.ts +2 -2
  18. package/dist/composables/useRadialMenu.d.ts +1 -1
  19. package/dist/composables/useVideoEditor.d.ts +119 -7
  20. package/dist/composables/useVideoFilters.d.ts +4 -4
  21. package/dist/index-B8iY-eYF.js +33011 -0
  22. package/dist/index-B8iY-eYF.js.map +1 -0
  23. package/dist/index-EmUdY4EL.cjs +350 -0
  24. package/dist/index-EmUdY4EL.cjs.map +1 -0
  25. package/dist/mediables-vue.cjs +1 -1
  26. package/dist/mediables-vue.mjs +1 -1
  27. package/dist/render-page/assets/{index-y90zwXpc.js → index-jZGmiMRr.js} +991 -151
  28. package/dist/render-page/index.html +1 -1
  29. package/dist/services/VideoJobClient.d.ts +1 -1
  30. package/dist/style.css +1 -1
  31. package/dist/types/api.d.ts +14 -0
  32. package/dist/types/video.d.ts +164 -5
  33. package/dist/video/project/audioMixerSchema.d.ts +152 -0
  34. package/dist/video/project/captionSrt.d.ts +23 -0
  35. package/dist/video/project/draftRecovery.d.ts +86 -0
  36. package/dist/video/project/exportPresets.d.ts +172 -0
  37. package/dist/video/project/index.d.ts +22 -0
  38. package/dist/video/project/keyframeAutomation.d.ts +91 -0
  39. package/dist/video/project/mediaSourceAnalysis.d.ts +127 -0
  40. package/dist/video/project/mediaSourceCache.d.ts +47 -0
  41. package/dist/video/project/recipeMigration.d.ts +26 -0
  42. package/dist/video/project/timelineSelection.d.ts +23 -0
  43. package/dist/video/project/timelineTransactions.d.ts +129 -0
  44. package/dist/video/project/visualLayerSchema.d.ts +238 -0
  45. package/dist/video-engine/adapters/AudioManager.d.ts +9 -0
  46. package/dist/video-engine/adapters/MediablesCompositionAdapter.d.ts +3 -0
  47. package/dist/video-engine/adapters/TextOverlayManager.d.ts +4 -2
  48. package/package.json +1 -1
  49. package/dist/PixiFrameExporter-CqKXaoCX.cjs +0 -2
  50. package/dist/index-DNo3Kr1t.cjs +0 -342
  51. package/dist/index-DNo3Kr1t.cjs.map +0 -1
  52. package/dist/index-DpkdpuMs.js +0 -29327
  53. package/dist/index-DpkdpuMs.js.map +0 -1
@@ -1,14 +1,18 @@
1
- declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_9: {};
1
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {
2
+ isMobile: any;
3
+ }, __VLS_9: {}, __VLS_11: {};
2
4
  type __VLS_Slots = {} & {
3
5
  toolbar?: (props: typeof __VLS_1) => any;
4
6
  } & {
5
- canvas?: (props: typeof __VLS_3) => any;
7
+ assets?: (props: typeof __VLS_3) => any;
6
8
  } & {
7
- timeline?: (props: typeof __VLS_5) => any;
9
+ canvas?: (props: typeof __VLS_5) => any;
8
10
  } & {
9
- inspector?: (props: typeof __VLS_7) => any;
11
+ timeline?: (props: typeof __VLS_7) => any;
10
12
  } & {
11
- drawer?: (props: typeof __VLS_9) => any;
13
+ inspector?: (props: typeof __VLS_9) => any;
14
+ } & {
15
+ drawer?: (props: typeof __VLS_11) => any;
12
16
  };
13
17
  declare const __VLS_component: import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, string, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>;
14
18
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, string, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>;
2
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import { type Ref } from 'vue';
2
+ import type { VideoRecipe, WebGLExportPayload } from '../types/video';
3
+ export interface ClientVideoExportSettings {
4
+ quality?: string;
5
+ format?: string;
6
+ }
7
+ export interface ClientVideoExportPreview {
8
+ captureFrameAt?: (timeSeconds: number) => Promise<HTMLCanvasElement | null>;
9
+ ensureReadyForCapture?: () => Promise<boolean>;
10
+ duration?: number | {
11
+ value?: unknown;
12
+ };
13
+ }
14
+ export interface UseClientVideoExportOptions {
15
+ forcePixiPreview: Ref<boolean>;
16
+ getPreviewRef: () => ClientVideoExportPreview | null;
17
+ getSourceUrl: () => string;
18
+ setPlaying: (playing: boolean) => void;
19
+ }
20
+ export interface UseClientVideoExportReturn {
21
+ canExportClientSide: () => Promise<boolean>;
22
+ renderRecipeWithPixi: (recipe: VideoRecipe, settings?: ClientVideoExportSettings, onProgress?: (percent: number) => void) => Promise<WebGLExportPayload>;
23
+ cancelClientExport: () => void;
24
+ resetClientExport: () => void;
25
+ }
26
+ export declare function resolveClientExportDuration(recipe: VideoRecipe, fallbackDuration?: number): number;
27
+ export declare function useClientVideoExport(options: UseClientVideoExportOptions): UseClientVideoExportReturn;
@@ -22,7 +22,7 @@ export declare function useLiveStream(mediaUuid?: string): {
22
22
  auto_record: boolean;
23
23
  low_latency: boolean;
24
24
  vod_media_uuid?: string | undefined;
25
- metadata?: Record<string, any> | undefined;
25
+ metadata?: Record<string, unknown> | undefined;
26
26
  } | null, LiveStream | {
27
27
  id: string;
28
28
  media_uuid: string;
@@ -37,7 +37,7 @@ export declare function useLiveStream(mediaUuid?: string): {
37
37
  auto_record: boolean;
38
38
  low_latency: boolean;
39
39
  vod_media_uuid?: string | undefined;
40
- metadata?: Record<string, any> | undefined;
40
+ metadata?: Record<string, unknown> | undefined;
41
41
  } | null>;
42
42
  lowLatency: import("vue").Ref<boolean, boolean>;
43
43
  autoRecord: import("vue").Ref<boolean, boolean>;
@@ -40,7 +40,7 @@ export declare function useRadialMenu(): {
40
40
  }>;
41
41
  activeCategory: import("vue").ComputedRef<number | null>;
42
42
  activeFilter: import("vue").ComputedRef<string | null>;
43
- menuLevel: import("vue").ComputedRef<1 | 2 | 3>;
43
+ menuLevel: import("vue").ComputedRef<1 | 3 | 2>;
44
44
  hoveredCategory: import("vue").Ref<number | null, number | null>;
45
45
  filterCategories: FilterCategory[];
46
46
  subMenuFilters: import("vue").ComputedRef<Filter[]>;
@@ -3,14 +3,16 @@
3
3
  *
4
4
  * Core logic for video editing operations
5
5
  */
6
- import type { VideoRecipe, VideoMedia, AppliedFilter, TextOverlayRecipe, AudioTrackRecipe } from '../types/video';
6
+ import type { VideoRecipe, TimelineClip, VideoMedia, AppliedFilter, TextOverlayRecipe, AudioTrackRecipe, TimelineTransitionRecipe, CaptionTrackRecipe, VisualLayerRecipe } from '../types/video';
7
7
  import { MediablesCompositionAdapter } from '../video-engine/adapters/MediablesCompositionAdapter';
8
8
  export declare function useVideoEditor(mediaUuid: string, initialRecipe?: VideoRecipe, initialMedia?: VideoMedia): {
9
- currentFrame: import("vue").Ref<any, any>;
9
+ currentFrame: import("vue").Ref<unknown, unknown>;
10
10
  playheadPosition: import("vue").ComputedRef<number>;
11
11
  timelineClips: import("vue").ComputedRef<{
12
12
  id: string;
13
- type: "clip" | "video";
13
+ type: import("@/types").TimelineClipKind;
14
+ trackId?: string | undefined;
15
+ sourceRefId?: string | undefined;
14
16
  timelineStart: number;
15
17
  timelineEnd: number;
16
18
  startTime?: number | undefined;
@@ -24,12 +26,38 @@ export declare function useVideoEditor(mediaUuid: string, initialRecipe?: VideoR
24
26
  filters?: {
25
27
  id: string;
26
28
  filterId: string;
27
- params: Record<string, any>;
29
+ params: import("@/types").FilterParamMap;
28
30
  intensity: number;
29
31
  ffmpegCommand?: string | undefined;
30
32
  }[] | undefined;
31
33
  thumbnail?: string | undefined;
32
34
  label?: string | undefined;
35
+ waveformSamples?: readonly {
36
+ index: number;
37
+ time: number;
38
+ duration: number;
39
+ endTime: number;
40
+ peak: number;
41
+ rms: number;
42
+ channel: import("../video/project").WaveformChannel;
43
+ }[] | undefined;
44
+ filmstripFrames?: readonly {
45
+ id: string;
46
+ time: number;
47
+ duration: number | null;
48
+ uri: string;
49
+ width: number;
50
+ height: number;
51
+ aspectRatio: number;
52
+ cacheKey: string | null;
53
+ }[] | undefined;
54
+ keyframes?: readonly {
55
+ id: string;
56
+ target: "opacity" | "scale" | "x" | "y" | "rotation" | "audioVolume";
57
+ time: number;
58
+ value: number;
59
+ easing: import("../video/project").KeyframeAutomationEasing;
60
+ }[] | undefined;
33
61
  url?: string | undefined;
34
62
  muted?: boolean | undefined;
35
63
  scale?: number | undefined;
@@ -42,12 +70,56 @@ export declare function useVideoEditor(mediaUuid: string, initialRecipe?: VideoR
42
70
  scale?: number | undefined;
43
71
  } | undefined;
44
72
  }[]>;
73
+ tracks: import("vue").ComputedRef<{
74
+ id: string;
75
+ type: import("@/types").TimelineTrackType;
76
+ name: string;
77
+ order: number;
78
+ locked?: boolean | undefined;
79
+ hidden?: boolean | undefined;
80
+ muted?: boolean | undefined;
81
+ solo?: boolean | undefined;
82
+ height?: number | undefined;
83
+ clipIds?: string[] | undefined;
84
+ }[]>;
85
+ mediaSources: import("vue").ComputedRef<{
86
+ id: string;
87
+ type: import("@/types").TimelineClipSourceType;
88
+ mediaUuid?: string | undefined;
89
+ url?: string | undefined;
90
+ filename?: string | undefined;
91
+ mimeType?: string | undefined;
92
+ duration?: number | undefined;
93
+ width?: number | undefined;
94
+ height?: number | undefined;
95
+ frameRate?: number | undefined;
96
+ hasAudio?: boolean | undefined;
97
+ thumbnailUrl?: string | undefined;
98
+ isPrivate?: boolean | undefined;
99
+ metadata?: import("@/types").JsonObject | undefined;
100
+ }[]>;
101
+ transitions: import("vue").ComputedRef<{
102
+ id: string;
103
+ type: import("@/types").TimelineTransitionType;
104
+ fromClipId: string;
105
+ toClipId: string;
106
+ duration: number;
107
+ easing: import("@/types").TimelineTransitionEasing;
108
+ cutTime?: number | undefined;
109
+ params?: {
110
+ direction?: "left" | "right" | "up" | "down" | undefined;
111
+ color?: string | undefined;
112
+ softness?: number | undefined;
113
+ } | undefined;
114
+ }[]>;
45
115
  totalDuration: import("vue").ComputedRef<number>;
46
116
  hasChanges: import("vue").ComputedRef<boolean>;
47
117
  isPlaying: import("vue").ComputedRef<boolean>;
48
118
  selectedClip: import("vue").ComputedRef<{
49
119
  id: string;
50
- type: "clip" | "video";
120
+ type: import("@/types").TimelineClipKind;
121
+ trackId?: string | undefined;
122
+ sourceRefId?: string | undefined;
51
123
  timelineStart: number;
52
124
  timelineEnd: number;
53
125
  startTime?: number | undefined;
@@ -61,12 +133,38 @@ export declare function useVideoEditor(mediaUuid: string, initialRecipe?: VideoR
61
133
  filters?: {
62
134
  id: string;
63
135
  filterId: string;
64
- params: Record<string, any>;
136
+ params: import("@/types").FilterParamMap;
65
137
  intensity: number;
66
138
  ffmpegCommand?: string | undefined;
67
139
  }[] | undefined;
68
140
  thumbnail?: string | undefined;
69
141
  label?: string | undefined;
142
+ waveformSamples?: readonly {
143
+ index: number;
144
+ time: number;
145
+ duration: number;
146
+ endTime: number;
147
+ peak: number;
148
+ rms: number;
149
+ channel: import("../video/project").WaveformChannel;
150
+ }[] | undefined;
151
+ filmstripFrames?: readonly {
152
+ id: string;
153
+ time: number;
154
+ duration: number | null;
155
+ uri: string;
156
+ width: number;
157
+ height: number;
158
+ aspectRatio: number;
159
+ cacheKey: string | null;
160
+ }[] | undefined;
161
+ keyframes?: readonly {
162
+ id: string;
163
+ target: "opacity" | "scale" | "x" | "y" | "rotation" | "audioVolume";
164
+ time: number;
165
+ value: number;
166
+ easing: import("../video/project").KeyframeAutomationEasing;
167
+ }[] | undefined;
70
168
  url?: string | undefined;
71
169
  muted?: boolean | undefined;
72
170
  scale?: number | undefined;
@@ -90,10 +188,24 @@ export declare function useVideoEditor(mediaUuid: string, initialRecipe?: VideoR
90
188
  handleClipSelect: (clipId: string | null) => void;
91
189
  splitAtPlayhead: () => void;
92
190
  deleteSelectedClip: () => void;
191
+ rippleDeleteClip: (clipId: string) => boolean;
192
+ rippleDeleteSelectedClip: () => boolean;
93
193
  duplicateSelectedClip: () => void;
194
+ appendMediaSourceToTimeline: (sourceId: string) => TimelineClip | null;
195
+ replaceSelectedClipSource: (sourceId: string) => boolean;
196
+ removeMediaSource: (sourceId: string) => boolean;
197
+ toggleTrackLock: (trackId: string) => boolean;
198
+ toggleTrackHidden: (trackId: string) => boolean;
199
+ toggleTrackMuted: (trackId: string) => boolean;
200
+ toggleTrackSolo: (trackId: string) => boolean;
94
201
  setFilters: (filters: AppliedFilter[]) => void;
95
202
  setTextOverlays: (overlays: TextOverlayRecipe[]) => void;
96
203
  setAudioTracks: (tracks: AudioTrackRecipe[]) => void;
204
+ setCaptionTracks: (tracks: CaptionTrackRecipe[]) => void;
205
+ setVisualLayers: (layers: VisualLayerRecipe[]) => void;
206
+ setTransitions: (transitions: TimelineTransitionRecipe[]) => void;
207
+ setClipKeyframes: (clipId: string, keyframes: NonNullable<TimelineClip["keyframes"]>) => void;
208
+ loadRecipe: (recipe: VideoRecipe) => void;
97
209
  moveClip: (clipId: string, newStart: number) => void;
98
210
  saveDraft: () => VideoRecipe;
99
211
  clearHasChanges: () => void;
@@ -118,7 +230,7 @@ export declare function useVideoEditor(mediaUuid: string, initialRecipe?: VideoR
118
230
  canRedo: import("vue").ComputedRef<boolean>;
119
231
  initializeComposition: (width?: number, height?: number) => Promise<void>;
120
232
  syncCompositionWithState: () => Promise<void>;
121
- syncWithComposition: (_composition: any) => void;
233
+ syncWithComposition: (_composition: unknown) => void;
122
234
  convertToFrames: (seconds: number) => number;
123
235
  convertToSeconds: (frames: number) => number;
124
236
  seekToFrame: (frame: number) => void;
@@ -53,13 +53,13 @@ export declare function useVideoFilters(): {
53
53
  activeFilters: import("vue").Ref<{
54
54
  id: string;
55
55
  filterId: string;
56
- params: Record<string, any>;
56
+ params: import("@/types").FilterParamMap;
57
57
  intensity: number;
58
58
  ffmpegCommand?: string | undefined;
59
59
  }[], AppliedFilter[] | {
60
60
  id: string;
61
61
  filterId: string;
62
- params: Record<string, any>;
62
+ params: import("@/types").FilterParamMap;
63
63
  intensity: number;
64
64
  ffmpegCommand?: string | undefined;
65
65
  }[]>;
@@ -147,13 +147,13 @@ export declare function useVideoFilters(): {
147
147
  previewFilter: import("vue").Ref<{
148
148
  id: string;
149
149
  filterId: string;
150
- params: Record<string, any>;
150
+ params: import("@/types").FilterParamMap;
151
151
  intensity: number;
152
152
  ffmpegCommand?: string | undefined;
153
153
  } | null, AppliedFilter | {
154
154
  id: string;
155
155
  filterId: string;
156
- params: Record<string, any>;
156
+ params: import("@/types").FilterParamMap;
157
157
  intensity: number;
158
158
  ffmpegCommand?: string | undefined;
159
159
  } | null>;