@spartan-ng/cli 0.0.1-alpha.676 → 0.0.1-alpha.678

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.
@@ -1,1356 +1,1356 @@
1
- .style-vega {
1
+ .style-vega :where(:not([class~='not-style-vega'], [class~='not-style-vega'] *)) {
2
2
  /* MARK: Accordion */
3
- .spartan-accordion-item {
3
+ &.spartan-accordion-item {
4
4
  @apply not-last:border-b;
5
5
  }
6
6
 
7
- .spartan-accordion-trigger {
7
+ &.spartan-accordion-trigger {
8
8
  @apply focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground! rounded-md py-4 text-start text-sm font-medium hover:underline focus-visible:ring-3 **:data-[slot=accordion-trigger-icon]:ms-auto **:data-[slot=accordion-trigger-icon]:text-[calc(var(--spacing)*4)];
9
9
  }
10
10
 
11
- .spartan-accordion-content {
11
+ &.spartan-accordion-content {
12
12
  @apply text-sm;
13
13
  }
14
14
 
15
- .spartan-accordion-content-inner {
15
+ &.spartan-accordion-content-inner {
16
16
  @apply pt-0 pb-4;
17
17
  }
18
18
 
19
19
  /* MARK: Alert Dialog */
20
- .spartan-alert-dialog-overlay {
20
+ &.spartan-alert-dialog-overlay {
21
21
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs;
22
22
  }
23
23
 
24
- .spartan-alert-dialog-content {
24
+ &.spartan-alert-dialog-content {
25
25
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 gap-6 rounded-xl p-6 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg;
26
26
  }
27
27
 
28
- .spartan-alert-dialog-header {
28
+ &.spartan-alert-dialog-header {
29
29
  @apply grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr];
30
30
  }
31
31
 
32
- .spartan-alert-dialog-media {
32
+ &.spartan-alert-dialog-media {
33
33
  @apply bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*8)];
34
34
  }
35
35
 
36
- .spartan-alert-dialog-title {
36
+ &.spartan-alert-dialog-title {
37
37
  @apply text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2;
38
38
  }
39
39
 
40
- .spartan-alert-dialog-description {
40
+ &.spartan-alert-dialog-description {
41
41
  @apply text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3;
42
42
  }
43
43
 
44
44
  /* MARK: Alert */
45
- .spartan-alert {
45
+ &.spartan-alert {
46
46
  @apply grid gap-0.5 rounded-lg border px-4 py-3 text-start text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>ng-icon]:grid-cols-[auto_1fr] has-[>ng-icon]:gap-x-2.5 *:[ng-icon]:row-span-2 *:[ng-icon]:translate-y-0.5 *:[ng-icon]:text-current *:[ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
47
47
  }
48
48
 
49
- .spartan-alert-variant-default {
49
+ &.spartan-alert-variant-default {
50
50
  @apply bg-card text-card-foreground;
51
51
  }
52
52
 
53
- .spartan-alert-variant-destructive {
53
+ &.spartan-alert-variant-destructive {
54
54
  @apply text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[ng-icon]:text-current;
55
55
  }
56
56
 
57
- .spartan-alert-title {
57
+ &.spartan-alert-title {
58
58
  @apply font-medium group-has-[>ng-icon]/alert:col-start-2;
59
59
  }
60
60
 
61
- .spartan-alert-description {
61
+ &.spartan-alert-description {
62
62
  @apply text-muted-foreground text-sm text-balance md:text-pretty [&_p:not(:last-child)]:mb-4;
63
63
  }
64
64
 
65
- .spartan-alert-action {
65
+ &.spartan-alert-action {
66
66
  @apply absolute end-3 top-2.5;
67
67
  }
68
68
 
69
69
  /* MARK: Avatar */
70
- .spartan-avatar {
70
+ &.spartan-avatar {
71
71
  @apply size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6;
72
72
  }
73
73
 
74
- .spartan-avatar-fallback {
74
+ &.spartan-avatar-fallback {
75
75
  @apply bg-muted text-muted-foreground rounded-full;
76
76
  }
77
77
 
78
- .spartan-avatar-image {
78
+ &.spartan-avatar-image {
79
79
  @apply rounded-full;
80
80
  }
81
81
 
82
- .spartan-avatar-badge {
82
+ &.spartan-avatar-badge {
83
83
  @apply bg-primary text-primary-foreground ring-background;
84
84
  }
85
85
 
86
- .spartan-avatar-group-count {
86
+ &.spartan-avatar-group-count {
87
87
  @apply bg-muted text-muted-foreground size-8 rounded-full text-sm group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>ng-icon]:text-[calc(var(--spacing)*4)] group-has-data-[size=lg]/avatar-group:[&>ng-icon]:text-[calc(var(--spacing)*5)] group-has-data-[size=sm]/avatar-group:[&>ng-icon]:text-[calc(var(--spacing)*3)];
88
88
  }
89
89
 
90
90
  /* MARK: Badge */
91
- .spartan-badge {
91
+ &.spartan-badge {
92
92
  @apply h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&>ng-icon]:text-[calc(var(--spacing)*3)];
93
93
  }
94
94
 
95
- .spartan-badge-variant-default {
95
+ &.spartan-badge-variant-default {
96
96
  @apply bg-primary text-primary-foreground [a]:hover:bg-primary/80;
97
97
  }
98
98
 
99
- .spartan-badge-variant-secondary {
99
+ &.spartan-badge-variant-secondary {
100
100
  @apply bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80;
101
101
  }
102
102
 
103
- .spartan-badge-variant-outline {
103
+ &.spartan-badge-variant-outline {
104
104
  @apply border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground;
105
105
  }
106
106
 
107
- .spartan-badge-variant-destructive {
107
+ &.spartan-badge-variant-destructive {
108
108
  @apply bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20;
109
109
  }
110
110
 
111
- .spartan-badge-variant-ghost {
111
+ &.spartan-badge-variant-ghost {
112
112
  @apply hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50;
113
113
  }
114
114
 
115
- .spartan-badge-variant-link {
115
+ &.spartan-badge-variant-link {
116
116
  @apply text-primary underline-offset-4 hover:underline;
117
117
  }
118
118
 
119
119
  /* MARK: Breadcrumb */
120
- .spartan-breadcrumb-list {
120
+ &.spartan-breadcrumb-list {
121
121
  @apply text-muted-foreground gap-1.5 text-sm sm:gap-2.5;
122
122
  }
123
123
 
124
- .spartan-breadcrumb-item {
124
+ &.spartan-breadcrumb-item {
125
125
  @apply gap-1.5;
126
126
  }
127
127
 
128
- .spartan-breadcrumb-link {
128
+ &.spartan-breadcrumb-link {
129
129
  @apply hover:text-foreground transition-colors;
130
130
  }
131
131
 
132
- .spartan-breadcrumb-page {
132
+ &.spartan-breadcrumb-page {
133
133
  @apply text-foreground font-normal;
134
134
  }
135
135
 
136
- .spartan-breadcrumb-separator {
136
+ &.spartan-breadcrumb-separator {
137
137
  @apply [&>ng-icon]:text-[calc(var(--spacing)*3.5)];
138
138
  }
139
139
 
140
- .spartan-breadcrumb-ellipsis {
140
+ &.spartan-breadcrumb-ellipsis {
141
141
  @apply size-5 [&>ng-icon]:text-[calc(var(--spacing)*4)];
142
142
  }
143
143
 
144
144
  /* MARK: Button */
145
- .spartan-button {
145
+ &.spartan-button {
146
146
  @apply focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
147
147
  }
148
148
 
149
- .spartan-button-variant-default {
149
+ &.spartan-button-variant-default {
150
150
  @apply bg-primary text-primary-foreground hover:bg-primary/80;
151
151
  }
152
152
 
153
- .spartan-button-variant-outline {
153
+ &.spartan-button-variant-outline {
154
154
  @apply border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs;
155
155
  }
156
156
 
157
- .spartan-button-variant-secondary {
157
+ &.spartan-button-variant-secondary {
158
158
  @apply bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground;
159
159
  }
160
160
 
161
- .spartan-button-variant-ghost {
161
+ &.spartan-button-variant-ghost {
162
162
  @apply hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground;
163
163
  }
164
164
 
165
- .spartan-button-variant-destructive {
165
+ &.spartan-button-variant-destructive {
166
166
  @apply bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30;
167
167
  }
168
168
 
169
- .spartan-button-variant-link {
169
+ &.spartan-button-variant-link {
170
170
  @apply text-primary underline-offset-4 hover:underline;
171
171
  }
172
172
 
173
- .spartan-button-size-xs {
173
+ &.spartan-button-size-xs {
174
174
  @apply h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
175
175
  }
176
176
 
177
- .spartan-button-size-sm {
177
+ &.spartan-button-size-sm {
178
178
  @apply h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5;
179
179
  }
180
180
 
181
- .spartan-button-size-default {
181
+ &.spartan-button-size-default {
182
182
  @apply h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2;
183
183
  }
184
184
 
185
- .spartan-button-size-lg {
185
+ &.spartan-button-size-lg {
186
186
  @apply h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3;
187
187
  }
188
188
 
189
- .spartan-button-size-icon-xs {
189
+ &.spartan-button-size-icon-xs {
190
190
  @apply size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
191
191
  }
192
192
 
193
- .spartan-button-size-icon-sm {
193
+ &.spartan-button-size-icon-sm {
194
194
  @apply size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md;
195
195
  }
196
196
 
197
- .spartan-button-size-icon {
197
+ &.spartan-button-size-icon {
198
198
  @apply size-9;
199
199
  }
200
200
 
201
- .spartan-button-size-icon-lg {
201
+ &.spartan-button-size-icon-lg {
202
202
  @apply size-10;
203
203
  }
204
204
 
205
205
  /* MARK: Button Group */
206
- .spartan-button-group {
206
+ &.spartan-button-group {
207
207
  @apply has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md;
208
208
  }
209
209
 
210
- .spartan-button-group-orientation-horizontal {
210
+ &.spartan-button-group-orientation-horizontal {
211
211
  @apply [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-md!;
212
212
  }
213
213
 
214
- .spartan-button-group-orientation-vertical {
214
+ &.spartan-button-group-orientation-vertical {
215
215
  @apply [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md!;
216
216
  }
217
217
 
218
- .spartan-button-group-text {
218
+ &.spartan-button-group-text {
219
219
  @apply bg-muted gap-2 rounded-md border px-2.5 text-sm font-medium shadow-xs [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
220
220
  }
221
221
 
222
- .spartan-button-group-separator {
222
+ &.spartan-button-group-separator {
223
223
  @apply bg-input;
224
224
  }
225
225
 
226
226
  /* MARK: Calendar */
227
- .spartan-calendar {
227
+ &.spartan-calendar {
228
228
  @apply p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)];
229
229
  }
230
230
 
231
- .spartan-calendar-dropdown-root {
231
+ &.spartan-calendar-dropdown-root {
232
232
  @apply has-focus:border-ring border-input has-focus:ring-ring/50 border shadow-xs has-focus:ring-3;
233
233
  }
234
234
 
235
- .spartan-calendar-caption-label {
235
+ &.spartan-calendar-caption-label {
236
236
  @apply h-8 pr-1 pl-2;
237
237
  }
238
238
 
239
239
  /* MARK: Card */
240
- .spartan-card {
240
+ &.spartan-card {
241
241
  @apply ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl;
242
242
  }
243
243
 
244
- .spartan-card-header {
244
+ &.spartan-card-header {
245
245
  @apply gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4;
246
246
  }
247
247
 
248
- .spartan-card-title {
248
+ &.spartan-card-title {
249
249
  @apply text-base leading-normal font-medium group-data-[size=sm]/card:text-sm;
250
250
  }
251
251
 
252
- .spartan-card-description {
252
+ &.spartan-card-description {
253
253
  @apply text-muted-foreground text-sm;
254
254
  }
255
255
 
256
- .spartan-card-content {
256
+ &.spartan-card-content {
257
257
  @apply px-6 group-data-[size=sm]/card:px-4;
258
258
  }
259
259
 
260
- .spartan-card-footer {
260
+ &.spartan-card-footer {
261
261
  @apply rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4;
262
262
  }
263
263
 
264
264
  /* MARK: Carousel */
265
- .spartan-carousel-previous {
265
+ &.spartan-carousel-previous {
266
266
  @apply rounded-full;
267
267
  }
268
268
 
269
- .spartan-carousel-next {
269
+ &.spartan-carousel-next {
270
270
  @apply rounded-full;
271
271
  }
272
272
 
273
273
  /* MARK: Chart */
274
- .spartan-chart-tooltip {
274
+ &.spartan-chart-tooltip {
275
275
  @apply border-border/50 bg-background gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl;
276
276
  }
277
277
 
278
278
  /* MARK: Checkbox */
279
- .spartan-checkbox {
279
+ &.spartan-checkbox {
280
280
  @apply border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary data-[matches-spartan-invalid=true]:aria-checked:border-primary data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 flex size-4 items-center justify-center rounded-[4px] border shadow-xs transition-shadow group-has-disabled/field:opacity-50 focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3;
281
281
  }
282
282
 
283
- .spartan-checkbox-indicator {
283
+ &.spartan-checkbox-indicator {
284
284
  @apply [&>ng-icon]:text-[calc(var(--spacing)*3.5)];
285
285
  }
286
286
 
287
287
  /* MARK: Combobox */
288
- .spartan-combobox-content {
288
+ &.spartan-combobox-content {
289
289
  @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:border-input/30 max-h-72 min-w-36 overflow-hidden rounded-md shadow-md ring-1 duration-100 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:shadow-none;
290
290
  }
291
291
 
292
- .spartan-combobox-content-logical {
292
+ &.spartan-combobox-content-logical {
293
293
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
294
294
  }
295
295
 
296
- .spartan-combobox-label {
296
+ &.spartan-combobox-label {
297
297
  @apply text-muted-foreground px-2 py-1.5 text-xs;
298
298
  }
299
299
 
300
- .spartan-combobox-item {
300
+ &.spartan-combobox-item {
301
301
  @apply data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
302
302
  }
303
303
 
304
- .spartan-combobox-item-indicator {
304
+ &.spartan-combobox-item-indicator {
305
305
  @apply pointer-events-none absolute end-2 flex size-4 items-center justify-center;
306
306
  }
307
307
 
308
- .spartan-combobox-empty {
308
+ &.spartan-combobox-empty {
309
309
  @apply text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex;
310
310
  }
311
311
 
312
- .spartan-combobox-list {
312
+ &.spartan-combobox-list {
313
313
  @apply no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto p-1 data-empty:p-0;
314
314
  }
315
315
 
316
- .spartan-combobox-item-text {
316
+ &.spartan-combobox-item-text {
317
317
  @apply flex flex-1 gap-2;
318
318
  }
319
319
 
320
- .spartan-combobox-separator {
320
+ &.spartan-combobox-separator {
321
321
  @apply bg-border -mx-1 my-1 h-px;
322
322
  }
323
323
 
324
- .spartan-combobox-trigger {
324
+ &.spartan-combobox-trigger {
325
325
  @apply [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
326
326
  }
327
327
 
328
- .spartan-combobox-trigger-icon {
328
+ &.spartan-combobox-trigger-icon {
329
329
  @apply text-muted-foreground size-4;
330
330
  }
331
331
 
332
- .spartan-combobox-chips {
332
+ &.spartan-combobox-chips {
333
333
  @apply dark:bg-input/30 border-input focus-within:border-ring focus-within:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border bg-transparent bg-clip-padding px-2.5 py-1.5 text-sm shadow-xs transition-[color,box-shadow] focus-within:ring-3 has-data-[slot=combobox-chip]:px-1.5 data-[matches-spartan-invalid=true]:ring-3;
334
334
  }
335
335
 
336
- .spartan-combobox-chip {
336
+ &.spartan-combobox-chip {
337
337
  @apply bg-muted text-foreground flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-sm px-1.5 text-xs font-medium whitespace-nowrap has-data-[slot=combobox-chip-remove]:pr-0;
338
338
  }
339
339
 
340
- .spartan-combobox-chip-remove {
340
+ &.spartan-combobox-chip-remove {
341
341
  @apply -ml-1 opacity-50 hover:opacity-100;
342
342
  }
343
343
 
344
344
  /* MARK: Command */
345
- .spartan-command {
345
+ &.spartan-command {
346
346
  @apply bg-popover text-popover-foreground rounded-xl! p-1;
347
347
  }
348
348
 
349
- .spartan-command-dialog {
349
+ &.spartan-command-dialog {
350
350
  @apply rounded-xl!;
351
351
  }
352
352
 
353
- .spartan-command-input-wrapper {
353
+ &.spartan-command-input-wrapper {
354
354
  @apply p-1 pb-0;
355
355
  }
356
356
 
357
- .spartan-command-input-group {
357
+ &.spartan-command-input-group {
358
358
  @apply bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!;
359
359
  }
360
360
 
361
- .spartan-command-input-icon {
361
+ &.spartan-command-input-icon {
362
362
  @apply size-4 shrink-0 opacity-50;
363
363
  }
364
364
 
365
- .spartan-command-input {
365
+ &.spartan-command-input {
366
366
  @apply w-full text-sm;
367
367
  }
368
368
 
369
- .spartan-command-list {
369
+ &.spartan-command-list {
370
370
  @apply no-scrollbar max-h-72 scroll-py-1 outline-none;
371
371
  }
372
372
 
373
- .spartan-command-empty {
373
+ &.spartan-command-empty {
374
374
  @apply py-6 text-center text-sm;
375
375
  }
376
376
 
377
- .spartan-command-group {
377
+ &.spartan-command-group {
378
378
  @apply text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium;
379
379
  }
380
380
 
381
- .spartan-command-separator {
381
+ &.spartan-command-separator {
382
382
  @apply bg-border -mx-1 h-px w-auto;
383
383
  }
384
384
 
385
- .spartan-command-item {
385
+ &.spartan-command-item {
386
386
  @apply data-selected:bg-muted data-selected:text-foreground data-selected:**:[ng-icon]:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
387
387
  }
388
388
 
389
- .spartan-command-shortcut {
389
+ &.spartan-command-shortcut {
390
390
  @apply text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest;
391
391
  }
392
392
 
393
393
  /* MARK: Context Menu */
394
- .spartan-context-menu-content {
394
+ &.spartan-context-menu-content {
395
395
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-36 rounded-md p-1 shadow-md ring-1 duration-100;
396
396
  }
397
397
 
398
- .spartan-context-menu-content-logical {
398
+ &.spartan-context-menu-content-logical {
399
399
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
400
400
  }
401
401
 
402
- .spartan-context-menu-item {
402
+ &.spartan-context-menu-item {
403
403
  @apply focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[ng-icon]:text-destructive focus:*:[ng-icon]:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
404
404
  }
405
405
 
406
- .spartan-context-menu-checkbox-item {
406
+ &.spartan-context-menu-checkbox-item {
407
407
  @apply focus:bg-accent focus:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
408
408
  }
409
409
 
410
- .spartan-context-menu-radio-item {
410
+ &.spartan-context-menu-radio-item {
411
411
  @apply focus:bg-accent focus:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
412
412
  }
413
413
 
414
- .spartan-context-menu-item-indicator {
414
+ &.spartan-context-menu-item-indicator {
415
415
  @apply absolute end-2;
416
416
  }
417
417
 
418
- .spartan-context-menu-label {
418
+ &.spartan-context-menu-label {
419
419
  @apply text-muted-foreground px-2 py-1.5 text-xs font-medium data-inset:pl-8;
420
420
  }
421
421
 
422
- .spartan-context-menu-separator {
422
+ &.spartan-context-menu-separator {
423
423
  @apply bg-border -mx-1 my-1 h-px;
424
424
  }
425
425
 
426
- .spartan-context-menu-shortcut {
426
+ &.spartan-context-menu-shortcut {
427
427
  @apply text-muted-foreground group-focus/context-menu-item:text-accent-foreground ml-auto text-xs tracking-widest;
428
428
  }
429
429
 
430
- .spartan-context-menu-sub-trigger {
430
+ &.spartan-context-menu-sub-trigger {
431
431
  @apply focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
432
432
  }
433
433
 
434
- .spartan-context-menu-sub-content {
434
+ &.spartan-context-menu-sub-content {
435
435
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-popover text-popover-foreground min-w-32 rounded-md border p-1 shadow-lg duration-100;
436
436
  }
437
437
 
438
- .spartan-context-menu-subcontent {
438
+ &.spartan-context-menu-subcontent {
439
439
  @apply shadow-lg;
440
440
  }
441
441
 
442
442
  /* MARK: Dialog */
443
- .spartan-dialog-overlay {
443
+ &.spartan-dialog-overlay {
444
444
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs;
445
445
  }
446
446
 
447
- .spartan-dialog-content {
447
+ &.spartan-dialog-content {
448
448
  @apply bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-xl p-6 text-sm ring-1 duration-100 sm:max-w-md;
449
449
  }
450
450
 
451
- .spartan-dialog-close {
451
+ &.spartan-dialog-close {
452
452
  @apply absolute end-4 top-4;
453
453
  }
454
454
 
455
- .spartan-dialog-header {
455
+ &.spartan-dialog-header {
456
456
  @apply gap-2;
457
457
  }
458
458
 
459
- .spartan-dialog-footer {
459
+ &.spartan-dialog-footer {
460
460
  @apply gap-2;
461
461
  }
462
462
 
463
- .spartan-dialog-title {
463
+ &.spartan-dialog-title {
464
464
  @apply leading-none font-medium;
465
465
  }
466
466
 
467
- .spartan-dialog-description {
467
+ &.spartan-dialog-description {
468
468
  @apply text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3;
469
469
  }
470
470
 
471
471
  /* MARK: Drawer */
472
- .spartan-drawer-overlay {
472
+ &.spartan-drawer-overlay {
473
473
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 supports-backdrop-filter:backdrop-blur-xs;
474
474
  }
475
475
 
476
- .spartan-drawer-content {
476
+ &.spartan-drawer-content {
477
477
  @apply bg-background flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm;
478
478
  }
479
479
 
480
- .spartan-drawer-handle {
480
+ &.spartan-drawer-handle {
481
481
  @apply bg-muted mx-auto mt-4 hidden h-1.5 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block;
482
482
  }
483
483
 
484
- .spartan-drawer-header {
484
+ &.spartan-drawer-header {
485
485
  @apply gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-start;
486
486
  }
487
487
 
488
- .spartan-drawer-title {
488
+ &.spartan-drawer-title {
489
489
  @apply text-foreground font-medium;
490
490
  }
491
491
 
492
- .spartan-drawer-description {
492
+ &.spartan-drawer-description {
493
493
  @apply text-muted-foreground text-sm;
494
494
  }
495
495
 
496
- .spartan-drawer-footer {
496
+ &.spartan-drawer-footer {
497
497
  @apply gap-2 p-4;
498
498
  }
499
499
 
500
500
  /* MARK: Dropdown Menu */
501
- .spartan-dropdown-menu-content {
501
+ &.spartan-dropdown-menu-content {
502
502
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-md p-1 shadow-md ring-1 duration-100;
503
503
  }
504
504
 
505
- .spartan-dropdown-menu-content-logical {
505
+ &.spartan-dropdown-menu-content-logical {
506
506
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
507
507
  }
508
508
 
509
- .spartan-dropdown-menu-item {
509
+ &.spartan-dropdown-menu-item {
510
510
  @apply focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[ng-icon]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
511
511
  }
512
512
 
513
- .spartan-dropdown-menu-checkbox-item {
513
+ &.spartan-dropdown-menu-checkbox-item {
514
514
  @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
515
515
  }
516
516
 
517
- .spartan-dropdown-menu-radio-item {
517
+ &.spartan-dropdown-menu-radio-item {
518
518
  @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
519
519
  }
520
520
 
521
- .spartan-dropdown-menu-item-indicator {
521
+ &.spartan-dropdown-menu-item-indicator {
522
522
  @apply absolute end-2 flex items-center justify-center;
523
523
  }
524
524
 
525
- .spartan-dropdown-menu-label {
525
+ &.spartan-dropdown-menu-label {
526
526
  @apply text-muted-foreground px-2 py-1.5 text-xs font-medium data-inset:pl-8;
527
527
  }
528
528
 
529
- .spartan-dropdown-menu-separator {
529
+ &.spartan-dropdown-menu-separator {
530
530
  @apply bg-border -mx-1 my-1 h-px;
531
531
  }
532
532
 
533
- .spartan-dropdown-menu-shortcut {
533
+ &.spartan-dropdown-menu-shortcut {
534
534
  @apply text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest;
535
535
  }
536
536
 
537
- .spartan-dropdown-menu-sub-trigger {
537
+ &.spartan-dropdown-menu-sub-trigger {
538
538
  @apply focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
539
539
  }
540
540
 
541
- .spartan-dropdown-menu-sub-content {
541
+ &.spartan-dropdown-menu-sub-content {
542
542
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-md p-1 shadow-lg ring-1 duration-100;
543
543
  }
544
544
 
545
- .spartan-dropdown-menu-subcontent {
545
+ &.spartan-dropdown-menu-subcontent {
546
546
  @apply shadow-lg;
547
547
  }
548
548
 
549
549
  /* MARK: Empty */
550
- .spartan-empty {
550
+ &.spartan-empty {
551
551
  @apply gap-4 rounded-lg border-dashed p-12;
552
552
  }
553
553
 
554
- .spartan-empty-header {
554
+ &.spartan-empty-header {
555
555
  @apply gap-2;
556
556
  }
557
557
 
558
- .spartan-empty-media {
558
+ &.spartan-empty-media {
559
559
  @apply mb-2;
560
560
  }
561
561
 
562
- .spartan-empty-media-default {
562
+ &.spartan-empty-media-default {
563
563
  @apply bg-transparent;
564
564
  }
565
565
 
566
- .spartan-empty-media-icon {
566
+ &.spartan-empty-media-icon {
567
567
  @apply bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*6)];
568
568
  }
569
569
 
570
- .spartan-empty-title {
570
+ &.spartan-empty-title {
571
571
  @apply text-lg font-medium tracking-tight;
572
572
  }
573
573
 
574
- .spartan-empty-description {
574
+ &.spartan-empty-description {
575
575
  @apply text-sm/relaxed;
576
576
  }
577
577
 
578
- .spartan-empty-content {
578
+ &.spartan-empty-content {
579
579
  @apply gap-4 text-sm;
580
580
  }
581
581
 
582
582
  /* MARK: Field */
583
- .spartan-field-set {
583
+ &.spartan-field-set {
584
584
  @apply gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3;
585
585
  }
586
586
 
587
- .spartan-field-legend {
587
+ &.spartan-field-legend {
588
588
  @apply mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base;
589
589
  }
590
590
 
591
- .spartan-field-group {
591
+ &.spartan-field-group {
592
592
  @apply gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4;
593
593
  }
594
594
 
595
- .spartan-field {
595
+ &.spartan-field {
596
596
  @apply data-[invalid=true]:text-destructive gap-3;
597
597
  }
598
598
 
599
- .spartan-field-content {
599
+ &.spartan-field-content {
600
600
  @apply gap-1;
601
601
  }
602
602
 
603
- .spartan-field-label {
603
+ &.spartan-field-label {
604
604
  @apply has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-3;
605
605
  }
606
606
 
607
- .spartan-field-title {
607
+ &.spartan-field-title {
608
608
  @apply gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50;
609
609
  }
610
610
 
611
- .spartan-field-description {
611
+ &.spartan-field-description {
612
612
  @apply text-muted-foreground text-start text-sm [[data-variant=legend]+&]:-mt-1.5;
613
613
  }
614
614
 
615
- .spartan-field-separator {
615
+ &.spartan-field-separator {
616
616
  @apply -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2;
617
617
  }
618
618
 
619
- .spartan-field-separator-content {
619
+ &.spartan-field-separator-content {
620
620
  @apply text-muted-foreground px-2;
621
621
  }
622
622
 
623
- .spartan-field-error {
623
+ &.spartan-field-error {
624
624
  @apply text-destructive text-sm;
625
625
  }
626
626
 
627
627
  /* MARK: Hover Card */
628
- .spartan-hover-card-content {
628
+ &.spartan-hover-card-content {
629
629
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground w-64 rounded-lg p-4 text-sm shadow-md ring-1 duration-100;
630
630
  }
631
631
 
632
- .spartan-hover-card-content-logical {
632
+ &.spartan-hover-card-content-logical {
633
633
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
634
634
  }
635
635
 
636
636
  /* MARK: Input */
637
- .spartan-input {
637
+ &.spartan-input {
638
638
  @apply dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 md:text-sm;
639
639
  }
640
640
 
641
641
  /* MARK: Input OTP */
642
- .spartan-input-otp {
642
+ &.spartan-input-otp {
643
643
  @apply gap-2;
644
644
  }
645
645
 
646
- .spartan-input-otp-group {
646
+ &.spartan-input-otp-group {
647
647
  @apply data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive rounded-md data-[matches-spartan-invalid=true]:ring-3;
648
648
  }
649
649
 
650
- .spartan-input-otp-slot {
650
+ &.spartan-input-otp-slot {
651
651
  @apply dark:bg-input/30 border-input data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[active=true]:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive data-[active=true]:data-[matches-spartan-invalid=true]:border-destructive size-9 border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:ring-3;
652
652
  }
653
653
 
654
- .spartan-input-otp-caret-line {
654
+ &.spartan-input-otp-caret-line {
655
655
  @apply animate-caret-blink bg-foreground h-4 w-px duration-1000;
656
656
  }
657
657
 
658
- .spartan-input-otp-separator {
658
+ &.spartan-input-otp-separator {
659
659
  @apply [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
660
660
  }
661
661
 
662
662
  /* MARK: Item */
663
- .spartan-item {
663
+ &.spartan-item {
664
664
  @apply [a]:hover:bg-muted rounded-md border text-sm;
665
665
  }
666
666
 
667
- .spartan-item-variant-default {
667
+ &.spartan-item-variant-default {
668
668
  @apply border-transparent;
669
669
  }
670
670
 
671
- .spartan-item-variant-outline {
671
+ &.spartan-item-variant-outline {
672
672
  @apply border-border;
673
673
  }
674
674
 
675
- .spartan-item-variant-muted {
675
+ &.spartan-item-variant-muted {
676
676
  @apply bg-muted/50 border-transparent;
677
677
  }
678
678
 
679
- .spartan-item-size-default {
679
+ &.spartan-item-size-default {
680
680
  @apply gap-3.5 px-4 py-3.5;
681
681
  }
682
682
 
683
- .spartan-item-size-sm {
683
+ &.spartan-item-size-sm {
684
684
  @apply gap-2.5 px-3 py-2.5;
685
685
  }
686
686
 
687
- .spartan-item-size-xs {
687
+ &.spartan-item-size-xs {
688
688
  @apply gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0;
689
689
  }
690
690
 
691
- .spartan-item-media {
691
+ &.spartan-item-media {
692
692
  @apply gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start;
693
693
  }
694
694
 
695
- .spartan-item-media-variant-default {
695
+ &.spartan-item-media-variant-default {
696
696
  @apply bg-transparent;
697
697
  }
698
698
 
699
- .spartan-item-media-variant-icon {
699
+ &.spartan-item-media-variant-icon {
700
700
  @apply [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
701
701
  }
702
702
 
703
- .spartan-item-media-variant-image {
703
+ &.spartan-item-media-variant-image {
704
704
  @apply size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover;
705
705
  }
706
706
 
707
- .spartan-item-content {
707
+ &.spartan-item-content {
708
708
  @apply gap-1 group-data-[size=xs]/item:gap-0;
709
709
  }
710
710
 
711
- .spartan-item-title {
711
+ &.spartan-item-title {
712
712
  @apply gap-2 text-sm leading-snug font-medium underline-offset-4;
713
713
  }
714
714
 
715
- .spartan-item-description {
715
+ &.spartan-item-description {
716
716
  @apply text-muted-foreground text-start text-sm leading-normal group-data-[size=xs]/item:text-xs;
717
717
  }
718
718
 
719
- .spartan-item-actions {
719
+ &.spartan-item-actions {
720
720
  @apply gap-2;
721
721
  }
722
722
 
723
- .spartan-item-header {
723
+ &.spartan-item-header {
724
724
  @apply gap-2;
725
725
  }
726
726
 
727
- .spartan-item-footer {
727
+ &.spartan-item-footer {
728
728
  @apply gap-2;
729
729
  }
730
730
 
731
- .spartan-item-group {
731
+ &.spartan-item-group {
732
732
  @apply gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2;
733
733
  }
734
734
 
735
- .spartan-item-separator {
735
+ &.spartan-item-separator {
736
736
  @apply my-2;
737
737
  }
738
738
 
739
739
  /* MARK: Kbd */
740
- .spartan-kbd {
740
+ &.spartan-kbd {
741
741
  @apply bg-muted text-muted-foreground in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 h-5 w-fit min-w-5 gap-1 rounded-sm px-1 font-sans text-xs font-medium [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
742
742
  }
743
743
 
744
- .spartan-kbd-group {
744
+ &.spartan-kbd-group {
745
745
  @apply gap-1;
746
746
  }
747
747
 
748
748
  /* MARK: Label */
749
- .spartan-label {
749
+ &.spartan-label {
750
750
  @apply gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50;
751
751
  }
752
752
 
753
753
  /* MARK: Menubar */
754
- .spartan-menubar {
754
+ &.spartan-menubar {
755
755
  @apply bg-background h-9 gap-1 rounded-md border p-1 shadow-xs;
756
756
  }
757
757
 
758
- .spartan-menubar-trigger {
758
+ &.spartan-menubar-trigger {
759
759
  @apply hover:bg-muted aria-expanded:bg-muted rounded-sm px-2 py-1 text-sm font-medium;
760
760
  }
761
761
 
762
- .spartan-menubar-content {
762
+ &.spartan-menubar-content {
763
763
  @apply bg-popover text-popover-foreground data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-md p-1 shadow-md ring-1 duration-100;
764
764
  }
765
765
 
766
- .spartan-menubar-content-logical {
766
+ &.spartan-menubar-content-logical {
767
767
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
768
768
  }
769
769
 
770
- .spartan-menubar-item {
770
+ &.spartan-menubar-item {
771
771
  @apply focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[ng-icon]:text-destructive! not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-disabled:opacity-50 data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
772
772
  }
773
773
 
774
- .spartan-menubar-checkbox-item {
774
+ &.spartan-menubar-checkbox-item {
775
775
  @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm data-inset:pl-8;
776
776
  }
777
777
 
778
- .spartan-menubar-checkbox-item-indicator {
778
+ &.spartan-menubar-checkbox-item-indicator {
779
779
  @apply start-2 size-4 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
780
780
  }
781
781
 
782
- .spartan-menubar-radio-item {
782
+ &.spartan-menubar-radio-item {
783
783
  @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm data-disabled:opacity-50 data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
784
784
  }
785
785
 
786
- .spartan-menubar-radio-item-indicator {
786
+ &.spartan-menubar-radio-item-indicator {
787
787
  @apply start-2 size-4 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
788
788
  }
789
789
 
790
- .spartan-menubar-label {
790
+ &.spartan-menubar-label {
791
791
  @apply px-2 py-1.5 text-sm font-medium data-inset:pl-8;
792
792
  }
793
793
 
794
- .spartan-menubar-separator {
794
+ &.spartan-menubar-separator {
795
795
  @apply bg-border;
796
796
  }
797
797
 
798
- .spartan-menubar-shortcut {
798
+ &.spartan-menubar-shortcut {
799
799
  @apply text-muted-foreground group-focus/menubar-item:text-accent-foreground text-xs tracking-widest;
800
800
  }
801
801
 
802
- .spartan-menubar-sub-trigger {
802
+ &.spartan-menubar-sub-trigger {
803
803
  @apply focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
804
804
  }
805
805
 
806
- .spartan-menubar-sub-content {
806
+ &.spartan-menubar-sub-content {
807
807
  @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-32 rounded-md p-1 shadow-lg ring-1 duration-100;
808
808
  }
809
809
 
810
810
  /* MARK: Navigation Menu */
811
- .spartan-navigation-menu {
811
+ &.spartan-navigation-menu {
812
812
  @apply max-w-max;
813
813
  }
814
814
 
815
- .spartan-navigation-menu-list {
815
+ &.spartan-navigation-menu-list {
816
816
  @apply gap-0;
817
817
  }
818
818
 
819
- .spartan-navigation-menu-trigger {
819
+ &.spartan-navigation-menu-trigger {
820
820
  @apply bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 focus-visible:outline-1 disabled:opacity-50;
821
821
  }
822
822
 
823
- .spartan-navigation-menu-trigger-icon {
823
+ &.spartan-navigation-menu-trigger-icon {
824
824
  @apply relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180;
825
825
  }
826
826
 
827
- .spartan-navigation-menu-content {
827
+ &.spartan-navigation-menu-content {
828
828
  @apply data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:ring-foreground/10 p-2 pr-2.5 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:duration-300;
829
829
  }
830
830
 
831
- .spartan-navigation-menu-viewport {
831
+ &.spartan-navigation-menu-viewport {
832
832
  @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:zoom-out-95 data-open:zoom-in-90 ring-foreground/10 rounded-lg shadow ring-1 duration-100;
833
833
  }
834
834
 
835
- .spartan-navigation-menu-link {
835
+ &.spartan-navigation-menu-link {
836
836
  @apply data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/50 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
837
837
  }
838
838
 
839
- .spartan-navigation-menu-indicator {
839
+ &.spartan-navigation-menu-indicator {
840
840
  @apply data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in;
841
841
  }
842
842
 
843
- .spartan-navigation-menu-indicator-arrow {
843
+ &.spartan-navigation-menu-indicator-arrow {
844
844
  @apply bg-border rounded-tl-sm shadow-md;
845
845
  }
846
846
 
847
- .spartan-navigation-menu-positioner {
847
+ &.spartan-navigation-menu-positioner {
848
848
  @apply transition-[top,left,right,bottom] duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0;
849
849
  }
850
850
 
851
- .spartan-navigation-menu-popup {
851
+ &.spartan-navigation-menu-popup {
852
852
  @apply bg-popover text-popover-foreground ring-foreground/10 rounded-lg shadow ring-1 transition-all ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0;
853
853
  }
854
854
 
855
855
  /* MARK: Native Select */
856
- .spartan-native-select {
856
+ &.spartan-native-select {
857
857
  @apply border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent py-1 pr-8 pl-2.5 text-sm shadow-xs transition-[color,box-shadow] select-none focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=sm]:h-8;
858
858
  }
859
859
 
860
- .spartan-native-select-icon {
860
+ &.spartan-native-select-icon {
861
861
  @apply text-muted-foreground end-2.5 top-1/2 size-4 -translate-y-1/2;
862
862
  }
863
863
 
864
864
  /* MARK: Pagination */
865
- .spartan-pagination-content {
865
+ &.spartan-pagination-content {
866
866
  @apply gap-1;
867
867
  }
868
868
 
869
- .spartan-pagination-ellipsis {
869
+ &.spartan-pagination-ellipsis {
870
870
  @apply size-9 items-center justify-center [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
871
871
  }
872
872
 
873
- .spartan-pagination-previous {
873
+ &.spartan-pagination-previous {
874
874
  @apply pl-2!;
875
875
  }
876
876
 
877
- .spartan-pagination-next {
877
+ &.spartan-pagination-next {
878
878
  @apply pr-2!;
879
879
  }
880
880
 
881
881
  /* MARK: Popover */
882
- .spartan-popover-content {
882
+ &.spartan-popover-content {
883
883
  @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 flex flex-col gap-4 rounded-md p-4 text-sm shadow-md ring-1 duration-100;
884
884
  }
885
885
 
886
- .spartan-popover-content-logical {
886
+ &.spartan-popover-content-logical {
887
887
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
888
888
  }
889
889
 
890
- .spartan-popover-header {
890
+ &.spartan-popover-header {
891
891
  @apply flex flex-col gap-1 text-sm;
892
892
  }
893
893
 
894
- .spartan-popover-title {
894
+ &.spartan-popover-title {
895
895
  @apply font-medium;
896
896
  }
897
897
 
898
- .spartan-popover-description {
898
+ &.spartan-popover-description {
899
899
  @apply text-muted-foreground;
900
900
  }
901
901
 
902
902
  /* MARK: Progress */
903
- .spartan-progress {
903
+ &.spartan-progress {
904
904
  @apply bg-muted h-1.5 rounded-full;
905
905
  }
906
906
 
907
- .spartan-progress-track {
907
+ &.spartan-progress-track {
908
908
  @apply bg-muted h-1.5 rounded-full;
909
909
  }
910
910
 
911
- .spartan-progress-indicator {
911
+ &.spartan-progress-indicator {
912
912
  @apply bg-primary;
913
913
  }
914
914
 
915
- .spartan-progress-label {
915
+ &.spartan-progress-label {
916
916
  @apply text-sm font-medium;
917
917
  }
918
918
 
919
- .spartan-progress-value {
919
+ &.spartan-progress-value {
920
920
  @apply text-muted-foreground ml-auto text-sm tabular-nums;
921
921
  }
922
922
 
923
923
  /* MARK: Radio Group */
924
- .spartan-radio-group {
924
+ &.spartan-radio-group {
925
925
  @apply grid gap-3;
926
926
  }
927
927
 
928
- .spartan-radio-group-item {
928
+ &.spartan-radio-group-item {
929
929
  @apply border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary data-[matches-spartan-invalid=true]:aria-checked:border-primary data-[matches-spartan-invalid=true]:border-destructive focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 dark:data-[matches-spartan-invalid=true]:border-destructive/50 flex size-4 rounded-full focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3;
930
930
  }
931
931
 
932
- .spartan-radio-group-indicator {
932
+ &.spartan-radio-group-indicator {
933
933
  @apply flex size-4 items-center justify-center;
934
934
  }
935
935
 
936
- .spartan-radio-group-indicator-icon {
936
+ &.spartan-radio-group-indicator-icon {
937
937
  @apply bg-primary-foreground absolute start-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full;
938
938
  }
939
939
 
940
940
  /* MARK: Resizable */
941
- .spartan-resizable-handle-icon {
941
+ &.spartan-resizable-handle-icon {
942
942
  @apply bg-border h-6 w-1 rounded-lg;
943
943
  }
944
944
 
945
945
  /* MARK: Scroll Area */
946
- .spartan-scroll-area-scrollbar {
946
+ &.spartan-scroll-area-scrollbar {
947
947
  @apply data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent;
948
948
  }
949
949
 
950
- .spartan-scroll-area-thumb {
950
+ &.spartan-scroll-area-thumb {
951
951
  @apply rounded-full;
952
952
  }
953
953
 
954
954
  /* MARK: Select */
955
- .spartan-select-trigger {
955
+ &.spartan-select-trigger {
956
956
  @apply border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 gap-1.5 rounded-md border bg-transparent py-2 pr-2 pl-2.5 text-sm shadow-xs transition-[color,box-shadow] focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
957
957
  }
958
958
 
959
- .spartan-select-value {
959
+ &.spartan-select-value {
960
960
  @apply flex flex-1 text-start;
961
961
  }
962
962
 
963
- .spartan-select-trigger-icon {
963
+ &.spartan-select-trigger-icon {
964
964
  @apply text-muted-foreground size-4;
965
965
  }
966
966
 
967
- .spartan-select-content {
967
+ &.spartan-select-content {
968
968
  @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-md shadow-md ring-1 duration-100;
969
969
  }
970
970
 
971
- .spartan-select-content-logical {
971
+ &.spartan-select-content-logical {
972
972
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
973
973
  }
974
974
 
975
- .spartan-select-label {
975
+ &.spartan-select-label {
976
976
  @apply text-muted-foreground px-2 py-1.5 text-xs;
977
977
  }
978
978
 
979
- .spartan-select-item {
979
+ &.spartan-select-item {
980
980
  @apply focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)] *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2;
981
981
  }
982
982
 
983
- .spartan-select-item-indicator {
983
+ &.spartan-select-item-indicator {
984
984
  @apply pointer-events-none absolute end-2 flex size-4 items-center justify-center;
985
985
  }
986
986
 
987
- .spartan-select-group {
987
+ &.spartan-select-group {
988
988
  @apply scroll-my-1 p-1;
989
989
  }
990
990
 
991
- .spartan-select-item-text {
991
+ &.spartan-select-item-text {
992
992
  @apply flex flex-1 gap-2;
993
993
  }
994
994
 
995
- .spartan-select-separator {
995
+ &.spartan-select-separator {
996
996
  @apply bg-border -mx-1 my-1 h-px;
997
997
  }
998
998
 
999
- .spartan-select-scroll-up-button {
999
+ &.spartan-select-scroll-up-button {
1000
1000
  @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1001
1001
  }
1002
1002
 
1003
- .spartan-select-scroll-down-button {
1003
+ &.spartan-select-scroll-down-button {
1004
1004
  @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1005
1005
  }
1006
1006
 
1007
1007
  /* MARK: Separator */
1008
- .spartan-separator {
1008
+ &.spartan-separator {
1009
1009
  @apply bg-border shrink-0;
1010
1010
  }
1011
1011
 
1012
- .spartan-separator-horizontal {
1012
+ &.spartan-separator-horizontal {
1013
1013
  @apply h-px w-full;
1014
1014
  }
1015
1015
 
1016
- .spartan-separator-vertical {
1016
+ &.spartan-separator-vertical {
1017
1017
  @apply h-full w-px;
1018
1018
  }
1019
1019
 
1020
1020
  /* MARK: Sheet */
1021
- .spartan-sheet-overlay {
1021
+ &.spartan-sheet-overlay {
1022
1022
  @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs;
1023
1023
  }
1024
1024
 
1025
- .spartan-sheet-content {
1025
+ &.spartan-sheet-content {
1026
1026
  @apply bg-background data-open:animate-in data-closed:animate-out data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm;
1027
1027
  }
1028
1028
 
1029
- .spartan-sheet-close {
1029
+ &.spartan-sheet-close {
1030
1030
  @apply absolute end-4 top-4;
1031
1031
  }
1032
1032
 
1033
- .spartan-sheet-header {
1033
+ &.spartan-sheet-header {
1034
1034
  @apply gap-1.5 p-4;
1035
1035
  }
1036
1036
 
1037
- .spartan-sheet-footer {
1037
+ &.spartan-sheet-footer {
1038
1038
  @apply gap-2 p-4;
1039
1039
  }
1040
1040
 
1041
- .spartan-sheet-title {
1041
+ &.spartan-sheet-title {
1042
1042
  @apply text-foreground font-medium;
1043
1043
  }
1044
1044
 
1045
- .spartan-sheet-description {
1045
+ &.spartan-sheet-description {
1046
1046
  @apply text-muted-foreground text-sm;
1047
1047
  }
1048
1048
 
1049
1049
  /* MARK: Sidebar */
1050
- .spartan-sidebar-gap {
1050
+ &.spartan-sidebar-gap {
1051
1051
  @apply transition-[width] duration-200 ease-linear;
1052
1052
  }
1053
1053
 
1054
- .spartan-sidebar-inner {
1054
+ &.spartan-sidebar-inner {
1055
1055
  @apply bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1;
1056
1056
  }
1057
1057
 
1058
- .spartan-sidebar-rail {
1058
+ &.spartan-sidebar-rail {
1059
1059
  @apply hover:after:bg-sidebar-border;
1060
1060
  }
1061
1061
 
1062
- .spartan-sidebar-inset {
1062
+ &.spartan-sidebar-inset {
1063
1063
  @apply bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2;
1064
1064
  }
1065
1065
 
1066
- .spartan-sidebar-input {
1066
+ &.spartan-sidebar-input {
1067
1067
  @apply bg-background h-8 w-full shadow-none;
1068
1068
  }
1069
1069
 
1070
- .spartan-sidebar-header {
1070
+ &.spartan-sidebar-header {
1071
1071
  @apply gap-2 p-2;
1072
1072
  }
1073
1073
 
1074
- .spartan-sidebar-content {
1074
+ &.spartan-sidebar-content {
1075
1075
  @apply no-scrollbar gap-2;
1076
1076
  }
1077
1077
 
1078
- .spartan-sidebar-footer {
1078
+ &.spartan-sidebar-footer {
1079
1079
  @apply gap-2 p-2;
1080
1080
  }
1081
1081
 
1082
- .spartan-sidebar-separator {
1082
+ &.spartan-sidebar-separator {
1083
1083
  @apply bg-sidebar-border mx-2;
1084
1084
  }
1085
1085
 
1086
- .spartan-sidebar-group {
1086
+ &.spartan-sidebar-group {
1087
1087
  @apply p-2;
1088
1088
  }
1089
1089
 
1090
- .spartan-sidebar-menu {
1090
+ &.spartan-sidebar-menu {
1091
1091
  @apply gap-1;
1092
1092
  }
1093
1093
 
1094
- .spartan-sidebar-group-content {
1094
+ &.spartan-sidebar-group-content {
1095
1095
  @apply text-sm;
1096
1096
  }
1097
1097
 
1098
- .spartan-sidebar-group-label {
1098
+ &.spartan-sidebar-group-label {
1099
1099
  @apply text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>ng-icon]:text-[calc(var(--spacing)*4)];
1100
1100
  }
1101
1101
 
1102
- .spartan-sidebar-group-action {
1102
+ &.spartan-sidebar-group-action {
1103
1103
  @apply text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 w-5 rounded-md p-0 focus-visible:ring-2 [&>ng-icon]:text-[calc(var(--spacing)*4)];
1104
1104
  }
1105
1105
 
1106
- .spartan-sidebar-menu-button {
1106
+ &.spartan-sidebar-menu-button {
1107
1107
  @apply ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-start text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium;
1108
1108
  }
1109
1109
 
1110
- .spartan-sidebar-menu-button-variant-default {
1110
+ &.spartan-sidebar-menu-button-variant-default {
1111
1111
  @apply hover:bg-sidebar-accent hover:text-sidebar-accent-foreground;
1112
1112
  }
1113
1113
 
1114
- .spartan-sidebar-menu-button-variant-outline {
1114
+ &.spartan-sidebar-menu-button-variant-outline {
1115
1115
  @apply bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))];
1116
1116
  }
1117
1117
 
1118
- .spartan-sidebar-menu-button-size-default {
1118
+ &.spartan-sidebar-menu-button-size-default {
1119
1119
  @apply h-8 text-sm;
1120
1120
  }
1121
1121
 
1122
- .spartan-sidebar-menu-button-size-sm {
1122
+ &.spartan-sidebar-menu-button-size-sm {
1123
1123
  @apply h-7 text-xs;
1124
1124
  }
1125
1125
 
1126
- .spartan-sidebar-menu-button-size-lg {
1126
+ &.spartan-sidebar-menu-button-size-lg {
1127
1127
  @apply h-12 text-sm group-data-[collapsible=icon]:p-0!;
1128
1128
  }
1129
1129
 
1130
- .spartan-sidebar-menu-action {
1130
+ &.spartan-sidebar-menu-action {
1131
1131
  @apply text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>ng-icon]:text-[calc(var(--spacing)*4)];
1132
1132
  }
1133
1133
 
1134
- .spartan-sidebar-menu-badge {
1134
+ &.spartan-sidebar-menu-badge {
1135
1135
  @apply text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 rounded-md px-1 text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1;
1136
1136
  }
1137
1137
 
1138
- .spartan-sidebar-menu-skeleton {
1138
+ &.spartan-sidebar-menu-skeleton {
1139
1139
  @apply h-8 gap-2 rounded-md px-2;
1140
1140
  }
1141
1141
 
1142
- .spartan-sidebar-menu-skeleton-icon {
1142
+ &.spartan-sidebar-menu-skeleton-icon {
1143
1143
  @apply size-4 rounded-md;
1144
1144
  }
1145
1145
 
1146
- .spartan-sidebar-menu-skeleton-text {
1146
+ &.spartan-sidebar-menu-skeleton-text {
1147
1147
  @apply h-4;
1148
1148
  }
1149
1149
 
1150
- .spartan-sidebar-menu-sub {
1150
+ &.spartan-sidebar-menu-sub {
1151
1151
  @apply border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden;
1152
1152
  }
1153
1153
 
1154
- .spartan-sidebar-menu-sub-button {
1154
+ &.spartan-sidebar-menu-sub-button {
1155
1155
  @apply text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>ng-icon]:text-[calc(var(--spacing)*4)];
1156
1156
  }
1157
1157
 
1158
1158
  /* MARK: Skeleton */
1159
- .spartan-skeleton {
1159
+ &.spartan-skeleton {
1160
1160
  @apply bg-muted rounded-md;
1161
1161
  }
1162
1162
 
1163
1163
  /* MARK: Slider */
1164
- .spartan-slider {
1164
+ &.spartan-slider {
1165
1165
  @apply data-vertical:min-h-40;
1166
1166
  }
1167
1167
 
1168
- .spartan-slider-track {
1168
+ &.spartan-slider-track {
1169
1169
  @apply bg-muted rounded-full data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5;
1170
1170
  }
1171
1171
 
1172
- .spartan-slider-range {
1172
+ &.spartan-slider-range {
1173
1173
  @apply bg-primary;
1174
1174
  }
1175
1175
 
1176
- .spartan-slider-thumb {
1176
+ &.spartan-slider-thumb {
1177
1177
  @apply border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden;
1178
1178
  }
1179
1179
 
1180
1180
  /* MARK: Sonner */
1181
- .spartan-toast {
1181
+ &.spartan-toast {
1182
1182
  @apply rounded-2xl;
1183
1183
  }
1184
1184
 
1185
1185
  /* MARK: Switch */
1186
- .spartan-switch {
1186
+ &.spartan-switch {
1187
1187
  @apply data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 dark:data-unchecked:bg-input/80 shrink-0 rounded-full border border-transparent shadow-xs focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px];
1188
1188
  }
1189
1189
 
1190
- .spartan-switch-thumb {
1190
+ &.spartan-switch-thumb {
1191
1191
  @apply bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0;
1192
1192
  }
1193
1193
 
1194
1194
  /* MARK: Table */
1195
- .spartan-table-container {
1195
+ &.spartan-table-container {
1196
1196
  @apply relative w-full overflow-x-auto;
1197
1197
  }
1198
1198
 
1199
- .spartan-table {
1199
+ &.spartan-table {
1200
1200
  @apply w-full caption-bottom text-sm;
1201
1201
  }
1202
1202
 
1203
- .spartan-table-header {
1203
+ &.spartan-table-header {
1204
1204
  @apply [&_tr]:border-b;
1205
1205
  }
1206
1206
 
1207
- .spartan-table-body {
1207
+ &.spartan-table-body {
1208
1208
  @apply [&_tr:last-child]:border-0;
1209
1209
  }
1210
1210
 
1211
- .spartan-table-footer {
1211
+ &.spartan-table-footer {
1212
1212
  @apply bg-muted/50 border-t font-medium [&>tr]:last:border-b-0;
1213
1213
  }
1214
1214
 
1215
- .spartan-table-row {
1215
+ &.spartan-table-row {
1216
1216
  @apply hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors;
1217
1217
  }
1218
1218
 
1219
- .spartan-table-head {
1219
+ &.spartan-table-head {
1220
1220
  @apply text-foreground h-10 px-2 text-start align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pe-0;
1221
1221
  }
1222
1222
 
1223
- .spartan-table-cell {
1223
+ &.spartan-table-cell {
1224
1224
  @apply p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0;
1225
1225
  }
1226
1226
 
1227
- .spartan-table-caption {
1227
+ &.spartan-table-caption {
1228
1228
  @apply text-muted-foreground mt-4 text-sm;
1229
1229
  }
1230
1230
 
1231
1231
  /* MARK: Tabs */
1232
- .spartan-tabs {
1232
+ &.spartan-tabs {
1233
1233
  @apply gap-2;
1234
1234
  }
1235
1235
 
1236
- .spartan-tabs-list {
1236
+ &.spartan-tabs-list {
1237
1237
  @apply rounded-lg p-[3px] group-data-horizontal/tabs:h-9 data-[variant=line]:rounded-none;
1238
1238
  }
1239
1239
 
1240
- .spartan-tabs-trigger {
1240
+ &.spartan-tabs-trigger {
1241
1241
  @apply gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1242
1242
  }
1243
1243
 
1244
- .spartan-tabs-content {
1244
+ &.spartan-tabs-content {
1245
1245
  @apply text-sm;
1246
1246
  }
1247
1247
 
1248
1248
  /* MARK: Textarea */
1249
- .spartan-textarea {
1249
+ &.spartan-textarea {
1250
1250
  @apply border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 rounded-md border bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 md:text-sm;
1251
1251
  }
1252
1252
 
1253
1253
  /* MARK: Toggle */
1254
- .spartan-toggle {
1255
- @apply hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1254
+ &.spartan-toggle {
1255
+ @apply hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1256
1256
  }
1257
1257
 
1258
- .spartan-toggle-variant-default {
1258
+ &.spartan-toggle-variant-default {
1259
1259
  @apply bg-transparent;
1260
1260
  }
1261
1261
 
1262
- .spartan-toggle-variant-outline {
1262
+ &.spartan-toggle-variant-outline {
1263
1263
  @apply border-input hover:bg-muted border bg-transparent shadow-xs;
1264
1264
  }
1265
1265
 
1266
- .spartan-toggle-size-default {
1267
- @apply h-9 min-w-9 px-2;
1266
+ &.spartan-toggle-size-default {
1267
+ @apply h-9 min-w-9 px-2.5;
1268
1268
  }
1269
1269
 
1270
- .spartan-toggle-size-sm {
1271
- @apply h-8 min-w-8 px-1.5;
1270
+ &.spartan-toggle-size-sm {
1271
+ @apply h-8 min-w-8 px-2.5;
1272
1272
  }
1273
1273
 
1274
- .spartan-toggle-size-lg {
1274
+ &.spartan-toggle-size-lg {
1275
1275
  @apply h-10 min-w-10 px-2.5;
1276
1276
  }
1277
1277
 
1278
1278
  /* MARK: Toggle Group */
1279
- .spartan-toggle-group {
1279
+ &.spartan-toggle-group {
1280
1280
  @apply rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs;
1281
1281
  }
1282
1282
 
1283
- .spartan-toggle-group-item {
1284
- @apply data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md;
1283
+ &.spartan-toggle-group-item {
1284
+ @apply data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-s-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-e-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md;
1285
1285
  }
1286
1286
 
1287
1287
  /* MARK: Tooltip */
1288
- .spartan-tooltip-content {
1288
+ &.spartan-tooltip-content {
1289
1289
  @apply data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs;
1290
1290
  }
1291
1291
 
1292
- .spartan-tooltip-content-logical {
1292
+ &.spartan-tooltip-content-logical {
1293
1293
  @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
1294
1294
  }
1295
1295
 
1296
- .spartan-tooltip-arrow {
1296
+ &.spartan-tooltip-arrow {
1297
1297
  @apply size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px];
1298
1298
  }
1299
1299
 
1300
- .spartan-tooltip-arrow-logical {
1300
+ &.spartan-tooltip-arrow-logical {
1301
1301
  @apply data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2;
1302
1302
  }
1303
1303
 
1304
1304
  /* MARK: Input Group */
1305
- .spartan-input-group {
1305
+ &.spartan-input-group {
1306
1306
  @apply border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/20 has-[[data-slot][data-matches-spartan-invalid=true]]:border-destructive dark:has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/40 h-9 rounded-md border shadow-xs transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5;
1307
1307
  }
1308
1308
 
1309
- .spartan-input-group-addon {
1309
+ &.spartan-input-group-addon {
1310
1310
  @apply text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4;
1311
1311
  }
1312
1312
 
1313
- .spartan-input-group-addon-align-inline-start {
1313
+ &.spartan-input-group-addon-align-inline-start {
1314
1314
  @apply pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem];
1315
1315
  }
1316
1316
 
1317
- .spartan-input-group-addon-align-inline-end {
1317
+ &.spartan-input-group-addon-align-inline-end {
1318
1318
  @apply pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem];
1319
1319
  }
1320
1320
 
1321
- .spartan-input-group-addon-align-block-start {
1321
+ &.spartan-input-group-addon-align-block-start {
1322
1322
  @apply px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2;
1323
1323
  }
1324
1324
 
1325
- .spartan-input-group-addon-align-block-end {
1325
+ &.spartan-input-group-addon-align-block-end {
1326
1326
  @apply px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2;
1327
1327
  }
1328
1328
 
1329
- .spartan-input-group-button {
1329
+ &.spartan-input-group-button {
1330
1330
  @apply gap-2 text-sm;
1331
1331
  }
1332
1332
 
1333
- .spartan-input-group-button-size-xs {
1333
+ &.spartan-input-group-button-size-xs {
1334
1334
  @apply h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5;
1335
1335
  }
1336
1336
 
1337
- .spartan-input-group-button-size-icon-xs {
1337
+ &.spartan-input-group-button-size-icon-xs {
1338
1338
  @apply size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>ng-icon]:p-0;
1339
1339
  }
1340
1340
 
1341
- .spartan-input-group-button-size-icon-sm {
1341
+ &.spartan-input-group-button-size-icon-sm {
1342
1342
  @apply size-8 p-0 has-[>ng-icon]:p-0;
1343
1343
  }
1344
1344
 
1345
- .spartan-input-group-text {
1345
+ &.spartan-input-group-text {
1346
1346
  @apply text-muted-foreground gap-2 text-sm [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1347
1347
  }
1348
1348
 
1349
- .spartan-input-group-input {
1349
+ &.spartan-input-group-input {
1350
1350
  @apply rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 data-[matches-spartan-invalid=true]:ring-0 dark:bg-transparent;
1351
1351
  }
1352
1352
 
1353
- .spartan-input-group-textarea {
1353
+ &.spartan-input-group-textarea {
1354
1354
  @apply rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 data-[matches-spartan-invalid=true]:ring-0 dark:bg-transparent;
1355
1355
  }
1356
1356
  }