@adia-ai/web-components 0.6.32 → 0.6.34

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.
Files changed (164) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/components/accordion/accordion.css +2 -2
  3. package/components/action-list/action-list.css +2 -2
  4. package/components/agent-artifact/agent-artifact.css +31 -31
  5. package/components/agent-feedback-bar/agent-feedback-bar.css +10 -10
  6. package/components/agent-questions/agent-questions.css +57 -57
  7. package/components/agent-reasoning/agent-reasoning.css +62 -62
  8. package/components/agent-suggestions/agent-suggestions.css +4 -4
  9. package/components/agent-trace/agent-trace.css +53 -53
  10. package/components/alert/alert.css +41 -41
  11. package/components/avatar/avatar.css +27 -27
  12. package/components/badge/badge.css +27 -27
  13. package/components/block/block.css +16 -16
  14. package/components/breadcrumb/breadcrumb.css +23 -23
  15. package/components/button/button.css +101 -91
  16. package/components/calendar-grid/calendar-grid.a2ui.json +136 -0
  17. package/components/calendar-grid/calendar-grid.css +226 -0
  18. package/components/calendar-grid/calendar-grid.d.ts +37 -0
  19. package/components/calendar-grid/calendar-grid.js +17 -0
  20. package/components/calendar-grid/calendar-grid.yaml +116 -0
  21. package/components/calendar-grid/class.js +300 -0
  22. package/components/calendar-picker/calendar-picker.css +139 -139
  23. package/components/canvas/canvas.css +12 -12
  24. package/components/card/card.css +83 -83
  25. package/components/chart/chart.css +224 -224
  26. package/components/chart-legend/chart-legend.css +26 -26
  27. package/components/check/check.css +40 -40
  28. package/components/code/code.css +125 -125
  29. package/components/col/col.css +15 -15
  30. package/components/color-picker/color-picker.css +55 -55
  31. package/components/combobox/class.js +861 -0
  32. package/components/combobox/combobox.a2ui.json +363 -0
  33. package/components/combobox/combobox.css +244 -0
  34. package/components/combobox/combobox.d.ts +113 -0
  35. package/components/combobox/combobox.examples.md +59 -0
  36. package/components/combobox/combobox.js +17 -0
  37. package/components/combobox/combobox.test.js +181 -0
  38. package/components/combobox/combobox.yaml +369 -0
  39. package/components/command/command.css +90 -90
  40. package/components/date-range-picker/class.js +775 -0
  41. package/components/date-range-picker/date-range-picker.a2ui.json +300 -0
  42. package/components/date-range-picker/date-range-picker.css +178 -0
  43. package/components/date-range-picker/date-range-picker.d.ts +82 -0
  44. package/components/date-range-picker/date-range-picker.examples.md +37 -0
  45. package/components/date-range-picker/date-range-picker.js +17 -0
  46. package/components/date-range-picker/date-range-picker.test.js +387 -0
  47. package/components/date-range-picker/date-range-picker.yaml +285 -0
  48. package/components/datetime-picker/class.js +706 -0
  49. package/components/datetime-picker/datetime-picker.a2ui.json +334 -0
  50. package/components/datetime-picker/datetime-picker.css +150 -0
  51. package/components/datetime-picker/datetime-picker.d.ts +86 -0
  52. package/components/datetime-picker/datetime-picker.examples.md +46 -0
  53. package/components/datetime-picker/datetime-picker.js +17 -0
  54. package/components/datetime-picker/datetime-picker.test.js +454 -0
  55. package/components/datetime-picker/datetime-picker.yaml +332 -0
  56. package/components/demo-toggle/demo-toggle.css +27 -27
  57. package/components/description-list/description-list.css +18 -18
  58. package/components/divider/divider.css +24 -24
  59. package/components/embed/embed.css +6 -6
  60. package/components/empty-state/empty-state.css +27 -27
  61. package/components/feed/feed.css +12 -12
  62. package/components/field/field.css +37 -28
  63. package/components/field/field.test.js +32 -0
  64. package/components/fields/fields.css +5 -5
  65. package/components/grid/grid.css +5 -5
  66. package/components/heatmap/heatmap.css +63 -63
  67. package/components/icon/icon.css +12 -12
  68. package/components/image/image.css +14 -14
  69. package/components/index.js +8 -0
  70. package/components/input/input.css +66 -66
  71. package/components/inspector/inspector.css +6 -6
  72. package/components/integration-card/class.js +410 -0
  73. package/components/integration-card/integration-card.a2ui.json +268 -0
  74. package/components/integration-card/integration-card.css +169 -0
  75. package/components/integration-card/integration-card.d.ts +63 -0
  76. package/components/integration-card/integration-card.examples.md +41 -0
  77. package/components/integration-card/integration-card.js +17 -0
  78. package/components/integration-card/integration-card.test.js +306 -0
  79. package/components/integration-card/integration-card.yaml +280 -0
  80. package/components/kbd/kbd.css +32 -32
  81. package/components/link/link.css +12 -12
  82. package/components/list/list.css +8 -8
  83. package/components/list-window/class.js +688 -0
  84. package/components/list-window/list-window.a2ui.json +277 -0
  85. package/components/list-window/list-window.css +124 -0
  86. package/components/list-window/list-window.d.ts +84 -0
  87. package/components/list-window/list-window.examples.md +73 -0
  88. package/components/list-window/list-window.js +17 -0
  89. package/components/list-window/list-window.test.js +303 -0
  90. package/components/list-window/list-window.yaml +270 -0
  91. package/components/menu/menu.css +8 -8
  92. package/components/modal/modal.css +43 -43
  93. package/components/nav/nav.css +40 -40
  94. package/components/nav-group/nav-group.css +52 -52
  95. package/components/nav-item/nav-item.css +44 -44
  96. package/components/noodles/noodles.css +31 -31
  97. package/components/option-card/option-card.css +69 -69
  98. package/components/otp-input/otp-input.css +30 -30
  99. package/components/page/page.css +18 -18
  100. package/components/pagination/pagination.css +61 -61
  101. package/components/pane/pane.css +57 -57
  102. package/components/pipeline-status/pipeline-status.css +65 -65
  103. package/components/popover/popover.css +17 -17
  104. package/components/progress/progress.css +23 -23
  105. package/components/progress-row/progress-row.css +17 -17
  106. package/components/radio/radio.css +39 -39
  107. package/components/range/range.css +55 -55
  108. package/components/rating/rating.css +28 -28
  109. package/components/richtext/richtext.css +133 -133
  110. package/components/row/row.css +19 -19
  111. package/components/search/search.css +5 -5
  112. package/components/segment/segment.css +24 -24
  113. package/components/segmented/segmented.css +25 -25
  114. package/components/select/select.css +84 -84
  115. package/components/skeleton/skeleton.css +14 -14
  116. package/components/slider/slider.css +46 -46
  117. package/components/spinner/class.js +69 -0
  118. package/components/spinner/spinner.a2ui.json +197 -0
  119. package/components/spinner/spinner.css +165 -0
  120. package/components/spinner/spinner.d.ts +26 -0
  121. package/components/spinner/spinner.examples.md +26 -0
  122. package/components/spinner/spinner.js +17 -0
  123. package/components/spinner/spinner.test.js +234 -0
  124. package/components/spinner/spinner.yaml +230 -0
  125. package/components/stack/stack.css +11 -11
  126. package/components/stat/stat.css +25 -25
  127. package/components/step-progress/step-progress.css +20 -20
  128. package/components/stepper/stepper.css +29 -29
  129. package/components/stream/stream.css +12 -12
  130. package/components/swatch/swatch.css +68 -68
  131. package/components/swiper/swiper.css +57 -57
  132. package/components/switch/switch.css +52 -52
  133. package/components/table/class.js +9 -0
  134. package/components/table/table.a2ui.json +1 -1
  135. package/components/table/table.css +162 -162
  136. package/components/table/table.d.ts +1 -1
  137. package/components/table/table.test.js +53 -0
  138. package/components/table/table.yaml +13 -1
  139. package/components/table-toolbar/table-toolbar.css +32 -32
  140. package/components/tabs/tabs.css +51 -51
  141. package/components/tag/tag.css +48 -48
  142. package/components/text/text.css +44 -44
  143. package/components/textarea/textarea.css +46 -46
  144. package/components/time-picker/class.js +693 -0
  145. package/components/time-picker/time-picker.a2ui.json +267 -0
  146. package/components/time-picker/time-picker.css +122 -0
  147. package/components/time-picker/time-picker.d.ts +75 -0
  148. package/components/time-picker/time-picker.examples.md +35 -0
  149. package/components/time-picker/time-picker.js +17 -0
  150. package/components/time-picker/time-picker.test.js +287 -0
  151. package/components/time-picker/time-picker.yaml +256 -0
  152. package/components/timeline/timeline.css +50 -50
  153. package/components/toast/toast.css +58 -58
  154. package/components/toggle-group/toggle-group.css +6 -6
  155. package/components/toggle-scheme/toggle-scheme.css +2 -2
  156. package/components/toolbar/toolbar.css +17 -17
  157. package/components/tooltip/tooltip.css +2 -2
  158. package/components/tree/tree.css +37 -37
  159. package/components/upload/upload.css +49 -49
  160. package/dist/icons-manifest.js +3 -3
  161. package/dist/web-components.min.css +1 -1
  162. package/dist/web-components.min.js +121 -83
  163. package/package.json +1 -1
  164. package/styles/components.css +8 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog — @adia-ai/web-components
2
2
 
3
+ ## [0.6.34] — 2026-05-23
4
+
5
+ ### Added — Wave 1 + Wave 2: 10 P1 components shipped from SPEC pilot
6
+
7
+ - **Wave 1 — 8 components** (commit `5ad89318d`): SPEC-001, SPEC-022, SPEC-036, SPEC-037, SPEC-043, SPEC-049, SPEC-056, SPEC-062. First wave of the SPEC-driven component-authoring pilot. Each ships full yaml + a2ui.json + .js class + .css + .examples.html + .test.js per the four-axis contract.
8
+ - **Wave 2 — 2 components** (commit `501053880`): SPEC-019, SPEC-038. Completes the 10-component pilot.
9
+ - **`<calendar-grid-ui>` substrate primitive extracted** (commit `dcf16cdf8`): a substrate-tier primitive supporting the calendar-family Wave 2 components.
10
+ - **Wave 1/2 visual-QA fixes** also landed in `dcf16cdf8`.
11
+ - Component count: 92 → 100 primitives (8 net additions). yaml/a2ui.json/d.ts coherence preserved.
12
+
13
+ ### Fixed — OD-5 token-shadowing closed across 98 components (`-default` suffix sweep)
14
+
15
+ - **`-default` suffix added to all leaf component tokens** (commit `e694be9d0`, single-component fix at `cbdf11f09`): unlocks themability/consumer override across all 98 component CSS files. Pattern: `--button-bg: var(--a-fg);` → `--button-bg-default: var(--a-fg); ... background: var(--button-bg, var(--button-bg-default));`. Consumer overrides at any ancestor surface now apply correctly without being shadowed by the leaf-token default. Closes OD-5 (consumer-side override-discoverability regression).
16
+
17
+ ### Changed — `dist/web-components.min.js` + `dist/web-components.min.css` rebuilt
18
+
19
+ - Bundle pass absorbed Wave 1+2 + OD-5 + `<calendar-grid-ui>` source changes. Bundle sizes adjusted accordingly.
20
+
21
+ ### Maintenance — `<spinner-ui>` exempted from size-wiring audit
22
+
23
+ - **`scripts/release/check-size-wiring.mjs`** YAML_SIZE_EXEMPT: added `spinner` — `size:` prop drives diameter via `--spinner-size` matching the icon-ui ladder (sm 14px / md 16px / lg 20px), parallel to existing exemptions for `icon`, `rating`, `swatch`. Content-driven loading glyph, not row-family. Surfaced by the audit after spinner joined the 100-component roster.
24
+
25
+ ## [0.6.33] — 2026-05-23
26
+
27
+ ### Changed — `dist/icons-manifest.js` comment header updated (FB-53 §1 companion)
28
+
29
+ - **`dist/icons-manifest.js`** is regenerated as a companion to the web-modules co-emit (see `@adia-ai/web-modules` [Unreleased] entry). The manifest file content is byte-identical except for the header comment, which now mentions co-location with both `web-components.min.js` AND `web-modules/everything.min.js`. `dist/web-components.min.js` rebuilt as part of the same bundle pass; no functional change. Files: `dist/icons-manifest.js`, `dist/web-components.min.js`.
30
+
31
+ ### Fixed — `<table-ui raw>` is now a true visual-only passthrough (FB-53 §2)
32
+
33
+ - **`<table-ui raw>` previously applied the chrome reset but still ran the full data lifecycle**, so wrapping a consumer-authored native `<table>` with no `.data` set produced a phantom `[data-empty]` "No data" overlay above the consumer's content. Root cause: `class.js` `render()` had no `this.raw` short-circuit; `#renderOverlays` injected the empty-state placeholder unconditionally whenever `this.#data.length === 0`. Fix: `render()` now early-returns when `this.raw` is set — no header injection, no body reconciliation, no overlays, no aggregation, no pagination. Raw is now the documented "consumer owns the body shape" mode. yaml description expanded with the full semantic. NEW 4 vitest cases in `table.test.js` (lock the contract: no `[data-empty]`, no `[data-header]`, no `[data-body]`, no rowgroups; non-raw default still injects them); 18/18 passing. Files: `components/table/class.js`, `components/table/table.yaml`, `components/table/table.test.js`.
34
+
35
+ ### Fixed — `<field-ui>` no longer reserves row-gap for an absent message row (FB-54)
36
+
37
+ - **`field.css` `:scope` declared `row-gap: var(--field-gap)` unconditionally**, so when no `[slot="hint"]` and no `[slot="error"]` were present, the grid's zero-content message row still reserved `--field-gap` (~8 px) between itself and the control row. Result: `<field-ui inline>` rendered ~7-8 px taller than non-field-ui siblings in a `<row-ui align="center">`, visually "lifting" the label relative to sibling control text. Fix: move `row-gap: var(--field-gap)` into a `:has(> [slot="hint"], > [slot="error"])` guard so the gap is reserved only when a message slot is actually present. Existing consumers with hints/errors get the same rendering; consumers without get a tighter, sibling-matching height. `:has()` is baseline (Chromium 105 / Safari 15.4 / Firefox 121 — well within ADR-0007's floor). NEW source-grep regression tests in `field.test.js` lock the contract (19/19 passing). Files: `components/field/field.css`, `components/field/field.test.js`.
38
+
39
+ ### Changed — `<tabs-ui>` row height now anchors to `var(--a-size)` (was hardcoded `2.25rem`)
40
+
41
+ - **`--tabs-button-height` retargeted from the hardcoded `2.25rem` (36 px, equivalent to `[size="lg"]`) to `var(--a-size)`.** Tabs now respond to the universal `[size]` attribute system like `button-ui`, `select-ui`, `nav-item-ui`, and other row-family primitives — `<tabs-ui size="sm">` → 24 px, default → 30 px, `<tabs-ui size="lg">` → 36 px (all at default `--a-density: 1`). Default-rendered tabs visibly shrink from 36 px → 30 px. **Behavior change** for consumers depending on lg-by-default tabs: set `[size="lg"]` on the host (or override `--tabs-button-height: var(--a-size-lg)`) to restore. Caught by NEW `check:size-wiring` audit (commit `2d931b980`). Files: `components/tabs/tabs.css`, `components/tabs/tabs.examples.html`.
42
+
43
+ ### Maintenance — `<kbd-ui>` exempted from size-wiring audit
44
+
45
+ - **`scripts/release/check-size-wiring.mjs`** EXEMPT + YAML_SIZE_EXEMPT: added `kbd-ui` to both — `--kbd-height: 1.25rem` is intentional (keyboard-key cap matching small-text rhythm, not row-family) and the `size:` prop drives font-size scale, parallel to existing exemptions for `badge`, `tag`, `icon`. Pre-existing technical debt surfaced by the new audit in v0.6.32; not a v0.6.33-introduced violation. Files: `scripts/release/check-size-wiring.mjs`.
46
+
3
47
  ## [0.6.32] — 2026-05-23
4
48
 
5
49
  ### Fixed (P0) — `everything.js` CDN bundle now includes all primitives (FB-51)
@@ -9,14 +9,14 @@
9
9
  /* ── Container ── */
10
10
  @scope (accordion-ui) {
11
11
  :where(:scope) {
12
- --accordion-gap: 0;
12
+ --accordion-gap-default: 0;
13
13
  }
14
14
 
15
15
  :scope {
16
16
  box-sizing: border-box;
17
17
  display: flex;
18
18
  flex-direction: column;
19
- gap: var(--accordion-gap);
19
+ gap: var(--accordion-gap, var(--accordion-gap-default));
20
20
  }
21
21
  }
22
22
 
@@ -1,13 +1,13 @@
1
1
  @scope (action-list-ui) {
2
2
  :where(:scope) {
3
- --action-list-gap: var(--a-space-0-5);
3
+ --action-list-gap-default: var(--a-space-0-5);
4
4
  }
5
5
 
6
6
  :scope {
7
7
  box-sizing: border-box;
8
8
  display: flex;
9
9
  flex-direction: column;
10
- gap: var(--action-list-gap);
10
+ gap: var(--action-list-gap, var(--action-list-gap-default));
11
11
  margin: 0;
12
12
  padding: 0;
13
13
  list-style: none;
@@ -1,57 +1,57 @@
1
1
  @scope (agent-artifact-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Layout ── */
4
- --agent-artifact-radius: var(--a-radius);
5
- --agent-artifact-padding: var(--a-space-3);
6
- --agent-artifact-header-padding-y: var(--a-space-2);
7
- --agent-artifact-header-padding-x: var(--a-space-3);
8
- --agent-artifact-gap: var(--a-space-2);
4
+ --agent-artifact-radius-default: var(--a-radius);
5
+ --agent-artifact-padding-default: var(--a-space-3);
6
+ --agent-artifact-header-padding-y-default: var(--a-space-2);
7
+ --agent-artifact-header-padding-x-default: var(--a-space-3);
8
+ --agent-artifact-gap-default: var(--a-space-2);
9
9
 
10
10
  /* ── Colors ── */
11
- --agent-artifact-bg: var(--a-bg-subtle);
12
- --agent-artifact-fg: var(--a-fg);
13
- --agent-artifact-fg-muted: var(--a-fg-muted);
14
- --agent-artifact-border: var(--a-border-subtle);
15
- --agent-artifact-header-bg: var(--a-bg);
16
- --agent-artifact-header-bg-hover: var(--a-bg-hover);
11
+ --agent-artifact-bg-default: var(--a-bg-subtle);
12
+ --agent-artifact-fg-default: var(--a-fg);
13
+ --agent-artifact-fg-muted-default: var(--a-fg-muted);
14
+ --agent-artifact-border-default: var(--a-border-subtle);
15
+ --agent-artifact-header-bg-default: var(--a-bg);
16
+ --agent-artifact-header-bg-hover-default: var(--a-bg-hover);
17
17
 
18
18
  /* ── Typography ── */
19
- --agent-artifact-title-size: var(--a-ui-md);
20
- --agent-artifact-title-weight: var(--a-weight-medium);
19
+ --agent-artifact-title-size-default: var(--a-ui-md);
20
+ --agent-artifact-title-weight-default: var(--a-weight-medium);
21
21
 
22
22
  /* ── Motion ── */
23
- --agent-artifact-duration: var(--a-duration-fast);
23
+ --agent-artifact-duration-default: var(--a-duration-fast);
24
24
  }
25
25
 
26
26
  :scope {
27
27
  display: flex;
28
28
  flex-direction: column;
29
- border: 1px solid var(--agent-artifact-border);
30
- border-radius: var(--agent-artifact-radius);
31
- background: var(--agent-artifact-bg);
29
+ border: 1px solid var(--agent-artifact-border, var(--agent-artifact-border-default));
30
+ border-radius: var(--agent-artifact-radius, var(--agent-artifact-radius-default));
31
+ background: var(--agent-artifact-bg, var(--agent-artifact-bg-default));
32
32
  overflow: hidden;
33
33
  min-width: 0;
34
34
  }
35
35
 
36
- :scope[tone="accent"] { --agent-artifact-border: var(--a-accent-bg); }
37
- :scope[tone="warning"] { --agent-artifact-border: var(--a-warning-bg); }
38
- :scope[tone="danger"] { --agent-artifact-border: var(--a-danger-bg); }
36
+ :scope[tone="accent"] { --agent-artifact-border-default: var(--a-accent-bg); }
37
+ :scope[tone="warning"] { --agent-artifact-border-default: var(--a-warning-bg); }
38
+ :scope[tone="danger"] { --agent-artifact-border-default: var(--a-danger-bg); }
39
39
 
40
40
  [data-artifact-header] {
41
41
  display: flex;
42
42
  align-items: center;
43
- gap: var(--agent-artifact-gap);
44
- padding: var(--agent-artifact-header-padding-y) var(--agent-artifact-header-padding-x);
45
- background: var(--agent-artifact-header-bg);
46
- border-block-end: 1px solid var(--agent-artifact-border);
43
+ gap: var(--agent-artifact-gap, var(--agent-artifact-gap-default));
44
+ padding: var(--agent-artifact-header-padding-y, var(--agent-artifact-header-padding-y-default)) var(--agent-artifact-header-padding-x, var(--agent-artifact-header-padding-x-default));
45
+ background: var(--agent-artifact-header-bg, var(--agent-artifact-header-bg-default));
46
+ border-block-end: 1px solid var(--agent-artifact-border, var(--agent-artifact-border-default));
47
47
  cursor: pointer;
48
48
  user-select: none;
49
49
  min-width: 0;
50
- transition: background var(--agent-artifact-duration);
50
+ transition: background var(--agent-artifact-duration, var(--agent-artifact-duration-default));
51
51
  }
52
52
 
53
53
  [data-artifact-header]:hover {
54
- background: var(--agent-artifact-header-bg-hover);
54
+ background: var(--agent-artifact-header-bg-hover, var(--agent-artifact-header-bg-hover-default));
55
55
  }
56
56
 
57
57
  [data-artifact-header]:focus-visible {
@@ -69,9 +69,9 @@
69
69
  overflow: hidden;
70
70
  text-overflow: ellipsis;
71
71
  white-space: nowrap;
72
- font-size: var(--agent-artifact-title-size);
73
- font-weight: var(--agent-artifact-title-weight);
74
- color: var(--agent-artifact-fg);
72
+ font-size: var(--agent-artifact-title-size, var(--agent-artifact-title-size-default));
73
+ font-weight: var(--agent-artifact-title-weight, var(--agent-artifact-title-weight-default));
74
+ color: var(--agent-artifact-fg, var(--agent-artifact-fg-default));
75
75
  }
76
76
 
77
77
  /* [data-artifact-kind] is a <badge-ui size="sm"> — it brings its own pill
@@ -91,11 +91,11 @@
91
91
 
92
92
  [data-artifact-chevron] {
93
93
  flex-shrink: 0;
94
- transition: transform var(--agent-artifact-duration);
94
+ transition: transform var(--agent-artifact-duration, var(--agent-artifact-duration-default));
95
95
  }
96
96
 
97
97
  [data-artifact-body] {
98
- padding: var(--agent-artifact-padding);
98
+ padding: var(--agent-artifact-padding, var(--agent-artifact-padding-default));
99
99
  min-width: 0;
100
100
  }
101
101
 
@@ -1,29 +1,29 @@
1
1
  @scope (agent-feedback-bar-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Layout ── */
4
- --agent-feedback-bar-gap: var(--a-space-1);
5
- --agent-feedback-bar-padding: var(--a-space-2);
4
+ --agent-feedback-bar-gap-default: var(--a-space-1);
5
+ --agent-feedback-bar-padding-default: var(--a-space-2);
6
6
 
7
7
  /* ── Typography ── */
8
- --agent-feedback-bar-font: var(--a-ui-sm);
8
+ --agent-feedback-bar-font-default: var(--a-ui-sm);
9
9
 
10
10
  /* ── Colors ── */
11
- --agent-feedback-bar-fg: var(--a-fg-muted);
11
+ --agent-feedback-bar-fg-default: var(--a-fg-muted);
12
12
  }
13
13
 
14
14
  :scope {
15
15
  display: flex;
16
16
  align-items: center;
17
- gap: var(--agent-feedback-bar-gap);
18
- padding-block: var(--agent-feedback-bar-padding);
19
- font-size: var(--agent-feedback-bar-font);
20
- color: var(--agent-feedback-bar-fg);
17
+ gap: var(--agent-feedback-bar-gap, var(--agent-feedback-bar-gap-default));
18
+ padding-block: var(--agent-feedback-bar-padding, var(--agent-feedback-bar-padding-default));
19
+ font-size: var(--agent-feedback-bar-font, var(--agent-feedback-bar-font-default));
20
+ color: var(--agent-feedback-bar-fg, var(--agent-feedback-bar-fg-default));
21
21
  }
22
22
 
23
23
  [data-feedback-status] {
24
24
  margin-inline-start: auto;
25
- color: var(--agent-feedback-bar-fg);
26
- font-size: var(--agent-feedback-bar-font);
25
+ color: var(--agent-feedback-bar-fg, var(--agent-feedback-bar-fg-default));
26
+ font-size: var(--agent-feedback-bar-font, var(--agent-feedback-bar-font-default));
27
27
  }
28
28
 
29
29
  :scope[disabled] {
@@ -1,64 +1,64 @@
1
1
  @scope (agent-questions-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Typography ── */
4
- --agent-questions-q-size: var(--a-ui-md);
5
- --agent-questions-q-weight: var(--a-weight-medium);
6
- --agent-questions-helper-size: var(--a-ui-sm);
7
- --agent-questions-label-size: var(--a-ui-md);
8
- --agent-questions-label-weight: var(--a-weight-medium);
9
- --agent-questions-desc-size: var(--a-ui-sm);
4
+ --agent-questions-q-size-default: var(--a-ui-md);
5
+ --agent-questions-q-weight-default: var(--a-weight-medium);
6
+ --agent-questions-helper-size-default: var(--a-ui-sm);
7
+ --agent-questions-label-size-default: var(--a-ui-md);
8
+ --agent-questions-label-weight-default: var(--a-weight-medium);
9
+ --agent-questions-desc-size-default: var(--a-ui-sm);
10
10
 
11
11
  /* ── Colors ── */
12
- --agent-questions-q-fg: var(--a-fg);
13
- --agent-questions-helper-fg: var(--a-fg-muted);
14
- --agent-questions-label-fg: var(--a-fg);
15
- --agent-questions-desc-fg: var(--a-fg-muted);
16
- --agent-questions-option-bg: var(--a-bg);
17
- --agent-questions-option-bg-hover: var(--a-bg-subtle);
18
- --agent-questions-option-bg-sel: var(--a-accent-muted);
19
- --agent-questions-option-border: var(--a-border-subtle);
20
- --agent-questions-option-border-sel: var(--a-accent-bg);
21
- --agent-questions-check-bg: var(--a-accent-bg);
22
- --agent-questions-check-fg: var(--a-accent-fg);
12
+ --agent-questions-q-fg-default: var(--a-fg);
13
+ --agent-questions-helper-fg-default: var(--a-fg-muted);
14
+ --agent-questions-label-fg-default: var(--a-fg);
15
+ --agent-questions-desc-fg-default: var(--a-fg-muted);
16
+ --agent-questions-option-bg-default: var(--a-bg);
17
+ --agent-questions-option-bg-hover-default: var(--a-bg-subtle);
18
+ --agent-questions-option-bg-sel-default: var(--a-accent-muted);
19
+ --agent-questions-option-border-default: var(--a-border-subtle);
20
+ --agent-questions-option-border-sel-default: var(--a-accent-bg);
21
+ --agent-questions-check-bg-default: var(--a-accent-bg);
22
+ --agent-questions-check-fg-default: var(--a-accent-fg);
23
23
 
24
24
  /* ── Layout ── */
25
- --agent-questions-gap: var(--a-space-2);
26
- --agent-questions-option-gap: var(--a-space-3);
27
- --agent-questions-option-padding: var(--a-space-3);
28
- --agent-questions-option-radius: var(--a-radius);
29
- --agent-questions-q-padding: var(--a-space-1);
30
- --agent-questions-option-body-gap: var(--a-space-0-5);
25
+ --agent-questions-gap-default: var(--a-space-2);
26
+ --agent-questions-option-gap-default: var(--a-space-3);
27
+ --agent-questions-option-padding-default: var(--a-space-3);
28
+ --agent-questions-option-radius-default: var(--a-radius);
29
+ --agent-questions-q-padding-default: var(--a-space-1);
30
+ --agent-questions-option-body-gap-default: var(--a-space-0-5);
31
31
  /* Component-intrinsic measurement; no --a-space-* equivalent */
32
- --agent-questions-check-size: 20px;
32
+ --agent-questions-check-size-default: 20px;
33
33
 
34
34
  /* ── Motion ── */
35
- --agent-questions-duration: var(--a-duration-fast);
36
- --agent-questions-easing: var(--a-easing-out);
35
+ --agent-questions-duration-default: var(--a-duration-fast);
36
+ --agent-questions-easing-default: var(--a-easing-out);
37
37
  }
38
38
 
39
39
  :scope {
40
40
  display: flex;
41
41
  flex-direction: column;
42
- gap: var(--agent-questions-gap);
42
+ gap: var(--agent-questions-gap, var(--agent-questions-gap-default));
43
43
  }
44
44
 
45
45
  [data-questions-q] {
46
- font-size: var(--agent-questions-q-size);
47
- font-weight: var(--agent-questions-q-weight);
48
- color: var(--agent-questions-q-fg);
49
- padding: var(--agent-questions-q-padding) 0;
46
+ font-size: var(--agent-questions-q-size, var(--agent-questions-q-size-default));
47
+ font-weight: var(--agent-questions-q-weight, var(--agent-questions-q-weight-default));
48
+ color: var(--agent-questions-q-fg, var(--agent-questions-q-fg-default));
49
+ padding: var(--agent-questions-q-padding, var(--agent-questions-q-padding-default)) 0;
50
50
  }
51
51
 
52
52
  [data-questions-helper] {
53
- font-size: var(--agent-questions-helper-size);
54
- color: var(--agent-questions-helper-fg);
53
+ font-size: var(--agent-questions-helper-size, var(--agent-questions-helper-size-default));
54
+ color: var(--agent-questions-helper-fg, var(--agent-questions-helper-fg-default));
55
55
  padding-block-end: var(--a-space-1);
56
56
  }
57
57
 
58
58
  [data-questions-options] {
59
59
  display: flex;
60
60
  flex-direction: column;
61
- gap: var(--agent-questions-gap);
61
+ gap: var(--agent-questions-gap, var(--agent-questions-gap-default));
62
62
  }
63
63
 
64
64
  [data-questions-option] {
@@ -70,29 +70,29 @@
70
70
  down to the body's vertical midpoint, which sat between label
71
71
  and description rather than on the label. */
72
72
  align-items: start;
73
- gap: var(--agent-questions-option-gap);
74
- padding: var(--agent-questions-option-padding);
75
- border: 1px solid var(--agent-questions-option-border);
76
- border-radius: var(--agent-questions-option-radius);
77
- background: var(--agent-questions-option-bg);
73
+ gap: var(--agent-questions-option-gap, var(--agent-questions-option-gap-default));
74
+ padding: var(--agent-questions-option-padding, var(--agent-questions-option-padding-default));
75
+ border: 1px solid var(--agent-questions-option-border, var(--agent-questions-option-border-default));
76
+ border-radius: var(--agent-questions-option-radius, var(--agent-questions-option-radius-default));
77
+ background: var(--agent-questions-option-bg, var(--agent-questions-option-bg-default));
78
78
  color: inherit;
79
79
  cursor: pointer;
80
80
  text-align: start;
81
81
  font: inherit;
82
82
  transition:
83
- background var(--agent-questions-duration) var(--agent-questions-easing),
84
- border-color var(--agent-questions-duration) var(--agent-questions-easing);
83
+ background var(--agent-questions-duration, var(--agent-questions-duration-default)) var(--agent-questions-easing, var(--agent-questions-easing-default)),
84
+ border-color var(--agent-questions-duration, var(--agent-questions-duration-default)) var(--agent-questions-easing, var(--agent-questions-easing-default));
85
85
  min-width: 0;
86
86
  width: 100%;
87
87
  }
88
88
 
89
89
  [data-questions-option]:hover {
90
- background: var(--agent-questions-option-bg-hover);
90
+ background: var(--agent-questions-option-bg-hover, var(--agent-questions-option-bg-hover-default));
91
91
  }
92
92
 
93
93
  [data-questions-option][data-selected] {
94
- background: var(--agent-questions-option-bg-sel);
95
- border-color: var(--agent-questions-option-border-sel);
94
+ background: var(--agent-questions-option-bg-sel, var(--agent-questions-option-bg-sel-default));
95
+ border-color: var(--agent-questions-option-border-sel, var(--agent-questions-option-border-sel-default));
96
96
  }
97
97
 
98
98
  [data-questions-option][disabled] {
@@ -101,7 +101,7 @@
101
101
  }
102
102
 
103
103
  [data-questions-option]:focus-visible {
104
- outline: 2px solid var(--agent-questions-option-border-sel);
104
+ outline: 2px solid var(--agent-questions-option-border-sel, var(--agent-questions-option-border-sel-default));
105
105
  outline-offset: 2px;
106
106
  }
107
107
 
@@ -124,24 +124,24 @@
124
124
  min-width: 0;
125
125
  display: flex;
126
126
  flex-direction: column;
127
- gap: var(--agent-questions-option-body-gap);
127
+ gap: var(--agent-questions-option-body-gap, var(--agent-questions-option-body-gap-default));
128
128
  }
129
129
 
130
130
  [data-questions-option-label] {
131
- font-size: var(--agent-questions-label-size);
132
- font-weight: var(--agent-questions-label-weight);
133
- color: var(--agent-questions-label-fg);
131
+ font-size: var(--agent-questions-label-size, var(--agent-questions-label-size-default));
132
+ font-weight: var(--agent-questions-label-weight, var(--agent-questions-label-weight-default));
133
+ color: var(--agent-questions-label-fg, var(--agent-questions-label-fg-default));
134
134
  }
135
135
 
136
136
  [data-questions-option-desc] {
137
- font-size: var(--agent-questions-desc-size);
138
- color: var(--agent-questions-desc-fg);
137
+ font-size: var(--agent-questions-desc-size, var(--agent-questions-desc-size-default));
138
+ color: var(--agent-questions-desc-fg, var(--agent-questions-desc-fg-default));
139
139
  line-height: 1.4;
140
140
  }
141
141
 
142
142
  [data-questions-option-check] {
143
- width: var(--agent-questions-check-size);
144
- height: var(--agent-questions-check-size);
143
+ width: var(--agent-questions-check-size, var(--agent-questions-check-size-default));
144
+ height: var(--agent-questions-check-size, var(--agent-questions-check-size-default));
145
145
  border-radius: 50%;
146
146
  flex-shrink: 0;
147
147
  display: flex;
@@ -149,18 +149,18 @@
149
149
  justify-content: center;
150
150
  background: transparent;
151
151
  opacity: 0;
152
- transition: opacity var(--agent-questions-duration) var(--agent-questions-easing);
152
+ transition: opacity var(--agent-questions-duration, var(--agent-questions-duration-default)) var(--agent-questions-easing, var(--agent-questions-easing-default));
153
153
  /* Match the leading-icon offset so a row of [icon · label · check]
154
154
  reads as one horizontal line aligned to the label's first line. */
155
- margin-top: calc((1.5em - var(--agent-questions-check-size)) / 2);
155
+ margin-top: calc((1.5em - var(--agent-questions-check-size, var(--agent-questions-check-size-default))) / 2);
156
156
  }
157
157
 
158
158
  [data-questions-option][data-selected] [data-questions-option-check] {
159
- background: var(--agent-questions-check-bg);
159
+ background: var(--agent-questions-check-bg, var(--agent-questions-check-bg-default));
160
160
  opacity: 1;
161
161
  }
162
162
 
163
163
  [data-questions-option][data-selected] [data-questions-option-check] icon-ui {
164
- color: var(--agent-questions-check-fg);
164
+ color: var(--agent-questions-check-fg, var(--agent-questions-check-fg-default));
165
165
  }
166
166
  }