@adia-ai/web-components 0.8.21 → 0.8.23

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 (86) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/MIGRATION.md +9 -0
  3. package/components/agent-trace/agent-trace.js +4 -1
  4. package/components/alert/alert.a2ui.json +1 -1
  5. package/components/alert/alert.css +44 -5
  6. package/components/alert/alert.yaml +8 -4
  7. package/components/canvas/canvas.js +4 -1
  8. package/components/chat-thread/chat-input.js +4 -1
  9. package/components/code/code.css +29 -26
  10. package/components/combobox/combobox.a2ui.json +1 -1
  11. package/components/combobox/combobox.class.js +14 -4
  12. package/components/combobox/combobox.css +52 -4
  13. package/components/combobox/combobox.yaml +5 -1
  14. package/components/description-list/description-list.css +9 -0
  15. package/components/drawer/drawer.css +16 -0
  16. package/components/field/field.css +4 -1
  17. package/components/list/list.css +12 -1
  18. package/components/nav-group/nav-group.class.js +45 -2
  19. package/components/nav-group/nav-group.css +11 -2
  20. package/components/progress-row/progress-row.class.js +10 -2
  21. package/components/richtext/richtext.css +7 -0
  22. package/components/select/select.a2ui.json +5 -0
  23. package/components/select/select.class.js +39 -9
  24. package/components/select/select.yaml +13 -0
  25. package/components/stat/stat.js +4 -1
  26. package/components/stepper/stepper.css +25 -20
  27. package/components/table/table.a2ui.json +15 -1
  28. package/components/table/table.class.js +14 -1
  29. package/components/table/table.css +68 -3
  30. package/components/table/table.d.ts +5 -1
  31. package/components/table/table.yaml +34 -1
  32. package/components/tabs/tab.js +4 -1
  33. package/components/tag/tag.css +15 -9
  34. package/core/provider.js +5 -1
  35. package/dist/host.min.css +1 -1
  36. package/dist/host.sheet.js +1 -1
  37. package/dist/scale.min.css +1 -1
  38. package/dist/scale.sheet.js +1 -1
  39. package/dist/theme-provider.min.js +2 -2
  40. package/dist/web-components.min.css +1 -1
  41. package/dist/web-components.min.js +93 -93
  42. package/dist/web-components.sheet.js +1 -1
  43. package/package.json +1 -1
  44. package/patterns/access-requests/access-requests.examples.html +12 -3
  45. package/patterns/admin-keys-and-export/admin-keys-and-export.examples.html +20 -5
  46. package/patterns/agent-cost/agent-cost.examples.html +12 -3
  47. package/patterns/agent-memory/agent-memory.examples.html +12 -3
  48. package/patterns/agent-prompt-library/agent-prompt-library.examples.html +12 -3
  49. package/patterns/agent-tool-call/agent-tool-call.examples.html +16 -4
  50. package/patterns/alert-dialog/alert-dialog.examples.html +12 -3
  51. package/patterns/app-nav/app-nav.examples.html +36 -9
  52. package/patterns/approvals/approvals.examples.html +14 -10
  53. package/patterns/audit-log/audit-log.examples.html +5 -2
  54. package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.html +210 -32
  55. package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.js +83 -4
  56. package/patterns/bulk-action-toolbar/bulk-action-toolbar.html +68 -0
  57. package/patterns/changelog-feed/changelog-feed.examples.html +4 -1
  58. package/patterns/chart-in-card/chart-in-card.examples.html +28 -7
  59. package/patterns/comments-and-collaboration/comments-and-collaboration.examples.html +20 -5
  60. package/patterns/conversion-funnel/conversion-funnel.examples.html +24 -15
  61. package/patterns/data-tables-inline-edit-and-tree/data-tables-inline-edit-and-tree.examples.html +15 -6
  62. package/patterns/diff-review/diff-review.examples.html +12 -3
  63. package/patterns/export-flow/export-flow.examples.html +12 -3
  64. package/patterns/filter-bar/filter-bar.examples.html +13 -4
  65. package/patterns/form-drawer/form-drawer.examples.html +15 -6
  66. package/patterns/form-system/form-system.examples.html +4 -1
  67. package/patterns/forms-conditional-and-autocomplete/forms-conditional-and-autocomplete.examples.html +12 -3
  68. package/patterns/inline-dialog/inline-dialog.examples.html +12 -3
  69. package/patterns/kanban-board/kanban-board.examples.html +4 -1
  70. package/patterns/marketing-engagement/marketing-engagement.examples.html +24 -6
  71. package/patterns/notifications-bell-and-digest/notifications-bell-and-digest.examples.html +12 -3
  72. package/patterns/permissions-matrix/permissions-matrix.examples.html +9 -3
  73. package/patterns/permissions-role-picker/permissions-role-picker.examples.html +8 -2
  74. package/patterns/permissions-sharing/permissions-sharing.examples.html +12 -3
  75. package/patterns/profile-public-and-verification/profile-public-and-verification.examples.html +16 -4
  76. package/patterns/record-detail-drawer/record-detail-drawer.examples.html +10 -4
  77. package/patterns/retention-cohort/retention-cohort.examples.html +15 -6
  78. package/patterns/search-discovery/search-discovery.examples.html +16 -4
  79. package/patterns/system-banners/system-banners.examples.html +54 -48
  80. package/patterns/timezone-selector/timezone-selector.examples.html +8 -2
  81. package/patterns/timezone-selector/timezone-selector.examples.js +3 -1
  82. package/patterns/wizard-drawer/wizard-drawer.examples.html +25 -23
  83. package/patterns/wizard-drawer/wizard-drawer.examples.js +12 -1
  84. package/styles/foundation/radius.css +2 -2
  85. package/styles/scale.css +2 -2
  86. package/styles/type/scale.css +6 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/web-components",
3
- "version": "0.8.21",
3
+ "version": "0.8.23",
4
4
  "description": "AdiaUI web components \u2014 vanilla custom elements. A2UI runtime (renderer, registry, streams, wiring) lives in @adia-ai/a2ui-runtime.",
5
5
  "type": "module",
6
6
  "types": "./index.d.ts",
@@ -24,7 +24,10 @@
24
24
  <p data-note>The standard access-denied state (cross-ref 36d) augmented with a "Request access" primary action. <code>alert-ui variant="warning"</code> carries the explanation; the CTA opens the request form.</p>
25
25
  <div data-artifact-container>
26
26
  <div data-artifact-item data-artifact-label="access denied with request">
27
- <card-ui data-chunk="access-denied-with-request" style="max-width: 480px;">
27
+ <card-ui data-chunk="access-denied-with-request" data-chunk-kind="block"
28
+ data-chunk-domain="auth"
29
+ data-chunk-description="Access-denied card — 'You don't have access to this' heading, warning alert naming the restricted resource and its owner, and a footer with Go back plus a primary Request access action."
30
+ data-chunk-keywords="access denied restricted permission locked request access owner resource warning alert forbidden gate go-back 403" style="max-width: 480px;">
28
31
  <header>
29
32
  <span slot="heading" variant="section">You don't have access to this</span>
30
33
  </header>
@@ -50,7 +53,10 @@
50
53
  <p data-note>The form the requester fills. Pre-fills the resource being requested; user picks the role they need + optional reason. Submit fires a notification to the owner.</p>
51
54
  <div data-artifact-container>
52
55
  <div data-artifact-item data-artifact-label="access request form">
53
- <card-ui data-chunk="access-request-form" style="max-width: 560px;">
56
+ <card-ui data-chunk="access-request-form" data-chunk-kind="block"
57
+ data-chunk-domain="auth"
58
+ data-chunk-description="Request-access form card — readonly resource field, required role select (viewer / commenter / editor), and an optional justification textarea; the owner is notified on submit."
59
+ data-chunk-keywords="request access form role viewer commenter editor permission justification reason resource select textarea notify owner grant" style="max-width: 560px;">
54
60
  <header>
55
61
  <span slot="heading" variant="section">Request access</span>
56
62
  <text-ui slot="description" color="subtle">Avery Chen will be notified</text-ui>
@@ -86,7 +92,10 @@
86
92
  <p data-note>The state the requester sees after submission. <code>alert-ui variant="info"</code> with the reviewer name + reasonable ETA. "Cancel request" + "View other resources" actions.</p>
87
93
  <div data-artifact-container>
88
94
  <div data-artifact-item data-artifact-label="access request pending">
89
- <card-ui data-chunk="access-request-pending" style="max-width: 480px;">
95
+ <card-ui data-chunk="access-request-pending" data-chunk-kind="block"
96
+ data-chunk-domain="auth"
97
+ data-chunk-description="Request-sent confirmation card — Pending status tag, info alert saying the owner was notified with expected response time, and footer actions to cancel the request or view other resources."
98
+ data-chunk-keywords="access request sent pending confirmation notified approve decline waiting status tag info alert cancel request email" style="max-width: 480px;">
90
99
  <header>
91
100
  <span slot="heading" variant="section">Request sent</span>
92
101
  <tag-ui slot="action" variant="warning">Pending</tag-ui>
@@ -26,7 +26,10 @@
26
26
  <p data-note>The active-keys list. Each row carries a name, prefix (last 4 chars only — never the full secret), scope tag, last-used time, and a kebab menu (Rotate / Revoke). "Create key" header action.</p>
27
27
  <div data-artifact-container>
28
28
  <div data-artifact-item data-artifact-label="api keys list">
29
- <card-ui data-chunk="api-keys-list">
29
+ <card-ui data-chunk="api-keys-list" data-chunk-kind="block"
30
+ data-chunk-domain="settings"
31
+ data-chunk-description="API keys list card — active keys as rows with key icon, masked secret and last-used time, scope tags (read / write), and a Create-key header action."
32
+ data-chunk-keywords="api keys list secret token masked scope read write rotate developer settings create revoke production credentials">
30
33
  <header>
31
34
  <span slot="heading" variant="section">API keys</span>
32
35
  <text-ui slot="description" color="subtle">3 active · last rotated 12 days ago</text-ui>
@@ -70,7 +73,10 @@
70
73
  <p data-note>The just-created key shown once. After this view closes, the secret is not retrievable; only the prefix shows in the list. Copy button + alert explaining the one-shot semantics.</p>
71
74
  <div data-artifact-container>
72
75
  <div data-artifact-item data-artifact-label="key one-time reveal">
73
- <card-ui data-chunk="api-keys-create" style="max-width: 560px;">
76
+ <card-ui data-chunk="api-keys-create" data-chunk-kind="block"
77
+ data-chunk-domain="settings"
78
+ data-chunk-description="New API key reveal card — one-time display of the freshly created key in a readonly copy field, with a warning alert that the key won't be shown again."
79
+ data-chunk-keywords="api key created new reveal copy one-time secret readonly warning show-once credentials developer settings" style="max-width: 560px;">
74
80
  <header>
75
81
  <span slot="heading" variant="section">Your new API key</span>
76
82
  <text-ui slot="description" color="subtle">Copy it now — it won't be shown again</text-ui>
@@ -101,7 +107,10 @@
101
107
  <p data-note>Endpoints + the events they subscribe to + last delivery status. Failed deliveries surface as a danger tag with a "Retry" affordance per row.</p>
102
108
  <div data-artifact-container>
103
109
  <div data-artifact-item data-artifact-label="webhooks list">
104
- <card-ui data-chunk="webhooks-list">
110
+ <card-ui data-chunk="webhooks-list" data-chunk-kind="block"
111
+ data-chunk-domain="settings"
112
+ data-chunk-description="Webhooks list card — endpoint URLs as rows with event counts, last-delivery time, and per-endpoint status tags (200 OK / failing), plus an Add-endpoint header action."
113
+ data-chunk-keywords="webhooks endpoints list url events delivery status failing 200 add integration developer settings callbacks">
105
114
  <header>
106
115
  <span slot="heading" variant="section">Webhooks</span>
107
116
  <text-ui slot="description" color="subtle">2 endpoints · 1 failing</text-ui>
@@ -138,7 +147,10 @@
138
147
  <p data-note>Compliance / portability flow. User picks scope (full workspace vs. just my data) + format, the system queues the job, an email arrives with a download link. Async, not synchronous.</p>
139
148
  <div data-artifact-container>
140
149
  <div data-artifact-item data-artifact-label="data export request">
141
- <card-ui data-chunk="data-export-request" style="max-width: 560px;">
150
+ <card-ui data-chunk="data-export-request" data-chunk-kind="block"
151
+ data-chunk-domain="data-management"
152
+ data-chunk-description="Data-export request card — scope select (just my data / entire workspace, GDPR Article 15) and format choice; the archive link arrives by email when ready."
153
+ data-chunk-keywords="data export request archive download gdpr scope workspace format json csv email compliance backup takeout" style="max-width: 560px;">
142
154
  <header>
143
155
  <span slot="heading" variant="section">Export your data</span>
144
156
  <text-ui slot="description" color="subtle">We'll email you when the archive is ready</text-ui>
@@ -180,7 +192,10 @@
180
192
  <p data-note>The user's recent export jobs. Status tags (Queued / Running / Ready / Expired). "Ready" rows show a Download button until the link expires; expired rows are still visible for audit but disabled.</p>
181
193
  <div data-artifact-container>
182
194
  <div data-artifact-item data-artifact-label="export history">
183
- <card-ui data-chunk="data-export-history">
195
+ <card-ui data-chunk="data-export-history" data-chunk-kind="block"
196
+ data-chunk-domain="data-management"
197
+ data-chunk-description="Recent exports history card — past export jobs as rows with download icon, scope and format, requested time and record count, and status tags (Running / Ready / Expired)."
198
+ data-chunk-keywords="export history recent jobs download archive status running ready expired records list gdpr audit">
184
199
  <header>
185
200
  <span slot="heading" variant="section">Recent exports</span>
186
201
  </header>
@@ -25,7 +25,10 @@
25
25
  <p data-note>Compact footer for the chat thread. Tokens + cost + duration. Uses <code>tag-ui</code> in a row; subtle text color so it doesn't compete with replies.</p>
26
26
  <div data-artifact-container>
27
27
  <div data-artifact-item data-artifact-label="inline cost indicator">
28
- <row-ui data-chunk="agent-cost-inline" gap="2" align="center" padding="2" style="max-width: 560px;">
28
+ <row-ui data-chunk="agent-cost-inline" data-chunk-kind="block"
29
+ data-chunk-domain="agent"
30
+ data-chunk-description="Inline agent-cost strip — compact tag row showing per-response cost, token count, and latency, with the model name right-aligned. Rides under an agent reply as a usage footer."
31
+ data-chunk-keywords="agent cost tokens latency model usage inline strip tags price per-response footer telemetry llm" gap="2" align="center" padding="2" style="max-width: 560px;">
29
32
  <tag-ui icon="coins" size="sm">$0.014</tag-ui>
30
33
  <tag-ui icon="hash" size="sm">2,184 tok</tag-ui>
31
34
  <tag-ui icon="timer" size="sm">3.2s</tag-ui>
@@ -41,7 +44,10 @@
41
44
  <p data-note>Full breakdown for a billing or admin view. Stat tiles for the headline numbers; <code>description-list-ui</code> for the per-channel decomposition (input / output / cache).</p>
42
45
  <div data-artifact-container>
43
46
  <div data-artifact-item data-artifact-label="cost breakdown card">
44
- <card-ui data-chunk="agent-cost-detailed" style="max-width: 560px;">
47
+ <card-ui data-chunk="agent-cost-detailed" data-chunk-kind="block"
48
+ data-chunk-domain="agent"
49
+ data-chunk-description="Agent usage breakdown card — 'Today's usage' with a 3-up stat grid (cost, tokens, calls, with trend deltas) and an inline description-list decomposing input / output / cache token spend."
50
+ data-chunk-keywords="agent usage cost tokens calls breakdown billing admin stats trend input output cache spend daily llm metering" style="max-width: 560px;">
45
51
  <header>
46
52
  <span slot="heading" variant="section">Today's usage</span>
47
53
  <text-ui slot="description" color="subtle">Apr 29 · across all sessions</text-ui>
@@ -75,7 +81,10 @@
75
81
  <p data-note>Soft warning when the user is approaching a rate-limit. <code>alert-ui variant="warning"</code> with a <code>progress-ui</code> showing remaining headroom. Action button offers upgrade or wait-time.</p>
76
82
  <div data-artifact-container>
77
83
  <div data-artifact-item data-artifact-label="rate-limit warning">
78
- <alert-ui data-chunk="agent-rate-limit" variant="warning" icon="warning" style="max-width: 560px;">
84
+ <alert-ui data-chunk="agent-rate-limit" data-chunk-kind="block"
85
+ data-chunk-domain="agent"
86
+ data-chunk-description="Rate-limit warning alert — 'Approaching token limit' with used-of-allowance text, reset countdown, a progress bar at 87%, and Wait / Upgrade plan actions."
87
+ data-chunk-keywords="rate limit token allowance quota warning alert progress reset countdown upgrade plan usage cap throttle llm" variant="warning" icon="warning" style="max-width: 560px;">
79
88
  <col-ui slot="content" gap="2">
80
89
  <text-ui strong>Approaching token limit</text-ui>
81
90
  <text-ui>You've used 870k of your 1M daily token allowance. Resets at midnight UTC (in 4h 12m).</text-ui>
@@ -25,7 +25,10 @@
25
25
  <p data-note>Read-only inventory grouped by source (user / workspace / session). Each row carries a one-line fact, source tag, and last-updated time. Click-through opens the detail view.</p>
26
26
  <div data-artifact-container>
27
27
  <div data-artifact-item data-artifact-label="memory list">
28
- <card-ui data-chunk="agent-memory-list" style="max-width: 640px;">
28
+ <card-ui data-chunk="agent-memory-list" data-chunk-kind="block"
29
+ data-chunk-domain="agent"
30
+ data-chunk-description="Agent memory list card — remembered facts as list rows with source provenance descriptions and scope tags (user / workspace), plus an Add-memory header action."
31
+ data-chunk-keywords="agent memory list facts remembered entries source provenance scope user workspace tags add personalization context" style="max-width: 640px;">
29
32
  <header>
30
33
  <span slot="heading" variant="section">Agent memory</span>
31
34
  <text-ui slot="description" color="subtle">14 entries across 3 sources</text-ui>
@@ -64,7 +67,10 @@
64
67
  <p data-note>Single-entry view. <code>description-list-ui</code> for metadata; <code>code-ui</code> for any structured payload (e.g. JSON facts). Footer carries delete + edit actions.</p>
65
68
  <div data-artifact-container>
66
69
  <div data-artifact-item data-artifact-label="memory detail">
67
- <card-ui data-chunk="agent-memory-detail" style="max-width: 560px;">
70
+ <card-ui data-chunk="agent-memory-detail" data-chunk-kind="block"
71
+ data-chunk-domain="agent"
72
+ data-chunk-description="Agent memory detail card — a single remembered fact as the heading with scope tag, and a description-list of source, first seen, last referenced, and times applied."
73
+ data-chunk-keywords="agent memory detail fact source first-seen last-referenced times-applied provenance scope workspace metadata inspect" style="max-width: 560px;">
68
74
  <header>
69
75
  <span slot="heading" variant="section">Uses OKLCH tokens, never raw hex</span>
70
76
  <tag-ui slot="action" variant="accent">workspace</tag-ui>
@@ -103,7 +109,10 @@
103
109
  <p data-note>Inline drawer pop the agent fires when proposing a memory. Three controls: a <code>textarea-ui</code> for the fact, a <code>radio-ui</code> for scope, and primary/ghost actions in the footer. Errors carry through <code>field-ui</code>'s error slot.</p>
104
110
  <div data-artifact-container>
105
111
  <div data-artifact-item data-artifact-label="memory editor">
106
- <card-ui data-chunk="agent-memory-editor" style="max-width: 560px;">
112
+ <card-ui data-chunk="agent-memory-editor" data-chunk-kind="block"
113
+ data-chunk-domain="agent"
114
+ data-chunk-description="Save-as-memory proposal card — 'Save this as a memory?' with an editable fact textarea and a scope radio group (just me / my workspace), for confirming an agent-proposed fact."
115
+ data-chunk-keywords="agent memory save proposal fact edit textarea scope radio user workspace confirm remember consent" style="max-width: 560px;">
107
116
  <header>
108
117
  <span slot="heading" variant="section">Save this as a memory?</span>
109
118
  <text-ui slot="description" color="subtle">The agent proposed a fact during this conversation.</text-ui>
@@ -25,7 +25,10 @@
25
25
  <p data-note>Full library route. <code>search-ui</code> at the top, <code>tag-ui</code> filter chips, <code>grid-ui columns="2"</code> of prompt cards. Empty state when search returns nothing.</p>
26
26
  <div data-artifact-container>
27
27
  <div data-artifact-item data-artifact-label="prompt library grid">
28
- <card-ui data-chunk="agent-prompt-library-grid" style="max-width: 720px;">
28
+ <card-ui data-chunk="agent-prompt-library-grid" data-chunk-kind="block"
29
+ data-chunk-domain="agent"
30
+ data-chunk-description="Prompt library card — search bar with filter button over a grid of saved prompt tiles (title, preview text, category tag), plus a New-prompt header action."
31
+ data-chunk-keywords="prompt library saved prompts grid search filter categories templates snippets agent reuse new-prompt tiles" style="max-width: 720px;">
29
32
  <header>
30
33
  <span slot="heading" variant="section">Prompt library</span>
31
34
  <text-ui slot="description" color="subtle">12 prompts · 4 categories</text-ui>
@@ -74,7 +77,10 @@
74
77
  <p data-note>Compact popover surface fired from a chat input slash-command (<code>/</code> or <code>Cmd+J</code>). <code>menu-ui</code> with the prompt name + first 80 characters of body as the description. Recent prompts at the top.</p>
75
78
  <div data-artifact-container>
76
79
  <div data-artifact-item data-artifact-label="prompt picker">
77
- <card-ui data-chunk="agent-prompt-picker" raw style="max-width: 420px;" data-shape="popover">
80
+ <card-ui data-chunk="agent-prompt-picker" data-chunk-kind="block"
81
+ data-chunk-domain="agent"
82
+ data-chunk-description="Prompt picker popover — Recent and Pinned groups of prompt rows (icon, title, one-line preview) for inserting a saved prompt into a chat composer."
83
+ data-chunk-keywords="prompt picker popover recent pinned insert composer saved prompts quick-select slash-command agent templates" raw style="max-width: 420px;" data-shape="popover">
78
84
  <section>
79
85
  <col-ui gap="3">
80
86
  <col-ui gap="1">
@@ -130,7 +136,10 @@
130
136
  <p data-note>The single prompt as a self-contained card. Header with name + tags; body with the full prompt text; footer with run / edit / delete. Reused inside the grid and the slash-menu detail.</p>
131
137
  <div data-artifact-container>
132
138
  <div data-artifact-item data-artifact-label="prompt card">
133
- <card-ui data-chunk="agent-prompt-card" style="max-width: 560px;">
139
+ <card-ui data-chunk="agent-prompt-card" data-chunk-kind="block"
140
+ data-chunk-domain="agent"
141
+ data-chunk-description="Single prompt card — prompt title with Pinned and category tags, the full prompt text, and usage metadata; the detail view of one library entry."
142
+ data-chunk-keywords="prompt card detail pinned category tags text template agent library entry edit run" style="max-width: 560px;">
134
143
  <header>
135
144
  <span slot="heading" variant="section">Code review</span>
136
145
  <row-ui slot="action" gap="1">
@@ -25,7 +25,10 @@
25
25
  <p data-note>In-progress invocation. <code>tone="neutral"</code> with a <code>progress-ui</code> indeterminate strip in the body. No action buttons until the call resolves.</p>
26
26
  <div data-artifact-container>
27
27
  <div data-artifact-item data-artifact-label="running tool call">
28
- <agent-artifact-ui data-chunk="agent-tool-call-running" title="search_web" kind="TOOL" icon="magnifying-glass" tone="neutral" style="max-width: 560px;">
28
+ <agent-artifact-ui data-chunk="agent-tool-call-running" data-chunk-kind="block"
29
+ data-chunk-domain="agent"
30
+ data-chunk-description="Running tool-call artifact — TOOL-kind card showing the JSON arguments and an indeterminate progress bar with 'Running…' while the call is in flight."
31
+ data-chunk-keywords="agent tool call running in-progress artifact json arguments progress indeterminate search_web live streaming" title="search_web" kind="TOOL" icon="magnifying-glass" tone="neutral" style="max-width: 560px;">
29
32
  <col-ui gap="2">
30
33
  <code-ui language="json">{ "query": "claude opus tool use latency", "max_results": 5 }</code-ui>
31
34
  <row-ui align="center" gap="2">
@@ -43,7 +46,10 @@
43
46
  <p data-note><code>tone="accent"</code> on resolution. Body shows the call args + a result preview (truncated when long). Secondary slot carries copy / open-in-new-tab actions.</p>
44
47
  <div data-artifact-container>
45
48
  <div data-artifact-item data-artifact-label="successful tool call">
46
- <agent-artifact-ui data-chunk="agent-tool-call-success" title="search_web" kind="TOOL" icon="check-circle" tone="accent" style="max-width: 560px;">
49
+ <agent-artifact-ui data-chunk="agent-tool-call-success" data-chunk-kind="block"
50
+ data-chunk-domain="agent"
51
+ data-chunk-description="Successful tool-call artifact — TOOL-kind card with query and result-count summary in an inline description list, the JSON result payload, and a Copy-result action."
52
+ data-chunk-keywords="agent tool call success result artifact json query sources copy summary completed output" title="search_web" kind="TOOL" icon="check-circle" tone="accent" style="max-width: 560px;">
47
53
  <button-ui slot="secondary" text="Copy result" icon="copy" variant="ghost" size="sm"></button-ui>
48
54
  <col-ui gap="2" style="min-width: 0;">
49
55
  <description-list-ui layout="inline" align="between">
@@ -65,7 +71,10 @@
65
71
  <p data-note><code>tone="danger"</code> with a clear next-step. The body carries the call args plus the error message in an <code>alert-ui</code>; secondary slot offers retry.</p>
66
72
  <div data-artifact-container>
67
73
  <div data-artifact-item data-artifact-label="failed tool call">
68
- <agent-artifact-ui data-chunk="agent-tool-call-error" title="fetch_invoice" kind="TOOL" icon="warning" tone="danger" style="max-width: 560px;">
74
+ <agent-artifact-ui data-chunk="agent-tool-call-error" data-chunk-kind="block"
75
+ data-chunk-domain="agent"
76
+ data-chunk-description="Failed tool-call artifact — danger-tone TOOL card with the JSON arguments, a danger alert carrying the error (404 Not Found) with a remediation hint, and a Retry action."
77
+ data-chunk-keywords="agent tool call error failed artifact 404 retry danger alert json arguments remediation exception" title="fetch_invoice" kind="TOOL" icon="warning" tone="danger" style="max-width: 560px;">
69
78
  <button-ui slot="secondary" text="Retry" icon="arrow-clockwise" variant="outline" size="sm"></button-ui>
70
79
  <col-ui gap="2" style="min-width: 0;">
71
80
  <code-ui language="json" style="min-width: 0;">{ "invoice_id": "inv_8421", "format": "pdf" }</code-ui>
@@ -86,7 +95,10 @@
86
95
  <p data-note>Default state inside a long thread — the agent has many tool calls and most don't need detail. Header carries the tool name + result count or status; body expands on click. Use <code>collapsed</code> attribute.</p>
87
96
  <div data-artifact-container>
88
97
  <div data-artifact-item data-artifact-label="collapsed tool call summary">
89
- <col-ui data-chunk="agent-tool-call-collapsed" gap="2" style="max-width: 560px;">
98
+ <col-ui data-chunk="agent-tool-call-collapsed" data-chunk-kind="block"
99
+ data-chunk-domain="agent"
100
+ data-chunk-description="Collapsed tool-call stack — multiple completed tool calls as one-line collapsed artifacts (title carries tool name plus result summary), expandable to show payloads."
101
+ data-chunk-keywords="agent tool calls collapsed stack summary expandable multiple history transcript compact list" gap="2" style="max-width: 560px;">
90
102
  <agent-artifact-ui title="search_web · 5 results · 482 ms" kind="TOOL" icon="magnifying-glass" tone="accent" collapsed>
91
103
  <code-ui language="json">[ /* result list */ ]</code-ui>
92
104
  </agent-artifact-ui>
@@ -20,7 +20,10 @@
20
20
  <div data-artifact-item data-artifact-label="delete item — simple confirm">
21
21
  <button-ui data-chunk="alert-dialog-simple-trigger" text="Delete item" variant="outline"
22
22
  onclick="document.getElementById('alert-dialog-simple').open = true"></button-ui>
23
- <modal-ui id="alert-dialog-simple" data-chunk="alert-dialog-simple" text="Delete this item?" role="alertdialog">
23
+ <modal-ui id="alert-dialog-simple" data-chunk="alert-dialog-simple" data-chunk-kind="block"
24
+ data-chunk-domain="overlay"
25
+ data-chunk-description="Simple destructive confirm dialog — 'Delete this item?' modal with cannot-be-undone body text and Cancel / danger Delete footer buttons."
26
+ data-chunk-keywords="alert dialog confirm delete destructive modal cannot-undo cancel danger permanent remove confirmation" text="Delete this item?" role="alertdialog">
24
27
  <p>This action cannot be undone. The item will be permanently removed from your workspace.</p>
25
28
  <div slot="footer" style="display:flex; gap:var(--a-space-2); justify-content:flex-end;">
26
29
  <button-ui text="Cancel" variant="ghost"
@@ -40,7 +43,10 @@
40
43
  <div data-artifact-item data-artifact-label="delete workspace — typed gate">
41
44
  <button-ui data-chunk="alert-dialog-typed-trigger" text="Delete workspace" variant="outline"
42
45
  onclick="document.getElementById('alert-dialog-typed').open = true"></button-ui>
43
- <modal-ui id="alert-dialog-typed" data-chunk="alert-dialog-typed" text='Delete workspace "acme-prod"?' role="alertdialog">
46
+ <modal-ui id="alert-dialog-typed" data-chunk="alert-dialog-typed" data-chunk-kind="block"
47
+ data-chunk-domain="overlay"
48
+ data-chunk-description="Type-to-confirm destructive dialog — delete-workspace modal where the danger button stays disabled until the user types the workspace name to confirm."
49
+ data-chunk-keywords="alert dialog type-to-confirm delete workspace destructive modal irreversible name-match disabled danger safety confirmation" text='Delete workspace "acme-prod"?' role="alertdialog">
44
50
  <col-ui gap="3">
45
51
  <p>This will permanently delete the workspace, all members, all data, and all integrations. <strong>This cannot be undone.</strong></p>
46
52
  <field-ui label='Type "acme-prod" to confirm' required>
@@ -66,7 +72,10 @@
66
72
  <div data-artifact-item data-artifact-label="unsaved changes — discard or save">
67
73
  <button-ui data-chunk="alert-dialog-unsaved-trigger" text="Close editor" variant="outline"
68
74
  onclick="document.getElementById('alert-dialog-unsaved').open = true"></button-ui>
69
- <modal-ui id="alert-dialog-unsaved" data-chunk="alert-dialog-unsaved" text="Discard unsaved changes?" role="alertdialog">
75
+ <modal-ui id="alert-dialog-unsaved" data-chunk="alert-dialog-unsaved" data-chunk-kind="block"
76
+ data-chunk-domain="overlay"
77
+ data-chunk-description="Unsaved-changes dialog — 'Discard unsaved changes?' modal with three-way footer: Cancel, outline-danger Discard, and primary Save & close."
78
+ data-chunk-keywords="alert dialog unsaved changes discard save close editor leave modal three-way confirm dirty-state" text="Discard unsaved changes?" role="alertdialog">
70
79
  <p>You have unsaved changes to this document. Leaving will lose them.</p>
71
80
  <div slot="footer" style="display:flex; gap:var(--a-space-2); justify-content:flex-end;">
72
81
  <button-ui text="Cancel" variant="ghost"
@@ -101,7 +101,10 @@
101
101
  </p>
102
102
  <div data-artifact-container>
103
103
  <div data-demo data-artifact-item data-artifact-label="groups">
104
- <nav-ui data-chunk="app-nav-groups">
104
+ <nav-ui data-chunk="app-nav-groups" data-chunk-kind="block"
105
+ data-chunk-domain="navigation"
106
+ data-chunk-description="Sidebar nav with collapsible groups — Settings group open (General selected, Security, Notifications) and a Team group with a rollup badge; groups collapse independently."
107
+ data-chunk-keywords="nav sidebar groups collapsible settings team nav-group nav-item selected badge navigation menu sections">
105
108
  <nav-group-ui icon="gear" text="Settings" open>
106
109
  <nav-item-ui text="General" value="general" selected></nav-item-ui>
107
110
  <nav-item-ui text="Security" value="security"></nav-item-ui>
@@ -126,7 +129,10 @@
126
129
  </p>
127
130
  <div data-artifact-container>
128
131
  <div data-demo data-artifact-item data-artifact-label="items">
129
- <nav-ui data-chunk="app-nav-items">
132
+ <nav-ui data-chunk="app-nav-items" data-chunk-kind="block"
133
+ data-chunk-domain="navigation"
134
+ data-chunk-description="Flat sidebar nav — icon nav items (Dashboard selected, Analytics, Documentation, Support with a count badge) with no grouping; the minimal app nav."
135
+ data-chunk-keywords="nav sidebar flat items icons dashboard analytics docs support badge selected navigation menu simple">
130
136
  <nav-item-ui icon="house" text="Dashboard" value="dashboard" selected></nav-item-ui>
131
137
  <nav-item-ui icon="chart-bar" text="Analytics" value="analytics"></nav-item-ui>
132
138
  <nav-item-ui icon="book-open" text="Documentation" value="docs"></nav-item-ui>
@@ -154,7 +160,10 @@
154
160
  </p>
155
161
  <div data-artifact-container>
156
162
  <div data-demo data-artifact-item data-artifact-label="counts">
157
- <nav-ui data-chunk="app-nav-badges-counts">
163
+ <nav-ui data-chunk="app-nav-badges-counts" data-chunk-kind="block"
164
+ data-chunk-domain="navigation"
165
+ data-chunk-description="Sidebar nav with unread-count badges — Inbox 12, Notifications 3, Mentions 1, Alerts 99+; numeric badges signal pending volume per destination."
166
+ data-chunk-keywords="nav sidebar badges counts unread inbox notifications mentions alerts numeric 99+ pending navigation menu">
158
167
  <nav-item-ui icon="tray" text="Inbox" value="inbox" badge="12" selected></nav-item-ui>
159
168
  <nav-item-ui icon="bell" text="Notifications" value="notifications" badge="3"></nav-item-ui>
160
169
  <nav-item-ui icon="envelope-open" text="Mentions" value="mentions" badge="1"></nav-item-ui>
@@ -170,7 +179,10 @@
170
179
  </p>
171
180
  <div data-artifact-container>
172
181
  <div data-demo data-artifact-item data-artifact-label="status callouts">
173
- <nav-ui data-chunk="app-nav-badges-status-callouts">
182
+ <nav-ui data-chunk="app-nav-badges-status-callouts" data-chunk-kind="block"
183
+ data-chunk-domain="navigation"
184
+ data-chunk-description="Sidebar nav with status-callout badges — AI Assistant 'New', Experiments 'Beta', Real-time sync 'Soon'; word badges flag feature maturity, not counts."
185
+ data-chunk-keywords="nav sidebar badges status new beta soon feature callout maturity experiments assistant navigation menu">
174
186
  <nav-item-ui icon="sparkle" text="AI Assistant" value="assistant" badge="New"></nav-item-ui>
175
187
  <nav-item-ui icon="flask" text="Experiments" value="experiments" badge="Beta"></nav-item-ui>
176
188
  <nav-item-ui icon="hourglass" text="Real-time sync" value="rtsync" badge="Soon"></nav-item-ui>
@@ -187,7 +199,10 @@
187
199
  </p>
188
200
  <div data-artifact-container>
189
201
  <div data-demo data-artifact-item data-artifact-label="plan tiers">
190
- <nav-ui data-chunk="app-nav-badges-plan-tiers">
202
+ <nav-ui data-chunk="app-nav-badges-plan-tiers" data-chunk-kind="block"
203
+ data-chunk-domain="navigation"
204
+ data-chunk-description="Sidebar nav with plan-tier badges — Forecasting 'Pro', Audit log 'Team', SSO 'Enterprise'; badges gate destinations by subscription tier as an upsell surface."
205
+ data-chunk-keywords="nav sidebar badges plan tiers pro team enterprise upsell gated subscription upgrade sso audit navigation">
191
206
  <nav-item-ui icon="house" text="Dashboard" value="dashboard"></nav-item-ui>
192
207
  <nav-item-ui icon="chart-line" text="Forecasting" value="forecasting" badge="Pro"></nav-item-ui>
193
208
  <nav-item-ui icon="users-three" text="Audit log" value="audit" badge="Team"></nav-item-ui>
@@ -205,7 +220,10 @@
205
220
  </p>
206
221
  <div data-artifact-container>
207
222
  <div data-demo data-artifact-item data-artifact-label="group rollup badges">
208
- <nav-ui data-chunk="app-nav-badges-group-rollup-badges">
223
+ <nav-ui data-chunk="app-nav-badges-group-rollup-badges" data-chunk-kind="block"
224
+ data-chunk-domain="navigation"
225
+ data-chunk-description="Sidebar nav with group rollup badges — Inbox group badge 14 sums its children (Unread 12, Mentions 2); Team group carries a textual '3 invites' rollup."
226
+ data-chunk-keywords="nav sidebar groups rollup badges sum children inbox unread mentions invites aggregate navigation menu">
209
227
  <nav-group-ui icon="tray" text="Inbox" badge="14" open>
210
228
  <nav-item-ui text="Unread" value="unread" badge="12" selected></nav-item-ui>
211
229
  <nav-item-ui text="Mentions" value="mentions" badge="2"></nav-item-ui>
@@ -262,7 +280,10 @@
262
280
  </p>
263
281
  <div data-artifact-container>
264
282
  <div data-demo data-artifact-item data-artifact-label="labels and dividers">
265
- <nav-ui data-chunk="app-nav-labels-and-dividers">
283
+ <nav-ui data-chunk="app-nav-labels-and-dividers" data-chunk-kind="block"
284
+ data-chunk-domain="navigation"
285
+ data-chunk-description="Sidebar nav sectioned by labels and dividers — 'Platform' label over Settings/Profile, a divider, then a 'Resources' label over Docs/Support."
286
+ data-chunk-keywords="nav sidebar labels dividers sections platform resources grouping headings navigation menu organize">
266
287
  <span data-nav-label>Platform</span>
267
288
  <nav-item-ui icon="gear" text="Settings" value="settings"></nav-item-ui>
268
289
  <nav-item-ui icon="user" text="Profile" value="profile"></nav-item-ui>
@@ -284,7 +305,10 @@
284
305
  </p>
285
306
  <div data-artifact-container>
286
307
  <div data-demo data-artifact-item data-artifact-label="spacer" data-nav-frame="md">
287
- <nav-ui data-chunk="app-nav-spacer">
308
+ <nav-ui data-chunk="app-nav-spacer" data-chunk-kind="block"
309
+ data-chunk-domain="navigation"
310
+ data-chunk-description="Sidebar nav with a spacer pushing utility items to the bottom — main items on top, flexible spacer, then a divider and Help & Feedback pinned at the foot."
311
+ data-chunk-keywords="nav sidebar spacer bottom pinned help feedback utility footer push navigation menu layout">
288
312
  <nav-item-ui icon="house" text="Home" value="home" selected></nav-item-ui>
289
313
  <nav-item-ui icon="gear" text="Settings" value="settings"></nav-item-ui>
290
314
  <span data-nav-spacer></span>
@@ -333,7 +357,10 @@
333
357
  <p>A complete navigation sidebar as used in the admin pattern:</p>
334
358
  <div data-artifact-container>
335
359
  <div data-demo data-artifact-item data-artifact-label="full example" data-nav-frame="lg">
336
- <nav-ui data-chunk="app-nav-full-example">
360
+ <nav-ui data-chunk="app-nav-full-example" data-chunk-kind="block"
361
+ data-chunk-domain="navigation"
362
+ data-chunk-description="Full sidebar nav recipe — Search item with a command-K keyboard shortcut, labeled sections with dividers, collapsible Settings group, badges, and bottom utility items combined in one nav."
363
+ data-chunk-keywords="nav sidebar full recipe search shortcut cmd-k sections groups badges dividers labels complete navigation menu app">
337
364
  <nav-item-ui icon="magnifying-glass" text="Search" value="search">
338
365
  <kbd slot="trailing">&#8984;K</kbd>
339
366
  </nav-item-ui>
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <h1>Approvals</h1>
4
4
  <div data-actions>
5
- <tag-ui size="sm">card-ui</tag-ui> <tag-ui size="sm">list-ui</tag-ui> <tag-ui size="sm">button-ui</tag-ui> <tag-ui size="sm">tag-ui</tag-ui> <tag-ui size="sm">avatar-ui</tag-ui>
5
+ <tag-ui size="sm">card-ui</tag-ui> <tag-ui size="sm">list-ui</tag-ui> <tag-ui size="sm">button-ui</tag-ui> <tag-ui size="sm">tag-ui</tag-ui>
6
6
  </div>
7
7
  </div>
8
8
  <p>The queue + detail surface for items waiting on a human to approve, reject, or request changes — expense reports, PRs, access requests, content reviews. Always asynchronous; the approver sees a list and acts on each item independently.</p>
@@ -23,7 +23,10 @@
23
23
  <p data-note>List of pending items, most-urgent first. Each row carries the requester avatar + title + amount/scope + age + a pair of approve/reject buttons. Bulk select for batch approve.</p>
24
24
  <div data-artifact-container>
25
25
  <div data-artifact-item data-artifact-label="approval queue">
26
- <card-ui data-chunk="approvals-queue">
26
+ <card-ui data-chunk="approvals-queue" data-chunk-kind="block"
27
+ data-chunk-domain="data"
28
+ data-chunk-description="Approval queue card — 'Pending your approval' list of requests, each row with requester avatar, title with amount, a High priority tag leading the requester/department/age line, and inline Reject/Approve buttons; header carries an Approve-all bulk action."
29
+ data-chunk-keywords="approvals queue pending approve reject request review workflow expense budget vendor access travel bulk high priority list rows requester avatar inbox">
27
30
  <header>
28
31
  <span slot="heading" variant="section">Pending your approval</span>
29
32
  <text-ui slot="description" color="subtle">5 items · 2 high priority</text-ui>
@@ -32,15 +35,14 @@
32
35
  <section bleed>
33
36
  <!-- Canonical list-item rows: text + slot="description" + slot="icon" +
34
37
  slot="action". The action slot promotes the row to a 3-column grid
35
- (icon | content | action) and right-aligns the action cluster, so
36
- Reject/Approve land in a consistent trailing column across every
37
- row regardless of the High badge. -->
38
+ (icon | content | action) and right-aligns the action cluster
39
+ ACTIONS ONLY (gh#539, operator ruling 2026-07-30): the priority
40
+ tag is request CONTEXT and leads the description line instead. -->
38
41
  <list-ui divider contained>
39
42
  <list-item-ui text="Q2 onboarding budget — $48,000">
40
43
  <avatar-ui slot="icon" size="sm" text="Jordan Lee"></avatar-ui>
41
- <span slot="description">Jordan Lee · Engineering · 2 hours ago</span>
44
+ <span slot="description"><tag-ui size="sm" variant="warning">High</tag-ui> Jordan Lee · Engineering · 2 hours ago</span>
42
45
  <row-ui slot="action" gap="2" align="center">
43
- <tag-ui size="sm" variant="warning">High</tag-ui>
44
46
  <button-ui text="Reject" variant="ghost" size="sm"></button-ui>
45
47
  <button-ui text="Approve" variant="primary" size="sm" icon-leading="check"></button-ui>
46
48
  </row-ui>
@@ -55,9 +57,8 @@
55
57
  </list-item-ui>
56
58
  <list-item-ui text="Access request — production database">
57
59
  <avatar-ui slot="icon" size="sm" text="Sam Park"></avatar-ui>
58
- <span slot="description">Sam Park · Data · 1 day ago</span>
60
+ <span slot="description"><tag-ui size="sm" variant="warning">High</tag-ui> Sam Park · Data · 1 day ago</span>
59
61
  <row-ui slot="action" gap="2" align="center">
60
- <tag-ui size="sm" variant="warning">High</tag-ui>
61
62
  <button-ui text="Reject" variant="ghost" size="sm"></button-ui>
62
63
  <button-ui text="Approve" variant="primary" size="sm" icon-leading="check"></button-ui>
63
64
  </row-ui>
@@ -82,7 +83,10 @@
82
83
  <p data-note>The single-item review surface. Header carries the request title + status + reviewer chain. Body shows the request data (line items / diff / metadata). Footer is a primary Approve, a secondary Reject, and a "Request changes" path for fixable issues.</p>
83
84
  <div data-artifact-container>
84
85
  <div data-artifact-item data-artifact-label="approval detail">
85
- <card-ui data-chunk="approvals-detail" style="max-width: 720px;">
86
+ <card-ui data-chunk="approvals-detail" data-chunk-kind="block"
87
+ data-chunk-domain="data"
88
+ data-chunk-description="Approval detail card — single request review surface: title with amount, submitter and age, Pending-review status tag, description-list of requester / justification / budget breakdown / reviewer chain, and a footer with Reject, Request changes, and primary Approve."
89
+ data-chunk-keywords="approval detail review request pending approve reject request-changes reviewer chain justification budget breakdown description-list footer actions workflow single-item" style="max-width: 720px;">
86
90
  <header>
87
91
  <span slot="heading" variant="section">Q2 onboarding budget — $48,000</span>
88
92
  <text-ui slot="description" color="subtle">Submitted by Jordan Lee · 2 hours ago</text-ui>
@@ -18,7 +18,10 @@
18
18
  <p data-note>Standard layout: title + filters in the header, table in a bleed section, footer carrying status + pagination. Action column uses a tag-ui colored by verb severity (success/warning/danger). Resource column uses code-ui for monospace IDs.</p>
19
19
  <div data-artifact-container>
20
20
  <div data-artifact-item data-artifact-label="audit log — admin">
21
- <card-ui data-chunk="audit-log-basic">
21
+ <card-ui data-chunk="audit-log-basic" data-chunk-kind="block"
22
+ data-chunk-domain="data"
23
+ data-chunk-description="Audit log card — admin action history with actor and action filter selects in the header and rows of who-did-what events (create / update / delete) with timestamps."
24
+ data-chunk-keywords="audit log history admin actions actor verb filter create update delete events timestamps compliance security trail">
22
25
  <header>
23
26
  <span slot="heading" variant="section">Audit log</span>
24
27
  <text-ui slot="description" color="subtle">Last 90 days · admin actions only</text-ui>
@@ -38,7 +41,7 @@
38
41
  </row-ui>
39
42
  </header>
40
43
  <section bleed>
41
- <table-ui id="audit-log-table"></table-ui>
44
+ <table-ui frameless id="audit-log-table"></table-ui>
42
45
  </section>
43
46
  <footer divider>
44
47
  <text-ui color="subtle" size="sm">Showing 8 of 247 events</text-ui>