@24vlh/vds 0.1.9 → 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 (61) hide show
  1. package/dist/components/action-bar.css +111 -0
  2. package/dist/components/action-bar.min.css +1 -0
  3. package/dist/components/authoring.css +262 -42
  4. package/dist/components/authoring.min.css +1 -1
  5. package/dist/components/avatar.css +229 -0
  6. package/dist/components/avatar.min.css +1 -0
  7. package/dist/components/badge-tag.css +235 -0
  8. package/dist/components/badge-tag.min.css +1 -0
  9. package/dist/components/buttons.css +90 -98
  10. package/dist/components/buttons.min.css +1 -1
  11. package/dist/components/command.css +846 -2
  12. package/dist/components/command.min.css +1 -1
  13. package/dist/components/content-blocks.css +328 -6
  14. package/dist/components/content-blocks.min.css +1 -1
  15. package/dist/components/description-list.css +117 -0
  16. package/dist/components/description-list.min.css +1 -0
  17. package/dist/components/feedback.css +106 -4
  18. package/dist/components/feedback.min.css +1 -1
  19. package/dist/components/flows.css +60 -47
  20. package/dist/components/flows.min.css +1 -1
  21. package/dist/components/forms-advanced.css +575 -4
  22. package/dist/components/forms-advanced.min.css +1 -1
  23. package/dist/components/forms.css +244 -0
  24. package/dist/components/forms.min.css +1 -1
  25. package/dist/components/guidance.css +989 -0
  26. package/dist/components/guidance.min.css +1 -0
  27. package/dist/components/header-footer.css +178 -18
  28. package/dist/components/header-footer.min.css +1 -1
  29. package/dist/components/hero.css +148 -14
  30. package/dist/components/hero.min.css +1 -1
  31. package/dist/components/icons.css +23 -11
  32. package/dist/components/icons.min.css +1 -1
  33. package/dist/components/navigation.css +67 -7
  34. package/dist/components/navigation.min.css +1 -1
  35. package/dist/components/overlays.css +121 -19
  36. package/dist/components/overlays.min.css +1 -1
  37. package/dist/components/progress.css +322 -0
  38. package/dist/components/progress.min.css +1 -0
  39. package/dist/components/sections.css +181 -41
  40. package/dist/components/sections.min.css +1 -1
  41. package/dist/components/skeleton.css +22 -3
  42. package/dist/components/skeleton.min.css +1 -1
  43. package/dist/components/state.css +172 -0
  44. package/dist/components/state.min.css +1 -0
  45. package/dist/components/tables.css +93 -15
  46. package/dist/components/tables.min.css +1 -1
  47. package/dist/components/tabs.css +116 -4
  48. package/dist/components/tabs.min.css +1 -1
  49. package/dist/components/toasts.css +115 -41
  50. package/dist/components/toasts.min.css +1 -1
  51. package/dist/components/tooltips-popovers.css +135 -93
  52. package/dist/components/tooltips-popovers.min.css +1 -1
  53. package/dist/components/utilities.css +33 -3
  54. package/dist/components/utilities.min.css +1 -1
  55. package/dist/core.css +43 -21
  56. package/dist/core.min.css +1 -1
  57. package/dist/identity.css +107 -1
  58. package/dist/identity.min.css +1 -1
  59. package/dist/vds.css +10058 -4141
  60. package/dist/vds.min.css +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,111 @@
1
+ /************************************************************
2
+ * VLAH DESIGN SYSTEM (VDS) - Action Bar
3
+ *
4
+ * Responsibilities:
5
+ * - Provide bulk-action surfaces for tables and lists
6
+ * - Support sticky and floating layouts
7
+ * - Provide meta, count, actions, and dismiss slots
8
+ *
9
+ * System Notes:
10
+ * - Pure CSS; use buttons/links for actions
11
+ * - Token-driven spacing, shadows, and borders
12
+ ************************************************************/
13
+
14
+ /* ---------------------------------------------------------
15
+ 1. TOKENS
16
+ --------------------------------------------------------- */
17
+
18
+ [data-vds-action-bar],
19
+ .vds-action-bar {
20
+ --action-bar-bg: var(--color-surface);
21
+ --action-bar-border: var(--color-border-subtle);
22
+ --action-bar-shadow: var(--shadow-2);
23
+ --action-bar-radius: var(--radius-lg);
24
+ --action-bar-gap: var(--space-4);
25
+ --action-bar-pad-y: var(--space-4);
26
+ --action-bar-pad-x: var(--space-6);
27
+ }
28
+
29
+ /* ---------------------------------------------------------
30
+ 2. BASE BAR
31
+ --------------------------------------------------------- */
32
+
33
+ .action-bar {
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: space-between;
37
+ gap: var(--action-bar-gap);
38
+ padding: var(--action-bar-pad-y) var(--action-bar-pad-x);
39
+ border-radius: var(--action-bar-radius);
40
+ border: 1px solid var(--action-bar-border);
41
+ background: var(--action-bar-bg);
42
+ box-shadow: var(--action-bar-shadow);
43
+ }
44
+
45
+ .action-bar__meta {
46
+ display: flex;
47
+ align-items: center;
48
+ gap: var(--space-3);
49
+ font-size: var(--text-sm);
50
+ color: var(--color-text);
51
+ }
52
+
53
+ .action-bar__count {
54
+ display: inline-flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ padding: 0 var(--space-2);
58
+ height: var(--space-6);
59
+ border-radius: var(--radius-full);
60
+ background: var(--color-accent-soft);
61
+ color: var(--color-text);
62
+ font-size: var(--text-xs);
63
+ font-weight: 600;
64
+ }
65
+
66
+ .action-bar__actions {
67
+ display: flex;
68
+ align-items: center;
69
+ flex-wrap: wrap;
70
+ gap: var(--space-3);
71
+ }
72
+
73
+ .action-bar__dismiss {
74
+ margin-left: auto;
75
+ }
76
+
77
+ /* ---------------------------------------------------------
78
+ 3. VARIANTS
79
+ --------------------------------------------------------- */
80
+
81
+ .action-bar--compact {
82
+ --action-bar-pad-y: var(--space-3);
83
+ --action-bar-pad-x: var(--space-4);
84
+ --action-bar-gap: var(--space-3);
85
+ }
86
+
87
+ .action-bar--sticky {
88
+ position: sticky;
89
+ bottom: var(--space-4);
90
+ z-index: var(--z-sticky);
91
+ }
92
+
93
+ .action-bar--floating {
94
+ border-color: transparent;
95
+ box-shadow: var(--shadow-3);
96
+ }
97
+
98
+ @media (max-width: 768px) {
99
+ .action-bar {
100
+ flex-direction: column;
101
+ align-items: stretch;
102
+ }
103
+
104
+ .action-bar__meta {
105
+ justify-content: space-between;
106
+ }
107
+
108
+ .action-bar__actions {
109
+ justify-content: flex-start;
110
+ }
111
+ }
@@ -0,0 +1 @@
1
+ .vds-action-bar,[data-vds-action-bar]{--action-bar-bg:var(--color-surface);--action-bar-border:var(--color-border-subtle);--action-bar-shadow:var(--shadow-2);--action-bar-radius:var(--radius-lg);--action-bar-gap:var(--space-4);--action-bar-pad-y:var(--space-4);--action-bar-pad-x:var(--space-6)}.action-bar{background:var(--action-bar-bg);border:1px solid var(--action-bar-border);border-radius:var(--action-bar-radius);box-shadow:var(--action-bar-shadow);gap:var(--action-bar-gap);justify-content:space-between;padding:var(--action-bar-pad-y) var(--action-bar-pad-x)}.action-bar,.action-bar__meta{align-items:center;display:flex}.action-bar__meta{color:var(--color-text);font-size:var(--text-sm);gap:var(--space-3)}.action-bar__count{align-items:center;background:var(--color-accent-soft);border-radius:var(--radius-full);color:var(--color-text);display:inline-flex;font-size:var(--text-xs);font-weight:600;height:var(--space-6);justify-content:center;padding:0 var(--space-2)}.action-bar__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3)}.action-bar__dismiss{margin-left:auto}.action-bar--compact{--action-bar-pad-y:var(--space-3);--action-bar-pad-x:var(--space-4);--action-bar-gap:var(--space-3)}.action-bar--sticky{bottom:var(--space-4);position:sticky;z-index:var(--z-sticky)}.action-bar--floating{border-color:transparent;box-shadow:var(--shadow-3)}@media (max-width:768px){.action-bar{align-items:stretch;flex-direction:column}.action-bar__meta{justify-content:space-between}.action-bar__actions{justify-content:flex-start}}
@@ -24,7 +24,9 @@
24
24
  --------------------------------------------------------- */
25
25
 
26
26
  [data-vds-authoring],
27
- .vds-authoring {
27
+ .vds-authoring,
28
+ .authoring,
29
+ .doc-authoring {
28
30
  --highlight-border-width: var(--border-width-strong);
29
31
 
30
32
  --admonition-radius: var(--radius-md);
@@ -32,12 +34,19 @@
32
34
  --admonition-gap: var(--space-3);
33
35
  --admonition-pad-y: var(--space-3);
34
36
  --admonition-pad-x: var(--space-4);
37
+ --admonition-bg: var(--color-surface-subtle);
38
+ --admonition-border-color: var(--color-border-subtle);
39
+ --admonition-text: var(--color-text);
40
+ --admonition-title-color: var(--color-text);
41
+ --admonition-icon-color: var(--color-text);
42
+ --admonition-shadow: none;
35
43
 
36
44
  --footnote-size: var(--text-xs);
37
- --footnote-color: var(--footnote-color, var(--color-text-muted));
38
45
 
39
46
  --marker-bg: var(--color-muted-bg);
40
47
  --marker-border: var(--color-muted-border);
48
+ --marker-text: var(--color-text);
49
+ --marker-radius: var(--radius-sm);
41
50
  }
42
51
 
43
52
  /* ---------------------------------------------------------
@@ -53,16 +62,19 @@
53
62
  align-items: flex-start;
54
63
  gap: var(--admonition-gap);
55
64
 
65
+ border: 0;
56
66
  border-radius: var(--admonition-radius);
57
- border-left: var(--admonition-border) solid var(--color-border-subtle);
58
- background-color: var(--color-surface-subtle);
59
- color: var(--color-text);
67
+ border-left: var(--admonition-border) solid var(--admonition-border-color);
68
+ background-color: var(--admonition-bg);
69
+ color: var(--admonition-text);
70
+ box-shadow: var(--admonition-shadow);
60
71
  }
61
72
 
62
73
  .admonition__icon {
63
74
  flex-shrink: 0;
64
75
  margin-top: 0.15em;
65
76
  font-size: var(--text-lg);
77
+ color: var(--admonition-icon-color);
66
78
  opacity: 0.85;
67
79
  }
68
80
 
@@ -77,6 +89,7 @@
77
89
  text-transform: uppercase;
78
90
  letter-spacing: 0.06em;
79
91
  margin-bottom: var(--space-1);
92
+ color: var(--admonition-title-color);
80
93
  }
81
94
 
82
95
  .admonition__body {
@@ -84,48 +97,145 @@
84
97
  line-height: var(--line-height-relaxed);
85
98
  }
86
99
 
100
+ .admonition__meta {
101
+ font-size: var(--text-xs);
102
+ opacity: 0.8;
103
+ margin-top: var(--space-1);
104
+ }
105
+
106
+ .admonition__footer {
107
+ display: flex;
108
+ flex-wrap: wrap;
109
+ align-items: center;
110
+ gap: var(--space-2);
111
+ margin-top: var(--space-2);
112
+ font-size: var(--text-xs);
113
+ opacity: 0.85;
114
+ }
115
+
116
+ .admonition__actions {
117
+ display: inline-flex;
118
+ flex-wrap: wrap;
119
+ align-items: center;
120
+ gap: var(--space-2);
121
+ }
122
+
123
+ .admonition__list {
124
+ list-style: none;
125
+ margin: 0;
126
+ padding: 0;
127
+ display: grid;
128
+ grid-gap: var(--space-1);
129
+ gap: var(--space-1);
130
+ }
131
+
132
+ .admonition__list li {
133
+ position: relative;
134
+ padding-left: var(--space-4);
135
+ }
136
+
137
+ .admonition__list li::before {
138
+ content: "";
139
+ position: absolute;
140
+ width: 0.4rem;
141
+ height: 0.4rem;
142
+ border-radius: 999px;
143
+ background-color: var(--admonition-border-color);
144
+ left: 0;
145
+ top: 0.35rem;
146
+ }
147
+
87
148
  .admonition--compact {
88
149
  padding-top: var(--space-2);
89
150
  padding-bottom: var(--space-2);
90
151
  padding-left: var(--space-3);
91
152
  padding-right: var(--space-3);
153
+ gap: var(--space-2);
92
154
  }
93
155
 
94
156
  /* ---------------------------------------------------------
95
157
  2.1 ADMONITION VARIANTS
96
158
  --------------------------------------------------------- */
97
159
 
160
+ :where(.admonition)[data-variant="info"],
98
161
  .admonition--note,
99
162
  .admonition--info {
100
- background-color: var(--semantic-info-bg);
101
- border-color: var(--semantic-info-border);
102
- color: var(--semantic-info-text);
163
+ --admonition-bg: var(--semantic-info-bg);
164
+ --admonition-border-color: var(--semantic-info-border);
165
+ --admonition-text: var(--semantic-info-text);
166
+ --admonition-title-color: var(--semantic-info-text);
167
+ --admonition-icon-color: var(--semantic-info-text);
103
168
  }
104
169
 
170
+ :where(.admonition)[data-variant="success"],
105
171
  .admonition--tip,
106
172
  .admonition--success {
107
- background-color: var(--semantic-success-bg);
108
- border-color: var(--semantic-success-border);
109
- color: var(--semantic-success-text);
173
+ --admonition-bg: var(--semantic-success-bg);
174
+ --admonition-border-color: var(--semantic-success-border);
175
+ --admonition-text: var(--semantic-success-text);
176
+ --admonition-title-color: var(--semantic-success-text);
177
+ --admonition-icon-color: var(--semantic-success-text);
110
178
  }
111
179
 
180
+ :where(.admonition)[data-variant="warning"],
112
181
  .admonition--warning {
113
- background-color: var(--semantic-warning-bg);
114
- border-color: var(--semantic-warning-border);
115
- color: var(--semantic-warning-text);
182
+ --admonition-bg: var(--semantic-warning-bg);
183
+ --admonition-border-color: var(--semantic-warning-border);
184
+ --admonition-text: var(--semantic-warning-text);
185
+ --admonition-title-color: var(--semantic-warning-text);
186
+ --admonition-icon-color: var(--semantic-warning-text);
116
187
  }
117
188
 
189
+ :where(.admonition)[data-variant="danger"],
118
190
  .admonition--danger,
119
191
  .admonition--important {
120
- background-color: var(--semantic-danger-bg);
121
- border-color: var(--semantic-danger-border);
122
- color: var(--semantic-danger-text);
192
+ --admonition-bg: var(--semantic-danger-bg);
193
+ --admonition-border-color: var(--semantic-danger-border);
194
+ --admonition-text: var(--semantic-danger-text);
195
+ --admonition-title-color: var(--semantic-danger-text);
196
+ --admonition-icon-color: var(--semantic-danger-text);
197
+ }
198
+
199
+ :where(.admonition)[data-variant="accent"],
200
+ .admonition--accent {
201
+ --admonition-bg: var(--accent-soft-surface, var(--color-accent-soft));
202
+ --admonition-border-color: var(--accent-soft-border, var(--color-accent));
203
+ --admonition-text: var(--accent-soft-on, var(--color-on-accent));
204
+ --admonition-title-color: var(--accent-soft-on, var(--color-on-accent));
205
+ --admonition-icon-color: var(--accent-soft-on, var(--color-on-accent));
206
+ }
207
+
208
+ :where(.admonition)[data-variant="neutral"],
209
+ .admonition--neutral {
210
+ --admonition-bg: var(--color-surface-subtle);
211
+ --admonition-border-color: var(--color-border-strong);
212
+ --admonition-text: var(--color-text);
213
+ --admonition-title-color: var(--color-text);
214
+ --admonition-icon-color: var(--color-text-muted);
215
+ }
216
+
217
+ .admonition--bordered {
218
+ border: var(--admonition-border) solid var(--admonition-border-color);
219
+ border-left-width: var(--admonition-border);
220
+ }
221
+
222
+ .admonition--outline {
223
+ border: var(--admonition-border) solid var(--admonition-border-color);
224
+ border-left-width: var(--admonition-border);
225
+ background-color: transparent;
226
+ }
227
+
228
+ .admonition--plain {
229
+ border: 0;
230
+ background-color: transparent;
231
+ padding: 0;
123
232
  }
124
233
 
125
234
  /* ---------------------------------------------------------
126
235
  3. MDX / MARKDOWN CALLOUTS
127
236
  --------------------------------------------------------- */
128
237
 
238
+ .md-callout,
129
239
  .md-note,
130
240
  .md-info,
131
241
  .md-tip,
@@ -138,31 +248,74 @@
138
248
  padding: var(--space-3) var(--space-4);
139
249
  border-radius: var(--radius-md);
140
250
  border-left: var(--highlight-border-width) solid currentColor;
251
+ border-left: var(--highlight-border-width) solid var(--callout-border-color, currentColor);
252
+ background-color: var(--callout-bg, var(--color-surface-subtle));
253
+ color: var(--callout-text, var(--color-text));
141
254
  font-size: var(--text-sm);
142
255
  line-height: var(--line-height-relaxed);
143
256
  }
144
257
 
258
+ .md-callout[data-variant="info"] {
259
+ --callout-bg: var(--semantic-info-bg);
260
+ --callout-border-color: var(--semantic-info-border);
261
+ --callout-text: var(--semantic-info-text);
262
+ }
263
+
264
+ .md-callout[data-variant="success"] {
265
+ --callout-bg: var(--semantic-success-bg);
266
+ --callout-border-color: var(--semantic-success-border);
267
+ --callout-text: var(--semantic-success-text);
268
+ }
269
+
270
+ .md-callout[data-variant="warning"] {
271
+ --callout-bg: var(--semantic-warning-bg);
272
+ --callout-border-color: var(--semantic-warning-border);
273
+ --callout-text: var(--semantic-warning-text);
274
+ }
275
+
276
+ .md-callout[data-variant="danger"] {
277
+ --callout-bg: var(--semantic-danger-bg);
278
+ --callout-border-color: var(--semantic-danger-border);
279
+ --callout-text: var(--semantic-danger-text);
280
+ }
281
+
282
+ .md-callout[data-variant="accent"] {
283
+ --callout-bg: var(--accent-soft-surface, var(--color-accent-soft));
284
+ --callout-border-color: var(--accent-soft-border, var(--color-accent));
285
+ --callout-text: var(--accent-soft-on, var(--color-on-accent));
286
+ }
287
+
288
+ .md-callout[data-variant="neutral"] {
289
+ --callout-bg: var(--color-surface-subtle);
290
+ --callout-border-color: var(--color-border-strong);
291
+ --callout-text: var(--color-text);
292
+ }
293
+
145
294
  .md-note,
146
295
  .md-info {
147
- background-color: var(--semantic-info-bg);
148
- color: var(--semantic-info-text);
296
+ --callout-bg: var(--semantic-info-bg);
297
+ --callout-border-color: var(--semantic-info-border);
298
+ --callout-text: var(--semantic-info-text);
149
299
  }
150
300
 
151
301
  .md-tip,
152
302
  .md-success {
153
- background-color: var(--semantic-success-bg);
154
- color: var(--semantic-success-text);
303
+ --callout-bg: var(--semantic-success-bg);
304
+ --callout-border-color: var(--semantic-success-border);
305
+ --callout-text: var(--semantic-success-text);
155
306
  }
156
307
 
157
308
  .md-warning {
158
- background-color: var(--semantic-warning-bg);
159
- color: var(--semantic-warning-text);
309
+ --callout-bg: var(--semantic-warning-bg);
310
+ --callout-border-color: var(--semantic-warning-border);
311
+ --callout-text: var(--semantic-warning-text);
160
312
  }
161
313
 
162
314
  .md-danger,
163
315
  .md-important {
164
- background-color: var(--semantic-danger-bg);
165
- color: var(--semantic-danger-text);
316
+ --callout-bg: var(--semantic-danger-bg);
317
+ --callout-border-color: var(--semantic-danger-border);
318
+ --callout-text: var(--semantic-danger-text);
166
319
  }
167
320
 
168
321
  /* ---------------------------------------------------------
@@ -198,6 +351,16 @@ h6:focus-within .heading-anchor {
198
351
  opacity: 1;
199
352
  }
200
353
 
354
+ .heading-anchor--always {
355
+ opacity: 1;
356
+ }
357
+
358
+ @media (hover: none) {
359
+ .heading-anchor {
360
+ opacity: 1;
361
+ }
362
+ }
363
+
201
364
  /* ---------------------------------------------------------
202
365
  5. FOOTNOTES
203
366
  --------------------------------------------------------- */
@@ -205,7 +368,7 @@ h6:focus-within .heading-anchor {
205
368
  .fn-ref {
206
369
  font-size: var(--footnote-size);
207
370
  vertical-align: super;
208
- color: var(--footnote-color);
371
+ color: var(--footnote-color, var(--color-text-muted));
209
372
  -webkit-text-decoration: none;
210
373
  text-decoration: none;
211
374
  margin-left: 0.15em;
@@ -219,7 +382,7 @@ h6:focus-within .heading-anchor {
219
382
  font-size: var(--footnote-size);
220
383
  -webkit-text-decoration: none;
221
384
  text-decoration: none;
222
- color: var(--footnote-color);
385
+ color: var(--footnote-color, var(--color-text-muted));
223
386
  }
224
387
 
225
388
  .footnotes {
@@ -244,36 +407,62 @@ h6:focus-within .heading-anchor {
244
407
  .inline-marker {
245
408
  display: inline-block;
246
409
  padding: 0 var(--space-1_5);
247
- border-radius: var(--radius-sm);
410
+ border-radius: var(--marker-radius);
248
411
  background: var(--marker-bg);
249
412
  border: 1px solid var(--marker-border);
250
413
  font-size: var(--text-xs);
251
414
  line-height: 1.3;
252
- color: var(--color-text);
415
+ color: var(--marker-text);
253
416
  }
254
417
 
418
+ :where(.inline-marker)[data-variant="info"],
255
419
  .inline-marker--info {
256
- background: var(--semantic-info-bg);
257
- border-color: var(--semantic-info-border);
258
- color: var(--semantic-info-text);
420
+ --marker-bg: var(--semantic-info-bg);
421
+ --marker-border: var(--semantic-info-border);
422
+ --marker-text: var(--semantic-info-text);
259
423
  }
260
424
 
425
+ :where(.inline-marker)[data-variant="success"],
261
426
  .inline-marker--success {
262
- background: var(--semantic-success-bg);
263
- border-color: var(--semantic-success-border);
264
- color: var(--semantic-success-text);
427
+ --marker-bg: var(--semantic-success-bg);
428
+ --marker-border: var(--semantic-success-border);
429
+ --marker-text: var(--semantic-success-text);
265
430
  }
266
431
 
432
+ :where(.inline-marker)[data-variant="warning"],
267
433
  .inline-marker--warning {
268
- background: var(--semantic-warning-bg);
269
- border-color: var(--semantic-warning-border);
270
- color: var(--semantic-warning-text);
434
+ --marker-bg: var(--semantic-warning-bg);
435
+ --marker-border: var(--semantic-warning-border);
436
+ --marker-text: var(--semantic-warning-text);
271
437
  }
272
438
 
439
+ :where(.inline-marker)[data-variant="danger"],
273
440
  .inline-marker--danger {
274
- background: var(--semantic-danger-bg);
275
- border-color: var(--semantic-danger-border);
276
- color: var(--semantic-danger-text);
441
+ --marker-bg: var(--semantic-danger-bg);
442
+ --marker-border: var(--semantic-danger-border);
443
+ --marker-text: var(--semantic-danger-text);
444
+ }
445
+
446
+ :where(.inline-marker)[data-variant="accent"],
447
+ .inline-marker--accent {
448
+ --marker-bg: var(--accent-soft-surface, var(--color-accent-soft));
449
+ --marker-border: var(--accent-soft-border, var(--color-accent));
450
+ --marker-text: var(--accent-soft-on, var(--color-on-accent));
451
+ }
452
+
453
+ :where(.inline-marker)[data-variant="neutral"],
454
+ .inline-marker--neutral {
455
+ --marker-bg: var(--color-surface-subtle);
456
+ --marker-border: var(--color-border-strong);
457
+ --marker-text: var(--color-text);
458
+ }
459
+
460
+ .inline-marker--outline {
461
+ background: transparent;
462
+ }
463
+
464
+ .inline-marker--pill {
465
+ --marker-radius: var(--radius-pill);
277
466
  }
278
467
 
279
468
  /* ---------------------------------------------------------
@@ -305,10 +494,40 @@ h6:focus-within .heading-anchor {
305
494
  gap: var(--space-6);
306
495
  }
307
496
 
497
+ .prose-grid-3 {
498
+ display: grid;
499
+ grid-template-columns: repeat(3, 1fr);
500
+ grid-gap: var(--space-6);
501
+ gap: var(--space-6);
502
+ }
503
+
504
+ .prose-grid-1-2 {
505
+ display: grid;
506
+ grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
507
+ grid-gap: var(--space-6);
508
+ gap: var(--space-6);
509
+ }
510
+
511
+ .prose-grid-2-1 {
512
+ display: grid;
513
+ grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
514
+ grid-gap: var(--space-6);
515
+ gap: var(--space-6);
516
+ }
517
+
308
518
  @media (max-width: 1024px) {
309
519
  .prose-grid-2 {
310
520
  grid-template-columns: 1fr;
311
521
  }
522
+
523
+ .prose-grid-3 {
524
+ grid-template-columns: 1fr;
525
+ }
526
+
527
+ .prose-grid-1-2,
528
+ .prose-grid-2-1 {
529
+ grid-template-columns: 1fr;
530
+ }
312
531
  }
313
532
 
314
533
  /* ---------------------------------------------------------
@@ -326,7 +545,8 @@ h6:focus-within .heading-anchor {
326
545
  .doc-block__body .md-success,
327
546
  .doc-block__body .md-warning,
328
547
  .doc-block__body .md-danger,
329
- .doc-block__body .md-important {
548
+ .doc-block__body .md-important,
549
+ .doc-block__body .md-callout {
330
550
  margin-top: var(--space-3);
331
551
  margin-bottom: var(--space-3);
332
552
  }
@@ -1 +1 @@
1
- .vds-authoring,[data-vds-authoring]{--highlight-border-width:var(--border-width-strong);--admonition-radius:var(--radius-md);--admonition-border:var(--highlight-border-width);--admonition-gap:var(--space-3);--admonition-pad-y:var(--space-3);--admonition-pad-x:var(--space-4);--footnote-size:var(--text-xs);--footnote-color:var(--footnote-color,var(--color-text-muted));--marker-bg:var(--color-muted-bg);--marker-border:var(--color-muted-border)}.admonition{align-items:flex-start;background-color:var(--color-surface-subtle);border-left:var(--admonition-border) solid var(--color-border-subtle);border-radius:var(--admonition-radius);color:var(--color-text);display:flex;gap:var(--admonition-gap);margin-bottom:var(--space-4);margin-top:var(--space-4);padding:var(--admonition-pad-y) var(--admonition-pad-x)}.admonition__icon{flex-shrink:0;font-size:var(--text-lg);margin-top:.15em;opacity:.85}.admonition__content{flex:1 1 auto;min-width:0}.admonition__title{font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;margin-bottom:var(--space-1);text-transform:uppercase}.admonition__body{font-size:var(--text-sm);line-height:var(--line-height-relaxed)}.admonition--compact{padding:var(--space-2) var(--space-3)}.admonition--info,.admonition--note{background-color:var(--semantic-info-bg);border-color:var(--semantic-info-border);color:var(--semantic-info-text)}.admonition--success,.admonition--tip{background-color:var(--semantic-success-bg);border-color:var(--semantic-success-border);color:var(--semantic-success-text)}.admonition--warning{background-color:var(--semantic-warning-bg);border-color:var(--semantic-warning-border);color:var(--semantic-warning-text)}.admonition--danger,.admonition--important{background-color:var(--semantic-danger-bg);border-color:var(--semantic-danger-border);color:var(--semantic-danger-text)}.md-danger,.md-important,.md-info,.md-note,.md-success,.md-tip,.md-warning{border-left:var(--highlight-border-width) solid;border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--line-height-relaxed);margin-bottom:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4)}.md-info,.md-note{background-color:var(--semantic-info-bg);color:var(--semantic-info-text)}.md-success,.md-tip{background-color:var(--semantic-success-bg);color:var(--semantic-success-text)}.md-warning{background-color:var(--semantic-warning-bg);color:var(--semantic-warning-text)}.md-danger,.md-important{background-color:var(--semantic-danger-bg);color:var(--semantic-danger-text)}.heading-anchor{color:var(--color-text-soft);font-size:.8em;margin-left:var(--space-1);opacity:0;-webkit-text-decoration:none;text-decoration:none;transition:opacity var(--transition-fast)}.heading-anchor:hover{color:var(--link-text-hover)}h1:focus-within .heading-anchor,h1:hover .heading-anchor,h2:focus-within .heading-anchor,h2:hover .heading-anchor,h3:focus-within .heading-anchor,h3:hover .heading-anchor,h4:focus-within .heading-anchor,h4:hover .heading-anchor,h5:focus-within .heading-anchor,h5:hover .heading-anchor,h6:focus-within .heading-anchor,h6:hover .heading-anchor{opacity:1}.fn-ref{color:var(--footnote-color);font-size:var(--footnote-size);margin-left:.15em;-webkit-text-decoration:none;text-decoration:none;vertical-align:super}.fn-ref:hover{color:var(--link-text-hover)}.fn-back{color:var(--footnote-color);-webkit-text-decoration:none;text-decoration:none}.fn-back,.footnotes{font-size:var(--footnote-size)}.footnotes{border-top:1px solid var(--color-border-subtle);margin-top:var(--space-8);padding-top:var(--space-6)}.footnotes ol{padding-left:var(--space-6)}.footnotes li{margin-bottom:var(--space-3)}.inline-marker{background:var(--marker-bg);border:1px solid var(--marker-border);border-radius:var(--radius-sm);color:var(--color-text);display:inline-block;font-size:var(--text-xs);line-height:1.3;padding:0 var(--space-1_5)}.inline-marker--info{background:var(--semantic-info-bg);border-color:var(--semantic-info-border);color:var(--semantic-info-text)}.inline-marker--success{background:var(--semantic-success-bg);border-color:var(--semantic-success-border);color:var(--semantic-success-text)}.inline-marker--warning{background:var(--semantic-warning-bg);border-color:var(--semantic-warning-border);color:var(--semantic-warning-text)}.inline-marker--danger{background:var(--semantic-danger-bg);border-color:var(--semantic-danger-border);color:var(--semantic-danger-text)}.prose-lead{color:var(--color-text);font-size:var(--text-md);line-height:var(--line-height-relaxed)}.prose-muted{color:var(--color-text-muted)}.prose-tight>*+*{margin-top:var(--space-2)}.prose-relaxed>*+*{margin-top:var(--space-6)}.prose-grid-2{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(2,1fr)}@media (max-width:1024px){.prose-grid-2{grid-template-columns:1fr}}.doc-block__body .admonition,.doc-block__body .md-danger,.doc-block__body .md-important,.doc-block__body .md-info,.doc-block__body .md-note,.doc-block__body .md-success,.doc-block__body .md-tip,.doc-block__body .md-warning{margin-bottom:var(--space-3);margin-top:var(--space-3)}
1
+ .authoring,.doc-authoring,.vds-authoring,[data-vds-authoring]{--highlight-border-width:var(--border-width-strong);--admonition-radius:var(--radius-md);--admonition-border:var(--highlight-border-width);--admonition-gap:var(--space-3);--admonition-pad-y:var(--space-3);--admonition-pad-x:var(--space-4);--admonition-bg:var(--color-surface-subtle);--admonition-border-color:var(--color-border-subtle);--admonition-text:var(--color-text);--admonition-title-color:var(--color-text);--admonition-icon-color:var(--color-text);--admonition-shadow:none;--footnote-size:var(--text-xs);--marker-bg:var(--color-muted-bg);--marker-border:var(--color-muted-border);--marker-text:var(--color-text);--marker-radius:var(--radius-sm)}.admonition{align-items:flex-start;background-color:var(--admonition-bg);border:0;border-left:var(--admonition-border) solid var(--admonition-border-color);border-radius:var(--admonition-radius);box-shadow:var(--admonition-shadow);color:var(--admonition-text);display:flex;gap:var(--admonition-gap);margin-bottom:var(--space-4);margin-top:var(--space-4);padding:var(--admonition-pad-y) var(--admonition-pad-x)}.admonition__icon{color:var(--admonition-icon-color);flex-shrink:0;font-size:var(--text-lg);margin-top:.15em;opacity:.85}.admonition__content{flex:1 1 auto;min-width:0}.admonition__title{color:var(--admonition-title-color);font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;margin-bottom:var(--space-1);text-transform:uppercase}.admonition__body{font-size:var(--text-sm);line-height:var(--line-height-relaxed)}.admonition__meta{font-size:var(--text-xs);margin-top:var(--space-1);opacity:.8}.admonition__footer{display:flex;font-size:var(--text-xs);margin-top:var(--space-2);opacity:.85}.admonition__actions,.admonition__footer{align-items:center;flex-wrap:wrap;gap:var(--space-2)}.admonition__actions{display:inline-flex}.admonition__list{grid-gap:var(--space-1);display:grid;gap:var(--space-1);list-style:none;margin:0;padding:0}.admonition__list li{padding-left:var(--space-4);position:relative}.admonition__list li:before{background-color:var(--admonition-border-color);border-radius:999px;content:"";height:.4rem;left:0;position:absolute;top:.35rem;width:.4rem}.admonition--compact{gap:var(--space-2);padding:var(--space-2) var(--space-3)}.admonition--info,.admonition--note,:where(.admonition)[data-variant=info]{--admonition-bg:var(--semantic-info-bg);--admonition-border-color:var(--semantic-info-border);--admonition-text:var(--semantic-info-text);--admonition-title-color:var(--semantic-info-text);--admonition-icon-color:var(--semantic-info-text)}.admonition--success,.admonition--tip,:where(.admonition)[data-variant=success]{--admonition-bg:var(--semantic-success-bg);--admonition-border-color:var(--semantic-success-border);--admonition-text:var(--semantic-success-text);--admonition-title-color:var(--semantic-success-text);--admonition-icon-color:var(--semantic-success-text)}.admonition--warning,:where(.admonition)[data-variant=warning]{--admonition-bg:var(--semantic-warning-bg);--admonition-border-color:var(--semantic-warning-border);--admonition-text:var(--semantic-warning-text);--admonition-title-color:var(--semantic-warning-text);--admonition-icon-color:var(--semantic-warning-text)}.admonition--danger,.admonition--important,:where(.admonition)[data-variant=danger]{--admonition-bg:var(--semantic-danger-bg);--admonition-border-color:var(--semantic-danger-border);--admonition-text:var(--semantic-danger-text);--admonition-title-color:var(--semantic-danger-text);--admonition-icon-color:var(--semantic-danger-text)}.admonition--accent,:where(.admonition)[data-variant=accent]{--admonition-bg:var(--accent-soft-surface,var(--color-accent-soft));--admonition-border-color:var(--accent-soft-border,var(--color-accent));--admonition-text:var(--accent-soft-on,var(--color-on-accent));--admonition-title-color:var(--accent-soft-on,var(--color-on-accent));--admonition-icon-color:var(--accent-soft-on,var(--color-on-accent))}.admonition--neutral,:where(.admonition)[data-variant=neutral]{--admonition-bg:var(--color-surface-subtle);--admonition-border-color:var(--color-border-strong);--admonition-text:var(--color-text);--admonition-title-color:var(--color-text);--admonition-icon-color:var(--color-text-muted)}.admonition--bordered,.admonition--outline{border:var(--admonition-border) solid var(--admonition-border-color);border-left-width:var(--admonition-border)}.admonition--outline,.admonition--plain{background-color:transparent}.admonition--plain{border:0;padding:0}.md-callout,.md-danger,.md-important,.md-info,.md-note,.md-success,.md-tip,.md-warning{background-color:var(--callout-bg,var(--color-surface-subtle));border-left:var(--highlight-border-width) solid var(--callout-border-color,currentColor);border-radius:var(--radius-md);color:var(--callout-text,var(--color-text));font-size:var(--text-sm);line-height:var(--line-height-relaxed);margin-bottom:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4)}.md-callout[data-variant=info]{--callout-bg:var(--semantic-info-bg);--callout-border-color:var(--semantic-info-border);--callout-text:var(--semantic-info-text)}.md-callout[data-variant=success]{--callout-bg:var(--semantic-success-bg);--callout-border-color:var(--semantic-success-border);--callout-text:var(--semantic-success-text)}.md-callout[data-variant=warning]{--callout-bg:var(--semantic-warning-bg);--callout-border-color:var(--semantic-warning-border);--callout-text:var(--semantic-warning-text)}.md-callout[data-variant=danger]{--callout-bg:var(--semantic-danger-bg);--callout-border-color:var(--semantic-danger-border);--callout-text:var(--semantic-danger-text)}.md-callout[data-variant=accent]{--callout-bg:var(--accent-soft-surface,var(--color-accent-soft));--callout-border-color:var(--accent-soft-border,var(--color-accent));--callout-text:var(--accent-soft-on,var(--color-on-accent))}.md-callout[data-variant=neutral]{--callout-bg:var(--color-surface-subtle);--callout-border-color:var(--color-border-strong);--callout-text:var(--color-text)}.md-info,.md-note{--callout-bg:var(--semantic-info-bg);--callout-border-color:var(--semantic-info-border);--callout-text:var(--semantic-info-text)}.md-success,.md-tip{--callout-bg:var(--semantic-success-bg);--callout-border-color:var(--semantic-success-border);--callout-text:var(--semantic-success-text)}.md-warning{--callout-bg:var(--semantic-warning-bg);--callout-border-color:var(--semantic-warning-border);--callout-text:var(--semantic-warning-text)}.md-danger,.md-important{--callout-bg:var(--semantic-danger-bg);--callout-border-color:var(--semantic-danger-border);--callout-text:var(--semantic-danger-text)}.heading-anchor{color:var(--color-text-soft);font-size:.8em;margin-left:var(--space-1);opacity:0;-webkit-text-decoration:none;text-decoration:none;transition:opacity var(--transition-fast)}.heading-anchor:hover{color:var(--link-text-hover)}h1:focus-within .heading-anchor,h1:hover .heading-anchor,h2:focus-within .heading-anchor,h2:hover .heading-anchor,h3:focus-within .heading-anchor,h3:hover .heading-anchor,h4:focus-within .heading-anchor,h4:hover .heading-anchor,h5:focus-within .heading-anchor,h5:hover .heading-anchor,h6:focus-within .heading-anchor,h6:hover .heading-anchor{opacity:1}.heading-anchor--always{opacity:1}@media (hover:none){.heading-anchor{opacity:1}}.fn-ref{color:var(--footnote-color,var(--color-text-muted));font-size:var(--footnote-size);margin-left:.15em;-webkit-text-decoration:none;text-decoration:none;vertical-align:super}.fn-ref:hover{color:var(--link-text-hover)}.fn-back{color:var(--footnote-color,var(--color-text-muted));-webkit-text-decoration:none;text-decoration:none}.fn-back,.footnotes{font-size:var(--footnote-size)}.footnotes{border-top:1px solid var(--color-border-subtle);margin-top:var(--space-8);padding-top:var(--space-6)}.footnotes ol{padding-left:var(--space-6)}.footnotes li{margin-bottom:var(--space-3)}.inline-marker{background:var(--marker-bg);border:1px solid var(--marker-border);border-radius:var(--marker-radius);color:var(--marker-text);display:inline-block;font-size:var(--text-xs);line-height:1.3;padding:0 var(--space-1_5)}.inline-marker--info,:where(.inline-marker)[data-variant=info]{--marker-bg:var(--semantic-info-bg);--marker-border:var(--semantic-info-border);--marker-text:var(--semantic-info-text)}.inline-marker--success,:where(.inline-marker)[data-variant=success]{--marker-bg:var(--semantic-success-bg);--marker-border:var(--semantic-success-border);--marker-text:var(--semantic-success-text)}.inline-marker--warning,:where(.inline-marker)[data-variant=warning]{--marker-bg:var(--semantic-warning-bg);--marker-border:var(--semantic-warning-border);--marker-text:var(--semantic-warning-text)}.inline-marker--danger,:where(.inline-marker)[data-variant=danger]{--marker-bg:var(--semantic-danger-bg);--marker-border:var(--semantic-danger-border);--marker-text:var(--semantic-danger-text)}.inline-marker--accent,:where(.inline-marker)[data-variant=accent]{--marker-bg:var(--accent-soft-surface,var(--color-accent-soft));--marker-border:var(--accent-soft-border,var(--color-accent));--marker-text:var(--accent-soft-on,var(--color-on-accent))}.inline-marker--neutral,:where(.inline-marker)[data-variant=neutral]{--marker-bg:var(--color-surface-subtle);--marker-border:var(--color-border-strong);--marker-text:var(--color-text)}.inline-marker--outline{background:transparent}.inline-marker--pill{--marker-radius:var(--radius-pill)}.prose-lead{color:var(--color-text);font-size:var(--text-md);line-height:var(--line-height-relaxed)}.prose-muted{color:var(--color-text-muted)}.prose-tight>*+*{margin-top:var(--space-2)}.prose-relaxed>*+*{margin-top:var(--space-6)}.prose-grid-2{grid-gap:var(--space-6);grid-template-columns:repeat(2,1fr)}.prose-grid-2,.prose-grid-3{display:grid;gap:var(--space-6)}.prose-grid-3{grid-gap:var(--space-6);grid-template-columns:repeat(3,1fr)}.prose-grid-1-2{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.prose-grid-2-1{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media (max-width:1024px){.prose-grid-1-2,.prose-grid-2,.prose-grid-2-1,.prose-grid-3{grid-template-columns:1fr}}.doc-block__body .admonition,.doc-block__body .md-callout,.doc-block__body .md-danger,.doc-block__body .md-important,.doc-block__body .md-info,.doc-block__body .md-note,.doc-block__body .md-success,.doc-block__body .md-tip,.doc-block__body .md-warning{margin-bottom:var(--space-3);margin-top:var(--space-3)}