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