ui-svelte 0.2.11 → 0.2.13

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 (225) hide show
  1. package/README.md +2 -2
  2. package/dist/charts/ArcChart.svelte +9 -14
  3. package/dist/charts/ArcChart.svelte.d.ts +3 -3
  4. package/dist/charts/AreaChart.svelte +347 -118
  5. package/dist/charts/AreaChart.svelte.d.ts +33 -4
  6. package/dist/charts/BarChart.svelte +288 -66
  7. package/dist/charts/BarChart.svelte.d.ts +26 -1
  8. package/dist/charts/Candlestick.svelte +53 -50
  9. package/dist/charts/Candlestick.svelte.d.ts +8 -8
  10. package/dist/charts/LineChart.svelte +391 -91
  11. package/dist/charts/LineChart.svelte.d.ts +26 -3
  12. package/dist/charts/PieChart.svelte +333 -92
  13. package/dist/charts/PieChart.svelte.d.ts +33 -5
  14. package/dist/charts/css/arc-chart.css +3 -3
  15. package/dist/charts/css/area-chart.css +127 -29
  16. package/dist/charts/css/bar-chart.css +114 -8
  17. package/dist/charts/css/candlestick.css +2 -0
  18. package/dist/charts/css/line-chart.css +111 -13
  19. package/dist/charts/css/pie-chart.css +92 -20
  20. package/dist/control/Audio.svelte +86 -44
  21. package/dist/control/Audio.svelte.d.ts +4 -1
  22. package/dist/control/Button.svelte +18 -27
  23. package/dist/control/Button.svelte.d.ts +3 -2
  24. package/dist/control/Fab.svelte +103 -0
  25. package/dist/control/Fab.svelte.d.ts +25 -0
  26. package/dist/control/IconButton.svelte +17 -27
  27. package/dist/control/IconButton.svelte.d.ts +3 -3
  28. package/dist/control/Image.svelte +123 -0
  29. package/dist/control/Image.svelte.d.ts +13 -0
  30. package/dist/control/Record.svelte +141 -98
  31. package/dist/control/Record.svelte.d.ts +2 -1
  32. package/dist/control/ToggleGroup.svelte +22 -8
  33. package/dist/control/ToggleGroup.svelte.d.ts +2 -1
  34. package/dist/control/ToggleTheme.svelte +13 -11
  35. package/dist/control/ToggleTheme.svelte.d.ts +3 -2
  36. package/dist/control/Video.svelte +57 -29
  37. package/dist/control/Video.svelte.d.ts +1 -0
  38. package/dist/control/css/btn.css +200 -152
  39. package/dist/control/css/fab.css +84 -0
  40. package/dist/control/css/image.css +56 -0
  41. package/dist/control/css/media.css +95 -30
  42. package/dist/control/css/toggle-group.css +253 -84
  43. package/dist/control/css/video.css +1 -14
  44. package/dist/css/animations.css +5 -9
  45. package/dist/css/base.css +13 -347
  46. package/dist/css/decorations.css +561 -0
  47. package/dist/css/rich-text.css +485 -0
  48. package/dist/css/transitions.css +158 -0
  49. package/dist/css/typography.css +291 -0
  50. package/dist/css/utilities.css +0 -4
  51. package/dist/display/Accordion.svelte +28 -4
  52. package/dist/display/Accordion.svelte.d.ts +2 -1
  53. package/dist/display/Alert.svelte +32 -12
  54. package/dist/display/Alert.svelte.d.ts +2 -3
  55. package/dist/display/Avatar.svelte +23 -18
  56. package/dist/display/Avatar.svelte.d.ts +4 -1
  57. package/dist/display/AvatarGroup.svelte +20 -18
  58. package/dist/display/AvatarGroup.svelte.d.ts +6 -3
  59. package/dist/display/Badge.svelte +11 -4
  60. package/dist/display/Badge.svelte.d.ts +2 -1
  61. package/dist/display/Card.svelte +15 -14
  62. package/dist/display/Card.svelte.d.ts +2 -3
  63. package/dist/display/Carousel.svelte +130 -99
  64. package/dist/display/Carousel.svelte.d.ts +6 -4
  65. package/dist/display/ChatBox.svelte +245 -106
  66. package/dist/display/ChatBox.svelte.d.ts +32 -5
  67. package/dist/display/Chip.svelte +31 -17
  68. package/dist/display/Chip.svelte.d.ts +3 -2
  69. package/dist/display/Code.svelte +7 -4
  70. package/dist/display/Code.svelte.d.ts +1 -0
  71. package/dist/display/Collapsible.svelte +30 -4
  72. package/dist/display/Collapsible.svelte.d.ts +2 -1
  73. package/dist/display/Countdown.svelte +169 -0
  74. package/dist/display/Countdown.svelte.d.ts +21 -0
  75. package/dist/display/Empty.svelte +37 -3
  76. package/dist/display/Empty.svelte.d.ts +3 -0
  77. package/dist/display/Item.svelte +42 -11
  78. package/dist/display/Item.svelte.d.ts +4 -2
  79. package/dist/display/Map.svelte +488 -0
  80. package/dist/display/Map.svelte.d.ts +44 -0
  81. package/dist/display/Marquee.svelte +0 -2
  82. package/dist/display/Section.svelte +14 -12
  83. package/dist/display/Section.svelte.d.ts +2 -3
  84. package/dist/display/Skeleton.svelte +32 -0
  85. package/dist/display/Skeleton.svelte.d.ts +10 -0
  86. package/dist/display/Table.svelte +94 -132
  87. package/dist/display/Table.svelte.d.ts +10 -1
  88. package/dist/display/css/accordion.css +349 -52
  89. package/dist/display/css/alert.css +38 -18
  90. package/dist/display/css/avatar-group.css +38 -75
  91. package/dist/display/css/avatar.css +139 -121
  92. package/dist/display/css/badge.css +50 -27
  93. package/dist/display/css/card.css +123 -71
  94. package/dist/display/css/carousel.css +25 -5
  95. package/dist/display/css/chat-box.css +158 -26
  96. package/dist/display/css/chip.css +142 -68
  97. package/dist/display/css/code.css +2 -6
  98. package/dist/display/css/collapsible.css +349 -45
  99. package/dist/display/css/countdown.css +206 -0
  100. package/dist/display/css/divider.css +8 -6
  101. package/dist/display/css/empty.css +7 -0
  102. package/dist/display/css/item.css +330 -84
  103. package/dist/display/css/map.css +164 -0
  104. package/dist/display/css/marquee.css +0 -3
  105. package/dist/display/css/section.css +89 -65
  106. package/dist/display/css/skeleton.css +58 -0
  107. package/dist/display/css/table.css +309 -193
  108. package/dist/form/Checkbox.svelte +11 -5
  109. package/dist/form/Checkbox.svelte.d.ts +2 -1
  110. package/dist/form/ColorField.svelte +601 -0
  111. package/dist/form/ColorField.svelte.d.ts +29 -0
  112. package/dist/form/ComboBox.svelte +24 -9
  113. package/dist/form/ComboBox.svelte.d.ts +2 -2
  114. package/dist/form/CsvField.svelte +62 -136
  115. package/dist/form/CsvField.svelte.d.ts +2 -2
  116. package/dist/form/DateField.svelte +33 -15
  117. package/dist/form/DateField.svelte.d.ts +2 -1
  118. package/dist/form/DateRange.svelte +436 -0
  119. package/dist/form/DateRange.svelte.d.ts +24 -0
  120. package/dist/form/DragDrop.svelte +578 -0
  121. package/dist/form/DragDrop.svelte.d.ts +33 -0
  122. package/dist/form/Dropzone.svelte +28 -8
  123. package/dist/form/Dropzone.svelte.d.ts +2 -2
  124. package/dist/form/Editor.svelte +626 -0
  125. package/dist/form/Editor.svelte.d.ts +50 -0
  126. package/dist/form/ImageCropper.svelte +422 -61
  127. package/dist/form/ImageCropper.svelte.d.ts +15 -1
  128. package/dist/form/{PasswordStrength.svelte → PasswordField.svelte} +58 -24
  129. package/dist/form/{PasswordStrength.svelte.d.ts → PasswordField.svelte.d.ts} +6 -5
  130. package/dist/form/PhoneField.svelte +26 -14
  131. package/dist/form/PhoneField.svelte.d.ts +4 -3
  132. package/dist/form/PinField.svelte +39 -31
  133. package/dist/form/PinField.svelte.d.ts +3 -3
  134. package/dist/form/RadioGroup.svelte +9 -5
  135. package/dist/form/RadioGroup.svelte.d.ts +1 -1
  136. package/dist/form/Select.svelte +20 -19
  137. package/dist/form/Select.svelte.d.ts +2 -2
  138. package/dist/form/Slider.svelte +10 -4
  139. package/dist/form/Slider.svelte.d.ts +2 -1
  140. package/dist/form/TextField.svelte +29 -11
  141. package/dist/form/TextField.svelte.d.ts +5 -4
  142. package/dist/form/Textarea.svelte +15 -6
  143. package/dist/form/Textarea.svelte.d.ts +2 -2
  144. package/dist/form/Toggle.svelte +7 -3
  145. package/dist/form/Toggle.svelte.d.ts +1 -1
  146. package/dist/form/css/checkbox.css +18 -2
  147. package/dist/form/css/color-field.css +141 -0
  148. package/dist/form/css/control.css +193 -82
  149. package/dist/form/css/csv-field.css +221 -0
  150. package/dist/form/css/date-range.css +122 -0
  151. package/dist/form/css/date.css +24 -2
  152. package/dist/form/css/drag-drop.css +234 -0
  153. package/dist/form/css/dropzone.css +153 -34
  154. package/dist/form/css/editor.css +367 -0
  155. package/dist/form/css/field.css +4 -0
  156. package/dist/form/css/image-cropper.css +242 -20
  157. package/dist/form/css/radio-group.css +26 -1
  158. package/dist/form/css/select.css +2 -2
  159. package/dist/form/css/slider.css +37 -0
  160. package/dist/form/css/textarea.css +178 -75
  161. package/dist/form/css/toggle.css +15 -3
  162. package/dist/hooks/use-chat.svelte.js +1 -1
  163. package/dist/hooks/use-form.svelte.js +3 -3
  164. package/dist/hooks/use-search.svelte.js +0 -3
  165. package/dist/hooks/use-table.svelte.d.ts +1 -0
  166. package/dist/hooks/use-table.svelte.js +6 -0
  167. package/dist/icons/index.d.ts +34 -2
  168. package/dist/icons/index.js +36 -4
  169. package/dist/index.css +44 -49
  170. package/dist/index.d.ts +14 -4
  171. package/dist/index.js +13 -3
  172. package/dist/layout/AppBar.svelte +22 -14
  173. package/dist/layout/AppBar.svelte.d.ts +2 -1
  174. package/dist/layout/Footer.svelte +19 -11
  175. package/dist/layout/Footer.svelte.d.ts +2 -1
  176. package/dist/layout/Provider.svelte +32 -9
  177. package/dist/layout/Provider.svelte.d.ts +3 -1
  178. package/dist/layout/Sidebar.svelte +17 -8
  179. package/dist/layout/Sidebar.svelte.d.ts +2 -1
  180. package/dist/layout/css/app-bar.css +63 -66
  181. package/dist/layout/css/footer.css +62 -65
  182. package/dist/layout/css/sidebar.css +120 -59
  183. package/dist/navigation/BottomNav.svelte +51 -14
  184. package/dist/navigation/FooterGroup.svelte +1 -1
  185. package/dist/navigation/NavMenu.svelte +47 -23
  186. package/dist/navigation/NavMenu.svelte.d.ts +29 -0
  187. package/dist/navigation/Pagination.svelte +158 -0
  188. package/dist/navigation/Pagination.svelte.d.ts +18 -0
  189. package/dist/navigation/SideNav.svelte +30 -25
  190. package/dist/navigation/SideNav.svelte.d.ts +2 -3
  191. package/dist/navigation/Tabs.svelte +17 -7
  192. package/dist/navigation/Tabs.svelte.d.ts +2 -2
  193. package/dist/navigation/css/bottom-nav.css +319 -257
  194. package/dist/navigation/css/footer-group.css +1 -1
  195. package/dist/navigation/css/footer-nav.css +1 -1
  196. package/dist/navigation/css/nav-menu.css +331 -106
  197. package/dist/navigation/css/pagination.css +74 -0
  198. package/dist/navigation/css/side-nav.css +514 -75
  199. package/dist/navigation/css/tabs.css +246 -52
  200. package/dist/overlay/AlertDialog.svelte +58 -0
  201. package/dist/overlay/AlertDialog.svelte.d.ts +14 -25
  202. package/dist/overlay/Command.svelte +347 -0
  203. package/dist/overlay/Command.svelte.d.ts +33 -25
  204. package/dist/overlay/Drawer.svelte +49 -21
  205. package/dist/overlay/Drawer.svelte.d.ts +2 -2
  206. package/dist/overlay/Dropdown.svelte +3 -3
  207. package/dist/overlay/Modal.svelte +51 -16
  208. package/dist/overlay/Modal.svelte.d.ts +3 -3
  209. package/dist/overlay/Toast.svelte +41 -17
  210. package/dist/overlay/Toast.svelte.d.ts +1 -1
  211. package/dist/overlay/Tooltip.svelte +36 -27
  212. package/dist/overlay/Tooltip.svelte.d.ts +2 -2
  213. package/dist/overlay/css/command.css +68 -0
  214. package/dist/overlay/css/drawer.css +63 -24
  215. package/dist/overlay/css/dropdown.css +1 -1
  216. package/dist/overlay/css/hovercard.css +1 -1
  217. package/dist/overlay/css/modal.css +79 -27
  218. package/dist/overlay/css/toast.css +40 -24
  219. package/dist/overlay/css/tooltip.css +110 -67
  220. package/dist/stores/theme.svelte.js +44 -12
  221. package/dist/stores/toast.svelte.d.ts +4 -4
  222. package/dist/stores/toast.svelte.js +2 -2
  223. package/package.json +1 -1
  224. package/dist/utils/charts.d.ts +0 -27
  225. package/dist/utils/charts.js +0 -140
@@ -1,53 +1,13 @@
1
1
  @layer components {
2
2
  .collapsible {
3
- @apply w-full transition-all duration-200;
4
-
5
- &.is-primary {
6
- @apply border border-primary/20 rounded-lg overflow-hidden;
7
- .collapsible-header {
8
- @apply bg-primary/5 hover:bg-primary/10;
9
- &.is-open {
10
- @apply bg-primary/10 text-primary;
11
- }
12
- }
13
- }
14
-
15
- &.is-secondary {
16
- @apply border border-secondary/20 rounded-lg overflow-hidden;
17
- .collapsible-header {
18
- @apply bg-secondary/5 hover:bg-secondary/10;
19
- &.is-open {
20
- @apply bg-secondary/10 text-secondary;
21
- }
22
- }
23
- }
24
-
25
- &.is-muted {
26
- @apply border border-muted rounded-lg overflow-hidden;
27
- .collapsible-header {
28
- @apply bg-muted/30 hover:bg-muted/50;
29
- &.is-open {
30
- @apply bg-muted text-on-muted;
31
- }
32
- }
33
- }
34
-
35
- &.is-outline {
36
- @apply border border-muted rounded-lg overflow-hidden;
37
- .collapsible-header {
38
- @apply hover:bg-muted/30;
39
- &.is-open {
40
- @apply bg-muted/20;
41
- }
42
- }
43
- }
3
+ @apply w-full transition-all duration-300 rounded-lg overflow-hidden;
44
4
 
45
5
  &.is-disabled {
46
6
  @apply opacity-50 pointer-events-none;
47
7
  }
48
8
 
49
9
  .collapsible-header {
50
- @apply flex justify-between items-center gap-3 px-4 py-3 cursor-pointer select-none transition-all duration-200;
10
+ @apply flex justify-between items-center gap-3 px-4 py-3 cursor-pointer select-none transition-all duration-300;
51
11
 
52
12
  .collapsible-start {
53
13
  @apply flex items-center gap-3 flex-1;
@@ -65,16 +25,22 @@
65
25
  @apply flex items-center;
66
26
 
67
27
  .collapsible-arrow {
68
- @apply size-5 transition-transform duration-200 text-on-muted;
28
+ @apply size-5 transition-all duration-300 text-on-muted;
69
29
  &.is-active {
70
- @apply rotate-180;
30
+ @apply rotate-180 text-current;
71
31
  }
72
32
  }
73
33
  }
74
34
 
75
35
  &:hover:not(.is-disabled) {
76
36
  .collapsible-arrow {
77
- @apply text-on-surface;
37
+ @apply text-current;
38
+ }
39
+ }
40
+
41
+ &.is-open {
42
+ .collapsible-arrow {
43
+ @apply text-current;
78
44
  }
79
45
  }
80
46
  }
@@ -82,5 +48,343 @@
82
48
  .collapsible-content {
83
49
  @apply px-4 py-3 text-sm text-on-surface/80;
84
50
  }
51
+
52
+ &.is-ghost {
53
+ @apply border border-transparent;
54
+
55
+ .collapsible-header {
56
+ .collapsible-label {
57
+ @apply font-normal;
58
+ }
59
+
60
+ &:hover .collapsible-label {
61
+ @apply font-semibold;
62
+ }
63
+ }
64
+
65
+ .collapsible-header.is-open .collapsible-label {
66
+ @apply font-semibold;
67
+ }
68
+
69
+ &.is-primary {
70
+ .collapsible-header:hover {
71
+ @apply text-primary;
72
+ }
73
+ .collapsible-header.is-open {
74
+ @apply text-primary;
75
+ }
76
+ }
77
+ &.is-secondary {
78
+ .collapsible-header:hover {
79
+ @apply text-secondary;
80
+ }
81
+ .collapsible-header.is-open {
82
+ @apply text-secondary;
83
+ }
84
+ }
85
+ &.is-muted {
86
+ .collapsible-header:hover {
87
+ @apply text-on-muted;
88
+ }
89
+ .collapsible-header.is-open {
90
+ @apply text-on-muted;
91
+ }
92
+ }
93
+ &.is-success {
94
+ .collapsible-header:hover {
95
+ @apply text-success;
96
+ }
97
+ .collapsible-header.is-open {
98
+ @apply text-success;
99
+ }
100
+ }
101
+ &.is-info {
102
+ .collapsible-header:hover {
103
+ @apply text-info;
104
+ }
105
+ .collapsible-header.is-open {
106
+ @apply text-info;
107
+ }
108
+ }
109
+ &.is-warning {
110
+ .collapsible-header:hover {
111
+ @apply text-warning;
112
+ }
113
+ .collapsible-header.is-open {
114
+ @apply text-warning;
115
+ }
116
+ }
117
+ &.is-danger {
118
+ .collapsible-header:hover {
119
+ @apply text-danger;
120
+ }
121
+ .collapsible-header.is-open {
122
+ @apply text-danger;
123
+ }
124
+ }
125
+ &.is-surface {
126
+ .collapsible-header:hover {
127
+ @apply text-on-surface;
128
+ }
129
+ .collapsible-header.is-open {
130
+ @apply text-on-surface;
131
+ }
132
+ }
133
+ &.is-default {
134
+ .collapsible-header:hover {
135
+ @apply text-on-muted;
136
+ }
137
+ .collapsible-header.is-open {
138
+ @apply text-on-muted;
139
+ }
140
+ }
141
+ }
142
+
143
+ &.is-soft {
144
+ @apply border border-transparent;
145
+
146
+ &.is-primary {
147
+ @apply bg-soft-primary/50;
148
+ .collapsible-header:hover {
149
+ @apply bg-soft-primary/80;
150
+ }
151
+ .collapsible-header.is-open {
152
+ @apply bg-soft-primary text-primary;
153
+ }
154
+ }
155
+ &.is-secondary {
156
+ @apply bg-soft-secondary/50;
157
+ .collapsible-header:hover {
158
+ @apply bg-soft-secondary/80;
159
+ }
160
+ .collapsible-header.is-open {
161
+ @apply bg-soft-secondary text-secondary;
162
+ }
163
+ }
164
+ &.is-muted {
165
+ @apply bg-soft-muted/30;
166
+ .collapsible-header:hover {
167
+ @apply bg-soft-muted/50;
168
+ }
169
+ .collapsible-header.is-open {
170
+ @apply bg-soft-muted text-on-muted;
171
+ }
172
+ }
173
+ &.is-success {
174
+ @apply bg-soft-success/50;
175
+ .collapsible-header:hover {
176
+ @apply bg-soft-success/80;
177
+ }
178
+ .collapsible-header.is-open {
179
+ @apply bg-soft-success text-success;
180
+ }
181
+ }
182
+ &.is-info {
183
+ @apply bg-soft-info/50;
184
+ .collapsible-header:hover {
185
+ @apply bg-soft-info/80;
186
+ }
187
+ .collapsible-header.is-open {
188
+ @apply bg-soft-info text-info;
189
+ }
190
+ }
191
+ &.is-warning {
192
+ @apply bg-soft-warning/50;
193
+ .collapsible-header:hover {
194
+ @apply bg-soft-warning/80;
195
+ }
196
+ .collapsible-header.is-open {
197
+ @apply bg-soft-warning text-warning;
198
+ }
199
+ }
200
+ &.is-danger {
201
+ @apply bg-soft-danger/50;
202
+ .collapsible-header:hover {
203
+ @apply bg-soft-danger/80;
204
+ }
205
+ .collapsible-header.is-open {
206
+ @apply bg-soft-danger text-danger;
207
+ }
208
+ }
209
+ &.is-surface {
210
+ @apply bg-surface/50;
211
+ .collapsible-header:hover {
212
+ @apply bg-surface/80;
213
+ }
214
+ .collapsible-header.is-open {
215
+ @apply bg-surface text-on-surface;
216
+ }
217
+ }
218
+ &.is-background {
219
+ @apply bg-background/20;
220
+ .collapsible-header:hover {
221
+ @apply bg-background/30;
222
+ }
223
+ .collapsible-header.is-open {
224
+ @apply bg-background/50;
225
+ }
226
+ }
227
+ }
228
+
229
+ &.is-solid {
230
+ @apply border border-transparent;
231
+
232
+ &.is-primary {
233
+ .collapsible-header:hover {
234
+ @apply bg-primary/20;
235
+ }
236
+ .collapsible-header.is-open {
237
+ @apply bg-primary text-on-primary;
238
+ }
239
+ }
240
+ &.is-secondary {
241
+ .collapsible-header:hover {
242
+ @apply bg-secondary/20;
243
+ }
244
+ .collapsible-header.is-open {
245
+ @apply bg-secondary text-on-secondary;
246
+ }
247
+ }
248
+ &.is-muted {
249
+ .collapsible-header:hover {
250
+ @apply bg-muted/50;
251
+ }
252
+ .collapsible-header.is-open {
253
+ @apply bg-on-muted text-muted;
254
+ }
255
+ }
256
+ &.is-success {
257
+ .collapsible-header:hover {
258
+ @apply bg-success/20;
259
+ }
260
+ .collapsible-header.is-open {
261
+ @apply bg-success text-on-success;
262
+ }
263
+ }
264
+ &.is-info {
265
+ .collapsible-header:hover {
266
+ @apply bg-info/20;
267
+ }
268
+ .collapsible-header.is-open {
269
+ @apply bg-info text-on-info;
270
+ }
271
+ }
272
+ &.is-warning {
273
+ .collapsible-header:hover {
274
+ @apply bg-warning/20;
275
+ }
276
+ .collapsible-header.is-open {
277
+ @apply bg-warning text-on-warning;
278
+ }
279
+ }
280
+ &.is-danger {
281
+ .collapsible-header:hover {
282
+ @apply bg-danger/20;
283
+ }
284
+ .collapsible-header.is-open {
285
+ @apply bg-danger text-on-danger;
286
+ }
287
+ }
288
+ &.is-surface {
289
+ .collapsible-header:hover {
290
+ @apply bg-surface/50;
291
+ }
292
+ .collapsible-header.is-open {
293
+ @apply bg-surface text-on-surface;
294
+ }
295
+ }
296
+ &.is-background {
297
+ .collapsible-header:hover {
298
+ @apply bg-background/50;
299
+ }
300
+ .collapsible-header.is-open {
301
+ @apply bg-background text-on-background;
302
+ }
303
+ }
304
+ }
305
+
306
+ &.is-outlined {
307
+ &.is-primary {
308
+ @apply border border-primary/30;
309
+ .collapsible-header:hover {
310
+ @apply bg-primary/10;
311
+ }
312
+ .collapsible-header.is-open {
313
+ @apply bg-primary/20 text-primary;
314
+ }
315
+ }
316
+ &.is-secondary {
317
+ @apply border border-secondary/30;
318
+ .collapsible-header:hover {
319
+ @apply bg-secondary/10;
320
+ }
321
+ .collapsible-header.is-open {
322
+ @apply bg-secondary/20 text-secondary;
323
+ }
324
+ }
325
+ &.is-muted {
326
+ @apply border border-muted;
327
+ .collapsible-header:hover {
328
+ @apply bg-muted/30;
329
+ }
330
+ .collapsible-header.is-open {
331
+ @apply bg-muted/50 text-on-muted;
332
+ }
333
+ }
334
+ &.is-success {
335
+ @apply border border-success/30;
336
+ .collapsible-header:hover {
337
+ @apply bg-success/10;
338
+ }
339
+ .collapsible-header.is-open {
340
+ @apply bg-success/20 text-success;
341
+ }
342
+ }
343
+ &.is-info {
344
+ @apply border border-info/30;
345
+ .collapsible-header:hover {
346
+ @apply bg-info/10;
347
+ }
348
+ .collapsible-header.is-open {
349
+ @apply bg-info/20 text-info;
350
+ }
351
+ }
352
+ &.is-warning {
353
+ @apply border border-warning/30;
354
+ .collapsible-header:hover {
355
+ @apply bg-warning/10;
356
+ }
357
+ .collapsible-header.is-open {
358
+ @apply bg-warning/20 text-warning;
359
+ }
360
+ }
361
+ &.is-danger {
362
+ @apply border border-danger/30;
363
+ .collapsible-header:hover {
364
+ @apply bg-danger/10;
365
+ }
366
+ .collapsible-header.is-open {
367
+ @apply bg-danger/20 text-danger;
368
+ }
369
+ }
370
+ &.is-surface {
371
+ @apply border border-on-surface/30;
372
+ .collapsible-header:hover {
373
+ @apply bg-surface/50;
374
+ }
375
+ .collapsible-header.is-open {
376
+ @apply bg-surface text-on-surface;
377
+ }
378
+ }
379
+ &.is-background {
380
+ @apply border border-background;
381
+ .collapsible-header:hover {
382
+ @apply bg-background/30;
383
+ }
384
+ .collapsible-header.is-open {
385
+ @apply bg-background;
386
+ }
387
+ }
388
+ }
85
389
  }
86
390
  }
@@ -0,0 +1,206 @@
1
+ @layer components {
2
+ .countdown {
3
+ @apply flex items-center justify-center gap-2;
4
+ @apply font-bold tabular-nums;
5
+ }
6
+
7
+ .countdown-unit {
8
+ @apply flex flex-col items-center gap-1;
9
+ }
10
+
11
+ .countdown-box {
12
+ @apply flex items-center justify-center rounded-ui;
13
+ @apply transition-all duration-300;
14
+ }
15
+
16
+ .countdown-digit {
17
+ @apply font-bold tracking-tight;
18
+ }
19
+
20
+ .countdown-label {
21
+ @apply text-xs font-medium uppercase tracking-wider opacity-70;
22
+ }
23
+
24
+ .countdown-separator {
25
+ @apply font-bold opacity-50;
26
+ @apply self-start;
27
+ }
28
+
29
+ .countdown {
30
+ &.is-sm {
31
+ @apply gap-1;
32
+
33
+ .countdown-box {
34
+ @apply h-10 w-12 text-xl;
35
+ }
36
+
37
+ .countdown-separator {
38
+ @apply text-xl mt-2;
39
+ }
40
+
41
+ .countdown-label {
42
+ @apply text-[10px];
43
+ }
44
+ }
45
+
46
+ &.is-md {
47
+ @apply gap-2;
48
+
49
+ .countdown-box {
50
+ @apply h-14 w-16 text-3xl;
51
+ }
52
+
53
+ .countdown-separator {
54
+ @apply text-3xl mt-3;
55
+ }
56
+
57
+ .countdown-label {
58
+ @apply text-xs;
59
+ }
60
+ }
61
+
62
+ &.is-lg {
63
+ @apply gap-3;
64
+
65
+ .countdown-box {
66
+ @apply h-20 w-24 text-5xl;
67
+ }
68
+
69
+ .countdown-separator {
70
+ @apply text-5xl mt-5;
71
+ }
72
+
73
+ .countdown-label {
74
+ @apply text-sm;
75
+ }
76
+ }
77
+
78
+ &.is-xl {
79
+ @apply gap-4;
80
+
81
+ .countdown-box {
82
+ @apply h-28 w-32 text-7xl;
83
+ }
84
+
85
+ .countdown-separator {
86
+ @apply text-7xl mt-7;
87
+ }
88
+
89
+ .countdown-label {
90
+ @apply text-base;
91
+ }
92
+ }
93
+ }
94
+
95
+ .countdown.is-solid {
96
+ &.is-primary .countdown-box {
97
+ @apply bg-primary text-on-primary;
98
+ }
99
+ &.is-secondary .countdown-box {
100
+ @apply bg-secondary text-on-secondary;
101
+ }
102
+ &.is-muted .countdown-box {
103
+ @apply bg-muted text-on-muted;
104
+ }
105
+ &.is-surface .countdown-box {
106
+ @apply bg-surface text-on-surface;
107
+ }
108
+ &.is-success .countdown-box {
109
+ @apply bg-success text-on-success;
110
+ }
111
+ &.is-info .countdown-box {
112
+ @apply bg-info text-on-info;
113
+ }
114
+ &.is-warning .countdown-box {
115
+ @apply bg-warning text-on-warning;
116
+ }
117
+ &.is-danger .countdown-box {
118
+ @apply bg-danger text-on-danger;
119
+ }
120
+ }
121
+
122
+ .countdown.is-soft {
123
+ &.is-primary .countdown-box {
124
+ @apply bg-soft-primary text-primary;
125
+ }
126
+ &.is-secondary .countdown-box {
127
+ @apply bg-soft-secondary text-secondary;
128
+ }
129
+ &.is-muted .countdown-box {
130
+ @apply bg-soft-muted text-on-muted;
131
+ }
132
+ &.is-surface .countdown-box {
133
+ @apply bg-surface text-on-surface;
134
+ }
135
+ &.is-success .countdown-box {
136
+ @apply bg-soft-success text-success;
137
+ }
138
+ &.is-info .countdown-box {
139
+ @apply bg-soft-info text-info;
140
+ }
141
+ &.is-warning .countdown-box {
142
+ @apply bg-soft-warning text-warning;
143
+ }
144
+ &.is-danger .countdown-box {
145
+ @apply bg-soft-danger text-danger;
146
+ }
147
+ }
148
+
149
+ .countdown.is-outlined {
150
+ .countdown-box {
151
+ @apply border-2;
152
+ }
153
+
154
+ &.is-primary .countdown-box {
155
+ @apply border-primary text-primary;
156
+ }
157
+ &.is-secondary .countdown-box {
158
+ @apply border-secondary text-secondary;
159
+ }
160
+ &.is-muted .countdown-box {
161
+ @apply border-muted text-on-muted;
162
+ }
163
+ &.is-surface .countdown-box {
164
+ @apply border-on-surface text-on-surface;
165
+ }
166
+ &.is-success .countdown-box {
167
+ @apply border-success text-success;
168
+ }
169
+ &.is-info .countdown-box {
170
+ @apply border-info text-info;
171
+ }
172
+ &.is-warning .countdown-box {
173
+ @apply border-warning text-warning;
174
+ }
175
+ &.is-danger .countdown-box {
176
+ @apply border-danger text-danger;
177
+ }
178
+ }
179
+
180
+ .countdown.is-ghost {
181
+ &.is-primary .countdown-box {
182
+ @apply text-primary;
183
+ }
184
+ &.is-secondary .countdown-box {
185
+ @apply text-secondary;
186
+ }
187
+ &.is-muted .countdown-box {
188
+ @apply text-on-muted;
189
+ }
190
+ &.is-surface .countdown-box {
191
+ @apply text-on-surface;
192
+ }
193
+ &.is-success .countdown-box {
194
+ @apply text-success;
195
+ }
196
+ &.is-info .countdown-box {
197
+ @apply text-info;
198
+ }
199
+ &.is-warning .countdown-box {
200
+ @apply text-warning;
201
+ }
202
+ &.is-danger .countdown-box {
203
+ @apply text-danger;
204
+ }
205
+ }
206
+ }
@@ -1,24 +1,26 @@
1
1
  @layer components {
2
2
  .divider-horizontal {
3
+ --divider-gap: 1rem;
3
4
  @apply flex items-center w-full;
5
+ gap: var(--divider-gap);
4
6
  &:before,
5
7
  &:after {
6
8
  @apply content-[''] h-px flex-1 bg-muted;
7
9
  }
8
- & > * {
9
- @apply px-4;
10
+ &:empty {
11
+ gap: 0;
10
12
  }
11
13
  }
12
14
  .divider-vertical {
15
+ --divider-gap: 1rem;
13
16
  @apply flex flex-col items-center h-full;
14
-
17
+ gap: var(--divider-gap);
15
18
  &:before,
16
19
  &:after {
17
20
  @apply content-[''] w-px flex-1 bg-muted;
18
21
  }
19
-
20
- & > * {
21
- @apply py-4;
22
+ &:empty {
23
+ gap: 0;
22
24
  }
23
25
  }
24
26
 
@@ -4,5 +4,12 @@
4
4
  .empty-icon {
5
5
  @apply max-h-64 w-full;
6
6
  }
7
+ .empty-action {
8
+ @apply inline-flex items-center justify-center px-4 py-2 rounded-lg;
9
+ @apply text-sm font-medium transition-all duration-200;
10
+ @apply bg-primary/10 text-primary;
11
+ @apply hover:bg-primary/20 focus:outline-none focus:ring-2 focus:ring-primary/50;
12
+ @apply cursor-pointer no-underline;
13
+ }
7
14
  }
8
15
  }