@adia-ai/web-components 0.8.22 → 0.8.24
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 +59 -0
- package/MIGRATION.md +9 -0
- package/components/agent-questions/agent-questions.yaml +0 -2
- package/components/agent-trace/agent-trace.js +4 -1
- package/components/alert/alert.a2ui.json +1 -1
- package/components/alert/alert.class.js +5 -0
- package/components/alert/alert.css +44 -5
- package/components/alert/alert.yaml +10 -4
- package/components/calendar-grid/calendar-grid.yaml +3 -0
- package/components/canvas/canvas.js +4 -1
- package/components/card/card.css +12 -0
- package/components/chat-thread/chat-input.js +4 -1
- package/components/code/code.css +29 -26
- package/components/combobox/combobox.class.js +1 -1
- package/components/combobox/combobox.yaml +0 -1
- package/components/date-range-picker/date-range-picker.class.js +1 -1
- package/components/date-range-picker/date-range-picker.yaml +0 -1
- package/components/datetime-picker/datetime-picker.class.js +1 -1
- package/components/datetime-picker/datetime-picker.yaml +0 -1
- package/components/description-list/description-list.css +9 -0
- package/components/drawer/drawer.class.js +5 -0
- package/components/drawer/drawer.css +16 -0
- package/components/drawer/drawer.yaml +2 -0
- package/components/feed/feed.class.js +5 -0
- package/components/feed/feed.yaml +2 -0
- package/components/field/field.css +4 -1
- package/components/input/input.class.js +5 -0
- package/components/input/input.yaml +3 -0
- package/components/list/list.css +25 -5
- package/components/modal/modal.class.js +5 -0
- package/components/modal/modal.yaml +2 -0
- package/components/nav-group/nav-group.class.js +50 -2
- package/components/nav-group/nav-group.css +11 -2
- package/components/nav-group/nav-group.yaml +2 -0
- package/components/pagination/pagination.yaml +3 -0
- package/components/progress-row/progress-row.class.js +10 -2
- package/components/richtext/richtext.css +7 -0
- package/components/select/select.a2ui.json +5 -0
- package/components/select/select.class.js +27 -8
- package/components/select/select.yaml +13 -1
- package/components/stat/stat.js +4 -1
- package/components/stepper/stepper.css +25 -20
- package/components/swiper/swiper.class.js +5 -0
- package/components/swiper/swiper.yaml +3 -0
- package/components/table/table.a2ui.json +15 -1
- package/components/table/table.class.js +14 -1
- package/components/table/table.css +68 -3
- package/components/table/table.d.ts +5 -1
- package/components/table/table.yaml +34 -1
- package/components/tabs/tab.js +4 -1
- package/components/tag/tag.css +15 -9
- package/components/toolbar/toolbar.class.js +20 -0
- package/components/toolbar/toolbar.yaml +2 -0
- package/core/provider.js +5 -1
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/scale.min.css +1 -1
- package/dist/scale.sheet.js +1 -1
- package/dist/theme-provider.min.js +2 -2
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +93 -93
- package/dist/web-components.sheet.js +1 -1
- package/package.json +1 -1
- package/patterns/access-requests/access-requests.examples.html +12 -3
- package/patterns/admin-keys-and-export/admin-keys-and-export.examples.html +23 -8
- package/patterns/agent-cost/agent-cost.examples.html +12 -3
- package/patterns/agent-memory/agent-memory.examples.html +12 -3
- package/patterns/agent-prompt-library/agent-prompt-library.examples.html +12 -3
- package/patterns/agent-tool-call/agent-tool-call.examples.html +16 -4
- package/patterns/alert-dialog/alert-dialog.examples.html +12 -3
- package/patterns/app-nav/app-nav.examples.html +36 -9
- package/patterns/approvals/approvals.examples.html +14 -10
- package/patterns/audit-log/audit-log.examples.html +5 -2
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.html +210 -32
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.js +83 -4
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.html +68 -0
- package/patterns/changelog-feed/changelog-feed.examples.html +7 -4
- package/patterns/chart-in-card/chart-in-card.examples.html +28 -7
- package/patterns/comments-and-collaboration/comments-and-collaboration.examples.html +24 -9
- package/patterns/conversion-funnel/conversion-funnel.examples.html +24 -15
- package/patterns/data-tables-inline-edit-and-tree/data-tables-inline-edit-and-tree.examples.html +17 -8
- package/patterns/diff-review/diff-review.examples.html +12 -3
- package/patterns/export-flow/export-flow.examples.html +12 -3
- package/patterns/filter-bar/filter-bar.examples.html +13 -4
- package/patterns/form-drawer/form-drawer.examples.html +15 -6
- package/patterns/form-system/form-system.examples.html +4 -1
- package/patterns/forms-conditional-and-autocomplete/forms-conditional-and-autocomplete.examples.html +12 -3
- package/patterns/inline-dialog/inline-dialog.examples.html +12 -3
- package/patterns/kanban-board/kanban-board.examples.html +4 -1
- package/patterns/marketing-engagement/marketing-engagement.examples.html +32 -14
- package/patterns/notifications-bell-and-digest/notifications-bell-and-digest.examples.html +13 -4
- package/patterns/permissions-matrix/permissions-matrix.examples.html +9 -3
- package/patterns/permissions-role-picker/permissions-role-picker.examples.html +8 -2
- package/patterns/permissions-sharing/permissions-sharing.examples.html +12 -3
- package/patterns/profile-public-and-verification/profile-public-and-verification.examples.html +18 -6
- package/patterns/record-detail-drawer/record-detail-drawer.examples.html +10 -4
- package/patterns/retention-cohort/retention-cohort.examples.html +15 -6
- package/patterns/search-discovery/search-discovery.examples.html +16 -4
- package/patterns/system-banners/system-banners.examples.html +54 -48
- package/patterns/timezone-selector/timezone-selector.examples.html +8 -2
- package/patterns/timezone-selector/timezone-selector.examples.js +3 -1
- package/patterns/wizard-drawer/wizard-drawer.examples.html +25 -23
- package/patterns/wizard-drawer/wizard-drawer.examples.js +12 -1
- package/styles/foundation/radius.css +2 -2
- package/styles/scale.css +2 -2
- package/styles/type/scale.css +6 -6
|
@@ -25,10 +25,13 @@
|
|
|
25
25
|
<p data-note>The minimal hero. Centered display headline, subtitle, primary CTA + secondary "Learn more" ghost. No supporting image — works when the headline carries the weight.</p>
|
|
26
26
|
<div data-artifact-container>
|
|
27
27
|
<div data-artifact-item data-artifact-label="simple hero">
|
|
28
|
-
<card-ui data-chunk="hero-cta-simple"
|
|
28
|
+
<card-ui data-chunk="hero-cta-simple" data-chunk-kind="block"
|
|
29
|
+
data-chunk-domain="marketing"
|
|
30
|
+
data-chunk-description="Centered hero CTA — release tag, display headline, deck subhead, and a primary Get-started / ghost See-demos button pair, all center-aligned."
|
|
31
|
+
data-chunk-keywords="hero cta centered headline display deck subhead get-started buttons landing marketing banner launch" raw>
|
|
29
32
|
<section bleed>
|
|
30
33
|
<col-ui gap="3" align="center" padding="10">
|
|
31
|
-
<tag-ui size="sm" variant="
|
|
34
|
+
<tag-ui size="sm" variant="default">v0.0.27 — out today</tag-ui>
|
|
32
35
|
<text-ui variant="display" strong>Generative UI, deterministically.</text-ui>
|
|
33
36
|
<text-ui variant="deck" color="subtle">AdiaUI emits A2UI JSON the runtime renders into Light-DOM web components. No model, no surprise.</text-ui>
|
|
34
37
|
<row-ui gap="2">
|
|
@@ -47,11 +50,14 @@
|
|
|
47
50
|
<p data-note>Two-column hero. Headline + subtitle + CTA on the left, supporting visual on the right. The visual is a placeholder card here; in production it's a screenshot, animation, or video poster.</p>
|
|
48
51
|
<div data-artifact-container>
|
|
49
52
|
<div data-artifact-item data-artifact-label="split hero">
|
|
50
|
-
<card-ui data-chunk="hero-cta-split"
|
|
53
|
+
<card-ui data-chunk="hero-cta-split" data-chunk-kind="block"
|
|
54
|
+
data-chunk-domain="marketing"
|
|
55
|
+
data-chunk-description="Split hero CTA — two-column hero with tag, display headline, deck copy and CTA buttons on the left, and a product visual / proof panel on the right."
|
|
56
|
+
data-chunk-keywords="hero cta split two-column headline visual proof buttons start-free landing marketing grid feature" raw>
|
|
51
57
|
<section bleed>
|
|
52
58
|
<grid-ui columns="2" gap="6" align="center" padding="8">
|
|
53
59
|
<col-ui gap="4" align="start">
|
|
54
|
-
<tag-ui size="sm" variant="
|
|
60
|
+
<tag-ui size="sm" variant="default">For teams</tag-ui>
|
|
55
61
|
<text-ui variant="display" strong>Ship UI as fast as your model thinks.</text-ui>
|
|
56
62
|
<text-ui variant="deck" color="subtle">A2UI is a typed JSON protocol your agent emits and the runtime renders. No React rebuild for every prompt.</text-ui>
|
|
57
63
|
<row-ui gap="2">
|
|
@@ -64,7 +70,7 @@
|
|
|
64
70
|
<stat-ui label="Cost ratio" value="0.18×"></stat-ui>
|
|
65
71
|
</row-ui>
|
|
66
72
|
</col-ui>
|
|
67
|
-
<card-ui variant="
|
|
73
|
+
<card-ui variant="filled">
|
|
68
74
|
<section bleed>
|
|
69
75
|
<col-ui align="center" justify="center" padding="10">
|
|
70
76
|
<text-ui color="subtle">[ Product visual ]</text-ui>
|
|
@@ -83,7 +89,10 @@
|
|
|
83
89
|
<p data-note>Read-only input prefilled with the user's referral URL + Copy button. Below it: per-channel share buttons (email, X, LinkedIn). Reward copy describes what referrer + referee get ("$10 credit each").</p>
|
|
84
90
|
<div data-artifact-container>
|
|
85
91
|
<div data-artifact-item data-artifact-label="referral share link">
|
|
86
|
-
<card-ui data-chunk="referral-share-link"
|
|
92
|
+
<card-ui data-chunk="referral-share-link" data-chunk-kind="block"
|
|
93
|
+
data-chunk-domain="marketing"
|
|
94
|
+
data-chunk-description="Referral share card — 'Invite a friend, both get $10' with a readonly referral-link copy field and share buttons for email and social channels."
|
|
95
|
+
data-chunk-keywords="referral invite friend share link copy credit reward email social growth program" >
|
|
87
96
|
<header>
|
|
88
97
|
<span slot="heading" variant="section">Invite a friend, both get $10</span>
|
|
89
98
|
<text-ui slot="description" color="subtle">When they sign up and verify, $10 in credit lands in both your accounts.</text-ui>
|
|
@@ -111,7 +120,10 @@
|
|
|
111
120
|
<p data-note>The user's referral history. Stats grid (referrals sent / converted / credits earned), then a list of per-referral rows with avatar + status tag. Pending = invite sent, no signup; Joined = signed up, no verify; Verified = credit earned.</p>
|
|
112
121
|
<div data-artifact-container>
|
|
113
122
|
<div data-artifact-item data-artifact-label="referral status">
|
|
114
|
-
<card-ui data-chunk="referral-status"
|
|
123
|
+
<card-ui data-chunk="referral-status" data-chunk-kind="block"
|
|
124
|
+
data-chunk-domain="marketing"
|
|
125
|
+
data-chunk-description="Referral status card — earned-credit summary with a 3-up stat grid (Sent / Joined / Credit) and a list of invited friends with per-invite status tags."
|
|
126
|
+
data-chunk-keywords="referral status credit earned stats sent joined friends invites pending verified rewards tracking" >
|
|
115
127
|
<header>
|
|
116
128
|
<span slot="heading" variant="section">Your referrals</span>
|
|
117
129
|
<text-ui slot="description" color="subtle">$30 credit earned · 3 friends joined</text-ui>
|
|
@@ -142,7 +154,7 @@
|
|
|
142
154
|
<list-item-ui text="riley@example.com">
|
|
143
155
|
<avatar-ui slot="icon" size="sm" text="riley@example.com"></avatar-ui>
|
|
144
156
|
<span slot="description">Sent 1 month ago</span>
|
|
145
|
-
<tag-ui slot="action" size="sm" variant="
|
|
157
|
+
<tag-ui slot="action" size="sm" variant="default">Pending</tag-ui>
|
|
146
158
|
</list-item-ui>
|
|
147
159
|
</list-ui>
|
|
148
160
|
</col-ui>
|
|
@@ -157,7 +169,10 @@
|
|
|
157
169
|
<p data-note>Grid of earned + locked badges. Each card shows the icon, name, description, and earn-date. Earned badges carry the date as a <code>success</code> tag; locked badges show progress as a <code>muted</code> tag and live in a <code>ghost</code> card so they read as quieter without raw opacity.</p>
|
|
158
170
|
<div data-artifact-container>
|
|
159
171
|
<div data-artifact-item data-artifact-label="achievement badges">
|
|
160
|
-
<card-ui data-chunk="achievement-badges"
|
|
172
|
+
<card-ui data-chunk="achievement-badges" data-chunk-kind="block"
|
|
173
|
+
data-chunk-domain="marketing"
|
|
174
|
+
data-chunk-description="Achievement badges card — '5 of 12 unlocked' grid of badge tiles, unlocked ones with emoji icon, name and earned date, locked ones dimmed with progress hints."
|
|
175
|
+
data-chunk-keywords="achievements badges unlocked locked grid gamification streak milestones progress rewards engagement" >
|
|
161
176
|
<header>
|
|
162
177
|
<span slot="heading" variant="section">Achievements</span>
|
|
163
178
|
<text-ui slot="description" color="subtle">5 of 12 unlocked</text-ui>
|
|
@@ -200,7 +215,7 @@
|
|
|
200
215
|
<text-ui variant="display" color="subtle">🏗️</text-ui>
|
|
201
216
|
<text-ui color="subtle" strong>Builder</text-ui>
|
|
202
217
|
<text-ui variant="caption" color="subtle">Ship 10 prompts</text-ui>
|
|
203
|
-
<tag-ui size="sm" variant="
|
|
218
|
+
<tag-ui size="sm" variant="default">7 of 10</tag-ui>
|
|
204
219
|
</col-ui>
|
|
205
220
|
</section>
|
|
206
221
|
</card-ui>
|
|
@@ -210,7 +225,7 @@
|
|
|
210
225
|
<text-ui variant="display" color="subtle">🌟</text-ui>
|
|
211
226
|
<text-ui color="subtle" strong>30-day streak</text-ui>
|
|
212
227
|
<text-ui variant="caption" color="subtle">A month of daily use</text-ui>
|
|
213
|
-
<tag-ui size="sm" variant="
|
|
228
|
+
<tag-ui size="sm" variant="default">12 of 30</tag-ui>
|
|
214
229
|
</col-ui>
|
|
215
230
|
</section>
|
|
216
231
|
</card-ui>
|
|
@@ -220,7 +235,7 @@
|
|
|
220
235
|
<text-ui variant="display" color="subtle">🤝</text-ui>
|
|
221
236
|
<text-ui color="subtle" strong>Connector</text-ui>
|
|
222
237
|
<text-ui variant="caption" color="subtle">Refer 5 friends</text-ui>
|
|
223
|
-
<tag-ui size="sm" variant="
|
|
238
|
+
<tag-ui size="sm" variant="default">3 of 5</tag-ui>
|
|
224
239
|
</col-ui>
|
|
225
240
|
</section>
|
|
226
241
|
</card-ui>
|
|
@@ -236,11 +251,14 @@
|
|
|
236
251
|
<p data-note>The just-earned achievement card — usually appears as a toast or modal moment. Big icon, "You earned…" header, description, and a CTA to share or keep going. This is the dopamine hit; don't make it dismissive.</p>
|
|
237
252
|
<div data-artifact-container>
|
|
238
253
|
<div data-artifact-item data-artifact-label="achievement unlock">
|
|
239
|
-
<card-ui data-chunk="achievement-unlock"
|
|
254
|
+
<card-ui data-chunk="achievement-unlock" data-chunk-kind="block"
|
|
255
|
+
data-chunk-domain="marketing"
|
|
256
|
+
data-chunk-description="Achievement-unlocked celebration card — big emoji, 'Achievement unlocked' tag, display-size achievement name (7-day streak), and a stats-recap line, center-aligned."
|
|
257
|
+
data-chunk-keywords="achievement unlocked celebration streak emoji milestone gamification congratulations reward moment" >
|
|
240
258
|
<section>
|
|
241
259
|
<col-ui gap="3" align="center" padding="6">
|
|
242
260
|
<text-ui variant="display">🔥</text-ui>
|
|
243
|
-
<tag-ui size="sm" variant="
|
|
261
|
+
<tag-ui size="sm" variant="accent">Achievement unlocked</tag-ui>
|
|
244
262
|
<text-ui variant="display" strong>7-day streak</text-ui>
|
|
245
263
|
<text-ui color="subtle">A full week of daily use. You've shipped 14 prompts and 23 chunks since you started.</text-ui>
|
|
246
264
|
</col-ui>
|
|
@@ -26,7 +26,10 @@
|
|
|
26
26
|
<p data-note>Default state when there are no unread notifications. Uses an empty-state-ui in the menu body so the popover doesn't feel broken; "View all" footer links to the full feed.</p>
|
|
27
27
|
<div data-artifact-container>
|
|
28
28
|
<div data-artifact-item data-artifact-label="bell menu empty">
|
|
29
|
-
<card-ui data-chunk="bell-menu-empty"
|
|
29
|
+
<card-ui data-chunk="bell-menu-empty" data-chunk-kind="block"
|
|
30
|
+
data-chunk-domain="display"
|
|
31
|
+
data-chunk-description="Empty notifications menu — bell popover showing an 'All caught up' empty state with a bell-slash icon and no unread items."
|
|
32
|
+
data-chunk-keywords="notifications bell menu empty state caught-up popover zero none inbox" style="max-width: 360px;" data-shape="popover">
|
|
30
33
|
<header>
|
|
31
34
|
<text-ui slot="heading" strong>Notifications</text-ui>
|
|
32
35
|
</header>
|
|
@@ -54,11 +57,14 @@
|
|
|
54
57
|
<p data-note>Each row carries an avatar (or icon for system events), a one-line summary, a timestamp, and a small unread-dot. Clicking a row marks it read and navigates to the source. "Mark all read" + "View all activity" in the footer.</p>
|
|
55
58
|
<div data-artifact-container>
|
|
56
59
|
<div data-artifact-item data-artifact-label="bell menu with unread">
|
|
57
|
-
<card-ui data-chunk="bell-menu-unread"
|
|
60
|
+
<card-ui data-chunk="bell-menu-unread" data-chunk-kind="block"
|
|
61
|
+
data-chunk-domain="display"
|
|
62
|
+
data-chunk-description="Notifications bell menu — '3 new' header tag over notification rows (avatar or icon, message, relative time; unread emphasized) with mark-all-read and view-all footer actions."
|
|
63
|
+
data-chunk-keywords="notifications bell menu unread new rows avatar time mark-read view-all popover inbox alerts" style="max-width: 380px;" data-shape="popover">
|
|
58
64
|
<header>
|
|
59
65
|
<row-ui slot="heading" align="center" gap="2">
|
|
60
66
|
<text-ui strong>Notifications</text-ui>
|
|
61
|
-
<tag-ui size="sm" variant="
|
|
67
|
+
<tag-ui size="sm" variant="accent">3 new</tag-ui>
|
|
62
68
|
</row-ui>
|
|
63
69
|
</header>
|
|
64
70
|
<section>
|
|
@@ -125,7 +131,10 @@
|
|
|
125
131
|
<p data-note>The in-app rendering of the digest email — frequency header, "What's in this digest" summary, sectioned content. Used inside notification prefs so the user can see exactly what a daily/weekly digest will look like before opting in.</p>
|
|
126
132
|
<div data-artifact-container>
|
|
127
133
|
<div data-artifact-item data-artifact-label="email digest preview">
|
|
128
|
-
<card-ui data-chunk="digest-email-preview"
|
|
134
|
+
<card-ui data-chunk="digest-email-preview" data-chunk-kind="block"
|
|
135
|
+
data-chunk-domain="display"
|
|
136
|
+
data-chunk-description="Weekly digest preview card — grouped summary of the week's activity (mentions, updates, stats) as it will appear in the Monday email, with a Send-test header action."
|
|
137
|
+
data-chunk-keywords="digest weekly email preview summary activity grouped mentions updates send-test notifications batch" style="max-width: 640px;">
|
|
129
138
|
<header>
|
|
130
139
|
<span slot="heading" variant="section">Weekly digest preview</span>
|
|
131
140
|
<text-ui slot="description" color="subtle">This is what your Monday morning email will contain</text-ui>
|
|
@@ -23,14 +23,17 @@
|
|
|
23
23
|
<p data-note>Capability per row, role per column, <code>check-ui</code> in each cell. Built-in roles (Viewer / Member / Admin / Owner) render <code>disabled</code> — they reflect the role's permissions but can't be edited from this surface. The <em>Custom</em> column is the authoring affordance: cells there toggle freely and save on change.</p>
|
|
24
24
|
<div data-artifact-container>
|
|
25
25
|
<div data-artifact-item data-artifact-label="permission matrix grid">
|
|
26
|
-
<card-ui data-chunk="permissions-matrix-grid" data-
|
|
26
|
+
<card-ui data-chunk="permissions-matrix-grid" data-chunk-kind="block"
|
|
27
|
+
data-chunk-domain="settings"
|
|
28
|
+
data-chunk-description="Permissions matrix card — capabilities-by-role table with auto-save note and an Add-custom-role header action; each cell toggles a capability for a role."
|
|
29
|
+
data-chunk-keywords="permissions matrix roles capabilities table grid toggle custom role admin rbac access-control checkboxes" data-perm-card>
|
|
27
30
|
<header>
|
|
28
31
|
<span slot="heading" variant="section">Permissions</span>
|
|
29
32
|
<text-ui slot="description" color="subtle">Changes save automatically</text-ui>
|
|
30
33
|
<button-ui slot="action" text="Add custom role" variant="ghost" size="sm" icon-leading="plus"></button-ui>
|
|
31
34
|
</header>
|
|
32
35
|
<section bleed>
|
|
33
|
-
<table-ui id="pat-perm-matrix"></table-ui>
|
|
36
|
+
<table-ui frameless id="pat-perm-matrix"></table-ui>
|
|
34
37
|
</section>
|
|
35
38
|
<footer divider>
|
|
36
39
|
<text-ui slot="description" color="subtle" size="sm">Built-in roles are read-only. The Custom column is editable.</text-ui>
|
|
@@ -45,7 +48,10 @@
|
|
|
45
48
|
<p data-note>One card per role; <code>description-list-ui</code> with capability category as term, list of capabilities as description. Inline tag indicates whether the role is built-in or custom.</p>
|
|
46
49
|
<div data-artifact-container>
|
|
47
50
|
<div data-artifact-item data-artifact-label="role summary card">
|
|
48
|
-
<card-ui data-chunk="permissions-matrix-summary" data-
|
|
51
|
+
<card-ui data-chunk="permissions-matrix-summary" data-chunk-kind="block"
|
|
52
|
+
data-chunk-domain="settings"
|
|
53
|
+
data-chunk-description="Role summary card — a single role (Admin, Built-in, 3 members) with a description list of its capability groups and what each allows."
|
|
54
|
+
data-chunk-keywords="role summary admin built-in members capabilities description permissions detail rbac card" data-perm-summary>
|
|
49
55
|
<header>
|
|
50
56
|
<span slot="heading" variant="section">Admin</span>
|
|
51
57
|
<text-ui slot="description" color="subtle">Built-in role · 3 members</text-ui>
|
|
@@ -24,7 +24,10 @@
|
|
|
24
24
|
<p data-note>Each role gets an <code>option-card-ui</code> with name, one-line description, and (optionally) a "recommended" badge. Default selection lands on the lowest-privilege role — promote-by-decision, not by accident.</p>
|
|
25
25
|
<div data-artifact-container>
|
|
26
26
|
<div data-artifact-item data-artifact-label="rich role picker">
|
|
27
|
-
<field-ui data-chunk="permissions-role-picker-radio"
|
|
27
|
+
<field-ui data-chunk="permissions-role-picker-radio" data-chunk-kind="block"
|
|
28
|
+
data-chunk-domain="settings"
|
|
29
|
+
data-chunk-description="Role picker as option cards — Viewer / Member / Admin / Owner radio cards, each with a heading and a capability description, Admin tagged 'Recommended for leads'."
|
|
30
|
+
data-chunk-keywords="role picker option cards radio viewer member admin owner permissions capabilities choose select recommended" label="Role" hint="Members can be promoted to admin later by any owner.">
|
|
28
31
|
<col-ui gap="2">
|
|
29
32
|
<option-card-ui name="role" value="viewer" heading="Viewer" description="Can read everything; cannot edit, comment, or share."></option-card-ui>
|
|
30
33
|
<option-card-ui name="role" value="member" heading="Member" description="Can edit content they own and comment on anything." checked></option-card-ui>
|
|
@@ -43,7 +46,10 @@
|
|
|
43
46
|
<p data-note>Used inside a members table. The select replaces the static role tag on row-hover, or stays inline when the table is in edit mode. Falls back to a non-interactive <code>tag-ui</code> when the current user can't change roles.</p>
|
|
44
47
|
<div data-artifact-container>
|
|
45
48
|
<div data-artifact-item data-artifact-label="role select inline">
|
|
46
|
-
<row-ui data-chunk="permissions-role-picker-select"
|
|
49
|
+
<row-ui data-chunk="permissions-role-picker-select" data-chunk-kind="block"
|
|
50
|
+
data-chunk-domain="settings"
|
|
51
|
+
data-chunk-description="Member row with role select — avatar, name and email, and a compact role dropdown (Viewer / Member / Admin) trailing; the per-member row of a members list."
|
|
52
|
+
data-chunk-keywords="member row role select dropdown avatar email permissions change assign compact inline list" gap="3" align="center" padding="2" style="max-width: 480px;">
|
|
47
53
|
<avatar-ui size="sm" text="Kim Granlund"></avatar-ui>
|
|
48
54
|
<col-ui gap="0" grow>
|
|
49
55
|
<text-ui strong>Kim Granlund</text-ui>
|
|
@@ -25,7 +25,10 @@
|
|
|
25
25
|
<p data-note>Four scopes as <code>option-card-ui</code> in a stacked radio group: Private, Link, Organization, Public. Each shows the audience and the action the user takes after picking.</p>
|
|
26
26
|
<div data-artifact-container>
|
|
27
27
|
<div data-artifact-item data-artifact-label="visibility scope picker">
|
|
28
|
-
<field-ui data-chunk="permissions-sharing-scopes"
|
|
28
|
+
<field-ui data-chunk="permissions-sharing-scopes" data-chunk-kind="block"
|
|
29
|
+
data-chunk-domain="settings"
|
|
30
|
+
data-chunk-description="Sharing-scope picker — option cards for Private, Anyone with the link, Anyone in your workspace, and Public on the web (warning-tagged Indexable), each with an icon and consequence description."
|
|
31
|
+
data-chunk-keywords="sharing scope access private link workspace public option cards visibility permissions who-can-access indexable" label="Who can access this dashboard?">
|
|
29
32
|
<col-ui gap="2">
|
|
30
33
|
<option-card-ui name="scope" value="private" heading="Private" description="Only people you've added explicitly." icon="lock" checked></option-card-ui>
|
|
31
34
|
<option-card-ui name="scope" value="link" heading="Anyone with the link" description="No sign-in required. Link can be revoked anytime." icon="link"></option-card-ui>
|
|
@@ -44,7 +47,10 @@
|
|
|
44
47
|
<p data-note>Surfaces when the user picks Link or Public scope. Generated URL with copy button; <code>select-ui</code> for expiry; revoke button as a danger-tone secondary action.</p>
|
|
45
48
|
<div data-artifact-container>
|
|
46
49
|
<div data-artifact-item data-artifact-label="share link with expiry">
|
|
47
|
-
<card-ui data-chunk="permissions-share-link"
|
|
50
|
+
<card-ui data-chunk="permissions-share-link" data-chunk-kind="block"
|
|
51
|
+
data-chunk-domain="settings"
|
|
52
|
+
data-chunk-description="Share-link card — readonly share URL with Copy button, current scope tag, and link options (permission level select, expiry); revoke action included."
|
|
53
|
+
data-chunk-keywords="share link copy url scope anyone expiry revoke permission level readonly collaborate" style="max-width: 560px;">
|
|
48
54
|
<header>
|
|
49
55
|
<span slot="heading" variant="section">Share link</span>
|
|
50
56
|
<tag-ui slot="action" variant="accent" size="sm">Anyone with the link</tag-ui>
|
|
@@ -94,7 +100,10 @@
|
|
|
94
100
|
<p data-note>Surfaces in the Private and Org scopes. Autocomplete <code>search-ui</code> for people; per-row <code>select-ui</code> for the access role; existing-shares list below the input.</p>
|
|
95
101
|
<div data-artifact-container>
|
|
96
102
|
<div data-artifact-item data-artifact-label="add people share">
|
|
97
|
-
<card-ui data-chunk="permissions-share-people"
|
|
103
|
+
<card-ui data-chunk="permissions-share-people" data-chunk-kind="block"
|
|
104
|
+
data-chunk-domain="settings"
|
|
105
|
+
data-chunk-description="Share-with-people card — add-by-name-or-email search with a permission select beside it, over rows of people who already have access with per-person role dropdowns."
|
|
106
|
+
data-chunk-keywords="share people invite email search permission role viewer editor access list collaborate manage" style="max-width: 560px;">
|
|
98
107
|
<header>
|
|
99
108
|
<span slot="heading" variant="section">Share with people</span>
|
|
100
109
|
</header>
|
package/patterns/profile-public-and-verification/profile-public-and-verification.examples.html
CHANGED
|
@@ -27,7 +27,10 @@
|
|
|
27
27
|
<p data-note>Shareable user/team page. Header: large avatar, display name, optional verified badge, role/title, location, joined date. Body: bio, social links, stats grid (`stat-ui` × N), recent public work. The verified badge means identity-verified (16e), not "important user".</p>
|
|
28
28
|
<div data-artifact-container>
|
|
29
29
|
<div data-artifact-item data-artifact-label="public profile">
|
|
30
|
-
<card-ui data-chunk="profile-public"
|
|
30
|
+
<card-ui data-chunk="profile-public" data-chunk-kind="block"
|
|
31
|
+
data-chunk-domain="display"
|
|
32
|
+
data-chunk-description="Public profile card — large avatar, name with Verified seal tag, handle and bio, follower/following stats, skill tags, and Follow / Message actions."
|
|
33
|
+
data-chunk-keywords="profile public avatar verified bio handle stats followers skills tags follow message social card identity" style="max-width: 720px;">
|
|
31
34
|
<section>
|
|
32
35
|
<col-ui gap="4">
|
|
33
36
|
<row-ui gap="4" align="start">
|
|
@@ -35,7 +38,7 @@
|
|
|
35
38
|
<col-ui gap="1" grow>
|
|
36
39
|
<row-ui gap="2" align="center">
|
|
37
40
|
<text-ui strong size="lg">Kim Granlund</text-ui>
|
|
38
|
-
<tag-ui size="sm" variant="
|
|
41
|
+
<tag-ui size="sm" variant="accent" icon-leading="seal-check">Verified</tag-ui>
|
|
39
42
|
</row-ui>
|
|
40
43
|
<text-ui color="subtle">Founder · AdiaUI · Reykjavík, IS</text-ui>
|
|
41
44
|
<text-ui>Building the AdiaUI web-components library and the A2UI generative-UI runtime. Previously at Construct, before that at Modular.</text-ui>
|
|
@@ -86,7 +89,10 @@
|
|
|
86
89
|
<p data-note>The progress indicator across the verification flow. Steps: Personal info → Document upload → Selfie → Review. Uses <code>stepper-ui</code> with completed states. Each step is a separate page (or drawer step), not a single long form.</p>
|
|
87
90
|
<div data-artifact-container>
|
|
88
91
|
<div data-artifact-item data-artifact-label="verification stepper">
|
|
89
|
-
<card-ui data-chunk="verification-stepper"
|
|
92
|
+
<card-ui data-chunk="verification-stepper" data-chunk-kind="block"
|
|
93
|
+
data-chunk-domain="auth"
|
|
94
|
+
data-chunk-description="Identity-verification stepper card — 'Verify your identity' with a horizontal stepper (Personal info / Document / Review) showing progress through the KYC flow."
|
|
95
|
+
data-chunk-keywords="verification identity stepper kyc personal-info document review progress steps payouts compliance" style="max-width: 720px;">
|
|
90
96
|
<header>
|
|
91
97
|
<span slot="heading" variant="section">Verify your identity</span>
|
|
92
98
|
<text-ui slot="description" color="subtle">Required for payouts and agent-driven transactions over $1,000</text-ui>
|
|
@@ -109,7 +115,10 @@
|
|
|
109
115
|
<p data-note>The document-capture step. <code>upload-ui</code> with `accept="image/*,.pdf"`, hint about supported formats, and security copy explaining what happens to the file. Front + back uploads for ID cards.</p>
|
|
110
116
|
<div data-artifact-container>
|
|
111
117
|
<div data-artifact-item data-artifact-label="document upload">
|
|
112
|
-
<card-ui data-chunk="verification-document-upload"
|
|
118
|
+
<card-ui data-chunk="verification-document-upload" data-chunk-kind="block"
|
|
119
|
+
data-chunk-domain="auth"
|
|
120
|
+
data-chunk-description="ID document upload card — document-type select (passport / driver's license / national ID) and front/back upload dropzones with acceptance hints."
|
|
121
|
+
data-chunk-keywords="verification document upload id passport license dropzone front back kyc identity file government" style="max-width: 640px;">
|
|
113
122
|
<header>
|
|
114
123
|
<span slot="heading" variant="section">Upload your government-issued ID</span>
|
|
115
124
|
<text-ui slot="description" color="subtle">Passport, driver's license, or national ID card</text-ui>
|
|
@@ -147,7 +156,10 @@
|
|
|
147
156
|
<p data-note>The post-submission states the user sees while the system reviews. Three flavors: pending review (clock), verified (seal-check primary), rejected (warning). Each is a card-ui with status alert + next-action.</p>
|
|
148
157
|
<div data-artifact-container>
|
|
149
158
|
<div data-artifact-item data-artifact-label="verification pending">
|
|
150
|
-
<card-ui data-chunk="verification-status"
|
|
159
|
+
<card-ui data-chunk="verification-status" data-chunk-kind="block"
|
|
160
|
+
data-chunk-domain="auth"
|
|
161
|
+
data-chunk-description="Verification-submitted status card — info alert stating the review window (within 1 business day) and that email follows on approval or if more info is needed."
|
|
162
|
+
data-chunk-keywords="verification submitted status under-review pending email kyc identity waiting alert info" style="max-width: 480px;">
|
|
151
163
|
<header>
|
|
152
164
|
<span slot="heading" variant="section">Verification submitted</span>
|
|
153
165
|
</header>
|
|
@@ -166,7 +178,7 @@
|
|
|
166
178
|
<header>
|
|
167
179
|
<span slot="heading" variant="section">
|
|
168
180
|
You're verified
|
|
169
|
-
<tag-ui size="sm" variant="
|
|
181
|
+
<tag-ui size="sm" variant="accent" icon-leading="seal-check">Verified</tag-ui>
|
|
170
182
|
</span>
|
|
171
183
|
</header>
|
|
172
184
|
<section>
|
|
@@ -22,8 +22,11 @@
|
|
|
22
22
|
<p data-note>Identity in the header, key/value properties in the body, primary action in the footer.</p>
|
|
23
23
|
<div data-artifact-container>
|
|
24
24
|
<div data-artifact-item data-artifact-label="simple detail">
|
|
25
|
-
<button-ui
|
|
26
|
-
<drawer-ui
|
|
25
|
+
<button-ui text="View contact" icon="user" variant="outline" onclick="this.nextElementSibling.open=true"></button-ui>
|
|
26
|
+
<drawer-ui data-chunk="record-detail-drawer-simple-detail" data-chunk-kind="block"
|
|
27
|
+
data-chunk-domain="data"
|
|
28
|
+
data-chunk-description="Record detail drawer — contact inspector with avatar, name, company and Active badge in the header, and a description-list body of the record's fields."
|
|
29
|
+
data-chunk-keywords="record detail drawer contact inspector avatar company badge fields description-list side panel view crm" side="right" size="md">
|
|
27
30
|
<header slot="header">
|
|
28
31
|
<row-ui gap="2" align="center" grow>
|
|
29
32
|
<avatar-ui text="Olivia Martin" size="md"></avatar-ui>
|
|
@@ -61,8 +64,11 @@
|
|
|
61
64
|
<p data-note>Tabs sit directly under the header so switching views doesn't require scrolling. Each tab's panel scrolls independently inside the body.</p>
|
|
62
65
|
<div data-artifact-container>
|
|
63
66
|
<div data-artifact-item data-artifact-label="tabbed detail">
|
|
64
|
-
<button-ui
|
|
65
|
-
<drawer-ui
|
|
67
|
+
<button-ui text="Open issue" icon="bug" variant="outline" onclick="this.nextElementSibling.open=true"></button-ui>
|
|
68
|
+
<drawer-ui data-chunk="record-detail-drawer-tabbed-detail" data-chunk-kind="block"
|
|
69
|
+
data-chunk-domain="data"
|
|
70
|
+
data-chunk-description="Tabbed record detail drawer — issue inspector with id badge, title, and status/priority badges in the header, and tabs (Details / Activity / Comments) organizing the body."
|
|
71
|
+
data-chunk-keywords="record detail drawer tabbed issue inspector badges status priority tabs activity comments side panel tracker" side="right" size="lg">
|
|
66
72
|
<header slot="header">
|
|
67
73
|
<col-ui gap="1" grow>
|
|
68
74
|
<row-ui gap="2" align="center">
|
|
@@ -25,13 +25,16 @@
|
|
|
25
25
|
<p data-note>Each week-column uses the same <code>formatPct</code> renderer, which wraps the number in a <code>badge-ui</code> whose variant is keyed to three buckets: ≥60% success, 30–60% warning, <30% muted. Null values render blank so partial cohorts don't force fake zeros.</p>
|
|
26
26
|
<div data-artifact-container>
|
|
27
27
|
<div data-artifact-item data-artifact-label="retention by signup week">
|
|
28
|
-
<card-ui data-chunk="retention-cohort-default-retention"
|
|
28
|
+
<card-ui data-chunk="retention-cohort-default-retention" data-chunk-kind="block"
|
|
29
|
+
data-chunk-domain="dashboard"
|
|
30
|
+
data-chunk-description="Retention cohort table card — 'Retention by signup week' heatmap-style table of % still active in week N per cohort row."
|
|
31
|
+
data-chunk-keywords="retention cohort table heatmap signup week active percentage analytics churn matrix">
|
|
29
32
|
<header>
|
|
30
33
|
<h3>Retention by signup week</h3>
|
|
31
34
|
<text-ui slot="description" color="subtle">% of users still active in week N</text-ui>
|
|
32
35
|
</header>
|
|
33
36
|
<section bleed>
|
|
34
|
-
<table-ui id="pat-retention-default"></table-ui>
|
|
37
|
+
<table-ui frameless id="pat-retention-default"></table-ui>
|
|
35
38
|
</section>
|
|
36
39
|
</card-ui>
|
|
37
40
|
</div>
|
|
@@ -43,13 +46,16 @@
|
|
|
43
46
|
<p data-note>For first-time viewers, pair the table with a tiny legend in the card footer so the buckets are decoded. The legend itself is three <code>badge-ui</code>s — same component the cells use — keeping the visual vocabulary tight.</p>
|
|
44
47
|
<div data-artifact-container>
|
|
45
48
|
<div data-artifact-item data-artifact-label="retention with legend">
|
|
46
|
-
<card-ui data-chunk="retention-cohort-with-legend"
|
|
49
|
+
<card-ui data-chunk="retention-cohort-with-legend" data-chunk-kind="block"
|
|
50
|
+
data-chunk-domain="dashboard"
|
|
51
|
+
data-chunk-description="Retention cohort table with legend footer — the cohort heatmap table plus a divider footer explaining the color scale and reading direction."
|
|
52
|
+
data-chunk-keywords="retention cohort table legend footer color scale heatmap signup week analytics explain">
|
|
47
53
|
<header>
|
|
48
54
|
<h3>Retention by signup week</h3>
|
|
49
55
|
<text-ui slot="description" color="subtle">Percent of the cohort still active N weeks after signup</text-ui>
|
|
50
56
|
</header>
|
|
51
57
|
<section bleed>
|
|
52
|
-
<table-ui id="pat-retention-legend"></table-ui>
|
|
58
|
+
<table-ui frameless id="pat-retention-legend"></table-ui>
|
|
53
59
|
</section>
|
|
54
60
|
<footer divider>
|
|
55
61
|
<small slot="description">Retention buckets:</small>
|
|
@@ -71,7 +77,10 @@
|
|
|
71
77
|
<p data-note>When the cohort table is the only chart in a section, prepend a stat pair for the most important numbers — W4 (early signal) and W12 (sustained retention). Stops users having to scan every row to answer "is this healthy?"</p>
|
|
72
78
|
<div data-artifact-container>
|
|
73
79
|
<div data-artifact-item data-artifact-label="retention with stats">
|
|
74
|
-
<card-ui data-chunk="retention-cohort-stat-pair"
|
|
80
|
+
<card-ui data-chunk="retention-cohort-stat-pair" data-chunk-kind="block"
|
|
81
|
+
data-chunk-domain="dashboard"
|
|
82
|
+
data-chunk-description="Retention stat pair — two side-by-side stat cards (week-1 and week-6 retention with deltas) summarizing the cohort table's headline numbers."
|
|
83
|
+
data-chunk-keywords="retention stats pair week-1 week-6 delta summary cards cohort headline analytics">
|
|
75
84
|
<header>
|
|
76
85
|
<h3>Retention</h3>
|
|
77
86
|
<text-ui slot="description" color="subtle">New signups · rolling 6-week view</text-ui>
|
|
@@ -91,7 +100,7 @@
|
|
|
91
100
|
</grid-ui>
|
|
92
101
|
</section>
|
|
93
102
|
<section bleed>
|
|
94
|
-
<table-ui id="pat-retention-stats"></table-ui>
|
|
103
|
+
<table-ui frameless id="pat-retention-stats"></table-ui>
|
|
95
104
|
</section>
|
|
96
105
|
</card-ui>
|
|
97
106
|
</div>
|
|
@@ -24,7 +24,10 @@
|
|
|
24
24
|
<p data-note>Flat ranked list. Each row carries a title, snippet, meta (author / date / type), and an optional trailing action. <code>list-ui</code> + <code>list-item-ui</code> with <code>tag-ui</code> for the type.</p>
|
|
25
25
|
<div data-artifact-container>
|
|
26
26
|
<div data-artifact-item data-artifact-label="search results list">
|
|
27
|
-
<card-ui data-chunk="search-results-list"
|
|
27
|
+
<card-ui data-chunk="search-results-list" data-chunk-kind="block"
|
|
28
|
+
data-chunk-domain="data"
|
|
29
|
+
data-chunk-description="Search results list card — result-count header ('42 results for …', sorted by relevance with timing) over rows of title plus matched-snippet descriptions."
|
|
30
|
+
data-chunk-keywords="search results list count relevance snippet matches query rows discovery find">
|
|
28
31
|
<header>
|
|
29
32
|
<span slot="heading" variant="section">42 results for "OKLCH tokens"</span>
|
|
30
33
|
<text-ui slot="description" color="subtle">Sorted by relevance · 0.18s</text-ui>
|
|
@@ -63,7 +66,10 @@
|
|
|
63
66
|
<p data-note>Sectioned by type when the catalog is heterogeneous (Documents / People / Projects). Each group shows top 3–5; "See all in {group}" links to a filtered view.</p>
|
|
64
67
|
<div data-artifact-container>
|
|
65
68
|
<div data-artifact-item data-artifact-label="grouped search results">
|
|
66
|
-
<card-ui data-chunk="search-results-grouped"
|
|
69
|
+
<card-ui data-chunk="search-results-grouped" data-chunk-kind="block"
|
|
70
|
+
data-chunk-domain="data"
|
|
71
|
+
data-chunk-description="Grouped search results card — one query across entity groups (People · Documents · Projects), each group with a subtle count header band over its result rows."
|
|
72
|
+
data-chunk-keywords="search results grouped entities people documents projects sections count global omnisearch discovery" style="max-width: 640px;">
|
|
67
73
|
<header>
|
|
68
74
|
<span slot="heading" variant="section">"kim"</span>
|
|
69
75
|
<text-ui slot="description" color="subtle">Across people, documents, and projects</text-ui>
|
|
@@ -135,7 +141,10 @@
|
|
|
135
141
|
<p data-note>Popover that appears when the search input is focused but empty. Recent queries with most-recent-first ordering, a "Clear" action in the footer. Each row reruns the query on click; trailing icon dismisses a single entry.</p>
|
|
136
142
|
<div data-artifact-container>
|
|
137
143
|
<div data-artifact-item data-artifact-label="recent searches menu">
|
|
138
|
-
<card-ui data-chunk="search-recents-menu"
|
|
144
|
+
<card-ui data-chunk="search-recents-menu" data-chunk-kind="block"
|
|
145
|
+
data-chunk-domain="data"
|
|
146
|
+
data-chunk-description="Recent searches menu — 'Recent' list of past queries with clock icons and per-row dismiss buttons, shown before the user types."
|
|
147
|
+
data-chunk-keywords="search recent history queries clock dismiss menu suggestions empty-query discovery" style="max-width: 360px;">
|
|
139
148
|
<header>
|
|
140
149
|
<span slot="heading" variant="section">Recent</span>
|
|
141
150
|
</header>
|
|
@@ -172,7 +181,10 @@
|
|
|
172
181
|
<p data-note>List of curated queries the user has named and pinned. Each row shows the view name, a short description (or active filter chips), last-run time, and edit/share/delete actions. Used for "My open issues", "Q2 customer escalations", etc.</p>
|
|
173
182
|
<div data-artifact-container>
|
|
174
183
|
<div data-artifact-item data-artifact-label="saved views list">
|
|
175
|
-
<card-ui data-chunk="search-saved-views"
|
|
184
|
+
<card-ui data-chunk="search-saved-views" data-chunk-kind="block"
|
|
185
|
+
data-chunk-domain="data"
|
|
186
|
+
data-chunk-description="Saved searches card — named saved views as rows with query summary and result counts, plus a primary Save-current-view header action."
|
|
187
|
+
data-chunk-keywords="saved views searches named bookmark list rows counts save-current filters presets discovery">
|
|
176
188
|
<header>
|
|
177
189
|
<span slot="heading" variant="section">Saved views</span>
|
|
178
190
|
<text-ui slot="description" color="subtle">5 views · last edited 2 days ago</text-ui>
|