@clipkit/editor-core 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.
- package/LICENSE +201 -0
- package/README.md +20 -0
- package/dist/asset-store.d.ts +40 -0
- package/dist/asset-store.d.ts.map +1 -0
- package/dist/asset-store.js +181 -0
- package/dist/asset-store.js.map +1 -0
- package/dist/context.d.ts +17 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +23 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/node-graph.d.ts +42 -0
- package/dist/node-graph.d.ts.map +1 -0
- package/dist/node-graph.js +123 -0
- package/dist/node-graph.js.map +1 -0
- package/dist/registry/build.d.ts +3 -0
- package/dist/registry/build.d.ts.map +1 -0
- package/dist/registry/build.js +84 -0
- package/dist/registry/build.js.map +1 -0
- package/dist/registry/configuration.d.ts +51 -0
- package/dist/registry/configuration.d.ts.map +1 -0
- package/dist/registry/configuration.js +92 -0
- package/dist/registry/configuration.js.map +1 -0
- package/dist/registry/derive.d.ts +30 -0
- package/dist/registry/derive.d.ts.map +1 -0
- package/dist/registry/derive.js +212 -0
- package/dist/registry/derive.js.map +1 -0
- package/dist/registry/overrides.d.ts +7 -0
- package/dist/registry/overrides.d.ts.map +1 -0
- package/dist/registry/overrides.js +322 -0
- package/dist/registry/overrides.js.map +1 -0
- package/dist/registry/types.d.ts +58 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +7 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/source-diff.d.ts +8 -0
- package/dist/source-diff.d.ts.map +1 -0
- package/dist/source-diff.js +148 -0
- package/dist/source-diff.js.map +1 -0
- package/dist/stage-utils.d.ts +170 -0
- package/dist/stage-utils.d.ts.map +1 -0
- package/dist/stage-utils.js +476 -0
- package/dist/stage-utils.js.map +1 -0
- package/dist/store.d.ts +123 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +234 -0
- package/dist/store.js.map +1 -0
- package/dist/timeline-utils.d.ts +69 -0
- package/dist/timeline-utils.d.ts.map +1 -0
- package/dist/timeline-utils.js +211 -0
- package/dist/timeline-utils.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/useEditor.d.ts +77 -0
- package/dist/useEditor.d.ts.map +1 -0
- package/dist/useEditor.js +74 -0
- package/dist/useEditor.js.map +1 -0
- package/dist/useEditorStore.d.ts +3 -0
- package/dist/useEditorStore.d.ts.map +1 -0
- package/dist/useEditorStore.js +15 -0
- package/dist/useEditorStore.js.map +1 -0
- package/dist/usePlaybackSession.d.ts +20 -0
- package/dist/usePlaybackSession.d.ts.map +1 -0
- package/dist/usePlaybackSession.js +120 -0
- package/dist/usePlaybackSession.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/registry/derive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CompositeSpec, FieldOverride } from './types.js';
|
|
2
|
+
/** Overrides applied to the shared BaseElement fields on EVERY element scope. */
|
|
3
|
+
export declare const BASE_FIELD_OVERRIDES: Record<string, FieldOverride>;
|
|
4
|
+
/** Per-scope field overrides ('source', element types, 'effects.<type>', 'animation'). */
|
|
5
|
+
export declare const FIELD_OVERRIDES: Record<string, Record<string, FieldOverride>>;
|
|
6
|
+
export declare const COMPOSITES: Record<string, CompositeSpec[]>;
|
|
7
|
+
//# sourceMappingURL=overrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/registry/overrides.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAwB9D,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CA0IzE,CAAC;AA2BF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAwHtD,CAAC"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
// The override layer (EDITORS-PLAN D2 layer 2) — sparse, hand-ruled
|
|
2
|
+
// presentation on top of the derived defaults. Two shapes:
|
|
3
|
+
//
|
|
4
|
+
// FIELD_OVERRIDES[scope][path] — merge presentation into one knob
|
|
5
|
+
// COMPOSITES[scope][] — one widget claiming several fields
|
|
6
|
+
//
|
|
7
|
+
// Precedence: composite claim > field override > derived default.
|
|
8
|
+
// Keep this file SMALL — every entry is a design decision. Derived
|
|
9
|
+
// defaults are correct-but-plain; entries land here when a knob earns
|
|
10
|
+
// better treatment (and the registry probe's triage list is the
|
|
11
|
+
// worklist).
|
|
12
|
+
/** Overrides applied to the shared BaseElement fields on EVERY element scope. */
|
|
13
|
+
export const BASE_FIELD_OVERRIDES = {
|
|
14
|
+
visible: { order: 9 }, // top of appearance, right above opacity
|
|
15
|
+
// Opacity is a 0..1 fraction (CSS convention), shown like `scale` as a
|
|
16
|
+
// plain number — NOT the `percent` control (that one is value-as-percent,
|
|
17
|
+
// shared with volume, and defaults unauthored fields to 100).
|
|
18
|
+
opacity: { control: 'number', min: 0, max: 1, step: 0.01, order: 10 },
|
|
19
|
+
rotation: { control: 'angle', step: 1, order: 30 },
|
|
20
|
+
// CKP/1.0 3D: x/y rotation sit beside the 2D Rotate composite; z (depth)
|
|
21
|
+
// is below them. z_rotation is the alias of rotation (claimed by the
|
|
22
|
+
// Rotate composite), so it isn't surfaced separately.
|
|
23
|
+
x_rotation: { control: 'angle', label: 'X rotation', section: 'transform', step: 1, order: 31 },
|
|
24
|
+
y_rotation: { control: 'angle', label: 'Y rotation', section: 'transform', step: 1, order: 32 },
|
|
25
|
+
scale: { control: 'number', min: 0, step: 0.01, order: 40 },
|
|
26
|
+
x_scale: { control: 'number', min: 0, step: 0.01, order: 41 },
|
|
27
|
+
y_scale: { control: 'number', min: 0, step: 0.01, order: 42 },
|
|
28
|
+
width: { order: 20 },
|
|
29
|
+
height: { order: 21 },
|
|
30
|
+
blend_mode: { label: 'Blending', order: 11 },
|
|
31
|
+
// §4.8 PBR material — surfaces respond to scene lights/environment.
|
|
32
|
+
// Its own section so the four dials read as a unit.
|
|
33
|
+
material: { control: 'material', label: 'Material', section: 'material', order: 0 },
|
|
34
|
+
z: { control: 'number', label: 'Depth (z)', section: 'transform', step: 1, order: 33 },
|
|
35
|
+
effects: { control: 'effects-stack', order: 0 },
|
|
36
|
+
animations: { control: 'animations-stack', order: 0 },
|
|
37
|
+
};
|
|
38
|
+
/** Per-scope field overrides ('source', element types, 'effects.<type>', 'animation'). */
|
|
39
|
+
export const FIELD_OVERRIDES = {
|
|
40
|
+
source: {
|
|
41
|
+
width: { order: 1 },
|
|
42
|
+
height: { order: 2 },
|
|
43
|
+
duration: { order: 3 },
|
|
44
|
+
// min 1: the schema requires positive(); an unclamped scrub could
|
|
45
|
+
// write 0 and freeze playback (1/0 cadence poisoning the engine).
|
|
46
|
+
frame_rate: { label: 'Frame rate', order: 4, min: 1, max: 120, step: 1 },
|
|
47
|
+
background_color: { order: 5 },
|
|
48
|
+
// CKP/1.0 nested-object scene controls (custom widgets in the shell).
|
|
49
|
+
camera: { control: 'camera', label: 'Camera', order: 6 },
|
|
50
|
+
motion_blur: { control: 'motion-blur', label: 'Motion blur', order: 7 },
|
|
51
|
+
// §4.8 scene lighting — what reflective materials respond to / mirror.
|
|
52
|
+
lights: { control: 'lights', label: 'Lights', order: 8 },
|
|
53
|
+
environment: { control: 'environment', label: 'Environment', order: 9 },
|
|
54
|
+
bloom: { control: 'bloom', label: 'Bloom', order: 10 },
|
|
55
|
+
},
|
|
56
|
+
video: {
|
|
57
|
+
volume: { control: 'percent', min: 0, max: 200, step: 1, section: 'audio' },
|
|
58
|
+
audio_fade_in: { section: 'audio', label: 'Fade in', min: 0, step: 0.1 },
|
|
59
|
+
audio_fade_out: { section: 'audio', label: 'Fade out', min: 0, step: 0.1 },
|
|
60
|
+
// Figma-layout pass: Speed lives in the Time block as a percent
|
|
61
|
+
// (media elements ONLY — a generic speed knob would imply hidden
|
|
62
|
+
// time_remap derivation, ruled out).
|
|
63
|
+
playback_rate: { control: 'speed', label: 'Speed', section: 'timing', order: 10, min: 0.05, max: 8, step: 0.05 },
|
|
64
|
+
trim_start: { section: 'media', min: 0, step: 0.01 },
|
|
65
|
+
trim_duration: { section: 'media', min: 0, step: 0.01 },
|
|
66
|
+
loop: { section: 'media' },
|
|
67
|
+
fit: { section: 'media' },
|
|
68
|
+
},
|
|
69
|
+
audio: {
|
|
70
|
+
volume: { control: 'percent', min: 0, max: 200, step: 1, section: 'audio' },
|
|
71
|
+
audio_fade_in: { section: 'audio', label: 'Fade in', min: 0, step: 0.1 },
|
|
72
|
+
audio_fade_out: { section: 'audio', label: 'Fade out', min: 0, step: 0.1 },
|
|
73
|
+
trim_start: { section: 'media', min: 0, step: 0.01 },
|
|
74
|
+
trim_duration: { section: 'media', min: 0, step: 0.01 },
|
|
75
|
+
loop: { section: 'media' },
|
|
76
|
+
},
|
|
77
|
+
'effects.glass': {
|
|
78
|
+
refraction: { min: 0, max: 60, step: 1 },
|
|
79
|
+
blur_radius: { min: 0, max: 80, step: 1 },
|
|
80
|
+
edge_width: { min: 0, max: 120, step: 1 },
|
|
81
|
+
},
|
|
82
|
+
text: {
|
|
83
|
+
text: { section: 'content', order: 0, control: 'textarea' },
|
|
84
|
+
font_family: { section: 'typography', order: 0, label: 'Font' },
|
|
85
|
+
font_size: { section: 'typography', order: 1, label: 'Size' },
|
|
86
|
+
font_weight: { section: 'typography', order: 2, label: 'Weight' },
|
|
87
|
+
font_style: { section: 'typography', order: 3, label: 'Style' },
|
|
88
|
+
line_height: { section: 'typography', order: 4, step: 0.05 },
|
|
89
|
+
letter_spacing: { section: 'typography', order: 5, step: 0.5 },
|
|
90
|
+
text_transform: { section: 'typography', order: 6, label: 'Transform' },
|
|
91
|
+
fill_color: { section: 'typography', order: 7, label: 'Fill' },
|
|
92
|
+
stroke_color: { section: 'typography', order: 8, label: 'Stroke' },
|
|
93
|
+
stroke_width: { section: 'typography', order: 9, min: 0, step: 0.5 },
|
|
94
|
+
text_align: { section: 'layout', order: 0, label: 'Align' },
|
|
95
|
+
vertical_align: { section: 'layout', order: 1, label: 'V align' },
|
|
96
|
+
x_alignment: { section: 'layout', order: 2 },
|
|
97
|
+
y_alignment: { section: 'layout', order: 3 },
|
|
98
|
+
x_padding: { section: 'layout', order: 4 },
|
|
99
|
+
y_padding: { section: 'layout', order: 5 },
|
|
100
|
+
text_wrap: { section: 'layout', order: 6, label: 'Wrap' },
|
|
101
|
+
font_size_minimum: { section: 'layout', order: 7, label: 'Auto min' },
|
|
102
|
+
font_size_maximum: { section: 'layout', order: 8, label: 'Auto max' },
|
|
103
|
+
// background_color / _border_radius / _padding are claimed by the
|
|
104
|
+
// 'background' composite (COMPOSITES.text) — one grouped widget.
|
|
105
|
+
text_shadow: { section: 'decoration', order: 3, label: 'Text shadow', control: 'box-shadow' },
|
|
106
|
+
spans: { section: 'content', order: 4, control: 'text-spans', label: 'Spans' },
|
|
107
|
+
mask: { section: 'decoration', order: 6, control: 'text-mask', label: 'Reveal mask' },
|
|
108
|
+
},
|
|
109
|
+
shape: {
|
|
110
|
+
// Primitive form (rectangle/ellipse) + path presets (triangle/star/line/…).
|
|
111
|
+
shape: { section: 'shape', order: 0, control: 'shape-preset', label: 'Shape' },
|
|
112
|
+
// fill/stroke color + radius/width are keyframe-able (the runtime resolves
|
|
113
|
+
// them through keyframe_animations); the schema types stay scalar.
|
|
114
|
+
fill_color: { section: 'shape', order: 1, label: 'Fill', animatable: true },
|
|
115
|
+
gradient: { section: 'shape', order: 2, control: 'gradient' },
|
|
116
|
+
stroke_color: { section: 'shape', order: 3, label: 'Stroke', animatable: true },
|
|
117
|
+
stroke_width: { section: 'shape', order: 4, min: 0, step: 0.5, animatable: true },
|
|
118
|
+
border_radius: { section: 'shape', order: 5, label: 'Radius', min: 0, animatable: true },
|
|
119
|
+
shadow: { section: 'shape', order: 6, control: 'box-shadow' },
|
|
120
|
+
// Path form (arbitrary vector geometry — the former `svg` element).
|
|
121
|
+
paths: { section: 'path', order: 0 },
|
|
122
|
+
view_box: { section: 'path', order: 1, label: 'View box' },
|
|
123
|
+
gradients: { section: 'path', order: 2 },
|
|
124
|
+
},
|
|
125
|
+
image: {
|
|
126
|
+
source: { section: 'media', order: 0 },
|
|
127
|
+
fit: { section: 'media', order: 1 },
|
|
128
|
+
border_radius: { section: 'media', order: 2, label: 'Radius', min: 0 },
|
|
129
|
+
},
|
|
130
|
+
caption: {
|
|
131
|
+
words: { section: 'content', order: 0, control: 'caption-words' },
|
|
132
|
+
style: { section: 'content', order: 1 },
|
|
133
|
+
// Windowing: max letters shown on screen at once.
|
|
134
|
+
max_length: { section: 'content', order: 2, control: 'caption-length', label: 'Letters' },
|
|
135
|
+
highlight_color: { section: 'typography', order: 10, label: 'Highlight' },
|
|
136
|
+
highlight_background_color: { section: 'typography', order: 11, label: 'Highlight bg' },
|
|
137
|
+
font_family: { section: 'typography', order: 0, label: 'Font' },
|
|
138
|
+
font_size: { section: 'typography', order: 1, label: 'Size' },
|
|
139
|
+
font_weight: { section: 'typography', order: 2, label: 'Weight' },
|
|
140
|
+
font_style: { section: 'typography', order: 3, label: 'Style' },
|
|
141
|
+
line_height: { section: 'typography', order: 4, step: 0.05 },
|
|
142
|
+
letter_spacing: { section: 'typography', order: 5, step: 0.5 },
|
|
143
|
+
fill_color: { section: 'typography', order: 7, label: 'Fill' },
|
|
144
|
+
stroke_color: { section: 'typography', order: 8, label: 'Stroke' },
|
|
145
|
+
stroke_width: { section: 'typography', order: 9, min: 0, step: 0.5 },
|
|
146
|
+
text_align: { section: 'layout', order: 0, label: 'Align' },
|
|
147
|
+
// Background trio claimed by the 'background' composite (COMPOSITES.caption).
|
|
148
|
+
text_shadow: { section: 'decoration', order: 3, label: 'Text shadow', control: 'box-shadow' },
|
|
149
|
+
},
|
|
150
|
+
particles: {
|
|
151
|
+
rate: { section: 'emission', order: 0, min: 1 },
|
|
152
|
+
burst: { section: 'emission', order: 1 },
|
|
153
|
+
burst_count: { section: 'emission', order: 2, min: 1, max: 2000, step: 1 },
|
|
154
|
+
lifetime: { section: 'emission', order: 3, min: 0.05, step: 0.05 },
|
|
155
|
+
velocity: { section: 'emission', order: 4, min: 0 },
|
|
156
|
+
spread: { section: 'emission', order: 5, min: 0, max: 360 },
|
|
157
|
+
direction: { section: 'emission', order: 6 },
|
|
158
|
+
gravity: { section: 'emission', order: 7 },
|
|
159
|
+
z_velocity: { section: 'emission', order: 8, label: 'Z velocity' },
|
|
160
|
+
z_spread: { section: 'emission', order: 9, label: 'Z spread', min: 0 },
|
|
161
|
+
color: { section: 'look', order: 0 },
|
|
162
|
+
particle_shape: { section: 'look', order: 1, label: 'Shape' },
|
|
163
|
+
size: { section: 'look', order: 2, min: 1 },
|
|
164
|
+
size_variation: { section: 'look', order: 3, min: 0, max: 1, step: 0.05 },
|
|
165
|
+
rotation_speed: { section: 'look', order: 4, label: 'Spin' },
|
|
166
|
+
fade_at: { section: 'look', order: 5, min: 0, max: 1, step: 0.05 },
|
|
167
|
+
target_points: { section: 'convergence', order: 0 },
|
|
168
|
+
convergence_easing: { section: 'convergence', order: 1, label: 'Easing' },
|
|
169
|
+
scatter_radius: { section: 'convergence', order: 2, min: 0 },
|
|
170
|
+
},
|
|
171
|
+
group: {
|
|
172
|
+
clip: { section: 'group', order: 0 },
|
|
173
|
+
mask: { section: 'group', order: 1 },
|
|
174
|
+
elements: { section: 'group', order: 2 },
|
|
175
|
+
time_remap: { section: 'timing', order: 10, label: 'Time remap' },
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
/** Composite widgets. The control kinds are registered by the shells. */
|
|
179
|
+
// Color grade — a fly-out widget over the base filter fields. Scoped to the
|
|
180
|
+
// pixel-producing element types (image, video, group, particles); text/shape
|
|
181
|
+
// use their own fill as the primary color, so they don't get it.
|
|
182
|
+
const COLOR_COMPOSITE = {
|
|
183
|
+
id: 'color',
|
|
184
|
+
control: 'color-grade',
|
|
185
|
+
label: 'Color',
|
|
186
|
+
section: 'color',
|
|
187
|
+
order: 0,
|
|
188
|
+
claims: ['brightness', 'contrast', 'saturation', 'hue_rotate'],
|
|
189
|
+
};
|
|
190
|
+
// Source crop — a fly-out frame editor (like the color picker) over the four
|
|
191
|
+
// normalized crop_* fields. Self-managed (reads the selected element + patches
|
|
192
|
+
// it directly). Image + video only — the elements with a source texture.
|
|
193
|
+
const CROP_COMPOSITE = {
|
|
194
|
+
id: 'crop',
|
|
195
|
+
control: 'crop',
|
|
196
|
+
label: 'Crop',
|
|
197
|
+
section: 'media',
|
|
198
|
+
order: 3,
|
|
199
|
+
claims: ['crop_x', 'crop_y', 'crop_width', 'crop_height'],
|
|
200
|
+
};
|
|
201
|
+
export const COMPOSITES = {
|
|
202
|
+
// Applied to every element scope (merged in build.ts).
|
|
203
|
+
__element__: [
|
|
204
|
+
{
|
|
205
|
+
id: 'position',
|
|
206
|
+
control: 'vec2',
|
|
207
|
+
label: 'Position',
|
|
208
|
+
section: 'transform',
|
|
209
|
+
order: 0,
|
|
210
|
+
claims: ['x', 'y'],
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
// Figma-layout pass (ruled by Ian 2026-06-11): one Time block —
|
|
214
|
+
// Length with steppers + In & Out — over the literal
|
|
215
|
+
// time/duration fields.
|
|
216
|
+
id: 'time-range',
|
|
217
|
+
control: 'time-range',
|
|
218
|
+
label: 'Time',
|
|
219
|
+
section: 'timing',
|
|
220
|
+
order: 0,
|
|
221
|
+
claims: ['time', 'duration'],
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
// W/H with an aspect lock (the lock is editor state, lens rule).
|
|
225
|
+
id: 'size',
|
|
226
|
+
control: 'size',
|
|
227
|
+
label: 'Size',
|
|
228
|
+
section: 'transform',
|
|
229
|
+
order: 20,
|
|
230
|
+
claims: ['width', 'height'],
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
// Rotation + quick actions (rotate 90°, flip H/V — the flips
|
|
234
|
+
// write negated x_scale/y_scale, plain literal fields).
|
|
235
|
+
id: 'rotate',
|
|
236
|
+
control: 'rotate',
|
|
237
|
+
label: 'Rotate',
|
|
238
|
+
section: 'transform',
|
|
239
|
+
order: 30,
|
|
240
|
+
// z_rotation is the same slot as rotation (alias) — claim both so
|
|
241
|
+
// the alias isn't surfaced as a duplicate field.
|
|
242
|
+
claims: ['rotation', 'z_rotation'],
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
// Sits directly under Size (ruled by Ian 2026-06-11).
|
|
246
|
+
id: 'anchor-alignment',
|
|
247
|
+
control: 'anchor-grid',
|
|
248
|
+
label: 'Anchor',
|
|
249
|
+
section: 'transform',
|
|
250
|
+
order: 25,
|
|
251
|
+
claims: ['x_anchor', 'y_anchor'],
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
// Audio-carrying elements get the rotary volume block (number well +
|
|
255
|
+
// knob + live meters — Ian's reference HTML; M/S stay in the mixer
|
|
256
|
+
// rail, they're preview-only) and the one-row Fade In/Out pair.
|
|
257
|
+
video: [
|
|
258
|
+
{
|
|
259
|
+
id: 'volume',
|
|
260
|
+
control: 'volume',
|
|
261
|
+
label: 'Volume',
|
|
262
|
+
section: 'audio',
|
|
263
|
+
order: 0,
|
|
264
|
+
claims: ['volume'],
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
id: 'fades',
|
|
268
|
+
control: 'fades',
|
|
269
|
+
label: 'Fade',
|
|
270
|
+
section: 'audio',
|
|
271
|
+
order: 1,
|
|
272
|
+
claims: ['audio_fade_in', 'audio_fade_out'],
|
|
273
|
+
},
|
|
274
|
+
CROP_COMPOSITE,
|
|
275
|
+
COLOR_COMPOSITE,
|
|
276
|
+
],
|
|
277
|
+
image: [CROP_COMPOSITE, COLOR_COMPOSITE],
|
|
278
|
+
group: [COLOR_COMPOSITE],
|
|
279
|
+
particles: [COLOR_COMPOSITE],
|
|
280
|
+
audio: [
|
|
281
|
+
{
|
|
282
|
+
id: 'volume',
|
|
283
|
+
control: 'volume',
|
|
284
|
+
label: 'Volume',
|
|
285
|
+
section: 'audio',
|
|
286
|
+
order: 0,
|
|
287
|
+
claims: ['volume'],
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
id: 'fades',
|
|
291
|
+
control: 'fades',
|
|
292
|
+
label: 'Fade',
|
|
293
|
+
section: 'audio',
|
|
294
|
+
order: 1,
|
|
295
|
+
claims: ['audio_fade_in', 'audio_fade_out'],
|
|
296
|
+
},
|
|
297
|
+
],
|
|
298
|
+
// One "Background" widget (add → color · radius · padding) instead of
|
|
299
|
+
// three long-labelled rows; also gives `background_padding` (a
|
|
300
|
+
// number | [x,y] union) a real input instead of the union fallback.
|
|
301
|
+
text: [
|
|
302
|
+
{
|
|
303
|
+
id: 'background',
|
|
304
|
+
control: 'text-background',
|
|
305
|
+
label: 'Background',
|
|
306
|
+
section: 'decoration',
|
|
307
|
+
order: 0,
|
|
308
|
+
claims: ['background_color', 'background_border_radius', 'background_padding'],
|
|
309
|
+
},
|
|
310
|
+
],
|
|
311
|
+
caption: [
|
|
312
|
+
{
|
|
313
|
+
id: 'background',
|
|
314
|
+
control: 'text-background',
|
|
315
|
+
label: 'Background',
|
|
316
|
+
section: 'decoration',
|
|
317
|
+
order: 0,
|
|
318
|
+
claims: ['background_color', 'background_border_radius', 'background_padding'],
|
|
319
|
+
},
|
|
320
|
+
],
|
|
321
|
+
};
|
|
322
|
+
//# sourceMappingURL=overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/registry/overrides.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,2DAA2D;AAC3D,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,sEAAsE;AACtE,gEAAgE;AAChE,aAAa;AAIb,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAAkC;IACjE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,yCAAyC;IAChE,uEAAuE;IACvE,0EAA0E;IAC1E,8DAA8D;IAC9D,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACrE,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAClD,yEAAyE;IACzE,qEAAqE;IACrE,sDAAsD;IACtD,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/F,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/F,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3D,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7D,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7D,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACpB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACrB,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5C,oEAAoE;IACpE,oDAAoD;IACpD,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;IACnF,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACtF,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE;IAC/C,UAAU,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE;CACtD,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,eAAe,GAAkD;IAC5E,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QACnB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QACpB,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QACtB,kEAAkE;QAClE,kEAAkE;QAClE,UAAU,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;QACxE,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAC9B,sEAAsE;QACtE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;QACxD,WAAW,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;QACvE,uEAAuE;QACvE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;QACxD,WAAW,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;QACvE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;KACvD;IACD,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;QAC3E,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QACxE,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QAC1E,gEAAgE;QAChE,iEAAiE;QACjE,qCAAqC;QACrC,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAChH,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QACpD,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QACvD,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QAC1B,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;KAC1B;IACD,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;QAC3E,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QACxE,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QAC1E,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QACpD,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QACvD,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;KAC3B;IACD,eAAe,EAAE;QACf,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACxC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACzC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;KAC1C;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;QAC3D,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QAC/D,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QAC7D,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;QACjE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;QAC/D,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAC5D,cAAc,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QAC9D,cAAc,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;QACvE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QAC9D,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;QAClE,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QACpE,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;QAC3D,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;QACjE,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;QAC5C,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;QAC5C,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;QAC1C,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;QAC1C,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QACzD,iBAAiB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QACrE,iBAAiB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QACrE,kEAAkE;QAClE,iEAAiE;QACjE,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE;QAC7F,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;QAC9E,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE;KACtF;IACD,KAAK,EAAE;QACL,4EAA4E;QAC5E,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;QAC9E,2EAA2E;QAC3E,mEAAmE;QACnE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;QAC3E,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;QAC7D,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;QAC/E,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;QACjF,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;QACxF,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE;QAC7D,oEAAoE;QACpE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;QACpC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QAC1D,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;KACzC;IACD,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QACtC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QACnC,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;KACvE;IACD,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE;QACjE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;QACvC,kDAAkD;QAClD,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;QACzF,eAAe,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;QACzE,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;QACvF,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QAC/D,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QAC7D,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;QACjE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;QAC/D,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAC5D,cAAc,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QAC9D,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QAC9D,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;QAClE,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QACpE,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;QAC3D,8EAA8E;QAC9E,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE;KAC9F;IACD,SAAS,EAAE;QACT,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;QAC/C,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;QACxC,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;QAC1E,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAClE,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;QACnD,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;QAC3D,SAAS,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;QAC5C,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;QAC1C,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;QAClE,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE;QACtE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;QACpC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;QAC7D,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;QAC3C,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QACzE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QAC5D,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAClE,aAAa,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;QACnD,kBAAkB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;QACzE,cAAc,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KAC7D;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QACpC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QACpC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QACxC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;KAClE;CACF,CAAC;AAEF,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,eAAe,GAAkB;IACrC,EAAE,EAAE,OAAO;IACX,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;CAC/D,CAAC;AAEF,6EAA6E;AAC7E,+EAA+E;AAC/E,yEAAyE;AACzE,MAAM,cAAc,GAAkB;IACpC,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAoC;IACzD,uDAAuD;IACvD,WAAW,EAAE;QACX;YACE,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;SACnB;QACD;YACE,gEAAgE;YAChE,qDAAqD;YACrD,wBAAwB;YACxB,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;SAC7B;QACD;YACE,iEAAiE;YACjE,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC5B;QACD;YACE,6DAA6D;YAC7D,wDAAwD;YACxD,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,EAAE;YACT,kEAAkE;YAClE,iDAAiD;YACjD,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;SACnC;QACD;YACE,sDAAsD;YACtD,EAAE,EAAE,kBAAkB;YACtB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;SACjC;KACF;IACD,qEAAqE;IACrE,mEAAmE;IACnE,gEAAgE;IAChE,KAAK,EAAE;QACL;YACE,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB;QACD;YACE,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;SAC5C;QACD,cAAc;QACd,eAAe;KAChB;IACD,KAAK,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IACxC,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,KAAK,EAAE;QACL;YACE,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB;QACD;YACE,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;SAC5C;KACF;IACD,sEAAsE;IACtE,+DAA+D;IAC/D,oEAAoE;IACpE,IAAI,EAAE;QACJ;YACE,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,EAAE,oBAAoB,CAAC;SAC/E;KACF;IACD,OAAO,EAAE;QACP;YACE,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,EAAE,oBAAoB,CAAC;SAC/E;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/** Built-in control kinds. Shells may register custom kinds (the
|
|
2
|
+
* composite widgets reference them by string). */
|
|
3
|
+
export type ControlKind = 'number' | 'length' | 'angle' | 'percent' | 'color' | 'select' | 'toggle' | 'text' | 'url' | 'keyframes' | 'list' | 'json' | (string & {});
|
|
4
|
+
export interface FieldSpec {
|
|
5
|
+
/** Field key within its scope (top-level protocol field name). */
|
|
6
|
+
path: string;
|
|
7
|
+
control: ControlKind;
|
|
8
|
+
label: string;
|
|
9
|
+
/** Inspector section id, e.g. 'transform', 'appearance', 'effects.glass'. */
|
|
10
|
+
section: string;
|
|
11
|
+
/** Sort order within the section (lower first; derived = 1000). */
|
|
12
|
+
order: number;
|
|
13
|
+
min?: number;
|
|
14
|
+
max?: number;
|
|
15
|
+
step?: number;
|
|
16
|
+
/** Options for 'select'. */
|
|
17
|
+
options?: readonly string[];
|
|
18
|
+
/** The value accepts Keyframe[] — render the keyframe diamond. */
|
|
19
|
+
animatable: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 'derived' = mechanically produced from the zod schema (renders a
|
|
22
|
+
* sane default, FLAGGED for design polish). 'override' = a human
|
|
23
|
+
* ruled on its presentation.
|
|
24
|
+
*/
|
|
25
|
+
origin: 'derived' | 'override';
|
|
26
|
+
/** Deriver context for the triage list ("union fallback", …). */
|
|
27
|
+
note?: string;
|
|
28
|
+
}
|
|
29
|
+
/** One widget that replaces a group of fields (precedence: composite
|
|
30
|
+
* claim > field override > derived default). */
|
|
31
|
+
export interface CompositeSpec {
|
|
32
|
+
id: string;
|
|
33
|
+
/** Custom control kind the shell registers a component for. */
|
|
34
|
+
control: string;
|
|
35
|
+
label: string;
|
|
36
|
+
section: string;
|
|
37
|
+
order: number;
|
|
38
|
+
/** Field paths this widget swallows. */
|
|
39
|
+
claims: readonly string[];
|
|
40
|
+
}
|
|
41
|
+
export interface ScopeRegistry {
|
|
42
|
+
scope: string;
|
|
43
|
+
fields: FieldSpec[];
|
|
44
|
+
composites: CompositeSpec[];
|
|
45
|
+
}
|
|
46
|
+
export interface EditorRegistry {
|
|
47
|
+
/** Source-level (composition) knobs. */
|
|
48
|
+
source: ScopeRegistry;
|
|
49
|
+
/** Per element type ('video', 'text', …). */
|
|
50
|
+
elements: Record<string, ScopeRegistry>;
|
|
51
|
+
/** Per effect type ('glow', 'glass', …) — params of one effects[] entry. */
|
|
52
|
+
effects: Record<string, ScopeRegistry>;
|
|
53
|
+
/** Params of one animations[] entry (the preset animations). */
|
|
54
|
+
animation: ScopeRegistry;
|
|
55
|
+
}
|
|
56
|
+
/** A field-level presentation override (merged over the derived spec). */
|
|
57
|
+
export type FieldOverride = Partial<Omit<FieldSpec, 'path' | 'origin'>>;
|
|
58
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAMA;kDACkD;AAClD,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,KAAK,GACL,WAAW,GACX,MAAM,GACN,MAAM,GACN,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,kEAAkE;IAClE,UAAU,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;gDACgD;AAChD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvC,gEAAgE;IAChE,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,OAAO,CACjC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,CACnC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Registry types — the derive → override → configuration pipeline
|
|
2
|
+
// (EDITORS-PLAN D2). A FieldSpec describes ONE knob; a CompositeSpec
|
|
3
|
+
// swallows several fields behind one widget; a ScopeRegistry is the
|
|
4
|
+
// resolved knob set for one scope (the Source root, an element type,
|
|
5
|
+
// an effect type, the animation params).
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,yCAAyC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Element, Source } from '@clipkit/protocol';
|
|
2
|
+
export interface ElementPatch {
|
|
3
|
+
id: string;
|
|
4
|
+
patch: Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
export declare function computeElementPatches(prev: Source, next: Source): ElementPatch[] | null;
|
|
7
|
+
export type { Element };
|
|
8
|
+
//# sourceMappingURL=source-diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-diff.d.ts","sourceRoot":"","sources":["../src/source-diff.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AA0FzD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,YAAY,EAAE,GAAG,IAAI,CA+CvB;AAGD,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// Source diff — given the previous source and the next source, decide
|
|
2
|
+
// whether the change is patchable (only visual/spatial fields on
|
|
3
|
+
// existing elements) or whether a full setSource is required
|
|
4
|
+
// (structural change, timing change, asset change).
|
|
5
|
+
//
|
|
6
|
+
// Patchable returns: `Array<{ id, patch }>` — possibly empty when
|
|
7
|
+
// nothing meaningful changed.
|
|
8
|
+
// Not patchable returns: `null` — Editor falls back to engine.setSource.
|
|
9
|
+
/**
|
|
10
|
+
* Fields that are safe to send as patches to the worker. Everything
|
|
11
|
+
* else triggers a full setSource (audio re-decode, runtime preload,
|
|
12
|
+
* etc.). The list excludes:
|
|
13
|
+
* - `type` — would require a different element variant
|
|
14
|
+
* - `time`, `layer`, `duration` — affect buffer alignment / playhead
|
|
15
|
+
* - `source` — asset URL changes need preload
|
|
16
|
+
* - `animations`, `keyframe_animations` — animation state changes
|
|
17
|
+
* - `mask`, `gradient`, `words`, `elements` — structural changes
|
|
18
|
+
*
|
|
19
|
+
* Anything not in this set forces the slow path.
|
|
20
|
+
*/
|
|
21
|
+
const PATCHABLE_FIELDS = new Set([
|
|
22
|
+
// Transform
|
|
23
|
+
'x',
|
|
24
|
+
'y',
|
|
25
|
+
'width',
|
|
26
|
+
'height',
|
|
27
|
+
'rotation',
|
|
28
|
+
'scale',
|
|
29
|
+
'opacity',
|
|
30
|
+
'x_anchor',
|
|
31
|
+
'y_anchor',
|
|
32
|
+
// Identity (cheap text changes)
|
|
33
|
+
'name',
|
|
34
|
+
// Visual styling
|
|
35
|
+
'fill_color',
|
|
36
|
+
'stroke_color',
|
|
37
|
+
'stroke_width',
|
|
38
|
+
'border_radius',
|
|
39
|
+
'background_color',
|
|
40
|
+
'background_border_radius',
|
|
41
|
+
// Typography
|
|
42
|
+
'text',
|
|
43
|
+
'spans',
|
|
44
|
+
'font_family',
|
|
45
|
+
'font_size',
|
|
46
|
+
'font_weight',
|
|
47
|
+
'font_style',
|
|
48
|
+
'text_align',
|
|
49
|
+
'vertical_align',
|
|
50
|
+
'y_alignment',
|
|
51
|
+
'line_height',
|
|
52
|
+
'letter_spacing',
|
|
53
|
+
// Caption styling
|
|
54
|
+
'highlight_color',
|
|
55
|
+
'highlight_background_color',
|
|
56
|
+
// Image / video filters
|
|
57
|
+
'fit',
|
|
58
|
+
'brightness',
|
|
59
|
+
'contrast',
|
|
60
|
+
'saturation',
|
|
61
|
+
'blur',
|
|
62
|
+
// Audio (volume only — trim/loop affect frame alignment)
|
|
63
|
+
'volume',
|
|
64
|
+
// Shape
|
|
65
|
+
'shape',
|
|
66
|
+
'sides',
|
|
67
|
+
'path',
|
|
68
|
+
// SVG paths array changes are usually structural; skip.
|
|
69
|
+
]);
|
|
70
|
+
/**
|
|
71
|
+
* Top-level Source fields that must match for a patch to apply.
|
|
72
|
+
* If any of these change, fall back to full setSource.
|
|
73
|
+
*/
|
|
74
|
+
const TOP_LEVEL_FIELDS = [
|
|
75
|
+
'output_format',
|
|
76
|
+
'width',
|
|
77
|
+
'height',
|
|
78
|
+
'duration',
|
|
79
|
+
'frame_rate',
|
|
80
|
+
'background_color',
|
|
81
|
+
'clipkit_version',
|
|
82
|
+
// Scene-level render state (CKP/1.0): a camera or motion-blur edit
|
|
83
|
+
// changes no element, so without these it would diff to zero patches
|
|
84
|
+
// and never reach the engine — the live preview would ignore camera
|
|
85
|
+
// perspective / pose / sort and motion-blur changes. Force setSource.
|
|
86
|
+
'camera',
|
|
87
|
+
'motion_blur',
|
|
88
|
+
// §4.8 scene lighting: a lights/environment edit changes no element but
|
|
89
|
+
// must re-shade every lit material — force setSource so the preview
|
|
90
|
+
// picks it up (same reasoning as camera/motion_blur).
|
|
91
|
+
'lights',
|
|
92
|
+
'environment',
|
|
93
|
+
'bloom',
|
|
94
|
+
];
|
|
95
|
+
export function computeElementPatches(prev, next) {
|
|
96
|
+
if (prev === next)
|
|
97
|
+
return [];
|
|
98
|
+
// Top-level differences kick us to setSource.
|
|
99
|
+
for (const field of TOP_LEVEL_FIELDS) {
|
|
100
|
+
if (prev[field] !== next[field])
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
// Element-count change → structural. setSource.
|
|
104
|
+
if (prev.elements.length !== next.elements.length)
|
|
105
|
+
return null;
|
|
106
|
+
const patches = [];
|
|
107
|
+
for (let i = 0; i < next.elements.length; i++) {
|
|
108
|
+
const prevEl = prev.elements[i];
|
|
109
|
+
const nextEl = next.elements[i];
|
|
110
|
+
// Immer structural-sharing fast path: unchanged elements are === .
|
|
111
|
+
if (prevEl === nextEl)
|
|
112
|
+
continue;
|
|
113
|
+
// Need stable id + type for the worker to apply patches in place.
|
|
114
|
+
if (!prevEl.id || prevEl.id !== nextEl.id)
|
|
115
|
+
return null;
|
|
116
|
+
if (prevEl.type !== nextEl.type)
|
|
117
|
+
return null;
|
|
118
|
+
// Composition deep edits: skip patching for v1; setSource is safer.
|
|
119
|
+
if (nextEl.type === 'group')
|
|
120
|
+
return null;
|
|
121
|
+
const patch = {};
|
|
122
|
+
const seen = new Set();
|
|
123
|
+
for (const key of Object.keys(nextEl)) {
|
|
124
|
+
seen.add(key);
|
|
125
|
+
const nv = nextEl[key];
|
|
126
|
+
const pv = prevEl[key];
|
|
127
|
+
if (nv === pv)
|
|
128
|
+
continue;
|
|
129
|
+
if (!PATCHABLE_FIELDS.has(key))
|
|
130
|
+
return null;
|
|
131
|
+
patch[key] = nv;
|
|
132
|
+
}
|
|
133
|
+
// A removed field also requires the slow path (we don't track
|
|
134
|
+
// deletions through Object.assign).
|
|
135
|
+
for (const key of Object.keys(prevEl)) {
|
|
136
|
+
if (seen.has(key))
|
|
137
|
+
continue;
|
|
138
|
+
if (!PATCHABLE_FIELDS.has(key))
|
|
139
|
+
return null;
|
|
140
|
+
patch[key] = undefined;
|
|
141
|
+
}
|
|
142
|
+
if (Object.keys(patch).length > 0) {
|
|
143
|
+
patches.push({ id: prevEl.id, patch });
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return patches;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=source-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-diff.js","sourceRoot":"","sources":["../src/source-diff.ts"],"names":[],"mappings":"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"}
|