@adia-ai/web-components 0.7.27 → 0.8.0
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 +37 -0
- package/components/accordion/accordion.css +13 -4
- package/components/action-list/action-list.css +3 -3
- package/components/agent-artifact/agent-artifact.css +4 -4
- package/components/agent-questions/agent-questions.css +8 -8
- package/components/agent-reasoning/agent-reasoning.css +6 -6
- package/components/agent-trace/agent-trace.css +4 -4
- package/components/agent-trace/agent-trace.js +1 -1
- package/components/alert/alert.css +16 -16
- package/components/avatar/avatar.css +3 -3
- package/components/badge/badge.css +32 -32
- package/components/blockquote/blockquote.css +1 -1
- package/components/breadcrumb/breadcrumb.css +2 -2
- package/components/button/button.css +14 -14
- package/components/calendar-grid/calendar-grid.a2ui.json +3 -3
- package/components/calendar-grid/calendar-grid.css +10 -10
- package/components/calendar-grid/calendar-grid.yaml +3 -3
- package/components/calendar-picker/calendar-picker.css +11 -11
- package/components/canvas/canvas.css +2 -2
- package/components/card/card.css +15 -15
- package/components/chart/chart.a2ui.json +1 -1
- package/components/chart/chart.css +23 -23
- package/components/chart/chart.yaml +2 -0
- package/components/chart-legend/chart-legend.css +2 -2
- package/components/chat-thread/chat-input.css +6 -6
- package/components/chat-thread/chat-thread.css +7 -7
- package/components/check/check.css +4 -4
- package/components/code/code-editor.js +1 -1
- package/components/code/code.css +45 -22
- package/components/color-picker/color-picker.css +4 -4
- package/components/combobox/combobox.css +6 -6
- package/components/command/command.class.js +14 -3
- package/components/command/command.css +4 -4
- package/components/context-menu/context-menu.css +2 -2
- package/components/date-range-picker/date-range-picker.a2ui.json +3 -3
- package/components/date-range-picker/date-range-picker.css +8 -8
- package/components/date-range-picker/date-range-picker.yaml +3 -3
- package/components/datetime-picker/datetime-picker.css +6 -6
- package/components/demo-toggle/demo-toggle.css +4 -4
- package/components/description-list/description-list.css +1 -1
- package/components/display-field/display-field.css +2 -2
- package/components/divider/divider.css +1 -1
- package/components/drawer/drawer.css +7 -7
- package/components/embed/embed.css +1 -1
- package/components/empty-state/empty-state.css +5 -5
- package/components/feed/feed.css +7 -7
- package/components/field/field.css +2 -2
- package/components/heatmap/heatmap.css +8 -8
- package/components/inline-edit/inline-edit.a2ui.json +1 -1
- package/components/inline-edit/inline-edit.css +3 -3
- package/components/inline-edit/inline-edit.yaml +1 -1
- package/components/inline-message/inline-message.css +4 -4
- package/components/input/input.css +1 -1
- package/components/inspector/inspector.css +1 -1
- package/components/integration-card/integration-card.css +3 -3
- package/components/kbd/kbd.a2ui.json +4 -0
- package/components/kbd/kbd.css +2 -2
- package/components/kbd/kbd.d.ts +2 -0
- package/components/kbd/kbd.yaml +5 -0
- package/components/link/link.css +2 -2
- package/components/list/list.css +10 -10
- package/components/list-window/list-window.css +2 -2
- package/components/mark/mark.css +9 -9
- package/components/menu/menu.css +9 -9
- package/components/modal/modal.css +4 -4
- package/components/nav/nav.css +1 -1
- package/components/nav-group/nav-group.css +7 -16
- package/components/nav-item/nav-item.css +1 -1
- package/components/noodles/noodles.a2ui.json +1 -1
- package/components/noodles/noodles.css +3 -3
- package/components/noodles/noodles.d.ts +1 -1
- package/components/noodles/noodles.yaml +1 -1
- package/components/option-card/option-card.css +11 -11
- package/components/otp-input/otp-input.css +1 -1
- package/components/page/page.css +2 -2
- package/components/pane/pane.css +5 -5
- package/components/password-strength/password-strength.css +1 -1
- package/components/pipeline-status/pipeline-status.css +9 -9
- package/components/popover/popover.css +2 -2
- package/components/preview/preview.css +14 -3
- package/components/progress/progress.a2ui.json +1 -1
- package/components/progress/progress.css +1 -1
- package/components/progress/progress.d.ts +1 -1
- package/components/progress/progress.yaml +1 -1
- package/components/progress-row/progress-row.css +2 -2
- package/components/radio/radio.css +4 -4
- package/components/range/range.css +2 -2
- package/components/rating/rating.css +2 -2
- package/components/richtext/richtext.class.js +4 -0
- package/components/richtext/richtext.css +5 -5
- package/components/richtext/richtext.yaml +1 -0
- package/components/row/row.css +1 -1
- package/components/select/select.css +8 -8
- package/components/skip-nav/skip-nav.a2ui.json +2 -2
- package/components/skip-nav/skip-nav.css +3 -3
- package/components/skip-nav/skip-nav.yaml +2 -2
- package/components/slider/slider.css +5 -5
- package/components/spinner/spinner.css +2 -2
- package/components/spinner/spinner.test.js +4 -2
- package/components/stat/stat.css +1 -1
- package/components/step-progress/step-progress.a2ui.json +1 -1
- package/components/step-progress/step-progress.class.js +1 -1
- package/components/step-progress/step-progress.css +2 -2
- package/components/step-progress/step-progress.d.ts +1 -1
- package/components/step-progress/step-progress.yaml +1 -1
- package/components/stepper/stepper.css +22 -22
- package/components/stream/stream.css +2 -2
- package/components/swatch/swatch.class.js +1 -1
- package/components/swatch/swatch.css +11 -11
- package/components/swiper/swiper.css +5 -5
- package/components/switch/switch.css +5 -5
- package/components/table/cell-types.js +32 -3
- package/components/table/table.a2ui.json +1 -1
- package/components/table/table.css +16 -11
- package/components/table/table.test.js +37 -0
- package/components/table/table.yaml +2 -0
- package/components/table-toolbar/table-toolbar.css +8 -8
- package/components/tabs/tabs.css +5 -5
- package/components/tag/tag.css +41 -29
- package/components/tag/tag.test.js +22 -29
- package/components/tags-input/tags-input.a2ui.json +1 -1
- package/components/tags-input/tags-input.css +3 -3
- package/components/tags-input/tags-input.yaml +5 -3
- package/components/text/text.css +4 -4
- package/components/textarea/textarea.css +1 -1
- package/components/time-picker/time-picker.css +2 -2
- package/components/timeline/timeline.css +31 -31
- package/components/toast/toast.css +19 -19
- package/components/toc/toc.a2ui.json +1 -1
- package/components/toc/toc.css +3 -3
- package/components/toc/toc.yaml +1 -1
- package/components/toggle-group/toggle-group.css +3 -3
- package/components/toolbar/toolbar.css +3 -3
- package/components/tooltip/tooltip.css +9 -9
- package/components/tour/tour.css +3 -3
- package/components/tree/tree.css +2 -2
- package/components/upload/upload.css +7 -7
- package/core/markdown.js +1 -1
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/theme-provider.min.js +7 -7
- package/dist/themes.min.css +1 -1
- package/dist/themes.sheet.js +1 -1
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +62 -62
- package/dist/web-components.sheet.js +1 -1
- package/package.json +3 -3
- package/styles/api/text.css +1 -1
- package/styles/colors/bridges/material-bridge.css +30 -0
- package/styles/colors/index.css +19 -1
- package/styles/colors/material-static.css +771 -0
- package/styles/colors/parameters.css +40 -4
- package/styles/colors/primitives-primary.css +89 -0
- package/styles/colors/primitives-secondary.css +89 -0
- package/styles/colors/primitives-tertiary.css +89 -0
- package/styles/colors/primitives.css +3 -1
- package/styles/colors/scrims.css +19 -180
- package/styles/colors/semantics/aliases.css +25 -11
- package/styles/colors/semantics/buckets.css +28 -12
- package/styles/colors/semantics/core.css +323 -202
- package/styles/colors/semantics/data-viz.css +13 -13
- package/styles/colors/semantics/features.css +31 -13
- package/styles/colors/surfaces.css +41 -31
- package/styles/resets.css +15 -1
- package/styles/themes.css +15 -15
- package/styles/colors/primitives-accent.css +0 -89
|
@@ -274,7 +274,7 @@ select-ui [slot="listbox"] {
|
|
|
274
274
|
padding: var(--a-space-1);
|
|
275
275
|
border: 1px solid var(--a-ui-border);
|
|
276
276
|
border-radius: var(--a-radius);
|
|
277
|
-
background: var(--
|
|
277
|
+
background: var(--md-sys-color-neutral-surface-bright);
|
|
278
278
|
box-shadow: var(--a-shadow-lg);
|
|
279
279
|
max-height: 15rem;
|
|
280
280
|
overflow-y: auto;
|
|
@@ -356,7 +356,7 @@ select-ui [role="option"] img[data-option-avatar] {
|
|
|
356
356
|
/* Separator */
|
|
357
357
|
select-ui [data-separator] {
|
|
358
358
|
height: 1px;
|
|
359
|
-
background: var(--
|
|
359
|
+
background: var(--md-sys-color-neutral-outline-variant);
|
|
360
360
|
margin: var(--a-space-1) 0;
|
|
361
361
|
border: none;
|
|
362
362
|
}
|
|
@@ -402,7 +402,7 @@ select-ui [role="group"] [slot="group-label"] {
|
|
|
402
402
|
|
|
403
403
|
/* Divider between groups — enabled by <select-ui divider>. */
|
|
404
404
|
select-ui[divider] [role="group"] + [role="group"] {
|
|
405
|
-
border-top: 1px solid var(--
|
|
405
|
+
border-top: 1px solid var(--md-sys-color-neutral-outline-variant);
|
|
406
406
|
margin-top: var(--a-space-1);
|
|
407
407
|
padding-top: var(--a-space-1);
|
|
408
408
|
}
|
|
@@ -426,7 +426,7 @@ select-ui [slot="listbox"] [data-select-all] {
|
|
|
426
426
|
align-items: center;
|
|
427
427
|
justify-content: flex-end;
|
|
428
428
|
padding: var(--a-space-1);
|
|
429
|
-
border-bottom: 1px solid var(--
|
|
429
|
+
border-bottom: 1px solid var(--md-sys-color-neutral-outline-variant);
|
|
430
430
|
margin-bottom: var(--a-space-1);
|
|
431
431
|
}
|
|
432
432
|
select-ui [slot="listbox"] [data-select-all-btn] {
|
|
@@ -435,7 +435,7 @@ select-ui [slot="listbox"] [data-select-all-btn] {
|
|
|
435
435
|
border: none;
|
|
436
436
|
font: inherit;
|
|
437
437
|
font-size: var(--a-ui-xs);
|
|
438
|
-
color: var(--
|
|
438
|
+
color: var(--md-sys-color-primary);
|
|
439
439
|
cursor: pointer;
|
|
440
440
|
padding: var(--a-space-1) var(--a-space-2);
|
|
441
441
|
border-radius: var(--a-radius-sm);
|
|
@@ -460,7 +460,7 @@ select-ui [role="option"][data-multi-option] [data-checkbox] {
|
|
|
460
460
|
height: 1rem;
|
|
461
461
|
border: 1px solid var(--a-ui-border);
|
|
462
462
|
border-radius: var(--a-radius-sm);
|
|
463
|
-
background: var(--
|
|
463
|
+
background: var(--md-sys-color-neutral-surface-bright);
|
|
464
464
|
margin-inline-end: 0; /* row gap already provides spacing */
|
|
465
465
|
transition:
|
|
466
466
|
background var(--a-duration-fast) var(--a-easing),
|
|
@@ -476,8 +476,8 @@ select-ui [role="option"][data-multi-option] [data-checkbox] icon-ui {
|
|
|
476
476
|
transition: color var(--a-duration-fast) var(--a-easing);
|
|
477
477
|
}
|
|
478
478
|
select-ui [role="option"][data-multi-option][aria-selected="true"] [data-checkbox] {
|
|
479
|
-
background: var(--
|
|
480
|
-
border-color: var(--
|
|
479
|
+
background: var(--md-sys-color-primary);
|
|
480
|
+
border-color: var(--md-sys-color-primary);
|
|
481
481
|
}
|
|
482
482
|
select-ui [role="option"][data-multi-option][aria-selected="true"] [data-checkbox] icon-ui {
|
|
483
483
|
color: var(--a-chrome-light);
|
|
@@ -79,11 +79,11 @@
|
|
|
79
79
|
"tokens": {
|
|
80
80
|
"--skip-nav-bg": {
|
|
81
81
|
"description": "Background of the visible (focused) skip link.",
|
|
82
|
-
"default": "var(--a-
|
|
82
|
+
"default": "var(--a-primary-bg)"
|
|
83
83
|
},
|
|
84
84
|
"--skip-nav-fg": {
|
|
85
85
|
"description": "Foreground of the visible (focused) skip link.",
|
|
86
|
-
"default": "var(--
|
|
86
|
+
"default": "var(--md-sys-color-primary-on-primary)"
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
89
|
"traits": [],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
@scope (skip-nav-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
|
-
--skip-nav-bg: var(--a-
|
|
4
|
-
--skip-nav-fg: var(--
|
|
3
|
+
--skip-nav-bg: var(--a-primary-bg);
|
|
4
|
+
--skip-nav-fg: var(--md-sys-color-primary-on-primary);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
/* Host renders nothing in flow — pure behavioral wrapper. The inner
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
overflow: visible;
|
|
49
49
|
clip: auto;
|
|
50
50
|
clip-path: none;
|
|
51
|
-
outline: 2px solid var(--a-
|
|
51
|
+
outline: 2px solid var(--a-primary-bg);
|
|
52
52
|
outline-offset: 2px;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -36,10 +36,10 @@ traits: []
|
|
|
36
36
|
tokens:
|
|
37
37
|
--skip-nav-bg:
|
|
38
38
|
description: Background of the visible (focused) skip link.
|
|
39
|
-
default: var(--a-
|
|
39
|
+
default: var(--a-primary-bg)
|
|
40
40
|
--skip-nav-fg:
|
|
41
41
|
description: Foreground of the visible (focused) skip link.
|
|
42
|
-
default: var(--
|
|
42
|
+
default: var(--md-sys-color-primary-on-primary)
|
|
43
43
|
a2ui:
|
|
44
44
|
rules:
|
|
45
45
|
- rule: 'Place as the FIRST focusable element on the page — inside <body> before any nav / shell chrome. Otherwise keyboard users still tab through the nav before hitting the skip link.'
|
|
@@ -95,8 +95,8 @@
|
|
|
95
95
|
--slider-track-bg: var(--a-bg-muted);
|
|
96
96
|
--slider-fill-bg: var(--a-primary-bg);
|
|
97
97
|
--slider-thumb-bg: var(--a-chrome-light);
|
|
98
|
-
--slider-fill-bg-disabled: var(--
|
|
99
|
-
--slider-thumb-bg-disabled: var(--
|
|
98
|
+
--slider-fill-bg-disabled: var(--md-sys-color-neutral-scrim-weaker);
|
|
99
|
+
--slider-thumb-bg-disabled: var(--md-sys-color-neutral-scrim-weak);
|
|
100
100
|
|
|
101
101
|
/* ── Typography ── */
|
|
102
102
|
--slider-font-size: var(--a-ui-size);
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
[slot="label"] {
|
|
137
|
-
color: var(--
|
|
137
|
+
color: var(--md-sys-color-neutral-on-surface-variant);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
[slot="readout"] {
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
[slot="value"] {
|
|
147
|
-
color: var(--
|
|
147
|
+
color: var(--md-sys-color-neutral-on-surface);
|
|
148
148
|
font-weight: var(--slider-value-weight);
|
|
149
149
|
font-variant-numeric: tabular-nums;
|
|
150
150
|
}
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
}
|
|
287
287
|
:scope[dual] [slot="value-lower"],
|
|
288
288
|
:scope[dual] [slot="value-upper"] {
|
|
289
|
-
color: var(--
|
|
289
|
+
color: var(--md-sys-color-neutral-on-surface);
|
|
290
290
|
font-weight: var(--slider-value-weight);
|
|
291
291
|
font-variant-numeric: tabular-nums;
|
|
292
292
|
}
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
|
|
46
46
|
/* ── Tones (override --spinner-color token) ────────────────────── */
|
|
47
47
|
:scope[tone="current"] { --spinner-color: currentColor; }
|
|
48
|
-
:scope[tone="subtle"] { --spinner-color: var(--
|
|
49
|
-
:scope[tone="accent"] { --spinner-color: var(--a-
|
|
48
|
+
:scope[tone="subtle"] { --spinner-color: var(--md-sys-color-neutral-on-surface-variant); }
|
|
49
|
+
:scope[tone="accent"] { --spinner-color: var(--a-primary-strong); }
|
|
50
50
|
:scope[tone="inverse"] { --spinner-color: var(--a-chrome-light); }
|
|
51
51
|
|
|
52
52
|
/* ── Variant: ARC (default) — rotating quarter-circle border ───── */
|
|
@@ -191,8 +191,10 @@ describe('spinner-ui — CSS source contract', () => {
|
|
|
191
191
|
});
|
|
192
192
|
|
|
193
193
|
it('tone="subtle" / "accent" / "inverse" set --spinner-color via semantic tokens', () => {
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
// subtle reads the Material on-surface-variant role since the
|
|
195
|
+
// static-token migration (material-color-bridge-contract.md).
|
|
196
|
+
expect(SPINNER_CSS).toMatch(/:scope\[tone="subtle"\][^}]*--spinner-color:\s*var\(--md-sys-color-neutral-on-surface-variant\)/);
|
|
197
|
+
expect(SPINNER_CSS).toMatch(/:scope\[tone="accent"\][^}]*--spinner-color:\s*var\(--a-primary-strong\)/);
|
|
196
198
|
expect(SPINNER_CSS).toMatch(/:scope\[tone="inverse"\][^}]*--spinner-color:\s*var\(--a-chrome-light\)/);
|
|
197
199
|
});
|
|
198
200
|
|
package/components/stat/stat.css
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
--stat-value-weight: var(--a-weight-bold);
|
|
7
7
|
--stat-value-fg: var(--a-fg-strong);
|
|
8
8
|
--stat-label-size: var(--a-ui-size);
|
|
9
|
-
--stat-label-fg: var(--
|
|
9
|
+
--stat-label-fg: var(--md-sys-color-neutral-on-surface);
|
|
10
10
|
--stat-change-size: var(--a-ui-size);
|
|
11
11
|
--stat-up-fg: var(--a-success-bg);
|
|
12
12
|
--stat-down-fg: var(--a-danger-bg);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://adiaui.dev/a2ui/v0_9/components/StepProgress.json",
|
|
4
4
|
"title": "StepProgress",
|
|
5
|
-
"description": "Discrete-dash step-progress indicator. One <span> dash per step in\n[total]; the first [value] dashes are filled with --
|
|
5
|
+
"description": "Discrete-dash step-progress indicator. One <span> dash per step in\n[total]; the first [value] dashes are filled with --md-sys-color-primary. Used\nin multi-step flows (registration, onboarding, wizards). Replaces\nthe bespoke `[data-onb-progress]` + `[data-reg-progress]` markup\nthat lived in onboarding.css + registration.css with a single\nprimitive.\n",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"allOf": [
|
|
8
8
|
{
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Discrete-dash step progress indicator. One dash per step in the
|
|
20
20
|
* total; the first `value` dashes carry [data-active] and paint with
|
|
21
|
-
* --a-
|
|
21
|
+
* --a-primary. Used in registration + onboarding flows; replaces the
|
|
22
22
|
* bespoke `[data-onb-progress]` / `[data-reg-progress]` markup.
|
|
23
23
|
*
|
|
24
24
|
* Primitive shape (per ROADMAP § Done):
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
--step-progress-track-gap: var(--a-space-1);
|
|
10
10
|
--step-progress-dash-h: 4px;
|
|
11
11
|
--step-progress-dash-radius: var(--a-radius-full);
|
|
12
|
-
--step-progress-dash-bg: var(--
|
|
13
|
-
--step-progress-dash-bg-active: var(--
|
|
12
|
+
--step-progress-dash-bg: var(--md-sys-color-neutral-outline-variant);
|
|
13
|
+
--step-progress-dash-bg-active: var(--md-sys-color-primary);
|
|
14
14
|
--step-progress-caption-fg: var(--a-fg-muted);
|
|
15
15
|
--step-progress-caption-size: var(--a-ui-sm);
|
|
16
16
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `<step-progress-ui>` — Discrete-dash step-progress indicator. One <span> dash per step in
|
|
3
|
-
[total]; the first [value] dashes are filled with --
|
|
3
|
+
[total]; the first [value] dashes are filled with --md-sys-color-primary. Used
|
|
4
4
|
in multi-step flows (registration, onboarding, wizards). Replaces
|
|
5
5
|
the bespoke `[data-onb-progress]` + `[data-reg-progress]` markup
|
|
6
6
|
that lived in onboarding.css + registration.css with a single
|
|
@@ -7,7 +7,7 @@ category: feedback
|
|
|
7
7
|
version: 1
|
|
8
8
|
description: |
|
|
9
9
|
Discrete-dash step-progress indicator. One <span> dash per step in
|
|
10
|
-
[total]; the first [value] dashes are filled with --
|
|
10
|
+
[total]; the first [value] dashes are filled with --md-sys-color-primary. Used
|
|
11
11
|
in multi-step flows (registration, onboarding, wizards). Replaces
|
|
12
12
|
the bespoke `[data-onb-progress]` + `[data-reg-progress]` markup
|
|
13
13
|
that lived in onboarding.css + registration.css with a single
|
|
@@ -13,23 +13,23 @@
|
|
|
13
13
|
:where(:scope) {
|
|
14
14
|
/* ── Circle ── */
|
|
15
15
|
--stepper-size: 2rem;
|
|
16
|
-
--stepper-bg: var(--
|
|
17
|
-
--stepper-border: var(--
|
|
16
|
+
--stepper-bg: var(--md-sys-color-neutral-background);
|
|
17
|
+
--stepper-border: var(--md-sys-color-neutral-outline);
|
|
18
18
|
--stepper-fg: var(--a-fg-muted);
|
|
19
19
|
--stepper-font: var(--a-ui-sm);
|
|
20
20
|
--stepper-weight: var(--a-weight-medium);
|
|
21
21
|
--stepper-border-size: 2px;
|
|
22
22
|
|
|
23
|
-
--stepper-bg-active: var(--
|
|
24
|
-
--stepper-border-active: var(--
|
|
25
|
-
--stepper-fg-active: var(--
|
|
23
|
+
--stepper-bg-active: var(--md-sys-color-neutral-background);
|
|
24
|
+
--stepper-border-active: var(--md-sys-color-primary);
|
|
25
|
+
--stepper-fg-active: var(--md-sys-color-primary);
|
|
26
26
|
|
|
27
|
-
--stepper-bg-done: var(--
|
|
28
|
-
--stepper-border-done: var(--
|
|
29
|
-
--stepper-fg-done: var(--
|
|
27
|
+
--stepper-bg-done: var(--md-sys-color-primary);
|
|
28
|
+
--stepper-border-done: var(--md-sys-color-primary);
|
|
29
|
+
--stepper-fg-done: var(--md-sys-color-primary-on-primary);
|
|
30
30
|
|
|
31
|
-
--stepper-line: var(--
|
|
32
|
-
--stepper-line-done: var(--
|
|
31
|
+
--stepper-line: var(--md-sys-color-neutral-outline-variant);
|
|
32
|
+
--stepper-line-done: var(--md-sys-color-primary);
|
|
33
33
|
--stepper-line-size: 2px;
|
|
34
34
|
|
|
35
35
|
/* ── Layout ──
|
|
@@ -69,23 +69,23 @@
|
|
|
69
69
|
co-located item legitimately reads parent tokens (the same
|
|
70
70
|
scope pattern as menu-item-ui inside menu-ui's popover). */
|
|
71
71
|
--stepper-item-size: var(--stepper-size, 2rem);
|
|
72
|
-
--stepper-item-bg: var(--stepper-bg, var(--
|
|
73
|
-
--stepper-item-border: var(--stepper-border, var(--
|
|
72
|
+
--stepper-item-bg: var(--stepper-bg, var(--md-sys-color-neutral-background));
|
|
73
|
+
--stepper-item-border: var(--stepper-border, var(--md-sys-color-neutral-outline));
|
|
74
74
|
--stepper-item-fg: var(--stepper-fg, var(--a-fg-muted));
|
|
75
75
|
--stepper-item-font: var(--stepper-font, var(--a-ui-sm));
|
|
76
76
|
--stepper-item-weight: var(--stepper-weight, var(--a-weight-medium));
|
|
77
77
|
--stepper-item-border-size: var(--stepper-border-size, 2px);
|
|
78
78
|
|
|
79
|
-
--stepper-item-bg-active: var(--stepper-bg-active, var(--
|
|
80
|
-
--stepper-item-border-active: var(--stepper-border-active, var(--
|
|
81
|
-
--stepper-item-fg-active: var(--stepper-fg-active, var(--
|
|
79
|
+
--stepper-item-bg-active: var(--stepper-bg-active, var(--md-sys-color-neutral-background));
|
|
80
|
+
--stepper-item-border-active: var(--stepper-border-active, var(--md-sys-color-primary));
|
|
81
|
+
--stepper-item-fg-active: var(--stepper-fg-active, var(--md-sys-color-primary));
|
|
82
82
|
|
|
83
|
-
--stepper-item-bg-done: var(--stepper-bg-done, var(--
|
|
84
|
-
--stepper-item-border-done: var(--stepper-border-done, var(--
|
|
85
|
-
--stepper-item-fg-done: var(--stepper-fg-done, var(--
|
|
83
|
+
--stepper-item-bg-done: var(--stepper-bg-done, var(--md-sys-color-primary));
|
|
84
|
+
--stepper-item-border-done: var(--stepper-border-done, var(--md-sys-color-primary));
|
|
85
|
+
--stepper-item-fg-done: var(--stepper-fg-done, var(--md-sys-color-primary-on-primary));
|
|
86
86
|
|
|
87
|
-
--stepper-item-line: var(--stepper-line, var(--
|
|
88
|
-
--stepper-item-line-done: var(--stepper-line-done, var(--
|
|
87
|
+
--stepper-item-line: var(--stepper-line, var(--md-sys-color-neutral-outline-variant));
|
|
88
|
+
--stepper-item-line-done: var(--stepper-line-done, var(--md-sys-color-primary));
|
|
89
89
|
--stepper-item-line-size: var(--stepper-line-size, 2px);
|
|
90
90
|
|
|
91
91
|
--stepper-item-radius-full: var(--a-radius-full);
|
|
@@ -98,9 +98,9 @@
|
|
|
98
98
|
|
|
99
99
|
--stepper-item-label-weight: var(--a-weight-medium);
|
|
100
100
|
--stepper-item-label-size: var(--a-ui-size);
|
|
101
|
-
--stepper-item-label-fg: var(--
|
|
101
|
+
--stepper-item-label-fg: var(--md-sys-color-neutral-on-surface);
|
|
102
102
|
--stepper-item-pending-fg: var(--a-fg-muted);
|
|
103
|
-
--stepper-item-desc-fg: var(--
|
|
103
|
+
--stepper-item-desc-fg: var(--md-sys-color-neutral-on-surface-variant);
|
|
104
104
|
--stepper-item-desc-size: var(--a-ui-sm);
|
|
105
105
|
|
|
106
106
|
--stepper-item-icon-size: 0.625rem;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
@scope (stream-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
|
-
--stream-fg: var(--
|
|
3
|
+
--stream-fg: var(--md-sys-color-neutral-on-surface);
|
|
4
4
|
--stream-font-size: var(--a-body-size);
|
|
5
5
|
--stream-font-family: var(--a-font-family);
|
|
6
6
|
--stream-leading: var(--a-body-leading);
|
|
7
|
-
--stream-cursor-color: var(--a-
|
|
7
|
+
--stream-cursor-color: var(--a-primary-bg);
|
|
8
8
|
--stream-blink-duration: 0.6s;
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -540,7 +540,7 @@ export class UISwatch extends UIElement {
|
|
|
540
540
|
}
|
|
541
541
|
// Resolve the actual rendered color. For var(...) refs the inline
|
|
542
542
|
// [color] attr is what was set; we read from computed style so that
|
|
543
|
-
// CSS-resolved tokens (e.g. var(--
|
|
543
|
+
// CSS-resolved tokens (e.g. var(--md-sys-color-primary)) get their final value.
|
|
544
544
|
const probe = this.color || getComputedStyle(this).getPropertyValue('--swatch-color').trim();
|
|
545
545
|
if (probe === this.#lastColorForContrast) return;
|
|
546
546
|
this.#lastColorForContrast = probe;
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<swatch-ui> still renders something visible; consumers usually set
|
|
19
19
|
--swatch-color via [color] attr or inline style. */
|
|
20
20
|
--swatch-color: var(--a-data-0);
|
|
21
|
-
--swatch-label-fg: var(--
|
|
21
|
+
--swatch-label-fg: var(--md-sys-color-neutral-on-surface-variant);
|
|
22
22
|
|
|
23
23
|
/* ── Shape ── */
|
|
24
24
|
--swatch-radius-block: var(--a-radius-sm);
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
--swatch-label-step-size: 10px;
|
|
33
33
|
--swatch-label-step-mt: 4px;
|
|
34
34
|
--swatch-detail-size: var(--a-ui-xs);
|
|
35
|
-
--swatch-detail-fg: var(--
|
|
35
|
+
--swatch-detail-fg: var(--md-sys-color-neutral-on-surface-variant);
|
|
36
36
|
|
|
37
37
|
/* ── Badge ── */
|
|
38
38
|
--swatch-badge-size: var(--a-ui-xs);
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
/* ── Copy button ── */
|
|
45
45
|
--swatch-copy-size: var(--a-space-3);
|
|
46
46
|
--swatch-copy-fg: var(--a-fg-muted);
|
|
47
|
-
--swatch-copy-fg-ok: var(--
|
|
48
|
-
--swatch-copy-fg-fail: var(--
|
|
47
|
+
--swatch-copy-fg-ok: var(--md-sys-color-success);
|
|
48
|
+
--swatch-copy-fg-fail: var(--md-sys-color-warning);
|
|
49
49
|
|
|
50
50
|
/* ── Selectable ring ── */
|
|
51
|
-
--swatch-select-ring: var(--
|
|
51
|
+
--swatch-select-ring: var(--md-sys-color-primary);
|
|
52
52
|
--swatch-select-ring-width: 2px;
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -238,17 +238,17 @@
|
|
|
238
238
|
font-size: var(--swatch-badge-size);
|
|
239
239
|
line-height: 1;
|
|
240
240
|
border-radius: var(--swatch-badge-radius);
|
|
241
|
-
box-shadow: 0 0 0 1px color-mix(in oklab, var(--
|
|
241
|
+
box-shadow: 0 0 0 1px color-mix(in oklab, var(--md-sys-color-neutral-outline-variant) 60%, transparent);
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
/* Make sure the badge has a positioning context — the tile holds it. */
|
|
245
245
|
:scope { position: relative; }
|
|
246
246
|
|
|
247
247
|
/* Badge variants — symbol color encodes semantic */
|
|
248
|
-
:scope > [data-badge] > [data-badge-variant="out-of-gamut"] { color: var(--
|
|
249
|
-
:scope > [data-badge] > [data-badge-variant="p3-only"] { color: var(--
|
|
250
|
-
:scope > [data-badge] > [data-badge-variant="apca-pass"] { color: var(--
|
|
251
|
-
:scope > [data-badge] > [data-badge-variant="apca-fail"] { color: var(--
|
|
248
|
+
:scope > [data-badge] > [data-badge-variant="out-of-gamut"] { color: var(--md-sys-color-warning); }
|
|
249
|
+
:scope > [data-badge] > [data-badge-variant="p3-only"] { color: var(--md-sys-color-info); }
|
|
250
|
+
:scope > [data-badge] > [data-badge-variant="apca-pass"] { color: var(--md-sys-color-success); }
|
|
251
|
+
:scope > [data-badge] > [data-badge-variant="apca-fail"] { color: var(--md-sys-color-danger); }
|
|
252
252
|
|
|
253
253
|
/* ═══════ Auto-contrast label color ═══════
|
|
254
254
|
When [auto-contrast] is set, JS computes the swatch's OKLab L and
|
|
@@ -303,7 +303,7 @@
|
|
|
303
303
|
border-radius: var(--a-radius-xs);
|
|
304
304
|
transition: color var(--a-duration-fast) var(--a-easing-out), background var(--a-duration-fast) var(--a-easing-out);
|
|
305
305
|
}
|
|
306
|
-
:scope > [data-copy]:hover { color: var(--
|
|
306
|
+
:scope > [data-copy]:hover { color: var(--md-sys-color-neutral-on-surface); background: var(--a-bg-muted); }
|
|
307
307
|
:scope > [data-copy]:focus-visible {
|
|
308
308
|
outline: var(--swatch-select-ring-width) solid var(--swatch-select-ring);
|
|
309
309
|
outline-offset: 1px;
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
the row. The hitbox stays at 1rem; only the visible circle grows. */
|
|
35
35
|
--swiper-dot-size-active: calc(var(--swiper-dot-size) + var(--a-space-1));
|
|
36
36
|
--swiper-dot-gap: var(--a-space-2);
|
|
37
|
-
--swiper-dot-bg: var(--
|
|
38
|
-
--swiper-dot-bg-active: var(--
|
|
37
|
+
--swiper-dot-bg: var(--md-sys-color-neutral-outline);
|
|
38
|
+
--swiper-dot-bg-active: var(--md-sys-color-neutral-on-surface);
|
|
39
39
|
--swiper-dot-radius: var(--a-radius-full);
|
|
40
40
|
|
|
41
41
|
/* ── Host vertical rhythm ── */
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
--swiper-btn-size: 3rem;
|
|
53
53
|
--swiper-btn-bg: transparent;
|
|
54
54
|
--swiper-btn-bg-hover: var(--a-bg-muted);
|
|
55
|
-
--swiper-btn-fg: var(--
|
|
55
|
+
--swiper-btn-fg: var(--md-sys-color-neutral-on-surface);
|
|
56
56
|
--swiper-btn-radius: var(--a-radius-full);
|
|
57
57
|
--swiper-btn-shadow: none;
|
|
58
58
|
--swiper-btn-offset: var(--a-space-2);
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
:scope[chrome="toolbar"] > [data-swiper-head] > [data-swiper-label] {
|
|
246
246
|
font-size: var(--a-ui-md);
|
|
247
247
|
font-weight: var(--a-weight-semibold);
|
|
248
|
-
color: var(--
|
|
248
|
+
color: var(--md-sys-color-neutral-on-surface);
|
|
249
249
|
}
|
|
250
250
|
|
|
251
251
|
:scope[chrome="toolbar"] > [data-swiper-head] > [data-swiper-paddles] {
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
|
|
256
256
|
:scope[chrome="toolbar"] > [data-swiper-foot] > [data-swiper-counter] {
|
|
257
257
|
font-size: var(--a-ui-sm);
|
|
258
|
-
color: var(--
|
|
258
|
+
color: var(--md-sys-color-neutral-on-surface-variant);
|
|
259
259
|
font-variant-numeric: tabular-nums;
|
|
260
260
|
}
|
|
261
261
|
|
|
@@ -29,8 +29,8 @@ switch-ui[checked] [slot="thumb"] {
|
|
|
29
29
|
|
|
30
30
|
/* ── Colors ── */
|
|
31
31
|
--switch-track-bg-hover: var(--a-bg-muted);
|
|
32
|
-
--switch-track-bg-checked-hover: var(--
|
|
33
|
-
--switch-track-border-checked-hover: var(--
|
|
32
|
+
--switch-track-bg-checked-hover: var(--md-sys-color-primary-hover);
|
|
33
|
+
--switch-track-border-checked-hover: var(--md-sys-color-primary-hover);
|
|
34
34
|
--switch-thumb-shadow: var(--a-shadow-sm);
|
|
35
35
|
|
|
36
36
|
/* ── Transition ── */
|
|
@@ -45,11 +45,11 @@ switch-ui[checked] [slot="thumb"] {
|
|
|
45
45
|
--switch-track-width: calc(var(--a-toggle-size) * 1.8);
|
|
46
46
|
--switch-track-bg: var(--a-ui-bg);
|
|
47
47
|
--switch-track-border: var(--a-ui-border);
|
|
48
|
-
--switch-track-border-hover: var(--
|
|
48
|
+
--switch-track-border-hover: var(--md-sys-color-neutral-on-surface-variant);
|
|
49
49
|
|
|
50
50
|
/* ── Track: checked ── */
|
|
51
|
-
--switch-track-bg-checked: var(--
|
|
52
|
-
--switch-track-border-checked: var(--
|
|
51
|
+
--switch-track-bg-checked: var(--md-sys-color-primary);
|
|
52
|
+
--switch-track-border-checked: var(--md-sys-color-primary);
|
|
53
53
|
|
|
54
54
|
/* ── Thumb ── (derived from track; inset accounts for border + visual gap) */
|
|
55
55
|
--switch-thumb-inset: 2px;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// cell-types.js - Built-in cell type registry for table-ui
|
|
2
2
|
|
|
3
|
+
import { inline } from '../../core/markdown.js';
|
|
4
|
+
|
|
3
5
|
const cellTypes = {};
|
|
4
6
|
|
|
5
7
|
function registerCellType(name, config) {
|
|
@@ -216,7 +218,7 @@ registerCellType('link', {
|
|
|
216
218
|
if (!el) {
|
|
217
219
|
cell.textContent = '';
|
|
218
220
|
el = document.createElement('a');
|
|
219
|
-
el.style.color = 'var(--table-accent, var(--
|
|
221
|
+
el.style.color = 'var(--table-accent, var(--md-sys-color-primary))';
|
|
220
222
|
el.style.textDecoration = 'none';
|
|
221
223
|
cell.appendChild(el);
|
|
222
224
|
}
|
|
@@ -233,7 +235,34 @@ registerCellType('link', {
|
|
|
233
235
|
sortFn: 'alphanumeric',
|
|
234
236
|
});
|
|
235
237
|
|
|
236
|
-
// 11.
|
|
238
|
+
// 11. markdown — TKT-0008: cells with inline `code`/**bold**/*italic*/
|
|
239
|
+
// [link](href) content the docs-transpiler couldn't express as a plain
|
|
240
|
+
// string (table.yaml {columns,data} contract carries plain values; this
|
|
241
|
+
// is the one escape hatch for INLINE-safe rich text, reusing the same
|
|
242
|
+
// inline() converter core/markdown.js already round-trips against
|
|
243
|
+
// scripts/build/lib/docs-transpiler.mjs's convertInline() — the two are
|
|
244
|
+
// paired encode/decode halves of one contract, not independent parsers).
|
|
245
|
+
// Block-level content (nested tables, component tags, colspan/rowspan)
|
|
246
|
+
// stays out of scope; those still fall back to the preserved-HTML Code
|
|
247
|
+
// panel synthesizeTable already emits.
|
|
248
|
+
registerCellType('markdown', {
|
|
249
|
+
render(value, row, cell) {
|
|
250
|
+
let s = cell.firstElementChild;
|
|
251
|
+
if (!s || s.tagName !== 'SPAN') {
|
|
252
|
+
cell.replaceChildren();
|
|
253
|
+
s = cell.appendChild(document.createElement('span'));
|
|
254
|
+
}
|
|
255
|
+
s.innerHTML = inline(String(value ?? ''));
|
|
256
|
+
cell.title = s.textContent;
|
|
257
|
+
},
|
|
258
|
+
format(value) {
|
|
259
|
+
return String(value ?? '');
|
|
260
|
+
},
|
|
261
|
+
align: 'left',
|
|
262
|
+
sortFn: 'alphanumeric',
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// 12. progress
|
|
237
266
|
registerCellType('progress', {
|
|
238
267
|
render(value, row, cell) {
|
|
239
268
|
let wrapper = cell.querySelector('row-ui');
|
|
@@ -262,7 +291,7 @@ registerCellType('progress', {
|
|
|
262
291
|
sortFn: 'numeric',
|
|
263
292
|
});
|
|
264
293
|
|
|
265
|
-
//
|
|
294
|
+
// 13. actions
|
|
266
295
|
registerCellType('actions', {
|
|
267
296
|
render(value, row, cell, meta) {
|
|
268
297
|
const actions = meta?.actions || [];
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"data": {
|
|
24
24
|
"description": "Row records. Array of plain objects keyed to columns[].key.",
|
|
25
|
-
"$ref": "common_types.json#/$defs/
|
|
25
|
+
"$ref": "common_types.json#/$defs/DynamicObjectList"
|
|
26
26
|
},
|
|
27
27
|
"density": {
|
|
28
28
|
"description": "Controls cell padding and row height. 'compact' for dense data, 'standard' for default spacing, 'comfortable' for spacious rows.",
|
|
@@ -9,23 +9,28 @@
|
|
|
9
9
|
--table-heading-fg: var(--a-fg-muted);
|
|
10
10
|
--table-heading-bg: transparent;
|
|
11
11
|
|
|
12
|
-
--table-fg: var(--
|
|
12
|
+
--table-fg: var(--md-sys-color-neutral-on-surface);
|
|
13
13
|
--table-fg-hover: var(--a-fg-strong);
|
|
14
14
|
--table-fg-secondary: var(--a-fg-muted);
|
|
15
|
-
--table-border: var(--
|
|
16
|
-
--table-border-strong: var(--
|
|
15
|
+
--table-border: var(--md-sys-color-neutral-outline-variant);
|
|
16
|
+
--table-border-strong: var(--md-sys-color-neutral-outline);
|
|
17
17
|
--table-py: var(--a-space-3);
|
|
18
18
|
--table-px: var(--a-space-4);
|
|
19
19
|
|
|
20
20
|
--table-row-bg: transparent;
|
|
21
|
-
|
|
21
|
+
/* container-low, not the generic --a-bg-hover state-layer token
|
|
22
|
+
(TKT-0020) — --a-bg-hover / --md-sys-color-neutral-hover is tuned
|
|
23
|
+
for small interactive targets (buttons); the same tone across a
|
|
24
|
+
full-width row reads too heavy. container-low is the lighter,
|
|
25
|
+
large-surface-appropriate tint. */
|
|
26
|
+
--table-row-bg-hover: var(--md-sys-color-neutral-container-low);
|
|
22
27
|
--table-row-bg-selected: var(--a-bg-selected);
|
|
23
28
|
--table-row-bg-striped: var(--a-bg-subtle);
|
|
24
29
|
|
|
25
30
|
--table-sort-fg: var(--a-fg-muted);
|
|
26
|
-
--table-accent: var(--
|
|
31
|
+
--table-accent: var(--md-sys-color-primary);
|
|
27
32
|
--table-fg-disabled: var(--a-ui-text-disabled);
|
|
28
|
-
--table-bg: var(--
|
|
33
|
+
--table-bg: var(--md-sys-color-neutral-background);
|
|
29
34
|
/* No default rounding — table-ui composes inside card-ui / drawer-ui
|
|
30
35
|
which own the surface rounding; doubly-rounded corners (table inside
|
|
31
36
|
card) look broken. Override per-instance via `--table-radius: …` if
|
|
@@ -40,7 +45,7 @@
|
|
|
40
45
|
/* ── Filter popover ── */
|
|
41
46
|
--table-filter-bg: var(--a-canvas);
|
|
42
47
|
--table-filter-fg: var(--a-canvas-text);
|
|
43
|
-
--table-filter-border: var(--
|
|
48
|
+
--table-filter-border: var(--md-sys-color-neutral-outline);
|
|
44
49
|
--table-filter-radius: var(--a-radius-md);
|
|
45
50
|
--table-filter-inset: var(--a-space-2);
|
|
46
51
|
--table-filter-gap: var(--a-space-1);
|
|
@@ -50,11 +55,11 @@
|
|
|
50
55
|
--table-filter-input-radius: var(--a-radius-sm);
|
|
51
56
|
--table-filter-input-size: var(--a-ui-tiny);
|
|
52
57
|
--table-filter-btn-px: var(--a-space-1);
|
|
53
|
-
--table-filter-clear-fg: var(--
|
|
58
|
+
--table-filter-clear-fg: var(--md-sys-color-primary);
|
|
54
59
|
|
|
55
60
|
/* ── Chips / filter bar ── */
|
|
56
61
|
--table-chip-bar-bg: var(--a-canvas-subtle);
|
|
57
|
-
--table-chip-bar-border: var(--
|
|
62
|
+
--table-chip-bar-border: var(--md-sys-color-neutral-outline);
|
|
58
63
|
--table-chip-bar-gap: var(--a-space-1);
|
|
59
64
|
--table-chip-bar-py: var(--a-space-1);
|
|
60
65
|
--table-chip-bar-px: var(--a-space-2);
|
|
@@ -62,7 +67,7 @@
|
|
|
62
67
|
|
|
63
68
|
/* ── Detail / expansion row ── */
|
|
64
69
|
--table-detail-bg: var(--a-canvas-subtle);
|
|
65
|
-
--table-detail-border: var(--
|
|
70
|
+
--table-detail-border: var(--md-sys-color-neutral-outline);
|
|
66
71
|
--table-detail-py: var(--a-space-3);
|
|
67
72
|
--table-detail-px: var(--a-space-4);
|
|
68
73
|
|
|
@@ -71,7 +76,7 @@
|
|
|
71
76
|
--table-pinned-shadow: var(--a-chrome-shadow-soft);
|
|
72
77
|
|
|
73
78
|
/* ── Aggregation row ── */
|
|
74
|
-
--table-agg-border: var(--
|
|
79
|
+
--table-agg-border: var(--md-sys-color-neutral-outline);
|
|
75
80
|
--table-agg-size: var(--a-ui-tiny);
|
|
76
81
|
--table-agg-py: var(--a-space-2);
|
|
77
82
|
--table-agg-px: var(--a-space-3);
|