@adia-ai/web-components 0.7.3 → 0.7.5
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 +31 -0
- package/components/accordion/accordion.css +2 -2
- package/components/action-list/action-list.css +2 -2
- package/components/agent-artifact/agent-artifact.css +31 -31
- package/components/agent-feedback-bar/agent-feedback-bar.css +10 -10
- package/components/agent-questions/agent-questions.css +59 -57
- package/components/agent-reasoning/agent-reasoning.css +54 -54
- package/components/agent-suggestions/agent-suggestions.css +4 -4
- package/components/agent-trace/agent-trace.css +53 -53
- package/components/alert/alert.css +53 -53
- package/components/avatar/avatar.css +27 -27
- package/components/badge/badge.css +56 -53
- package/components/block/block.css +16 -16
- package/components/blockquote/blockquote.css +16 -16
- package/components/breadcrumb/breadcrumb.css +23 -23
- package/components/button/button.css +123 -101
- package/components/calendar-grid/calendar-grid.css +95 -92
- package/components/calendar-picker/calendar-picker.css +141 -139
- package/components/canvas/canvas.css +12 -12
- package/components/card/card.css +83 -83
- package/components/chart/chart.css +218 -218
- package/components/chart-legend/chart-legend.css +26 -26
- package/components/check/check.css +40 -40
- package/components/code/code.css +125 -125
- package/components/col/col.css +15 -15
- package/components/color-picker/color-picker.css +55 -55
- package/components/combobox/combobox.css +64 -62
- package/components/command/command.css +91 -91
- package/components/context-menu/context-menu.css +1 -1
- package/components/date-range-picker/date-range-picker.css +59 -59
- package/components/datetime-picker/datetime-picker.css +25 -25
- package/components/demo-toggle/demo-toggle.css +27 -27
- package/components/description-list/description-list.css +18 -18
- package/components/divider/divider.css +24 -24
- package/components/embed/embed.css +6 -6
- package/components/empty-state/empty-state.css +29 -29
- package/components/feed/feed.css +12 -12
- package/components/field/field.css +28 -28
- package/components/field/field.test.js +2 -2
- package/components/fields/fields.css +5 -5
- package/components/grid/grid.a2ui.json +10 -0
- package/components/grid/grid.css +23 -5
- package/components/grid/grid.d.ts +4 -0
- package/components/grid/grid.yaml +13 -0
- package/components/heatmap/heatmap.css +61 -61
- package/components/icon/icon.css +12 -12
- package/components/image/image.css +14 -14
- package/components/inline-edit/inline-edit.css +16 -16
- package/components/inline-message/inline-message.css +16 -16
- package/components/input/input.css +69 -66
- package/components/inspector/inspector.css +6 -6
- package/components/integration-card/integration-card.css +41 -41
- package/components/integration-card/integration-card.test.js +4 -4
- package/components/kbd/kbd.css +47 -40
- package/components/link/link.css +12 -12
- package/components/list/list.css +8 -8
- package/components/list-window/list-window.css +10 -10
- package/components/loading-overlay/loading-overlay.css +17 -18
- package/components/loading-overlay/loading-overlay.test.js +8 -8
- package/components/mark/mark.css +16 -16
- package/components/menu/menu.css +9 -9
- package/components/modal/modal.class.js +5 -9
- package/components/modal/modal.css +43 -43
- package/components/nav/nav.css +40 -40
- package/components/nav-group/nav-group.css +54 -54
- package/components/nav-item/nav-item.css +44 -44
- package/components/noodles/noodles.css +31 -31
- package/components/number-format/number-format.css +4 -4
- package/components/option-card/option-card.css +70 -70
- package/components/otp-input/otp-input.css +29 -29
- package/components/page/page.a2ui.json +1 -1
- package/components/page/page.css +27 -27
- package/components/page/page.d.ts +1 -1
- package/components/page/page.yaml +1 -1
- package/components/pagination/pagination.css +6 -6
- package/components/pane/pane.css +57 -57
- package/components/password-strength/password-strength.css +32 -32
- package/components/pipeline-status/pipeline-status.css +67 -67
- package/components/popover/popover.css +11 -11
- package/components/preview/preview.css +21 -21
- package/components/progress/progress.css +23 -23
- package/components/progress-row/progress-row.css +17 -17
- package/components/qr-code/qr-code.css +4 -4
- package/components/radio/radio.css +39 -39
- package/components/range/range.css +58 -55
- package/components/rating/rating.css +28 -28
- package/components/relative-time/relative-time.css +6 -6
- package/components/richtext/richtext.css +133 -133
- package/components/row/row.css +19 -19
- package/components/search/search.css +5 -5
- package/components/segment/segment.css +29 -24
- package/components/segmented/segmented.css +30 -25
- package/components/select/select.css +95 -93
- package/components/skeleton/skeleton.css +14 -14
- package/components/skip-nav/skip-nav.css +4 -4
- package/components/slider/slider.css +61 -61
- package/components/spinner/spinner.css +40 -40
- package/components/spinner/spinner.test.js +10 -12
- package/components/stack/stack.css +11 -11
- package/components/stat/stat.css +27 -27
- package/components/step-progress/step-progress.css +20 -20
- package/components/stepper/stepper.css +29 -29
- package/components/stream/stream.css +12 -12
- package/components/swatch/swatch.css +68 -68
- package/components/swiper/swiper.class.js +5 -12
- package/components/swiper/swiper.css +57 -57
- package/components/switch/switch.css +53 -53
- package/components/table/table.css +166 -163
- package/components/table-toolbar/table-toolbar.css +33 -33
- package/components/tabs/tabs.css +54 -51
- package/components/tag/tag.css +74 -71
- package/components/tag/tag.test.js +14 -14
- package/components/tags-input/tags-input.css +51 -49
- package/components/text/text.css +44 -44
- package/components/textarea/textarea.css +49 -46
- package/components/time-picker/time-picker.css +47 -47
- package/components/timeline/timeline.css +54 -54
- package/components/toast/toast.css +58 -58
- package/components/toc/toc.css +28 -28
- package/components/toggle-group/toggle-group.css +9 -6
- package/components/toggle-scheme/toggle-scheme.css +2 -2
- package/components/toolbar/toolbar.css +18 -18
- package/components/tooltip/tooltip.css +2 -2
- package/components/tour/tour.css +4 -4
- package/components/tree/tree.css +37 -37
- package/components/upload/upload.css +49 -49
- package/dist/host.min.css +1 -0
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +2 -2
- package/package.json +1 -1
- package/styles/api/text.css +9 -2
- package/styles/foundation/space.css +19 -18
- package/styles/host.css +48 -0
- package/styles/prose.css +187 -173
- package/styles/type/scale.css +6 -0
- package/styles/typography.css +10 -5
- package/styles/verse.css +122 -0
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"properties": {
|
|
16
|
+
"align": {
|
|
17
|
+
"description": "Block-axis alignment of grid items (start/center/end/stretch) via align-items — e.g. vertically centering a text column against a visual in a 2-column hero. Sets grid-item alignment, NOT text alignment.",
|
|
18
|
+
"type": "string",
|
|
19
|
+
"default": "stretch"
|
|
20
|
+
},
|
|
16
21
|
"columnGap": {
|
|
17
22
|
"description": "Column gap override",
|
|
18
23
|
"type": "string",
|
|
@@ -31,6 +36,11 @@
|
|
|
31
36
|
"type": "string",
|
|
32
37
|
"default": "md"
|
|
33
38
|
},
|
|
39
|
+
"justify": {
|
|
40
|
+
"description": "Inline-axis alignment of grid items (start/center/end/stretch) via justify-items. Default stretch (items fill their column track).",
|
|
41
|
+
"type": "string",
|
|
42
|
+
"default": "stretch"
|
|
43
|
+
},
|
|
34
44
|
"minColumnWidth": {
|
|
35
45
|
"description": "Minimum track width for columns=\"auto-fit\"/\"auto-fill\" (any CSS length, e.g. \"240px\", \"16rem\"). Sets the minmax() floor so cards don't shrink below it before wrapping; unset uses the 12rem default. No effect on numeric columns.",
|
|
36
46
|
"type": "string",
|
package/components/grid/grid.css
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
/* Explicit-then-ambient: `[gap="N"]` sets non-inheriting
|
|
4
4
|
`--a-gap-self`; `[size]`/`:root` set inheriting `--a-gap` (base
|
|
5
5
|
`--a-gap-md`). See styles/api/sizing.css + spec §5.2. */
|
|
6
|
-
--grid-gap
|
|
7
|
-
--grid-column-gap
|
|
8
|
-
--grid-row-gap
|
|
6
|
+
--grid-gap: var(--a-gap-self, var(--a-gap));
|
|
7
|
+
--grid-column-gap: var(--grid-gap);
|
|
8
|
+
--grid-row-gap: var(--grid-gap);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
:scope {
|
|
@@ -14,13 +14,31 @@
|
|
|
14
14
|
/* Default: auto 1fr columns — as many equal columns as children */
|
|
15
15
|
grid-auto-flow: column;
|
|
16
16
|
grid-auto-columns: 1fr;
|
|
17
|
-
column-gap: var(--grid-column-gap
|
|
18
|
-
row-gap: var(--grid-row-gap
|
|
17
|
+
column-gap: var(--grid-column-gap);
|
|
18
|
+
row-gap: var(--grid-row-gap);
|
|
19
19
|
/* Universal [padding] / [margin] opt-in — see tokens.css for scale. */
|
|
20
20
|
padding: var(--a-padding, 0);
|
|
21
21
|
margin: var(--a-margin, 0);
|
|
22
|
+
/* Neutralize the legacy UA rule that maps the HTML `align=` attr to
|
|
23
|
+
`text-align`. Our [align]/[justify] set grid cross/main-axis item
|
|
24
|
+
alignment, NOT text alignment — without this, `align="center"` silently
|
|
25
|
+
leaks `text-align:center` into every descendant (centered a hero
|
|
26
|
+
headline/deck that should read left). Mirrors row.css / col.css. */
|
|
27
|
+
text-align: inherit;
|
|
22
28
|
}
|
|
23
29
|
|
|
30
|
+
/* ── Item alignment ── [align] = block axis (align-items), [justify] =
|
|
31
|
+
inline axis (justify-items). Parity with row-ui / col-ui. CSS-only. */
|
|
32
|
+
:scope[align="start"] { align-items: start; }
|
|
33
|
+
:scope[align="center"] { align-items: center; }
|
|
34
|
+
:scope[align="end"] { align-items: end; }
|
|
35
|
+
:scope[align="stretch"] { align-items: stretch; }
|
|
36
|
+
|
|
37
|
+
:scope[justify="start"] { justify-items: start; }
|
|
38
|
+
:scope[justify="center"] { justify-items: center; }
|
|
39
|
+
:scope[justify="end"] { justify-items: end; }
|
|
40
|
+
:scope[justify="stretch"] { justify-items: stretch; }
|
|
41
|
+
|
|
24
42
|
/* Explicit column count — switches to template mode */
|
|
25
43
|
:scope[columns="1"] { grid-auto-flow: row; grid-template-columns: 1fr; grid-auto-columns: auto; }
|
|
26
44
|
:scope[columns="2"] { grid-auto-flow: row; grid-template-columns: repeat(2, 1fr); grid-auto-columns: auto; }
|
|
@@ -13,12 +13,16 @@
|
|
|
13
13
|
import { UIElement } from '../../core/element.js';
|
|
14
14
|
|
|
15
15
|
export class UIGrid extends UIElement {
|
|
16
|
+
/** Block-axis alignment of grid items (start/center/end/stretch) via align-items — e.g. vertically centering a text column against a visual in a 2-column hero. Sets grid-item alignment, NOT text alignment. */
|
|
17
|
+
align: string;
|
|
16
18
|
/** Column gap override */
|
|
17
19
|
columnGap: string;
|
|
18
20
|
/** Number of equal columns (1–6), "auto-fill", or "auto-fit". Accepts responsive `@bp` notation: "1 2@sm 4@lg" = 1 on xs, 2 from sm, 4 from lg/xl. Unannotated value is the mobile-first base. */
|
|
19
21
|
columns: string;
|
|
20
22
|
/** Grid gap (row + column). Two grammars: a NAMED scale (xs/sm/md/lg/xl, parametric via --a-gap-k — 4/8/12/16/20px at k=1) and an integer space-rung ("0"…"10", "12", "16", literal). At k=1 they coincide: xs=1, sm=2, md=3, lg=4, xl=5. Responsive `@bp` notation supported: "2 4@md" = 2 below md, 4 from md upward. */
|
|
21
23
|
gap: string;
|
|
24
|
+
/** Inline-axis alignment of grid items (start/center/end/stretch) via justify-items. Default stretch (items fill their column track). */
|
|
25
|
+
justify: string;
|
|
22
26
|
/** Minimum track width for columns="auto-fit"/"auto-fill" (any CSS length, e.g. "240px", "16rem"). Sets the minmax() floor so cards don't shrink below it before wrapping; unset uses the 12rem default. No effect on numeric columns. */
|
|
23
27
|
minColumnWidth: string;
|
|
24
28
|
/** Row gap override */
|
|
@@ -16,6 +16,13 @@ description: >-
|
|
|
16
16
|
Compose a 2:1 split as columns="3" + span="2"; 3:2 as columns="5" +
|
|
17
17
|
span="3" + span="2".
|
|
18
18
|
props:
|
|
19
|
+
align:
|
|
20
|
+
description: >-
|
|
21
|
+
Block-axis alignment of grid items (start/center/end/stretch) via
|
|
22
|
+
align-items — e.g. vertically centering a text column against a visual
|
|
23
|
+
in a 2-column hero. Sets grid-item alignment, NOT text alignment.
|
|
24
|
+
type: string
|
|
25
|
+
default: stretch
|
|
19
26
|
columnGap:
|
|
20
27
|
description: Column gap override
|
|
21
28
|
type: string
|
|
@@ -37,6 +44,12 @@ props:
|
|
|
37
44
|
upward.
|
|
38
45
|
type: string
|
|
39
46
|
default: md
|
|
47
|
+
justify:
|
|
48
|
+
description: >-
|
|
49
|
+
Inline-axis alignment of grid items (start/center/end/stretch) via
|
|
50
|
+
justify-items. Default stretch (items fill their column track).
|
|
51
|
+
type: string
|
|
52
|
+
default: stretch
|
|
40
53
|
minColumnWidth:
|
|
41
54
|
description: >-
|
|
42
55
|
Minimum track width for columns="auto-fit"/"auto-fill" (any CSS length,
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
@scope (heatmap-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
3
|
/* ── Layout ── */
|
|
4
|
-
--heatmap-gap
|
|
5
|
-
--heatmap-cell-radius
|
|
6
|
-
--heatmap-inset
|
|
7
|
-
--heatmap-aspect
|
|
8
|
-
--heatmap-cell-min-size
|
|
4
|
+
--heatmap-gap: var(--a-space-1);
|
|
5
|
+
--heatmap-cell-radius: var(--a-radius-xs);
|
|
6
|
+
--heatmap-inset: var(--a-inset);
|
|
7
|
+
--heatmap-aspect: auto;
|
|
8
|
+
--heatmap-cell-min-size: 0.75rem;
|
|
9
9
|
|
|
10
10
|
/* ── Colors ── */
|
|
11
|
-
--heatmap-empty-bg
|
|
12
|
-
--heatmap-border
|
|
13
|
-
--heatmap-text
|
|
14
|
-
--heatmap-label
|
|
11
|
+
--heatmap-empty-bg: var(--a-bg-muted);
|
|
12
|
+
--heatmap-border: 1px solid var(--a-border-subtle);
|
|
13
|
+
--heatmap-text: var(--a-fg);
|
|
14
|
+
--heatmap-label: var(--a-fg-subtle);
|
|
15
15
|
|
|
16
16
|
/* ── Data ramp (5 buckets) ──
|
|
17
17
|
Sequential tint scale, sourced from the L2 `--a-{family}-bucket-N`
|
|
18
18
|
semantic aliases (see styles/colors/semantics.css §BUCKETS). The
|
|
19
19
|
L2 layer handles light-dark() polarity so step 0 reads as
|
|
20
20
|
low-intensity in either scheme without per-component math. */
|
|
21
|
-
--heatmap-bucket-0
|
|
22
|
-
--heatmap-bucket-1
|
|
23
|
-
--heatmap-bucket-2
|
|
24
|
-
--heatmap-bucket-3
|
|
25
|
-
--heatmap-bucket-4
|
|
21
|
+
--heatmap-bucket-0: var(--a-accent-bucket-0);
|
|
22
|
+
--heatmap-bucket-1: var(--a-accent-bucket-1);
|
|
23
|
+
--heatmap-bucket-2: var(--a-accent-bucket-2);
|
|
24
|
+
--heatmap-bucket-3: var(--a-accent-bucket-3);
|
|
25
|
+
--heatmap-bucket-4: var(--a-accent-bucket-4);
|
|
26
26
|
|
|
27
27
|
/* ── Legend ── */
|
|
28
|
-
--heatmap-legend-size
|
|
29
|
-
--heatmap-legend-gap
|
|
28
|
+
--heatmap-legend-size: var(--a-caption-size);
|
|
29
|
+
--heatmap-legend-gap: var(--a-space-1);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
:scope {
|
|
33
33
|
box-sizing: border-box;
|
|
34
34
|
display: flex;
|
|
35
35
|
flex-direction: column;
|
|
36
|
-
gap: var(--heatmap-gap
|
|
37
|
-
color: var(--heatmap-text
|
|
36
|
+
gap: var(--heatmap-gap);
|
|
37
|
+
color: var(--heatmap-text);
|
|
38
38
|
font-size: var(--a-body-size);
|
|
39
39
|
/* A wide day-grid (52+ week columns) keeps a FIXED cell size and scrolls
|
|
40
40
|
horizontally (the GitHub-contributions model) rather than crushing
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
/* Month labels row (day-grid mode) */
|
|
61
61
|
:scope > [data-months] {
|
|
62
62
|
display: grid;
|
|
63
|
-
gap: var(--heatmap-gap
|
|
64
|
-
font-size: var(--heatmap-legend-size
|
|
65
|
-
color: var(--heatmap-label
|
|
63
|
+
gap: var(--heatmap-gap);
|
|
64
|
+
font-size: var(--heatmap-legend-size);
|
|
65
|
+
color: var(--heatmap-label);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
:scope [data-month-label] {
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
/* Grid of cells */
|
|
73
73
|
:scope > [data-grid] {
|
|
74
74
|
display: grid;
|
|
75
|
-
gap: var(--heatmap-gap
|
|
75
|
+
gap: var(--heatmap-gap);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
:scope[aspect="square"] > [data-grid] {
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
:scope [data-cell] {
|
|
87
|
-
border-radius: var(--heatmap-cell-radius
|
|
88
|
-
background: var(--heatmap-empty-bg
|
|
87
|
+
border-radius: var(--heatmap-cell-radius);
|
|
88
|
+
background: var(--heatmap-empty-bg);
|
|
89
89
|
/* No hard min on the cell box — it conflicted with matrix/density's
|
|
90
90
|
minmax(0,1fr) tracks (the floor refused to shrink, so cells overlapped
|
|
91
91
|
into a smear). day-grid keeps fixed size via its fixed tracks; the
|
|
@@ -103,70 +103,70 @@
|
|
|
103
103
|
|
|
104
104
|
:scope [data-cell][data-v]:hover {
|
|
105
105
|
transform: scale(1.15);
|
|
106
|
-
outline: var(--heatmap-border
|
|
106
|
+
outline: var(--heatmap-border);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
:scope [data-cell][data-bucket="0"] { background: var(--heatmap-bucket-0
|
|
110
|
-
:scope [data-cell][data-bucket="1"] { background: var(--heatmap-bucket-1
|
|
111
|
-
:scope [data-cell][data-bucket="2"] { background: var(--heatmap-bucket-2
|
|
112
|
-
:scope [data-cell][data-bucket="3"] { background: var(--heatmap-bucket-3
|
|
113
|
-
:scope [data-cell][data-bucket="4"] { background: var(--heatmap-bucket-4
|
|
109
|
+
:scope [data-cell][data-bucket="0"] { background: var(--heatmap-bucket-0); }
|
|
110
|
+
:scope [data-cell][data-bucket="1"] { background: var(--heatmap-bucket-1); }
|
|
111
|
+
:scope [data-cell][data-bucket="2"] { background: var(--heatmap-bucket-2); }
|
|
112
|
+
:scope [data-cell][data-bucket="3"] { background: var(--heatmap-bucket-3); }
|
|
113
|
+
:scope [data-cell][data-bucket="4"] { background: var(--heatmap-bucket-4); }
|
|
114
114
|
|
|
115
115
|
/* Legend strip */
|
|
116
116
|
:scope > [data-legend] {
|
|
117
117
|
display: flex;
|
|
118
118
|
align-items: center;
|
|
119
|
-
gap: var(--heatmap-legend-gap
|
|
120
|
-
font-size: var(--heatmap-legend-size
|
|
121
|
-
color: var(--heatmap-label
|
|
122
|
-
margin-top: var(--heatmap-gap
|
|
119
|
+
gap: var(--heatmap-legend-gap);
|
|
120
|
+
font-size: var(--heatmap-legend-size);
|
|
121
|
+
color: var(--heatmap-label);
|
|
122
|
+
margin-top: var(--heatmap-gap);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
:scope [data-legend-swatch] {
|
|
126
126
|
width: 0.875rem;
|
|
127
127
|
height: 0.875rem;
|
|
128
|
-
border-radius: var(--heatmap-cell-radius
|
|
129
|
-
background: var(--heatmap-empty-bg
|
|
128
|
+
border-radius: var(--heatmap-cell-radius);
|
|
129
|
+
background: var(--heatmap-empty-bg);
|
|
130
130
|
display: inline-block;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
:scope [data-legend-swatch][data-bucket="0"] { background: var(--heatmap-bucket-0
|
|
134
|
-
:scope [data-legend-swatch][data-bucket="1"] { background: var(--heatmap-bucket-1
|
|
135
|
-
:scope [data-legend-swatch][data-bucket="2"] { background: var(--heatmap-bucket-2
|
|
136
|
-
:scope [data-legend-swatch][data-bucket="3"] { background: var(--heatmap-bucket-3
|
|
137
|
-
:scope [data-legend-swatch][data-bucket="4"] { background: var(--heatmap-bucket-4
|
|
133
|
+
:scope [data-legend-swatch][data-bucket="0"] { background: var(--heatmap-bucket-0); }
|
|
134
|
+
:scope [data-legend-swatch][data-bucket="1"] { background: var(--heatmap-bucket-1); }
|
|
135
|
+
:scope [data-legend-swatch][data-bucket="2"] { background: var(--heatmap-bucket-2); }
|
|
136
|
+
:scope [data-legend-swatch][data-bucket="3"] { background: var(--heatmap-bucket-3); }
|
|
137
|
+
:scope [data-legend-swatch][data-bucket="4"] { background: var(--heatmap-bucket-4); }
|
|
138
138
|
|
|
139
139
|
/* ── Color-scheme variants (token overrides only) ── */
|
|
140
140
|
|
|
141
141
|
:scope[color-scheme="success"] {
|
|
142
|
-
--heatmap-bucket-0
|
|
143
|
-
--heatmap-bucket-1
|
|
144
|
-
--heatmap-bucket-2
|
|
145
|
-
--heatmap-bucket-3
|
|
146
|
-
--heatmap-bucket-4
|
|
142
|
+
--heatmap-bucket-0: var(--a-success-bucket-0);
|
|
143
|
+
--heatmap-bucket-1: var(--a-success-bucket-1);
|
|
144
|
+
--heatmap-bucket-2: var(--a-success-bucket-2);
|
|
145
|
+
--heatmap-bucket-3: var(--a-success-bucket-3);
|
|
146
|
+
--heatmap-bucket-4: var(--a-success-bucket-4);
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
:scope[color-scheme="warning"] {
|
|
150
|
-
--heatmap-bucket-0
|
|
151
|
-
--heatmap-bucket-1
|
|
152
|
-
--heatmap-bucket-2
|
|
153
|
-
--heatmap-bucket-3
|
|
154
|
-
--heatmap-bucket-4
|
|
150
|
+
--heatmap-bucket-0: var(--a-warning-bucket-0);
|
|
151
|
+
--heatmap-bucket-1: var(--a-warning-bucket-1);
|
|
152
|
+
--heatmap-bucket-2: var(--a-warning-bucket-2);
|
|
153
|
+
--heatmap-bucket-3: var(--a-warning-bucket-3);
|
|
154
|
+
--heatmap-bucket-4: var(--a-warning-bucket-4);
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
:scope[color-scheme="danger"] {
|
|
158
|
-
--heatmap-bucket-0
|
|
159
|
-
--heatmap-bucket-1
|
|
160
|
-
--heatmap-bucket-2
|
|
161
|
-
--heatmap-bucket-3
|
|
162
|
-
--heatmap-bucket-4
|
|
158
|
+
--heatmap-bucket-0: var(--a-danger-bucket-0);
|
|
159
|
+
--heatmap-bucket-1: var(--a-danger-bucket-1);
|
|
160
|
+
--heatmap-bucket-2: var(--a-danger-bucket-2);
|
|
161
|
+
--heatmap-bucket-3: var(--a-danger-bucket-3);
|
|
162
|
+
--heatmap-bucket-4: var(--a-danger-bucket-4);
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
:scope[color-scheme="info"] {
|
|
166
|
-
--heatmap-bucket-0
|
|
167
|
-
--heatmap-bucket-1
|
|
168
|
-
--heatmap-bucket-2
|
|
169
|
-
--heatmap-bucket-3
|
|
170
|
-
--heatmap-bucket-4
|
|
166
|
+
--heatmap-bucket-0: var(--a-info-bucket-0);
|
|
167
|
+
--heatmap-bucket-1: var(--a-info-bucket-1);
|
|
168
|
+
--heatmap-bucket-2: var(--a-info-bucket-2);
|
|
169
|
+
--heatmap-bucket-3: var(--a-info-bucket-3);
|
|
170
|
+
--heatmap-bucket-4: var(--a-info-bucket-4);
|
|
171
171
|
}
|
|
172
172
|
}
|
package/components/icon/icon.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@scope (icon-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
|
-
--icon-size
|
|
3
|
+
--icon-size: var(--a-icon-size, calc(1em + 0.125rem));
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
:scope {
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
display: inline-flex;
|
|
9
9
|
align-items: center;
|
|
10
10
|
justify-content: center;
|
|
11
|
-
width: var(--icon-size
|
|
12
|
-
height: var(--icon-size
|
|
11
|
+
width: var(--icon-size);
|
|
12
|
+
height: var(--icon-size);
|
|
13
13
|
flex-shrink: 0;
|
|
14
14
|
line-height: 0;
|
|
15
15
|
}
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
icon-ui set its own size locally. xs / xl / 2xl / 3xl / 4xl
|
|
25
25
|
extend the scale beyond the universal range for hero placeholder
|
|
26
26
|
contexts. `fill` matches the parent box. */
|
|
27
|
-
:scope[size="xs"] { --icon-size
|
|
28
|
-
:scope[size="sm"] { --icon-size
|
|
29
|
-
:scope[size="md"] { --icon-size
|
|
30
|
-
:scope[size="lg"] { --icon-size
|
|
31
|
-
:scope[size="xl"] { --icon-size
|
|
32
|
-
:scope[size="2xl"] { --icon-size
|
|
33
|
-
:scope[size="3xl"] { --icon-size
|
|
34
|
-
:scope[size="4xl"] { --icon-size
|
|
35
|
-
:scope[size="fill"] { --icon-size
|
|
27
|
+
:scope[size="xs"] { --icon-size: 0.75rem; } /* 12px */
|
|
28
|
+
:scope[size="sm"] { --icon-size: 0.875rem; } /* 14px */
|
|
29
|
+
:scope[size="md"] { --icon-size: 1rem; } /* 16px */
|
|
30
|
+
:scope[size="lg"] { --icon-size: 1.25rem; } /* 20px */
|
|
31
|
+
:scope[size="xl"] { --icon-size: 2rem; } /* 32px */
|
|
32
|
+
:scope[size="2xl"] { --icon-size: 3rem; } /* 48px */
|
|
33
|
+
:scope[size="3xl"] { --icon-size: 4rem; } /* 64px */
|
|
34
|
+
:scope[size="4xl"] { --icon-size: 6rem; } /* 96px */
|
|
35
|
+
:scope[size="fill"] { --icon-size: 100%; }
|
|
36
36
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
@scope (image-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
3
|
/* ── Layout ── */
|
|
4
|
-
--image-radius
|
|
4
|
+
--image-radius: 0;
|
|
5
5
|
|
|
6
6
|
/* ── Colors ── */
|
|
7
|
-
--image-bg
|
|
7
|
+
--image-bg: var(--a-bg-muted);
|
|
8
8
|
|
|
9
9
|
/* ── Transition ── */
|
|
10
|
-
--image-duration
|
|
11
|
-
--image-easing
|
|
10
|
+
--image-duration: var(--a-duration);
|
|
11
|
+
--image-easing: var(--a-easing);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
:scope {
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
display: block;
|
|
18
18
|
position: relative;
|
|
19
19
|
overflow: hidden;
|
|
20
|
-
background: var(--image-bg
|
|
21
|
-
border-radius: var(--image-radius
|
|
20
|
+
background: var(--image-bg);
|
|
21
|
+
border-radius: var(--image-radius);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/* Display convention (ADR-0037): block-level by default; [inline] opts back to inline-level. */
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
height: 100%;
|
|
32
32
|
object-fit: cover;
|
|
33
33
|
opacity: 0;
|
|
34
|
-
transition: opacity var(--image-duration
|
|
34
|
+
transition: opacity var(--image-duration) var(--image-easing);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
:scope[data-loaded] [slot="image"] {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
[slot="skeleton"] {
|
|
49
49
|
position: absolute;
|
|
50
50
|
inset: 0;
|
|
51
|
-
transition: opacity var(--image-duration
|
|
51
|
+
transition: opacity var(--image-duration) var(--image-easing);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
:scope[data-loaded] [slot="skeleton"] {
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/* ── Radius variants ── */
|
|
60
|
-
:scope[radius="sm"] { --image-radius
|
|
61
|
-
:scope[radius="md"] { --image-radius
|
|
62
|
-
:scope[radius="lg"] { --image-radius
|
|
63
|
-
:scope[radius="full"] { --image-radius
|
|
60
|
+
:scope[radius="sm"] { --image-radius: var(--a-radius-sm); }
|
|
61
|
+
:scope[radius="md"] { --image-radius: var(--a-radius-md); }
|
|
62
|
+
:scope[radius="lg"] { --image-radius: var(--a-radius-lg); }
|
|
63
|
+
:scope[radius="full"] { --image-radius: var(--a-radius-full); }
|
|
64
64
|
|
|
65
65
|
/* ── Size mode — fills the container.
|
|
66
66
|
Layout-changing attribute; sanctioned in component-token-contract.md. */
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
/* ── Raw — strips chrome (background + radius) for edge-to-edge rendering.
|
|
74
74
|
Comes after radius variants so it overrides them by source order. */
|
|
75
75
|
:scope[raw] {
|
|
76
|
-
--image-bg
|
|
77
|
-
--image-radius
|
|
76
|
+
--image-bg: transparent;
|
|
77
|
+
--image-radius: 0;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
@scope (inline-edit-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
|
-
--inline-edit-bg-hover
|
|
4
|
-
--inline-edit-bg-edit
|
|
5
|
-
--inline-edit-outline
|
|
6
|
-
--inline-edit-placeholder
|
|
7
|
-
--inline-edit-px
|
|
8
|
-
--inline-edit-py
|
|
9
|
-
--inline-edit-radius
|
|
3
|
+
--inline-edit-bg-hover: var(--a-bg-muted);
|
|
4
|
+
--inline-edit-bg-edit: var(--a-bg);
|
|
5
|
+
--inline-edit-outline: var(--a-accent-strong);
|
|
6
|
+
--inline-edit-placeholder: var(--a-fg-subtle);
|
|
7
|
+
--inline-edit-px: var(--a-space-1);
|
|
8
|
+
--inline-edit-py: var(--a-space-0-5);
|
|
9
|
+
--inline-edit-radius: var(--a-radius-sm);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
:scope {
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
table cells (where the cell already contains the box). */
|
|
16
16
|
display: inline-block;
|
|
17
17
|
box-sizing: border-box;
|
|
18
|
-
padding-inline: var(--inline-edit-px
|
|
19
|
-
padding-block: var(--inline-edit-py
|
|
20
|
-
margin-inline: calc(-1 * var(--inline-edit-px
|
|
21
|
-
margin-block: calc(-1 * var(--inline-edit-py
|
|
22
|
-
border-radius: var(--inline-edit-radius
|
|
18
|
+
padding-inline: var(--inline-edit-px);
|
|
19
|
+
padding-block: var(--inline-edit-py);
|
|
20
|
+
margin-inline: calc(-1 * var(--inline-edit-px));
|
|
21
|
+
margin-block: calc(-1 * var(--inline-edit-py));
|
|
22
|
+
border-radius: var(--inline-edit-radius);
|
|
23
23
|
cursor: text;
|
|
24
24
|
color: inherit;
|
|
25
25
|
font: inherit;
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
/* Hover affordance — subtle bg tint so the user sees this IS editable.
|
|
32
32
|
Suppressed when disabled / readonly / already editing. */
|
|
33
33
|
:scope:not([editing]):not([disabled]):not([readonly]):hover {
|
|
34
|
-
background: var(--inline-edit-bg-hover
|
|
34
|
+
background: var(--inline-edit-bg-hover);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/* Editing state — flat background + accent outline for focus clarity */
|
|
38
38
|
:scope[editing] {
|
|
39
|
-
background: var(--inline-edit-bg-edit
|
|
40
|
-
outline: 2px solid var(--inline-edit-outline
|
|
39
|
+
background: var(--inline-edit-bg-edit);
|
|
40
|
+
outline: 2px solid var(--inline-edit-outline);
|
|
41
41
|
outline-offset: 0;
|
|
42
42
|
cursor: text;
|
|
43
43
|
}
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
when the host has no text content + isn't being edited. */
|
|
47
47
|
:scope:empty:not([editing])::before {
|
|
48
48
|
content: attr(placeholder);
|
|
49
|
-
color: var(--inline-edit-placeholder
|
|
49
|
+
color: var(--inline-edit-placeholder);
|
|
50
50
|
font-style: italic;
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
`--a-fg-muted`). Severity variants drop in `--a-{family}-text`
|
|
6
6
|
(light-dark(20-shade, 20-tint)) — the on-canvas text family, not
|
|
7
7
|
`--a-{family}-fg` (which is on-fill / on-strong-bg). */
|
|
8
|
-
--inline-message-fg
|
|
9
|
-
--inline-message-icon-fg
|
|
8
|
+
--inline-message-fg: var(--a-fg-muted);
|
|
9
|
+
--inline-message-icon-fg: currentColor;
|
|
10
10
|
|
|
11
11
|
/* ── Layout ── */
|
|
12
|
-
--inline-message-gap
|
|
13
|
-
--inline-message-icon-size
|
|
12
|
+
--inline-message-gap: var(--a-space-1);
|
|
13
|
+
--inline-message-icon-size: var(--a-ui-sm);
|
|
14
14
|
|
|
15
15
|
/* ── Typography ── */
|
|
16
|
-
--inline-message-font-size
|
|
17
|
-
--inline-message-line-height
|
|
16
|
+
--inline-message-font-size: var(--a-ui-sm);
|
|
17
|
+
--inline-message-line-height: var(--a-leading-snug);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
:scope {
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
box-sizing: border-box;
|
|
27
27
|
display: inline-flex;
|
|
28
28
|
align-items: baseline;
|
|
29
|
-
gap: var(--inline-message-gap
|
|
30
|
-
color: var(--inline-message-fg
|
|
31
|
-
font-size: var(--inline-message-font-size
|
|
32
|
-
line-height: var(--inline-message-line-height
|
|
29
|
+
gap: var(--inline-message-gap);
|
|
30
|
+
color: var(--inline-message-fg);
|
|
31
|
+
font-size: var(--inline-message-font-size);
|
|
32
|
+
line-height: var(--inline-message-line-height);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/* ── Leading icon ──
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
:scope [slot="leading"] {
|
|
49
49
|
flex-shrink: 0;
|
|
50
50
|
align-self: center;
|
|
51
|
-
color: var(--inline-message-icon-fg
|
|
52
|
-
--a-icon-size: var(--inline-message-icon-size
|
|
51
|
+
color: var(--inline-message-icon-fg);
|
|
52
|
+
--a-icon-size: var(--inline-message-icon-size);
|
|
53
53
|
order: -1;
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -58,18 +58,18 @@
|
|
|
58
58
|
the variant's default in inline-message.class.js). No padding / display / layout
|
|
59
59
|
changes — these are variants, not modes (per css-patterns.md). */
|
|
60
60
|
:scope[variant="info"] {
|
|
61
|
-
--inline-message-fg
|
|
61
|
+
--inline-message-fg: var(--a-info-text);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
:scope[variant="success"] {
|
|
65
|
-
--inline-message-fg
|
|
65
|
+
--inline-message-fg: var(--a-success-text);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
:scope[variant="warning"] {
|
|
69
|
-
--inline-message-fg
|
|
69
|
+
--inline-message-fg: var(--a-warning-text);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
:scope[variant="danger"] {
|
|
73
|
-
--inline-message-fg
|
|
73
|
+
--inline-message-fg: var(--a-danger-text);
|
|
74
74
|
}
|
|
75
75
|
}
|