@spartan-ng/cli 1.2.0-beta.2 → 1.2.0-beta.3

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 (50) hide show
  1. package/package.json +1 -1
  2. package/src/generators/ui/libs/attachment/files/index.ts.template +31 -0
  3. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-action.ts.template +15 -0
  4. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-actions.ts.template +15 -0
  5. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-content.ts.template +12 -0
  6. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-description.ts.template +15 -0
  7. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-group.ts.template +15 -0
  8. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-media.ts.template +35 -0
  9. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-title.ts.template +15 -0
  10. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment-trigger.ts.template +23 -0
  11. package/src/generators/ui/libs/attachment/files/lib/hlm-attachment.ts.template +47 -0
  12. package/src/generators/ui/libs/attachment/generator.d.ts +3 -0
  13. package/src/generators/ui/libs/attachment/generator.js +9 -0
  14. package/src/generators/ui/libs/attachment/generator.js.map +1 -0
  15. package/src/generators/ui/libs/bubble/files/index.ts.template +11 -0
  16. package/src/generators/ui/libs/bubble/files/lib/hlm-bubble-content.ts.template +15 -0
  17. package/src/generators/ui/libs/bubble/files/lib/hlm-bubble-group.ts.template +12 -0
  18. package/src/generators/ui/libs/bubble/files/lib/hlm-bubble-reactions.ts.template +43 -0
  19. package/src/generators/ui/libs/bubble/files/lib/hlm-bubble.ts.template +46 -0
  20. package/src/generators/ui/libs/bubble/generator.d.ts +3 -0
  21. package/src/generators/ui/libs/bubble/generator.js +9 -0
  22. package/src/generators/ui/libs/bubble/generator.js.map +1 -0
  23. package/src/generators/ui/libs/marker/files/index.ts.template +9 -0
  24. package/src/generators/ui/libs/marker/files/lib/hlm-marker-content.ts.template +15 -0
  25. package/src/generators/ui/libs/marker/files/lib/hlm-marker-icon.ts.template +15 -0
  26. package/src/generators/ui/libs/marker/files/lib/hlm-marker.ts.template +36 -0
  27. package/src/generators/ui/libs/marker/generator.d.ts +3 -0
  28. package/src/generators/ui/libs/marker/generator.js +9 -0
  29. package/src/generators/ui/libs/marker/generator.js.map +1 -0
  30. package/src/generators/ui/libs/message/files/index.ts.template +22 -0
  31. package/src/generators/ui/libs/message/files/lib/hlm-message-avatar.ts.template +15 -0
  32. package/src/generators/ui/libs/message/files/lib/hlm-message-content.ts.template +15 -0
  33. package/src/generators/ui/libs/message/files/lib/hlm-message-footer.ts.template +15 -0
  34. package/src/generators/ui/libs/message/files/lib/hlm-message-group.ts.template +12 -0
  35. package/src/generators/ui/libs/message/files/lib/hlm-message-header.ts.template +14 -0
  36. package/src/generators/ui/libs/message/files/lib/hlm-message.ts.template +21 -0
  37. package/src/generators/ui/libs/message/generator.d.ts +3 -0
  38. package/src/generators/ui/libs/message/generator.js +9 -0
  39. package/src/generators/ui/libs/message/generator.js.map +1 -0
  40. package/src/generators/ui/libs/spinner/files/lib/hlm-spinner.ts.template +1 -0
  41. package/src/generators/ui/primitive-deps.js +4 -0
  42. package/src/generators/ui/primitive-deps.js.map +1 -1
  43. package/src/generators/ui/primitives.d.ts +1 -1
  44. package/src/generators/ui/style-luma.css +152 -0
  45. package/src/generators/ui/style-lyra.css +152 -0
  46. package/src/generators/ui/style-maia.css +152 -0
  47. package/src/generators/ui/style-mira.css +152 -0
  48. package/src/generators/ui/style-nova.css +152 -0
  49. package/src/generators/ui/style-vega.css +152 -0
  50. package/src/generators/ui/supported-ui-libraries.json +68 -41
@@ -564,6 +564,158 @@
564
564
  @apply gap-2 text-xs/relaxed;
565
565
  }
566
566
 
567
+ /* MARK: Marker */
568
+ .spartan-marker {
569
+ @apply text-muted-foreground gap-1.5 text-xs/relaxed;
570
+ }
571
+
572
+ .spartan-marker-variant-separator {
573
+ @apply before:bg-border after:bg-border before:me-1 before:h-px before:min-w-0 before:flex-1 after:ms-1 after:h-px after:min-w-0 after:flex-1;
574
+ }
575
+
576
+ .spartan-marker-variant-border {
577
+ @apply border-border border-b pb-1.5;
578
+ }
579
+
580
+ .spartan-marker-icon {
581
+ @apply size-3.5 shrink-0;
582
+ }
583
+
584
+ .spartan-marker-content {
585
+ @apply min-w-0;
586
+ }
587
+
588
+ /* MARK: Message */
589
+ .spartan-message {
590
+ @apply gap-1.5 text-xs/relaxed;
591
+ }
592
+
593
+ .spartan-message-group {
594
+ @apply gap-1.5;
595
+ }
596
+
597
+ .spartan-message-avatar {
598
+ @apply bg-muted min-w-7 rounded-full;
599
+ }
600
+
601
+ .spartan-message-content {
602
+ @apply gap-2;
603
+ }
604
+
605
+ .spartan-message-header {
606
+ @apply text-muted-foreground px-2.5 text-[0.625rem] font-medium;
607
+ }
608
+
609
+ .spartan-message-footer {
610
+ @apply text-muted-foreground px-2.5 text-[0.625rem] font-medium;
611
+ }
612
+
613
+ /* MARK: Bubble */
614
+ .spartan-bubble {
615
+ @apply max-w-[80%] gap-0.5;
616
+ }
617
+
618
+ .spartan-bubble-group {
619
+ @apply gap-1.5;
620
+ }
621
+
622
+ .spartan-bubble-content {
623
+ @apply rounded-lg px-2.5 py-1.5 text-xs/relaxed leading-relaxed;
624
+ }
625
+
626
+ .spartan-bubble-reactions {
627
+ @apply bg-muted ring-card gap-0.5 rounded-full px-1.5 py-0.5 text-[0.625rem] ring-2;
628
+ }
629
+
630
+ .spartan-bubble-variant-default {
631
+ @apply *:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80;
632
+ }
633
+
634
+ .spartan-bubble-variant-secondary {
635
+ @apply *:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-secondary/80;
636
+ }
637
+
638
+ .spartan-bubble-variant-muted {
639
+ @apply *:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)];
640
+ }
641
+
642
+ .spartan-bubble-variant-tinted {
643
+ @apply *:data-[slot=bubble-content]:text-foreground *:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)];
644
+ }
645
+
646
+ .spartan-bubble-variant-outline {
647
+ @apply *:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-input/20 dark:*:data-[slot=bubble-content]:bg-input/30 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/50 [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground *:data-[slot=bubble-content]:border;
648
+ }
649
+
650
+ .spartan-bubble-variant-ghost {
651
+ @apply [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50 border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0;
652
+ }
653
+
654
+ .spartan-bubble-variant-destructive {
655
+ @apply *:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30;
656
+ }
657
+
658
+ /* MARK: Attachment */
659
+ .spartan-attachment {
660
+ @apply bg-card text-card-foreground rounded-lg border;
661
+ }
662
+
663
+ .spartan-attachment-size-default {
664
+ @apply gap-1.5 text-xs/relaxed has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5;
665
+ }
666
+
667
+ .spartan-attachment-size-sm {
668
+ @apply gap-1.5 text-[0.625rem] has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1;
669
+ }
670
+
671
+ .spartan-attachment-size-xs {
672
+ @apply gap-1 rounded-md text-[0.625rem] has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1;
673
+ }
674
+
675
+ .spartan-attachment-orientation-horizontal {
676
+ @apply min-w-36 items-center;
677
+ }
678
+
679
+ .spartan-attachment-orientation-vertical {
680
+ @apply w-20 flex-col has-data-[slot=attachment-content]:w-28;
681
+ }
682
+
683
+ .spartan-attachment-media {
684
+ @apply bg-muted text-foreground w-8 rounded-md;
685
+ }
686
+
687
+ .spartan-attachment-media-variant-icon {
688
+ @apply bg-muted;
689
+ }
690
+
691
+ .spartan-attachment-media-variant-image {
692
+ @apply opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100;
693
+ }
694
+
695
+ .spartan-attachment-content {
696
+ @apply min-w-0 flex-1 leading-tight;
697
+ }
698
+
699
+ .spartan-attachment-title {
700
+ @apply truncate text-xs/relaxed font-medium;
701
+ }
702
+
703
+ .spartan-attachment-description {
704
+ @apply text-muted-foreground mt-0.5 truncate text-[0.625rem];
705
+ }
706
+
707
+ .spartan-attachment-actions {
708
+ @apply shrink-0 items-center;
709
+ }
710
+
711
+ .spartan-attachment-trigger {
712
+ @apply absolute inset-0 z-10 outline-none;
713
+ }
714
+
715
+ .spartan-attachment-group {
716
+ @apply gap-2 py-0.5;
717
+ }
718
+
567
719
  /* MARK: Field */
568
720
  .spartan-field-set {
569
721
  @apply gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3;
@@ -594,6 +594,158 @@
594
594
  @apply gap-2.5 text-sm;
595
595
  }
596
596
 
597
+ /* MARK: Marker */
598
+ .spartan-marker {
599
+ @apply text-muted-foreground gap-2 text-sm;
600
+ }
601
+
602
+ .spartan-marker-variant-separator {
603
+ @apply before:bg-border after:bg-border before:me-1 before:h-px before:min-w-0 before:flex-1 after:ms-1 after:h-px after:min-w-0 after:flex-1;
604
+ }
605
+
606
+ .spartan-marker-variant-border {
607
+ @apply border-border border-b pb-2;
608
+ }
609
+
610
+ .spartan-marker-icon {
611
+ @apply size-4 shrink-0;
612
+ }
613
+
614
+ .spartan-marker-content {
615
+ @apply min-w-0;
616
+ }
617
+
618
+ /* MARK: Message */
619
+ .spartan-message {
620
+ @apply gap-2 text-sm;
621
+ }
622
+
623
+ .spartan-message-group {
624
+ @apply gap-2;
625
+ }
626
+
627
+ .spartan-message-avatar {
628
+ @apply bg-muted min-w-8 rounded-full;
629
+ }
630
+
631
+ .spartan-message-content {
632
+ @apply gap-2.5;
633
+ }
634
+
635
+ .spartan-message-header {
636
+ @apply text-muted-foreground px-3 text-xs font-medium;
637
+ }
638
+
639
+ .spartan-message-footer {
640
+ @apply text-muted-foreground px-3 text-xs font-medium;
641
+ }
642
+
643
+ /* MARK: Bubble */
644
+ .spartan-bubble {
645
+ @apply max-w-[80%] gap-1;
646
+ }
647
+
648
+ .spartan-bubble-group {
649
+ @apply gap-2;
650
+ }
651
+
652
+ .spartan-bubble-content {
653
+ @apply rounded-xl px-3 py-2 text-sm leading-relaxed;
654
+ }
655
+
656
+ .spartan-bubble-reactions {
657
+ @apply bg-muted ring-card gap-1 rounded-full px-1.5 py-0.5 text-xs ring-3;
658
+ }
659
+
660
+ .spartan-bubble-variant-default {
661
+ @apply *:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80;
662
+ }
663
+
664
+ .spartan-bubble-variant-secondary {
665
+ @apply *:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-secondary/80;
666
+ }
667
+
668
+ .spartan-bubble-variant-muted {
669
+ @apply *:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)];
670
+ }
671
+
672
+ .spartan-bubble-variant-tinted {
673
+ @apply *:data-[slot=bubble-content]:text-foreground *:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)];
674
+ }
675
+
676
+ .spartan-bubble-variant-outline {
677
+ @apply *:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30 *:data-[slot=bubble-content]:border;
678
+ }
679
+
680
+ .spartan-bubble-variant-ghost {
681
+ @apply [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50 border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0;
682
+ }
683
+
684
+ .spartan-bubble-variant-destructive {
685
+ @apply *:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30;
686
+ }
687
+
688
+ /* MARK: Attachment */
689
+ .spartan-attachment {
690
+ @apply bg-card text-card-foreground rounded-xl border;
691
+ }
692
+
693
+ .spartan-attachment-size-default {
694
+ @apply gap-2 text-sm has-data-[slot=attachment-content]:px-2.5 has-data-[slot=attachment-content]:py-2 has-data-[slot=attachment-media]:p-2;
695
+ }
696
+
697
+ .spartan-attachment-size-sm {
698
+ @apply gap-2 text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5;
699
+ }
700
+
701
+ .spartan-attachment-size-xs {
702
+ @apply gap-1.5 rounded-lg text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1;
703
+ }
704
+
705
+ .spartan-attachment-orientation-horizontal {
706
+ @apply min-w-40 items-center;
707
+ }
708
+
709
+ .spartan-attachment-orientation-vertical {
710
+ @apply w-24 flex-col has-data-[slot=attachment-content]:w-30;
711
+ }
712
+
713
+ .spartan-attachment-media {
714
+ @apply bg-muted text-foreground w-10 rounded-lg;
715
+ }
716
+
717
+ .spartan-attachment-media-variant-icon {
718
+ @apply bg-muted;
719
+ }
720
+
721
+ .spartan-attachment-media-variant-image {
722
+ @apply opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100;
723
+ }
724
+
725
+ .spartan-attachment-content {
726
+ @apply min-w-0 flex-1 leading-tight;
727
+ }
728
+
729
+ .spartan-attachment-title {
730
+ @apply truncate text-sm font-medium;
731
+ }
732
+
733
+ .spartan-attachment-description {
734
+ @apply text-muted-foreground mt-0.5 truncate text-xs;
735
+ }
736
+
737
+ .spartan-attachment-actions {
738
+ @apply shrink-0 items-center;
739
+ }
740
+
741
+ .spartan-attachment-trigger {
742
+ @apply absolute inset-0 z-10 outline-none;
743
+ }
744
+
745
+ .spartan-attachment-group {
746
+ @apply gap-2.5 py-1;
747
+ }
748
+
597
749
  /* MARK: Field */
598
750
  .spartan-field-set {
599
751
  @apply gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3;
@@ -618,6 +618,158 @@
618
618
  @apply gap-4 text-sm;
619
619
  }
620
620
 
621
+ /* MARK: Marker */
622
+ .spartan-marker {
623
+ @apply text-muted-foreground gap-2.5 text-sm;
624
+ }
625
+
626
+ .spartan-marker-variant-separator {
627
+ @apply before:bg-border after:bg-border before:me-1.5 before:h-px before:min-w-0 before:flex-1 after:ms-1.5 after:h-px after:min-w-0 after:flex-1;
628
+ }
629
+
630
+ .spartan-marker-variant-border {
631
+ @apply border-border border-b pb-2.5;
632
+ }
633
+
634
+ .spartan-marker-icon {
635
+ @apply size-4 shrink-0;
636
+ }
637
+
638
+ .spartan-marker-content {
639
+ @apply min-w-0;
640
+ }
641
+
642
+ /* MARK: Message */
643
+ .spartan-message {
644
+ @apply gap-2.5 text-sm;
645
+ }
646
+
647
+ .spartan-message-group {
648
+ @apply gap-2.5;
649
+ }
650
+
651
+ .spartan-message-avatar {
652
+ @apply bg-muted min-w-9 rounded-full;
653
+ }
654
+
655
+ .spartan-message-content {
656
+ @apply gap-3;
657
+ }
658
+
659
+ .spartan-message-header {
660
+ @apply text-muted-foreground px-3.5 text-xs font-medium;
661
+ }
662
+
663
+ .spartan-message-footer {
664
+ @apply text-muted-foreground px-3.5 text-xs font-medium;
665
+ }
666
+
667
+ /* MARK: Bubble */
668
+ .spartan-bubble {
669
+ @apply max-w-[80%] gap-1.5;
670
+ }
671
+
672
+ .spartan-bubble-group {
673
+ @apply gap-2.5;
674
+ }
675
+
676
+ .spartan-bubble-content {
677
+ @apply rounded-xl px-3.5 py-2.5 text-sm leading-relaxed;
678
+ }
679
+
680
+ .spartan-bubble-reactions {
681
+ @apply bg-muted ring-card gap-1 rounded-full px-2 py-0.5 text-xs shadow-xs ring-3;
682
+ }
683
+
684
+ .spartan-bubble-variant-default {
685
+ @apply *:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80;
686
+ }
687
+
688
+ .spartan-bubble-variant-secondary {
689
+ @apply *:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)];
690
+ }
691
+
692
+ .spartan-bubble-variant-muted {
693
+ @apply *:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)];
694
+ }
695
+
696
+ .spartan-bubble-variant-tinted {
697
+ @apply *:data-[slot=bubble-content]:text-foreground *:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)];
698
+ }
699
+
700
+ .spartan-bubble-variant-outline {
701
+ @apply *:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30 *:data-[slot=bubble-content]:border *:data-[slot=bubble-content]:shadow-xs;
702
+ }
703
+
704
+ .spartan-bubble-variant-ghost {
705
+ @apply [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50 border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0;
706
+ }
707
+
708
+ .spartan-bubble-variant-destructive {
709
+ @apply *:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30;
710
+ }
711
+
712
+ /* MARK: Attachment */
713
+ .spartan-attachment {
714
+ @apply bg-card text-card-foreground rounded-xl border shadow-xs;
715
+ }
716
+
717
+ .spartan-attachment-size-default {
718
+ @apply gap-2.5 text-sm has-data-[slot=attachment-content]:px-3 has-data-[slot=attachment-content]:py-2.5 has-data-[slot=attachment-media]:p-2.5;
719
+ }
720
+
721
+ .spartan-attachment-size-sm {
722
+ @apply gap-2.5 text-xs has-data-[slot=attachment-content]:px-2.5 has-data-[slot=attachment-content]:py-2 has-data-[slot=attachment-media]:p-2;
723
+ }
724
+
725
+ .spartan-attachment-size-xs {
726
+ @apply gap-2 rounded-md text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5;
727
+ }
728
+
729
+ .spartan-attachment-orientation-horizontal {
730
+ @apply min-w-44 items-center;
731
+ }
732
+
733
+ .spartan-attachment-orientation-vertical {
734
+ @apply w-28 flex-col has-data-[slot=attachment-content]:w-32;
735
+ }
736
+
737
+ .spartan-attachment-media {
738
+ @apply bg-muted text-foreground w-10 rounded-md;
739
+ }
740
+
741
+ .spartan-attachment-media-variant-icon {
742
+ @apply bg-muted;
743
+ }
744
+
745
+ .spartan-attachment-media-variant-image {
746
+ @apply opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100;
747
+ }
748
+
749
+ .spartan-attachment-content {
750
+ @apply min-w-0 flex-1 leading-normal;
751
+ }
752
+
753
+ .spartan-attachment-title {
754
+ @apply truncate text-sm font-medium;
755
+ }
756
+
757
+ .spartan-attachment-description {
758
+ @apply text-muted-foreground mt-0.5 truncate text-xs;
759
+ }
760
+
761
+ .spartan-attachment-actions {
762
+ @apply shrink-0 items-center;
763
+ }
764
+
765
+ .spartan-attachment-trigger {
766
+ @apply absolute inset-0 z-10 outline-none;
767
+ }
768
+
769
+ .spartan-attachment-group {
770
+ @apply gap-3 py-1.5;
771
+ }
772
+
621
773
  /* MARK: Field */
622
774
  .spartan-field-set {
623
775
  @apply gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3;