@adia-ai/web-components 0.0.16 → 0.0.17
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/components/drawer/drawer.css +13 -6
- package/components/input/input.css +10 -1
- package/components/option-card/option-card.css +5 -1
- package/components/segment/segment.css +12 -0
- package/components/select/select.css +6 -2
- package/package.json +1 -1
- package/patterns/app-nav-group/app-nav-group.css +2 -2
- package/patterns/app-shell/css/app-shell.tokens.css +5 -1
- package/patterns/section-nav/section-nav.css +4 -3
- package/styles/colors/semantics.css +3 -3
- package/styles/typography.css +3 -3
|
@@ -296,14 +296,13 @@
|
|
|
296
296
|
[slot="panel"] > [slot="body"][padding] { background: var(--a-canvas-0-scrim); }
|
|
297
297
|
|
|
298
298
|
/* ═══════ Footer ═══════
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
Block default — single non-slotted child (e.g. <grid-ui>, <col-ui>, raw
|
|
300
|
+
paragraph) stretches full-width naturally. Activate flex-row only when a
|
|
301
|
+
direct slotted child is present, or there are 2+ children — that's the
|
|
302
|
+
action-row case. Mirrors card-ui footer semantics. */
|
|
301
303
|
|
|
302
304
|
[slot="panel"] > [slot="footer"] {
|
|
303
|
-
display:
|
|
304
|
-
flex-wrap: wrap;
|
|
305
|
-
align-items: center;
|
|
306
|
-
gap: var(--drawer-footer-gap);
|
|
305
|
+
display: block;
|
|
307
306
|
padding: var(--drawer-footer-pad);
|
|
308
307
|
border-top: 1px solid var(--drawer-divider);
|
|
309
308
|
flex-shrink: 0;
|
|
@@ -314,6 +313,14 @@
|
|
|
314
313
|
z-index: 1;
|
|
315
314
|
}
|
|
316
315
|
|
|
316
|
+
[slot="panel"] > [slot="footer"]:has(> [slot]),
|
|
317
|
+
[slot="panel"] > [slot="footer"]:has(> :nth-child(2)) {
|
|
318
|
+
display: flex;
|
|
319
|
+
flex-wrap: wrap;
|
|
320
|
+
align-items: center;
|
|
321
|
+
gap: var(--drawer-footer-gap);
|
|
322
|
+
}
|
|
323
|
+
|
|
317
324
|
[slot="panel"] > [slot="footer"][justify="end"] {
|
|
318
325
|
justify-content: flex-end;
|
|
319
326
|
}
|
|
@@ -123,12 +123,21 @@
|
|
|
123
123
|
pointer-events: none;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
/* Prefix + Suffix
|
|
126
|
+
/* Prefix + Suffix — inline-flex so icon-ui (or any non-text affix
|
|
127
|
+
content) centers vertically within the slot wrapper. Without
|
|
128
|
+
this, an icon inside a default <span slot="prefix"> sits at the
|
|
129
|
+
baseline of the field's 1.4 line-box and renders visually below
|
|
130
|
+
the field's center. With inline-flex + align-items: center the
|
|
131
|
+
icon centers in the slot box, which is itself centered in the
|
|
132
|
+
field via the field's align-items: center. */
|
|
127
133
|
[slot="prefix"],
|
|
128
134
|
[slot="suffix"] {
|
|
135
|
+
display: inline-flex;
|
|
136
|
+
align-items: center;
|
|
129
137
|
flex-shrink: 0;
|
|
130
138
|
color: var(--input-affix-fg);
|
|
131
139
|
font-size: var(--input-font-size);
|
|
140
|
+
line-height: 1;
|
|
132
141
|
user-select: none;
|
|
133
142
|
pointer-events: none;
|
|
134
143
|
}
|
|
@@ -22,7 +22,11 @@
|
|
|
22
22
|
--option-card-radio-bg: var(--a-bg);
|
|
23
23
|
--option-card-radio-border: var(--a-border);
|
|
24
24
|
--option-card-radio-fill: var(--a-accent);
|
|
25
|
-
--
|
|
25
|
+
/* Mirror radio.css's --radio-fg-checked recipe: an always-light
|
|
26
|
+
token rather than --a-accent-fg, which can flip dark depending
|
|
27
|
+
on theme/scheme combos and produce a near-black inner dot
|
|
28
|
+
against the accent disc. */
|
|
29
|
+
--option-card-radio-dot: var(--a-chrome-light);
|
|
26
30
|
|
|
27
31
|
/* ── Typography ── */
|
|
28
32
|
--option-card-heading-color: var(--a-fg);
|
|
@@ -57,8 +57,20 @@
|
|
|
57
57
|
background var(--segment-duration) var(--segment-easing);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
/* Text rendered via ::after so consumers can drive label via [text].
|
|
61
|
+
Under the parent's `display: flex`, ::after becomes a flex item with
|
|
62
|
+
`min-width: auto` (= min-content), which would force the segment to
|
|
63
|
+
overflow when the label is wider than the available track. Setting
|
|
64
|
+
`min-width: 0` re-enables shrinking, and `text-overflow: ellipsis`
|
|
65
|
+
has to live here (not on :scope) because text-overflow does not
|
|
66
|
+
inherit and only applies to the box that owns the inline text. */
|
|
60
67
|
:scope::after {
|
|
61
68
|
content: attr(text);
|
|
69
|
+
min-width: 0;
|
|
70
|
+
max-width: 100%;
|
|
71
|
+
overflow: hidden;
|
|
72
|
+
text-overflow: ellipsis;
|
|
73
|
+
white-space: nowrap;
|
|
62
74
|
}
|
|
63
75
|
|
|
64
76
|
/* States */
|
|
@@ -110,9 +110,13 @@
|
|
|
110
110
|
color: var(--select-fg-subtle);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
/* Leading icon / avatar
|
|
113
|
+
/* Leading icon / avatar — inline-flex centers icon content vertically
|
|
114
|
+
within the slot box (same recipe as input-ui's prefix/suffix). */
|
|
114
115
|
[slot="leading"] {
|
|
116
|
+
display: inline-flex;
|
|
117
|
+
align-items: center;
|
|
115
118
|
flex-shrink: 0;
|
|
119
|
+
line-height: 1;
|
|
116
120
|
--a-icon-size: var(--select-font-size);
|
|
117
121
|
color: var(--select-fg-muted);
|
|
118
122
|
}
|
|
@@ -204,7 +208,7 @@ select-ui [role="option"] {
|
|
|
204
208
|
select-ui [role="option"]:hover,
|
|
205
209
|
select-ui [role="option"][data-focused] {
|
|
206
210
|
background: var(--a-bg-hover);
|
|
207
|
-
color: var(--a-fg);
|
|
211
|
+
color: var(--a-fg-hover);
|
|
208
212
|
}
|
|
209
213
|
select-ui [role="option"][aria-selected="true"] {
|
|
210
214
|
color: var(--select-fg-selected);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/web-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"description": "AdiaUI web components — vanilla custom elements. A2UI runtime (renderer, registry, streams, wiring) lives in @adia-ai/a2ui-utils.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -208,7 +208,7 @@ app-nav-group-ui [slot="popover"] {
|
|
|
208
208
|
margin: 0;
|
|
209
209
|
padding: var(--a-space-1);
|
|
210
210
|
border: 1px solid var(--a-border-subtle);
|
|
211
|
-
border-radius: var(--a-radius
|
|
211
|
+
border-radius: var(--a-radius);
|
|
212
212
|
background: var(--a-bg-subtle);
|
|
213
213
|
box-shadow: var(--a-shadow-lg);
|
|
214
214
|
min-width: 160px;
|
|
@@ -228,7 +228,7 @@ app-nav-group-ui [slot="popover-label"] {
|
|
|
228
228
|
|
|
229
229
|
app-nav-group-ui [slot="popover"] [role="option"] {
|
|
230
230
|
padding: var(--a-space-1) var(--a-space-2);
|
|
231
|
-
border-radius: var(--a-radius
|
|
231
|
+
border-radius: var(--a-radius);
|
|
232
232
|
color: var(--a-fg-subtle);
|
|
233
233
|
cursor: pointer;
|
|
234
234
|
white-space: nowrap;
|
|
@@ -45,6 +45,10 @@
|
|
|
45
45
|
|
|
46
46
|
/* Section labels (e.g. "WORKSPACE") — maps to "kicker" typography role */
|
|
47
47
|
--page-section-gap: var(--a-space-6);
|
|
48
|
+
/* Within-section block rhythm (h2 / [data-note] / code-ui / artifact stack). */
|
|
49
|
+
--page-block-gap: var(--a-space-4);
|
|
50
|
+
/* h2 → immediately-following deck/subtitle pair (auto-stamped <header>). */
|
|
51
|
+
--page-deck-gap: var(--a-space-1);
|
|
48
52
|
--page-section-size: var(--a-kicker-size);
|
|
49
53
|
--page-section-weight: var(--a-kicker-weight);
|
|
50
54
|
--page-section-leading: var(--a-kicker-leading);
|
|
@@ -82,7 +86,7 @@
|
|
|
82
86
|
--nav-easing: var(--a-easing);
|
|
83
87
|
--nav-label-px: var(--a-space-2);
|
|
84
88
|
--nav-label-py: var(--a-space-1);
|
|
85
|
-
--nav-label-font-size: var(--a-
|
|
89
|
+
--nav-label-font-size: var(--a-kicker-sm);
|
|
86
90
|
--nav-label-weight: var(--a-weight-medium);
|
|
87
91
|
--nav-label-fg: var(--a-fg-muted);
|
|
88
92
|
--nav-divider-bg: var(--a-border-subtle);
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
--section-nav-font-size: var(--a-ui-size);
|
|
13
13
|
|
|
14
14
|
--section-nav-heading-fg: var(--a-fg-muted);
|
|
15
|
-
--section-nav-heading-size: var(--a-
|
|
15
|
+
--section-nav-heading-size: var(--a-kicker-sm);
|
|
16
16
|
--section-nav-heading-weight: var(--a-weight-medium);
|
|
17
17
|
--section-nav-heading-pad-x: var(--a-space-2);
|
|
18
|
-
--section-nav-heading-pad-y:
|
|
18
|
+
--section-nav-heading-pad-y: var(--a-space-3) var(--a-space-1);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
:scope {
|
|
@@ -47,7 +47,8 @@
|
|
|
47
47
|
:scope[heading]:not([heading=""])::before {
|
|
48
48
|
content: attr(heading);
|
|
49
49
|
display: block;
|
|
50
|
-
padding: var(--section-nav-heading-pad-
|
|
50
|
+
padding-inline: var(--section-nav-heading-pad-x);
|
|
51
|
+
padding-block: var(--section-nav-heading-pad-y);
|
|
51
52
|
font-size: var(--section-nav-heading-size);
|
|
52
53
|
font-weight: var(--section-nav-heading-weight);
|
|
53
54
|
color: var(--section-nav-heading-fg);
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
--a-bg-subtle: var(--a-canvas-1);
|
|
106
106
|
--a-bg-muted: var(--a-canvas-2);
|
|
107
107
|
--a-bg-strong: var(--a-canvas-4);
|
|
108
|
-
--a-bg-hover: var(--a-canvas-
|
|
108
|
+
--a-bg-hover: var(--a-canvas-2);
|
|
109
109
|
--a-bg-active: var(--a-canvas-pressed);
|
|
110
110
|
--a-bg-selected: var(--a-canvas-0-scrim);
|
|
111
111
|
--a-bg-disabled: var(--a-canvas-muted);
|
|
@@ -486,7 +486,7 @@
|
|
|
486
486
|
--a-ui-bg: var(--a-canvas-0-scrim);
|
|
487
487
|
--a-ui-bg-hover: var(--a-canvas-2-scrim);
|
|
488
488
|
--a-ui-bg-active: var(--a-canvas-0);
|
|
489
|
-
--a-ui-bg-selected: var(--a-canvas-
|
|
489
|
+
--a-ui-bg-selected: var(--a-canvas-0-scrim);
|
|
490
490
|
--a-ui-bg-disabled: var(--a-canvas-1);
|
|
491
491
|
--a-ui-bg-invalid: var(--a-danger-muted);
|
|
492
492
|
|
|
@@ -494,7 +494,7 @@
|
|
|
494
494
|
--a-ui-text-hover: var(--a-fg-strong);
|
|
495
495
|
--a-ui-text-active: var(--a-fg-strong);
|
|
496
496
|
--a-ui-text-selected: var(--a-fg-strong);
|
|
497
|
-
--a-ui-text-placeholder: var(--a-fg-
|
|
497
|
+
--a-ui-text-placeholder: var(--a-fg-muted);
|
|
498
498
|
--a-ui-text-subtle: var(--a-fg-subtle);
|
|
499
499
|
--a-ui-text-muted: var(--a-fg-muted);
|
|
500
500
|
--a-ui-text-disabled: var(--a-fg-disabled);
|
package/styles/typography.css
CHANGED
|
@@ -193,9 +193,9 @@
|
|
|
193
193
|
/* kicker — short label above a title (eyebrow/overline) */
|
|
194
194
|
--a-kicker-family: var(--a-font-family-ui);
|
|
195
195
|
--a-kicker-weight: var(--a-weight-semibold);
|
|
196
|
-
--a-kicker-sm:
|
|
197
|
-
--a-kicker-md:
|
|
198
|
-
--a-kicker-lg:
|
|
196
|
+
--a-kicker-sm: 11px;
|
|
197
|
+
--a-kicker-md: 12px;
|
|
198
|
+
--a-kicker-lg: 13px;
|
|
199
199
|
--a-kicker-size: var(--a-kicker-md);
|
|
200
200
|
--a-kicker-leading: var(--a-font-leading-normal);
|
|
201
201
|
--a-kicker-tracking: var(--a-font-tracking-wider);
|