konpeki 0.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.
Files changed (121) hide show
  1. package/.agents/skills/authoring-visuals/SKILL.md +82 -0
  2. package/AGENTS.md +33 -0
  3. package/AUTHORING.md +233 -0
  4. package/LICENSE +201 -0
  5. package/README.md +70 -0
  6. package/SETUP.md +86 -0
  7. package/composition/README.md +166 -0
  8. package/composition/compile.ts +227 -0
  9. package/composition/document.ts +709 -0
  10. package/composition/schema.json +2992 -0
  11. package/composition/schema.ts +435 -0
  12. package/composition/theme-tokens.ts +16 -0
  13. package/composition/types.ts +286 -0
  14. package/composition/validate.ts +684 -0
  15. package/composition/vector.ts +143 -0
  16. package/composition/visualizations.ts +335 -0
  17. package/design/README.md +17 -0
  18. package/design/palettes/README.md +14 -0
  19. package/design/palettes/base.ts +14 -0
  20. package/design/palettes/candidates.ts +19 -0
  21. package/design/palettes/index.ts +78 -0
  22. package/design/review/color-theme.md +44 -0
  23. package/design/review/layout.md +16 -0
  24. package/design/review/text.md +18 -0
  25. package/design/review/typography.md +15 -0
  26. package/design/review/visuals.md +31 -0
  27. package/design/semantic-patterns.md +43 -0
  28. package/design/themes/README.md +22 -0
  29. package/design/themes/index.ts +13 -0
  30. package/design/visual-languages/technical-product.md +17 -0
  31. package/design/visual-review.md +88 -0
  32. package/docs/development.md +140 -0
  33. package/docs/workflow.md +61 -0
  34. package/index.html +17 -0
  35. package/lib/assets.d.ts +8 -0
  36. package/lib/charts.ts +18 -0
  37. package/lib/contrast.ts +16 -0
  38. package/lib/layouts.ts +50 -0
  39. package/lib/slide.tsx +42 -0
  40. package/lib/taste.ts +17 -0
  41. package/lib/text.tsx +89 -0
  42. package/lib/typeface.ts +44 -0
  43. package/package.json +85 -0
  44. package/runtime/konpeki.mjs +1685 -0
  45. package/scripts/migrate-react-page.ts +120 -0
  46. package/slides/README.md +153 -0
  47. package/slides/architecture/PROMPT.md +31 -0
  48. package/slides/architecture/index.tsx +102 -0
  49. package/slides/article-brief/PROMPT.md +35 -0
  50. package/slides/article-brief/index.tsx +71 -0
  51. package/slides/bar-chart/PROMPT.md +39 -0
  52. package/slides/bar-chart/index.tsx +97 -0
  53. package/slides/comparison/PROMPT.md +29 -0
  54. package/slides/comparison/index.tsx +95 -0
  55. package/slides/decision-memo/PROMPT.md +34 -0
  56. package/slides/decision-memo/index.tsx +85 -0
  57. package/slides/delivery-plan/PROMPT.md +45 -0
  58. package/slides/delivery-plan/index.tsx +105 -0
  59. package/slides/experiment/PROMPT.md +44 -0
  60. package/slides/experiment/index.tsx +127 -0
  61. package/slides/incident-workflow/PROMPT.md +57 -0
  62. package/slides/incident-workflow/index.tsx +78 -0
  63. package/slides/introducing-konpeki/PROMPT.md +19 -0
  64. package/slides/introducing-konpeki/README.md +54 -0
  65. package/slides/introducing-konpeki/SOURCE.md +20 -0
  66. package/slides/introducing-konpeki/author.ts +163 -0
  67. package/slides/introducing-konpeki/composition.json +3265 -0
  68. package/slides/line-chart/PROMPT.md +40 -0
  69. package/slides/line-chart/index.tsx +72 -0
  70. package/slides/migration/PROMPT.md +38 -0
  71. package/slides/migration/index.tsx +89 -0
  72. package/slides/og-images/PROMPT.md +21 -0
  73. package/slides/og-images/index.tsx +76 -0
  74. package/slides/product-introduction/PROMPT.md +24 -0
  75. package/slides/product-introduction/index.tsx +105 -0
  76. package/slides/research-brief/PROMPT.md +40 -0
  77. package/slides/research-brief/index.tsx +104 -0
  78. package/slides/results-explanation/PROMPT.md +32 -0
  79. package/slides/results-explanation/index.tsx +96 -0
  80. package/slides/retrospective/PROMPT.md +43 -0
  81. package/slides/retrospective/index.tsx +105 -0
  82. package/slides/sankey/PROMPT.md +11 -0
  83. package/slides/sankey/index.tsx +93 -0
  84. package/slides/teaching/PROMPT.md +45 -0
  85. package/slides/teaching/index.tsx +124 -0
  86. package/slides/vertical-bar-charts/PROMPT.md +13 -0
  87. package/slides/vertical-bar-charts/index.tsx +97 -0
  88. package/src/app/App.tsx +694 -0
  89. package/src/assets/konpeki-mark.png +0 -0
  90. package/src/components/Canvas.tsx +1168 -0
  91. package/src/components/DiagramTypeIcon.tsx +78 -0
  92. package/src/components/InspectorPanel.tsx +687 -0
  93. package/src/components/LeftPanel.tsx +107 -0
  94. package/src/components/PageSizePicker.tsx +30 -0
  95. package/src/components/Presentation.tsx +105 -0
  96. package/src/components/RightPanel.tsx +201 -0
  97. package/src/components/VectorOverflowWarning.tsx +46 -0
  98. package/src/components/WorkspaceChrome.tsx +199 -0
  99. package/src/components/ui.tsx +53 -0
  100. package/src/lib/examples/react-page-migration.json +1295 -0
  101. package/src/lib/examples.ts +42 -0
  102. package/src/lib/export-png.ts +101 -0
  103. package/src/lib/file-session.ts +74 -0
  104. package/src/lib/history.ts +53 -0
  105. package/src/lib/model.ts +188 -0
  106. package/src/lib/page-size.ts +24 -0
  107. package/src/lib/presentation.ts +17 -0
  108. package/src/lib/storage.ts +43 -0
  109. package/src/lib/theme.ts +25 -0
  110. package/src/lib/use-file-session.ts +162 -0
  111. package/src/main.tsx +26 -0
  112. package/src/styles/base.css +105 -0
  113. package/src/styles/canvas.css +268 -0
  114. package/src/styles/chrome.css +214 -0
  115. package/src/styles/component-previews.css +386 -0
  116. package/src/styles/feedback.css +71 -0
  117. package/src/styles/left-panel.css +125 -0
  118. package/src/styles/presentation.css +72 -0
  119. package/src/styles/right-panel.css +1172 -0
  120. package/src/styles/shell.css +247 -0
  121. package/vite.config.ts +6 -0
@@ -0,0 +1,1172 @@
1
+ .inspector-content,
2
+ .layers-panel {
3
+ flex: 1;
4
+ min-height: 0;
5
+ padding: 18px 16px;
6
+ overflow-y: auto;
7
+ }
8
+
9
+ .inspector-content h2 {
10
+ margin-bottom: 16px;
11
+ }
12
+
13
+ .field-error {
14
+ color: #a02020 !important;
15
+ }
16
+
17
+ .custom-visual-summary p {
18
+ margin: 0 0 10px;
19
+ color: var(--ui-text);
20
+ font-size: 12px;
21
+ line-height: 1.5;
22
+ }
23
+
24
+ .custom-visual-summary dl {
25
+ display: grid;
26
+ gap: 6px;
27
+ margin: 0 0 12px;
28
+ }
29
+
30
+ .custom-visual-summary dl > div {
31
+ display: flex;
32
+ justify-content: space-between;
33
+ gap: 12px;
34
+ }
35
+
36
+ .custom-visual-summary dt,
37
+ .custom-visual-summary dd {
38
+ margin: 0;
39
+ font-size: 11px;
40
+ }
41
+
42
+ .custom-visual-summary dt {
43
+ color: var(--ui-muted);
44
+ }
45
+
46
+ .custom-visual-summary .field-help {
47
+ margin: 0;
48
+ color: var(--ui-muted);
49
+ font-size: 11px;
50
+ }
51
+
52
+ .custom-visual-summary .field {
53
+ margin-top: 14px;
54
+ margin-bottom: 0;
55
+ }
56
+
57
+ .vector-element-editor {
58
+ display: grid;
59
+ gap: 10px;
60
+ margin-top: 14px;
61
+ padding-top: 14px;
62
+ border-top: 1px solid var(--ui-line);
63
+ }
64
+
65
+ .vector-element-editor > strong {
66
+ font-size: 11px;
67
+ }
68
+
69
+ .vector-actions {
70
+ display: flex;
71
+ flex-wrap: wrap;
72
+ gap: 6px;
73
+ }
74
+
75
+ .vector-actions button {
76
+ font-size: 11px;
77
+ }
78
+
79
+ .vector-attributes {
80
+ display: grid;
81
+ grid-template-columns: 1fr 1fr;
82
+ gap: 0 10px;
83
+ }
84
+
85
+ .vector-attributes .field {
86
+ min-width: 0;
87
+ margin-top: 0;
88
+ margin-bottom: 8px;
89
+ }
90
+
91
+ .theme-picker {
92
+ margin-top: 0;
93
+ }
94
+
95
+ .theme-picker + .choice-picker {
96
+ margin-top: 20px;
97
+ }
98
+
99
+ .segmented-options {
100
+ display: grid;
101
+ gap: 3px;
102
+ padding: 3px;
103
+ background: #f4f4f5;
104
+ border-radius: 7px;
105
+ }
106
+
107
+ .segmented-options button {
108
+ min-width: 0;
109
+ min-height: 30px;
110
+ padding: 5px 7px;
111
+ border: 1px solid transparent;
112
+ border-radius: 5px;
113
+ background: transparent;
114
+ color: var(--ui-muted);
115
+ font-size: 12px;
116
+ }
117
+
118
+ .segmented-options button:hover:not(:disabled) {
119
+ background: #e9e9eb;
120
+ border-color: transparent;
121
+ }
122
+
123
+ .segmented-options button.selected {
124
+ background: white;
125
+ border-color: #e5e5e7;
126
+ box-shadow: 0 1px 3px #00000012;
127
+ color: var(--ui-text);
128
+ }
129
+
130
+ .inspector-content .slide-settings-heading {
131
+ margin-top: 24px;
132
+ padding-top: 20px;
133
+ border-top: 1px solid var(--ui-border);
134
+ }
135
+
136
+ .page-number-picker,
137
+ .page-number-picker > .choice-picker:first-of-type {
138
+ margin-top: 0;
139
+ }
140
+
141
+ .theme-options {
142
+ display: grid;
143
+ grid-template-columns: 1fr 1fr;
144
+ gap: 7px;
145
+ }
146
+
147
+ .theme-options button {
148
+ display: grid;
149
+ min-width: 0;
150
+ gap: 7px;
151
+ padding: 9px;
152
+ text-align: left;
153
+ }
154
+
155
+ .theme-options button.selected {
156
+ border-color: #86868b;
157
+ background: #f4f4f5;
158
+ box-shadow: inset 0 0 0 1px #86868b;
159
+ }
160
+
161
+ .theme-options button > span:first-child {
162
+ overflow: hidden;
163
+ font-size: 11px;
164
+ text-overflow: ellipsis;
165
+ white-space: nowrap;
166
+ }
167
+
168
+ .theme-options button[data-theme="precision"] > span:first-child {
169
+ font-family: "Noto Sans", sans-serif;
170
+ }
171
+
172
+ .theme-options button[data-theme="editorial"] > span:first-child {
173
+ font-family: Georgia, serif;
174
+ }
175
+
176
+ .theme-swatches {
177
+ display: flex;
178
+ gap: 3px;
179
+ }
180
+
181
+ .theme-swatches i {
182
+ display: block;
183
+ flex: 1;
184
+ height: 7px;
185
+ border-radius: 1px;
186
+ }
187
+
188
+ .layers-heading-row {
189
+ display: flex;
190
+ align-items: baseline;
191
+ justify-content: space-between;
192
+ gap: 8px;
193
+ margin-bottom: 12px;
194
+ }
195
+
196
+ .layers-heading-row h2 {
197
+ margin: 0;
198
+ font-size: 12px;
199
+ font-weight: 600;
200
+ }
201
+
202
+ .layers-heading-row > span,
203
+ .layers-empty {
204
+ color: var(--ui-muted);
205
+ font-size: 10px;
206
+ }
207
+
208
+ .layers-empty {
209
+ margin: 12px 2px;
210
+ }
211
+
212
+ .layer-list {
213
+ display: grid;
214
+ gap: 4px;
215
+ }
216
+
217
+ .layer-row {
218
+ display: grid;
219
+ grid-template-columns: 16px minmax(0, 1fr) auto;
220
+ align-items: center;
221
+ min-height: 42px;
222
+ border: 1px solid transparent;
223
+ border-radius: 6px;
224
+ background: #fafafa;
225
+ }
226
+
227
+ .layer-row.selected {
228
+ border-color: color-mix(in srgb, var(--accent) 45%, white);
229
+ background: var(--ui-selected);
230
+ }
231
+
232
+ .layer-row.dragging {
233
+ opacity: 0.45;
234
+ }
235
+
236
+ .layer-drag {
237
+ color: var(--ui-muted);
238
+ font-size: 13px;
239
+ cursor: grab;
240
+ }
241
+
242
+ .layer-select {
243
+ display: grid;
244
+ min-width: 0;
245
+ padding: 5px 3px;
246
+ border: 0;
247
+ background: transparent;
248
+ text-align: left;
249
+ }
250
+
251
+ .layer-select:hover:not(:disabled) {
252
+ border-color: transparent;
253
+ background: transparent;
254
+ }
255
+
256
+ .layer-select strong,
257
+ .layer-select span {
258
+ overflow: hidden;
259
+ text-overflow: ellipsis;
260
+ white-space: nowrap;
261
+ }
262
+
263
+ .layer-select strong {
264
+ font-size: 11px;
265
+ font-weight: 500;
266
+ }
267
+
268
+ .layer-select span {
269
+ color: var(--ui-muted);
270
+ font-size: 9px;
271
+ }
272
+
273
+ .layer-actions {
274
+ display: flex;
275
+ padding-right: 3px;
276
+ }
277
+
278
+ .layer-actions button {
279
+ width: 20px;
280
+ height: 26px;
281
+ padding: 0;
282
+ border: 0;
283
+ background: transparent;
284
+ color: var(--ui-muted);
285
+ font-size: 11px;
286
+ }
287
+
288
+ .field {
289
+ display: grid;
290
+ gap: 7px;
291
+ margin-bottom: 17px;
292
+ font-size: 12px;
293
+ }
294
+
295
+ .inspector-context {
296
+ display: flex;
297
+ align-items: center;
298
+ gap: 6px;
299
+ }
300
+
301
+ .inspector-context button {
302
+ padding: 0;
303
+ border: 0;
304
+ background: transparent;
305
+ color: var(--ui-muted);
306
+ font-weight: 500;
307
+ }
308
+
309
+ .inspector-context button:hover {
310
+ background: transparent;
311
+ color: var(--accent);
312
+ }
313
+
314
+ .field > span {
315
+ color: #565656;
316
+ }
317
+
318
+ .field textarea {
319
+ resize: none;
320
+ overflow-y: auto;
321
+ }
322
+
323
+ .native-text-inspector > .field {
324
+ margin-bottom: 12px;
325
+ gap: 5px;
326
+ }
327
+
328
+ .native-text-inspector > .field textarea {
329
+ height: 64px;
330
+ min-height: 64px;
331
+ resize: vertical;
332
+ }
333
+
334
+ .text-typography-fields {
335
+ display: grid;
336
+ grid-template-columns: repeat(2, minmax(0, 1fr));
337
+ gap: 10px 12px;
338
+ margin-bottom: 12px;
339
+ }
340
+
341
+ .text-typography-fields .field {
342
+ min-width: 0;
343
+ margin: 0;
344
+ gap: 5px;
345
+ }
346
+
347
+ .appearance-options {
348
+ display: grid;
349
+ grid-template-columns: repeat(2, minmax(0, 1fr));
350
+ gap: 6px;
351
+ }
352
+
353
+ .appearance-options button {
354
+ display: grid;
355
+ grid-template-columns: 38px minmax(0, 1fr);
356
+ align-items: center;
357
+ min-height: 42px;
358
+ gap: 7px;
359
+ padding: 6px;
360
+ text-align: left;
361
+ }
362
+
363
+ .appearance-options button.selected {
364
+ border-color: #86868b;
365
+ background: #f4f4f5;
366
+ box-shadow: inset 0 0 0 1px #86868b;
367
+ }
368
+
369
+ .appearance-options button:disabled {
370
+ opacity: 0.48;
371
+ }
372
+
373
+ .appearance-options button > span:last-child {
374
+ overflow: hidden;
375
+ font-size: 10px;
376
+ line-height: 1.2;
377
+ text-overflow: ellipsis;
378
+ }
379
+
380
+ .appearance-preview {
381
+ position: relative;
382
+ display: grid;
383
+ width: 36px;
384
+ height: 24px;
385
+ gap: 2px;
386
+ padding: 3px;
387
+ overflow: hidden;
388
+ border: 1px solid #dedede;
389
+ background: #fff;
390
+ }
391
+
392
+ .appearance-preview i {
393
+ display: block;
394
+ min-width: 2px;
395
+ min-height: 2px;
396
+ background: var(--preview-muted);
397
+ }
398
+
399
+ .appearance-preview[data-property="alignment"],
400
+ .appearance-preview[data-property="titleStyle"],
401
+ .appearance-preview[data-property="purpose"] {
402
+ display: flex;
403
+ flex-direction: column;
404
+ justify-content: center;
405
+ }
406
+
407
+ .appearance-preview[data-property="alignment"] i,
408
+ .appearance-preview[data-property="titleStyle"] i,
409
+ .appearance-preview[data-property="purpose"] i {
410
+ width: 72%;
411
+ height: 2px;
412
+ min-height: 2px;
413
+ }
414
+
415
+ .appearance-preview[data-property="alignment"] i:nth-child(n + 4),
416
+ .appearance-preview[data-property="titleStyle"] i:nth-child(n + 3),
417
+ .appearance-preview[data-property="purpose"] i:nth-child(n + 4) {
418
+ display: none;
419
+ }
420
+
421
+ .appearance-preview[data-property="logicalOrder"] {
422
+ grid-template-columns: repeat(4, 1fr);
423
+ align-items: center;
424
+ }
425
+
426
+ .appearance-preview[data-property="logicalOrder"][data-value="parallel"] {
427
+ grid-template-columns: repeat(3, 1fr);
428
+ }
429
+
430
+ .appearance-preview[data-property="logicalOrder"][data-value="progressive"] {
431
+ align-items: end;
432
+ }
433
+
434
+ .appearance-preview[data-property="logicalOrder"][data-value="progressive"] i:nth-child(1) { height: 4px; }
435
+ .appearance-preview[data-property="logicalOrder"][data-value="progressive"] i:nth-child(2) { height: 8px; }
436
+ .appearance-preview[data-property="logicalOrder"][data-value="progressive"] i:nth-child(3) { height: 12px; }
437
+ .appearance-preview[data-property="logicalOrder"][data-value="progressive"] i:nth-child(4) { height: 16px; }
438
+
439
+ .appearance-preview[data-property="tableStyle"] {
440
+ gap: 0;
441
+ padding: 2px;
442
+ grid-template: repeat(2, 1fr) / repeat(3, 1fr);
443
+ }
444
+
445
+ .appearance-preview[data-property="tableStyle"] i {
446
+ background: transparent;
447
+ border-radius: 0;
448
+ }
449
+
450
+ .appearance-preview[data-property="tableStyle"] i:nth-child(-n + 3) {
451
+ border-bottom: 2px solid var(--preview-ink);
452
+ }
453
+ .appearance-preview[data-property="tableStyle"][data-value="top-header-bottom"] {
454
+ border-block: 1px solid var(--preview-muted);
455
+ }
456
+ .appearance-preview[data-property="tableStyle"][data-value="row-rules"] i {
457
+ border-bottom: 1px solid var(--preview-muted);
458
+ }
459
+ .appearance-preview[data-property="tableStyle"][data-value="full-grid"] {
460
+ border-top: 1px solid var(--preview-muted);
461
+ border-left: 1px solid var(--preview-muted);
462
+ }
463
+ .appearance-preview[data-property="tableStyle"][data-value="full-grid"] i {
464
+ border-right: 1px solid var(--preview-muted);
465
+ border-bottom: 1px solid var(--preview-muted);
466
+ }
467
+
468
+ .appearance-preview[data-property="logicalOrder"][data-value="cyclical"] {
469
+ grid-template: repeat(2, 1fr) / repeat(2, 1fr);
470
+ border-radius: 50%;
471
+ }
472
+
473
+ .appearance-preview[data-property="logicalOrder"][data-value="general-to-specific"],
474
+ .appearance-preview[data-property="logicalOrder"][data-value="hierarchical"] {
475
+ grid-template: repeat(2, 1fr) / repeat(3, 1fr);
476
+ }
477
+
478
+ .appearance-preview[data-property="logicalOrder"][data-value="general-to-specific"] i:first-child {
479
+ grid-column: 1 / -1;
480
+ }
481
+
482
+ .appearance-preview[data-property="logicalOrder"][data-value="hierarchical"] i:first-child {
483
+ grid-column: 2;
484
+ }
485
+
486
+ .appearance-preview[data-property="logicalOrder"][data-value="hierarchical"] i:nth-child(n + 2) {
487
+ grid-row: 2;
488
+ }
489
+
490
+ .appearance-preview[data-property="alignment"][data-value="center"] i {
491
+ margin-inline: auto;
492
+ }
493
+
494
+ .appearance-preview[data-property="alignment"][data-value="end"] i {
495
+ margin-left: auto;
496
+ }
497
+
498
+ .appearance-preview[data-property="border"] i {
499
+ grid-area: 1 / 1 / -1 / -1;
500
+ background:
501
+ linear-gradient(var(--preview-muted) 0 0) 5px 6px / 18px 2px no-repeat,
502
+ linear-gradient(var(--preview-muted) 0 0) 5px 11px / 13px 2px no-repeat;
503
+ }
504
+
505
+ .appearance-preview[data-property="border"][data-value="outline"] i {
506
+ border: 1px solid var(--preview-ink);
507
+ }
508
+
509
+ .appearance-preview[data-property="border"][data-value="filled"] i {
510
+ background:
511
+ linear-gradient(#fff 0 0) 5px 6px / 18px 2px no-repeat,
512
+ linear-gradient(#fff 0 0) 5px 11px / 13px 2px no-repeat,
513
+ var(--preview-ink);
514
+ }
515
+
516
+ .appearance-preview[data-property="layout"] {
517
+ align-items: stretch;
518
+ grid-auto-flow: column;
519
+ grid-auto-columns: 1fr;
520
+ }
521
+
522
+ .appearance-preview[data-property="layout"][data-value="two-plus-two"] {
523
+ grid-template: repeat(2, 1fr) / repeat(2, 1fr);
524
+ }
525
+
526
+ .appearance-preview[data-property="layout"][data-value="one-plus-three"],
527
+ .appearance-preview[data-property="layout"][data-value="three-plus-one"] {
528
+ grid-template: repeat(3, 1fr) / repeat(2, 1fr);
529
+ }
530
+
531
+ .appearance-preview[data-property="layout"][data-value="one-plus-three"] i:first-child,
532
+ .appearance-preview[data-property="layout"][data-value="three-plus-one"] i:last-child {
533
+ grid-row: 1 / -1;
534
+ }
535
+
536
+ .appearance-preview[data-property="layout"][data-value="three-plus-one"] i:last-child {
537
+ grid-column: 2;
538
+ }
539
+
540
+ .appearance-preview[data-property="orientation"][data-value="horizontal"] {
541
+ grid-template-columns: repeat(4, 1fr);
542
+ }
543
+
544
+ .appearance-preview[data-property="orientation"][data-value="vertical"] {
545
+ grid-template-rows: repeat(4, 1fr);
546
+ }
547
+
548
+ .appearance-preview[data-property="purpose"][data-value="comparison"] {
549
+ display: grid;
550
+ grid-template-columns: 1fr 1fr;
551
+ }
552
+
553
+ .appearance-preview[data-property="purpose"][data-value="comparison"] i {
554
+ display: block;
555
+ width: auto;
556
+ height: auto;
557
+ }
558
+
559
+ .appearance-preview[data-property="purpose"][data-value="emphasis"] i:first-child {
560
+ width: 100%;
561
+ height: 5px;
562
+ background: var(--preview-accent);
563
+ }
564
+
565
+ .appearance-preview[data-property="purpose"][data-value="emphasis"] i:nth-child(n + 2) {
566
+ display: none;
567
+ }
568
+
569
+ .appearance-preview[data-property="treatment"] i {
570
+ grid-area: 1 / 1 / -1 / -1;
571
+ margin: 5px;
572
+ }
573
+
574
+ .appearance-preview[data-property="treatment"][data-value="subtle"] {
575
+ background: color-mix(in srgb, var(--preview-accent) 10%, white);
576
+ }
577
+
578
+ .appearance-preview[data-property="treatment"][data-value="strong"] {
579
+ background: var(--preview-ink);
580
+ }
581
+
582
+ .appearance-preview[data-property="treatment"][data-value="strong"] i {
583
+ background: #fff;
584
+ }
585
+
586
+ .appearance-preview[data-property="titleStyle"][data-value="prominent"] i:first-child {
587
+ width: 90%;
588
+ height: 5px;
589
+ background: var(--preview-ink);
590
+ }
591
+
592
+ .appearance-preview[data-property="rule"]::after {
593
+ position: absolute;
594
+ right: 3px;
595
+ left: 3px;
596
+ border-top: 2px solid var(--preview-accent);
597
+ content: "";
598
+ }
599
+
600
+ .appearance-preview[data-property="rule"][data-value="none"]::after {
601
+ display: none;
602
+ }
603
+
604
+ .appearance-preview[data-property="rule"][data-value="top"]::after {
605
+ top: 4px;
606
+ }
607
+
608
+ .appearance-preview[data-property="rule"][data-value="bottom"]::after {
609
+ bottom: 4px;
610
+ }
611
+
612
+ .appearance-preview[data-property="density"][data-value="sparse"] i:nth-child(n + 3),
613
+ .appearance-preview[data-property="legend"] i {
614
+ display: none;
615
+ }
616
+
617
+ .appearance-preview[data-property="density"] {
618
+ grid-template-columns: repeat(4, 1fr);
619
+ align-items: end;
620
+ }
621
+
622
+ .appearance-preview[data-property="density"] i:nth-child(odd) {
623
+ height: 8px;
624
+ }
625
+
626
+ .appearance-preview[data-property="density"] i:nth-child(even) {
627
+ height: 15px;
628
+ }
629
+
630
+ .appearance-preview[data-property="density"][data-value="sparse"] i:nth-child(n + 3) {
631
+ display: none;
632
+ }
633
+
634
+ .appearance-preview[data-property="legend"]::after {
635
+ position: absolute;
636
+ width: 16px;
637
+ height: 3px;
638
+ background:
639
+ linear-gradient(90deg, var(--preview-accent) 0 6px, transparent 6px 9px, var(--preview-muted) 9px);
640
+ content: "";
641
+ }
642
+
643
+ .appearance-preview[data-property="legend"][data-value="none"]::after {
644
+ display: none;
645
+ }
646
+
647
+ .appearance-preview[data-property="legend"][data-value="top"]::after {
648
+ top: 4px;
649
+ left: 4px;
650
+ }
651
+
652
+ .appearance-preview[data-property="legend"][data-value="right"]::after {
653
+ top: 5px;
654
+ right: 3px;
655
+ width: 3px;
656
+ height: 14px;
657
+ background: linear-gradient(var(--preview-accent) 0 6px, transparent 6px 9px, var(--preview-muted) 9px);
658
+ }
659
+
660
+ .appearance-preview[data-property="legend"][data-value="bottom"]::after {
661
+ bottom: 4px;
662
+ left: 4px;
663
+ }
664
+
665
+ .appearance-preview[data-property="color"] i,
666
+ .appearance-preview[data-property="colorScheme"] i,
667
+ .appearance-preview[data-property="emphasis"] i {
668
+ border-radius: 50%;
669
+ }
670
+
671
+ .appearance-preview[data-property="color"][data-value="ink"] i {
672
+ background: var(--preview-ink);
673
+ }
674
+
675
+ .appearance-preview[data-property="color"][data-value="accent"] i,
676
+ .appearance-preview[data-property="colorScheme"][data-value="accent-with-muted-context"] i:first-child,
677
+ .appearance-preview[data-property="emphasis"][data-value="primary"] i:first-child,
678
+ .appearance-preview[data-property="emphasis"][data-value="latest-series"] i:last-child {
679
+ background: var(--preview-accent);
680
+ }
681
+
682
+ .appearance-preview[data-property="colorScheme"],
683
+ .appearance-preview[data-property="emphasis"] {
684
+ grid-template-columns: repeat(4, 1fr);
685
+ align-items: center;
686
+ }
687
+
688
+ .appearance-preview[data-property="colorScheme"][data-value="monochrome"] i {
689
+ background: var(--preview-ink);
690
+ opacity: 0.35;
691
+ }
692
+
693
+ .appearance-preview[data-property="colorScheme"][data-value="monochrome"] i:nth-child(n + 3) {
694
+ opacity: 0.75;
695
+ }
696
+
697
+ .appearance-preview[data-property="colorScheme"][data-value="categorical"] i:nth-child(1) {
698
+ background: var(--preview-accent);
699
+ }
700
+
701
+ .appearance-preview[data-property="colorScheme"][data-value="categorical"] i:nth-child(2) {
702
+ background: var(--preview-secondary);
703
+ }
704
+
705
+ .appearance-preview[data-property="colorScheme"][data-value="categorical"] i:nth-child(3) {
706
+ background: var(--preview-tertiary);
707
+ }
708
+
709
+ .appearance-preview[data-property="colorScheme"][data-value="sequential"] i {
710
+ background: var(--preview-accent);
711
+ }
712
+
713
+ .appearance-preview[data-property="colorScheme"][data-value="sequential"] i:nth-child(1) { opacity: 0.2; }
714
+ .appearance-preview[data-property="colorScheme"][data-value="sequential"] i:nth-child(2) { opacity: 0.4; }
715
+ .appearance-preview[data-property="colorScheme"][data-value="sequential"] i:nth-child(3) { opacity: 0.65; }
716
+
717
+ .appearance-preview[data-property="colorScheme"][data-value="status"] i:nth-child(1) { background: var(--preview-complete); }
718
+ .appearance-preview[data-property="colorScheme"][data-value="status"] i:nth-child(2) { background: var(--preview-attention); }
719
+ .appearance-preview[data-property="colorScheme"][data-value="status"] i:nth-child(n + 3) { background: var(--preview-blocked); }
720
+
721
+ .appearance-preview[data-property="emphasis"] i {
722
+ background: var(--preview-muted);
723
+ }
724
+
725
+ .appearance-preview[data-property="emphasis"][data-value="exception"] i:nth-child(2) {
726
+ background: var(--preview-blocked);
727
+ }
728
+
729
+ .appearance-preview[data-property="type"] {
730
+ grid-template-columns: repeat(4, 1fr);
731
+ align-items: center;
732
+ }
733
+
734
+ .appearance-preview[data-property="type"]::before {
735
+ position: absolute;
736
+ right: 5px;
737
+ left: 5px;
738
+ top: 11px;
739
+ border-top: 1px solid var(--preview-muted);
740
+ content: "";
741
+ }
742
+
743
+ .appearance-preview[data-property="type"] i {
744
+ z-index: 1;
745
+ height: 6px;
746
+ border-radius: 1px;
747
+ }
748
+
749
+ .appearance-preview[data-property="type"][data-value="system"] i:first-child {
750
+ grid-column: 2 / 4;
751
+ }
752
+
753
+ .appearance-preview[data-property="type"][data-value="system"] i:nth-child(n + 2) {
754
+ align-self: end;
755
+ }
756
+
757
+ .appearance-preview[data-property="template"] {
758
+ display: block;
759
+ }
760
+
761
+ .appearance-preview[data-property="template"] i {
762
+ position: absolute;
763
+ z-index: 1;
764
+ width: 5px;
765
+ height: 5px;
766
+ border-radius: 1px;
767
+ }
768
+
769
+ .appearance-preview[data-property="template"][data-value="grouped-bar"] {
770
+ display: grid;
771
+ grid-template-columns: repeat(4, 1fr);
772
+ align-items: end;
773
+ }
774
+
775
+ .appearance-preview[data-property="template"][data-value="grouped-bar"] i {
776
+ position: static;
777
+ width: auto;
778
+ height: 9px;
779
+ border-radius: 0;
780
+ }
781
+
782
+ .appearance-preview[data-property="template"][data-value="grouped-bar"] i:nth-child(even) { height: 15px; background: var(--preview-accent); }
783
+
784
+ .appearance-preview[data-property="template"][data-value="line"]::before {
785
+ position: absolute;
786
+ left: 5px;
787
+ top: 12px;
788
+ width: 25px;
789
+ height: 9px;
790
+ border-top: 2px solid var(--preview-accent);
791
+ transform: skewY(-18deg);
792
+ content: "";
793
+ }
794
+
795
+ .appearance-preview[data-property="template"][data-value="line"] i:nth-child(1) { left: 5px; top: 13px; }
796
+ .appearance-preview[data-property="template"][data-value="line"] i:nth-child(2) { left: 14px; top: 9px; }
797
+ .appearance-preview[data-property="template"][data-value="line"] i:nth-child(3) { left: 23px; top: 11px; }
798
+ .appearance-preview[data-property="template"][data-value="line"] i:nth-child(4) { left: 29px; top: 6px; }
799
+
800
+ .appearance-preview[data-property="template"][data-value="pie"]::before {
801
+ position: absolute;
802
+ inset: 4px 9px;
803
+ border-radius: 50%;
804
+ background: conic-gradient(var(--preview-accent) 0 34%, var(--preview-secondary) 34% 67%, var(--preview-muted) 67%);
805
+ content: "";
806
+ }
807
+
808
+ .appearance-preview[data-property="template"][data-value="pie"] i {
809
+ display: none;
810
+ }
811
+
812
+ .appearance-preview[data-property="template"][data-value="annotated-detail"] i:first-child {
813
+ inset: 4px 12px 4px 4px;
814
+ width: auto;
815
+ height: auto;
816
+ border: 1px solid var(--preview-muted);
817
+ background: transparent;
818
+ }
819
+
820
+ .appearance-preview[data-property="template"][data-value="annotated-detail"] i:nth-child(2) { right: 5px; top: 5px; background: var(--preview-accent); }
821
+ .appearance-preview[data-property="template"][data-value="annotated-detail"] i:nth-child(3) { right: 4px; top: 13px; width: 9px; height: 2px; }
822
+ .appearance-preview[data-property="template"][data-value="annotated-detail"] i:nth-child(4) { display: none; }
823
+
824
+ .appearance-preview[data-property="template"][data-value="radar"]::before {
825
+ position: absolute;
826
+ inset: 3px 7px;
827
+ background: color-mix(in srgb, var(--preview-accent) 35%, transparent);
828
+ clip-path: polygon(50% 0, 100% 38%, 82% 100%, 18% 100%, 0 38%);
829
+ content: "";
830
+ }
831
+
832
+ .appearance-preview[data-property="template"][data-value="radar"] i { display: none; }
833
+
834
+ .appearance-preview[data-property="template"][data-value="treemap"] i {
835
+ border-radius: 0;
836
+ }
837
+ .appearance-preview[data-property="template"][data-value="treemap"] i:nth-child(1) { inset: 3px 15px 3px 3px; width: auto; height: auto; background: var(--preview-accent); }
838
+ .appearance-preview[data-property="template"][data-value="treemap"] i:nth-child(2) { right: 3px; top: 3px; width: 10px; height: 8px; }
839
+ .appearance-preview[data-property="template"][data-value="treemap"] i:nth-child(3) { right: 8px; bottom: 3px; width: 5px; height: 7px; }
840
+ .appearance-preview[data-property="template"][data-value="treemap"] i:nth-child(4) { right: 3px; bottom: 3px; width: 3px; height: 7px; background: var(--preview-secondary); }
841
+
842
+ .appearance-preview[data-property="template"][data-value="scatter"] i:nth-child(1) { left: 5px; bottom: 5px; }
843
+ .appearance-preview[data-property="template"][data-value="scatter"] i:nth-child(2) { left: 13px; bottom: 9px; }
844
+ .appearance-preview[data-property="template"][data-value="scatter"] i:nth-child(3) { left: 22px; bottom: 12px; }
845
+ .appearance-preview[data-property="template"][data-value="scatter"] i:nth-child(4) { right: 5px; top: 4px; width: 7px; height: 7px; background: var(--preview-accent); }
846
+
847
+ .appearance-preview[data-property="template"][data-value="sankey"]::before,
848
+ .appearance-preview[data-property="template"][data-value="sankey"]::after {
849
+ position: absolute;
850
+ left: 4px;
851
+ width: 29px;
852
+ border-top: 5px solid var(--preview-accent);
853
+ border-radius: 50%;
854
+ content: "";
855
+ }
856
+ .appearance-preview[data-property="template"][data-value="sankey"]::before { top: 7px; transform: rotate(8deg); }
857
+ .appearance-preview[data-property="template"][data-value="sankey"]::after { bottom: 6px; border-color: var(--preview-muted); transform: rotate(-9deg); }
858
+ .appearance-preview[data-property="template"][data-value="sankey"] i { display: none; }
859
+
860
+ .appearance-preview[data-property="template"][data-value="linear"]::before,
861
+ .appearance-preview[data-property="template"][data-value="request-flow"]::before {
862
+ position: absolute;
863
+ top: 11px;
864
+ right: 5px;
865
+ left: 5px;
866
+ border-top: 1px solid var(--preview-ink);
867
+ content: "";
868
+ }
869
+
870
+ .appearance-preview[data-property="template"][data-value="linear"] i,
871
+ .appearance-preview[data-property="template"][data-value="request-flow"] i {
872
+ top: 9px;
873
+ }
874
+ .appearance-preview[data-property="template"][data-value="linear"] i:nth-child(1),
875
+ .appearance-preview[data-property="template"][data-value="request-flow"] i:nth-child(1) { left: 4px; background: var(--preview-accent); }
876
+ .appearance-preview[data-property="template"][data-value="linear"] i:nth-child(2),
877
+ .appearance-preview[data-property="template"][data-value="request-flow"] i:nth-child(2) { left: 13px; }
878
+ .appearance-preview[data-property="template"][data-value="linear"] i:nth-child(3),
879
+ .appearance-preview[data-property="template"][data-value="request-flow"] i:nth-child(3) { left: 22px; }
880
+ .appearance-preview[data-property="template"][data-value="linear"] i:nth-child(4),
881
+ .appearance-preview[data-property="template"][data-value="request-flow"] i:nth-child(4) { right: 4px; }
882
+
883
+ .appearance-preview[data-property="template"][data-value="request-flow"]::before {
884
+ border-top-style: dashed;
885
+ }
886
+
887
+ .appearance-preview[data-property="template"][data-value="request-flow"] i:nth-child(3) {
888
+ background: var(--preview-accent);
889
+ }
890
+
891
+ .appearance-preview[data-property="template"][data-value="branching"]::before {
892
+ position: absolute;
893
+ left: 8px;
894
+ top: 6px;
895
+ width: 19px;
896
+ height: 12px;
897
+ border: solid var(--preview-ink);
898
+ border-width: 1px 1px 1px 0;
899
+ content: "";
900
+ }
901
+ .appearance-preview[data-property="template"][data-value="branching"] i:first-child { left: 4px; top: 9px; background: var(--preview-accent); }
902
+ .appearance-preview[data-property="template"][data-value="branching"] i:nth-child(2) { right: 4px; top: 4px; }
903
+ .appearance-preview[data-property="template"][data-value="branching"] i:nth-child(3) { right: 4px; bottom: 4px; }
904
+ .appearance-preview[data-property="template"][data-value="branching"] i:nth-child(4) { display: none; }
905
+
906
+ .appearance-preview[data-property="template"][data-value="cyclical"]::before {
907
+ position: absolute;
908
+ inset: 4px 8px;
909
+ border: 1px solid var(--preview-ink);
910
+ border-radius: 50%;
911
+ content: "";
912
+ }
913
+ .appearance-preview[data-property="template"][data-value="cyclical"] i:nth-child(1) { left: 5px; top: 9px; background: var(--preview-accent); }
914
+ .appearance-preview[data-property="template"][data-value="cyclical"] i:nth-child(2) { left: 15px; top: 3px; }
915
+ .appearance-preview[data-property="template"][data-value="cyclical"] i:nth-child(3) { right: 5px; top: 9px; }
916
+ .appearance-preview[data-property="template"][data-value="cyclical"] i:nth-child(4) { left: 15px; bottom: 3px; }
917
+
918
+ .appearance-preview[data-property="template"][data-value="layered"] i:nth-child(1) { left: 5px; top: 4px; background: var(--preview-accent); }
919
+ .appearance-preview[data-property="template"][data-value="layered"] i:nth-child(2) { left: 13px; top: 8px; }
920
+ .appearance-preview[data-property="template"][data-value="layered"] i:nth-child(3) { left: 21px; top: 12px; }
921
+ .appearance-preview[data-property="template"][data-value="layered"] i:nth-child(4) { left: 29px; top: 16px; }
922
+
923
+ .appearance-preview[data-property="template"][data-value="hub-and-spoke"]::before {
924
+ position: absolute;
925
+ inset: 5px 8px;
926
+ background: linear-gradient(25deg, transparent 48%, var(--preview-ink) 49% 52%, transparent 53%), linear-gradient(-25deg, transparent 48%, var(--preview-ink) 49% 52%, transparent 53%);
927
+ content: "";
928
+ }
929
+ .appearance-preview[data-property="template"][data-value="hub-and-spoke"] i:first-child { left: 15px; top: 9px; background: var(--preview-accent); }
930
+ .appearance-preview[data-property="template"][data-value="hub-and-spoke"] i:nth-child(2) { left: 4px; top: 3px; }
931
+ .appearance-preview[data-property="template"][data-value="hub-and-spoke"] i:nth-child(3) { right: 4px; top: 3px; }
932
+ .appearance-preview[data-property="template"][data-value="hub-and-spoke"] i:nth-child(4) { right: 4px; bottom: 3px; }
933
+
934
+ .appearance-preview[data-property="layout"] {
935
+ display: block;
936
+ }
937
+
938
+ .appearance-preview[data-property="layout"] i {
939
+ position: absolute;
940
+ z-index: 1;
941
+ width: 5px;
942
+ height: 5px;
943
+ border-radius: 1px;
944
+ }
945
+
946
+ .appearance-preview[data-property="layout"][data-value="linear"]::before,
947
+ .appearance-preview[data-property="layout"][data-value="request-flow"]::before {
948
+ position: absolute;
949
+ top: 11px;
950
+ right: 5px;
951
+ left: 5px;
952
+ border-top: 1px solid var(--preview-ink);
953
+ content: "";
954
+ }
955
+
956
+ .appearance-preview[data-property="layout"][data-value="request-flow"]::before {
957
+ border-top-style: dashed;
958
+ }
959
+
960
+ .appearance-preview[data-property="layout"][data-value="linear"] i,
961
+ .appearance-preview[data-property="layout"][data-value="request-flow"] i { top: 9px; }
962
+ .appearance-preview[data-property="layout"][data-value="linear"] i:nth-child(1),
963
+ .appearance-preview[data-property="layout"][data-value="request-flow"] i:nth-child(1) { left: 4px; background: var(--preview-accent); }
964
+ .appearance-preview[data-property="layout"][data-value="linear"] i:nth-child(2),
965
+ .appearance-preview[data-property="layout"][data-value="request-flow"] i:nth-child(2) { left: 13px; }
966
+ .appearance-preview[data-property="layout"][data-value="linear"] i:nth-child(3),
967
+ .appearance-preview[data-property="layout"][data-value="request-flow"] i:nth-child(3) { left: 22px; }
968
+ .appearance-preview[data-property="layout"][data-value="linear"] i:nth-child(4),
969
+ .appearance-preview[data-property="layout"][data-value="request-flow"] i:nth-child(4) { right: 4px; }
970
+
971
+ .appearance-preview[data-property="layout"][data-value="branching"]::before {
972
+ position: absolute;
973
+ left: 8px;
974
+ top: 6px;
975
+ width: 19px;
976
+ height: 12px;
977
+ border: solid var(--preview-ink);
978
+ border-width: 1px 1px 1px 0;
979
+ content: "";
980
+ }
981
+ .appearance-preview[data-property="layout"][data-value="branching"] i:first-child { left: 4px; top: 9px; background: var(--preview-accent); }
982
+ .appearance-preview[data-property="layout"][data-value="branching"] i:nth-child(2) { right: 4px; top: 4px; }
983
+ .appearance-preview[data-property="layout"][data-value="branching"] i:nth-child(3) { right: 4px; bottom: 4px; }
984
+ .appearance-preview[data-property="layout"][data-value="branching"] i:nth-child(4) { display: none; }
985
+
986
+ .appearance-preview[data-property="layout"][data-value="cyclical"]::before {
987
+ position: absolute;
988
+ inset: 4px 8px;
989
+ border: 1px solid var(--preview-ink);
990
+ border-radius: 50%;
991
+ content: "";
992
+ }
993
+ .appearance-preview[data-property="layout"][data-value="cyclical"] i:nth-child(1) { left: 5px; top: 9px; background: var(--preview-accent); }
994
+ .appearance-preview[data-property="layout"][data-value="cyclical"] i:nth-child(2) { left: 15px; top: 3px; }
995
+ .appearance-preview[data-property="layout"][data-value="cyclical"] i:nth-child(3) { right: 5px; top: 9px; }
996
+ .appearance-preview[data-property="layout"][data-value="cyclical"] i:nth-child(4) { left: 15px; bottom: 3px; }
997
+
998
+ .appearance-preview[data-property="layout"][data-value="layered"] i:nth-child(1) { left: 5px; top: 4px; background: var(--preview-accent); }
999
+ .appearance-preview[data-property="layout"][data-value="layered"] i:nth-child(2) { left: 13px; top: 8px; }
1000
+ .appearance-preview[data-property="layout"][data-value="layered"] i:nth-child(3) { left: 21px; top: 12px; }
1001
+ .appearance-preview[data-property="layout"][data-value="layered"] i:nth-child(4) { left: 29px; top: 16px; }
1002
+
1003
+ .appearance-preview[data-property="layout"][data-value="hub-and-spoke"]::before {
1004
+ position: absolute;
1005
+ inset: 5px 8px;
1006
+ background: linear-gradient(25deg, transparent 48%, var(--preview-ink) 49% 52%, transparent 53%), linear-gradient(-25deg, transparent 48%, var(--preview-ink) 49% 52%, transparent 53%);
1007
+ content: "";
1008
+ }
1009
+ .appearance-preview[data-property="layout"][data-value="hub-and-spoke"] i:first-child { left: 15px; top: 9px; background: var(--preview-accent); }
1010
+ .appearance-preview[data-property="layout"][data-value="hub-and-spoke"] i:nth-child(2) { left: 4px; top: 3px; }
1011
+ .appearance-preview[data-property="layout"][data-value="hub-and-spoke"] i:nth-child(3) { right: 4px; top: 3px; }
1012
+ .appearance-preview[data-property="layout"][data-value="hub-and-spoke"] i:nth-child(4) { right: 4px; bottom: 3px; }
1013
+
1014
+ fieldset {
1015
+ min-width: 0;
1016
+ margin: 25px 0 0;
1017
+ padding: 0;
1018
+ border: 0;
1019
+ }
1020
+
1021
+ legend {
1022
+ margin-bottom: 14px;
1023
+ padding: 0;
1024
+ font-size: 12px;
1025
+ font-weight: 500;
1026
+ }
1027
+
1028
+ .diagram-type-field {
1029
+ display: block;
1030
+ }
1031
+
1032
+ .diagram-type-field > summary {
1033
+ cursor: pointer;
1034
+ font-size: 12px;
1035
+ line-height: 1.5;
1036
+ }
1037
+
1038
+ .diagram-type-field[open] > summary {
1039
+ margin-bottom: 8px;
1040
+ }
1041
+
1042
+ .diagram-type-options {
1043
+ display: grid;
1044
+ margin-top: 8px;
1045
+ gap: 16px;
1046
+ }
1047
+
1048
+ .diagram-type-category > span {
1049
+ display: block;
1050
+ margin-bottom: 7px;
1051
+ color: var(--muted);
1052
+ font-size: 10px;
1053
+ font-weight: 600;
1054
+ letter-spacing: 0.03em;
1055
+ text-transform: uppercase;
1056
+ }
1057
+
1058
+ .diagram-type-category > div {
1059
+ display: grid;
1060
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1061
+ gap: 7px;
1062
+ }
1063
+
1064
+ .diagram-type-category button {
1065
+ display: grid;
1066
+ min-width: 0;
1067
+ min-height: 70px;
1068
+ padding: 8px;
1069
+ border: 1px solid var(--line);
1070
+ border-radius: 7px;
1071
+ background: var(--panel);
1072
+ color: var(--ink);
1073
+ place-items: center;
1074
+ }
1075
+
1076
+ .diagram-type-category button:hover {
1077
+ background: var(--ui-hover);
1078
+ }
1079
+
1080
+ .diagram-type-category button.selected {
1081
+ border-color: #86868b;
1082
+ background: #f4f4f5;
1083
+ }
1084
+
1085
+ .diagram-type-category button > span {
1086
+ overflow: hidden;
1087
+ max-width: 100%;
1088
+ font-size: 10px;
1089
+ line-height: 1.2;
1090
+ text-align: center;
1091
+ text-overflow: ellipsis;
1092
+ }
1093
+
1094
+ .diagram-type-icon {
1095
+ width: 48px;
1096
+ height: 32px;
1097
+ color: var(--muted);
1098
+ fill: none;
1099
+ stroke: currentColor;
1100
+ stroke-linecap: round;
1101
+ stroke-linejoin: round;
1102
+ stroke-width: 1.35;
1103
+ }
1104
+
1105
+ .diagram-type-category button.selected .diagram-type-icon {
1106
+ color: var(--ui-text);
1107
+ }
1108
+
1109
+ .diagram-type-icon .filled {
1110
+ fill: currentColor;
1111
+ stroke: none;
1112
+ }
1113
+
1114
+ .visualization-description {
1115
+ display: block;
1116
+ margin-top: 8px;
1117
+ color: var(--muted);
1118
+ font-size: 11px;
1119
+ line-height: 1.45;
1120
+ }
1121
+
1122
+ .geometry {
1123
+ display: grid;
1124
+ grid-template-columns: 1fr 1fr;
1125
+ gap: 0 12px;
1126
+ }
1127
+
1128
+ .geometry .field {
1129
+ margin-bottom: 12px;
1130
+ }
1131
+
1132
+ .right-panel :is(input, select, textarea) {
1133
+ border-color: transparent;
1134
+ border-radius: 6px;
1135
+ background: #f4f4f5;
1136
+ font-size: 12px;
1137
+ }
1138
+
1139
+ .right-panel :is(input, select, textarea):hover {
1140
+ border-color: #d4d4d8;
1141
+ }
1142
+
1143
+ .parameter-input {
1144
+ position: relative;
1145
+ display: block;
1146
+ }
1147
+
1148
+ .parameter-input input {
1149
+ min-height: 34px;
1150
+ padding-right: 32px;
1151
+ appearance: textfield;
1152
+ }
1153
+
1154
+ .parameter-input input::-webkit-inner-spin-button {
1155
+ appearance: none;
1156
+ }
1157
+
1158
+ .parameter-unit {
1159
+ position: absolute;
1160
+ right: 10px;
1161
+ top: 50%;
1162
+ transform: translateY(-50%);
1163
+ pointer-events: none;
1164
+ color: var(--ui-muted);
1165
+ font-size: 11px;
1166
+ }
1167
+
1168
+ @media (max-width: 1150px) {
1169
+ .inspector-content {
1170
+ padding: 20px 16px;
1171
+ }
1172
+ }