@duskmoon-dev/core 1.14.2 → 1.16.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 (126) hide show
  1. package/dist/cjs/tailwind-plugin.cjs +38 -79
  2. package/dist/components/accordion.css +7 -7
  3. package/dist/components/alert.css +2 -2
  4. package/dist/components/appbar.css +5 -5
  5. package/dist/components/autocomplete.css +7 -7
  6. package/dist/components/avatar.css +5 -5
  7. package/dist/components/badge.css +3 -3
  8. package/dist/components/bottom-navigation.css +7 -7
  9. package/dist/components/bottomsheet.css +12 -12
  10. package/dist/components/button.css +19 -19
  11. package/dist/components/card.css +9 -2
  12. package/dist/components/cascader.css +9 -9
  13. package/dist/components/checkbox.css +1 -1
  14. package/dist/components/chip.css +12 -10
  15. package/dist/components/circle-menu.css +324 -0
  16. package/dist/components/code-block.css +133 -0
  17. package/dist/components/collapse.css +9 -9
  18. package/dist/components/datepicker.css +22 -22
  19. package/dist/components/dialog.css +5 -5
  20. package/dist/components/drawer.css +13 -13
  21. package/dist/components/file-upload.css +12 -12
  22. package/dist/components/form-group.css +162 -1
  23. package/dist/components/form.css +159 -22
  24. package/dist/components/index.css +1026 -385
  25. package/dist/components/input.css +23 -14
  26. package/dist/components/list.css +3 -3
  27. package/dist/components/markdown-body.css +6 -6
  28. package/dist/components/modal.css +7 -7
  29. package/dist/components/multi-select.css +16 -16
  30. package/dist/components/navigation.css +20 -20
  31. package/dist/components/nested-menu.css +5 -5
  32. package/dist/components/otp-input.css +5 -5
  33. package/dist/components/pin-input.css +5 -5
  34. package/dist/components/popover.css +15 -15
  35. package/dist/components/progress.css +2 -2
  36. package/dist/components/radio.css +2 -2
  37. package/dist/components/rating.css +1 -1
  38. package/dist/components/segment-control.css +6 -6
  39. package/dist/components/select.css +7 -7
  40. package/dist/components/skeleton.css +11 -11
  41. package/dist/components/slider.css +16 -16
  42. package/dist/components/snackbar.css +5 -5
  43. package/dist/components/stepper.css +9 -9
  44. package/dist/components/switch.css +1 -1
  45. package/dist/components/table.css +3 -3
  46. package/dist/components/textarea.css +5 -5
  47. package/dist/components/theme-controller.css +4 -4
  48. package/dist/components/time-input.css +10 -10
  49. package/dist/components/timeline.css +6 -6
  50. package/dist/components/toast.css +3 -3
  51. package/dist/components/toggle.css +8 -8
  52. package/dist/components/tooltip.css +1 -1
  53. package/dist/components/tree-select.css +14 -14
  54. package/dist/esm/components/accordion.js +7 -7
  55. package/dist/esm/components/alert.js +2 -2
  56. package/dist/esm/components/appbar.js +5 -5
  57. package/dist/esm/components/autocomplete.js +7 -7
  58. package/dist/esm/components/avatar.js +5 -5
  59. package/dist/esm/components/badge.js +3 -3
  60. package/dist/esm/components/bottom-navigation.js +7 -7
  61. package/dist/esm/components/bottomsheet.js +12 -12
  62. package/dist/esm/components/button.js +19 -19
  63. package/dist/esm/components/card.js +9 -2
  64. package/dist/esm/components/cascader.js +9 -9
  65. package/dist/esm/components/checkbox.js +1 -1
  66. package/dist/esm/components/chip.js +12 -10
  67. package/dist/esm/components/circle-menu.js +331 -0
  68. package/dist/esm/components/code-block.js +140 -0
  69. package/dist/esm/components/collapse.js +9 -9
  70. package/dist/esm/components/datepicker.js +22 -22
  71. package/dist/esm/components/dialog.js +5 -5
  72. package/dist/esm/components/drawer.js +13 -13
  73. package/dist/esm/components/file-upload.js +12 -12
  74. package/dist/esm/components/form-group.js +162 -1
  75. package/dist/esm/components/form.js +159 -22
  76. package/dist/esm/components/input.js +23 -14
  77. package/dist/esm/components/list.js +3 -3
  78. package/dist/esm/components/markdown-body.js +6 -6
  79. package/dist/esm/components/modal.js +7 -7
  80. package/dist/esm/components/multi-select.js +16 -16
  81. package/dist/esm/components/navigation.js +20 -20
  82. package/dist/esm/components/nested-menu.js +5 -5
  83. package/dist/esm/components/otp-input.js +5 -5
  84. package/dist/esm/components/pin-input.js +5 -5
  85. package/dist/esm/components/popover.js +15 -15
  86. package/dist/esm/components/progress.js +2 -2
  87. package/dist/esm/components/radio.js +2 -2
  88. package/dist/esm/components/rating.js +1 -1
  89. package/dist/esm/components/segment-control.js +6 -6
  90. package/dist/esm/components/select.js +7 -7
  91. package/dist/esm/components/skeleton.js +11 -11
  92. package/dist/esm/components/slider.js +16 -16
  93. package/dist/esm/components/snackbar.js +5 -5
  94. package/dist/esm/components/stepper.js +9 -9
  95. package/dist/esm/components/switch.js +1 -1
  96. package/dist/esm/components/table.js +3 -3
  97. package/dist/esm/components/textarea.js +5 -5
  98. package/dist/esm/components/theme-controller.js +4 -4
  99. package/dist/esm/components/time-input.js +10 -10
  100. package/dist/esm/components/timeline.js +6 -6
  101. package/dist/esm/components/toast.js +3 -3
  102. package/dist/esm/components/toggle.js +8 -8
  103. package/dist/esm/components/tooltip.js +1 -1
  104. package/dist/esm/components/tree-select.js +14 -14
  105. package/dist/esm/tailwind-plugin.js +38 -79
  106. package/dist/index.css +1435 -1137
  107. package/dist/index.min.css +1 -1
  108. package/dist/themes/{forest.css → generated/forest.css} +26 -94
  109. package/dist/themes/generated/moonlight.css +77 -0
  110. package/dist/themes/{ocean.css → generated/ocean.css} +26 -103
  111. package/dist/themes/generated/spacing.css +36 -0
  112. package/dist/themes/{sunset.css → generated/sunset.css} +26 -95
  113. package/dist/themes/generated/sunshine.css +77 -0
  114. package/dist/types/tailwind-plugin.d.ts +1 -0
  115. package/dist/types/tailwind-plugin.d.ts.map +1 -1
  116. package/dist/types/themes/generated/ts/types.d.ts +76 -0
  117. package/dist/types/themes/generated/ts/types.d.ts.map +1 -0
  118. package/dist/types/types/index.d.ts +1 -1
  119. package/dist/types/types/index.d.ts.map +1 -1
  120. package/dist/types/types/plugin.d.ts +1 -1
  121. package/dist/types/types/plugin.d.ts.map +1 -1
  122. package/dist/types/types/theme.d.ts +5 -152
  123. package/dist/types/types/theme.d.ts.map +1 -1
  124. package/package.json +11 -6
  125. package/dist/themes/moonlight.css +0 -271
  126. package/dist/themes/sunshine.css +0 -252
@@ -40,7 +40,7 @@
40
40
  width: 1.25rem;
41
41
  height: 1.25rem;
42
42
  border: 2px solid var(--color-outline);
43
- border-radius: 0.25rem;
43
+ border-radius: var(--radius-xs);
44
44
  background-color: transparent;
45
45
  cursor: pointer;
46
46
  transition: all 150ms ease-in-out;
@@ -69,8 +69,8 @@
69
69
  }
70
70
 
71
71
  .checkbox:focus-visible {
72
- outline: 2px solid var(--color-primary);
73
- outline-offset: 2px;
72
+ outline: none;
73
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
74
74
  }
75
75
 
76
76
  .checkbox:disabled {
@@ -94,6 +94,21 @@
94
94
  border-color: var(--color-success);
95
95
  }
96
96
 
97
+ .checkbox-tertiary:checked {
98
+ background-color: var(--color-tertiary);
99
+ border-color: var(--color-tertiary);
100
+ }
101
+
102
+ .checkbox-info:checked {
103
+ background-color: var(--color-info);
104
+ border-color: var(--color-info);
105
+ }
106
+
107
+ .checkbox-warning:checked {
108
+ background-color: var(--color-warning);
109
+ border-color: var(--color-warning);
110
+ }
111
+
97
112
  .checkbox-error:checked {
98
113
  background-color: var(--color-error);
99
114
  border-color: var(--color-error);
@@ -121,7 +136,7 @@
121
136
  width: 1.25rem;
122
137
  height: 1.25rem;
123
138
  border: 2px solid var(--color-outline);
124
- border-radius: 50%;
139
+ border-radius: var(--radius-full);
125
140
  background-color: transparent;
126
141
  cursor: pointer;
127
142
  transition: all 150ms ease-in-out;
@@ -144,13 +159,13 @@
144
159
  width: 0.5rem;
145
160
  height: 0.5rem;
146
161
  background-color: var(--color-primary);
147
- border-radius: 50%;
162
+ border-radius: var(--radius-full);
148
163
  transform: translate(-50%, -50%);
149
164
  }
150
165
 
151
166
  .radio:focus-visible {
152
- outline: 2px solid var(--color-primary);
153
- outline-offset: 2px;
167
+ outline: none;
168
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
154
169
  }
155
170
 
156
171
  .radio:disabled {
@@ -175,12 +190,52 @@
175
190
  background-color: var(--color-secondary);
176
191
  }
177
192
 
193
+ .radio-tertiary:checked {
194
+ border-color: var(--color-tertiary);
195
+ }
196
+
197
+ .radio-tertiary:checked::after {
198
+ background-color: var(--color-tertiary);
199
+ }
200
+
201
+ .radio-info:checked {
202
+ border-color: var(--color-info);
203
+ }
204
+
205
+ .radio-info:checked::after {
206
+ background-color: var(--color-info);
207
+ }
208
+
209
+ .radio-success:checked {
210
+ border-color: var(--color-success);
211
+ }
212
+
213
+ .radio-success:checked::after {
214
+ background-color: var(--color-success);
215
+ }
216
+
217
+ .radio-warning:checked {
218
+ border-color: var(--color-warning);
219
+ }
220
+
221
+ .radio-warning:checked::after {
222
+ background-color: var(--color-warning);
223
+ }
224
+
225
+ .radio-error:checked {
226
+ border-color: var(--color-error);
227
+ }
228
+
229
+ .radio-error:checked::after {
230
+ background-color: var(--color-error);
231
+ }
232
+
178
233
  /* Toggle/Switch */
179
234
  .toggle {
180
235
  appearance: none;
181
236
  width: 3rem;
182
237
  height: 1.5rem;
183
- border-radius: 1rem;
238
+ border-radius: var(--radius-lg);
184
239
  background-color: var(--color-surface-container-highest);
185
240
  cursor: pointer;
186
241
  transition: all 150ms ease-in-out;
@@ -196,7 +251,7 @@
196
251
  width: 1rem;
197
252
  height: 1rem;
198
253
  background-color: var(--color-on-surface-variant);
199
- border-radius: 50%;
254
+ border-radius: var(--radius-full);
200
255
  transition: all 150ms ease-in-out;
201
256
  }
202
257
 
@@ -210,8 +265,8 @@
210
265
  }
211
266
 
212
267
  .toggle:focus-visible {
213
- outline: 2px solid var(--color-primary);
214
- outline-offset: 2px;
268
+ outline: none;
269
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
215
270
  }
216
271
 
217
272
  .toggle:disabled {
@@ -264,8 +319,8 @@
264
319
  line-height: 1.5rem;
265
320
  background-color: var(--color-surface);
266
321
  color: var(--color-on-surface);
267
- border: 1px solid var(--color-outline);
268
- border-radius: 0.5rem;
322
+ border: 1px solid currentColor;
323
+ border-radius: var(--radius-sm);
269
324
  cursor: pointer;
270
325
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
271
326
  background-position: right 0.75rem center;
@@ -330,8 +385,8 @@
330
385
  line-height: 1.5rem;
331
386
  background-color: var(--color-surface);
332
387
  color: var(--color-on-surface);
333
- border: 1px solid var(--color-outline);
334
- border-radius: 0.5rem;
388
+ border: 1px solid currentColor;
389
+ border-radius: var(--radius-sm);
335
390
  resize: vertical;
336
391
  transition: border-color 150ms ease-in-out;
337
392
  }
@@ -363,8 +418,17 @@
363
418
  .form-control.error .input,
364
419
  .form-control.error .select,
365
420
  .form-control.error .textarea,
366
- .input-error {
421
+ .input-error,
422
+ .select-error,
423
+ .textarea-error {
424
+ border-color: var(--color-error);
425
+ }
426
+
427
+ .form-control.error .input:focus-visible,
428
+ .form-control.error .select:focus-visible,
429
+ .form-control.error .textarea:focus-visible {
367
430
  border-color: var(--color-error);
431
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
368
432
  }
369
433
 
370
434
  .form-control.error .label-text {
@@ -373,14 +437,64 @@
373
437
 
374
438
  .form-control.success .input,
375
439
  .form-control.success .select,
376
- .form-control.success .textarea {
440
+ .form-control.success .textarea,
441
+ .input-success,
442
+ .select-success,
443
+ .textarea-success {
377
444
  border-color: var(--color-success);
378
445
  }
379
446
 
447
+ .form-control.success .input:focus-visible,
448
+ .form-control.success .select:focus-visible,
449
+ .form-control.success .textarea:focus-visible {
450
+ border-color: var(--color-success);
451
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
452
+ }
453
+
380
454
  .form-control.success .label-text {
381
455
  color: var(--color-success);
382
456
  }
383
457
 
458
+ .form-control.warning .input,
459
+ .form-control.warning .select,
460
+ .form-control.warning .textarea,
461
+ .input-warning,
462
+ .select-warning,
463
+ .textarea-warning {
464
+ border-color: var(--color-warning);
465
+ }
466
+
467
+ .form-control.warning .input:focus-visible,
468
+ .form-control.warning .select:focus-visible,
469
+ .form-control.warning .textarea:focus-visible {
470
+ border-color: var(--color-warning);
471
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
472
+ }
473
+
474
+ .form-control.warning .label-text {
475
+ color: var(--color-warning);
476
+ }
477
+
478
+ .form-control.info .input,
479
+ .form-control.info .select,
480
+ .form-control.info .textarea,
481
+ .input-info,
482
+ .select-info,
483
+ .textarea-info {
484
+ border-color: var(--color-info);
485
+ }
486
+
487
+ .form-control.info .input:focus-visible,
488
+ .form-control.info .select:focus-visible,
489
+ .form-control.info .textarea:focus-visible {
490
+ border-color: var(--color-info);
491
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
492
+ }
493
+
494
+ .form-control.info .label-text {
495
+ color: var(--color-info);
496
+ }
497
+
384
498
  /* Helper Text */
385
499
  .helper-text {
386
500
  font-size: 0.75rem;
@@ -396,6 +510,17 @@
396
510
  color: var(--color-success);
397
511
  }
398
512
 
513
+ .helper-text.warning {
514
+ color: var(--color-warning);
515
+ }
516
+
517
+ .helper-text.info {
518
+ color: var(--color-info);
519
+ }
520
+
521
+ /* Native HTML Validation (:user-invalid/:user-valid, :invalid/:valid, ARIA)
522
+ * is handled in form-group.css to avoid duplication. */
523
+
399
524
  /* Required Field Indicator */
400
525
  .label-text.required::after {
401
526
  content: ' *';
@@ -408,7 +533,7 @@
408
533
  width: 100%;
409
534
  height: 0.5rem;
410
535
  background-color: var(--color-surface-container-highest);
411
- border-radius: 0.25rem;
536
+ border-radius: var(--radius-xs);
412
537
  cursor: pointer;
413
538
  }
414
539
 
@@ -417,7 +542,7 @@
417
542
  width: 1.25rem;
418
543
  height: 1.25rem;
419
544
  background-color: var(--color-primary);
420
- border-radius: 50%;
545
+ border-radius: var(--radius-full);
421
546
  cursor: pointer;
422
547
  transition: transform 150ms ease-in-out;
423
548
  }
@@ -431,12 +556,24 @@
431
556
  height: 1.25rem;
432
557
  background-color: var(--color-primary);
433
558
  border: none;
434
- border-radius: 50%;
559
+ border-radius: var(--radius-full);
435
560
  cursor: pointer;
436
561
  }
437
562
 
438
563
  .range:focus-visible {
439
- outline: 2px solid var(--color-primary);
440
- outline-offset: 2px;
564
+ outline: none;
565
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
566
+ }
567
+
568
+ /* Reduce Motion */
569
+ @media (prefers-reduced-motion: reduce) {
570
+ .form-control,
571
+ .input,
572
+ .select,
573
+ .textarea,
574
+ .range,
575
+ .label-float .form-control ~ label {
576
+ transition: none;
577
+ }
441
578
  }
442
579
  }