@duskmoon-dev/core 1.12.3 → 1.13.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 (65) hide show
  1. package/dist/cjs/tailwind-plugin.cjs +8 -0
  2. package/dist/components/alert.css +64 -2
  3. package/dist/components/appbar.css +119 -21
  4. package/dist/components/autocomplete.css +63 -3
  5. package/dist/components/avatar.css +22 -2
  6. package/dist/components/button.css +101 -49
  7. package/dist/components/card.css +38 -2
  8. package/dist/components/cascader.css +59 -9
  9. package/dist/components/checkbox.css +15 -5
  10. package/dist/components/chip.css +122 -2
  11. package/dist/components/collapse.css +32 -0
  12. package/dist/components/datepicker.css +79 -6
  13. package/dist/components/file-upload.css +68 -8
  14. package/dist/components/form.css +2 -1
  15. package/dist/components/index.css +1583 -409
  16. package/dist/components/input.css +21 -67
  17. package/dist/components/multi-select.css +59 -9
  18. package/dist/components/otp-input.css +48 -16
  19. package/dist/components/pin-input.css +50 -13
  20. package/dist/components/radio.css +12 -2
  21. package/dist/components/rating.css +35 -3
  22. package/dist/components/segment-control.css +23 -2
  23. package/dist/components/select.css +21 -37
  24. package/dist/components/slider.css +130 -6
  25. package/dist/components/switch.css +27 -4
  26. package/dist/components/textarea.css +21 -96
  27. package/dist/components/time-input.css +61 -12
  28. package/dist/components/toast.css +72 -3
  29. package/dist/components/toggle.css +63 -6
  30. package/dist/components/tooltip.css +84 -0
  31. package/dist/components/tree-select.css +60 -11
  32. package/dist/esm/components/alert.js +64 -2
  33. package/dist/esm/components/appbar.js +119 -21
  34. package/dist/esm/components/autocomplete.js +63 -3
  35. package/dist/esm/components/avatar.js +22 -2
  36. package/dist/esm/components/button.js +101 -49
  37. package/dist/esm/components/card.js +38 -2
  38. package/dist/esm/components/cascader.js +59 -9
  39. package/dist/esm/components/checkbox.js +15 -5
  40. package/dist/esm/components/chip.js +122 -2
  41. package/dist/esm/components/collapse.js +32 -0
  42. package/dist/esm/components/datepicker.js +79 -6
  43. package/dist/esm/components/file-upload.js +68 -8
  44. package/dist/esm/components/form.js +2 -1
  45. package/dist/esm/components/input.js +21 -67
  46. package/dist/esm/components/multi-select.js +59 -9
  47. package/dist/esm/components/otp-input.js +48 -16
  48. package/dist/esm/components/pin-input.js +50 -13
  49. package/dist/esm/components/radio.js +12 -2
  50. package/dist/esm/components/rating.js +35 -3
  51. package/dist/esm/components/segment-control.js +23 -2
  52. package/dist/esm/components/select.js +21 -37
  53. package/dist/esm/components/slider.js +130 -6
  54. package/dist/esm/components/switch.js +27 -4
  55. package/dist/esm/components/textarea.js +21 -96
  56. package/dist/esm/components/time-input.js +61 -12
  57. package/dist/esm/components/toast.js +72 -3
  58. package/dist/esm/components/toggle.js +63 -6
  59. package/dist/esm/components/tooltip.js +84 -0
  60. package/dist/esm/components/tree-select.js +60 -11
  61. package/dist/esm/tailwind-plugin.js +8 -0
  62. package/dist/index.css +1583 -409
  63. package/dist/index.min.css +1 -1
  64. package/dist/types/tailwind-plugin.d.ts.map +1 -1
  65. package/package.json +1 -1
@@ -15,9 +15,9 @@
15
15
  font-size: 0.875rem;
16
16
  font-weight: 500;
17
17
  line-height: 1.25rem;
18
- color: var(--color-on-surface-variant);
18
+ color: var(--color-on-surface);
19
19
  background-color: transparent;
20
- border: 1px solid var(--color-outline);
20
+ border: 1px solid currentColor;
21
21
  border-radius: 0.5rem;
22
22
  cursor: pointer;
23
23
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
@@ -27,7 +27,6 @@
27
27
  /* Hover state */
28
28
  .toggle-btn:hover:not(:disabled) {
29
29
  background-color: color-mix(in oklch, var(--color-surface-variant) 50%, transparent);
30
- border-color: var(--color-outline-variant);
31
30
  }
32
31
 
33
32
  /* Active/Selected state */
@@ -43,6 +42,14 @@
43
42
  background-color: color-mix(in oklch, var(--color-primary-container) 90%, transparent);
44
43
  }
45
44
 
45
+ /* Primary variant */
46
+ .toggle-btn-primary.toggle-btn-active,
47
+ .toggle-btn-primary.active {
48
+ color: var(--color-on-primary-container);
49
+ background-color: var(--color-primary-container);
50
+ border-color: var(--color-primary);
51
+ }
52
+
46
53
  /* Secondary variant */
47
54
  .toggle-btn-secondary.toggle-btn-active,
48
55
  .toggle-btn-secondary.active {
@@ -59,10 +66,60 @@
59
66
  border-color: var(--color-tertiary);
60
67
  }
61
68
 
69
+ /* Info variant */
70
+ .toggle-btn-info.toggle-btn-active,
71
+ .toggle-btn-info.active {
72
+ color: var(--color-on-info-container);
73
+ background-color: var(--color-info-container);
74
+ border-color: var(--color-info);
75
+ }
76
+
77
+ /* Success variant */
78
+ .toggle-btn-success.toggle-btn-active,
79
+ .toggle-btn-success.active {
80
+ color: var(--color-on-success-container);
81
+ background-color: var(--color-success-container);
82
+ border-color: var(--color-success);
83
+ }
84
+
85
+ /* Warning variant */
86
+ .toggle-btn-warning.toggle-btn-active,
87
+ .toggle-btn-warning.active {
88
+ color: var(--color-on-warning-container);
89
+ background-color: var(--color-warning-container);
90
+ border-color: var(--color-warning);
91
+ }
92
+
93
+ /* Error variant */
94
+ .toggle-btn-error.toggle-btn-active,
95
+ .toggle-btn-error.active {
96
+ color: var(--color-on-error-container);
97
+ background-color: var(--color-error-container);
98
+ border-color: var(--color-error);
99
+ }
100
+
101
+ /* Ghost Variant */
102
+ .toggle-btn-ghost {
103
+ background-color: transparent;
104
+ border-color: transparent;
105
+ }
106
+ .toggle-btn-ghost:hover:not(:disabled) {
107
+ background-color: var(--color-surface-container);
108
+ border-color: transparent;
109
+ }
110
+
111
+ .toggle-btn-ghost.toggle-btn-primary { color: var(--color-primary); }
112
+ .toggle-btn-ghost.toggle-btn-secondary { color: var(--color-secondary); }
113
+ .toggle-btn-ghost.toggle-btn-tertiary { color: var(--color-tertiary); }
114
+ .toggle-btn-ghost.toggle-btn-info { color: var(--color-info); }
115
+ .toggle-btn-ghost.toggle-btn-success { color: var(--color-success); }
116
+ .toggle-btn-ghost.toggle-btn-warning { color: var(--color-warning); }
117
+ .toggle-btn-ghost.toggle-btn-error { color: var(--color-error); }
118
+
62
119
  /* Focus state */
63
120
  .toggle-btn:focus-visible {
64
- outline: 2px solid var(--color-primary);
65
- outline-offset: 2px;
121
+ outline: none;
122
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
66
123
  }
67
124
 
68
125
  /* Disabled state */
@@ -199,7 +256,7 @@
199
256
  .toggle-filled.toggle-btn-active,
200
257
  .toggle-filled.active {
201
258
  background-color: var(--color-primary);
202
- color: var(--color-on-primary);
259
+ color: var(--color-primary-content);
203
260
  }
204
261
 
205
262
  /* With badge/indicator */
@@ -234,6 +234,90 @@
234
234
  border-right-color: var(--color-error);
235
235
  }
236
236
 
237
+ .tooltip.tooltip-tertiary .tooltip-content {
238
+ background-color: var(--color-tertiary);
239
+ color: var(--color-tertiary-content);
240
+ }
241
+
242
+ .tooltip.tooltip-tertiary .tooltip-content::before {
243
+ border-top-color: var(--color-tertiary);
244
+ }
245
+
246
+ .tooltip.tooltip-tertiary.tooltip-bottom .tooltip-content::before {
247
+ border-bottom-color: var(--color-tertiary);
248
+ }
249
+
250
+ .tooltip.tooltip-tertiary.tooltip-left .tooltip-content::before {
251
+ border-left-color: var(--color-tertiary);
252
+ }
253
+
254
+ .tooltip.tooltip-tertiary.tooltip-right .tooltip-content::before {
255
+ border-right-color: var(--color-tertiary);
256
+ }
257
+
258
+ .tooltip.tooltip-info .tooltip-content {
259
+ background-color: var(--color-info);
260
+ color: var(--color-info-content);
261
+ }
262
+
263
+ .tooltip.tooltip-info .tooltip-content::before {
264
+ border-top-color: var(--color-info);
265
+ }
266
+
267
+ .tooltip.tooltip-info.tooltip-bottom .tooltip-content::before {
268
+ border-bottom-color: var(--color-info);
269
+ }
270
+
271
+ .tooltip.tooltip-info.tooltip-left .tooltip-content::before {
272
+ border-left-color: var(--color-info);
273
+ }
274
+
275
+ .tooltip.tooltip-info.tooltip-right .tooltip-content::before {
276
+ border-right-color: var(--color-info);
277
+ }
278
+
279
+ .tooltip.tooltip-success .tooltip-content {
280
+ background-color: var(--color-success);
281
+ color: var(--color-success-content);
282
+ }
283
+
284
+ .tooltip.tooltip-success .tooltip-content::before {
285
+ border-top-color: var(--color-success);
286
+ }
287
+
288
+ .tooltip.tooltip-success.tooltip-bottom .tooltip-content::before {
289
+ border-bottom-color: var(--color-success);
290
+ }
291
+
292
+ .tooltip.tooltip-success.tooltip-left .tooltip-content::before {
293
+ border-left-color: var(--color-success);
294
+ }
295
+
296
+ .tooltip.tooltip-success.tooltip-right .tooltip-content::before {
297
+ border-right-color: var(--color-success);
298
+ }
299
+
300
+ .tooltip.tooltip-warning .tooltip-content {
301
+ background-color: var(--color-warning);
302
+ color: var(--color-warning-content);
303
+ }
304
+
305
+ .tooltip.tooltip-warning .tooltip-content::before {
306
+ border-top-color: var(--color-warning);
307
+ }
308
+
309
+ .tooltip.tooltip-warning.tooltip-bottom .tooltip-content::before {
310
+ border-bottom-color: var(--color-warning);
311
+ }
312
+
313
+ .tooltip.tooltip-warning.tooltip-left .tooltip-content::before {
314
+ border-left-color: var(--color-warning);
315
+ }
316
+
317
+ .tooltip.tooltip-warning.tooltip-right .tooltip-content::before {
318
+ border-right-color: var(--color-warning);
319
+ }
320
+
237
321
  /* Multi-line Tooltip */
238
322
  .tooltip-multiline .tooltip-content {
239
323
  white-space: normal;
@@ -23,20 +23,19 @@
23
23
  line-height: 1.5rem;
24
24
  color: var(--color-on-surface);
25
25
  background-color: var(--color-surface);
26
- border: 1px solid var(--color-outline);
26
+ border: 1px solid currentColor;
27
27
  border-radius: 0.5rem;
28
28
  cursor: pointer;
29
29
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
30
30
  }
31
31
 
32
32
  .tree-select-trigger:hover:not(:disabled) {
33
- border-color: var(--color-on-surface-variant);
33
+ background-color: var(--color-surface-container);
34
34
  }
35
35
 
36
36
  .tree-select-trigger:focus {
37
37
  outline: none;
38
- border-color: var(--color-primary);
39
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
38
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
40
39
  }
41
40
 
42
41
  .tree-select-trigger:disabled,
@@ -53,8 +52,7 @@
53
52
 
54
53
  div.tree-select-trigger:focus-visible {
55
54
  outline: none;
56
- border-color: var(--color-primary);
57
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
55
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
58
56
  }
59
57
 
60
58
  /* Value Display */
@@ -371,7 +369,7 @@
371
369
  }
372
370
 
373
371
  .tree-select-filled .tree-select-trigger:focus {
374
- border-bottom-color: var(--color-primary);
372
+ border-bottom-color: currentColor;
375
373
  box-shadow: none;
376
374
  }
377
375
 
@@ -381,16 +379,67 @@
381
379
  gap: 0.25rem;
382
380
  }
383
381
 
384
- /* Error State */
385
- .tree-select-error .tree-select-trigger {
386
- border-color: var(--color-error);
382
+ /* Color Variants */
383
+ .tree-select-primary .tree-select-trigger {
384
+ color: var(--color-primary);
385
+ }
386
+ .tree-select-primary .tree-select-trigger:focus {
387
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
388
+ }
389
+
390
+ .tree-select-secondary .tree-select-trigger {
391
+ color: var(--color-secondary);
392
+ }
393
+ .tree-select-secondary .tree-select-trigger:focus {
394
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
387
395
  }
388
396
 
397
+ .tree-select-tertiary .tree-select-trigger {
398
+ color: var(--color-tertiary);
399
+ }
400
+ .tree-select-tertiary .tree-select-trigger:focus {
401
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
402
+ }
403
+
404
+ .tree-select-info .tree-select-trigger {
405
+ color: var(--color-info);
406
+ }
407
+ .tree-select-info .tree-select-trigger:focus {
408
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
409
+ }
410
+
411
+ .tree-select-success .tree-select-trigger {
412
+ color: var(--color-success);
413
+ }
414
+ .tree-select-success .tree-select-trigger:focus {
415
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
416
+ }
417
+
418
+ .tree-select-warning .tree-select-trigger {
419
+ color: var(--color-warning);
420
+ }
421
+ .tree-select-warning .tree-select-trigger:focus {
422
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
423
+ }
424
+
425
+ .tree-select-error .tree-select-trigger {
426
+ color: var(--color-error);
427
+ }
389
428
  .tree-select-error .tree-select-trigger:focus {
390
- border-color: var(--color-error);
391
429
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
392
430
  }
393
431
 
432
+ /* Ghost Variant */
433
+ .tree-select-ghost .tree-select-trigger {
434
+ background-color: transparent;
435
+ border-color: transparent;
436
+ }
437
+ .tree-select-ghost .tree-select-trigger:focus {
438
+ background-color: var(--color-surface-container);
439
+ border-color: transparent;
440
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
441
+ }
442
+
394
443
  /* Disabled State */
395
444
  .tree-select-disabled .tree-select-trigger {
396
445
  cursor: not-allowed;
@@ -73,8 +73,8 @@ export const css = `/**
73
73
  }
74
74
 
75
75
  .alert-close:focus-visible {
76
- outline: 2px solid currentColor;
77
- outline-offset: 2px;
76
+ outline: none;
77
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
78
78
  }
79
79
 
80
80
  /* Type Variants */
@@ -102,6 +102,24 @@ export const css = `/**
102
102
  border-color: transparent;
103
103
  }
104
104
 
105
+ .alert-primary {
106
+ background-color: var(--color-primary-container);
107
+ color: var(--color-on-primary-container);
108
+ border-color: transparent;
109
+ }
110
+
111
+ .alert-secondary {
112
+ background-color: var(--color-secondary-container);
113
+ color: var(--color-on-secondary-container);
114
+ border-color: transparent;
115
+ }
116
+
117
+ .alert-tertiary {
118
+ background-color: var(--color-tertiary-container);
119
+ color: var(--color-on-tertiary-container);
120
+ border-color: transparent;
121
+ }
122
+
105
123
  /* Filled Variants */
106
124
  .alert-filled.alert-info {
107
125
  background-color: var(--color-info);
@@ -123,6 +141,21 @@ export const css = `/**
123
141
  color: var(--color-error-content);
124
142
  }
125
143
 
144
+ .alert-filled.alert-primary {
145
+ background-color: var(--color-primary);
146
+ color: var(--color-primary-content);
147
+ }
148
+
149
+ .alert-filled.alert-secondary {
150
+ background-color: var(--color-secondary);
151
+ color: var(--color-secondary-content);
152
+ }
153
+
154
+ .alert-filled.alert-tertiary {
155
+ background-color: var(--color-tertiary);
156
+ color: var(--color-tertiary-content);
157
+ }
158
+
126
159
  /* Outlined Variants */
127
160
  .alert-outlined {
128
161
  background-color: transparent;
@@ -148,6 +181,35 @@ export const css = `/**
148
181
  color: var(--color-error);
149
182
  }
150
183
 
184
+ .alert-outlined.alert-primary {
185
+ border-color: var(--color-primary);
186
+ color: var(--color-primary);
187
+ }
188
+
189
+ .alert-outlined.alert-secondary {
190
+ border-color: var(--color-secondary);
191
+ color: var(--color-secondary);
192
+ }
193
+
194
+ .alert-outlined.alert-tertiary {
195
+ border-color: var(--color-tertiary);
196
+ color: var(--color-tertiary);
197
+ }
198
+
199
+ /* Ghost Variant */
200
+ .alert-ghost {
201
+ background-color: transparent;
202
+ border-color: transparent;
203
+ }
204
+
205
+ .alert-ghost.alert-primary { color: var(--color-primary); }
206
+ .alert-ghost.alert-secondary { color: var(--color-secondary); }
207
+ .alert-ghost.alert-tertiary { color: var(--color-tertiary); }
208
+ .alert-ghost.alert-info { color: var(--color-info); }
209
+ .alert-ghost.alert-success { color: var(--color-success); }
210
+ .alert-ghost.alert-warning { color: var(--color-warning); }
211
+ .alert-ghost.alert-error { color: var(--color-error); }
212
+
151
213
  /* Dismissible */
152
214
  .alert-dismissible {
153
215
  padding-right: 2.5rem;
@@ -103,8 +103,8 @@ export const css = `/**
103
103
  }
104
104
 
105
105
  .appbar-nav:focus-visible {
106
- outline: 2px solid var(--color-primary);
107
- outline-offset: 2px;
106
+ outline: none;
107
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
108
108
  }
109
109
 
110
110
  /* App Bar Title */
@@ -166,8 +166,8 @@ export const css = `/**
166
166
  }
167
167
 
168
168
  .appbar-action:focus-visible {
169
- outline: 2px solid var(--color-primary);
170
- outline-offset: 2px;
169
+ outline: none;
170
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
171
171
  }
172
172
 
173
173
  /* App Bar Logo/Brand */
@@ -282,8 +282,8 @@ export const css = `/**
282
282
  }
283
283
 
284
284
  .appbar-back:focus-visible {
285
- outline: 2px solid var(--color-primary);
286
- outline-offset: 2px;
285
+ outline: none;
286
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
287
287
  }
288
288
 
289
289
  /* Search Input (direct on element) */
@@ -314,64 +314,162 @@ export const css = `/**
314
314
  /* Color Variants */
315
315
  .appbar-primary {
316
316
  background-color: var(--color-primary);
317
- color: var(--color-on-primary);
317
+ color: var(--color-primary-content);
318
318
  }
319
319
 
320
320
  .appbar-primary .appbar-nav,
321
- .appbar-primary .appbar-action {
322
- color: var(--color-on-primary);
321
+ .appbar-primary .appbar-action,
322
+ .appbar-primary .appbar-back {
323
+ color: var(--color-primary-content);
323
324
  }
324
325
 
325
326
  .appbar-primary .appbar-nav:hover,
326
- .appbar-primary .appbar-action:hover {
327
+ .appbar-primary .appbar-action:hover,
328
+ .appbar-primary .appbar-back:hover {
327
329
  background-color: var(--color-primary-container);
328
330
  color: var(--color-on-primary-container);
329
331
  }
330
332
 
331
333
  .appbar-primary .appbar-subtitle {
332
- color: var(--color-on-primary);
334
+ color: var(--color-primary-content);
333
335
  opacity: 0.8;
334
336
  }
335
337
 
336
338
  .appbar-secondary {
337
339
  background-color: var(--color-secondary);
338
- color: var(--color-on-secondary);
340
+ color: var(--color-secondary-content);
339
341
  }
340
342
 
341
343
  .appbar-secondary .appbar-nav,
342
- .appbar-secondary .appbar-action {
343
- color: var(--color-on-secondary);
344
+ .appbar-secondary .appbar-action,
345
+ .appbar-secondary .appbar-back {
346
+ color: var(--color-secondary-content);
344
347
  }
345
348
 
346
349
  .appbar-secondary .appbar-nav:hover,
347
- .appbar-secondary .appbar-action:hover {
350
+ .appbar-secondary .appbar-action:hover,
351
+ .appbar-secondary .appbar-back:hover {
348
352
  background-color: var(--color-secondary-container);
349
353
  color: var(--color-on-secondary-container);
350
354
  }
351
355
 
352
356
  .appbar-secondary .appbar-subtitle {
353
- color: var(--color-on-secondary);
357
+ color: var(--color-secondary-content);
354
358
  opacity: 0.8;
355
359
  }
356
360
 
357
361
  .appbar-tertiary {
358
362
  background-color: var(--color-tertiary);
359
- color: var(--color-on-tertiary);
363
+ color: var(--color-tertiary-content);
360
364
  }
361
365
 
362
366
  .appbar-tertiary .appbar-nav,
363
- .appbar-tertiary .appbar-action {
364
- color: var(--color-on-tertiary);
367
+ .appbar-tertiary .appbar-action,
368
+ .appbar-tertiary .appbar-back {
369
+ color: var(--color-tertiary-content);
365
370
  }
366
371
 
367
372
  .appbar-tertiary .appbar-nav:hover,
368
- .appbar-tertiary .appbar-action:hover {
373
+ .appbar-tertiary .appbar-action:hover,
374
+ .appbar-tertiary .appbar-back:hover {
369
375
  background-color: var(--color-tertiary-container);
370
376
  color: var(--color-on-tertiary-container);
371
377
  }
372
378
 
373
379
  .appbar-tertiary .appbar-subtitle {
374
- color: var(--color-on-tertiary);
380
+ color: var(--color-tertiary-content);
381
+ opacity: 0.8;
382
+ }
383
+
384
+ .appbar-info {
385
+ background-color: var(--color-info);
386
+ color: var(--color-info-content);
387
+ }
388
+
389
+ .appbar-info .appbar-nav,
390
+ .appbar-info .appbar-action,
391
+ .appbar-info .appbar-back {
392
+ color: var(--color-info-content);
393
+ }
394
+
395
+ .appbar-info .appbar-nav:hover,
396
+ .appbar-info .appbar-action:hover,
397
+ .appbar-info .appbar-back:hover {
398
+ background-color: var(--color-info-container);
399
+ color: var(--color-on-info-container);
400
+ }
401
+
402
+ .appbar-info .appbar-subtitle {
403
+ color: var(--color-info-content);
404
+ opacity: 0.8;
405
+ }
406
+
407
+ .appbar-success {
408
+ background-color: var(--color-success);
409
+ color: var(--color-success-content);
410
+ }
411
+
412
+ .appbar-success .appbar-nav,
413
+ .appbar-success .appbar-action,
414
+ .appbar-success .appbar-back {
415
+ color: var(--color-success-content);
416
+ }
417
+
418
+ .appbar-success .appbar-nav:hover,
419
+ .appbar-success .appbar-action:hover,
420
+ .appbar-success .appbar-back:hover {
421
+ background-color: var(--color-success-container);
422
+ color: var(--color-on-success-container);
423
+ }
424
+
425
+ .appbar-success .appbar-subtitle {
426
+ color: var(--color-success-content);
427
+ opacity: 0.8;
428
+ }
429
+
430
+ .appbar-warning {
431
+ background-color: var(--color-warning);
432
+ color: var(--color-warning-content);
433
+ }
434
+
435
+ .appbar-warning .appbar-nav,
436
+ .appbar-warning .appbar-action,
437
+ .appbar-warning .appbar-back {
438
+ color: var(--color-warning-content);
439
+ }
440
+
441
+ .appbar-warning .appbar-nav:hover,
442
+ .appbar-warning .appbar-action:hover,
443
+ .appbar-warning .appbar-back:hover {
444
+ background-color: var(--color-warning-container);
445
+ color: var(--color-on-warning-container);
446
+ }
447
+
448
+ .appbar-warning .appbar-subtitle {
449
+ color: var(--color-warning-content);
450
+ opacity: 0.8;
451
+ }
452
+
453
+ .appbar-error {
454
+ background-color: var(--color-error);
455
+ color: var(--color-error-content);
456
+ }
457
+
458
+ .appbar-error .appbar-nav,
459
+ .appbar-error .appbar-action,
460
+ .appbar-error .appbar-back {
461
+ color: var(--color-error-content);
462
+ }
463
+
464
+ .appbar-error .appbar-nav:hover,
465
+ .appbar-error .appbar-action:hover,
466
+ .appbar-error .appbar-back:hover {
467
+ background-color: var(--color-error-container);
468
+ color: var(--color-on-error-container);
469
+ }
470
+
471
+ .appbar-error .appbar-subtitle {
472
+ color: var(--color-error-content);
375
473
  opacity: 0.8;
376
474
  }
377
475
 
@@ -20,15 +20,14 @@ export const css = `/**
20
20
  line-height: 1.5;
21
21
  color: var(--color-on-surface);
22
22
  background-color: var(--color-surface);
23
- border: 1px solid var(--color-outline);
23
+ border: 1px solid currentColor;
24
24
  border-radius: 0.5rem;
25
25
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
26
26
  }
27
27
 
28
28
  .autocomplete-input:focus {
29
29
  outline: none;
30
- border-color: var(--color-primary);
31
- box-shadow: 0 0 0 3px var(--color-primary-container);
30
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
32
31
  }
33
32
 
34
33
  .autocomplete-input:disabled {
@@ -250,6 +249,67 @@ export const css = `/**
250
249
  outline: none;
251
250
  }
252
251
 
252
+ /* Color Variants */
253
+ .autocomplete-primary .autocomplete-input {
254
+ color: var(--color-primary);
255
+ }
256
+ .autocomplete-primary .autocomplete-input:focus {
257
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
258
+ }
259
+
260
+ .autocomplete-secondary .autocomplete-input {
261
+ color: var(--color-secondary);
262
+ }
263
+ .autocomplete-secondary .autocomplete-input:focus {
264
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
265
+ }
266
+
267
+ .autocomplete-tertiary .autocomplete-input {
268
+ color: var(--color-tertiary);
269
+ }
270
+ .autocomplete-tertiary .autocomplete-input:focus {
271
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
272
+ }
273
+
274
+ .autocomplete-info .autocomplete-input {
275
+ color: var(--color-info);
276
+ }
277
+ .autocomplete-info .autocomplete-input:focus {
278
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
279
+ }
280
+
281
+ .autocomplete-success .autocomplete-input {
282
+ color: var(--color-success);
283
+ }
284
+ .autocomplete-success .autocomplete-input:focus {
285
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
286
+ }
287
+
288
+ .autocomplete-warning .autocomplete-input {
289
+ color: var(--color-warning);
290
+ }
291
+ .autocomplete-warning .autocomplete-input:focus {
292
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
293
+ }
294
+
295
+ .autocomplete-error .autocomplete-input {
296
+ color: var(--color-error);
297
+ }
298
+ .autocomplete-error .autocomplete-input:focus {
299
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
300
+ }
301
+
302
+ /* Ghost Variant */
303
+ .autocomplete-ghost .autocomplete-input {
304
+ background-color: transparent;
305
+ border-color: transparent;
306
+ }
307
+ .autocomplete-ghost .autocomplete-input:focus {
308
+ background-color: var(--color-surface-container);
309
+ border-color: transparent;
310
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
311
+ }
312
+
253
313
  /* Size Variants */
254
314
  .autocomplete-sm .autocomplete-input {
255
315
  padding: 0.5rem 0.75rem;