sketchmark 2.0.0 → 2.1.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 (132) hide show
  1. package/ANIMATABLE_MATRIX.md +177 -0
  2. package/KERNEL_SPEC.md +412 -0
  3. package/PACKS.md +81 -0
  4. package/PRESETS.md +182 -0
  5. package/README.md +274 -188
  6. package/bin/editor-ui.cjs +2285 -0
  7. package/bin/preview-ui.cjs +74 -0
  8. package/bin/sketchmark.cjs +648 -2008
  9. package/dist/src/animatable.d.ts +21 -0
  10. package/dist/src/animatable.js +439 -0
  11. package/dist/src/builders/index.d.ts +1 -11
  12. package/dist/src/builders/index.js +1 -19
  13. package/dist/src/diagnostics.js +1 -64
  14. package/dist/src/edit.d.ts +27 -0
  15. package/dist/src/edit.js +162 -0
  16. package/dist/src/index.d.ts +4 -13
  17. package/dist/src/index.js +4 -13
  18. package/dist/src/keyframes.d.ts +48 -0
  19. package/dist/src/keyframes.js +182 -0
  20. package/dist/src/motion.d.ts +4 -0
  21. package/dist/src/motion.js +262 -0
  22. package/dist/src/normalize.js +120 -151
  23. package/dist/src/presets/characters.d.ts +15 -0
  24. package/dist/src/presets/characters.js +113 -0
  25. package/dist/src/presets/compose.d.ts +5 -0
  26. package/dist/src/presets/compose.js +80 -0
  27. package/dist/src/presets/effects.d.ts +40 -0
  28. package/dist/src/presets/effects.js +79 -0
  29. package/dist/src/presets/helpers.d.ts +33 -0
  30. package/dist/src/presets/helpers.js +165 -0
  31. package/dist/src/presets/index.d.ts +9 -0
  32. package/dist/src/presets/index.js +48 -0
  33. package/dist/src/presets/motions.d.ts +33 -0
  34. package/dist/src/presets/motions.js +75 -0
  35. package/dist/src/presets/scenes.d.ts +35 -0
  36. package/dist/src/presets/scenes.js +134 -0
  37. package/dist/src/presets/shapes.d.ts +71 -0
  38. package/dist/src/presets/shapes.js +96 -0
  39. package/dist/src/presets/transitions.d.ts +29 -0
  40. package/dist/src/presets/transitions.js +113 -0
  41. package/dist/src/presets/types.d.ts +34 -0
  42. package/dist/src/presets/types.js +2 -0
  43. package/dist/src/render/html.js +1 -4
  44. package/dist/src/render/svg.d.ts +2 -2
  45. package/dist/src/render/svg.js +86 -82
  46. package/dist/src/render/three-html.js +67 -113
  47. package/dist/src/scenes.js +1 -0
  48. package/dist/src/schema.js +218 -280
  49. package/dist/src/shapes/builtins.js +11 -47
  50. package/dist/src/shapes/common.js +12 -11
  51. package/dist/src/shapes/registry.d.ts +0 -1
  52. package/dist/src/shapes/registry.js +0 -4
  53. package/dist/src/shapes/types.d.ts +1 -3
  54. package/dist/src/types.d.ts +57 -288
  55. package/dist/src/utils.d.ts +2 -11
  56. package/dist/src/utils.js +13 -70
  57. package/dist/src/validate.js +321 -275
  58. package/dist/tests/run.js +576 -510
  59. package/examples/1730642890464.jpg +0 -0
  60. package/examples/app-screen.svg +1 -0
  61. package/examples/app-screen.visual.json +503 -0
  62. package/examples/dashboard-table.svg +1 -0
  63. package/examples/dashboard-table.visual.json +708 -0
  64. package/examples/dev-docs.svg +1 -0
  65. package/examples/dev-docs.visual.json +248 -0
  66. package/examples/explainer.mp4 +0 -0
  67. package/examples/explainer.visual.json +1713 -0
  68. package/examples/group-origin-effects-lab-check.svg +1 -0
  69. package/examples/group-origin-effects-lab.visual.json +1880 -0
  70. package/examples/image-clip-radius.visual.json +271 -0
  71. package/examples/make-app-screen.cjs +368 -0
  72. package/examples/make-dashboard-table.cjs +277 -0
  73. package/examples/make-dev-docs.cjs +233 -0
  74. package/examples/make-explainer.cjs +438 -0
  75. package/examples/make-group-origin-effects-lab.cjs +370 -0
  76. package/examples/make-image-clip-radius.cjs +169 -0
  77. package/examples/make-modal-dialog.cjs +355 -0
  78. package/examples/make-origin-effects-lab.cjs +311 -0
  79. package/examples/make-preset-character-motion.cjs +32 -0
  80. package/examples/make-presets-demo.cjs +30 -0
  81. package/examples/make-pricing.cjs +286 -0
  82. package/examples/make-product-demo.cjs +468 -0
  83. package/examples/make-product-hero.cjs +223 -0
  84. package/examples/make-release-notes.cjs +333 -0
  85. package/examples/make-settings-panel.cjs +435 -0
  86. package/examples/make-split-preview.cjs +248 -0
  87. package/examples/make-storyboard.cjs +215 -0
  88. package/examples/make-transcript.cjs +234 -0
  89. package/examples/make-typography-test.cjs +397 -0
  90. package/examples/make-ui-demo-explainer.cjs +1094 -0
  91. package/examples/make-ui-flow.cjs +762 -0
  92. package/examples/make-walkthrough.cjs +815 -0
  93. package/examples/modal-dialog.svg +1 -0
  94. package/examples/modal-dialog.visual.json +239 -0
  95. package/examples/origin-effects-lab-check.svg +1 -0
  96. package/examples/origin-effects-lab.visual.json +1412 -0
  97. package/examples/preset-character-motion.visual.json +949 -0
  98. package/examples/presets-demo.visual.json +787 -0
  99. package/examples/pricing.svg +1 -0
  100. package/examples/pricing.visual.json +652 -0
  101. package/examples/product-demo.mp4 +0 -0
  102. package/examples/product-demo.visual.json +866 -0
  103. package/examples/product-hero.svg +1 -0
  104. package/examples/product-hero.visual.json +242 -0
  105. package/examples/release-notes.svg +1 -0
  106. package/examples/release-notes.visual.json +467 -0
  107. package/examples/settings-panel.svg +1 -0
  108. package/examples/settings-panel.visual.json +501 -0
  109. package/examples/split-preview.svg +1 -0
  110. package/examples/split-preview.visual.json +124 -0
  111. package/examples/storyboard.svg +1 -0
  112. package/examples/storyboard.visual.json +312 -0
  113. package/examples/transcript.svg +1 -0
  114. package/examples/transcript.visual.json +407 -0
  115. package/examples/typography-indent-check.svg +1 -0
  116. package/examples/typography-lineheight-0.svg +1 -0
  117. package/examples/typography-lineheight-2.svg +1 -0
  118. package/examples/typography-test-check.svg +1 -0
  119. package/examples/typography-test.svg +1 -0
  120. package/examples/typography-test.visual.json +757 -0
  121. package/examples/ui-demo-explainer-billing.svg +1 -0
  122. package/examples/ui-demo-explainer-check.svg +1 -0
  123. package/examples/ui-demo-explainer-save.svg +1 -0
  124. package/examples/ui-demo-explainer-toggle.svg +1 -0
  125. package/examples/ui-demo-explainer.mp4 +0 -0
  126. package/examples/ui-demo-explainer.visual.json +2597 -0
  127. package/examples/ui-flow.mp4 +0 -0
  128. package/examples/ui-flow.visual.json +1211 -0
  129. package/examples/walkthrough.mp4 +0 -0
  130. package/examples/walkthrough.visual.json +1372 -0
  131. package/package.json +52 -52
  132. package/schema/visual.schema.json +1086 -930
@@ -0,0 +1,787 @@
1
+ {
2
+ "version": 1,
3
+ "canvas": {
4
+ "width": 960,
5
+ "height": 540,
6
+ "background": "#f8fafc",
7
+ "duration": 3,
8
+ "fps": 30
9
+ },
10
+ "elements": [
11
+ {
12
+ "id": "bg.grid",
13
+ "type": "group",
14
+ "x": 0,
15
+ "y": 0,
16
+ "width": 960,
17
+ "height": 540,
18
+ "children": [
19
+ {
20
+ "id": "bg.grid.bg",
21
+ "type": "path",
22
+ "d": "M 0 0 H 960 V 540 H 0 Z",
23
+ "fill": "#ffffff"
24
+ },
25
+ {
26
+ "id": "bg.grid.v0",
27
+ "type": "path",
28
+ "d": "M 0 0 L 0 540",
29
+ "fill": "none",
30
+ "stroke": "#e2e8f0",
31
+ "strokeWidth": 1
32
+ },
33
+ {
34
+ "id": "bg.grid.v40",
35
+ "type": "path",
36
+ "d": "M 40 0 L 40 540",
37
+ "fill": "none",
38
+ "stroke": "#e2e8f0",
39
+ "strokeWidth": 1
40
+ },
41
+ {
42
+ "id": "bg.grid.v80",
43
+ "type": "path",
44
+ "d": "M 80 0 L 80 540",
45
+ "fill": "none",
46
+ "stroke": "#e2e8f0",
47
+ "strokeWidth": 1
48
+ },
49
+ {
50
+ "id": "bg.grid.v120",
51
+ "type": "path",
52
+ "d": "M 120 0 L 120 540",
53
+ "fill": "none",
54
+ "stroke": "#e2e8f0",
55
+ "strokeWidth": 1
56
+ },
57
+ {
58
+ "id": "bg.grid.v160",
59
+ "type": "path",
60
+ "d": "M 160 0 L 160 540",
61
+ "fill": "none",
62
+ "stroke": "#e2e8f0",
63
+ "strokeWidth": 1
64
+ },
65
+ {
66
+ "id": "bg.grid.v200",
67
+ "type": "path",
68
+ "d": "M 200 0 L 200 540",
69
+ "fill": "none",
70
+ "stroke": "#e2e8f0",
71
+ "strokeWidth": 1
72
+ },
73
+ {
74
+ "id": "bg.grid.v240",
75
+ "type": "path",
76
+ "d": "M 240 0 L 240 540",
77
+ "fill": "none",
78
+ "stroke": "#e2e8f0",
79
+ "strokeWidth": 1
80
+ },
81
+ {
82
+ "id": "bg.grid.v280",
83
+ "type": "path",
84
+ "d": "M 280 0 L 280 540",
85
+ "fill": "none",
86
+ "stroke": "#e2e8f0",
87
+ "strokeWidth": 1
88
+ },
89
+ {
90
+ "id": "bg.grid.v320",
91
+ "type": "path",
92
+ "d": "M 320 0 L 320 540",
93
+ "fill": "none",
94
+ "stroke": "#e2e8f0",
95
+ "strokeWidth": 1
96
+ },
97
+ {
98
+ "id": "bg.grid.v360",
99
+ "type": "path",
100
+ "d": "M 360 0 L 360 540",
101
+ "fill": "none",
102
+ "stroke": "#e2e8f0",
103
+ "strokeWidth": 1
104
+ },
105
+ {
106
+ "id": "bg.grid.v400",
107
+ "type": "path",
108
+ "d": "M 400 0 L 400 540",
109
+ "fill": "none",
110
+ "stroke": "#e2e8f0",
111
+ "strokeWidth": 1
112
+ },
113
+ {
114
+ "id": "bg.grid.v440",
115
+ "type": "path",
116
+ "d": "M 440 0 L 440 540",
117
+ "fill": "none",
118
+ "stroke": "#e2e8f0",
119
+ "strokeWidth": 1
120
+ },
121
+ {
122
+ "id": "bg.grid.v480",
123
+ "type": "path",
124
+ "d": "M 480 0 L 480 540",
125
+ "fill": "none",
126
+ "stroke": "#e2e8f0",
127
+ "strokeWidth": 1
128
+ },
129
+ {
130
+ "id": "bg.grid.v520",
131
+ "type": "path",
132
+ "d": "M 520 0 L 520 540",
133
+ "fill": "none",
134
+ "stroke": "#e2e8f0",
135
+ "strokeWidth": 1
136
+ },
137
+ {
138
+ "id": "bg.grid.v560",
139
+ "type": "path",
140
+ "d": "M 560 0 L 560 540",
141
+ "fill": "none",
142
+ "stroke": "#e2e8f0",
143
+ "strokeWidth": 1
144
+ },
145
+ {
146
+ "id": "bg.grid.v600",
147
+ "type": "path",
148
+ "d": "M 600 0 L 600 540",
149
+ "fill": "none",
150
+ "stroke": "#e2e8f0",
151
+ "strokeWidth": 1
152
+ },
153
+ {
154
+ "id": "bg.grid.v640",
155
+ "type": "path",
156
+ "d": "M 640 0 L 640 540",
157
+ "fill": "none",
158
+ "stroke": "#e2e8f0",
159
+ "strokeWidth": 1
160
+ },
161
+ {
162
+ "id": "bg.grid.v680",
163
+ "type": "path",
164
+ "d": "M 680 0 L 680 540",
165
+ "fill": "none",
166
+ "stroke": "#e2e8f0",
167
+ "strokeWidth": 1
168
+ },
169
+ {
170
+ "id": "bg.grid.v720",
171
+ "type": "path",
172
+ "d": "M 720 0 L 720 540",
173
+ "fill": "none",
174
+ "stroke": "#e2e8f0",
175
+ "strokeWidth": 1
176
+ },
177
+ {
178
+ "id": "bg.grid.v760",
179
+ "type": "path",
180
+ "d": "M 760 0 L 760 540",
181
+ "fill": "none",
182
+ "stroke": "#e2e8f0",
183
+ "strokeWidth": 1
184
+ },
185
+ {
186
+ "id": "bg.grid.v800",
187
+ "type": "path",
188
+ "d": "M 800 0 L 800 540",
189
+ "fill": "none",
190
+ "stroke": "#e2e8f0",
191
+ "strokeWidth": 1
192
+ },
193
+ {
194
+ "id": "bg.grid.v840",
195
+ "type": "path",
196
+ "d": "M 840 0 L 840 540",
197
+ "fill": "none",
198
+ "stroke": "#e2e8f0",
199
+ "strokeWidth": 1
200
+ },
201
+ {
202
+ "id": "bg.grid.v880",
203
+ "type": "path",
204
+ "d": "M 880 0 L 880 540",
205
+ "fill": "none",
206
+ "stroke": "#e2e8f0",
207
+ "strokeWidth": 1
208
+ },
209
+ {
210
+ "id": "bg.grid.v920",
211
+ "type": "path",
212
+ "d": "M 920 0 L 920 540",
213
+ "fill": "none",
214
+ "stroke": "#e2e8f0",
215
+ "strokeWidth": 1
216
+ },
217
+ {
218
+ "id": "bg.grid.v960",
219
+ "type": "path",
220
+ "d": "M 960 0 L 960 540",
221
+ "fill": "none",
222
+ "stroke": "#e2e8f0",
223
+ "strokeWidth": 1
224
+ },
225
+ {
226
+ "id": "bg.grid.h0",
227
+ "type": "path",
228
+ "d": "M 0 0 L 960 0",
229
+ "fill": "none",
230
+ "stroke": "#e2e8f0",
231
+ "strokeWidth": 1
232
+ },
233
+ {
234
+ "id": "bg.grid.h40",
235
+ "type": "path",
236
+ "d": "M 0 40 L 960 40",
237
+ "fill": "none",
238
+ "stroke": "#e2e8f0",
239
+ "strokeWidth": 1
240
+ },
241
+ {
242
+ "id": "bg.grid.h80",
243
+ "type": "path",
244
+ "d": "M 0 80 L 960 80",
245
+ "fill": "none",
246
+ "stroke": "#e2e8f0",
247
+ "strokeWidth": 1
248
+ },
249
+ {
250
+ "id": "bg.grid.h120",
251
+ "type": "path",
252
+ "d": "M 0 120 L 960 120",
253
+ "fill": "none",
254
+ "stroke": "#e2e8f0",
255
+ "strokeWidth": 1
256
+ },
257
+ {
258
+ "id": "bg.grid.h160",
259
+ "type": "path",
260
+ "d": "M 0 160 L 960 160",
261
+ "fill": "none",
262
+ "stroke": "#e2e8f0",
263
+ "strokeWidth": 1
264
+ },
265
+ {
266
+ "id": "bg.grid.h200",
267
+ "type": "path",
268
+ "d": "M 0 200 L 960 200",
269
+ "fill": "none",
270
+ "stroke": "#e2e8f0",
271
+ "strokeWidth": 1
272
+ },
273
+ {
274
+ "id": "bg.grid.h240",
275
+ "type": "path",
276
+ "d": "M 0 240 L 960 240",
277
+ "fill": "none",
278
+ "stroke": "#e2e8f0",
279
+ "strokeWidth": 1
280
+ },
281
+ {
282
+ "id": "bg.grid.h280",
283
+ "type": "path",
284
+ "d": "M 0 280 L 960 280",
285
+ "fill": "none",
286
+ "stroke": "#e2e8f0",
287
+ "strokeWidth": 1
288
+ },
289
+ {
290
+ "id": "bg.grid.h320",
291
+ "type": "path",
292
+ "d": "M 0 320 L 960 320",
293
+ "fill": "none",
294
+ "stroke": "#e2e8f0",
295
+ "strokeWidth": 1
296
+ },
297
+ {
298
+ "id": "bg.grid.h360",
299
+ "type": "path",
300
+ "d": "M 0 360 L 960 360",
301
+ "fill": "none",
302
+ "stroke": "#e2e8f0",
303
+ "strokeWidth": 1
304
+ },
305
+ {
306
+ "id": "bg.grid.h400",
307
+ "type": "path",
308
+ "d": "M 0 400 L 960 400",
309
+ "fill": "none",
310
+ "stroke": "#e2e8f0",
311
+ "strokeWidth": 1
312
+ },
313
+ {
314
+ "id": "bg.grid.h440",
315
+ "type": "path",
316
+ "d": "M 0 440 L 960 440",
317
+ "fill": "none",
318
+ "stroke": "#e2e8f0",
319
+ "strokeWidth": 1
320
+ },
321
+ {
322
+ "id": "bg.grid.h480",
323
+ "type": "path",
324
+ "d": "M 0 480 L 960 480",
325
+ "fill": "none",
326
+ "stroke": "#e2e8f0",
327
+ "strokeWidth": 1
328
+ },
329
+ {
330
+ "id": "bg.grid.h520",
331
+ "type": "path",
332
+ "d": "M 0 520 L 960 520",
333
+ "fill": "none",
334
+ "stroke": "#e2e8f0",
335
+ "strokeWidth": 1
336
+ }
337
+ ]
338
+ },
339
+ {
340
+ "id": "hero.card",
341
+ "type": "group",
342
+ "x": 80,
343
+ "y": 56,
344
+ "width": 360,
345
+ "height": 180,
346
+ "children": [
347
+ {
348
+ "id": "hero.card.bg",
349
+ "type": "path",
350
+ "d": "M 0 0 H 360 V 180 H 0 Z",
351
+ "fill": "#0f172a"
352
+ },
353
+ {
354
+ "id": "hero.card.title",
355
+ "type": "text",
356
+ "text": "Presets",
357
+ "x": 180,
358
+ "y": 77.4,
359
+ "align": "center",
360
+ "valign": "middle",
361
+ "fontSize": 42,
362
+ "weight": 700,
363
+ "fill": "#ffffff"
364
+ },
365
+ {
366
+ "id": "hero.card.subtitle",
367
+ "type": "text",
368
+ "text": "compile to kernel",
369
+ "x": 180,
370
+ "y": 102.6,
371
+ "align": "center",
372
+ "valign": "middle",
373
+ "fontSize": 20,
374
+ "weight": 700,
375
+ "fill": "#cbd5e1"
376
+ }
377
+ ],
378
+ "timeline": {
379
+ "tracks": {
380
+ "effects.shadow.dx": {
381
+ "keyframes": [
382
+ {
383
+ "time": 0,
384
+ "value": 0
385
+ }
386
+ ]
387
+ },
388
+ "effects.shadow.dy": {
389
+ "keyframes": [
390
+ {
391
+ "time": 0,
392
+ "value": 12
393
+ }
394
+ ]
395
+ },
396
+ "effects.shadow.blur": {
397
+ "keyframes": [
398
+ {
399
+ "time": 0,
400
+ "value": 24
401
+ }
402
+ ]
403
+ },
404
+ "effects.shadow.color": {
405
+ "keyframes": [
406
+ {
407
+ "time": 0,
408
+ "value": "#000000"
409
+ }
410
+ ]
411
+ },
412
+ "effects.shadow.opacity": {
413
+ "keyframes": [
414
+ {
415
+ "time": 0,
416
+ "value": 0.2
417
+ }
418
+ ]
419
+ },
420
+ "position": {
421
+ "keyframes": [
422
+ {
423
+ "time": 0,
424
+ "value": [
425
+ 80,
426
+ 92
427
+ ],
428
+ "out": {
429
+ "type": "cubicBezier",
430
+ "x1": 0,
431
+ "y1": 0,
432
+ "x2": 0.58,
433
+ "y2": 1
434
+ }
435
+ },
436
+ {
437
+ "time": 0.55,
438
+ "value": [
439
+ 80,
440
+ 56
441
+ ]
442
+ }
443
+ ]
444
+ },
445
+ "opacity": {
446
+ "keyframes": [
447
+ {
448
+ "time": 0,
449
+ "value": 0,
450
+ "out": {
451
+ "type": "cubicBezier",
452
+ "x1": 0,
453
+ "y1": 0,
454
+ "x2": 0.58,
455
+ "y2": 1
456
+ }
457
+ },
458
+ {
459
+ "time": 0.35,
460
+ "value": 1
461
+ }
462
+ ]
463
+ }
464
+ }
465
+ }
466
+ },
467
+ {
468
+ "id": "cta.panel",
469
+ "type": "path",
470
+ "d": "M 578 78 H 802 Q 820 78 820 96 V 156 Q 820 174 802 174 H 578 Q 560 174 560 156 V 96 Q 560 78 578 78 Z",
471
+ "fill": "#ffffff",
472
+ "stroke": "#2563eb",
473
+ "strokeWidth": 3,
474
+ "timeline": {
475
+ "tracks": {
476
+ "opacity": {
477
+ "keyframes": [
478
+ {
479
+ "time": 0.25,
480
+ "value": 0,
481
+ "out": {
482
+ "type": "cubicBezier",
483
+ "x1": 0,
484
+ "y1": 0,
485
+ "x2": 0.58,
486
+ "y2": 1
487
+ }
488
+ },
489
+ {
490
+ "time": 0.65,
491
+ "value": 1
492
+ }
493
+ ]
494
+ }
495
+ }
496
+ }
497
+ },
498
+ {
499
+ "id": "hero.star",
500
+ "type": "path",
501
+ "d": "M 690 226 L 704.2831816307071 260.3408870366888 L 741.3570518799382 263.3130823037528 L 713.1106733459723 287.5091129633112 L 721.7404036237936 323.6869176962472 L 690 304.3 L 658.2595963762064 323.6869176962472 L 666.8893266540277 287.5091129633112 L 638.6429481200616 263.3130823037528 L 675.7168183692929 260.3408870366888 Z",
502
+ "fill": "#fde68a",
503
+ "stroke": "#92400e",
504
+ "strokeWidth": 3,
505
+ "timeline": {
506
+ "tracks": {
507
+ "effects.shadow.dx": {
508
+ "keyframes": [
509
+ {
510
+ "time": 0,
511
+ "value": 0
512
+ }
513
+ ]
514
+ },
515
+ "effects.shadow.dy": {
516
+ "keyframes": [
517
+ {
518
+ "time": 0,
519
+ "value": 0
520
+ }
521
+ ]
522
+ },
523
+ "effects.shadow.blur": {
524
+ "keyframes": [
525
+ {
526
+ "time": 0,
527
+ "value": 18
528
+ }
529
+ ]
530
+ },
531
+ "effects.shadow.color": {
532
+ "keyframes": [
533
+ {
534
+ "time": 0,
535
+ "value": "#f59e0b"
536
+ }
537
+ ]
538
+ },
539
+ "effects.shadow.opacity": {
540
+ "keyframes": [
541
+ {
542
+ "time": 0,
543
+ "value": 0.4
544
+ }
545
+ ]
546
+ },
547
+ "scale": {
548
+ "keyframes": [
549
+ {
550
+ "time": 0.8,
551
+ "value": 1,
552
+ "out": {
553
+ "type": "cubicBezier",
554
+ "x1": 0.42,
555
+ "y1": 0,
556
+ "x2": 0.58,
557
+ "y2": 1
558
+ }
559
+ },
560
+ {
561
+ "time": 1.35,
562
+ "value": 1.12,
563
+ "out": {
564
+ "type": "cubicBezier",
565
+ "x1": 0.42,
566
+ "y1": 0,
567
+ "x2": 0.58,
568
+ "y2": 1
569
+ }
570
+ },
571
+ {
572
+ "time": 1.9000000000000001,
573
+ "value": 1
574
+ }
575
+ ]
576
+ }
577
+ }
578
+ }
579
+ },
580
+ {
581
+ "id": "flow.arrow",
582
+ "type": "group",
583
+ "x": 0,
584
+ "y": 0,
585
+ "children": [
586
+ {
587
+ "id": "flow.arrow.shaft",
588
+ "type": "path",
589
+ "d": "M 455 150 L 539.4418031683117 129.7339672396052",
590
+ "fill": "none",
591
+ "stroke": "#0f172a",
592
+ "strokeWidth": 4,
593
+ "strokeCap": "round"
594
+ },
595
+ {
596
+ "id": "flow.arrow.head",
597
+ "type": "path",
598
+ "d": "M 555 126 L 540.8420408831637 135.5682910514883 L 538.0415654534597 123.89964342772208 Z",
599
+ "fill": "#0f172a",
600
+ "stroke": "#0f172a",
601
+ "strokeWidth": 1
602
+ }
603
+ ]
604
+ },
605
+ {
606
+ "id": "note.bubble",
607
+ "type": "group",
608
+ "x": 0,
609
+ "y": 0,
610
+ "width": 300,
611
+ "height": 92,
612
+ "children": [
613
+ {
614
+ "id": "note.bubble.bubble",
615
+ "type": "path",
616
+ "d": "M 534 350 H 806 Q 820 350 820 364 V 428 Q 820 442 806 442 H 534 Q 520 442 520 428 V 364 Q 520 350 534 350 Z",
617
+ "fill": "#ffffff",
618
+ "stroke": "#94a3b8",
619
+ "strokeWidth": 2
620
+ },
621
+ {
622
+ "id": "note.bubble.tail",
623
+ "type": "path",
624
+ "d": "M 595 440 L 595 466 L 634 440 Z",
625
+ "fill": "#ffffff",
626
+ "stroke": "#94a3b8",
627
+ "strokeWidth": 2
628
+ },
629
+ {
630
+ "id": "note.bubble.text",
631
+ "type": "text",
632
+ "text": "No preset fields in JSON",
633
+ "x": 670,
634
+ "y": 396,
635
+ "align": "center",
636
+ "valign": "middle",
637
+ "fontSize": 18,
638
+ "fill": "#111827"
639
+ }
640
+ ],
641
+ "timeline": {
642
+ "tracks": {
643
+ "clip.d": {
644
+ "keyframes": [
645
+ {
646
+ "time": 0.45,
647
+ "value": "M 670 396 A 0 0 0 1 0 670 396 A 0 0 0 1 0 670 396 Z",
648
+ "out": {
649
+ "type": "cubicBezier",
650
+ "x1": 0,
651
+ "y1": 0,
652
+ "x2": 0.58,
653
+ "y2": 1
654
+ }
655
+ },
656
+ {
657
+ "time": 0.5083333333333333,
658
+ "value": "M 643.8508551233931 396 A 26.149144876606915 26.149144876606915 0 1 0 696.1491448766069 396 A 26.149144876606915 26.149144876606915 0 1 0 643.8508551233931 396 Z",
659
+ "out": {
660
+ "type": "cubicBezier",
661
+ "x1": 0,
662
+ "y1": 0,
663
+ "x2": 0.58,
664
+ "y2": 1
665
+ }
666
+ },
667
+ {
668
+ "time": 0.5666666666666667,
669
+ "value": "M 617.7017102467862 396 A 52.29828975321383 52.29828975321383 0 1 0 722.2982897532138 396 A 52.29828975321383 52.29828975321383 0 1 0 617.7017102467862 396 Z",
670
+ "out": {
671
+ "type": "cubicBezier",
672
+ "x1": 0,
673
+ "y1": 0,
674
+ "x2": 0.58,
675
+ "y2": 1
676
+ }
677
+ },
678
+ {
679
+ "time": 0.625,
680
+ "value": "M 591.5525653701793 396 A 78.44743462982075 78.44743462982075 0 1 0 748.4474346298207 396 A 78.44743462982075 78.44743462982075 0 1 0 591.5525653701793 396 Z",
681
+ "out": {
682
+ "type": "cubicBezier",
683
+ "x1": 0,
684
+ "y1": 0,
685
+ "x2": 0.58,
686
+ "y2": 1
687
+ }
688
+ },
689
+ {
690
+ "time": 0.6833333333333333,
691
+ "value": "M 565.4034204935723 396 A 104.59657950642766 104.59657950642766 0 1 0 774.5965795064277 396 A 104.59657950642766 104.59657950642766 0 1 0 565.4034204935723 396 Z",
692
+ "out": {
693
+ "type": "cubicBezier",
694
+ "x1": 0,
695
+ "y1": 0,
696
+ "x2": 0.58,
697
+ "y2": 1
698
+ }
699
+ },
700
+ {
701
+ "time": 0.7416666666666667,
702
+ "value": "M 539.2542756169654 396 A 130.7457243830346 130.7457243830346 0 1 0 800.7457243830346 396 A 130.7457243830346 130.7457243830346 0 1 0 539.2542756169654 396 Z",
703
+ "out": {
704
+ "type": "cubicBezier",
705
+ "x1": 0,
706
+ "y1": 0,
707
+ "x2": 0.58,
708
+ "y2": 1
709
+ }
710
+ },
711
+ {
712
+ "time": 0.8,
713
+ "value": "M 513.1051307403585 396 A 156.8948692596415 156.8948692596415 0 1 0 826.8948692596415 396 A 156.8948692596415 156.8948692596415 0 1 0 513.1051307403585 396 Z",
714
+ "out": {
715
+ "type": "cubicBezier",
716
+ "x1": 0,
717
+ "y1": 0,
718
+ "x2": 0.58,
719
+ "y2": 1
720
+ }
721
+ },
722
+ {
723
+ "time": 0.8583333333333334,
724
+ "value": "M 486.9559858637516 396 A 183.04401413624842 183.04401413624842 0 1 0 853.0440141362484 396 A 183.04401413624842 183.04401413624842 0 1 0 486.9559858637516 396 Z",
725
+ "out": {
726
+ "type": "cubicBezier",
727
+ "x1": 0,
728
+ "y1": 0,
729
+ "x2": 0.58,
730
+ "y2": 1
731
+ }
732
+ },
733
+ {
734
+ "time": 0.9166666666666666,
735
+ "value": "M 460.8068409871447 396 A 209.19315901285532 209.19315901285532 0 1 0 879.1931590128553 396 A 209.19315901285532 209.19315901285532 0 1 0 460.8068409871447 396 Z",
736
+ "out": {
737
+ "type": "cubicBezier",
738
+ "x1": 0,
739
+ "y1": 0,
740
+ "x2": 0.58,
741
+ "y2": 1
742
+ }
743
+ },
744
+ {
745
+ "time": 0.9749999999999999,
746
+ "value": "M 434.65769611053776 396 A 235.34230388946224 235.34230388946224 0 1 0 905.3423038894623 396 A 235.34230388946224 235.34230388946224 0 1 0 434.65769611053776 396 Z",
747
+ "out": {
748
+ "type": "cubicBezier",
749
+ "x1": 0,
750
+ "y1": 0,
751
+ "x2": 0.58,
752
+ "y2": 1
753
+ }
754
+ },
755
+ {
756
+ "time": 1.0333333333333334,
757
+ "value": "M 408.5085512339308 396 A 261.4914487660692 261.4914487660692 0 1 0 931.4914487660692 396 A 261.4914487660692 261.4914487660692 0 1 0 408.5085512339308 396 Z",
758
+ "out": {
759
+ "type": "cubicBezier",
760
+ "x1": 0,
761
+ "y1": 0,
762
+ "x2": 0.58,
763
+ "y2": 1
764
+ }
765
+ },
766
+ {
767
+ "time": 1.0916666666666666,
768
+ "value": "M 382.35940635732396 396 A 287.64059364267604 287.64059364267604 0 1 0 957.6405936426761 396 A 287.64059364267604 287.64059364267604 0 1 0 382.35940635732396 396 Z",
769
+ "out": {
770
+ "type": "cubicBezier",
771
+ "x1": 0,
772
+ "y1": 0,
773
+ "x2": 0.58,
774
+ "y2": 1
775
+ }
776
+ },
777
+ {
778
+ "time": 1.15,
779
+ "value": "M 356.210261480717 396 A 313.789738519283 313.789738519283 0 1 0 983.789738519283 396 A 313.789738519283 313.789738519283 0 1 0 356.210261480717 396 Z"
780
+ }
781
+ ]
782
+ }
783
+ }
784
+ }
785
+ }
786
+ ]
787
+ }