@duskmoon-dev/core 0.1.0 → 0.2.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 (110) hide show
  1. package/README.md +366 -78
  2. package/dist/components/accordion.css +244 -0
  3. package/dist/components/alert.css +199 -0
  4. package/dist/components/appbar.css +493 -0
  5. package/dist/components/autocomplete.css +269 -0
  6. package/dist/components/avatar.css +167 -0
  7. package/dist/components/badge.css +178 -0
  8. package/dist/components/bottom-navigation.css +263 -0
  9. package/dist/components/bottomsheet.css +334 -0
  10. package/dist/components/button.css +475 -0
  11. package/dist/components/card.css +220 -0
  12. package/dist/components/cascader.css +418 -0
  13. package/dist/components/checkbox.css +231 -0
  14. package/dist/components/chip.css +211 -0
  15. package/dist/components/collapse.css +454 -0
  16. package/dist/components/datepicker.css +741 -0
  17. package/dist/components/dialog.css +173 -0
  18. package/dist/components/divider.css +284 -0
  19. package/dist/components/drawer.css +371 -0
  20. package/dist/components/file-upload.css +321 -0
  21. package/dist/components/form-group.css +308 -0
  22. package/dist/components/form.css +441 -0
  23. package/dist/components/index.css +14951 -0
  24. package/dist/components/input.css +240 -0
  25. package/dist/components/list.css +188 -0
  26. package/dist/components/markdown-body.css +405 -0
  27. package/dist/components/modal.css +291 -0
  28. package/dist/components/multi-select.css +491 -0
  29. package/dist/components/navigation.css +736 -0
  30. package/dist/components/otp-input.css +195 -0
  31. package/dist/components/pin-input.css +184 -0
  32. package/dist/components/popover.css +392 -0
  33. package/dist/components/progress.css +238 -0
  34. package/dist/components/radio.css +183 -0
  35. package/dist/components/rating.css +230 -0
  36. package/dist/components/segment-control.css +186 -0
  37. package/dist/components/select.css +205 -0
  38. package/dist/components/skeleton.css +216 -0
  39. package/dist/components/slider.css +327 -0
  40. package/dist/components/snackbar.css +311 -0
  41. package/dist/components/stepper.css +313 -0
  42. package/dist/components/switch.css +234 -0
  43. package/dist/components/table.css +199 -0
  44. package/dist/components/textarea.css +398 -0
  45. package/dist/components/time-input.css +252 -0
  46. package/dist/components/timeline.css +353 -0
  47. package/dist/components/toast.css +251 -0
  48. package/dist/components/tooltip.css +284 -0
  49. package/dist/components/tree-select.css +472 -0
  50. package/dist/esm/components/accordion.js +251 -0
  51. package/dist/esm/components/alert.js +206 -0
  52. package/dist/esm/components/appbar.js +500 -0
  53. package/dist/esm/components/autocomplete.js +276 -0
  54. package/dist/esm/components/avatar.js +174 -0
  55. package/dist/esm/components/badge.js +185 -0
  56. package/dist/esm/components/bottom-navigation.js +270 -0
  57. package/dist/esm/components/bottomsheet.js +341 -0
  58. package/dist/esm/components/button.js +482 -0
  59. package/dist/esm/components/card.js +227 -0
  60. package/dist/esm/components/cascader.js +425 -0
  61. package/dist/esm/components/checkbox.js +238 -0
  62. package/dist/esm/components/chip.js +218 -0
  63. package/dist/esm/components/collapse.js +461 -0
  64. package/dist/esm/components/datepicker.js +748 -0
  65. package/dist/esm/components/dialog.js +180 -0
  66. package/dist/esm/components/divider.js +291 -0
  67. package/dist/esm/components/drawer.js +378 -0
  68. package/dist/esm/components/file-upload.js +328 -0
  69. package/dist/esm/components/form-group.js +315 -0
  70. package/dist/esm/components/form.js +448 -0
  71. package/dist/esm/components/input.js +247 -0
  72. package/dist/esm/components/list.js +195 -0
  73. package/dist/esm/components/markdown-body.js +412 -0
  74. package/dist/esm/components/modal.js +298 -0
  75. package/dist/esm/components/multi-select.js +498 -0
  76. package/dist/esm/components/navigation.js +743 -0
  77. package/dist/esm/components/otp-input.js +202 -0
  78. package/dist/esm/components/pin-input.js +191 -0
  79. package/dist/esm/components/popover.js +399 -0
  80. package/dist/esm/components/progress.js +245 -0
  81. package/dist/esm/components/radio.js +190 -0
  82. package/dist/esm/components/rating.js +237 -0
  83. package/dist/esm/components/segment-control.js +193 -0
  84. package/dist/esm/components/select.js +212 -0
  85. package/dist/esm/components/skeleton.js +223 -0
  86. package/dist/esm/components/slider.js +334 -0
  87. package/dist/esm/components/snackbar.js +318 -0
  88. package/dist/esm/components/stepper.js +320 -0
  89. package/dist/esm/components/switch.js +241 -0
  90. package/dist/esm/components/table.js +206 -0
  91. package/dist/esm/components/textarea.js +405 -0
  92. package/dist/esm/components/time-input.js +259 -0
  93. package/dist/esm/components/timeline.js +360 -0
  94. package/dist/esm/components/toast.js +258 -0
  95. package/dist/esm/components/tooltip.js +291 -0
  96. package/dist/esm/components/tree-select.js +479 -0
  97. package/dist/index.css +15866 -0
  98. package/dist/themes/moonlight.css +253 -0
  99. package/dist/themes/sunshine.css +250 -0
  100. package/dist/types/index.d.ts +14 -0
  101. package/dist/types/index.d.ts.map +1 -0
  102. package/dist/types/plugin.d.ts +69 -0
  103. package/dist/types/plugin.d.ts.map +1 -0
  104. package/dist/types/theme.d.ts +202 -0
  105. package/dist/types/theme.d.ts.map +1 -0
  106. package/package.json +262 -18
  107. package/dist/index.cjs +0 -243
  108. package/dist/index.cjs.map +0 -15
  109. package/dist/index.js +0 -211
  110. package/dist/index.js.map +0 -15
@@ -0,0 +1,493 @@
1
+ /**
2
+ * App Bar Component Styles
3
+ * DuskMoonUI - Material Design 3 inspired app bar system
4
+ */
5
+
6
+ @layer components {
7
+ /* Base App Bar */
8
+ .appbar {
9
+ display: flex;
10
+ align-items: center;
11
+ gap: 0.5rem;
12
+ width: 100%;
13
+ min-height: 4rem;
14
+ padding: 0 1rem;
15
+ background-color: var(--color-surface);
16
+ color: var(--color-on-surface);
17
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
18
+ }
19
+
20
+ /* Static App Bar (default) */
21
+ .appbar-static {
22
+ position: static;
23
+ }
24
+
25
+ /* Fixed App Bar */
26
+ .appbar-fixed {
27
+ position: fixed;
28
+ top: 0;
29
+ left: 0;
30
+ right: 0;
31
+ z-index: 1000;
32
+ }
33
+
34
+ /* Sticky App Bar */
35
+ .appbar-sticky {
36
+ position: sticky;
37
+ top: 0;
38
+ z-index: 1000;
39
+ }
40
+
41
+ /* Top App Bar (default) */
42
+ .appbar-top {
43
+ top: 0;
44
+ }
45
+
46
+ /* Bottom App Bar */
47
+ .appbar-bottom {
48
+ position: fixed;
49
+ bottom: 0;
50
+ left: 0;
51
+ right: 0;
52
+ top: auto;
53
+ z-index: 1000;
54
+ }
55
+
56
+ /* App Bar with Shadow (elevated) */
57
+ .appbar-elevated {
58
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
59
+ }
60
+
61
+ /* Flat App Bar (no shadow) */
62
+ .appbar-flat {
63
+ box-shadow: none;
64
+ }
65
+
66
+ /* App Bar with Border */
67
+ .appbar-bordered {
68
+ border-bottom: 1px solid var(--color-outline-variant);
69
+ box-shadow: none;
70
+ }
71
+
72
+ /* Transparent App Bar */
73
+ .appbar-transparent {
74
+ background-color: transparent;
75
+ box-shadow: none;
76
+ }
77
+
78
+ /* Backdrop Blur */
79
+ .appbar-blur {
80
+ backdrop-filter: blur(8px);
81
+ -webkit-backdrop-filter: blur(8px);
82
+ }
83
+
84
+ /* App Bar Navigation Icon */
85
+ .appbar-nav {
86
+ display: flex;
87
+ align-items: center;
88
+ justify-content: center;
89
+ width: 2.5rem;
90
+ height: 2.5rem;
91
+ color: var(--color-on-surface);
92
+ background-color: transparent;
93
+ border: none;
94
+ border-radius: 50%;
95
+ cursor: pointer;
96
+ transition: background-color 150ms ease-in-out;
97
+ flex-shrink: 0;
98
+ }
99
+
100
+ .appbar-nav:hover {
101
+ background-color: var(--color-surface-container);
102
+ }
103
+
104
+ .appbar-nav:focus-visible {
105
+ outline: 2px solid var(--color-primary);
106
+ outline-offset: 2px;
107
+ }
108
+
109
+ /* App Bar Title */
110
+ .appbar-title {
111
+ flex: 1;
112
+ font-size: 1.25rem;
113
+ font-weight: 500;
114
+ line-height: 1.75rem;
115
+ overflow: hidden;
116
+ text-overflow: ellipsis;
117
+ white-space: nowrap;
118
+ }
119
+
120
+ /* App Bar Subtitle */
121
+ .appbar-subtitle {
122
+ font-size: 0.75rem;
123
+ color: var(--color-on-surface-variant);
124
+ overflow: hidden;
125
+ text-overflow: ellipsis;
126
+ white-space: nowrap;
127
+ }
128
+
129
+ /* App Bar Title Group */
130
+ .appbar-title-group {
131
+ flex: 1;
132
+ min-width: 0;
133
+ }
134
+
135
+ .appbar-title-group .appbar-title {
136
+ font-size: 1rem;
137
+ line-height: 1.25rem;
138
+ }
139
+
140
+ /* App Bar Actions */
141
+ .appbar-actions {
142
+ display: flex;
143
+ align-items: center;
144
+ gap: 0.25rem;
145
+ flex-shrink: 0;
146
+ }
147
+
148
+ .appbar-action {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: center;
152
+ width: 2.5rem;
153
+ height: 2.5rem;
154
+ color: var(--color-on-surface-variant);
155
+ background-color: transparent;
156
+ border: none;
157
+ border-radius: 50%;
158
+ cursor: pointer;
159
+ transition: background-color 150ms ease-in-out, color 150ms ease-in-out;
160
+ }
161
+
162
+ .appbar-action:hover {
163
+ background-color: var(--color-surface-container);
164
+ color: var(--color-on-surface);
165
+ }
166
+
167
+ .appbar-action:focus-visible {
168
+ outline: 2px solid var(--color-primary);
169
+ outline-offset: 2px;
170
+ }
171
+
172
+ /* App Bar Logo/Brand */
173
+ .appbar-brand {
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 0.75rem;
177
+ flex-shrink: 0;
178
+ }
179
+
180
+ .appbar-logo {
181
+ height: 2rem;
182
+ width: auto;
183
+ }
184
+
185
+ /* Size Variants */
186
+ .appbar-sm {
187
+ min-height: 3rem;
188
+ padding: 0 0.75rem;
189
+ }
190
+
191
+ .appbar-sm .appbar-title {
192
+ font-size: 1rem;
193
+ }
194
+
195
+ .appbar-lg {
196
+ min-height: 5rem;
197
+ padding: 0 1.5rem;
198
+ }
199
+
200
+ .appbar-lg .appbar-title {
201
+ font-size: 1.5rem;
202
+ }
203
+
204
+ /* Compact Size */
205
+ .appbar-compact {
206
+ min-height: 3rem;
207
+ padding: 0 0.75rem;
208
+ }
209
+
210
+ .appbar-compact .appbar-title,
211
+ .appbar-compact .appbar-heading {
212
+ font-size: 1rem;
213
+ line-height: 1.5rem;
214
+ }
215
+
216
+ .appbar-compact .appbar-nav,
217
+ .appbar-compact .appbar-action,
218
+ .appbar-compact .appbar-back {
219
+ width: 2rem;
220
+ height: 2rem;
221
+ }
222
+
223
+ /* Comfortable Size */
224
+ .appbar-comfortable {
225
+ min-height: 5rem;
226
+ padding: 0 1.5rem;
227
+ }
228
+
229
+ .appbar-comfortable .appbar-title,
230
+ .appbar-comfortable .appbar-heading {
231
+ font-size: 1.5rem;
232
+ line-height: 2rem;
233
+ }
234
+
235
+ /* Section Classes */
236
+ .appbar-leading {
237
+ display: flex;
238
+ align-items: center;
239
+ gap: 0.25rem;
240
+ flex-shrink: 0;
241
+ }
242
+
243
+ .appbar-trailing {
244
+ display: flex;
245
+ align-items: center;
246
+ gap: 0.25rem;
247
+ flex-shrink: 0;
248
+ margin-left: auto;
249
+ }
250
+
251
+ /* Heading Text */
252
+ .appbar-heading {
253
+ font-size: 1.25rem;
254
+ font-weight: 500;
255
+ line-height: 1.75rem;
256
+ margin: 0;
257
+ overflow: hidden;
258
+ text-overflow: ellipsis;
259
+ white-space: nowrap;
260
+ }
261
+
262
+ /* Back Button */
263
+ .appbar-back {
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: center;
267
+ width: 2.5rem;
268
+ height: 2.5rem;
269
+ color: var(--color-on-surface);
270
+ background-color: transparent;
271
+ border: none;
272
+ border-radius: 50%;
273
+ cursor: pointer;
274
+ transition: background-color 150ms ease-in-out;
275
+ flex-shrink: 0;
276
+ }
277
+
278
+ .appbar-back:hover {
279
+ background-color: var(--color-surface-container);
280
+ }
281
+
282
+ .appbar-back:focus-visible {
283
+ outline: 2px solid var(--color-primary);
284
+ outline-offset: 2px;
285
+ }
286
+
287
+ /* Search Input (direct on element) */
288
+ .appbar .appbar-search,
289
+ input.appbar-search {
290
+ flex: 1;
291
+ max-width: 32rem;
292
+ padding: 0.5rem 1rem;
293
+ font-size: 0.875rem;
294
+ color: var(--color-on-surface);
295
+ background-color: var(--color-surface-container);
296
+ border: none;
297
+ border-radius: 9999px;
298
+ transition: background-color 150ms ease-in-out;
299
+ }
300
+
301
+ .appbar .appbar-search:focus,
302
+ input.appbar-search:focus {
303
+ outline: none;
304
+ background-color: var(--color-surface-container-high);
305
+ }
306
+
307
+ .appbar .appbar-search::placeholder,
308
+ input.appbar-search::placeholder {
309
+ color: var(--color-on-surface-variant);
310
+ }
311
+
312
+ /* Color Variants */
313
+ .appbar-primary {
314
+ background-color: var(--color-primary);
315
+ color: var(--color-on-primary);
316
+ }
317
+
318
+ .appbar-primary .appbar-nav,
319
+ .appbar-primary .appbar-action {
320
+ color: var(--color-on-primary);
321
+ }
322
+
323
+ .appbar-primary .appbar-nav:hover,
324
+ .appbar-primary .appbar-action:hover {
325
+ background-color: var(--color-primary-container);
326
+ color: var(--color-on-primary-container);
327
+ }
328
+
329
+ .appbar-primary .appbar-subtitle {
330
+ color: var(--color-on-primary);
331
+ opacity: 0.8;
332
+ }
333
+
334
+ .appbar-secondary {
335
+ background-color: var(--color-secondary);
336
+ color: var(--color-on-secondary);
337
+ }
338
+
339
+ .appbar-secondary .appbar-nav,
340
+ .appbar-secondary .appbar-action {
341
+ color: var(--color-on-secondary);
342
+ }
343
+
344
+ .appbar-secondary .appbar-nav:hover,
345
+ .appbar-secondary .appbar-action:hover {
346
+ background-color: var(--color-secondary-container);
347
+ color: var(--color-on-secondary-container);
348
+ }
349
+
350
+ .appbar-secondary .appbar-subtitle {
351
+ color: var(--color-on-secondary);
352
+ opacity: 0.8;
353
+ }
354
+
355
+ .appbar-tertiary {
356
+ background-color: var(--color-tertiary);
357
+ color: var(--color-on-tertiary);
358
+ }
359
+
360
+ .appbar-tertiary .appbar-nav,
361
+ .appbar-tertiary .appbar-action {
362
+ color: var(--color-on-tertiary);
363
+ }
364
+
365
+ .appbar-tertiary .appbar-nav:hover,
366
+ .appbar-tertiary .appbar-action:hover {
367
+ background-color: var(--color-tertiary-container);
368
+ color: var(--color-on-tertiary-container);
369
+ }
370
+
371
+ .appbar-tertiary .appbar-subtitle {
372
+ color: var(--color-on-tertiary);
373
+ opacity: 0.8;
374
+ }
375
+
376
+ /* Surface Variants */
377
+ .appbar-surface {
378
+ background-color: var(--color-surface);
379
+ }
380
+
381
+ .appbar-surface-container {
382
+ background-color: var(--color-surface-container);
383
+ }
384
+
385
+ .appbar-surface-container-low {
386
+ background-color: var(--color-surface-container-low);
387
+ }
388
+
389
+ .appbar-surface-container-high {
390
+ background-color: var(--color-surface-container-high);
391
+ }
392
+
393
+ .appbar-surface-container-highest {
394
+ background-color: var(--color-surface-container-highest);
395
+ }
396
+
397
+ /* Center Title */
398
+ .appbar-center {
399
+ justify-content: space-between;
400
+ }
401
+
402
+ .appbar-center .appbar-title {
403
+ position: absolute;
404
+ left: 50%;
405
+ transform: translateX(-50%);
406
+ flex: none;
407
+ }
408
+
409
+ /* Dense App Bar */
410
+ .appbar-dense {
411
+ min-height: 3rem;
412
+ padding: 0 0.5rem;
413
+ }
414
+
415
+ .appbar-dense .appbar-nav,
416
+ .appbar-dense .appbar-action {
417
+ width: 2rem;
418
+ height: 2rem;
419
+ }
420
+
421
+ /* Prominent App Bar (Large Title) */
422
+ .appbar-prominent {
423
+ flex-direction: column;
424
+ align-items: flex-start;
425
+ min-height: 8rem;
426
+ padding: 1rem;
427
+ }
428
+
429
+ .appbar-prominent .appbar-row {
430
+ display: flex;
431
+ align-items: center;
432
+ width: 100%;
433
+ gap: 0.5rem;
434
+ }
435
+
436
+ .appbar-prominent .appbar-title {
437
+ font-size: 2rem;
438
+ font-weight: 400;
439
+ margin-top: auto;
440
+ padding-bottom: 0.5rem;
441
+ }
442
+
443
+ /* Search in App Bar */
444
+ .appbar-search {
445
+ flex: 1;
446
+ max-width: 32rem;
447
+ margin: 0 1rem;
448
+ }
449
+
450
+ .appbar-search-input {
451
+ width: 100%;
452
+ padding: 0.5rem 1rem;
453
+ font-size: 0.875rem;
454
+ color: var(--color-on-surface);
455
+ background-color: var(--color-surface-container);
456
+ border: none;
457
+ border-radius: 9999px;
458
+ transition: background-color 150ms ease-in-out;
459
+ }
460
+
461
+ .appbar-search-input:focus {
462
+ outline: none;
463
+ background-color: var(--color-surface-container-high);
464
+ }
465
+
466
+ .appbar-search-input::placeholder {
467
+ color: var(--color-on-surface-variant);
468
+ }
469
+
470
+ /* Responsive */
471
+ @media (max-width: 640px) {
472
+ .appbar {
473
+ padding: 0 0.5rem;
474
+ }
475
+
476
+ .appbar-title {
477
+ font-size: 1rem;
478
+ }
479
+
480
+ .appbar-search {
481
+ margin: 0 0.5rem;
482
+ }
483
+ }
484
+
485
+ /* Reduce Motion */
486
+ @media (prefers-reduced-motion: reduce) {
487
+ .appbar-nav,
488
+ .appbar-action,
489
+ .appbar-search-input {
490
+ transition: none;
491
+ }
492
+ }
493
+ }