@servrox/console-fx 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +23 -4
  2. package/README.md +7 -1
  3. package/dist/browser/compiler.d.ts.map +1 -1
  4. package/dist/browser/compiler.js +31 -20
  5. package/dist/browser/compiler.js.map +1 -1
  6. package/dist/browser/index.d.ts +1 -1
  7. package/dist/browser/index.d.ts.map +1 -1
  8. package/dist/browser/index.js +2 -12
  9. package/dist/browser/index.js.map +1 -1
  10. package/dist/browser/motion.d.ts +4 -0
  11. package/dist/browser/motion.d.ts.map +1 -0
  12. package/dist/browser/motion.js +19 -0
  13. package/dist/browser/motion.js.map +1 -0
  14. package/dist/browser/preflight.d.ts.map +1 -1
  15. package/dist/browser/preflight.js +6 -5
  16. package/dist/browser/preflight.js.map +1 -1
  17. package/dist/codegen/index.d.ts.map +1 -1
  18. package/dist/codegen/index.js +11 -9
  19. package/dist/codegen/index.js.map +1 -1
  20. package/dist/effects/catalog.d.ts +3 -1
  21. package/dist/effects/catalog.d.ts.map +1 -1
  22. package/dist/effects/catalog.js +41 -19
  23. package/dist/effects/catalog.js.map +1 -1
  24. package/dist/layout/metrics.d.ts +12 -4
  25. package/dist/layout/metrics.d.ts.map +1 -1
  26. package/dist/layout/metrics.js +37 -8
  27. package/dist/layout/metrics.js.map +1 -1
  28. package/dist/layout/planner.d.ts.map +1 -1
  29. package/dist/layout/planner.js +59 -27
  30. package/dist/layout/planner.js.map +1 -1
  31. package/dist/layout/render.js +1 -1
  32. package/dist/layout/render.js.map +1 -1
  33. package/dist/model/layout.d.ts +5 -3
  34. package/dist/model/layout.d.ts.map +1 -1
  35. package/dist/presentations/catalog.d.ts +7 -3
  36. package/dist/presentations/catalog.d.ts.map +1 -1
  37. package/dist/presentations/catalog.js +246 -1370
  38. package/dist/presentations/catalog.js.map +1 -1
  39. package/dist/presentations/compact.d.ts +3 -3
  40. package/dist/presentations/compact.d.ts.map +1 -1
  41. package/dist/presentations/compact.js.map +1 -1
  42. package/dist/presentations/safe-cells.d.ts +10 -0
  43. package/dist/presentations/safe-cells.d.ts.map +1 -0
  44. package/dist/presentations/safe-cells.js +99 -0
  45. package/dist/presentations/safe-cells.js.map +1 -0
  46. package/dist/presets/cards.d.ts.map +1 -1
  47. package/dist/presets/cards.js +2 -2
  48. package/dist/presets/cards.js.map +1 -1
  49. package/dist/renderers/presentations/render.d.ts +4 -1
  50. package/dist/renderers/presentations/render.d.ts.map +1 -1
  51. package/dist/renderers/presentations/render.js +10 -3
  52. package/dist/renderers/presentations/render.js.map +1 -1
  53. package/dist/renderers/svg.d.ts.map +1 -1
  54. package/dist/renderers/svg.js +12 -11
  55. package/dist/renderers/svg.js.map +1 -1
  56. package/dist/validation/layout.d.ts.map +1 -1
  57. package/dist/validation/layout.js +2 -2
  58. package/dist/validation/layout.js.map +1 -1
  59. package/package.json +1 -1
@@ -1,1473 +1,335 @@
1
1
  import { deepFreeze } from "../model/limits.js";
2
+ // Most closed slot IDs have the same human label; keep only the exceptions.
3
+ const specialLabels = {
4
+ change0: "First highlight",
5
+ change1: "Second highlight",
6
+ title2: "Title, second line",
7
+ };
8
+ function slotLabel(id) {
9
+ if (/^[sd][0-2]$/.test(id))
10
+ return `Stage ${Number(id[1]) + 1} ${id[0] === "s" ? "label" : "duration"}`;
11
+ return (specialLabels[id] ??
12
+ id.replace(/^[a-z]|[A-Z]/g, (letter, offset) => offset ? ` ${letter.toLowerCase()}` : letter.toUpperCase()));
13
+ }
14
+ // Repeated typography defaults are owned here; expanded public descriptors stay unchanged.
15
+ function slot(id, line, run, color, fontSize, x, y, safeWidth, options = {}) {
16
+ const { fontWeight = 400, fontFamily = "mono", letterSpacing = 0, anchor = "start", maxCodePoints = 80, ...extra } = options;
17
+ return {
18
+ id,
19
+ line,
20
+ run,
21
+ label: slotLabel(id),
22
+ style: { color, fontSize, fontWeight, fontFamily, letterSpacing },
23
+ x,
24
+ y,
25
+ anchor,
26
+ safeWidth,
27
+ maxCodePoints,
28
+ ...extra,
29
+ };
30
+ }
2
31
  // Owned slot/typography metadata. Decorative geometry stays in the SVG renderer.
3
32
  const definitions = [
4
33
  {
5
34
  id: "buildReceipt",
6
- profile: "buildReceipt/v1",
7
- name: "Build Receipt",
8
35
  group: "Useful",
9
36
  accent: "#32816b",
10
37
  background: "#111c19",
11
38
  rows: [1, 3, 5, 5, 1, 1],
12
39
  slots: [
13
- {
14
- id: "eyebrow",
15
- line: 0,
16
- run: 0,
17
- label: "Eyebrow",
18
- style: {
19
- color: "#65716d",
20
- fontSize: 11.0,
21
- fontWeight: 700,
22
- fontFamily: "mono",
23
- letterSpacing: 2.0,
24
- },
25
- x: 36.0,
26
- y: 36.0,
27
- anchor: "start",
28
- safeWidth: 475,
29
- maxCodePoints: 80,
30
- },
31
- {
32
- id: "project",
33
- line: 1,
34
- run: 0,
35
- label: "Project",
36
- style: {
37
- color: "#1c2a26",
38
- fontSize: 32.0,
39
- fontWeight: 700,
40
- fontFamily: "sans",
41
- letterSpacing: 0.0,
42
- },
43
- x: 36.0,
44
- y: 81.0,
45
- anchor: "start",
46
- safeWidth: 480,
40
+ slot("eyebrow", 0, 0, "#65716d", 11, 36, 36, 475, {
41
+ letterSpacing: 2,
42
+ fontWeight: 700,
43
+ }),
44
+ slot("project", 1, 0, "#1c2a26", 32, 36, 81, 480, {
45
+ fontFamily: "sans",
47
46
  maxCodePoints: 48,
48
- },
49
- {
50
- id: "outcome",
51
- line: 1,
52
- run: 2,
53
- label: "Outcome",
54
- style: {
55
- color: "#156751",
56
- fontSize: 12.0,
57
- fontWeight: 700,
58
- fontFamily: "mono",
59
- letterSpacing: 0.0,
60
- },
61
- x: 568.0,
62
- y: 61.0,
63
- anchor: "start",
64
- safeWidth: 88,
65
- maxCodePoints: 80,
47
+ fontWeight: 700,
48
+ }),
49
+ slot("outcome", 1, 2, "#156751", 12, 568, 61, 88, {
66
50
  values: ["PASSED", "FAILED", "WARNING", "UNKNOWN"],
67
- },
68
- {
69
- id: "revisionLabel",
70
- line: 2,
71
- run: 0,
72
- label: "Revision label",
73
- style: {
74
- color: "#63736c",
75
- fontSize: 11.0,
76
- fontWeight: 400,
77
- fontFamily: "mono",
78
- letterSpacing: 0.0,
79
- },
80
- x: 36.0,
81
- y: 132.0,
82
- anchor: "start",
83
- safeWidth: 170,
84
- maxCodePoints: 80,
85
- },
86
- {
87
- id: "durationLabel",
88
- line: 2,
89
- run: 2,
90
- label: "Duration label",
91
- style: {
92
- color: "#63736c",
93
- fontSize: 11.0,
94
- fontWeight: 400,
95
- fontFamily: "mono",
96
- letterSpacing: 0.0,
97
- },
98
- x: 237.0,
99
- y: 132.0,
100
- anchor: "start",
101
- safeWidth: 170,
102
- maxCodePoints: 80,
103
- },
104
- {
105
- id: "checksLabel",
106
- line: 2,
107
- run: 4,
108
- label: "Checks label",
109
- style: {
110
- color: "#63736c",
111
- fontSize: 11.0,
112
- fontWeight: 400,
113
- fontFamily: "mono",
114
- letterSpacing: 0.0,
115
- },
116
- x: 438.0,
117
- y: 132.0,
118
- anchor: "start",
119
- safeWidth: 200,
120
- maxCodePoints: 80,
121
- },
122
- {
123
- id: "revision",
124
- line: 3,
125
- run: 0,
126
- label: "Revision",
127
- style: {
128
- color: "#263831",
129
- fontSize: 21.0,
130
- fontWeight: 700,
131
- fontFamily: "mono",
132
- letterSpacing: 0.0,
133
- },
134
- x: 36.0,
135
- y: 161.0,
136
- anchor: "start",
137
- safeWidth: 170,
138
- maxCodePoints: 80,
139
- },
140
- {
141
- id: "duration",
142
- line: 3,
143
- run: 2,
144
- label: "Duration",
145
- style: {
146
- color: "#263831",
147
- fontSize: 21.0,
148
- fontWeight: 700,
149
- fontFamily: "mono",
150
- letterSpacing: 0.0,
151
- },
152
- x: 237.0,
153
- y: 161.0,
154
- anchor: "start",
155
- safeWidth: 170,
156
- maxCodePoints: 80,
157
- },
158
- {
159
- id: "checks",
160
- line: 3,
161
- run: 4,
162
- label: "Checks",
163
- style: {
164
- color: "#263831",
165
- fontSize: 21.0,
166
- fontWeight: 700,
167
- fontFamily: "mono",
168
- letterSpacing: 0.0,
169
- },
170
- x: 438.0,
171
- y: 161.0,
172
- anchor: "start",
173
- safeWidth: 200,
174
- maxCodePoints: 80,
175
- },
176
- {
177
- id: "environment",
178
- line: 4,
179
- run: 0,
180
- label: "Environment",
181
- style: {
182
- color: "#50675e",
183
- fontSize: 11.0,
184
- fontWeight: 400,
185
- fontFamily: "mono",
186
- letterSpacing: 0.0,
187
- },
188
- x: 36.0,
189
- y: 214.0,
190
- anchor: "start",
191
- safeWidth: 320,
192
- maxCodePoints: 80,
193
- },
194
- {
195
- id: "footer",
196
- line: 5,
197
- run: 0,
198
- label: "Footer",
199
- style: {
200
- color: "#50675e",
201
- fontSize: 10.0,
202
- fontWeight: 400,
203
- fontFamily: "mono",
204
- letterSpacing: 0.0,
205
- },
206
- x: 654.0,
207
- y: 214.0,
208
- anchor: "end",
209
- safeWidth: 255,
210
- maxCodePoints: 80,
211
- },
51
+ fontWeight: 700,
52
+ }),
53
+ slot("revisionLabel", 2, 0, "#63736c", 11, 36, 132, 170),
54
+ slot("durationLabel", 2, 2, "#63736c", 11, 237, 132, 170),
55
+ slot("checksLabel", 2, 4, "#63736c", 11, 438, 132, 200),
56
+ slot("revision", 3, 0, "#263831", 21, 36, 161, 170, {
57
+ fontWeight: 700,
58
+ }),
59
+ slot("duration", 3, 2, "#263831", 21, 237, 161, 170, {
60
+ fontWeight: 700,
61
+ }),
62
+ slot("checks", 3, 4, "#263831", 21, 438, 161, 200, { fontWeight: 700 }),
63
+ slot("environment", 4, 0, "#50675e", 11, 36, 214, 320),
64
+ slot("footer", 5, 0, "#50675e", 10, 654, 214, 255, { anchor: "end" }),
212
65
  ],
213
- renderers: ["svg", "text"],
214
- editableStyleKeys: ["color"],
215
66
  },
216
67
  {
217
68
  id: "requestTrace",
218
- profile: "requestTrace/v1",
219
- name: "Request Trace",
220
69
  group: "Useful",
221
70
  accent: "#66c6c7",
222
71
  background: "#141e26",
223
72
  rows: [1, 7, 5, 5, 1, 1],
224
73
  slots: [
225
- {
226
- id: "eyebrow",
227
- line: 0,
228
- run: 0,
229
- label: "Eyebrow",
230
- style: {
231
- color: "#8a9ca7",
232
- fontSize: 10.0,
233
- fontWeight: 400,
234
- fontFamily: "mono",
235
- letterSpacing: 2.0,
236
- },
237
- x: 32.0,
238
- y: 31.0,
239
- anchor: "start",
240
- safeWidth: 480,
241
- maxCodePoints: 80,
242
- },
243
- {
244
- id: "method",
245
- line: 1,
246
- run: 0,
247
- label: "Method",
248
- style: {
249
- color: "#58d4d5",
250
- fontSize: 25.0,
251
- fontWeight: 700,
252
- fontFamily: "mono",
253
- letterSpacing: 0.0,
254
- },
255
- x: 32.0,
256
- y: 72.0,
257
- anchor: "start",
258
- safeWidth: 54,
259
- maxCodePoints: 80,
260
- },
261
- {
262
- id: "path",
263
- line: 1,
264
- run: 2,
265
- label: "Path",
266
- style: {
267
- color: "#edf3f6",
268
- fontSize: 25.0,
269
- fontWeight: 700,
270
- fontFamily: "mono",
271
- letterSpacing: 0.0,
272
- },
273
- x: 98.0,
274
- y: 72.0,
275
- anchor: "start",
276
- safeWidth: 370,
277
- maxCodePoints: 80,
278
- },
279
- {
280
- id: "status",
281
- line: 1,
282
- run: 4,
283
- label: "Status",
284
- style: {
285
- color: "#b8e1cd",
286
- fontSize: 11.0,
287
- fontWeight: 700,
288
- fontFamily: "mono",
289
- letterSpacing: 0.0,
290
- },
291
- x: 648.0,
292
- y: 32.0,
74
+ slot("eyebrow", 0, 0, "#8a9ca7", 10, 32, 31, 480, { letterSpacing: 2 }),
75
+ slot("method", 1, 0, "#58d4d5", 25, 32, 72, 54, { fontWeight: 700 }),
76
+ slot("path", 1, 2, "#edf3f6", 25, 98, 72, 370, { fontWeight: 700 }),
77
+ slot("status", 1, 4, "#b8e1cd", 11, 648, 32, 92, {
293
78
  anchor: "end",
294
- safeWidth: 92,
295
- maxCodePoints: 80,
296
- },
297
- {
298
- id: "total",
299
- line: 1,
300
- run: 6,
301
- label: "Total",
302
- style: {
303
- color: "#edf3f6",
304
- fontSize: 27.0,
305
- fontWeight: 700,
306
- fontFamily: "mono",
307
- letterSpacing: 0.0,
308
- },
309
- x: 656.0,
310
- y: 79.0,
79
+ fontWeight: 700,
80
+ }),
81
+ slot("total", 1, 6, "#edf3f6", 27, 656, 79, 170, {
311
82
  anchor: "end",
312
- safeWidth: 170,
313
- maxCodePoints: 80,
314
- },
315
- {
316
- id: "s0",
317
- line: 2,
318
- run: 0,
319
- label: "Stage 1 label",
320
- style: {
321
- color: "#aebfc7",
322
- fontSize: 10.0,
323
- fontWeight: 700,
324
- fontFamily: "mono",
325
- letterSpacing: 0.0,
326
- },
327
- x: 58.0,
328
- y: 161.0,
329
- anchor: "start",
330
- safeWidth: 185,
331
- maxCodePoints: 80,
332
- },
333
- {
334
- id: "s1",
335
- line: 2,
336
- run: 2,
337
- label: "Stage 2 label",
338
- style: {
339
- color: "#aebfc7",
340
- fontSize: 10.0,
341
- fontWeight: 700,
342
- fontFamily: "mono",
343
- letterSpacing: 0.0,
344
- },
345
- x: 281.0,
346
- y: 161.0,
347
- anchor: "start",
348
- safeWidth: 205,
349
- maxCodePoints: 80,
350
- },
351
- {
352
- id: "s2",
353
- line: 2,
354
- run: 4,
355
- label: "Stage 3 label",
356
- style: {
357
- color: "#aebfc7",
358
- fontSize: 10.0,
359
- fontWeight: 700,
360
- fontFamily: "mono",
361
- letterSpacing: 0.0,
362
- },
363
- x: 528.0,
364
- y: 161.0,
365
- anchor: "start",
366
- safeWidth: 155,
367
- maxCodePoints: 80,
368
- },
369
- {
370
- id: "d0",
371
- line: 3,
372
- run: 0,
373
- label: "Stage 1 duration",
374
- style: {
375
- color: "#dce8ee",
376
- fontSize: 20.0,
377
- fontWeight: 400,
378
- fontFamily: "mono",
379
- letterSpacing: 0.0,
380
- },
381
- x: 58.0,
382
- y: 187.0,
383
- anchor: "start",
384
- safeWidth: 185,
385
- maxCodePoints: 80,
386
- },
387
- {
388
- id: "d1",
389
- line: 3,
390
- run: 2,
391
- label: "Stage 2 duration",
392
- style: {
393
- color: "#dce8ee",
394
- fontSize: 20.0,
395
- fontWeight: 400,
396
- fontFamily: "mono",
397
- letterSpacing: 0.0,
398
- },
399
- x: 281.0,
400
- y: 187.0,
401
- anchor: "start",
402
- safeWidth: 205,
403
- maxCodePoints: 80,
404
- },
405
- {
406
- id: "d2",
407
- line: 3,
408
- run: 4,
409
- label: "Stage 3 duration",
410
- style: {
411
- color: "#dce8ee",
412
- fontSize: 20.0,
413
- fontWeight: 400,
414
- fontFamily: "mono",
415
- letterSpacing: 0.0,
416
- },
417
- x: 528.0,
418
- y: 187.0,
419
- anchor: "start",
420
- safeWidth: 155,
421
- maxCodePoints: 80,
422
- },
423
- {
424
- id: "requestId",
425
- line: 4,
426
- run: 0,
427
- label: "Request id",
428
- style: {
429
- color: "#90a2af",
430
- fontSize: 10.0,
431
- fontWeight: 400,
432
- fontFamily: "mono",
433
- letterSpacing: 0.0,
434
- },
435
- x: 32.0,
436
- y: 221.0,
437
- anchor: "start",
438
- safeWidth: 340,
439
- maxCodePoints: 80,
440
- },
441
- {
442
- id: "footer",
443
- line: 5,
444
- run: 0,
445
- label: "Footer",
446
- style: {
447
- color: "#90a2af",
448
- fontSize: 9.0,
449
- fontWeight: 400,
450
- fontFamily: "mono",
451
- letterSpacing: 0.0,
452
- },
453
- x: 686.0,
454
- y: 221.0,
455
- anchor: "end",
456
- safeWidth: 300,
457
- maxCodePoints: 80,
458
- },
83
+ fontWeight: 700,
84
+ }),
85
+ slot("s0", 2, 0, "#aebfc7", 10, 58, 161, 185, { fontWeight: 700 }),
86
+ slot("s1", 2, 2, "#aebfc7", 10, 281, 161, 205, { fontWeight: 700 }),
87
+ slot("s2", 2, 4, "#aebfc7", 10, 528, 161, 155, { fontWeight: 700 }),
88
+ slot("d0", 3, 0, "#dce8ee", 20, 58, 187, 185),
89
+ slot("d1", 3, 2, "#dce8ee", 20, 281, 187, 205),
90
+ slot("d2", 3, 4, "#dce8ee", 20, 528, 187, 155),
91
+ slot("requestId", 4, 0, "#90a2af", 10, 32, 221, 340),
92
+ slot("footer", 5, 0, "#90a2af", 9, 686, 221, 300, { anchor: "end" }),
459
93
  ],
460
- renderers: ["svg", "text"],
461
- editableStyleKeys: ["color"],
462
94
  },
463
95
  {
464
96
  id: "serviceReady",
465
- profile: "serviceReady/v1",
466
- name: "Service Passport",
467
97
  group: "Useful",
468
98
  accent: "#72cbd0",
469
99
  background: "#1a222a",
470
100
  rows: [1, 3, 1, 5, 5, 1],
471
101
  slots: [
472
- {
473
- id: "eyebrow",
474
- line: 0,
475
- run: 0,
476
- label: "Eyebrow",
477
- style: {
478
- color: "#8a9eaa",
479
- fontSize: 10.0,
480
- fontWeight: 400,
481
- fontFamily: "mono",
482
- letterSpacing: 2.0,
483
- },
484
- x: 126.0,
485
- y: 37.0,
486
- anchor: "start",
487
- safeWidth: 380,
488
- maxCodePoints: 80,
489
- },
490
- {
491
- id: "service",
492
- line: 1,
493
- run: 0,
494
- label: "Service",
495
- style: {
496
- color: "#f0f5f5",
497
- fontSize: 33.0,
498
- fontWeight: 700,
499
- fontFamily: "sans",
500
- letterSpacing: 0.0,
501
- },
502
- x: 126.0,
503
- y: 80.0,
504
- anchor: "start",
505
- safeWidth: 400,
102
+ slot("eyebrow", 0, 0, "#8a9eaa", 10, 126, 37, 380, {
103
+ letterSpacing: 2,
104
+ }),
105
+ slot("service", 1, 0, "#f0f5f5", 33, 126, 80, 400, {
106
+ fontFamily: "sans",
506
107
  maxCodePoints: 48,
507
- },
508
- {
509
- id: "state",
510
- line: 1,
511
- run: 2,
512
- label: "State",
513
- style: {
514
- color: "#9de9c8",
515
- fontSize: 11.0,
516
- fontWeight: 700,
517
- fontFamily: "mono",
518
- letterSpacing: 0.0,
519
- },
520
- x: 635.0,
521
- y: 47.0,
522
- anchor: "end",
523
- safeWidth: 60,
524
- maxCodePoints: 80,
108
+ fontWeight: 700,
109
+ }),
110
+ slot("state", 1, 2, "#9de9c8", 11, 635, 47, 60, {
525
111
  values: ["READY", "DEGRADED", "OFFLINE", "UNKNOWN"],
526
- },
527
- {
528
- id: "endpoint",
529
- line: 2,
530
- run: 0,
531
- label: "Endpoint",
532
- style: {
533
- color: "#5fced1",
534
- fontSize: 16.0,
535
- fontWeight: 400,
536
- fontFamily: "mono",
537
- letterSpacing: 0.0,
538
- },
539
- x: 126.0,
540
- y: 114.0,
541
- anchor: "start",
542
- safeWidth: 550,
543
- maxCodePoints: 80,
544
- },
545
- {
546
- id: "envLabel",
547
- line: 3,
548
- run: 0,
549
- label: "Env label",
550
- style: {
551
- color: "#8a9eaa",
552
- fontSize: 10.0,
553
- fontWeight: 400,
554
- fontFamily: "mono",
555
- letterSpacing: 0.0,
556
- },
557
- x: 32.0,
558
- y: 168.0,
559
- anchor: "start",
560
- safeWidth: 210,
561
- maxCodePoints: 80,
562
- },
563
- {
564
- id: "runtimeLabel",
565
- line: 3,
566
- run: 2,
567
- label: "Runtime label",
568
- style: {
569
- color: "#8a9eaa",
570
- fontSize: 10.0,
571
- fontWeight: 400,
572
- fontFamily: "mono",
573
- letterSpacing: 0.0,
574
- },
575
- x: 292.0,
576
- y: 168.0,
577
- anchor: "start",
578
- safeWidth: 180,
579
- maxCodePoints: 80,
580
- },
581
- {
582
- id: "regionLabel",
583
- line: 3,
584
- run: 4,
585
- label: "Region label",
586
- style: {
587
- color: "#8a9eaa",
588
- fontSize: 10.0,
589
- fontWeight: 400,
590
- fontFamily: "mono",
591
- letterSpacing: 0.0,
592
- },
593
- x: 532.0,
594
- y: 168.0,
595
- anchor: "start",
596
- safeWidth: 154,
597
- maxCodePoints: 80,
598
- },
599
- {
600
- id: "environment",
601
- line: 4,
602
- run: 0,
603
- label: "Environment",
604
- style: {
605
- color: "#e2eaed",
606
- fontSize: 17.0,
607
- fontWeight: 400,
608
- fontFamily: "mono",
609
- letterSpacing: 0.0,
610
- },
611
- x: 32.0,
612
- y: 192.0,
613
- anchor: "start",
614
- safeWidth: 220,
615
- maxCodePoints: 80,
616
- },
617
- {
618
- id: "runtime",
619
- line: 4,
620
- run: 2,
621
- label: "Runtime",
622
- style: {
623
- color: "#e2eaed",
624
- fontSize: 17.0,
625
- fontWeight: 400,
626
- fontFamily: "mono",
627
- letterSpacing: 0.0,
628
- },
629
- x: 292.0,
630
- y: 192.0,
631
- anchor: "start",
632
- safeWidth: 180,
633
- maxCodePoints: 80,
634
- },
635
- {
636
- id: "region",
637
- line: 4,
638
- run: 4,
639
- label: "Region",
640
- style: {
641
- color: "#e2eaed",
642
- fontSize: 17.0,
643
- fontWeight: 400,
644
- fontFamily: "mono",
645
- letterSpacing: 0.0,
646
- },
647
- x: 532.0,
648
- y: 192.0,
649
- anchor: "start",
650
- safeWidth: 154,
651
- maxCodePoints: 80,
652
- },
653
- {
654
- id: "footer",
655
- line: 5,
656
- run: 0,
657
- label: "Footer",
658
- style: {
659
- color: "#8a9eaa",
660
- fontSize: 9.0,
661
- fontWeight: 400,
662
- fontFamily: "mono",
663
- letterSpacing: 1.0,
664
- },
665
- x: 32.0,
666
- y: 223.0,
667
- anchor: "start",
668
- safeWidth: 650,
669
- maxCodePoints: 80,
670
- },
112
+ anchor: "end",
113
+ fontWeight: 700,
114
+ }),
115
+ slot("endpoint", 2, 0, "#5fced1", 16, 126, 114, 550),
116
+ slot("envLabel", 3, 0, "#8a9eaa", 10, 32, 168, 210),
117
+ slot("runtimeLabel", 3, 2, "#8a9eaa", 10, 292, 168, 180),
118
+ slot("regionLabel", 3, 4, "#8a9eaa", 10, 532, 168, 154),
119
+ slot("environment", 4, 0, "#e2eaed", 17, 32, 192, 220),
120
+ slot("runtime", 4, 2, "#e2eaed", 17, 292, 192, 180),
121
+ slot("region", 4, 4, "#e2eaed", 17, 532, 192, 154),
122
+ slot("footer", 5, 0, "#8a9eaa", 9, 32, 223, 650, { letterSpacing: 1 }),
671
123
  ],
672
- renderers: ["svg", "text"],
673
- editableStyleKeys: ["color"],
674
124
  },
675
125
  {
676
126
  id: "commandCard",
677
- profile: "commandCard/v1",
678
- name: "Command Card",
679
127
  group: "Useful",
680
128
  accent: "#67c3c8",
681
129
  background: "#1c242a",
682
130
  rows: [1, 3, 1, 1, 1],
683
131
  slots: [
684
- {
685
- id: "eyebrow",
686
- line: 0,
687
- run: 0,
688
- label: "Eyebrow",
689
- style: {
690
- color: "#8fa1a8",
691
- fontSize: 10.0,
692
- fontWeight: 400,
693
- fontFamily: "mono",
694
- letterSpacing: 2.0,
695
- },
696
- x: 32.0,
697
- y: 33.0,
698
- anchor: "start",
699
- safeWidth: 656,
700
- maxCodePoints: 80,
701
- },
702
- {
703
- id: "step",
704
- line: 1,
705
- run: 0,
706
- label: "Step",
707
- style: {
708
- color: "#657780",
709
- fontSize: 38.0,
710
- fontWeight: 700,
711
- fontFamily: "mono",
712
- letterSpacing: 0.0,
713
- },
714
- x: 44.0,
715
- y: 91.0,
716
- anchor: "start",
717
- safeWidth: 56,
718
- maxCodePoints: 80,
719
- },
720
- {
721
- id: "title",
722
- line: 1,
723
- run: 2,
724
- label: "Title",
725
- style: {
726
- color: "#eff3f4",
727
- fontSize: 29.0,
728
- fontWeight: 700,
729
- fontFamily: "sans",
730
- letterSpacing: 0.0,
731
- },
732
- x: 128.0,
733
- y: 76.0,
734
- anchor: "start",
735
- safeWidth: 548,
132
+ slot("eyebrow", 0, 0, "#8fa1a8", 10, 32, 33, 656, { letterSpacing: 2 }),
133
+ slot("step", 1, 0, "#657780", 38, 44, 91, 56, { fontWeight: 700 }),
134
+ slot("title", 1, 2, "#eff3f4", 29, 128, 76, 548, {
135
+ fontFamily: "sans",
736
136
  maxCodePoints: 48,
737
- },
738
- {
739
- id: "instruction",
740
- line: 2,
741
- run: 0,
742
- label: "Instruction",
743
- style: {
744
- color: "#aab9c1",
745
- fontSize: 14.0,
746
- fontWeight: 400,
747
- fontFamily: "sans",
748
- letterSpacing: 0.0,
749
- },
750
- x: 128.0,
751
- y: 103.0,
752
- anchor: "start",
753
- safeWidth: 548,
754
- maxCodePoints: 80,
755
- },
756
- {
757
- id: "command",
758
- line: 3,
759
- run: 0,
760
- label: "Command",
761
- style: {
762
- color: "#dce7e9",
763
- fontSize: 27.0,
764
- fontWeight: 700,
765
- fontFamily: "mono",
766
- letterSpacing: 0.0,
767
- },
768
- x: 73.0,
769
- y: 167.0,
770
- anchor: "start",
771
- safeWidth: 530,
137
+ fontWeight: 700,
138
+ }),
139
+ slot("instruction", 2, 0, "#aab9c1", 14, 128, 103, 548, {
140
+ fontFamily: "sans",
141
+ }),
142
+ slot("command", 3, 0, "#dce7e9", 27, 73, 167, 530, {
772
143
  maxCodePoints: 120,
773
- },
774
- {
775
- id: "safety",
776
- line: 4,
777
- run: 0,
778
- label: "Safety",
779
- style: {
780
- color: "#95a8b1",
781
- fontSize: 11.0,
782
- fontWeight: 400,
783
- fontFamily: "mono",
784
- letterSpacing: 0.0,
785
- },
786
- x: 32.0,
787
- y: 218.0,
788
- anchor: "start",
789
- safeWidth: 656,
790
- maxCodePoints: 80,
791
- },
144
+ fontWeight: 700,
145
+ }),
146
+ slot("safety", 4, 0, "#95a8b1", 11, 32, 218, 656),
792
147
  ],
793
- renderers: ["svg", "text"],
794
- editableStyleKeys: ["color"],
795
148
  },
796
149
  {
797
150
  id: "releaseBulletin",
798
- profile: "releaseBulletin/v1",
799
- name: "Release Bulletin",
800
151
  group: "Useful",
801
152
  accent: "#3c8574",
802
153
  background: "#eeeee4",
803
154
  rows: [3, 1, 1, 1, 3],
804
155
  slots: [
805
- {
806
- id: "eyebrow",
807
- line: 0,
808
- run: 0,
809
- label: "Eyebrow",
810
- style: {
811
- color: "#64665b",
812
- fontSize: 10.0,
813
- fontWeight: 400,
814
- fontFamily: "mono",
815
- letterSpacing: 2.0,
816
- },
817
- x: 32.0,
818
- y: 33.0,
819
- anchor: "start",
820
- safeWidth: 500,
821
- maxCodePoints: 80,
822
- },
823
- {
824
- id: "version",
825
- line: 0,
826
- run: 2,
827
- label: "Version",
828
- style: {
829
- color: "#3b665d",
830
- fontSize: 12.0,
831
- fontWeight: 700,
832
- fontFamily: "mono",
833
- letterSpacing: 0.0,
834
- },
835
- x: 667.0,
836
- y: 35.0,
156
+ slot("eyebrow", 0, 0, "#64665b", 10, 32, 33, 500, { letterSpacing: 2 }),
157
+ slot("version", 0, 2, "#3b665d", 12, 667, 35, 72, {
837
158
  anchor: "end",
838
- safeWidth: 72,
839
- maxCodePoints: 80,
840
- },
841
- {
842
- id: "headline",
843
- line: 1,
844
- run: 0,
845
- label: "Headline",
846
- style: {
847
- color: "#26302b",
848
- fontSize: 36.0,
849
- fontWeight: 700,
850
- fontFamily: "serif",
851
- letterSpacing: 0.0,
852
- },
853
- x: 32.0,
854
- y: 103.0,
855
- anchor: "start",
856
- safeWidth: 656,
159
+ fontWeight: 700,
160
+ }),
161
+ slot("headline", 1, 0, "#26302b", 36, 32, 103, 656, {
162
+ fontFamily: "serif",
857
163
  maxCodePoints: 48,
858
- },
859
- {
860
- id: "change0",
861
- line: 2,
862
- run: 0,
863
- label: "First highlight",
864
- style: {
865
- color: "#34443b",
866
- fontSize: 17.0,
867
- fontWeight: 400,
868
- fontFamily: "sans",
869
- letterSpacing: 0.0,
870
- },
871
- x: 49.0,
872
- y: 157.0,
873
- anchor: "start",
874
- safeWidth: 270,
875
- maxCodePoints: 80,
876
- },
877
- {
878
- id: "change1",
879
- line: 3,
880
- run: 0,
881
- label: "Second highlight",
882
- style: {
883
- color: "#34443b",
884
- fontSize: 17.0,
885
- fontWeight: 400,
886
- fontFamily: "sans",
887
- letterSpacing: 0.0,
888
- },
889
- x: 349.0,
890
- y: 157.0,
891
- anchor: "start",
892
- safeWidth: 325,
893
- maxCodePoints: 80,
894
- },
895
- {
896
- id: "channel",
897
- line: 4,
898
- run: 0,
899
- label: "Channel",
900
- style: {
901
- color: "#587068",
902
- fontSize: 12.0,
903
- fontWeight: 400,
904
- fontFamily: "mono",
905
- letterSpacing: 0.0,
906
- },
907
- x: 32.0,
908
- y: 214.0,
909
- anchor: "start",
910
- safeWidth: 300,
911
- maxCodePoints: 80,
912
- },
913
- {
914
- id: "footer",
915
- line: 4,
916
- run: 2,
917
- label: "Footer",
918
- style: {
919
- color: "#65736b",
920
- fontSize: 10.0,
921
- fontWeight: 400,
922
- fontFamily: "mono",
923
- letterSpacing: 0.0,
924
- },
925
- x: 688.0,
926
- y: 214.0,
927
- anchor: "end",
928
- safeWidth: 340,
929
- maxCodePoints: 80,
930
- },
164
+ fontWeight: 700,
165
+ }),
166
+ slot("change0", 2, 0, "#34443b", 17, 49, 157, 270, {
167
+ fontFamily: "sans",
168
+ }),
169
+ slot("change1", 3, 0, "#34443b", 17, 349, 157, 325, {
170
+ fontFamily: "sans",
171
+ }),
172
+ slot("channel", 4, 0, "#587068", 12, 32, 214, 300),
173
+ slot("footer", 4, 2, "#65736b", 10, 688, 214, 340, { anchor: "end" }),
931
174
  ],
932
- renderers: ["svg", "text"],
933
- editableStyleKeys: ["color"],
934
175
  },
935
176
  {
936
177
  id: "blueprint",
937
- profile: "blueprint/v1",
938
- name: "Blueprint",
939
178
  group: "Artful",
940
179
  accent: "#82c6cc",
941
180
  background: "#132b35",
942
181
  rows: [1, 1, 1, 1],
943
182
  slots: [
944
- {
945
- id: "eyebrow",
946
- line: 0,
947
- run: 0,
948
- label: "Eyebrow",
949
- style: {
950
- color: "#a5c1cc",
951
- fontSize: 10.0,
952
- fontWeight: 400,
953
- fontFamily: "mono",
954
- letterSpacing: 1.5,
955
- },
956
- x: 31.0,
957
- y: 30.0,
958
- anchor: "start",
959
- safeWidth: 656,
960
- maxCodePoints: 80,
961
- },
962
- {
963
- id: "title",
964
- line: 1,
965
- run: 0,
966
- label: "Title",
967
- style: {
968
- color: "#e0eff2",
969
- fontSize: 37.0,
970
- fontWeight: 700,
971
- fontFamily: "sans",
972
- letterSpacing: 0.0,
973
- },
974
- x: 247.0,
975
- y: 107.0,
976
- anchor: "start",
977
- safeWidth: 430,
183
+ slot("eyebrow", 0, 0, "#a5c1cc", 10, 31, 30, 656, {
184
+ letterSpacing: 1.5,
185
+ }),
186
+ slot("title", 1, 0, "#e0eff2", 37, 247, 107, 430, {
187
+ fontFamily: "sans",
978
188
  maxCodePoints: 48,
979
- },
980
- {
981
- id: "subtitle",
982
- line: 2,
983
- run: 0,
984
- label: "Subtitle",
985
- style: {
986
- color: "#9bbac6",
987
- fontSize: 14.0,
988
- fontWeight: 400,
989
- fontFamily: "sans",
990
- letterSpacing: 0.0,
991
- },
992
- x: 249.0,
993
- y: 139.0,
994
- anchor: "start",
995
- safeWidth: 430,
996
- maxCodePoints: 80,
997
- },
998
- {
999
- id: "footer",
1000
- line: 3,
1001
- run: 0,
1002
- label: "Footer",
1003
- style: {
1004
- color: "#87abb9",
1005
- fontSize: 10.0,
1006
- fontWeight: 400,
1007
- fontFamily: "mono",
1008
- letterSpacing: 2.0,
1009
- },
1010
- x: 249.0,
1011
- y: 207.0,
1012
- anchor: "start",
1013
- safeWidth: 430,
1014
- maxCodePoints: 80,
1015
- },
189
+ fontWeight: 700,
190
+ }),
191
+ slot("subtitle", 2, 0, "#9bbac6", 14, 249, 139, 430, {
192
+ fontFamily: "sans",
193
+ }),
194
+ slot("footer", 3, 0, "#87abb9", 10, 249, 207, 430, {
195
+ letterSpacing: 2,
196
+ }),
1016
197
  ],
1017
- renderers: ["svg", "text"],
1018
- editableStyleKeys: ["color"],
1019
198
  },
1020
199
  {
1021
200
  id: "contourMap",
1022
- profile: "contourMap/v1",
1023
- name: "Contour Map",
1024
201
  group: "Artful",
1025
202
  accent: "#69b7a3",
1026
203
  background: "#162923",
1027
204
  rows: [1, 1, 1, 1],
1028
205
  slots: [
1029
- {
1030
- id: "eyebrow",
1031
- line: 0,
1032
- run: 0,
1033
- label: "Eyebrow",
1034
- style: {
1035
- color: "#96aca8",
1036
- fontSize: 10.0,
1037
- fontWeight: 400,
1038
- fontFamily: "mono",
1039
- letterSpacing: 2.0,
1040
- },
1041
- x: 32.0,
1042
- y: 32.0,
1043
- anchor: "start",
1044
- safeWidth: 420,
1045
- maxCodePoints: 80,
1046
- },
1047
- {
1048
- id: "title",
1049
- line: 1,
1050
- run: 0,
1051
- label: "Title",
1052
- style: {
1053
- color: "#edf1ea",
1054
- fontSize: 32.0,
1055
- fontWeight: 700,
1056
- fontFamily: "sans",
1057
- letterSpacing: 0.0,
1058
- },
1059
- x: 32.0,
1060
- y: 115.0,
1061
- anchor: "start",
1062
- safeWidth: 430,
206
+ slot("eyebrow", 0, 0, "#96aca8", 10, 32, 32, 420, { letterSpacing: 2 }),
207
+ slot("title", 1, 0, "#edf1ea", 32, 32, 115, 430, {
208
+ fontFamily: "sans",
1063
209
  maxCodePoints: 48,
1064
- },
1065
- {
1066
- id: "subtitle",
1067
- line: 2,
1068
- run: 0,
1069
- label: "Subtitle",
1070
- style: {
1071
- color: "#a6bcb6",
1072
- fontSize: 16.0,
1073
- fontWeight: 400,
1074
- fontFamily: "sans",
1075
- letterSpacing: 0.0,
1076
- },
1077
- x: 33.0,
1078
- y: 148.0,
1079
- anchor: "start",
1080
- safeWidth: 430,
1081
- maxCodePoints: 80,
1082
- },
1083
- {
1084
- id: "footer",
1085
- line: 3,
1086
- run: 0,
1087
- label: "Footer",
1088
- style: {
1089
- color: "#86aaa2",
1090
- fontSize: 10.0,
1091
- fontWeight: 400,
1092
- fontFamily: "mono",
1093
- letterSpacing: 2.0,
1094
- },
1095
- x: 32.0,
1096
- y: 215.0,
1097
- anchor: "start",
1098
- safeWidth: 430,
1099
- maxCodePoints: 80,
1100
- },
210
+ fontWeight: 700,
211
+ }),
212
+ slot("subtitle", 2, 0, "#a6bcb6", 16, 33, 148, 430, {
213
+ fontFamily: "sans",
214
+ }),
215
+ slot("footer", 3, 0, "#86aaa2", 10, 32, 215, 430, { letterSpacing: 2 }),
1101
216
  ],
1102
- renderers: ["svg", "text"],
1103
- editableStyleKeys: ["color"],
1104
217
  },
1105
218
  {
1106
219
  id: "letterpress",
1107
- profile: "letterpress/v1",
1108
- name: "Letterpress",
1109
220
  group: "Artful",
1110
221
  accent: "#43877b",
1111
222
  background: "#e8e7dc",
1112
223
  rows: [1, 1, 1, 1],
1113
224
  slots: [
1114
- {
1115
- id: "eyebrow",
1116
- line: 0,
1117
- run: 0,
1118
- label: "Eyebrow",
1119
- style: {
1120
- color: "#78786f",
1121
- fontSize: 10.0,
1122
- fontWeight: 400,
1123
- fontFamily: "mono",
1124
- letterSpacing: 2.0,
1125
- },
1126
- x: 36.0,
1127
- y: 34.0,
1128
- anchor: "start",
1129
- safeWidth: 640,
1130
- maxCodePoints: 80,
1131
- },
1132
- {
1133
- id: "title",
1134
- line: 1,
1135
- run: 0,
1136
- label: "Title",
1137
- style: {
1138
- color: "#464842",
1139
- fontSize: 58.0,
1140
- fontWeight: 700,
1141
- fontFamily: "serif",
1142
- letterSpacing: 0.0,
1143
- },
1144
- x: 35.0,
1145
- y: 126.0,
1146
- anchor: "start",
1147
- safeWidth: 650,
225
+ slot("eyebrow", 0, 0, "#78786f", 10, 36, 34, 640, { letterSpacing: 2 }),
226
+ slot("title", 1, 0, "#464842", 58, 35, 126, 650, {
227
+ fontFamily: "serif",
1148
228
  maxCodePoints: 48,
1149
- },
1150
- {
1151
- id: "subtitle",
1152
- line: 2,
1153
- run: 0,
1154
- label: "Subtitle",
1155
- style: {
1156
- color: "#74776c",
1157
- fontSize: 16.0,
1158
- fontWeight: 400,
1159
- fontFamily: "sans",
1160
- letterSpacing: 0.0,
1161
- },
1162
- x: 37.0,
1163
- y: 163.0,
1164
- anchor: "start",
1165
- safeWidth: 640,
1166
- maxCodePoints: 80,
1167
- },
1168
- {
1169
- id: "footer",
1170
- line: 3,
1171
- run: 0,
1172
- label: "Footer",
1173
- style: {
1174
- color: "#70776e",
1175
- fontSize: 10.0,
1176
- fontWeight: 400,
1177
- fontFamily: "mono",
1178
- letterSpacing: 2.0,
1179
- },
1180
- x: 37.0,
1181
- y: 216.0,
1182
- anchor: "start",
1183
- safeWidth: 640,
1184
- maxCodePoints: 80,
1185
- },
229
+ fontWeight: 700,
230
+ }),
231
+ slot("subtitle", 2, 0, "#74776c", 16, 37, 163, 640, {
232
+ fontFamily: "sans",
233
+ }),
234
+ slot("footer", 3, 0, "#70776e", 10, 37, 216, 640, { letterSpacing: 2 }),
1186
235
  ],
1187
- renderers: ["svg", "text"],
1188
- editableStyleKeys: ["color"],
1189
236
  },
1190
237
  {
1191
238
  id: "signalHalftone",
1192
- profile: "signalHalftone/v1",
1193
- name: "Signal Halftone",
1194
239
  group: "Artful",
1195
240
  accent: "#ae563b",
1196
241
  background: "#ede8d8",
1197
242
  rows: [1, 1, 1, 1, 1],
1198
243
  slots: [
1199
- {
1200
- id: "eyebrow",
1201
- line: 0,
1202
- run: 0,
1203
- label: "Eyebrow",
1204
- style: {
1205
- color: "#777566",
1206
- fontSize: 10.0,
1207
- fontWeight: 400,
1208
- fontFamily: "mono",
1209
- letterSpacing: 1.5,
1210
- },
1211
- x: 273.0,
1212
- y: 34.0,
1213
- anchor: "start",
1214
- safeWidth: 410,
1215
- maxCodePoints: 80,
1216
- },
1217
- {
1218
- id: "title",
1219
- line: 1,
1220
- run: 0,
1221
- label: "Title",
1222
- style: {
1223
- color: "#293931",
1224
- fontSize: 41.0,
1225
- fontWeight: 700,
1226
- fontFamily: "sans",
1227
- letterSpacing: 0.0,
1228
- },
1229
- x: 271.0,
1230
- y: 106.0,
1231
- anchor: "start",
1232
- safeWidth: 410,
244
+ slot("eyebrow", 0, 0, "#777566", 10, 273, 34, 410, {
245
+ letterSpacing: 1.5,
246
+ }),
247
+ slot("title", 1, 0, "#293931", 41, 271, 106, 410, {
248
+ fontFamily: "sans",
1233
249
  maxCodePoints: 48,
1234
- },
1235
- {
1236
- id: "title2",
1237
- line: 2,
1238
- run: 0,
1239
- label: "Title, second line",
1240
- style: {
1241
- color: "#293931",
1242
- fontSize: 41.0,
1243
- fontWeight: 700,
1244
- fontFamily: "sans",
1245
- letterSpacing: 0.0,
1246
- },
1247
- x: 271.0,
1248
- y: 151.0,
1249
- anchor: "start",
1250
- safeWidth: 410,
250
+ fontWeight: 700,
251
+ }),
252
+ slot("title2", 2, 0, "#293931", 41, 271, 151, 410, {
253
+ fontFamily: "sans",
1251
254
  maxCodePoints: 48,
1252
- },
1253
- {
1254
- id: "subtitle",
1255
- line: 3,
1256
- run: 0,
1257
- label: "Subtitle",
1258
- style: {
1259
- color: "#626b5d",
1260
- fontSize: 14.0,
1261
- fontWeight: 400,
1262
- fontFamily: "sans",
1263
- letterSpacing: 0.0,
1264
- },
1265
- x: 274.0,
1266
- y: 183.0,
1267
- anchor: "start",
1268
- safeWidth: 410,
1269
- maxCodePoints: 80,
1270
- },
1271
- {
1272
- id: "footer",
1273
- line: 4,
1274
- run: 0,
1275
- label: "Footer",
1276
- style: {
1277
- color: "#737566",
1278
- fontSize: 9.0,
1279
- fontWeight: 400,
1280
- fontFamily: "mono",
1281
- letterSpacing: 2.0,
1282
- },
1283
- x: 274.0,
1284
- y: 218.0,
1285
- anchor: "start",
1286
- safeWidth: 410,
1287
- maxCodePoints: 80,
1288
- },
255
+ fontWeight: 700,
256
+ }),
257
+ slot("subtitle", 3, 0, "#626b5d", 14, 274, 183, 410, {
258
+ fontFamily: "sans",
259
+ }),
260
+ slot("footer", 4, 0, "#737566", 9, 274, 218, 410, { letterSpacing: 2 }),
1289
261
  ],
1290
- renderers: ["svg", "text"],
1291
- editableStyleKeys: ["color"],
1292
262
  },
1293
263
  {
1294
264
  id: "orbital",
1295
- profile: "orbital/v1",
1296
- name: "Orbital",
1297
265
  group: "Artful",
1298
266
  accent: "#68c9c7",
1299
267
  background: "#141e28",
1300
268
  rows: [1, 1, 1, 1],
1301
269
  slots: [
1302
- {
1303
- id: "eyebrow",
1304
- line: 0,
1305
- run: 0,
1306
- label: "Eyebrow",
1307
- style: {
1308
- color: "#92a1aa",
1309
- fontSize: 10.0,
1310
- fontWeight: 400,
1311
- fontFamily: "mono",
1312
- letterSpacing: 1.7,
1313
- },
1314
- x: 264.0,
1315
- y: 34.0,
1316
- anchor: "start",
1317
- safeWidth: 420,
1318
- maxCodePoints: 80,
1319
- },
1320
- {
1321
- id: "title",
1322
- line: 1,
1323
- run: 0,
1324
- label: "Title",
1325
- style: {
1326
- color: "#edf3f3",
1327
- fontSize: 36.0,
1328
- fontWeight: 700,
1329
- fontFamily: "sans",
1330
- letterSpacing: 0.0,
1331
- },
1332
- x: 262.0,
1333
- y: 111.0,
1334
- anchor: "start",
1335
- safeWidth: 426,
270
+ slot("eyebrow", 0, 0, "#92a1aa", 10, 264, 34, 420, {
271
+ letterSpacing: 1.7,
272
+ }),
273
+ slot("title", 1, 0, "#edf3f3", 36, 262, 111, 426, {
274
+ fontFamily: "sans",
1336
275
  maxCodePoints: 48,
1337
- },
1338
- {
1339
- id: "subtitle",
1340
- line: 2,
1341
- run: 0,
1342
- label: "Subtitle",
1343
- style: {
1344
- color: "#a5b7c1",
1345
- fontSize: 14.0,
1346
- fontWeight: 400,
1347
- fontFamily: "sans",
1348
- letterSpacing: 0.0,
1349
- },
1350
- x: 264.0,
1351
- y: 146.0,
1352
- anchor: "start",
1353
- safeWidth: 420,
1354
- maxCodePoints: 80,
1355
- },
1356
- {
1357
- id: "footer",
1358
- line: 3,
1359
- run: 0,
1360
- label: "Footer",
1361
- style: {
1362
- color: "#90aab3",
1363
- fontSize: 10.0,
1364
- fontWeight: 400,
1365
- fontFamily: "mono",
1366
- letterSpacing: 2.0,
1367
- },
1368
- x: 264.0,
1369
- y: 215.0,
1370
- anchor: "start",
1371
- safeWidth: 420,
1372
- maxCodePoints: 80,
1373
- },
276
+ fontWeight: 700,
277
+ }),
278
+ slot("subtitle", 2, 0, "#a5b7c1", 14, 264, 146, 420, {
279
+ fontFamily: "sans",
280
+ }),
281
+ slot("footer", 3, 0, "#90aab3", 10, 264, 215, 420, {
282
+ letterSpacing: 2,
283
+ }),
1374
284
  ],
1375
- renderers: ["svg", "text"],
1376
- editableStyleKeys: ["color"],
1377
285
  },
1378
286
  ];
287
+ // Status markers and text normally share ink; preserve explicit exceptions.
288
+ function palette(background, stroke, marker, ink = marker) {
289
+ return { background, stroke, marker, ink };
290
+ }
1379
291
  const statuses = {
1380
292
  buildReceipt: {
1381
293
  slot: "outcome",
1382
294
  source: "text",
1383
295
  palettes: {
1384
- PASSED: {
1385
- background: "#d9e9db",
1386
- stroke: "#a9c7b2",
1387
- marker: "#27775c",
1388
- ink: "#156751",
1389
- },
1390
- FAILED: {
1391
- background: "#f6dedd",
1392
- stroke: "#d8aaa8",
1393
- marker: "#913d38",
1394
- ink: "#913d38",
1395
- },
1396
- WARNING: {
1397
- background: "#f1e7c5",
1398
- stroke: "#cfbc82",
1399
- marker: "#806018",
1400
- ink: "#806018",
1401
- },
1402
- UNKNOWN: {
1403
- background: "#dfe4e3",
1404
- stroke: "#aab7b3",
1405
- marker: "#4b605a",
1406
- ink: "#4b605a",
1407
- },
296
+ PASSED: palette("#d9e9db", "#a9c7b2", "#27775c", "#156751"),
297
+ FAILED: palette("#f6dedd", "#d8aaa8", "#913d38"),
298
+ WARNING: palette("#f1e7c5", "#cfbc82", "#806018"),
299
+ UNKNOWN: palette("#dfe4e3", "#aab7b3", "#4b605a"),
1408
300
  },
1409
301
  },
1410
302
  serviceReady: {
1411
303
  slot: "state",
1412
304
  source: "text",
1413
305
  palettes: {
1414
- READY: {
1415
- background: "#213a34",
1416
- stroke: "none",
1417
- marker: "#83cca7",
1418
- ink: "#9de9c8",
1419
- },
1420
- DEGRADED: {
1421
- background: "#463e28",
1422
- stroke: "none",
1423
- marker: "#edcd84",
1424
- ink: "#edcd84",
1425
- },
1426
- OFFLINE: {
1427
- background: "#462d30",
1428
- stroke: "none",
1429
- marker: "#f1acaa",
1430
- ink: "#f1acaa",
1431
- },
1432
- UNKNOWN: {
1433
- background: "#30404a",
1434
- stroke: "none",
1435
- marker: "#cad6de",
1436
- ink: "#cad6de",
1437
- },
306
+ READY: palette("#213a34", "none", "#83cca7", "#9de9c8"),
307
+ DEGRADED: palette("#463e28", "none", "#edcd84"),
308
+ OFFLINE: palette("#462d30", "none", "#f1acaa"),
309
+ UNKNOWN: palette("#30404a", "none", "#cad6de"),
1438
310
  },
1439
311
  },
1440
312
  requestTrace: {
1441
313
  slot: "status",
1442
314
  source: "tone",
1443
315
  palettes: {
1444
- success: {
1445
- background: "#233c34",
1446
- stroke: "none",
1447
- marker: "#b8e1cd",
1448
- ink: "#b8e1cd",
1449
- },
1450
- warning: {
1451
- background: "#463e28",
1452
- stroke: "none",
1453
- marker: "#edcd84",
1454
- ink: "#edcd84",
1455
- },
1456
- error: {
1457
- background: "#462d30",
1458
- stroke: "none",
1459
- marker: "#f1acaa",
1460
- ink: "#f1acaa",
1461
- },
1462
- neutral: {
1463
- background: "#30404a",
1464
- stroke: "none",
1465
- marker: "#cad6de",
1466
- ink: "#cad6de",
1467
- },
316
+ success: palette("#233c34", "none", "#b8e1cd"),
317
+ warning: palette("#463e28", "none", "#edcd84"),
318
+ error: palette("#462d30", "none", "#f1acaa"),
319
+ neutral: palette("#30404a", "none", "#cad6de"),
1468
320
  },
1469
321
  },
1470
322
  };
323
+ const runtime = deepFreeze(definitions.map((d) => {
324
+ const status = statuses[d.id];
325
+ return {
326
+ ...d,
327
+ profile: `${d.id}/v1`,
328
+ editableStyleKeys: ["color"],
329
+ slots: d.slots.map((s) => status?.slot === s.id ? { ...s, editableStyleKeys: [] } : s),
330
+ ...(status ? { status } : {}),
331
+ };
332
+ }));
1471
333
  const accents = {
1472
334
  buildReceipt: ["Receipt spine"],
1473
335
  requestTrace: ["Ordered stage nodes"],
@@ -1480,32 +342,49 @@ const accents = {
1480
342
  signalHalftone: ["Halftone ink"],
1481
343
  orbital: ["Orbit highlight"],
1482
344
  };
1483
- const descriptors = deepFreeze(definitions.map((d) => {
1484
- const status = statuses[d.id];
1485
- return {
1486
- ...d,
1487
- accentGeometry: accents[d.id],
1488
- slots: d.slots.map((s) => status?.slot === s.id ? { ...s, editableStyleKeys: [] } : s),
1489
- ...(status ? { status } : {}),
1490
- parameters: {
1491
- accent: { type: "color", default: d.accent },
1492
- detail: {
1493
- type: "enum",
1494
- default: "standard",
1495
- values: ["minimal", "standard"],
1496
- },
1497
- ...(d.id === "requestTrace"
1498
- ? {
1499
- tone: {
1500
- type: "enum",
1501
- default: "neutral",
1502
- values: ["success", "warning", "error", "neutral"],
1503
- },
1504
- }
1505
- : {}),
1506
- },
1507
- };
1508
- }));
345
+ const names = {
346
+ buildReceipt: "Build Receipt",
347
+ requestTrace: "Request Trace",
348
+ serviceReady: "Service Passport",
349
+ commandCard: "Command Card",
350
+ releaseBulletin: "Release Bulletin",
351
+ blueprint: "Blueprint",
352
+ contourMap: "Contour Map",
353
+ letterpress: "Letterpress",
354
+ signalHalftone: "Signal Halftone",
355
+ orbital: "Orbital",
356
+ };
357
+ let descriptors;
358
+ export function getPresentationDescriptors() {
359
+ return (descriptors ??= deepFreeze(runtime.map((d) => {
360
+ const status = d.status;
361
+ return {
362
+ ...d,
363
+ name: names[d.id],
364
+ renderers: ["svg", "text"],
365
+ accentGeometry: accents[d.id],
366
+ slots: d.slots,
367
+ ...(status ? { status } : {}),
368
+ parameters: {
369
+ accent: { type: "color", default: d.accent },
370
+ detail: {
371
+ type: "enum",
372
+ default: "standard",
373
+ values: ["minimal", "standard"],
374
+ },
375
+ ...(d.id === "requestTrace"
376
+ ? {
377
+ tone: {
378
+ type: "enum",
379
+ default: "neutral",
380
+ values: ["success", "warning", "error", "neutral"],
381
+ },
382
+ }
383
+ : {}),
384
+ },
385
+ };
386
+ })));
387
+ }
1509
388
  export const SEPARATOR_STYLE = deepFreeze({
1510
389
  color: "#000000",
1511
390
  fontSize: 8,
@@ -1513,10 +392,7 @@ export const SEPARATOR_STYLE = deepFreeze({
1513
392
  fontFamily: "mono",
1514
393
  letterSpacing: 0,
1515
394
  });
1516
- export function getPresentationDescriptors() {
1517
- return descriptors;
1518
- }
1519
395
  export function presentationDescriptor(profile) {
1520
- return descriptors.find((d) => d.profile === profile);
396
+ return runtime.find((d) => d.profile === profile);
1521
397
  }
1522
398
  //# sourceMappingURL=catalog.js.map