@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
@@ -14,9 +14,9 @@
14
14
 
15
15
  /* ── Colors ── */
16
16
  --command-bg: var(--a-bg-subtle);
17
- --command-fg: var(--a-fg);
17
+ --command-fg: var(--md-sys-color-neutral-on-surface);
18
18
  --command-fg-muted: var(--a-fg-muted);
19
- --command-border: var(--a-border-subtle);
19
+ --command-border: var(--md-sys-color-neutral-outline-variant);
20
20
 
21
21
  /* ── Elevation ── */
22
22
  --command-shadow: var(--a-shadow-lg);
@@ -34,7 +34,7 @@
34
34
  --command-item-radius: var(--a-radius-md);
35
35
  --command-item-px: var(--a-space-2);
36
36
  --command-item-py: var(--a-space-2);
37
- --command-item-fg: var(--a-fg-subtle);
37
+ --command-item-fg: var(--md-sys-color-neutral-on-surface-variant);
38
38
  --command-item-fg-hover: var(--a-fg-hover);
39
39
  --command-item-bg-hover: var(--a-bg-hover);
40
40
  --command-item-fg-disabled: var(--a-ui-text-disabled);
@@ -64,7 +64,7 @@
64
64
  --command-footer-py: var(--command-py);
65
65
 
66
66
  /* ── Footer kbd ── */
67
- --command-kbd-border: var(--a-border-subtle);
67
+ --command-kbd-border: var(--md-sys-color-neutral-outline-variant);
68
68
  --command-kbd-radius: var(--a-radius-sm);
69
69
  --command-kbd-bg: var(--a-bg-muted);
70
70
  --command-kbd-fg: var(--a-fg-muted);
@@ -26,14 +26,14 @@
26
26
  [data-context-menu-surface] {
27
27
  margin: 0;
28
28
  padding: var(--a-space-1);
29
- border: 1px solid var(--a-border-subtle);
29
+ border: 1px solid var(--md-sys-color-neutral-outline-variant);
30
30
  border-radius: var(--a-radius-lg);
31
31
  background: var(--a-bg-subtle);
32
32
  box-shadow: var(--a-shadow-lg);
33
33
  min-width: 10rem;
34
34
  font-family: var(--context-menu-font-family, var(--a-font-family-ui));
35
35
  font-size: var(--a-ui-size);
36
- color: var(--a-fg);
36
+ color: var(--md-sys-color-neutral-on-surface);
37
37
  opacity: 1;
38
38
  translate: 0 0;
39
39
  transition: opacity var(--a-duration-fast) var(--a-easing-out),
@@ -290,7 +290,7 @@
290
290
  },
291
291
  "--date-range-picker-preview-bg": {
292
292
  "description": "In-range preview background (between from and pending to).",
293
- "default": "var(--a-accent-muted)"
293
+ "default": "var(--md-sys-color-primary-container)"
294
294
  },
295
295
  "--date-range-picker-px": {
296
296
  "description": "Horizontal popover padding.",
@@ -302,11 +302,11 @@
302
302
  },
303
303
  "--date-range-picker-selected-bg": {
304
304
  "description": "Selected day-cell background (cascaded into the inner calendar via --calendar-picker-day-bg-selected).",
305
- "default": "var(--a-accent)"
305
+ "default": "var(--md-sys-color-primary)"
306
306
  },
307
307
  "--date-range-picker-selected-fg": {
308
308
  "description": "Selected day-cell foreground.",
309
- "default": "var(--a-accent-fg)"
309
+ "default": "var(--md-sys-color-primary-on-primary)"
310
310
  }
311
311
  },
312
312
  "traits": [],
@@ -11,12 +11,12 @@
11
11
  @scope (date-range-picker-ui) {
12
12
  /* ── Block 1 — TOKENS ── */
13
13
  :where(:scope) {
14
- --date-range-picker-bg: var(--a-bg);
15
- --date-range-picker-fg: var(--a-fg);
14
+ --date-range-picker-bg: var(--md-sys-color-neutral-background);
15
+ --date-range-picker-fg: var(--md-sys-color-neutral-on-surface);
16
16
 
17
17
  /* Popover surface */
18
18
  --date-range-picker-popover-bg: var(--a-bg-subtle);
19
- --date-range-picker-popover-border: var(--a-border-subtle);
19
+ --date-range-picker-popover-border: var(--md-sys-color-neutral-outline-variant);
20
20
  --date-range-picker-popover-radius: var(--a-radius-lg);
21
21
  --date-range-picker-popover-shadow: var(--a-shadow-lg);
22
22
  --date-range-picker-popover-padding: var(--a-space-3);
@@ -32,9 +32,9 @@
32
32
  --date-range-picker-preset-gap: var(--a-space-1);
33
33
 
34
34
  /* Selected / preview day cells (cascade into calendar) */
35
- --date-range-picker-selected-bg: var(--a-accent);
36
- --date-range-picker-selected-fg: var(--a-accent-fg);
37
- --date-range-picker-preview-bg: var(--a-accent-muted);
35
+ --date-range-picker-selected-bg: var(--md-sys-color-primary);
36
+ --date-range-picker-selected-fg: var(--md-sys-color-primary-on-primary);
37
+ --date-range-picker-preview-bg: var(--md-sys-color-primary-container);
38
38
 
39
39
  /* Trigger — mirrors the canonical trigger surface used by
40
40
  <select-ui> and <calendar-picker-ui> so consumers see a
@@ -162,7 +162,7 @@ date-range-picker-ui [slot="popover"] {
162
162
  border-radius: var(--date-range-picker-popover-radius);
163
163
  background: var(--date-range-picker-popover-bg);
164
164
  box-shadow: var(--date-range-picker-popover-shadow);
165
- color: var(--a-fg);
165
+ color: var(--md-sys-color-neutral-on-surface);
166
166
  /* Anchor-positioning fallback — popover.css and anchor.js handle
167
167
  placement; layout here just sets the grid. */
168
168
  inset: auto;
@@ -251,5 +251,5 @@ date-range-picker-ui [slot="footer"] {
251
251
  justify-content: flex-end;
252
252
  gap: var(--a-space-2);
253
253
  padding-block-start: var(--a-space-2);
254
- border-block-start: 1px solid var(--a-border-subtle);
254
+ border-block-start: 1px solid var(--md-sys-color-neutral-outline-variant);
255
255
  }
@@ -179,13 +179,13 @@ tokens:
179
179
  default: var(--a-bg-hover)
180
180
  --date-range-picker-selected-bg:
181
181
  description: Selected day-cell background (cascaded into the inner calendar via --calendar-picker-day-bg-selected).
182
- default: var(--a-accent)
182
+ default: var(--md-sys-color-primary)
183
183
  --date-range-picker-selected-fg:
184
184
  description: Selected day-cell foreground.
185
- default: var(--a-accent-fg)
185
+ default: var(--md-sys-color-primary-on-primary)
186
186
  --date-range-picker-preview-bg:
187
187
  description: In-range preview background (between from and pending to).
188
- default: var(--a-accent-muted)
188
+ default: var(--md-sys-color-primary-container)
189
189
  --date-range-picker-px:
190
190
  description: Horizontal popover padding.
191
191
  default: var(--a-space-3)
@@ -11,19 +11,19 @@
11
11
  @scope (datetime-picker-ui) {
12
12
  /* ── Block 1 — TOKENS ── */
13
13
  :where(:scope) {
14
- --datetime-picker-bg: var(--a-bg);
15
- --datetime-picker-fg: var(--a-fg);
14
+ --datetime-picker-bg: var(--md-sys-color-neutral-background);
15
+ --datetime-picker-fg: var(--md-sys-color-neutral-on-surface);
16
16
 
17
17
  /* Popover surface */
18
18
  --datetime-picker-popover-bg: var(--a-bg-subtle);
19
- --datetime-picker-popover-border: var(--a-border-subtle);
19
+ --datetime-picker-popover-border: var(--md-sys-color-neutral-outline-variant);
20
20
  --datetime-picker-popover-radius: var(--a-radius-lg);
21
21
  --datetime-picker-popover-shadow: var(--a-shadow-lg);
22
22
  --datetime-picker-popover-padding: var(--a-space-3);
23
23
  --datetime-picker-popover-gap: var(--a-space-3);
24
24
 
25
25
  /* Pane divider */
26
- --datetime-picker-divider: var(--a-border-subtle);
26
+ --datetime-picker-divider: var(--md-sys-color-neutral-outline-variant);
27
27
 
28
28
  /* Trigger */
29
29
  --datetime-picker-trigger-min-width: 16em;
@@ -107,7 +107,7 @@ datetime-picker-ui [slot="popover"] {
107
107
  border-radius: var(--datetime-picker-popover-radius);
108
108
  background: var(--datetime-picker-popover-bg);
109
109
  box-shadow: var(--datetime-picker-popover-shadow);
110
- color: var(--a-fg);
110
+ color: var(--md-sys-color-neutral-on-surface);
111
111
  /* Anchor-positioning fallback — popover.css and anchor.js handle
112
112
  placement; layout here just sets the grid. */
113
113
  inset: auto;
@@ -160,7 +160,7 @@ datetime-picker-ui [slot="popover"] [slot="footer"] {
160
160
  justify-content: flex-end;
161
161
  gap: var(--a-space-2);
162
162
  padding-block-start: var(--a-space-2);
163
- border-block-start: 1px solid var(--a-border-subtle);
163
+ border-block-start: 1px solid var(--md-sys-color-neutral-outline-variant);
164
164
  }
165
165
 
166
166
  /* Narrow surfaces (e.g. inside a card on mobile): stack the panes
@@ -9,9 +9,9 @@
9
9
 
10
10
  /* ── Colors ── */
11
11
  --demo-toggle-bg: var(--a-canvas-1);
12
- --demo-toggle-border: var(--a-border);
12
+ --demo-toggle-border: var(--md-sys-color-neutral-outline);
13
13
  --demo-toggle-bar-bg: var(--a-bg-muted);
14
- --demo-toggle-bar-fg: var(--a-fg);
14
+ --demo-toggle-bar-fg: var(--md-sys-color-neutral-on-surface);
15
15
 
16
16
  /* ── Typography ── */
17
17
  --demo-toggle-label-size: var(--a-ui-size);
@@ -114,7 +114,7 @@
114
114
 
115
115
  /* State-themed bar — when on, lean accent; when off, leave neutral. */
116
116
  :scope[data-state="on"] {
117
- --demo-toggle-bar-bg: var(--a-accent-muted);
118
- --demo-toggle-bar-fg: var(--a-accent-strong);
117
+ --demo-toggle-bar-bg: var(--md-sys-color-primary-container);
118
+ --demo-toggle-bar-fg: var(--a-primary-strong);
119
119
  }
120
120
  }
@@ -13,7 +13,7 @@
13
13
 
14
14
  /* ── Colors ── */
15
15
  --description-list-term-fg: var(--a-fg-muted);
16
- --description-list-desc-fg: var(--a-fg);
16
+ --description-list-desc-fg: var(--md-sys-color-neutral-on-surface);
17
17
  }
18
18
 
19
19
  :scope {
@@ -4,10 +4,10 @@
4
4
  as a sibling of an editable field) */
5
5
  --display-field-gap: var(--a-space-1);
6
6
  --display-field-icon-gap: var(--a-space-2);
7
- --display-field-label-color: var(--a-fg);
7
+ --display-field-label-color: var(--md-sys-color-neutral-on-surface);
8
8
  --display-field-label-size: var(--a-ui-sm);
9
9
  --display-field-label-weight: var(--a-weight-medium);
10
- --display-field-value-color: var(--a-fg);
10
+ --display-field-value-color: var(--md-sys-color-neutral-on-surface);
11
11
  --display-field-value-size: var(--a-ui-md);
12
12
  --display-field-value-weight: var(--a-weight-regular);
13
13
  --display-field-hint-color: var(--a-fg-muted);
@@ -5,7 +5,7 @@
5
5
  @scope (divider-ui) {
6
6
  :where(:scope) {
7
7
  /* ── Tokens ── */
8
- --divider-color: var(--a-border-subtle);
8
+ --divider-color: var(--md-sys-color-neutral-outline-variant);
9
9
  --divider-size: 1px;
10
10
  --divider-spacing: var(--a-space-3);
11
11
  --divider-label-font: var(--a-ui-sm);
@@ -30,14 +30,14 @@
30
30
  --drawer-easing: var(--a-easing-out);
31
31
 
32
32
  /* ── Colors ── */
33
- --drawer-bg: var(--a-canvas-dimmer);
34
- --drawer-border: var(--a-border-subtle);
35
- --drawer-divider: var(--a-border-subtle);
33
+ --drawer-bg: var(--md-sys-color-neutral-surface-dimmer);
34
+ --drawer-border: var(--md-sys-color-neutral-outline-variant);
35
+ --drawer-divider: var(--md-sys-color-neutral-outline-variant);
36
36
  --drawer-shadow: var(--a-shadow-lg);
37
37
  --drawer-backdrop: var(--a-scrim-dialog);
38
- --drawer-fg: var(--a-fg);
38
+ --drawer-fg: var(--md-sys-color-neutral-on-surface);
39
39
  --drawer-heading-fg: var(--a-fg-strong);
40
- --drawer-description-fg: var(--a-fg-subtle);
40
+ --drawer-description-fg: var(--md-sys-color-neutral-on-surface-variant);
41
41
 
42
42
  /* ── Typography ── */
43
43
  --drawer-font-family: var(--a-font-family);
@@ -201,7 +201,7 @@ drawer-ui [slot="panel"] > [slot="header"]:has(> [slot]) {
201
201
  }
202
202
 
203
203
  drawer-ui [slot="panel"] > [slot="header"][padding] {
204
- background: var(--a-canvas-0-scrim);
204
+ background: var(--md-sys-color-neutral-scrim-weakest);
205
205
  }
206
206
 
207
207
  drawer-ui [slot="panel"] > [slot="header"][center] {
@@ -301,7 +301,7 @@ drawer-ui [slot="panel"] > [slot="body"] {
301
301
  drawer-ui [slot="panel"] > [slot="body"]:last-of-type { flex: 1 0 auto; }
302
302
  drawer-ui [slot="panel"] > [slot="body"] + [slot="body"] { padding-top: 0; }
303
303
  drawer-ui [slot="panel"] > [slot="body"][bleed] { padding: 0; }
304
- drawer-ui [slot="panel"] > [slot="body"][padding] { background: var(--a-canvas-0-scrim); }
304
+ drawer-ui [slot="panel"] > [slot="body"][padding] { background: var(--md-sys-color-neutral-scrim-weakest); }
305
305
 
306
306
  /* ═══════ Footer ═══════
307
307
  Block default — single non-slotted child (e.g. <grid-ui>, <col-ui>, raw
@@ -3,7 +3,7 @@
3
3
  /* ── Tokens ── */
4
4
  --embed-bg: var(--a-bg-muted);
5
5
  --embed-radius: var(--a-radius-md);
6
- --embed-border: var(--a-border-subtle);
6
+ --embed-border: var(--md-sys-color-neutral-outline-variant);
7
7
  }
8
8
 
9
9
  :scope {
@@ -9,7 +9,7 @@
9
9
 
10
10
  /* ── Colors ── */
11
11
  --empty-state-icon-fg: var(--a-fg-muted);
12
- --empty-state-heading-fg: var(--a-fg);
12
+ --empty-state-heading-fg: var(--md-sys-color-neutral-on-surface);
13
13
  --empty-state-desc-fg: var(--a-fg-muted);
14
14
 
15
15
  /* ── Typography ──
@@ -64,14 +64,14 @@
64
64
  Color the icon + text only; no background/border tint. */
65
65
  :scope[variant="danger"] {
66
66
  --empty-state-icon-fg: var(--a-danger-strong);
67
- --empty-state-heading-fg: var(--a-danger-text);
68
- --empty-state-desc-fg: var(--a-danger-text);
67
+ --empty-state-heading-fg: var(--md-sys-color-danger-on-surface);
68
+ --empty-state-desc-fg: var(--md-sys-color-danger-on-surface);
69
69
  }
70
70
 
71
71
  :scope[variant="warning"] {
72
72
  --empty-state-icon-fg: var(--a-warning-strong);
73
- --empty-state-heading-fg: var(--a-warning-text);
74
- --empty-state-desc-fg: var(--a-warning-text);
73
+ --empty-state-heading-fg: var(--md-sys-color-warning-on-surface);
74
+ --empty-state-desc-fg: var(--md-sys-color-warning-on-surface);
75
75
  }
76
76
 
77
77
  /* ── §223 (v0.5.9): [minimal] — single-line muted layout ──
@@ -99,9 +99,9 @@ feed-item-ui[data-closing] {
99
99
  /* Item — atomic feed entry. */
100
100
  @scope (feed-item-ui) {
101
101
  :where(:scope) {
102
- --feed-item-bg: var(--a-bg);
103
- --feed-item-fg: var(--a-fg);
104
- --feed-item-border: var(--a-border-subtle);
102
+ --feed-item-bg: var(--md-sys-color-neutral-background);
103
+ --feed-item-fg: var(--md-sys-color-neutral-on-surface);
104
+ --feed-item-border: var(--md-sys-color-neutral-outline-variant);
105
105
  --feed-item-radius: var(--a-radius-md);
106
106
  --feed-item-px: var(--a-space-3);
107
107
  --feed-item-py: var(--a-space-2-5);
@@ -117,10 +117,10 @@ feed-item-ui[data-closing] {
117
117
  NOT --a-{variant}-fg (= --a-{variant}-text-strong, locked for solid
118
118
  --variant-strong fills) — pairing a locked fg with a flipping bg goes
119
119
  low-contrast in one scheme. Mirrors alert.css + toast.css wiring. */
120
- :scope[variant="info"] { --feed-item-fg: var(--a-info-text); --feed-item-bg: var(--a-info-muted); }
121
- :scope[variant="success"] { --feed-item-fg: var(--a-success-text); --feed-item-bg: var(--a-success-muted); }
122
- :scope[variant="warning"] { --feed-item-fg: var(--a-warning-text); --feed-item-bg: var(--a-warning-muted); }
123
- :scope[variant="danger"] { --feed-item-fg: var(--a-danger-text); --feed-item-bg: var(--a-danger-muted); }
120
+ :scope[variant="info"] { --feed-item-fg: var(--md-sys-color-info-on-surface); --feed-item-bg: var(--md-sys-color-info-container); }
121
+ :scope[variant="success"] { --feed-item-fg: var(--md-sys-color-success-on-surface); --feed-item-bg: var(--md-sys-color-success-container); }
122
+ :scope[variant="warning"] { --feed-item-fg: var(--md-sys-color-warning-on-surface); --feed-item-bg: var(--md-sys-color-warning-container); }
123
+ :scope[variant="danger"] { --feed-item-fg: var(--md-sys-color-danger-on-surface); --feed-item-bg: var(--md-sys-color-danger-container); }
124
124
 
125
125
  :scope {
126
126
  box-sizing: border-box;
@@ -2,11 +2,11 @@
2
2
  :where(:scope) {
3
3
  /* ── Tokens ── */
4
4
  --field-gap: var(--a-space-2);
5
- --field-label-color: var(--a-fg);
5
+ --field-label-color: var(--md-sys-color-neutral-on-surface);
6
6
  --field-label-size: var(--a-ui-sm);
7
7
  --field-label-weight: var(--a-weight-medium);
8
8
  --field-required-color: var(--a-danger-strong);
9
- --field-trailing-color: var(--a-fg-subtle);
9
+ --field-trailing-color: var(--md-sys-color-neutral-on-surface-variant);
10
10
  --field-trailing-size: var(--a-ui-sm);
11
11
  --field-hint-color: var(--a-fg-muted);
12
12
  --field-hint-size: var(--a-ui-sm);
@@ -9,20 +9,20 @@
9
9
 
10
10
  /* ── Colors ── */
11
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);
12
+ --heatmap-border: 1px solid var(--md-sys-color-neutral-outline-variant);
13
+ --heatmap-text: var(--md-sys-color-neutral-on-surface);
14
+ --heatmap-label: var(--md-sys-color-neutral-on-surface-variant);
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: 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);
21
+ --heatmap-bucket-0: var(--a-primary-bucket-0);
22
+ --heatmap-bucket-1: var(--a-primary-bucket-1);
23
+ --heatmap-bucket-2: var(--a-primary-bucket-2);
24
+ --heatmap-bucket-3: var(--a-primary-bucket-3);
25
+ --heatmap-bucket-4: var(--a-primary-bucket-4);
26
26
 
27
27
  /* ── Legend ── */
28
28
  --heatmap-legend-size: var(--a-caption-size);
@@ -134,7 +134,7 @@
134
134
  },
135
135
  "--inline-edit-outline": {
136
136
  "description": "Outline color in the editing state.",
137
- "default": "var(--a-accent-strong)"
137
+ "default": "var(--a-primary-strong)"
138
138
  },
139
139
  "--inline-edit-placeholder": {
140
140
  "description": "Placeholder text color in empty-static state.",
@@ -1,9 +1,9 @@
1
1
  @scope (inline-edit-ui) {
2
2
  :where(:scope) {
3
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);
4
+ --inline-edit-bg-edit: var(--md-sys-color-neutral-background);
5
+ --inline-edit-outline: var(--a-primary-strong);
6
+ --inline-edit-placeholder: var(--md-sys-color-neutral-on-surface-variant);
7
7
  --inline-edit-px: var(--a-space-1);
8
8
  --inline-edit-py: var(--a-space-0-5);
9
9
  --inline-edit-radius: var(--a-radius-sm);
@@ -72,7 +72,7 @@ tokens:
72
72
  default: var(--a-bg)
73
73
  --inline-edit-outline:
74
74
  description: Outline color in the editing state.
75
- default: var(--a-accent-strong)
75
+ default: var(--a-primary-strong)
76
76
  --inline-edit-placeholder:
77
77
  description: Placeholder text color in empty-static state.
78
78
  default: var(--a-fg-subtle)
@@ -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: var(--a-info-text);
61
+ --inline-message-fg: var(--md-sys-color-info-on-surface);
62
62
  }
63
63
 
64
64
  :scope[variant="success"] {
65
- --inline-message-fg: var(--a-success-text);
65
+ --inline-message-fg: var(--md-sys-color-success-on-surface);
66
66
  }
67
67
 
68
68
  :scope[variant="warning"] {
69
- --inline-message-fg: var(--a-warning-text);
69
+ --inline-message-fg: var(--md-sys-color-warning-on-surface);
70
70
  }
71
71
 
72
72
  :scope[variant="danger"] {
73
- --inline-message-fg: var(--a-danger-text);
73
+ --inline-message-fg: var(--md-sys-color-danger-on-surface);
74
74
  }
75
75
  }
@@ -343,7 +343,7 @@ input-ui:not([disabled]) [slot="field"]:hover [slot="suffix"] {
343
343
  [slot="field"] > [slot="leading"] button-ui:hover,
344
344
  [slot="field"] > [slot="trailing"] button-ui:hover {
345
345
  --button-bg: var(--a-ui-bg-hover);
346
- --button-fg: var(--a-fg);
346
+ --button-fg: var(--md-sys-color-neutral-on-surface);
347
347
  }
348
348
 
349
349
  /* When a trailing affordance is present in number mode, reserve room
@@ -1,7 +1,7 @@
1
1
  @scope (inspector-ui) {
2
2
  :where(:scope) {
3
3
  --inspector-pane-font-size: var(--a-ui-tiny);
4
- --inspector-border: 1px solid var(--a-border-subtle);
4
+ --inspector-border: 1px solid var(--md-sys-color-neutral-outline-variant);
5
5
  --inspector-radius: var(--a-radius);
6
6
  }
7
7
 
@@ -1,8 +1,8 @@
1
1
  @scope (integration-card-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Layout ── */
4
- --integration-card-bg: var(--a-bg);
5
- --integration-card-border: 1px solid var(--a-border-subtle);
4
+ --integration-card-bg: var(--md-sys-color-neutral-background);
5
+ --integration-card-border: 1px solid var(--md-sys-color-neutral-outline-variant);
6
6
  --integration-card-radius: var(--a-radius-md);
7
7
  --integration-card-px: var(--a-space-4);
8
8
  --integration-card-py: var(--a-space-4);
@@ -22,7 +22,7 @@
22
22
  --integration-card-heading-weight: var(--a-weight-medium);
23
23
  --integration-card-description-fg: var(--a-fg-muted);
24
24
  --integration-card-description-size: var(--a-ui-sm);
25
- --integration-card-error-fg: var(--a-danger-text);
25
+ --integration-card-error-fg: var(--md-sys-color-danger-on-surface);
26
26
  --integration-card-error-size: var(--a-ui-sm);
27
27
 
28
28
  /* ── States ── */
@@ -25,6 +25,10 @@
25
25
  "lg"
26
26
  ],
27
27
  "default": ""
28
+ },
29
+ "textContent": {
30
+ "description": "Key label text, extracted from innerHTML (e.g. \"Ctrl+K\"). The main payload field for Kbd components extracted from HTML — mirrors Text/Code's textContent prop.",
31
+ "$ref": "common_types.json#/$defs/DynamicString"
28
32
  }
29
33
  },
30
34
  "required": [
@@ -2,8 +2,8 @@
2
2
  :where(:scope) {
3
3
  /* ── Tokens ── */
4
4
  --kbd-bg: var(--a-bg-muted);
5
- --kbd-fg: var(--a-fg);
6
- --kbd-border: var(--a-border-subtle);
5
+ --kbd-fg: var(--md-sys-color-neutral-on-surface);
6
+ --kbd-border: var(--md-sys-color-neutral-outline-variant);
7
7
  --kbd-radius: var(--a-radius-sm);
8
8
  --kbd-font: var(--a-font-family-code);
9
9
  --kbd-px: var(--a-space-1);
@@ -15,4 +15,6 @@ import { UIElement } from '../../core/element.js';
15
15
  export class UIKbd extends UIElement {
16
16
  /** Sizing scale: sm, md (default), lg. */
17
17
  size: 'sm' | 'md' | 'lg';
18
+ /** Key label text, extracted from innerHTML (e.g. "Ctrl+K"). The main payload field for Kbd components extracted from HTML — mirrors Text/Code's textContent prop. */
19
+ textContent: string;
18
20
  }
@@ -19,6 +19,11 @@ props:
19
19
  - md
20
20
  - lg
21
21
  reflect: true
22
+ textContent:
23
+ description: Key label text, extracted from innerHTML (e.g. "Ctrl+K"). The main payload field for Kbd components extracted from HTML — mirrors Text/Code's textContent prop.
24
+ type: string
25
+ default: ''
26
+ dynamic: true
22
27
  events: {}
23
28
  slots:
24
29
  default:
@@ -89,9 +89,9 @@
89
89
  /* ── Disabled ── */
90
90
 
91
91
  :scope[disabled] > a {
92
- color: var(--a-fg-disabled);
92
+ color: var(--md-sys-color-neutral-on-surface-disabled);
93
93
  cursor: not-allowed;
94
- text-decoration-color: var(--a-fg-disabled);
94
+ text-decoration-color: var(--md-sys-color-neutral-on-surface-disabled);
95
95
  pointer-events: none;
96
96
  }
97
97
  }
@@ -1,10 +1,10 @@
1
1
  @scope (list-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Colors ── */
4
- --list-divider-color: var(--a-border-subtle);
5
- --list-bg-selected: var(--a-accent-muted);
6
- --list-fg-selected: var(--a-accent-strong);
7
- --list-border-selected: var(--a-accent-strong);
4
+ --list-divider-color: var(--md-sys-color-neutral-outline-variant);
5
+ --list-bg-selected: var(--md-sys-color-primary-container);
6
+ --list-fg-selected: var(--a-primary-strong);
7
+ --list-border-selected: var(--a-primary-strong);
8
8
  }
9
9
 
10
10
  :scope {
@@ -74,7 +74,7 @@
74
74
  }
75
75
 
76
76
  :scope[selectable] > [role="listitem"]:focus-visible {
77
- outline: 2px solid var(--a-accent-strong);
77
+ outline: 2px solid var(--a-primary-strong);
78
78
  outline-offset: -2px;
79
79
  }
80
80
 
@@ -97,7 +97,7 @@
97
97
  --list-item-gap-row: var(--a-space-1);
98
98
 
99
99
  /* ── Colors ── */
100
- --list-item-text-color: var(--a-fg);
100
+ --list-item-text-color: var(--md-sys-color-neutral-on-surface);
101
101
  --list-item-desc-color: var(--a-fg-muted);
102
102
  --list-item-icon-color: var(--a-fg-muted);
103
103
 
@@ -199,13 +199,13 @@
199
199
  consistently. No border-radius on the row itself — dividers (when
200
200
  present) span full-width and rounded corners would clash. */
201
201
  :scope[data-active] {
202
- background: var(--a-accent-muted);
203
- color: var(--a-accent-strong);
204
- box-shadow: inset 2px 0 0 var(--a-accent-strong);
202
+ background: var(--md-sys-color-primary-container);
203
+ color: var(--a-primary-strong);
204
+ box-shadow: inset 2px 0 0 var(--a-primary-strong);
205
205
  }
206
206
 
207
207
  :scope[data-active] [slot="icon"],
208
208
  :scope[data-active] [slot="description"] {
209
- color: var(--a-accent-strong);
209
+ color: var(--a-primary-strong);
210
210
  }
211
211
  }
@@ -1,7 +1,7 @@
1
1
  @scope (list-window-ui) {
2
2
  /* ── Block 1 — TOKENS (zero-specificity, exposable for theming) ── */
3
3
  :where(:scope) {
4
- --list-window-bg: var(--a-bg);
4
+ --list-window-bg: var(--md-sys-color-neutral-background);
5
5
  --list-window-row-gap: var(--a-space-1);
6
6
  --list-window-overscan-bg: transparent;
7
7
  --list-window-sentinel-size: var(--a-space-2);
@@ -20,7 +20,7 @@
20
20
  }
21
21
 
22
22
  :scope:focus-visible {
23
- outline: 2px solid var(--a-accent-strong);
23
+ outline: 2px solid var(--a-primary-strong);
24
24
  outline-offset: -2px;
25
25
  }
26
26