@adia-ai/a2ui-corpus 0.6.23 → 0.6.25
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.
- package/CHANGELOG.md +24 -0
- package/chunk-embeddings.json +1 -1
- package/chunks/_index.json +1882 -134
- package/chunks/accordion-settings.json +1 -1
- package/chunks/agent-activity-feed.json +1 -1
- package/chunks/agent-canvas-shell.json +282 -1
- package/chunks/agent-command-palette-search.json +1 -1
- package/chunks/agent-reasoning-collapsed.json +1 -1
- package/chunks/agent-tool-call-result.json +1 -1
- package/chunks/agent-trace-timeline.json +1 -1
- package/chunks/ai-streaming-response.json +1 -1
- package/chunks/alert-banner.json +1 -1
- package/chunks/auth-account-deleted-actions.json +37 -1
- package/chunks/auth-account-deleted.json +152 -1
- package/chunks/auth-card-content.json +14 -1
- package/chunks/auth-card-header.json +14 -1
- package/chunks/auth-email-entry.json +1 -1
- package/chunks/auth-email-verify-confirm.json +37 -1
- package/chunks/auth-email-verify.json +141 -1
- package/chunks/auth-forbidden-actions.json +45 -1
- package/chunks/auth-forbidden.json +160 -1
- package/chunks/auth-invite-actions.json +35 -1
- package/chunks/auth-invite-team-card.json +75 -1
- package/chunks/auth-link-expired-form.json +50 -1
- package/chunks/auth-link-expired.json +163 -1
- package/chunks/auth-locked-account.json +162 -1
- package/chunks/auth-locked-recovery-options.json +47 -1
- package/chunks/auth-mfa-enrollment-submit.json +39 -1
- package/chunks/auth-mfa-enrollment.json +1 -1
- package/chunks/auth-mfa-fallback-actions.json +39 -1
- package/chunks/auth-mfa-recovery.json +48 -1
- package/chunks/auth-new-password-form.json +62 -1
- package/chunks/auth-new-password.json +1 -1
- package/chunks/auth-oauth-fallback-actions.json +38 -1
- package/chunks/auth-oauth-interstitial.json +143 -1
- package/chunks/auth-password-challenge.json +81 -1
- package/chunks/auth-password-reset-form.json +49 -1
- package/chunks/auth-password-reset.json +1 -1
- package/chunks/auth-profile-form.json +59 -1
- package/chunks/auth-profile-setup.json +162 -1
- package/chunks/auth-reset-sent.json +137 -1
- package/chunks/auth-session-expired-actions.json +38 -1
- package/chunks/auth-session-expired.json +153 -1
- package/chunks/auth-signin-card-email.json +1 -1
- package/chunks/auth-signin-card-magic-link.json +1 -1
- package/chunks/auth-signin-card-mfa.json +1 -1
- package/chunks/auth-signin-card-otp.json +1 -1
- package/chunks/auth-signin-card-password.json +1 -1
- package/chunks/auth-signin-card-recovery.json +167 -1
- package/chunks/auth-signout-actions.json +37 -1
- package/chunks/auth-signout.json +142 -1
- package/chunks/auth-signup-email-entry.json +51 -1
- package/chunks/auth-signup-entry.json +1 -1
- package/chunks/auth-signup-social-auths.json +41 -1
- package/chunks/auth-signup-verify.json +149 -1
- package/chunks/auth-social-auths.json +49 -1
- package/chunks/auth-sso-providers.json +41 -1
- package/chunks/auth-sso-required.json +160 -1
- package/chunks/auth-team-invite.json +228 -1
- package/chunks/avatar-group-overflow.json +1 -1
- package/chunks/breadcrumb-nav.json +1 -1
- package/chunks/calendar-month-view.json +1 -1
- package/chunks/card-header-with-description.json +35 -1
- package/chunks/chart-with-filter-pills.json +1 -1
- package/chunks/chat-page-shell.json +1 -1
- package/chunks/chat-streaming-surface.json +1 -1
- package/chunks/color-picker-swatches.json +1 -1
- package/chunks/command-palette.json +1 -1
- package/chunks/commerce-pricing-tiers.json +1 -1
- package/chunks/comparison-table.json +1 -1
- package/chunks/conversion-funnel-6step.json +1 -1
- package/chunks/dashboard-acquisition-panel.json +1 -1
- package/chunks/dashboard-admin-page.json +2 -2
- package/chunks/dashboard-audience-kpis.json +1 -1
- package/chunks/dashboard-audience-panel.json +1 -1
- package/chunks/dashboard-behavior-panel.json +1 -1
- package/chunks/dashboard-chart-recent.json +3 -3
- package/chunks/dashboard-cohort-retention.json +72 -1
- package/chunks/dashboard-conversion-panel.json +1 -1
- package/chunks/dashboard-country-list.json +292 -1
- package/chunks/dashboard-filter-bar.json +1 -1
- package/chunks/dashboard-funnel.json +1 -1
- package/chunks/dashboard-kpi-grid.json +1 -1
- package/chunks/dashboard-notifications-feed.json +420 -1
- package/chunks/dashboard-notifications-panel.json +1 -1
- package/chunks/dashboard-overview-panel.json +2 -2
- package/chunks/dashboard-page-header.json +1 -1
- package/chunks/dashboard-pages-table.json +75 -1
- package/chunks/dashboard-quick-actions.json +105 -1
- package/chunks/dashboard-reports-panel.json +1 -1
- package/chunks/dashboard-reports-table.json +81 -1
- package/chunks/dashboard-spark-cards.json +1 -1
- package/chunks/dashboard-storage-card.json +93 -1
- package/chunks/dashboard-tabs.json +1 -1
- package/chunks/dashboard-team-actions-storage.json +1 -1
- package/chunks/dashboard-team-list.json +322 -1
- package/chunks/dashboard-traffic-channels.json +1 -1
- package/chunks/dashboard-transactions-table.json +1 -1
- package/chunks/date-time-picker-form.json +3 -3
- package/chunks/destructive-confirm-modal.json +1 -1
- package/chunks/divider-text-label.json +1 -1
- package/chunks/doc-editor-shell.json +334 -1
- package/chunks/drawer-2fa-key.json +249 -1
- package/chunks/drawer-2fa-sms.json +233 -1
- package/chunks/drawer-2fa-totp.json +346 -2
- package/chunks/drawer-cancel-sub.json +324 -1
- package/chunks/drawer-change-plan.json +467 -1
- package/chunks/drawer-custom-roles.json +667 -2
- package/chunks/drawer-data-start.json +138 -1
- package/chunks/drawer-delete-account.json +308 -1
- package/chunks/drawer-delete-workspace.json +323 -2
- package/chunks/drawer-discord.json +428 -1
- package/chunks/drawer-figma.json +389 -1
- package/chunks/drawer-first-dashboard.json +205 -1
- package/chunks/drawer-gcal.json +451 -1
- package/chunks/drawer-github.json +556 -1
- package/chunks/drawer-invite.json +355 -2
- package/chunks/drawer-payment-method.json +1 -1
- package/chunks/drawer-report.json +556 -2
- package/chunks/drawer-revoke-session.json +270 -1
- package/chunks/drawer-role.json +157 -1
- package/chunks/drawer-slack.json +407 -1
- package/chunks/drawer-smtp.json +455 -1
- package/chunks/drawer-source.json +272 -1
- package/chunks/drawer-transaction.json +452 -2
- package/chunks/editor-code-pane.json +1 -1
- package/chunks/editor-page-shell.json +127 -1
- package/chunks/editor-preview-pane.json +1 -1
- package/chunks/empty-state-danger.json +1 -1
- package/chunks/empty-state-minimal.json +1 -1
- package/chunks/empty-state-warning.json +1 -1
- package/chunks/empty-state.json +1 -1
- package/chunks/error-404-actions.json +40 -1
- package/chunks/error-404.json +1 -1
- package/chunks/error-500-actions.json +47 -1
- package/chunks/error-500.json +1 -1
- package/chunks/error-maintenance-actions.json +39 -1
- package/chunks/error-maintenance.json +1 -1
- package/chunks/error-page-shell.json +1 -1
- package/chunks/faq-accordion.json +1 -1
- package/chunks/file-upload-dnd.json +1 -1
- package/chunks/footer-multi-column.json +3 -3
- package/chunks/footer-primary-only.json +30 -1
- package/chunks/form-page-shell.json +1 -1
- package/chunks/gallery-page-shell.json +4 -4
- package/chunks/hero-section-split.json +3 -3
- package/chunks/icon-text-row.json +45 -1
- package/chunks/image-carousel.json +1 -1
- package/chunks/image-tile.json +78 -1
- package/chunks/image-upload-preview.json +1 -1
- package/chunks/inventory-list-stock.json +1 -1
- package/chunks/kanban-board-3col.json +1 -1
- package/chunks/kanban-page-shell.json +1 -1
- package/chunks/kbd-shortcuts.json +1 -1
- package/chunks/labeled-textarea.json +1 -1
- package/chunks/leaderboard-table.json +1 -1
- package/chunks/linked-record-row.json +1 -1
- package/chunks/marketing-hero-cta.json +1 -1
- package/chunks/marketing-page-shell.json +4 -4
- package/chunks/masonry-gallery.json +3 -3
- package/chunks/member-edit-drawer.json +251 -1
- package/chunks/metadata-description-list.json +95 -1
- package/chunks/multi-step-wizard.json +1 -1
- package/chunks/notification-toast-row.json +1 -1
- package/chunks/onb-completion.json +104 -1
- package/chunks/onb-extension-install.json +114 -1
- package/chunks/onb-hero-welcome.json +53 -1
- package/chunks/onb-import-picker.json +73 -1
- package/chunks/onb-mobile-handoff.json +108 -1
- package/chunks/onb-notification-prefs.json +68 -1
- package/chunks/onb-persona-picker.json +69 -1
- package/chunks/onb-provider-tiles.json +114 -1
- package/chunks/onb-settings-review.json +234 -1
- package/chunks/onb-step-footer.json +14 -1
- package/chunks/onb-step-header.json +14 -1
- package/chunks/onb-step-progress.json +13 -1
- package/chunks/onb-step-shell.json +1 -1
- package/chunks/onb-story-pane.json +14 -1
- package/chunks/onb-tutorial-steps.json +180 -1
- package/chunks/pagination-controls.json +1 -1
- package/chunks/playground-a2ui.json +169 -1
- package/chunks/playground-app-shell.json +421 -1
- package/chunks/playground-chat.json +84 -1
- package/chunks/playground-construct-canvas.json +107 -1
- package/chunks/playground-gen-ui.json +200 -1
- package/chunks/playground-render-preview.json +287 -1
- package/chunks/playground-streams-bridge.json +353 -1
- package/chunks/playground-table-toolbar.json +20 -1
- package/chunks/popover-with-content.json +1 -1
- package/chunks/progress-tracker-milestones.json +1 -1
- package/chunks/real-time-metrics-dashboard.json +3 -3
- package/chunks/reg-address-form.json +1 -1
- package/chunks/reg-billing-card.json +1 -1
- package/chunks/reg-brand-scrape.json +324 -1
- package/chunks/reg-departments-toggle.json +246 -2
- package/chunks/reg-extended-profile.json +405 -1
- package/chunks/reg-final-done.json +357 -1
- package/chunks/reg-helpdesk-grid.json +420 -2
- package/chunks/reg-import-picker.json +116 -1
- package/chunks/reg-integrations-grid.json +280 -2
- package/chunks/reg-invite-form.json +1 -1
- package/chunks/reg-legal-entity.json +313 -1
- package/chunks/reg-org-chart-review.json +501 -1
- package/chunks/reg-profile-identity.json +166 -1
- package/chunks/reg-step-footer.json +14 -1
- package/chunks/reg-step-header.json +13 -1
- package/chunks/reg-step-progress.json +13 -1
- package/chunks/reg-step-shell.json +2 -2
- package/chunks/reg-story-pane.json +14 -1
- package/chunks/reg-success-summary.json +157 -1
- package/chunks/reg-team-size.json +142 -1
- package/chunks/reg-usecase-picker.json +89 -1
- package/chunks/reg-workspace-name.json +1 -1
- package/chunks/responsive-grid-pattern.json +71 -0
- package/chunks/responsive-kpi-grid.json +1 -1
- package/chunks/responsive-row-pattern.json +71 -0
- package/chunks/responsive-wrap-at-pattern.json +76 -0
- package/chunks/search-with-filters.json +1 -1
- package/chunks/section-with-stack.json +37 -1
- package/chunks/select-multiple-preselected.json +81 -0
- package/chunks/settings-admin-page.json +2 -2
- package/chunks/settings-appearance.json +1 -1
- package/chunks/settings-billing-plan.json +94 -1
- package/chunks/settings-general-form.json +1 -1
- package/chunks/settings-integrations.json +1 -1
- package/chunks/settings-members-invite.json +106 -1
- package/chunks/settings-notifications.json +1 -1
- package/chunks/settings-page-shell.json +1 -1
- package/chunks/settings-profile-security.json +1 -1
- package/chunks/sidebar-collapsible-nav.json +1 -1
- package/chunks/slider-range-controls.json +1 -1
- package/chunks/tabs-with-panels.json +3 -3
- package/chunks/testimonial-grid.json +3 -3
- package/chunks/text-card.json +42 -1
- package/chunks/timeline-events.json +1 -1
- package/chunks/toolbar-icons.json +1 -1
- package/chunks/toolbar-tooltips.json +1 -1
- package/chunks/user-identity-row.json +66 -1
- package/chunks/user-profile-card.json +1 -1
- package/chunks/users-table-badge.json +1 -1
- package/chunks/video-player-controls.json +1 -1
- package/package.json +1 -1
|
@@ -8,5 +8,291 @@
|
|
|
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=\"sm\" 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\": \"title\", \"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=\"sm\" 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=\"sm\" color=\"muted\" id=\"pg-surface-count\">0 surfaces</text-ui>\n <text-ui size=\"sm\" 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=\"sm\" color=\"muted\">Message log</text-ui>\n <text-ui size=\"sm\" 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
|
-
"
|
|
11
|
+
"metadata": {
|
|
12
|
+
"domain": "layout",
|
|
13
|
+
"description": "Render preview playground — live component preview panel for the gen-UI editor.",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"playground",
|
|
16
|
+
"render",
|
|
17
|
+
"preview",
|
|
18
|
+
"component",
|
|
19
|
+
"live",
|
|
20
|
+
"editor"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"captured_at": "2026-05-22T23:31:51.450Z",
|
|
24
|
+
"template": [
|
|
25
|
+
{
|
|
26
|
+
"id": "broadcast",
|
|
27
|
+
"component": "Icon",
|
|
28
|
+
"name": "broadcast"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "text",
|
|
32
|
+
"component": "Text",
|
|
33
|
+
"strong": true,
|
|
34
|
+
"textContent": "Render Preview"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "pg-status-badge",
|
|
38
|
+
"component": "Badge",
|
|
39
|
+
"size": "sm",
|
|
40
|
+
"text": "ready",
|
|
41
|
+
"variant": "default"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "row",
|
|
45
|
+
"component": "Row",
|
|
46
|
+
"align": "center",
|
|
47
|
+
"gap": "2",
|
|
48
|
+
"children": [
|
|
49
|
+
"broadcast",
|
|
50
|
+
"text",
|
|
51
|
+
"pg-status-badge"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "text-2",
|
|
56
|
+
"component": "Text",
|
|
57
|
+
"textContent": "Load example…",
|
|
58
|
+
"variant": "body"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "text-3",
|
|
62
|
+
"component": "Text",
|
|
63
|
+
"textContent": "Single surface — card + stat",
|
|
64
|
+
"variant": "body"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "text-4",
|
|
68
|
+
"component": "Text",
|
|
69
|
+
"textContent": "Streamed updates — append items",
|
|
70
|
+
"variant": "body"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "text-5",
|
|
74
|
+
"component": "Text",
|
|
75
|
+
"textContent": "Data bindings — updateDataModel",
|
|
76
|
+
"variant": "body"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "text-6",
|
|
80
|
+
"component": "Text",
|
|
81
|
+
"textContent": "Multiple surfaces",
|
|
82
|
+
"variant": "body"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "text-7",
|
|
86
|
+
"component": "Text",
|
|
87
|
+
"textContent": "Unknown component (graceful fallback)",
|
|
88
|
+
"variant": "body"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "pg-example-select",
|
|
92
|
+
"component": "ChoicePicker",
|
|
93
|
+
"placeholder": "Load example…",
|
|
94
|
+
"size": "sm",
|
|
95
|
+
"children": [
|
|
96
|
+
"text-2",
|
|
97
|
+
"text-3",
|
|
98
|
+
"text-4",
|
|
99
|
+
"text-5",
|
|
100
|
+
"text-6",
|
|
101
|
+
"text-7"
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "divider",
|
|
106
|
+
"component": "Divider",
|
|
107
|
+
"vertical": true
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "pg-btn-step",
|
|
111
|
+
"component": "Button",
|
|
112
|
+
"disabled": true,
|
|
113
|
+
"icon": "skip-forward",
|
|
114
|
+
"size": "sm",
|
|
115
|
+
"text": "Step",
|
|
116
|
+
"variant": "ghost"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"id": "pg-btn-run",
|
|
120
|
+
"component": "Button",
|
|
121
|
+
"icon": "play",
|
|
122
|
+
"size": "sm",
|
|
123
|
+
"text": "Run all",
|
|
124
|
+
"variant": "primary"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"id": "pg-btn-clear",
|
|
128
|
+
"component": "Button",
|
|
129
|
+
"icon": "trash",
|
|
130
|
+
"size": "sm",
|
|
131
|
+
"text": "Clear",
|
|
132
|
+
"variant": "ghost"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "row-2",
|
|
136
|
+
"component": "Row",
|
|
137
|
+
"align": "center",
|
|
138
|
+
"gap": "2",
|
|
139
|
+
"children": [
|
|
140
|
+
"pg-example-select",
|
|
141
|
+
"divider",
|
|
142
|
+
"pg-btn-step",
|
|
143
|
+
"pg-btn-run",
|
|
144
|
+
"pg-btn-clear"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "pg-toolbar",
|
|
149
|
+
"component": "Column",
|
|
150
|
+
"children": [
|
|
151
|
+
"row",
|
|
152
|
+
"row-2"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "text-8",
|
|
157
|
+
"component": "Text",
|
|
158
|
+
"size": "sm",
|
|
159
|
+
"weight": "medium",
|
|
160
|
+
"textContent": "A2UI message stream"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "pg-message-count",
|
|
164
|
+
"component": "Text",
|
|
165
|
+
"color": "muted",
|
|
166
|
+
"size": "sm",
|
|
167
|
+
"textContent": "0 messages"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"id": "header",
|
|
171
|
+
"component": "Header",
|
|
172
|
+
"children": [
|
|
173
|
+
"text-8",
|
|
174
|
+
"pg-message-count"
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "pg-input",
|
|
179
|
+
"component": "TextArea",
|
|
180
|
+
"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\": \"title\", \"text\": \"Hello\" }\n ]}\n]"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "warning",
|
|
184
|
+
"component": "Icon",
|
|
185
|
+
"name": "warning",
|
|
186
|
+
"size": "sm"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"id": "pg-input-error-text",
|
|
190
|
+
"component": "Text",
|
|
191
|
+
"color": "danger",
|
|
192
|
+
"size": "sm"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"id": "pg-input-error",
|
|
196
|
+
"component": "Footer",
|
|
197
|
+
"children": [
|
|
198
|
+
"warning",
|
|
199
|
+
"pg-input-error-text"
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "pg-input-pane",
|
|
204
|
+
"component": "Section",
|
|
205
|
+
"children": [
|
|
206
|
+
"header",
|
|
207
|
+
"pg-input",
|
|
208
|
+
"pg-input-error"
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "text-9",
|
|
213
|
+
"component": "Text",
|
|
214
|
+
"size": "sm",
|
|
215
|
+
"weight": "medium",
|
|
216
|
+
"textContent": "Rendered output"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"id": "pg-surface-count",
|
|
220
|
+
"component": "Text",
|
|
221
|
+
"color": "muted",
|
|
222
|
+
"size": "sm",
|
|
223
|
+
"textContent": "0 surfaces"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"id": "pg-component-count",
|
|
227
|
+
"component": "Text",
|
|
228
|
+
"color": "muted",
|
|
229
|
+
"size": "sm",
|
|
230
|
+
"textContent": "0 components"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "row-3",
|
|
234
|
+
"component": "Row",
|
|
235
|
+
"align": "center",
|
|
236
|
+
"gap": "3",
|
|
237
|
+
"children": [
|
|
238
|
+
"pg-surface-count",
|
|
239
|
+
"pg-component-count"
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"id": "header-2",
|
|
244
|
+
"component": "Header",
|
|
245
|
+
"children": [
|
|
246
|
+
"text-9",
|
|
247
|
+
"row-3"
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"id": "pg-surface",
|
|
252
|
+
"component": "Column"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "text-10",
|
|
256
|
+
"component": "Text",
|
|
257
|
+
"variant": "subsection",
|
|
258
|
+
"textContent": "Message log 0"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"id": "pg-log",
|
|
262
|
+
"component": "List"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"id": "pg-log-panel",
|
|
266
|
+
"component": "Accordion",
|
|
267
|
+
"children": [
|
|
268
|
+
"text-10",
|
|
269
|
+
"pg-log"
|
|
270
|
+
]
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"id": "pg-output-pane",
|
|
274
|
+
"component": "Section",
|
|
275
|
+
"children": [
|
|
276
|
+
"header-2",
|
|
277
|
+
"pg-surface",
|
|
278
|
+
"pg-log-panel"
|
|
279
|
+
]
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "pg-body",
|
|
283
|
+
"component": "Column",
|
|
284
|
+
"children": [
|
|
285
|
+
"pg-input-pane",
|
|
286
|
+
"pg-output-pane"
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"id": "root",
|
|
291
|
+
"component": "Column",
|
|
292
|
+
"children": [
|
|
293
|
+
"pg-toolbar",
|
|
294
|
+
"pg-body"
|
|
295
|
+
]
|
|
296
|
+
}
|
|
297
|
+
]
|
|
12
298
|
}
|
|
@@ -8,5 +8,357 @@
|
|
|
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
|
-
"
|
|
11
|
+
"metadata": {
|
|
12
|
+
"domain": "agent",
|
|
13
|
+
"description": "Streams bridge playground — LLM streaming proxy connection demo.",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"playground",
|
|
16
|
+
"streams",
|
|
17
|
+
"bridge",
|
|
18
|
+
"llm",
|
|
19
|
+
"streaming",
|
|
20
|
+
"proxy",
|
|
21
|
+
"connection"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"captured_at": "2026-05-22T23:31:51.450Z",
|
|
25
|
+
"template": [
|
|
26
|
+
{
|
|
27
|
+
"id": "plug",
|
|
28
|
+
"component": "Icon",
|
|
29
|
+
"name": "plug"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "text",
|
|
33
|
+
"component": "Text",
|
|
34
|
+
"strong": true,
|
|
35
|
+
"textContent": "Streams Bridge"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "pg-source-badge",
|
|
39
|
+
"component": "Badge",
|
|
40
|
+
"size": "sm",
|
|
41
|
+
"text": "loading…",
|
|
42
|
+
"variant": "default"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "row",
|
|
46
|
+
"component": "Row",
|
|
47
|
+
"align": "center",
|
|
48
|
+
"gap": "2",
|
|
49
|
+
"children": [
|
|
50
|
+
"plug",
|
|
51
|
+
"text",
|
|
52
|
+
"pg-source-badge"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"id": "pg-btn-refresh",
|
|
57
|
+
"component": "Button",
|
|
58
|
+
"icon": "arrows-clockwise",
|
|
59
|
+
"size": "sm",
|
|
60
|
+
"text": "Refresh",
|
|
61
|
+
"variant": "ghost"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "button",
|
|
65
|
+
"component": "Button",
|
|
66
|
+
"icon": "book-open",
|
|
67
|
+
"size": "sm",
|
|
68
|
+
"text": "Docs",
|
|
69
|
+
"variant": "ghost"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "link",
|
|
73
|
+
"component": "Link",
|
|
74
|
+
"href": "/site/getting-started/wiring",
|
|
75
|
+
"target": "_top",
|
|
76
|
+
"children": [
|
|
77
|
+
"button"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "row-2",
|
|
82
|
+
"component": "Row",
|
|
83
|
+
"gap": "2",
|
|
84
|
+
"children": [
|
|
85
|
+
"pg-btn-refresh",
|
|
86
|
+
"link"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "pg-toolbar",
|
|
91
|
+
"component": "Column",
|
|
92
|
+
"children": [
|
|
93
|
+
"row",
|
|
94
|
+
"row-2"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "text-2",
|
|
99
|
+
"component": "Text",
|
|
100
|
+
"variant": "display",
|
|
101
|
+
"textContent": "One stream, two consumers — bridged into A2UI"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "text-3",
|
|
105
|
+
"component": "Text",
|
|
106
|
+
"variant": "body",
|
|
107
|
+
"textContent": "Both tiles below subscribe to the same data-stream-id=\"rev-pg\" , fed from /site/mock/revenue.json . The left tile renders a chart-ui driven directly by the data-stream-* attribute trait — the trait writes the parsed response into the chart's .data property and re-renders. The right tile is an A2UI surface built from updateComponents messages whose props use {path: '…'} bindings; bridgeStreamAsync proxies the same stream signal into the surface's data model so those bindings resolve — no second fetch (open DevTools' Network tab and confirm only one request per refresh). The bridge piggybacks on the chart's refcount rather than holding its own; the DOM source remains the lifecycle owner."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "column",
|
|
111
|
+
"component": "Column",
|
|
112
|
+
"children": [
|
|
113
|
+
"text-2",
|
|
114
|
+
"text-3"
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "section",
|
|
119
|
+
"component": "Section",
|
|
120
|
+
"children": [
|
|
121
|
+
"column"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "pg-intro",
|
|
126
|
+
"component": "Card",
|
|
127
|
+
"children": [
|
|
128
|
+
"section"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "text-4",
|
|
133
|
+
"component": "Text",
|
|
134
|
+
"variant": "heading",
|
|
135
|
+
"textContent": "Direct via data-stream-src"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "pg-chart",
|
|
139
|
+
"component": "Chart",
|
|
140
|
+
"type": "area",
|
|
141
|
+
"x": "month",
|
|
142
|
+
"y": "revenue",
|
|
143
|
+
"data-stream-src": "/site/mock/revenue.json",
|
|
144
|
+
"data-stream-path": "data",
|
|
145
|
+
"data-stream-id": "rev-pg"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "column-2",
|
|
149
|
+
"component": "Column",
|
|
150
|
+
"children": [
|
|
151
|
+
"text-4",
|
|
152
|
+
"pg-chart"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "section-2",
|
|
157
|
+
"component": "Section",
|
|
158
|
+
"children": [
|
|
159
|
+
"column-2"
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "card",
|
|
164
|
+
"component": "Card",
|
|
165
|
+
"children": [
|
|
166
|
+
"section-2"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"id": "text-5",
|
|
171
|
+
"component": "Text",
|
|
172
|
+
"variant": "heading",
|
|
173
|
+
"textContent": "Via bridgeStreamAsync → A2UI surface"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"id": "empty-state",
|
|
177
|
+
"component": "EmptyState",
|
|
178
|
+
"description": "The bridge will populate these bindings once the fetch resolves.",
|
|
179
|
+
"heading": "Waiting for stream…",
|
|
180
|
+
"icon": "hourglass"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "column-3",
|
|
184
|
+
"component": "Column",
|
|
185
|
+
"children": [
|
|
186
|
+
"text-5",
|
|
187
|
+
"empty-state"
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"id": "section-3",
|
|
192
|
+
"component": "Section",
|
|
193
|
+
"children": [
|
|
194
|
+
"column-3"
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "card-2",
|
|
199
|
+
"component": "Card",
|
|
200
|
+
"children": [
|
|
201
|
+
"section-3"
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": "pg-grid",
|
|
206
|
+
"component": "Column",
|
|
207
|
+
"children": [
|
|
208
|
+
"card",
|
|
209
|
+
"card-2"
|
|
210
|
+
]
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "text-6",
|
|
214
|
+
"component": "Text",
|
|
215
|
+
"variant": "body",
|
|
216
|
+
"textContent": "Stream id:"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"id": "pg-status-id",
|
|
220
|
+
"component": "Code",
|
|
221
|
+
"textContent": "id:rev-pg"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"id": "column-4",
|
|
225
|
+
"component": "Column",
|
|
226
|
+
"data-pg-status-row": "",
|
|
227
|
+
"children": [
|
|
228
|
+
"text-6",
|
|
229
|
+
"pg-status-id"
|
|
230
|
+
]
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "text-7",
|
|
234
|
+
"component": "Text",
|
|
235
|
+
"variant": "body",
|
|
236
|
+
"textContent": "Stream signal:"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"id": "pg-status-signal",
|
|
240
|
+
"component": "Text",
|
|
241
|
+
"variant": "body",
|
|
242
|
+
"textContent": "—"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"id": "column-5",
|
|
246
|
+
"component": "Column",
|
|
247
|
+
"data-pg-status-row": "",
|
|
248
|
+
"children": [
|
|
249
|
+
"text-7",
|
|
250
|
+
"pg-status-signal"
|
|
251
|
+
]
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"id": "text-8",
|
|
255
|
+
"component": "Text",
|
|
256
|
+
"variant": "body",
|
|
257
|
+
"textContent": "Surface dataModel:"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"id": "pg-status-model",
|
|
261
|
+
"component": "Code",
|
|
262
|
+
"textContent": "—"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"id": "column-6",
|
|
266
|
+
"component": "Column",
|
|
267
|
+
"data-pg-status-row": "",
|
|
268
|
+
"children": [
|
|
269
|
+
"text-8",
|
|
270
|
+
"pg-status-model"
|
|
271
|
+
]
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"id": "text-9",
|
|
275
|
+
"component": "Text",
|
|
276
|
+
"variant": "body",
|
|
277
|
+
"textContent": "DOM consumer refs:"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"id": "pg-status-refs",
|
|
281
|
+
"component": "Text",
|
|
282
|
+
"variant": "body",
|
|
283
|
+
"textContent": "—"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"id": "column-7",
|
|
287
|
+
"component": "Column",
|
|
288
|
+
"data-pg-status-row": "",
|
|
289
|
+
"children": [
|
|
290
|
+
"text-9",
|
|
291
|
+
"pg-status-refs"
|
|
292
|
+
]
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"id": "text-10",
|
|
296
|
+
"component": "Text",
|
|
297
|
+
"variant": "body",
|
|
298
|
+
"textContent": "Last fetch:"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"id": "pg-status-fetched",
|
|
302
|
+
"component": "Text",
|
|
303
|
+
"variant": "body",
|
|
304
|
+
"textContent": "—"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"id": "column-8",
|
|
308
|
+
"component": "Column",
|
|
309
|
+
"data-pg-status-row": "",
|
|
310
|
+
"children": [
|
|
311
|
+
"text-10",
|
|
312
|
+
"pg-status-fetched"
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"id": "pg-status",
|
|
317
|
+
"component": "Column",
|
|
318
|
+
"children": [
|
|
319
|
+
"column-4",
|
|
320
|
+
"column-5",
|
|
321
|
+
"column-6",
|
|
322
|
+
"column-7",
|
|
323
|
+
"column-8"
|
|
324
|
+
]
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"id": "text-11",
|
|
328
|
+
"component": "Text",
|
|
329
|
+
"variant": "subsection",
|
|
330
|
+
"textContent": "Show the wiring (bridge call + A2UI messages)"
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"id": "pg-code-block",
|
|
334
|
+
"component": "Code",
|
|
335
|
+
"language": "javascript"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"id": "pg-code-panel",
|
|
339
|
+
"component": "Accordion",
|
|
340
|
+
"children": [
|
|
341
|
+
"text-11",
|
|
342
|
+
"pg-code-block"
|
|
343
|
+
]
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"id": "pg-content",
|
|
347
|
+
"component": "Column",
|
|
348
|
+
"children": [
|
|
349
|
+
"pg-intro",
|
|
350
|
+
"pg-grid",
|
|
351
|
+
"pg-status",
|
|
352
|
+
"pg-code-panel"
|
|
353
|
+
]
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"id": "root",
|
|
357
|
+
"component": "Column",
|
|
358
|
+
"children": [
|
|
359
|
+
"pg-toolbar",
|
|
360
|
+
"pg-content"
|
|
361
|
+
]
|
|
362
|
+
}
|
|
363
|
+
]
|
|
12
364
|
}
|
|
@@ -12,5 +12,24 @@
|
|
|
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
|
-
"
|
|
15
|
+
"metadata": {
|
|
16
|
+
"domain": "data",
|
|
17
|
+
"description": "Table toolbar playground — table with toolbar controls demo.",
|
|
18
|
+
"keywords": [
|
|
19
|
+
"playground",
|
|
20
|
+
"table",
|
|
21
|
+
"toolbar",
|
|
22
|
+
"search",
|
|
23
|
+
"filter",
|
|
24
|
+
"sort",
|
|
25
|
+
"demo"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"captured_at": "2026-05-22T23:31:51.450Z",
|
|
29
|
+
"template": [
|
|
30
|
+
{
|
|
31
|
+
"id": "root",
|
|
32
|
+
"component": "Column"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
16
35
|
}
|