sketchmark 2.1.0 → 2.1.2

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 (117) hide show
  1. package/package.json +1 -7
  2. package/ANIMATABLE_MATRIX.md +0 -177
  3. package/KERNEL_SPEC.md +0 -412
  4. package/PACKS.md +0 -81
  5. package/PRESETS.md +0 -182
  6. package/dist/src/builders/index.d.ts +0 -64
  7. package/dist/src/builders/index.js +0 -212
  8. package/dist/src/compounds.d.ts +0 -13
  9. package/dist/src/compounds.js +0 -118
  10. package/dist/src/deck.d.ts +0 -4
  11. package/dist/src/deck.js +0 -91
  12. package/dist/src/export/index.d.ts +0 -8
  13. package/dist/src/export/index.js +0 -15
  14. package/dist/src/kernel.d.ts +0 -8
  15. package/dist/src/kernel.js +0 -68
  16. package/dist/src/motion.d.ts +0 -4
  17. package/dist/src/motion.js +0 -262
  18. package/dist/src/patch.d.ts +0 -5
  19. package/dist/src/patch.js +0 -72
  20. package/dist/src/player/index.d.ts +0 -68
  21. package/dist/src/player/index.js +0 -600
  22. package/dist/src/project.d.ts +0 -11
  23. package/dist/src/project.js +0 -107
  24. package/dist/src/render/raw-three.d.ts +0 -7
  25. package/dist/src/render/raw-three.js +0 -17
  26. package/dist/src/render/three-html.d.ts +0 -2
  27. package/dist/src/render/three-html.js +0 -257
  28. package/dist/src/render/three-preview-svg.d.ts +0 -3
  29. package/dist/src/render/three-preview-svg.js +0 -102
  30. package/dist/src/scenes.d.ts +0 -4
  31. package/dist/src/scenes.js +0 -26
  32. package/dist/src/sequences.d.ts +0 -43
  33. package/dist/src/sequences.js +0 -109
  34. package/dist/src/shapes/builtins.d.ts +0 -2
  35. package/dist/src/shapes/builtins.js +0 -393
  36. package/dist/src/shapes/common.d.ts +0 -9
  37. package/dist/src/shapes/common.js +0 -76
  38. package/dist/src/shapes/geometry.d.ts +0 -22
  39. package/dist/src/shapes/geometry.js +0 -166
  40. package/dist/src/shapes/index.d.ts +0 -2
  41. package/dist/src/shapes/index.js +0 -18
  42. package/dist/src/shapes/registry.d.ts +0 -8
  43. package/dist/src/shapes/registry.js +0 -31
  44. package/dist/src/shapes/types.d.ts +0 -32
  45. package/dist/src/shapes/types.js +0 -2
  46. package/examples/1730642890464.jpg +0 -0
  47. package/examples/app-screen.svg +0 -1
  48. package/examples/app-screen.visual.json +0 -503
  49. package/examples/dashboard-table.svg +0 -1
  50. package/examples/dashboard-table.visual.json +0 -708
  51. package/examples/dev-docs.svg +0 -1
  52. package/examples/dev-docs.visual.json +0 -248
  53. package/examples/explainer.mp4 +0 -0
  54. package/examples/explainer.visual.json +0 -1713
  55. package/examples/group-origin-effects-lab-check.svg +0 -1
  56. package/examples/group-origin-effects-lab.visual.json +0 -1880
  57. package/examples/image-clip-radius.visual.json +0 -271
  58. package/examples/make-app-screen.cjs +0 -368
  59. package/examples/make-dashboard-table.cjs +0 -277
  60. package/examples/make-dev-docs.cjs +0 -233
  61. package/examples/make-explainer.cjs +0 -438
  62. package/examples/make-group-origin-effects-lab.cjs +0 -370
  63. package/examples/make-image-clip-radius.cjs +0 -169
  64. package/examples/make-modal-dialog.cjs +0 -355
  65. package/examples/make-origin-effects-lab.cjs +0 -311
  66. package/examples/make-preset-character-motion.cjs +0 -32
  67. package/examples/make-presets-demo.cjs +0 -30
  68. package/examples/make-pricing.cjs +0 -286
  69. package/examples/make-product-demo.cjs +0 -468
  70. package/examples/make-product-hero.cjs +0 -223
  71. package/examples/make-release-notes.cjs +0 -333
  72. package/examples/make-settings-panel.cjs +0 -435
  73. package/examples/make-split-preview.cjs +0 -248
  74. package/examples/make-storyboard.cjs +0 -215
  75. package/examples/make-transcript.cjs +0 -234
  76. package/examples/make-typography-test.cjs +0 -397
  77. package/examples/make-ui-demo-explainer.cjs +0 -1094
  78. package/examples/make-ui-flow.cjs +0 -762
  79. package/examples/make-walkthrough.cjs +0 -815
  80. package/examples/modal-dialog.svg +0 -1
  81. package/examples/modal-dialog.visual.json +0 -239
  82. package/examples/origin-effects-lab-check.svg +0 -1
  83. package/examples/origin-effects-lab.visual.json +0 -1412
  84. package/examples/preset-character-motion.visual.json +0 -949
  85. package/examples/presets-demo.visual.json +0 -787
  86. package/examples/pricing.svg +0 -1
  87. package/examples/pricing.visual.json +0 -652
  88. package/examples/product-demo.mp4 +0 -0
  89. package/examples/product-demo.visual.json +0 -866
  90. package/examples/product-hero.svg +0 -1
  91. package/examples/product-hero.visual.json +0 -242
  92. package/examples/release-notes.svg +0 -1
  93. package/examples/release-notes.visual.json +0 -467
  94. package/examples/settings-panel.svg +0 -1
  95. package/examples/settings-panel.visual.json +0 -501
  96. package/examples/split-preview.svg +0 -1
  97. package/examples/split-preview.visual.json +0 -124
  98. package/examples/storyboard.svg +0 -1
  99. package/examples/storyboard.visual.json +0 -312
  100. package/examples/transcript.svg +0 -1
  101. package/examples/transcript.visual.json +0 -407
  102. package/examples/typography-indent-check.svg +0 -1
  103. package/examples/typography-lineheight-0.svg +0 -1
  104. package/examples/typography-lineheight-2.svg +0 -1
  105. package/examples/typography-test-check.svg +0 -1
  106. package/examples/typography-test.svg +0 -1
  107. package/examples/typography-test.visual.json +0 -757
  108. package/examples/ui-demo-explainer-billing.svg +0 -1
  109. package/examples/ui-demo-explainer-check.svg +0 -1
  110. package/examples/ui-demo-explainer-save.svg +0 -1
  111. package/examples/ui-demo-explainer-toggle.svg +0 -1
  112. package/examples/ui-demo-explainer.mp4 +0 -0
  113. package/examples/ui-demo-explainer.visual.json +0 -2597
  114. package/examples/ui-flow.mp4 +0 -0
  115. package/examples/ui-flow.visual.json +0 -1211
  116. package/examples/walkthrough.mp4 +0 -0
  117. package/examples/walkthrough.visual.json +0 -1372
@@ -1,1412 +0,0 @@
1
- {
2
- "version": 1,
3
- "canvas": {
4
- "width": 1280,
5
- "height": 760,
6
- "background": "#07111f",
7
- "duration": 6,
8
- "fps": 30
9
- },
10
- "elements": [
11
- {
12
- "id": "lab_title",
13
- "type": "text",
14
- "x": 70,
15
- "y": 52,
16
- "text": "Origin Transform Lab",
17
- "fontSize": 38,
18
- "fontFamily": "Roboto, Arial, sans-serif",
19
- "weight": 700,
20
- "fill": "#f8fafc"
21
- },
22
- {
23
- "id": "lab_body",
24
- "type": "text",
25
- "x": 70,
26
- "y": 96,
27
- "text": "Same rounded rectangle, animated as a group. Only the origin changes.",
28
- "fontSize": 16,
29
- "fontFamily": "Roboto, Arial, sans-serif",
30
- "weight": 400,
31
- "fill": "#94a3b8"
32
- },
33
- {
34
- "id": "scale_row_label",
35
- "type": "text",
36
- "x": 70,
37
- "y": 112,
38
- "text": "Scale tests",
39
- "fontSize": 18,
40
- "fontFamily": "Roboto, Arial, sans-serif",
41
- "weight": 700,
42
- "fill": "#7dd3fc",
43
- "timeline": {
44
- "tracks": {
45
- "position": {
46
- "keyframes": [
47
- {
48
- "time": 0,
49
- "value": [
50
- 70,
51
- 122
52
- ],
53
- "out": {
54
- "type": "graph",
55
- "points": [
56
- [
57
- 0,
58
- 0
59
- ],
60
- [
61
- 1,
62
- 1
63
- ]
64
- ]
65
- }
66
- }
67
- ]
68
- }
69
- }
70
- }
71
- },
72
- {
73
- "id": "rotate_row_label",
74
- "type": "text",
75
- "x": 70,
76
- "y": 397,
77
- "text": "Rotation tests",
78
- "fontSize": 18,
79
- "fontFamily": "Roboto, Arial, sans-serif",
80
- "weight": 700,
81
- "fill": "#7dd3fc"
82
- },
83
- {
84
- "id": "scale_top_left_panel",
85
- "type": "path",
86
- "d": "M 92 150 L 318 150 Q 340 150 340 172 L 340 368 Q 340 390 318 390 L 92 390 Q 70 390 70 368 L 70 172 Q 70 150 92 150 Z",
87
- "fill": "#0d1a2e",
88
- "stroke": "#193252",
89
- "strokeWidth": 1.5
90
- },
91
- {
92
- "id": "scale_top_left_title",
93
- "type": "text",
94
- "x": 90,
95
- "y": 168,
96
- "text": "Top-left origin",
97
- "fontSize": 16,
98
- "fontFamily": "Roboto, Arial, sans-serif",
99
- "weight": 700,
100
- "fill": "#f8fafc"
101
- },
102
- {
103
- "id": "scale_top_left_note",
104
- "type": "text",
105
- "x": 90,
106
- "y": 192,
107
- "text": "[0, 0]",
108
- "fontSize": 12,
109
- "fontFamily": "Roboto, Arial, sans-serif",
110
- "weight": 500,
111
- "fill": "#94a3b8"
112
- },
113
- {
114
- "id": "scale_top_left_guide_h",
115
- "type": "path",
116
- "d": "M 90 298 L 320 298",
117
- "fill": "none",
118
- "stroke": "#173054",
119
- "strokeWidth": 1,
120
- "dashArray": [
121
- 6,
122
- 6
123
- ]
124
- },
125
- {
126
- "id": "scale_top_left_guide_v",
127
- "type": "path",
128
- "d": "M 208 218 L 208 370",
129
- "fill": "none",
130
- "stroke": "#173054",
131
- "strokeWidth": 1,
132
- "dashArray": [
133
- 6,
134
- 6
135
- ]
136
- },
137
- {
138
- "id": "scale_top_left_origin",
139
- "type": "group",
140
- "x": 112,
141
- "y": 232,
142
- "children": [
143
- {
144
- "id": "scale_top_left_origin_cross_h",
145
- "type": "path",
146
- "d": "M 0 16 L 32 16",
147
- "fill": "none",
148
- "stroke": "#fde047",
149
- "strokeWidth": 2,
150
- "strokeCap": "round"
151
- },
152
- {
153
- "id": "scale_top_left_origin_cross_v",
154
- "type": "path",
155
- "d": "M 16 0 L 16 32",
156
- "fill": "none",
157
- "stroke": "#fde047",
158
- "strokeWidth": 2,
159
- "strokeCap": "round"
160
- },
161
- {
162
- "id": "scale_top_left_origin_dot",
163
- "type": "path",
164
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
165
- "fill": "#fde047",
166
- "stroke": "#0f172a",
167
- "strokeWidth": 1.5
168
- }
169
- ]
170
- },
171
- {
172
- "id": "scale_top_left_group",
173
- "type": "group",
174
- "x": 128,
175
- "y": 248,
176
- "width": 160,
177
- "height": 100,
178
- "origin": [
179
- 128,
180
- 248
181
- ],
182
- "children": [
183
- {
184
- "id": "scale_top_left_rect",
185
- "type": "path",
186
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
187
- "fill": "#818cf8",
188
- "stroke": "#dbeafe",
189
- "strokeWidth": 2
190
- }
191
- ],
192
- "timeline": {
193
- "tracks": {
194
- "scale": {
195
- "keyframes": [
196
- {
197
- "time": 0,
198
- "value": 1,
199
- "out": {
200
- "type": "cubicBezier",
201
- "x1": 0,
202
- "y1": 0,
203
- "x2": 0.2,
204
- "y2": 1
205
- }
206
- },
207
- {
208
- "time": 1.3,
209
- "value": 1.45,
210
- "out": {
211
- "type": "cubicBezier",
212
- "x1": 0.25,
213
- "y1": 0.1,
214
- "x2": 0.25,
215
- "y2": 1
216
- }
217
- },
218
- {
219
- "time": 2.6,
220
- "value": 0.72,
221
- "out": {
222
- "type": "cubicBezier",
223
- "x1": 0.25,
224
- "y1": 0.1,
225
- "x2": 0.25,
226
- "y2": 1
227
- }
228
- },
229
- {
230
- "time": 4,
231
- "value": 1.18,
232
- "out": {
233
- "type": "cubicBezier",
234
- "x1": 0.25,
235
- "y1": 0.1,
236
- "x2": 0.25,
237
- "y2": 1
238
- }
239
- },
240
- {
241
- "time": 5.4,
242
- "value": 1
243
- }
244
- ]
245
- }
246
- }
247
- }
248
- },
249
- {
250
- "id": "rotate_top_left_panel",
251
- "type": "path",
252
- "d": "M 92 435 L 318 435 Q 340 435 340 457 L 340 653 Q 340 675 318 675 L 92 675 Q 70 675 70 653 L 70 457 Q 70 435 92 435 Z",
253
- "fill": "#0d1a2e",
254
- "stroke": "#193252",
255
- "strokeWidth": 1.5
256
- },
257
- {
258
- "id": "rotate_top_left_title",
259
- "type": "text",
260
- "x": 90,
261
- "y": 453,
262
- "text": "Top-left origin",
263
- "fontSize": 16,
264
- "fontFamily": "Roboto, Arial, sans-serif",
265
- "weight": 700,
266
- "fill": "#f8fafc"
267
- },
268
- {
269
- "id": "rotate_top_left_note",
270
- "type": "text",
271
- "x": 90,
272
- "y": 477,
273
- "text": "[0, 0]",
274
- "fontSize": 12,
275
- "fontFamily": "Roboto, Arial, sans-serif",
276
- "weight": 500,
277
- "fill": "#94a3b8"
278
- },
279
- {
280
- "id": "rotate_top_left_guide_h",
281
- "type": "path",
282
- "d": "M 90 583 L 320 583",
283
- "fill": "none",
284
- "stroke": "#173054",
285
- "strokeWidth": 1,
286
- "dashArray": [
287
- 6,
288
- 6
289
- ]
290
- },
291
- {
292
- "id": "rotate_top_left_guide_v",
293
- "type": "path",
294
- "d": "M 208 503 L 208 655",
295
- "fill": "none",
296
- "stroke": "#173054",
297
- "strokeWidth": 1,
298
- "dashArray": [
299
- 6,
300
- 6
301
- ]
302
- },
303
- {
304
- "id": "rotate_top_left_origin",
305
- "type": "group",
306
- "x": 112,
307
- "y": 517,
308
- "children": [
309
- {
310
- "id": "rotate_top_left_origin_cross_h",
311
- "type": "path",
312
- "d": "M 0 16 L 32 16",
313
- "fill": "none",
314
- "stroke": "#fde047",
315
- "strokeWidth": 2,
316
- "strokeCap": "round"
317
- },
318
- {
319
- "id": "rotate_top_left_origin_cross_v",
320
- "type": "path",
321
- "d": "M 16 0 L 16 32",
322
- "fill": "none",
323
- "stroke": "#fde047",
324
- "strokeWidth": 2,
325
- "strokeCap": "round"
326
- },
327
- {
328
- "id": "rotate_top_left_origin_dot",
329
- "type": "path",
330
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
331
- "fill": "#fde047",
332
- "stroke": "#0f172a",
333
- "strokeWidth": 1.5
334
- }
335
- ]
336
- },
337
- {
338
- "id": "rotate_top_left_group",
339
- "type": "group",
340
- "x": 128,
341
- "y": 533,
342
- "width": 160,
343
- "height": 100,
344
- "origin": [
345
- 128,
346
- 533
347
- ],
348
- "children": [
349
- {
350
- "id": "rotate_top_left_rect",
351
- "type": "path",
352
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
353
- "fill": "#818cf8",
354
- "stroke": "#dbeafe",
355
- "strokeWidth": 2
356
- }
357
- ],
358
- "timeline": {
359
- "tracks": {
360
- "rotation": {
361
- "keyframes": [
362
- {
363
- "time": 0,
364
- "value": 0,
365
- "out": {
366
- "type": "cubicBezier",
367
- "x1": 0,
368
- "y1": 0,
369
- "x2": 0.2,
370
- "y2": 1
371
- }
372
- },
373
- {
374
- "time": 1.5,
375
- "value": 42,
376
- "out": {
377
- "type": "cubicBezier",
378
- "x1": 0.25,
379
- "y1": 0.1,
380
- "x2": 0.25,
381
- "y2": 1
382
- }
383
- },
384
- {
385
- "time": 3,
386
- "value": -28,
387
- "out": {
388
- "type": "cubicBezier",
389
- "x1": 0.25,
390
- "y1": 0.1,
391
- "x2": 0.25,
392
- "y2": 1
393
- }
394
- },
395
- {
396
- "time": 4.5,
397
- "value": 18,
398
- "out": {
399
- "type": "cubicBezier",
400
- "x1": 0.25,
401
- "y1": 0.1,
402
- "x2": 0.25,
403
- "y2": 1
404
- }
405
- },
406
- {
407
- "time": 5.8,
408
- "value": 0
409
- }
410
- ]
411
- }
412
- }
413
- }
414
- },
415
- {
416
- "id": "scale_center_panel",
417
- "type": "path",
418
- "d": "M 387 150 L 613 150 Q 635 150 635 172 L 635 368 Q 635 390 613 390 L 387 390 Q 365 390 365 368 L 365 172 Q 365 150 387 150 Z",
419
- "fill": "#0d1a2e",
420
- "stroke": "#193252",
421
- "strokeWidth": 1.5
422
- },
423
- {
424
- "id": "scale_center_title",
425
- "type": "text",
426
- "x": 385,
427
- "y": 168,
428
- "text": "Center origin",
429
- "fontSize": 16,
430
- "fontFamily": "Roboto, Arial, sans-serif",
431
- "weight": 700,
432
- "fill": "#f8fafc"
433
- },
434
- {
435
- "id": "scale_center_note",
436
- "type": "text",
437
- "x": 385,
438
- "y": 192,
439
- "text": "[80, 50]",
440
- "fontSize": 12,
441
- "fontFamily": "Roboto, Arial, sans-serif",
442
- "weight": 500,
443
- "fill": "#94a3b8"
444
- },
445
- {
446
- "id": "scale_center_guide_h",
447
- "type": "path",
448
- "d": "M 385 298 L 615 298",
449
- "fill": "none",
450
- "stroke": "#173054",
451
- "strokeWidth": 1,
452
- "dashArray": [
453
- 6,
454
- 6
455
- ]
456
- },
457
- {
458
- "id": "scale_center_guide_v",
459
- "type": "path",
460
- "d": "M 503 218 L 503 370",
461
- "fill": "none",
462
- "stroke": "#173054",
463
- "strokeWidth": 1,
464
- "dashArray": [
465
- 6,
466
- 6
467
- ]
468
- },
469
- {
470
- "id": "scale_center_origin",
471
- "type": "group",
472
- "x": 487,
473
- "y": 282,
474
- "children": [
475
- {
476
- "id": "scale_center_origin_cross_h",
477
- "type": "path",
478
- "d": "M 0 16 L 32 16",
479
- "fill": "none",
480
- "stroke": "#fde047",
481
- "strokeWidth": 2,
482
- "strokeCap": "round"
483
- },
484
- {
485
- "id": "scale_center_origin_cross_v",
486
- "type": "path",
487
- "d": "M 16 0 L 16 32",
488
- "fill": "none",
489
- "stroke": "#fde047",
490
- "strokeWidth": 2,
491
- "strokeCap": "round"
492
- },
493
- {
494
- "id": "scale_center_origin_dot",
495
- "type": "path",
496
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
497
- "fill": "#fde047",
498
- "stroke": "#0f172a",
499
- "strokeWidth": 1.5
500
- }
501
- ]
502
- },
503
- {
504
- "id": "scale_center_group",
505
- "type": "group",
506
- "x": 423,
507
- "y": 248,
508
- "width": 160,
509
- "height": 100,
510
- "origin": [
511
- 503,
512
- 298
513
- ],
514
- "children": [
515
- {
516
- "id": "scale_center_rect",
517
- "type": "path",
518
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
519
- "fill": "#38bdf8",
520
- "stroke": "#dbeafe",
521
- "strokeWidth": 2
522
- }
523
- ],
524
- "timeline": {
525
- "tracks": {
526
- "scale": {
527
- "keyframes": [
528
- {
529
- "time": 0,
530
- "value": 1,
531
- "out": {
532
- "type": "cubicBezier",
533
- "x1": 0,
534
- "y1": 0,
535
- "x2": 0.2,
536
- "y2": 1
537
- }
538
- },
539
- {
540
- "time": 1.3,
541
- "value": 1.45,
542
- "out": {
543
- "type": "cubicBezier",
544
- "x1": 0.25,
545
- "y1": 0.1,
546
- "x2": 0.25,
547
- "y2": 1
548
- }
549
- },
550
- {
551
- "time": 2.6,
552
- "value": 0.72,
553
- "out": {
554
- "type": "cubicBezier",
555
- "x1": 0.25,
556
- "y1": 0.1,
557
- "x2": 0.25,
558
- "y2": 1
559
- }
560
- },
561
- {
562
- "time": 4,
563
- "value": 1.18,
564
- "out": {
565
- "type": "cubicBezier",
566
- "x1": 0.25,
567
- "y1": 0.1,
568
- "x2": 0.25,
569
- "y2": 1
570
- }
571
- },
572
- {
573
- "time": 5.4,
574
- "value": 1
575
- }
576
- ]
577
- }
578
- }
579
- }
580
- },
581
- {
582
- "id": "rotate_center_panel",
583
- "type": "path",
584
- "d": "M 387 435 L 613 435 Q 635 435 635 457 L 635 653 Q 635 675 613 675 L 387 675 Q 365 675 365 653 L 365 457 Q 365 435 387 435 Z",
585
- "fill": "#0d1a2e",
586
- "stroke": "#193252",
587
- "strokeWidth": 1.5
588
- },
589
- {
590
- "id": "rotate_center_title",
591
- "type": "text",
592
- "x": 385,
593
- "y": 453,
594
- "text": "Center origin",
595
- "fontSize": 16,
596
- "fontFamily": "Roboto, Arial, sans-serif",
597
- "weight": 700,
598
- "fill": "#f8fafc"
599
- },
600
- {
601
- "id": "rotate_center_note",
602
- "type": "text",
603
- "x": 385,
604
- "y": 477,
605
- "text": "[80, 50]",
606
- "fontSize": 12,
607
- "fontFamily": "Roboto, Arial, sans-serif",
608
- "weight": 500,
609
- "fill": "#94a3b8"
610
- },
611
- {
612
- "id": "rotate_center_guide_h",
613
- "type": "path",
614
- "d": "M 385 583 L 615 583",
615
- "fill": "none",
616
- "stroke": "#173054",
617
- "strokeWidth": 1,
618
- "dashArray": [
619
- 6,
620
- 6
621
- ]
622
- },
623
- {
624
- "id": "rotate_center_guide_v",
625
- "type": "path",
626
- "d": "M 503 503 L 503 655",
627
- "fill": "none",
628
- "stroke": "#173054",
629
- "strokeWidth": 1,
630
- "dashArray": [
631
- 6,
632
- 6
633
- ]
634
- },
635
- {
636
- "id": "rotate_center_origin",
637
- "type": "group",
638
- "x": 487,
639
- "y": 567,
640
- "children": [
641
- {
642
- "id": "rotate_center_origin_cross_h",
643
- "type": "path",
644
- "d": "M 0 16 L 32 16",
645
- "fill": "none",
646
- "stroke": "#fde047",
647
- "strokeWidth": 2,
648
- "strokeCap": "round"
649
- },
650
- {
651
- "id": "rotate_center_origin_cross_v",
652
- "type": "path",
653
- "d": "M 16 0 L 16 32",
654
- "fill": "none",
655
- "stroke": "#fde047",
656
- "strokeWidth": 2,
657
- "strokeCap": "round"
658
- },
659
- {
660
- "id": "rotate_center_origin_dot",
661
- "type": "path",
662
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
663
- "fill": "#fde047",
664
- "stroke": "#0f172a",
665
- "strokeWidth": 1.5
666
- }
667
- ]
668
- },
669
- {
670
- "id": "rotate_center_group",
671
- "type": "group",
672
- "x": 423,
673
- "y": 533,
674
- "width": 160,
675
- "height": 100,
676
- "origin": [
677
- 503,
678
- 583
679
- ],
680
- "children": [
681
- {
682
- "id": "rotate_center_rect",
683
- "type": "path",
684
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
685
- "fill": "#38bdf8",
686
- "stroke": "#dbeafe",
687
- "strokeWidth": 2
688
- }
689
- ],
690
- "timeline": {
691
- "tracks": {
692
- "rotation": {
693
- "keyframes": [
694
- {
695
- "time": 0,
696
- "value": 0,
697
- "out": {
698
- "type": "cubicBezier",
699
- "x1": 0,
700
- "y1": 0,
701
- "x2": 0.2,
702
- "y2": 1
703
- }
704
- },
705
- {
706
- "time": 1.5,
707
- "value": 42,
708
- "out": {
709
- "type": "cubicBezier",
710
- "x1": 0.25,
711
- "y1": 0.1,
712
- "x2": 0.25,
713
- "y2": 1
714
- }
715
- },
716
- {
717
- "time": 3,
718
- "value": -28,
719
- "out": {
720
- "type": "cubicBezier",
721
- "x1": 0.25,
722
- "y1": 0.1,
723
- "x2": 0.25,
724
- "y2": 1
725
- }
726
- },
727
- {
728
- "time": 4.5,
729
- "value": 18,
730
- "out": {
731
- "type": "cubicBezier",
732
- "x1": 0.25,
733
- "y1": 0.1,
734
- "x2": 0.25,
735
- "y2": 1
736
- }
737
- },
738
- {
739
- "time": 5.8,
740
- "value": 0
741
- }
742
- ]
743
- }
744
- }
745
- }
746
- },
747
- {
748
- "id": "scale_bottom_right_panel",
749
- "type": "path",
750
- "d": "M 682 150 L 908 150 Q 930 150 930 172 L 930 368 Q 930 390 908 390 L 682 390 Q 660 390 660 368 L 660 172 Q 660 150 682 150 Z",
751
- "fill": "#0d1a2e",
752
- "stroke": "#193252",
753
- "strokeWidth": 1.5
754
- },
755
- {
756
- "id": "scale_bottom_right_title",
757
- "type": "text",
758
- "x": 680,
759
- "y": 168,
760
- "text": "Bottom-right origin",
761
- "fontSize": 16,
762
- "fontFamily": "Roboto, Arial, sans-serif",
763
- "weight": 700,
764
- "fill": "#f8fafc"
765
- },
766
- {
767
- "id": "scale_bottom_right_note",
768
- "type": "text",
769
- "x": 680,
770
- "y": 192,
771
- "text": "[160, 100]",
772
- "fontSize": 12,
773
- "fontFamily": "Roboto, Arial, sans-serif",
774
- "weight": 500,
775
- "fill": "#94a3b8"
776
- },
777
- {
778
- "id": "scale_bottom_right_guide_h",
779
- "type": "path",
780
- "d": "M 680 298 L 910 298",
781
- "fill": "none",
782
- "stroke": "#173054",
783
- "strokeWidth": 1,
784
- "dashArray": [
785
- 6,
786
- 6
787
- ]
788
- },
789
- {
790
- "id": "scale_bottom_right_guide_v",
791
- "type": "path",
792
- "d": "M 798 218 L 798 370",
793
- "fill": "none",
794
- "stroke": "#173054",
795
- "strokeWidth": 1,
796
- "dashArray": [
797
- 6,
798
- 6
799
- ]
800
- },
801
- {
802
- "id": "scale_bottom_right_origin",
803
- "type": "group",
804
- "x": 862,
805
- "y": 332,
806
- "children": [
807
- {
808
- "id": "scale_bottom_right_origin_cross_h",
809
- "type": "path",
810
- "d": "M 0 16 L 32 16",
811
- "fill": "none",
812
- "stroke": "#fde047",
813
- "strokeWidth": 2,
814
- "strokeCap": "round"
815
- },
816
- {
817
- "id": "scale_bottom_right_origin_cross_v",
818
- "type": "path",
819
- "d": "M 16 0 L 16 32",
820
- "fill": "none",
821
- "stroke": "#fde047",
822
- "strokeWidth": 2,
823
- "strokeCap": "round"
824
- },
825
- {
826
- "id": "scale_bottom_right_origin_dot",
827
- "type": "path",
828
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
829
- "fill": "#fde047",
830
- "stroke": "#0f172a",
831
- "strokeWidth": 1.5
832
- }
833
- ]
834
- },
835
- {
836
- "id": "scale_bottom_right_group",
837
- "type": "group",
838
- "x": 718,
839
- "y": 248,
840
- "width": 160,
841
- "height": 100,
842
- "origin": [
843
- 878,
844
- 348
845
- ],
846
- "children": [
847
- {
848
- "id": "scale_bottom_right_rect",
849
- "type": "path",
850
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
851
- "fill": "#22c55e",
852
- "stroke": "#dbeafe",
853
- "strokeWidth": 2
854
- }
855
- ],
856
- "timeline": {
857
- "tracks": {
858
- "scale": {
859
- "keyframes": [
860
- {
861
- "time": 0,
862
- "value": 1,
863
- "out": {
864
- "type": "cubicBezier",
865
- "x1": 0,
866
- "y1": 0,
867
- "x2": 0.2,
868
- "y2": 1
869
- }
870
- },
871
- {
872
- "time": 1.3,
873
- "value": 1.45,
874
- "out": {
875
- "type": "cubicBezier",
876
- "x1": 0.25,
877
- "y1": 0.1,
878
- "x2": 0.25,
879
- "y2": 1
880
- }
881
- },
882
- {
883
- "time": 2.6,
884
- "value": 0.72,
885
- "out": {
886
- "type": "cubicBezier",
887
- "x1": 0.25,
888
- "y1": 0.1,
889
- "x2": 0.25,
890
- "y2": 1
891
- }
892
- },
893
- {
894
- "time": 4,
895
- "value": 1.18,
896
- "out": {
897
- "type": "cubicBezier",
898
- "x1": 0.25,
899
- "y1": 0.1,
900
- "x2": 0.25,
901
- "y2": 1
902
- }
903
- },
904
- {
905
- "time": 5.4,
906
- "value": 1
907
- }
908
- ]
909
- }
910
- }
911
- }
912
- },
913
- {
914
- "id": "rotate_bottom_right_panel",
915
- "type": "path",
916
- "d": "M 682 435 L 908 435 Q 930 435 930 457 L 930 653 Q 930 675 908 675 L 682 675 Q 660 675 660 653 L 660 457 Q 660 435 682 435 Z",
917
- "fill": "#0d1a2e",
918
- "stroke": "#193252",
919
- "strokeWidth": 1.5
920
- },
921
- {
922
- "id": "rotate_bottom_right_title",
923
- "type": "text",
924
- "x": 680,
925
- "y": 453,
926
- "text": "Bottom-right origin",
927
- "fontSize": 16,
928
- "fontFamily": "Roboto, Arial, sans-serif",
929
- "weight": 700,
930
- "fill": "#f8fafc"
931
- },
932
- {
933
- "id": "rotate_bottom_right_note",
934
- "type": "text",
935
- "x": 680,
936
- "y": 477,
937
- "text": "[160, 100]",
938
- "fontSize": 12,
939
- "fontFamily": "Roboto, Arial, sans-serif",
940
- "weight": 500,
941
- "fill": "#94a3b8"
942
- },
943
- {
944
- "id": "rotate_bottom_right_guide_h",
945
- "type": "path",
946
- "d": "M 680 583 L 910 583",
947
- "fill": "none",
948
- "stroke": "#173054",
949
- "strokeWidth": 1,
950
- "dashArray": [
951
- 6,
952
- 6
953
- ]
954
- },
955
- {
956
- "id": "rotate_bottom_right_guide_v",
957
- "type": "path",
958
- "d": "M 798 503 L 798 655",
959
- "fill": "none",
960
- "stroke": "#173054",
961
- "strokeWidth": 1,
962
- "dashArray": [
963
- 6,
964
- 6
965
- ]
966
- },
967
- {
968
- "id": "rotate_bottom_right_origin",
969
- "type": "group",
970
- "x": 862,
971
- "y": 617,
972
- "children": [
973
- {
974
- "id": "rotate_bottom_right_origin_cross_h",
975
- "type": "path",
976
- "d": "M 0 16 L 32 16",
977
- "fill": "none",
978
- "stroke": "#fde047",
979
- "strokeWidth": 2,
980
- "strokeCap": "round"
981
- },
982
- {
983
- "id": "rotate_bottom_right_origin_cross_v",
984
- "type": "path",
985
- "d": "M 16 0 L 16 32",
986
- "fill": "none",
987
- "stroke": "#fde047",
988
- "strokeWidth": 2,
989
- "strokeCap": "round"
990
- },
991
- {
992
- "id": "rotate_bottom_right_origin_dot",
993
- "type": "path",
994
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
995
- "fill": "#fde047",
996
- "stroke": "#0f172a",
997
- "strokeWidth": 1.5
998
- }
999
- ]
1000
- },
1001
- {
1002
- "id": "rotate_bottom_right_group",
1003
- "type": "group",
1004
- "x": 718,
1005
- "y": 533,
1006
- "width": 160,
1007
- "height": 100,
1008
- "origin": [
1009
- 878,
1010
- 633
1011
- ],
1012
- "children": [
1013
- {
1014
- "id": "rotate_bottom_right_rect",
1015
- "type": "path",
1016
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
1017
- "fill": "#22c55e",
1018
- "stroke": "#dbeafe",
1019
- "strokeWidth": 2
1020
- }
1021
- ],
1022
- "timeline": {
1023
- "tracks": {
1024
- "rotation": {
1025
- "keyframes": [
1026
- {
1027
- "time": 0,
1028
- "value": 0,
1029
- "out": {
1030
- "type": "cubicBezier",
1031
- "x1": 0,
1032
- "y1": 0,
1033
- "x2": 0.2,
1034
- "y2": 1
1035
- }
1036
- },
1037
- {
1038
- "time": 1.5,
1039
- "value": 42,
1040
- "out": {
1041
- "type": "cubicBezier",
1042
- "x1": 0.25,
1043
- "y1": 0.1,
1044
- "x2": 0.25,
1045
- "y2": 1
1046
- }
1047
- },
1048
- {
1049
- "time": 3,
1050
- "value": -28,
1051
- "out": {
1052
- "type": "cubicBezier",
1053
- "x1": 0.25,
1054
- "y1": 0.1,
1055
- "x2": 0.25,
1056
- "y2": 1
1057
- }
1058
- },
1059
- {
1060
- "time": 4.5,
1061
- "value": 18,
1062
- "out": {
1063
- "type": "cubicBezier",
1064
- "x1": 0.25,
1065
- "y1": 0.1,
1066
- "x2": 0.25,
1067
- "y2": 1
1068
- }
1069
- },
1070
- {
1071
- "time": 5.8,
1072
- "value": 0
1073
- }
1074
- ]
1075
- }
1076
- }
1077
- }
1078
- },
1079
- {
1080
- "id": "scale_outside_right_panel",
1081
- "type": "path",
1082
- "d": "M 977 150 L 1203 150 Q 1225 150 1225 172 L 1225 368 Q 1225 390 1203 390 L 977 390 Q 955 390 955 368 L 955 172 Q 955 150 977 150 Z",
1083
- "fill": "#0d1a2e",
1084
- "stroke": "#193252",
1085
- "strokeWidth": 1.5
1086
- },
1087
- {
1088
- "id": "scale_outside_right_title",
1089
- "type": "text",
1090
- "x": 975,
1091
- "y": 168,
1092
- "text": "Outside-right origin",
1093
- "fontSize": 16,
1094
- "fontFamily": "Roboto, Arial, sans-serif",
1095
- "weight": 700,
1096
- "fill": "#f8fafc"
1097
- },
1098
- {
1099
- "id": "scale_outside_right_note",
1100
- "type": "text",
1101
- "x": 975,
1102
- "y": 192,
1103
- "text": "[200, 50]",
1104
- "fontSize": 12,
1105
- "fontFamily": "Roboto, Arial, sans-serif",
1106
- "weight": 500,
1107
- "fill": "#94a3b8"
1108
- },
1109
- {
1110
- "id": "scale_outside_right_guide_h",
1111
- "type": "path",
1112
- "d": "M 975 298 L 1205 298",
1113
- "fill": "none",
1114
- "stroke": "#173054",
1115
- "strokeWidth": 1,
1116
- "dashArray": [
1117
- 6,
1118
- 6
1119
- ]
1120
- },
1121
- {
1122
- "id": "scale_outside_right_guide_v",
1123
- "type": "path",
1124
- "d": "M 1093 218 L 1093 370",
1125
- "fill": "none",
1126
- "stroke": "#173054",
1127
- "strokeWidth": 1,
1128
- "dashArray": [
1129
- 6,
1130
- 6
1131
- ]
1132
- },
1133
- {
1134
- "id": "scale_outside_right_origin",
1135
- "type": "group",
1136
- "x": 1197,
1137
- "y": 282,
1138
- "children": [
1139
- {
1140
- "id": "scale_outside_right_origin_cross_h",
1141
- "type": "path",
1142
- "d": "M 0 16 L 32 16",
1143
- "fill": "none",
1144
- "stroke": "#fde047",
1145
- "strokeWidth": 2,
1146
- "strokeCap": "round"
1147
- },
1148
- {
1149
- "id": "scale_outside_right_origin_cross_v",
1150
- "type": "path",
1151
- "d": "M 16 0 L 16 32",
1152
- "fill": "none",
1153
- "stroke": "#fde047",
1154
- "strokeWidth": 2,
1155
- "strokeCap": "round"
1156
- },
1157
- {
1158
- "id": "scale_outside_right_origin_dot",
1159
- "type": "path",
1160
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
1161
- "fill": "#fde047",
1162
- "stroke": "#0f172a",
1163
- "strokeWidth": 1.5
1164
- }
1165
- ]
1166
- },
1167
- {
1168
- "id": "scale_outside_right_group",
1169
- "type": "group",
1170
- "x": 1013,
1171
- "y": 248,
1172
- "width": 160,
1173
- "height": 100,
1174
- "origin": [
1175
- 1213,
1176
- 298
1177
- ],
1178
- "children": [
1179
- {
1180
- "id": "scale_outside_right_rect",
1181
- "type": "path",
1182
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
1183
- "fill": "#f59e0b",
1184
- "stroke": "#dbeafe",
1185
- "strokeWidth": 2
1186
- }
1187
- ],
1188
- "timeline": {
1189
- "tracks": {
1190
- "scale": {
1191
- "keyframes": [
1192
- {
1193
- "time": 0,
1194
- "value": 1,
1195
- "out": {
1196
- "type": "cubicBezier",
1197
- "x1": 0,
1198
- "y1": 0,
1199
- "x2": 0.2,
1200
- "y2": 1
1201
- }
1202
- },
1203
- {
1204
- "time": 1.3,
1205
- "value": 1.45,
1206
- "out": {
1207
- "type": "cubicBezier",
1208
- "x1": 0.25,
1209
- "y1": 0.1,
1210
- "x2": 0.25,
1211
- "y2": 1
1212
- }
1213
- },
1214
- {
1215
- "time": 2.6,
1216
- "value": 0.72,
1217
- "out": {
1218
- "type": "cubicBezier",
1219
- "x1": 0.25,
1220
- "y1": 0.1,
1221
- "x2": 0.25,
1222
- "y2": 1
1223
- }
1224
- },
1225
- {
1226
- "time": 4,
1227
- "value": 1.18,
1228
- "out": {
1229
- "type": "cubicBezier",
1230
- "x1": 0.25,
1231
- "y1": 0.1,
1232
- "x2": 0.25,
1233
- "y2": 1
1234
- }
1235
- },
1236
- {
1237
- "time": 5.4,
1238
- "value": 1
1239
- }
1240
- ]
1241
- }
1242
- }
1243
- }
1244
- },
1245
- {
1246
- "id": "rotate_outside_right_panel",
1247
- "type": "path",
1248
- "d": "M 977 435 L 1203 435 Q 1225 435 1225 457 L 1225 653 Q 1225 675 1203 675 L 977 675 Q 955 675 955 653 L 955 457 Q 955 435 977 435 Z",
1249
- "fill": "#0d1a2e",
1250
- "stroke": "#193252",
1251
- "strokeWidth": 1.5
1252
- },
1253
- {
1254
- "id": "rotate_outside_right_title",
1255
- "type": "text",
1256
- "x": 975,
1257
- "y": 453,
1258
- "text": "Outside-right origin",
1259
- "fontSize": 16,
1260
- "fontFamily": "Roboto, Arial, sans-serif",
1261
- "weight": 700,
1262
- "fill": "#f8fafc"
1263
- },
1264
- {
1265
- "id": "rotate_outside_right_note",
1266
- "type": "text",
1267
- "x": 975,
1268
- "y": 477,
1269
- "text": "[200, 50]",
1270
- "fontSize": 12,
1271
- "fontFamily": "Roboto, Arial, sans-serif",
1272
- "weight": 500,
1273
- "fill": "#94a3b8"
1274
- },
1275
- {
1276
- "id": "rotate_outside_right_guide_h",
1277
- "type": "path",
1278
- "d": "M 975 583 L 1205 583",
1279
- "fill": "none",
1280
- "stroke": "#173054",
1281
- "strokeWidth": 1,
1282
- "dashArray": [
1283
- 6,
1284
- 6
1285
- ]
1286
- },
1287
- {
1288
- "id": "rotate_outside_right_guide_v",
1289
- "type": "path",
1290
- "d": "M 1093 503 L 1093 655",
1291
- "fill": "none",
1292
- "stroke": "#173054",
1293
- "strokeWidth": 1,
1294
- "dashArray": [
1295
- 6,
1296
- 6
1297
- ]
1298
- },
1299
- {
1300
- "id": "rotate_outside_right_origin",
1301
- "type": "group",
1302
- "x": 1197,
1303
- "y": 567,
1304
- "children": [
1305
- {
1306
- "id": "rotate_outside_right_origin_cross_h",
1307
- "type": "path",
1308
- "d": "M 0 16 L 32 16",
1309
- "fill": "none",
1310
- "stroke": "#fde047",
1311
- "strokeWidth": 2,
1312
- "strokeCap": "round"
1313
- },
1314
- {
1315
- "id": "rotate_outside_right_origin_cross_v",
1316
- "type": "path",
1317
- "d": "M 16 0 L 16 32",
1318
- "fill": "none",
1319
- "stroke": "#fde047",
1320
- "strokeWidth": 2,
1321
- "strokeCap": "round"
1322
- },
1323
- {
1324
- "id": "rotate_outside_right_origin_dot",
1325
- "type": "path",
1326
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
1327
- "fill": "#fde047",
1328
- "stroke": "#0f172a",
1329
- "strokeWidth": 1.5
1330
- }
1331
- ]
1332
- },
1333
- {
1334
- "id": "rotate_outside_right_group",
1335
- "type": "group",
1336
- "x": 1013,
1337
- "y": 533,
1338
- "width": 160,
1339
- "height": 100,
1340
- "origin": [
1341
- 1213,
1342
- 583
1343
- ],
1344
- "children": [
1345
- {
1346
- "id": "rotate_outside_right_rect",
1347
- "type": "path",
1348
- "d": "M 18 0 L 142 0 Q 160 0 160 18 L 160 82 Q 160 100 142 100 L 18 100 Q 0 100 0 82 L 0 18 Q 0 0 18 0 Z",
1349
- "fill": "#f59e0b",
1350
- "stroke": "#dbeafe",
1351
- "strokeWidth": 2
1352
- }
1353
- ],
1354
- "timeline": {
1355
- "tracks": {
1356
- "rotation": {
1357
- "keyframes": [
1358
- {
1359
- "time": 0,
1360
- "value": 0,
1361
- "out": {
1362
- "type": "cubicBezier",
1363
- "x1": 0,
1364
- "y1": 0,
1365
- "x2": 0.2,
1366
- "y2": 1
1367
- }
1368
- },
1369
- {
1370
- "time": 1.5,
1371
- "value": 42,
1372
- "out": {
1373
- "type": "cubicBezier",
1374
- "x1": 0.25,
1375
- "y1": 0.1,
1376
- "x2": 0.25,
1377
- "y2": 1
1378
- }
1379
- },
1380
- {
1381
- "time": 3,
1382
- "value": -28,
1383
- "out": {
1384
- "type": "cubicBezier",
1385
- "x1": 0.25,
1386
- "y1": 0.1,
1387
- "x2": 0.25,
1388
- "y2": 1
1389
- }
1390
- },
1391
- {
1392
- "time": 4.5,
1393
- "value": 18,
1394
- "out": {
1395
- "type": "cubicBezier",
1396
- "x1": 0.25,
1397
- "y1": 0.1,
1398
- "x2": 0.25,
1399
- "y2": 1
1400
- }
1401
- },
1402
- {
1403
- "time": 5.8,
1404
- "value": 0
1405
- }
1406
- ]
1407
- }
1408
- }
1409
- }
1410
- }
1411
- ]
1412
- }