@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.
Files changed (71) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +20 -0
  3. package/dist/asset-store.d.ts +40 -0
  4. package/dist/asset-store.d.ts.map +1 -0
  5. package/dist/asset-store.js +181 -0
  6. package/dist/asset-store.js.map +1 -0
  7. package/dist/context.d.ts +17 -0
  8. package/dist/context.d.ts.map +1 -0
  9. package/dist/context.js +23 -0
  10. package/dist/context.js.map +1 -0
  11. package/dist/index.d.ts +20 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +17 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/node-graph.d.ts +42 -0
  16. package/dist/node-graph.d.ts.map +1 -0
  17. package/dist/node-graph.js +123 -0
  18. package/dist/node-graph.js.map +1 -0
  19. package/dist/registry/build.d.ts +3 -0
  20. package/dist/registry/build.d.ts.map +1 -0
  21. package/dist/registry/build.js +84 -0
  22. package/dist/registry/build.js.map +1 -0
  23. package/dist/registry/configuration.d.ts +51 -0
  24. package/dist/registry/configuration.d.ts.map +1 -0
  25. package/dist/registry/configuration.js +92 -0
  26. package/dist/registry/configuration.js.map +1 -0
  27. package/dist/registry/derive.d.ts +30 -0
  28. package/dist/registry/derive.d.ts.map +1 -0
  29. package/dist/registry/derive.js +212 -0
  30. package/dist/registry/derive.js.map +1 -0
  31. package/dist/registry/overrides.d.ts +7 -0
  32. package/dist/registry/overrides.d.ts.map +1 -0
  33. package/dist/registry/overrides.js +322 -0
  34. package/dist/registry/overrides.js.map +1 -0
  35. package/dist/registry/types.d.ts +58 -0
  36. package/dist/registry/types.d.ts.map +1 -0
  37. package/dist/registry/types.js +7 -0
  38. package/dist/registry/types.js.map +1 -0
  39. package/dist/source-diff.d.ts +8 -0
  40. package/dist/source-diff.d.ts.map +1 -0
  41. package/dist/source-diff.js +148 -0
  42. package/dist/source-diff.js.map +1 -0
  43. package/dist/stage-utils.d.ts +170 -0
  44. package/dist/stage-utils.d.ts.map +1 -0
  45. package/dist/stage-utils.js +476 -0
  46. package/dist/stage-utils.js.map +1 -0
  47. package/dist/store.d.ts +123 -0
  48. package/dist/store.d.ts.map +1 -0
  49. package/dist/store.js +234 -0
  50. package/dist/store.js.map +1 -0
  51. package/dist/timeline-utils.d.ts +69 -0
  52. package/dist/timeline-utils.d.ts.map +1 -0
  53. package/dist/timeline-utils.js +211 -0
  54. package/dist/timeline-utils.js.map +1 -0
  55. package/dist/types.d.ts +6 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +4 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/useEditor.d.ts +77 -0
  60. package/dist/useEditor.d.ts.map +1 -0
  61. package/dist/useEditor.js +74 -0
  62. package/dist/useEditor.js.map +1 -0
  63. package/dist/useEditorStore.d.ts +3 -0
  64. package/dist/useEditorStore.d.ts.map +1 -0
  65. package/dist/useEditorStore.js +15 -0
  66. package/dist/useEditorStore.js.map +1 -0
  67. package/dist/usePlaybackSession.d.ts +20 -0
  68. package/dist/usePlaybackSession.d.ts.map +1 -0
  69. package/dist/usePlaybackSession.js +120 -0
  70. package/dist/usePlaybackSession.js.map +1 -0
  71. 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":"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"}
@@ -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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"}