@spartan-ng/cli 0.0.1-alpha.717 → 0.0.1-alpha.719

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 (56) hide show
  1. package/package.json +1 -1
  2. package/src/generators/base/generator.d.ts +1 -0
  3. package/src/generators/base/generator.js +96 -0
  4. package/src/generators/base/generator.js.map +1 -1
  5. package/src/generators/base/lib/build-dependency-array.js +13 -0
  6. package/src/generators/base/lib/build-dependency-array.js.map +1 -1
  7. package/src/generators/base/versions.d.ts +1 -1
  8. package/src/generators/base/versions.js +1 -1
  9. package/src/generators/healthcheck/healthchecks/version.js +5 -1
  10. package/src/generators/healthcheck/healthchecks/version.js.map +1 -1
  11. package/src/generators/migrate-helm-libraries/generator.js +26 -7
  12. package/src/generators/migrate-helm-libraries/generator.js.map +1 -1
  13. package/src/generators/migrate-icon/generator.js +1 -1
  14. package/src/generators/migrate-icon/generator.js.map +1 -1
  15. package/src/generators/migrate-naming-convention/__snapshots__/generator.spec.ts.snap +1 -1
  16. package/src/generators/migrate-scroll-area/generator.js +1 -1
  17. package/src/generators/migrate-scroll-area/generator.js.map +1 -1
  18. package/src/generators/ui/libs/avatar/files/lib/hlm-avatar-badge.ts.template +2 -2
  19. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-ellipsis.ts.template +9 -4
  20. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar-multi.ts.template +134 -183
  21. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar-range.ts.template +133 -176
  22. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar.ts.template +121 -169
  23. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-next.ts.template +3 -4
  24. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-previous.ts.template +3 -4
  25. package/src/generators/ui/libs/checkbox/files/lib/hlm-checkbox.ts.template +3 -4
  26. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-multi.ts.template +1 -1
  27. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker.ts.template +1 -1
  28. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-range-picker.ts.template +1 -1
  29. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-content.ts.template +4 -4
  30. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-item-sub-indicator.ts.template +1 -1
  31. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp-separator.ts.template +2 -3
  32. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-content.ts.template +4 -4
  33. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-button.ts.template +1 -1
  34. package/src/generators/ui/libs/spinner/files/lib/hlm-spinner.ts.template +1 -1
  35. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs-paginated-list.ts.template +7 -8
  36. package/src/generators/ui/libs/utils/files/index.ts.template +1 -0
  37. package/src/generators/ui/libs/utils/files/lib/provide-spartan-hlm.ts.template +34 -0
  38. package/src/generators/ui/primitive-deps.js +19 -20
  39. package/src/generators/ui/primitive-deps.js.map +1 -1
  40. package/src/generators/ui/primitives.d.ts +1 -1
  41. package/src/generators/ui/style-luma.css +43 -47
  42. package/src/generators/ui/style-lyra.css +44 -48
  43. package/src/generators/ui/style-maia.css +43 -47
  44. package/src/generators/ui/style-mira.css +48 -52
  45. package/src/generators/ui/style-nova.css +45 -49
  46. package/src/generators/ui/style-vega.css +43 -47
  47. package/src/generators/ui/supported-ui-libraries.json +43 -52
  48. package/src/utils/string-change.d.ts +26 -0
  49. package/src/utils/string-change.js +84 -0
  50. package/src/utils/string-change.js.map +1 -0
  51. package/src/generators/ui/libs/icon/files/index.ts.template +0 -7
  52. package/src/generators/ui/libs/icon/files/lib/hlm-icon.token.ts.template +0 -20
  53. package/src/generators/ui/libs/icon/files/lib/hlm-icon.ts.template +0 -35
  54. package/src/generators/ui/libs/icon/generator.d.ts +0 -3
  55. package/src/generators/ui/libs/icon/generator.js +0 -9
  56. package/src/generators/ui/libs/icon/generator.js.map +0 -1
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  .spartan-accordion-trigger {
16
- @apply **:data-[slot=accordion-trigger-icon]:text-muted-foreground! gap-6 p-2 text-start text-xs/relaxed font-medium hover:underline **:data-[slot=accordion-trigger-icon]:ms-auto **:data-[slot=accordion-trigger-icon]:text-[calc(var(--spacing)*4)];
16
+ @apply **:data-[slot=accordion-trigger-icon]:text-muted-foreground! gap-6 p-2 text-start text-xs/relaxed font-medium hover:underline **:data-[slot=accordion-trigger-icon]:ms-auto **:data-[slot=accordion-trigger-icon]:text-[length:--spacing(4)];
17
17
  }
18
18
 
19
19
  .spartan-accordion-content {
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  .spartan-alert-dialog-media {
41
- @apply bg-muted mb-2 inline-flex size-8 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)*4)];
41
+ @apply bg-muted mb-2 inline-flex size-8 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
42
42
  }
43
43
 
44
44
  .spartan-alert-dialog-title {
@@ -51,7 +51,7 @@
51
51
 
52
52
  /* MARK: Alert */
53
53
  .spartan-alert {
54
- @apply grid gap-0.5 rounded-lg border px-2 py-1.5 text-start text-xs/relaxed has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pe-18 has-[>ng-icon]:grid-cols-[auto_1fr] has-[>ng-icon]:gap-x-1.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)*3.5)];
54
+ @apply grid gap-0.5 rounded-lg border px-2 py-1.5 text-start text-xs/relaxed has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pe-18 has-[>ng-icon]:grid-cols-[auto_1fr] has-[>ng-icon]:gap-x-1.5 *:[ng-icon]:row-span-2 *:[ng-icon]:translate-y-0.5 *:[ng-icon]:text-current *:[ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
55
55
  }
56
56
 
57
57
  .spartan-alert-variant-default {
@@ -88,7 +88,7 @@
88
88
  }
89
89
 
90
90
  .spartan-autocomplete-item-indicator {
91
- @apply absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*3.5)];
91
+ @apply absolute end-2 flex items-center justify-center text-[length:--spacing(3.5)];
92
92
  }
93
93
 
94
94
  .spartan-autocomplete-empty {
@@ -125,12 +125,12 @@
125
125
  }
126
126
 
127
127
  .spartan-avatar-group-count {
128
- @apply bg-muted text-muted-foreground size-8 rounded-full text-xs/relaxed 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)];
128
+ @apply bg-muted text-muted-foreground size-8 rounded-full text-xs/relaxed group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>ng-icon]:text-[length:--spacing(4)] group-has-data-[size=lg]/avatar-group:[&>ng-icon]:text-[length:--spacing(5)] group-has-data-[size=sm]/avatar-group:[&>ng-icon]:text-[length:--spacing(3)];
129
129
  }
130
130
 
131
131
  /* MARK: Badge */
132
132
  .spartan-badge {
133
- @apply h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] 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)*2.5)];
133
+ @apply h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium transition-all has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&>ng-icon]:text-[length:--spacing(2.5)];
134
134
  }
135
135
 
136
136
  .spartan-badge-variant-default {
@@ -175,16 +175,16 @@
175
175
  }
176
176
 
177
177
  .spartan-breadcrumb-separator {
178
- @apply [&>ng-icon]:text-[calc(var(--spacing)*3.5)];
178
+ @apply [&>ng-icon]:text-[length:--spacing(3.5)];
179
179
  }
180
180
 
181
181
  .spartan-breadcrumb-ellipsis {
182
- @apply size-4 [&>ng-icon]:text-[calc(var(--spacing)*3.5)];
182
+ @apply size-4 [&>ng-icon]:text-[length:--spacing(3.5)];
183
183
  }
184
184
 
185
185
  /* MARK: Button */
186
186
  .spartan-button {
187
- @apply focus-visible:border-ring focus-visible:ring-ring/30 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-xs/relaxed font-medium focus-visible:ring-2 active:not-aria-[haspopup]:translate-y-px data-[matches-spartan-invalid=true]:ring-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
187
+ @apply focus-visible:border-ring focus-visible:ring-ring/30 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-xs/relaxed font-medium focus-visible:ring-2 active:not-aria-[haspopup]:translate-y-px data-[matches-spartan-invalid=true]:ring-2 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
188
188
  }
189
189
 
190
190
  .spartan-button-variant-default {
@@ -216,15 +216,15 @@
216
216
  }
217
217
 
218
218
  .spartan-button-size-sm {
219
- @apply h-6 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
219
+ @apply h-6 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3)];
220
220
  }
221
221
 
222
222
  .spartan-button-size-default {
223
- @apply h-7 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
223
+ @apply h-7 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
224
224
  }
225
225
 
226
226
  .spartan-button-size-lg {
227
- @apply h-8 gap-1 px-2.5 text-xs/relaxed has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
227
+ @apply h-8 gap-1 px-2.5 text-xs/relaxed has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
228
228
  }
229
229
 
230
230
  .spartan-button-size-icon-xs {
@@ -232,15 +232,15 @@
232
232
  }
233
233
 
234
234
  .spartan-button-size-icon-sm {
235
- @apply size-6 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
235
+ @apply size-6 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3)];
236
236
  }
237
237
 
238
238
  .spartan-button-size-icon {
239
- @apply size-7 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
239
+ @apply size-7 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
240
240
  }
241
241
 
242
242
  .spartan-button-size-icon-lg {
243
- @apply size-8 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
243
+ @apply size-8 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
244
244
  }
245
245
 
246
246
  /* MARK: Button Group */
@@ -257,7 +257,7 @@
257
257
  }
258
258
 
259
259
  .spartan-button-group-text {
260
- @apply bg-muted gap-2 rounded-md border px-2.5 text-xs/relaxed font-medium [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
260
+ @apply bg-muted gap-2 rounded-md border px-2.5 text-xs/relaxed font-medium [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
261
261
  }
262
262
 
263
263
  .spartan-button-group-separator {
@@ -269,10 +269,6 @@
269
269
  @apply p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(6)];
270
270
  }
271
271
 
272
- .spartan-calendar-dropdown-root {
273
- @apply has-focus:border-ring border-input has-focus:ring-ring/30 border has-focus:ring-2;
274
- }
275
-
276
272
  .spartan-calendar-caption-label {
277
273
  @apply bg-input/20 dark:bg-input/30 h-7 ps-2 pe-1.5;
278
274
  }
@@ -322,7 +318,7 @@
322
318
  }
323
319
 
324
320
  .spartan-checkbox-indicator {
325
- @apply [&>ng-icon]:text-[calc(var(--spacing)*3.5)];
321
+ @apply [&>ng-icon]:text-[length:--spacing(3.5)];
326
322
  }
327
323
 
328
324
  /* MARK: Combobox */
@@ -339,7 +335,7 @@
339
335
  }
340
336
 
341
337
  .spartan-combobox-item-indicator {
342
- @apply pointer-events-none absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*3.5)];
338
+ @apply pointer-events-none absolute end-2 flex items-center justify-center text-[length:--spacing(3.5)];
343
339
  }
344
340
 
345
341
  .spartan-combobox-empty {
@@ -359,7 +355,7 @@
359
355
  }
360
356
 
361
357
  .spartan-combobox-trigger-icon {
362
- @apply text-muted-foreground text-[calc(var(--spacing)*3.5)];
358
+ @apply text-muted-foreground text-[length:--spacing(3.5)];
363
359
  }
364
360
 
365
361
  .spartan-combobox-chips {
@@ -379,7 +375,7 @@
379
375
  }
380
376
 
381
377
  .spartan-combobox-placeholder {
382
- @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
378
+ @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
383
379
  }
384
380
 
385
381
  .spartan-combobox-status {
@@ -400,7 +396,7 @@
400
396
  }
401
397
 
402
398
  .spartan-command-input-icon {
403
- @apply shrink-0 text-[calc(var(--spacing)*3.5)] opacity-50;
399
+ @apply shrink-0 text-[length:--spacing(3.5)] opacity-50;
404
400
  }
405
401
 
406
402
  .spartan-command-input {
@@ -424,7 +420,7 @@
424
420
  }
425
421
 
426
422
  .spartan-command-item {
427
- @apply data-selected:bg-muted data-selected:text-foreground relative flex min-h-7 cursor-default items-center gap-2 rounded-md px-2.5 py-1.5 text-xs/relaxed outline-hidden select-none in-data-[slot=dialog-content]:rounded-md [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
423
+ @apply data-selected:bg-muted data-selected:text-foreground relative flex min-h-7 cursor-default items-center gap-2 rounded-md px-2.5 py-1.5 text-xs/relaxed outline-hidden select-none in-data-[slot=dialog-content]:rounded-md [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
428
424
  }
429
425
 
430
426
  .spartan-command-shortcut {
@@ -504,19 +500,19 @@
504
500
  }
505
501
 
506
502
  .spartan-dropdown-menu-item {
507
- @apply hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:hover:bg-destructive/10 data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:hover:text-destructive data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[ng-icon]:text-destructive not-data-[variant=destructive]:hover:**:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs/relaxed data-inset:ps-7.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
503
+ @apply hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:hover:bg-destructive/10 data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:hover:text-destructive data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[ng-icon]:text-destructive not-data-[variant=destructive]:hover:**:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs/relaxed data-inset:ps-7.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
508
504
  }
509
505
 
510
506
  .spartan-dropdown-menu-checkbox-item {
511
- @apply hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:**:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 ps-2 pe-8 text-xs data-inset:ps-7.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
507
+ @apply hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:**:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 ps-2 pe-8 text-xs data-inset:ps-7.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
512
508
  }
513
509
 
514
510
  .spartan-dropdown-menu-radio-item {
515
- @apply hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:**:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 ps-2 pe-8 text-xs data-inset:ps-7.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
511
+ @apply hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:**:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 ps-2 pe-8 text-xs data-inset:ps-7.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
516
512
  }
517
513
 
518
514
  .spartan-dropdown-menu-item-indicator {
519
- @apply absolute end-2 flex items-center justify-center [&_ng-icon]:text-[calc(var(--spacing)*3.5)];
515
+ @apply absolute end-2 flex items-center justify-center [&_ng-icon]:text-[length:--spacing(3.5)];
520
516
  }
521
517
 
522
518
  .spartan-dropdown-menu-label {
@@ -553,7 +549,7 @@
553
549
  }
554
550
 
555
551
  .spartan-empty-media-icon {
556
- @apply bg-muted text-foreground flex size-8 shrink-0 items-center justify-center rounded-md [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
552
+ @apply bg-muted text-foreground flex size-8 shrink-0 items-center justify-center rounded-md [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
557
553
  }
558
554
 
559
555
  .spartan-empty-title {
@@ -641,7 +637,7 @@
641
637
  }
642
638
 
643
639
  .spartan-input-otp-separator {
644
- @apply [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
640
+ @apply [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
645
641
  }
646
642
 
647
643
  /* MARK: Item */
@@ -682,7 +678,7 @@
682
678
  }
683
679
 
684
680
  .spartan-item-media-variant-icon {
685
- @apply [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
681
+ @apply [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
686
682
  }
687
683
 
688
684
  .spartan-item-media-variant-image {
@@ -723,7 +719,7 @@
723
719
 
724
720
  /* MARK: Kbd */
725
721
  .spartan-kbd {
726
- @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-xs px-1 font-sans text-[0.625rem] font-medium [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
722
+ @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-xs px-1 font-sans text-[0.625rem] font-medium [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3)];
727
723
  }
728
724
 
729
725
  .spartan-kbd-group {
@@ -762,7 +758,7 @@
762
758
  }
763
759
 
764
760
  .spartan-navigation-menu-link {
765
- @apply data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/30 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-lg p-2 text-xs/relaxed transition-all outline-none focus-visible:ring-2 focus-visible:outline-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
761
+ @apply data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/30 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-lg p-2 text-xs/relaxed transition-all outline-none focus-visible:ring-2 focus-visible:outline-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
766
762
  }
767
763
 
768
764
  .spartan-navigation-menu-popup {
@@ -775,7 +771,7 @@
775
771
  }
776
772
 
777
773
  .spartan-native-select-icon {
778
- @apply text-muted-foreground end-1.5 top-1/2 -translate-y-1.5 text-[calc(var(--spacing)*3.5)] group-data-[size=sm]/native-select:-translate-y-1.25 group-data-[size=sm]/native-select:text-[calc(var(--spacing)*3)];
774
+ @apply text-muted-foreground end-1.5 top-1/2 -translate-y-1.5 text-[length:--spacing(3.5)] group-data-[size=sm]/native-select:-translate-y-1.25 group-data-[size=sm]/native-select:text-[length:--spacing(3)];
779
775
  }
780
776
 
781
777
  /* MARK: Pagination */
@@ -784,7 +780,7 @@
784
780
  }
785
781
 
786
782
  .spartan-pagination-ellipsis {
787
- @apply size-7 items-center justify-center [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
783
+ @apply size-7 items-center justify-center [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
788
784
  }
789
785
 
790
786
  .spartan-pagination-previous {
@@ -866,7 +862,7 @@
866
862
  }
867
863
 
868
864
  .spartan-select-trigger-icon {
869
- @apply text-muted-foreground text-[calc(var(--spacing)*3.5)];
865
+ @apply text-muted-foreground text-[length:--spacing(3.5)];
870
866
  }
871
867
 
872
868
  .spartan-select-content {
@@ -882,7 +878,7 @@
882
878
  }
883
879
 
884
880
  .spartan-select-item-indicator {
885
- @apply absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*3.5)];
881
+ @apply absolute end-2 flex items-center justify-center text-[length:--spacing(3.5)];
886
882
  }
887
883
 
888
884
  .spartan-select-group {
@@ -894,15 +890,15 @@
894
890
  }
895
891
 
896
892
  .spartan-select-scroll-up-button {
897
- @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
893
+ @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
898
894
  }
899
895
 
900
896
  .spartan-select-scroll-down-button {
901
- @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
897
+ @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
902
898
  }
903
899
 
904
900
  .spartan-select-placeholder {
905
- @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
901
+ @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
906
902
  }
907
903
 
908
904
  .spartan-select-values-content {
@@ -1001,11 +997,11 @@
1001
997
  }
1002
998
 
1003
999
  .spartan-sidebar-group-label {
1004
- @apply text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs 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)];
1000
+ @apply text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs 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-[length:--spacing(4)];
1005
1001
  }
1006
1002
 
1007
1003
  .spartan-sidebar-group-action {
1008
- @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)];
1004
+ @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-[length:--spacing(4)];
1009
1005
  }
1010
1006
 
1011
1007
  .spartan-sidebar-menu-button {
@@ -1033,7 +1029,7 @@
1033
1029
  }
1034
1030
 
1035
1031
  .spartan-sidebar-menu-action {
1036
- @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-[calc(var(--radius-sm)-2px)] 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)];
1032
+ @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-[calc(var(--radius-sm)-2px)] 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-[length:--spacing(4)];
1037
1033
  }
1038
1034
 
1039
1035
  .spartan-sidebar-menu-badge {
@@ -1057,7 +1053,7 @@
1057
1053
  }
1058
1054
 
1059
1055
  .spartan-sidebar-menu-sub-button {
1060
- @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-xs data-[size=sm]:text-xs [&>ng-icon]:text-[calc(var(--spacing)*4)];
1056
+ @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-xs data-[size=sm]:text-xs [&>ng-icon]:text-[length:--spacing(4)];
1061
1057
  }
1062
1058
 
1063
1059
  /* MARK: Skeleton */
@@ -1147,7 +1143,7 @@
1147
1143
  }
1148
1144
 
1149
1145
  .spartan-tabs-trigger {
1150
- @apply gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-xs font-medium group-data-vertical/tabs:py-[calc(--spacing(1.25))] [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
1146
+ @apply gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-xs font-medium group-data-vertical/tabs:py-[calc(--spacing(1.25))] [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
1151
1147
  }
1152
1148
 
1153
1149
  .spartan-tabs-content {
@@ -1161,7 +1157,7 @@
1161
1157
 
1162
1158
  /* MARK: Toggle */
1163
1159
  .spartan-toggle {
1164
- @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 data-[state=on]:bg-muted gap-1 rounded-md text-xs font-medium transition-all [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1160
+ @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 data-[state=on]:bg-muted gap-1 rounded-md text-xs font-medium transition-all [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
1165
1161
  }
1166
1162
 
1167
1163
  .spartan-toggle-variant-default {
@@ -1177,7 +1173,7 @@
1177
1173
  }
1178
1174
 
1179
1175
  .spartan-toggle-size-sm {
1180
- @apply h-6 min-w-6 rounded-[min(var(--radius-md),8px)] px-2 text-[0.625rem] [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
1176
+ @apply h-6 min-w-6 rounded-[min(var(--radius-md),8px)] px-2 text-[0.625rem] [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3)];
1181
1177
  }
1182
1178
 
1183
1179
  .spartan-toggle-size-lg {
@@ -1204,7 +1200,7 @@
1204
1200
  }
1205
1201
 
1206
1202
  .spartan-input-group-addon {
1207
- @apply text-muted-foreground **:data-[slot=kbd]:bg-muted-foreground/10 h-auto gap-1 py-2 text-xs/relaxed font-medium group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-[calc(var(--radius-sm)-2px)] **:data-[slot=kbd]:px-1 **:data-[slot=kbd]:text-[0.625rem] [&>ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3.5)];
1203
+ @apply text-muted-foreground **:data-[slot=kbd]:bg-muted-foreground/10 h-auto gap-1 py-2 text-xs/relaxed font-medium group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-[calc(var(--radius-sm)-2px)] **:data-[slot=kbd]:px-1 **:data-[slot=kbd]:text-[0.625rem] [&>ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)];
1208
1204
  }
1209
1205
 
1210
1206
  .spartan-input-group-addon-align-inline-start {
@@ -1228,7 +1224,7 @@
1228
1224
  }
1229
1225
 
1230
1226
  .spartan-input-group-button-size-xs {
1231
- @apply h-5 gap-1 rounded-[calc(var(--radius-sm)-2px)] px-1 [&>ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*3)];
1227
+ @apply h-5 gap-1 rounded-[calc(var(--radius-sm)-2px)] px-1 [&>ng-icon:not([class*='text-'])]:text-[length:--spacing(3)];
1232
1228
  }
1233
1229
 
1234
1230
  .spartan-input-group-button-size-icon-xs {
@@ -1244,7 +1240,7 @@
1244
1240
  }
1245
1241
 
1246
1242
  .spartan-input-group-text {
1247
- @apply text-muted-foreground gap-2 text-xs/relaxed [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1243
+ @apply text-muted-foreground gap-2 text-xs/relaxed [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)];
1248
1244
  }
1249
1245
 
1250
1246
  .spartan-input-group-input {