@muibook/components 10.0.0 → 11.0.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 (150) hide show
  1. package/LICENSE +27 -11
  2. package/README.md +7 -7
  3. package/dist/esm/components/mui-accordion/block/index.js +9 -5
  4. package/dist/esm/components/mui-alert/index.js +88 -52
  5. package/dist/esm/components/mui-badge/index.js +61 -16
  6. package/dist/esm/components/mui-body/index.js +76 -10
  7. package/dist/esm/components/mui-button/index.js +152 -32
  8. package/dist/esm/components/mui-card/card/index.js +13 -8
  9. package/dist/esm/components/mui-checkbox/index.js +64 -30
  10. package/dist/esm/components/mui-chip/index.js +153 -33
  11. package/dist/esm/components/mui-chip-input/index.js +407 -0
  12. package/dist/esm/components/mui-code/index.js +11 -9
  13. package/dist/esm/components/mui-dialog/index.js +17 -8
  14. package/dist/esm/components/mui-dropdown/index.js +44 -44
  15. package/dist/esm/components/mui-field/index.js +56 -21
  16. package/dist/esm/components/mui-form-group/index.js +88 -0
  17. package/dist/esm/components/mui-form-hint/index.js +1 -0
  18. package/dist/esm/components/mui-form-message/index.js +72 -0
  19. package/dist/esm/components/mui-form-section/index.js +108 -0
  20. package/dist/esm/components/mui-form-section-footer/index.js +46 -0
  21. package/dist/esm/components/mui-hint/index.js +146 -0
  22. package/dist/esm/components/mui-icons/accessibility/index.js +5 -4
  23. package/dist/esm/components/mui-icons/add/index.js +1 -0
  24. package/dist/esm/components/mui-icons/ai/index.js +9 -14
  25. package/dist/esm/components/mui-icons/attention/index.js +1 -0
  26. package/dist/esm/components/mui-icons/calendar/index.js +5 -4
  27. package/dist/esm/components/mui-icons/check/index.js +6 -5
  28. package/dist/esm/components/mui-icons/checkmark/index.js +9 -8
  29. package/dist/esm/components/mui-icons/close/index.js +6 -5
  30. package/dist/esm/components/mui-icons/down-arrow-circle/index.js +9 -8
  31. package/dist/esm/components/mui-icons/down-chevron/index.js +8 -7
  32. package/dist/esm/components/mui-icons/ellipsis/index.js +1 -0
  33. package/dist/esm/components/mui-icons/exclamationmark/index.js +49 -0
  34. package/dist/esm/components/mui-icons/game-controller/index.js +8 -7
  35. package/dist/esm/components/mui-icons/gear/index.js +5 -4
  36. package/dist/esm/components/mui-icons/globe/index.js +8 -7
  37. package/dist/esm/components/mui-icons/grid/index.js +1 -0
  38. package/dist/esm/components/mui-icons/home/index.js +9 -8
  39. package/dist/esm/components/mui-icons/index.js +3 -0
  40. package/dist/esm/components/mui-icons/info/index.js +3 -2
  41. package/dist/esm/components/mui-icons/left-arrow/index.js +1 -0
  42. package/dist/esm/components/mui-icons/left-chevron/index.js +6 -5
  43. package/dist/esm/components/mui-icons/left-sidebar/index.js +6 -5
  44. package/dist/esm/components/mui-icons/list-and-film/index.js +1 -0
  45. package/dist/esm/components/mui-icons/menu/index.js +8 -7
  46. package/dist/esm/components/mui-icons/message/index.js +5 -4
  47. package/dist/esm/components/mui-icons/moon/index.js +3 -2
  48. package/dist/esm/components/mui-icons/movie-clapper/index.js +5 -4
  49. package/dist/esm/components/mui-icons/music-microphone/index.js +6 -5
  50. package/dist/esm/components/mui-icons/music-quarter-note/index.js +1 -0
  51. package/dist/esm/components/mui-icons/notification/index.js +5 -4
  52. package/dist/esm/components/mui-icons/pin/index.js +3 -2
  53. package/dist/esm/components/mui-icons/pin-slash/index.js +6 -5
  54. package/dist/esm/components/mui-icons/play-rectangle/index.js +9 -8
  55. package/dist/esm/components/mui-icons/play-stack/index.js +5 -4
  56. package/dist/esm/components/mui-icons/rectangle/index.js +6 -5
  57. package/dist/esm/components/mui-icons/rectangle-bottom-panel/index.js +1 -0
  58. package/dist/esm/components/mui-icons/rectangle-dashed/index.js +1 -0
  59. package/dist/esm/components/mui-icons/rectangle-left-drawer/index.js +1 -0
  60. package/dist/esm/components/mui-icons/rectangle-media-text/index.js +6 -5
  61. package/dist/esm/components/mui-icons/right-chevron/index.js +1 -0
  62. package/dist/esm/components/mui-icons/search/index.js +6 -5
  63. package/dist/esm/components/mui-icons/spinner/index.js +56 -0
  64. package/dist/esm/components/mui-icons/stop/index.js +3 -2
  65. package/dist/esm/components/mui-icons/subtract/index.js +1 -0
  66. package/dist/esm/components/mui-icons/sun/index.js +1 -0
  67. package/dist/esm/components/mui-icons/text-below-folder/index.js +55 -0
  68. package/dist/esm/components/mui-icons/toggle/index.js +8 -6
  69. package/dist/esm/components/mui-icons/translate/index.js +5 -4
  70. package/dist/esm/components/mui-icons/up-arrow/index.js +5 -4
  71. package/dist/esm/components/mui-icons/up-chevron/index.js +6 -5
  72. package/dist/esm/components/mui-icons/warning/index.js +7 -6
  73. package/dist/esm/components/mui-input/index.js +298 -47
  74. package/dist/esm/components/mui-link/index.js +187 -59
  75. package/dist/esm/components/mui-list/item/index.js +3 -0
  76. package/dist/esm/components/mui-markdown/index.js +149 -0
  77. package/dist/esm/components/mui-media-player/index.js +184 -0
  78. package/dist/esm/components/mui-message/index.js +50 -20
  79. package/dist/esm/components/mui-progress/index.js +15 -15
  80. package/dist/esm/components/mui-prompt/index.js +1461 -0
  81. package/dist/esm/components/mui-prompt-message/index.js +114 -0
  82. package/dist/esm/components/mui-prompt-preview/index.js +497 -0
  83. package/dist/esm/components/mui-prompt-toggle/index.js +48 -0
  84. package/dist/esm/components/mui-radio/index.js +155 -0
  85. package/dist/esm/components/mui-radio-group/index.js +104 -0
  86. package/dist/esm/components/mui-range-input/index.js +122 -0
  87. package/dist/esm/components/mui-rule/index.js +11 -3
  88. package/dist/esm/components/mui-select/index.js +89 -30
  89. package/dist/esm/components/mui-spinner/index.js +70 -0
  90. package/dist/esm/components/mui-stepper/step/index.js +255 -18
  91. package/dist/esm/components/mui-stepper/stepper/index.js +68 -72
  92. package/dist/esm/components/mui-table/row/index.js +16 -3
  93. package/dist/esm/components/mui-tabs/controller/index.js +21 -14
  94. package/dist/esm/components/mui-tabs/item/index.js +285 -29
  95. package/dist/esm/components/mui-tabs/panel/index.js +3 -0
  96. package/dist/esm/components/mui-tabs/tab-bar/index.js +85 -34
  97. package/dist/esm/components/mui-textarea/index.js +257 -0
  98. package/dist/esm/css/mui-base.css +27 -0
  99. package/dist/esm/css/mui-brand.css +3 -1
  100. package/dist/esm/css/mui-tokens.css +234 -7
  101. package/dist/esm/custom-elements.json +5450 -2039
  102. package/dist/esm/index.js +24 -4
  103. package/dist/esm/tokens/js/index.js +107 -105
  104. package/dist/types/components/mui-agent-bubble/doc.d.ts +2 -0
  105. package/dist/types/components/mui-agent-bubble/index.d.ts +1 -0
  106. package/dist/types/components/mui-agent-prompt/doc.d.ts +2 -0
  107. package/dist/types/components/mui-agent-prompt/index.d.ts +1 -0
  108. package/dist/types/components/mui-chip-input/doc.d.ts +2 -0
  109. package/dist/types/components/mui-chip-input/index.d.ts +3 -0
  110. package/dist/types/components/mui-form-group/doc.d.ts +2 -0
  111. package/dist/types/components/mui-form-group/index.d.ts +2 -0
  112. package/dist/types/components/mui-form-group-horizontal/index.d.ts +1 -0
  113. package/dist/types/components/mui-form-hint/doc.d.ts +2 -0
  114. package/dist/types/components/mui-form-hint/index.d.ts +1 -0
  115. package/dist/types/components/mui-form-message/index.d.ts +2 -0
  116. package/dist/types/components/mui-form-section/doc.d.ts +2 -0
  117. package/dist/types/components/mui-form-section/index.d.ts +1 -0
  118. package/dist/types/components/mui-form-section-footer/doc.d.ts +2 -0
  119. package/dist/types/components/mui-form-section-footer/index.d.ts +1 -0
  120. package/dist/types/components/mui-hint/doc.d.ts +2 -0
  121. package/dist/types/components/mui-hint/index.d.ts +1 -0
  122. package/dist/types/components/mui-icons/exclamationmark.d.ts +1 -0
  123. package/dist/types/components/mui-icons/index.d.ts +3 -0
  124. package/dist/types/components/mui-icons/spinner.d.ts +1 -0
  125. package/dist/types/components/mui-icons/text-below-folder.d.ts +1 -0
  126. package/dist/types/components/mui-markdown/doc.d.ts +2 -0
  127. package/dist/types/components/mui-markdown/index.d.ts +1 -0
  128. package/dist/types/components/mui-media-player/doc.d.ts +2 -0
  129. package/dist/types/components/mui-media-player/index.d.ts +8 -0
  130. package/dist/types/components/mui-prompt/doc.d.ts +2 -0
  131. package/dist/types/components/mui-prompt/index.d.ts +18 -0
  132. package/dist/types/components/mui-prompt-chip/index.d.ts +1 -0
  133. package/dist/types/components/mui-prompt-message/doc.d.ts +2 -0
  134. package/dist/types/components/mui-prompt-message/index.d.ts +1 -0
  135. package/dist/types/components/mui-prompt-preview/doc.d.ts +2 -0
  136. package/dist/types/components/mui-prompt-preview/index.d.ts +7 -0
  137. package/dist/types/components/mui-prompt-toggle/index.d.ts +1 -0
  138. package/dist/types/components/mui-radio/doc.d.ts +2 -0
  139. package/dist/types/components/mui-radio/index.d.ts +1 -0
  140. package/dist/types/components/mui-radio-group/index.d.ts +1 -0
  141. package/dist/types/components/mui-range-input/doc.d.ts +2 -0
  142. package/dist/types/components/mui-range-input/index.d.ts +1 -0
  143. package/dist/types/components/mui-spinner/doc.d.ts +2 -0
  144. package/dist/types/components/mui-spinner/index.d.ts +1 -0
  145. package/dist/types/components/mui-stepper/step/index.d.ts +4 -1
  146. package/dist/types/components/mui-textarea/doc.d.ts +2 -0
  147. package/dist/types/components/mui-textarea/index.d.ts +1 -0
  148. package/dist/types/index.d.ts +21 -0
  149. package/dist/types/tokens/js/index.d.ts +2 -0
  150. package/package.json +88 -1
@@ -0,0 +1,257 @@
1
+ class p extends HTMLElement {
2
+ static get observedAttributes() {
3
+ return [
4
+ "name",
5
+ "value",
6
+ "placeholder",
7
+ "id",
8
+ "label",
9
+ "disabled",
10
+ "hide-label",
11
+ "variant",
12
+ "rows",
13
+ "optional",
14
+ "max-length",
15
+ "size"
16
+ ];
17
+ }
18
+ constructor() {
19
+ super(), this.attachShadow({ mode: "open" });
20
+ }
21
+ connectedCallback() {
22
+ this.hasAttribute("size") || this.setAttribute("size", "medium"), this.render(), this.setupListener();
23
+ }
24
+ disconnectedCallback() {
25
+ this.cleanupListeners();
26
+ }
27
+ attributeChangedCallback(e, a, r) {
28
+ var o;
29
+ const t = (o = this.shadowRoot) == null ? void 0 : o.querySelector("textarea");
30
+ if (t) {
31
+ if (e === "value") {
32
+ t.value = r ?? "", this.updateCharacterCount();
33
+ return;
34
+ }
35
+ if (e === "disabled") {
36
+ r === null || r === "false" ? t.removeAttribute("disabled") : t.setAttribute("disabled", "");
37
+ return;
38
+ }
39
+ if (e === "rows") {
40
+ r && t.setAttribute("rows", r);
41
+ return;
42
+ }
43
+ ["placeholder", "label", "hide-label", "variant", "optional", "max-length", "size"].includes(e) && (this.render(), this.setupListener());
44
+ }
45
+ }
46
+ cleanupListeners() {
47
+ var a;
48
+ const e = (a = this.shadowRoot) == null ? void 0 : a.querySelector("textarea");
49
+ e && this._changeHandler && (e.removeEventListener("change", this._changeHandler), e.removeEventListener("input", this._changeHandler));
50
+ }
51
+ setupListener() {
52
+ if (!this.shadowRoot) return;
53
+ const e = this.shadowRoot.querySelector("textarea");
54
+ e && (this.cleanupListeners(), this._changeHandler = (a) => {
55
+ const r = a.target;
56
+ this.setAttribute("value", r.value);
57
+ const t = {
58
+ detail: { value: r.value },
59
+ bubbles: !0,
60
+ composed: !0
61
+ };
62
+ this.dispatchEvent(new CustomEvent("change", t)), this.dispatchEvent(new CustomEvent("input", t)), this.updateCharacterCount();
63
+ }, e.addEventListener("change", this._changeHandler), e.addEventListener("input", this._changeHandler), this.updateCharacterCount());
64
+ }
65
+ updateCharacterCount() {
66
+ var r, t;
67
+ const e = (r = this.shadowRoot) == null ? void 0 : r.querySelector("textarea"), a = (t = this.shadowRoot) == null ? void 0 : t.querySelector(".char-count");
68
+ !e || !a || e.maxLength <= 0 || (a.textContent = `${e.value.length}/${e.maxLength}`);
69
+ }
70
+ render() {
71
+ const e = this.getAttribute("name") || "", a = this.getAttribute("value") || "", r = this.getAttribute("placeholder") || "", t = this.getAttribute("id") || `mui-textarea-${Math.random().toString(36).substr(2, 9)}`, o = this.getAttribute("label") || "", h = this.hasAttribute("optional"), l = this.hasAttribute("hide-label"), d = this.hasAttribute("disabled"), u = this.getAttribute("rows") || "4", i = this.getAttribute("max-length"), s = i && Number(i) > 0 ? String(Number(i)) : "", n = this.getAttribute("size") || "medium", v = ["x-small", "small", "medium", "large"].includes(n) ? n : "medium", x = l && o ? `aria-label="${o}"` : "", c = this.getAttribute("variant") || "", b = c || "", m = (
72
+ /*html*/
73
+ `
74
+ <style>
75
+ :host {
76
+ display: inline-block;
77
+ width: 100%;
78
+ }
79
+
80
+ label {
81
+ display: block;
82
+ font-size: var(--text-font-size);
83
+ font-weight: var(--font-weight-medium);
84
+ margin-bottom: var(--space-100);
85
+ color: var(--text-color);
86
+ }
87
+
88
+ textarea {
89
+ width: 100%;
90
+ min-height: 9.6rem;
91
+ line-height: var(--text-line-height);
92
+ padding: var(--space-200) var(--space-300);
93
+ box-sizing: border-box;
94
+ font-size: var(--text-font-size);
95
+ border-radius: var(--radius-100);
96
+ border: var(--border-thin);
97
+ border-color: var(--form-default-border-color);
98
+ color: var(--form-default-text-color);
99
+ background: var(--input-background);
100
+ resize: vertical;
101
+ font-family: var(--font-family);
102
+ }
103
+ textarea.size-x-small {
104
+ min-height: 7.2rem;
105
+ padding: var(--action-padding-x-small);
106
+ font-size: var(--text-font-size-xs);
107
+ line-height: var(--text-line-height-xs);
108
+ }
109
+ textarea.size-small {
110
+ min-height: 8.4rem;
111
+ padding: var(--action-padding-small);
112
+ font-size: var(--text-font-size-s);
113
+ line-height: var(--text-line-height-s);
114
+ }
115
+ textarea.size-medium {
116
+ min-height: 9.6rem;
117
+ padding: var(--space-200) var(--space-300);
118
+ font-size: var(--text-font-size);
119
+ line-height: var(--text-line-height);
120
+ }
121
+ textarea.size-large {
122
+ min-height: 11.2rem;
123
+ padding: var(--space-300) var(--space-400);
124
+ font-size: var(--text-font-size-l);
125
+ line-height: var(--text-line-height-l);
126
+ }
127
+
128
+ textarea:hover {
129
+ border-color: var(--form-default-border-color-hover);
130
+ color: var(--form-default-text-color-hover);
131
+ }
132
+
133
+ textarea:focus {
134
+ outline: var(--outline-thick);
135
+ }
136
+
137
+ textarea:disabled {
138
+ opacity: 0.4;
139
+ cursor: not-allowed;
140
+ background-color: var(--input-background-disabled);
141
+ }
142
+
143
+ textarea.success {
144
+ color: var(--form-success-text-color);
145
+ border-color: var(--form-success-border-color);
146
+ box-shadow: 0 0 0 2px var(--form-success-border-color);
147
+ }
148
+
149
+ textarea.warning {
150
+ color: var(--form-warning-text-color);
151
+ border-color: var(--form-warning-border-color);
152
+ box-shadow: 0 0 0 2px var(--form-warning-border-color);
153
+ }
154
+
155
+ textarea.error {
156
+ color: var(--form-error-text-color);
157
+ border-color: var(--form-error-border-color);
158
+ box-shadow: 0 0 0 2px var(--form-error-border-color);
159
+ }
160
+
161
+ textarea.success:hover {
162
+ color: var(--form-success-text-color-hover);
163
+ border-color: var(--form-success-border-color-hover);
164
+ box-shadow: 0 0 0 2px var(--form-success-border-color-hover);
165
+ }
166
+
167
+ textarea.warning:hover {
168
+ color: var(--form-warning-text-color-hover);
169
+ border-color: var(--form-warning-border-color-hover);
170
+ box-shadow: 0 0 0 2px var(--form-warning-border-color-hover);
171
+ }
172
+
173
+ textarea.error:hover {
174
+ color: var(--form-error-text-color-hover);
175
+ border-color: var(--form-error-border-color-hover);
176
+ box-shadow: 0 0 0 2px var(--form-error-border-color-hover);
177
+ }
178
+
179
+ textarea::placeholder {
180
+ color: var(--form-default-placeholder-color);
181
+ opacity: 1;
182
+ }
183
+
184
+ textarea:hover::placeholder {
185
+ color: var(--form-default-placeholder-color-hover);
186
+ }
187
+
188
+ textarea:focus::placeholder {
189
+ color: var(--form-default-placeholder-color-focus);
190
+ }
191
+
192
+ textarea:disabled::placeholder {
193
+ color: var(--form-default-placeholder-color-disabled);
194
+ }
195
+
196
+ .vh {
197
+ position: absolute;
198
+ width: 1px;
199
+ height: 1px;
200
+ margin: -1px;
201
+ padding: 0;
202
+ overflow: hidden;
203
+ clip: rect(0 0 0 0);
204
+ white-space: nowrap;
205
+ border: 0;
206
+ }
207
+ .meta {
208
+ display: flex;
209
+ justify-content: flex-end;
210
+ margin-top: var(--space-100);
211
+ min-height: 1.8rem;
212
+ }
213
+ .char-count {
214
+ font-size: var(--text-font-size-xs);
215
+ line-height: var(--text-line-height-xs);
216
+ color: var(--text-color);
217
+ opacity: 0.7;
218
+ }
219
+ .optional {
220
+ color: var(--text-color-optional);
221
+ display: inline-flex;
222
+ align-items: center;
223
+ gap: var(--space-050);
224
+ font-size: var(--text-font-size-xs);
225
+ line-height: var(--text-line-height-xs);
226
+ text-transform: uppercase;
227
+ font-weight: var(--font-weight-medium);
228
+ }
229
+ .optional-dot {
230
+ display: inline-flex;
231
+ align-items: center;
232
+ line-height: 1;
233
+ }
234
+ .optional-text {
235
+ transform: translateY(calc(var(--stroke-size-100) * -1));
236
+ }
237
+ </style>
238
+
239
+ ${o ? `<label for="${t}" class="${l ? "vh" : ""}">${o}${h ? ' <span class="optional"><span class="optional-dot" aria-hidden="true">•</span><span class="optional-text">Optional</span></span>' : ""}</label>` : ""}
240
+
241
+ <textarea
242
+ id="${t}"
243
+ name="${e}"
244
+ class="${[b, `size-${v}`].filter(Boolean).join(" ")}"
245
+ rows="${u}"
246
+ placeholder="${r}"
247
+ ${s ? `maxlength="${s}"` : ""}
248
+ ${d ? "disabled" : ""}
249
+ ${x}
250
+ >${a}</textarea>
251
+ ${s ? '<div class="meta"><span class="char-count"></span></div>' : ""}
252
+ `
253
+ );
254
+ this.shadowRoot.innerHTML = m, o || console.warn("mui-textarea: Missing required 'label' attribute for accessibility.");
255
+ }
256
+ }
257
+ customElements.get("mui-textarea") || customElements.define("mui-textarea", p);
@@ -108,3 +108,30 @@ button[type="submit"] {
108
108
  border-radius: var(--radius-100);
109
109
  border: var(--border-thick);
110
110
  }
111
+
112
+ /* Global minimal scrollbar */
113
+ * {
114
+ scrollbar-width: thin;
115
+ scrollbar-color: color-mix(in srgb, var(--border-color) 55%, transparent) transparent;
116
+ }
117
+
118
+ *::-webkit-scrollbar {
119
+ width: var(--space-100);
120
+ height: var(--space-100);
121
+ }
122
+
123
+ *::-webkit-scrollbar-track {
124
+ background: transparent;
125
+ }
126
+
127
+ *::-webkit-scrollbar-thumb {
128
+ background: color-mix(in srgb, var(--border-color) 55%, transparent);
129
+ border-radius: var(--radius-300);
130
+ border: var(--stroke-size-100) solid transparent;
131
+ background-clip: padding-box;
132
+ }
133
+
134
+ *::-webkit-scrollbar-thumb:hover {
135
+ background: color-mix(in srgb, var(--border-color) 75%, transparent);
136
+ background-clip: padding-box;
137
+ }
@@ -1,6 +1,6 @@
1
1
 
2
2
  /* ================================================================================================== */
3
- /* Don't edit directly • Generated on Wed, 04 Feb 2026 04:53:47 GMT • muibook.com */
3
+ /* Don't edit directly • Generated on Wed, 25 Feb 2026 01:13:26 GMT • muibook.com */
4
4
  /* ================================================================================================== */
5
5
 
6
6
  /* ================================================================================================== */
@@ -72,6 +72,7 @@
72
72
  --line-height-1000: 1.125;
73
73
  --black: black;
74
74
  --black-opacity-0: oklch(0% 0 0 / 0);
75
+ --black-opacity-5: oklch(0% 0 0 / 0.05);
75
76
  --black-opacity-10: oklch(0% 0 0 / 0.1);
76
77
  --black-opacity-20: oklch(0% 0 0 / 0.2);
77
78
  --black-opacity-30: oklch(0% 0 0 / 0.3);
@@ -95,6 +96,7 @@
95
96
  --white-opacity-90: oklch(100% 0.00011 271.152 / 0.9);
96
97
  --white-opacity-100: oklch(100% 0.00011 271.152);
97
98
  --grey-100: oklch(97.015% 0.00011 271.152);
99
+ --grey-150: oklch(94.047% 0.00009 271.152);
98
100
  --grey-200: oklch(92.191% 0.0001 271.152);
99
101
  --grey-300: oklch(84.522% 0.0001 271.152);
100
102
  --grey-400: oklch(73.802% 0.00008 271.152);
@@ -137,6 +137,19 @@ html[data-theme="light"] {
137
137
  --action-tertiary-text-color-hover: var(--grey-1000);
138
138
  --action-tertiary-text-color-focus: var(--grey-1000);
139
139
  --action-tertiary-text-color-disabled: var(--grey-400);
140
+ /* Action - Overlay (Button & Link) */
141
+ --action-overlay-border-color: var(--white-opacity-30);
142
+ --action-overlay-border-color-hover: var(--white-opacity-30);
143
+ --action-overlay-border-color-focus: var(--white-opacity-30);
144
+ --action-overlay-border-color-disabled: var(--white-opacity-20);
145
+ --action-overlay-background: var(--black-opacity-60);
146
+ --action-overlay-background-hover: var(--black-opacity-70);
147
+ --action-overlay-background-focus: var(--black-opacity-70);
148
+ --action-overlay-background-disabled: var(--black-opacity-40);
149
+ --action-overlay-text-color: var(--white);
150
+ --action-overlay-text-color-hover: var(--white);
151
+ --action-overlay-text-color-focus: var(--white);
152
+ --action-overlay-text-color-disabled: var(--white-opacity-40);
140
153
  /* Action - Attention (Button & Link) */
141
154
  --action-attention-border-color: var(--black-opacity-0);
142
155
  --action-attention-border-color-hover: var(--black-opacity-0);
@@ -158,6 +171,49 @@ html[data-theme="light"] {
158
171
  --surface-elevated-alpha: var(--white-opacity-50);
159
172
  --surface-elevated-100: var(--white);
160
173
  --surface-elevated-200: var(--grey-100);
174
+ --prompt-preview-dismiss-border-color: var(--black-opacity-30);
175
+ --prompt-preview-box-drop-shadow: drop-shadow(
176
+ 0 var(--stroke-size-100) var(--stroke-size-200) var(--black-opacity-10)
177
+ );
178
+ --prompt-preview-surface: var(--surface-elevated-100);
179
+ --prompt-preview-accent-mix-100: 10%;
180
+ --prompt-preview-accent-mix-200: 8%;
181
+ --prompt-preview-accent-mix-300: 6%;
182
+ --prompt-preview-accent-mix-400: 8%;
183
+ --prompt-preview-accent-mix-500: 4%;
184
+ --prompt-preview-dismiss-secondary-background: var(--grey-100);
185
+ --prompt-preview-dismiss-secondary-background-hover: var(--grey-200);
186
+ --prompt-preview-dismiss-secondary-border: var(--stroke-size-100) var(--stroke-solid) var(--black-opacity-30);
187
+ --prompt-preview-dismiss-secondary-border-hover: var(--stroke-size-100) var(--stroke-solid) var(--black-opacity-50);
188
+ --prompt-preview-top-shade-height: calc(var(--space-600) + var(--space-100));
189
+ --prompt-preview-top-shade-start: var(--black-opacity-10);
190
+ --prompt-preview-top-shade-end: var(--black-opacity-0);
191
+ --prompt-preview-top-shade-start-overlay: var(--black-opacity-50);
192
+ --prompt-preview-top-shade-end-overlay: var(--black-opacity-0);
193
+ --prompt-border-color-hover: var(--form-default-border-color-hover);
194
+ --prompt-border-color-focus: var(--blue-500);
195
+ --prompt-hover-ring-color: var(--outline-color);
196
+ --prompt-hover-glow-color: var(--mui-brand-400);
197
+ --prompt-focus-ring-color: var(--mui-brand-400);
198
+ --prompt-focus-glow-color: var(--mui-brand-400);
199
+ --prompt-spectrum-start: var(--mui-brand-400);
200
+ --prompt-spectrum-mid: var(--outline-color);
201
+ --prompt-spectrum-end: var(--blue-500);
202
+ --prompt-focus-surface-background: var(--surface-elevated-100);
203
+ --prompt-accent-primary: var(--prompt-spectrum-start);
204
+ --prompt-accent-secondary: var(--prompt-spectrum-end);
205
+ --prompt-hover-sweep-speed: 1400ms;
206
+ --prompt-focus-pulse-speed: 1400ms;
207
+ --prompt-surface-filter: drop-shadow(0 var(--stroke-size-100) 0 var(--black-opacity-5));
208
+ --prompt-placeholder-color: var(--form-default-placeholder-color);
209
+ --prompt-placeholder-color-hover: var(--form-default-placeholder-color-hover);
210
+ --prompt-placeholder-color-focus: var(--form-default-placeholder-color-focus);
211
+ --media-player-seek-color: var(--grey-1200);
212
+ --media-player-seek-time-background: var(--surface-elevated-100);
213
+ --media-player-seek-time-border-color: var(--border-color);
214
+ --range-input-accent-color: var(--media-player-seek-color);
215
+ --range-input-bubble-background: var(--media-player-seek-time-background);
216
+ --range-input-bubble-border-color: var(--media-player-seek-time-border-color);
161
217
  --surface-recessed-alpha: var(--black-opacity-10);
162
218
  --surface-recessed-100: var(--grey-300);
163
219
  --surface-recessed-200: var(--grey-400);
@@ -189,6 +245,9 @@ html[data-theme="light"] {
189
245
  --badge-background-positive: var(--green-600);
190
246
  --badge-background-warning: var(--orange-600);
191
247
  --badge-background-attention: var(--red-600);
248
+ --badge-background-overlay: var(--black-opacity-60);
249
+ --badge-text-color-overlay: var(--white);
250
+ --badge-border-overlay: var(--stroke-size-100) var(--stroke-solid) var(--white-opacity-30);
192
251
  /* Heading */
193
252
  --heading-text-color: var(--grey-1000);
194
253
  /* Link */
@@ -208,6 +267,15 @@ html[data-theme="light"] {
208
267
  --checkbox-background-disabled: var(--grey-100);
209
268
  --checkbox-background-checked-disabled: var(--grey-800);
210
269
  --checkbox-icon-color-checked-disabled: var(--grey-100);
270
+ /* Radio */
271
+ --radio-background: var(--white);
272
+ --radio-border-color: var(--form-default-border-color);
273
+ --radio-border-color-hover: var(--form-default-border-color-hover);
274
+ --radio-border-color-checked: var(--grey-900);
275
+ --radio-dot-color-checked: var(--grey-900);
276
+ --radio-background-disabled: var(--grey-100);
277
+ --radio-border-color-disabled: var(--grey-300);
278
+ --radio-dot-color-checked-disabled: var(--grey-500);
211
279
 
212
280
  /* Addon */
213
281
  --addon-background: var(--grey-100);
@@ -262,14 +330,16 @@ html[data-theme="light"] {
262
330
  --chip-background-hover: var(--white);
263
331
  --chip-background-focus: var(--white);
264
332
  --chip-background-active: var(--white);
265
- --chip-border-color: var(--grey-300);
333
+ --chip-border-color: var(--grey-200);
266
334
  --chip-border-color-hover: var(--grey-300);
267
335
  --chip-border-color-focus: var(--grey-300);
268
336
  --chip-border-color-active: var(--grey-1000);
269
337
  --chip-text-color-active: var(--grey-1000);
270
338
  --chip-icon-fill: var(--black);
271
- --chip-dismiss-action-background: var(--grey-100);
339
+ --chip-filter: drop-shadow(0 var(--stroke-size-100) var(--stroke-size-200) var(--black-opacity-5));
340
+ --chip-dismiss-action-background: var(--grey-150);
272
341
  --chip-dismiss-action-background-hover: var(--black-opacity-0);
342
+ --chip-dismiss-action-filter: drop-shadow(0 var(--stroke-size-100) var(--stroke-size-200) var(--black-opacity-0));
273
343
 
274
344
  /* Dropdown */
275
345
  --dropdown-background: var(--grey-100);
@@ -282,13 +352,20 @@ html[data-theme="light"] {
282
352
  --progress-track-background: var(--grey-200);
283
353
  --progress-loading-bar-100: var(--grey-200);
284
354
  --progress-loading-bar-200: var(--grey-300);
355
+ --progress-syncing-bar-background: var(--progress-bar-background);
285
356
 
286
357
  /* Stepper */
287
- --stepper-color: var(--blue-600);
358
+ --stepper-color: var(--grey-700);
288
359
  --stepper-background-active: var(--stepper-color);
289
360
  --stepper-background-inactive: var(--white);
290
361
  --stepper-border-color: var(--stepper-color);
291
362
  --stepper-text-color-active: var(--stepper-color);
363
+ --stepper-icon-color: var(--white);
364
+ --stepper-success-color: var(--stepper-color);
365
+ --stepper-warning-color: var(--orange-700);
366
+ --stepper-error-color: var(--text-color-error);
367
+ --stepper-disabled-color: var(--text-color-optional);
368
+ --stepper-disabled-opacity: 0.75;
292
369
 
293
370
  /* Dialog */
294
371
  --dialog-background: var(--white);
@@ -391,6 +468,19 @@ html[data-theme="dark"] {
391
468
  --action-tertiary-text-color-hover: var(--grey-100);
392
469
  --action-tertiary-text-color-focus: var(--grey-100);
393
470
  --action-tertiary-text-color-disabled: var(--grey-600);
471
+ /* Action - Overlay (Button & Link) */
472
+ --action-overlay-border-color: var(--white-opacity-30);
473
+ --action-overlay-border-color-hover: var(--white-opacity-30);
474
+ --action-overlay-border-color-focus: var(--white-opacity-30);
475
+ --action-overlay-border-color-disabled: var(--white-opacity-20);
476
+ --action-overlay-background: var(--black-opacity-60);
477
+ --action-overlay-background-hover: var(--black-opacity-70);
478
+ --action-overlay-background-focus: var(--black-opacity-70);
479
+ --action-overlay-background-disabled: var(--black-opacity-40);
480
+ --action-overlay-text-color: var(--white);
481
+ --action-overlay-text-color-hover: var(--white);
482
+ --action-overlay-text-color-focus: var(--white);
483
+ --action-overlay-text-color-disabled: var(--white-opacity-40);
394
484
  /* Action - Attention (Button & Link) */
395
485
  --action-attention-border-color: var(--black-opacity-0);
396
486
  --action-attention-border-color-hover: var(--black-opacity-0);
@@ -413,6 +503,49 @@ html[data-theme="dark"] {
413
503
  --surface-elevated-alpha: var(--white-opacity-10);
414
504
  --surface-elevated-100: var(--grey-800);
415
505
  --surface-elevated-200: var(--grey-900);
506
+ --prompt-preview-dismiss-border-color: var(--white-opacity-30);
507
+ --prompt-preview-box-drop-shadow: drop-shadow(
508
+ 0 var(--stroke-size-100) var(--stroke-size-200) var(--black-opacity-20)
509
+ );
510
+ --prompt-preview-surface: var(--surface-elevated-200);
511
+ --prompt-preview-accent-mix-100: 14%;
512
+ --prompt-preview-accent-mix-200: 10%;
513
+ --prompt-preview-accent-mix-300: 8%;
514
+ --prompt-preview-accent-mix-400: 12%;
515
+ --prompt-preview-accent-mix-500: 6%;
516
+ --prompt-preview-dismiss-secondary-background: var(--surface-recessed-100);
517
+ --prompt-preview-dismiss-secondary-background-hover: var(--surface-recessed-200);
518
+ --prompt-preview-dismiss-secondary-border: var(--stroke-size-100) var(--stroke-solid) var(--white-opacity-30);
519
+ --prompt-preview-dismiss-secondary-border-hover: var(--stroke-size-100) var(--stroke-solid) var(--white-opacity-50);
520
+ --prompt-preview-top-shade-height: calc(var(--space-600) + var(--space-100));
521
+ --prompt-preview-top-shade-start: var(--black-opacity-30);
522
+ --prompt-preview-top-shade-end: var(--black-opacity-0);
523
+ --prompt-preview-top-shade-start-overlay: var(--black-opacity-50);
524
+ --prompt-preview-top-shade-end-overlay: var(--black-opacity-0);
525
+ --prompt-border-color-hover: var(--form-default-border-color-hover);
526
+ --prompt-border-color-focus: var(--blue-300);
527
+ --prompt-hover-ring-color: var(--outline-color);
528
+ --prompt-hover-glow-color: var(--mui-brand-300);
529
+ --prompt-focus-ring-color: var(--mui-brand-300);
530
+ --prompt-focus-glow-color: var(--mui-brand-300);
531
+ --prompt-spectrum-start: var(--mui-brand-300);
532
+ --prompt-spectrum-mid: var(--outline-color);
533
+ --prompt-spectrum-end: var(--blue-300);
534
+ --prompt-focus-surface-background: var(--grey-1200);
535
+ --prompt-accent-primary: var(--prompt-spectrum-start);
536
+ --prompt-accent-secondary: var(--prompt-spectrum-end);
537
+ --prompt-hover-sweep-speed: 1400ms;
538
+ --prompt-focus-pulse-speed: 1400ms;
539
+ --prompt-surface-filter: drop-shadow(0 var(--stroke-size-100) 0 var(--black-opacity-10));
540
+ --prompt-placeholder-color: var(--form-default-placeholder-color);
541
+ --prompt-placeholder-color-hover: var(--form-default-placeholder-color-hover);
542
+ --prompt-placeholder-color-focus: var(--form-default-placeholder-color-focus);
543
+ --media-player-seek-color: var(--white);
544
+ --media-player-seek-time-background: var(--surface-recessed-100);
545
+ --media-player-seek-time-border-color: var(--white-opacity-20);
546
+ --range-input-accent-color: var(--media-player-seek-color);
547
+ --range-input-bubble-background: var(--media-player-seek-time-background);
548
+ --range-input-bubble-border-color: var(--media-player-seek-time-border-color);
416
549
  --surface-elevated-300: var(--grey-1000);
417
550
  --surface-recessed-alpha: var(--black-opacity-30);
418
551
  --surface-recessed-100: var(--grey-1000);
@@ -446,6 +579,9 @@ html[data-theme="dark"] {
446
579
  --badge-background-positive: var(--green-400);
447
580
  --badge-background-warning: var(--orange-400);
448
581
  --badge-background-attention: var(--red-400);
582
+ --badge-background-overlay: var(--black-opacity-60);
583
+ --badge-text-color-overlay: var(--grey-300);
584
+ --badge-border-overlay: var(--stroke-size-100) var(--stroke-solid) var(--white-opacity-30);
449
585
  /* Heading */
450
586
  --heading-text-color: var(--grey-100);
451
587
  /* Link */
@@ -463,6 +599,15 @@ html[data-theme="dark"] {
463
599
  --checkbox-background-disabled: var(--grey-800);
464
600
  --checkbox-background-checked-disabled: var(--grey-500);
465
601
  --checkbox-icon-color-checked-disabled: var(--grey-900);
602
+ /* Radio */
603
+ --radio-background: var(--grey-900);
604
+ --radio-border-color: var(--form-default-border-color);
605
+ --radio-border-color-hover: var(--form-default-border-color-hover);
606
+ --radio-border-color-checked: var(--grey-200);
607
+ --radio-dot-color-checked: var(--grey-200);
608
+ --radio-background-disabled: var(--grey-800);
609
+ --radio-border-color-disabled: var(--grey-600);
610
+ --radio-dot-color-checked-disabled: var(--grey-500);
466
611
  /* Addon */
467
612
  --addon-background: var(--grey-1000);
468
613
  /* Tabs */
@@ -522,8 +667,10 @@ html[data-theme="dark"] {
522
667
  --chip-border-color-active: var(--grey-100);
523
668
  --chip-text-color-active: var(--grey-100);
524
669
  --chip-icon-fill: var(--white);
670
+ --chip-filter: drop-shadow(0 var(--stroke-size-100) var(--stroke-size-200) var(--black-opacity-20));
525
671
  --chip-dismiss-action-background: var(--grey-700);
526
672
  --chip-dismiss-action-background-hover: var(--white-opacity-0);
673
+ --chip-dismiss-action-filter: drop-shadow(0 var(--stroke-size-100) var(--stroke-size-200) var(--black-opacity-5));
527
674
 
528
675
  /* Dropdown */
529
676
  --dropdown-background: var(--grey-1000);
@@ -536,13 +683,20 @@ html[data-theme="dark"] {
536
683
  --progress-track-background: var(--grey-700);
537
684
  --progress-loading-bar-100: var(--grey-900);
538
685
  --progress-loading-bar-200: var(--grey-1000);
686
+ --progress-syncing-bar-background: var(--progress-bar-background);
539
687
 
540
688
  /* Stepper */
541
- --stepper-color: var(--blue-500);
689
+ --stepper-color: var(--white);
542
690
  --stepper-background-active: var(--stepper-color);
543
691
  --stepper-background-inactive: var(--black);
544
692
  --stepper-border-color: var(--stepper-color);
545
693
  --stepper-text-color-active: var(--stepper-color);
694
+ --stepper-icon-color: var(--grey-1100);
695
+ --stepper-success-color: var(--stepper-color);
696
+ --stepper-warning-color: var(--orange-300);
697
+ --stepper-error-color: var(--red-300);
698
+ --stepper-disabled-color: var(--text-color-optional);
699
+ --stepper-disabled-opacity: 0.8;
546
700
 
547
701
  /* Dialog */
548
702
  --dialog-background: var(--grey-800);
@@ -581,6 +735,11 @@ html[data-theme="dark"] {
581
735
  --action-tertiary-border-focus: var(--stroke-size-200) var(--stroke-solid) var(--action-tertiary-border-color-focus);
582
736
  --action-tertiary-border-disabled: var(--stroke-size-200) var(--stroke-solid)
583
737
  var(--action-tertiary-border-color-disabled);
738
+ --action-overlay-border: var(--stroke-size-100) var(--stroke-solid) var(--action-overlay-border-color);
739
+ --action-overlay-border-hover: var(--stroke-size-100) var(--stroke-solid) var(--action-overlay-border-color-hover);
740
+ --action-overlay-border-focus: var(--stroke-size-100) var(--stroke-solid) var(--action-overlay-border-color-focus);
741
+ --action-overlay-border-disabled: var(--stroke-size-100) var(--stroke-solid)
742
+ var(--action-overlay-border-color-disabled);
584
743
  --action-attention-border: var(--stroke-size-200) var(--stroke-solid) var(--action-attention-border-color);
585
744
  --action-attention-border-hover: var(--stroke-size-200) var(--stroke-solid) var(--action-attention-border-color-hover);
586
745
  --action-attention-border-focus: var(--stroke-size-200) var(--stroke-solid) var(--action-attention-border-color-focus);
@@ -671,7 +830,9 @@ html[data-theme="dark"] {
671
830
  --heading-line-height-600: var(--line-height-100);
672
831
  /* Alert */
673
832
  --alert-radius: var(--radius-100);
674
- --alert-padding: var(--space-400);
833
+ --alert-padding-large: var(--space-400);
834
+ --alert-padding-medium: var(--space-300);
835
+ --alert-padding-small: var(--space-200);
675
836
  --alert-gap-horizontal-mobile: var(--space-300);
676
837
  --alert-gap-horizontal-desktop: var(--space-100);
677
838
  /* Messages */
@@ -679,8 +840,56 @@ html[data-theme="dark"] {
679
840
  --message-padding: var(--space-400);
680
841
  --message-gap-horizontal: var(--space-300);
681
842
  --message-gap-vertical: var(--space-100);
843
+ /* Progress */
844
+ --progress-radius: var(--space-300);
845
+ --progress-syncing-width: 30%;
846
+ --progress-pending-stripe-size: 1rem;
847
+ /* Stepper */
848
+ --stepper-dot-size: var(--action-icon-only-size-x-small);
849
+ --stepper-dot-size-small: calc(var(--stepper-dot-size) - var(--space-050));
850
+ --stepper-dot-size-x-small: calc(var(--stepper-dot-size-small) - var(--space-050));
682
851
  /* Tab */
683
852
  --tab-radius: var(--radius-200);
853
+ --tab-font-size: var(--text-font-size-m);
854
+ --tab-line-height: var(--text-line-height-m);
855
+ --tab-font-weight: var(--font-weight-medium);
856
+ --tab-padding: var(--space-200) calc(var(--space-300) + var(--space-100));
857
+ --tab-before-slot-padding: var(--space-300);
858
+ --tab-after-slot-padding: var(--space-300);
859
+ --tab-min-height: 4.4rem;
860
+ --tab-gap: var(--space-100);
861
+ --tab-gap-x-small: var(--space-050);
862
+ --tab-gap-small: var(--space-100);
863
+ --tab-gap-large: var(--space-200);
864
+ --tab-font-size-x-small: var(--text-font-size-xs);
865
+ --tab-line-height-x-small: var(--text-line-height-xs);
866
+ --tab-font-weight-x-small: var(--font-weight-semi-bold);
867
+ --tab-padding-x-small: var(--space-050) var(--space-200);
868
+ --tab-before-slot-padding-x-small: var(--space-100);
869
+ --tab-after-slot-padding-x-small: var(--space-100);
870
+ --tab-min-height-x-small: 2.8rem;
871
+ --tab-font-size-small: var(--text-font-size-s);
872
+ --tab-line-height-small: var(--text-line-height-s);
873
+ --tab-padding-small: calc(var(--space-100) - (var(--stroke-size-100) / 2)) var(--space-300);
874
+ --tab-before-slot-padding-small: var(--space-200);
875
+ --tab-after-slot-padding-small: var(--space-200);
876
+ --tab-min-height-small: 3.6rem;
877
+ --tab-font-size-large: var(--text-font-size-l);
878
+ --tab-line-height-large: var(--text-line-height-l);
879
+ --tab-padding-large: var(--space-300) var(--space-500);
880
+ --tab-before-slot-padding-large: var(--space-400);
881
+ --tab-after-slot-padding-large: var(--space-400);
882
+ --tab-min-height-large: 5.2rem;
883
+ --tab-edge-padding-extra: var(--space-050);
884
+ --tab-edge-padding-extra-x-small: var(--space-025);
885
+ --tab-edge-padding-extra-small: var(--space-050);
886
+ --tab-edge-padding-extra-large: var(--space-100);
887
+ --tab-badge-offset: var(--space-025);
888
+ --tab-badge-offset-large: var(--space-050);
889
+ --tab-dot-size: 1rem;
890
+ --tab-dot-gap: var(--space-100);
891
+ --tab-dot-color: var(--tab-icon);
892
+ --tab-dot-color-active: var(--tab-icon-active);
684
893
  /* Carousel */
685
894
  --carousel-radius: var(--radius-300);
686
895
  --carousel-tab-position: var(--space-400);
@@ -689,10 +898,28 @@ html[data-theme="dark"] {
689
898
  --slat-radius: var(--radius-200);
690
899
  /* Checkbox */
691
900
  --checkbox-radius: var(--radius-100);
692
- --checkbox-size: calc(var(--space-400) + (var(--stroke-size-100) * 3));
901
+ --checkbox-size: calc(var(--space-500) - var(--stroke-size-500));
902
+ /* Radio */
903
+ --radio-size: calc(var(--space-500) - 2px);
693
904
 
694
905
  /* Chip */
695
- --chip-radius: var(--radius-400);
906
+ --chip-radius: var(--chip-radius-medium);
907
+ --chip-radius-x-small: var(--radius-300);
908
+ --chip-radius-small: var(--radius-400);
909
+ --chip-radius-medium: var(--radius-500);
910
+ --chip-radius-large: var(--radius-600);
911
+ --chip-height-x-small: 2.8rem;
912
+ --chip-height-small: 3.6rem;
913
+ --chip-height-medium: 4rem;
914
+ --chip-height-large: 5.2rem;
915
+ --chip-padding-x-small: 0 var(--space-200);
916
+ --chip-padding-small: var(--space-100) var(--space-300);
917
+ --chip-padding-medium: var(--space-100) var(--space-300);
918
+ --chip-padding-large: var(--space-200) var(--space-400);
919
+ --chip-gap-x-small: var(--space-100);
920
+ --chip-gap-small: var(--space-200);
921
+ --chip-gap-medium: var(--space-200);
922
+ --chip-gap-large: var(--space-300);
696
923
  /* Dropdown */
697
924
  --dropdown-radius: var(--radius-100);
698
925
  /* Dialog */