@adia-ai/a2ui-corpus 0.4.3 → 0.4.5

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 (452) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +51 -51
  3. package/catalog-a2ui_0_9.json +313 -15
  4. package/catalog-a2ui_0_9_rules.txt +18 -0
  5. package/chunks/_index.json +791 -36
  6. package/chunks/agent-activity-feed.json +1 -1
  7. package/chunks/agent-canvas-shell.json +1 -1
  8. package/chunks/agent-reasoning-collapsed.json +1 -1
  9. package/chunks/auth-account-deleted-actions.json +1 -1
  10. package/chunks/auth-account-deleted.json +1 -1
  11. package/chunks/auth-card-content.json +1 -1
  12. package/chunks/auth-card-header.json +1 -1
  13. package/chunks/auth-email-entry.json +1 -1
  14. package/chunks/auth-email-verify-confirm.json +1 -1
  15. package/chunks/auth-email-verify.json +1 -1
  16. package/chunks/auth-forbidden-actions.json +1 -1
  17. package/chunks/auth-forbidden.json +1 -1
  18. package/chunks/auth-invite-actions.json +1 -1
  19. package/chunks/auth-invite-team-card.json +1 -1
  20. package/chunks/auth-link-expired-form.json +1 -1
  21. package/chunks/auth-link-expired.json +1 -1
  22. package/chunks/auth-locked-account.json +1 -1
  23. package/chunks/auth-locked-recovery-options.json +1 -1
  24. package/chunks/auth-mfa-enrollment-submit.json +1 -1
  25. package/chunks/auth-mfa-enrollment.json +224 -2
  26. package/chunks/auth-mfa-fallback-actions.json +1 -1
  27. package/chunks/auth-mfa-recovery.json +1 -1
  28. package/chunks/auth-new-password-form.json +1 -1
  29. package/chunks/auth-new-password.json +156 -2
  30. package/chunks/auth-oauth-fallback-actions.json +1 -1
  31. package/chunks/auth-oauth-interstitial.json +1 -1
  32. package/chunks/auth-password-challenge.json +1 -1
  33. package/chunks/auth-password-reset-form.json +1 -1
  34. package/chunks/auth-password-reset.json +151 -1
  35. package/chunks/auth-profile-form.json +1 -1
  36. package/chunks/auth-profile-setup.json +1 -1
  37. package/chunks/auth-reset-sent.json +1 -1
  38. package/chunks/auth-session-expired-actions.json +1 -1
  39. package/chunks/auth-session-expired.json +1 -1
  40. package/chunks/auth-signin-card-email.json +190 -2
  41. package/chunks/auth-signin-card-magic-link.json +119 -2
  42. package/chunks/auth-signin-card-mfa.json +162 -1
  43. package/chunks/auth-signin-card-otp.json +116 -2
  44. package/chunks/auth-signin-card-password.json +202 -2
  45. package/chunks/auth-signin-card-recovery.json +1 -1
  46. package/chunks/auth-signout-actions.json +1 -1
  47. package/chunks/auth-signout.json +1 -1
  48. package/chunks/auth-signup-email-entry.json +1 -1
  49. package/chunks/auth-signup-entry.json +191 -1
  50. package/chunks/auth-signup-social-auths.json +1 -1
  51. package/chunks/auth-signup-verify.json +1 -1
  52. package/chunks/auth-social-auths.json +1 -1
  53. package/chunks/auth-sso-providers.json +1 -1
  54. package/chunks/auth-sso-required.json +1 -1
  55. package/chunks/auth-team-invite.json +1 -1
  56. package/chunks/card-header-with-description.json +12 -0
  57. package/chunks/chat-page-shell.json +1 -1
  58. package/chunks/chat-streaming-surface.json +1 -1
  59. package/chunks/command-palette.json +1 -1
  60. package/chunks/commerce-pricing-tiers.json +1 -1
  61. package/chunks/conversion-funnel-6step.json +1 -1
  62. package/chunks/dashboard-acquisition-panel.json +162 -1
  63. package/chunks/dashboard-admin-page.json +2879 -4
  64. package/chunks/dashboard-audience-kpis.json +1 -1
  65. package/chunks/dashboard-audience-panel.json +488 -1
  66. package/chunks/dashboard-behavior-panel.json +91 -1
  67. package/chunks/dashboard-chart-recent.json +474 -3
  68. package/chunks/dashboard-cohort-retention.json +1 -1
  69. package/chunks/dashboard-conversion-panel.json +196 -1
  70. package/chunks/dashboard-country-list.json +1 -1
  71. package/chunks/dashboard-filter-bar.json +1 -1
  72. package/chunks/dashboard-funnel.json +1 -1
  73. package/chunks/dashboard-kpi-grid.json +1 -1
  74. package/chunks/dashboard-notifications-feed.json +1 -1
  75. package/chunks/dashboard-notifications-panel.json +383 -1
  76. package/chunks/dashboard-overview-panel.json +1363 -1
  77. package/chunks/dashboard-page-header.json +140 -1
  78. package/chunks/dashboard-pages-table.json +1 -1
  79. package/chunks/dashboard-quick-actions.json +1 -1
  80. package/chunks/dashboard-reports-panel.json +97 -1
  81. package/chunks/dashboard-reports-table.json +1 -1
  82. package/chunks/dashboard-spark-cards.json +1 -1
  83. package/chunks/dashboard-storage-card.json +1 -1
  84. package/chunks/dashboard-tabs.json +1 -1
  85. package/chunks/dashboard-team-actions-storage.json +502 -1
  86. package/chunks/dashboard-team-list.json +1 -1
  87. package/chunks/dashboard-traffic-channels.json +1 -1
  88. package/chunks/dashboard-transactions-table.json +1 -1
  89. package/chunks/destructive-confirm-modal.json +1 -1
  90. package/chunks/doc-editor-shell.json +1 -1
  91. package/chunks/drawer-2fa-key.json +1 -1
  92. package/chunks/drawer-2fa-sms.json +1 -1
  93. package/chunks/drawer-2fa-totp.json +1 -1
  94. package/chunks/drawer-cancel-sub.json +1 -1
  95. package/chunks/drawer-change-plan.json +1 -1
  96. package/chunks/drawer-custom-roles.json +5 -3
  97. package/chunks/drawer-data-start.json +1 -1
  98. package/chunks/drawer-delete-account.json +1 -1
  99. package/chunks/drawer-delete-workspace.json +1 -1
  100. package/chunks/drawer-discord.json +1 -1
  101. package/chunks/drawer-figma.json +1 -1
  102. package/chunks/drawer-first-dashboard.json +1 -1
  103. package/chunks/drawer-gcal.json +1 -1
  104. package/chunks/drawer-github.json +5 -3
  105. package/chunks/drawer-invite.json +1 -1
  106. package/chunks/drawer-payment-method.json +1 -1
  107. package/chunks/drawer-report.json +1 -1
  108. package/chunks/drawer-revoke-session.json +1 -1
  109. package/chunks/drawer-role.json +1 -1
  110. package/chunks/drawer-slack.json +1 -1
  111. package/chunks/drawer-smtp.json +5 -3
  112. package/chunks/drawer-source.json +1 -1
  113. package/chunks/drawer-transaction.json +1 -1
  114. package/chunks/editor-code-pane.json +1 -1
  115. package/chunks/editor-page-shell.json +1 -1
  116. package/chunks/editor-preview-pane.json +1 -1
  117. package/chunks/error-404-actions.json +1 -1
  118. package/chunks/error-404.json +161 -3
  119. package/chunks/error-500-actions.json +1 -1
  120. package/chunks/error-500.json +166 -3
  121. package/chunks/error-maintenance-actions.json +1 -1
  122. package/chunks/error-maintenance.json +158 -3
  123. package/chunks/error-page-shell.json +1 -1
  124. package/chunks/footer-primary-only.json +12 -0
  125. package/chunks/form-page-shell.json +1 -1
  126. package/chunks/gallery-page-shell.json +1 -1
  127. package/chunks/icon-text-row.json +16 -0
  128. package/chunks/image-tile.json +12 -0
  129. package/chunks/kanban-board-3col.json +5 -3
  130. package/chunks/kanban-page-shell.json +1 -1
  131. package/chunks/labeled-textarea.json +14 -0
  132. package/chunks/linked-record-row.json +57 -0
  133. package/chunks/marketing-hero-cta.json +1 -1
  134. package/chunks/marketing-page-shell.json +1 -1
  135. package/chunks/member-edit-drawer.json +1 -1
  136. package/chunks/metadata-description-list.json +14 -0
  137. package/chunks/onb-completion.json +1 -1
  138. package/chunks/onb-extension-install.json +1 -1
  139. package/chunks/onb-hero-welcome.json +1 -1
  140. package/chunks/onb-import-picker.json +1 -1
  141. package/chunks/onb-mobile-handoff.json +1 -1
  142. package/chunks/onb-notification-prefs.json +1 -1
  143. package/chunks/onb-persona-picker.json +1 -1
  144. package/chunks/onb-provider-tiles.json +1 -1
  145. package/chunks/onb-settings-review.json +1 -1
  146. package/chunks/onb-step-footer.json +1 -1
  147. package/chunks/onb-step-header.json +1 -1
  148. package/chunks/onb-step-progress.json +1 -1
  149. package/chunks/onb-step-shell.json +249 -1
  150. package/chunks/onb-story-pane.json +1 -1
  151. package/chunks/onb-tutorial-steps.json +1 -1
  152. package/chunks/playground-a2ui.json +1 -1
  153. package/chunks/playground-app-shell.json +1 -1
  154. package/chunks/playground-chat.json +1 -1
  155. package/chunks/playground-construct-canvas.json +1 -1
  156. package/chunks/playground-gen-ui.json +1 -1
  157. package/chunks/playground-render-preview.json +1 -1
  158. package/chunks/playground-streams-bridge.json +1 -1
  159. package/chunks/playground-table-toolbar.json +1 -1
  160. package/chunks/reg-address-form.json +1 -1
  161. package/chunks/reg-billing-card.json +1 -1
  162. package/chunks/reg-brand-scrape.json +1 -1
  163. package/chunks/reg-departments-toggle.json +1 -1
  164. package/chunks/reg-extended-profile.json +1 -1
  165. package/chunks/reg-final-done.json +1 -1
  166. package/chunks/reg-helpdesk-grid.json +1 -1
  167. package/chunks/reg-import-picker.json +1 -1
  168. package/chunks/reg-integrations-grid.json +1 -1
  169. package/chunks/reg-invite-form.json +1 -1
  170. package/chunks/reg-legal-entity.json +1 -1
  171. package/chunks/reg-org-chart-review.json +1 -1
  172. package/chunks/reg-profile-identity.json +1 -1
  173. package/chunks/reg-step-footer.json +1 -1
  174. package/chunks/reg-step-header.json +1 -1
  175. package/chunks/reg-step-progress.json +1 -1
  176. package/chunks/reg-step-shell.json +565 -1
  177. package/chunks/reg-story-pane.json +1 -1
  178. package/chunks/reg-success-summary.json +1 -1
  179. package/chunks/reg-team-size.json +1 -1
  180. package/chunks/reg-usecase-picker.json +1 -1
  181. package/chunks/reg-workspace-name.json +1 -1
  182. package/chunks/section-with-stack.json +12 -0
  183. package/chunks/settings-appearance.json +1 -1
  184. package/chunks/settings-billing-plan.json +1 -1
  185. package/chunks/settings-general-form.json +1 -1
  186. package/chunks/settings-integrations.json +154 -3
  187. package/chunks/settings-members-invite.json +5 -3
  188. package/chunks/settings-notifications.json +1 -1
  189. package/chunks/settings-page-shell.json +1 -1
  190. package/chunks/settings-profile-security.json +1 -1
  191. package/chunks/text-card.json +14 -0
  192. package/chunks/user-identity-row.json +16 -0
  193. package/chunks/user-profile-card.json +1 -1
  194. package/chunks/users-table-badge.json +1 -1
  195. package/compositions/agent/ai-streaming-response.json +55 -9
  196. package/compositions/agent/alert-banner.json +46 -10
  197. package/compositions/agent/chat-interface.json +15 -7
  198. package/compositions/agent/command-palette.json +2 -2
  199. package/compositions/agent/empty-state.json +70 -11
  200. package/compositions/agent/error-state-retry.json +100 -17
  201. package/compositions/agent/loading-skeleton.json +76 -12
  202. package/compositions/agent/notification-preferences.json +386 -23
  203. package/compositions/agent/toast-stack.json +42 -7
  204. package/compositions/data/activity-feed.json +231 -17
  205. package/compositions/data/audit-log-viewer.json +453 -44
  206. package/compositions/data/bookmark-list.json +188 -16
  207. package/compositions/data/bulk-action-toolbar.json +137 -19
  208. package/compositions/data/changelog-feed.json +296 -30
  209. package/compositions/data/chart-dashboard.json +96 -11
  210. package/compositions/data/cohort-retention.json +392 -40
  211. package/compositions/data/column-manager.json +316 -52
  212. package/compositions/data/data-table-paginated.json +96 -18
  213. package/compositions/data/email-inbox-list.json +224 -13
  214. package/compositions/data/funnel-analytics.json +424 -26
  215. package/compositions/data/heatmap-calendar.json +140 -27
  216. package/compositions/data/invoice-table.json +107 -18
  217. package/compositions/data/kpi-overview.json +187 -17
  218. package/compositions/data/notification-center.json +224 -16
  219. package/compositions/data/object-inspector.json +463 -43
  220. package/compositions/data/product-specs-card.json +66 -12
  221. package/compositions/data/progress-tracker.json +140 -13
  222. package/compositions/data/review-card.json +94 -14
  223. package/compositions/data/saved-views-filter-bar.json +232 -37
  224. package/compositions/data/shopping-cart-summary.json +173 -21
  225. package/compositions/data/stat-card-dashboard.json +219 -18
  226. package/compositions/data/status-page.json +337 -30
  227. package/compositions/data/virtualized-table.json +269 -38
  228. package/compositions/data/weather-widget.json +77 -13
  229. package/compositions/forms/change-password-form.json +123 -16
  230. package/compositions/forms/color-picker-panel.json +85 -11
  231. package/compositions/forms/contact-form.json +127 -17
  232. package/compositions/forms/credit-card-payment-form.json +137 -16
  233. package/compositions/forms/data-import-mapper.json +244 -33
  234. package/compositions/forms/data-import-wizard.json +268 -29
  235. package/compositions/forms/date-time-picker-form.json +114 -13
  236. package/compositions/forms/destructive-confirm.json +206 -21
  237. package/compositions/forms/feedback-form.json +96 -14
  238. package/compositions/forms/file-upload-form.json +82 -11
  239. package/compositions/forms/login-form.json +122 -14
  240. package/compositions/forms/multi-step-wizard.json +133 -15
  241. package/compositions/forms/newsletter-subscription-form.json +83 -12
  242. package/compositions/forms/otp-verification-form.json +88 -13
  243. package/compositions/forms/password-reset-form.json +83 -12
  244. package/compositions/forms/permission-matrix.json +177 -28
  245. package/compositions/forms/profile-edit-form.json +125 -16
  246. package/compositions/forms/radio-group-form.json +110 -15
  247. package/compositions/forms/search-filters.json +112 -13
  248. package/compositions/forms/settings-toggles-page.json +188 -16
  249. package/compositions/forms/signup-form.json +129 -17
  250. package/compositions/forms/slider-range-form.json +65 -10
  251. package/compositions/forms/tag-input-form.json +89 -14
  252. package/compositions/forms/team-members-rbac.json +669 -107
  253. package/compositions/layout/accordion-settings.json +450 -42
  254. package/compositions/layout/badge-variants-display.json +121 -18
  255. package/compositions/layout/bento-overview.json +399 -33
  256. package/compositions/layout/calendar-month-view.json +96 -30
  257. package/compositions/layout/code-block.json +65 -11
  258. package/compositions/layout/comparison-table.json +113 -21
  259. package/compositions/layout/divider-with-label.json +40 -8
  260. package/compositions/layout/drawer-panel.json +105 -12
  261. package/compositions/layout/embed-iframe.json +62 -12
  262. package/compositions/layout/faq-accordion.json +35 -28
  263. package/compositions/layout/feature-grid.json +197 -22
  264. package/compositions/layout/footer-nav.json +188 -23
  265. package/compositions/layout/hero-cta.json +69 -13
  266. package/compositions/layout/image-gallery.json +112 -13
  267. package/compositions/layout/image-with-caption.json +48 -9
  268. package/compositions/layout/kanban-board.json +199 -31
  269. package/compositions/layout/keyboard-shortcuts.json +145 -12
  270. package/compositions/layout/markdown-editor-preview.json +6 -6
  271. package/compositions/layout/media-player.json +85 -13
  272. package/compositions/layout/modal-form.json +97 -12
  273. package/compositions/layout/onboarding-checklist.json +92 -14
  274. package/compositions/layout/popover-tooltip.json +74 -12
  275. package/compositions/layout/pricing-tiers.json +229 -31
  276. package/compositions/layout/product-card.json +97 -17
  277. package/compositions/layout/sidebar-layout.json +157 -16
  278. package/compositions/layout/tabs-panel.json +115 -13
  279. package/compositions/layout/testimonial-grid.json +240 -23
  280. package/compositions/layout/three-pane-shell.json +278 -63
  281. package/compositions/layout/toolbar-actions.json +81 -13
  282. package/compositions/navigation/nav-menu-with-icons.json +119 -14
  283. package/compositions/navigation/pagination-controls.json +2 -2
  284. package/compositions/navigation/workspace-switcher.json +296 -22
  285. package/compositions/settings/api-keys.json +592 -47
  286. package/compositions/settings/feature-flags.json +423 -22
  287. package/compositions/settings/integrations-gallery.json +839 -44
  288. package/compositions/settings/session-device-mgmt.json +619 -42
  289. package/compositions/settings/usage-quota-meter.json +214 -23
  290. package/compositions/settings/webhooks.json +429 -45
  291. package/package.json +2 -4
  292. package/patterns/agent/command-palette.json +1 -1
  293. package/patterns/agent/loading-skeleton.json +0 -6
  294. package/patterns/agent/toast-notification.json +6 -9
  295. package/patterns/data/admin-dashboard-with-charts.json +0 -4
  296. package/patterns/data/api-key-table.json +1 -1
  297. package/patterns/data/bookmark-list-categories.json +537 -128
  298. package/patterns/data/dashboard.json +3 -3
  299. package/patterns/data/data-table-view.json +34 -10
  300. package/patterns/data/email-inbox.json +22 -22
  301. package/patterns/data/event-calendar-details.json +20 -22
  302. package/patterns/data/inventory-table.json +1 -1
  303. package/patterns/data/leaderboard.json +1 -1
  304. package/patterns/data/notification-center.json +57 -25
  305. package/patterns/data/onboarding-checklist.json +10 -35
  306. package/patterns/data/order-tracking.json +8 -8
  307. package/patterns/data/pagination-nav.json +2 -2
  308. package/patterns/data/progress-dashboard.json +4 -16
  309. package/patterns/data/progress-tracker.json +3 -6
  310. package/patterns/data/restaurant-menu.json +241 -59
  311. package/patterns/forms/auth-signup.json +5 -13
  312. package/patterns/forms/bleed-design-settings.json +3 -11
  313. package/patterns/forms/credit-card-payment.json +8 -8
  314. package/patterns/forms/data-import.json +1 -2
  315. package/patterns/forms/login-form.json +4 -12
  316. package/patterns/forms/notification-filters.json +19 -68
  317. package/patterns/forms/notification-preferences.json +125 -39
  318. package/patterns/forms/otp-verification.json +1 -2
  319. package/patterns/forms/password-reset.json +1 -1
  320. package/patterns/forms/radio-group-selection.json +13 -45
  321. package/patterns/forms/radio-group.json +11 -35
  322. package/patterns/forms/survey-rating-scales.json +41 -121
  323. package/patterns/forms/two-factor-auth.json +211 -61
  324. package/patterns/forms/wizard-steps.json +32 -9
  325. package/patterns/layout/accordion-settings.json +63 -119
  326. package/patterns/layout/avatar-group.json +19 -40
  327. package/patterns/layout/badge-showcase.json +51 -89
  328. package/patterns/layout/code-block.json +9 -15
  329. package/patterns/layout/cta-banner.json +9 -17
  330. package/patterns/layout/divider-label.json +6 -10
  331. package/patterns/layout/drawer-panel.json +29 -48
  332. package/patterns/layout/embed-content.json +7 -9
  333. package/patterns/layout/feature-carousel.json +20 -20
  334. package/patterns/layout/feature-grid.json +30 -56
  335. package/patterns/layout/hero-section.json +18 -26
  336. package/patterns/layout/image-carousel.json +12 -12
  337. package/patterns/layout/kbd-shortcuts.json +6 -6
  338. package/patterns/layout/popover-menu.json +23 -27
  339. package/patterns/layout/pricing-tiers.json +50 -96
  340. package/patterns/layout/product-carousel.json +24 -24
  341. package/patterns/layout/tabs-panels.json +29 -55
  342. package/patterns/layout/team-carousel.json +16 -16
  343. package/patterns/layout/testimonials-carousel.json +12 -12
  344. package/patterns/layout/testimonials-grid.json +54 -92
  345. package/patterns/layout/toolbar-buttons.json +42 -70
  346. package/patterns/layout/tooltip-buttons.json +26 -44
  347. package/exemplars/AUDIT-REPORT.md +0 -116
  348. package/exemplars/README.md +0 -49
  349. package/exemplars/_shell.css +0 -88
  350. package/exemplars/blocks-reference.md +0 -409
  351. package/exemplars/index.html +0 -21
  352. package/exemplars/prose/auth-login/auth-login.yaml +0 -38
  353. package/exemplars/prose/auth-login/index.html +0 -542
  354. package/exemplars/prose/cta/README.md +0 -3
  355. package/exemplars/prose/cta/cta.yaml +0 -38
  356. package/exemplars/prose/cta/data.json +0 -6
  357. package/exemplars/prose/cta/index.html +0 -125
  358. package/exemplars/prose/feature-grid/README.md +0 -3
  359. package/exemplars/prose/feature-grid/data.json +0 -13
  360. package/exemplars/prose/feature-grid/feature-grid.yaml +0 -35
  361. package/exemplars/prose/feature-grid/index.html +0 -93
  362. package/exemplars/prose/footer/README.md +0 -3
  363. package/exemplars/prose/footer/data.json +0 -10
  364. package/exemplars/prose/footer/footer.yaml +0 -32
  365. package/exemplars/prose/footer/index.html +0 -109
  366. package/exemplars/prose/hero/README.md +0 -3
  367. package/exemplars/prose/hero/data.json +0 -6
  368. package/exemplars/prose/hero/hero.yaml +0 -38
  369. package/exemplars/prose/hero/index.html +0 -217
  370. package/exemplars/prose/pricing/README.md +0 -3
  371. package/exemplars/prose/pricing/data.json +0 -9
  372. package/exemplars/prose/pricing/index.html +0 -298
  373. package/exemplars/prose/pricing/pricing.yaml +0 -38
  374. package/exemplars/prose/steps/README.md +0 -3
  375. package/exemplars/prose/steps/data.json +0 -31
  376. package/exemplars/prose/steps/index.html +0 -176
  377. package/exemplars/prose/steps/setup.js +0 -12
  378. package/exemplars/prose/steps/steps.yaml +0 -38
  379. package/exemplars/prose/testimonials/README.md +0 -3
  380. package/exemplars/prose/testimonials/data.json +0 -14
  381. package/exemplars/prose/testimonials/index.html +0 -297
  382. package/exemplars/prose/testimonials/testimonials.yaml +0 -33
  383. package/exemplars/ui/auth-login/auth-login.yaml +0 -38
  384. package/exemplars/ui/auth-login/index.html +0 -372
  385. package/fragments/_schema.json +0 -72
  386. package/fragments/action/dual-cta-row.json +0 -29
  387. package/fragments/action/dual-cta-row.yaml +0 -34
  388. package/fragments/action/footer-cancel-save.json +0 -31
  389. package/fragments/action/footer-cancel-save.yaml +0 -34
  390. package/fragments/action/footer-primary-only.json +0 -23
  391. package/fragments/action/footer-primary-only.yaml +0 -26
  392. package/fragments/content/calendar-day-cell.json +0 -29
  393. package/fragments/content/column-config-atom.json +0 -121
  394. package/fragments/content/credential-entry-atom.json +0 -126
  395. package/fragments/content/directory-entry-atom.json +0 -148
  396. package/fragments/content/email-row.json +0 -35
  397. package/fragments/content/email-row.yaml +0 -43
  398. package/fragments/content/faq-item.json +0 -54
  399. package/fragments/content/health-entry-atom.json +0 -85
  400. package/fragments/content/icon-text-row.json +0 -29
  401. package/fragments/content/icon-text-row.yaml +0 -36
  402. package/fragments/content/icon-title-description.json +0 -30
  403. package/fragments/content/icon-title-description.yaml +0 -37
  404. package/fragments/content/image-tile.json +0 -28
  405. package/fragments/content/image-tile.yaml +0 -32
  406. package/fragments/content/incident-row.json +0 -107
  407. package/fragments/content/kbd-shortcut-row.json +0 -29
  408. package/fragments/content/kbd-shortcut-row.yaml +0 -33
  409. package/fragments/content/key-value-row.json +0 -29
  410. package/fragments/content/key-value-row.yaml +0 -36
  411. package/fragments/content/labeled-progress.json +0 -29
  412. package/fragments/content/labeled-progress.yaml +0 -33
  413. package/fragments/content/link-list-column.json +0 -33
  414. package/fragments/content/link-list-column.yaml +0 -41
  415. package/fragments/content/linked-record-row.json +0 -95
  416. package/fragments/content/marketplace-tile-atom.json +0 -147
  417. package/fragments/content/metadata-description-list.json +0 -28
  418. package/fragments/content/metadata-description-list.yaml +0 -36
  419. package/fragments/content/pending-invite-row.json +0 -113
  420. package/fragments/content/release-entry.json +0 -155
  421. package/fragments/content/rollout-entry-atom.json +0 -168
  422. package/fragments/content/signed-in-entry-atom.json +0 -157
  423. package/fragments/content/stage-entry-atom.json +0 -115
  424. package/fragments/content/stat-card.json +0 -31
  425. package/fragments/content/stat-card.yaml +0 -39
  426. package/fragments/content/user-identity-row.json +0 -33
  427. package/fragments/content/user-identity-row.yaml +0 -43
  428. package/fragments/content/user-notification-row.json +0 -35
  429. package/fragments/content/user-notification-row.yaml +0 -50
  430. package/fragments/content/wizard-step-row.json +0 -96
  431. package/fragments/form/labeled-checkbox.json +0 -26
  432. package/fragments/form/labeled-checkbox.yaml +0 -36
  433. package/fragments/form/labeled-input.json +0 -28
  434. package/fragments/form/labeled-input.yaml +0 -38
  435. package/fragments/form/labeled-slider.json +0 -34
  436. package/fragments/form/labeled-slider.yaml +0 -50
  437. package/fragments/form/labeled-textarea.json +0 -28
  438. package/fragments/form/labeled-textarea.yaml +0 -39
  439. package/fragments/form/labeled-toggle.json +0 -29
  440. package/fragments/form/labeled-toggle.yaml +0 -43
  441. package/fragments/layout/card-header-heading.json +0 -35
  442. package/fragments/layout/card-header-heading.yaml +0 -27
  443. package/fragments/layout/card-header-with-badge.json +0 -30
  444. package/fragments/layout/card-header-with-badge.yaml +0 -40
  445. package/fragments/layout/card-header-with-description.json +0 -29
  446. package/fragments/layout/card-header-with-description.yaml +0 -32
  447. package/fragments/layout/pricing-tier-card.json +0 -37
  448. package/fragments/layout/pricing-tier-card.yaml +0 -50
  449. package/fragments/layout/section-with-stack.json +0 -46
  450. package/fragments/layout/section-with-stack.yaml +0 -39
  451. package/fragments/layout/text-card.json +0 -28
  452. package/fragments/layout/text-card.yaml +0 -30
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form>\n <div data-onb-extension-card>\n <div data-ext-icon>\n <icon-ui name=\"puzzle-piece\" weight=\"fill\" size=\"2xl\"></icon-ui>\n </div>\n <div>\n <text-ui strong>AdiaUI for Chrome</text-ui>\n <text-ui color=\"subtle\" size=\"sm\" style=\"display: block\">v1.4 · 2 MB · Updated last week</text-ui>\n </div>\n </div>\n\n <ul data-onb-extension-perms aria-label=\"Permissions requested by the extension\">\n <li>\n <icon-ui name=\"magnifying-glass\" weight=\"bold\"></icon-ui>\n <span>Read your AdiaUI session token (for the quick-search palette to talk to your workspace)</span>\n </li>\n <li>\n <icon-ui name=\"bell\" weight=\"bold\"></icon-ui>\n <span>Show desktop notifications (mentions, share-with-you events)</span>\n </li>\n <li>\n <icon-ui name=\"image\" weight=\"bold\"></icon-ui>\n <span>Capture the current tab when you click \"Snip to dashboard\" (only when you click it)</span>\n </li>\n </ul>\n\n <button-ui text=\"Add to Chrome\" variant=\"primary\" icon=\"download-simple\"></button-ui>\n\n <text-ui color=\"subtle\" size=\"sm\"\n >By installing you accept the extension's permissions above. You can revoke or remove it from your browser's extensions panel any time.</text-ui\n >\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/browser-extension/browser-extension.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form data-chunk-slot=\"page-content\">\n <ul data-onb-outcomes>\n <li>\n <icon-ui name=\"check-circle\" weight=\"fill\"></icon-ui>\n <div>\n <strong>Pick how you'll use it</strong>\n <text-ui color=\"subtle\" size=\"sm\">Tailors the home screen + which integrations we suggest first.</text-ui>\n </div>\n </li>\n <li>\n <icon-ui name=\"check-circle\" weight=\"fill\"></icon-ui>\n <div>\n <strong>Connect your first data source</strong>\n <text-ui color=\"subtle\" size=\"sm\">One integration unlocks dashboards, alerts, and search across your stack.</text-ui>\n </div>\n </li>\n <li>\n <icon-ui name=\"check-circle\" weight=\"fill\"></icon-ui>\n <div>\n <strong>See your first dashboard</strong>\n <text-ui color=\"subtle\" size=\"sm\">Generated from real data, ready to share or edit.</text-ui>\n </div>\n </li>\n </ul>\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/welcome/welcome.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form>\n <div data-onb-fork role=\"radiogroup\" aria-label=\"Data source choice\">\n <option-card-ui\n layout=\"tile\"\n name=\"data-mode\"\n value=\"sample\"\n checked\n icon=\"sparkle\"\n heading=\"Use sample data\"\n description=\"Pre-loaded mock data so you can explore in seconds. Best for evaluating.\"\n ></option-card-ui>\n <option-card-ui\n layout=\"tile\"\n name=\"data-mode\"\n value=\"upload\"\n icon=\"upload\"\n heading=\"Upload a CSV / JSON\"\n description=\"One-shot import. Good for spreadsheet-shaped data and quick prototypes.\"\n ></option-card-ui>\n <option-card-ui\n layout=\"tile\"\n name=\"data-mode\"\n value=\"blank\"\n icon=\"file-plus\"\n heading=\"Start from blank\"\n description=\"Empty workspace. Connect or import later when you're ready.\"\n ></option-card-ui>\n </div>\n\n <text-ui color=\"subtle\" size=\"sm\"\n >Sample data is generated on-the-fly and is never stored after onboarding. Anything you configure on it carries over when you switch to live\n sources.</text-ui\n >\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/import-data/import-data.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form>\n <div data-onb-handoff>\n <div data-onb-handoff-qr aria-label=\"QR code to install the AdiaUI mobile app\">\n <icon-ui name=\"qr-code\" size=\"3xl\"></icon-ui>\n </div>\n <div data-handoff-divider role=\"separator\" aria-orientation=\"vertical\"></div>\n <div data-onb-handoff-form>\n <text-ui strong>Or send yourself a link</text-ui>\n <text-ui color=\"subtle\" size=\"sm\">We'll text you a link to the App Store or Play Store, depending on your device.</text-ui>\n <field-ui label=\"Phone number\">\n <input-ui type=\"tel\" name=\"phone\" autocomplete=\"tel\" placeholder=\"+1 555 0123\"></input-ui>\n </field-ui>\n <button-ui text=\"Send install link\" variant=\"outline\"></button-ui>\n </div>\n </div>\n\n <text-ui color=\"subtle\" size=\"sm\">No phone? You'll find direct App Store / Play Store links in your settings → Devices any time.</text-ui>\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/mobile-app/mobile-app.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -12,5 +12,5 @@
12
12
  },
13
13
  "html": "<div data-onb-form role=\"radiogroup\" aria-label=\"Email notification frequency\">\n <col-ui gap=\"4\">\n <option-card-ui\n name=\"notify\"\n value=\"daily\"\n heading=\"Daily digest\"\n description=\"One email each morning summarizing yesterday's activity. Best for dashboard-driven roles.\"\n ></option-card-ui>\n <option-card-ui\n name=\"notify\"\n value=\"weekly\"\n checked\n heading=\"Weekly digest · Recommended\"\n description=\"One email each Monday with a 7-day rollup. Quiet and focused.\"\n ></option-card-ui>\n <option-card-ui\n name=\"notify\"\n value=\"mentions\"\n heading=\"Mentions only\"\n description=\"Just emails when someone @-mentions you or shares a dashboard directly. No digests.\"\n ></option-card-ui>\n <option-card-ui\n name=\"notify\"\n value=\"off\"\n heading=\"Off\"\n description=\"No emails. We'll still send security-critical messages (password reset, new device sign-in).\"\n ></option-card-ui>\n </col-ui>\n </div>",
14
14
  "source": "apps/user-flow/app/onboarding/notification-prefs/notification-prefs.contents.html",
15
- "captured_at": "2026-05-11T18:22:09.722Z"
15
+ "captured_at": "2026-05-12T13:16:54.281Z"
16
16
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form>\n <div data-onb-mode-grid role=\"radiogroup\" aria-label=\"Primary role\">\n <option-card-ui\n name=\"mode\"\n value=\"developer\"\n required\n heading=\"Developer\"\n description=\"Wire APIs, ship features, monitor releases.\"\n ></option-card-ui>\n <option-card-ui name=\"mode\" value=\"designer\" heading=\"Designer\" description=\"Compose patterns, review, hand off.\"></option-card-ui>\n <option-card-ui name=\"mode\" value=\"analyst\" heading=\"Analyst\" description=\"Query, chart, share insight, set up alerts.\"></option-card-ui>\n <option-card-ui name=\"mode\" value=\"admin\" heading=\"Admin\" description=\"Configure, govern, manage access + billing.\"></option-card-ui>\n </div>\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/mode/mode.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form>\n <div data-onb-provider-grid role=\"radiogroup\" aria-label=\"Source picker\">\n <option-card-ui\n layout=\"tile\"\n name=\"source\"\n value=\"github\"\n checked\n icon=\"github-logo\"\n heading=\"GitHub\"\n description=\"Repos, issues, PRs, releases\"\n ></option-card-ui>\n <option-card-ui layout=\"tile\" name=\"source\" value=\"linear\" icon=\"kanban\" heading=\"Linear\" description=\"Issues, cycles, projects\"></option-card-ui>\n <option-card-ui layout=\"tile\" name=\"source\" value=\"stripe\" icon=\"credit-card\" heading=\"Stripe\" description=\"Customers, MRR, churn\"></option-card-ui>\n <option-card-ui\n layout=\"tile\"\n name=\"source\"\n value=\"postgres\"\n icon=\"database\"\n heading=\"Postgres\"\n description=\"Read-only SQL connection\"\n ></option-card-ui>\n <option-card-ui\n layout=\"tile\"\n name=\"source\"\n value=\"notion\"\n icon=\"notebook\"\n heading=\"Notion\"\n description=\"Pages, databases, comments\"\n ></option-card-ui>\n <option-card-ui\n layout=\"tile\"\n name=\"source\"\n value=\"slack\"\n icon=\"slack-logo\"\n heading=\"Slack\"\n description=\"Channels, threads, search\"\n ></option-card-ui>\n </div>\n\n <alert-ui variant=\"info\" icon=\"shield-check\">\n <span slot=\"content\"\n ><strong>Read-only by default.</strong> AdiaUI never writes or deletes data on your provider. You can audit + revoke from settings →\n Integrations.</span\n >\n </alert-ui>\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/connect-source/connect-source.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form>\n <div data-onb-summary>\n <div data-onb-summary-row>\n <span data-summary-label>Role</span>\n <div>\n <span data-summary-value>Developer</span>\n <text-ui color=\"subtle\" size=\"sm\" style=\"display: block\">Home pinned to release dashboards.</text-ui>\n </div>\n <button-ui text=\"Edit\" variant=\"ghost\" size=\"sm\" onclick=\"document.getElementById('drawer-role').open = true\"></button-ui>\n </div>\n\n <div data-onb-summary-row>\n <span data-summary-label>Source</span>\n <div>\n <span data-summary-value>GitHub</span>\n <text-ui color=\"subtle\" size=\"sm\" style=\"display: block\">Authorized as kim@acme.com · 23 repos visible.</text-ui>\n </div>\n <button-ui text=\"Edit\" variant=\"ghost\" size=\"sm\" onclick=\"document.getElementById('drawer-source').open = true\"></button-ui>\n </div>\n\n <div data-onb-summary-row>\n <span data-summary-label>Data start</span>\n <div>\n <span data-summary-value>Sample data</span>\n <text-ui color=\"subtle\" size=\"sm\" style=\"display: block\">Switch to live source any time from settings.</text-ui>\n </div>\n <button-ui text=\"Edit\" variant=\"ghost\" size=\"sm\" onclick=\"document.getElementById('drawer-data-start').open = true\"></button-ui>\n </div>\n\n <div data-onb-summary-row>\n <span data-summary-label>First dashboard</span>\n <div>\n <span data-summary-value>Weekly revenue · 6-month trend</span>\n <text-ui color=\"subtle\" size=\"sm\" style=\"display: block\">Generated and pinned to your home.</text-ui>\n </div>\n <button-ui text=\"Edit\" variant=\"ghost\" size=\"sm\" onclick=\"document.getElementById('drawer-first-dashboard').open = true\"></button-ui>\n </div>\n </div>\n\n <alert-ui variant=\"success\" icon=\"check-circle\">\n <span slot=\"content\"\n ><strong>Looking good.</strong> Next we'll set notification preferences, then offer two optional companion installs (mobile app + browser\n extension). Nothing else is required.</span\n >\n </alert-ui>\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/review/review.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -104,5 +104,5 @@
104
104
  "html": "<footer data-chunk-slot=\"page-footer\">\n <step-progress-ui value=\"1\" total=\"10\" caption=\"Step 1 of 10\"></step-progress-ui>\n <div data-onb-actions>\n <button-ui text=\"Get started\" variant=\"primary\" type=\"submit\"></button-ui>\n </div>\n </footer>"
105
105
  }
106
106
  ],
107
- "captured_at": "2026-05-11T18:22:09.722Z"
107
+ "captured_at": "2026-05-12T13:16:54.281Z"
108
108
  }
@@ -104,5 +104,5 @@
104
104
  "html": "<header data-onb-heading data-chunk-slot=\"page-header\">\n <h1>Let's get you set up</h1>\n <text-ui color=\"subtle\">A quick guided tour. Everything is changeable in settings later.</text-ui>\n </header>"
105
105
  }
106
106
  ],
107
- "captured_at": "2026-05-11T18:22:09.722Z"
107
+ "captured_at": "2026-05-12T13:16:54.281Z"
108
108
  }
@@ -124,5 +124,5 @@
124
124
  "html": "<step-progress-ui value=\"1\" total=\"10\" caption=\"Step 1 of 10\"></step-progress-ui>"
125
125
  }
126
126
  ],
127
- "captured_at": "2026-05-11T18:22:09.722Z"
127
+ "captured_at": "2026-05-12T13:16:54.281Z"
128
128
  }
@@ -38,5 +38,253 @@
38
38
  },
39
39
  "html": "<main data-onb prose>\n <aside data-onb-story data-chunk-slot=\"page-story\"><!-- nested: onb-story-pane --></aside>\n\n <form data-onb-input action=\"/site/examples/onboarding/mode\" method=\"get\">\n <header data-onb-heading data-chunk-slot=\"page-header\"><!-- nested: onb-step-header --></header>\n\n <div data-onb-form data-chunk-slot=\"page-content\"><!-- nested: onb-hero-welcome --></div>\n\n <footer data-chunk-slot=\"page-footer\"><!-- nested: onb-step-footer --></footer>\n </form>\n </main>",
40
40
  "source": "apps/user-flow/app/onboarding/welcome/welcome.contents.html",
41
- "captured_at": "2026-05-11T18:22:09.722Z"
41
+ "metadata": {
42
+ "domain": "onboarding",
43
+ "description": "Multi-step onboarding wizard shell. Header with step-progress indicator, welcome/setup title, description, and content section. Wraps welcome → preferences → team-invite → complete sequence.",
44
+ "keywords": [
45
+ "onboarding",
46
+ "welcome",
47
+ "wizard",
48
+ "multi",
49
+ "step",
50
+ "shell",
51
+ "progress",
52
+ "setup",
53
+ "new",
54
+ "user",
55
+ "getting",
56
+ "started"
57
+ ],
58
+ "related": [
59
+ "reg-step-shell",
60
+ "auth-signup-entry",
61
+ "auth-profile-setup"
62
+ ],
63
+ "tags": {
64
+ "complexity": "moderate",
65
+ "layout": "page"
66
+ }
67
+ },
68
+ "captured_at": "2026-05-12T13:16:54.281Z",
69
+ "template": [
70
+ {
71
+ "id": "image",
72
+ "component": "Image",
73
+ "src": "/icons/agent-ui-light.svg"
74
+ },
75
+ {
76
+ "id": "text",
77
+ "component": "Text",
78
+ "variant": "body",
79
+ "textContent": "AdiaUI"
80
+ },
81
+ {
82
+ "id": "adia-ui-home",
83
+ "component": "Link",
84
+ "text": "AdiaUI",
85
+ "href": "/",
86
+ "data-onb-brand": "",
87
+ "children": [
88
+ "image",
89
+ "text"
90
+ ]
91
+ },
92
+ {
93
+ "id": "text-2",
94
+ "component": "Text",
95
+ "variant": "h2",
96
+ "textContent": "Welcome aboard, Kim.",
97
+ "data-heading": "section"
98
+ },
99
+ {
100
+ "id": "text-3",
101
+ "component": "Text",
102
+ "variant": "body",
103
+ "textContent": "You're three minutes away from your first usable workspace. We'll walk through the essentials — pick how you'll use it, connect a data source, see your first dashboard come to life. Skip anything you'd rather come back to later."
104
+ },
105
+ {
106
+ "id": "text-4",
107
+ "component": "Text",
108
+ "textContent": "Step 1 of 10 · Onboarding"
109
+ },
110
+ {
111
+ "id": "header",
112
+ "component": "Header",
113
+ "children": [
114
+ "text-2"
115
+ ]
116
+ },
117
+ {
118
+ "id": "column",
119
+ "component": "Column",
120
+ "children": [
121
+ "text-3",
122
+ "text-4"
123
+ ]
124
+ },
125
+ {
126
+ "id": "section",
127
+ "component": "Section",
128
+ "children": [
129
+ "column"
130
+ ]
131
+ },
132
+ {
133
+ "id": "card",
134
+ "component": "Card",
135
+ "data-onb-story-content": "",
136
+ "children": [
137
+ "header",
138
+ "section"
139
+ ]
140
+ },
141
+ {
142
+ "id": "sidebar-2",
143
+ "component": "Sidebar",
144
+ "data-onb-story": "",
145
+ "data-chunk-slot": "page-story",
146
+ "children": [
147
+ "adia-ui-home",
148
+ "card"
149
+ ]
150
+ },
151
+ {
152
+ "id": "sidebar",
153
+ "component": "Sidebar",
154
+ "data-onb-story": "",
155
+ "data-chunk-slot": "page-story",
156
+ "children": [
157
+ "sidebar-2"
158
+ ]
159
+ },
160
+ {
161
+ "id": "text-5",
162
+ "component": "Text",
163
+ "variant": "h1",
164
+ "textContent": "Let's get you set up"
165
+ },
166
+ {
167
+ "id": "text-6",
168
+ "component": "Text",
169
+ "textContent": "A quick guided tour. Everything is changeable in settings later."
170
+ },
171
+ {
172
+ "id": "header-3",
173
+ "component": "Header",
174
+ "data-onb-heading": "",
175
+ "data-chunk-slot": "page-header",
176
+ "children": [
177
+ "text-5",
178
+ "text-6"
179
+ ]
180
+ },
181
+ {
182
+ "id": "header-2",
183
+ "component": "Header",
184
+ "data-onb-heading": "",
185
+ "data-chunk-slot": "page-header",
186
+ "children": [
187
+ "header-3"
188
+ ]
189
+ },
190
+ {
191
+ "id": "text-7",
192
+ "component": "Text",
193
+ "variant": "body",
194
+ "textContent": "Pick how you'll use it Tailors the home screen + which integrations we suggest first."
195
+ },
196
+ {
197
+ "id": "text-8",
198
+ "component": "Text",
199
+ "variant": "body",
200
+ "textContent": "Connect your first data source One integration unlocks dashboards, alerts, and search across your stack."
201
+ },
202
+ {
203
+ "id": "text-9",
204
+ "component": "Text",
205
+ "variant": "body",
206
+ "textContent": "See your first dashboard Generated from real data, ready to share or edit."
207
+ },
208
+ {
209
+ "id": "list",
210
+ "component": "List",
211
+ "data-onb-outcomes": "",
212
+ "children": [
213
+ "text-7",
214
+ "text-8",
215
+ "text-9"
216
+ ]
217
+ },
218
+ {
219
+ "id": "column-3",
220
+ "component": "Column",
221
+ "data-onb-form": "",
222
+ "data-chunk-slot": "page-content",
223
+ "children": [
224
+ "list"
225
+ ]
226
+ },
227
+ {
228
+ "id": "column-2",
229
+ "component": "Column",
230
+ "data-onb-form": "",
231
+ "data-chunk-slot": "page-content",
232
+ "children": [
233
+ "column-3"
234
+ ]
235
+ },
236
+ {
237
+ "id": "column-4",
238
+ "component": "Column"
239
+ },
240
+ {
241
+ "id": "button",
242
+ "component": "Button",
243
+ "type": "submit"
244
+ },
245
+ {
246
+ "id": "column-5",
247
+ "component": "Column",
248
+ "data-onb-actions": "",
249
+ "children": [
250
+ "button"
251
+ ]
252
+ },
253
+ {
254
+ "id": "footer-2",
255
+ "component": "Footer",
256
+ "data-chunk-slot": "page-footer",
257
+ "children": [
258
+ "column-4",
259
+ "column-5"
260
+ ]
261
+ },
262
+ {
263
+ "id": "footer",
264
+ "component": "Footer",
265
+ "data-chunk-slot": "page-footer",
266
+ "children": [
267
+ "footer-2"
268
+ ]
269
+ },
270
+ {
271
+ "id": "form-container",
272
+ "component": "FormContainer",
273
+ "data-onb-input": "",
274
+ "children": [
275
+ "header-2",
276
+ "column-2",
277
+ "footer"
278
+ ]
279
+ },
280
+ {
281
+ "id": "root",
282
+ "component": "Column",
283
+ "data-onb": "",
284
+ "children": [
285
+ "sidebar",
286
+ "form-container"
287
+ ]
288
+ }
289
+ ]
42
290
  }
@@ -104,5 +104,5 @@
104
104
  "html": "<aside data-onb-story data-chunk-slot=\"page-story\">\n <a data-onb-brand href=\"/\" aria-label=\"AdiaUI home\">\n <img src=\"/icons/agent-ui-light.svg\" alt=\"\" />\n <strong>AdiaUI</strong>\n </a>\n <div data-onb-story-content>\n <h2>Welcome aboard, Kim.</h2>\n <p>\n You're three minutes away from your first usable workspace. We'll walk through the essentials — pick how you'll use it, connect a data source, see\n your first dashboard come to life. Skip anything you'd rather come back to later.\n </p>\n <text-ui color=\"subtle\" size=\"sm\">Step 1 of 10 · Onboarding</text-ui>\n </div>\n </aside>"
105
105
  }
106
106
  ],
107
- "captured_at": "2026-05-11T18:22:09.722Z"
107
+ "captured_at": "2026-05-12T13:16:54.281Z"
108
108
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div data-onb-form>\n <div data-onb-tutorial>\n <div data-onb-tutorial-step>\n <span data-step-num>1</span>\n <div data-step-body>\n <text-ui strong>Describe what you want.</text-ui>\n <text-ui color=\"subtle\" size=\"sm\">One sentence in plain English. AdiaUI picks the right components and wires them up.</text-ui>\n </div>\n </div>\n\n <field-ui label=\"Prompt\">\n <input-ui\n name=\"intent\"\n placeholder=\"A weekly revenue dashboard with a 6-month trend\"\n value=\"A weekly revenue dashboard with a 6-month trend\"\n ></input-ui>\n </field-ui>\n\n <div data-onb-tutorial-step>\n <span data-step-num>2</span>\n <div data-step-body>\n <text-ui strong>Generate.</text-ui>\n <text-ui color=\"subtle\" size=\"sm\">Takes 1–3 seconds. The result lands editable on your canvas.</text-ui>\n </div>\n </div>\n\n <div data-onb-tutorial-step>\n <span data-step-num>3</span>\n <div data-step-body>\n <text-ui strong>Edit and share.</text-ui>\n <text-ui color=\"subtle\" size=\"sm\">Move blocks, change palettes, swap data sources. Share via link, embed, or export to PNG.</text-ui>\n </div>\n </div>\n\n <button-ui text=\"Generate dashboard\" variant=\"primary\" icon=\"sparkle\"></button-ui>\n </div>\n\n <text-ui color=\"subtle\" size=\"sm\"\n >After generation we'll save the result to your workspace and continue to the next step. You can return to it any time from the sidebar.</text-ui\n >\n </div>",
12
12
  "source": "apps/user-flow/app/onboarding/first-action/first-action.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -8,5 +8,5 @@
8
8
  "attrs": {},
9
9
  "html": "<div id=\"playground-shell\">\n <!-- Toolbar -->\n <div id=\"pg-toolbar\">\n <row-ui gap=\"2\" align=\"center\">\n <icon-ui name=\"layout\" color=\"muted\"></icon-ui>\n <text-ui strong>Playground</text-ui>\n <badge-ui id=\"pg-format-badge\" text=\"\" size=\"sm\" hidden></badge-ui>\n </row-ui>\n <row-ui gap=\"1\">\n <button-ui id=\"pg-btn-example\" text=\"Load Example\" variant=\"ghost\" size=\"sm\" icon=\"lightning\"></button-ui>\n <divider-ui vertical></divider-ui>\n <button-ui id=\"pg-btn-clear\" variant=\"ghost\" size=\"sm\" icon=\"trash\" disabled></button-ui>\n <button-ui id=\"pg-btn-copy\" variant=\"ghost\" size=\"sm\" icon=\"copy\" disabled></button-ui>\n <button-ui id=\"pg-btn-code\" variant=\"ghost\" size=\"sm\" icon=\"code\" disabled></button-ui>\n </row-ui>\n </div>\n\n <!-- Canvas + drop zone -->\n <div id=\"pg-canvas-wrap\">\n <div id=\"pg-drop-overlay\">\n <col-ui gap=\"2\" align=\"center\">\n <icon-ui name=\"upload\" size=\"32\" color=\"primary\"></icon-ui>\n <text-ui weight=\"semibold\" color=\"primary\">Drop A2UI JSON or HTML</text-ui>\n </col-ui>\n </div>\n\n <div id=\"pg-empty\">\n <empty-state-ui\n icon=\"code\"\n heading=\"Paste or drop to render\"\n description=\"Accepts A2UI JSON, AdiaUI HTML, or plain HTML. Paste from clipboard or drag a file.\"\n >\n </empty-state-ui>\n </div>\n\n <section>\n <canvas-ui id=\"pg-canvas\"></canvas-ui>\n </section>\n\n <footer id=\"pg-code-panel\" hidden>\n <code-ui id=\"pg-code-view\" language=\"html\" style=\"font-size: var(--a-ui-sm)\"></code-ui>\n </footer>\n </div>\n </div>",
10
10
  "source": "apps/genui/app/a2ui/a2ui.contents.html",
11
- "captured_at": "2026-05-11T18:22:09.722Z"
11
+ "captured_at": "2026-05-12T13:16:54.281Z"
12
12
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<admin-shell mode=\"rounded borderless\">\n <!-- ═══════════════ LEFT SIDEBAR ═══════════════ -->\n <admin-sidebar slot=\"leading\" resizable collapsible>\n <header-ui>\n <select-ui id=\"workspace-select\" avatar=\"/icons/agent-ui-light.svg\" value=\"adia-ui\" variant=\"ghost\" style=\"flex: 1\"></select-ui>\n </header-ui>\n\n <section-ui>\n <nav-ui id=\"nav\">\n <nav-item-ui data-command-trigger icon=\"magnifying-glass\" text=\"Search\" value=\"search\">\n <span slot=\"icon\"><icon-ui name=\"magnifying-glass\"></icon-ui></span>\n <span slot=\"text\">Search</span>\n <kbd slot=\"trailing\">⌘K</kbd>\n </nav-item-ui>\n <hr data-nav-divider />\n <nav-group-ui icon=\"house\" text=\"Home\" open>\n <nav-item-ui text=\"Dashboard\" value=\"dashboard\" selected></nav-item-ui>\n <nav-item-ui text=\"Analytics\" value=\"analytics\"></nav-item-ui>\n <nav-item-ui text=\"Reports\" value=\"reports\"></nav-item-ui>\n </nav-group-ui>\n <nav-group-ui icon=\"gear\" text=\"Settings\">\n <nav-item-ui text=\"General\" value=\"general\"></nav-item-ui>\n <nav-item-ui text=\"Team\" value=\"team\"></nav-item-ui>\n <nav-item-ui text=\"Billing\" value=\"billing\"></nav-item-ui>\n </nav-group-ui>\n </nav-ui>\n </section-ui>\n\n <footer-ui>\n <select-ui id=\"user-select\" avatar=\"https://i.pravatar.cc/32?u=demo\" value=\"demo\" variant=\"ghost\" style=\"flex: 1\"></select-ui>\n </footer-ui>\n <div data-resize></div>\n </admin-sidebar>\n\n <!-- ═══════════════ MAIN ═══════════════ -->\n <main>\n <header-ui>\n <button-ui data-sidebar-toggle=\"leading\" icon=\"sidebar\" variant=\"ghost\" size=\"sm\"></button-ui>\n <breadcrumb-ui>\n <a href=\"#\">AdiaUI</a>\n <span>Dashboard</span>\n </breadcrumb-ui>\n <span slot=\"action\">\n <popover-ui id=\"theme-popover\" placement=\"bottom-end\">\n <button-ui icon=\"palette\" variant=\"ghost\" size=\"sm\" slot=\"trigger\"></button-ui>\n <theme-panel slot=\"content\" parametric presets scheme-toggle></theme-panel>\n </popover-ui>\n </span>\n </header-ui>\n\n <section-ui>\n <aside id=\"subnav-rail\" data-subnav>\n <nav-ui variant=\"section\" id=\"subnav\" heading=\"Dashboard\">\n <nav-item-ui text=\"Overview\" value=\"overview\" selected></nav-item-ui>\n <nav-item-ui text=\"Activity\" value=\"activity\"></nav-item-ui>\n <nav-item-ui text=\"Revenue\" value=\"revenue\"></nav-item-ui>\n <nav-item-ui text=\"Traffic\" value=\"traffic\"></nav-item-ui>\n </nav-ui>\n </aside>\n\n <article data-content-root>\n <div data-content-header>\n <header>\n <div>\n <h1>Dashboard</h1>\n <div data-actions>\n <button-ui text=\"Export\" variant=\"outline\" size=\"sm\"></button-ui>\n </div>\n </div>\n <p>App Shell pattern demo — resize the sidebar, collapse it, toggle theme, or press ⌘K to open the command palette.</p>\n </header>\n </div>\n <div data-content-body>\n <section>\n <p style=\"color: var(--a-fg-muted)\">\n This standalone page mirrors the shape of the main AdiaUI docs shell: leading sidebar with app-nav, topbar with breadcrumb + theme popover +\n command trigger, main content area with an optional subnav rail, and a bottom footer.\n </p>\n </section>\n </div>\n </article>\n </section-ui>\n\n <footer-ui>\n <span slot=\"heading\">AdiaUI App Shell</span>\n <span slot=\"description\">Playground demo</span>\n <span slot=\"action\">v0.1.0</span>\n </footer-ui>\n </main>\n\n <!-- ═══════════════ COMMAND PALETTE ═══════════════ -->\n <admin-command>\n <command-ui id=\"cmd\" placeholder=\"Search pages...\"></command-ui>\n </admin-command>\n </admin-shell>",
12
12
  "source": "playgrounds/admin-shell/app/admin-shell.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -11,5 +11,5 @@
11
11
  },
12
12
  "html": "<chat-shell id=\"chat\" proxy-url=\"/api/chat\" model=\"claude-haiku-4-5-20251001\" style=\"flex: 1; border: none; border-radius: 0\">\n <chat-header>\n <span slot=\"name\">Factory Chat</span>\n <chat-status slot=\"status\"></chat-status>\n <span slot=\"action\" style=\"display: flex; align-items: center; gap: var(--a-space-1)\">\n <button-ui id=\"theme-toggle\" icon=\"moon\" variant=\"ghost\" size=\"sm\"></button-ui>\n <popover-ui id=\"theme-popover\" placement=\"bottom-end\">\n <button-ui icon=\"gear\" variant=\"ghost\" size=\"sm\" slot=\"trigger\"></button-ui>\n <div slot=\"content\" style=\"padding: var(--a-space-3); display: flex; flex-direction: column; gap: var(--a-space-3); min-width: 240px\">\n <text-ui variant=\"label\">Theme</text-ui>\n <div style=\"display: flex; gap: var(--a-space-1); flex-wrap: wrap\">\n <button-ui id=\"theme-default\" text=\"Default\" variant=\"outline\" size=\"sm\"></button-ui>\n <button-ui id=\"theme-ocean\" text=\"Ocean\" variant=\"outline\" size=\"sm\"></button-ui>\n <button-ui id=\"theme-forest\" text=\"Forest\" variant=\"outline\" size=\"sm\"></button-ui>\n <button-ui id=\"theme-sunset\" text=\"Sunset\" variant=\"outline\" size=\"sm\"></button-ui>\n <button-ui id=\"theme-lavender\" text=\"Lavender\" variant=\"outline\" size=\"sm\"></button-ui>\n <button-ui id=\"theme-rose\" text=\"Rose\" variant=\"outline\" size=\"sm\"></button-ui>\n <button-ui id=\"theme-slate\" text=\"Slate\" variant=\"outline\" size=\"sm\"></button-ui>\n <button-ui id=\"theme-midnight\" text=\"Midnight\" variant=\"outline\" size=\"sm\"></button-ui>\n </div>\n <divider-ui></divider-ui>\n <text-ui variant=\"label\">Parametric</text-ui>\n <field-ui label=\"Density\">\n <slider-ui id=\"param-density\" value=\"1\" min=\"0.5\" max=\"1.5\" step=\"0.05\" suffix=\"×\"></slider-ui>\n </field-ui>\n <field-ui label=\"Radius\">\n <slider-ui id=\"param-radius\" value=\"1\" min=\"0\" max=\"2\" step=\"0.1\" suffix=\"×\"></slider-ui>\n </field-ui>\n </div>\n </popover-ui>\n </span>\n </chat-header>\n <chat-thread>\n <chat-empty>\n <empty-state-ui\n icon=\"chat-circle\"\n heading=\"AdiaUI Chat\"\n description=\"Type a message to start a conversation. Connects to LLM model via proxy if available.\">\n </empty-state-ui>\n </chat-empty>\n </chat-thread>\n <chat-composer>\n <chat-input-ui placeholder=\"Message Claude...\"></chat-input-ui>\n </chat-composer>\n</chat-shell>",
13
13
  "source": "playgrounds/chat/app/chat.contents.html",
14
- "captured_at": "2026-05-11T18:22:09.722Z"
14
+ "captured_at": "2026-05-12T13:16:54.281Z"
15
15
  }
@@ -8,5 +8,5 @@
8
8
  "attrs": {},
9
9
  "html": "<editor-canvas>\n <div id=\"canvas-host\" role=\"application\" aria-label=\"Construct canvas — drag, zoom, and connect cards\" tabindex=\"0\">\n <!-- canvas-projection mounts a #cc-pan-frame > <noodles-ui> in here -->\n </div>\n <!-- Floating zoom + pan controls (graph-editor convention: bottom-right).\n toolbar-ui owns the flex/border/bg/role chrome; the .cc-zoom-controls\n class only adds floating positioning + backdrop-blur on top. -->\n <toolbar-ui class=\"cc-zoom-controls\" bordered aria-label=\"Canvas zoom\">\n <button-ui\n id=\"zoom-out\"\n icon=\"minus\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Zoom out\"\n title=\"Zoom out (-)\"\n data-hotkey=\"-\"\n data-hotkey-global\n ></button-ui>\n <span id=\"zoom-label\" aria-live=\"polite\">100%</span>\n <button-ui id=\"zoom-in\" icon=\"plus\" variant=\"ghost\" size=\"sm\" aria-label=\"Zoom in\" title=\"Zoom in (+)\"></button-ui>\n <divider-ui vertical style=\"height: 16px\"></divider-ui>\n <button-ui\n id=\"zoom-fit\"\n icon=\"frame-corners\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Fit to content\"\n title=\"Fit to content (1)\"\n data-hotkey=\"1\"\n data-hotkey-global\n ></button-ui>\n <button-ui\n id=\"zoom-reset\"\n icon=\"circle\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Reset to 100%\"\n title=\"Reset to 100% (0)\"\n data-hotkey=\"0\"\n data-hotkey-global\n ></button-ui>\n <divider-ui vertical style=\"height: 16px\"></divider-ui>\n <button-ui\n id=\"auto-arrange-btn\"\n icon=\"layout\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Auto-arrange\"\n title=\"Auto-arrange (L)\"\n data-hotkey=\"l\"\n data-hotkey-global\n ></button-ui>\n </toolbar-ui>\n </editor-canvas>",
10
10
  "source": "apps/construct-canvas/app/construct-canvas.contents.html",
11
- "captured_at": "2026-05-11T18:22:09.722Z"
11
+ "captured_at": "2026-05-12T13:16:54.281Z"
12
12
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<div id=\"gen-ui-shell\" data-view=\"chat\">\n <!-- Chat pane (resizable via pane-ui) -->\n <pane-ui id=\"chat-pane\" resizable min-width=\"280\">\n <section>\n <chat-shell id=\"gen-chat\">\n <chat-thread>\n <chat-empty>\n <empty-state-ui icon=\"magic-wand\" heading=\"AdiaUI Generator\" description=\"Describe a UI and watch it render live.\">\n </empty-state-ui>\n </chat-empty>\n </chat-thread>\n <chat-composer>\n <chat-input-ui placeholder=\"Describe a UI...\"></chat-input-ui>\n </chat-composer>\n </chat-shell>\n </section>\n </pane-ui>\n\n <!-- Canvas panel (plain div — no collapse behavior) -->\n <div id=\"canvas-panel\">\n <div id=\"canvas-toolbar\">\n <row-ui gap=\"2\" align=\"center\">\n <button-ui id=\"btn-toggle-view\" text=\"Chat\" variant=\"ghost\" size=\"sm\" icon=\"chat-circle\"></button-ui>\n <icon-ui name=\"layout\" color=\"muted\"></icon-ui>\n <text-ui strong>Canvas</text-ui>\n <badge-ui id=\"validation-badge\" text=\"\" variant=\"default\" size=\"sm\" hidden></badge-ui>\n </row-ui>\n <row-ui gap=\"1\">\n <button-ui id=\"btn-back\" variant=\"ghost\" size=\"sm\" icon=\"arrow-left\" disabled></button-ui>\n <button-ui id=\"btn-forward\" variant=\"ghost\" size=\"sm\" icon=\"arrow-right\" disabled></button-ui>\n <button-ui id=\"btn-clear\" variant=\"ghost\" size=\"sm\" icon=\"trash\"></button-ui>\n <button-ui id=\"btn-code\" variant=\"ghost\" size=\"sm\" icon=\"code\"></button-ui>\n </row-ui>\n </div>\n <section>\n <canvas-ui id=\"canvas\"></canvas-ui>\n </section>\n <footer id=\"code-panel\" hidden>\n <code-ui id=\"code-view\" language=\"json\" style=\"font-size: var(--a-ui-sm)\"></code-ui>\n </footer>\n </div>\n </div>",
12
12
  "source": "apps/genui/app/gen-ui/gen-ui.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -8,5 +8,5 @@
8
8
  "attrs": {},
9
9
  "html": "<div id=\"pg-shell\">\n <!-- ── Toolbar ───────────────────────────────────────────── -->\n <div id=\"pg-toolbar\">\n <row-ui gap=\"2\" align=\"center\">\n <icon-ui name=\"broadcast\" color=\"muted\"></icon-ui>\n <text-ui strong>Render Preview</text-ui>\n <badge-ui id=\"pg-status-badge\" text=\"ready\" size=\"sm\" variant=\"default\"></badge-ui>\n </row-ui>\n <row-ui gap=\"2\" align=\"center\">\n <select-ui id=\"pg-example-select\" size=\"sm\" placeholder=\"Load example…\" style=\"min-width: 14rem\">\n <option value=\"\">Load example…</option>\n <option value=\"single-card\">Single surface — card + stat</option>\n <option value=\"streamed-list\">Streamed updates — append items</option>\n <option value=\"data-bindings\">Data bindings — updateDataModel</option>\n <option value=\"multi-surface\">Multiple surfaces</option>\n <option value=\"unknown-component\">Unknown component (graceful fallback)</option>\n </select-ui>\n <divider-ui vertical></divider-ui>\n <button-ui id=\"pg-btn-step\" variant=\"ghost\" size=\"sm\" icon=\"skip-forward\" text=\"Step\" disabled></button-ui>\n <button-ui id=\"pg-btn-run\" variant=\"primary\" size=\"sm\" icon=\"play\" text=\"Run all\"></button-ui>\n <button-ui id=\"pg-btn-clear\" variant=\"ghost\" size=\"sm\" icon=\"trash\" text=\"Clear\"></button-ui>\n </row-ui>\n </div>\n\n <!-- ── Body — input | output ─────────────────────────────── -->\n <div id=\"pg-body\">\n <!-- LEFT — message stream input -->\n <section id=\"pg-input-pane\">\n <header class=\"pg-pane-header\">\n <text-ui weight=\"medium\" size=\"sm\">A2UI message stream</text-ui>\n <text-ui size=\"xs\" color=\"muted\" id=\"pg-message-count\">0 messages</text-ui>\n </header>\n <textarea\n id=\"pg-input\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n placeholder='[\n { \"type\": \"createSurface\", \"surfaceId\": \"main\", \"root\": \"root\" },\n { \"type\": \"updateComponents\", \"surfaceId\": \"main\", \"components\": [\n { \"id\": \"root\", \"component\": \"Card\", \"children\": [\"title\"] },\n { \"id\": \"title\", \"component\": \"Text\", \"variant\": \"h2\", \"text\": \"Hello\" }\n ]}\n]'\n ></textarea>\n <footer class=\"pg-pane-footer\" id=\"pg-input-error\" hidden>\n <icon-ui name=\"warning\" size=\"sm\" color=\"danger\"></icon-ui>\n <text-ui size=\"xs\" color=\"danger\" id=\"pg-input-error-text\"></text-ui>\n </footer>\n </section>\n\n <!-- RIGHT — render surface + log -->\n <section id=\"pg-output-pane\">\n <header class=\"pg-pane-header\">\n <text-ui weight=\"medium\" size=\"sm\">Rendered output</text-ui>\n <row-ui gap=\"3\" align=\"center\">\n <text-ui size=\"xs\" color=\"muted\" id=\"pg-surface-count\">0 surfaces</text-ui>\n <text-ui size=\"xs\" color=\"muted\" id=\"pg-component-count\">0 components</text-ui>\n </row-ui>\n </header>\n <div id=\"pg-surface\" aria-live=\"polite\"></div>\n <details id=\"pg-log-panel\">\n <summary>\n <text-ui size=\"xs\" color=\"muted\">Message log</text-ui>\n <text-ui size=\"xs\" color=\"muted\" id=\"pg-log-count\">0</text-ui>\n </summary>\n <ol id=\"pg-log\"></ol>\n </details>\n </section>\n </div>\n </div>",
10
10
  "source": "apps/genui/app/render-preview/render-preview.contents.html",
11
- "captured_at": "2026-05-11T18:22:09.722Z"
11
+ "captured_at": "2026-05-12T13:16:54.281Z"
12
12
  }
@@ -8,5 +8,5 @@
8
8
  "attrs": {},
9
9
  "html": "<div id=\"pg-shell\">\n <div id=\"pg-toolbar\">\n <row-ui gap=\"2\" align=\"center\">\n <icon-ui name=\"plug\" color=\"muted\"></icon-ui>\n <text-ui strong>Streams Bridge</text-ui>\n <badge-ui id=\"pg-source-badge\" text=\"loading…\" variant=\"default\" size=\"sm\"></badge-ui>\n </row-ui>\n <row-ui gap=\"2\">\n <button-ui id=\"pg-btn-refresh\" variant=\"ghost\" size=\"sm\" icon=\"arrows-clockwise\" text=\"Refresh\"></button-ui>\n <a href=\"/site/getting-started/wiring\" target=\"_top\" style=\"text-decoration: none\">\n <button-ui variant=\"ghost\" size=\"sm\" icon=\"book-open\" text=\"Docs\"></button-ui>\n </a>\n </row-ui>\n </div>\n\n <div id=\"pg-content\">\n <div id=\"pg-intro\">\n <h1 style=\"margin: 0 0 var(--a-space-2) 0; font-size: var(--a-ui-lg)\">One stream, two consumers — bridged into A2UI</h1>\n <p style=\"margin: 0; color: var(--a-text-muted); font-size: var(--a-ui-sm); line-height: 1.5\">\n Both tiles below subscribe to the same <code>data-stream-id=\"rev-pg\"</code>, fed from <code>/site/mock/revenue.json</code>. The left tile renders a\n <code>chart-ui</code> driven directly by the <code>data-stream-*</code> attribute trait — the trait writes the parsed response into the chart's\n <code>.data</code> property and re-renders. The right tile is an <strong>A2UI surface</strong> built from <code>updateComponents</code> messages\n whose props use <code>{path: '…'}</code> bindings; <code>bridgeStreamAsync</code> proxies the same stream signal into the surface's data model so\n those bindings resolve — no second fetch (open DevTools' Network tab and confirm only one request per refresh). The bridge piggybacks on the chart's\n refcount rather than holding its own; the DOM source remains the lifecycle owner.\n </p>\n </div>\n\n <div id=\"pg-grid\">\n <!-- LEFT — direct data-stream-* trait -->\n <div class=\"pg-tile\">\n <h3>Direct via <code>data-stream-src</code></h3>\n <div id=\"chart-host\">\n <chart-ui\n id=\"pg-chart\"\n type=\"area\"\n x=\"month\"\n y=\"revenue\"\n data-stream-src=\"/site/mock/revenue.json\"\n data-stream-path=\"data\"\n data-stream-id=\"rev-pg\"\n aria-label=\"Revenue chart fed via data-stream-src\"\n style=\"display: block; width: 100%; height: 280px\"\n ></chart-ui>\n </div>\n </div>\n\n <!-- RIGHT — A2UI surface, bound via bridgeStreamAsync -->\n <div class=\"pg-tile\">\n <h3>Via <code>bridgeStreamAsync</code> → A2UI surface</h3>\n <div id=\"a2ui-host\">\n <empty-state-ui\n icon=\"hourglass\"\n heading=\"Waiting for stream…\"\n description=\"The bridge will populate these bindings once the fetch resolves.\"\n ></empty-state-ui>\n </div>\n </div>\n </div>\n\n <div id=\"pg-status\">\n <div data-pg-status-row><strong>Stream id:</strong> <code id=\"pg-status-id\">id:rev-pg</code></div>\n <div data-pg-status-row><strong>Stream signal:</strong> <span id=\"pg-status-signal\">—</span></div>\n <div data-pg-status-row><strong>Surface dataModel:</strong> <code id=\"pg-status-model\">—</code></div>\n <div data-pg-status-row><strong>DOM consumer refs:</strong> <span id=\"pg-status-refs\">—</span></div>\n <div data-pg-status-row><strong>Last fetch:</strong> <span id=\"pg-status-fetched\">—</span></div>\n </div>\n\n <details id=\"pg-code-panel\">\n <summary>Show the wiring (bridge call + A2UI messages)</summary>\n <div>\n <code-ui language=\"javascript\" id=\"pg-code-block\" style=\"font-size: var(--a-ui-sm)\"></code-ui>\n </div>\n </details>\n </div>\n </div>",
10
10
  "source": "apps/genui/app/streams-bridge/streams-bridge.contents.html",
11
- "captured_at": "2026-05-11T18:22:09.722Z"
11
+ "captured_at": "2026-05-12T13:16:54.281Z"
12
12
  }
@@ -12,5 +12,5 @@
12
12
  },
13
13
  "html": "<table-toolbar-ui for=\"employees\" text=\"All Employees\" count=\"32\"></table-toolbar-ui>",
14
14
  "source": "playgrounds/table-toolbar/app/table-toolbar.contents.html",
15
- "captured_at": "2026-05-11T18:22:09.722Z"
15
+ "captured_at": "2026-05-12T13:16:54.281Z"
16
16
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<section data-reg-form>\n <text-ui strong>Headquarters</text-ui>\n\n <field-ui inline label=\"Country\">\n <select-ui name=\"hq_country\" value=\"us\" data-address-country>\n <option value=\"us\">United States</option>\n <option value=\"gb\">United Kingdom</option>\n <option value=\"de\">Germany</option>\n <option value=\"jp\">Japan</option>\n <option value=\"ca\">Canada</option>\n <option value=\"other\">Other…</option>\n </select-ui>\n </field-ui>\n\n <!-- ── United States ────────────────────────────────────\n State dropdown (2-letter abbreviations) + 5-digit\n numeric ZIP. City | State | ZIP share a row, matching\n how US addresses are written: \"San Francisco, CA 94110\". -->\n <div data-address-fields=\"us\">\n <field-ui inline label=\"Street\">\n <input-ui name=\"hq_street_us\" autocomplete=\"street-address\" placeholder=\"100 Main Street\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"Suite / Floor\">\n <input-ui name=\"hq_suite_us\" autocomplete=\"address-line2\" placeholder=\"Suite 500\"></input-ui>\n </field-ui>\n <row-ui gap=\"2\" align=\"end\">\n <field-ui inline label=\"City\" grow>\n <input-ui name=\"hq_city_us\" autocomplete=\"address-level2\" placeholder=\"San Francisco\" required></input-ui>\n </field-ui>\n <field-ui label=\"State\">\n <select-ui name=\"hq_state_us\" value=\"ca\">\n <option value=\"ca\" selected>CA</option>\n <option value=\"ny\">NY</option>\n <option value=\"tx\">TX</option>\n <option value=\"wa\">WA</option>\n <option value=\"ma\">MA</option>\n <option value=\"il\">IL</option>\n <option value=\"other\">…</option>\n </select-ui>\n </field-ui>\n <field-ui label=\"ZIP\">\n <input-ui name=\"hq_zip_us\" autocomplete=\"postal-code\" placeholder=\"94110\" pattern=\"\\d{5}(-\\d{4})?\" required></input-ui>\n </field-ui>\n </row-ui>\n </div>\n\n <!-- ── United Kingdom ───────────────────────────────────\n Two address lines + town + optional county (free\n text, not a dropdown — counties aren't required for\n Royal Mail delivery) + alphanumeric postcode like\n \"SW1A 2AA\". Postcode is the canonical sort key. -->\n <div data-address-fields=\"gb\" hidden>\n <field-ui inline label=\"Address line 1\">\n <input-ui name=\"hq_street_gb\" autocomplete=\"street-address\" placeholder=\"10 Downing Street\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"Address line 2\">\n <input-ui name=\"hq_street2_gb\" autocomplete=\"address-line2\" placeholder=\"Westminster\"></input-ui>\n </field-ui>\n <field-ui inline label=\"Town / City\">\n <input-ui name=\"hq_city_gb\" autocomplete=\"address-level2\" placeholder=\"London\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"County (optional)\">\n <input-ui name=\"hq_county_gb\" autocomplete=\"address-level1\" placeholder=\"Greater London\"></input-ui>\n </field-ui>\n <field-ui inline label=\"Postcode\">\n <input-ui name=\"hq_postcode_gb\" autocomplete=\"postal-code\" placeholder=\"SW1A 2AA\" required></input-ui>\n </field-ui>\n </div>\n\n <!-- ── Germany ──────────────────────────────────────────\n Combined street + house number (\"Unter den Linden 77\"\n is one field, not two). PLZ before Ort matches how\n German addresses are written: \"10117 Berlin\". No\n Bundesland field — autoderivable from PLZ. -->\n <div data-address-fields=\"de\" hidden>\n <field-ui inline label=\"Straße und Hausnummer\">\n <input-ui name=\"hq_street_de\" autocomplete=\"street-address\" placeholder=\"Unter den Linden 77\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"Adresszusatz (optional)\">\n <input-ui name=\"hq_extra_de\" autocomplete=\"address-line2\" placeholder=\"c/o Empfänger\"></input-ui>\n </field-ui>\n <row-ui gap=\"2\" align=\"end\">\n <field-ui label=\"PLZ\">\n <input-ui name=\"hq_plz_de\" autocomplete=\"postal-code\" placeholder=\"10117\" pattern=\"\\d{5}\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"Ort\" grow>\n <input-ui name=\"hq_city_de\" autocomplete=\"address-level2\" placeholder=\"Berlin\" required></input-ui>\n </field-ui>\n </row-ui>\n </div>\n\n <!-- ── Japan ────────────────────────────────────────────\n Postal code first (often used to autofill prefecture\n + city via 〒-lookup services). Prefecture → city/ward →\n block-lot → building. Reverse order vs Western (broad-\n to-narrow). 7-digit postcode with hyphen \"100-0014\". -->\n <div data-address-fields=\"jp\" hidden>\n <field-ui inline label=\"郵便番号 · Postal code\">\n <input-ui name=\"hq_postcode_jp\" autocomplete=\"postal-code\" placeholder=\"100-0014\" pattern=\"\\d{3}-\\d{4}\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"都道府県 · Prefecture\">\n <select-ui name=\"hq_prefecture_jp\" value=\"13\">\n <option value=\"13\" selected>東京都 · Tokyo</option>\n <option value=\"27\">大阪府 · Osaka</option>\n <option value=\"14\">神奈川県 · Kanagawa</option>\n <option value=\"01\">北海道 · Hokkaido</option>\n <option value=\"26\">京都府 · Kyoto</option>\n <option value=\"23\">愛知県 · Aichi</option>\n <option value=\"40\">福岡県 · Fukuoka</option>\n <option value=\"other\">その他…</option>\n </select-ui>\n </field-ui>\n <field-ui inline label=\"市区町村 · City / Ward\">\n <input-ui name=\"hq_city_jp\" autocomplete=\"address-level2\" placeholder=\"千代田区\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"番地 · Block / Lot\">\n <input-ui name=\"hq_block_jp\" autocomplete=\"street-address\" placeholder=\"霞が関 1-2-3\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"建物名 · Building (optional)\">\n <input-ui name=\"hq_building_jp\" autocomplete=\"address-line2\"></input-ui>\n </field-ui>\n </div>\n\n <!-- ── Canada ───────────────────────────────────────────\n Province dropdown (13 entries — 10 provinces + 3\n territories). Postal code is alphanumeric \"A1A 1A1\"\n with optional space. Bilingual labels common in\n public-facing forms; left as English for compactness. -->\n <div data-address-fields=\"ca\" hidden>\n <field-ui inline label=\"Street address\">\n <input-ui name=\"hq_street_ca\" autocomplete=\"street-address\" placeholder=\"111 Wellington Street\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"Suite / Apt\">\n <input-ui name=\"hq_suite_ca\" autocomplete=\"address-line2\"></input-ui>\n </field-ui>\n <row-ui gap=\"2\" align=\"end\">\n <field-ui inline label=\"City\" grow>\n <input-ui name=\"hq_city_ca\" autocomplete=\"address-level2\" placeholder=\"Ottawa\" required></input-ui>\n </field-ui>\n <field-ui label=\"Province\">\n <select-ui name=\"hq_province_ca\" value=\"on\">\n <option value=\"on\" selected>ON</option>\n <option value=\"qc\">QC</option>\n <option value=\"bc\">BC</option>\n <option value=\"ab\">AB</option>\n <option value=\"mb\">MB</option>\n <option value=\"sk\">SK</option>\n <option value=\"ns\">NS</option>\n <option value=\"nb\">NB</option>\n <option value=\"nl\">NL</option>\n <option value=\"pe\">PE</option>\n <option value=\"yt\">YT</option>\n <option value=\"nt\">NT</option>\n <option value=\"nu\">NU</option>\n </select-ui>\n </field-ui>\n <field-ui label=\"Postal code\">\n <input-ui name=\"hq_postcode_ca\" autocomplete=\"postal-code\" placeholder=\"K1A 0A9\" pattern=\"[A-Za-z]\\d[A-Za-z] ?\\d[A-Za-z]\\d\" required></input-ui>\n </field-ui>\n </row-ui>\n </div>\n\n <!-- ── Other ────────────────────────────────────────────\n Free-form fallback for countries we don't yet have\n a localized layout for. Single multi-line field +\n postcode + city — covers the long tail without\n guessing at locale-specific subdivisions. -->\n <div data-address-fields=\"other\" hidden>\n <field-ui inline label=\"Full address\">\n <textarea-ui\n name=\"hq_address_other\"\n rows=\"4\"\n placeholder=\"Street, number, building, postal code, city — whatever the local convention requires.\"\n required\n ></textarea-ui>\n </field-ui>\n <field-ui inline label=\"Country name\">\n <input-ui name=\"hq_country_other\" autocomplete=\"country-name\" placeholder=\"Singapore\" required></input-ui>\n </field-ui>\n </div>\n\n <field-ui inline label=\"Phone\">\n <input-ui type=\"tel\" name=\"hq_phone\" autocomplete=\"tel\" data-address-phone placeholder=\"+1 (555) 123-4567\"></input-ui>\n </field-ui>\n\n <divider-ui></divider-ui>\n\n <row-ui justify=\"space-between\" align=\"center\">\n <text-ui strong>Billing address</text-ui>\n <check-ui checked name=\"billing_same\" label=\"Same as headquarters\"></check-ui>\n </row-ui>\n\n <alert-ui variant=\"info\" icon=\"info\">\n <span slot=\"content\">\n We'll use the headquarters address for invoicing. Uncheck \"Same as headquarters\" if your accounting team is at a different site or in a different\n country.\n </span>\n </alert-ui>\n\n <div data-reg-defer-row>\n <check-ui name=\"defer\" label=\"I'll do this later from admin → workspace → addresses\"></check-ui>\n <text-ui color=\"subtle\" size=\"sm\" data-reg-defer-hint>\n Required for invoicing — your first invoice will use a placeholder address until completed.\n </text-ui>\n </div>\n </section>",
12
12
  "source": "apps/user-flow/app/registration/address/address.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<section data-reg-form>\n <field-ui inline label=\"Card Number\">\n <input-ui name=\"card\" autocomplete=\"cc-number\" placeholder=\"1234 5678 9012 3456\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"Expiry · CVC\">\n <row-ui gap=\"2\">\n <input-ui name=\"expiry\" autocomplete=\"cc-exp\" placeholder=\"MM/YY\" grow required></input-ui>\n <input-ui name=\"cvc\" autocomplete=\"cc-csc\" placeholder=\"CVC\" grow required></input-ui>\n </row-ui>\n </field-ui>\n <field-ui inline label=\"Cardholder\">\n <input-ui name=\"cardholder\" autocomplete=\"cc-name\" placeholder=\"Jane Doe\" required></input-ui>\n </field-ui>\n\n <divider-ui></divider-ui>\n\n <field-ui inline label=\"Country\">\n <select-ui name=\"country\" value=\"us\">\n <option value=\"us\" selected>United States</option>\n <option value=\"ca\">Canada</option>\n <option value=\"gb\">United Kingdom</option>\n <option value=\"de\">Germany</option>\n <option value=\"fr\">France</option>\n <option value=\"other\">Other…</option>\n </select-ui>\n </field-ui>\n <field-ui inline label=\"Billing Address\">\n <input-ui name=\"address\" autocomplete=\"street-address\" placeholder=\"123 Main St\" required></input-ui>\n </field-ui>\n <field-ui inline label=\"City · ZIP\">\n <row-ui gap=\"2\">\n <input-ui name=\"city\" autocomplete=\"address-level2\" placeholder=\"San Francisco\" grow required></input-ui>\n <input-ui name=\"zip\" autocomplete=\"postal-code\" placeholder=\"ZIP\" grow required></input-ui>\n </row-ui>\n </field-ui>\n </section>",
12
12
  "source": "apps/user-flow/app/registration/billing/billing.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<section data-reg-form>\n <field-ui inline label=\"Company URL\">\n <input-ui name=\"url\" type=\"url\" placeholder=\"https://acme.com\" value=\"https://acme.com\" autocomplete=\"url\"></input-ui>\n </field-ui>\n\n <div data-reg-found-status>\n <icon-ui name=\"check-circle\"></icon-ui>\n <text-ui> <strong>Found 4 things</strong> on acme.com — review each below, then continue. </text-ui>\n <button-ui text=\"Re-scan\" variant=\"ghost\" size=\"sm\" type=\"button\" style=\"margin-inline-start: auto\"></button-ui>\n </div>\n\n <col-ui gap=\"2\">\n <card-ui>\n <header>\n <span slot=\"icon\"><avatar-ui icon=\"image-square\"></avatar-ui></span>\n <span slot=\"heading\">\n <row-ui gap=\"2\" align=\"center\">\n <text-ui strong>Logo</text-ui>\n <badge-ui text=\"Found\" variant=\"success\"></badge-ui>\n </row-ui>\n </span>\n <span slot=\"description\">\n <text-ui color=\"subtle\" size=\"sm\">\n Pulled <code>acme-logo-dark.svg</code> at 240×80 from the site header. Light variant inferred via auto-invert.\n </text-ui>\n </span>\n <button-ui slot=\"action\" text=\"Edit\" variant=\"ghost\" icon=\"pencil-simple\" type=\"button\" data-edit=\"logo\"></button-ui>\n </header>\n </card-ui>\n\n <card-ui>\n <header>\n <span slot=\"icon\"><avatar-ui icon=\"palette\"></avatar-ui></span>\n <span slot=\"heading\">\n <row-ui gap=\"2\" align=\"center\">\n <text-ui strong>Brand colors</text-ui>\n <badge-ui text=\"Found\" variant=\"success\"></badge-ui>\n </row-ui>\n </span>\n <span slot=\"description\">\n <text-ui color=\"subtle\" size=\"sm\">\n Primary <code>#1B5BFA</code>, accent <code>#FFC857</code>, surface <code>#0E1116</code>. Sampled from your hero, CTAs, and footer.\n </text-ui>\n </span>\n <button-ui slot=\"action\" text=\"Edit\" variant=\"ghost\" icon=\"pencil-simple\" type=\"button\" data-edit=\"colors\"></button-ui>\n </header>\n </card-ui>\n\n <card-ui>\n <header>\n <span slot=\"icon\"><avatar-ui icon=\"quotes\"></avatar-ui></span>\n <span slot=\"heading\">\n <row-ui gap=\"2\" align=\"center\">\n <text-ui strong>Tagline</text-ui>\n <badge-ui text=\"AI generated\" variant=\"warning\"></badge-ui>\n </row-ui>\n </span>\n <span slot=\"description\">\n <text-ui color=\"subtle\" size=\"sm\">\n \"Acme is the fastest way to ship infrastructure for modern teams.\" — distilled from your homepage hero + about copy.\n </text-ui>\n </span>\n <button-ui slot=\"action\" text=\"Edit\" variant=\"ghost\" icon=\"pencil-simple\" type=\"button\" data-edit=\"tagline\"></button-ui>\n </header>\n </card-ui>\n\n <card-ui>\n <header>\n <span slot=\"icon\"><avatar-ui icon=\"link\"></avatar-ui></span>\n <span slot=\"heading\">\n <row-ui gap=\"2\" align=\"center\">\n <text-ui strong>Social &amp; presence</text-ui>\n <badge-ui text=\"Found\" variant=\"success\"></badge-ui>\n </row-ui>\n </span>\n <span slot=\"description\">\n <text-ui color=\"subtle\" size=\"sm\">\n LinkedIn · Twitter · GitHub · YouTube — 4 official handles found. Slack and Discord links not detected.\n </text-ui>\n </span>\n <button-ui slot=\"action\" text=\"Edit\" variant=\"ghost\" icon=\"pencil-simple\" type=\"button\" data-edit=\"social\"></button-ui>\n </header>\n </card-ui>\n\n <card-ui>\n <header>\n <span slot=\"icon\"><avatar-ui icon=\"text-aa\"></avatar-ui></span>\n <span slot=\"heading\">\n <row-ui gap=\"2\" align=\"center\">\n <text-ui strong>Typography</text-ui>\n <badge-ui text=\"Couldn't infer\" variant=\"muted\"></badge-ui>\n </row-ui>\n </span>\n <span slot=\"description\">\n <text-ui color=\"subtle\" size=\"sm\">\n Site uses a custom hosted font. Pick a library family or upload your brand font from admin → workspace → branding.\n </text-ui>\n </span>\n <button-ui slot=\"action\" text=\"Set up\" variant=\"ghost\" icon=\"arrow-right\" icon-position=\"end\" type=\"button\" data-edit=\"typography\"></button-ui>\n </header>\n </card-ui>\n </col-ui>\n\n <div data-reg-defer-row>\n <check-ui name=\"defer\" label=\"I'll do this later from admin → workspace → branding\"></check-ui>\n <text-ui color=\"subtle\" size=\"sm\" data-reg-defer-hint> Workspace will use a generic logo and accent palette until you complete branding. </text-ui>\n </div>\n </section>",
12
12
  "source": "apps/user-flow/app/registration/brand-scrape/brand-scrape.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }
@@ -10,5 +10,5 @@
10
10
  },
11
11
  "html": "<section data-reg-form>\n <alert-ui variant=\"info\" icon=\"sparkle\">\n <span slot=\"content\"> Based on your team size (51–200) and use case (building a product), we pre-checked seven likely departments. </span>\n </alert-ui>\n\n <grid-ui columns=\"2\" gap=\"2\">\n <check-ui name=\"dept[engineering]\" checked label=\"Engineering\"></check-ui>\n <check-ui name=\"dept[product]\" checked label=\"Product\"></check-ui>\n <check-ui name=\"dept[design]\" checked label=\"Design\"></check-ui>\n <check-ui name=\"dept[sales]\" checked label=\"Sales\"></check-ui>\n <check-ui name=\"dept[marketing]\" checked label=\"Marketing\"></check-ui>\n <check-ui name=\"dept[cs]\" checked label=\"Customer Success\"></check-ui>\n <check-ui name=\"dept[ops]\" checked label=\"Operations\"></check-ui>\n <check-ui name=\"dept[finance]\" label=\"Finance\"></check-ui>\n <check-ui name=\"dept[hr]\" label=\"People / HR\"></check-ui>\n <check-ui name=\"dept[legal]\" label=\"Legal\"></check-ui>\n <check-ui name=\"dept[data]\" label=\"Data / Analytics\"></check-ui>\n <check-ui name=\"dept[security]\" label=\"Security\"></check-ui>\n </grid-ui>\n\n <divider-ui></divider-ui>\n\n <col-ui gap=\"2\">\n <text-ui strong>Custom departments</text-ui>\n <text-ui color=\"subtle\" size=\"sm\">Add anything specific to your org — e.g. \"Research\", \"Studio\", \"Foundry\".</text-ui>\n </col-ui>\n\n <row-ui gap=\"2\" align=\"end\">\n <field-ui inline label=\"Name\" grow>\n <input-ui name=\"custom_dept\" placeholder=\"e.g. Research\"></input-ui>\n </field-ui>\n <button-ui text=\"Add\" icon=\"plus\" variant=\"outline\" type=\"button\"></button-ui>\n </row-ui>\n\n <row-ui gap=\"2\">\n <tag-ui text=\"Research\"></tag-ui>\n <tag-ui text=\"Studio\"></tag-ui>\n </row-ui>\n\n <div data-reg-defer-row>\n <check-ui name=\"defer\" label=\"I'll do this later from admin → workspace → departments\"></check-ui>\n <text-ui color=\"subtle\" size=\"sm\" data-reg-defer-hint>\n Members will land in a single \"Everyone\" group until departments are configured. You can re-bucket from the directory later.\n </text-ui>\n </div>\n </section>",
12
12
  "source": "apps/user-flow/app/registration/departments/departments.contents.html",
13
- "captured_at": "2026-05-11T18:22:09.722Z"
13
+ "captured_at": "2026-05-12T13:16:54.281Z"
14
14
  }