@ponchia/ui 0.5.0 → 0.6.3

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 (196) hide show
  1. package/CHANGELOG.md +386 -4
  2. package/MIGRATIONS.json +14 -0
  3. package/README.md +29 -6
  4. package/annotations/index.d.ts +398 -276
  5. package/annotations/index.d.ts.map +1 -0
  6. package/annotations/index.js +350 -77
  7. package/behaviors/carousel.d.ts +28 -0
  8. package/behaviors/carousel.d.ts.map +1 -0
  9. package/behaviors/carousel.js +20 -16
  10. package/behaviors/combobox.d.ts +40 -0
  11. package/behaviors/combobox.d.ts.map +1 -0
  12. package/behaviors/combobox.js +111 -29
  13. package/behaviors/command.d.ts +41 -0
  14. package/behaviors/command.d.ts.map +1 -0
  15. package/behaviors/command.js +27 -15
  16. package/behaviors/connectors.d.ts +17 -0
  17. package/behaviors/connectors.d.ts.map +1 -0
  18. package/behaviors/connectors.js +7 -5
  19. package/behaviors/crosshair.d.ts +42 -0
  20. package/behaviors/crosshair.d.ts.map +1 -0
  21. package/behaviors/crosshair.js +23 -6
  22. package/behaviors/dialog.d.ts +20 -0
  23. package/behaviors/dialog.d.ts.map +1 -0
  24. package/behaviors/dialog.js +6 -2
  25. package/behaviors/disclosure.d.ts +10 -0
  26. package/behaviors/disclosure.d.ts.map +1 -0
  27. package/behaviors/disclosure.js +6 -2
  28. package/behaviors/dismissible.d.ts +10 -0
  29. package/behaviors/dismissible.d.ts.map +1 -0
  30. package/behaviors/dismissible.js +6 -2
  31. package/behaviors/forms.d.ts +27 -0
  32. package/behaviors/forms.d.ts.map +1 -0
  33. package/behaviors/forms.js +54 -13
  34. package/behaviors/glyph.d.ts +14 -0
  35. package/behaviors/glyph.d.ts.map +1 -0
  36. package/behaviors/glyph.js +28 -5
  37. package/behaviors/index.d.ts +31 -237
  38. package/behaviors/index.d.ts.map +1 -0
  39. package/behaviors/index.js +17 -0
  40. package/behaviors/inert.d.ts +20 -0
  41. package/behaviors/inert.d.ts.map +1 -0
  42. package/behaviors/inert.js +46 -0
  43. package/behaviors/internal.d.ts +25 -0
  44. package/behaviors/internal.d.ts.map +1 -0
  45. package/behaviors/internal.js +77 -1
  46. package/behaviors/legend.d.ts +35 -0
  47. package/behaviors/legend.d.ts.map +1 -0
  48. package/behaviors/legend.js +32 -2
  49. package/behaviors/menu.d.ts +16 -0
  50. package/behaviors/menu.d.ts.map +1 -0
  51. package/behaviors/menu.js +6 -2
  52. package/behaviors/modal.d.ts +41 -0
  53. package/behaviors/modal.d.ts.map +1 -0
  54. package/behaviors/modal.js +124 -0
  55. package/behaviors/popover.d.ts +28 -0
  56. package/behaviors/popover.d.ts.map +1 -0
  57. package/behaviors/popover.js +78 -7
  58. package/behaviors/spotlight.d.ts +17 -0
  59. package/behaviors/spotlight.d.ts.map +1 -0
  60. package/behaviors/spotlight.js +7 -5
  61. package/behaviors/table.d.ts +36 -0
  62. package/behaviors/table.d.ts.map +1 -0
  63. package/behaviors/table.js +84 -17
  64. package/behaviors/tabs.d.ts +20 -0
  65. package/behaviors/tabs.d.ts.map +1 -0
  66. package/behaviors/tabs.js +17 -14
  67. package/behaviors/theme.d.ts +54 -0
  68. package/behaviors/theme.d.ts.map +1 -0
  69. package/behaviors/theme.js +22 -3
  70. package/behaviors/toast.d.ts +49 -0
  71. package/behaviors/toast.d.ts.map +1 -0
  72. package/behaviors/toast.js +47 -3
  73. package/classes/classes.json +2527 -0
  74. package/classes/index.d.ts +134 -15
  75. package/classes/index.js +280 -80
  76. package/classes/vscode.css-custom-data.json +12 -0
  77. package/connectors/index.d.ts +201 -69
  78. package/connectors/index.d.ts.map +1 -0
  79. package/connectors/index.js +142 -25
  80. package/css/app.css +69 -13
  81. package/css/base.css +15 -10
  82. package/css/bullet.css +108 -0
  83. package/css/code.css +98 -0
  84. package/css/connectors.css +17 -0
  85. package/css/content.css +22 -3
  86. package/css/crosshair.css +7 -7
  87. package/css/dataviz.css +5 -1
  88. package/css/diff.css +153 -0
  89. package/css/disclosure.css +53 -7
  90. package/css/dots.css +94 -7
  91. package/css/feedback.css +97 -7
  92. package/css/forms.css +113 -4
  93. package/css/legend.css +16 -9
  94. package/css/marks.css +38 -8
  95. package/css/motion.css +98 -53
  96. package/css/navigation.css +7 -0
  97. package/css/overlay.css +90 -3
  98. package/css/primitives.css +158 -13
  99. package/css/report.css +73 -56
  100. package/css/sidenote.css +67 -0
  101. package/css/site.css +16 -2
  102. package/css/sources.css +43 -1
  103. package/css/spark.css +62 -0
  104. package/css/spotlight.css +1 -1
  105. package/css/table.css +9 -2
  106. package/css/term.css +110 -0
  107. package/css/textref.css +63 -0
  108. package/css/toc.css +91 -0
  109. package/css/tokens.css +49 -1
  110. package/css/tree.css +134 -0
  111. package/css/workbench.css +1 -1
  112. package/dist/bronto.css +1 -1
  113. package/dist/css/analytical.css +1 -1
  114. package/dist/css/app.css +1 -1
  115. package/dist/css/base.css +1 -1
  116. package/dist/css/bullet.css +1 -0
  117. package/dist/css/code.css +1 -0
  118. package/dist/css/connectors.css +1 -1
  119. package/dist/css/content.css +1 -1
  120. package/dist/css/crosshair.css +1 -1
  121. package/dist/css/diff.css +1 -0
  122. package/dist/css/disclosure.css +1 -1
  123. package/dist/css/dots.css +1 -1
  124. package/dist/css/feedback.css +1 -1
  125. package/dist/css/forms.css +1 -1
  126. package/dist/css/legend.css +1 -1
  127. package/dist/css/marks.css +1 -1
  128. package/dist/css/motion.css +1 -1
  129. package/dist/css/navigation.css +1 -1
  130. package/dist/css/overlay.css +1 -1
  131. package/dist/css/primitives.css +1 -1
  132. package/dist/css/report.css +1 -1
  133. package/dist/css/sidenote.css +1 -0
  134. package/dist/css/site.css +1 -1
  135. package/dist/css/sources.css +1 -1
  136. package/dist/css/spark.css +1 -0
  137. package/dist/css/spotlight.css +1 -1
  138. package/dist/css/table.css +1 -1
  139. package/dist/css/term.css +1 -0
  140. package/dist/css/textref.css +1 -0
  141. package/dist/css/toc.css +1 -0
  142. package/dist/css/tokens.css +1 -1
  143. package/dist/css/tree.css +1 -0
  144. package/dist/css/workbench.css +1 -1
  145. package/docs/adr/0003-theme-model.md +1 -1
  146. package/docs/annotations.md +133 -14
  147. package/docs/architecture.md +49 -6
  148. package/docs/bullet.md +78 -0
  149. package/docs/code.md +76 -0
  150. package/docs/contrast.md +116 -92
  151. package/docs/d2.md +196 -0
  152. package/docs/diff.md +146 -0
  153. package/docs/legends.md +23 -3
  154. package/docs/marks.md +9 -2
  155. package/docs/mermaid.md +169 -0
  156. package/docs/reference.md +201 -26
  157. package/docs/reporting.md +416 -57
  158. package/docs/sidenote.md +64 -0
  159. package/docs/sources.md +27 -0
  160. package/docs/spark.md +78 -0
  161. package/docs/stability.md +10 -2
  162. package/docs/term.md +81 -0
  163. package/docs/textref.md +78 -0
  164. package/docs/theming.md +44 -5
  165. package/docs/toc.md +83 -0
  166. package/docs/tree.md +74 -0
  167. package/docs/usage.md +354 -16
  168. package/docs/vega.md +244 -0
  169. package/docs/workbench.md +7 -1
  170. package/glyphs/glyphs.js +13 -5
  171. package/llms.txt +285 -14
  172. package/package.json +95 -17
  173. package/qwik/index.d.ts +44 -59
  174. package/qwik/index.d.ts.map +1 -0
  175. package/qwik/index.js +65 -3
  176. package/react/index.d.ts +41 -61
  177. package/react/index.d.ts.map +1 -0
  178. package/react/index.js +63 -3
  179. package/solid/index.d.ts +68 -61
  180. package/solid/index.d.ts.map +1 -0
  181. package/solid/index.js +66 -3
  182. package/tokens/d2.d.ts +38 -0
  183. package/tokens/d2.js +71 -0
  184. package/tokens/d2.json +43 -0
  185. package/tokens/index.d.ts +5 -5
  186. package/tokens/index.js +15 -1
  187. package/tokens/index.json +9 -0
  188. package/tokens/mermaid.d.ts +23 -0
  189. package/tokens/mermaid.js +181 -0
  190. package/tokens/mermaid.json +163 -0
  191. package/tokens/resolved.json +45 -1
  192. package/tokens/skins.js +3 -2
  193. package/tokens/tokens.dtcg.json +26 -0
  194. package/tokens/vega.d.ts +34 -0
  195. package/tokens/vega.js +155 -0
  196. package/tokens/vega.json +179 -0
@@ -0,0 +1,2527 @@
1
+ {
2
+ "$comment": "@ponchia/ui class vocabulary as language-neutral data — validate emitted markup without executing the ESM cls map or parsing the .d.ts. Generated from classes/index.js — do not edit by hand; run `npm run classes:json:build`. Drift-checked in CI. `groups[].base` is null for a parts-only namespace (no standalone base class — do NOT emit it). A modifier whose name contains `__` (e.g. `ui-spark__bar--pos`) attaches to THAT part, not the base host. `states` is the author-applied `is-*` hooks (runtime/behavior-managed hooks are excluded); `behaviorAttributes` are the `data-bronto-*` wiring hooks the optional behaviors delegate on; `requiredAria` is the role/aria a generator must emit per component. `states` + `customProperties` are documented in docs/reference.md and ship outside `cls` by design.",
3
+ "counts": {
4
+ "classes": 529,
5
+ "groups": 161
6
+ },
7
+ "groups": {
8
+ "ui-accordion": {
9
+ "base": "ui-accordion",
10
+ "modifiers": [],
11
+ "parts": [
12
+ "ui-accordion__body",
13
+ "ui-accordion__item",
14
+ "ui-accordion__summary"
15
+ ]
16
+ },
17
+ "ui-alert": {
18
+ "base": "ui-alert",
19
+ "modifiers": [
20
+ "ui-alert--accent",
21
+ "ui-alert--danger",
22
+ "ui-alert--info",
23
+ "ui-alert--success",
24
+ "ui-alert--warning"
25
+ ],
26
+ "parts": [
27
+ "ui-alert__body",
28
+ "ui-alert__close",
29
+ "ui-alert__title"
30
+ ]
31
+ },
32
+ "ui-animate-dot": {
33
+ "base": "ui-animate-dot",
34
+ "modifiers": [],
35
+ "parts": []
36
+ },
37
+ "ui-animate-fade": {
38
+ "base": "ui-animate-fade",
39
+ "modifiers": [],
40
+ "parts": []
41
+ },
42
+ "ui-animate-in": {
43
+ "base": "ui-animate-in",
44
+ "modifiers": [],
45
+ "parts": []
46
+ },
47
+ "ui-animate-matrix": {
48
+ "base": "ui-animate-matrix",
49
+ "modifiers": [],
50
+ "parts": []
51
+ },
52
+ "ui-annotation": {
53
+ "base": "ui-annotation",
54
+ "modifiers": [
55
+ "ui-annotation--accent",
56
+ "ui-annotation--axis",
57
+ "ui-annotation--badge",
58
+ "ui-annotation--band",
59
+ "ui-annotation--bracket",
60
+ "ui-annotation--callout",
61
+ "ui-annotation--circle",
62
+ "ui-annotation--cluster",
63
+ "ui-annotation--compare",
64
+ "ui-annotation--curve",
65
+ "ui-annotation--danger",
66
+ "ui-annotation--draw",
67
+ "ui-annotation--elbow",
68
+ "ui-annotation--evidence",
69
+ "ui-annotation--focus",
70
+ "ui-annotation--info",
71
+ "ui-annotation--label",
72
+ "ui-annotation--muted",
73
+ "ui-annotation--pulse",
74
+ "ui-annotation--rect",
75
+ "ui-annotation--reveal",
76
+ "ui-annotation--slope",
77
+ "ui-annotation--success",
78
+ "ui-annotation--threshold",
79
+ "ui-annotation--timeline",
80
+ "ui-annotation--warning"
81
+ ],
82
+ "parts": [
83
+ "ui-annotation__badge",
84
+ "ui-annotation__connector",
85
+ "ui-annotation__connector-end",
86
+ "ui-annotation__label",
87
+ "ui-annotation__note",
88
+ "ui-annotation__note-line",
89
+ "ui-annotation__subject",
90
+ "ui-annotation__title"
91
+ ]
92
+ },
93
+ "ui-app-content": {
94
+ "base": "ui-app-content",
95
+ "modifiers": [],
96
+ "parts": []
97
+ },
98
+ "ui-app-empty-state": {
99
+ "base": "ui-app-empty-state",
100
+ "modifiers": [],
101
+ "parts": []
102
+ },
103
+ "ui-app-main": {
104
+ "base": "ui-app-main",
105
+ "modifiers": [],
106
+ "parts": []
107
+ },
108
+ "ui-app-metric": {
109
+ "base": "ui-app-metric",
110
+ "modifiers": [],
111
+ "parts": [
112
+ "ui-app-metric__delta",
113
+ "ui-app-metric__label",
114
+ "ui-app-metric__value"
115
+ ]
116
+ },
117
+ "ui-app-metrics": {
118
+ "base": "ui-app-metrics",
119
+ "modifiers": [],
120
+ "parts": []
121
+ },
122
+ "ui-app-nav": {
123
+ "base": "ui-app-nav",
124
+ "modifiers": [],
125
+ "parts": [
126
+ "ui-app-nav__section"
127
+ ]
128
+ },
129
+ "ui-app-panel": {
130
+ "base": "ui-app-panel",
131
+ "modifiers": [],
132
+ "parts": [
133
+ "ui-app-panel__head",
134
+ "ui-app-panel__title"
135
+ ]
136
+ },
137
+ "ui-app-rail": {
138
+ "base": "ui-app-rail",
139
+ "modifiers": [],
140
+ "parts": [
141
+ "ui-app-rail__account",
142
+ "ui-app-rail__brand",
143
+ "ui-app-rail__foot"
144
+ ]
145
+ },
146
+ "ui-app-shell": {
147
+ "base": "ui-app-shell",
148
+ "modifiers": [
149
+ "ui-app-shell--full"
150
+ ],
151
+ "parts": []
152
+ },
153
+ "ui-app-toolbar": {
154
+ "base": "ui-app-toolbar",
155
+ "modifiers": [],
156
+ "parts": [
157
+ "ui-app-toolbar__group"
158
+ ]
159
+ },
160
+ "ui-app-topbar": {
161
+ "base": "ui-app-topbar",
162
+ "modifiers": [],
163
+ "parts": [
164
+ "ui-app-topbar__title"
165
+ ]
166
+ },
167
+ "ui-avatar": {
168
+ "base": "ui-avatar",
169
+ "modifiers": [
170
+ "ui-avatar--lg",
171
+ "ui-avatar--sm"
172
+ ],
173
+ "parts": []
174
+ },
175
+ "ui-avatar-group": {
176
+ "base": "ui-avatar-group",
177
+ "modifiers": [],
178
+ "parts": []
179
+ },
180
+ "ui-badge": {
181
+ "base": "ui-badge",
182
+ "modifiers": [
183
+ "ui-badge--accent",
184
+ "ui-badge--danger",
185
+ "ui-badge--dot",
186
+ "ui-badge--info",
187
+ "ui-badge--muted",
188
+ "ui-badge--success",
189
+ "ui-badge--warning"
190
+ ],
191
+ "parts": []
192
+ },
193
+ "ui-bracket-note": {
194
+ "base": "ui-bracket-note",
195
+ "modifiers": [
196
+ "ui-bracket-note--accent",
197
+ "ui-bracket-note--danger",
198
+ "ui-bracket-note--info",
199
+ "ui-bracket-note--success",
200
+ "ui-bracket-note--warning"
201
+ ],
202
+ "parts": [
203
+ "ui-bracket-note__label"
204
+ ]
205
+ },
206
+ "ui-breadcrumb": {
207
+ "base": "ui-breadcrumb",
208
+ "modifiers": [],
209
+ "parts": [
210
+ "ui-breadcrumb__item"
211
+ ]
212
+ },
213
+ "ui-break-after": {
214
+ "base": "ui-break-after",
215
+ "modifiers": [],
216
+ "parts": []
217
+ },
218
+ "ui-break-before": {
219
+ "base": "ui-break-before",
220
+ "modifiers": [],
221
+ "parts": []
222
+ },
223
+ "ui-bullet": {
224
+ "base": "ui-bullet",
225
+ "modifiers": [
226
+ "ui-bullet__measure--accent",
227
+ "ui-bullet__measure--neg",
228
+ "ui-bullet__measure--pos"
229
+ ],
230
+ "parts": [
231
+ "ui-bullet__label",
232
+ "ui-bullet__measure",
233
+ "ui-bullet__target"
234
+ ]
235
+ },
236
+ "ui-button": {
237
+ "base": "ui-button",
238
+ "modifiers": [
239
+ "ui-button--danger",
240
+ "ui-button--ghost",
241
+ "ui-button--icon",
242
+ "ui-button--lg",
243
+ "ui-button--sm",
244
+ "ui-button--subtle"
245
+ ],
246
+ "parts": []
247
+ },
248
+ "ui-card": {
249
+ "base": "ui-card",
250
+ "modifiers": [
251
+ "ui-card--accent",
252
+ "ui-card--interactive"
253
+ ],
254
+ "parts": [
255
+ "ui-card__head"
256
+ ]
257
+ },
258
+ "ui-caret": {
259
+ "base": "ui-caret",
260
+ "modifiers": [],
261
+ "parts": []
262
+ },
263
+ "ui-carousel": {
264
+ "base": "ui-carousel",
265
+ "modifiers": [],
266
+ "parts": [
267
+ "ui-carousel__next",
268
+ "ui-carousel__prev",
269
+ "ui-carousel__slide",
270
+ "ui-carousel__stage",
271
+ "ui-carousel__status",
272
+ "ui-carousel__thumb",
273
+ "ui-carousel__thumbs",
274
+ "ui-carousel__viewport"
275
+ ]
276
+ },
277
+ "ui-center": {
278
+ "base": "ui-center",
279
+ "modifiers": [],
280
+ "parts": []
281
+ },
282
+ "ui-check": {
283
+ "base": "ui-check",
284
+ "modifiers": [],
285
+ "parts": []
286
+ },
287
+ "ui-chip": {
288
+ "base": "ui-chip",
289
+ "modifiers": [
290
+ "ui-chip--accent"
291
+ ],
292
+ "parts": []
293
+ },
294
+ "ui-citation": {
295
+ "base": "ui-citation",
296
+ "modifiers": [
297
+ "ui-citation--chip"
298
+ ],
299
+ "parts": []
300
+ },
301
+ "ui-cluster": {
302
+ "base": "ui-cluster",
303
+ "modifiers": [
304
+ "ui-cluster--between"
305
+ ],
306
+ "parts": []
307
+ },
308
+ "ui-code": {
309
+ "base": "ui-code",
310
+ "modifiers": [
311
+ "ui-code--numbered",
312
+ "ui-code__line--add",
313
+ "ui-code__line--hl",
314
+ "ui-code__line--remove"
315
+ ],
316
+ "parts": [
317
+ "ui-code__body",
318
+ "ui-code__head",
319
+ "ui-code__line"
320
+ ]
321
+ },
322
+ "ui-combobox": {
323
+ "base": "ui-combobox",
324
+ "modifiers": [],
325
+ "parts": [
326
+ "ui-combobox__empty",
327
+ "ui-combobox__input",
328
+ "ui-combobox__list",
329
+ "ui-combobox__option"
330
+ ]
331
+ },
332
+ "ui-command": {
333
+ "base": "ui-command",
334
+ "modifiers": [],
335
+ "parts": [
336
+ "ui-command__empty",
337
+ "ui-command__group",
338
+ "ui-command__input",
339
+ "ui-command__item",
340
+ "ui-command__list",
341
+ "ui-command__meta",
342
+ "ui-command__shortcut"
343
+ ]
344
+ },
345
+ "ui-compare": {
346
+ "base": "ui-compare",
347
+ "modifiers": [
348
+ "ui-compare--2up"
349
+ ],
350
+ "parts": [
351
+ "ui-compare__col",
352
+ "ui-compare__head"
353
+ ]
354
+ },
355
+ "ui-connector": {
356
+ "base": "ui-connector",
357
+ "modifiers": [
358
+ "ui-connector--accent",
359
+ "ui-connector--danger",
360
+ "ui-connector--dashed",
361
+ "ui-connector--draw",
362
+ "ui-connector--info",
363
+ "ui-connector--muted",
364
+ "ui-connector--success",
365
+ "ui-connector--warning"
366
+ ],
367
+ "parts": [
368
+ "ui-connector__end",
369
+ "ui-connector__path"
370
+ ]
371
+ },
372
+ "ui-container": {
373
+ "base": "ui-container",
374
+ "modifiers": [
375
+ "ui-container--narrow",
376
+ "ui-container--wide"
377
+ ],
378
+ "parts": []
379
+ },
380
+ "ui-cq": {
381
+ "base": "ui-cq",
382
+ "modifiers": [],
383
+ "parts": []
384
+ },
385
+ "ui-crosshair": {
386
+ "base": "ui-crosshair",
387
+ "modifiers": [
388
+ "ui-crosshair--muted",
389
+ "ui-crosshair__line--x",
390
+ "ui-crosshair__line--y"
391
+ ],
392
+ "parts": [
393
+ "ui-crosshair__badge",
394
+ "ui-crosshair__line"
395
+ ]
396
+ },
397
+ "ui-def": {
398
+ "base": "ui-def",
399
+ "modifiers": [],
400
+ "parts": []
401
+ },
402
+ "ui-delta": {
403
+ "base": "ui-delta",
404
+ "modifiers": [
405
+ "ui-delta--down",
406
+ "ui-delta--flat",
407
+ "ui-delta--invert",
408
+ "ui-delta--up"
409
+ ],
410
+ "parts": []
411
+ },
412
+ "ui-diff": {
413
+ "base": "ui-diff",
414
+ "modifiers": [
415
+ "ui-diff--split",
416
+ "ui-diff__row--add",
417
+ "ui-diff__row--context",
418
+ "ui-diff__row--remove"
419
+ ],
420
+ "parts": [
421
+ "ui-diff__code",
422
+ "ui-diff__head",
423
+ "ui-diff__hunk",
424
+ "ui-diff__ln",
425
+ "ui-diff__pane",
426
+ "ui-diff__row"
427
+ ]
428
+ },
429
+ "ui-display": {
430
+ "base": "ui-display",
431
+ "modifiers": [],
432
+ "parts": []
433
+ },
434
+ "ui-divider": {
435
+ "base": "ui-divider",
436
+ "modifiers": [],
437
+ "parts": []
438
+ },
439
+ "ui-dot": {
440
+ "base": "ui-dot",
441
+ "modifiers": [
442
+ "ui-dot--accent",
443
+ "ui-dot--danger",
444
+ "ui-dot--info",
445
+ "ui-dot--live",
446
+ "ui-dot--success",
447
+ "ui-dot--warning"
448
+ ],
449
+ "parts": []
450
+ },
451
+ "ui-dotbar": {
452
+ "base": "ui-dotbar",
453
+ "modifiers": [
454
+ "ui-dotbar--indeterminate"
455
+ ],
456
+ "parts": []
457
+ },
458
+ "ui-dotfield": {
459
+ "base": "ui-dotfield",
460
+ "modifiers": [],
461
+ "parts": []
462
+ },
463
+ "ui-dotgrid": {
464
+ "base": "ui-dotgrid",
465
+ "modifiers": [
466
+ "ui-dotgrid--accent",
467
+ "ui-dotgrid--dense"
468
+ ],
469
+ "parts": []
470
+ },
471
+ "ui-dotloader": {
472
+ "base": "ui-dotloader",
473
+ "modifiers": [],
474
+ "parts": []
475
+ },
476
+ "ui-dotmatrix": {
477
+ "base": "ui-dotmatrix",
478
+ "modifiers": [
479
+ "ui-dotmatrix--pulse",
480
+ "ui-dotmatrix--reveal",
481
+ "ui-dotmatrix__cell--accent",
482
+ "ui-dotmatrix__cell--hot"
483
+ ],
484
+ "parts": [
485
+ "ui-dotmatrix__cell"
486
+ ]
487
+ },
488
+ "ui-dotrule": {
489
+ "base": "ui-dotrule",
490
+ "modifiers": [],
491
+ "parts": []
492
+ },
493
+ "ui-dotspinner": {
494
+ "base": "ui-dotspinner",
495
+ "modifiers": [
496
+ "ui-dotspinner--lg",
497
+ "ui-dotspinner--sm"
498
+ ],
499
+ "parts": []
500
+ },
501
+ "ui-empty-state": {
502
+ "base": "ui-empty-state",
503
+ "modifiers": [],
504
+ "parts": []
505
+ },
506
+ "ui-error-summary": {
507
+ "base": "ui-error-summary",
508
+ "modifiers": [],
509
+ "parts": [
510
+ "ui-error-summary__list",
511
+ "ui-error-summary__title"
512
+ ]
513
+ },
514
+ "ui-eyebrow": {
515
+ "base": "ui-eyebrow",
516
+ "modifiers": [
517
+ "ui-eyebrow--muted",
518
+ "ui-eyebrow--sm"
519
+ ],
520
+ "parts": []
521
+ },
522
+ "ui-field": {
523
+ "base": "ui-field",
524
+ "modifiers": [],
525
+ "parts": []
526
+ },
527
+ "ui-file": {
528
+ "base": "ui-file",
529
+ "modifiers": [],
530
+ "parts": []
531
+ },
532
+ "ui-generated": {
533
+ "base": "ui-generated",
534
+ "modifiers": [],
535
+ "parts": [
536
+ "ui-generated__label"
537
+ ]
538
+ },
539
+ "ui-glossary": {
540
+ "base": "ui-glossary",
541
+ "modifiers": [],
542
+ "parts": [
543
+ "ui-glossary__def",
544
+ "ui-glossary__term"
545
+ ]
546
+ },
547
+ "ui-grid": {
548
+ "base": "ui-grid",
549
+ "modifiers": [],
550
+ "parts": []
551
+ },
552
+ "ui-hint": {
553
+ "base": "ui-hint",
554
+ "modifiers": [
555
+ "ui-hint--error"
556
+ ],
557
+ "parts": []
558
+ },
559
+ "ui-icon": {
560
+ "base": "ui-icon",
561
+ "modifiers": [],
562
+ "parts": []
563
+ },
564
+ "ui-input": {
565
+ "base": "ui-input",
566
+ "modifiers": [],
567
+ "parts": []
568
+ },
569
+ "ui-input-group": {
570
+ "base": "ui-input-group",
571
+ "modifiers": [],
572
+ "parts": [
573
+ "ui-input-group__addon"
574
+ ]
575
+ },
576
+ "ui-input-icon": {
577
+ "base": "ui-input-icon",
578
+ "modifiers": [
579
+ "ui-input-icon--end"
580
+ ],
581
+ "parts": [
582
+ "ui-input-icon__icon"
583
+ ]
584
+ },
585
+ "ui-inspector": {
586
+ "base": "ui-inspector",
587
+ "modifiers": [],
588
+ "parts": [
589
+ "ui-inspector__body",
590
+ "ui-inspector__head"
591
+ ]
592
+ },
593
+ "ui-kbd": {
594
+ "base": "ui-kbd",
595
+ "modifiers": [],
596
+ "parts": []
597
+ },
598
+ "ui-keep": {
599
+ "base": "ui-keep",
600
+ "modifiers": [],
601
+ "parts": []
602
+ },
603
+ "ui-key-value": {
604
+ "base": "ui-key-value",
605
+ "modifiers": [],
606
+ "parts": []
607
+ },
608
+ "ui-label": {
609
+ "base": "ui-label",
610
+ "modifiers": [],
611
+ "parts": []
612
+ },
613
+ "ui-legend": {
614
+ "base": "ui-legend",
615
+ "modifiers": [
616
+ "ui-legend--compact",
617
+ "ui-legend--diverging",
618
+ "ui-legend--gradient",
619
+ "ui-legend--interactive",
620
+ "ui-legend--threshold",
621
+ "ui-legend--vertical",
622
+ "ui-legend--with-values",
623
+ "ui-legend__swatch--1",
624
+ "ui-legend__swatch--2",
625
+ "ui-legend__swatch--3",
626
+ "ui-legend__swatch--4",
627
+ "ui-legend__swatch--5",
628
+ "ui-legend__swatch--6",
629
+ "ui-legend__swatch--7",
630
+ "ui-legend__swatch--8",
631
+ "ui-legend__swatch--circle",
632
+ "ui-legend__swatch--line"
633
+ ],
634
+ "parts": [
635
+ "ui-legend__caption",
636
+ "ui-legend__item",
637
+ "ui-legend__label",
638
+ "ui-legend__swatch",
639
+ "ui-legend__symbol",
640
+ "ui-legend__tick",
641
+ "ui-legend__ticks",
642
+ "ui-legend__title",
643
+ "ui-legend__track",
644
+ "ui-legend__value"
645
+ ]
646
+ },
647
+ "ui-lightbox": {
648
+ "base": "ui-lightbox",
649
+ "modifiers": [],
650
+ "parts": [
651
+ "ui-lightbox__close"
652
+ ]
653
+ },
654
+ "ui-link": {
655
+ "base": "ui-link",
656
+ "modifiers": [
657
+ "ui-link--arrow",
658
+ "ui-link--cta"
659
+ ],
660
+ "parts": []
661
+ },
662
+ "ui-marginnote": {
663
+ "base": "ui-marginnote",
664
+ "modifiers": [],
665
+ "parts": []
666
+ },
667
+ "ui-mark": {
668
+ "base": "ui-mark",
669
+ "modifiers": [
670
+ "ui-mark--accent",
671
+ "ui-mark--box",
672
+ "ui-mark--danger",
673
+ "ui-mark--draw",
674
+ "ui-mark--info",
675
+ "ui-mark--muted",
676
+ "ui-mark--strike",
677
+ "ui-mark--success",
678
+ "ui-mark--underline",
679
+ "ui-mark--warning"
680
+ ],
681
+ "parts": []
682
+ },
683
+ "ui-matrix": {
684
+ "base": "ui-matrix",
685
+ "modifiers": [],
686
+ "parts": []
687
+ },
688
+ "ui-menu": {
689
+ "base": "ui-menu",
690
+ "modifiers": [],
691
+ "parts": [
692
+ "ui-menu__item",
693
+ "ui-menu__label",
694
+ "ui-menu__sep"
695
+ ]
696
+ },
697
+ "ui-menu-host": {
698
+ "base": "ui-menu-host",
699
+ "modifiers": [],
700
+ "parts": []
701
+ },
702
+ "ui-meta": {
703
+ "base": "ui-meta",
704
+ "modifiers": [],
705
+ "parts": [
706
+ "ui-meta__item"
707
+ ]
708
+ },
709
+ "ui-meter": {
710
+ "base": "ui-meter",
711
+ "modifiers": [
712
+ "ui-meter--accent",
713
+ "ui-meter--danger",
714
+ "ui-meter--info",
715
+ "ui-meter--success",
716
+ "ui-meter--warning"
717
+ ],
718
+ "parts": [
719
+ "ui-meter__fill",
720
+ "ui-meter__label",
721
+ "ui-meter__row",
722
+ "ui-meter__value"
723
+ ]
724
+ },
725
+ "ui-modal": {
726
+ "base": "ui-modal",
727
+ "modifiers": [
728
+ "ui-modal--drawer"
729
+ ],
730
+ "parts": [
731
+ "ui-modal__body",
732
+ "ui-modal__close",
733
+ "ui-modal__foot",
734
+ "ui-modal__head",
735
+ "ui-modal__title"
736
+ ]
737
+ },
738
+ "ui-mono": {
739
+ "base": "ui-mono",
740
+ "modifiers": [],
741
+ "parts": []
742
+ },
743
+ "ui-muted": {
744
+ "base": "ui-muted",
745
+ "modifiers": [],
746
+ "parts": []
747
+ },
748
+ "ui-num": {
749
+ "base": "ui-num",
750
+ "modifiers": [
751
+ "ui-num--muted",
752
+ "ui-num--neg",
753
+ "ui-num--pos"
754
+ ],
755
+ "parts": []
756
+ },
757
+ "ui-origin-label": {
758
+ "base": "ui-origin-label",
759
+ "modifiers": [
760
+ "ui-origin-label--ai"
761
+ ],
762
+ "parts": []
763
+ },
764
+ "ui-pagehead": {
765
+ "base": "ui-pagehead",
766
+ "modifiers": [],
767
+ "parts": [
768
+ "ui-pagehead__actions",
769
+ "ui-pagehead__title"
770
+ ]
771
+ },
772
+ "ui-pagination": {
773
+ "base": "ui-pagination",
774
+ "modifiers": [],
775
+ "parts": [
776
+ "ui-pagination__item"
777
+ ]
778
+ },
779
+ "ui-panel": {
780
+ "base": "ui-panel",
781
+ "modifiers": [],
782
+ "parts": [
783
+ "ui-panel__head"
784
+ ]
785
+ },
786
+ "ui-popover": {
787
+ "base": "ui-popover",
788
+ "modifiers": [],
789
+ "parts": []
790
+ },
791
+ "ui-print-exact": {
792
+ "base": "ui-print-exact",
793
+ "modifiers": [],
794
+ "parts": []
795
+ },
796
+ "ui-print-only": {
797
+ "base": "ui-print-only",
798
+ "modifiers": [],
799
+ "parts": []
800
+ },
801
+ "ui-progress": {
802
+ "base": "ui-progress",
803
+ "modifiers": [
804
+ "ui-progress--indeterminate"
805
+ ],
806
+ "parts": [
807
+ "ui-progress__bar"
808
+ ]
809
+ },
810
+ "ui-property": {
811
+ "base": "ui-property",
812
+ "modifiers": [],
813
+ "parts": [
814
+ "ui-property__label",
815
+ "ui-property__value"
816
+ ]
817
+ },
818
+ "ui-prose": {
819
+ "base": "ui-prose",
820
+ "modifiers": [
821
+ "ui-prose--compact"
822
+ ],
823
+ "parts": []
824
+ },
825
+ "ui-provenance": {
826
+ "base": "ui-provenance",
827
+ "modifiers": [],
828
+ "parts": [
829
+ "ui-provenance__item"
830
+ ]
831
+ },
832
+ "ui-quote": {
833
+ "base": "ui-quote",
834
+ "modifiers": [],
835
+ "parts": [
836
+ "ui-quote__cite"
837
+ ]
838
+ },
839
+ "ui-range": {
840
+ "base": "ui-range",
841
+ "modifiers": [],
842
+ "parts": []
843
+ },
844
+ "ui-ratio": {
845
+ "base": "ui-ratio",
846
+ "modifiers": [],
847
+ "parts": []
848
+ },
849
+ "ui-readout": {
850
+ "base": "ui-readout",
851
+ "modifiers": [],
852
+ "parts": []
853
+ },
854
+ "ui-reasoning": {
855
+ "base": "ui-reasoning",
856
+ "modifiers": [],
857
+ "parts": [
858
+ "ui-reasoning__body"
859
+ ]
860
+ },
861
+ "ui-report": {
862
+ "base": "ui-report",
863
+ "modifiers": [
864
+ "ui-report--compact",
865
+ "ui-report--numbered",
866
+ "ui-report__cover--compact",
867
+ "ui-report__section--unnumbered"
868
+ ],
869
+ "parts": [
870
+ "ui-report__appendix",
871
+ "ui-report__caption",
872
+ "ui-report__cover",
873
+ "ui-report__evidence",
874
+ "ui-report__figure",
875
+ "ui-report__finding",
876
+ "ui-report__footnotes",
877
+ "ui-report__head",
878
+ "ui-report__meta",
879
+ "ui-report__section",
880
+ "ui-report__section-head",
881
+ "ui-report__sources",
882
+ "ui-report__subtitle",
883
+ "ui-report__summary",
884
+ "ui-report__title",
885
+ "ui-report__toc"
886
+ ]
887
+ },
888
+ "ui-reveal": {
889
+ "base": "ui-reveal",
890
+ "modifiers": [],
891
+ "parts": []
892
+ },
893
+ "ui-screen-only": {
894
+ "base": "ui-screen-only",
895
+ "modifiers": [],
896
+ "parts": []
897
+ },
898
+ "ui-scroll-progress": {
899
+ "base": "ui-scroll-progress",
900
+ "modifiers": [],
901
+ "parts": []
902
+ },
903
+ "ui-scroll-reveal": {
904
+ "base": "ui-scroll-reveal",
905
+ "modifiers": [],
906
+ "parts": []
907
+ },
908
+ "ui-search": {
909
+ "base": "ui-search",
910
+ "modifiers": [],
911
+ "parts": []
912
+ },
913
+ "ui-segmented": {
914
+ "base": "ui-segmented",
915
+ "modifiers": [],
916
+ "parts": [
917
+ "ui-segmented__option"
918
+ ]
919
+ },
920
+ "ui-sel": {
921
+ "base": "ui-sel",
922
+ "modifiers": [
923
+ "ui-sel--maybe",
924
+ "ui-sel--off",
925
+ "ui-sel--on"
926
+ ],
927
+ "parts": []
928
+ },
929
+ "ui-select": {
930
+ "base": "ui-select",
931
+ "modifiers": [],
932
+ "parts": []
933
+ },
934
+ "ui-selectionbar": {
935
+ "base": "ui-selectionbar",
936
+ "modifiers": [],
937
+ "parts": [
938
+ "ui-selectionbar__actions",
939
+ "ui-selectionbar__count"
940
+ ]
941
+ },
942
+ "ui-shortcut": {
943
+ "base": "ui-shortcut",
944
+ "modifiers": [],
945
+ "parts": [
946
+ "ui-shortcut__sep"
947
+ ]
948
+ },
949
+ "ui-sidebar": {
950
+ "base": "ui-sidebar",
951
+ "modifiers": [],
952
+ "parts": []
953
+ },
954
+ "ui-sidenote": {
955
+ "base": "ui-sidenote",
956
+ "modifiers": [],
957
+ "parts": [
958
+ "ui-sidenote__ref"
959
+ ]
960
+ },
961
+ "ui-sitefooter": {
962
+ "base": "ui-sitefooter",
963
+ "modifiers": [],
964
+ "parts": [
965
+ "ui-sitefooter__links"
966
+ ]
967
+ },
968
+ "ui-siteheader": {
969
+ "base": "ui-siteheader",
970
+ "modifiers": [
971
+ "ui-siteheader--sticky"
972
+ ],
973
+ "parts": [
974
+ "ui-siteheader__actions",
975
+ "ui-siteheader__brand"
976
+ ]
977
+ },
978
+ "ui-sitemenu": {
979
+ "base": "ui-sitemenu",
980
+ "modifiers": [],
981
+ "parts": [
982
+ "ui-sitemenu__panel"
983
+ ]
984
+ },
985
+ "ui-sitenav": {
986
+ "base": "ui-sitenav",
987
+ "modifiers": [],
988
+ "parts": []
989
+ },
990
+ "ui-skeleton": {
991
+ "base": "ui-skeleton",
992
+ "modifiers": [],
993
+ "parts": []
994
+ },
995
+ "ui-skiplink": {
996
+ "base": "ui-skiplink",
997
+ "modifiers": [],
998
+ "parts": []
999
+ },
1000
+ "ui-source-card": {
1001
+ "base": "ui-source-card",
1002
+ "modifiers": [],
1003
+ "parts": [
1004
+ "ui-source-card__actions",
1005
+ "ui-source-card__excerpt",
1006
+ "ui-source-card__origin",
1007
+ "ui-source-card__time",
1008
+ "ui-source-card__title"
1009
+ ]
1010
+ },
1011
+ "ui-source-list": {
1012
+ "base": "ui-source-list",
1013
+ "modifiers": [],
1014
+ "parts": [
1015
+ "ui-source-list__item"
1016
+ ]
1017
+ },
1018
+ "ui-spark": {
1019
+ "base": "ui-spark",
1020
+ "modifiers": [
1021
+ "ui-spark__bar--accent",
1022
+ "ui-spark__bar--neg",
1023
+ "ui-spark__bar--pos"
1024
+ ],
1025
+ "parts": [
1026
+ "ui-spark__bar"
1027
+ ]
1028
+ },
1029
+ "ui-spinner": {
1030
+ "base": "ui-spinner",
1031
+ "modifiers": [],
1032
+ "parts": []
1033
+ },
1034
+ "ui-spotlight": {
1035
+ "base": "ui-spotlight",
1036
+ "modifiers": [
1037
+ "ui-spotlight--ring"
1038
+ ],
1039
+ "parts": [
1040
+ "ui-spotlight__hole"
1041
+ ]
1042
+ },
1043
+ "ui-src": {
1044
+ "base": "ui-src",
1045
+ "modifiers": [
1046
+ "ui-src--conflict",
1047
+ "ui-src--generated",
1048
+ "ui-src--reviewed",
1049
+ "ui-src--stale",
1050
+ "ui-src--unverified",
1051
+ "ui-src--verified"
1052
+ ],
1053
+ "parts": []
1054
+ },
1055
+ "ui-stack": {
1056
+ "base": "ui-stack",
1057
+ "modifiers": [],
1058
+ "parts": []
1059
+ },
1060
+ "ui-stagger": {
1061
+ "base": "ui-stagger",
1062
+ "modifiers": [
1063
+ "ui-stagger--auto"
1064
+ ],
1065
+ "parts": []
1066
+ },
1067
+ "ui-stat": {
1068
+ "base": "ui-stat",
1069
+ "modifiers": [],
1070
+ "parts": [
1071
+ "ui-stat__delta",
1072
+ "ui-stat__label",
1073
+ "ui-stat__value"
1074
+ ]
1075
+ },
1076
+ "ui-state": {
1077
+ "base": "ui-state",
1078
+ "modifiers": [
1079
+ "ui-state--busy",
1080
+ "ui-state--conflict",
1081
+ "ui-state--error",
1082
+ "ui-state--locked",
1083
+ "ui-state--needs-review",
1084
+ "ui-state--offline",
1085
+ "ui-state--queued",
1086
+ "ui-state--reviewed",
1087
+ "ui-state--saved",
1088
+ "ui-state--saving",
1089
+ "ui-state--stale"
1090
+ ],
1091
+ "parts": [
1092
+ "ui-state__detail",
1093
+ "ui-state__label"
1094
+ ]
1095
+ },
1096
+ "ui-statgrid": {
1097
+ "base": "ui-statgrid",
1098
+ "modifiers": [],
1099
+ "parts": []
1100
+ },
1101
+ "ui-status": {
1102
+ "base": "ui-status",
1103
+ "modifiers": [],
1104
+ "parts": []
1105
+ },
1106
+ "ui-steps": {
1107
+ "base": "ui-steps",
1108
+ "modifiers": [
1109
+ "ui-steps__item--done"
1110
+ ],
1111
+ "parts": [
1112
+ "ui-steps__item"
1113
+ ]
1114
+ },
1115
+ "ui-surface": {
1116
+ "base": "ui-surface",
1117
+ "modifiers": [],
1118
+ "parts": []
1119
+ },
1120
+ "ui-switch": {
1121
+ "base": "ui-switch",
1122
+ "modifiers": [],
1123
+ "parts": [
1124
+ "ui-switch__thumb",
1125
+ "ui-switch__track"
1126
+ ]
1127
+ },
1128
+ "ui-switcher": {
1129
+ "base": "ui-switcher",
1130
+ "modifiers": [],
1131
+ "parts": []
1132
+ },
1133
+ "ui-syncbar": {
1134
+ "base": "ui-syncbar",
1135
+ "modifiers": [],
1136
+ "parts": []
1137
+ },
1138
+ "ui-tab": {
1139
+ "base": "ui-tab",
1140
+ "modifiers": [],
1141
+ "parts": []
1142
+ },
1143
+ "ui-table": {
1144
+ "base": "ui-table",
1145
+ "modifiers": [
1146
+ "ui-table--comfortable",
1147
+ "ui-table--dense",
1148
+ "ui-table--lined",
1149
+ "ui-table--selectable"
1150
+ ],
1151
+ "parts": [
1152
+ "ui-table__empty",
1153
+ "ui-table__select",
1154
+ "ui-table__sort",
1155
+ "ui-table__toolbar"
1156
+ ]
1157
+ },
1158
+ "ui-table-wrap": {
1159
+ "base": "ui-table-wrap",
1160
+ "modifiers": [
1161
+ "ui-table-wrap--loading"
1162
+ ],
1163
+ "parts": []
1164
+ },
1165
+ "ui-tabs": {
1166
+ "base": "ui-tabs",
1167
+ "modifiers": [],
1168
+ "parts": [
1169
+ "ui-tabs__list",
1170
+ "ui-tabs__panel"
1171
+ ]
1172
+ },
1173
+ "ui-tag": {
1174
+ "base": "ui-tag",
1175
+ "modifiers": [
1176
+ "ui-tag--accent"
1177
+ ],
1178
+ "parts": []
1179
+ },
1180
+ "ui-tags": {
1181
+ "base": "ui-tags",
1182
+ "modifiers": [],
1183
+ "parts": []
1184
+ },
1185
+ "ui-term": {
1186
+ "base": "ui-term",
1187
+ "modifiers": [],
1188
+ "parts": []
1189
+ },
1190
+ "ui-textarea": {
1191
+ "base": "ui-textarea",
1192
+ "modifiers": [],
1193
+ "parts": []
1194
+ },
1195
+ "ui-textref": {
1196
+ "base": "ui-textref",
1197
+ "modifiers": [],
1198
+ "parts": []
1199
+ },
1200
+ "ui-themetoggle": {
1201
+ "base": null,
1202
+ "modifiers": [],
1203
+ "parts": [
1204
+ "ui-themetoggle__button",
1205
+ "ui-themetoggle__label",
1206
+ "ui-themetoggle__prefix",
1207
+ "ui-themetoggle__thumb",
1208
+ "ui-themetoggle__track"
1209
+ ]
1210
+ },
1211
+ "ui-timeline": {
1212
+ "base": "ui-timeline",
1213
+ "modifiers": [],
1214
+ "parts": [
1215
+ "ui-timeline__item",
1216
+ "ui-timeline__time"
1217
+ ]
1218
+ },
1219
+ "ui-toast": {
1220
+ "base": "ui-toast",
1221
+ "modifiers": [
1222
+ "ui-toast--accent",
1223
+ "ui-toast--danger",
1224
+ "ui-toast--info",
1225
+ "ui-toast--success",
1226
+ "ui-toast--warning"
1227
+ ],
1228
+ "parts": [
1229
+ "ui-toast__close",
1230
+ "ui-toast__title"
1231
+ ]
1232
+ },
1233
+ "ui-toast-stack": {
1234
+ "base": "ui-toast-stack",
1235
+ "modifiers": [
1236
+ "ui-toast-stack--assertive"
1237
+ ],
1238
+ "parts": []
1239
+ },
1240
+ "ui-toc": {
1241
+ "base": "ui-toc",
1242
+ "modifiers": [],
1243
+ "parts": [
1244
+ "ui-toc__link",
1245
+ "ui-toc__list",
1246
+ "ui-toc__title"
1247
+ ]
1248
+ },
1249
+ "ui-tool-call": {
1250
+ "base": "ui-tool-call",
1251
+ "modifiers": [],
1252
+ "parts": [
1253
+ "ui-tool-call__body",
1254
+ "ui-tool-call__name",
1255
+ "ui-tool-call__status"
1256
+ ]
1257
+ },
1258
+ "ui-tool-log": {
1259
+ "base": "ui-tool-log",
1260
+ "modifiers": [],
1261
+ "parts": []
1262
+ },
1263
+ "ui-tooltip": {
1264
+ "base": "ui-tooltip",
1265
+ "modifiers": [],
1266
+ "parts": [
1267
+ "ui-tooltip__bubble"
1268
+ ]
1269
+ },
1270
+ "ui-tour-note": {
1271
+ "base": "ui-tour-note",
1272
+ "modifiers": [],
1273
+ "parts": [
1274
+ "ui-tour-note__actions",
1275
+ "ui-tour-note__body",
1276
+ "ui-tour-note__step",
1277
+ "ui-tour-note__title"
1278
+ ]
1279
+ },
1280
+ "ui-tree": {
1281
+ "base": "ui-tree",
1282
+ "modifiers": [],
1283
+ "parts": [
1284
+ "ui-tree__branch",
1285
+ "ui-tree__label",
1286
+ "ui-tree__leaf",
1287
+ "ui-tree__summary"
1288
+ ]
1289
+ },
1290
+ "ui-visually-hidden": {
1291
+ "base": "ui-visually-hidden",
1292
+ "modifiers": [],
1293
+ "parts": []
1294
+ },
1295
+ "ui-vt": {
1296
+ "base": "ui-vt",
1297
+ "modifiers": [],
1298
+ "parts": []
1299
+ }
1300
+ },
1301
+ "classes": [
1302
+ "ui-accordion",
1303
+ "ui-accordion__body",
1304
+ "ui-accordion__item",
1305
+ "ui-accordion__summary",
1306
+ "ui-alert",
1307
+ "ui-alert--accent",
1308
+ "ui-alert--danger",
1309
+ "ui-alert--info",
1310
+ "ui-alert--success",
1311
+ "ui-alert--warning",
1312
+ "ui-alert__body",
1313
+ "ui-alert__close",
1314
+ "ui-alert__title",
1315
+ "ui-animate-dot",
1316
+ "ui-animate-fade",
1317
+ "ui-animate-in",
1318
+ "ui-animate-matrix",
1319
+ "ui-annotation",
1320
+ "ui-annotation--accent",
1321
+ "ui-annotation--axis",
1322
+ "ui-annotation--badge",
1323
+ "ui-annotation--band",
1324
+ "ui-annotation--bracket",
1325
+ "ui-annotation--callout",
1326
+ "ui-annotation--circle",
1327
+ "ui-annotation--cluster",
1328
+ "ui-annotation--compare",
1329
+ "ui-annotation--curve",
1330
+ "ui-annotation--danger",
1331
+ "ui-annotation--draw",
1332
+ "ui-annotation--elbow",
1333
+ "ui-annotation--evidence",
1334
+ "ui-annotation--focus",
1335
+ "ui-annotation--info",
1336
+ "ui-annotation--label",
1337
+ "ui-annotation--muted",
1338
+ "ui-annotation--pulse",
1339
+ "ui-annotation--rect",
1340
+ "ui-annotation--reveal",
1341
+ "ui-annotation--slope",
1342
+ "ui-annotation--success",
1343
+ "ui-annotation--threshold",
1344
+ "ui-annotation--timeline",
1345
+ "ui-annotation--warning",
1346
+ "ui-annotation__badge",
1347
+ "ui-annotation__connector",
1348
+ "ui-annotation__connector-end",
1349
+ "ui-annotation__label",
1350
+ "ui-annotation__note",
1351
+ "ui-annotation__note-line",
1352
+ "ui-annotation__subject",
1353
+ "ui-annotation__title",
1354
+ "ui-app-content",
1355
+ "ui-app-empty-state",
1356
+ "ui-app-main",
1357
+ "ui-app-metric",
1358
+ "ui-app-metric__delta",
1359
+ "ui-app-metric__label",
1360
+ "ui-app-metric__value",
1361
+ "ui-app-metrics",
1362
+ "ui-app-nav",
1363
+ "ui-app-nav__section",
1364
+ "ui-app-panel",
1365
+ "ui-app-panel__head",
1366
+ "ui-app-panel__title",
1367
+ "ui-app-rail",
1368
+ "ui-app-rail__account",
1369
+ "ui-app-rail__brand",
1370
+ "ui-app-rail__foot",
1371
+ "ui-app-shell",
1372
+ "ui-app-shell--full",
1373
+ "ui-app-toolbar",
1374
+ "ui-app-toolbar__group",
1375
+ "ui-app-topbar",
1376
+ "ui-app-topbar__title",
1377
+ "ui-avatar",
1378
+ "ui-avatar--lg",
1379
+ "ui-avatar--sm",
1380
+ "ui-avatar-group",
1381
+ "ui-badge",
1382
+ "ui-badge--accent",
1383
+ "ui-badge--danger",
1384
+ "ui-badge--dot",
1385
+ "ui-badge--info",
1386
+ "ui-badge--muted",
1387
+ "ui-badge--success",
1388
+ "ui-badge--warning",
1389
+ "ui-bracket-note",
1390
+ "ui-bracket-note--accent",
1391
+ "ui-bracket-note--danger",
1392
+ "ui-bracket-note--info",
1393
+ "ui-bracket-note--success",
1394
+ "ui-bracket-note--warning",
1395
+ "ui-bracket-note__label",
1396
+ "ui-breadcrumb",
1397
+ "ui-breadcrumb__item",
1398
+ "ui-break-after",
1399
+ "ui-break-before",
1400
+ "ui-bullet",
1401
+ "ui-bullet__label",
1402
+ "ui-bullet__measure",
1403
+ "ui-bullet__measure--accent",
1404
+ "ui-bullet__measure--neg",
1405
+ "ui-bullet__measure--pos",
1406
+ "ui-bullet__target",
1407
+ "ui-button",
1408
+ "ui-button--danger",
1409
+ "ui-button--ghost",
1410
+ "ui-button--icon",
1411
+ "ui-button--lg",
1412
+ "ui-button--sm",
1413
+ "ui-button--subtle",
1414
+ "ui-card",
1415
+ "ui-card--accent",
1416
+ "ui-card--interactive",
1417
+ "ui-card__head",
1418
+ "ui-caret",
1419
+ "ui-carousel",
1420
+ "ui-carousel__next",
1421
+ "ui-carousel__prev",
1422
+ "ui-carousel__slide",
1423
+ "ui-carousel__stage",
1424
+ "ui-carousel__status",
1425
+ "ui-carousel__thumb",
1426
+ "ui-carousel__thumbs",
1427
+ "ui-carousel__viewport",
1428
+ "ui-center",
1429
+ "ui-check",
1430
+ "ui-chip",
1431
+ "ui-chip--accent",
1432
+ "ui-citation",
1433
+ "ui-citation--chip",
1434
+ "ui-cluster",
1435
+ "ui-cluster--between",
1436
+ "ui-code",
1437
+ "ui-code--numbered",
1438
+ "ui-code__body",
1439
+ "ui-code__head",
1440
+ "ui-code__line",
1441
+ "ui-code__line--add",
1442
+ "ui-code__line--hl",
1443
+ "ui-code__line--remove",
1444
+ "ui-combobox",
1445
+ "ui-combobox__empty",
1446
+ "ui-combobox__input",
1447
+ "ui-combobox__list",
1448
+ "ui-combobox__option",
1449
+ "ui-command",
1450
+ "ui-command__empty",
1451
+ "ui-command__group",
1452
+ "ui-command__input",
1453
+ "ui-command__item",
1454
+ "ui-command__list",
1455
+ "ui-command__meta",
1456
+ "ui-command__shortcut",
1457
+ "ui-compare",
1458
+ "ui-compare--2up",
1459
+ "ui-compare__col",
1460
+ "ui-compare__head",
1461
+ "ui-connector",
1462
+ "ui-connector--accent",
1463
+ "ui-connector--danger",
1464
+ "ui-connector--dashed",
1465
+ "ui-connector--draw",
1466
+ "ui-connector--info",
1467
+ "ui-connector--muted",
1468
+ "ui-connector--success",
1469
+ "ui-connector--warning",
1470
+ "ui-connector__end",
1471
+ "ui-connector__path",
1472
+ "ui-container",
1473
+ "ui-container--narrow",
1474
+ "ui-container--wide",
1475
+ "ui-cq",
1476
+ "ui-crosshair",
1477
+ "ui-crosshair--muted",
1478
+ "ui-crosshair__badge",
1479
+ "ui-crosshair__line",
1480
+ "ui-crosshair__line--x",
1481
+ "ui-crosshair__line--y",
1482
+ "ui-def",
1483
+ "ui-delta",
1484
+ "ui-delta--down",
1485
+ "ui-delta--flat",
1486
+ "ui-delta--invert",
1487
+ "ui-delta--up",
1488
+ "ui-diff",
1489
+ "ui-diff--split",
1490
+ "ui-diff__code",
1491
+ "ui-diff__head",
1492
+ "ui-diff__hunk",
1493
+ "ui-diff__ln",
1494
+ "ui-diff__pane",
1495
+ "ui-diff__row",
1496
+ "ui-diff__row--add",
1497
+ "ui-diff__row--context",
1498
+ "ui-diff__row--remove",
1499
+ "ui-display",
1500
+ "ui-divider",
1501
+ "ui-dot",
1502
+ "ui-dot--accent",
1503
+ "ui-dot--danger",
1504
+ "ui-dot--info",
1505
+ "ui-dot--live",
1506
+ "ui-dot--success",
1507
+ "ui-dot--warning",
1508
+ "ui-dotbar",
1509
+ "ui-dotbar--indeterminate",
1510
+ "ui-dotfield",
1511
+ "ui-dotgrid",
1512
+ "ui-dotgrid--accent",
1513
+ "ui-dotgrid--dense",
1514
+ "ui-dotloader",
1515
+ "ui-dotmatrix",
1516
+ "ui-dotmatrix--pulse",
1517
+ "ui-dotmatrix--reveal",
1518
+ "ui-dotmatrix__cell",
1519
+ "ui-dotmatrix__cell--accent",
1520
+ "ui-dotmatrix__cell--hot",
1521
+ "ui-dotrule",
1522
+ "ui-dotspinner",
1523
+ "ui-dotspinner--lg",
1524
+ "ui-dotspinner--sm",
1525
+ "ui-empty-state",
1526
+ "ui-error-summary",
1527
+ "ui-error-summary__list",
1528
+ "ui-error-summary__title",
1529
+ "ui-eyebrow",
1530
+ "ui-eyebrow--muted",
1531
+ "ui-eyebrow--sm",
1532
+ "ui-field",
1533
+ "ui-file",
1534
+ "ui-generated",
1535
+ "ui-generated__label",
1536
+ "ui-glossary",
1537
+ "ui-glossary__def",
1538
+ "ui-glossary__term",
1539
+ "ui-grid",
1540
+ "ui-hint",
1541
+ "ui-hint--error",
1542
+ "ui-icon",
1543
+ "ui-input",
1544
+ "ui-input-group",
1545
+ "ui-input-group__addon",
1546
+ "ui-input-icon",
1547
+ "ui-input-icon--end",
1548
+ "ui-input-icon__icon",
1549
+ "ui-inspector",
1550
+ "ui-inspector__body",
1551
+ "ui-inspector__head",
1552
+ "ui-kbd",
1553
+ "ui-keep",
1554
+ "ui-key-value",
1555
+ "ui-label",
1556
+ "ui-legend",
1557
+ "ui-legend--compact",
1558
+ "ui-legend--diverging",
1559
+ "ui-legend--gradient",
1560
+ "ui-legend--interactive",
1561
+ "ui-legend--threshold",
1562
+ "ui-legend--vertical",
1563
+ "ui-legend--with-values",
1564
+ "ui-legend__caption",
1565
+ "ui-legend__item",
1566
+ "ui-legend__label",
1567
+ "ui-legend__swatch",
1568
+ "ui-legend__swatch--1",
1569
+ "ui-legend__swatch--2",
1570
+ "ui-legend__swatch--3",
1571
+ "ui-legend__swatch--4",
1572
+ "ui-legend__swatch--5",
1573
+ "ui-legend__swatch--6",
1574
+ "ui-legend__swatch--7",
1575
+ "ui-legend__swatch--8",
1576
+ "ui-legend__swatch--circle",
1577
+ "ui-legend__swatch--line",
1578
+ "ui-legend__symbol",
1579
+ "ui-legend__tick",
1580
+ "ui-legend__ticks",
1581
+ "ui-legend__title",
1582
+ "ui-legend__track",
1583
+ "ui-legend__value",
1584
+ "ui-lightbox",
1585
+ "ui-lightbox__close",
1586
+ "ui-link",
1587
+ "ui-link--arrow",
1588
+ "ui-link--cta",
1589
+ "ui-marginnote",
1590
+ "ui-mark",
1591
+ "ui-mark--accent",
1592
+ "ui-mark--box",
1593
+ "ui-mark--danger",
1594
+ "ui-mark--draw",
1595
+ "ui-mark--info",
1596
+ "ui-mark--muted",
1597
+ "ui-mark--strike",
1598
+ "ui-mark--success",
1599
+ "ui-mark--underline",
1600
+ "ui-mark--warning",
1601
+ "ui-matrix",
1602
+ "ui-menu",
1603
+ "ui-menu-host",
1604
+ "ui-menu__item",
1605
+ "ui-menu__label",
1606
+ "ui-menu__sep",
1607
+ "ui-meta",
1608
+ "ui-meta__item",
1609
+ "ui-meter",
1610
+ "ui-meter--accent",
1611
+ "ui-meter--danger",
1612
+ "ui-meter--info",
1613
+ "ui-meter--success",
1614
+ "ui-meter--warning",
1615
+ "ui-meter__fill",
1616
+ "ui-meter__label",
1617
+ "ui-meter__row",
1618
+ "ui-meter__value",
1619
+ "ui-modal",
1620
+ "ui-modal--drawer",
1621
+ "ui-modal__body",
1622
+ "ui-modal__close",
1623
+ "ui-modal__foot",
1624
+ "ui-modal__head",
1625
+ "ui-modal__title",
1626
+ "ui-mono",
1627
+ "ui-muted",
1628
+ "ui-num",
1629
+ "ui-num--muted",
1630
+ "ui-num--neg",
1631
+ "ui-num--pos",
1632
+ "ui-origin-label",
1633
+ "ui-origin-label--ai",
1634
+ "ui-pagehead",
1635
+ "ui-pagehead__actions",
1636
+ "ui-pagehead__title",
1637
+ "ui-pagination",
1638
+ "ui-pagination__item",
1639
+ "ui-panel",
1640
+ "ui-panel__head",
1641
+ "ui-popover",
1642
+ "ui-print-exact",
1643
+ "ui-print-only",
1644
+ "ui-progress",
1645
+ "ui-progress--indeterminate",
1646
+ "ui-progress__bar",
1647
+ "ui-property",
1648
+ "ui-property__label",
1649
+ "ui-property__value",
1650
+ "ui-prose",
1651
+ "ui-prose--compact",
1652
+ "ui-provenance",
1653
+ "ui-provenance__item",
1654
+ "ui-quote",
1655
+ "ui-quote__cite",
1656
+ "ui-range",
1657
+ "ui-ratio",
1658
+ "ui-readout",
1659
+ "ui-reasoning",
1660
+ "ui-reasoning__body",
1661
+ "ui-report",
1662
+ "ui-report--compact",
1663
+ "ui-report--numbered",
1664
+ "ui-report__appendix",
1665
+ "ui-report__caption",
1666
+ "ui-report__cover",
1667
+ "ui-report__cover--compact",
1668
+ "ui-report__evidence",
1669
+ "ui-report__figure",
1670
+ "ui-report__finding",
1671
+ "ui-report__footnotes",
1672
+ "ui-report__head",
1673
+ "ui-report__meta",
1674
+ "ui-report__section",
1675
+ "ui-report__section--unnumbered",
1676
+ "ui-report__section-head",
1677
+ "ui-report__sources",
1678
+ "ui-report__subtitle",
1679
+ "ui-report__summary",
1680
+ "ui-report__title",
1681
+ "ui-report__toc",
1682
+ "ui-reveal",
1683
+ "ui-screen-only",
1684
+ "ui-scroll-progress",
1685
+ "ui-scroll-reveal",
1686
+ "ui-search",
1687
+ "ui-segmented",
1688
+ "ui-segmented__option",
1689
+ "ui-sel",
1690
+ "ui-sel--maybe",
1691
+ "ui-sel--off",
1692
+ "ui-sel--on",
1693
+ "ui-select",
1694
+ "ui-selectionbar",
1695
+ "ui-selectionbar__actions",
1696
+ "ui-selectionbar__count",
1697
+ "ui-shortcut",
1698
+ "ui-shortcut__sep",
1699
+ "ui-sidebar",
1700
+ "ui-sidenote",
1701
+ "ui-sidenote__ref",
1702
+ "ui-sitefooter",
1703
+ "ui-sitefooter__links",
1704
+ "ui-siteheader",
1705
+ "ui-siteheader--sticky",
1706
+ "ui-siteheader__actions",
1707
+ "ui-siteheader__brand",
1708
+ "ui-sitemenu",
1709
+ "ui-sitemenu__panel",
1710
+ "ui-sitenav",
1711
+ "ui-skeleton",
1712
+ "ui-skiplink",
1713
+ "ui-source-card",
1714
+ "ui-source-card__actions",
1715
+ "ui-source-card__excerpt",
1716
+ "ui-source-card__origin",
1717
+ "ui-source-card__time",
1718
+ "ui-source-card__title",
1719
+ "ui-source-list",
1720
+ "ui-source-list__item",
1721
+ "ui-spark",
1722
+ "ui-spark__bar",
1723
+ "ui-spark__bar--accent",
1724
+ "ui-spark__bar--neg",
1725
+ "ui-spark__bar--pos",
1726
+ "ui-spinner",
1727
+ "ui-spotlight",
1728
+ "ui-spotlight--ring",
1729
+ "ui-spotlight__hole",
1730
+ "ui-src",
1731
+ "ui-src--conflict",
1732
+ "ui-src--generated",
1733
+ "ui-src--reviewed",
1734
+ "ui-src--stale",
1735
+ "ui-src--unverified",
1736
+ "ui-src--verified",
1737
+ "ui-stack",
1738
+ "ui-stagger",
1739
+ "ui-stagger--auto",
1740
+ "ui-stat",
1741
+ "ui-stat__delta",
1742
+ "ui-stat__label",
1743
+ "ui-stat__value",
1744
+ "ui-state",
1745
+ "ui-state--busy",
1746
+ "ui-state--conflict",
1747
+ "ui-state--error",
1748
+ "ui-state--locked",
1749
+ "ui-state--needs-review",
1750
+ "ui-state--offline",
1751
+ "ui-state--queued",
1752
+ "ui-state--reviewed",
1753
+ "ui-state--saved",
1754
+ "ui-state--saving",
1755
+ "ui-state--stale",
1756
+ "ui-state__detail",
1757
+ "ui-state__label",
1758
+ "ui-statgrid",
1759
+ "ui-status",
1760
+ "ui-steps",
1761
+ "ui-steps__item",
1762
+ "ui-steps__item--done",
1763
+ "ui-surface",
1764
+ "ui-switch",
1765
+ "ui-switch__thumb",
1766
+ "ui-switch__track",
1767
+ "ui-switcher",
1768
+ "ui-syncbar",
1769
+ "ui-tab",
1770
+ "ui-table",
1771
+ "ui-table--comfortable",
1772
+ "ui-table--dense",
1773
+ "ui-table--lined",
1774
+ "ui-table--selectable",
1775
+ "ui-table-wrap",
1776
+ "ui-table-wrap--loading",
1777
+ "ui-table__empty",
1778
+ "ui-table__select",
1779
+ "ui-table__sort",
1780
+ "ui-table__toolbar",
1781
+ "ui-tabs",
1782
+ "ui-tabs__list",
1783
+ "ui-tabs__panel",
1784
+ "ui-tag",
1785
+ "ui-tag--accent",
1786
+ "ui-tags",
1787
+ "ui-term",
1788
+ "ui-textarea",
1789
+ "ui-textref",
1790
+ "ui-themetoggle__button",
1791
+ "ui-themetoggle__label",
1792
+ "ui-themetoggle__prefix",
1793
+ "ui-themetoggle__thumb",
1794
+ "ui-themetoggle__track",
1795
+ "ui-timeline",
1796
+ "ui-timeline__item",
1797
+ "ui-timeline__time",
1798
+ "ui-toast",
1799
+ "ui-toast--accent",
1800
+ "ui-toast--danger",
1801
+ "ui-toast--info",
1802
+ "ui-toast--success",
1803
+ "ui-toast--warning",
1804
+ "ui-toast-stack",
1805
+ "ui-toast-stack--assertive",
1806
+ "ui-toast__close",
1807
+ "ui-toast__title",
1808
+ "ui-toc",
1809
+ "ui-toc__link",
1810
+ "ui-toc__list",
1811
+ "ui-toc__title",
1812
+ "ui-tool-call",
1813
+ "ui-tool-call__body",
1814
+ "ui-tool-call__name",
1815
+ "ui-tool-call__status",
1816
+ "ui-tool-log",
1817
+ "ui-tooltip",
1818
+ "ui-tooltip__bubble",
1819
+ "ui-tour-note",
1820
+ "ui-tour-note__actions",
1821
+ "ui-tour-note__body",
1822
+ "ui-tour-note__step",
1823
+ "ui-tour-note__title",
1824
+ "ui-tree",
1825
+ "ui-tree__branch",
1826
+ "ui-tree__label",
1827
+ "ui-tree__leaf",
1828
+ "ui-tree__summary",
1829
+ "ui-visually-hidden",
1830
+ "ui-vt"
1831
+ ],
1832
+ "states": [
1833
+ {
1834
+ "class": "is-num",
1835
+ "scope": ".ui-table cell",
1836
+ "effect": "tabular figures, end-aligned (the canonical numeric cell)"
1837
+ },
1838
+ {
1839
+ "class": "is-pos",
1840
+ "scope": ".ui-table cell, .ui-stat__delta, .ui-app-metric__delta",
1841
+ "effect": "positive-delta tone"
1842
+ },
1843
+ {
1844
+ "class": "is-neg",
1845
+ "scope": ".ui-table cell, .ui-stat__delta, .ui-app-metric__delta",
1846
+ "effect": "negative-delta tone"
1847
+ },
1848
+ {
1849
+ "class": "is-key",
1850
+ "scope": ".ui-table cell",
1851
+ "effect": "emphasised key column"
1852
+ },
1853
+ {
1854
+ "class": "is-open",
1855
+ "scope": "controlled .ui-modal / .ui-popover",
1856
+ "effect": "open state (focus-trap is the host's)"
1857
+ },
1858
+ {
1859
+ "class": "is-active",
1860
+ "scope": ".ui-tab and other selectable items",
1861
+ "effect": "active/selected state"
1862
+ },
1863
+ {
1864
+ "class": "is-inactive",
1865
+ "scope": "interactive .ui-legend__item",
1866
+ "effect": "host-set toggled-off state"
1867
+ },
1868
+ {
1869
+ "class": "is-on",
1870
+ "scope": ".ui-dotbar segment (<i>)",
1871
+ "effect": "lit segment — author-writable for a static bar, or set by a data binding"
1872
+ },
1873
+ {
1874
+ "class": "is-visible",
1875
+ "scope": ".ui-reveal",
1876
+ "effect": "revealed state",
1877
+ "managed": "runtime"
1878
+ },
1879
+ {
1880
+ "class": "is-in",
1881
+ "scope": ".ui-matrix",
1882
+ "effect": "reveal-complete state",
1883
+ "managed": "runtime"
1884
+ },
1885
+ {
1886
+ "class": "is-leaving",
1887
+ "scope": ".ui-toast",
1888
+ "effect": "exit-animation state",
1889
+ "managed": "runtime"
1890
+ }
1891
+ ],
1892
+ "customProperties": [
1893
+ {
1894
+ "name": "--chart-color",
1895
+ "on": ".ui-legend__swatch",
1896
+ "type": "color",
1897
+ "example": "var(--chart-1)",
1898
+ "note": "legend-key series colour — use a --chart-* token, never a raw hex"
1899
+ },
1900
+ {
1901
+ "name": "--chart-pattern",
1902
+ "on": ".ui-legend__swatch",
1903
+ "type": "image",
1904
+ "example": "var(--chart-pattern-1)",
1905
+ "note": "redundant non-colour channel — pair pattern N with colour N (WCAG 1.4.1)"
1906
+ },
1907
+ {
1908
+ "name": "--value",
1909
+ "on": ".ui-meter, .ui-progress",
1910
+ "type": "number 0..100",
1911
+ "example": "92",
1912
+ "note": "measured value as a UNITLESS number 0..100 (registered <number>, never a %). Set it on the meter/progress host — it inherits to the __fill/__bar. Prefer attrs.meter(value)/attrs.progress(value) from @ponchia/ui/classes, which sets it plus role + aria-valuenow/min/max together."
1913
+ },
1914
+ {
1915
+ "name": "--icon-mask",
1916
+ "on": ".ui-icon",
1917
+ "type": "image",
1918
+ "example": "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4'/%3E%3C/svg%3E\")",
1919
+ "required": true,
1920
+ "note": "REQUIRED — the bitmap masked into the icon; a bare .ui-icon with no --icon-mask paints a solid currentColor square, not a glyph. The value is an image (a mask url(); there is no --glyph-* token). Use renderGlyph(name, { render: 'mask' }) to build it from a named glyph."
1921
+ },
1922
+ {
1923
+ "name": "--icon-size",
1924
+ "on": ".ui-icon",
1925
+ "type": "length",
1926
+ "example": "1.25rem",
1927
+ "note": "icon box size (default 1em)"
1928
+ },
1929
+ {
1930
+ "name": "--i",
1931
+ "on": ".ui-stagger > *",
1932
+ "type": "integer",
1933
+ "example": "2",
1934
+ "note": "per-child stagger index — sets each child's animation-delay (× 60ms). Omit and use `.ui-stagger--auto` to derive it from :nth-child instead."
1935
+ },
1936
+ {
1937
+ "name": "--ui-vt-name",
1938
+ "on": ".ui-vt",
1939
+ "type": "custom-ident",
1940
+ "example": "hero-image",
1941
+ "required": true,
1942
+ "note": "REQUIRED — the view-transition-name; .ui-vt is inert (no transition) without it"
1943
+ },
1944
+ {
1945
+ "name": "--v",
1946
+ "on": ".ui-spark__bar",
1947
+ "type": "number 0..1",
1948
+ "example": "0.7",
1949
+ "required": true,
1950
+ "note": "REQUIRED — the normalised bar height (0..1). The host normalises; Bronto only paints. A bar with no --v collapses to the 1px floor. Pair every spark with a host-written role=\"img\" + aria-label."
1951
+ },
1952
+ {
1953
+ "name": "--sidenote-width",
1954
+ "on": ".ui-sidenote, .ui-marginnote",
1955
+ "type": "length",
1956
+ "example": "12rem",
1957
+ "note": "width of the floated margin note on wide viewports (default 12rem). The container must reserve a matching inline-end gutter — see docs/sidenote.md."
1958
+ },
1959
+ {
1960
+ "name": "--textref-highlight",
1961
+ "on": ".ui-textref",
1962
+ "type": "color",
1963
+ "example": "var(--accent-soft)",
1964
+ "note": "the ::target-text highlight wash for the matched cited sentence (default var(--accent-soft)). The host builds the #:~:text= href; Bronto owns the paint — see docs/textref.md."
1965
+ },
1966
+ {
1967
+ "name": "--v",
1968
+ "on": ".ui-bullet__measure",
1969
+ "type": "number 0..1",
1970
+ "example": "0.62",
1971
+ "required": true,
1972
+ "note": "REQUIRED — the normalised measure (0..1). The host normalises; Bronto only paints. A measure with no --v collapses to the 2px floor. Pair every bullet with a host-written role=\"img\" + aria-label."
1973
+ },
1974
+ {
1975
+ "name": "--t",
1976
+ "on": ".ui-bullet__target",
1977
+ "type": "number 0..1",
1978
+ "example": "0.9",
1979
+ "note": "the normalised target tick position (0..1). Omit to drop the target mark."
1980
+ },
1981
+ {
1982
+ "name": "--band-lo",
1983
+ "on": ".ui-bullet",
1984
+ "type": "number 0..1",
1985
+ "example": "0.5",
1986
+ "note": "the lower qualitative-band boundary (0..1, default 0.5). Bands are grayscale by Few-design — meaning lives in the required aria-label."
1987
+ },
1988
+ {
1989
+ "name": "--band-hi",
1990
+ "on": ".ui-bullet",
1991
+ "type": "number 0..1",
1992
+ "example": "0.8",
1993
+ "note": "the upper qualitative-band boundary (0..1, default 0.8). Must be ≥ --band-lo."
1994
+ },
1995
+ {
1996
+ "name": "--toc-top",
1997
+ "on": ".ui-toc",
1998
+ "type": "length",
1999
+ "example": "1rem",
2000
+ "note": "the sticky inset from the top of the scroll container (default var(--space-md))."
2001
+ },
2002
+ {
2003
+ "name": "--stack-gap",
2004
+ "on": ".ui-stack",
2005
+ "type": "length",
2006
+ "example": "1.5rem",
2007
+ "note": "vertical rhythm between stacked children (default var(--space-md))"
2008
+ },
2009
+ {
2010
+ "name": "--cluster-gap",
2011
+ "on": ".ui-cluster",
2012
+ "type": "length",
2013
+ "example": "0.75rem",
2014
+ "note": "gap between clustered inline items (default var(--space-xs))"
2015
+ },
2016
+ {
2017
+ "name": "--grid-min",
2018
+ "on": ".ui-grid",
2019
+ "type": "length",
2020
+ "example": "12rem",
2021
+ "note": "minimum column width before the auto-fit grid wraps (default 16rem)"
2022
+ },
2023
+ {
2024
+ "name": "--grid-gap",
2025
+ "on": ".ui-grid",
2026
+ "type": "length",
2027
+ "example": "1rem",
2028
+ "note": "gap between grid cells (default var(--space-md))"
2029
+ },
2030
+ {
2031
+ "name": "--sidebar-width",
2032
+ "on": ".ui-sidebar",
2033
+ "type": "length",
2034
+ "example": "18rem",
2035
+ "note": "natural width of the sidebar child (default 16rem)"
2036
+ },
2037
+ {
2038
+ "name": "--sidebar-min",
2039
+ "on": ".ui-sidebar",
2040
+ "type": "percentage | length",
2041
+ "example": "50%",
2042
+ "note": "min width of the main child before the two stack (default 60%)"
2043
+ },
2044
+ {
2045
+ "name": "--sidebar-gap",
2046
+ "on": ".ui-sidebar",
2047
+ "type": "length",
2048
+ "example": "1.5rem",
2049
+ "note": "gap between the sidebar and the main child (default var(--space-md))"
2050
+ },
2051
+ {
2052
+ "name": "--switcher-gap",
2053
+ "on": ".ui-switcher",
2054
+ "type": "length",
2055
+ "example": "1.5rem",
2056
+ "note": "gap between switcher children in both row and column states (default var(--space-md))"
2057
+ },
2058
+ {
2059
+ "name": "--switcher-min",
2060
+ "on": ".ui-switcher",
2061
+ "type": "length",
2062
+ "example": "20rem",
2063
+ "note": "threshold below which all children switch from row to column together (default 24rem)"
2064
+ },
2065
+ {
2066
+ "name": "--center-max",
2067
+ "on": ".ui-center",
2068
+ "type": "length",
2069
+ "example": "70ch",
2070
+ "note": "max measure of the centred column — the INNER width; gutters add to the total (content-box) (default 64rem)"
2071
+ },
2072
+ {
2073
+ "name": "--center-gutter",
2074
+ "on": ".ui-center",
2075
+ "type": "length",
2076
+ "example": "2rem",
2077
+ "note": "inline padding either side of the centred column (default var(--space-md))"
2078
+ },
2079
+ {
2080
+ "name": "--ratio",
2081
+ "on": ".ui-ratio",
2082
+ "type": "ratio",
2083
+ "example": "4 / 3",
2084
+ "note": "intrinsic aspect ratio of the box (default 16 / 9). Give .ui-ratio EXACTLY ONE child — only :first-child is sized to fill; a second child silently breaks the ratio. For a caption/overlay, position it absolutely inside the single child"
2085
+ },
2086
+ {
2087
+ "name": "--app-rail",
2088
+ "on": ".ui-app-shell",
2089
+ "type": "length",
2090
+ "example": "16rem",
2091
+ "note": "width of the app-shell sidebar rail column (default 14rem)"
2092
+ },
2093
+ {
2094
+ "name": "--container",
2095
+ "on": ".ui-container",
2096
+ "type": "length",
2097
+ "example": "72rem",
2098
+ "note": "max inline width of the default page frame, border-box (default 72rem)"
2099
+ },
2100
+ {
2101
+ "name": "--container-narrow",
2102
+ "on": ".ui-container--narrow",
2103
+ "type": "length",
2104
+ "example": "44rem",
2105
+ "note": "max inline width of the narrow page frame (default 44rem)"
2106
+ },
2107
+ {
2108
+ "name": "--container-wide",
2109
+ "on": ".ui-container--wide",
2110
+ "type": "length",
2111
+ "example": "82rem",
2112
+ "note": "max inline width of the wide page frame (default 82rem)"
2113
+ },
2114
+ {
2115
+ "name": "--av-size",
2116
+ "on": ".ui-avatar",
2117
+ "type": "length",
2118
+ "example": "2.6rem",
2119
+ "note": "avatar box size; the initials font-size derives from it (default 2.2rem; --sm 1.5rem, --lg 3.2rem)"
2120
+ },
2121
+ {
2122
+ "name": "--dotmatrix-cols",
2123
+ "on": ".ui-dotmatrix",
2124
+ "type": "number",
2125
+ "example": "8",
2126
+ "note": "columns in the dot grid — the density knob (default 12)"
2127
+ },
2128
+ {
2129
+ "name": "--dotmatrix-gap",
2130
+ "on": ".ui-dotmatrix",
2131
+ "type": "length",
2132
+ "example": "0.3rem",
2133
+ "note": "gap between dots (default 0.5rem; set 0 with --dotmatrix-dot-radius:0 to fuse the dots)"
2134
+ },
2135
+ {
2136
+ "name": "--dotmatrix-dot",
2137
+ "on": ".ui-dotmatrix",
2138
+ "type": "length",
2139
+ "example": "0.5rem",
2140
+ "note": "fixed dot length for intrinsic sizing (default minmax(0, 1fr) — fluid to the container)"
2141
+ },
2142
+ {
2143
+ "name": "--dotmatrix-dot-radius",
2144
+ "on": ".ui-dotmatrix",
2145
+ "type": "length",
2146
+ "example": "0",
2147
+ "note": "dot corner radius (default 50% = round; 0 = square pixels)"
2148
+ },
2149
+ {
2150
+ "name": "--dotmatrix-glow",
2151
+ "on": ".ui-dotmatrix",
2152
+ "type": "length",
2153
+ "example": "2px",
2154
+ "note": "phosphor bloom radius around lit cells (default 0 = off)"
2155
+ },
2156
+ {
2157
+ "name": "--dotmatrix-pulse-min",
2158
+ "on": ".ui-dotmatrix",
2159
+ "type": "number",
2160
+ "example": "0.4",
2161
+ "note": "opacity floor the --pulse animation dips to (default 0.55)"
2162
+ },
2163
+ {
2164
+ "name": "--dotmatrix-reveal-step",
2165
+ "on": ".ui-dotmatrix",
2166
+ "type": "time",
2167
+ "example": "5ms",
2168
+ "note": "per-cell scan cadence for the reveal animation (default 3ms)"
2169
+ },
2170
+ {
2171
+ "name": "--ds-box",
2172
+ "on": ".ui-dotspinner",
2173
+ "type": "length",
2174
+ "example": "2.6rem",
2175
+ "note": "dot-spinner box size (default 1.6rem; the --lg modifier sets 2.6rem)"
2176
+ },
2177
+ {
2178
+ "name": "--ds-dot",
2179
+ "on": ".ui-dotspinner",
2180
+ "type": "length",
2181
+ "example": "0.42rem",
2182
+ "note": "dot-spinner dot size (default 0.26rem)"
2183
+ },
2184
+ {
2185
+ "name": "--crosshair-color",
2186
+ "on": ".ui-crosshair",
2187
+ "type": "color",
2188
+ "example": "var(--accent)",
2189
+ "note": "crosshair rule + badge colour (default var(--accent); the --muted modifier uses --line-strong)"
2190
+ },
2191
+ {
2192
+ "name": "--connector-color",
2193
+ "on": ".ui-connector",
2194
+ "type": "color",
2195
+ "example": "var(--accent)",
2196
+ "note": "leader-line stroke + label colour (default var(--line-strong); the --muted/--accent modifiers reset it)"
2197
+ },
2198
+ {
2199
+ "name": "--connector-width",
2200
+ "on": ".ui-connector",
2201
+ "type": "number",
2202
+ "example": "2",
2203
+ "note": "leader-line stroke width (default 1.5)"
2204
+ },
2205
+ {
2206
+ "name": "--mark-color",
2207
+ "on": ".ui-mark",
2208
+ "type": "color",
2209
+ "example": "var(--accent)",
2210
+ "note": "hand-drawn mark colour; a tone modifier sets it (no base default — each draw style falls back to --line-strong)"
2211
+ },
2212
+ {
2213
+ "name": "--spot-pad",
2214
+ "on": ".ui-spotlight",
2215
+ "type": "length",
2216
+ "example": "12px",
2217
+ "note": "padding between the spotlit target and the cutout edge (default 8px)"
2218
+ },
2219
+ {
2220
+ "name": "--spot-radius",
2221
+ "on": ".ui-spotlight",
2222
+ "type": "length",
2223
+ "example": "12px",
2224
+ "note": "spotlight cutout corner radius (default var(--radius-md))"
2225
+ },
2226
+ {
2227
+ "name": "--spot-backdrop",
2228
+ "on": ".ui-spotlight",
2229
+ "type": "color",
2230
+ "example": "color-mix(in srgb, #000 70%, transparent)",
2231
+ "note": "the dimming backdrop colour outside the cutout (default 55% black)"
2232
+ }
2233
+ ],
2234
+ "rootAttributes": [
2235
+ {
2236
+ "name": "data-theme",
2237
+ "on": ":root",
2238
+ "values": [
2239
+ "light",
2240
+ "dark"
2241
+ ],
2242
+ "note": "colour theme. Unset follows the OS via prefers-color-scheme; set it to force one."
2243
+ },
2244
+ {
2245
+ "name": "data-density",
2246
+ "on": ":root or any subtree",
2247
+ "values": [
2248
+ "compact",
2249
+ "comfortable"
2250
+ ],
2251
+ "note": "spacing-scale preset (the middle scale is the default when unset). Scoped per-subtree, unlike the others."
2252
+ },
2253
+ {
2254
+ "name": "data-surface",
2255
+ "on": ":root",
2256
+ "values": [
2257
+ "oled"
2258
+ ],
2259
+ "note": "opt into a true-black surface ramp for OLED. Unset = the standard elevated dark base."
2260
+ },
2261
+ {
2262
+ "name": "data-contrast",
2263
+ "on": ":root",
2264
+ "values": [
2265
+ "high"
2266
+ ],
2267
+ "note": "raise contrast of lines/text for low-vision or glare. Unset = the standard ramp."
2268
+ },
2269
+ {
2270
+ "name": "data-bronto-skin",
2271
+ "on": ":root",
2272
+ "values": [
2273
+ "amber-crt",
2274
+ "phosphor-green",
2275
+ "e-ink"
2276
+ ],
2277
+ "note": "opt-in display colorway — requires @ponchia/ui/css/skins.css. Unset (the design target) = the default Nothing aesthetic."
2278
+ },
2279
+ {
2280
+ "name": "--accent",
2281
+ "on": ":root or a theme root",
2282
+ "values": [
2283
+ "<color>"
2284
+ ],
2285
+ "note": "the single brand knob; the accent family derives from it. Re-brand at :root/[data-theme] (a subtree override is only a partial re-brand). See docs/theming.md."
2286
+ }
2287
+ ],
2288
+ "behaviorAttributes": [
2289
+ {
2290
+ "name": "data-bronto-open",
2291
+ "on": "a trigger (button/link)",
2292
+ "value": "id of the target <dialog>",
2293
+ "behavior": "initDialog",
2294
+ "note": "click calls showModal() on the named <dialog>; focus returns to the trigger on every close path"
2295
+ },
2296
+ {
2297
+ "name": "data-bronto-close",
2298
+ "on": "a button inside a <dialog>",
2299
+ "behavior": "initDialog",
2300
+ "note": "click closes the nearest enclosing <dialog>"
2301
+ },
2302
+ {
2303
+ "name": "data-bronto-dialog-light",
2304
+ "on": "a <dialog>",
2305
+ "behavior": "initDialog",
2306
+ "note": "opt into backdrop light-dismiss (click the backdrop to close)"
2307
+ },
2308
+ {
2309
+ "name": "data-bronto-modal",
2310
+ "on": "a controlled (non-<dialog>) .ui-modal overlay",
2311
+ "behavior": "initModal",
2312
+ "note": "inert focus-trap + .is-open toggling for a modal that is not a native <dialog>; needs an accessible name"
2313
+ },
2314
+ {
2315
+ "name": "data-bronto-menu",
2316
+ "on": "a native <details> dropdown",
2317
+ "behavior": "initMenu",
2318
+ "note": "adds outside-click / Escape close affordances to a <details>-based .ui-menu"
2319
+ },
2320
+ {
2321
+ "name": "data-bronto-popover",
2322
+ "on": "a trigger",
2323
+ "value": "id of the .ui-popover panel",
2324
+ "behavior": "initPopover",
2325
+ "note": "collision-aware NON-modal popover (no focus trap); top-layer via the native popover attr when present, else an .is-open class. Author an accessible name on the panel."
2326
+ },
2327
+ {
2328
+ "name": "data-bronto-command",
2329
+ "on": "a .ui-command palette host wrapping its input",
2330
+ "behavior": "initCommand",
2331
+ "note": "wires the filter input + active-option keyboard model"
2332
+ },
2333
+ {
2334
+ "name": "data-bronto-dismiss",
2335
+ "on": "a button",
2336
+ "value": "optional CSS selector of the ancestor to remove",
2337
+ "behavior": "dismissible",
2338
+ "note": "click removes the nearest matching ancestor (or, with no value, the nearest [data-bronto-dismissible])"
2339
+ },
2340
+ {
2341
+ "name": "data-bronto-disclosure",
2342
+ "on": "a trigger",
2343
+ "value": "id of the element it toggles",
2344
+ "behavior": "initDisclosure",
2345
+ "note": "toggles the named element + keeps aria-expanded in sync"
2346
+ },
2347
+ {
2348
+ "name": "data-bronto-tabs",
2349
+ "on": "a .ui-tabs group host",
2350
+ "behavior": "initTabs",
2351
+ "note": "adds the WAI-ARIA Tabs keyboard model (roving tabindex, Arrow/Home/End, aria-selected, panel hidden sync) over .ui-tab[data-tab] / .ui-tabs__panel[data-panel]. Without it the CSS tabs are mouse-only with no roving focus."
2352
+ },
2353
+ {
2354
+ "name": "data-bronto-theme-toggle",
2355
+ "on": "a .ui-themetoggle__button (or any control)",
2356
+ "value": "optional 'light' | 'dark' to force a specific theme instead of toggling",
2357
+ "behavior": "initThemeToggle",
2358
+ "note": "click toggles or sets data-theme on <html> and persists it; without it the button is inert. Pair with applyStoredTheme() before paint to avoid a flash."
2359
+ },
2360
+ {
2361
+ "name": "data-bronto-validate",
2362
+ "on": "a <form>",
2363
+ "behavior": "initFormValidation",
2364
+ "note": "progressive-enhancement validation: suppresses native bubbles, writes validationMessage into the field error slot, builds the error summary. With JS off the form still validates natively."
2365
+ },
2366
+ {
2367
+ "name": "data-bronto-error",
2368
+ "on": "an empty error slot inside a .ui-field (canonical: <p class=\"ui-hint\" data-bronto-error>)",
2369
+ "behavior": "initFormValidation",
2370
+ "note": "the dedicated per-field error node initFormValidation fills + links via aria-describedby (and unlinks when the field is valid). Preferred over borrowing the .ui-hint help slot."
2371
+ },
2372
+ {
2373
+ "name": "data-bronto-error-summary",
2374
+ "on": "a .ui-error-summary inside the form",
2375
+ "behavior": "initFormValidation",
2376
+ "note": "on an invalid submit, filled with role=alert + tabindex=-1 in-page links to each bad field and focused."
2377
+ },
2378
+ {
2379
+ "name": "data-bronto-combobox",
2380
+ "on": "a .ui-combobox host (wrapping the input + listbox)",
2381
+ "behavior": "initCombobox",
2382
+ "note": "editable combobox with a filtered listbox (APG pattern). The input needs a real accessible name (a placeholder does not count — it warns)."
2383
+ },
2384
+ {
2385
+ "name": "data-bronto-combobox-live",
2386
+ "on": "the [data-bronto-combobox] host",
2387
+ "behavior": "initCombobox",
2388
+ "note": "opt-in: a MutationObserver re-reads option nodes in place for async/replaced results, instead of a full re-init. Off by default."
2389
+ },
2390
+ {
2391
+ "name": "data-bronto-sortable",
2392
+ "on": "a .ui-table <table>",
2393
+ "behavior": "initTableSort",
2394
+ "note": "click a header .ui-table__sort button to sort; numeric columns via data-sort=\"num\" or .is-num cells. Use data-sort-value on a cell for a canonical sort key (accepts a European decimal comma)."
2395
+ },
2396
+ {
2397
+ "name": "data-bronto-select",
2398
+ "on": "a row checkbox inside a [data-bronto-sortable] table",
2399
+ "behavior": "initTableSort",
2400
+ "note": "toggling it sets the row aria-selected and syncs the header select-all state; emits bronto:selectionchange."
2401
+ },
2402
+ {
2403
+ "name": "data-bronto-select-all",
2404
+ "on": "the header checkbox of a [data-bronto-sortable] table",
2405
+ "behavior": "initTableSort",
2406
+ "note": "toggles every [data-bronto-select] row box; goes indeterminate on a partial selection."
2407
+ },
2408
+ {
2409
+ "name": "data-bronto-dismissible",
2410
+ "on": "the ancestor a [data-bronto-dismiss] button removes",
2411
+ "behavior": "dismissible",
2412
+ "note": "marks the default removal target when the dismiss button has no selector value. A cancelable bronto:dismiss fires first."
2413
+ },
2414
+ {
2415
+ "name": "data-bronto-legend",
2416
+ "on": "a .ui-legend host",
2417
+ "behavior": "initLegend",
2418
+ "note": "each .ui-legend__item is a <button aria-pressed>; clicking flips aria-pressed + .is-inactive and dispatches bronto:legend:toggle { series, active }. The host runs the actual series show/hide."
2419
+ },
2420
+ {
2421
+ "name": "data-bronto-crosshair",
2422
+ "on": "a plot containing a .ui-crosshair overlay",
2423
+ "behavior": "initCrosshair",
2424
+ "note": "tracks the pointer, sets --crosshair-x/y on the overlay, and emits bronto:crosshair:move { x, y, fx, fy }. Reports WHERE the pointer is — it does not map pixels to data."
2425
+ },
2426
+ {
2427
+ "name": "data-bronto-connector",
2428
+ "on": "a .ui-connector SVG overlay",
2429
+ "value": "via child data-from / data-to (element ids), optional data-shape / data-*-side",
2430
+ "behavior": "initConnectors",
2431
+ "note": "draws + keeps leader lines in sync between the referenced elements; re-routes on resize/scroll."
2432
+ },
2433
+ {
2434
+ "name": "data-bronto-spotlight",
2435
+ "on": "a .ui-spotlight overlay",
2436
+ "value": "via data-target (id of the element to highlight)",
2437
+ "behavior": "initSpotlight",
2438
+ "note": "measures the target and sets --spot-x/y/w/h on the overlay, re-placing on resize/scroll. Positioning only — not a tour engine."
2439
+ },
2440
+ {
2441
+ "name": "data-bronto-carousel",
2442
+ "on": "a carousel host containing a .ui-carousel__viewport",
2443
+ "behavior": "initCarousel",
2444
+ "note": "scroll-snap carousel with prev/next + a status counter; the lightbox dialog uses it too."
2445
+ },
2446
+ {
2447
+ "name": "data-bronto-carousel-prev",
2448
+ "on": "a control inside [data-bronto-carousel]",
2449
+ "behavior": "initCarousel",
2450
+ "note": "the previous-slide button."
2451
+ },
2452
+ {
2453
+ "name": "data-bronto-carousel-next",
2454
+ "on": "a control inside [data-bronto-carousel]",
2455
+ "behavior": "initCarousel",
2456
+ "note": "the next-slide button."
2457
+ },
2458
+ {
2459
+ "name": "data-bronto-carousel-loop",
2460
+ "on": "the [data-bronto-carousel] host",
2461
+ "behavior": "initCarousel",
2462
+ "note": "wrap from the last slide back to the first (and vice-versa)."
2463
+ },
2464
+ {
2465
+ "name": "data-bronto-carousel-label",
2466
+ "on": "the [data-bronto-carousel] host",
2467
+ "value": "accessible name for the carousel region",
2468
+ "behavior": "initCarousel",
2469
+ "note": "names the scroll region (defaults to \"Carousel\")."
2470
+ },
2471
+ {
2472
+ "name": "data-bronto-carousel-current",
2473
+ "on": "a .ui-carousel__slide",
2474
+ "behavior": "initCarousel",
2475
+ "note": "marks the slide to start on (defaults to the first)."
2476
+ },
2477
+ {
2478
+ "name": "data-bronto-glyph",
2479
+ "on": "a placeholder element",
2480
+ "value": "glyph name (see GLYPH_NAMES)",
2481
+ "behavior": "initDotGlyph",
2482
+ "note": "expands into a .ui-dotmatrix dot grid; an unknown name is left untouched + warns."
2483
+ },
2484
+ {
2485
+ "name": "data-bronto-glyph-label",
2486
+ "on": "a [data-bronto-glyph] placeholder",
2487
+ "value": "accessible label",
2488
+ "behavior": "initDotGlyph",
2489
+ "note": "exposes the glyph as role=\"img\" with this name; omit for a decorative (aria-hidden) glyph."
2490
+ },
2491
+ {
2492
+ "name": "data-bronto-glyph-solid",
2493
+ "on": "a [data-bronto-glyph] placeholder",
2494
+ "behavior": "initDotGlyph",
2495
+ "note": "render a square, gapless pixel glyph (more legible at small sizes) instead of the dot look."
2496
+ },
2497
+ {
2498
+ "name": "data-bronto-glyph-anim",
2499
+ "on": "a [data-bronto-glyph] placeholder",
2500
+ "value": "'reveal' | 'pulse'",
2501
+ "behavior": "initDotGlyph",
2502
+ "note": "decorative entrance/idle animation (honours prefers-reduced-motion)."
2503
+ }
2504
+ ],
2505
+ "requiredAria": [
2506
+ {
2507
+ "on": ".ui-progress",
2508
+ "require": "role=\"progressbar\" + aria-valuenow/min/max (determinate); role=\"progressbar\" + aria-busy=\"true\" and NO aria-valuenow (indeterminate)",
2509
+ "helper": "attrs.progress(value) / attrs.progress()"
2510
+ },
2511
+ {
2512
+ "on": ".ui-meter",
2513
+ "require": "role=\"meter\" + aria-valuenow/min/max. Caveat: role=\"meter\" has uneven AT support (notably older Safari/VoiceOver), so do NOT rely on it alone — the visible .ui-meter__label + .ui-meter__value carry the meaning and are the real channel (REQUIRED for a labelled meter)",
2514
+ "helper": "attrs.meter(value)"
2515
+ },
2516
+ {
2517
+ "on": ".ui-dotbar",
2518
+ "require": "role=\"progressbar\" + aria-valuenow/min/max (determinate); role=\"progressbar\" + aria-busy=\"true\" and NO aria-valuenow (indeterminate). The <i> segments are decorative — mark the host or segments aria-hidden so AT reads the value, not eight empty spans",
2519
+ "helper": "attrs.dotbar(value) / attrs.dotbar()"
2520
+ },
2521
+ {
2522
+ "on": ".ui-error-summary",
2523
+ "require": "role=\"alert\" + tabindex=\"-1\" on the hand-authored summary so it is announced and focusable when validation fails",
2524
+ "helper": "initFormValidation wires this for the dynamic summary; a static summary needs it hand-set"
2525
+ }
2526
+ ]
2527
+ }