@spartan-ng/cli 0.0.1-alpha.703 → 0.0.1-alpha.705

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 (58) hide show
  1. package/README.md +118 -6
  2. package/package.json +2 -2
  3. package/src/generators/base/lib/styles/transform-style-map.js +8 -3
  4. package/src/generators/base/lib/styles/transform-style-map.js.map +1 -1
  5. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-content.ts.template +1 -2
  6. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-empty.ts.template +2 -7
  7. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-group.ts.template +1 -3
  8. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-input.ts.template +4 -0
  9. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-item.ts.template +3 -9
  10. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-label.ts.template +2 -4
  11. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-list.ts.template +2 -7
  12. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-search.ts.template +1 -3
  13. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-separator.ts.template +2 -4
  14. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-status.ts.template +2 -4
  15. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete.ts.template +1 -3
  16. package/src/generators/ui/libs/button/files/lib/hlm-button.ts.template +1 -3
  17. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-chip-input.ts.template +2 -4
  18. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-chip-remove.ts.template +2 -4
  19. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-chip.ts.template +2 -4
  20. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-chips.ts.template +7 -10
  21. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-content.ts.template +1 -3
  22. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-empty.ts.template +2 -7
  23. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-group.ts.template +1 -3
  24. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-input.ts.template +2 -0
  25. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-item.ts.template +3 -9
  26. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-label.ts.template +2 -4
  27. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-list.ts.template +2 -7
  28. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-multiple.ts.template +1 -3
  29. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-placeholder.ts.template +1 -1
  30. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-separator.ts.template +2 -4
  31. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-status.ts.template +2 -4
  32. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-trigger.ts.template +2 -2
  33. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox-value.ts.template +1 -0
  34. package/src/generators/ui/libs/combobox/files/lib/hlm-combobox.ts.template +1 -3
  35. package/src/generators/ui/libs/select/files/lib/hlm-select-content.ts.template +1 -4
  36. package/src/generators/ui/libs/select/files/lib/hlm-select-group.ts.template +2 -4
  37. package/src/generators/ui/libs/select/files/lib/hlm-select-item.ts.template +3 -5
  38. package/src/generators/ui/libs/select/files/lib/hlm-select-label.ts.template +2 -4
  39. package/src/generators/ui/libs/select/files/lib/hlm-select-multiple.ts.template +1 -3
  40. package/src/generators/ui/libs/select/files/lib/hlm-select-placeholder.ts.template +1 -1
  41. package/src/generators/ui/libs/select/files/lib/hlm-select-scroll-down.ts.template +1 -4
  42. package/src/generators/ui/libs/select/files/lib/hlm-select-scroll-up.ts.template +1 -4
  43. package/src/generators/ui/libs/select/files/lib/hlm-select-separator.ts.template +2 -4
  44. package/src/generators/ui/libs/select/files/lib/hlm-select-trigger.ts.template +8 -4
  45. package/src/generators/ui/libs/select/files/lib/hlm-select-values-content.ts.template +1 -1
  46. package/src/generators/ui/libs/select/files/lib/hlm-select.ts.template +1 -3
  47. package/src/generators/ui/style-luma.css +66 -33
  48. package/src/generators/ui/style-lyra.css +67 -34
  49. package/src/generators/ui/style-maia.css +67 -34
  50. package/src/generators/ui/style-mira.css +67 -34
  51. package/src/generators/ui/style-nova.css +67 -34
  52. package/src/generators/ui/style-vega.css +67 -34
  53. package/src/generators/ui/supported-ui-libraries.json +40 -40
  54. package/src/index.d.ts +2 -0
  55. package/src/index.js +9 -0
  56. package/src/index.js.map +1 -1
  57. package/src/registry/schema.d.ts +33 -33
  58. package/src/utils/config.d.ts +6 -6
@@ -74,6 +74,39 @@
74
74
  @apply bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4;
75
75
  }
76
76
 
77
+ /* MARK: Autocomplete */
78
+ .spartan-autocomplete-content {
79
+ @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 max-h-72 min-w-36 overflow-hidden rounded-lg shadow-md ring-1 duration-100;
80
+ }
81
+
82
+ .spartan-autocomplete-label {
83
+ @apply text-muted-foreground px-2 py-1.5 text-xs;
84
+ }
85
+
86
+ .spartan-autocomplete-item {
87
+ @apply data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2 rounded-md py-1 ps-1.5 pe-8 text-sm;
88
+ }
89
+
90
+ .spartan-autocomplete-item-indicator {
91
+ @apply absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*4)];
92
+ }
93
+
94
+ .spartan-autocomplete-empty {
95
+ @apply text-muted-foreground hidden w-full items-center justify-center py-2 text-center text-sm group-data-empty/autocomplete-content:flex;
96
+ }
97
+
98
+ .spartan-autocomplete-list {
99
+ @apply no-scrollbar max-h-[calc(--spacing(72)---spacing(9))] scroll-py-1 p-1 data-empty:p-0;
100
+ }
101
+
102
+ .spartan-autocomplete-separator {
103
+ @apply bg-border -mx-1 my-1 h-px;
104
+ }
105
+
106
+ .spartan-autocomplete-status {
107
+ @apply text-muted-foreground gap-2 py-2 text-sm;
108
+ }
109
+
77
110
  /* MARK: Avatar */
78
111
  .spartan-avatar {
79
112
  @apply size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6;
@@ -294,11 +327,7 @@
294
327
 
295
328
  /* MARK: Combobox */
296
329
  .spartan-combobox-content {
297
- @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-lg 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;
298
- }
299
-
300
- .spartan-combobox-content-logical {
301
- @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
330
+ @apply bg-popover text-popover-foreground data-open:animate-in **:has-[[data-slot=input-group-control]:focus-visible]:border-input 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-lg shadow-md ring-1 duration-100 **:has-[[data-slot=input-group-control]:focus-visible]:ring-0 **:data-[slot=input-group]:m-1 **:data-[slot=input-group]:mb-0 **:data-[slot=input-group]:h-8 **:data-[slot=input-group]:shadow-none;
302
331
  }
303
332
 
304
333
  .spartan-combobox-label {
@@ -306,23 +335,19 @@
306
335
  }
307
336
 
308
337
  .spartan-combobox-item {
309
- @apply data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2 rounded-md py-1 ps-1.5 pe-8 text-sm [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
338
+ @apply data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2 rounded-md py-1 ps-1.5 pe-8 text-sm;
310
339
  }
311
340
 
312
341
  .spartan-combobox-item-indicator {
313
- @apply pointer-events-none absolute end-2 flex size-4 items-center justify-center;
342
+ @apply pointer-events-none absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*4)];
314
343
  }
315
344
 
316
345
  .spartan-combobox-empty {
317
- @apply text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex;
346
+ @apply text-muted-foreground hidden w-full items-center justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex;
318
347
  }
319
348
 
320
349
  .spartan-combobox-list {
321
- @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;
322
- }
323
-
324
- .spartan-combobox-item-text {
325
- @apply flex flex-1 gap-2;
350
+ @apply no-scrollbar max-h-[calc(--spacing(72)---spacing(9))] scroll-py-1 overflow-y-auto p-1 data-empty:p-0;
326
351
  }
327
352
 
328
353
  .spartan-combobox-separator {
@@ -330,15 +355,15 @@
330
355
  }
331
356
 
332
357
  .spartan-combobox-trigger {
333
- @apply [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
358
+ @apply data-placeholder:text-muted-foreground;
334
359
  }
335
360
 
336
361
  .spartan-combobox-trigger-icon {
337
- @apply text-muted-foreground size-4;
362
+ @apply text-muted-foreground text-[calc(var(--spacing)*4)];
338
363
  }
339
364
 
340
365
  .spartan-combobox-chips {
341
- @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-8 flex-wrap items-center gap-1 rounded-lg border bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:ring-3 has-data-[slot=combobox-chip]:px-1 data-[matches-spartan-invalid=true]:ring-3;
366
+ @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-8 flex-wrap items-center gap-1 rounded-lg border bg-transparent bg-clip-padding px-2.5 py-1 text-sm shadow-xs transition-[color,box-shadow] focus-within:ring-3 has-data-[slot=combobox-chip]:px-1 data-[matches-spartan-invalid=true]:ring-3;
342
367
  }
343
368
 
344
369
  .spartan-combobox-chip {
@@ -346,7 +371,19 @@
346
371
  }
347
372
 
348
373
  .spartan-combobox-chip-remove {
349
- @apply -ml-1 opacity-50 hover:opacity-100;
374
+ @apply -ms-1 opacity-50 hover:opacity-100;
375
+ }
376
+
377
+ .spartan-combobox-chip-input {
378
+ @apply placeholder:text-muted-foreground;
379
+ }
380
+
381
+ .spartan-combobox-placeholder {
382
+ @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
383
+ }
384
+
385
+ .spartan-combobox-status {
386
+ @apply text-muted-foreground gap-2 py-2 text-sm;
350
387
  }
351
388
 
352
389
  /* MARK: Command */
@@ -961,23 +998,15 @@
961
998
 
962
999
  /* MARK: Select */
963
1000
  .spartan-select-trigger {
964
- @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-lg border bg-transparent py-2 ps-2.5 pe-2 text-sm transition-colors select-none focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
965
- }
966
-
967
- .spartan-select-value {
968
- @apply flex flex-1 text-start;
1001
+ @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-lg border bg-transparent py-2 ps-2.5 pe-2 text-sm transition-colors focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5;
969
1002
  }
970
1003
 
971
1004
  .spartan-select-trigger-icon {
972
- @apply text-muted-foreground size-4;
1005
+ @apply text-muted-foreground text-[calc(var(--spacing)*4)];
973
1006
  }
974
1007
 
975
1008
  .spartan-select-content {
976
- @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-lg shadow-md ring-1 duration-100;
977
- }
978
-
979
- .spartan-select-content-logical {
980
- @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
1009
+ @apply bg-popover no-scrollbar 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 max-h-72 min-w-36 flex-col rounded-lg shadow-md ring-1 duration-100;
981
1010
  }
982
1011
 
983
1012
  .spartan-select-label {
@@ -985,21 +1014,17 @@
985
1014
  }
986
1015
 
987
1016
  .spartan-select-item {
988
- @apply focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md py-1 ps-1.5 pe-8 text-sm [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)] *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2;
1017
+ @apply data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-1.5 rounded-md py-1 ps-1.5 pe-8 text-sm *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2;
989
1018
  }
990
1019
 
991
1020
  .spartan-select-item-indicator {
992
- @apply pointer-events-none absolute end-2 flex size-4 items-center justify-center;
1021
+ @apply absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*4)];
993
1022
  }
994
1023
 
995
1024
  .spartan-select-group {
996
1025
  @apply scroll-my-1 p-1;
997
1026
  }
998
1027
 
999
- .spartan-select-item-text {
1000
- @apply flex flex-1 gap-2;
1001
- }
1002
-
1003
1028
  .spartan-select-separator {
1004
1029
  @apply bg-border -mx-1 my-1 h-px;
1005
1030
  }
@@ -1012,6 +1037,14 @@
1012
1037
  @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1013
1038
  }
1014
1039
 
1040
+ .spartan-select-placeholder {
1041
+ @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1042
+ }
1043
+
1044
+ .spartan-select-values-content {
1045
+ @apply gap-2;
1046
+ }
1047
+
1015
1048
  /* MARK: Separator */
1016
1049
  .spartan-separator {
1017
1050
  @apply bg-border shrink-0;
@@ -70,6 +70,39 @@
70
70
  @apply absolute end-3 top-2.5;
71
71
  }
72
72
 
73
+ /* MARK: Autocomplete */
74
+ &.spartan-autocomplete-content {
75
+ @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 max-h-72 min-w-36 overflow-hidden rounded-md shadow-md ring-1 duration-100;
76
+ }
77
+
78
+ &.spartan-autocomplete-label {
79
+ @apply text-muted-foreground px-2 py-1.5 text-xs;
80
+ }
81
+
82
+ &.spartan-autocomplete-item {
83
+ @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 ps-2 pe-8 text-sm;
84
+ }
85
+
86
+ &.spartan-autocomplete-item-indicator {
87
+ @apply absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*4)];
88
+ }
89
+
90
+ &.spartan-autocomplete-empty {
91
+ @apply text-muted-foreground hidden w-full items-center justify-center gap-2 py-2 text-center text-sm group-data-empty/autocomplete-content:flex;
92
+ }
93
+
94
+ &.spartan-autocomplete-list {
95
+ @apply no-scrollbar max-h-[calc(--spacing(72)---spacing(9))] scroll-py-1 p-1 data-empty:p-0;
96
+ }
97
+
98
+ &.spartan-autocomplete-separator {
99
+ @apply bg-border -mx-1 my-1 h-px;
100
+ }
101
+
102
+ &.spartan-autocomplete-status {
103
+ @apply text-muted-foreground gap-2 px-3 py-2 text-sm;
104
+ }
105
+
73
106
  /* MARK: Avatar */
74
107
  &.spartan-avatar {
75
108
  @apply size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6;
@@ -290,11 +323,7 @@
290
323
 
291
324
  /* MARK: Combobox */
292
325
  &.spartan-combobox-content {
293
- @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;
294
- }
295
-
296
- &.spartan-combobox-content-logical {
297
- @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
326
+ @apply bg-popover text-popover-foreground data-open:animate-in **:has-[[data-slot=input-group-control]:focus-visible]:border-input 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 **:has-[[data-slot=input-group-control]:focus-visible]:ring-0 **:data-[slot=input-group]:m-1 **:data-[slot=input-group]:mb-0 **:data-[slot=input-group]:h-8 **:data-[slot=input-group]:shadow-none;
298
327
  }
299
328
 
300
329
  &.spartan-combobox-label {
@@ -302,23 +331,19 @@
302
331
  }
303
332
 
304
333
  &.spartan-combobox-item {
305
- @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)];
334
+ @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 ps-2 pe-8 text-sm;
306
335
  }
307
336
 
308
337
  &.spartan-combobox-item-indicator {
309
- @apply pointer-events-none absolute end-2 flex size-4 items-center justify-center;
338
+ @apply absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*4)];
310
339
  }
311
340
 
312
341
  &.spartan-combobox-empty {
313
- @apply text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex;
342
+ @apply text-muted-foreground hidden w-full items-center justify-center gap-2 py-2 text-center text-sm group-data-empty/combobox-content:flex;
314
343
  }
315
344
 
316
345
  &.spartan-combobox-list {
317
- @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;
318
- }
319
-
320
- &.spartan-combobox-item-text {
321
- @apply flex flex-1 gap-2;
346
+ @apply no-scrollbar max-h-[calc(--spacing(72)---spacing(9))] scroll-py-1 p-1 data-empty:p-0;
322
347
  }
323
348
 
324
349
  &.spartan-combobox-separator {
@@ -326,11 +351,11 @@
326
351
  }
327
352
 
328
353
  &.spartan-combobox-trigger {
329
- @apply [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
354
+ @apply data-placeholder:text-muted-foreground;
330
355
  }
331
356
 
332
357
  &.spartan-combobox-trigger-icon {
333
- @apply text-muted-foreground size-4;
358
+ @apply text-muted-foreground text-[calc(var(--spacing)*4)];
334
359
  }
335
360
 
336
361
  &.spartan-combobox-chips {
@@ -338,11 +363,23 @@
338
363
  }
339
364
 
340
365
  &.spartan-combobox-chip {
341
- @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;
366
+ @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]:pe-0;
367
+ }
368
+
369
+ &.spartan-combobox-chip-input {
370
+ @apply placeholder:text-muted-foreground;
342
371
  }
343
372
 
344
373
  &.spartan-combobox-chip-remove {
345
- @apply -ml-1 opacity-50 hover:opacity-100;
374
+ @apply -ms-1 opacity-50 hover:opacity-100;
375
+ }
376
+
377
+ &.spartan-combobox-placeholder {
378
+ @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
379
+ }
380
+
381
+ &.spartan-combobox-status {
382
+ @apply text-muted-foreground gap-2 py-2 text-sm;
346
383
  }
347
384
 
348
385
  /* MARK: Command */
@@ -957,23 +994,15 @@
957
994
 
958
995
  /* MARK: Select */
959
996
  &.spartan-select-trigger {
960
- @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)];
961
- }
962
-
963
- &.spartan-select-value {
964
- @apply flex flex-1 text-start;
997
+ @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 ps-2.5 pe-2 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]:gap-1.5;
965
998
  }
966
999
 
967
1000
  &.spartan-select-trigger-icon {
968
- @apply text-muted-foreground size-4;
1001
+ @apply text-muted-foreground text-[calc(var(--spacing)*4)];
969
1002
  }
970
1003
 
971
1004
  &.spartan-select-content {
972
- @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;
973
- }
974
-
975
- &.spartan-select-content-logical {
976
- @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2;
1005
+ @apply bg-popover no-scrollbar 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 max-h-72 min-w-36 flex-col rounded-md shadow-md ring-1 duration-100;
977
1006
  }
978
1007
 
979
1008
  &.spartan-select-label {
@@ -981,21 +1010,17 @@
981
1010
  }
982
1011
 
983
1012
  &.spartan-select-item {
984
- @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;
1013
+ @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 ps-2 pe-8 text-sm *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2;
985
1014
  }
986
1015
 
987
1016
  &.spartan-select-item-indicator {
988
- @apply pointer-events-none absolute end-2 flex size-4 items-center justify-center;
1017
+ @apply absolute end-2 flex items-center justify-center text-[calc(var(--spacing)*4)];
989
1018
  }
990
1019
 
991
1020
  &.spartan-select-group {
992
1021
  @apply scroll-my-1 p-1;
993
1022
  }
994
1023
 
995
- &.spartan-select-item-text {
996
- @apply flex flex-1 gap-2;
997
- }
998
-
999
1024
  &.spartan-select-separator {
1000
1025
  @apply bg-border -mx-1 my-1 h-px;
1001
1026
  }
@@ -1008,6 +1033,14 @@
1008
1033
  @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1009
1034
  }
1010
1035
 
1036
+ &.spartan-select-placeholder {
1037
+ @apply gap-2 [&_ng-icon:not([class*='text-'])]:text-[calc(var(--spacing)*4)];
1038
+ }
1039
+
1040
+ &.spartan-select-values-content {
1041
+ @apply gap-2;
1042
+ }
1043
+
1011
1044
  /* MARK: Separator */
1012
1045
  &.spartan-separator {
1013
1046
  @apply bg-border shrink-0;