@adia-ai/web-components 0.8.34 → 0.8.36
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 +14 -0
- package/components/agent-questions/agent-questions.class.js +0 -1
- package/components/badge/badge.css +27 -3
- package/components/badge/badge.examples.md +4 -4
- package/components/card/card.css +44 -1
- package/components/check/check.a2ui.json +25 -11
- package/components/check/check.class.js +5 -0
- package/components/check/check.css +21 -0
- package/components/check/check.d.ts +2 -0
- package/components/check/check.examples.md +4 -4
- package/components/check/check.yaml +26 -7
- package/components/demo-toggle/demo-toggle.css +4 -0
- package/components/demo-toggle/demo-toggle.examples.md +4 -4
- package/components/feed/feed-item.a2ui.json +3 -2
- package/components/feed/feed-item.yaml +7 -1
- package/components/feed/feed.css +28 -5
- package/components/field/field.examples.md +4 -4
- package/components/image/image.class.js +8 -0
- package/components/nav-group/nav-group.css +12 -1
- package/components/option-card/option-card.a2ui.json +10 -10
- package/components/option-card/option-card.css +32 -16
- package/components/option-card/option-card.yaml +19 -15
- package/components/radio/radio.examples.md +4 -4
- package/components/range/range.css +8 -4
- package/components/slider/slider.a2ui.json +6 -3
- package/components/slider/slider.css +28 -12
- package/components/slider/slider.yaml +11 -3
- package/components/stat/stat.examples.md +4 -4
- package/components/swatch/swatch.css +14 -6
- package/components/switch/switch.examples.md +4 -4
- package/components/table-toolbar/table-toolbar.css +10 -1
- package/components/tabs/tabs.css +10 -4
- package/components/tag/tag.class.js +14 -1
- package/components/tag/tag.css +63 -5
- package/components/text/text.examples.md +4 -4
- package/components/timeline/timeline-item.a2ui.json +2 -2
- package/components/timeline/timeline-item.yaml +2 -2
- package/components/timeline/timeline.css +33 -5
- package/components/timeline/timeline.d.ts +2 -2
- package/components/toast/toast.css +28 -5
- package/custom-elements.json +469 -46
- package/dist/theme-provider.min.js +1 -1
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +4 -4
- package/dist/web-components.sheet.js +1 -1
- package/package.json +1 -1
- package/patterns/access-requests/access-requests.examples.html +3 -3
- package/patterns/admin-keys-and-export/admin-keys-and-export.examples.html +3 -3
- package/patterns/admin-shell/admin-shell.examples.html +3 -4
- package/patterns/agent-cost/agent-cost.examples.html +3 -3
- package/patterns/agent-memory/agent-memory.examples.html +3 -3
- package/patterns/agent-prompt-library/agent-prompt-library.examples.html +3 -3
- package/patterns/agent-tool-call/agent-tool-call.examples.html +3 -3
- package/patterns/alert-dialog/alert-dialog.examples.html +3 -3
- package/patterns/app-nav/app-nav.examples.html +4 -4
- package/patterns/approvals/approvals.examples.html +3 -3
- package/patterns/audit-log/audit-log.examples.html +3 -3
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.html +19 -9
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.js +2 -2
- package/patterns/changelog-feed/changelog-feed.examples.html +3 -3
- package/patterns/chart-in-card/chart-in-card.examples.html +37 -3
- package/patterns/chart-in-card/chart-in-card.examples.js +12 -0
- package/patterns/chart-in-card/chart-in-card.html +6 -0
- package/patterns/chat-shell/chat-shell.examples.html +3 -4
- package/patterns/comments-and-collaboration/comments-and-collaboration.examples.html +3 -3
- package/patterns/conversion-funnel/conversion-funnel.examples.html +3 -3
- package/patterns/data-tables-inline-edit-and-tree/data-tables-inline-edit-and-tree.examples.html +3 -3
- package/patterns/diff-review/diff-review.examples.html +3 -3
- package/patterns/editor-shell/editor-shell.examples.html +3 -4
- package/patterns/export-flow/export-flow.examples.html +3 -3
- package/patterns/filter-bar/filter-bar.examples.html +3 -3
- package/patterns/form-drawer/form-drawer.examples.html +3 -3
- package/patterns/forms-conditional-and-autocomplete/forms-conditional-and-autocomplete.examples.html +3 -3
- package/patterns/inline-dialog/inline-dialog.examples.html +3 -3
- package/patterns/kanban-board/kanban-board.examples.html +3 -3
- package/patterns/layout/layout.examples.html +4 -7
- package/patterns/marketing-engagement/marketing-engagement.examples.html +3 -3
- package/patterns/notifications-bell-and-digest/notifications-bell-and-digest.examples.html +3 -3
- package/patterns/permissions-matrix/permissions-matrix.examples.html +3 -3
- package/patterns/permissions-role-picker/permissions-role-picker.examples.html +3 -3
- package/patterns/permissions-sharing/permissions-sharing.examples.html +3 -3
- package/patterns/profile-public-and-verification/profile-public-and-verification.examples.html +3 -3
- package/patterns/record-detail-drawer/record-detail-drawer.examples.html +3 -3
- package/patterns/responsive-shell-sidebar/responsive-shell-sidebar.examples.html +3 -3
- package/patterns/retention-cohort/retention-cohort.examples.html +3 -3
- package/patterns/search-discovery/search-discovery.examples.html +3 -3
- package/patterns/system-banners/system-banners.examples.html +3 -3
- package/patterns/timezone-selector/timezone-selector.examples.html +3 -3
- package/patterns/wizard-drawer/wizard-drawer.examples.html +3 -3
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
```html
|
|
12
12
|
<row-ui gap="6" align="start" wrap>
|
|
13
13
|
<col-ui gap="2">
|
|
14
|
-
<text-ui variant="caption" color="muted">
|
|
15
|
-
<div
|
|
14
|
+
<text-ui variant="caption" color="muted">scale="ui-sm"</text-ui>
|
|
15
|
+
<div scale="ui-sm" style="max-width:240px">
|
|
16
16
|
<col-ui gap="2">
|
|
17
17
|
<text-ui variant="heading">Heading</text-ui>
|
|
18
18
|
<text-ui variant="body">Body copy showing how this register sizes running text and the leading between lines.</text-ui>
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
</div>
|
|
32
32
|
</col-ui>
|
|
33
33
|
<col-ui gap="2">
|
|
34
|
-
<text-ui variant="caption" color="muted">
|
|
35
|
-
<div
|
|
34
|
+
<text-ui variant="caption" color="muted">scale="content-md"</text-ui>
|
|
35
|
+
<div scale="content-md" style="max-width:240px">
|
|
36
36
|
<col-ui gap="2">
|
|
37
37
|
<text-ui variant="heading">Heading</text-ui>
|
|
38
38
|
<text-ui variant="body">Body copy showing how this register sizes running text and the leading between lines.</text-ui>
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"type": "string"
|
|
30
30
|
},
|
|
31
31
|
"spinner": {
|
|
32
|
-
"description": "Show a spinner instead of the icon while status
|
|
32
|
+
"description": "Show a spinner instead of the dot/icon while status=\"active\".",
|
|
33
33
|
"type": "boolean",
|
|
34
34
|
"default": false
|
|
35
35
|
},
|
|
36
36
|
"status": {
|
|
37
|
-
"description": "Lifecycle state (idle |
|
|
37
|
+
"description": "Lifecycle state (idle | active | completed | error). Pairs with `spinner` on \"active\" for an in-progress step.",
|
|
38
38
|
"type": "string",
|
|
39
39
|
"default": "idle"
|
|
40
40
|
},
|
|
@@ -39,11 +39,11 @@ props:
|
|
|
39
39
|
type: string
|
|
40
40
|
default: 'default'
|
|
41
41
|
status:
|
|
42
|
-
description: Lifecycle state (idle |
|
|
42
|
+
description: Lifecycle state (idle | active | completed | error). Pairs with `spinner` on "active" for an in-progress step.
|
|
43
43
|
type: string
|
|
44
44
|
default: 'idle'
|
|
45
45
|
spinner:
|
|
46
|
-
description: Show a spinner instead of the icon while status=
|
|
46
|
+
description: Show a spinner instead of the dot/icon while status="active".
|
|
47
47
|
type: boolean
|
|
48
48
|
default: false
|
|
49
49
|
|
|
@@ -176,6 +176,17 @@ agent-reasoning-ui timeline-ui:not([orientation="horizontal"]),
|
|
|
176
176
|
--timeline-item-toggle-px: var(--a-space-0-5);
|
|
177
177
|
--timeline-item-toggle-time-margin: 1.5rem;
|
|
178
178
|
--timeline-item-outcome-indent: 0.75rem;
|
|
179
|
+
|
|
180
|
+
/* Row-1's rendered height — [slot="label"]'s own line-height (1.4,
|
|
181
|
+
set at var(--timeline-item-label-size), timeline.css below). Marker
|
|
182
|
+
centering (dot/line/icon/caret) must measure against THIS, not a
|
|
183
|
+
bare `1.4em`: `em` on the marker's own box resolves against
|
|
184
|
+
timeline-item-ui's ambient/inherited font-size, which is NOT
|
|
185
|
+
guaranteed to equal --timeline-item-label-size (it doesn't, by
|
|
186
|
+
default — nothing sets font-size on timeline-item-ui itself), so a
|
|
187
|
+
literal `1.4em` silently drifted off the label's real line-height
|
|
188
|
+
and threw every marker's vertical center off by that gap (gh#1090). */
|
|
189
|
+
--timeline-item-row-h: calc(var(--timeline-item-label-size) * 1.4);
|
|
179
190
|
}
|
|
180
191
|
|
|
181
192
|
:scope {
|
|
@@ -200,7 +211,7 @@ agent-reasoning-ui timeline-ui:not([orientation="horizontal"]),
|
|
|
200
211
|
content: '';
|
|
201
212
|
position: absolute;
|
|
202
213
|
left: calc((var(--timeline-item-marker-w) - var(--timeline-item-dot-size)) / 2);
|
|
203
|
-
top: calc((
|
|
214
|
+
top: calc((var(--timeline-item-row-h) - var(--timeline-item-dot-size)) / 2 + 1px);
|
|
204
215
|
width: var(--timeline-item-dot-size);
|
|
205
216
|
height: var(--timeline-item-dot-size);
|
|
206
217
|
border-radius: 50%;
|
|
@@ -235,7 +246,7 @@ agent-reasoning-ui timeline-ui:not([orientation="horizontal"]),
|
|
|
235
246
|
content: '';
|
|
236
247
|
position: absolute;
|
|
237
248
|
left: calc((var(--timeline-item-marker-w) - var(--timeline-item-line-size)) / 2);
|
|
238
|
-
top: calc((
|
|
249
|
+
top: calc((var(--timeline-item-row-h) + var(--timeline-item-dot-size)) / 2 + 2px);
|
|
239
250
|
bottom: calc(-1 * var(--timeline-item-gap-row));
|
|
240
251
|
width: var(--timeline-item-line-size);
|
|
241
252
|
background: var(--timeline-item-line-fg);
|
|
@@ -252,8 +263,17 @@ agent-reasoning-ui timeline-ui:not([orientation="horizontal"]),
|
|
|
252
263
|
grid-column: marker;
|
|
253
264
|
grid-row: 1;
|
|
254
265
|
justify-self: center;
|
|
255
|
-
|
|
256
|
-
|
|
266
|
+
/* `baseline` anchors a baseline-less box (icon-ui has no text) by its
|
|
267
|
+
synthesized baseline — the bottom margin edge (CSS Box Alignment) —
|
|
268
|
+
to the row's shared text baseline. That pins the icon's BOTTOM to
|
|
269
|
+
near the bottom of the label's glyphs and makes the margin-top
|
|
270
|
+
centering below a no-op (the alignment step repositions the box
|
|
271
|
+
after margin is applied, so no margin-top value moves the rendered
|
|
272
|
+
circle). `start` anchors the row's block-start instead, so
|
|
273
|
+
margin-top's `(row-h - icon-size)/2` genuinely centers the icon
|
|
274
|
+
against the label's line-height (gh#1090). */
|
|
275
|
+
align-self: start;
|
|
276
|
+
margin-top: calc((var(--timeline-item-row-h) - var(--timeline-item-icon-size)) / 2);
|
|
257
277
|
width: var(--timeline-item-icon-size);
|
|
258
278
|
height: var(--timeline-item-icon-size);
|
|
259
279
|
border-radius: 50%;
|
|
@@ -278,7 +298,7 @@ agent-reasoning-ui timeline-ui:not([orientation="horizontal"]),
|
|
|
278
298
|
|
|
279
299
|
/* Push connector line past the icon circle */
|
|
280
300
|
:scope:has([slot="icon"])::after {
|
|
281
|
-
top: calc((
|
|
301
|
+
top: calc((var(--timeline-item-row-h) + var(--timeline-item-icon-size)) / 2 + 2px);
|
|
282
302
|
}
|
|
283
303
|
|
|
284
304
|
/* ═══════ Content slots ═══════ */
|
|
@@ -400,6 +420,14 @@ timeline-ui[size="sm"] > timeline-item-ui[status="active"][spinner]::before {
|
|
|
400
420
|
timeline-ui[orientation="horizontal"] > timeline-item-ui {
|
|
401
421
|
display: flex;
|
|
402
422
|
flex-direction: column;
|
|
423
|
+
/* Reset the vertical-mode grid's `align-items: baseline` (timeline.css
|
|
424
|
+
above) — baseline is incompatible with cross-axis stretch, so without
|
|
425
|
+
this reset [slot="label"]/[slot="description"]/[slot="time"] (plain
|
|
426
|
+
<span>s) shrink-to-fit their own text instead of spanning the item's
|
|
427
|
+
full width, leaving `text-align: center` below with no extra width to
|
|
428
|
+
center within (labels rendered flush against the item's left edge —
|
|
429
|
+
gh#1090). */
|
|
430
|
+
align-items: stretch;
|
|
403
431
|
flex: 1 1 0;
|
|
404
432
|
min-width: 0;
|
|
405
433
|
padding-top: calc(var(--timeline-dot-size) + var(--timeline-gap-col));
|
|
@@ -40,9 +40,9 @@ export class UITimelineItem extends UIElement {
|
|
|
40
40
|
duration: string;
|
|
41
41
|
/** Optional leading icon name (Phosphor). */
|
|
42
42
|
icon: string;
|
|
43
|
-
/** Show a spinner instead of the icon while status=
|
|
43
|
+
/** Show a spinner instead of the dot/icon while status="active". */
|
|
44
44
|
spinner: boolean;
|
|
45
|
-
/** Lifecycle state (idle |
|
|
45
|
+
/** Lifecycle state (idle | active | completed | error). Pairs with `spinner` on "active" for an in-progress step. */
|
|
46
46
|
status: string;
|
|
47
47
|
/** Primary step label. */
|
|
48
48
|
text: string;
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
TOAST-N — Notification popup with auto-dismiss.
|
|
3
3
|
═══════════════════════════════════════════════════════════════ */
|
|
4
4
|
|
|
5
|
+
/* DEAD-CODE NOTICE (gh#1104, ties to Phase 4 of
|
|
6
|
+
.claude/docs/specs/feed-channel.md / SPEC-FEED-CHANNEL-001):
|
|
7
|
+
<toast-ui> is a self-removing facade — toast.class.js's
|
|
8
|
+
`connected()` posts into <feed-ui>/UIFeed then `queueMicrotask`s
|
|
9
|
+
`this.remove()`, so this element never survives to a paint. Every
|
|
10
|
+
rule below (including the `primary` variant) is unreachable at
|
|
11
|
+
runtime. The real paint site is feed.css's `@scope (feed-item-ui)`
|
|
12
|
+
block — edit THAT file to change what a posted toast looks like.
|
|
13
|
+
Kept here (not deleted) as the documented visual contract + the
|
|
14
|
+
reference the feed-item-ui `primary` variant was ported from. */
|
|
15
|
+
|
|
5
16
|
/* Safari 17.x bug: `:scope[data-open]` and `:scope[data-closing]`
|
|
6
17
|
(Flavor B — attribute-removal restyle) don't reliably restyle on
|
|
7
18
|
attribute toggling inside `@scope`. Selectors moved out as plain
|
|
@@ -73,6 +84,10 @@ toast-ui[data-closing][position="top-left"] {
|
|
|
73
84
|
box-shadow: var(--toast-shadow);
|
|
74
85
|
opacity: 0;
|
|
75
86
|
pointer-events: auto;
|
|
87
|
+
/* Elevated-surface separation over busy page content (gh#1091) —
|
|
88
|
+
mirrors loading-overlay.css's [variant="blur"] treatment. */
|
|
89
|
+
backdrop-filter: blur(4px);
|
|
90
|
+
-webkit-backdrop-filter: blur(4px);
|
|
76
91
|
}
|
|
77
92
|
|
|
78
93
|
/* ── Position variants ── */
|
|
@@ -112,26 +127,34 @@ toast-ui[data-closing][position="top-left"] {
|
|
|
112
127
|
light-dark scheme-aware token), NOT `--a-{variant}-text-strong`
|
|
113
128
|
(the latter is locked dark for warning + light for the others —
|
|
114
129
|
designed for solid `--variant-strong` fills, where the bg never
|
|
115
|
-
flips). Mirrors alert.css's variant wiring.
|
|
130
|
+
flips). Mirrors alert.css's variant wiring.
|
|
131
|
+
|
|
132
|
+
`--toast-bg` rides `-container-high` (NOT the plain `-container`
|
|
133
|
+
alert.css uses) — a floating overlay over arbitrary page content
|
|
134
|
+
needs a stronger tonal step than an inline, already-boxed alert to
|
|
135
|
+
read as separated (gh#1091). `-container-high` is a real generated
|
|
136
|
+
role per family in colors/material-static.css (the same tier
|
|
137
|
+
`--a-{family}-subtle` aliases to per component-token-contract.md's
|
|
138
|
+
`-strong` semantics note) — not a hand-authored addition. */
|
|
116
139
|
|
|
117
140
|
:where(:scope),
|
|
118
141
|
:where(:scope[variant="info"]) {
|
|
119
|
-
--toast-bg: var(--md-sys-color-info-container);
|
|
142
|
+
--toast-bg: var(--md-sys-color-info-container-high);
|
|
120
143
|
--toast-fg: var(--md-sys-color-info-on-surface);
|
|
121
144
|
--toast-border: var(--md-sys-color-info-outline-variant);
|
|
122
145
|
}
|
|
123
146
|
:where(:scope[variant="success"]) {
|
|
124
|
-
--toast-bg: var(--md-sys-color-success-container);
|
|
147
|
+
--toast-bg: var(--md-sys-color-success-container-high);
|
|
125
148
|
--toast-fg: var(--md-sys-color-success-on-surface);
|
|
126
149
|
--toast-border: var(--md-sys-color-success-outline-variant);
|
|
127
150
|
}
|
|
128
151
|
:where(:scope[variant="warning"]) {
|
|
129
|
-
--toast-bg: var(--md-sys-color-warning-container);
|
|
152
|
+
--toast-bg: var(--md-sys-color-warning-container-high);
|
|
130
153
|
--toast-fg: var(--md-sys-color-warning-on-surface);
|
|
131
154
|
--toast-border: var(--md-sys-color-warning-outline-variant);
|
|
132
155
|
}
|
|
133
156
|
:where(:scope[variant="danger"]) {
|
|
134
|
-
--toast-bg: var(--md-sys-color-danger-container);
|
|
157
|
+
--toast-bg: var(--md-sys-color-danger-container-high);
|
|
135
158
|
--toast-fg: var(--md-sys-color-danger-on-surface);
|
|
136
159
|
--toast-border: var(--md-sys-color-danger-outline-variant);
|
|
137
160
|
}
|