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,2597 @@
1
+ {
2
+ "version": 1,
3
+ "canvas": {
4
+ "width": 1280,
5
+ "height": 720,
6
+ "background": "#07111f",
7
+ "duration": 24,
8
+ "fps": 30
9
+ },
10
+ "elements": [
11
+ {
12
+ "id": "intro-title",
13
+ "type": "text",
14
+ "x": 640,
15
+ "y": 92,
16
+ "text": "Explaining a UI demo with cursor + zoom",
17
+ "align": "center",
18
+ "valign": "middle",
19
+ "fontSize": 42,
20
+ "fontFamily": "Roboto, Arial, sans-serif",
21
+ "weight": 700,
22
+ "fill": "#f8fafc",
23
+ "opacity": 0,
24
+ "timeline": {
25
+ "tracks": {
26
+ "opacity": {
27
+ "keyframes": [
28
+ {
29
+ "time": 0,
30
+ "value": 0,
31
+ "out": {
32
+ "type": "cubicBezier",
33
+ "x1": 0.25,
34
+ "y1": 0.1,
35
+ "x2": 0.25,
36
+ "y2": 1
37
+ }
38
+ },
39
+ {
40
+ "time": 0.8,
41
+ "value": 1
42
+ },
43
+ {
44
+ "time": 2.8,
45
+ "value": 1,
46
+ "out": {
47
+ "type": "cubicBezier",
48
+ "x1": 0.25,
49
+ "y1": 0.1,
50
+ "x2": 0.25,
51
+ "y2": 1
52
+ }
53
+ },
54
+ {
55
+ "time": 3.4,
56
+ "value": 0
57
+ }
58
+ ]
59
+ },
60
+ "y": {
61
+ "keyframes": [
62
+ {
63
+ "time": 0,
64
+ "value": 108,
65
+ "out": {
66
+ "type": "cubicBezier",
67
+ "x1": 0,
68
+ "y1": 0,
69
+ "x2": 0.2,
70
+ "y2": 1
71
+ }
72
+ },
73
+ {
74
+ "time": 0.8,
75
+ "value": 92
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ }
81
+ },
82
+ {
83
+ "id": "intro-subtitle",
84
+ "type": "text",
85
+ "x": 640,
86
+ "y": 138,
87
+ "text": "One clean screen. One action at a time.",
88
+ "align": "center",
89
+ "valign": "middle",
90
+ "fontSize": 18,
91
+ "fontFamily": "Roboto, Arial, sans-serif",
92
+ "weight": 400,
93
+ "fill": "#93a9c7",
94
+ "opacity": 0,
95
+ "timeline": {
96
+ "tracks": {
97
+ "opacity": {
98
+ "keyframes": [
99
+ {
100
+ "time": 0.2,
101
+ "value": 0,
102
+ "out": {
103
+ "type": "cubicBezier",
104
+ "x1": 0.25,
105
+ "y1": 0.1,
106
+ "x2": 0.25,
107
+ "y2": 1
108
+ }
109
+ },
110
+ {
111
+ "time": 1,
112
+ "value": 1
113
+ },
114
+ {
115
+ "time": 2.8,
116
+ "value": 1,
117
+ "out": {
118
+ "type": "cubicBezier",
119
+ "x1": 0.25,
120
+ "y1": 0.1,
121
+ "x2": 0.25,
122
+ "y2": 1
123
+ }
124
+ },
125
+ {
126
+ "time": 3.4,
127
+ "value": 0
128
+ }
129
+ ]
130
+ }
131
+ }
132
+ }
133
+ },
134
+ {
135
+ "id": "caption_overview",
136
+ "type": "group",
137
+ "x": 330,
138
+ "y": 584,
139
+ "opacity": 0,
140
+ "children": [
141
+ {
142
+ "id": "caption_overview-bg",
143
+ "type": "path",
144
+ "d": "M 22 0 L 598 0 Q 620 0 620 22 L 620 70 Q 620 92 598 92 L 22 92 Q 0 92 0 70 L 0 22 Q 0 0 22 0 Z",
145
+ "fill": "#09192e",
146
+ "stroke": "#173054",
147
+ "strokeWidth": 1.5
148
+ },
149
+ {
150
+ "id": "caption_overview-chip",
151
+ "type": "group",
152
+ "x": 20,
153
+ "y": 18,
154
+ "children": [
155
+ {
156
+ "id": "caption_overview-chip-bg",
157
+ "type": "path",
158
+ "d": "M 14 0 L 82 0 Q 96 0 96 14 L 96 14 Q 96 28 82 28 L 14 28 Q 0 28 0 14 L 0 14 Q 0 0 14 0 Z",
159
+ "fill": "#0b2648",
160
+ "stroke": "#1d4c7f",
161
+ "strokeWidth": 1
162
+ },
163
+ {
164
+ "id": "caption_overview-chip-text",
165
+ "type": "text",
166
+ "x": 48,
167
+ "y": 14,
168
+ "text": "Overview",
169
+ "align": "center",
170
+ "valign": "middle",
171
+ "fontSize": 12,
172
+ "fontFamily": "Roboto, Arial, sans-serif",
173
+ "weight": 700,
174
+ "fill": "#7dd3fc"
175
+ }
176
+ ]
177
+ },
178
+ {
179
+ "id": "caption_overview-body",
180
+ "type": "text",
181
+ "x": 20,
182
+ "y": 56,
183
+ "text": "Start wide, show the whole product, and establish where the user is.",
184
+ "align": "left",
185
+ "valign": "top",
186
+ "fontSize": 15,
187
+ "fontFamily": "Roboto, Arial, sans-serif",
188
+ "weight": 400,
189
+ "fill": "#e2e8f0",
190
+ "maxWidth": 580
191
+ }
192
+ ],
193
+ "timeline": {
194
+ "tracks": {
195
+ "opacity": {
196
+ "keyframes": [
197
+ {
198
+ "time": 2.1,
199
+ "value": 0,
200
+ "out": {
201
+ "type": "cubicBezier",
202
+ "x1": 0,
203
+ "y1": 0,
204
+ "x2": 0.2,
205
+ "y2": 1
206
+ }
207
+ },
208
+ {
209
+ "time": 2.4,
210
+ "value": 1
211
+ },
212
+ {
213
+ "time": 7.4,
214
+ "value": 1,
215
+ "out": {
216
+ "type": "cubicBezier",
217
+ "x1": 0,
218
+ "y1": 0,
219
+ "x2": 0.2,
220
+ "y2": 1
221
+ }
222
+ },
223
+ {
224
+ "time": 7.75,
225
+ "value": 0
226
+ }
227
+ ]
228
+ },
229
+ "y": {
230
+ "keyframes": [
231
+ {
232
+ "time": 2.1,
233
+ "value": 604,
234
+ "out": {
235
+ "type": "cubicBezier",
236
+ "x1": 0,
237
+ "y1": 0,
238
+ "x2": 0.2,
239
+ "y2": 1
240
+ }
241
+ },
242
+ {
243
+ "time": 2.4,
244
+ "value": 584
245
+ }
246
+ ]
247
+ }
248
+ }
249
+ }
250
+ },
251
+ {
252
+ "id": "caption_notifications",
253
+ "type": "group",
254
+ "x": 330,
255
+ "y": 584,
256
+ "opacity": 0,
257
+ "children": [
258
+ {
259
+ "id": "caption_notifications-bg",
260
+ "type": "path",
261
+ "d": "M 22 0 L 598 0 Q 620 0 620 22 L 620 70 Q 620 92 598 92 L 22 92 Q 0 92 0 70 L 0 22 Q 0 0 22 0 Z",
262
+ "fill": "#09192e",
263
+ "stroke": "#173054",
264
+ "strokeWidth": 1.5
265
+ },
266
+ {
267
+ "id": "caption_notifications-chip",
268
+ "type": "group",
269
+ "x": 20,
270
+ "y": 18,
271
+ "children": [
272
+ {
273
+ "id": "caption_notifications-chip-bg",
274
+ "type": "path",
275
+ "d": "M 14 0 L 82 0 Q 96 0 96 14 L 96 14 Q 96 28 82 28 L 14 28 Q 0 28 0 14 L 0 14 Q 0 0 14 0 Z",
276
+ "fill": "#0b2648",
277
+ "stroke": "#1d4c7f",
278
+ "strokeWidth": 1
279
+ },
280
+ {
281
+ "id": "caption_notifications-chip-text",
282
+ "type": "text",
283
+ "x": 48,
284
+ "y": 14,
285
+ "text": "Interaction",
286
+ "align": "center",
287
+ "valign": "middle",
288
+ "fontSize": 12,
289
+ "fontFamily": "Roboto, Arial, sans-serif",
290
+ "weight": 700,
291
+ "fill": "#7dd3fc"
292
+ }
293
+ ]
294
+ },
295
+ {
296
+ "id": "caption_notifications-body",
297
+ "type": "text",
298
+ "x": 20,
299
+ "y": 56,
300
+ "text": "Zoom into the control, move the cursor with intent, and make a single change.",
301
+ "align": "left",
302
+ "valign": "top",
303
+ "fontSize": 15,
304
+ "fontFamily": "Roboto, Arial, sans-serif",
305
+ "weight": 400,
306
+ "fill": "#e2e8f0",
307
+ "maxWidth": 580
308
+ }
309
+ ],
310
+ "timeline": {
311
+ "tracks": {
312
+ "opacity": {
313
+ "keyframes": [
314
+ {
315
+ "time": 6.9,
316
+ "value": 0,
317
+ "out": {
318
+ "type": "cubicBezier",
319
+ "x1": 0,
320
+ "y1": 0,
321
+ "x2": 0.2,
322
+ "y2": 1
323
+ }
324
+ },
325
+ {
326
+ "time": 7.2,
327
+ "value": 1
328
+ },
329
+ {
330
+ "time": 13,
331
+ "value": 1,
332
+ "out": {
333
+ "type": "cubicBezier",
334
+ "x1": 0,
335
+ "y1": 0,
336
+ "x2": 0.2,
337
+ "y2": 1
338
+ }
339
+ },
340
+ {
341
+ "time": 13.35,
342
+ "value": 0
343
+ }
344
+ ]
345
+ },
346
+ "y": {
347
+ "keyframes": [
348
+ {
349
+ "time": 6.9,
350
+ "value": 604,
351
+ "out": {
352
+ "type": "cubicBezier",
353
+ "x1": 0,
354
+ "y1": 0,
355
+ "x2": 0.2,
356
+ "y2": 1
357
+ }
358
+ },
359
+ {
360
+ "time": 7.2,
361
+ "value": 584
362
+ }
363
+ ]
364
+ }
365
+ }
366
+ }
367
+ },
368
+ {
369
+ "id": "caption_billing",
370
+ "type": "group",
371
+ "x": 330,
372
+ "y": 584,
373
+ "opacity": 0,
374
+ "children": [
375
+ {
376
+ "id": "caption_billing-bg",
377
+ "type": "path",
378
+ "d": "M 22 0 L 598 0 Q 620 0 620 22 L 620 70 Q 620 92 598 92 L 22 92 Q 0 92 0 70 L 0 22 Q 0 0 22 0 Z",
379
+ "fill": "#09192e",
380
+ "stroke": "#173054",
381
+ "strokeWidth": 1.5
382
+ },
383
+ {
384
+ "id": "caption_billing-chip",
385
+ "type": "group",
386
+ "x": 20,
387
+ "y": 18,
388
+ "children": [
389
+ {
390
+ "id": "caption_billing-chip-bg",
391
+ "type": "path",
392
+ "d": "M 14 0 L 82 0 Q 96 0 96 14 L 96 14 Q 96 28 82 28 L 14 28 Q 0 28 0 14 L 0 14 Q 0 0 14 0 Z",
393
+ "fill": "#0b2648",
394
+ "stroke": "#1d4c7f",
395
+ "strokeWidth": 1
396
+ },
397
+ {
398
+ "id": "caption_billing-chip-text",
399
+ "type": "text",
400
+ "x": 48,
401
+ "y": 14,
402
+ "text": "Plan change",
403
+ "align": "center",
404
+ "valign": "middle",
405
+ "fontSize": 12,
406
+ "fontFamily": "Roboto, Arial, sans-serif",
407
+ "weight": 700,
408
+ "fill": "#7dd3fc"
409
+ }
410
+ ]
411
+ },
412
+ {
413
+ "id": "caption_billing-body",
414
+ "type": "text",
415
+ "x": 20,
416
+ "y": 56,
417
+ "text": "Use camera zoom to spotlight one setting instead of crowding the screen.",
418
+ "align": "left",
419
+ "valign": "top",
420
+ "fontSize": 15,
421
+ "fontFamily": "Roboto, Arial, sans-serif",
422
+ "weight": 400,
423
+ "fill": "#e2e8f0",
424
+ "maxWidth": 580
425
+ }
426
+ ],
427
+ "timeline": {
428
+ "tracks": {
429
+ "opacity": {
430
+ "keyframes": [
431
+ {
432
+ "time": 12.5,
433
+ "value": 0,
434
+ "out": {
435
+ "type": "cubicBezier",
436
+ "x1": 0,
437
+ "y1": 0,
438
+ "x2": 0.2,
439
+ "y2": 1
440
+ }
441
+ },
442
+ {
443
+ "time": 12.8,
444
+ "value": 1
445
+ },
446
+ {
447
+ "time": 18.2,
448
+ "value": 1,
449
+ "out": {
450
+ "type": "cubicBezier",
451
+ "x1": 0,
452
+ "y1": 0,
453
+ "x2": 0.2,
454
+ "y2": 1
455
+ }
456
+ },
457
+ {
458
+ "time": 18.55,
459
+ "value": 0
460
+ }
461
+ ]
462
+ },
463
+ "y": {
464
+ "keyframes": [
465
+ {
466
+ "time": 12.5,
467
+ "value": 604,
468
+ "out": {
469
+ "type": "cubicBezier",
470
+ "x1": 0,
471
+ "y1": 0,
472
+ "x2": 0.2,
473
+ "y2": 1
474
+ }
475
+ },
476
+ {
477
+ "time": 12.8,
478
+ "value": 584
479
+ }
480
+ ]
481
+ }
482
+ }
483
+ }
484
+ },
485
+ {
486
+ "id": "caption_save",
487
+ "type": "group",
488
+ "x": 330,
489
+ "y": 584,
490
+ "opacity": 0,
491
+ "children": [
492
+ {
493
+ "id": "caption_save-bg",
494
+ "type": "path",
495
+ "d": "M 22 0 L 598 0 Q 620 0 620 22 L 620 70 Q 620 92 598 92 L 22 92 Q 0 92 0 70 L 0 22 Q 0 0 22 0 Z",
496
+ "fill": "#09192e",
497
+ "stroke": "#173054",
498
+ "strokeWidth": 1.5
499
+ },
500
+ {
501
+ "id": "caption_save-chip",
502
+ "type": "group",
503
+ "x": 20,
504
+ "y": 18,
505
+ "children": [
506
+ {
507
+ "id": "caption_save-chip-bg",
508
+ "type": "path",
509
+ "d": "M 14 0 L 82 0 Q 96 0 96 14 L 96 14 Q 96 28 82 28 L 14 28 Q 0 28 0 14 L 0 14 Q 0 0 14 0 Z",
510
+ "fill": "#0b2648",
511
+ "stroke": "#1d4c7f",
512
+ "strokeWidth": 1
513
+ },
514
+ {
515
+ "id": "caption_save-chip-text",
516
+ "type": "text",
517
+ "x": 48,
518
+ "y": 14,
519
+ "text": "Confirmation",
520
+ "align": "center",
521
+ "valign": "middle",
522
+ "fontSize": 12,
523
+ "fontFamily": "Roboto, Arial, sans-serif",
524
+ "weight": 700,
525
+ "fill": "#7dd3fc"
526
+ }
527
+ ]
528
+ },
529
+ {
530
+ "id": "caption_save-body",
531
+ "type": "text",
532
+ "x": 20,
533
+ "y": 56,
534
+ "text": "End on the save action and a visible success state so the flow feels complete.",
535
+ "align": "left",
536
+ "valign": "top",
537
+ "fontSize": 15,
538
+ "fontFamily": "Roboto, Arial, sans-serif",
539
+ "weight": 400,
540
+ "fill": "#e2e8f0",
541
+ "maxWidth": 580
542
+ }
543
+ ],
544
+ "timeline": {
545
+ "tracks": {
546
+ "opacity": {
547
+ "keyframes": [
548
+ {
549
+ "time": 17.7,
550
+ "value": 0,
551
+ "out": {
552
+ "type": "cubicBezier",
553
+ "x1": 0,
554
+ "y1": 0,
555
+ "x2": 0.2,
556
+ "y2": 1
557
+ }
558
+ },
559
+ {
560
+ "time": 18,
561
+ "value": 1
562
+ },
563
+ {
564
+ "time": 23.4,
565
+ "value": 1,
566
+ "out": {
567
+ "type": "cubicBezier",
568
+ "x1": 0,
569
+ "y1": 0,
570
+ "x2": 0.2,
571
+ "y2": 1
572
+ }
573
+ },
574
+ {
575
+ "time": 23.75,
576
+ "value": 0
577
+ }
578
+ ]
579
+ },
580
+ "y": {
581
+ "keyframes": [
582
+ {
583
+ "time": 17.7,
584
+ "value": 604,
585
+ "out": {
586
+ "type": "cubicBezier",
587
+ "x1": 0,
588
+ "y1": 0,
589
+ "x2": 0.2,
590
+ "y2": 1
591
+ }
592
+ },
593
+ {
594
+ "time": 18,
595
+ "value": 584
596
+ }
597
+ ]
598
+ }
599
+ }
600
+ }
601
+ },
602
+ {
603
+ "id": "app-camera",
604
+ "type": "group",
605
+ "x": 124.79999999999995,
606
+ "y": 92,
607
+ "scale": 0.92,
608
+ "origin": [
609
+ 0,
610
+ 0
611
+ ],
612
+ "opacity": 0,
613
+ "children": [
614
+ {
615
+ "id": "shell",
616
+ "type": "group",
617
+ "x": 0,
618
+ "y": 0,
619
+ "children": [
620
+ {
621
+ "id": "shell-bg",
622
+ "type": "path",
623
+ "d": "M 24 0 L 1096 0 Q 1120 0 1120 24 L 1120 556 Q 1120 580 1096 580 L 24 580 Q 0 580 0 556 L 0 24 Q 0 0 24 0 Z",
624
+ "fill": "#f8fafc",
625
+ "stroke": "#dbe4f0",
626
+ "strokeWidth": 1.5
627
+ },
628
+ {
629
+ "id": "shell-top",
630
+ "type": "path",
631
+ "d": "M 24 0 L 1096 0 Q 1120 0 1120 24 L 1120 34 Q 1120 58 1096 58 L 24 58 Q 0 58 0 34 L 0 24 Q 0 0 24 0 Z",
632
+ "fill": "#ffffff",
633
+ "stroke": "#dbe4f0",
634
+ "strokeWidth": 1
635
+ },
636
+ {
637
+ "id": "shell-sidebar",
638
+ "type": "path",
639
+ "d": "M 24 0 L 184 0 Q 208 0 208 24 L 208 556 Q 208 580 184 580 L 24 580 Q 0 580 0 556 L 0 24 Q 0 0 24 0 Z",
640
+ "fill": "#0f172a",
641
+ "stroke": "none"
642
+ },
643
+ {
644
+ "id": "shell-content-bg",
645
+ "type": "path",
646
+ "d": "M 208 58 L 1120 58 Q 1120 58 1120 58 L 1120 580 Q 1120 580 1120 580 L 208 580 Q 208 580 208 580 L 208 58 Q 208 58 208 58 Z",
647
+ "fill": "#eff4fb",
648
+ "stroke": "none"
649
+ }
650
+ ]
651
+ },
652
+ {
653
+ "id": "sidebar",
654
+ "type": "group",
655
+ "x": 0,
656
+ "y": 0,
657
+ "children": [
658
+ {
659
+ "id": "brand-mark",
660
+ "type": "text",
661
+ "x": 32,
662
+ "y": 24,
663
+ "text": "sketchmark",
664
+ "align": "left",
665
+ "valign": "top",
666
+ "fontSize": 19,
667
+ "fontFamily": "Roboto, Arial, sans-serif",
668
+ "weight": 700,
669
+ "fill": "#f8fafc"
670
+ },
671
+ {
672
+ "id": "brand-sub",
673
+ "type": "text",
674
+ "x": 32,
675
+ "y": 46,
676
+ "text": "workspace demo",
677
+ "align": "left",
678
+ "valign": "top",
679
+ "fontSize": 11,
680
+ "fontFamily": "Roboto, Arial, sans-serif",
681
+ "weight": 500,
682
+ "fill": "#9fb3cf"
683
+ },
684
+ {
685
+ "id": "nav-home",
686
+ "type": "group",
687
+ "x": 20,
688
+ "y": 108,
689
+ "children": [
690
+ {
691
+ "id": "nav-home-bg",
692
+ "type": "path",
693
+ "d": "M 12 0 L 152 0 Q 164 0 164 12 L 164 24 Q 164 36 152 36 L 12 36 Q 0 36 0 24 L 0 12 Q 0 0 12 0 Z",
694
+ "fill": "none",
695
+ "stroke": "none",
696
+ "strokeWidth": 1
697
+ },
698
+ {
699
+ "id": "nav-home-text",
700
+ "type": "text",
701
+ "x": 16,
702
+ "y": 10,
703
+ "text": "Overview",
704
+ "align": "left",
705
+ "valign": "top",
706
+ "fontSize": 13,
707
+ "fontFamily": "Roboto, Arial, sans-serif",
708
+ "weight": 500,
709
+ "fill": "#dbe5f2"
710
+ }
711
+ ]
712
+ },
713
+ {
714
+ "id": "nav-projects",
715
+ "type": "group",
716
+ "x": 20,
717
+ "y": 154,
718
+ "children": [
719
+ {
720
+ "id": "nav-projects-bg",
721
+ "type": "path",
722
+ "d": "M 12 0 L 152 0 Q 164 0 164 12 L 164 24 Q 164 36 152 36 L 12 36 Q 0 36 0 24 L 0 12 Q 0 0 12 0 Z",
723
+ "fill": "none",
724
+ "stroke": "none",
725
+ "strokeWidth": 1
726
+ },
727
+ {
728
+ "id": "nav-projects-text",
729
+ "type": "text",
730
+ "x": 16,
731
+ "y": 10,
732
+ "text": "Projects",
733
+ "align": "left",
734
+ "valign": "top",
735
+ "fontSize": 13,
736
+ "fontFamily": "Roboto, Arial, sans-serif",
737
+ "weight": 500,
738
+ "fill": "#dbe5f2"
739
+ }
740
+ ]
741
+ },
742
+ {
743
+ "id": "nav-settings",
744
+ "type": "group",
745
+ "x": 20,
746
+ "y": 200,
747
+ "children": [
748
+ {
749
+ "id": "nav-settings-bg",
750
+ "type": "path",
751
+ "d": "M 12 0 L 152 0 Q 164 0 164 12 L 164 24 Q 164 36 152 36 L 12 36 Q 0 36 0 24 L 0 12 Q 0 0 12 0 Z",
752
+ "fill": "#eff6ff",
753
+ "stroke": "#bfdbfe",
754
+ "strokeWidth": 1
755
+ },
756
+ {
757
+ "id": "nav-settings-text",
758
+ "type": "text",
759
+ "x": 16,
760
+ "y": 10,
761
+ "text": "Team Settings",
762
+ "align": "left",
763
+ "valign": "top",
764
+ "fontSize": 13,
765
+ "fontFamily": "Roboto, Arial, sans-serif",
766
+ "weight": 700,
767
+ "fill": "#2563eb"
768
+ }
769
+ ]
770
+ },
771
+ {
772
+ "id": "nav-billing",
773
+ "type": "group",
774
+ "x": 20,
775
+ "y": 246,
776
+ "children": [
777
+ {
778
+ "id": "nav-billing-bg",
779
+ "type": "path",
780
+ "d": "M 12 0 L 152 0 Q 164 0 164 12 L 164 24 Q 164 36 152 36 L 12 36 Q 0 36 0 24 L 0 12 Q 0 0 12 0 Z",
781
+ "fill": "none",
782
+ "stroke": "none",
783
+ "strokeWidth": 1
784
+ },
785
+ {
786
+ "id": "nav-billing-text",
787
+ "type": "text",
788
+ "x": 16,
789
+ "y": 10,
790
+ "text": "Billing",
791
+ "align": "left",
792
+ "valign": "top",
793
+ "fontSize": 13,
794
+ "fontFamily": "Roboto, Arial, sans-serif",
795
+ "weight": 500,
796
+ "fill": "#dbe5f2"
797
+ }
798
+ ]
799
+ },
800
+ {
801
+ "id": "nav-audit",
802
+ "type": "group",
803
+ "x": 20,
804
+ "y": 292,
805
+ "children": [
806
+ {
807
+ "id": "nav-audit-bg",
808
+ "type": "path",
809
+ "d": "M 12 0 L 152 0 Q 164 0 164 12 L 164 24 Q 164 36 152 36 L 12 36 Q 0 36 0 24 L 0 12 Q 0 0 12 0 Z",
810
+ "fill": "none",
811
+ "stroke": "none",
812
+ "strokeWidth": 1
813
+ },
814
+ {
815
+ "id": "nav-audit-text",
816
+ "type": "text",
817
+ "x": 16,
818
+ "y": 10,
819
+ "text": "Audit Log",
820
+ "align": "left",
821
+ "valign": "top",
822
+ "fontSize": 13,
823
+ "fontFamily": "Roboto, Arial, sans-serif",
824
+ "weight": 500,
825
+ "fill": "#dbe5f2"
826
+ }
827
+ ]
828
+ },
829
+ {
830
+ "id": "sidebar-footer-chip",
831
+ "type": "group",
832
+ "x": 28,
833
+ "y": 488,
834
+ "children": [
835
+ {
836
+ "id": "sidebar-chip-bg",
837
+ "type": "path",
838
+ "d": "M 12 0 L 140 0 Q 152 0 152 12 L 152 28 Q 152 40 140 40 L 12 40 Q 0 40 0 28 L 0 12 Q 0 0 12 0 Z",
839
+ "fill": "#112544",
840
+ "stroke": "#20406f",
841
+ "strokeWidth": 1
842
+ },
843
+ {
844
+ "id": "sidebar-chip-text",
845
+ "type": "text",
846
+ "x": 16,
847
+ "y": 12,
848
+ "text": "4 teammates online",
849
+ "align": "left",
850
+ "valign": "top",
851
+ "fontSize": 12,
852
+ "fontFamily": "Roboto, Arial, sans-serif",
853
+ "weight": 500,
854
+ "fill": "#bfdbfe"
855
+ }
856
+ ]
857
+ }
858
+ ]
859
+ },
860
+ {
861
+ "id": "topbar",
862
+ "type": "group",
863
+ "x": 232,
864
+ "y": 12,
865
+ "children": [
866
+ {
867
+ "id": "search-bg",
868
+ "type": "path",
869
+ "d": "M 10 0 L 290 0 Q 300 0 300 10 L 300 24 Q 300 34 290 34 L 10 34 Q 0 34 0 24 L 0 10 Q 0 0 10 0 Z",
870
+ "fill": "#f8fafc",
871
+ "stroke": "#d7e2f0",
872
+ "strokeWidth": 1
873
+ },
874
+ {
875
+ "id": "search-text",
876
+ "type": "text",
877
+ "x": 16,
878
+ "y": 10,
879
+ "text": "Search settings, billing, teammates",
880
+ "align": "left",
881
+ "valign": "top",
882
+ "fontSize": 12,
883
+ "fontFamily": "Roboto, Arial, sans-serif",
884
+ "weight": 400,
885
+ "fill": "#94a3b8"
886
+ },
887
+ {
888
+ "id": "top-chip",
889
+ "type": "group",
890
+ "x": 724,
891
+ "y": 2,
892
+ "children": [
893
+ {
894
+ "id": "top-chip-bg",
895
+ "type": "path",
896
+ "d": "M 15 0 L 113 0 Q 128 0 128 15 L 128 15 Q 128 30 113 30 L 15 30 Q 0 30 0 15 L 0 15 Q 0 0 15 0 Z",
897
+ "fill": "#102444",
898
+ "stroke": "#264b87",
899
+ "strokeWidth": 1
900
+ },
901
+ {
902
+ "id": "top-chip-text",
903
+ "type": "text",
904
+ "x": 64,
905
+ "y": 15,
906
+ "text": "Preview mode",
907
+ "align": "center",
908
+ "valign": "middle",
909
+ "fontSize": 12,
910
+ "fontFamily": "Roboto, Arial, sans-serif",
911
+ "weight": 600,
912
+ "fill": "#93c5fd"
913
+ }
914
+ ]
915
+ },
916
+ {
917
+ "id": "top-avatar",
918
+ "type": "group",
919
+ "x": 974,
920
+ "y": 0,
921
+ "children": [
922
+ {
923
+ "id": "top-avatar-circle",
924
+ "type": "path",
925
+ "d": "M 0 17 a 17 17 0 1 0 34 0 a 17 17 0 1 0 -34 0",
926
+ "fill": "#c7d2fe",
927
+ "stroke": "none"
928
+ },
929
+ {
930
+ "id": "top-avatar-label",
931
+ "type": "text",
932
+ "x": 17,
933
+ "y": 17,
934
+ "text": "JD",
935
+ "align": "center",
936
+ "valign": "middle",
937
+ "fontSize": 11,
938
+ "fontFamily": "Roboto, Arial, sans-serif",
939
+ "weight": 700,
940
+ "fill": "#1e3a8a"
941
+ }
942
+ ]
943
+ }
944
+ ]
945
+ },
946
+ {
947
+ "id": "page-header",
948
+ "type": "group",
949
+ "x": 236,
950
+ "y": 92,
951
+ "children": [
952
+ {
953
+ "id": "page-eyebrow",
954
+ "type": "text",
955
+ "x": 0,
956
+ "y": 0,
957
+ "text": "Team workspace",
958
+ "align": "left",
959
+ "valign": "top",
960
+ "fontSize": 12,
961
+ "fontFamily": "Roboto, Arial, sans-serif",
962
+ "weight": 600,
963
+ "fill": "#2563eb"
964
+ },
965
+ {
966
+ "id": "page-title",
967
+ "type": "text",
968
+ "x": 0,
969
+ "y": 22,
970
+ "text": "Settings that stay easy to explain",
971
+ "align": "left",
972
+ "valign": "top",
973
+ "fontSize": 30,
974
+ "fontFamily": "Roboto, Arial, sans-serif",
975
+ "weight": 700,
976
+ "fill": "#0f172a"
977
+ },
978
+ {
979
+ "id": "page-body",
980
+ "type": "text",
981
+ "x": 0,
982
+ "y": 64,
983
+ "text": "A demo flow works best when the camera and cursor both guide attention.",
984
+ "align": "left",
985
+ "valign": "top",
986
+ "fontSize": 15,
987
+ "fontFamily": "Roboto, Arial, sans-serif",
988
+ "weight": 400,
989
+ "fill": "#475569"
990
+ }
991
+ ]
992
+ },
993
+ {
994
+ "id": "profile-card",
995
+ "type": "group",
996
+ "x": 236,
997
+ "y": 96,
998
+ "children": [
999
+ {
1000
+ "id": "profile-card-bg",
1001
+ "type": "path",
1002
+ "d": "M 20 0 L 338 0 Q 358 0 358 20 L 358 178 Q 358 198 338 198 L 20 198 Q 0 198 0 178 L 0 20 Q 0 0 20 0 Z",
1003
+ "fill": "#ffffff",
1004
+ "stroke": "#dbe4f0",
1005
+ "strokeWidth": 1
1006
+ },
1007
+ {
1008
+ "id": "profile-title",
1009
+ "type": "text",
1010
+ "x": 24,
1011
+ "y": 20,
1012
+ "text": "Workspace profile",
1013
+ "align": "left",
1014
+ "valign": "top",
1015
+ "fontSize": 17,
1016
+ "fontFamily": "Roboto, Arial, sans-serif",
1017
+ "weight": 600,
1018
+ "fill": "#0f172a"
1019
+ },
1020
+ {
1021
+ "id": "profile-body",
1022
+ "type": "text",
1023
+ "x": 24,
1024
+ "y": 44,
1025
+ "text": "Show identity details before you zoom into smaller controls.",
1026
+ "align": "left",
1027
+ "valign": "top",
1028
+ "fontSize": 13,
1029
+ "fontFamily": "Roboto, Arial, sans-serif",
1030
+ "weight": 400,
1031
+ "fill": "#475569"
1032
+ },
1033
+ {
1034
+ "id": "profile-avatar",
1035
+ "type": "group",
1036
+ "x": 24,
1037
+ "y": 88,
1038
+ "children": [
1039
+ {
1040
+ "id": "profile-avatar-circle",
1041
+ "type": "path",
1042
+ "d": "M 0 24 a 24 24 0 1 0 48 0 a 24 24 0 1 0 -48 0",
1043
+ "fill": "#bfdbfe",
1044
+ "stroke": "none"
1045
+ },
1046
+ {
1047
+ "id": "profile-avatar-label",
1048
+ "type": "text",
1049
+ "x": 24,
1050
+ "y": 24,
1051
+ "text": "NS",
1052
+ "align": "center",
1053
+ "valign": "middle",
1054
+ "fontSize": 15,
1055
+ "fontFamily": "Roboto, Arial, sans-serif",
1056
+ "weight": 700,
1057
+ "fill": "#1e3a8a"
1058
+ }
1059
+ ]
1060
+ },
1061
+ {
1062
+ "id": "profile-name",
1063
+ "type": "text",
1064
+ "x": 86,
1065
+ "y": 90,
1066
+ "text": "Northstar Studio",
1067
+ "align": "left",
1068
+ "valign": "top",
1069
+ "fontSize": 18,
1070
+ "fontFamily": "Roboto, Arial, sans-serif",
1071
+ "weight": 600,
1072
+ "fill": "#0f172a"
1073
+ },
1074
+ {
1075
+ "id": "profile-meta",
1076
+ "type": "text",
1077
+ "x": 86,
1078
+ "y": 116,
1079
+ "text": "8 members • EU region",
1080
+ "align": "left",
1081
+ "valign": "top",
1082
+ "fontSize": 12,
1083
+ "fontFamily": "Roboto, Arial, sans-serif",
1084
+ "weight": 500,
1085
+ "fill": "#64748b"
1086
+ },
1087
+ {
1088
+ "id": "profile-field-1",
1089
+ "type": "group",
1090
+ "x": 24,
1091
+ "y": 152,
1092
+ "children": [
1093
+ {
1094
+ "id": "profile-field-1-label",
1095
+ "type": "text",
1096
+ "x": 0,
1097
+ "y": 0,
1098
+ "text": "Workspace name",
1099
+ "align": "left",
1100
+ "valign": "top",
1101
+ "fontSize": 11,
1102
+ "fontFamily": "Roboto, Arial, sans-serif",
1103
+ "weight": 600,
1104
+ "fill": "#64748b"
1105
+ },
1106
+ {
1107
+ "id": "profile-field-1-line",
1108
+ "type": "path",
1109
+ "d": "M 0 24 L 150 24",
1110
+ "stroke": "#e5edf6",
1111
+ "strokeWidth": 2,
1112
+ "fill": "none"
1113
+ }
1114
+ ]
1115
+ },
1116
+ {
1117
+ "id": "profile-field-2",
1118
+ "type": "group",
1119
+ "x": 186,
1120
+ "y": 152,
1121
+ "children": [
1122
+ {
1123
+ "id": "profile-field-2-label",
1124
+ "type": "text",
1125
+ "x": 0,
1126
+ "y": 0,
1127
+ "text": "Support email",
1128
+ "align": "left",
1129
+ "valign": "top",
1130
+ "fontSize": 11,
1131
+ "fontFamily": "Roboto, Arial, sans-serif",
1132
+ "weight": 600,
1133
+ "fill": "#64748b"
1134
+ },
1135
+ {
1136
+ "id": "profile-field-2-line",
1137
+ "type": "path",
1138
+ "d": "M 0 24 L 148 24",
1139
+ "stroke": "#e5edf6",
1140
+ "strokeWidth": 2,
1141
+ "fill": "none"
1142
+ }
1143
+ ]
1144
+ }
1145
+ ]
1146
+ },
1147
+ {
1148
+ "id": "notifications-card",
1149
+ "type": "group",
1150
+ "x": 618,
1151
+ "y": 96,
1152
+ "children": [
1153
+ {
1154
+ "id": "notifications-card-bg",
1155
+ "type": "path",
1156
+ "d": "M 20 0 L 410 0 Q 430 0 430 20 L 430 178 Q 430 198 410 198 L 20 198 Q 0 198 0 178 L 0 20 Q 0 0 20 0 Z",
1157
+ "fill": "#ffffff",
1158
+ "stroke": "#dbe4f0",
1159
+ "strokeWidth": 1
1160
+ },
1161
+ {
1162
+ "id": "notif-title",
1163
+ "type": "text",
1164
+ "x": 24,
1165
+ "y": 20,
1166
+ "text": "Notifications",
1167
+ "align": "left",
1168
+ "valign": "top",
1169
+ "fontSize": 17,
1170
+ "fontFamily": "Roboto, Arial, sans-serif",
1171
+ "weight": 600,
1172
+ "fill": "#0f172a"
1173
+ },
1174
+ {
1175
+ "id": "notif-body",
1176
+ "type": "text",
1177
+ "x": 24,
1178
+ "y": 44,
1179
+ "text": "Zooming here turns a tiny toggle into a clear, narrated moment.",
1180
+ "align": "left",
1181
+ "valign": "top",
1182
+ "fontSize": 13,
1183
+ "fontFamily": "Roboto, Arial, sans-serif",
1184
+ "weight": 400,
1185
+ "fill": "#475569"
1186
+ },
1187
+ {
1188
+ "id": "notif-weekly",
1189
+ "type": "group",
1190
+ "x": 24,
1191
+ "y": 82,
1192
+ "children": [
1193
+ {
1194
+ "id": "notif-weekly-label",
1195
+ "type": "text",
1196
+ "x": 0,
1197
+ "y": 0,
1198
+ "text": "Weekly summary",
1199
+ "align": "left",
1200
+ "valign": "top",
1201
+ "fontSize": 15,
1202
+ "fontFamily": "Roboto, Arial, sans-serif",
1203
+ "weight": 600,
1204
+ "fill": "#0f172a"
1205
+ },
1206
+ {
1207
+ "id": "notif-weekly-body",
1208
+ "type": "text",
1209
+ "x": 0,
1210
+ "y": 22,
1211
+ "text": "Send one digest every Monday morning.",
1212
+ "align": "left",
1213
+ "valign": "top",
1214
+ "fontSize": 12,
1215
+ "fontFamily": "Roboto, Arial, sans-serif",
1216
+ "weight": 400,
1217
+ "fill": "#475569"
1218
+ },
1219
+ {
1220
+ "id": "notif-weekly-toggle-bg",
1221
+ "type": "path",
1222
+ "d": "M 315 8 L 341 8 Q 356 8 356 23 L 356 23 Q 356 38 341 38 L 315 38 Q 300 38 300 23 L 300 23 Q 300 8 315 8 Z",
1223
+ "fill": "#dbe3ee",
1224
+ "stroke": "none",
1225
+ "timeline": {
1226
+ "tracks": {
1227
+ "fill": {
1228
+ "keyframes": [
1229
+ {
1230
+ "time": 0,
1231
+ "value": "#dbe3ee"
1232
+ },
1233
+ {
1234
+ "time": 8.95,
1235
+ "value": "#dbe3ee",
1236
+ "out": {
1237
+ "type": "cubicBezier",
1238
+ "x1": 0.2,
1239
+ "y1": 1,
1240
+ "x2": 0.2,
1241
+ "y2": 1
1242
+ }
1243
+ },
1244
+ {
1245
+ "time": 9.15,
1246
+ "value": "#2563eb"
1247
+ }
1248
+ ]
1249
+ }
1250
+ }
1251
+ }
1252
+ },
1253
+ {
1254
+ "id": "notif-weekly-toggle-knob",
1255
+ "type": "path",
1256
+ "d": "M 297 23 a 11 11 0 1 0 22 0 a 11 11 0 1 0 -22 0",
1257
+ "fill": "#ffffff",
1258
+ "stroke": "none",
1259
+ "timeline": {
1260
+ "tracks": {
1261
+ "x": {
1262
+ "keyframes": [
1263
+ {
1264
+ "time": 0,
1265
+ "value": 0
1266
+ },
1267
+ {
1268
+ "time": 8.95,
1269
+ "value": 0,
1270
+ "out": {
1271
+ "type": "cubicBezier",
1272
+ "x1": 0.2,
1273
+ "y1": 1,
1274
+ "x2": 0.2,
1275
+ "y2": 1
1276
+ }
1277
+ },
1278
+ {
1279
+ "time": 9.15,
1280
+ "value": 26
1281
+ }
1282
+ ]
1283
+ }
1284
+ }
1285
+ }
1286
+ }
1287
+ ]
1288
+ },
1289
+ {
1290
+ "id": "notif-divider-1",
1291
+ "type": "path",
1292
+ "d": "M 24 128 L 406 128",
1293
+ "stroke": "#e5edf6",
1294
+ "strokeWidth": 1,
1295
+ "fill": "none"
1296
+ },
1297
+ {
1298
+ "id": "notif-incidents",
1299
+ "type": "group",
1300
+ "x": 24,
1301
+ "y": 140,
1302
+ "children": [
1303
+ {
1304
+ "id": "notif-incidents-label",
1305
+ "type": "text",
1306
+ "x": 0,
1307
+ "y": 0,
1308
+ "text": "Critical incidents",
1309
+ "align": "left",
1310
+ "valign": "top",
1311
+ "fontSize": 15,
1312
+ "fontFamily": "Roboto, Arial, sans-serif",
1313
+ "weight": 600,
1314
+ "fill": "#0f172a"
1315
+ },
1316
+ {
1317
+ "id": "notif-incidents-body",
1318
+ "type": "text",
1319
+ "x": 0,
1320
+ "y": 22,
1321
+ "text": "Always enabled for admins and owners.",
1322
+ "align": "left",
1323
+ "valign": "top",
1324
+ "fontSize": 12,
1325
+ "fontFamily": "Roboto, Arial, sans-serif",
1326
+ "weight": 400,
1327
+ "fill": "#475569"
1328
+ },
1329
+ {
1330
+ "id": "notif-incidents-toggle-bg",
1331
+ "type": "path",
1332
+ "d": "M 315 8 L 341 8 Q 356 8 356 23 L 356 23 Q 356 38 341 38 L 315 38 Q 300 38 300 23 L 300 23 Q 300 8 315 8 Z",
1333
+ "fill": "#2563eb",
1334
+ "stroke": "none"
1335
+ },
1336
+ {
1337
+ "id": "notif-incidents-toggle-knob",
1338
+ "type": "path",
1339
+ "d": "M 323 23 a 11 11 0 1 0 22 0 a 11 11 0 1 0 -22 0",
1340
+ "fill": "#ffffff",
1341
+ "stroke": "none"
1342
+ }
1343
+ ]
1344
+ }
1345
+ ]
1346
+ },
1347
+ {
1348
+ "id": "billing-card",
1349
+ "type": "group",
1350
+ "x": 236,
1351
+ "y": 316,
1352
+ "children": [
1353
+ {
1354
+ "id": "billing-card-bg",
1355
+ "type": "path",
1356
+ "d": "M 20 0 L 380 0 Q 400 0 400 20 L 400 168 Q 400 188 380 188 L 20 188 Q 0 188 0 168 L 0 20 Q 0 0 20 0 Z",
1357
+ "fill": "#ffffff",
1358
+ "stroke": "#dbe4f0",
1359
+ "strokeWidth": 1
1360
+ },
1361
+ {
1362
+ "id": "billing-title",
1363
+ "type": "text",
1364
+ "x": 24,
1365
+ "y": 20,
1366
+ "text": "Billing",
1367
+ "align": "left",
1368
+ "valign": "top",
1369
+ "fontSize": 17,
1370
+ "fontFamily": "Roboto, Arial, sans-serif",
1371
+ "weight": 600,
1372
+ "fill": "#0f172a"
1373
+ },
1374
+ {
1375
+ "id": "billing-body",
1376
+ "type": "text",
1377
+ "x": 24,
1378
+ "y": 44,
1379
+ "text": "Use a small motion change to make plan selection feel deliberate.",
1380
+ "align": "left",
1381
+ "valign": "top",
1382
+ "fontSize": 13,
1383
+ "fontFamily": "Roboto, Arial, sans-serif",
1384
+ "weight": 400,
1385
+ "fill": "#475569"
1386
+ },
1387
+ {
1388
+ "id": "billing-segment-bg",
1389
+ "type": "path",
1390
+ "d": "M 38 82 L 196 82 Q 210 82 210 96 L 210 110 Q 210 124 196 124 L 38 124 Q 24 124 24 110 L 24 96 Q 24 82 38 82 Z",
1391
+ "fill": "#edf3fb",
1392
+ "stroke": "#d8e4f2",
1393
+ "strokeWidth": 1
1394
+ },
1395
+ {
1396
+ "id": "billing-segment-highlight",
1397
+ "type": "path",
1398
+ "d": "M 42 88 L 100 88 Q 112 88 112 100 L 112 106 Q 112 118 100 118 L 42 118 Q 30 118 30 106 L 30 100 Q 30 88 42 88 Z",
1399
+ "x": 0,
1400
+ "y": 0,
1401
+ "fill": "#dbeafe",
1402
+ "stroke": "#93c5fd",
1403
+ "strokeWidth": 1,
1404
+ "timeline": {
1405
+ "tracks": {
1406
+ "x": {
1407
+ "keyframes": [
1408
+ {
1409
+ "time": 0,
1410
+ "value": 0
1411
+ },
1412
+ {
1413
+ "time": 14.05,
1414
+ "value": 0,
1415
+ "out": {
1416
+ "type": "cubicBezier",
1417
+ "x1": 0.2,
1418
+ "y1": 1,
1419
+ "x2": 0.2,
1420
+ "y2": 1
1421
+ }
1422
+ },
1423
+ {
1424
+ "time": 14.25,
1425
+ "value": 89
1426
+ }
1427
+ ]
1428
+ }
1429
+ }
1430
+ }
1431
+ },
1432
+ {
1433
+ "id": "billing-monthly-label",
1434
+ "type": "text",
1435
+ "x": 71,
1436
+ "y": 103,
1437
+ "text": "Monthly",
1438
+ "align": "center",
1439
+ "valign": "middle",
1440
+ "fontSize": 13,
1441
+ "fontFamily": "Roboto, Arial, sans-serif",
1442
+ "weight": 600,
1443
+ "fill": "#2563eb",
1444
+ "timeline": {
1445
+ "tracks": {
1446
+ "fill": {
1447
+ "keyframes": [
1448
+ {
1449
+ "time": 0,
1450
+ "value": "#2563eb"
1451
+ },
1452
+ {
1453
+ "time": 14.2,
1454
+ "value": "#64748b"
1455
+ }
1456
+ ]
1457
+ }
1458
+ }
1459
+ }
1460
+ },
1461
+ {
1462
+ "id": "billing-annual-label",
1463
+ "type": "text",
1464
+ "x": 160,
1465
+ "y": 103,
1466
+ "text": "Annual",
1467
+ "align": "center",
1468
+ "valign": "middle",
1469
+ "fontSize": 13,
1470
+ "fontFamily": "Roboto, Arial, sans-serif",
1471
+ "weight": 600,
1472
+ "fill": "#64748b",
1473
+ "timeline": {
1474
+ "tracks": {
1475
+ "fill": {
1476
+ "keyframes": [
1477
+ {
1478
+ "time": 0,
1479
+ "value": "#64748b"
1480
+ },
1481
+ {
1482
+ "time": 14.2,
1483
+ "value": "#2563eb"
1484
+ }
1485
+ ]
1486
+ }
1487
+ }
1488
+ }
1489
+ },
1490
+ {
1491
+ "id": "billing-price",
1492
+ "type": "text",
1493
+ "x": 24,
1494
+ "y": 140,
1495
+ "text": "$49 / seat / month",
1496
+ "align": "left",
1497
+ "valign": "top",
1498
+ "fontSize": 28,
1499
+ "fontFamily": "Roboto, Arial, sans-serif",
1500
+ "weight": 700,
1501
+ "fill": "#0f172a",
1502
+ "timeline": {
1503
+ "tracks": {
1504
+ "text": {
1505
+ "keyframes": [
1506
+ {
1507
+ "time": 0,
1508
+ "value": "$49 / seat / month"
1509
+ },
1510
+ {
1511
+ "time": 14.2,
1512
+ "value": "$39 / seat / month"
1513
+ }
1514
+ ]
1515
+ }
1516
+ }
1517
+ }
1518
+ },
1519
+ {
1520
+ "id": "billing-price-note",
1521
+ "type": "text",
1522
+ "x": 24,
1523
+ "y": 170,
1524
+ "text": "Annual billing unlocks a 20% savings and a cleaner renewal cycle.",
1525
+ "align": "left",
1526
+ "valign": "top",
1527
+ "fontSize": 12,
1528
+ "fontFamily": "Roboto, Arial, sans-serif",
1529
+ "weight": 500,
1530
+ "fill": "#10b981"
1531
+ }
1532
+ ]
1533
+ },
1534
+ {
1535
+ "id": "review-card",
1536
+ "type": "group",
1537
+ "x": 658,
1538
+ "y": 332,
1539
+ "children": [
1540
+ {
1541
+ "id": "review-card-bg",
1542
+ "type": "path",
1543
+ "d": "M 20 0 L 370 0 Q 390 0 390 20 L 390 152 Q 390 172 370 172 L 20 172 Q 0 172 0 152 L 0 20 Q 0 0 20 0 Z",
1544
+ "fill": "#ffffff",
1545
+ "stroke": "#dbe4f0",
1546
+ "strokeWidth": 1
1547
+ },
1548
+ {
1549
+ "id": "review-title",
1550
+ "type": "text",
1551
+ "x": 24,
1552
+ "y": 20,
1553
+ "text": "Review changes",
1554
+ "align": "left",
1555
+ "valign": "top",
1556
+ "fontSize": 17,
1557
+ "fontFamily": "Roboto, Arial, sans-serif",
1558
+ "weight": 600,
1559
+ "fill": "#0f172a"
1560
+ },
1561
+ {
1562
+ "id": "review-body",
1563
+ "type": "text",
1564
+ "x": 24,
1565
+ "y": 44,
1566
+ "text": "End the sequence on a single confident action: save and show success.",
1567
+ "align": "left",
1568
+ "valign": "top",
1569
+ "fontSize": 13,
1570
+ "fontFamily": "Roboto, Arial, sans-serif",
1571
+ "weight": 400,
1572
+ "fill": "#475569"
1573
+ },
1574
+ {
1575
+ "id": "review-pill-1",
1576
+ "type": "group",
1577
+ "x": 24,
1578
+ "y": 78,
1579
+ "children": [
1580
+ {
1581
+ "id": "review-pill-1-bg",
1582
+ "type": "path",
1583
+ "d": "M 15 0 L 95 0 Q 110 0 110 15 L 110 15 Q 110 30 95 30 L 15 30 Q 0 30 0 15 L 0 15 Q 0 0 15 0 Z",
1584
+ "fill": "#eff6ff",
1585
+ "stroke": "#bfdbfe",
1586
+ "strokeWidth": 1
1587
+ },
1588
+ {
1589
+ "id": "review-pill-1-text",
1590
+ "type": "text",
1591
+ "x": 55,
1592
+ "y": 15,
1593
+ "text": "Weekly summary",
1594
+ "align": "center",
1595
+ "valign": "middle",
1596
+ "fontSize": 12,
1597
+ "fontFamily": "Roboto, Arial, sans-serif",
1598
+ "weight": 600,
1599
+ "fill": "#2563eb"
1600
+ }
1601
+ ]
1602
+ },
1603
+ {
1604
+ "id": "review-pill-2",
1605
+ "type": "group",
1606
+ "x": 144,
1607
+ "y": 78,
1608
+ "children": [
1609
+ {
1610
+ "id": "review-pill-2-bg",
1611
+ "type": "path",
1612
+ "d": "M 15 0 L 73 0 Q 88 0 88 15 L 88 15 Q 88 30 73 30 L 15 30 Q 0 30 0 15 L 0 15 Q 0 0 15 0 Z",
1613
+ "fill": "#ecfdf5",
1614
+ "stroke": "#a7f3d0",
1615
+ "strokeWidth": 1
1616
+ },
1617
+ {
1618
+ "id": "review-pill-2-text",
1619
+ "type": "text",
1620
+ "x": 44,
1621
+ "y": 15,
1622
+ "text": "Annual",
1623
+ "align": "center",
1624
+ "valign": "middle",
1625
+ "fontSize": 12,
1626
+ "fontFamily": "Roboto, Arial, sans-serif",
1627
+ "weight": 600,
1628
+ "fill": "#10b981"
1629
+ }
1630
+ ]
1631
+ },
1632
+ {
1633
+ "id": "save-button",
1634
+ "type": "group",
1635
+ "x": 24,
1636
+ "y": 106,
1637
+ "origin": [
1638
+ 70,
1639
+ 22
1640
+ ],
1641
+ "children": [
1642
+ {
1643
+ "id": "save-button-bg",
1644
+ "type": "path",
1645
+ "d": "M 14 0 L 126 0 Q 140 0 140 14 L 140 30 Q 140 44 126 44 L 14 44 Q 0 44 0 30 L 0 14 Q 0 0 14 0 Z",
1646
+ "fill": "#2563eb",
1647
+ "stroke": "none"
1648
+ },
1649
+ {
1650
+ "id": "save-button-label",
1651
+ "type": "text",
1652
+ "x": 70,
1653
+ "y": 22,
1654
+ "text": "Save changes",
1655
+ "align": "center",
1656
+ "valign": "middle",
1657
+ "fontSize": 14,
1658
+ "fontFamily": "Roboto, Arial, sans-serif",
1659
+ "weight": 600,
1660
+ "fill": "#ffffff",
1661
+ "timeline": {
1662
+ "tracks": {
1663
+ "text": {
1664
+ "keyframes": [
1665
+ {
1666
+ "time": 0,
1667
+ "value": "Save changes"
1668
+ },
1669
+ {
1670
+ "time": 19.9,
1671
+ "value": "Saved"
1672
+ }
1673
+ ]
1674
+ }
1675
+ }
1676
+ }
1677
+ }
1678
+ ],
1679
+ "timeline": {
1680
+ "tracks": {
1681
+ "scale": {
1682
+ "keyframes": [
1683
+ {
1684
+ "time": 19.5,
1685
+ "value": 1,
1686
+ "out": {
1687
+ "type": "cubicBezier",
1688
+ "x1": 0.2,
1689
+ "y1": 1,
1690
+ "x2": 0.2,
1691
+ "y2": 1
1692
+ }
1693
+ },
1694
+ {
1695
+ "time": 19.7,
1696
+ "value": 0.95
1697
+ },
1698
+ {
1699
+ "time": 19.95,
1700
+ "value": 1
1701
+ }
1702
+ ]
1703
+ }
1704
+ }
1705
+ }
1706
+ },
1707
+ {
1708
+ "id": "ghost-button",
1709
+ "type": "group",
1710
+ "x": 176,
1711
+ "y": 106,
1712
+ "children": [
1713
+ {
1714
+ "id": "ghost-button-bg",
1715
+ "type": "path",
1716
+ "d": "M 14 0 L 96 0 Q 110 0 110 14 L 110 30 Q 110 44 96 44 L 14 44 Q 0 44 0 30 L 0 14 Q 0 0 14 0 Z",
1717
+ "fill": "#ffffff",
1718
+ "stroke": "#d4e0ee",
1719
+ "strokeWidth": 1
1720
+ },
1721
+ {
1722
+ "id": "ghost-button-label",
1723
+ "type": "text",
1724
+ "x": 55,
1725
+ "y": 22,
1726
+ "text": "Cancel",
1727
+ "align": "center",
1728
+ "valign": "middle",
1729
+ "fontSize": 14,
1730
+ "fontFamily": "Roboto, Arial, sans-serif",
1731
+ "weight": 500,
1732
+ "fill": "#64748b"
1733
+ }
1734
+ ]
1735
+ }
1736
+ ]
1737
+ },
1738
+ {
1739
+ "id": "toast",
1740
+ "type": "group",
1741
+ "x": 760,
1742
+ "y": 20,
1743
+ "opacity": 0,
1744
+ "children": [
1745
+ {
1746
+ "id": "toast-bg",
1747
+ "type": "path",
1748
+ "d": "M 16 0 L 276 0 Q 292 0 292 16 L 292 46 Q 292 62 276 62 L 16 62 Q 0 62 0 46 L 0 16 Q 0 0 16 0 Z",
1749
+ "fill": "#ffffff",
1750
+ "stroke": "#bfe9d8",
1751
+ "strokeWidth": 1.5
1752
+ },
1753
+ {
1754
+ "id": "toast-dot",
1755
+ "type": "path",
1756
+ "d": "M 15 31 a 9 9 0 1 0 18 0 a 9 9 0 1 0 -18 0",
1757
+ "fill": "#d1fae5",
1758
+ "stroke": "none"
1759
+ },
1760
+ {
1761
+ "id": "toast-title",
1762
+ "type": "text",
1763
+ "x": 42,
1764
+ "y": 16,
1765
+ "text": "Changes saved",
1766
+ "align": "left",
1767
+ "valign": "top",
1768
+ "fontSize": 14,
1769
+ "fontFamily": "Roboto, Arial, sans-serif",
1770
+ "weight": 700,
1771
+ "fill": "#0f172a"
1772
+ },
1773
+ {
1774
+ "id": "toast-body",
1775
+ "type": "text",
1776
+ "x": 42,
1777
+ "y": 34,
1778
+ "text": "Notifications and billing have been updated.",
1779
+ "align": "left",
1780
+ "valign": "top",
1781
+ "fontSize": 12,
1782
+ "fontFamily": "Roboto, Arial, sans-serif",
1783
+ "weight": 400,
1784
+ "fill": "#475569"
1785
+ }
1786
+ ],
1787
+ "timeline": {
1788
+ "tracks": {
1789
+ "opacity": {
1790
+ "keyframes": [
1791
+ {
1792
+ "time": 19.9,
1793
+ "value": 0,
1794
+ "out": {
1795
+ "type": "cubicBezier",
1796
+ "x1": 0,
1797
+ "y1": 0,
1798
+ "x2": 0.2,
1799
+ "y2": 1
1800
+ }
1801
+ },
1802
+ {
1803
+ "time": 20.3,
1804
+ "value": 1
1805
+ },
1806
+ {
1807
+ "time": 23.1,
1808
+ "value": 1,
1809
+ "out": {
1810
+ "type": "cubicBezier",
1811
+ "x1": 0,
1812
+ "y1": 0,
1813
+ "x2": 0.2,
1814
+ "y2": 1
1815
+ }
1816
+ },
1817
+ {
1818
+ "time": 23.7,
1819
+ "value": 0
1820
+ }
1821
+ ]
1822
+ },
1823
+ "y": {
1824
+ "keyframes": [
1825
+ {
1826
+ "time": 19.9,
1827
+ "value": 8,
1828
+ "out": {
1829
+ "type": "cubicBezier",
1830
+ "x1": 0,
1831
+ "y1": 0,
1832
+ "x2": 0.2,
1833
+ "y2": 1
1834
+ }
1835
+ },
1836
+ {
1837
+ "time": 20.3,
1838
+ "value": 20
1839
+ }
1840
+ ]
1841
+ }
1842
+ }
1843
+ }
1844
+ },
1845
+ {
1846
+ "id": "focus_notifications",
1847
+ "type": "path",
1848
+ "d": "M 634 88 L 1032 88 Q 1056 88 1056 112 L 1056 278 Q 1056 302 1032 302 L 634 302 Q 610 302 610 278 L 610 112 Q 610 88 634 88 Z",
1849
+ "fill": "none",
1850
+ "stroke": "#22d3ee",
1851
+ "strokeWidth": 2,
1852
+ "dashArray": [
1853
+ 8,
1854
+ 6
1855
+ ],
1856
+ "opacity": 0,
1857
+ "timeline": {
1858
+ "tracks": {
1859
+ "opacity": {
1860
+ "keyframes": [
1861
+ {
1862
+ "time": 7,
1863
+ "value": 0,
1864
+ "out": {
1865
+ "type": "cubicBezier",
1866
+ "x1": 0.25,
1867
+ "y1": 0.1,
1868
+ "x2": 0.25,
1869
+ "y2": 1
1870
+ }
1871
+ },
1872
+ {
1873
+ "time": 7.2,
1874
+ "value": 0.85
1875
+ },
1876
+ {
1877
+ "time": 12.9,
1878
+ "value": 0.85,
1879
+ "out": {
1880
+ "type": "cubicBezier",
1881
+ "x1": 0.25,
1882
+ "y1": 0.1,
1883
+ "x2": 0.25,
1884
+ "y2": 1
1885
+ }
1886
+ },
1887
+ {
1888
+ "time": 13.200000000000001,
1889
+ "value": 0
1890
+ }
1891
+ ]
1892
+ }
1893
+ }
1894
+ }
1895
+ },
1896
+ {
1897
+ "id": "focus_billing",
1898
+ "type": "path",
1899
+ "d": "M 252 308 L 620 308 Q 644 308 644 332 L 644 488 Q 644 512 620 512 L 252 512 Q 228 512 228 488 L 228 332 Q 228 308 252 308 Z",
1900
+ "fill": "none",
1901
+ "stroke": "#22d3ee",
1902
+ "strokeWidth": 2,
1903
+ "dashArray": [
1904
+ 8,
1905
+ 6
1906
+ ],
1907
+ "opacity": 0,
1908
+ "timeline": {
1909
+ "tracks": {
1910
+ "opacity": {
1911
+ "keyframes": [
1912
+ {
1913
+ "time": 12.600000000000001,
1914
+ "value": 0,
1915
+ "out": {
1916
+ "type": "cubicBezier",
1917
+ "x1": 0.25,
1918
+ "y1": 0.1,
1919
+ "x2": 0.25,
1920
+ "y2": 1
1921
+ }
1922
+ },
1923
+ {
1924
+ "time": 12.8,
1925
+ "value": 0.85
1926
+ },
1927
+ {
1928
+ "time": 18.1,
1929
+ "value": 0.85,
1930
+ "out": {
1931
+ "type": "cubicBezier",
1932
+ "x1": 0.25,
1933
+ "y1": 0.1,
1934
+ "x2": 0.25,
1935
+ "y2": 1
1936
+ }
1937
+ },
1938
+ {
1939
+ "time": 18.400000000000002,
1940
+ "value": 0
1941
+ }
1942
+ ]
1943
+ }
1944
+ }
1945
+ }
1946
+ },
1947
+ {
1948
+ "id": "focus_review",
1949
+ "type": "path",
1950
+ "d": "M 674 324 L 1032 324 Q 1056 324 1056 348 L 1056 488 Q 1056 512 1032 512 L 674 512 Q 650 512 650 488 L 650 348 Q 650 324 674 324 Z",
1951
+ "fill": "none",
1952
+ "stroke": "#22d3ee",
1953
+ "strokeWidth": 2,
1954
+ "dashArray": [
1955
+ 8,
1956
+ 6
1957
+ ],
1958
+ "opacity": 0,
1959
+ "timeline": {
1960
+ "tracks": {
1961
+ "opacity": {
1962
+ "keyframes": [
1963
+ {
1964
+ "time": 17.8,
1965
+ "value": 0,
1966
+ "out": {
1967
+ "type": "cubicBezier",
1968
+ "x1": 0.25,
1969
+ "y1": 0.1,
1970
+ "x2": 0.25,
1971
+ "y2": 1
1972
+ }
1973
+ },
1974
+ {
1975
+ "time": 18,
1976
+ "value": 0.85
1977
+ },
1978
+ {
1979
+ "time": 22.4,
1980
+ "value": 0.85,
1981
+ "out": {
1982
+ "type": "cubicBezier",
1983
+ "x1": 0.25,
1984
+ "y1": 0.1,
1985
+ "x2": 0.25,
1986
+ "y2": 1
1987
+ }
1988
+ },
1989
+ {
1990
+ "time": 22.7,
1991
+ "value": 0
1992
+ }
1993
+ ]
1994
+ }
1995
+ }
1996
+ }
1997
+ },
1998
+ {
1999
+ "id": "click_weekly",
2000
+ "type": "path",
2001
+ "d": "M 954 201 a 16 16 0 1 0 32 0 a 16 16 0 1 0 -32 0",
2002
+ "fill": "none",
2003
+ "stroke": "#38bdf8",
2004
+ "strokeWidth": 2,
2005
+ "opacity": 0,
2006
+ "origin": [
2007
+ 970,
2008
+ 201
2009
+ ],
2010
+ "timeline": {
2011
+ "tracks": {
2012
+ "opacity": {
2013
+ "keyframes": [
2014
+ {
2015
+ "time": 8.9,
2016
+ "value": 0
2017
+ },
2018
+ {
2019
+ "time": 9,
2020
+ "value": 0.7
2021
+ },
2022
+ {
2023
+ "time": 9.450000000000001,
2024
+ "value": 0
2025
+ }
2026
+ ]
2027
+ },
2028
+ "scale": {
2029
+ "keyframes": [
2030
+ {
2031
+ "time": 8.9,
2032
+ "value": 0.4,
2033
+ "out": {
2034
+ "type": "cubicBezier",
2035
+ "x1": 0,
2036
+ "y1": 0,
2037
+ "x2": 0.2,
2038
+ "y2": 1
2039
+ }
2040
+ },
2041
+ {
2042
+ "time": 9.450000000000001,
2043
+ "value": 1.5
2044
+ }
2045
+ ]
2046
+ }
2047
+ }
2048
+ }
2049
+ },
2050
+ {
2051
+ "id": "click_annual",
2052
+ "type": "path",
2053
+ "d": "M 380 419 a 16 16 0 1 0 32 0 a 16 16 0 1 0 -32 0",
2054
+ "fill": "none",
2055
+ "stroke": "#38bdf8",
2056
+ "strokeWidth": 2,
2057
+ "opacity": 0,
2058
+ "origin": [
2059
+ 396,
2060
+ 419
2061
+ ],
2062
+ "timeline": {
2063
+ "tracks": {
2064
+ "opacity": {
2065
+ "keyframes": [
2066
+ {
2067
+ "time": 14.1,
2068
+ "value": 0
2069
+ },
2070
+ {
2071
+ "time": 14.2,
2072
+ "value": 0.7
2073
+ },
2074
+ {
2075
+ "time": 14.65,
2076
+ "value": 0
2077
+ }
2078
+ ]
2079
+ },
2080
+ "scale": {
2081
+ "keyframes": [
2082
+ {
2083
+ "time": 14.1,
2084
+ "value": 0.4,
2085
+ "out": {
2086
+ "type": "cubicBezier",
2087
+ "x1": 0,
2088
+ "y1": 0,
2089
+ "x2": 0.2,
2090
+ "y2": 1
2091
+ }
2092
+ },
2093
+ {
2094
+ "time": 14.65,
2095
+ "value": 1.5
2096
+ }
2097
+ ]
2098
+ }
2099
+ }
2100
+ }
2101
+ },
2102
+ {
2103
+ "id": "click_save",
2104
+ "type": "path",
2105
+ "d": "M 736 460 a 16 16 0 1 0 32 0 a 16 16 0 1 0 -32 0",
2106
+ "fill": "none",
2107
+ "stroke": "#38bdf8",
2108
+ "strokeWidth": 2,
2109
+ "opacity": 0,
2110
+ "origin": [
2111
+ 752,
2112
+ 460
2113
+ ],
2114
+ "timeline": {
2115
+ "tracks": {
2116
+ "opacity": {
2117
+ "keyframes": [
2118
+ {
2119
+ "time": 19.6,
2120
+ "value": 0
2121
+ },
2122
+ {
2123
+ "time": 19.700000000000003,
2124
+ "value": 0.7
2125
+ },
2126
+ {
2127
+ "time": 20.150000000000002,
2128
+ "value": 0
2129
+ }
2130
+ ]
2131
+ },
2132
+ "scale": {
2133
+ "keyframes": [
2134
+ {
2135
+ "time": 19.6,
2136
+ "value": 0.4,
2137
+ "out": {
2138
+ "type": "cubicBezier",
2139
+ "x1": 0,
2140
+ "y1": 0,
2141
+ "x2": 0.2,
2142
+ "y2": 1
2143
+ }
2144
+ },
2145
+ {
2146
+ "time": 20.150000000000002,
2147
+ "value": 1.5
2148
+ }
2149
+ ]
2150
+ }
2151
+ }
2152
+ }
2153
+ },
2154
+ {
2155
+ "id": "cursor",
2156
+ "type": "group",
2157
+ "x": -80,
2158
+ "y": -80,
2159
+ "children": [
2160
+ {
2161
+ "id": "cursor-arrow",
2162
+ "type": "path",
2163
+ "d": "M 0 0 L 0 22 L 6 18 L 10 28 L 15 26 L 11 16 L 20 16 Z",
2164
+ "fill": "#0f172a",
2165
+ "stroke": "#ffffff",
2166
+ "strokeWidth": 1.6
2167
+ }
2168
+ ],
2169
+ "timeline": {
2170
+ "tracks": {
2171
+ "x": {
2172
+ "keyframes": [
2173
+ {
2174
+ "time": 0,
2175
+ "value": -80
2176
+ },
2177
+ {
2178
+ "time": 6.7,
2179
+ "value": -80,
2180
+ "out": {
2181
+ "type": "cubicBezier",
2182
+ "x1": 0,
2183
+ "y1": 0,
2184
+ "x2": 0.2,
2185
+ "y2": 1
2186
+ }
2187
+ },
2188
+ {
2189
+ "time": 7.8,
2190
+ "value": 970
2191
+ },
2192
+ {
2193
+ "time": 9.3,
2194
+ "value": 970
2195
+ },
2196
+ {
2197
+ "time": 12.7,
2198
+ "value": 970,
2199
+ "out": {
2200
+ "type": "cubicBezier",
2201
+ "x1": 0,
2202
+ "y1": 0,
2203
+ "x2": 0.2,
2204
+ "y2": 1
2205
+ }
2206
+ },
2207
+ {
2208
+ "time": 13.9,
2209
+ "value": 396
2210
+ },
2211
+ {
2212
+ "time": 14.5,
2213
+ "value": 396
2214
+ },
2215
+ {
2216
+ "time": 17.8,
2217
+ "value": 396,
2218
+ "out": {
2219
+ "type": "cubicBezier",
2220
+ "x1": 0,
2221
+ "y1": 0,
2222
+ "x2": 0.2,
2223
+ "y2": 1
2224
+ }
2225
+ },
2226
+ {
2227
+ "time": 19.1,
2228
+ "value": 752
2229
+ },
2230
+ {
2231
+ "time": 20.1,
2232
+ "value": 752
2233
+ },
2234
+ {
2235
+ "time": 22.2,
2236
+ "value": 752,
2237
+ "out": {
2238
+ "type": "cubicBezier",
2239
+ "x1": 0,
2240
+ "y1": 0,
2241
+ "x2": 0.2,
2242
+ "y2": 1
2243
+ }
2244
+ },
2245
+ {
2246
+ "time": 23.1,
2247
+ "value": 1300
2248
+ }
2249
+ ]
2250
+ },
2251
+ "y": {
2252
+ "keyframes": [
2253
+ {
2254
+ "time": 0,
2255
+ "value": -80
2256
+ },
2257
+ {
2258
+ "time": 6.7,
2259
+ "value": -80,
2260
+ "out": {
2261
+ "type": "cubicBezier",
2262
+ "x1": 0,
2263
+ "y1": 0,
2264
+ "x2": 0.2,
2265
+ "y2": 1
2266
+ }
2267
+ },
2268
+ {
2269
+ "time": 7.8,
2270
+ "value": 201
2271
+ },
2272
+ {
2273
+ "time": 9.3,
2274
+ "value": 201
2275
+ },
2276
+ {
2277
+ "time": 12.7,
2278
+ "value": 201,
2279
+ "out": {
2280
+ "type": "cubicBezier",
2281
+ "x1": 0,
2282
+ "y1": 0,
2283
+ "x2": 0.2,
2284
+ "y2": 1
2285
+ }
2286
+ },
2287
+ {
2288
+ "time": 13.9,
2289
+ "value": 419
2290
+ },
2291
+ {
2292
+ "time": 14.5,
2293
+ "value": 419
2294
+ },
2295
+ {
2296
+ "time": 17.8,
2297
+ "value": 419,
2298
+ "out": {
2299
+ "type": "cubicBezier",
2300
+ "x1": 0,
2301
+ "y1": 0,
2302
+ "x2": 0.2,
2303
+ "y2": 1
2304
+ }
2305
+ },
2306
+ {
2307
+ "time": 19.1,
2308
+ "value": 460
2309
+ },
2310
+ {
2311
+ "time": 20.1,
2312
+ "value": 460
2313
+ },
2314
+ {
2315
+ "time": 22.2,
2316
+ "value": 460,
2317
+ "out": {
2318
+ "type": "cubicBezier",
2319
+ "x1": 0,
2320
+ "y1": 0,
2321
+ "x2": 0.2,
2322
+ "y2": 1
2323
+ }
2324
+ },
2325
+ {
2326
+ "time": 23.1,
2327
+ "value": 720
2328
+ }
2329
+ ]
2330
+ }
2331
+ }
2332
+ }
2333
+ }
2334
+ ],
2335
+ "timeline": {
2336
+ "tracks": {
2337
+ "opacity": {
2338
+ "keyframes": [
2339
+ {
2340
+ "time": 1.8,
2341
+ "value": 0,
2342
+ "out": {
2343
+ "type": "cubicBezier",
2344
+ "x1": 0.25,
2345
+ "y1": 0.1,
2346
+ "x2": 0.25,
2347
+ "y2": 1
2348
+ }
2349
+ },
2350
+ {
2351
+ "time": 2.6,
2352
+ "value": 1
2353
+ }
2354
+ ]
2355
+ },
2356
+ "x": {
2357
+ "keyframes": [
2358
+ {
2359
+ "time": 2.2,
2360
+ "value": 124.79999999999995,
2361
+ "out": {
2362
+ "type": "cubicBezier",
2363
+ "x1": 0.25,
2364
+ "y1": 0.1,
2365
+ "x2": 0.25,
2366
+ "y2": 1
2367
+ }
2368
+ },
2369
+ {
2370
+ "time": 3,
2371
+ "value": 124.79999999999995
2372
+ },
2373
+ {
2374
+ "time": 7.1,
2375
+ "value": 124.79999999999995,
2376
+ "out": {
2377
+ "type": "cubicBezier",
2378
+ "x1": 0,
2379
+ "y1": 0,
2380
+ "x2": 0.2,
2381
+ "y2": 1
2382
+ }
2383
+ },
2384
+ {
2385
+ "time": 8,
2386
+ "value": -384.5899999999999
2387
+ },
2388
+ {
2389
+ "time": 12.6,
2390
+ "value": -384.5899999999999,
2391
+ "out": {
2392
+ "type": "cubicBezier",
2393
+ "x1": 0,
2394
+ "y1": 0,
2395
+ "x2": 0.2,
2396
+ "y2": 1
2397
+ }
2398
+ },
2399
+ {
2400
+ "time": 13.4,
2401
+ "value": 90.63999999999999
2402
+ },
2403
+ {
2404
+ "time": 17.8,
2405
+ "value": 90.63999999999999,
2406
+ "out": {
2407
+ "type": "cubicBezier",
2408
+ "x1": 0,
2409
+ "y1": 0,
2410
+ "x2": 0.2,
2411
+ "y2": 1
2412
+ }
2413
+ },
2414
+ {
2415
+ "time": 18.6,
2416
+ "value": -503.02
2417
+ },
2418
+ {
2419
+ "time": 21.4,
2420
+ "value": -503.02,
2421
+ "out": {
2422
+ "type": "cubicBezier",
2423
+ "x1": 0,
2424
+ "y1": 0,
2425
+ "x2": 0.2,
2426
+ "y2": 1
2427
+ }
2428
+ },
2429
+ {
2430
+ "time": 22.2,
2431
+ "value": 124.79999999999995
2432
+ }
2433
+ ]
2434
+ },
2435
+ "y": {
2436
+ "keyframes": [
2437
+ {
2438
+ "time": 2.2,
2439
+ "value": 92,
2440
+ "out": {
2441
+ "type": "cubicBezier",
2442
+ "x1": 0.25,
2443
+ "y1": 0.1,
2444
+ "x2": 0.25,
2445
+ "y2": 1
2446
+ }
2447
+ },
2448
+ {
2449
+ "time": 3,
2450
+ "value": 92
2451
+ },
2452
+ {
2453
+ "time": 7.1,
2454
+ "value": 92,
2455
+ "out": {
2456
+ "type": "cubicBezier",
2457
+ "x1": 0,
2458
+ "y1": 0,
2459
+ "x2": 0.2,
2460
+ "y2": 1
2461
+ }
2462
+ },
2463
+ {
2464
+ "time": 8,
2465
+ "value": 120.15
2466
+ },
2467
+ {
2468
+ "time": 12.6,
2469
+ "value": 120.15,
2470
+ "out": {
2471
+ "type": "cubicBezier",
2472
+ "x1": 0,
2473
+ "y1": 0,
2474
+ "x2": 0.2,
2475
+ "y2": 1
2476
+ }
2477
+ },
2478
+ {
2479
+ "time": 13.4,
2480
+ "value": -156.60000000000002
2481
+ },
2482
+ {
2483
+ "time": 17.8,
2484
+ "value": -156.60000000000002,
2485
+ "out": {
2486
+ "type": "cubicBezier",
2487
+ "x1": 0,
2488
+ "y1": 0,
2489
+ "x2": 0.2,
2490
+ "y2": 1
2491
+ }
2492
+ },
2493
+ {
2494
+ "time": 18.6,
2495
+ "value": -200.12
2496
+ },
2497
+ {
2498
+ "time": 21.4,
2499
+ "value": -200.12,
2500
+ "out": {
2501
+ "type": "cubicBezier",
2502
+ "x1": 0,
2503
+ "y1": 0,
2504
+ "x2": 0.2,
2505
+ "y2": 1
2506
+ }
2507
+ },
2508
+ {
2509
+ "time": 22.2,
2510
+ "value": 92
2511
+ }
2512
+ ]
2513
+ },
2514
+ "scale": {
2515
+ "keyframes": [
2516
+ {
2517
+ "time": 2.2,
2518
+ "value": 0.88,
2519
+ "out": {
2520
+ "type": "cubicBezier",
2521
+ "x1": 0.25,
2522
+ "y1": 0.1,
2523
+ "x2": 0.25,
2524
+ "y2": 1
2525
+ }
2526
+ },
2527
+ {
2528
+ "time": 3,
2529
+ "value": 0.92
2530
+ },
2531
+ {
2532
+ "time": 7.1,
2533
+ "value": 0.92,
2534
+ "out": {
2535
+ "type": "cubicBezier",
2536
+ "x1": 0,
2537
+ "y1": 0,
2538
+ "x2": 0.2,
2539
+ "y2": 1
2540
+ }
2541
+ },
2542
+ {
2543
+ "time": 8,
2544
+ "value": 1.23
2545
+ },
2546
+ {
2547
+ "time": 12.6,
2548
+ "value": 1.23,
2549
+ "out": {
2550
+ "type": "cubicBezier",
2551
+ "x1": 0,
2552
+ "y1": 0,
2553
+ "x2": 0.2,
2554
+ "y2": 1
2555
+ }
2556
+ },
2557
+ {
2558
+ "time": 13.4,
2559
+ "value": 1.26
2560
+ },
2561
+ {
2562
+ "time": 17.8,
2563
+ "value": 1.26,
2564
+ "out": {
2565
+ "type": "cubicBezier",
2566
+ "x1": 0,
2567
+ "y1": 0,
2568
+ "x2": 0.2,
2569
+ "y2": 1
2570
+ }
2571
+ },
2572
+ {
2573
+ "time": 18.6,
2574
+ "value": 1.34
2575
+ },
2576
+ {
2577
+ "time": 21.4,
2578
+ "value": 1.34,
2579
+ "out": {
2580
+ "type": "cubicBezier",
2581
+ "x1": 0,
2582
+ "y1": 0,
2583
+ "x2": 0.2,
2584
+ "y2": 1
2585
+ }
2586
+ },
2587
+ {
2588
+ "time": 22.2,
2589
+ "value": 0.92
2590
+ }
2591
+ ]
2592
+ }
2593
+ }
2594
+ }
2595
+ }
2596
+ ]
2597
+ }