@adia-ai/a2ui-corpus 0.3.5 → 0.4.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 (183) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/catalog-a2ui_0_9.json +411 -0
  3. package/catalog-a2ui_0_9_rules.txt +18 -0
  4. package/chunks/_index.json +83 -4
  5. package/chunks/agent-activity-feed.json +1 -1
  6. package/chunks/agent-canvas-shell.json +33 -0
  7. package/chunks/agent-reasoning-collapsed.json +1 -1
  8. package/chunks/auth-account-deleted-actions.json +1 -1
  9. package/chunks/auth-account-deleted.json +1 -1
  10. package/chunks/auth-card-content.json +1 -1
  11. package/chunks/auth-card-header.json +1 -1
  12. package/chunks/auth-email-entry.json +1 -1
  13. package/chunks/auth-email-verify-confirm.json +1 -1
  14. package/chunks/auth-email-verify.json +1 -1
  15. package/chunks/auth-forbidden-actions.json +1 -1
  16. package/chunks/auth-forbidden.json +1 -1
  17. package/chunks/auth-invite-actions.json +1 -1
  18. package/chunks/auth-invite-team-card.json +1 -1
  19. package/chunks/auth-link-expired-form.json +1 -1
  20. package/chunks/auth-link-expired.json +1 -1
  21. package/chunks/auth-locked-account.json +1 -1
  22. package/chunks/auth-locked-recovery-options.json +1 -1
  23. package/chunks/auth-mfa-enrollment-submit.json +1 -1
  24. package/chunks/auth-mfa-enrollment.json +1 -1
  25. package/chunks/auth-mfa-fallback-actions.json +1 -1
  26. package/chunks/auth-mfa-recovery.json +1 -1
  27. package/chunks/auth-new-password-form.json +1 -1
  28. package/chunks/auth-new-password.json +1 -1
  29. package/chunks/auth-oauth-fallback-actions.json +1 -1
  30. package/chunks/auth-oauth-interstitial.json +1 -1
  31. package/chunks/auth-password-challenge.json +1 -1
  32. package/chunks/auth-password-reset-form.json +1 -1
  33. package/chunks/auth-password-reset.json +1 -1
  34. package/chunks/auth-profile-form.json +1 -1
  35. package/chunks/auth-profile-setup.json +1 -1
  36. package/chunks/auth-reset-sent.json +1 -1
  37. package/chunks/auth-session-expired-actions.json +1 -1
  38. package/chunks/auth-session-expired.json +1 -1
  39. package/chunks/auth-signin-card-email.json +1 -1
  40. package/chunks/auth-signin-card-magic-link.json +1 -1
  41. package/chunks/auth-signin-card-mfa.json +1 -1
  42. package/chunks/auth-signin-card-otp.json +1 -1
  43. package/chunks/auth-signin-card-password.json +1 -1
  44. package/chunks/auth-signin-card-recovery.json +1 -1
  45. package/chunks/auth-signout-actions.json +1 -1
  46. package/chunks/auth-signout.json +1 -1
  47. package/chunks/auth-signup-email-entry.json +1 -1
  48. package/chunks/auth-signup-entry.json +1 -1
  49. package/chunks/auth-signup-social-auths.json +1 -1
  50. package/chunks/auth-signup-verify.json +1 -1
  51. package/chunks/auth-social-auths.json +1 -1
  52. package/chunks/auth-sso-providers.json +1 -1
  53. package/chunks/auth-sso-required.json +1 -1
  54. package/chunks/auth-team-invite.json +1 -1
  55. package/chunks/chat-page-shell.json +33 -0
  56. package/chunks/chat-streaming-surface.json +1 -1
  57. package/chunks/command-palette.json +1 -1
  58. package/chunks/commerce-pricing-tiers.json +1 -1
  59. package/chunks/conversion-funnel-6step.json +1 -1
  60. package/chunks/dashboard-acquisition-panel.json +1 -1
  61. package/chunks/dashboard-admin-page.json +1 -1
  62. package/chunks/dashboard-audience-kpis.json +1 -1
  63. package/chunks/dashboard-audience-panel.json +1 -1
  64. package/chunks/dashboard-behavior-panel.json +1 -1
  65. package/chunks/dashboard-chart-recent.json +1 -1
  66. package/chunks/dashboard-cohort-retention.json +1 -1
  67. package/chunks/dashboard-conversion-panel.json +1 -1
  68. package/chunks/dashboard-country-list.json +1 -1
  69. package/chunks/dashboard-filter-bar.json +1 -1
  70. package/chunks/dashboard-funnel.json +1 -1
  71. package/chunks/dashboard-kpi-grid.json +1 -1
  72. package/chunks/dashboard-notifications-feed.json +1 -1
  73. package/chunks/dashboard-notifications-panel.json +1 -1
  74. package/chunks/dashboard-overview-panel.json +1 -1
  75. package/chunks/dashboard-page-header.json +1 -1
  76. package/chunks/dashboard-pages-table.json +1 -1
  77. package/chunks/dashboard-quick-actions.json +1 -1
  78. package/chunks/dashboard-reports-panel.json +1 -1
  79. package/chunks/dashboard-reports-table.json +1 -1
  80. package/chunks/dashboard-spark-cards.json +1 -1
  81. package/chunks/dashboard-storage-card.json +1 -1
  82. package/chunks/dashboard-tabs.json +1 -1
  83. package/chunks/dashboard-team-actions-storage.json +1 -1
  84. package/chunks/dashboard-team-list.json +1 -1
  85. package/chunks/dashboard-traffic-channels.json +1 -1
  86. package/chunks/dashboard-transactions-table.json +1 -1
  87. package/chunks/destructive-confirm-modal.json +1 -1
  88. package/chunks/doc-editor-shell.json +33 -0
  89. package/chunks/drawer-2fa-key.json +1 -1
  90. package/chunks/drawer-2fa-sms.json +1 -1
  91. package/chunks/drawer-2fa-totp.json +1 -1
  92. package/chunks/drawer-cancel-sub.json +1 -1
  93. package/chunks/drawer-change-plan.json +1 -1
  94. package/chunks/drawer-custom-roles.json +1 -1
  95. package/chunks/drawer-data-start.json +1 -1
  96. package/chunks/drawer-delete-account.json +1 -1
  97. package/chunks/drawer-delete-workspace.json +1 -1
  98. package/chunks/drawer-discord.json +1 -1
  99. package/chunks/drawer-figma.json +1 -1
  100. package/chunks/drawer-first-dashboard.json +1 -1
  101. package/chunks/drawer-gcal.json +1 -1
  102. package/chunks/drawer-github.json +1 -1
  103. package/chunks/drawer-invite.json +1 -1
  104. package/chunks/drawer-payment-method.json +1 -1
  105. package/chunks/drawer-report.json +1 -1
  106. package/chunks/drawer-revoke-session.json +1 -1
  107. package/chunks/drawer-role.json +1 -1
  108. package/chunks/drawer-slack.json +1 -1
  109. package/chunks/drawer-smtp.json +1 -1
  110. package/chunks/drawer-source.json +1 -1
  111. package/chunks/drawer-transaction.json +1 -1
  112. package/chunks/editor-code-pane.json +1 -1
  113. package/chunks/editor-page-shell.json +1 -1
  114. package/chunks/editor-preview-pane.json +1 -1
  115. package/chunks/error-404-actions.json +1 -1
  116. package/chunks/error-404.json +1 -1
  117. package/chunks/error-500-actions.json +1 -1
  118. package/chunks/error-500.json +1 -1
  119. package/chunks/error-maintenance-actions.json +1 -1
  120. package/chunks/error-maintenance.json +1 -1
  121. package/chunks/error-page-shell.json +1 -1
  122. package/chunks/form-page-shell.json +1 -1
  123. package/chunks/gallery-page-shell.json +33 -0
  124. package/chunks/kanban-board-3col.json +1 -1
  125. package/chunks/kanban-page-shell.json +28 -0
  126. package/chunks/marketing-hero-cta.json +1 -1
  127. package/chunks/marketing-page-shell.json +1 -1
  128. package/chunks/member-edit-drawer.json +1 -1
  129. package/chunks/onb-completion.json +1 -1
  130. package/chunks/onb-extension-install.json +1 -1
  131. package/chunks/onb-hero-welcome.json +1 -1
  132. package/chunks/onb-import-picker.json +1 -1
  133. package/chunks/onb-mobile-handoff.json +1 -1
  134. package/chunks/onb-notification-prefs.json +1 -1
  135. package/chunks/onb-persona-picker.json +1 -1
  136. package/chunks/onb-provider-tiles.json +1 -1
  137. package/chunks/onb-settings-review.json +1 -1
  138. package/chunks/onb-step-footer.json +1 -1
  139. package/chunks/onb-step-header.json +1 -1
  140. package/chunks/onb-step-progress.json +1 -1
  141. package/chunks/onb-step-shell.json +1 -1
  142. package/chunks/onb-story-pane.json +1 -1
  143. package/chunks/onb-tutorial-steps.json +1 -1
  144. package/chunks/playground-a2ui.json +1 -1
  145. package/chunks/playground-app-shell.json +1 -1
  146. package/chunks/playground-chat.json +1 -1
  147. package/chunks/playground-construct-canvas.json +1 -1
  148. package/chunks/playground-gen-ui.json +1 -1
  149. package/chunks/playground-render-preview.json +1 -1
  150. package/chunks/playground-streams-bridge.json +1 -1
  151. package/chunks/playground-table-toolbar.json +1 -1
  152. package/chunks/reg-address-form.json +1 -1
  153. package/chunks/reg-billing-card.json +1 -1
  154. package/chunks/reg-brand-scrape.json +1 -1
  155. package/chunks/reg-departments-toggle.json +1 -1
  156. package/chunks/reg-extended-profile.json +1 -1
  157. package/chunks/reg-final-done.json +1 -1
  158. package/chunks/reg-helpdesk-grid.json +1 -1
  159. package/chunks/reg-import-picker.json +1 -1
  160. package/chunks/reg-integrations-grid.json +1 -1
  161. package/chunks/reg-invite-form.json +1 -1
  162. package/chunks/reg-legal-entity.json +1 -1
  163. package/chunks/reg-org-chart-review.json +1 -1
  164. package/chunks/reg-profile-identity.json +1 -1
  165. package/chunks/reg-step-footer.json +1 -1
  166. package/chunks/reg-step-header.json +1 -1
  167. package/chunks/reg-step-progress.json +1 -1
  168. package/chunks/reg-step-shell.json +1 -1
  169. package/chunks/reg-story-pane.json +1 -1
  170. package/chunks/reg-success-summary.json +1 -1
  171. package/chunks/reg-team-size.json +1 -1
  172. package/chunks/reg-usecase-picker.json +1 -1
  173. package/chunks/reg-workspace-name.json +1 -1
  174. package/chunks/settings-billing-plan.json +1 -1
  175. package/chunks/settings-general-form.json +1 -1
  176. package/chunks/settings-integrations.json +1 -1
  177. package/chunks/settings-members-invite.json +1 -1
  178. package/chunks/settings-notifications.json +1 -1
  179. package/chunks/settings-page-shell.json +1 -1
  180. package/chunks/settings-profile-security.json +1 -1
  181. package/chunks/user-profile-card.json +1 -1
  182. package/chunks/users-table-badge.json +1 -1
  183. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -19,6 +19,32 @@ gap registry. Consumed by `@adia-ai/a2ui-retrieval` and
19
19
 
20
20
  _No pending changes._
21
21
 
22
+ ## [0.4.0] - 2026-05-10
23
+
24
+ ### Ride-along (no corpus changes)
25
+
26
+ Lockstep MINOR cut alongside `@adia-ai/web-modules@0.4.0` (ADR-0024 legacy deprecation). Catalog regenerated; chunks/fragments/compositions/patterns byte-identical to v0.3.6.
27
+
28
+ Internal `@adia-ai/*` dep ranges bumped from `^0.3.0` to `^0.4.0`. See root [CHANGELOG.md `## [0.4.0]`](../../../CHANGELOG.md) for the cut narrative.
29
+
30
+ ## [0.3.6] - 2026-05-10
31
+
32
+ ### Changed
33
+
34
+ - **Component catalog regenerated** — 113 → 118 yamls (+5 from new editor-* bespoke children added in `@adia-ai/web-modules`). `catalog-a2ui_0_9.json` + `catalog-a2ui_0_9_rules.txt` regenerated.
35
+
36
+ - **New catalog entries** for the editor-cluster bespoke family per ADR-0023:
37
+ - `EditorToolbar` (editor-toolbar) — JS-bearing
38
+ - `EditorCanvas` (editor-canvas) — JS-bearing
39
+ - `EditorSidebar` (editor-sidebar) — JS-bearing (delegates to `<pane-ui>`)
40
+ - `EditorStatusbar` / `EditorCanvasEmpty` — CSS-only structural
41
+
42
+ The catalog is consumed by `@adia-ai/a2ui-retrieval` for protocol-vocabulary composition. Composers (zettel, chunk-zettel) now have addressable entries for editor sub-regions in protocol vocabulary.
43
+
44
+ ### No source changes
45
+
46
+ Corpus chunks, fragments, compositions, and patterns are byte-identical to v0.3.5. The only change is the regenerated catalog manifest.
47
+
22
48
  ## [0.3.5] - 2026-05-07
23
49
 
24
50
  ### Changed
@@ -5626,6 +5626,158 @@
5626
5626
  "version": 1
5627
5627
  }
5628
5628
  },
5629
+ "EditorCanvas": {
5630
+ "title": "EditorCanvas",
5631
+ "description": "Module-tier editor canvas surface — replaces legacy <div data-canvas>\ninside <editor-shell> per ADR-0023. Owns scroll/zoom container\nsemantics, [empty] and [focused] reflected attributes, and a stable\ntarget for the host's content rendering pipeline.\n\nSits as the central content region inside <editor-shell>, between\nthe optional <editor-sidebar slot=\"leading\"> and <editor-sidebar\nslot=\"trailing\">. Authors compose <editor-canvas-empty> as an\noptional first child for the empty state; canvas content children\n(artboards, document body, etc.) are appended either statically or\ndynamically by the host.\n\nBackwards compat — <editor-shell> still recognizes the legacy\n<div data-canvas> shape via :is() selector. New code should prefer\n<editor-canvas>.\n",
5632
+ "type": "object",
5633
+ "allOf": [
5634
+ {
5635
+ "$ref": "#/$defs/ComponentCommon"
5636
+ },
5637
+ {
5638
+ "$ref": "#/$defs/CatalogComponentCommon"
5639
+ }
5640
+ ],
5641
+ "properties": {
5642
+ "component": {
5643
+ "const": "EditorCanvas"
5644
+ },
5645
+ "empty": {
5646
+ "description": "Reflected — set when zero non-<editor-canvas-empty> children.\nDrives the <editor-canvas-empty> visibility via parent CSS —\nno JS toggling needed.\n",
5647
+ "type": "boolean",
5648
+ "default": true
5649
+ },
5650
+ "focused": {
5651
+ "description": "Reflected — set when canvas claims focus ownership (programmatic\n.focus() call or toolbar full-screen toggle).\n",
5652
+ "type": "boolean",
5653
+ "default": false
5654
+ }
5655
+ },
5656
+ "required": [
5657
+ "component"
5658
+ ],
5659
+ "unevaluatedProperties": false,
5660
+ "x-adiaui": {
5661
+ "anti_patterns": [],
5662
+ "category": "container",
5663
+ "events": {},
5664
+ "examples": [],
5665
+ "keywords": [
5666
+ "editor-canvas",
5667
+ "canvas",
5668
+ "workspace",
5669
+ "artboard",
5670
+ "editor-surface"
5671
+ ],
5672
+ "name": "EditorCanvas",
5673
+ "related": [
5674
+ "EditorShell",
5675
+ "EditorCanvasEmpty",
5676
+ "EditorToolbar",
5677
+ "EditorSidebar"
5678
+ ],
5679
+ "slots": {
5680
+ "default": {
5681
+ "description": "Default — canvas content (artboards, document body, blocks, etc.) plus an optional first <editor-canvas-empty> sibling for the empty state."
5682
+ }
5683
+ },
5684
+ "states": [
5685
+ {
5686
+ "description": "Default canvas mode.",
5687
+ "name": "idle"
5688
+ },
5689
+ {
5690
+ "description": "Zero content children — empty state visible.",
5691
+ "attribute": "empty",
5692
+ "name": "empty"
5693
+ },
5694
+ {
5695
+ "description": "Canvas is the focus surface.",
5696
+ "attribute": "focused",
5697
+ "name": "focused"
5698
+ }
5699
+ ],
5700
+ "synonyms": {
5701
+ "editor-canvas": [
5702
+ "canvas",
5703
+ "workspace",
5704
+ "artboard",
5705
+ "design-surface"
5706
+ ]
5707
+ },
5708
+ "tag": "editor-canvas",
5709
+ "tokens": {},
5710
+ "traits": [],
5711
+ "version": 1
5712
+ }
5713
+ },
5714
+ "EditorCanvasEmpty": {
5715
+ "title": "EditorCanvasEmpty",
5716
+ "description": "Module-tier editor canvas empty state. CSS-only — no behavior, no\nJS. Sits as the first child of <editor-canvas> as the empty state\nplaceholder. Visibility is driven by <editor-canvas>'s [empty]\nreflected attribute via CSS (no JS toggling) — when content arrives,\nthe parent canvas loses [empty] and CSS hides this stub.\n\nReplaces ad-hoc empty-state placement inside the legacy\n<div data-canvas> per ADR-0023.\n",
5717
+ "type": "object",
5718
+ "allOf": [
5719
+ {
5720
+ "$ref": "#/$defs/ComponentCommon"
5721
+ },
5722
+ {
5723
+ "$ref": "#/$defs/CatalogComponentCommon"
5724
+ }
5725
+ ],
5726
+ "properties": {
5727
+ "component": {
5728
+ "const": "EditorCanvasEmpty"
5729
+ }
5730
+ },
5731
+ "required": [
5732
+ "component"
5733
+ ],
5734
+ "unevaluatedProperties": false,
5735
+ "x-adiaui": {
5736
+ "anti_patterns": [],
5737
+ "category": "feedback",
5738
+ "events": {},
5739
+ "examples": [],
5740
+ "keywords": [
5741
+ "editor-canvas-empty",
5742
+ "empty-state",
5743
+ "placeholder",
5744
+ "no-content",
5745
+ "canvas-empty"
5746
+ ],
5747
+ "name": "EditorCanvasEmpty",
5748
+ "related": [
5749
+ "EditorShell",
5750
+ "EditorCanvas",
5751
+ "EmptyState"
5752
+ ],
5753
+ "slots": {
5754
+ "default": {
5755
+ "description": "Empty state content — typically <empty-state-ui> with a \"Create new...\" prompt or onboarding affordance."
5756
+ }
5757
+ },
5758
+ "states": [
5759
+ {
5760
+ "description": "Default, visible.",
5761
+ "name": "idle"
5762
+ },
5763
+ {
5764
+ "description": "Hidden via parent <editor-canvas>:not([empty]) selector.",
5765
+ "name": "hidden"
5766
+ }
5767
+ ],
5768
+ "synonyms": {
5769
+ "editor-canvas-empty": [
5770
+ "empty-state",
5771
+ "placeholder",
5772
+ "no-document"
5773
+ ]
5774
+ },
5775
+ "tag": "editor-canvas-empty",
5776
+ "tokens": {},
5777
+ "traits": [],
5778
+ "version": 1
5779
+ }
5780
+ },
5629
5781
  "EditorShell": {
5630
5782
  "title": "EditorShell",
5631
5783
  "description": "Behavior-only editor shell module for design-tool layouts. Author\nprovides the structural DOM — header (topbar), [data-editor-body] with\npane-ui children ([data-left], [data-right]), [data-canvas] for the\ncentral surface, and a footer (statusbar). editor-shell wires\nselect-ui[data-options] for JSON-parsed option lists.\n",
@@ -5697,6 +5849,265 @@
5697
5849
  "version": 1
5698
5850
  }
5699
5851
  },
5852
+ "EditorSidebar": {
5853
+ "title": "EditorSidebar",
5854
+ "description": "Module-tier editor-cluster sidebar — wraps <pane-ui resizable>\n(the primitive that owns drag) and adds [collapsed] reflected\nstate, localStorage persistence (adia-editor-sidebar-{name}),\nand .toggle() / .collapse() / .expand() public API.\n\nSits inside <editor-shell> as slot=\"leading\" (navigator pane) or\nslot=\"trailing\" (inspector pane). Mirrors the cluster-namespace\nshape from <admin-sidebar> and <chat-sidebar>, but DELEGATES to\n<pane-ui> for resize rather than reimplementing it (per\nbespoke-shell-children skill §When NOT to promote — pane primitive\nalready owns this concern).\n\nThis is the FIRST bespoke shell child that delegates rather than\nduplicates a primitive's behavior. Pattern is: cluster-namespace +\nstate-as-attribute + persistence at the bespoke tier; physical\ndrag at the primitive tier.\n",
5855
+ "type": "object",
5856
+ "allOf": [
5857
+ {
5858
+ "$ref": "#/$defs/ComponentCommon"
5859
+ },
5860
+ {
5861
+ "$ref": "#/$defs/CatalogComponentCommon"
5862
+ }
5863
+ ],
5864
+ "properties": {
5865
+ "collapsed": {
5866
+ "description": "Reflected — set when inner <pane-ui> width is at or below 96px snap threshold.",
5867
+ "type": "boolean",
5868
+ "default": false
5869
+ },
5870
+ "component": {
5871
+ "const": "EditorSidebar"
5872
+ },
5873
+ "resizing": {
5874
+ "description": "Reflected — set during an active pointer-drag of the pane's\nresize handle. Used to disable transitions and visual treatments\nthat would feel laggy during drag.\n",
5875
+ "type": "boolean",
5876
+ "default": false
5877
+ }
5878
+ },
5879
+ "required": [
5880
+ "component"
5881
+ ],
5882
+ "unevaluatedProperties": false,
5883
+ "x-adiaui": {
5884
+ "anti_patterns": [],
5885
+ "category": "layout",
5886
+ "events": {
5887
+ "sidebar-toggle": {
5888
+ "description": "Bubbles when .toggle() / .collapse() / .expand() is called.",
5889
+ "detail": {
5890
+ "expanded": "boolean",
5891
+ "name": "string"
5892
+ }
5893
+ }
5894
+ },
5895
+ "examples": [],
5896
+ "keywords": [
5897
+ "editor-sidebar",
5898
+ "navigator-pane",
5899
+ "inspector-pane",
5900
+ "editor-rail",
5901
+ "sidebar",
5902
+ "leading",
5903
+ "trailing"
5904
+ ],
5905
+ "name": "EditorSidebar",
5906
+ "related": [
5907
+ "EditorShell",
5908
+ "EditorCanvas",
5909
+ "Pane",
5910
+ "AdminSidebar",
5911
+ "ChatSidebar"
5912
+ ],
5913
+ "slots": {
5914
+ "default": {
5915
+ "description": "Default — the inner <pane-ui resizable> wrapper. Authors compose header / section / footer inside the pane as usual."
5916
+ }
5917
+ },
5918
+ "states": [
5919
+ {
5920
+ "description": "Default expanded state.",
5921
+ "name": "idle"
5922
+ },
5923
+ {
5924
+ "description": "Inner pane is at or below the snap threshold.",
5925
+ "attribute": "collapsed",
5926
+ "name": "collapsed"
5927
+ }
5928
+ ],
5929
+ "synonyms": {
5930
+ "editor-sidebar": [
5931
+ "navigator",
5932
+ "inspector",
5933
+ "editor-rail",
5934
+ "side-panel"
5935
+ ]
5936
+ },
5937
+ "tag": "editor-sidebar",
5938
+ "tokens": {},
5939
+ "traits": [],
5940
+ "version": 1
5941
+ }
5942
+ },
5943
+ "EditorStatusbar": {
5944
+ "title": "EditorStatusbar",
5945
+ "description": "Module-tier editor statusbar — bottom chrome bar inside\n<editor-shell>. CSS-only, no behavior, no JS. Holds save/sync\nstate, zoom indicator, cursor position, and tertiary actions\nvia slot vocabulary.\n\nReplaces the legacy <footer> with positional content per ADR-0023.\n",
5946
+ "type": "object",
5947
+ "allOf": [
5948
+ {
5949
+ "$ref": "#/$defs/ComponentCommon"
5950
+ },
5951
+ {
5952
+ "$ref": "#/$defs/CatalogComponentCommon"
5953
+ }
5954
+ ],
5955
+ "properties": {
5956
+ "component": {
5957
+ "const": "EditorStatusbar"
5958
+ }
5959
+ },
5960
+ "required": [
5961
+ "component"
5962
+ ],
5963
+ "unevaluatedProperties": false,
5964
+ "x-adiaui": {
5965
+ "anti_patterns": [],
5966
+ "category": "layout",
5967
+ "events": {},
5968
+ "examples": [],
5969
+ "keywords": [
5970
+ "editor-statusbar",
5971
+ "statusbar",
5972
+ "bottom-bar",
5973
+ "editor-footer"
5974
+ ],
5975
+ "name": "EditorStatusbar",
5976
+ "related": [
5977
+ "EditorShell",
5978
+ "EditorToolbar",
5979
+ "EditorCanvas"
5980
+ ],
5981
+ "slots": {
5982
+ "default": {
5983
+ "description": "Default — ad-hoc inline content (legacy positional layout)."
5984
+ },
5985
+ "action": {
5986
+ "description": "Trailing action cluster (e.g., toggle full-screen)."
5987
+ },
5988
+ "cursor": {
5989
+ "description": "Cursor position / selection indicator."
5990
+ },
5991
+ "status": {
5992
+ "description": "Save/sync state indicator."
5993
+ },
5994
+ "zoom": {
5995
+ "description": "Zoom level indicator."
5996
+ }
5997
+ },
5998
+ "states": [
5999
+ {
6000
+ "description": "Default, the only state.",
6001
+ "name": "idle"
6002
+ }
6003
+ ],
6004
+ "synonyms": {
6005
+ "editor-statusbar": [
6006
+ "statusbar",
6007
+ "footer-bar",
6008
+ "bottom-bar"
6009
+ ]
6010
+ },
6011
+ "tag": "editor-statusbar",
6012
+ "tokens": {},
6013
+ "traits": [],
6014
+ "version": 1
6015
+ }
6016
+ },
6017
+ "EditorToolbar": {
6018
+ "title": "EditorToolbar",
6019
+ "description": "Module-tier editor toolbar — replaces legacy <header> chrome bar\ninside <editor-shell> per ADR-0023. Owns the [full-screen] reflected\nattribute (set when host enters focus mode), click-bubble for\n[data-toolbar-action] buttons, and slot vocabulary routing.\n\nSits at the top of <editor-shell>. Authors compose actions + status\nvia slot vocabulary. The host (<editor-shell>) reads either\n<editor-toolbar> or <header> via :is() selector for backwards compat.\n",
6020
+ "type": "object",
6021
+ "allOf": [
6022
+ {
6023
+ "$ref": "#/$defs/ComponentCommon"
6024
+ },
6025
+ {
6026
+ "$ref": "#/$defs/CatalogComponentCommon"
6027
+ }
6028
+ ],
6029
+ "properties": {
6030
+ "component": {
6031
+ "const": "EditorToolbar"
6032
+ },
6033
+ "fullScreen": {
6034
+ "description": "Reflected — set when editor is in distraction-free / focus mode.",
6035
+ "type": "boolean",
6036
+ "default": false
6037
+ }
6038
+ },
6039
+ "required": [
6040
+ "component"
6041
+ ],
6042
+ "unevaluatedProperties": false,
6043
+ "x-adiaui": {
6044
+ "anti_patterns": [],
6045
+ "category": "layout",
6046
+ "events": {
6047
+ "toolbar-action": {
6048
+ "description": "Bubbles when a child element with [data-toolbar-action] is clicked. Detail carries the action name from the clicked element's attribute.",
6049
+ "detail": {
6050
+ "name": "string"
6051
+ }
6052
+ }
6053
+ },
6054
+ "examples": [],
6055
+ "keywords": [
6056
+ "editor-toolbar",
6057
+ "editor-titlebar",
6058
+ "editor-chrome",
6059
+ "app-header",
6060
+ "editor-actions"
6061
+ ],
6062
+ "name": "EditorToolbar",
6063
+ "related": [
6064
+ "EditorShell",
6065
+ "EditorCanvas",
6066
+ "EditorSidebar",
6067
+ "EditorStatusbar"
6068
+ ],
6069
+ "slots": {
6070
+ "title": {
6071
+ "description": "Editor / document title cluster."
6072
+ },
6073
+ "default": {
6074
+ "description": "Default — ad-hoc inline content (legacy positional layout)."
6075
+ },
6076
+ "action": {
6077
+ "description": "Trailing action cluster (settings, share, more)."
6078
+ },
6079
+ "action-leading": {
6080
+ "description": "Leading action cluster (back, switcher, undo/redo)."
6081
+ },
6082
+ "status": {
6083
+ "description": "Status indicator (saving, dirty, synced, etc.)."
6084
+ }
6085
+ },
6086
+ "states": [
6087
+ {
6088
+ "description": "Default editor mode.",
6089
+ "name": "idle"
6090
+ },
6091
+ {
6092
+ "description": "Distraction-free / focus mode active.",
6093
+ "attribute": "full-screen",
6094
+ "name": "full-screen"
6095
+ }
6096
+ ],
6097
+ "synonyms": {
6098
+ "editor-toolbar": [
6099
+ "editor-header",
6100
+ "app-header",
6101
+ "navbar",
6102
+ "titlebar"
6103
+ ]
6104
+ },
6105
+ "tag": "editor-toolbar",
6106
+ "tokens": {},
6107
+ "traits": [],
6108
+ "version": 1
6109
+ }
6110
+ },
5700
6111
  "Embed": {
5701
6112
  "title": "Embed",
5702
6113
  "description": "Responsive sandboxed iframe wrapper.",
@@ -40,9 +40,27 @@
40
40
  - chat-thread is the bespoke replacement for legacy <section data-chat-messages> inside <chat-shell>. Use it for the message scroll surface; the host appends dynamic message divs as children.
41
41
  - Place <chat-empty> as an optional first child for the empty state; the [empty] reflected attribute drives its visibility via CSS (no JS toggling).
42
42
 
43
+ ## EditorCanvasEmpty
44
+ - editor-canvas-empty is the bespoke empty-state slot for <editor-canvas>. Place as the first child of <editor-canvas>; visibility is automatic via the [empty] reflected attribute.
45
+
46
+ ## EditorCanvas
47
+ - editor-canvas is the bespoke replacement for legacy <div data-canvas> inside <editor-shell>. Use it as the central content region for editor work surfaces.
48
+ - Place <editor-canvas-empty> as an optional first child for the empty state; the [empty] reflected attribute drives its visibility via CSS (no JS toggling).
49
+
43
50
  ## EditorShell
44
51
  - editor-shell is a layout skeleton. Children must follow the documented structural DOM; the element wires behavior, not content.
45
52
 
53
+ ## EditorSidebar
54
+ - editor-sidebar wraps <pane-ui resizable> rather than implementing drag itself. Place a <pane-ui resizable> as the only structural child; fill the pane with header / section / footer slots.
55
+ - The cluster-distinct localStorage prefix (adia-editor-sidebar-*) keeps editor sidebars from colliding with admin (adia-sidebar-*) and chat (adia-chat-sidebar-*) sidebars on the same domain.
56
+
57
+ ## EditorStatusbar
58
+ - editor-statusbar replaces legacy <footer> chrome bar inside <editor-shell>. Use named slots for canonical clusters; ad-hoc content goes in the default slot.
59
+
60
+ ## EditorToolbar
61
+ - editor-toolbar replaces legacy <header> chrome bar inside <editor-shell>. Use named slots (title / status / action / action-leading) for canonical clusters; ad-hoc inline content goes in the default slot.
62
+ - Buttons that should trigger named actions get [data-toolbar-action="<name>"]. The toolbar bubbles a single 'toolbar-action' event up to the host with the name in detail.
63
+
46
64
  ## GenRoot
47
65
  - gen-root is an integration shell. Prefer admin-shell for admin UIs; use gen-root only for chat+canvas tooling.
48
66
 
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schema": "genui-chunk-index@1",
3
- "captured_at": "2026-05-07T15:03:20.693Z",
4
- "total_instances": 322,
5
- "unique_names": 173,
3
+ "captured_at": "2026-05-10T17:53:43.459Z",
4
+ "total_instances": 327,
5
+ "unique_names": 178,
6
6
  "by_kind": {
7
7
  "block": 308,
8
- "page": 7,
8
+ "page": 12,
9
9
  "panel": 7
10
10
  },
11
11
  "chunks": [
@@ -189,6 +189,54 @@
189
189
  "slots": [],
190
190
  "nested": []
191
191
  },
192
+ {
193
+ "name": "agent-canvas-shell",
194
+ "kind": "page",
195
+ "primary": "article",
196
+ "instances": 1,
197
+ "pages": [
198
+ "/apps/generic-shells/app/agent-canvas/agent-canvas.contents.html"
199
+ ],
200
+ "slots": [
201
+ "toolbar",
202
+ "canvas",
203
+ "inspector",
204
+ "chat"
205
+ ],
206
+ "nested": []
207
+ },
208
+ {
209
+ "name": "chat-page-shell",
210
+ "kind": "page",
211
+ "primary": "article",
212
+ "instances": 1,
213
+ "pages": [
214
+ "/apps/generic-shells/app/chat-page/chat-page.contents.html"
215
+ ],
216
+ "slots": [
217
+ "sidebar",
218
+ "header",
219
+ "messages",
220
+ "input"
221
+ ],
222
+ "nested": []
223
+ },
224
+ {
225
+ "name": "doc-editor-shell",
226
+ "kind": "page",
227
+ "primary": "article",
228
+ "instances": 1,
229
+ "pages": [
230
+ "/apps/generic-shells/app/doc-editor/doc-editor.contents.html"
231
+ ],
232
+ "slots": [
233
+ "toolbar",
234
+ "editor",
235
+ "preview",
236
+ "metadata"
237
+ ],
238
+ "nested": []
239
+ },
192
240
  {
193
241
  "name": "editor-page-shell",
194
242
  "kind": "page",
@@ -232,6 +280,37 @@
232
280
  ],
233
281
  "nested": []
234
282
  },
283
+ {
284
+ "name": "gallery-page-shell",
285
+ "kind": "page",
286
+ "primary": "article",
287
+ "instances": 1,
288
+ "pages": [
289
+ "/apps/generic-shells/app/gallery-page/gallery-page.contents.html"
290
+ ],
291
+ "slots": [
292
+ "header",
293
+ "filter-bar",
294
+ "grid",
295
+ "lightbox"
296
+ ],
297
+ "nested": []
298
+ },
299
+ {
300
+ "name": "kanban-page-shell",
301
+ "kind": "page",
302
+ "primary": "article",
303
+ "instances": 1,
304
+ "pages": [
305
+ "/apps/generic-shells/app/kanban-page/kanban-page.contents.html"
306
+ ],
307
+ "slots": [
308
+ "header",
309
+ "board",
310
+ "detail-drawer"
311
+ ],
312
+ "nested": []
313
+ },
235
314
  {
236
315
  "name": "marketing-page-shell",
237
316
  "kind": "page",
@@ -8,5 +8,5 @@
8
8
  "attrs": {},
9
9
  "html": "<card-ui>\n <header>\n <h3>Agent Activity</h3>\n <text-ui slot=\"description\" color=\"subtle\">Live reasoning trace</text-ui>\n </header>\n <section>\n <col-ui gap=\"3\">\n <agent-trace-ui></agent-trace-ui>\n <agent-reasoning-ui></agent-reasoning-ui>\n <agent-artifact-ui></agent-artifact-ui>\n </col-ui>\n </section>\n</card-ui>",
10
10
  "source": "apps/patterns/app/agent-activity-feed/agent-activity-feed.contents.html",
11
- "captured_at": "2026-05-07T15:03:20.693Z"
11
+ "captured_at": "2026-05-10T17:53:43.459Z"
12
12
  }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "agent-canvas-shell",
3
+ "kind": "page",
4
+ "primary": "article",
5
+ "page": "/apps/generic-shells/app/agent-canvas/agent-canvas.contents.html",
6
+ "slots": [
7
+ {
8
+ "name": "toolbar",
9
+ "tagName": "header",
10
+ "html": "<row-ui gap=\"2\" align=\"center\">\n <button-ui icon=\"hand\" variant=\"ghost\" size=\"sm\" tooltip=\"Pan\"></button-ui>\n <button-ui icon=\"cursor\" variant=\"ghost\" size=\"sm\" tooltip=\"Select\"></button-ui>\n <separator-ui orientation=\"vertical\"></separator-ui>\n <button-ui icon=\"plus\" variant=\"ghost\" size=\"sm\" tooltip=\"Add node\"></button-ui>\n <button-ui icon=\"trash\" variant=\"ghost\" size=\"sm\" tooltip=\"Delete\"></button-ui>\n </row-ui>\n <row-ui gap=\"2\">\n <button-ui text=\"Run\" variant=\"primary\" size=\"sm\" icon=\"play\"></button-ui>\n <button-ui text=\"Export\" variant=\"outline\" size=\"sm\" icon=\"download\"></button-ui>\n </row-ui>"
11
+ },
12
+ {
13
+ "name": "canvas",
14
+ "tagName": "section",
15
+ "html": "<text-ui color=\"subtle\" style=\"position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);\">Canvas surface</text-ui>"
16
+ },
17
+ {
18
+ "name": "inspector",
19
+ "tagName": "section",
20
+ "html": "<stack-ui gap=\"3\">\n <text-ui strong size=\"lg\">Inspector</text-ui>\n <stack-ui gap=\"1\">\n <label-ui>Label</label-ui>\n <input-ui value=\"Untitled node\"></input-ui>\n </stack-ui>\n <stack-ui gap=\"1\">\n <label-ui>Type</label-ui>\n <select-ui>\n <option>LLM</option>\n <option>Tool</option>\n <option>Condition</option>\n </select-ui>\n </stack-ui>\n </stack-ui>"
21
+ },
22
+ {
23
+ "name": "chat",
24
+ "tagName": "section",
25
+ "html": "<header style=\"padding:var(--a-space-2) var(--a-space-3); border-bottom:1px solid var(--a-border-subtle);\">\n <text-ui strong size=\"sm\">Agent</text-ui>\n </header>\n <section style=\"flex:1; overflow:auto; padding:var(--a-space-2);\">\n <text-ui size=\"sm\" color=\"subtle\">Agent messages will appear here.</text-ui>\n </section>\n <footer style=\"padding:var(--a-space-2); border-top:1px solid var(--a-border-subtle);\">\n <input-ui placeholder=\"Ask the agent…\" size=\"sm\"></input-ui>\n </footer>"
26
+ }
27
+ ],
28
+ "nested": [],
29
+ "attrs": {},
30
+ "html": "<article style=\"display:flex; height:100vh;\">\n <section style=\"flex:1; display:flex; flex-direction:column; min-width:0;\">\n <header data-chunk-slot=\"toolbar\" style=\"padding:var(--a-space-2) var(--a-space-3); border-bottom:1px solid var(--a-border-subtle); display:flex; align-items:center; justify-content:space-between;\">\n <row-ui gap=\"2\" align=\"center\">\n <button-ui icon=\"hand\" variant=\"ghost\" size=\"sm\" tooltip=\"Pan\"></button-ui>\n <button-ui icon=\"cursor\" variant=\"ghost\" size=\"sm\" tooltip=\"Select\"></button-ui>\n <separator-ui orientation=\"vertical\"></separator-ui>\n <button-ui icon=\"plus\" variant=\"ghost\" size=\"sm\" tooltip=\"Add node\"></button-ui>\n <button-ui icon=\"trash\" variant=\"ghost\" size=\"sm\" tooltip=\"Delete\"></button-ui>\n </row-ui>\n <row-ui gap=\"2\">\n <button-ui text=\"Run\" variant=\"primary\" size=\"sm\" icon=\"play\"></button-ui>\n <button-ui text=\"Export\" variant=\"outline\" size=\"sm\" icon=\"download\"></button-ui>\n </row-ui>\n </header>\n\n <section data-chunk-slot=\"canvas\" style=\"flex:1; background:var(--a-bg-subtle); position:relative; overflow:hidden;\">\n <text-ui color=\"subtle\" style=\"position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);\">Canvas surface</text-ui>\n </section>\n </section>\n\n <aside style=\"width:280px; display:flex; flex-direction:column; border-left:1px solid var(--a-border-subtle);\">\n <section data-chunk-slot=\"inspector\" style=\"flex:1; overflow:auto; padding:var(--a-space-3); border-bottom:1px solid var(--a-border-subtle);\">\n <stack-ui gap=\"3\">\n <text-ui strong size=\"lg\">Inspector</text-ui>\n <stack-ui gap=\"1\">\n <label-ui>Label</label-ui>\n <input-ui value=\"Untitled node\"></input-ui>\n </stack-ui>\n <stack-ui gap=\"1\">\n <label-ui>Type</label-ui>\n <select-ui>\n <option>LLM</option>\n <option>Tool</option>\n <option>Condition</option>\n </select-ui>\n </stack-ui>\n </stack-ui>\n </section>\n\n <section data-chunk-slot=\"chat\" style=\"height:240px; display:flex; flex-direction:column;\">\n <header style=\"padding:var(--a-space-2) var(--a-space-3); border-bottom:1px solid var(--a-border-subtle);\">\n <text-ui strong size=\"sm\">Agent</text-ui>\n </header>\n <section style=\"flex:1; overflow:auto; padding:var(--a-space-2);\">\n <text-ui size=\"sm\" color=\"subtle\">Agent messages will appear here.</text-ui>\n </section>\n <footer style=\"padding:var(--a-space-2); border-top:1px solid var(--a-border-subtle);\">\n <input-ui placeholder=\"Ask the agent…\" size=\"sm\"></input-ui>\n </footer>\n </section>\n </aside>\n</article>",
31
+ "source": "apps/generic-shells/app/agent-canvas/agent-canvas.contents.html",
32
+ "captured_at": "2026-05-10T17:53:43.459Z"
33
+ }
@@ -8,5 +8,5 @@
8
8
  "attrs": {},
9
9
  "html": "<card-ui>\n <header>\n <h3>Reasoning</h3>\n <text-ui slot=\"description\" color=\"subtle\">Collapsible intermediate steps</text-ui>\n </header>\n <section>\n <agent-reasoning-ui></agent-reasoning-ui>\n </section>\n</card-ui>",
10
10
  "source": "apps/patterns/app/agent-reasoning-collapsed/agent-reasoning-collapsed.contents.html",
11
- "captured_at": "2026-05-07T15:03:20.693Z"
11
+ "captured_at": "2026-05-10T17:53:43.459Z"
12
12
  }
@@ -11,5 +11,5 @@
11
11
  },
12
12
  "html": "<col-ui gap=\"2\" size=\"lg\">\n <button-ui text=\"Recover account\" icon=\"arrow-counter-clockwise\" variant=\"primary\"></button-ui>\n <button-ui text=\"Sign in with a different account\" icon=\"user-switch\"></button-ui>\n </col-ui>",
13
13
  "source": "apps/user-flow/app/auth/account-deleted/account-deleted.contents.html",
14
- "captured_at": "2026-05-07T15:03:20.693Z"
14
+ "captured_at": "2026-05-10T17:53:43.459Z"
15
15
  }
@@ -14,5 +14,5 @@
14
14
  },
15
15
  "html": "<card-ui raw style=\"max-width: 32rem\">\n <header><!-- nested: auth-card-header --></header>\n\n <section><!-- nested: auth-card-content --></section>\n </card-ui>",
16
16
  "source": "apps/user-flow/app/auth/account-deleted/account-deleted.contents.html",
17
- "captured_at": "2026-05-07T15:03:20.693Z"
17
+ "captured_at": "2026-05-10T17:53:43.459Z"
18
18
  }