@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.
Files changed (166) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/components/accordion/accordion.css +13 -4
  3. package/components/action-list/action-list.css +3 -3
  4. package/components/agent-artifact/agent-artifact.css +4 -4
  5. package/components/agent-questions/agent-questions.css +8 -8
  6. package/components/agent-reasoning/agent-reasoning.css +6 -6
  7. package/components/agent-trace/agent-trace.css +4 -4
  8. package/components/agent-trace/agent-trace.js +1 -1
  9. package/components/alert/alert.css +16 -16
  10. package/components/avatar/avatar.css +3 -3
  11. package/components/badge/badge.css +32 -32
  12. package/components/blockquote/blockquote.css +1 -1
  13. package/components/breadcrumb/breadcrumb.css +2 -2
  14. package/components/button/button.css +14 -14
  15. package/components/calendar-grid/calendar-grid.a2ui.json +3 -3
  16. package/components/calendar-grid/calendar-grid.css +10 -10
  17. package/components/calendar-grid/calendar-grid.yaml +3 -3
  18. package/components/calendar-picker/calendar-picker.css +11 -11
  19. package/components/canvas/canvas.css +2 -2
  20. package/components/card/card.css +15 -15
  21. package/components/chart/chart.a2ui.json +1 -1
  22. package/components/chart/chart.css +23 -23
  23. package/components/chart/chart.yaml +2 -0
  24. package/components/chart-legend/chart-legend.css +2 -2
  25. package/components/chat-thread/chat-input.css +6 -6
  26. package/components/chat-thread/chat-thread.css +7 -7
  27. package/components/check/check.css +4 -4
  28. package/components/code/code-editor.js +1 -1
  29. package/components/code/code.css +45 -22
  30. package/components/color-picker/color-picker.css +4 -4
  31. package/components/combobox/combobox.css +6 -6
  32. package/components/command/command.class.js +14 -3
  33. package/components/command/command.css +4 -4
  34. package/components/context-menu/context-menu.css +2 -2
  35. package/components/date-range-picker/date-range-picker.a2ui.json +3 -3
  36. package/components/date-range-picker/date-range-picker.css +8 -8
  37. package/components/date-range-picker/date-range-picker.yaml +3 -3
  38. package/components/datetime-picker/datetime-picker.css +6 -6
  39. package/components/demo-toggle/demo-toggle.css +4 -4
  40. package/components/description-list/description-list.css +1 -1
  41. package/components/display-field/display-field.css +2 -2
  42. package/components/divider/divider.css +1 -1
  43. package/components/drawer/drawer.css +7 -7
  44. package/components/embed/embed.css +1 -1
  45. package/components/empty-state/empty-state.css +5 -5
  46. package/components/feed/feed.css +7 -7
  47. package/components/field/field.css +2 -2
  48. package/components/heatmap/heatmap.css +8 -8
  49. package/components/inline-edit/inline-edit.a2ui.json +1 -1
  50. package/components/inline-edit/inline-edit.css +3 -3
  51. package/components/inline-edit/inline-edit.yaml +1 -1
  52. package/components/inline-message/inline-message.css +4 -4
  53. package/components/input/input.css +1 -1
  54. package/components/inspector/inspector.css +1 -1
  55. package/components/integration-card/integration-card.css +3 -3
  56. package/components/kbd/kbd.a2ui.json +4 -0
  57. package/components/kbd/kbd.css +2 -2
  58. package/components/kbd/kbd.d.ts +2 -0
  59. package/components/kbd/kbd.yaml +5 -0
  60. package/components/link/link.css +2 -2
  61. package/components/list/list.css +10 -10
  62. package/components/list-window/list-window.css +2 -2
  63. package/components/mark/mark.css +9 -9
  64. package/components/menu/menu.css +9 -9
  65. package/components/modal/modal.css +4 -4
  66. package/components/nav/nav.css +1 -1
  67. package/components/nav-group/nav-group.css +7 -16
  68. package/components/nav-item/nav-item.css +1 -1
  69. package/components/noodles/noodles.a2ui.json +1 -1
  70. package/components/noodles/noodles.css +3 -3
  71. package/components/noodles/noodles.d.ts +1 -1
  72. package/components/noodles/noodles.yaml +1 -1
  73. package/components/option-card/option-card.css +11 -11
  74. package/components/otp-input/otp-input.css +1 -1
  75. package/components/page/page.css +2 -2
  76. package/components/pane/pane.css +5 -5
  77. package/components/password-strength/password-strength.css +1 -1
  78. package/components/pipeline-status/pipeline-status.css +9 -9
  79. package/components/popover/popover.css +2 -2
  80. package/components/preview/preview.css +14 -3
  81. package/components/progress/progress.a2ui.json +1 -1
  82. package/components/progress/progress.css +1 -1
  83. package/components/progress/progress.d.ts +1 -1
  84. package/components/progress/progress.yaml +1 -1
  85. package/components/progress-row/progress-row.css +2 -2
  86. package/components/radio/radio.css +4 -4
  87. package/components/range/range.css +2 -2
  88. package/components/rating/rating.css +2 -2
  89. package/components/richtext/richtext.class.js +4 -0
  90. package/components/richtext/richtext.css +5 -5
  91. package/components/richtext/richtext.yaml +1 -0
  92. package/components/row/row.css +1 -1
  93. package/components/select/select.css +8 -8
  94. package/components/skip-nav/skip-nav.a2ui.json +2 -2
  95. package/components/skip-nav/skip-nav.css +3 -3
  96. package/components/skip-nav/skip-nav.yaml +2 -2
  97. package/components/slider/slider.css +5 -5
  98. package/components/spinner/spinner.css +2 -2
  99. package/components/spinner/spinner.test.js +4 -2
  100. package/components/stat/stat.css +1 -1
  101. package/components/step-progress/step-progress.a2ui.json +1 -1
  102. package/components/step-progress/step-progress.class.js +1 -1
  103. package/components/step-progress/step-progress.css +2 -2
  104. package/components/step-progress/step-progress.d.ts +1 -1
  105. package/components/step-progress/step-progress.yaml +1 -1
  106. package/components/stepper/stepper.css +22 -22
  107. package/components/stream/stream.css +2 -2
  108. package/components/swatch/swatch.class.js +1 -1
  109. package/components/swatch/swatch.css +11 -11
  110. package/components/swiper/swiper.css +5 -5
  111. package/components/switch/switch.css +5 -5
  112. package/components/table/cell-types.js +32 -3
  113. package/components/table/table.a2ui.json +1 -1
  114. package/components/table/table.css +16 -11
  115. package/components/table/table.test.js +37 -0
  116. package/components/table/table.yaml +2 -0
  117. package/components/table-toolbar/table-toolbar.css +8 -8
  118. package/components/tabs/tabs.css +5 -5
  119. package/components/tag/tag.css +41 -29
  120. package/components/tag/tag.test.js +22 -29
  121. package/components/tags-input/tags-input.a2ui.json +1 -1
  122. package/components/tags-input/tags-input.css +3 -3
  123. package/components/tags-input/tags-input.yaml +5 -3
  124. package/components/text/text.css +4 -4
  125. package/components/textarea/textarea.css +1 -1
  126. package/components/time-picker/time-picker.css +2 -2
  127. package/components/timeline/timeline.css +31 -31
  128. package/components/toast/toast.css +19 -19
  129. package/components/toc/toc.a2ui.json +1 -1
  130. package/components/toc/toc.css +3 -3
  131. package/components/toc/toc.yaml +1 -1
  132. package/components/toggle-group/toggle-group.css +3 -3
  133. package/components/toolbar/toolbar.css +3 -3
  134. package/components/tooltip/tooltip.css +9 -9
  135. package/components/tour/tour.css +3 -3
  136. package/components/tree/tree.css +2 -2
  137. package/components/upload/upload.css +7 -7
  138. package/core/markdown.js +1 -1
  139. package/dist/host.min.css +1 -1
  140. package/dist/host.sheet.js +1 -1
  141. package/dist/theme-provider.min.js +7 -7
  142. package/dist/themes.min.css +1 -1
  143. package/dist/themes.sheet.js +1 -1
  144. package/dist/web-components.min.css +1 -1
  145. package/dist/web-components.min.js +62 -62
  146. package/dist/web-components.sheet.js +1 -1
  147. package/package.json +3 -3
  148. package/styles/api/text.css +1 -1
  149. package/styles/colors/bridges/material-bridge.css +30 -0
  150. package/styles/colors/index.css +19 -1
  151. package/styles/colors/material-static.css +771 -0
  152. package/styles/colors/parameters.css +40 -4
  153. package/styles/colors/primitives-primary.css +89 -0
  154. package/styles/colors/primitives-secondary.css +89 -0
  155. package/styles/colors/primitives-tertiary.css +89 -0
  156. package/styles/colors/primitives.css +3 -1
  157. package/styles/colors/scrims.css +19 -180
  158. package/styles/colors/semantics/aliases.css +25 -11
  159. package/styles/colors/semantics/buckets.css +28 -12
  160. package/styles/colors/semantics/core.css +323 -202
  161. package/styles/colors/semantics/data-viz.css +13 -13
  162. package/styles/colors/semantics/features.css +31 -13
  163. package/styles/colors/surfaces.css +41 -31
  164. package/styles/resets.css +15 -1
  165. package/styles/themes.css +15 -15
  166. package/styles/colors/primitives-accent.css +0 -89
@@ -1,7 +1,7 @@
1
1
  @scope (mark-ui) {
2
2
  :where(:scope) {
3
- --mark-bg: var(--a-warning-muted);
4
- --mark-fg: var(--a-warning-text);
3
+ --mark-bg: var(--md-sys-color-warning-container);
4
+ --mark-fg: var(--md-sys-color-warning-on-surface);
5
5
  --mark-px: var(--a-space-0-5);
6
6
  --mark-radius: var(--a-radius-xs);
7
7
  }
@@ -21,19 +21,19 @@
21
21
 
22
22
  /* Variants — same role × state pair as alert-ui / tag-ui */
23
23
  :scope[variant="info"] {
24
- --mark-bg: var(--a-info-muted);
25
- --mark-fg: var(--a-info-text);
24
+ --mark-bg: var(--md-sys-color-info-container);
25
+ --mark-fg: var(--md-sys-color-info-on-surface);
26
26
  }
27
27
  :scope[variant="success"] {
28
- --mark-bg: var(--a-success-muted);
29
- --mark-fg: var(--a-success-text);
28
+ --mark-bg: var(--md-sys-color-success-container);
29
+ --mark-fg: var(--md-sys-color-success-on-surface);
30
30
  }
31
31
  :scope[variant="danger"] {
32
- --mark-bg: var(--a-danger-muted);
33
- --mark-fg: var(--a-danger-text);
32
+ --mark-bg: var(--md-sys-color-danger-container);
33
+ --mark-fg: var(--md-sys-color-danger-on-surface);
34
34
  }
35
35
  :scope[variant="muted"] {
36
36
  --mark-bg: var(--a-bg-muted);
37
- --mark-fg: var(--a-fg);
37
+ --mark-fg: var(--md-sys-color-neutral-on-surface);
38
38
  }
39
39
  }
@@ -1,13 +1,13 @@
1
1
  @scope (menu-ui) {
2
2
  :where(:scope) {
3
3
  --menu-popover-padding: var(--a-space-1);
4
- --menu-popover-border: var(--a-border-subtle);
4
+ --menu-popover-border: var(--md-sys-color-neutral-outline-variant);
5
5
  --menu-popover-radius: var(--a-radius-lg);
6
6
  --menu-popover-bg: var(--a-bg-subtle);
7
7
  --menu-popover-shadow: var(--a-shadow-lg);
8
8
  --menu-popover-min-width: 10rem;
9
9
  --menu-popover-font-size: var(--a-ui-size);
10
- --menu-popover-fg: var(--a-fg);
10
+ --menu-popover-fg: var(--md-sys-color-neutral-on-surface);
11
11
  }
12
12
 
13
13
  :scope {
@@ -47,14 +47,14 @@
47
47
  menu-ui [data-menu-popover] {
48
48
  margin: 0;
49
49
  padding: var(--a-space-1);
50
- border: 1px solid var(--a-border-subtle);
50
+ border: 1px solid var(--md-sys-color-neutral-outline-variant);
51
51
  border-radius: var(--a-radius-lg);
52
52
  background: var(--a-bg-subtle);
53
53
  box-shadow: var(--a-shadow-lg);
54
54
  min-width: 10rem;
55
55
  font-family: var(--menu-font-family, var(--a-font-family-ui));
56
56
  font-size: var(--a-ui-size);
57
- color: var(--a-fg);
57
+ color: var(--md-sys-color-neutral-on-surface);
58
58
  /* Fade + lift in on first paint via @starting-style. Plain `transition`
59
59
  applies during exit too (display: none can't transition, but opacity
60
60
  can — and the close path is JS-controlled so no exit anim is needed). */
@@ -118,15 +118,15 @@ menu-item-ui[variant="danger"]:hover [slot="icon"] {
118
118
 
119
119
  /* ── Colors ── */
120
120
  --menu-item-bg: transparent;
121
- --menu-item-fg: var(--a-fg-subtle);
122
- --menu-item-fg-hover: var(--a-fg);
121
+ --menu-item-fg: var(--md-sys-color-neutral-on-surface-variant);
122
+ --menu-item-fg-hover: var(--md-sys-color-neutral-on-surface);
123
123
  --menu-item-bg-hover: var(--a-bg-muted);
124
124
  --menu-item-fg-disabled: var(--a-ui-text-disabled);
125
125
  --menu-item-icon-fg: var(--a-fg-muted);
126
- --menu-item-icon-fg-hover: var(--a-fg);
126
+ --menu-item-icon-fg-hover: var(--md-sys-color-neutral-on-surface);
127
127
  --menu-item-icon-disabled: var(--a-ui-text-disabled);
128
128
  --menu-item-danger-fg: var(--a-danger-bg);
129
- --menu-item-danger-bg: var(--a-danger-muted);
129
+ --menu-item-danger-bg: var(--md-sys-color-danger-container);
130
130
 
131
131
  /* ── Typography ── */
132
132
  --menu-item-font-size: var(--a-ui-size);
@@ -201,7 +201,7 @@ menu-item-ui[variant="danger"]:hover [slot="icon"] {
201
201
  --menu-divider-my: var(--a-space-1);
202
202
 
203
203
  /* ── Colors ── */
204
- --menu-divider-color: var(--a-border-subtle);
204
+ --menu-divider-color: var(--md-sys-color-neutral-outline-variant);
205
205
  }
206
206
 
207
207
  :scope {
@@ -11,17 +11,17 @@
11
11
  :where(:scope) {
12
12
  --modal-width: 32rem;
13
13
  --modal-radius: var(--a-radius-lg);
14
- --modal-bg: var(--a-canvas-dimmer);
15
- --modal-border: var(--a-border-subtle);
14
+ --modal-bg: var(--md-sys-color-neutral-surface-dimmer);
15
+ --modal-border: var(--md-sys-color-neutral-outline-variant);
16
16
  --modal-shadow: var(--a-shadow-lg);
17
17
  --modal-backdrop: var(--a-scrim-dialog);
18
18
  --modal-duration: var(--a-duration);
19
19
  --modal-easing: var(--a-easing-out);
20
20
  --modal-heading-size: var(--a-ui-lg);
21
21
  --modal-heading-weight: var(--a-weight-semibold);
22
- --modal-header-fg: var(--a-fg);
22
+ --modal-header-fg: var(--md-sys-color-neutral-on-surface);
23
23
  --modal-close-fg: var(--a-fg-muted);
24
- --modal-close-hover: var(--a-fg);
24
+ --modal-close-hover: var(--md-sys-color-neutral-on-surface);
25
25
  --modal-pad-header: var(--a-space-3);
26
26
  --modal-pad-body: var(--a-space-4);
27
27
  --modal-pad-footer: var(--a-space-3);
@@ -11,7 +11,7 @@
11
11
  --nav-py: var(--a-space-2);
12
12
  --nav-font-size: var(--a-ui-size);
13
13
  --nav-bg: transparent;
14
- --nav-divider-bg: var(--a-border-subtle);
14
+ --nav-divider-bg: var(--md-sys-color-neutral-outline-variant);
15
15
  --nav-divider-my: var(--a-space-1);
16
16
 
17
17
  /* Primary-variant collapse */
@@ -10,7 +10,7 @@
10
10
  --nav-group-font-size-sm: var(--a-ui-sm);
11
11
  --nav-group-font-size-lg: var(--a-ui-lg);
12
12
  --nav-group-font-weight: var(--a-weight-normal);
13
- --nav-group-fg: var(--a-fg);
13
+ --nav-group-fg: var(--md-sys-color-neutral-on-surface);
14
14
  --nav-group-fg-hover: var(--a-fg-strong);
15
15
  --nav-group-fg-muted: var(--a-fg-muted);
16
16
  --nav-group-fg-selected: var(--a-fg-strong);
@@ -215,7 +215,7 @@
215
215
  nav-group-ui [slot="popover"] {
216
216
  margin: 0;
217
217
  padding: var(--a-space-1);
218
- border: 1px solid var(--a-border-subtle);
218
+ border: 1px solid var(--md-sys-color-neutral-outline-variant);
219
219
  border-radius: var(--a-radius);
220
220
  background: var(--a-bg-subtle);
221
221
  box-shadow: var(--a-shadow-lg);
@@ -250,27 +250,18 @@ nav-group-ui [slot="popover"] [role="option"]:hover {
250
250
  color: var(--nav-group-fg-hover);
251
251
  }
252
252
 
253
- /* Selected / current option — mirrors the main rail's nav-item selection:
254
- muted fill + leading 2px accent bar. */
253
+ /* Selected / current option — background fill alone (TKT-0017): a
254
+ paired leading accent bar (mirroring the main rail's nav-item
255
+ selection) was removed as a redundant second signal for the same
256
+ state — the muted fill + color + weight change already reads clearly
257
+ as "selected" on its own. */
255
258
  nav-group-ui [slot="popover"] [role="option"][aria-current="page"],
256
259
  nav-group-ui [slot="popover"] [role="option"][aria-selected="true"] {
257
- position: relative;
258
260
  background: var(--nav-group-bg-hover);
259
261
  color: var(--nav-group-fg-selected);
260
262
  font-weight: var(--a-weight-medium);
261
263
  }
262
264
 
263
- nav-group-ui [slot="popover"] [role="option"][aria-current="page"]::before,
264
- nav-group-ui [slot="popover"] [role="option"][aria-selected="true"]::before {
265
- content: '';
266
- position: absolute;
267
- inset-inline-start: calc(var(--a-space-2) * -0.5);
268
- inset-block: 25%;
269
- width: 2px;
270
- border-radius: 1px;
271
- background: var(--a-accent);
272
- }
273
-
274
265
  /* ── Section variant — groups render as kicker labels ──
275
266
  Primary variant defaults to collapsible:true (caret-toggleable).
276
267
  Section variant flips to collapsible:false-shape — header is a
@@ -29,7 +29,7 @@ nav-item-ui[selected] [slot="icon"]:empty::before {
29
29
 
30
30
  @scope (nav-item-ui) {
31
31
  :where(:scope) {
32
- --nav-item-accent: var(--a-accent);
32
+ --nav-item-accent: var(--md-sys-color-primary);
33
33
  --nav-item-row-height: var(--a-size);
34
34
  --nav-item-row-height-sm: var(--a-size-sm);
35
35
  --nav-item-row-height-lg: var(--a-size-lg);
@@ -19,7 +19,7 @@
19
19
  "default": false
20
20
  },
21
21
  "color": {
22
- "description": "Noodle stroke color. Defaults to --a-accent",
22
+ "description": "Noodle stroke color. Defaults to --a-primary-bg",
23
23
  "type": "string",
24
24
  "default": ""
25
25
  },
@@ -3,14 +3,14 @@
3
3
  /* ── Tokens ── */
4
4
  --noodles-duration: var(--a-duration-fast);
5
5
  --noodles-easing: var(--a-easing);
6
- --noodles-stroke: var(--a-accent-bg);
6
+ --noodles-stroke: var(--a-primary-bg);
7
7
  /* Component-intrinsic visual constants; no --a-space-* equivalent */
8
8
  --noodles-stroke-width: 2px;
9
9
  --noodles-stroke-readonly: var(--a-fg-muted);
10
10
  /* Component-intrinsic visual constants; no --a-space-* equivalent */
11
11
  --noodles-port-size: 10px;
12
- --noodles-port-bg: var(--a-accent-bg);
13
- --noodles-port-border: var(--a-bg);
12
+ --noodles-port-bg: var(--a-primary-bg);
13
+ --noodles-port-border: var(--md-sys-color-neutral-background);
14
14
  --noodles-port-hover-ring: 0 0 0 3px var(--a-bg-muted);
15
15
  --noodles-port-drop-scale: 1.4;
16
16
  --noodles-port-drag-opacity: 0.4;
@@ -45,7 +45,7 @@ export type NoodlesNoodleDragEvent = CustomEvent<unknown>;
45
45
  export class UINoodles extends UIElement {
46
46
  /** Flowing dash animation on noodles */
47
47
  animated: boolean;
48
- /** Noodle stroke color. Defaults to --a-accent */
48
+ /** Noodle stroke color. Defaults to --a-primary-bg */
49
49
  color: string;
50
50
  /** Noodle curve style */
51
51
  curve: 'bezier' | 'step' | 'straight';
@@ -15,7 +15,7 @@ props:
15
15
  type: boolean
16
16
  default: false
17
17
  color:
18
- description: Noodle stroke color. Defaults to --a-accent
18
+ description: Noodle stroke color. Defaults to --a-primary-bg
19
19
  type: string
20
20
  default: ""
21
21
  curve:
@@ -34,39 +34,39 @@ option-card-ui[checked] [slot="icon"] {
34
34
  --option-card-padding-block: var(--a-space-3);
35
35
  --option-card-padding-inline: var(--a-space-4);
36
36
  --option-card-radius: var(--a-radius-md);
37
- --option-card-bg: var(--a-bg);
38
- --option-card-border: var(--a-border);
37
+ --option-card-bg: var(--md-sys-color-neutral-background);
38
+ --option-card-border: var(--md-sys-color-neutral-outline);
39
39
  --option-card-gap-x: var(--a-space-3);
40
40
  --option-card-gap-y: var(--a-space-1);
41
41
 
42
42
  /* ── State: hover ── */
43
43
  --option-card-bg-hover: var(--a-bg-muted);
44
- --option-card-border-hover: var(--a-fg-subtle);
44
+ --option-card-border-hover: var(--md-sys-color-neutral-on-surface-variant);
45
45
 
46
46
  /* ── State: checked ── */
47
- --option-card-bg-checked: var(--a-accent-muted);
48
- --option-card-border-checked: var(--a-accent);
47
+ --option-card-bg-checked: var(--md-sys-color-primary-container);
48
+ --option-card-border-checked: var(--md-sys-color-primary);
49
49
 
50
50
  /* ── Indicator (CSS radio circle, same size + recipe as <radio-ui>). */
51
51
  --option-card-radio-size: var(--a-toggle-size);
52
- --option-card-radio-bg: var(--a-bg);
53
- --option-card-radio-border: var(--a-border);
54
- --option-card-radio-fill: var(--a-accent);
52
+ --option-card-radio-bg: var(--md-sys-color-neutral-background);
53
+ --option-card-radio-border: var(--md-sys-color-neutral-outline);
54
+ --option-card-radio-fill: var(--md-sys-color-primary);
55
55
  /* Mirror radio.css's --radio-fg-checked recipe: an always-light
56
- token rather than --a-accent-fg, which can flip dark depending
56
+ token rather than --a-primary-fg, which can flip dark depending
57
57
  on theme/scheme combos and produce a near-black inner dot
58
58
  against the accent disc. */
59
59
  --option-card-radio-dot: var(--a-chrome-light);
60
60
 
61
61
  /* ── Typography ── */
62
- --option-card-heading-color: var(--a-fg);
62
+ --option-card-heading-color: var(--md-sys-color-neutral-on-surface);
63
63
  --option-card-heading-color-checked: var(--a-fg-strong);
64
64
  --option-card-heading-weight: var(--a-weight-medium);
65
65
  --option-card-heading-size: var(--a-ui-size);
66
66
  --option-card-desc-color: var(--a-fg-muted);
67
67
  --option-card-desc-size: var(--a-ui-sm);
68
68
  --option-card-desc-line-height: 1.4;
69
- --option-card-icon-color: var(--a-fg-subtle);
69
+ --option-card-icon-color: var(--md-sys-color-neutral-on-surface-variant);
70
70
  --option-card-icon-color-checked: var(--a-fg-strong);
71
71
  --option-card-icon-size: 1.5rem;
72
72
 
@@ -10,7 +10,7 @@
10
10
  --otp-input-radius: var(--a-radius-lg);
11
11
  --otp-input-border: var(--a-ui-border);
12
12
  --otp-input-border-hover: var(--a-ui-border-hover);
13
- --otp-input-border-focus: var(--a-accent);
13
+ --otp-input-border-focus: var(--md-sys-color-primary);
14
14
  --otp-input-bg-disabled: var(--a-ui-bg-disabled);
15
15
  --otp-input-fg-disabled: var(--a-ui-text-disabled);
16
16
  --otp-input-border-disabled: var(--a-ui-border-disabled);
@@ -20,11 +20,11 @@
20
20
 
21
21
  /* ── Surfaces ── */
22
22
  --page-bg: var(--a-canvas-0);
23
- --page-fg: var(--a-fg);
23
+ --page-fg: var(--md-sys-color-neutral-on-surface);
24
24
 
25
25
  /* ── Sticky-header chrome (when [data-header-stuck]) ── */
26
26
  --page-sticky-bg: var(--a-canvas-0);
27
- --page-sticky-border: 1px solid var(--a-border-subtle);
27
+ --page-sticky-border: 1px solid var(--md-sys-color-neutral-outline-variant);
28
28
  --page-sticky-shadow: var(--a-shadow-sm);
29
29
  }
30
30
 
@@ -1,14 +1,14 @@
1
1
  @scope (pane-ui) {
2
2
  /* Tokens — :where() for zero specificity so consumers can override */
3
3
  :where(:scope) {
4
- --pane-bg: var(--a-bg);
5
- --pane-border: var(--a-border-subtle);
4
+ --pane-bg: var(--md-sys-color-neutral-background);
5
+ --pane-border: var(--md-sys-color-neutral-outline-variant);
6
6
  --pane-radius: var(--a-radius-lg);
7
7
  /* Component-intrinsic measurement; no --a-space-* equivalent */
8
8
  --pane-bar-height: var(--a-chrome-pane-header-height);
9
9
  --pane-header-px: var(--a-space-3);
10
10
  --pane-header-py: var(--a-space-2);
11
- --pane-header-fg: var(--a-fg);
11
+ --pane-header-fg: var(--md-sys-color-neutral-on-surface);
12
12
  --pane-header-size: var(--a-ui-size);
13
13
  --pane-header-weight: var(--a-weight-medium);
14
14
  --pane-section-px: var(--a-space-3);
@@ -20,7 +20,7 @@
20
20
  --pane-col-gap: var(--a-space-3);
21
21
  /* Component-intrinsic measurement; no --a-space-* equivalent */
22
22
  --pane-resize-width: 4px;
23
- --pane-resize-fg: var(--a-border);
23
+ --pane-resize-fg: var(--md-sys-color-neutral-outline);
24
24
  --pane-resize-fg-hover: var(--a-fg-muted);
25
25
 
26
26
  /* ── Spacing ── */
@@ -35,7 +35,7 @@
35
35
  --pane-section-header-weight: var(--a-weight-medium);
36
36
 
37
37
  /* ── Resize active ── */
38
- --pane-resize-fg-active: var(--a-fg-subtle);
38
+ --pane-resize-fg-active: var(--md-sys-color-neutral-on-surface-variant);
39
39
 
40
40
  /* ── Transitions ── */
41
41
  --pane-duration: var(--a-duration-fast);
@@ -11,7 +11,7 @@
11
11
  --password-strength-stack-gap: var(--a-space-1);
12
12
 
13
13
  /* ── Colors ── */
14
- --password-strength-segment-bg: var(--a-canvas-1-scrim);
14
+ --password-strength-segment-bg: var(--md-sys-color-neutral-scrim-weaker);
15
15
  --password-strength-color-weak: var(--a-danger-bg);
16
16
  --password-strength-color-fair: var(--a-warning-bg);
17
17
  --password-strength-color-good: var(--a-info-bg);
@@ -27,17 +27,17 @@
27
27
  --pipeline-status-label-weight: var(--a-weight-medium);
28
28
 
29
29
  /* Colors — keep aliases referenced via semantic tokens */
30
- --pipeline-status-fg: var(--a-fg-subtle);
31
- --pipeline-status-label-fg: var(--a-fg);
32
- --pipeline-status-msg-fg: var(--a-fg-subtle);
33
- --pipeline-status-history-fg: var(--a-fg-subtle);
34
- --pipeline-status-log-fg: var(--a-fg-subtle);
35
-
36
- --pipeline-status-dot-bg: var(--a-border);
37
- --pipeline-status-dot-bg-active: var(--a-accent);
30
+ --pipeline-status-fg: var(--md-sys-color-neutral-on-surface-variant);
31
+ --pipeline-status-label-fg: var(--md-sys-color-neutral-on-surface);
32
+ --pipeline-status-msg-fg: var(--md-sys-color-neutral-on-surface-variant);
33
+ --pipeline-status-history-fg: var(--md-sys-color-neutral-on-surface-variant);
34
+ --pipeline-status-log-fg: var(--md-sys-color-neutral-on-surface-variant);
35
+
36
+ --pipeline-status-dot-bg: var(--md-sys-color-neutral-outline);
37
+ --pipeline-status-dot-bg-active: var(--md-sys-color-primary);
38
38
  --pipeline-status-dot-bg-complete: var(--a-success-strong);
39
39
 
40
- --pipeline-status-history-border: var(--a-border-subtle);
40
+ --pipeline-status-history-border: var(--md-sys-color-neutral-outline-variant);
41
41
  --pipeline-status-border-thin: 1px;
42
42
 
43
43
  /* Motion */
@@ -7,8 +7,8 @@
7
7
 
8
8
  /* ── Colors (default panel chrome — opt out per `:has(>card-ui)` rule
9
9
  below or by setting tokens to transparent / 0) ── */
10
- --popover-bg: var(--a-canvas-dimmer);
11
- --popover-border: var(--a-border-subtle);
10
+ --popover-bg: var(--md-sys-color-neutral-surface-dimmer);
11
+ --popover-border: var(--md-sys-color-neutral-outline-variant);
12
12
  --popover-shadow: var(--a-shadow-lg);
13
13
  }
14
14
 
@@ -13,7 +13,7 @@
13
13
  @scope (preview-ui) {
14
14
  /* ── Block 1 — TOKENS ── */
15
15
  :where(:scope) {
16
- --preview-border: 1px solid var(--a-border-subtle);
16
+ --preview-border: 1px solid var(--md-sys-color-neutral-outline-variant);
17
17
  --preview-radius: var(--a-radius-lg);
18
18
  --preview-render-bg: var(--a-canvas-1);
19
19
  --preview-render-pad: var(--a-space-6);
@@ -85,7 +85,7 @@
85
85
  display: block;
86
86
  --code-border: transparent;
87
87
  --code-radius: 0;
88
- --code-bg: var(--a-bg);
88
+ --code-bg: var(--md-sys-color-neutral-background);
89
89
  }
90
90
 
91
91
  /* code-first — divider moves to the bottom of the (now-leading) code pane */
@@ -180,7 +180,14 @@
180
180
  margin-bottom: 0.5rem;
181
181
  border-radius: var(--a-radius-sm);
182
182
  }
183
- /* Narrow: collapse each row to stacked render-over-code. */
183
+ /* Narrow: collapse each row to stacked render-over-code. The render
184
+ cell keeps its full --preview-render-pad (--a-space-6, 24px) inset;
185
+ code-ui's own header/body padding (--code-py/px, --a-space-2/3 —
186
+ 8/12px) reads as visibly cramped directly underneath once the two
187
+ panes stack (they never collide side-by-side, only here). Step
188
+ code-ui's padding up to --a-space-4 (16px) at this breakpoint only —
189
+ narrows the gap without inflating a slim caption bar to the render
190
+ pane's full 24px. */
184
191
  @media (max-width: 40rem) {
185
192
  :scope[rows] [data-preview-row] {
186
193
  grid-template-columns: 1fr;
@@ -189,6 +196,10 @@
189
196
  border-inline-start: none;
190
197
  border-block-start: var(--preview-border);
191
198
  }
199
+ [data-preview-code] code-ui {
200
+ --code-py: var(--a-space-4);
201
+ --code-px: var(--a-space-4);
202
+ }
192
203
  }
193
204
  /* Content-driven fallback — a single row whose live sample is wider than the
194
205
  half-width cell gets [data-stack] from the component's overflow check, so it
@@ -22,7 +22,7 @@
22
22
  "default": null
23
23
  },
24
24
  "variant": {
25
- "description": "Render mode — `bar` (default) or `spinner`. For fill color set the `--progress-fill` token (defaults to `--a-accent`); there is no variant-as-color (use the token).",
25
+ "description": "Render mode — `bar` (default) or `spinner`. For fill color set the `--progress-fill` token (defaults to `--md-sys-color-primary`); there is no variant-as-color (use the token).",
26
26
  "type": "string",
27
27
  "enum": [
28
28
  "bar",
@@ -2,7 +2,7 @@
2
2
  :where(:scope) {
3
3
  /* -- Tokens -- */
4
4
  --progress-track: var(--a-bg-muted);
5
- --progress-fill: var(--a-accent);
5
+ --progress-fill: var(--md-sys-color-primary);
6
6
  --progress-height: 0.375rem;
7
7
  --progress-radius: var(--a-radius-full);
8
8
  --progress-duration: var(--a-duration);
@@ -15,6 +15,6 @@ import { UIElement } from '../../core/element.js';
15
15
  export class UIProgress extends UIElement {
16
16
  /** Current progress. 0..max (or 0..1 when max omitted). null = indeterminate (legacy -1 accepted for back-compat). */
17
17
  value: number;
18
- /** Render mode — `bar` (default) or `spinner`. For fill color set the `--progress-fill` token (defaults to `--a-accent`); there is no variant-as-color (use the token). */
18
+ /** Render mode — `bar` (default) or `spinner`. For fill color set the `--progress-fill` token (defaults to `--md-sys-color-primary`); there is no variant-as-color (use the token). */
19
19
  variant: 'bar' | 'spinner';
20
20
  }
@@ -18,7 +18,7 @@ props:
18
18
  default: null
19
19
  variant:
20
20
  description: Render mode — `bar` (default) or `spinner`. For fill color set
21
- the `--progress-fill` token (defaults to `--a-accent`); there is no
21
+ the `--progress-fill` token (defaults to `--md-sys-color-primary`); there is no
22
22
  variant-as-color (use the token).
23
23
  type: string
24
24
  default: bar
@@ -6,12 +6,12 @@
6
6
  --progress-row-gap: var(--a-space-2);
7
7
  --progress-row-column-gap: var(--a-space-2);
8
8
  --progress-row-label-size: var(--a-ui-size);
9
- --progress-row-label-fg: var(--a-fg);
9
+ --progress-row-label-fg: var(--md-sys-color-neutral-on-surface);
10
10
  --progress-row-meta-size: var(--a-ui-sm);
11
11
  --progress-row-meta-fg: var(--a-fg-muted);
12
12
 
13
13
  /* Fill color piped into nested progress-ui via its own token */
14
- --progress-row-fill-bg: var(--a-accent-bg);
14
+ --progress-row-fill-bg: var(--a-primary-bg);
15
15
  text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
16
16
  }
17
17
 
@@ -29,14 +29,14 @@ radio-ui[checked] [slot="dot"]::after {
29
29
  /* ── Colors ── */
30
30
  --radio-bg: var(--a-ui-bg);
31
31
  --radio-border: var(--a-ui-border);
32
- --radio-border-hover: var(--a-fg-subtle);
32
+ --radio-border-hover: var(--md-sys-color-neutral-on-surface-variant);
33
33
  --radio-bg-hover: var(--a-bg-muted);
34
34
 
35
35
  /* ── State: checked ── */
36
- --radio-bg-checked: var(--a-primary);
37
- --radio-border-checked: var(--a-primary);
36
+ --radio-bg-checked: var(--md-sys-color-primary);
37
+ --radio-border-checked: var(--md-sys-color-primary);
38
38
  --radio-fg-checked: var(--a-chrome-light);
39
- --radio-bg-checked-hover: var(--a-primary-hover);
39
+ --radio-bg-checked-hover: var(--md-sys-color-primary-hover);
40
40
 
41
41
  /* ── State: disabled ── */
42
42
  --radio-fg-disabled: var(--a-ui-text-disabled);
@@ -13,7 +13,7 @@ range-ui:not([disabled]) [slot="field"]:hover [data-layer="fill"] {
13
13
  --range-fill-bg-hover: var(--a-ui-bg-hover);
14
14
  --range-fill-bg-active: var(--a-ui-bg-active);
15
15
  --range-fill-bg-disabled: var(--a-canvas-muted);
16
- --range-fill-fg: var(--a-fg);
16
+ --range-fill-fg: var(--md-sys-color-neutral-on-surface);
17
17
  --range-fill-fg-disabled: var(--a-ui-text-disabled);
18
18
  --range-fill-label-fg: var(--a-ui-text-subtle);
19
19
  --range-border: var(--a-ui-border);
@@ -40,7 +40,7 @@ range-ui:not([disabled]) [slot="field"]:hover [data-layer="fill"] {
40
40
  --range-layer-gap: var(--a-space-1);
41
41
 
42
42
  /* ── Hover text ── */
43
- --range-label-fg-hover: var(--a-fg-subtle);
43
+ --range-label-fg-hover: var(--md-sys-color-neutral-on-surface-variant);
44
44
 
45
45
  text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
46
46
  }
@@ -81,8 +81,8 @@ rating-ui:hover [data-rating-symbol] {
81
81
 
82
82
  /* ── Variants override TOKENS only ── */
83
83
  :scope[variant="accent"] {
84
- --rating-fg-filled: var(--a-accent-bg);
85
- --rating-fg-hover: var(--a-accent-bg);
84
+ --rating-fg-filled: var(--a-primary-bg);
85
+ --rating-fg-hover: var(--a-primary-bg);
86
86
  }
87
87
  :scope[variant="warning"] {
88
88
  --rating-fg-filled: var(--a-warning-bg);
@@ -35,6 +35,10 @@ export class UIRichText extends UIElement {
35
35
  // would bloat the DOM (and break parsing on multi-line content with
36
36
  // unescaped quotes). The property is the source of truth.
37
37
  markdown: { type: String, default: '', reflect: false },
38
+ // TKT-0004 added the CSS ([flush] paragraph-grade embedding mode) and
39
+ // the yaml prop but never registered it here — `el.flush = true` was a
40
+ // silent no-op (dogfood-status static-properties-vs-yaml finding).
41
+ flush: { type: Boolean, default: false, reflect: true },
38
42
  };
39
43
 
40
44
  static template = () => null;
@@ -12,13 +12,13 @@
12
12
 
13
13
  /* ── Colors ── */
14
14
  --richtext-bg: var(--a-canvas-0);
15
- --richtext-fg: var(--a-fg);
15
+ --richtext-fg: var(--md-sys-color-neutral-on-surface);
16
16
  --richtext-fg-muted: var(--a-fg-muted);
17
- --richtext-fg-subtle: var(--a-fg-subtle);
17
+ --richtext-fg-subtle: var(--md-sys-color-neutral-on-surface-variant);
18
18
  --richtext-code-bg: var(--a-canvas-2);
19
- --richtext-border: var(--a-border-subtle);
20
- --richtext-link: var(--a-accent-bg);
21
- --richtext-link-hover: var(--a-accent);
19
+ --richtext-border: var(--md-sys-color-neutral-outline-variant);
20
+ --richtext-link: var(--a-primary-bg);
21
+ --richtext-link-hover: var(--md-sys-color-primary);
22
22
 
23
23
  /* ── Typography ── */
24
24
  --richtext-font: var(--a-font-family);
@@ -33,6 +33,7 @@ props:
33
33
  off for standalone articles and chat transcripts.
34
34
  type: boolean
35
35
  default: false
36
+ reflect: true
36
37
  events: {}
37
38
  slots:
38
39
  default:
@@ -8,7 +8,7 @@
8
8
  --row-gap: var(--a-gap-self, var(--a-gap));
9
9
  --row-justify: flex-start;
10
10
  --row-align: center;
11
- --row-drag-bg-active: var(--a-accent-muted);
11
+ --row-drag-bg-active: var(--md-sys-color-primary-container);
12
12
  }
13
13
 
14
14
  :scope {