@adia-ai/a2ui-corpus 0.6.37 → 0.6.38

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 (246) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/catalog-a2ui_0_9.json +378 -5
  3. package/catalog-a2ui_0_9_rules.txt +12 -0
  4. package/chunk-embeddings.json +1 -1
  5. package/chunks/_index.json +30 -4
  6. package/chunks/accordion-settings.json +1 -1
  7. package/chunks/agent-activity-feed.json +1 -1
  8. package/chunks/agent-canvas-shell.json +1 -1
  9. package/chunks/agent-command-palette-search.json +1 -1
  10. package/chunks/agent-reasoning-collapsed.json +1 -1
  11. package/chunks/agent-tool-call-result.json +1 -1
  12. package/chunks/agent-trace-timeline.json +1 -1
  13. package/chunks/ai-streaming-response.json +1 -1
  14. package/chunks/alert-banner.json +1 -1
  15. package/chunks/auth-account-deleted-actions.json +1 -1
  16. package/chunks/auth-account-deleted.json +1 -1
  17. package/chunks/auth-card-content.json +1 -1
  18. package/chunks/auth-card-header.json +1 -1
  19. package/chunks/auth-email-entry.json +1 -1
  20. package/chunks/auth-email-verify-confirm.json +1 -1
  21. package/chunks/auth-email-verify.json +1 -1
  22. package/chunks/auth-forbidden-actions.json +1 -1
  23. package/chunks/auth-forbidden.json +1 -1
  24. package/chunks/auth-invite-actions.json +1 -1
  25. package/chunks/auth-invite-team-card.json +1 -1
  26. package/chunks/auth-link-expired-form.json +1 -1
  27. package/chunks/auth-link-expired.json +1 -1
  28. package/chunks/auth-locked-account.json +1 -1
  29. package/chunks/auth-locked-recovery-options.json +1 -1
  30. package/chunks/auth-mfa-enrollment-submit.json +1 -1
  31. package/chunks/auth-mfa-enrollment.json +1 -1
  32. package/chunks/auth-mfa-fallback-actions.json +1 -1
  33. package/chunks/auth-mfa-recovery.json +1 -1
  34. package/chunks/auth-new-password-form.json +1 -1
  35. package/chunks/auth-new-password.json +1 -1
  36. package/chunks/auth-oauth-fallback-actions.json +1 -1
  37. package/chunks/auth-oauth-interstitial.json +1 -1
  38. package/chunks/auth-password-challenge.json +1 -1
  39. package/chunks/auth-password-reset-form.json +1 -1
  40. package/chunks/auth-password-reset.json +1 -1
  41. package/chunks/auth-profile-form.json +1 -1
  42. package/chunks/auth-profile-setup.json +1 -1
  43. package/chunks/auth-reset-sent.json +1 -1
  44. package/chunks/auth-session-expired-actions.json +1 -1
  45. package/chunks/auth-session-expired.json +1 -1
  46. package/chunks/auth-signin-card-email.json +1 -1
  47. package/chunks/auth-signin-card-magic-link.json +1 -1
  48. package/chunks/auth-signin-card-mfa.json +1 -1
  49. package/chunks/auth-signin-card-otp.json +1 -1
  50. package/chunks/auth-signin-card-password.json +1 -1
  51. package/chunks/auth-signin-card-recovery.json +1 -1
  52. package/chunks/auth-signout-actions.json +1 -1
  53. package/chunks/auth-signout.json +1 -1
  54. package/chunks/auth-signup-email-entry.json +1 -1
  55. package/chunks/auth-signup-entry.json +1 -1
  56. package/chunks/auth-signup-social-auths.json +1 -1
  57. package/chunks/auth-signup-verify.json +1 -1
  58. package/chunks/auth-social-auths.json +1 -1
  59. package/chunks/auth-sso-providers.json +1 -1
  60. package/chunks/auth-sso-required.json +1 -1
  61. package/chunks/auth-team-invite.json +1 -1
  62. package/chunks/avatar-group-overflow.json +1 -1
  63. package/chunks/breadcrumb-nav.json +1 -1
  64. package/chunks/calendar-month-view.json +1 -1
  65. package/chunks/card-header-with-description.json +1 -1
  66. package/chunks/chart-with-filter-pills.json +1 -1
  67. package/chunks/chat-page-shell.json +1 -1
  68. package/chunks/chat-streaming-surface.json +1 -1
  69. package/chunks/color-picker-swatches.json +1 -1
  70. package/chunks/command-palette.json +1 -1
  71. package/chunks/commerce-pricing-tiers.json +1 -1
  72. package/chunks/comparison-table.json +1 -1
  73. package/chunks/conversion-funnel-6step.json +1 -1
  74. package/chunks/dashboard-acquisition-panel.json +1 -1
  75. package/chunks/dashboard-admin-page.json +1 -1
  76. package/chunks/dashboard-audience-kpis.json +1 -1
  77. package/chunks/dashboard-audience-panel.json +1 -1
  78. package/chunks/dashboard-behavior-panel.json +1 -1
  79. package/chunks/dashboard-chart-recent.json +1 -1
  80. package/chunks/dashboard-cohort-retention.json +1 -1
  81. package/chunks/dashboard-conversion-panel.json +1 -1
  82. package/chunks/dashboard-country-list.json +1 -1
  83. package/chunks/dashboard-filter-bar.json +1 -1
  84. package/chunks/dashboard-funnel.json +1 -1
  85. package/chunks/dashboard-kpi-grid.json +1 -1
  86. package/chunks/dashboard-notifications-feed.json +1 -1
  87. package/chunks/dashboard-notifications-panel.json +1 -1
  88. package/chunks/dashboard-overview-panel.json +1 -1
  89. package/chunks/dashboard-page-header.json +1 -1
  90. package/chunks/dashboard-pages-table.json +1 -1
  91. package/chunks/dashboard-quick-actions.json +1 -1
  92. package/chunks/dashboard-reports-panel.json +1 -1
  93. package/chunks/dashboard-reports-table.json +1 -1
  94. package/chunks/dashboard-spark-cards.json +1 -1
  95. package/chunks/dashboard-storage-card.json +1 -1
  96. package/chunks/dashboard-tabs.json +1 -1
  97. package/chunks/dashboard-team-actions-storage.json +1 -1
  98. package/chunks/dashboard-team-list.json +1 -1
  99. package/chunks/dashboard-traffic-channels.json +1 -1
  100. package/chunks/dashboard-transactions-table.json +1 -1
  101. package/chunks/date-time-picker-form.json +1 -1
  102. package/chunks/destructive-confirm-modal.json +1 -1
  103. package/chunks/divider-text-label.json +1 -1
  104. package/chunks/doc-editor-shell.json +1 -1
  105. package/chunks/drawer-2fa-key.json +1 -1
  106. package/chunks/drawer-2fa-sms.json +1 -1
  107. package/chunks/drawer-2fa-totp.json +1 -1
  108. package/chunks/drawer-cancel-sub.json +202 -33
  109. package/chunks/drawer-change-plan.json +1 -1
  110. package/chunks/drawer-custom-roles.json +1 -1
  111. package/chunks/drawer-data-start.json +1 -1
  112. package/chunks/drawer-delete-account.json +1 -1
  113. package/chunks/drawer-delete-workspace.json +1 -1
  114. package/chunks/drawer-discord.json +1 -1
  115. package/chunks/drawer-figma.json +1 -1
  116. package/chunks/drawer-first-dashboard.json +1 -1
  117. package/chunks/drawer-gcal.json +1 -1
  118. package/chunks/drawer-github.json +1 -1
  119. package/chunks/drawer-invite.json +1 -1
  120. package/chunks/drawer-payment-method.json +1 -1
  121. package/chunks/drawer-report.json +1 -1
  122. package/chunks/drawer-revoke-session.json +1 -1
  123. package/chunks/drawer-role.json +1 -1
  124. package/chunks/drawer-slack.json +1 -1
  125. package/chunks/drawer-smtp.json +1 -1
  126. package/chunks/drawer-source.json +1 -1
  127. package/chunks/drawer-transaction.json +1 -1
  128. package/chunks/editor-code-pane.json +1 -1
  129. package/chunks/editor-page-shell.json +1 -1
  130. package/chunks/editor-preview-pane.json +1 -1
  131. package/chunks/empty-state-danger.json +1 -1
  132. package/chunks/empty-state-minimal.json +1 -1
  133. package/chunks/empty-state-warning.json +1 -1
  134. package/chunks/empty-state.json +1 -1
  135. package/chunks/error-404-actions.json +1 -1
  136. package/chunks/error-404.json +1 -1
  137. package/chunks/error-500-actions.json +1 -1
  138. package/chunks/error-500.json +1 -1
  139. package/chunks/error-maintenance-actions.json +1 -1
  140. package/chunks/error-maintenance.json +1 -1
  141. package/chunks/error-page-shell.json +1 -1
  142. package/chunks/faq-accordion.json +1 -1
  143. package/chunks/file-upload-dnd.json +1 -1
  144. package/chunks/footer-multi-column.json +1 -1
  145. package/chunks/footer-primary-only.json +1 -1
  146. package/chunks/form-page-shell.json +1 -1
  147. package/chunks/gallery-page-shell.json +1 -1
  148. package/chunks/hero-section-split.json +1 -1
  149. package/chunks/icon-text-row.json +1 -1
  150. package/chunks/image-carousel.json +1 -1
  151. package/chunks/image-tile.json +1 -1
  152. package/chunks/image-upload-preview.json +1 -1
  153. package/chunks/import-mapping-flow.json +934 -0
  154. package/chunks/inventory-list-stock.json +1 -1
  155. package/chunks/kanban-board-3col.json +1 -1
  156. package/chunks/kanban-page-shell.json +1 -1
  157. package/chunks/kbd-shortcuts.json +1 -1
  158. package/chunks/labeled-textarea.json +1 -1
  159. package/chunks/leaderboard-table.json +1 -1
  160. package/chunks/linked-record-row.json +1 -1
  161. package/chunks/marketing-hero-cta.json +1 -1
  162. package/chunks/marketing-page-shell.json +1 -1
  163. package/chunks/masonry-gallery.json +1 -1
  164. package/chunks/member-edit-drawer.json +1 -1
  165. package/chunks/metadata-description-list.json +1 -1
  166. package/chunks/multi-step-wizard.json +1 -1
  167. package/chunks/notification-toast-row.json +1 -1
  168. package/chunks/onb-completion.json +1 -1
  169. package/chunks/onb-extension-install.json +1 -1
  170. package/chunks/onb-hero-welcome.json +1 -1
  171. package/chunks/onb-import-picker.json +1 -1
  172. package/chunks/onb-mobile-handoff.json +1 -1
  173. package/chunks/onb-notification-prefs.json +1 -1
  174. package/chunks/onb-persona-picker.json +1 -1
  175. package/chunks/onb-provider-tiles.json +1 -1
  176. package/chunks/onb-settings-review.json +1 -1
  177. package/chunks/onb-step-footer.json +1 -1
  178. package/chunks/onb-step-header.json +1 -1
  179. package/chunks/onb-step-progress.json +1 -1
  180. package/chunks/onb-step-shell.json +1 -1
  181. package/chunks/onb-story-pane.json +1 -1
  182. package/chunks/onb-tutorial-steps.json +1 -1
  183. package/chunks/pagination-controls.json +1 -1
  184. package/chunks/playground-a2ui.json +1 -1
  185. package/chunks/playground-app-shell.json +1 -1
  186. package/chunks/playground-chat.json +1 -1
  187. package/chunks/playground-construct-canvas.json +1 -1
  188. package/chunks/playground-css-channel.json +1 -1
  189. package/chunks/playground-gen-ui.json +1 -1
  190. package/chunks/playground-render-preview.json +1 -1
  191. package/chunks/playground-streams-bridge.json +1 -1
  192. package/chunks/playground-table-toolbar.json +1 -1
  193. package/chunks/popover-with-content.json +1 -1
  194. package/chunks/progress-tracker-milestones.json +1 -1
  195. package/chunks/real-time-metrics-dashboard.json +1 -1
  196. package/chunks/reg-address-form.json +1 -1
  197. package/chunks/reg-billing-card.json +1 -1
  198. package/chunks/reg-brand-scrape.json +1 -1
  199. package/chunks/reg-departments-toggle.json +1 -1
  200. package/chunks/reg-extended-profile.json +1 -1
  201. package/chunks/reg-final-done.json +1 -1
  202. package/chunks/reg-helpdesk-grid.json +1 -1
  203. package/chunks/reg-import-picker.json +1 -1
  204. package/chunks/reg-integrations-grid.json +1 -1
  205. package/chunks/reg-invite-form.json +1 -1
  206. package/chunks/reg-legal-entity.json +1 -1
  207. package/chunks/reg-org-chart-review.json +1 -1
  208. package/chunks/reg-profile-identity.json +1 -1
  209. package/chunks/reg-step-footer.json +1 -1
  210. package/chunks/reg-step-header.json +1 -1
  211. package/chunks/reg-step-progress.json +1 -1
  212. package/chunks/reg-step-shell.json +1 -1
  213. package/chunks/reg-story-pane.json +1 -1
  214. package/chunks/reg-success-summary.json +1 -1
  215. package/chunks/reg-team-size.json +1 -1
  216. package/chunks/reg-usecase-picker.json +1 -1
  217. package/chunks/reg-workspace-name.json +1 -1
  218. package/chunks/responsive-grid-pattern.json +1 -1
  219. package/chunks/responsive-kpi-grid.json +1 -1
  220. package/chunks/responsive-row-pattern.json +1 -1
  221. package/chunks/responsive-wrap-at-pattern.json +1 -1
  222. package/chunks/search-with-filters.json +1 -1
  223. package/chunks/section-with-stack.json +1 -1
  224. package/chunks/select-multiple-preselected.json +1 -1
  225. package/chunks/settings-admin-page.json +1 -1
  226. package/chunks/settings-appearance.json +1 -1
  227. package/chunks/settings-billing-plan.json +1 -1
  228. package/chunks/settings-general-form.json +1 -1
  229. package/chunks/settings-integrations.json +1 -1
  230. package/chunks/settings-members-invite.json +1 -1
  231. package/chunks/settings-notifications.json +1 -1
  232. package/chunks/settings-page-shell.json +1 -1
  233. package/chunks/settings-profile-security.json +1 -1
  234. package/chunks/sidebar-collapsible-nav.json +1 -1
  235. package/chunks/slider-range-controls.json +1 -1
  236. package/chunks/tabs-with-panels.json +1 -1
  237. package/chunks/testimonial-grid.json +1 -1
  238. package/chunks/text-card.json +1 -1
  239. package/chunks/timeline-events.json +1 -1
  240. package/chunks/toolbar-icons.json +1 -1
  241. package/chunks/toolbar-tooltips.json +1 -1
  242. package/chunks/user-identity-row.json +1 -1
  243. package/chunks/user-profile-card.json +1 -1
  244. package/chunks/users-table-badge.json +1 -1
  245. package/chunks/video-player-controls.json +1 -1
  246. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog — @adia-ai/a2ui-corpus
2
2
 
3
+ ## [0.6.38] — 2026-05-26
4
+
5
+ ### Added — 1 new chunk + catalog regen for Wave 5e cohort
6
+
7
+ - **Chunk count 239 → 240** — new chunk absorbed from the Wave 5e source content (mark-ui / inline-edit-ui / list-item-ui demos + onboarding-checklist + import-mapping + cancellation save-offer).
8
+ - `chunk-embeddings.json` regenerated (6.89 → 6.92 MB; +1 new 1536d vector).
9
+ - `catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated absorbing the 3 new web-components primitives + audit-rule text additions (+383 / -5 lines).
10
+
3
11
  ## [0.6.37] — 2026-05-25
4
12
 
5
13
  ### Maintenance
@@ -336,6 +336,9 @@
336
336
  "action": {
337
337
  "description": "§206 (v0.5.7): action buttons inside a custom header (e.g. Copy /\nDownload / settings). Children placed at `[slot=\"action\"]` (or\n`[slot=\"actions\"]`, or marked `[data-no-toggle]`) are excluded from\nthe toggle-on-click cascade — clicking them fires their own handler\nwithout also toggling the section."
338
338
  },
339
+ "body": {
340
+ "description": "The section's collapsible content. Renders below the header; hidden when `[open]` is unset. Author-fills with prose, lists, embedded forms, or any rich markup the panel needs."
341
+ },
339
342
  "header": {
340
343
  "description": "Custom header content. By default `[text]` renders as a plain header\nlabel, but a `[slot=\"header\"]` override lets consumers author rich\nheaders (icon + title + action buttons + caret)."
341
344
  }
@@ -418,7 +421,11 @@
418
421
  "MenuItem",
419
422
  "Button"
420
423
  ],
421
- "slots": {},
424
+ "slots": {
425
+ "icon": {
426
+ "description": "Override the [icon] glyph with a custom slotted element (custom icon-ui, image, avatar). Mutually exclusive with the [icon] attribute — slot child wins."
427
+ }
428
+ },
422
429
  "states": [],
423
430
  "status": "stable",
424
431
  "synonyms": {
@@ -4309,7 +4316,23 @@
4309
4316
  "alert",
4310
4317
  "skeleton"
4311
4318
  ],
4312
- "slots": {},
4319
+ "slots": {
4320
+ "description": {
4321
+ "description": "Optional descriptive text beneath the heading. Renders in the header slot at body-subtle typography. Use for short metadata lines (timestamp, author, status sentence)."
4322
+ },
4323
+ "action": {
4324
+ "description": "Trailing action cluster in the header (e.g. icon-buttons, menu trigger, more-options). Aligns to the header's flex-end edge."
4325
+ },
4326
+ "action-leading": {
4327
+ "description": "Leading action cluster in the header (e.g. back button, switcher, breadcrumb-context). Aligns to the header's flex-start edge, before the icon/heading column."
4328
+ },
4329
+ "heading": {
4330
+ "description": "Card title. Renders in the header slot with title typography. Typically a short noun phrase or document/object name."
4331
+ },
4332
+ "icon": {
4333
+ "description": "Optional leading icon for the card header (status / brand / type marker). Renders next to the heading. Use `<icon-ui name=\"…\">` or any inline icon element."
4334
+ }
4335
+ },
4313
4336
  "states": [
4314
4337
  {
4315
4338
  "description": "Default, ready for interaction.",
@@ -7393,9 +7416,24 @@
7393
7416
  "Text"
7394
7417
  ],
7395
7418
  "slots": {
7419
+ "description": {
7420
+ "description": "Override the stamped description line below the heading. Author-fills with richer markup when the [description] attribute isn't enough."
7421
+ },
7396
7422
  "default": {
7397
7423
  "description": "Optional rich content rendered above the description — supplementary\nlists, hints, or markup the [description] string can't carry.\n"
7398
7424
  },
7425
+ "body": {
7426
+ "description": "Dialog body region (between header and footer). For rich content — paragraphs, lists, embedded form fields. Distinct from [slot=\"default\"] which sits above [description] in the header region."
7427
+ },
7428
+ "footer": {
7429
+ "description": "Wholesale override of the stamped footer (Cancel / Confirm action cluster). Use only for full custom-footer markup; otherwise the host's [cancel-text] / [confirm-text] / [confirm-variant] attrs drive the default footer rendering."
7430
+ },
7431
+ "header": {
7432
+ "description": "Wholesale override of the stamped header (icon + heading + description cluster). Use only when full custom-header markup is needed; otherwise prefer the granular icon/heading/description slot overrides."
7433
+ },
7434
+ "heading": {
7435
+ "description": "Override the stamped heading. Author-fillable when richer markup than the plain [text] string is needed (inline links, code spans, etc.)."
7436
+ },
7399
7437
  "icon": {
7400
7438
  "description": "Override the [icon] glyph with a custom node (e.g. a colored\n<icon-ui>, an image, or arbitrary markup). Mutually exclusive\nwith [icon]; if a slot child is present, the [icon] attribute\nis ignored.\n"
7401
7439
  }
@@ -10156,8 +10194,17 @@
10156
10194
  "select"
10157
10195
  ],
10158
10196
  "slots": {
10197
+ "description": {
10198
+ "description": "Override slot for the description text. Use for multi-paragraph or richly-marked-up explanatory copy."
10199
+ },
10159
10200
  "action": {
10160
10201
  "description": "User-provided action element (e.g. button) displayed below the description"
10202
+ },
10203
+ "heading": {
10204
+ "description": "Override slot for the heading text. Use when richer markup than the plain [heading] attribute is needed (line breaks, inline links, bold emphasis)."
10205
+ },
10206
+ "icon": {
10207
+ "description": "Override slot for the [icon] glyph. Use when the attribute-driven Phosphor icon isn't enough (e.g., custom SVG, illustration, or a styled icon-ui with non-default weight). Mutually exclusive with [icon]."
10161
10208
  }
10162
10209
  },
10163
10210
  "states": [
@@ -10314,6 +10361,11 @@
10314
10361
  }
10315
10362
  ],
10316
10363
  "properties": {
10364
+ "action": {
10365
+ "description": "Label of an inline action button (the \"deep-link\" / \"undo\" pattern).\nPair with `onAction` callback in `UIFeed.post()` — click invokes the\ncallback then auto-dismisses. Empty string renders no action button.\n",
10366
+ "type": "string",
10367
+ "default": ""
10368
+ },
10317
10369
  "component": {
10318
10370
  "const": "FeedItem"
10319
10371
  },
@@ -10507,6 +10559,12 @@
10507
10559
  "action": {
10508
10560
  "description": "Button adjacent to the control for inline actions (clear, reset, help popover)."
10509
10561
  },
10562
+ "error": {
10563
+ "description": "Override slot for error markup richer than the plain [error] attribute string. Rendered below the control with danger-text styling. Mutually exclusive with [error]."
10564
+ },
10565
+ "hint": {
10566
+ "description": "Override slot for hint markup richer than the plain [hint] attribute string (inline links, code spans, abbreviations). Rendered below the control at body-subtle typography. Mutually exclusive with [hint]."
10567
+ },
10510
10568
  "trailing": {
10511
10569
  "description": "Secondary text or badge aligned with the label in the stacked layout (right-aligned) or between label and control in the inline layout."
10512
10570
  }
@@ -11604,6 +11662,163 @@
11604
11662
  "version": 1
11605
11663
  }
11606
11664
  },
11665
+ "InlineEdit": {
11666
+ "title": "InlineEdit",
11667
+ "description": "Click-to-edit text in place. Renders as static text until clicked /\nfocused + Enter, then becomes editable. Enter or blur commits; Escape\ncancels and restores the original value. Form-participating.\n\nUse for editable titles, breadcrumb labels, table-cell text fields,\ndraft document names — any case where a user expects to edit text\nwithout opening a separate dialog or input. Distinct from `<input-ui>`\n(always-editable chrome) and from `<field-ui>` (stacked label + input\ncomposition). inline-edit reads as text in static state.\n",
11668
+ "type": "object",
11669
+ "allOf": [
11670
+ {
11671
+ "$ref": "#/$defs/ComponentCommon"
11672
+ },
11673
+ {
11674
+ "$ref": "#/$defs/CatalogComponentCommon"
11675
+ }
11676
+ ],
11677
+ "properties": {
11678
+ "commit": {
11679
+ "description": "When to commit pending edits. `blur` (default) — saves on focusout\nor Enter. `enter` — Enter saves, blur cancels (returns to original).\n`manual` — only programmatic `commitEdit()` saves.\n",
11680
+ "type": "string",
11681
+ "enum": [
11682
+ "blur",
11683
+ "enter",
11684
+ "manual"
11685
+ ],
11686
+ "default": "blur"
11687
+ },
11688
+ "component": {
11689
+ "const": "InlineEdit"
11690
+ },
11691
+ "editing": {
11692
+ "description": "Reflected state — `true` when the element is actively being edited.\nToggles automatically on click / Enter / blur / Escape; rarely set\nby consumers. Listen to `edit-start` / `edit-end` events instead.\n",
11693
+ "type": "boolean",
11694
+ "default": false
11695
+ },
11696
+ "placeholder": {
11697
+ "description": "Hint text shown when the value is empty (inline-edit reads this in the static state).",
11698
+ "type": "string",
11699
+ "default": "Click to edit"
11700
+ }
11701
+ },
11702
+ "required": [
11703
+ "component"
11704
+ ],
11705
+ "unevaluatedProperties": false,
11706
+ "x-adiaui": {
11707
+ "anti_patterns": [
11708
+ {
11709
+ "fix": "<inline-edit-ui value=\"Title\" name=\"title\"> — reads as text in static state; chrome only appears while editing.",
11710
+ "why": "Ghost variant still renders input chrome (border on focus). Looks like a control, not text.",
11711
+ "wrong": "<input-ui value=\"Title\" name=\"title\" variant=\"ghost\">"
11712
+ },
11713
+ {
11714
+ "fix": "<inline-edit-ui value=\"Title\">",
11715
+ "why": "No state machine — no commit/cancel semantics, no form participation, no a11y wiring.",
11716
+ "wrong": "<text-ui contenteditable>Title</text-ui>"
11717
+ }
11718
+ ],
11719
+ "category": "form",
11720
+ "composes": [],
11721
+ "events": {
11722
+ "cancel": {
11723
+ "description": "Fired when Escape (or blur with commit=enter) restores the original. Bubbles."
11724
+ },
11725
+ "change": {
11726
+ "description": "Fired after a successful commit. detail = { value, oldValue }. Bubbles."
11727
+ },
11728
+ "edit-end": {
11729
+ "description": "Fired when leaving edit mode. detail = { committed: boolean }. Bubbles."
11730
+ },
11731
+ "edit-start": {
11732
+ "description": "Fired when entering edit mode. Bubbles."
11733
+ }
11734
+ },
11735
+ "examples": [
11736
+ {
11737
+ "description": "A draft document title that becomes editable on click.",
11738
+ "a2ui": "[{ \"id\": \"title\", \"component\": \"InlineEdit\", \"value\": \"Untitled draft\" }]\n",
11739
+ "name": "editable-title"
11740
+ }
11741
+ ],
11742
+ "keywords": [
11743
+ "inline-edit",
11744
+ "editable",
11745
+ "click-to-edit",
11746
+ "rename",
11747
+ "edit-in-place"
11748
+ ],
11749
+ "name": "UIInlineEdit",
11750
+ "related": [
11751
+ "input",
11752
+ "field",
11753
+ "text"
11754
+ ],
11755
+ "slots": {},
11756
+ "states": [
11757
+ {
11758
+ "description": "Static — text reads as plain text with a hover hint.",
11759
+ "name": "idle"
11760
+ },
11761
+ {
11762
+ "description": "Hover affordance — subtle background tint signals editability.",
11763
+ "name": "hover"
11764
+ },
11765
+ {
11766
+ "description": "contenteditable — host is the input surface; outline + caret.",
11767
+ "name": "editing"
11768
+ },
11769
+ {
11770
+ "description": "Value is empty and not editing — placeholder text renders.",
11771
+ "name": "empty"
11772
+ },
11773
+ {
11774
+ "description": "Locked; click + keyboard activation are no-ops.",
11775
+ "name": "disabled"
11776
+ }
11777
+ ],
11778
+ "status": "stable",
11779
+ "synonyms": {
11780
+ "inline-edit": [
11781
+ "editable",
11782
+ "click-to-edit",
11783
+ "edit-in-place",
11784
+ "rename-in-place"
11785
+ ]
11786
+ },
11787
+ "tag": "inline-edit-ui",
11788
+ "tokens": {
11789
+ "--inline-edit-bg-edit": {
11790
+ "description": "Background while editing.",
11791
+ "default": "var(--a-bg)"
11792
+ },
11793
+ "--inline-edit-bg-hover": {
11794
+ "description": "Background tint on hover (idle state).",
11795
+ "default": "var(--a-bg-muted)"
11796
+ },
11797
+ "--inline-edit-outline": {
11798
+ "description": "Outline color in the editing state.",
11799
+ "default": "var(--a-accent-strong)"
11800
+ },
11801
+ "--inline-edit-placeholder": {
11802
+ "description": "Placeholder text color in empty-static state.",
11803
+ "default": "var(--a-fg-subtle)"
11804
+ },
11805
+ "--inline-edit-px": {
11806
+ "description": "Horizontal padding (inner gutter so hover tint reads as a pill, not a flush block).",
11807
+ "default": "var(--a-space-1)"
11808
+ },
11809
+ "--inline-edit-py": {
11810
+ "description": "Vertical padding.",
11811
+ "default": "var(--a-space-0-5)"
11812
+ },
11813
+ "--inline-edit-radius": {
11814
+ "description": "Border-radius for the hover / editing chrome.",
11815
+ "default": "var(--a-radius-sm)"
11816
+ }
11817
+ },
11818
+ "traits": [],
11819
+ "version": 1
11820
+ }
11821
+ },
11607
11822
  "InlineMessage": {
11608
11823
  "title": "InlineMessage",
11609
11824
  "description": "In-flow message glyph + text used in form-field rows for validation\nfeedback, hint copy, and inline confirmations. Distinguished from\n<alert-ui> (banner / surface-bearing notice) by carrying no surface\nfill, no border, no padding box — severity is foreground color +\nicon only. Variants map to severity (info / success / warning /\ndanger). Nests inside <field-ui>, <col-ui>, <row-ui> without\nbreaking field rhythm. Non-interactive annotation only.\n",
@@ -13759,7 +13974,14 @@
13759
13974
  "MenuItem",
13760
13975
  "TreeItem"
13761
13976
  ],
13762
- "slots": {},
13977
+ "slots": {
13978
+ "description": {
13979
+ "description": "Override slot for richer description markup than the plain [description] attribute string (inline links, code spans, multiple lines). Renders beneath the primary text at body-subtle typography."
13980
+ },
13981
+ "icon": {
13982
+ "description": "Override the [icon] glyph with a custom slotted element (e.g. a colored <icon-ui>, an image, or an avatar-ui). Mutually exclusive with the [icon] attribute — slot child wins if both are present."
13983
+ }
13984
+ },
13763
13985
  "states": [],
13764
13986
  "status": "stable",
13765
13987
  "synonyms": {
@@ -14225,6 +14447,113 @@
14225
14447
  "version": 1
14226
14448
  }
14227
14449
  },
14450
+ "Mark": {
14451
+ "title": "Mark",
14452
+ "description": "Highlighted inline text — token-driven theme-aware wrapper around the\nnative `<mark>` semantic. Use for search-result match highlighting,\ndiff additions in prose, \"new since last visit\" emphasis, and any\ninline text that needs a visual rail without changing its weight.\n\nDistinct from `<text-ui strong>` (semantic emphasis via weight) and\nfrom `<tag-ui>` (block-shaped pill chrome). mark-ui keeps the inline\ntext flow intact — same line-height, same baseline — just paints a\nbackground highlight behind the matched span.\n",
14453
+ "type": "object",
14454
+ "allOf": [
14455
+ {
14456
+ "$ref": "#/$defs/ComponentCommon"
14457
+ },
14458
+ {
14459
+ "$ref": "#/$defs/CatalogComponentCommon"
14460
+ }
14461
+ ],
14462
+ "properties": {
14463
+ "component": {
14464
+ "const": "Mark"
14465
+ },
14466
+ "variant": {
14467
+ "description": "Highlight color variant. Default `warning` is the conventional yellow-marker tone.",
14468
+ "type": "string",
14469
+ "enum": [
14470
+ "warning",
14471
+ "info",
14472
+ "success",
14473
+ "danger",
14474
+ "muted"
14475
+ ],
14476
+ "default": "warning"
14477
+ }
14478
+ },
14479
+ "required": [
14480
+ "component"
14481
+ ],
14482
+ "unevaluatedProperties": false,
14483
+ "x-adiaui": {
14484
+ "anti_patterns": [
14485
+ {
14486
+ "fix": "<mark-ui>matched</mark-ui> — same semantic role but theme-aware.",
14487
+ "why": "Native <mark> uses UA default (yellow-on-white) that doesn't adapt to theme — invisible in dark mode + jarring in light mode.",
14488
+ "wrong": "<mark>matched</mark>"
14489
+ }
14490
+ ],
14491
+ "category": "typography",
14492
+ "composes": [],
14493
+ "events": {},
14494
+ "examples": [
14495
+ {
14496
+ "description": "Highlight the search query within a result title.",
14497
+ "a2ui": "[\n { \"id\": \"row\", \"component\": \"Row\", \"children\": [\"pre\", \"mk\", \"post\"] },\n { \"id\": \"pre\", \"component\": \"Text\", \"textContent\": \"Quarterly \" },\n { \"id\": \"mk\", \"component\": \"Mark\", \"textContent\": \"revenue\" },\n { \"id\": \"post\", \"component\": \"Text\", \"textContent\": \" report — Q4 2025\" }\n]\n",
14498
+ "name": "search-match"
14499
+ }
14500
+ ],
14501
+ "keywords": [
14502
+ "mark",
14503
+ "highlight",
14504
+ "search-match",
14505
+ "emphasis"
14506
+ ],
14507
+ "name": "UIMark",
14508
+ "related": [
14509
+ "text",
14510
+ "tag"
14511
+ ],
14512
+ "slots": {
14513
+ "default": {
14514
+ "description": "The text content to highlight (plain text or inline elements)."
14515
+ }
14516
+ },
14517
+ "states": [
14518
+ {
14519
+ "description": "Default — highlighted background painted behind the slotted text.",
14520
+ "name": "idle"
14521
+ }
14522
+ ],
14523
+ "status": "stable",
14524
+ "synonyms": {
14525
+ "highlight": [
14526
+ "mark",
14527
+ "emphasis"
14528
+ ],
14529
+ "search-match": [
14530
+ "mark",
14531
+ "highlight"
14532
+ ]
14533
+ },
14534
+ "tag": "mark-ui",
14535
+ "tokens": {
14536
+ "--mark-bg": {
14537
+ "description": "Background color of the highlight.",
14538
+ "default": "var(--a-warning-muted)"
14539
+ },
14540
+ "--mark-fg": {
14541
+ "description": "Foreground (text) color inside the highlight.",
14542
+ "default": "var(--a-warning-text)"
14543
+ },
14544
+ "--mark-px": {
14545
+ "description": "Horizontal padding around the highlighted text.",
14546
+ "default": "var(--a-space-0-5)"
14547
+ },
14548
+ "--mark-radius": {
14549
+ "description": "Border radius of the highlight box.",
14550
+ "default": "var(--a-radius-xs)"
14551
+ }
14552
+ },
14553
+ "traits": [],
14554
+ "version": 1
14555
+ }
14556
+ },
14228
14557
  "Menu": {
14229
14558
  "title": "Menu",
14230
14559
  "description": "Dropdown action menu with roving focus and keyboard navigation. Uses Popover API.",
@@ -14604,6 +14933,15 @@
14604
14933
  "slots": {
14605
14934
  "default": {
14606
14935
  "description": "Content placed inside the modal surface. Accepts any elements (card-ui, command-ui, custom markup)."
14936
+ },
14937
+ "body": {
14938
+ "description": "Main body region for prose, forms, or arbitrary content. Sits between header and footer; scrolls when content overflows."
14939
+ },
14940
+ "footer": {
14941
+ "description": "Optional footer region rendered below the body, typically for action buttons. Author-fills with Confirm / Cancel buttons or similar trailing affordances."
14942
+ },
14943
+ "header": {
14944
+ "description": "Optional header region rendered above the body. Author-fillable with title + supporting markup. CSS positions it at the top of the modal surface with consistent padding + the dismiss-close affordance."
14607
14945
  }
14608
14946
  },
14609
14947
  "states": [
@@ -14878,6 +15216,9 @@
14878
15216
  },
14879
15217
  "header": {
14880
15218
  "description": "Optional custom header. Auto-generated when missing."
15219
+ },
15220
+ "icon": {
15221
+ "description": "Override the leading [icon] glyph in the auto-generated header with a custom slotted element. Mutually exclusive with the [icon] attribute."
14881
15222
  }
14882
15223
  },
14883
15224
  "states": [
@@ -15009,6 +15350,9 @@
15009
15350
  "slots": {
15010
15351
  "default": {
15011
15352
  "description": "Optional override of the default icon + text + badge stamping."
15353
+ },
15354
+ "icon": {
15355
+ "description": "Override the leading [icon] glyph with a custom slotted element (custom icon-ui, image, avatar). Mutually exclusive with the [icon] attribute — slot child wins."
15012
15356
  }
15013
15357
  },
15014
15358
  "states": [
@@ -15810,6 +16154,9 @@
15810
16154
  "StepProgress"
15811
16155
  ],
15812
16156
  "slots": {
16157
+ "description": {
16158
+ "description": "Optional subtitle / supporting prose rendered beneath the header. Renders at body-subtle typography. Use for richer markup than the plain [description] attribute string."
16159
+ },
15813
16160
  "complete": {
15814
16161
  "description": "Content shown when all items are done and dismiss-on-complete is false."
15815
16162
  },
@@ -20022,6 +20369,9 @@
20022
20369
  "upload"
20023
20370
  ],
20024
20371
  "slots": {
20372
+ "hint": {
20373
+ "description": "Override slot for hint markup richer than the plain [hint] attribute string (inline links, code spans). Renders beneath the trigger at body-subtle typography. Mutually exclusive with [hint]."
20374
+ },
20025
20375
  "label": {
20026
20376
  "description": "Label element above the trigger"
20027
20377
  },
@@ -20653,6 +21003,12 @@
20653
21003
  "embed"
20654
21004
  ],
20655
21005
  "slots": {
21006
+ "header": {
21007
+ "description": "Wholesale override of the stamped label + value-readout header row. Use only when full custom-header markup is needed; otherwise prefer the granular `label` / `value` slots and the [label] attribute."
21008
+ },
21009
+ "hint": {
21010
+ "description": "Override slot for hint markup richer than the plain [hint] attribute string (inline links, code spans). Renders beneath the slider at body-subtle typography. Mutually exclusive with [hint]."
21011
+ },
20656
21012
  "input": {
20657
21013
  "description": "Native range input element"
20658
21014
  },
@@ -21389,6 +21745,9 @@
21389
21745
  "description": {
21390
21746
  "description": "Custom description content; falls through to `[description]` prop if not slotted."
21391
21747
  },
21748
+ "icon": {
21749
+ "description": "Override the step-status glyph with a custom slotted element. By default the step renders a numeral / check / x indicator based on [status]; slot an `<icon-ui>` or image to customize."
21750
+ },
21392
21751
  "label": {
21393
21752
  "description": "Custom label content; falls through to `[text]` prop if not slotted."
21394
21753
  }
@@ -24520,7 +24879,14 @@
24520
24879
  "FeedItem",
24521
24880
  "Stepper"
24522
24881
  ],
24523
- "slots": {},
24882
+ "slots": {
24883
+ "description": {
24884
+ "description": "Override slot for rich description markup (inline links, code spans, embedded badges). Renders beneath the primary text at body-subtle typography."
24885
+ },
24886
+ "icon": {
24887
+ "description": "Override the [icon] glyph with a custom slotted element. Use for branded icons, avatars, or non-Phosphor sources. Mutually exclusive with the [icon] attribute."
24888
+ }
24889
+ },
24524
24890
  "states": [],
24525
24891
  "status": "stable",
24526
24892
  "synonyms": {
@@ -25818,6 +26184,9 @@
25818
26184
  "slots": {
25819
26185
  "default (tree-item-ui children)": {
25820
26186
  "description": "Child content region for the `default (tree-item-ui children)` slot."
26187
+ },
26188
+ "icon": {
26189
+ "description": "Override slot for the per-node icon glyph. Tree-item's `[icon]` attr stamps a default Phosphor icon; the slot lets consumers fill custom icons (folder open/closed, file-type glyphs, branded markers)."
25821
26190
  }
25822
26191
  },
25823
26192
  "states": [
@@ -25970,7 +26339,11 @@
25970
26339
  "Nav",
25971
26340
  "Accordion"
25972
26341
  ],
25973
- "slots": {},
26342
+ "slots": {
26343
+ "icon": {
26344
+ "description": "Override the leading [icon] glyph with a custom slotted element (custom icon-ui, folder open/closed glyph, file-type marker). Mutually exclusive with the [icon] attribute — slot child wins."
26345
+ }
26346
+ },
25974
26347
  "states": [],
25975
26348
  "status": "stable",
25976
26349
  "synonyms": {
@@ -257,6 +257,7 @@
257
257
  - One notification entry inside <feed-ui>. Title + description + optional icon + auto-dismiss timer.
258
258
  - Typically created programmatically via UIFeed.post(...); do not place declaratively.
259
259
  - Different from <alert-ui> (inline persistent) and <toast-ui> (standalone ephemeral); feed-item is feed-scoped.
260
+ - For "notification deep-link" pattern: post with action + onAction. Click navigates and auto-dismisses (router.push() / location.href / api.markRead()).
260
261
 
261
262
  ## Feed
262
263
  - Top-layer notification feed channel — singleton per position (top-right, bottom-center, etc.) mounted lazily into document.body.
@@ -309,6 +310,12 @@
309
310
  - Set aspect-ratio attribute to lock dimensions and prevent layout shift during load.
310
311
  - For decorative-only images, set alt='' and aria-hidden='true' so screen readers skip them.
311
312
 
313
+ ## InlineEdit
314
+ - Use inline-edit-ui for click-to-edit titles, draft names, table-cell text, breadcrumb labels — anywhere the user expects to edit text without opening a dialog.
315
+ - inline-edit-ui IS form-participating (extends UIFormElement). Pair with a hidden <form> + name="..." to submit edits as a field.
316
+ - Distinct from <input-ui> (always shows input chrome) and from <field-ui> (stacked label + input composition). inline-edit reads as text in the static state.
317
+ - Listen to `change` event (detail.value, detail.oldValue) for commit; `cancel` for Escape. Default commit=blur saves on focusout + Enter.
318
+
312
319
  ## InlineMessage
313
320
  - In-flow annotation under a form input (validation feedback, hint copy, inline confirmation). Severity via [variant] (info, success, warning, danger).
314
321
  - For overlay / banner-style notices use <alert-ui> instead; for transient toasts use <toast-ui>.
@@ -374,6 +381,11 @@
374
381
  - Do NOT use <LoadingOverlay> to disable a form during submit — use <Button type="submit" loading> for the submit affordance.
375
382
  - The default slot accepts any busy indicator. When empty, a centered <Spinner size="lg"> is auto-stamped. Slot a <Skeleton> stack for placeholder-shaped loading; slot <Progress value=…> when the wait is determinate.
376
383
 
384
+ ## Mark
385
+ - Use mark-ui for search-result match highlighting — wrap the matched substring in <mark-ui> within the surrounding text. Inline; preserves text flow.
386
+ - variant=warning (default) is the conventional yellow-marker tone; info for brand-color highlights; success for "new since" / "added" emphasis; danger for "removed" / "deleted-line" in diff prose.
387
+ - Distinct from <text-ui strong> (weight emphasis), <tag-ui> (block pill), <code-ui> (monospace). mark-ui is specifically the "visual rail behind matched text" use case.
388
+
377
389
  ## MenuDivider
378
390
  - <menu-divider-ui> MUST be a direct child of <menu-ui>; a raw <hr> will render OUTSIDE the popover because <menu-ui> only hoists <menu-item-ui> and <menu-divider-ui> children via its direct-child selector.
379
391
  - Use to group items by semantic tier — primary actions → secondary → destructive (danger). Avoid leading / trailing dividers and consecutive dividers; they produce visual noise without grouping value.