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 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" viewBox="0 0 800 600" role="img"><defs><filter id="sketchmark-filter-0" x="-50%" y="-50%" width="200%" height="200%"><feDropShadow dx="0" dy="8" stdDeviation="32" flood-color="#000000" flood-opacity="0.15"/></filter></defs><rect x="0" y="0" width="800" height="600" fill="#64748b"/><path id="overlay" opacity="0.5" d="M 0 0 L 800 0 L 800 600 L 0 600 Z" fill="#0f172a" stroke="none" stroke-width="0"/><path id="modal-bg" filter="url(#sketchmark-filter-0)" d="M 152 60 L 648 60 Q 660 60 660 72 L 660 528 Q 660 540 648 540 L 152 540 Q 140 540 140 528 L 140 72 Q 140 60 152 60 Z" fill="#ffffff" stroke="#e2e8f0" stroke-width="1"/><text id="modal-title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="20" font-weight="700" fill="#0f172a"><tspan x="168" y="98">Delete Project</tspan></text><text id="modal-desc" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="400" fill="#475569"><tspan x="168" y="127">This action will permanently remove the project and all associated</tspan><tspan x="168" y="148.7">data. This cannot be undone.</tspan></text><path id="warning-bg" d="M 174 176 L 626 176 Q 632 176 632 182 L 632 226 Q 632 232 626 232 L 174 232 Q 168 232 168 226 L 168 182 Q 168 176 174 176 Z" fill="#fef2f2" stroke="#fecaca" stroke-width="1"/><text id="warning-text" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#991b1b"><tspan x="182" y="196">Warning: 3 team members will lose access immediately. Any</tspan><tspan x="182" y="214">active integrations connected to this project will stop working.</tspan></text><text id="field1-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="600" fill="#1e293b"><tspan x="168" y="262.5">Project Name</tspan></text><text id="field1-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="168" y="284">Enter the project name exactly as shown to confirm deletion.</tspan><tspan x="168" y="302">This helps prevent accidental removal of important data.</tspan></text><path id="field1-input-bg" d="M 174 320 L 626 320 Q 632 320 632 326 L 632 352 Q 632 358 626 358 L 174 358 Q 168 358 168 352 L 168 326 Q 168 320 174 320 Z" fill="#ffffff" stroke="#cbd5e1" stroke-width="1"/><text id="field1-placeholder" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="400" fill="#94a3b8"><tspan x="180" y="339">acme-dashboard-v2</tspan></text><text id="field2-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="600" fill="#1e293b"><tspan x="168" y="384.5">Confirmation Phrase</tspan></text><text id="field2-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="168" y="406">Type "delete my project" to enable the delete button.</tspan></text><path id="field2-input-bg" d="M 174 426 L 626 426 Q 632 426 632 432 L 632 458 Q 632 464 626 464 L 174 464 Q 168 464 168 458 L 168 432 Q 168 426 174 426 Z" fill="#ffffff" stroke="#cbd5e1" stroke-width="1"/><text id="field2-placeholder" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="400" fill="#94a3b8"><tspan x="180" y="445">delete my project</tspan></text><path id="footer-bg" d="M 140 472 L 660 472 L 660 528 Q 660 540 648 540 L 152 540 Q 140 540 140 528 Z" fill="#f8fafc" stroke="none" stroke-width="0"/><path id="footer-border" d="M 140 472 L 660 472" fill="none" stroke="#e2e8f0" stroke-width="1"/><path id="btn-cancel-bg" d="M 426 487 L 494 487 Q 500 487 500 493 L 500 519 Q 500 525 494 525 L 426 525 Q 420 525 420 519 L 420 493 Q 420 487 426 487 Z" fill="#ffffff" stroke="#cbd5e1" stroke-width="1"/><text id="btn-cancel-label" text-anchor="middle" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="500" fill="#475569"><tspan x="460" y="506">Cancel</tspan></text><path id="btn-delete-bg" d="M 518 487 L 626 487 Q 632 487 632 493 L 632 519 Q 632 525 626 525 L 518 525 Q 512 525 512 519 L 512 493 Q 512 487 518 487 Z" fill="#dc2626" stroke="none" stroke-width="0"/><text id="btn-delete-label" text-anchor="middle" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="600" fill="#ffffff"><tspan x="572" y="506">Delete Project</tspan></text></svg>
@@ -1,239 +0,0 @@
1
- {
2
- "version": 1,
3
- "canvas": {
4
- "width": 800,
5
- "height": 600,
6
- "background": "#64748b"
7
- },
8
- "elements": [
9
- {
10
- "id": "overlay",
11
- "type": "path",
12
- "d": "M 0 0 L 800 0 L 800 600 L 0 600 Z",
13
- "fill": "#0f172a",
14
- "opacity": 0.5,
15
- "stroke": "none"
16
- },
17
- {
18
- "id": "modal-bg",
19
- "type": "path",
20
- "d": "M 152 60 L 648 60 Q 660 60 660 72 L 660 528 Q 660 540 648 540 L 152 540 Q 140 540 140 528 L 140 72 Q 140 60 152 60 Z",
21
- "fill": "#ffffff",
22
- "stroke": "#e2e8f0",
23
- "strokeWidth": 1,
24
- "effects": {
25
- "shadow": {
26
- "dx": 0,
27
- "dy": 8,
28
- "blur": 32,
29
- "color": "#000000",
30
- "opacity": 0.15
31
- }
32
- }
33
- },
34
- {
35
- "id": "modal-title",
36
- "type": "text",
37
- "x": 168,
38
- "y": 88,
39
- "text": "Delete Project",
40
- "align": "left",
41
- "valign": "top",
42
- "fontSize": 20,
43
- "fontFamily": "Inter, system-ui, sans-serif",
44
- "weight": 700,
45
- "fill": "#0f172a"
46
- },
47
- {
48
- "id": "modal-desc",
49
- "type": "text",
50
- "x": 168,
51
- "y": 120,
52
- "text": "This action will permanently remove the project and all associated\ndata. This cannot be undone.",
53
- "align": "left",
54
- "valign": "top",
55
- "fontSize": 14,
56
- "fontFamily": "Inter, system-ui, sans-serif",
57
- "weight": 400,
58
- "lineHeight": 1.55,
59
- "fill": "#475569",
60
- "maxWidth": 464
61
- },
62
- {
63
- "id": "warning-bg",
64
- "type": "path",
65
- "d": "M 174 176 L 626 176 Q 632 176 632 182 L 632 226 Q 632 232 626 232 L 174 232 Q 168 232 168 226 L 168 182 Q 168 176 174 176 Z",
66
- "fill": "#fef2f2",
67
- "stroke": "#fecaca",
68
- "strokeWidth": 1
69
- },
70
- {
71
- "id": "warning-text",
72
- "type": "text",
73
- "x": 182,
74
- "y": 190,
75
- "text": "Warning: 3 team members will lose access immediately. Any\nactive integrations connected to this project will stop working.",
76
- "align": "left",
77
- "valign": "top",
78
- "fontSize": 12,
79
- "fontFamily": "Inter, system-ui, sans-serif",
80
- "weight": 500,
81
- "lineHeight": 1.5,
82
- "fill": "#991b1b",
83
- "maxWidth": 436
84
- },
85
- {
86
- "id": "field1-label",
87
- "type": "text",
88
- "x": 168,
89
- "y": 256,
90
- "text": "Project Name",
91
- "align": "left",
92
- "valign": "top",
93
- "fontSize": 13,
94
- "fontFamily": "Inter, system-ui, sans-serif",
95
- "weight": 600,
96
- "fill": "#1e293b"
97
- },
98
- {
99
- "id": "field1-helper",
100
- "type": "text",
101
- "x": 168,
102
- "y": 278,
103
- "text": "Enter the project name exactly as shown to confirm deletion.\nThis helps prevent accidental removal of important data.",
104
- "align": "left",
105
- "valign": "top",
106
- "fontSize": 12,
107
- "fontFamily": "Inter, system-ui, sans-serif",
108
- "weight": 400,
109
- "lineHeight": 1.5,
110
- "fill": "#64748b",
111
- "maxWidth": 464
112
- },
113
- {
114
- "id": "field1-input-bg",
115
- "type": "path",
116
- "d": "M 174 320 L 626 320 Q 632 320 632 326 L 632 352 Q 632 358 626 358 L 174 358 Q 168 358 168 352 L 168 326 Q 168 320 174 320 Z",
117
- "fill": "#ffffff",
118
- "stroke": "#cbd5e1",
119
- "strokeWidth": 1
120
- },
121
- {
122
- "id": "field1-placeholder",
123
- "type": "text",
124
- "x": 180,
125
- "y": 339,
126
- "text": "acme-dashboard-v2",
127
- "align": "left",
128
- "valign": "middle",
129
- "fontSize": 13,
130
- "fontFamily": "Inter, system-ui, sans-serif",
131
- "weight": 400,
132
- "fill": "#94a3b8"
133
- },
134
- {
135
- "id": "field2-label",
136
- "type": "text",
137
- "x": 168,
138
- "y": 378,
139
- "text": "Confirmation Phrase",
140
- "align": "left",
141
- "valign": "top",
142
- "fontSize": 13,
143
- "fontFamily": "Inter, system-ui, sans-serif",
144
- "weight": 600,
145
- "fill": "#1e293b"
146
- },
147
- {
148
- "id": "field2-helper",
149
- "type": "text",
150
- "x": 168,
151
- "y": 400,
152
- "text": "Type \"delete my project\" to enable the delete button.",
153
- "align": "left",
154
- "valign": "top",
155
- "fontSize": 12,
156
- "fontFamily": "Inter, system-ui, sans-serif",
157
- "weight": 400,
158
- "fill": "#64748b",
159
- "maxWidth": 464
160
- },
161
- {
162
- "id": "field2-input-bg",
163
- "type": "path",
164
- "d": "M 174 426 L 626 426 Q 632 426 632 432 L 632 458 Q 632 464 626 464 L 174 464 Q 168 464 168 458 L 168 432 Q 168 426 174 426 Z",
165
- "fill": "#ffffff",
166
- "stroke": "#cbd5e1",
167
- "strokeWidth": 1
168
- },
169
- {
170
- "id": "field2-placeholder",
171
- "type": "text",
172
- "x": 180,
173
- "y": 445,
174
- "text": "delete my project",
175
- "align": "left",
176
- "valign": "middle",
177
- "fontSize": 13,
178
- "fontFamily": "Inter, system-ui, sans-serif",
179
- "weight": 400,
180
- "fill": "#94a3b8"
181
- },
182
- {
183
- "id": "footer-bg",
184
- "type": "path",
185
- "d": "M 140 472 L 660 472 L 660 528 Q 660 540 648 540 L 152 540 Q 140 540 140 528 Z",
186
- "fill": "#f8fafc",
187
- "stroke": "none"
188
- },
189
- {
190
- "id": "footer-border",
191
- "type": "path",
192
- "d": "M 140 472 L 660 472",
193
- "stroke": "#e2e8f0",
194
- "strokeWidth": 1,
195
- "fill": "none"
196
- },
197
- {
198
- "id": "btn-cancel-bg",
199
- "type": "path",
200
- "d": "M 426 487 L 494 487 Q 500 487 500 493 L 500 519 Q 500 525 494 525 L 426 525 Q 420 525 420 519 L 420 493 Q 420 487 426 487 Z",
201
- "fill": "#ffffff",
202
- "stroke": "#cbd5e1",
203
- "strokeWidth": 1
204
- },
205
- {
206
- "id": "btn-cancel-label",
207
- "type": "text",
208
- "x": 460,
209
- "y": 506,
210
- "text": "Cancel",
211
- "align": "center",
212
- "valign": "middle",
213
- "fontSize": 13,
214
- "fontFamily": "Inter, system-ui, sans-serif",
215
- "weight": 500,
216
- "fill": "#475569"
217
- },
218
- {
219
- "id": "btn-delete-bg",
220
- "type": "path",
221
- "d": "M 518 487 L 626 487 Q 632 487 632 493 L 632 519 Q 632 525 626 525 L 518 525 Q 512 525 512 519 L 512 493 Q 512 487 518 487 Z",
222
- "fill": "#dc2626",
223
- "stroke": "none"
224
- },
225
- {
226
- "id": "btn-delete-label",
227
- "type": "text",
228
- "x": 572,
229
- "y": 506,
230
- "text": "Delete Project",
231
- "align": "center",
232
- "valign": "middle",
233
- "fontSize": 13,
234
- "fontFamily": "Inter, system-ui, sans-serif",
235
- "weight": 600,
236
- "fill": "#ffffff"
237
- }
238
- ]
239
- }
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="1280" height="760" viewBox="0 0 1280 760" role="img"><rect x="0" y="0" width="1280" height="760" fill="#07111f"/><text id="lab_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="38" font-weight="700" fill="#f8fafc"><tspan x="70" y="71">Origin Transform Lab</tspan></text><text id="lab_body" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="400" fill="#94a3b8"><tspan x="70" y="104">Same rounded rectangle, animated as a group. Only the origin changes.</tspan></text><text id="scale_row_label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="18" font-weight="700" fill="#7dd3fc"><tspan x="70" y="131">Scale tests</tspan></text><text id="rotate_row_label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="18" font-weight="700" fill="#7dd3fc"><tspan x="70" y="406">Rotation tests</tspan></text><path id="scale_top_left_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="scale_top_left_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="90" y="176">Top-left origin</tspan></text><text id="scale_top_left_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="90" y="198">[0, 0]</tspan></text><path id="scale_top_left_guide_h" d="M 90 298 L 320 298" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="scale_top_left_guide_v" d="M 208 218 L 208 370" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="scale_top_left_origin" transform="translate(128 248)"><path id="scale_top_left_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_top_left_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_top_left_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="scale_top_left_group" transform="translate(128 248) translate(0 0) scale(0.9681869211307477 0.9681869211307477) translate(0 0)"><path id="scale_top_left_rect" 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" fill="#818cf8" stroke="#dbeafe" stroke-width="2"/></g><path id="rotate_top_left_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="rotate_top_left_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="90" y="461">Top-left origin</tspan></text><text id="rotate_top_left_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="90" y="483">[0, 0]</tspan></text><path id="rotate_top_left_guide_h" d="M 90 583 L 320 583" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="rotate_top_left_guide_v" d="M 208 503 L 208 655" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="rotate_top_left_origin" transform="translate(128 533)"><path id="rotate_top_left_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_top_left_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_top_left_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="rotate_top_left_group" transform="translate(128 533) rotate(21.33289850236273 0 0)"><path id="rotate_top_left_rect" 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" fill="#818cf8" stroke="#dbeafe" stroke-width="2"/></g><path id="scale_center_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="scale_center_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="385" y="176">Center origin</tspan></text><text id="scale_center_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="385" y="198">[80, 50]</tspan></text><path id="scale_center_guide_h" d="M 385 298 L 615 298" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="scale_center_guide_v" d="M 503 218 L 503 370" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="scale_center_origin" transform="translate(503 298)"><path id="scale_center_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_center_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_center_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="scale_center_group" transform="translate(423 248) translate(80 50) scale(0.9681869211307477 0.9681869211307477) translate(-80 -50)"><path id="scale_center_rect" 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" fill="#38bdf8" stroke="#dbeafe" stroke-width="2"/></g><path id="rotate_center_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="rotate_center_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="385" y="461">Center origin</tspan></text><text id="rotate_center_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="385" y="483">[80, 50]</tspan></text><path id="rotate_center_guide_h" d="M 385 583 L 615 583" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="rotate_center_guide_v" d="M 503 503 L 503 655" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="rotate_center_origin" transform="translate(503 583)"><path id="rotate_center_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_center_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_center_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="rotate_center_group" transform="translate(423 533) rotate(21.33289850236273 80 50)"><path id="rotate_center_rect" 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" fill="#38bdf8" stroke="#dbeafe" stroke-width="2"/></g><path id="scale_bottom_right_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="scale_bottom_right_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="680" y="176">Bottom-right origin</tspan></text><text id="scale_bottom_right_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="680" y="198">[160, 100]</tspan></text><path id="scale_bottom_right_guide_h" d="M 680 298 L 910 298" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="scale_bottom_right_guide_v" d="M 798 218 L 798 370" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="scale_bottom_right_origin" transform="translate(878 348)"><path id="scale_bottom_right_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_bottom_right_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_bottom_right_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="scale_bottom_right_group" transform="translate(718 248) translate(160 100) scale(0.9681869211307477 0.9681869211307477) translate(-160 -100)"><path id="scale_bottom_right_rect" 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" fill="#22c55e" stroke="#dbeafe" stroke-width="2"/></g><path id="rotate_bottom_right_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="rotate_bottom_right_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="680" y="461">Bottom-right origin</tspan></text><text id="rotate_bottom_right_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="680" y="483">[160, 100]</tspan></text><path id="rotate_bottom_right_guide_h" d="M 680 583 L 910 583" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="rotate_bottom_right_guide_v" d="M 798 503 L 798 655" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="rotate_bottom_right_origin" transform="translate(878 633)"><path id="rotate_bottom_right_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_bottom_right_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_bottom_right_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="rotate_bottom_right_group" transform="translate(718 533) rotate(21.33289850236273 160 100)"><path id="rotate_bottom_right_rect" 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" fill="#22c55e" stroke="#dbeafe" stroke-width="2"/></g><path id="scale_outside_right_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="scale_outside_right_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="975" y="176">Outside-right origin</tspan></text><text id="scale_outside_right_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="975" y="198">[200, 50]</tspan></text><path id="scale_outside_right_guide_h" d="M 975 298 L 1205 298" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="scale_outside_right_guide_v" d="M 1093 218 L 1093 370" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="scale_outside_right_origin" transform="translate(1213 298)"><path id="scale_outside_right_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_outside_right_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="scale_outside_right_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="scale_outside_right_group" transform="translate(1013 248) translate(200 50) scale(0.9681869211307477 0.9681869211307477) translate(-200 -50)"><path id="scale_outside_right_rect" 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" fill="#f59e0b" stroke="#dbeafe" stroke-width="2"/></g><path id="rotate_outside_right_panel" 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" fill="#0d1a2e" stroke="#193252" stroke-width="1.5"/><text id="rotate_outside_right_title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="16" font-weight="700" fill="#f8fafc"><tspan x="975" y="461">Outside-right origin</tspan></text><text id="rotate_outside_right_note" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="500" fill="#94a3b8"><tspan x="975" y="483">[200, 50]</tspan></text><path id="rotate_outside_right_guide_h" d="M 975 583 L 1205 583" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><path id="rotate_outside_right_guide_v" d="M 1093 503 L 1093 655" fill="none" stroke="#173054" stroke-width="1" stroke-dasharray="6 6"/><g id="rotate_outside_right_origin" transform="translate(1213 583)"><path id="rotate_outside_right_origin_cross_h" d="M -16 0 L 16 0" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_outside_right_origin_cross_v" d="M 0 -16 L 0 16" fill="none" stroke="#fde047" stroke-width="2" stroke-linecap="round"/><path id="rotate_outside_right_origin_dot" d="M -6 0 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0" fill="#fde047" stroke="#0f172a" stroke-width="1.5"/></g><g id="rotate_outside_right_group" transform="translate(1013 533) rotate(21.33289850236273 200 50)"><path id="rotate_outside_right_rect" 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" fill="#f59e0b" stroke="#dbeafe" stroke-width="2"/></g></svg>