@verndale/accessibility-standards 1.0.0 → 3.0.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 (171) hide show
  1. package/OPERATING.md +3 -1
  2. package/README.md +4 -0
  3. package/bin/accessibility-standards.mjs +1 -1
  4. package/dist/manifest.json +159 -101
  5. package/dist/profiles/ai-orchestration/coverage-manifest.json +724 -68
  6. package/dist/profiles/ai-orchestration/implementation/accessibility.md +825 -10
  7. package/dist/profiles/ai-orchestration/pattern-contracts.json +1015 -343
  8. package/dist/profiles/ai-orchestration/patterns/accordion.md +14 -0
  9. package/dist/profiles/ai-orchestration/patterns/alert.md +14 -0
  10. package/dist/profiles/ai-orchestration/patterns/carousel.md +14 -0
  11. package/dist/profiles/ai-orchestration/patterns/checkbox.md +27 -0
  12. package/dist/profiles/ai-orchestration/patterns/combobox.md +14 -0
  13. package/dist/profiles/ai-orchestration/patterns/consequential-submission.md +15 -1
  14. package/dist/profiles/ai-orchestration/patterns/dialog.md +14 -0
  15. package/dist/profiles/ai-orchestration/patterns/disclosure.md +14 -0
  16. package/dist/profiles/ai-orchestration/patterns/dynamic-status.md +14 -0
  17. package/dist/profiles/ai-orchestration/patterns/field.md +15 -0
  18. package/dist/profiles/ai-orchestration/patterns/image.md +14 -0
  19. package/dist/profiles/ai-orchestration/patterns/listbox.md +14 -0
  20. package/dist/profiles/ai-orchestration/patterns/media-player.md +17 -0
  21. package/dist/profiles/ai-orchestration/patterns/menu-button.md +14 -0
  22. package/dist/profiles/ai-orchestration/patterns/menu.md +30 -0
  23. package/dist/profiles/ai-orchestration/patterns/pagination.md +14 -0
  24. package/dist/profiles/ai-orchestration/patterns/popover.md +15 -0
  25. package/dist/profiles/ai-orchestration/patterns/progress.md +15 -0
  26. package/dist/profiles/ai-orchestration/patterns/radio-group.md +27 -0
  27. package/dist/profiles/ai-orchestration/patterns/slider.md +31 -0
  28. package/dist/profiles/ai-orchestration/patterns/spinbutton.md +28 -0
  29. package/dist/profiles/ai-orchestration/patterns/tabs.md +14 -0
  30. package/dist/profiles/ai-orchestration/patterns/tooltip.md +14 -0
  31. package/dist/profiles/ai-orchestration/patterns/tree-view.md +31 -0
  32. package/dist/profiles/ai-orchestration/patterns/validation.md +15 -0
  33. package/dist/profiles/ai-orchestration/review/accessibility.md +21 -6
  34. package/dist/profiles/ai-orchestration/semantics/accessible-authentication.md +13 -0
  35. package/dist/profiles/ai-orchestration/semantics/accessible-name.md +8 -1
  36. package/dist/profiles/ai-orchestration/semantics/alert.md +7 -0
  37. package/dist/profiles/ai-orchestration/semantics/consequential-action.md +6 -1
  38. package/dist/profiles/ai-orchestration/semantics/consistent-help.md +13 -0
  39. package/dist/profiles/ai-orchestration/semantics/data-table.md +7 -1
  40. package/dist/profiles/ai-orchestration/semantics/dragging-alternative.md +13 -0
  41. package/dist/profiles/ai-orchestration/semantics/expanded-state.md +6 -0
  42. package/dist/profiles/ai-orchestration/semantics/focus.initial.md +4 -0
  43. package/dist/profiles/ai-orchestration/semantics/focus.return.md +4 -0
  44. package/dist/profiles/ai-orchestration/semantics/focus.visible.md +8 -1
  45. package/dist/profiles/ai-orchestration/semantics/form-error.md +8 -1
  46. package/dist/profiles/ai-orchestration/semantics/form-label.md +7 -0
  47. package/dist/profiles/ai-orchestration/semantics/form-required.md +7 -0
  48. package/dist/profiles/ai-orchestration/semantics/headings.md +7 -0
  49. package/dist/profiles/ai-orchestration/semantics/keyboard.escape.md +4 -0
  50. package/dist/profiles/ai-orchestration/semantics/keyboard.md +7 -0
  51. package/dist/profiles/ai-orchestration/semantics/landmarks.md +6 -0
  52. package/dist/profiles/ai-orchestration/semantics/live-status.md +7 -1
  53. package/dist/profiles/ai-orchestration/semantics/media-alternatives.md +11 -0
  54. package/dist/profiles/ai-orchestration/semantics/motion-control.md +8 -1
  55. package/dist/profiles/ai-orchestration/semantics/name-role-value.md +6 -1
  56. package/dist/profiles/ai-orchestration/semantics/native-dialog.md +7 -0
  57. package/dist/profiles/ai-orchestration/semantics/native-elements.md +5 -0
  58. package/dist/profiles/ai-orchestration/semantics/non-text-alternative.md +5 -0
  59. package/dist/profiles/ai-orchestration/semantics/redundant-entry.md +13 -0
  60. package/dist/profiles/ai-orchestration/semantics/roles-states-properties.md +6 -0
  61. package/dist/profiles/ai-orchestration/semantics/selected-state.md +6 -0
  62. package/dist/profiles/ai-orchestration/semantics/target-size.md +6 -1
  63. package/dist/profiles/ai-orchestration/semantics.json +843 -100
  64. package/dist/profiles/ai-orchestration/testing/accessibility.md +33 -3
  65. package/dist/profiles/ai-orchestration/ui-design-brain-bindings.json +836 -0
  66. package/dist/profiles/conductor/a11y-semantics.md +270 -10
  67. package/dist/profiles/conductor/accessibility-quality.md +557 -1
  68. package/dist/profiles/conductor/applicability-matrix.json +270 -230
  69. package/dist/profiles/conductor/coverage-manifest.json +724 -68
  70. package/dist/profiles/conductor/pattern-contracts.json +1015 -343
  71. package/dist/profiles/conductor/patterns/accordion.json +42 -24
  72. package/dist/profiles/conductor/patterns/alert.json +36 -18
  73. package/dist/profiles/conductor/patterns/carousel.json +43 -25
  74. package/dist/profiles/conductor/patterns/checkbox.json +67 -0
  75. package/dist/profiles/conductor/patterns/combobox.json +44 -26
  76. package/dist/profiles/conductor/patterns/consequential-submission.json +41 -22
  77. package/dist/profiles/conductor/patterns/dialog.json +44 -26
  78. package/dist/profiles/conductor/patterns/disclosure.json +40 -22
  79. package/dist/profiles/conductor/patterns/dynamic-status.json +38 -19
  80. package/dist/profiles/conductor/patterns/field.json +58 -22
  81. package/dist/profiles/conductor/patterns/image.json +48 -19
  82. package/dist/profiles/conductor/patterns/listbox.json +42 -24
  83. package/dist/profiles/conductor/patterns/media-player.json +76 -26
  84. package/dist/profiles/conductor/patterns/menu-button.json +41 -23
  85. package/dist/profiles/conductor/patterns/menu.json +78 -0
  86. package/dist/profiles/conductor/patterns/pagination.json +41 -22
  87. package/dist/profiles/conductor/patterns/popover.json +49 -23
  88. package/dist/profiles/conductor/patterns/progress.json +45 -20
  89. package/dist/profiles/conductor/patterns/radio-group.json +69 -0
  90. package/dist/profiles/conductor/patterns/slider.json +84 -0
  91. package/dist/profiles/conductor/patterns/spinbutton.json +74 -0
  92. package/dist/profiles/conductor/patterns/tabs.json +41 -23
  93. package/dist/profiles/conductor/patterns/tooltip.json +38 -20
  94. package/dist/profiles/conductor/patterns/tree-view.json +77 -0
  95. package/dist/profiles/conductor/patterns/validation.json +59 -23
  96. package/dist/profiles/conductor/semantics.json +843 -100
  97. package/dist/profiles/conductor/ui-design-brain-bindings.json +836 -0
  98. package/dist/projection-manifest.json +123 -82
  99. package/dist/requirements-to-implementation.md +8 -0
  100. package/lib/build-manifest.mjs +12 -6
  101. package/lib/build.mjs +21 -7
  102. package/lib/compile-applicability.mjs +131 -10
  103. package/lib/coverage.mjs +20 -0
  104. package/lib/digest.mjs +8 -0
  105. package/lib/index.mjs +1 -1
  106. package/lib/load.mjs +44 -1
  107. package/lib/provenance.mjs +51 -0
  108. package/lib/render.mjs +115 -31
  109. package/lib/sync.mjs +242 -28
  110. package/lib/validate.mjs +557 -24
  111. package/package.json +27 -10
  112. package/profiles/ai-orchestration/profile.json +1 -1
  113. package/profiles/ai-orchestration/templates/patterns/README.md +1 -1
  114. package/profiles/ai-orchestration/templates/review/README.md +1 -1
  115. package/profiles/ai-orchestration/templates/semantics/README.md +1 -1
  116. package/profiles/ai-orchestration/templates/testing/README.md +1 -1
  117. package/profiles/conductor/profile.json +1 -1
  118. package/profiles/conductor/templates/evidence/README.md +1 -1
  119. package/profiles/conductor/templates/patterns/README.md +1 -1
  120. package/profiles/conductor/templates/semantics/README.md +1 -1
  121. package/schemas/consumer-config.schema.json +1 -1
  122. package/schemas/contract.schema.json +1 -0
  123. package/schemas/manifest.schema.json +1 -1
  124. package/schemas/pattern.schema.json +98 -1
  125. package/schemas/profile.schema.json +1 -1
  126. package/schemas/projection-manifest.schema.json +84 -1
  127. package/schemas/semantic.schema.json +26 -1
  128. package/schemas/standards-reference.schema.json +105 -0
  129. package/schemas/ui-design-brain-bindings.schema.json +86 -0
  130. package/schemas/wcag-coverage.schema.json +93 -0
  131. package/src/applicability/facts.yml +27 -1
  132. package/src/applicability/matrix.yml +8 -9
  133. package/src/applicability/ui-design-brain-bindings.yml +196 -0
  134. package/src/contract.yml +1 -0
  135. package/src/coverage/wcag-2.2.yml +68 -0
  136. package/src/patterns/disclosure/accordion.yml +1 -1
  137. package/src/patterns/disclosure/disclosure.yml +1 -1
  138. package/src/patterns/feedback/alert.yml +1 -1
  139. package/src/patterns/feedback/dynamic-status.yml +1 -1
  140. package/src/patterns/feedback/progress.yml +1 -1
  141. package/src/patterns/forms/consequential-submission.yml +1 -1
  142. package/src/patterns/forms/field.yml +1 -1
  143. package/src/patterns/forms/spinbutton.yml +1 -0
  144. package/src/patterns/forms/validation.yml +1 -1
  145. package/src/patterns/media/carousel.yml +1 -1
  146. package/src/patterns/media/image.yml +1 -1
  147. package/src/patterns/media/media-player.yml +1 -1
  148. package/src/patterns/navigation/menu-button.yml +1 -1
  149. package/src/patterns/navigation/menu.yml +1 -0
  150. package/src/patterns/navigation/pagination.yml +1 -1
  151. package/src/patterns/navigation/tabs.yml +1 -1
  152. package/src/patterns/navigation/tree-view.yml +1 -0
  153. package/src/patterns/overlays/dialog.yml +1 -1
  154. package/src/patterns/overlays/popover.yml +1 -1
  155. package/src/patterns/overlays/tooltip.yml +1 -1
  156. package/src/patterns/selection/checkbox.yml +1 -0
  157. package/src/patterns/selection/combobox.yml +1 -1
  158. package/src/patterns/selection/listbox.yml +1 -1
  159. package/src/patterns/selection/radio-group.yml +1 -0
  160. package/src/patterns/selection/slider.yml +1 -0
  161. package/src/semantics/accessible-names.yml +1 -1
  162. package/src/semantics/forms.yml +1 -1
  163. package/src/semantics/headings-landmarks.yml +1 -1
  164. package/src/semantics/keyboard-focus.yml +1 -1
  165. package/src/semantics/live-regions.yml +1 -1
  166. package/src/semantics/media.yml +1 -1
  167. package/src/semantics/native-elements.yml +1 -1
  168. package/src/semantics/roles-states-properties.yml +1 -1
  169. package/src/semantics/tables.yml +1 -1
  170. package/src/semantics/wcag-2.2.yml +1 -0
  171. package/src/sources.yml +1 -1
@@ -0,0 +1,836 @@
1
+ {
2
+ "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
+ "_provenance": {
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
+ "profile": "ai-orchestration",
6
+ "profile_digest": "de396e9a23010dff2e8abf3ae7e8500153599583ffa31a595b3a94fbe9df3da4",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
+ },
11
+ "binding_digest": "9c2e5264b3706778d800e6c8f7fb77ebceb34a8bb00937431cd42f5c0b2e9d39",
12
+ "binding_schema_version": 1,
13
+ "bindings": [
14
+ {
15
+ "classification": "direct",
16
+ "pattern_ids": [
17
+ "pattern.accordion"
18
+ ],
19
+ "ui_pattern_id": "accordion"
20
+ },
21
+ {
22
+ "candidates": [
23
+ {
24
+ "pattern_id": "pattern.alert",
25
+ "when": {
26
+ "equals": {
27
+ "fact": "component.message_urgency",
28
+ "value": "urgent"
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "pattern_id": "pattern.dynamic-status",
34
+ "when": {
35
+ "equals": {
36
+ "fact": "component.has_dynamic_status",
37
+ "value": true
38
+ }
39
+ }
40
+ }
41
+ ],
42
+ "classification": "candidate",
43
+ "discriminator_facts": [
44
+ "component.has_dynamic_status",
45
+ "component.message_urgency"
46
+ ],
47
+ "ui_pattern_id": "alert"
48
+ },
49
+ {
50
+ "baseline_semantic_ids": [
51
+ "semantics.non-text-alternative"
52
+ ],
53
+ "classification": "baseline-only",
54
+ "ui_pattern_id": "avatar"
55
+ },
56
+ {
57
+ "candidates": [
58
+ {
59
+ "pattern_id": "pattern.dynamic-status",
60
+ "when": {
61
+ "equals": {
62
+ "fact": "component.has_dynamic_status",
63
+ "value": true
64
+ }
65
+ }
66
+ }
67
+ ],
68
+ "classification": "candidate",
69
+ "discriminator_facts": [
70
+ "component.has_dynamic_status"
71
+ ],
72
+ "ui_pattern_id": "badge"
73
+ },
74
+ {
75
+ "baseline_semantic_ids": [
76
+ "semantics.landmarks",
77
+ "semantics.native-elements"
78
+ ],
79
+ "classification": "baseline-only",
80
+ "ui_pattern_id": "breadcrumbs"
81
+ },
82
+ {
83
+ "baseline_semantic_ids": [
84
+ "semantics.accessible-name",
85
+ "semantics.focus.visible",
86
+ "semantics.keyboard",
87
+ "semantics.name-role-value",
88
+ "semantics.native-elements",
89
+ "semantics.target-size"
90
+ ],
91
+ "classification": "baseline-only",
92
+ "ui_pattern_id": "button"
93
+ },
94
+ {
95
+ "baseline_semantic_ids": [
96
+ "semantics.accessible-name",
97
+ "semantics.focus.visible",
98
+ "semantics.keyboard",
99
+ "semantics.native-elements"
100
+ ],
101
+ "classification": "baseline-only",
102
+ "ui_pattern_id": "button-group"
103
+ },
104
+ {
105
+ "baseline_semantic_ids": [
106
+ "semantics.native-elements"
107
+ ],
108
+ "classification": "baseline-only",
109
+ "ui_pattern_id": "card"
110
+ },
111
+ {
112
+ "classification": "direct",
113
+ "pattern_ids": [
114
+ "pattern.carousel"
115
+ ],
116
+ "ui_pattern_id": "carousel"
117
+ },
118
+ {
119
+ "classification": "direct",
120
+ "pattern_ids": [
121
+ "pattern.checkbox",
122
+ "pattern.field"
123
+ ],
124
+ "ui_pattern_id": "checkbox"
125
+ },
126
+ {
127
+ "classification": "direct",
128
+ "pattern_ids": [
129
+ "pattern.field"
130
+ ],
131
+ "ui_pattern_id": "color-picker"
132
+ },
133
+ {
134
+ "classification": "direct",
135
+ "pattern_ids": [
136
+ "pattern.combobox",
137
+ "pattern.field"
138
+ ],
139
+ "ui_pattern_id": "combobox"
140
+ },
141
+ {
142
+ "baseline_semantic_ids": [
143
+ "semantics.data-table"
144
+ ],
145
+ "classification": "baseline-only",
146
+ "ui_pattern_id": "comparison-table"
147
+ },
148
+ {
149
+ "classification": "direct",
150
+ "pattern_ids": [
151
+ "pattern.menu"
152
+ ],
153
+ "ui_pattern_id": "context-menu"
154
+ },
155
+ {
156
+ "classification": "direct",
157
+ "pattern_ids": [
158
+ "pattern.field"
159
+ ],
160
+ "ui_pattern_id": "date-input"
161
+ },
162
+ {
163
+ "candidates": [
164
+ {
165
+ "pattern_id": "pattern.dialog",
166
+ "when": {
167
+ "equals": {
168
+ "fact": "component.overlay_model",
169
+ "value": "modal"
170
+ }
171
+ }
172
+ },
173
+ {
174
+ "pattern_id": "pattern.popover",
175
+ "when": {
176
+ "equals": {
177
+ "fact": "component.overlay_model",
178
+ "value": "non-modal"
179
+ }
180
+ }
181
+ }
182
+ ],
183
+ "classification": "candidate",
184
+ "discriminator_facts": [
185
+ "component.overlay_model"
186
+ ],
187
+ "pattern_ids": [
188
+ "pattern.field"
189
+ ],
190
+ "ui_pattern_id": "datepicker"
191
+ },
192
+ {
193
+ "candidates": [
194
+ {
195
+ "pattern_id": "pattern.dialog",
196
+ "when": {
197
+ "equals": {
198
+ "fact": "component.overlay_model",
199
+ "value": "modal"
200
+ }
201
+ }
202
+ },
203
+ {
204
+ "pattern_id": "pattern.disclosure",
205
+ "when": {
206
+ "equals": {
207
+ "fact": "component.overlay_model",
208
+ "value": "inline"
209
+ }
210
+ }
211
+ },
212
+ {
213
+ "pattern_id": "pattern.popover",
214
+ "when": {
215
+ "equals": {
216
+ "fact": "component.overlay_model",
217
+ "value": "non-modal"
218
+ }
219
+ }
220
+ }
221
+ ],
222
+ "classification": "candidate",
223
+ "discriminator_facts": [
224
+ "component.overlay_model"
225
+ ],
226
+ "ui_pattern_id": "drawer"
227
+ },
228
+ {
229
+ "classification": "direct",
230
+ "pattern_ids": [
231
+ "pattern.menu",
232
+ "pattern.menu-button"
233
+ ],
234
+ "ui_pattern_id": "dropdown-menu"
235
+ },
236
+ {
237
+ "candidates": [
238
+ {
239
+ "pattern_id": "pattern.dynamic-status",
240
+ "when": {
241
+ "equals": {
242
+ "fact": "component.has_dynamic_status",
243
+ "value": true
244
+ }
245
+ }
246
+ }
247
+ ],
248
+ "classification": "candidate",
249
+ "discriminator_facts": [
250
+ "component.has_dynamic_status"
251
+ ],
252
+ "ui_pattern_id": "empty-state"
253
+ },
254
+ {
255
+ "classification": "direct",
256
+ "pattern_ids": [
257
+ "pattern.validation"
258
+ ],
259
+ "ui_pattern_id": "error-message"
260
+ },
261
+ {
262
+ "baseline_semantic_ids": [
263
+ "semantics.native-elements"
264
+ ],
265
+ "classification": "baseline-only",
266
+ "ui_pattern_id": "eyebrow"
267
+ },
268
+ {
269
+ "classification": "direct",
270
+ "pattern_ids": [
271
+ "pattern.field"
272
+ ],
273
+ "ui_pattern_id": "fieldset"
274
+ },
275
+ {
276
+ "baseline_semantic_ids": [
277
+ "semantics.native-elements"
278
+ ],
279
+ "classification": "baseline-only",
280
+ "ui_pattern_id": "file"
281
+ },
282
+ {
283
+ "classification": "direct",
284
+ "pattern_ids": [
285
+ "pattern.field"
286
+ ],
287
+ "ui_pattern_id": "file-upload"
288
+ },
289
+ {
290
+ "candidates": [
291
+ {
292
+ "pattern_id": "pattern.field",
293
+ "when": {
294
+ "equals": {
295
+ "fact": "component.has_form_fields",
296
+ "value": true
297
+ }
298
+ }
299
+ }
300
+ ],
301
+ "classification": "candidate",
302
+ "discriminator_facts": [
303
+ "component.has_form_fields"
304
+ ],
305
+ "ui_pattern_id": "filter"
306
+ },
307
+ {
308
+ "baseline_semantic_ids": [
309
+ "semantics.landmarks"
310
+ ],
311
+ "classification": "baseline-only",
312
+ "ui_pattern_id": "footer"
313
+ },
314
+ {
315
+ "classification": "direct",
316
+ "pattern_ids": [
317
+ "pattern.field"
318
+ ],
319
+ "ui_pattern_id": "form"
320
+ },
321
+ {
322
+ "baseline_semantic_ids": [
323
+ "semantics.landmarks"
324
+ ],
325
+ "classification": "baseline-only",
326
+ "ui_pattern_id": "header"
327
+ },
328
+ {
329
+ "baseline_semantic_ids": [
330
+ "semantics.headings"
331
+ ],
332
+ "classification": "baseline-only",
333
+ "ui_pattern_id": "heading"
334
+ },
335
+ {
336
+ "baseline_semantic_ids": [
337
+ "semantics.native-elements"
338
+ ],
339
+ "classification": "baseline-only",
340
+ "ui_pattern_id": "helper-text"
341
+ },
342
+ {
343
+ "baseline_semantic_ids": [
344
+ "semantics.headings"
345
+ ],
346
+ "classification": "baseline-only",
347
+ "ui_pattern_id": "hero"
348
+ },
349
+ {
350
+ "baseline_semantic_ids": [
351
+ "semantics.non-text-alternative"
352
+ ],
353
+ "classification": "baseline-only",
354
+ "ui_pattern_id": "icon"
355
+ },
356
+ {
357
+ "classification": "direct",
358
+ "pattern_ids": [
359
+ "pattern.image"
360
+ ],
361
+ "ui_pattern_id": "image"
362
+ },
363
+ {
364
+ "baseline_semantic_ids": [
365
+ "semantics.accessible-name",
366
+ "semantics.focus.visible",
367
+ "semantics.keyboard",
368
+ "semantics.landmarks",
369
+ "semantics.native-elements"
370
+ ],
371
+ "classification": "baseline-only",
372
+ "ui_pattern_id": "in-page-navigation"
373
+ },
374
+ {
375
+ "baseline_semantic_ids": [
376
+ "semantics.form-label"
377
+ ],
378
+ "classification": "baseline-only",
379
+ "ui_pattern_id": "label"
380
+ },
381
+ {
382
+ "baseline_semantic_ids": [
383
+ "semantics.accessible-name",
384
+ "semantics.focus.visible",
385
+ "semantics.keyboard",
386
+ "semantics.native-elements",
387
+ "semantics.target-size"
388
+ ],
389
+ "classification": "baseline-only",
390
+ "ui_pattern_id": "link"
391
+ },
392
+ {
393
+ "baseline_semantic_ids": [
394
+ "semantics.native-elements"
395
+ ],
396
+ "classification": "baseline-only",
397
+ "ui_pattern_id": "list"
398
+ },
399
+ {
400
+ "baseline_semantic_ids": [
401
+ "semantics.non-text-alternative"
402
+ ],
403
+ "classification": "baseline-only",
404
+ "ui_pattern_id": "logo-bar"
405
+ },
406
+ {
407
+ "baseline_semantic_ids": [
408
+ "semantics.motion-control"
409
+ ],
410
+ "classification": "baseline-only",
411
+ "ui_pattern_id": "marquee"
412
+ },
413
+ {
414
+ "baseline_semantic_ids": [
415
+ "semantics.headings",
416
+ "semantics.landmarks"
417
+ ],
418
+ "classification": "baseline-only",
419
+ "ui_pattern_id": "masthead"
420
+ },
421
+ {
422
+ "baseline_semantic_ids": [
423
+ "semantics.non-text-alternative"
424
+ ],
425
+ "classification": "baseline-only",
426
+ "ui_pattern_id": "media-object"
427
+ },
428
+ {
429
+ "candidates": [
430
+ {
431
+ "pattern_id": "pattern.menu-button",
432
+ "when": {
433
+ "equals": {
434
+ "fact": "component.command_menu_trigger",
435
+ "value": true
436
+ }
437
+ }
438
+ }
439
+ ],
440
+ "classification": "candidate",
441
+ "discriminator_facts": [
442
+ "component.command_menu_trigger"
443
+ ],
444
+ "ui_pattern_id": "mega-menu"
445
+ },
446
+ {
447
+ "classification": "direct",
448
+ "pattern_ids": [
449
+ "pattern.dialog"
450
+ ],
451
+ "ui_pattern_id": "modal"
452
+ },
453
+ {
454
+ "candidates": [
455
+ {
456
+ "pattern_id": "pattern.menu-button",
457
+ "when": {
458
+ "equals": {
459
+ "fact": "component.command_menu_trigger",
460
+ "value": true
461
+ }
462
+ }
463
+ }
464
+ ],
465
+ "classification": "candidate",
466
+ "discriminator_facts": [
467
+ "component.command_menu_trigger"
468
+ ],
469
+ "ui_pattern_id": "navigation"
470
+ },
471
+ {
472
+ "classification": "direct",
473
+ "pattern_ids": [
474
+ "pattern.field",
475
+ "pattern.spinbutton"
476
+ ],
477
+ "ui_pattern_id": "number-input"
478
+ },
479
+ {
480
+ "classification": "direct",
481
+ "pattern_ids": [
482
+ "pattern.pagination"
483
+ ],
484
+ "ui_pattern_id": "pagination"
485
+ },
486
+ {
487
+ "classification": "direct",
488
+ "pattern_ids": [
489
+ "pattern.popover"
490
+ ],
491
+ "ui_pattern_id": "popover"
492
+ },
493
+ {
494
+ "classification": "direct",
495
+ "pattern_ids": [
496
+ "pattern.progress"
497
+ ],
498
+ "ui_pattern_id": "progress-bar"
499
+ },
500
+ {
501
+ "classification": "direct",
502
+ "pattern_ids": [
503
+ "pattern.progress"
504
+ ],
505
+ "ui_pattern_id": "progress-indicator"
506
+ },
507
+ {
508
+ "baseline_semantic_ids": [
509
+ "semantics.native-elements"
510
+ ],
511
+ "classification": "baseline-only",
512
+ "ui_pattern_id": "quote"
513
+ },
514
+ {
515
+ "classification": "direct",
516
+ "pattern_ids": [
517
+ "pattern.field",
518
+ "pattern.radio-group"
519
+ ],
520
+ "ui_pattern_id": "radio-button"
521
+ },
522
+ {
523
+ "baseline_semantic_ids": [
524
+ "semantics.name-role-value"
525
+ ],
526
+ "classification": "baseline-only",
527
+ "ui_pattern_id": "rating"
528
+ },
529
+ {
530
+ "baseline_semantic_ids": [
531
+ "semantics.headings",
532
+ "semantics.native-elements"
533
+ ],
534
+ "classification": "baseline-only",
535
+ "ui_pattern_id": "rich-text"
536
+ },
537
+ {
538
+ "baseline_semantic_ids": [
539
+ "semantics.accessible-name",
540
+ "semantics.focus.visible",
541
+ "semantics.keyboard",
542
+ "semantics.name-role-value"
543
+ ],
544
+ "classification": "baseline-only",
545
+ "ui_pattern_id": "rich-text-editor"
546
+ },
547
+ {
548
+ "classification": "direct",
549
+ "pattern_ids": [
550
+ "pattern.field"
551
+ ],
552
+ "ui_pattern_id": "search-input"
553
+ },
554
+ {
555
+ "candidates": [
556
+ {
557
+ "pattern_id": "pattern.dialog",
558
+ "when": {
559
+ "equals": {
560
+ "fact": "component.overlay_model",
561
+ "value": "modal"
562
+ }
563
+ }
564
+ },
565
+ {
566
+ "pattern_id": "pattern.popover",
567
+ "when": {
568
+ "equals": {
569
+ "fact": "component.overlay_model",
570
+ "value": "non-modal"
571
+ }
572
+ }
573
+ }
574
+ ],
575
+ "classification": "candidate",
576
+ "discriminator_facts": [
577
+ "component.overlay_model"
578
+ ],
579
+ "ui_pattern_id": "search-overlay"
580
+ },
581
+ {
582
+ "baseline_semantic_ids": [
583
+ "semantics.headings"
584
+ ],
585
+ "classification": "baseline-only",
586
+ "ui_pattern_id": "section-header"
587
+ },
588
+ {
589
+ "baseline_semantic_ids": [
590
+ "semantics.accessible-name",
591
+ "semantics.focus.visible",
592
+ "semantics.keyboard",
593
+ "semantics.selected-state"
594
+ ],
595
+ "classification": "baseline-only",
596
+ "ui_pattern_id": "segmented-control"
597
+ },
598
+ {
599
+ "candidates": [
600
+ {
601
+ "pattern_id": "pattern.combobox",
602
+ "when": {
603
+ "equals": {
604
+ "fact": "component.selection_model",
605
+ "value": "combobox"
606
+ }
607
+ }
608
+ },
609
+ {
610
+ "pattern_id": "pattern.listbox",
611
+ "when": {
612
+ "equals": {
613
+ "fact": "component.selection_model",
614
+ "value": "listbox"
615
+ }
616
+ }
617
+ }
618
+ ],
619
+ "classification": "candidate",
620
+ "discriminator_facts": [
621
+ "component.selection_model"
622
+ ],
623
+ "pattern_ids": [
624
+ "pattern.field"
625
+ ],
626
+ "ui_pattern_id": "select"
627
+ },
628
+ {
629
+ "baseline_semantic_ids": [
630
+ "semantics.native-elements"
631
+ ],
632
+ "classification": "baseline-only",
633
+ "ui_pattern_id": "separator"
634
+ },
635
+ {
636
+ "candidates": [
637
+ {
638
+ "pattern_id": "pattern.menu-button",
639
+ "when": {
640
+ "equals": {
641
+ "fact": "component.command_menu_trigger",
642
+ "value": true
643
+ }
644
+ }
645
+ }
646
+ ],
647
+ "classification": "candidate",
648
+ "discriminator_facts": [
649
+ "component.command_menu_trigger"
650
+ ],
651
+ "ui_pattern_id": "sidebar"
652
+ },
653
+ {
654
+ "candidates": [
655
+ {
656
+ "pattern_id": "pattern.dynamic-status",
657
+ "when": {
658
+ "equals": {
659
+ "fact": "component.has_dynamic_status",
660
+ "value": true
661
+ }
662
+ }
663
+ }
664
+ ],
665
+ "classification": "candidate",
666
+ "discriminator_facts": [
667
+ "component.has_dynamic_status"
668
+ ],
669
+ "ui_pattern_id": "skeleton"
670
+ },
671
+ {
672
+ "baseline_semantic_ids": [
673
+ "semantics.accessible-name",
674
+ "semantics.focus.visible",
675
+ "semantics.keyboard",
676
+ "semantics.native-elements"
677
+ ],
678
+ "classification": "baseline-only",
679
+ "ui_pattern_id": "skip-link"
680
+ },
681
+ {
682
+ "classification": "direct",
683
+ "pattern_ids": [
684
+ "pattern.field",
685
+ "pattern.slider"
686
+ ],
687
+ "ui_pattern_id": "slider"
688
+ },
689
+ {
690
+ "classification": "direct",
691
+ "pattern_ids": [
692
+ "pattern.progress"
693
+ ],
694
+ "ui_pattern_id": "spinner"
695
+ },
696
+ {
697
+ "baseline_semantic_ids": [
698
+ "semantics.native-elements"
699
+ ],
700
+ "classification": "baseline-only",
701
+ "ui_pattern_id": "stack"
702
+ },
703
+ {
704
+ "baseline_semantic_ids": [
705
+ "semantics.native-elements"
706
+ ],
707
+ "classification": "baseline-only",
708
+ "ui_pattern_id": "stat"
709
+ },
710
+ {
711
+ "classification": "direct",
712
+ "pattern_ids": [
713
+ "pattern.field",
714
+ "pattern.spinbutton"
715
+ ],
716
+ "ui_pattern_id": "stepper"
717
+ },
718
+ {
719
+ "baseline_semantic_ids": [
720
+ "semantics.data-table"
721
+ ],
722
+ "classification": "baseline-only",
723
+ "ui_pattern_id": "table"
724
+ },
725
+ {
726
+ "classification": "direct",
727
+ "pattern_ids": [
728
+ "pattern.tabs"
729
+ ],
730
+ "ui_pattern_id": "tabs"
731
+ },
732
+ {
733
+ "classification": "direct",
734
+ "pattern_ids": [
735
+ "pattern.field"
736
+ ],
737
+ "ui_pattern_id": "text-input"
738
+ },
739
+ {
740
+ "classification": "direct",
741
+ "pattern_ids": [
742
+ "pattern.field"
743
+ ],
744
+ "ui_pattern_id": "textarea"
745
+ },
746
+ {
747
+ "candidates": [
748
+ {
749
+ "pattern_id": "pattern.alert",
750
+ "when": {
751
+ "equals": {
752
+ "fact": "component.message_urgency",
753
+ "value": "urgent"
754
+ }
755
+ }
756
+ },
757
+ {
758
+ "pattern_id": "pattern.dynamic-status",
759
+ "when": {
760
+ "equals": {
761
+ "fact": "component.has_dynamic_status",
762
+ "value": true
763
+ }
764
+ }
765
+ }
766
+ ],
767
+ "classification": "candidate",
768
+ "discriminator_facts": [
769
+ "component.has_dynamic_status",
770
+ "component.message_urgency"
771
+ ],
772
+ "ui_pattern_id": "toast"
773
+ },
774
+ {
775
+ "classification": "direct",
776
+ "pattern_ids": [
777
+ "pattern.field"
778
+ ],
779
+ "ui_pattern_id": "toggle"
780
+ },
781
+ {
782
+ "classification": "direct",
783
+ "pattern_ids": [
784
+ "pattern.tooltip"
785
+ ],
786
+ "ui_pattern_id": "tooltip"
787
+ },
788
+ {
789
+ "classification": "direct",
790
+ "pattern_ids": [
791
+ "pattern.tree-view"
792
+ ],
793
+ "ui_pattern_id": "tree-view"
794
+ },
795
+ {
796
+ "baseline_semantic_ids": [
797
+ "semantics.landmarks"
798
+ ],
799
+ "classification": "baseline-only",
800
+ "ui_pattern_id": "utility-bar"
801
+ },
802
+ {
803
+ "classification": "direct",
804
+ "pattern_ids": [
805
+ "pattern.media-player"
806
+ ],
807
+ "ui_pattern_id": "video"
808
+ },
809
+ {
810
+ "baseline_semantic_ids": [
811
+ "semantics.native-elements"
812
+ ],
813
+ "classification": "baseline-only",
814
+ "ui_pattern_id": "visually-hidden"
815
+ },
816
+ {
817
+ "classification": "direct",
818
+ "pattern_ids": [
819
+ "pattern.field"
820
+ ],
821
+ "ui_pattern_id": "wizard"
822
+ }
823
+ ],
824
+ "schema_version": 3,
825
+ "source": {
826
+ "catalog_authority_version": "1.15.1",
827
+ "manifest_digest": "sha256:63a0bc8d9537d6d4c0aef8fd8a539bf4a9181a50d0761bd63eae6fe59b4eddc9",
828
+ "manifest_path": "skills/ui-design-brain/catalog-manifest.json",
829
+ "package": "@verndale/ui-design-brain",
830
+ "package_version": "1.16.0",
831
+ "pattern_count": 80,
832
+ "repository": "https://github.com/verndale/ui-design-brain",
833
+ "source_digest": "sha256:1eda596fe341786b5ada25742b6487bc06685fff17cbd582bc1b58302097e3ff",
834
+ "tracking_issue": "https://github.com/verndale/ui-design-brain/issues/47"
835
+ }
836
+ }