@kumwe/studio-testkit 0.1.0-alpha.8 → 0.1.0-rc.1

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 (42) hide show
  1. package/README.md +48 -14
  2. package/THIRD_PARTY_NOTICES.md +9 -0
  3. package/conformance/authoring-web/non-drag-move-equivalence.json +199 -0
  4. package/conformance/renderer-web/blob-default-deny.json +47 -0
  5. package/conformance/renderer-web/chart-fallback.json +39 -0
  6. package/conformance/renderer-web/complete-catalog.json +634 -0
  7. package/conformance/renderer-web/escaped-heading.json +28 -0
  8. package/conformance/renderer-web/interactive-behaviors.json +226 -0
  9. package/conformance/renderer-web/presentation-capabilities.json +76 -0
  10. package/conformance/renderer-web/responsive-grid.json +33 -0
  11. package/conformance/renderer-web/security-fallbacks.json +169 -0
  12. package/conformance/rich-text/advanced.first-party.json +67 -0
  13. package/corpus-manifest.json +106 -0
  14. package/dist/host-testbed.d.ts +3 -4
  15. package/dist/host-testbed.d.ts.map +1 -1
  16. package/dist/host-testbed.js +46 -6
  17. package/dist/host-testbed.js.map +1 -1
  18. package/dist/http-host-adapter.d.ts.map +1 -1
  19. package/dist/http-host-adapter.js +8 -0
  20. package/dist/http-host-adapter.js.map +1 -1
  21. package/dist/index.d.ts +44 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +38 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/web-conformance.d.ts +105 -0
  26. package/dist/web-conformance.d.ts.map +1 -0
  27. package/dist/web-conformance.js +72 -0
  28. package/dist/web-conformance.js.map +1 -0
  29. package/fixtures/authoring-message-catalog.en.json +649 -0
  30. package/invalid/binding-projection-vector.unknown-status.json +85 -0
  31. package/invalid/studio-chart.script-config.json +10 -0
  32. package/invalid/studio-drawing.svg-payload.json +10 -0
  33. package/invalid/studio-money.float.json +8 -0
  34. package/invalid/studio-presentation.css-injection.json +8 -0
  35. package/invalid/studio-table.html-cell.json +8 -0
  36. package/package.json +7 -3
  37. package/studio-release.json +28 -0
  38. package/vectors/binding-projection/app-content-fields.resolved.json +286 -0
  39. package/vectors/binding-projection/field-removed.diagnostic.json +135 -0
  40. package/vectors/binding-projection/model-revision-mismatch.diagnostic.json +124 -0
  41. package/vectors/host/model.get.stored.json +37 -0
  42. package/vectors/host/model.list.authorized.json +31 -0
@@ -0,0 +1,649 @@
1
+ {
2
+ "$schema": "https://schemas.kumwe.org/studio/v1/authoring-message-catalog.schema.json",
3
+ "kind": "authoring-message-catalog",
4
+ "contractVersion": "0.1-draft",
5
+ "catalogVersion": "1.4.0",
6
+ "locale": "en",
7
+ "messages": {
8
+ "studio.shell/announce-binding-removed": {
9
+ "defaultMessage": "Removed the {port} binding",
10
+ "parameters": ["port"]
11
+ },
12
+ "studio.shell/announce-binding-set": {
13
+ "defaultMessage": "Set the {port} binding",
14
+ "parameters": ["port"]
15
+ },
16
+ "studio.shell/announce-canvas-mode": {
17
+ "defaultMessage": "Canvas mode: {state}",
18
+ "parameters": ["state"]
19
+ },
20
+ "studio.shell/announce-command-failed": {
21
+ "defaultMessage": "Command failed: {message}",
22
+ "parameters": ["message"]
23
+ },
24
+ "studio.shell/announce-conflict": {
25
+ "defaultMessage": "The change was rejected: {message} The document is unchanged; refresh the session or undo before retrying.",
26
+ "parameters": ["message"]
27
+ },
28
+ "studio.shell/announce-deleted": {
29
+ "defaultMessage": "Deleted {label} block",
30
+ "parameters": ["label"]
31
+ },
32
+ "studio.shell/announce-drag-cancelled": {
33
+ "defaultMessage": "Reorder cancelled. {label} kept its position.",
34
+ "parameters": ["label"]
35
+ },
36
+ "studio.shell/announce-dropped": {
37
+ "defaultMessage": "Moved {label} to position {position} of {count}",
38
+ "parameters": ["count", "label", "position"]
39
+ },
40
+ "studio.shell/announce-duplicated": {
41
+ "defaultMessage": "Duplicated {label}",
42
+ "parameters": ["label"]
43
+ },
44
+ "studio.shell/announce-edit-cancelled": {
45
+ "defaultMessage": "Edit cancelled. {property} kept its value.",
46
+ "parameters": ["property"]
47
+ },
48
+ "studio.shell/announce-field-bound": {
49
+ "defaultMessage": "Bound {port} to the {field} model field",
50
+ "parameters": ["field", "port"]
51
+ },
52
+ "studio.shell/announce-inheritance-reset": {
53
+ "defaultMessage": "Reset every responsive override for {property}; all viewports now inherit the base value",
54
+ "parameters": ["property"]
55
+ },
56
+ "studio.shell/announce-inserted": {
57
+ "defaultMessage": "Inserted {label}",
58
+ "parameters": ["label"]
59
+ },
60
+ "studio.shell/announce-invalid-value": {
61
+ "defaultMessage": "The {label} value is not valid JSON. Nothing was changed.",
62
+ "parameters": ["label"]
63
+ },
64
+ "studio.shell/announce-moved-down": {
65
+ "defaultMessage": "Moved {label} down",
66
+ "parameters": ["label"]
67
+ },
68
+ "studio.shell/announce-moved-to": {
69
+ "defaultMessage": "Moved {label} to {destination}",
70
+ "parameters": ["destination", "label"]
71
+ },
72
+ "studio.shell/announce-moved-up": {
73
+ "defaultMessage": "Moved {label} up",
74
+ "parameters": ["label"]
75
+ },
76
+ "studio.shell/announce-name-required": {
77
+ "defaultMessage": "Enter a name before applying the change.",
78
+ "parameters": []
79
+ },
80
+ "studio.shell/announce-override-removed": {
81
+ "defaultMessage": "Removed the {property} override for the {viewport} viewport",
82
+ "parameters": ["property", "viewport"]
83
+ },
84
+ "studio.shell/announce-override-set": {
85
+ "defaultMessage": "Set the {property} override for the {viewport} viewport",
86
+ "parameters": ["property", "viewport"]
87
+ },
88
+ "studio.shell/announce-pattern-applied": {
89
+ "defaultMessage": "Applied the {pattern} pattern",
90
+ "parameters": ["pattern"]
91
+ },
92
+ "studio.shell/announce-preview-reloaded": {
93
+ "defaultMessage": "The preview reloaded ({reason}). The document is unchanged.",
94
+ "parameters": ["reason"]
95
+ },
96
+ "studio.shell/announce-preview-torn-down": {
97
+ "defaultMessage": "The preview closed ({reason}). The document is unchanged.",
98
+ "parameters": ["reason"]
99
+ },
100
+ "studio.shell/announce-property-set": {
101
+ "defaultMessage": "Set {property}",
102
+ "parameters": ["property"]
103
+ },
104
+ "studio.shell/announce-property-unset": {
105
+ "defaultMessage": "Unset {property}",
106
+ "parameters": ["property"]
107
+ },
108
+ "studio.shell/announce-recipe-applied": {
109
+ "defaultMessage": "Applied the {recipe} recipe",
110
+ "parameters": ["recipe"]
111
+ },
112
+ "studio.shell/announce-redid": {
113
+ "defaultMessage": "Redid change",
114
+ "parameters": []
115
+ },
116
+ "studio.shell/announce-restored": {
117
+ "defaultMessage": "Restored {label} block",
118
+ "parameters": ["label"]
119
+ },
120
+ "studio.shell/announce-selection-cleared": {
121
+ "defaultMessage": "Selection cleared",
122
+ "parameters": []
123
+ },
124
+ "studio.shell/announce-size-role-invalid": {
125
+ "defaultMessage": "The {axis} role must be a lower-case identifier such as half or full-width. Nothing was changed.",
126
+ "parameters": ["axis"]
127
+ },
128
+ "studio.shell/announce-size-role-removed": {
129
+ "defaultMessage": "Removed the {axis} role",
130
+ "parameters": ["axis"]
131
+ },
132
+ "studio.shell/announce-size-role-removed-viewport": {
133
+ "defaultMessage": "Removed the {axis} role for the {viewport} viewport",
134
+ "parameters": ["axis", "viewport"]
135
+ },
136
+ "studio.shell/announce-size-role-set": {
137
+ "defaultMessage": "Set the {axis} role to {role}",
138
+ "parameters": ["axis", "role"]
139
+ },
140
+ "studio.shell/announce-size-role-set-viewport": {
141
+ "defaultMessage": "Set the {axis} role to {role} for the {viewport} viewport",
142
+ "parameters": ["axis", "role", "viewport"]
143
+ },
144
+ "studio.shell/announce-undid": {
145
+ "defaultMessage": "Undid change",
146
+ "parameters": []
147
+ },
148
+ "studio.shell/announce-viewport-changed": {
149
+ "defaultMessage": "Previewing the {label} viewport",
150
+ "parameters": ["label"]
151
+ },
152
+ "studio.shell/block-actions": {
153
+ "defaultMessage": "Block actions",
154
+ "parameters": []
155
+ },
156
+ "studio.shell/breadcrumb-label": {
157
+ "defaultMessage": "Selection path",
158
+ "parameters": []
159
+ },
160
+ "studio.shell/canvas-edit-toggle": {
161
+ "defaultMessage": "Select and move rendered blocks",
162
+ "parameters": []
163
+ },
164
+ "studio.shell/canvas-empty": {
165
+ "defaultMessage": "Choose a block to begin composing.",
166
+ "parameters": []
167
+ },
168
+ "studio.shell/canvas-label": {
169
+ "defaultMessage": "Blueprint structure",
170
+ "parameters": []
171
+ },
172
+ "studio.shell/canvas-mode-editing": {
173
+ "defaultMessage": "selecting and moving blocks",
174
+ "parameters": []
175
+ },
176
+ "studio.shell/canvas-mode-interacting": {
177
+ "defaultMessage": "interacting with the rendered preview",
178
+ "parameters": []
179
+ },
180
+ "studio.shell/command-apply-pattern": {
181
+ "defaultMessage": "Apply pattern {pattern}",
182
+ "parameters": ["pattern"]
183
+ },
184
+ "studio.shell/command-clear-selection": {
185
+ "defaultMessage": "Clear selection",
186
+ "parameters": []
187
+ },
188
+ "studio.shell/command-insert": {
189
+ "defaultMessage": "Insert {label}",
190
+ "parameters": ["label"]
191
+ },
192
+ "studio.shell/command-move-to": {
193
+ "defaultMessage": "Move to {destination}",
194
+ "parameters": ["destination"]
195
+ },
196
+ "studio.shell/command-palette-empty": {
197
+ "defaultMessage": "No commands match the filter.",
198
+ "parameters": []
199
+ },
200
+ "studio.shell/command-palette-hint": {
201
+ "defaultMessage": "Type to filter commands. Arrow Down moves into the results, Arrow Up returns to the filter, Enter runs a command, Escape closes.",
202
+ "parameters": []
203
+ },
204
+ "studio.shell/command-palette-input-label": {
205
+ "defaultMessage": "Filter commands",
206
+ "parameters": []
207
+ },
208
+ "studio.shell/command-palette-label": {
209
+ "defaultMessage": "Command palette",
210
+ "parameters": []
211
+ },
212
+ "studio.shell/command-palette-results-label": {
213
+ "defaultMessage": "Matching commands",
214
+ "parameters": []
215
+ },
216
+ "studio.shell/command-palette-toggle": {
217
+ "defaultMessage": "Commands",
218
+ "parameters": []
219
+ },
220
+ "studio.shell/delete": {
221
+ "defaultMessage": "Delete",
222
+ "parameters": []
223
+ },
224
+ "studio.shell/diagnostics-empty": {
225
+ "defaultMessage": "No issues",
226
+ "parameters": []
227
+ },
228
+ "studio.shell/diagnostics-heading": {
229
+ "defaultMessage": "Diagnostics",
230
+ "parameters": []
231
+ },
232
+ "studio.shell/document-roots": {
233
+ "defaultMessage": "document roots",
234
+ "parameters": []
235
+ },
236
+ "studio.shell/drag-drop-position": {
237
+ "defaultMessage": "Moving {label} to position {position} of {count}",
238
+ "parameters": ["count", "label", "position"]
239
+ },
240
+ "studio.shell/duplicate": {
241
+ "defaultMessage": "Duplicate",
242
+ "parameters": []
243
+ },
244
+ "studio.shell/history-label": {
245
+ "defaultMessage": "History",
246
+ "parameters": []
247
+ },
248
+ "studio.shell/inspector-add-override": {
249
+ "defaultMessage": "Add override",
250
+ "parameters": []
251
+ },
252
+ "studio.shell/inspector-add-override-name-label": {
253
+ "defaultMessage": "Override property name",
254
+ "parameters": []
255
+ },
256
+ "studio.shell/inspector-add-override-value-label": {
257
+ "defaultMessage": "Override value as JSON",
258
+ "parameters": []
259
+ },
260
+ "studio.shell/inspector-add-property": {
261
+ "defaultMessage": "Add property",
262
+ "parameters": []
263
+ },
264
+ "studio.shell/inspector-add-property-name-label": {
265
+ "defaultMessage": "New property name",
266
+ "parameters": []
267
+ },
268
+ "studio.shell/inspector-add-property-value-label": {
269
+ "defaultMessage": "New property value as JSON",
270
+ "parameters": []
271
+ },
272
+ "studio.shell/inspector-binding-accepts": {
273
+ "defaultMessage": "Accepts {cardinality} {value-type} value",
274
+ "parameters": ["cardinality", "value-type"]
275
+ },
276
+ "studio.shell/inspector-binding-control-label": {
277
+ "defaultMessage": "Declared {control} control for {field}",
278
+ "parameters": ["control", "field"]
279
+ },
280
+ "studio.shell/inspector-binding-control-preview": {
281
+ "defaultMessage": "Control preview",
282
+ "parameters": []
283
+ },
284
+ "studio.shell/inspector-binding-control-unavailable": {
285
+ "defaultMessage": "The declared {control} control requires a host field-adapter contribution.",
286
+ "parameters": ["control"]
287
+ },
288
+ "studio.shell/inspector-binding-control-undeclared": {
289
+ "defaultMessage": "This field declares no authoring control.",
290
+ "parameters": []
291
+ },
292
+ "studio.shell/inspector-binding-field-placeholder": {
293
+ "defaultMessage": "Choose a model field",
294
+ "parameters": []
295
+ },
296
+ "studio.shell/inspector-binding-invalid": {
297
+ "defaultMessage": "This binding no longer resolves and requires migration.",
298
+ "parameters": []
299
+ },
300
+ "studio.shell/inspector-binding-model": {
301
+ "defaultMessage": "Fields from locked model {model}",
302
+ "parameters": ["model"]
303
+ },
304
+ "studio.shell/inspector-binding-model-mismatch": {
305
+ "defaultMessage": "The projected model does not match the Blueprint lock. Binding choices are disabled; see diagnostics.",
306
+ "parameters": []
307
+ },
308
+ "studio.shell/inspector-binding-model-unavailable": {
309
+ "defaultMessage": "The session advertises model reads, but no active model projection is loaded. Binding choices are disabled.",
310
+ "parameters": []
311
+ },
312
+ "studio.shell/inspector-binding-no-compatible-fields": {
313
+ "defaultMessage": "No compatible model fields",
314
+ "parameters": []
315
+ },
316
+ "studio.shell/inspector-binding-non-field-source": {
317
+ "defaultMessage": "This port uses a non-field source. Choosing a model field replaces that source explicitly.",
318
+ "parameters": []
319
+ },
320
+ "studio.shell/inspector-binding-port-label": {
321
+ "defaultMessage": "Binding port name",
322
+ "parameters": []
323
+ },
324
+ "studio.shell/inspector-binding-required": {
325
+ "defaultMessage": " (required)",
326
+ "parameters": []
327
+ },
328
+ "studio.shell/inspector-binding-value-label": {
329
+ "defaultMessage": "Binding value as JSON",
330
+ "parameters": []
331
+ },
332
+ "studio.shell/inspector-bindings-empty": {
333
+ "defaultMessage": "No bindings",
334
+ "parameters": []
335
+ },
336
+ "studio.shell/inspector-bindings-heading": {
337
+ "defaultMessage": "Bindings",
338
+ "parameters": []
339
+ },
340
+ "studio.shell/inspector-design-heading": {
341
+ "defaultMessage": "Design",
342
+ "parameters": []
343
+ },
344
+ "studio.shell/inspector-design-placeholder": {
345
+ "defaultMessage": "Choose a token",
346
+ "parameters": []
347
+ },
348
+ "studio.shell/inspector-design-unset": {
349
+ "defaultMessage": "Remove",
350
+ "parameters": []
351
+ },
352
+ "studio.shell/inspector-empty": {
353
+ "defaultMessage": "Select a block to inspect its contract.",
354
+ "parameters": []
355
+ },
356
+ "studio.shell/inspector-heading": {
357
+ "defaultMessage": "Inspector",
358
+ "parameters": []
359
+ },
360
+ "studio.shell/inspector-hint": {
361
+ "defaultMessage": "Inputs hold JSON values. Enter applies the edit, Escape reverts it.",
362
+ "parameters": []
363
+ },
364
+ "studio.shell/inspector-identifier": {
365
+ "defaultMessage": "Identifier",
366
+ "parameters": []
367
+ },
368
+ "studio.shell/inspector-layout-axis-block": {
369
+ "defaultMessage": "Block size",
370
+ "parameters": []
371
+ },
372
+ "studio.shell/inspector-layout-axis-inline": {
373
+ "defaultMessage": "Inline size",
374
+ "parameters": []
375
+ },
376
+ "studio.shell/inspector-layout-base-none": {
377
+ "defaultMessage": "Base: none",
378
+ "parameters": []
379
+ },
380
+ "studio.shell/inspector-layout-base-role": {
381
+ "defaultMessage": "Base: {role}",
382
+ "parameters": ["role"]
383
+ },
384
+ "studio.shell/inspector-layout-fallback-hint": {
385
+ "defaultMessage": "No theme size-role vocabulary is available. Enter a lower-case role identifier; Enter applies it, Escape cancels.",
386
+ "parameters": []
387
+ },
388
+ "studio.shell/inspector-layout-heading": {
389
+ "defaultMessage": "Layout",
390
+ "parameters": []
391
+ },
392
+ "studio.shell/inspector-layout-no-roles": {
393
+ "defaultMessage": "The active theme declares no size roles, so none can be assigned.",
394
+ "parameters": []
395
+ },
396
+ "studio.shell/inspector-layout-role-label-base": {
397
+ "defaultMessage": "{axis} role (base)",
398
+ "parameters": ["axis"]
399
+ },
400
+ "studio.shell/inspector-layout-role-label-viewport": {
401
+ "defaultMessage": "{axis} role override for the {viewport} viewport",
402
+ "parameters": ["axis", "viewport"]
403
+ },
404
+ "studio.shell/inspector-layout-role-placeholder": {
405
+ "defaultMessage": "Choose a role",
406
+ "parameters": []
407
+ },
408
+ "studio.shell/inspector-layout-unset": {
409
+ "defaultMessage": "Remove",
410
+ "parameters": []
411
+ },
412
+ "studio.shell/inspector-layout-unset-label-base": {
413
+ "defaultMessage": "Remove the {axis} base role",
414
+ "parameters": ["axis"]
415
+ },
416
+ "studio.shell/inspector-layout-unset-label-viewport": {
417
+ "defaultMessage": "Remove the {axis} role override for the {viewport} viewport",
418
+ "parameters": ["axis", "viewport"]
419
+ },
420
+ "studio.shell/inspector-override-value-label": {
421
+ "defaultMessage": "Override of {property} for the {viewport} viewport as JSON",
422
+ "parameters": ["property", "viewport"]
423
+ },
424
+ "studio.shell/inspector-overrides-empty": {
425
+ "defaultMessage": "No overrides for the {viewport} viewport",
426
+ "parameters": ["viewport"]
427
+ },
428
+ "studio.shell/inspector-overrides-heading": {
429
+ "defaultMessage": "Overrides for the {viewport} viewport",
430
+ "parameters": ["viewport"]
431
+ },
432
+ "studio.shell/inspector-properties": {
433
+ "defaultMessage": "Properties",
434
+ "parameters": []
435
+ },
436
+ "studio.shell/inspector-properties-empty": {
437
+ "defaultMessage": "No properties",
438
+ "parameters": []
439
+ },
440
+ "studio.shell/inspector-property-value-label": {
441
+ "defaultMessage": "Value of {property} as JSON",
442
+ "parameters": ["property"]
443
+ },
444
+ "studio.shell/inspector-provenance-base": {
445
+ "defaultMessage": "Base value",
446
+ "parameters": []
447
+ },
448
+ "studio.shell/inspector-provenance-inherited": {
449
+ "defaultMessage": "Inherited from base: {value}",
450
+ "parameters": ["value"]
451
+ },
452
+ "studio.shell/inspector-provenance-inherited-none": {
453
+ "defaultMessage": "Inherited from base: none",
454
+ "parameters": []
455
+ },
456
+ "studio.shell/inspector-provenance-overridden": {
457
+ "defaultMessage": "Overridden for the {viewport} viewport: {value}",
458
+ "parameters": ["value", "viewport"]
459
+ },
460
+ "studio.shell/inspector-read-only": {
461
+ "defaultMessage": "Editing is disabled because this session is read-only.",
462
+ "parameters": []
463
+ },
464
+ "studio.shell/inspector-recipe-label": {
465
+ "defaultMessage": "Recipe",
466
+ "parameters": []
467
+ },
468
+ "studio.shell/inspector-recipe-placeholder": {
469
+ "defaultMessage": "Choose a recipe",
470
+ "parameters": []
471
+ },
472
+ "studio.shell/inspector-recipes-heading": {
473
+ "defaultMessage": "Recipes",
474
+ "parameters": []
475
+ },
476
+ "studio.shell/inspector-remove-binding": {
477
+ "defaultMessage": "Remove",
478
+ "parameters": []
479
+ },
480
+ "studio.shell/inspector-remove-binding-label": {
481
+ "defaultMessage": "Remove the {port} binding",
482
+ "parameters": ["port"]
483
+ },
484
+ "studio.shell/inspector-remove-override": {
485
+ "defaultMessage": "Remove",
486
+ "parameters": []
487
+ },
488
+ "studio.shell/inspector-remove-override-label": {
489
+ "defaultMessage": "Remove the {property} override for the {viewport} viewport",
490
+ "parameters": ["property", "viewport"]
491
+ },
492
+ "studio.shell/inspector-reset-inheritance": {
493
+ "defaultMessage": "Reset all viewport overrides",
494
+ "parameters": []
495
+ },
496
+ "studio.shell/inspector-set-binding": {
497
+ "defaultMessage": "Set binding",
498
+ "parameters": []
499
+ },
500
+ "studio.shell/inspector-type": {
501
+ "defaultMessage": "Type",
502
+ "parameters": []
503
+ },
504
+ "studio.shell/inspector-unset": {
505
+ "defaultMessage": "Unset",
506
+ "parameters": []
507
+ },
508
+ "studio.shell/inspector-unset-label": {
509
+ "defaultMessage": "Unset {property}",
510
+ "parameters": ["property"]
511
+ },
512
+ "studio.shell/move-destination-label": {
513
+ "defaultMessage": "Move block to another position or slot",
514
+ "parameters": []
515
+ },
516
+ "studio.shell/move-destination-option": {
517
+ "defaultMessage": "{collection}, position {position} of {count}",
518
+ "parameters": ["collection", "count", "position"]
519
+ },
520
+ "studio.shell/move-destination-placeholder": {
521
+ "defaultMessage": "Choose a destination",
522
+ "parameters": []
523
+ },
524
+ "studio.shell/move-down": {
525
+ "defaultMessage": "Move down",
526
+ "parameters": []
527
+ },
528
+ "studio.shell/move-slot-collection": {
529
+ "defaultMessage": "{parent}: {slot} slot",
530
+ "parameters": ["parent", "slot"]
531
+ },
532
+ "studio.shell/move-up": {
533
+ "defaultMessage": "Move up",
534
+ "parameters": []
535
+ },
536
+ "studio.shell/outline-empty": {
537
+ "defaultMessage": "The outline lists blocks once the document has content.",
538
+ "parameters": []
539
+ },
540
+ "studio.shell/outline-heading": {
541
+ "defaultMessage": "Outline",
542
+ "parameters": []
543
+ },
544
+ "studio.shell/outline-hint": {
545
+ "defaultMessage": "Arrow keys move focus. Alt+Arrow moves the block. Delete removes it. Ctrl+D or Cmd+D duplicates it.",
546
+ "parameters": []
547
+ },
548
+ "studio.shell/outline-slot": {
549
+ "defaultMessage": "Slot: {slot}",
550
+ "parameters": ["slot"]
551
+ },
552
+ "studio.shell/palette-heading": {
553
+ "defaultMessage": "Blocks",
554
+ "parameters": []
555
+ },
556
+ "studio.shell/palette-label": {
557
+ "defaultMessage": "Block palette",
558
+ "parameters": []
559
+ },
560
+ "studio.shell/patterns-heading": {
561
+ "defaultMessage": "Patterns",
562
+ "parameters": []
563
+ },
564
+ "studio.shell/preview-closed": {
565
+ "defaultMessage": "Preview is disconnected. Editing remains available.",
566
+ "parameters": []
567
+ },
568
+ "studio.shell/preview-connecting": {
569
+ "defaultMessage": "Preview is connecting.",
570
+ "parameters": []
571
+ },
572
+ "studio.shell/preview-current": {
573
+ "defaultMessage": "Preview is current.",
574
+ "parameters": []
575
+ },
576
+ "studio.shell/preview-heading": {
577
+ "defaultMessage": "Preview",
578
+ "parameters": []
579
+ },
580
+ "studio.shell/preview-label": {
581
+ "defaultMessage": "Rendered preview",
582
+ "parameters": []
583
+ },
584
+ "studio.shell/preview-rendering": {
585
+ "defaultMessage": "Preview is updating.",
586
+ "parameters": []
587
+ },
588
+ "studio.shell/preview-stale": {
589
+ "defaultMessage": "Preview is stale. Editing remains available.",
590
+ "parameters": []
591
+ },
592
+ "studio.shell/preview-unavailable": {
593
+ "defaultMessage": "Preview is unavailable for this session. Editing remains available.",
594
+ "parameters": []
595
+ },
596
+ "studio.shell/redo": {
597
+ "defaultMessage": "Redo",
598
+ "parameters": []
599
+ },
600
+ "studio.shell/restore-last-deleted": {
601
+ "defaultMessage": "Restore last deleted block",
602
+ "parameters": []
603
+ },
604
+ "studio.shell/save-state-saved": {
605
+ "defaultMessage": "Saved",
606
+ "parameters": []
607
+ },
608
+ "studio.shell/save-state-unsaved": {
609
+ "defaultMessage": "Unsaved changes",
610
+ "parameters": []
611
+ },
612
+ "studio.shell/severity-blocking": {
613
+ "defaultMessage": "Blocking",
614
+ "parameters": []
615
+ },
616
+ "studio.shell/severity-error": {
617
+ "defaultMessage": "Error",
618
+ "parameters": []
619
+ },
620
+ "studio.shell/severity-information": {
621
+ "defaultMessage": "Information",
622
+ "parameters": []
623
+ },
624
+ "studio.shell/severity-warning": {
625
+ "defaultMessage": "Warning",
626
+ "parameters": []
627
+ },
628
+ "studio.shell/status-label": {
629
+ "defaultMessage": "Status",
630
+ "parameters": []
631
+ },
632
+ "studio.shell/undo": {
633
+ "defaultMessage": "Undo",
634
+ "parameters": []
635
+ },
636
+ "studio.shell/unresolved-block": {
637
+ "defaultMessage": "(unresolved)",
638
+ "parameters": []
639
+ },
640
+ "studio.shell/viewport-label": {
641
+ "defaultMessage": "Preview width",
642
+ "parameters": []
643
+ },
644
+ "studio.shell/visual-drop-target": {
645
+ "defaultMessage": "Moving {label} to {destination}",
646
+ "parameters": ["destination", "label"]
647
+ }
648
+ }
649
+ }