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.
- package/ANIMATABLE_MATRIX.md +177 -0
- package/KERNEL_SPEC.md +412 -0
- package/PACKS.md +81 -0
- package/PRESETS.md +182 -0
- package/README.md +274 -188
- package/bin/editor-ui.cjs +2285 -0
- package/bin/preview-ui.cjs +74 -0
- package/bin/sketchmark.cjs +648 -2008
- package/dist/src/animatable.d.ts +21 -0
- package/dist/src/animatable.js +439 -0
- package/dist/src/builders/index.d.ts +1 -11
- package/dist/src/builders/index.js +1 -19
- package/dist/src/diagnostics.js +1 -64
- package/dist/src/edit.d.ts +27 -0
- package/dist/src/edit.js +162 -0
- package/dist/src/index.d.ts +4 -13
- package/dist/src/index.js +4 -13
- package/dist/src/keyframes.d.ts +48 -0
- package/dist/src/keyframes.js +182 -0
- package/dist/src/motion.d.ts +4 -0
- package/dist/src/motion.js +262 -0
- package/dist/src/normalize.js +120 -151
- package/dist/src/presets/characters.d.ts +15 -0
- package/dist/src/presets/characters.js +113 -0
- package/dist/src/presets/compose.d.ts +5 -0
- package/dist/src/presets/compose.js +80 -0
- package/dist/src/presets/effects.d.ts +40 -0
- package/dist/src/presets/effects.js +79 -0
- package/dist/src/presets/helpers.d.ts +33 -0
- package/dist/src/presets/helpers.js +165 -0
- package/dist/src/presets/index.d.ts +9 -0
- package/dist/src/presets/index.js +48 -0
- package/dist/src/presets/motions.d.ts +33 -0
- package/dist/src/presets/motions.js +75 -0
- package/dist/src/presets/scenes.d.ts +35 -0
- package/dist/src/presets/scenes.js +134 -0
- package/dist/src/presets/shapes.d.ts +71 -0
- package/dist/src/presets/shapes.js +96 -0
- package/dist/src/presets/transitions.d.ts +29 -0
- package/dist/src/presets/transitions.js +113 -0
- package/dist/src/presets/types.d.ts +34 -0
- package/dist/src/presets/types.js +2 -0
- package/dist/src/render/html.js +1 -4
- package/dist/src/render/svg.d.ts +2 -2
- package/dist/src/render/svg.js +86 -82
- package/dist/src/render/three-html.js +67 -113
- package/dist/src/scenes.js +1 -0
- package/dist/src/schema.js +218 -280
- package/dist/src/shapes/builtins.js +11 -47
- package/dist/src/shapes/common.js +12 -11
- package/dist/src/shapes/registry.d.ts +0 -1
- package/dist/src/shapes/registry.js +0 -4
- package/dist/src/shapes/types.d.ts +1 -3
- package/dist/src/types.d.ts +57 -288
- package/dist/src/utils.d.ts +2 -11
- package/dist/src/utils.js +13 -70
- package/dist/src/validate.js +321 -275
- package/dist/tests/run.js +576 -510
- package/examples/1730642890464.jpg +0 -0
- package/examples/app-screen.svg +1 -0
- package/examples/app-screen.visual.json +503 -0
- package/examples/dashboard-table.svg +1 -0
- package/examples/dashboard-table.visual.json +708 -0
- package/examples/dev-docs.svg +1 -0
- package/examples/dev-docs.visual.json +248 -0
- package/examples/explainer.mp4 +0 -0
- package/examples/explainer.visual.json +1713 -0
- package/examples/group-origin-effects-lab-check.svg +1 -0
- package/examples/group-origin-effects-lab.visual.json +1880 -0
- package/examples/image-clip-radius.visual.json +271 -0
- package/examples/make-app-screen.cjs +368 -0
- package/examples/make-dashboard-table.cjs +277 -0
- package/examples/make-dev-docs.cjs +233 -0
- package/examples/make-explainer.cjs +438 -0
- package/examples/make-group-origin-effects-lab.cjs +370 -0
- package/examples/make-image-clip-radius.cjs +169 -0
- package/examples/make-modal-dialog.cjs +355 -0
- package/examples/make-origin-effects-lab.cjs +311 -0
- package/examples/make-preset-character-motion.cjs +32 -0
- package/examples/make-presets-demo.cjs +30 -0
- package/examples/make-pricing.cjs +286 -0
- package/examples/make-product-demo.cjs +468 -0
- package/examples/make-product-hero.cjs +223 -0
- package/examples/make-release-notes.cjs +333 -0
- package/examples/make-settings-panel.cjs +435 -0
- package/examples/make-split-preview.cjs +248 -0
- package/examples/make-storyboard.cjs +215 -0
- package/examples/make-transcript.cjs +234 -0
- package/examples/make-typography-test.cjs +397 -0
- package/examples/make-ui-demo-explainer.cjs +1094 -0
- package/examples/make-ui-flow.cjs +762 -0
- package/examples/make-walkthrough.cjs +815 -0
- package/examples/modal-dialog.svg +1 -0
- package/examples/modal-dialog.visual.json +239 -0
- package/examples/origin-effects-lab-check.svg +1 -0
- package/examples/origin-effects-lab.visual.json +1412 -0
- package/examples/preset-character-motion.visual.json +949 -0
- package/examples/presets-demo.visual.json +787 -0
- package/examples/pricing.svg +1 -0
- package/examples/pricing.visual.json +652 -0
- package/examples/product-demo.mp4 +0 -0
- package/examples/product-demo.visual.json +866 -0
- package/examples/product-hero.svg +1 -0
- package/examples/product-hero.visual.json +242 -0
- package/examples/release-notes.svg +1 -0
- package/examples/release-notes.visual.json +467 -0
- package/examples/settings-panel.svg +1 -0
- package/examples/settings-panel.visual.json +501 -0
- package/examples/split-preview.svg +1 -0
- package/examples/split-preview.visual.json +124 -0
- package/examples/storyboard.svg +1 -0
- package/examples/storyboard.visual.json +312 -0
- package/examples/transcript.svg +1 -0
- package/examples/transcript.visual.json +407 -0
- package/examples/typography-indent-check.svg +1 -0
- package/examples/typography-lineheight-0.svg +1 -0
- package/examples/typography-lineheight-2.svg +1 -0
- package/examples/typography-test-check.svg +1 -0
- package/examples/typography-test.svg +1 -0
- package/examples/typography-test.visual.json +757 -0
- package/examples/ui-demo-explainer-billing.svg +1 -0
- package/examples/ui-demo-explainer-check.svg +1 -0
- package/examples/ui-demo-explainer-save.svg +1 -0
- package/examples/ui-demo-explainer-toggle.svg +1 -0
- package/examples/ui-demo-explainer.mp4 +0 -0
- package/examples/ui-demo-explainer.visual.json +2597 -0
- package/examples/ui-flow.mp4 +0 -0
- package/examples/ui-flow.visual.json +1211 -0
- package/examples/walkthrough.mp4 +0 -0
- package/examples/walkthrough.visual.json +1372 -0
- package/package.json +52 -52
- package/schema/visual.schema.json +1086 -930
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"canvas": {
|
|
4
|
+
"width": 1080,
|
|
5
|
+
"height": 1380,
|
|
6
|
+
"background": "#ffffff"
|
|
7
|
+
},
|
|
8
|
+
"elements": [
|
|
9
|
+
{
|
|
10
|
+
"id": "title",
|
|
11
|
+
"type": "text",
|
|
12
|
+
"x": 72,
|
|
13
|
+
"y": 56,
|
|
14
|
+
"text": "Release Notes",
|
|
15
|
+
"align": "left",
|
|
16
|
+
"valign": "top",
|
|
17
|
+
"fontSize": 44,
|
|
18
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
19
|
+
"weight": 800,
|
|
20
|
+
"fill": "#0f172a"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "version",
|
|
24
|
+
"type": "text",
|
|
25
|
+
"x": 72,
|
|
26
|
+
"y": 116,
|
|
27
|
+
"text": "v2.4.0",
|
|
28
|
+
"align": "left",
|
|
29
|
+
"valign": "top",
|
|
30
|
+
"fontSize": 18,
|
|
31
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
32
|
+
"weight": 600,
|
|
33
|
+
"fill": "#1e293b"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "date",
|
|
37
|
+
"type": "text",
|
|
38
|
+
"x": 144,
|
|
39
|
+
"y": 118,
|
|
40
|
+
"text": "— May 27, 2026",
|
|
41
|
+
"align": "left",
|
|
42
|
+
"valign": "top",
|
|
43
|
+
"fontSize": 15,
|
|
44
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
45
|
+
"weight": 400,
|
|
46
|
+
"fill": "#94a3b8"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "divider-top",
|
|
50
|
+
"type": "path",
|
|
51
|
+
"d": "M 72 152 L 1008 152",
|
|
52
|
+
"stroke": "#e2e8f0",
|
|
53
|
+
"strokeWidth": 1,
|
|
54
|
+
"fill": "none"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "s1-heading",
|
|
58
|
+
"type": "text",
|
|
59
|
+
"x": 72,
|
|
60
|
+
"y": 192,
|
|
61
|
+
"text": "New Features",
|
|
62
|
+
"align": "left",
|
|
63
|
+
"valign": "top",
|
|
64
|
+
"fontSize": 24,
|
|
65
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
66
|
+
"weight": 700,
|
|
67
|
+
"fill": "#1e293b"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "new-pill-bg",
|
|
71
|
+
"type": "path",
|
|
72
|
+
"d": "M 251 195 L 281 195 Q 292 195 292 206 L 292 206 Q 292 217 281 217 L 251 217 Q 240 217 240 206 L 240 206 Q 240 195 251 195 Z",
|
|
73
|
+
"fill": "#10b981",
|
|
74
|
+
"stroke": "none"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "new-pill-text",
|
|
78
|
+
"type": "text",
|
|
79
|
+
"x": 266,
|
|
80
|
+
"y": 206,
|
|
81
|
+
"text": "New",
|
|
82
|
+
"align": "center",
|
|
83
|
+
"valign": "middle",
|
|
84
|
+
"fontSize": 11,
|
|
85
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
86
|
+
"weight": 700,
|
|
87
|
+
"fill": "#ffffff"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "s1a-sub",
|
|
91
|
+
"type": "text",
|
|
92
|
+
"x": 72,
|
|
93
|
+
"y": 234,
|
|
94
|
+
"text": "Real-time Collaboration",
|
|
95
|
+
"align": "left",
|
|
96
|
+
"valign": "top",
|
|
97
|
+
"fontSize": 16,
|
|
98
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
99
|
+
"weight": 600,
|
|
100
|
+
"fill": "#334155"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "s1a-dot-0",
|
|
104
|
+
"type": "path",
|
|
105
|
+
"d": "M 78 270 A 3.5 3.5 0 1 1 78 270.01 Z",
|
|
106
|
+
"fill": "#2563eb",
|
|
107
|
+
"stroke": "none"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "s1a-text-0",
|
|
111
|
+
"type": "text",
|
|
112
|
+
"x": 92,
|
|
113
|
+
"y": 262,
|
|
114
|
+
"text": "Multiple users can now edit the same document simultaneously\nwith live cursor presence and conflict-free merging.",
|
|
115
|
+
"align": "left",
|
|
116
|
+
"valign": "top",
|
|
117
|
+
"fontSize": 14,
|
|
118
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
119
|
+
"weight": 400,
|
|
120
|
+
"lineHeight": 1.65,
|
|
121
|
+
"fill": "#475569",
|
|
122
|
+
"maxWidth": 916
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "s1a-dot-1",
|
|
126
|
+
"type": "path",
|
|
127
|
+
"d": "M 78 330 A 3.5 3.5 0 1 1 78 330.01 Z",
|
|
128
|
+
"fill": "#2563eb",
|
|
129
|
+
"stroke": "none"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "s1a-text-1",
|
|
133
|
+
"type": "text",
|
|
134
|
+
"x": 92,
|
|
135
|
+
"y": 322,
|
|
136
|
+
"text": "Inline comments and threads are synced in real time across\nall connected sessions without page reload.",
|
|
137
|
+
"align": "left",
|
|
138
|
+
"valign": "top",
|
|
139
|
+
"fontSize": 14,
|
|
140
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
141
|
+
"weight": 400,
|
|
142
|
+
"lineHeight": 1.65,
|
|
143
|
+
"fill": "#475569",
|
|
144
|
+
"maxWidth": 916
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "s1a-dot-2",
|
|
148
|
+
"type": "path",
|
|
149
|
+
"d": "M 78 390 A 3.5 3.5 0 1 1 78 390.01 Z",
|
|
150
|
+
"fill": "#2563eb",
|
|
151
|
+
"stroke": "none"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "s1a-text-2",
|
|
155
|
+
"type": "text",
|
|
156
|
+
"x": 92,
|
|
157
|
+
"y": 382,
|
|
158
|
+
"text": "Permission scopes support viewer, commenter, and editor\nroles with granular per-section access control.",
|
|
159
|
+
"align": "left",
|
|
160
|
+
"valign": "top",
|
|
161
|
+
"fontSize": 14,
|
|
162
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
163
|
+
"weight": 400,
|
|
164
|
+
"lineHeight": 1.65,
|
|
165
|
+
"fill": "#475569",
|
|
166
|
+
"maxWidth": 916
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "s1b-sub",
|
|
170
|
+
"type": "text",
|
|
171
|
+
"x": 72,
|
|
172
|
+
"y": 458,
|
|
173
|
+
"text": "Export Pipeline",
|
|
174
|
+
"align": "left",
|
|
175
|
+
"valign": "top",
|
|
176
|
+
"fontSize": 16,
|
|
177
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
178
|
+
"weight": 600,
|
|
179
|
+
"fill": "#334155"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "s1b-dot-0",
|
|
183
|
+
"type": "path",
|
|
184
|
+
"d": "M 78 494 A 3.5 3.5 0 1 1 78 494.01 Z",
|
|
185
|
+
"fill": "#2563eb",
|
|
186
|
+
"stroke": "none"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"id": "s1b-text-0",
|
|
190
|
+
"type": "text",
|
|
191
|
+
"x": 92,
|
|
192
|
+
"y": 486,
|
|
193
|
+
"text": "Added PDF and DOCX export targets with full styling\npreservation and embedded font support.",
|
|
194
|
+
"align": "left",
|
|
195
|
+
"valign": "top",
|
|
196
|
+
"fontSize": 14,
|
|
197
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
198
|
+
"weight": 400,
|
|
199
|
+
"lineHeight": 1.65,
|
|
200
|
+
"fill": "#475569",
|
|
201
|
+
"maxWidth": 916
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"id": "s1b-dot-1",
|
|
205
|
+
"type": "path",
|
|
206
|
+
"d": "M 78 554 A 3.5 3.5 0 1 1 78 554.01 Z",
|
|
207
|
+
"fill": "#2563eb",
|
|
208
|
+
"stroke": "none"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"id": "s1b-text-1",
|
|
212
|
+
"type": "text",
|
|
213
|
+
"x": 92,
|
|
214
|
+
"y": 546,
|
|
215
|
+
"text": "Batch export now runs in parallel workers, reducing\nprocessing time by up to 4x on large document sets.",
|
|
216
|
+
"align": "left",
|
|
217
|
+
"valign": "top",
|
|
218
|
+
"fontSize": 14,
|
|
219
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
220
|
+
"weight": 400,
|
|
221
|
+
"lineHeight": 1.65,
|
|
222
|
+
"fill": "#475569",
|
|
223
|
+
"maxWidth": 916
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"id": "s2-heading",
|
|
227
|
+
"type": "text",
|
|
228
|
+
"x": 72,
|
|
229
|
+
"y": 638,
|
|
230
|
+
"text": "Improvements",
|
|
231
|
+
"align": "left",
|
|
232
|
+
"valign": "top",
|
|
233
|
+
"fontSize": 24,
|
|
234
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
235
|
+
"weight": 700,
|
|
236
|
+
"fill": "#1e293b"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"id": "s2a-sub",
|
|
240
|
+
"type": "text",
|
|
241
|
+
"x": 72,
|
|
242
|
+
"y": 680,
|
|
243
|
+
"text": "Performance",
|
|
244
|
+
"align": "left",
|
|
245
|
+
"valign": "top",
|
|
246
|
+
"fontSize": 16,
|
|
247
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
248
|
+
"weight": 600,
|
|
249
|
+
"fill": "#334155"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"id": "s2a-dot-0",
|
|
253
|
+
"type": "path",
|
|
254
|
+
"d": "M 78 716 A 3.5 3.5 0 1 1 78 716.01 Z",
|
|
255
|
+
"fill": "#2563eb",
|
|
256
|
+
"stroke": "none"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"id": "s2a-text-0",
|
|
260
|
+
"type": "text",
|
|
261
|
+
"x": 92,
|
|
262
|
+
"y": 708,
|
|
263
|
+
"text": "Timeline resolution is now 3x faster due to a rewritten\ninterpolation engine with pre-compiled curve LUTs.",
|
|
264
|
+
"align": "left",
|
|
265
|
+
"valign": "top",
|
|
266
|
+
"fontSize": 14,
|
|
267
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
268
|
+
"weight": 400,
|
|
269
|
+
"lineHeight": 1.65,
|
|
270
|
+
"fill": "#475569",
|
|
271
|
+
"maxWidth": 916
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"id": "s2a-dot-1",
|
|
275
|
+
"type": "path",
|
|
276
|
+
"d": "M 78 776 A 3.5 3.5 0 1 1 78 776.01 Z",
|
|
277
|
+
"fill": "#2563eb",
|
|
278
|
+
"stroke": "none"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"id": "s2a-text-1",
|
|
282
|
+
"type": "text",
|
|
283
|
+
"x": 92,
|
|
284
|
+
"y": 768,
|
|
285
|
+
"text": "Initial document load time reduced by 40% through\nlazy hydration of off-screen element groups.",
|
|
286
|
+
"align": "left",
|
|
287
|
+
"valign": "top",
|
|
288
|
+
"fontSize": 14,
|
|
289
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
290
|
+
"weight": 400,
|
|
291
|
+
"lineHeight": 1.65,
|
|
292
|
+
"fill": "#475569",
|
|
293
|
+
"maxWidth": 916
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"id": "s2a-dot-2",
|
|
297
|
+
"type": "path",
|
|
298
|
+
"d": "M 78 836 A 3.5 3.5 0 1 1 78 836.01 Z",
|
|
299
|
+
"fill": "#2563eb",
|
|
300
|
+
"stroke": "none"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"id": "s2a-text-2",
|
|
304
|
+
"type": "text",
|
|
305
|
+
"x": 92,
|
|
306
|
+
"y": 828,
|
|
307
|
+
"text": "Memory usage during preview reduced by caching\nresolved frames and evicting stale entries on scroll.",
|
|
308
|
+
"align": "left",
|
|
309
|
+
"valign": "top",
|
|
310
|
+
"fontSize": 14,
|
|
311
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
312
|
+
"weight": 400,
|
|
313
|
+
"lineHeight": 1.65,
|
|
314
|
+
"fill": "#475569",
|
|
315
|
+
"maxWidth": 916
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "s2b-sub",
|
|
319
|
+
"type": "text",
|
|
320
|
+
"x": 72,
|
|
321
|
+
"y": 904,
|
|
322
|
+
"text": "Editor UX",
|
|
323
|
+
"align": "left",
|
|
324
|
+
"valign": "top",
|
|
325
|
+
"fontSize": 16,
|
|
326
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
327
|
+
"weight": 600,
|
|
328
|
+
"fill": "#334155"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"id": "s2b-dot-0",
|
|
332
|
+
"type": "path",
|
|
333
|
+
"d": "M 78 940 A 3.5 3.5 0 1 1 78 940.01 Z",
|
|
334
|
+
"fill": "#2563eb",
|
|
335
|
+
"stroke": "none"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"id": "s2b-text-0",
|
|
339
|
+
"type": "text",
|
|
340
|
+
"x": 92,
|
|
341
|
+
"y": 932,
|
|
342
|
+
"text": "Undo history now groups rapid sequential edits into\nsingle entries for cleaner rollback behavior.",
|
|
343
|
+
"align": "left",
|
|
344
|
+
"valign": "top",
|
|
345
|
+
"fontSize": 14,
|
|
346
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
347
|
+
"weight": 400,
|
|
348
|
+
"lineHeight": 1.65,
|
|
349
|
+
"fill": "#475569",
|
|
350
|
+
"maxWidth": 916
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"id": "s2b-dot-1",
|
|
354
|
+
"type": "path",
|
|
355
|
+
"d": "M 78 1000 A 3.5 3.5 0 1 1 78 1000.01 Z",
|
|
356
|
+
"fill": "#2563eb",
|
|
357
|
+
"stroke": "none"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"id": "s2b-text-1",
|
|
361
|
+
"type": "text",
|
|
362
|
+
"x": 92,
|
|
363
|
+
"y": 992,
|
|
364
|
+
"text": "Keyboard shortcuts panel redesigned with searchable\ncategories and conflict detection warnings.",
|
|
365
|
+
"align": "left",
|
|
366
|
+
"valign": "top",
|
|
367
|
+
"fontSize": 14,
|
|
368
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
369
|
+
"weight": 400,
|
|
370
|
+
"lineHeight": 1.65,
|
|
371
|
+
"fill": "#475569",
|
|
372
|
+
"maxWidth": 916
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"id": "s3-heading",
|
|
376
|
+
"type": "text",
|
|
377
|
+
"x": 72,
|
|
378
|
+
"y": 1084,
|
|
379
|
+
"text": "Bug Fixes",
|
|
380
|
+
"align": "left",
|
|
381
|
+
"valign": "top",
|
|
382
|
+
"fontSize": 24,
|
|
383
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
384
|
+
"weight": 700,
|
|
385
|
+
"fill": "#1e293b"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"id": "s3a-sub",
|
|
389
|
+
"type": "text",
|
|
390
|
+
"x": 72,
|
|
391
|
+
"y": 1126,
|
|
392
|
+
"text": "Rendering",
|
|
393
|
+
"align": "left",
|
|
394
|
+
"valign": "top",
|
|
395
|
+
"fontSize": 16,
|
|
396
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
397
|
+
"weight": 600,
|
|
398
|
+
"fill": "#334155"
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"id": "s3a-dot-0",
|
|
402
|
+
"type": "path",
|
|
403
|
+
"d": "M 78 1162 A 3.5 3.5 0 1 1 78 1162.01 Z",
|
|
404
|
+
"fill": "#2563eb",
|
|
405
|
+
"stroke": "none"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"id": "s3a-text-0",
|
|
409
|
+
"type": "text",
|
|
410
|
+
"x": 92,
|
|
411
|
+
"y": 1154,
|
|
412
|
+
"text": "Fixed incorrect gradient interpolation when stop offsets\nwere defined in descending order.",
|
|
413
|
+
"align": "left",
|
|
414
|
+
"valign": "top",
|
|
415
|
+
"fontSize": 14,
|
|
416
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
417
|
+
"weight": 400,
|
|
418
|
+
"lineHeight": 1.65,
|
|
419
|
+
"fill": "#475569",
|
|
420
|
+
"maxWidth": 916
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"id": "s3a-dot-1",
|
|
424
|
+
"type": "path",
|
|
425
|
+
"d": "M 78 1222 A 3.5 3.5 0 1 1 78 1222.01 Z",
|
|
426
|
+
"fill": "#2563eb",
|
|
427
|
+
"stroke": "none"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"id": "s3a-text-1",
|
|
431
|
+
"type": "text",
|
|
432
|
+
"x": 92,
|
|
433
|
+
"y": 1214,
|
|
434
|
+
"text": "Resolved clipping mask artifacts on group elements\nwith non-zero rotation and nested transforms.",
|
|
435
|
+
"align": "left",
|
|
436
|
+
"valign": "top",
|
|
437
|
+
"fontSize": 14,
|
|
438
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
439
|
+
"weight": 400,
|
|
440
|
+
"lineHeight": 1.65,
|
|
441
|
+
"fill": "#475569",
|
|
442
|
+
"maxWidth": 916
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"id": "s3a-dot-2",
|
|
446
|
+
"type": "path",
|
|
447
|
+
"d": "M 78 1282 A 3.5 3.5 0 1 1 78 1282.01 Z",
|
|
448
|
+
"fill": "#2563eb",
|
|
449
|
+
"stroke": "none"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"id": "s3a-text-2",
|
|
453
|
+
"type": "text",
|
|
454
|
+
"x": 92,
|
|
455
|
+
"y": 1274,
|
|
456
|
+
"text": "Text elements with empty strings no longer produce\ninvalid SVG output during frame resolution.",
|
|
457
|
+
"align": "left",
|
|
458
|
+
"valign": "top",
|
|
459
|
+
"fontSize": 14,
|
|
460
|
+
"fontFamily": "Inter, system-ui, sans-serif",
|
|
461
|
+
"weight": 400,
|
|
462
|
+
"lineHeight": 1.65,
|
|
463
|
+
"fill": "#475569",
|
|
464
|
+
"maxWidth": 916
|
|
465
|
+
}
|
|
466
|
+
]
|
|
467
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="1200" viewBox="0 0 960 1200" role="img"><rect x="0" y="0" width="960" height="1200" fill="#f8fafc"/><text id="panel-title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="32" font-weight="700" fill="#0f172a"><tspan x="64" y="64">Settings</tspan></text><text id="panel-desc" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="400" fill="#64748b"><tspan x="64" y="103">Manage your account preferences and application configuration.</tspan></text><text id="display-name-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#334155"><tspan x="88" y="211">Display Name</tspan></text><text id="display-name-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="88" y="232">Your public-facing name shown across the application.</tspan></text><path id="display-name-input-bg" d="M 94 250 L 866 250 Q 872 250 872 256 L 872 282 Q 872 288 866 288 L 94 288 Q 88 288 88 282 L 88 256 Q 88 250 94 250 Z" fill="#ffffff" stroke="#cbd5e1" stroke-width="1"/><text id="display-name-placeholder" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="400" fill="#94a3b8"><tspan x="100" y="269">Jane Doe</tspan></text><text id="email-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#334155"><tspan x="88" y="319">Email Address</tspan></text><text id="email-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="88" y="340">Used for notifications and account recovery.</tspan></text><path id="email-input-bg" d="M 94 358 L 866 358 Q 872 358 872 364 L 872 390 Q 872 396 866 396 L 94 396 Q 88 396 88 390 L 88 364 Q 88 358 94 358 Z" fill="#ffffff" stroke="#cbd5e1" stroke-width="1"/><text id="email-placeholder" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="400" fill="#94a3b8"><tspan x="100" y="377">jane@example.com</tspan></text><path id="profile-card" d="M 74 136 L 886 136 Q 896 136 896 146 L 896 410 Q 896 420 886 420 L 74 420 Q 64 420 64 410 L 64 146 Q 64 136 74 136 Z" fill="#ffffff" stroke="#e2e8f0" stroke-width="1"/><text id="profile-title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="18" font-weight="600" fill="#1e293b"><tspan x="88" y="163">Profile</tspan></text><path id="profile-div" d="M 64 180 L 896 180" fill="none" stroke="#e2e8f0" stroke-width="1"/><text id="email-notif-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#334155"><tspan x="88" y="527">Email Notifications</tspan></text><path id="email-notif-track" d="M 843 518 L 861 518 Q 872 518 872 529 L 872 529 Q 872 540 861 540 L 843 540 Q 832 540 832 529 L 832 529 Q 832 518 843 518 Z" fill="#2563eb" stroke="none" stroke-width="0"/><path id="email-notif-knob" d="M 861 521 A 8 8 0 1 1 861 537 A 8 8 0 1 1 861 521 Z" fill="#ffffff" stroke="none" stroke-width="0"/><text id="email-notif-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="88" y="548">Receive updates about activity in your projects.</tspan></text><text id="marketing-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#334155"><tspan x="88" y="593">Marketing Emails</tspan></text><path id="marketing-track" d="M 843 584 L 861 584 Q 872 584 872 595 L 872 595 Q 872 606 861 606 L 843 606 Q 832 606 832 595 L 832 595 Q 832 584 843 584 Z" fill="#d1d5db" stroke="none" stroke-width="0"/><path id="marketing-knob" d="M 843 587 A 8 8 0 1 1 843 603 A 8 8 0 1 1 843 587 Z" fill="#ffffff" stroke="none" stroke-width="0"/><text id="marketing-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="88" y="614">Occasional product announcements and feature previews.</tspan></text><text id="slack-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#334155"><tspan x="88" y="659">Slack Integration</tspan></text><path id="slack-track" d="M 843 650 L 861 650 Q 872 650 872 661 L 872 661 Q 872 672 861 672 L 843 672 Q 832 672 832 661 L 832 661 Q 832 650 843 650 Z" fill="#2563eb" stroke="none" stroke-width="0"/><path id="slack-knob" d="M 861 653 A 8 8 0 1 1 861 669 A 8 8 0 1 1 861 653 Z" fill="#ffffff" stroke="none" stroke-width="0"/><text id="slack-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="88" y="680">Push real-time alerts to your connected Slack workspace.</tspan></text><path id="notif-card" d="M 74 452 L 886 452 Q 896 452 896 462 L 896 708 Q 896 718 886 718 L 74 718 Q 64 718 64 708 L 64 462 Q 64 452 74 452 Z" fill="#ffffff" stroke="#e2e8f0" stroke-width="1"/><text id="notif-title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="18" font-weight="600" fill="#1e293b"><tspan x="88" y="479">Notifications</tspan></text><path id="notif-div" d="M 64 496 L 896 496" fill="none" stroke="#e2e8f0" stroke-width="1"/><text id="twofa-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#334155"><tspan x="88" y="825">Two-Factor Authentication</tspan></text><path id="twofa-track" d="M 843 816 L 861 816 Q 872 816 872 827 L 872 827 Q 872 838 861 838 L 843 838 Q 832 838 832 827 L 832 827 Q 832 816 843 816 Z" fill="#2563eb" stroke="none" stroke-width="0"/><path id="twofa-knob" d="M 861 819 A 8 8 0 1 1 861 835 A 8 8 0 1 1 861 819 Z" fill="#ffffff" stroke="none" stroke-width="0"/><text id="twofa-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="88" y="846">Adds an extra layer of protection to your account.</tspan></text><text id="session-label" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#334155"><tspan x="88" y="891">Session Timeout</tspan></text><text id="session-helper" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#64748b"><tspan x="88" y="912">Automatically log out after this period of inactivity.</tspan></text><path id="session-input-bg" d="M 94 930 L 866 930 Q 872 930 872 936 L 872 962 Q 872 968 866 968 L 94 968 Q 88 968 88 962 L 88 936 Q 88 930 94 930 Z" fill="#ffffff" stroke="#cbd5e1" stroke-width="1"/><text id="session-placeholder" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="13" font-weight="400" fill="#94a3b8"><tspan x="100" y="949">30 minutes</tspan></text><path id="security-warn-bg" d="M 94 992 L 866 992 Q 872 992 872 998 L 872 1050 Q 872 1056 866 1056 L 94 1056 Q 88 1056 88 1050 L 88 998 Q 88 992 94 992 Z" fill="#fef3c7" stroke="#f59e0b" stroke-width="1"/><text id="security-warn-icon" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="400" fill="#92400e"><tspan x="102" y="1011">⚠</tspan></text><text id="security-warn-text" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="12" font-weight="400" fill="#92400e"><tspan x="124" y="1011">Disabling 2FA will immediately remove the second factor from</tspan><tspan x="124" y="1030.8">your account. You will not be prompted again until re-enabled.</tspan></text><path id="security-card" d="M 74 750 L 886 750 Q 896 750 896 760 L 896 1070 Q 896 1080 886 1080 L 74 1080 Q 64 1080 64 1070 L 64 760 Q 64 750 74 750 Z" fill="#ffffff" stroke="#e2e8f0" stroke-width="1"/><text id="security-title" text-anchor="start" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="18" font-weight="600" fill="#1e293b"><tspan x="88" y="777">Security</tspan></text><path id="security-div" d="M 64 794 L 896 794" fill="none" stroke="#e2e8f0" stroke-width="1"/><path id="btn-reset-bg" d="M 72 1120 L 156 1120 Q 164 1120 164 1128 L 164 1154 Q 164 1162 156 1162 L 72 1162 Q 64 1162 64 1154 L 64 1128 Q 64 1120 72 1120 Z" fill="#ffffff" stroke="#cbd5e1" stroke-width="1"/><text id="btn-reset-label" text-anchor="middle" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="500" fill="#475569"><tspan x="114" y="1141">Reset</tspan></text><path id="btn-save-bg" d="M 188 1120 L 292 1120 Q 300 1120 300 1128 L 300 1154 Q 300 1162 292 1162 L 188 1162 Q 180 1162 180 1154 L 180 1128 Q 180 1120 188 1120 Z" fill="#2563eb" stroke="none" stroke-width="0"/><text id="btn-save-label" text-anchor="middle" dominant-baseline="middle" font-family="Roboto, Arial, sans-serif" font-size="14" font-weight="600" fill="#ffffff"><tspan x="240" y="1141">Save Changes</tspan></text></svg>
|