@duskmoon-dev/core 1.0.0 → 1.1.1

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 (39) hide show
  1. package/dist/components/button.css +47 -46
  2. package/dist/components/index.css +47 -46
  3. package/dist/esm/components/accordion.js +251 -0
  4. package/dist/esm/components/alert.js +206 -0
  5. package/dist/esm/components/appbar.js +315 -0
  6. package/dist/esm/components/autocomplete.js +276 -0
  7. package/dist/esm/components/avatar.js +174 -0
  8. package/dist/esm/components/badge.js +185 -0
  9. package/dist/esm/components/bottom-navigation.js +270 -0
  10. package/dist/esm/components/bottomsheet.js +341 -0
  11. package/dist/esm/components/button.js +482 -0
  12. package/dist/esm/components/card.js +227 -0
  13. package/dist/esm/components/chip.js +218 -0
  14. package/dist/esm/components/collapse.js +261 -0
  15. package/dist/esm/components/datepicker.js +354 -0
  16. package/dist/esm/components/dialog.js +180 -0
  17. package/dist/esm/components/divider.js +291 -0
  18. package/dist/esm/components/drawer.js +378 -0
  19. package/dist/esm/components/file-upload.js +328 -0
  20. package/dist/esm/components/form.js +448 -0
  21. package/dist/esm/components/input.js +247 -0
  22. package/dist/esm/components/list.js +195 -0
  23. package/dist/esm/components/markdown-body.js +412 -0
  24. package/dist/esm/components/modal.js +298 -0
  25. package/dist/esm/components/navigation.js +399 -0
  26. package/dist/esm/components/popover.js +333 -0
  27. package/dist/esm/components/progress.js +245 -0
  28. package/dist/esm/components/rating.js +237 -0
  29. package/dist/esm/components/skeleton.js +223 -0
  30. package/dist/esm/components/slider.js +334 -0
  31. package/dist/esm/components/snackbar.js +318 -0
  32. package/dist/esm/components/stepper.js +320 -0
  33. package/dist/esm/components/switch.js +284 -0
  34. package/dist/esm/components/table.js +206 -0
  35. package/dist/esm/components/timeline.js +360 -0
  36. package/dist/esm/components/toast.js +258 -0
  37. package/dist/esm/components/tooltip.js +291 -0
  38. package/dist/index.css +47 -46
  39. package/package.json +108 -38
@@ -0,0 +1,218 @@
1
+ // Auto-generated from chip.css
2
+ export const css = `/**
3
+ * Chip Component Styles
4
+ * DuskMoonUI - Material Design 3 inspired chip system
5
+ */
6
+
7
+ @layer components {
8
+ /* Base Chip */
9
+ .chip {
10
+ display: inline-flex;
11
+ align-items: center;
12
+ gap: 0.375rem;
13
+ padding: 0.375rem 0.75rem;
14
+ font-size: 0.875rem;
15
+ font-weight: 500;
16
+ line-height: 1.25rem;
17
+ border-radius: 0.5rem;
18
+ background-color: var(--color-surface-container);
19
+ color: var(--color-on-surface);
20
+ border: 1px solid transparent;
21
+ cursor: default;
22
+ transition: all 150ms ease-in-out;
23
+ }
24
+
25
+ /* Interactive Chip */
26
+ .chip-clickable {
27
+ cursor: pointer;
28
+ }
29
+
30
+ .chip-clickable:hover {
31
+ background-color: var(--color-surface-container-high);
32
+ }
33
+
34
+ .chip-clickable:active {
35
+ transform: scale(0.98);
36
+ }
37
+
38
+ .chip:focus-visible {
39
+ outline: 2px solid var(--color-primary);
40
+ outline-offset: 2px;
41
+ }
42
+
43
+ /* Color Variants - Filled */
44
+ .chip-primary {
45
+ background-color: var(--color-primary);
46
+ color: var(--color-primary-content);
47
+ }
48
+
49
+ .chip-primary:hover {
50
+ background-color: color-mix(in oklch, var(--color-primary), black 10%);
51
+ }
52
+
53
+ .chip-secondary {
54
+ background-color: var(--color-secondary);
55
+ color: var(--color-secondary-content);
56
+ }
57
+
58
+ .chip-secondary:hover {
59
+ background-color: color-mix(in oklch, var(--color-secondary), black 10%);
60
+ }
61
+
62
+ .chip-tertiary {
63
+ background-color: var(--color-tertiary);
64
+ color: var(--color-tertiary-content);
65
+ }
66
+
67
+ .chip-tertiary:hover {
68
+ background-color: color-mix(in oklch, var(--color-tertiary), black 10%);
69
+ }
70
+
71
+ /* Outlined Variant */
72
+ .chip-outlined {
73
+ background-color: transparent;
74
+ border-color: var(--color-outline);
75
+ }
76
+
77
+ .chip-outlined:hover {
78
+ background-color: var(--color-surface-container);
79
+ }
80
+
81
+ .chip-outlined.chip-primary {
82
+ border-color: var(--color-primary);
83
+ color: var(--color-primary);
84
+ }
85
+
86
+ .chip-outlined.chip-primary:hover {
87
+ background-color: var(--color-primary-container);
88
+ }
89
+
90
+ .chip-outlined.chip-secondary {
91
+ border-color: var(--color-secondary);
92
+ color: var(--color-secondary);
93
+ }
94
+
95
+ .chip-outlined.chip-secondary:hover {
96
+ background-color: var(--color-secondary-container);
97
+ }
98
+
99
+ .chip-outlined.chip-tertiary {
100
+ border-color: var(--color-tertiary);
101
+ color: var(--color-tertiary);
102
+ }
103
+
104
+ .chip-outlined.chip-tertiary:hover {
105
+ background-color: var(--color-tertiary-container);
106
+ }
107
+
108
+ /* Tonal/Soft Variant */
109
+ .chip-tonal {
110
+ background-color: var(--color-surface-container-high);
111
+ }
112
+
113
+ .chip-tonal.chip-primary {
114
+ background-color: var(--color-primary-container);
115
+ color: var(--color-on-primary-container);
116
+ }
117
+
118
+ .chip-tonal.chip-secondary {
119
+ background-color: var(--color-secondary-container);
120
+ color: var(--color-on-secondary-container);
121
+ }
122
+
123
+ .chip-tonal.chip-tertiary {
124
+ background-color: var(--color-tertiary-container);
125
+ color: var(--color-on-tertiary-container);
126
+ }
127
+
128
+ /* Size Variants */
129
+ .chip-sm {
130
+ padding: 0.25rem 0.5rem;
131
+ font-size: 0.75rem;
132
+ line-height: 1rem;
133
+ gap: 0.25rem;
134
+ }
135
+
136
+ .chip-lg {
137
+ padding: 0.5rem 1rem;
138
+ font-size: 1rem;
139
+ line-height: 1.5rem;
140
+ gap: 0.5rem;
141
+ }
142
+
143
+ /* Chip Parts */
144
+ .chip-icon {
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ width: 1.125rem;
149
+ height: 1.125rem;
150
+ font-size: 1rem;
151
+ }
152
+
153
+ .chip-label {
154
+ display: inline-flex;
155
+ }
156
+
157
+ .chip-close {
158
+ display: flex;
159
+ align-items: center;
160
+ justify-content: center;
161
+ width: 1.125rem;
162
+ height: 1.125rem;
163
+ margin-left: 0.125rem;
164
+ font-size: 1rem;
165
+ color: currentColor;
166
+ opacity: 0.7;
167
+ background-color: transparent;
168
+ border: none;
169
+ border-radius: 50%;
170
+ cursor: pointer;
171
+ transition: opacity 150ms ease-in-out;
172
+ }
173
+
174
+ .chip-close:hover {
175
+ opacity: 1;
176
+ }
177
+
178
+ /* Selected State */
179
+ .chip-selected {
180
+ background-color: var(--color-primary);
181
+ color: var(--color-primary-content);
182
+ }
183
+
184
+ .chip-selected.chip-outlined {
185
+ background-color: var(--color-primary);
186
+ border-color: var(--color-primary);
187
+ color: var(--color-primary-content);
188
+ }
189
+
190
+ /* Disabled State */
191
+ .chip:disabled,
192
+ .chip-disabled {
193
+ opacity: 0.5;
194
+ pointer-events: none;
195
+ cursor: not-allowed;
196
+ }
197
+
198
+ /* Chip Group */
199
+ .chip-group {
200
+ display: flex;
201
+ flex-wrap: wrap;
202
+ gap: 0.5rem;
203
+ }
204
+
205
+ /* Reduce Motion */
206
+ @media (prefers-reduced-motion: reduce) {
207
+ .chip,
208
+ .chip-delete {
209
+ transition: none;
210
+ }
211
+ }
212
+ }
213
+ `;
214
+
215
+ const sheet = new CSSStyleSheet();
216
+ sheet.replaceSync(css);
217
+ export const styles = sheet;
218
+ export default sheet;
@@ -0,0 +1,261 @@
1
+ // Auto-generated from collapse.css
2
+ export const css = `/**
3
+ * Collapse Component Styles
4
+ * DuskMoonUI - Material Design 3 inspired collapsible content system
5
+ */
6
+
7
+ @layer components {
8
+ /* Base Collapse */
9
+ .collapse {
10
+ display: grid;
11
+ grid-template-rows: 0fr;
12
+ transition: grid-template-rows 300ms ease-in-out;
13
+ }
14
+
15
+ .collapse.show {
16
+ grid-template-rows: 1fr;
17
+ }
18
+
19
+ /* Collapse Content */
20
+ .collapse-content {
21
+ overflow: hidden;
22
+ }
23
+
24
+ /* Collapse Inner (for padding) */
25
+ .collapse-inner {
26
+ /* Add padding here as needed */
27
+ }
28
+
29
+ /* Collapse with Fade */
30
+ .collapse-fade {
31
+ opacity: 0;
32
+ transition: grid-template-rows 300ms ease-in-out, opacity 200ms ease-in-out;
33
+ }
34
+
35
+ .collapse-fade.show {
36
+ opacity: 1;
37
+ transition: grid-template-rows 300ms ease-in-out, opacity 300ms ease-in-out 100ms;
38
+ }
39
+
40
+ /* Collapse Toggle Button */
41
+ .collapse-toggle {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ gap: 0.5rem;
45
+ padding: 0.5rem 1rem;
46
+ font-size: 0.875rem;
47
+ font-weight: 500;
48
+ color: var(--color-primary);
49
+ background-color: transparent;
50
+ border: none;
51
+ cursor: pointer;
52
+ transition: background-color 150ms ease-in-out;
53
+ border-radius: 0.5rem;
54
+ }
55
+
56
+ .collapse-toggle:hover {
57
+ background-color: var(--color-primary-container);
58
+ }
59
+
60
+ .collapse-toggle:focus-visible {
61
+ outline: 2px solid var(--color-primary);
62
+ outline-offset: 2px;
63
+ }
64
+
65
+ /* Toggle Icon */
66
+ .collapse-toggle-icon {
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ width: 1.25rem;
71
+ height: 1.25rem;
72
+ transition: transform 200ms ease-in-out;
73
+ }
74
+
75
+ .collapse-toggle[aria-expanded="true"] .collapse-toggle-icon {
76
+ transform: rotate(180deg);
77
+ }
78
+
79
+ /* Collapse Card Variant */
80
+ .collapse-card {
81
+ background-color: var(--color-surface);
82
+ border: 1px solid var(--color-outline-variant);
83
+ border-radius: 0.75rem;
84
+ overflow: hidden;
85
+ }
86
+
87
+ .collapse-card .collapse-toggle {
88
+ width: 100%;
89
+ justify-content: space-between;
90
+ padding: 1rem;
91
+ border-radius: 0;
92
+ color: var(--color-on-surface);
93
+ }
94
+
95
+ .collapse-card .collapse-toggle:hover {
96
+ background-color: var(--color-surface-container);
97
+ }
98
+
99
+ .collapse-card .collapse-inner {
100
+ padding: 0 1rem 1rem;
101
+ color: var(--color-on-surface-variant);
102
+ }
103
+
104
+ /* Horizontal Collapse */
105
+ .collapse-horizontal {
106
+ display: grid;
107
+ grid-template-columns: 0fr;
108
+ transition: grid-template-columns 300ms ease-in-out;
109
+ }
110
+
111
+ .collapse-horizontal.show {
112
+ grid-template-columns: 1fr;
113
+ }
114
+
115
+ .collapse-horizontal .collapse-content {
116
+ overflow: hidden;
117
+ white-space: nowrap;
118
+ }
119
+
120
+ /* Fixed Width Horizontal */
121
+ .collapse-horizontal-fixed {
122
+ display: block;
123
+ width: 0;
124
+ overflow: hidden;
125
+ transition: width 300ms ease-in-out;
126
+ }
127
+
128
+ .collapse-horizontal-fixed.show {
129
+ width: var(--collapse-width, 20rem);
130
+ }
131
+
132
+ /* Nested Collapse */
133
+ .collapse-nested {
134
+ margin-left: 1rem;
135
+ padding-left: 1rem;
136
+ border-left: 2px solid var(--color-outline-variant);
137
+ }
138
+
139
+ /* Show More/Less Pattern */
140
+ .collapse-showmore {
141
+ position: relative;
142
+ }
143
+
144
+ .collapse-showmore:not(.show)::after {
145
+ content: '';
146
+ position: absolute;
147
+ bottom: 0;
148
+ left: 0;
149
+ right: 0;
150
+ height: 3rem;
151
+ background: linear-gradient(to bottom, transparent, var(--color-surface));
152
+ pointer-events: none;
153
+ }
154
+
155
+ .collapse-showmore-toggle {
156
+ display: flex;
157
+ align-items: center;
158
+ justify-content: center;
159
+ gap: 0.25rem;
160
+ width: 100%;
161
+ padding: 0.5rem;
162
+ margin-top: 0.5rem;
163
+ font-size: 0.75rem;
164
+ font-weight: 500;
165
+ color: var(--color-primary);
166
+ background-color: transparent;
167
+ border: none;
168
+ cursor: pointer;
169
+ }
170
+
171
+ .collapse-showmore-toggle:hover {
172
+ text-decoration: underline;
173
+ }
174
+
175
+ /* Collapse Group */
176
+ .collapse-group {
177
+ display: flex;
178
+ flex-direction: column;
179
+ gap: 0.5rem;
180
+ }
181
+
182
+ /* Transition Speed Variants */
183
+ .collapse-fast {
184
+ transition-duration: 150ms;
185
+ }
186
+
187
+ .collapse-slow {
188
+ transition-duration: 500ms;
189
+ }
190
+
191
+ /* Easing Variants */
192
+ .collapse-ease-in {
193
+ transition-timing-function: ease-in;
194
+ }
195
+
196
+ .collapse-ease-out {
197
+ transition-timing-function: ease-out;
198
+ }
199
+
200
+ .collapse-ease-in-out {
201
+ transition-timing-function: ease-in-out;
202
+ }
203
+
204
+ .collapse-spring {
205
+ transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
206
+ }
207
+
208
+ /* Initial States */
209
+ .collapse-hidden {
210
+ display: none;
211
+ }
212
+
213
+ /* Accessibility - Screen Reader Only Content */
214
+ .collapse-sr-only {
215
+ position: absolute;
216
+ width: 1px;
217
+ height: 1px;
218
+ padding: 0;
219
+ margin: -1px;
220
+ overflow: hidden;
221
+ clip: rect(0, 0, 0, 0);
222
+ white-space: nowrap;
223
+ border: 0;
224
+ }
225
+
226
+ /* With Max Height (fallback for older browsers) */
227
+ .collapse-maxheight {
228
+ max-height: 0;
229
+ overflow: hidden;
230
+ transition: max-height 300ms ease-in-out;
231
+ }
232
+
233
+ .collapse-maxheight.show {
234
+ max-height: var(--collapse-max-height, 100rem);
235
+ }
236
+
237
+ /* Animated Height (JS helper class) */
238
+ .collapse-animating {
239
+ overflow: hidden;
240
+ transition: height 300ms ease-in-out;
241
+ }
242
+
243
+ /* Reduce Motion */
244
+ @media (prefers-reduced-motion: reduce) {
245
+ .collapse,
246
+ .collapse-fade,
247
+ .collapse-horizontal,
248
+ .collapse-horizontal-fixed,
249
+ .collapse-toggle-icon,
250
+ .collapse-maxheight,
251
+ .collapse-animating {
252
+ transition: none;
253
+ }
254
+ }
255
+ }
256
+ `;
257
+
258
+ const sheet = new CSSStyleSheet();
259
+ sheet.replaceSync(css);
260
+ export const styles = sheet;
261
+ export default sheet;