@duskmoon-dev/core 1.17.0 → 1.17.2

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 (78) hide show
  1. package/dist/components/alert.css +51 -0
  2. package/dist/components/appbar.css +69 -0
  3. package/dist/components/autocomplete.css +21 -0
  4. package/dist/components/avatar.css +15 -0
  5. package/dist/components/badge.css +45 -0
  6. package/dist/components/button.css +123 -0
  7. package/dist/components/card.css +27 -0
  8. package/dist/components/cascader.css +21 -0
  9. package/dist/components/chat.css +30 -0
  10. package/dist/components/checkbox.css +27 -0
  11. package/dist/components/chip.css +75 -0
  12. package/dist/components/circle-menu.css +24 -0
  13. package/dist/components/collapse.css +31 -1
  14. package/dist/components/datepicker.css +42 -0
  15. package/dist/components/divider.css +15 -0
  16. package/dist/components/file-upload.css +21 -0
  17. package/dist/components/form.css +83 -0
  18. package/dist/components/index.css +1200 -5
  19. package/dist/components/input.css +6 -0
  20. package/dist/components/multi-select.css +21 -0
  21. package/dist/components/navigation.css +50 -0
  22. package/dist/components/otp-input.css +24 -0
  23. package/dist/components/pin-input.css +24 -0
  24. package/dist/components/progress.css +12 -0
  25. package/dist/components/radio.css +12 -0
  26. package/dist/components/rating.css +18 -0
  27. package/dist/components/segment-control.css +15 -0
  28. package/dist/components/select.css +6 -0
  29. package/dist/components/slider.css +66 -0
  30. package/dist/components/snackbar.css +15 -0
  31. package/dist/components/switch.css +18 -0
  32. package/dist/components/textarea.css +6 -0
  33. package/dist/components/time-input.css +27 -0
  34. package/dist/components/toast.css +45 -0
  35. package/dist/components/toggle.css +27 -0
  36. package/dist/components/tooltip.css +63 -0
  37. package/dist/components/tree-select.css +21 -0
  38. package/dist/esm/components/alert.js +51 -0
  39. package/dist/esm/components/appbar.js +69 -0
  40. package/dist/esm/components/autocomplete.js +21 -0
  41. package/dist/esm/components/avatar.js +15 -0
  42. package/dist/esm/components/badge.js +45 -0
  43. package/dist/esm/components/button.js +123 -0
  44. package/dist/esm/components/card.js +27 -0
  45. package/dist/esm/components/cascader.js +21 -0
  46. package/dist/esm/components/chat.js +30 -0
  47. package/dist/esm/components/checkbox.js +27 -0
  48. package/dist/esm/components/chip.js +75 -0
  49. package/dist/esm/components/circle-menu.js +24 -0
  50. package/dist/esm/components/collapse.js +31 -1
  51. package/dist/esm/components/datepicker.js +42 -0
  52. package/dist/esm/components/divider.js +15 -0
  53. package/dist/esm/components/file-upload.js +21 -0
  54. package/dist/esm/components/form.js +83 -0
  55. package/dist/esm/components/input.js +6 -0
  56. package/dist/esm/components/multi-select.js +21 -0
  57. package/dist/esm/components/navigation.js +50 -0
  58. package/dist/esm/components/otp-input.js +24 -0
  59. package/dist/esm/components/pin-input.js +24 -0
  60. package/dist/esm/components/progress.js +12 -0
  61. package/dist/esm/components/radio.js +12 -0
  62. package/dist/esm/components/rating.js +18 -0
  63. package/dist/esm/components/segment-control.js +15 -0
  64. package/dist/esm/components/select.js +6 -0
  65. package/dist/esm/components/slider.js +66 -0
  66. package/dist/esm/components/snackbar.js +15 -0
  67. package/dist/esm/components/switch.js +18 -0
  68. package/dist/esm/components/textarea.js +6 -0
  69. package/dist/esm/components/time-input.js +27 -0
  70. package/dist/esm/components/toast.js +45 -0
  71. package/dist/esm/components/toggle.js +27 -0
  72. package/dist/esm/components/tooltip.js +63 -0
  73. package/dist/esm/components/tree-select.js +21 -0
  74. package/dist/index.css +1202 -7
  75. package/dist/index.min.css +1 -1
  76. package/dist/themes/generated/sunshine.css +1 -1
  77. package/dist/types/tailwind-plugin.d.ts.map +1 -1
  78. package/package.json +8 -8
@@ -59,6 +59,9 @@
59
59
  .input-success { color: var(--color-success); }
60
60
  .input-warning { color: var(--color-warning); }
61
61
  .input-error { color: var(--color-error); }
62
+ .input-accent { color: var(--color-accent); }
63
+ .input-neutral { color: var(--color-neutral); }
64
+ .input-base { color: var(--color-base-content); }
62
65
 
63
66
  /* Size Variants */
64
67
  .input-xs {
@@ -117,6 +120,9 @@
117
120
  .input-filled.input-success:focus-visible { border-bottom-color: var(--color-success); }
118
121
  .input-filled.input-warning:focus-visible { border-bottom-color: var(--color-warning); }
119
122
  .input-filled.input-error:focus-visible { border-bottom-color: var(--color-error); }
123
+ .input-filled.input-accent:focus-visible { border-bottom-color: var(--color-accent); }
124
+ .input-filled.input-neutral:focus-visible { border-bottom-color: var(--color-neutral); }
125
+ .input-filled.input-base:focus-visible { border-bottom-color: var(--color-base-content); }
120
126
 
121
127
  /* Input with Icon */
122
128
  .input-group {
@@ -484,6 +484,27 @@
484
484
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
485
485
  }
486
486
 
487
+ .multi-select-accent .multi-select-trigger {
488
+ color: var(--color-accent);
489
+ }
490
+ .multi-select-accent .multi-select-trigger:focus-within {
491
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
492
+ }
493
+
494
+ .multi-select-neutral .multi-select-trigger {
495
+ color: var(--color-neutral);
496
+ }
497
+ .multi-select-neutral .multi-select-trigger:focus-within {
498
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
499
+ }
500
+
501
+ .multi-select-base .multi-select-trigger {
502
+ color: var(--color-base-content);
503
+ }
504
+ .multi-select-base .multi-select-trigger:focus-within {
505
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
506
+ }
507
+
487
508
  /* Ghost Variant */
488
509
  .multi-select-ghost .multi-select-trigger {
489
510
  background-color: transparent;
@@ -15,6 +15,56 @@
15
15
  color: var(--color-on-surface);
16
16
  }
17
17
 
18
+ .navbar-primary {
19
+ background-color: var(--color-primary);
20
+ color: var(--color-primary-content);
21
+ }
22
+
23
+ .navbar-secondary {
24
+ background-color: var(--color-secondary);
25
+ color: var(--color-secondary-content);
26
+ }
27
+
28
+ .navbar-tertiary {
29
+ background-color: var(--color-tertiary);
30
+ color: var(--color-tertiary-content);
31
+ }
32
+
33
+ .navbar-accent {
34
+ background-color: var(--color-accent);
35
+ color: var(--color-accent-content);
36
+ }
37
+
38
+ .navbar-neutral {
39
+ background-color: var(--color-neutral);
40
+ color: var(--color-neutral-content);
41
+ }
42
+
43
+ .navbar-base {
44
+ background-color: var(--color-base-100);
45
+ color: var(--color-base-content);
46
+ }
47
+
48
+ .navbar-info {
49
+ background-color: var(--color-info);
50
+ color: var(--color-info-content);
51
+ }
52
+
53
+ .navbar-success {
54
+ background-color: var(--color-success);
55
+ color: var(--color-success-content);
56
+ }
57
+
58
+ .navbar-warning {
59
+ background-color: var(--color-warning);
60
+ color: var(--color-warning-content);
61
+ }
62
+
63
+ .navbar-error {
64
+ background-color: var(--color-error);
65
+ color: var(--color-error-content);
66
+ }
67
+
18
68
  .navbar-start {
19
69
  display: flex;
20
70
  align-items: center;
@@ -177,6 +177,30 @@
177
177
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
178
178
  }
179
179
 
180
+ .otp-input-accent .otp-input-field {
181
+ color: var(--color-accent);
182
+ }
183
+
184
+ .otp-input-accent .otp-input-field:focus {
185
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
186
+ }
187
+
188
+ .otp-input-neutral .otp-input-field {
189
+ color: var(--color-neutral);
190
+ }
191
+
192
+ .otp-input-neutral .otp-input-field:focus {
193
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
194
+ }
195
+
196
+ .otp-input-base .otp-input-field {
197
+ color: var(--color-base-content);
198
+ }
199
+
200
+ .otp-input-base .otp-input-field:focus {
201
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
202
+ }
203
+
180
204
  /* Ghost Variant */
181
205
  .otp-input-ghost .otp-input-field {
182
206
  background-color: transparent;
@@ -167,6 +167,30 @@
167
167
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
168
168
  }
169
169
 
170
+ .pin-input-accent .pin-input-field {
171
+ color: var(--color-accent);
172
+ }
173
+
174
+ .pin-input-accent .pin-input-field:focus {
175
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
176
+ }
177
+
178
+ .pin-input-neutral .pin-input-field {
179
+ color: var(--color-neutral);
180
+ }
181
+
182
+ .pin-input-neutral .pin-input-field:focus {
183
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
184
+ }
185
+
186
+ .pin-input-base .pin-input-field {
187
+ color: var(--color-base-content);
188
+ }
189
+
190
+ .pin-input-base .pin-input-field:focus {
191
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
192
+ }
193
+
170
194
  @keyframes pin-shake {
171
195
  0%, 100% { transform: translateX(0); }
172
196
  20%, 60% { transform: translateX(-4px); }
@@ -54,6 +54,18 @@
54
54
  background-color: var(--color-error);
55
55
  }
56
56
 
57
+ .progress-accent .progress-bar {
58
+ background-color: var(--color-accent);
59
+ }
60
+
61
+ .progress-neutral .progress-bar {
62
+ background-color: var(--color-neutral);
63
+ }
64
+
65
+ .progress-base .progress-bar {
66
+ background-color: var(--color-base-content);
67
+ }
68
+
57
69
  /* Size Variants */
58
70
  .progress-xs {
59
71
  height: 0.25rem;
@@ -129,6 +129,18 @@
129
129
  --radio-color: var(--color-info);
130
130
  }
131
131
 
132
+ .radio-accent {
133
+ --radio-color: var(--color-accent);
134
+ }
135
+
136
+ .radio-neutral {
137
+ --radio-color: var(--color-neutral);
138
+ }
139
+
140
+ .radio-base {
141
+ --radio-color: var(--color-base-content);
142
+ }
143
+
132
144
  /* Ghost Variant — borderless unchecked state */
133
145
  .radio-ghost {
134
146
  --radio-border-color: transparent;
@@ -128,6 +128,18 @@
128
128
  color: var(--color-warning);
129
129
  }
130
130
 
131
+ .rating-accent .rating-item.filled {
132
+ color: var(--color-accent);
133
+ }
134
+
135
+ .rating-neutral .rating-item.filled {
136
+ color: var(--color-neutral);
137
+ }
138
+
139
+ .rating-base .rating-item.filled {
140
+ color: var(--color-base-content);
141
+ }
142
+
131
143
  /* Read Only */
132
144
  .rating-readonly .rating-item {
133
145
  cursor: default;
@@ -177,6 +189,9 @@
177
189
  .rating-info:not(.rating-readonly):hover .rating-item { color: var(--color-info); }
178
190
  .rating-success:not(.rating-readonly):hover .rating-item { color: var(--color-success); }
179
191
  .rating-error:not(.rating-readonly):hover .rating-item { color: var(--color-error); }
192
+ .rating-accent:not(.rating-readonly):hover .rating-item { color: var(--color-accent); }
193
+ .rating-neutral:not(.rating-readonly):hover .rating-item { color: var(--color-neutral); }
194
+ .rating-base:not(.rating-readonly):hover .rating-item { color: var(--color-base-content); }
180
195
 
181
196
  /* Focus Visible — use warning (the default fill color) for the base ring;
182
197
  per-variant overrides below match the active fill color for each variant. */
@@ -193,6 +208,9 @@
193
208
  .rating-success .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 20%, transparent); }
194
209
  .rating-error .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 20%, transparent); }
195
210
  .rating-warning .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 20%, transparent); }
211
+ .rating-accent .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 20%, transparent); }
212
+ .rating-neutral .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 20%, transparent); }
213
+ .rating-base .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 20%, transparent); }
196
214
 
197
215
  /* Rating Display (static) */
198
216
  .rating-display {
@@ -133,6 +133,21 @@
133
133
  color: var(--color-on-error-container);
134
134
  }
135
135
 
136
+ .segment-control-accent .segment-item-active {
137
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
138
+ color: var(--color-on-surface);
139
+ }
140
+
141
+ .segment-control-neutral .segment-item-active {
142
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
143
+ color: var(--color-on-surface);
144
+ }
145
+
146
+ .segment-control-base .segment-item-active {
147
+ background-color: var(--color-base-200);
148
+ color: var(--color-base-content);
149
+ }
150
+
136
151
  /* Full Width */
137
152
  .segment-control-full {
138
153
  display: flex;
@@ -68,6 +68,9 @@
68
68
  .select-filled.select-success:focus-visible { border-bottom-color: var(--color-success); }
69
69
  .select-filled.select-warning:focus-visible { border-bottom-color: var(--color-warning); }
70
70
  .select-filled.select-error:focus-visible { border-bottom-color: var(--color-error); }
71
+ .select-filled.select-accent:focus-visible { border-bottom-color: var(--color-accent); }
72
+ .select-filled.select-neutral:focus-visible { border-bottom-color: var(--color-neutral); }
73
+ .select-filled.select-base:focus-visible { border-bottom-color: var(--color-base-content); }
71
74
 
72
75
  /* Outlined Variant (default is outlined) */
73
76
  .select-outlined {
@@ -87,6 +90,9 @@
87
90
  .select-success { color: var(--color-success); }
88
91
  .select-warning { color: var(--color-warning); }
89
92
  .select-error { color: var(--color-error); }
93
+ .select-accent { color: var(--color-accent); }
94
+ .select-neutral { color: var(--color-neutral); }
95
+ .select-base { color: var(--color-base-content); }
90
96
 
91
97
  /* Size Variants */
92
98
  .select-xs {
@@ -330,6 +330,69 @@
330
330
  border-top-color: var(--color-error);
331
331
  }
332
332
 
333
+ .slider-accent .slider-track-filled,
334
+ .slider-accent .slider-thumb {
335
+ background-color: var(--color-accent);
336
+ }
337
+
338
+ .slider-accent .slider-thumb:hover,
339
+ .slider-accent .slider-thumb:focus-visible {
340
+ box-shadow: 0 0 0 8px color-mix(in oklch, var(--color-accent) 15%, var(--color-surface)), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
341
+ }
342
+
343
+ .slider-accent .slider-mark-active { background-color: var(--color-accent-content); }
344
+
345
+ .slider-accent .slider-thumb-label {
346
+ background-color: var(--color-accent);
347
+ color: var(--color-accent-content);
348
+ }
349
+
350
+ .slider-accent .slider-thumb-label::after {
351
+ border-top-color: var(--color-accent);
352
+ }
353
+
354
+ .slider-neutral .slider-track-filled,
355
+ .slider-neutral .slider-thumb {
356
+ background-color: var(--color-neutral);
357
+ }
358
+
359
+ .slider-neutral .slider-thumb:hover,
360
+ .slider-neutral .slider-thumb:focus-visible {
361
+ box-shadow: 0 0 0 8px color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface)), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
362
+ }
363
+
364
+ .slider-neutral .slider-mark-active { background-color: var(--color-neutral-content); }
365
+
366
+ .slider-neutral .slider-thumb-label {
367
+ background-color: var(--color-neutral);
368
+ color: var(--color-neutral-content);
369
+ }
370
+
371
+ .slider-neutral .slider-thumb-label::after {
372
+ border-top-color: var(--color-neutral);
373
+ }
374
+
375
+ .slider-base .slider-track-filled,
376
+ .slider-base .slider-thumb {
377
+ background-color: var(--color-base-100);
378
+ }
379
+
380
+ .slider-base .slider-thumb:hover,
381
+ .slider-base .slider-thumb:focus-visible {
382
+ box-shadow: 0 0 0 8px var(--color-base-200), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
383
+ }
384
+
385
+ .slider-base .slider-mark-active { background-color: var(--color-base-content); }
386
+
387
+ .slider-base .slider-thumb-label {
388
+ background-color: var(--color-base-100);
389
+ color: var(--color-base-content);
390
+ }
391
+
392
+ .slider-base .slider-thumb-label::after {
393
+ border-top-color: var(--color-base-100);
394
+ }
395
+
333
396
  /* Disabled State */
334
397
  .slider-disabled {
335
398
  opacity: 0.6;
@@ -397,6 +460,9 @@
397
460
  .slider-success.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-success); }
398
461
  .slider-warning.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-warning); }
399
462
  .slider-error.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-error); }
463
+ .slider-accent.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-accent); }
464
+ .slider-neutral.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-neutral); }
465
+ .slider-base.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-base-100); }
400
466
 
401
467
  .slider-vertical .slider-marks {
402
468
  flex-direction: column;
@@ -245,6 +245,21 @@
245
245
  color: var(--color-on-tertiary-container);
246
246
  }
247
247
 
248
+ .snackbar-accent {
249
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
250
+ color: var(--color-on-surface);
251
+ }
252
+
253
+ .snackbar-neutral {
254
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
255
+ color: var(--color-on-surface);
256
+ }
257
+
258
+ .snackbar-base {
259
+ background-color: var(--color-base-200);
260
+ color: var(--color-base-content);
261
+ }
262
+
248
263
  /* Dark Snackbar (default MD3 style) */
249
264
  .snackbar-dark {
250
265
  background-color: var(--color-on-surface);
@@ -203,6 +203,24 @@
203
203
  --switch-container-color: var(--color-info-container);
204
204
  }
205
205
 
206
+ .switch-accent {
207
+ --switch-color: var(--color-accent);
208
+ --switch-content-color: var(--color-accent-content);
209
+ --switch-container-color: color-mix(in oklch, var(--color-accent) 20%, var(--color-surface));
210
+ }
211
+
212
+ .switch-neutral {
213
+ --switch-color: var(--color-neutral);
214
+ --switch-content-color: var(--color-neutral-content);
215
+ --switch-container-color: color-mix(in oklch, var(--color-neutral) 20%, var(--color-surface));
216
+ }
217
+
218
+ .switch-base {
219
+ --switch-color: var(--color-base-100);
220
+ --switch-content-color: var(--color-base-content);
221
+ --switch-container-color: color-mix(in oklch, var(--color-base-100) 20%, var(--color-surface));
222
+ }
223
+
206
224
  /* Ghost Variant — borderless track */
207
225
  .switch-ghost {
208
226
  --switch-border-color: transparent;
@@ -162,6 +162,9 @@
162
162
  .textarea-filled.textarea-success:focus-visible { border-bottom-color: var(--color-success); }
163
163
  .textarea-filled.textarea-warning:focus-visible { border-bottom-color: var(--color-warning); }
164
164
  .textarea-filled.textarea-error:focus-visible { border-bottom-color: var(--color-error); }
165
+ .textarea-filled.textarea-accent:focus-visible { border-bottom-color: var(--color-accent); }
166
+ .textarea-filled.textarea-neutral:focus-visible { border-bottom-color: var(--color-neutral); }
167
+ .textarea-filled.textarea-base:focus-visible { border-bottom-color: var(--color-base-content); }
165
168
 
166
169
  /* Outlined Variant (default) */
167
170
  .textarea-outlined {
@@ -205,6 +208,9 @@
205
208
  .textarea-success { color: var(--color-success); }
206
209
  .textarea-warning { color: var(--color-warning); }
207
210
  .textarea-error { color: var(--color-error); }
211
+ .textarea-accent { color: var(--color-accent); }
212
+ .textarea-neutral { color: var(--color-neutral); }
213
+ .textarea-base { color: var(--color-base-content); }
208
214
 
209
215
  /* ============================================
210
216
  * SIZE VARIANTS
@@ -221,6 +221,33 @@
221
221
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
222
222
  }
223
223
 
224
+ .time-input-accent .time-input-field,
225
+ .time-input-accent .time-input-segments {
226
+ color: var(--color-accent);
227
+ }
228
+
229
+ .time-input-accent .time-input-field:focus {
230
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
231
+ }
232
+
233
+ .time-input-neutral .time-input-field,
234
+ .time-input-neutral .time-input-segments {
235
+ color: var(--color-neutral);
236
+ }
237
+
238
+ .time-input-neutral .time-input-field:focus {
239
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
240
+ }
241
+
242
+ .time-input-base .time-input-field,
243
+ .time-input-base .time-input-segments {
244
+ color: var(--color-base-content);
245
+ }
246
+
247
+ .time-input-base .time-input-field:focus {
248
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
249
+ }
250
+
224
251
  /* Ghost Variant */
225
252
  .time-input-ghost .time-input-field,
226
253
  .time-input-ghost .time-input-segments {
@@ -216,6 +216,30 @@
216
216
  color: var(--color-tertiary);
217
217
  }
218
218
 
219
+ .toast-accent {
220
+ border-color: var(--color-accent);
221
+ }
222
+
223
+ .toast-accent .toast-icon {
224
+ color: var(--color-accent);
225
+ }
226
+
227
+ .toast-neutral {
228
+ border-color: var(--color-neutral);
229
+ }
230
+
231
+ .toast-neutral .toast-icon {
232
+ color: var(--color-neutral);
233
+ }
234
+
235
+ .toast-base {
236
+ border-color: var(--color-base-content);
237
+ }
238
+
239
+ .toast-base .toast-icon {
240
+ color: var(--color-base-content);
241
+ }
242
+
219
243
  /* Filled Variants */
220
244
  .toast-filled.toast-info {
221
245
  background-color: var(--color-info-container);
@@ -259,6 +283,24 @@
259
283
  color: var(--color-on-tertiary-container);
260
284
  }
261
285
 
286
+ .toast-filled.toast-accent {
287
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
288
+ border-color: transparent;
289
+ color: var(--color-on-surface);
290
+ }
291
+
292
+ .toast-filled.toast-neutral {
293
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
294
+ border-color: transparent;
295
+ color: var(--color-on-surface);
296
+ }
297
+
298
+ .toast-filled.toast-base {
299
+ background-color: var(--color-base-200);
300
+ border-color: transparent;
301
+ color: var(--color-base-content);
302
+ }
303
+
262
304
  /* Filled variant sub-element color inheritance fix.
263
305
  .toast-title and .toast-message have explicit color rules that would otherwise
264
306
  override the filled variant's inherited on-container color. */
@@ -280,6 +322,9 @@
280
322
  .toast-ghost.toast-success { color: var(--color-success); }
281
323
  .toast-ghost.toast-warning { color: var(--color-warning); }
282
324
  .toast-ghost.toast-error { color: var(--color-error); }
325
+ .toast-ghost.toast-accent { color: var(--color-accent); }
326
+ .toast-ghost.toast-neutral { color: var(--color-neutral); }
327
+ .toast-ghost.toast-base { color: var(--color-base-content); }
283
328
 
284
329
  .toast-ghost .toast-title,
285
330
  .toast-ghost .toast-message {
@@ -98,6 +98,30 @@
98
98
  border-color: var(--color-error);
99
99
  }
100
100
 
101
+ /* Accent variant */
102
+ .toggle-btn-accent.toggle-btn-active,
103
+ .toggle-btn-accent.active {
104
+ color: var(--color-on-surface);
105
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
106
+ border-color: var(--color-accent);
107
+ }
108
+
109
+ /* Neutral variant */
110
+ .toggle-btn-neutral.toggle-btn-active,
111
+ .toggle-btn-neutral.active {
112
+ color: var(--color-on-surface);
113
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
114
+ border-color: var(--color-neutral);
115
+ }
116
+
117
+ /* Base variant */
118
+ .toggle-btn-base.toggle-btn-active,
119
+ .toggle-btn-base.active {
120
+ color: var(--color-base-content);
121
+ background-color: var(--color-base-200);
122
+ border-color: var(--color-base-content);
123
+ }
124
+
101
125
  /* Ghost Variant */
102
126
  .toggle-btn-ghost {
103
127
  background-color: transparent;
@@ -115,6 +139,9 @@
115
139
  .toggle-btn-ghost.toggle-btn-success { color: var(--color-success); }
116
140
  .toggle-btn-ghost.toggle-btn-warning { color: var(--color-warning); }
117
141
  .toggle-btn-ghost.toggle-btn-error { color: var(--color-error); }
142
+ .toggle-btn-ghost.toggle-btn-accent { color: var(--color-accent); }
143
+ .toggle-btn-ghost.toggle-btn-neutral { color: var(--color-neutral); }
144
+ .toggle-btn-ghost.toggle-btn-base { color: var(--color-base-content); }
118
145
 
119
146
  /* Focus state */
120
147
  .toggle-btn:focus-visible {
@@ -318,6 +318,69 @@
318
318
  border-right-color: var(--color-warning);
319
319
  }
320
320
 
321
+ .tooltip.tooltip-accent .tooltip-content {
322
+ background-color: var(--color-accent);
323
+ color: var(--color-accent-content);
324
+ }
325
+
326
+ .tooltip.tooltip-accent .tooltip-content::before {
327
+ border-top-color: var(--color-accent);
328
+ }
329
+
330
+ .tooltip.tooltip-accent.tooltip-bottom .tooltip-content::before {
331
+ border-bottom-color: var(--color-accent);
332
+ }
333
+
334
+ .tooltip.tooltip-accent.tooltip-left .tooltip-content::before {
335
+ border-left-color: var(--color-accent);
336
+ }
337
+
338
+ .tooltip.tooltip-accent.tooltip-right .tooltip-content::before {
339
+ border-right-color: var(--color-accent);
340
+ }
341
+
342
+ .tooltip.tooltip-neutral .tooltip-content {
343
+ background-color: var(--color-neutral);
344
+ color: var(--color-neutral-content);
345
+ }
346
+
347
+ .tooltip.tooltip-neutral .tooltip-content::before {
348
+ border-top-color: var(--color-neutral);
349
+ }
350
+
351
+ .tooltip.tooltip-neutral.tooltip-bottom .tooltip-content::before {
352
+ border-bottom-color: var(--color-neutral);
353
+ }
354
+
355
+ .tooltip.tooltip-neutral.tooltip-left .tooltip-content::before {
356
+ border-left-color: var(--color-neutral);
357
+ }
358
+
359
+ .tooltip.tooltip-neutral.tooltip-right .tooltip-content::before {
360
+ border-right-color: var(--color-neutral);
361
+ }
362
+
363
+ .tooltip.tooltip-base .tooltip-content {
364
+ background-color: var(--color-base-100);
365
+ color: var(--color-base-content);
366
+ }
367
+
368
+ .tooltip.tooltip-base .tooltip-content::before {
369
+ border-top-color: var(--color-base-100);
370
+ }
371
+
372
+ .tooltip.tooltip-base.tooltip-bottom .tooltip-content::before {
373
+ border-bottom-color: var(--color-base-100);
374
+ }
375
+
376
+ .tooltip.tooltip-base.tooltip-left .tooltip-content::before {
377
+ border-left-color: var(--color-base-100);
378
+ }
379
+
380
+ .tooltip.tooltip-base.tooltip-right .tooltip-content::before {
381
+ border-right-color: var(--color-base-100);
382
+ }
383
+
321
384
  /* Multi-line Tooltip */
322
385
  .tooltip-multiline .tooltip-content {
323
386
  white-space: normal;
@@ -429,6 +429,27 @@
429
429
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
430
430
  }
431
431
 
432
+ .tree-select-accent .tree-select-trigger {
433
+ color: var(--color-accent);
434
+ }
435
+ .tree-select-accent .tree-select-trigger:focus {
436
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
437
+ }
438
+
439
+ .tree-select-neutral .tree-select-trigger {
440
+ color: var(--color-neutral);
441
+ }
442
+ .tree-select-neutral .tree-select-trigger:focus {
443
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
444
+ }
445
+
446
+ .tree-select-base .tree-select-trigger {
447
+ color: var(--color-base-content);
448
+ }
449
+ .tree-select-base .tree-select-trigger:focus {
450
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
451
+ }
452
+
432
453
  /* Ghost Variant */
433
454
  .tree-select-ghost .tree-select-trigger {
434
455
  background-color: transparent;