@adia-ai/web-components 0.6.28 → 0.6.29

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 CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog — @adia-ai/web-components
2
2
 
3
+ ## [0.6.29] — 2026-05-23
4
+
5
+ ### Added — `dist/web-components.min.css` rolled-up CDN-ready bundle
6
+
7
+ - **`dist/web-components.min.css`** ships as part of the tarball (443.1 KB unmin → ~50KB gzipped through any CDN edge). Single LightningCSS-bundled file — flattens every `@import` from `index.css` through the 95 per-component CSS files + tokens + resets into one minified payload. Replaces the @import-waterfall behavior for HTML-first consumers (no bundler) and enables one-line CDN usage: `<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@adia-ai/web-components@0.6.29/dist/web-components.min.css">`.
8
+ - **New `./css/bundled` export** in package.json `exports` map points at the bundle. Existing `./css` export (@import barrel) is unchanged — bundler consumers (Vite) continue using it. Files: `dist/web-components.min.css`.
9
+ - Generation: `npm run build:bundle-css` (LightningCSS bundle mode, Vite-8-default targets matching `check:lightningcss-build`). Freshness enforced at release time via `check:css-bundles-fresh` gate (mirrors `check:embeddings-fresh` discipline).
10
+
11
+
12
+ ### Fixed — `text-align: start` reset on 18 components to block inherited centering (§text-align-reset)
13
+
14
+ - **18 components — `input-ui`, `textarea-ui`, `search-ui`, `select-ui`, `check-ui`, `radio-ui`, `switch-ui`, `toggle-group-ui`, `segmented-ui`, `range-ui`, `slider-ui`, `stat-ui`, `badge-ui`, `tag-ui`, `pagination-ui`, `nav-item-ui`, `progress-row-ui`, `kbd-ui` — lacked a `text-align: start` reset in their `:where(:scope)` rule.** `text-align` is an inherited CSS property; when any of these components is a descendant of a container declaring `text-align: center` (or any non-default alignment), the alignment propagated into the component and visibly misaligned its content. Most critically: `input-ui` placeholder and typed value would center-align inside the input chrome; `select-ui` selected value and placeholder would shift; `textarea-ui` text would center. Also affected: `::after`-rendered label text on check/radio/switch/toggle-group/segmented (label text would visually shift); inline labels on badge/tag/kbd; stat values; pagination page numbers; nav-item labels. Fix: added `text-align: start;` to the `:where(:scope)` block of all 18 affected components. Files: `components/{input,textarea,search,select,check,radio,switch,toggle-group,segmented,range,slider,stat,badge,tag,pagination,nav-item,progress-row,kbd}/*.css`.
15
+
3
16
  ## [0.6.28] — 2026-05-23
4
17
 
5
18
  ### Maintenance
@@ -8,7 +8,8 @@
8
8
  --badge-py: 2px;
9
9
  --badge-gap: var(--a-space-1);
10
10
  --badge-font-size: var(--a-ui-sm);
11
- }
11
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
12
+ }
12
13
 
13
14
  :scope {
14
15
  /* ── Base ── */
@@ -73,7 +73,8 @@ check-ui[indeterminate] {
73
73
  --_dash-bg: transparent;
74
74
  --_dash-w: 0;
75
75
  --_dash-h: 0;
76
- }
76
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
77
+ }
77
78
 
78
79
  :scope {
79
80
  /* ── Base ── */
@@ -45,7 +45,8 @@ input-ui:not([disabled]) [slot="field"]:hover [slot="suffix"] {
45
45
  /* ── State: disabled ── */
46
46
  --input-bg-disabled: var(--a-ui-bg-disabled);
47
47
  --input-fg-disabled: var(--a-ui-text-disabled);
48
- }
48
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
49
+ }
49
50
 
50
51
  :scope {
51
52
  /* ── Base ── */
@@ -23,7 +23,8 @@
23
23
  --kbd-font-size-lg: var(--a-ui-sm);
24
24
  --kbd-height-lg: 1.5rem;
25
25
  --kbd-min-width-lg: 1.5rem;
26
- }
26
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
27
+ }
27
28
 
28
29
  :scope {
29
30
  /* ── Base ── */
@@ -49,7 +49,8 @@ nav-item-ui[selected] [slot="icon"]:empty::before {
49
49
  --nav-item-bg-selected: var(--a-ui-bg-selected);
50
50
  --nav-item-icon-size: calc(var(--nav-item-row-height) - var(--a-space-2));
51
51
  --nav-item-badge-size: var(--a-ui-sm);
52
- }
52
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
53
+ }
53
54
 
54
55
  :scope {
55
56
  box-sizing: border-box;
@@ -35,7 +35,8 @@
35
35
  --pagination-nav-border-hover: transparent;
36
36
  --pagination-nav-bg-disabled: transparent;
37
37
  --pagination-nav-border-disabled: transparent;
38
- }
38
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
39
+ }
39
40
 
40
41
  :scope {
41
42
  /* ── Base ── */
@@ -10,7 +10,8 @@
10
10
 
11
11
  /* Fill color piped into nested progress-ui via its own token */
12
12
  --progress-row-fill-bg: var(--a-accent-bg);
13
- }
13
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
14
+ }
14
15
 
15
16
  :scope {
16
17
  box-sizing: border-box;
@@ -50,7 +50,8 @@ radio-ui[checked] [slot="dot"]::after {
50
50
  /* ── Transition ── */
51
51
  --radio-duration: var(--a-duration-fast);
52
52
  --radio-easing: var(--a-easing);
53
- }
53
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
54
+ }
54
55
 
55
56
  :scope {
56
57
  /* ── Base ── */
@@ -41,7 +41,8 @@ range-ui:not([disabled]) [slot="field"]:hover [data-layer="fill"] {
41
41
  /* ── Hover text ── */
42
42
  --range-label-fg-hover: var(--a-fg-subtle);
43
43
 
44
- }
44
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
45
+ }
45
46
 
46
47
  :scope {
47
48
  /* ── Base ── */
@@ -4,7 +4,8 @@
4
4
  --search-radius: var(--a-radius);
5
5
  --search-duration: var(--a-duration-fast);
6
6
  --search-easing: var(--a-easing);
7
- }
7
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
8
+ }
8
9
 
9
10
  :scope {
10
11
  display: block;
@@ -22,7 +22,8 @@
22
22
  --segmented-duration: var(--a-duration);
23
23
  --segmented-easing: var(--a-easing-out);
24
24
 
25
- }
25
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
26
+ }
26
27
 
27
28
  :scope {
28
29
  /* ── Base ── */
@@ -42,7 +42,8 @@
42
42
  --select-option-fg-active: var(--a-ui-text-active);
43
43
  --select-option-fg-disabled: var(--a-ui-text-disabled);
44
44
  --select-group-label-size: var(--a-ui-size);
45
- }
45
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
46
+ }
46
47
 
47
48
  :scope {
48
49
  /* ── Base ── */
@@ -104,7 +104,8 @@
104
104
 
105
105
  /* ── Focus ── */
106
106
  --slider-focus-ring: var(--a-focus-ring);
107
- }
107
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
108
+ }
108
109
 
109
110
  :scope {
110
111
  /* ── Base ── */
@@ -15,7 +15,8 @@
15
15
  /* ── Spacing ── */
16
16
  --stat-column-gap: var(--a-gap);
17
17
  --stat-row-gap: var(--a-gap-sm);
18
- }
18
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
19
+ }
19
20
 
20
21
  :scope {
21
22
  /* ── Base ──
@@ -60,7 +60,8 @@ switch-ui[checked] [slot="thumb"] {
60
60
 
61
61
  /* ── State: disabled ── */
62
62
  --switch-fg-disabled: var(--a-ui-text-disabled);
63
- }
63
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
64
+ }
64
65
 
65
66
  :scope {
66
67
  /* ── Base ── */
@@ -32,7 +32,8 @@ tag-ui[removable]:not([disabled]):hover {
32
32
  --tag-dismiss-fg: var(--a-fg-muted);
33
33
  --tag-dismiss-fg-hover: var(--a-fg);
34
34
  --tag-dismiss-bg-hover: var(--a-bg-muted);
35
- }
35
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
36
+ }
36
37
 
37
38
  :scope {
38
39
  /* ── Base ── */
@@ -36,7 +36,8 @@ textarea-ui:not([disabled]) [slot="text"]:hover {
36
36
  --textarea-label-fg-focus: var(--a-fg-subtle);
37
37
  --textarea-bg-disabled: var(--a-ui-bg-disabled);
38
38
  --textarea-fg-disabled: var(--a-ui-text-disabled);
39
- }
39
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
40
+ }
40
41
 
41
42
  :scope {
42
43
  /* ── Base ── */
@@ -14,7 +14,8 @@ toggle-option-ui:not([disabled]):hover {
14
14
  --toggle-group-border-color: var(--a-ui-border);
15
15
  --toggle-group-radius: var(--a-radius);
16
16
  --toggle-group-height: var(--a-size);
17
- }
17
+ text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
18
+ }
18
19
 
19
20
  :scope {
20
21
  box-sizing: border-box;