@j3m-quantum/ui 0.7.9 → 0.7.11

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.
@@ -223,7 +223,7 @@
223
223
  --ring: var(--j3m-primary-250);
224
224
 
225
225
  /* Sidebar */
226
- --sidebar: var(--j3m-neutral-100);
226
+ --sidebar: var(--j3m-neutral-200);
227
227
  --sidebar-foreground: var(--j3m-neutral-900);
228
228
  --sidebar-primary: var(--j3m-primary-300);
229
229
  --sidebar-primary-foreground: #FFFFFF;
@@ -520,6 +520,51 @@ textarea,
520
520
  border-radius: var(--j3m-radius-full) !important;
521
521
  }
522
522
 
523
+ /* Toggle Group - pill with squared middle (same as button group) */
524
+ [data-slot="toggle-group"] {
525
+ background: var(--background);
526
+ border: 1px solid var(--input);
527
+ border-radius: var(--j3m-radius-full) !important;
528
+ overflow: hidden;
529
+ }
530
+ [data-slot="toggle-group-item"] {
531
+ border-radius: 0 !important;
532
+ }
533
+ [data-slot="toggle-group-item"]:first-child {
534
+ border-top-left-radius: var(--j3m-radius-full) !important;
535
+ border-bottom-left-radius: var(--j3m-radius-full) !important;
536
+ }
537
+ [data-slot="toggle-group-item"]:last-child {
538
+ border-top-right-radius: var(--j3m-radius-full) !important;
539
+ border-bottom-right-radius: var(--j3m-radius-full) !important;
540
+ }
541
+ /* Single item in toggle group - keep full pill */
542
+ [data-slot="toggle-group-item"]:only-child {
543
+ border-radius: var(--j3m-radius-full) !important;
544
+ }
545
+
546
+ /* OTP Input Group - pill with squared middle */
547
+ [data-slot="input-otp-group"] {
548
+ background: var(--background);
549
+ border: 1px solid var(--input);
550
+ border-radius: var(--j3m-radius-full) !important;
551
+ overflow: hidden;
552
+ }
553
+ [data-slot="input-otp-slot"] {
554
+ border-radius: 0 !important;
555
+ border: none !important;
556
+ border-right: 1px solid var(--input) !important;
557
+ box-shadow: none !important;
558
+ }
559
+ [data-slot="input-otp-slot"]:last-child {
560
+ border-right: none !important;
561
+ }
562
+
563
+ /* Native Select - pill shape */
564
+ [data-slot="native-select"] {
565
+ border-radius: var(--j3m-radius-full) !important;
566
+ }
567
+
523
568
  /* ========================================
524
569
  GLASS UTILITY CLASSES
525
570
  ======================================== */
@@ -591,6 +636,471 @@ textarea,
591
636
  pointer-events: none;
592
637
  }
593
638
 
639
+ /* ========================================
640
+ GLASS MODE COMPONENT OVERRIDES
641
+ Styling for components inside .glass-context
642
+ ======================================== */
643
+
644
+ /* --- INPUT FIELDS --- */
645
+ .glass-context input,
646
+ .glass-context [data-slot="input"],
647
+ .glass-context textarea,
648
+ .glass-context [data-slot="textarea"] {
649
+ background: rgba(255, 255, 255, 0.7) !important;
650
+ border-color: rgba(0, 0, 0, 0.15) !important;
651
+ color: rgba(0, 0, 0, 0.85) !important;
652
+ }
653
+
654
+ .glass-context input::placeholder,
655
+ .glass-context [data-slot="input"]::placeholder,
656
+ .glass-context textarea::placeholder,
657
+ .glass-context [data-slot="textarea"]::placeholder {
658
+ color: rgba(0, 0, 0, 0.5) !important;
659
+ }
660
+
661
+ .glass-context input:focus,
662
+ .glass-context [data-slot="input"]:focus,
663
+ .glass-context textarea:focus,
664
+ .glass-context [data-slot="textarea"]:focus,
665
+ .glass-context input:focus-visible,
666
+ .glass-context [data-slot="input"]:focus-visible,
667
+ .glass-context textarea:focus-visible,
668
+ .glass-context [data-slot="textarea"]:focus-visible {
669
+ border-color: var(--j3m-primary-300) !important;
670
+ --tw-ring-color: rgba(243, 108, 33, 0.3);
671
+ }
672
+
673
+ /* --- SELECT TRIGGER --- */
674
+ .glass-context [data-slot="select-trigger"] {
675
+ background: rgba(255, 255, 255, 0.7) !important;
676
+ border-color: rgba(0, 0, 0, 0.15) !important;
677
+ color: rgba(0, 0, 0, 0.85) !important;
678
+ }
679
+
680
+ .glass-context [data-slot="select-trigger"] [data-slot="select-value"] {
681
+ color: rgba(0, 0, 0, 0.85) !important;
682
+ }
683
+
684
+ .glass-context [data-slot="select-trigger"]:focus,
685
+ .glass-context [data-slot="select-trigger"]:focus-visible,
686
+ .glass-context [data-slot="select-trigger"][data-state="open"] {
687
+ border-color: var(--j3m-primary-300) !important;
688
+ --tw-ring-color: rgba(243, 108, 33, 0.3);
689
+ }
690
+
691
+ /* --- NATIVE SELECT --- */
692
+ .glass-context select,
693
+ .glass-context [data-slot="native-select"] {
694
+ background: rgba(255, 255, 255, 0.7) !important;
695
+ border-color: rgba(0, 0, 0, 0.15) !important;
696
+ color: rgba(0, 0, 0, 0.85) !important;
697
+ }
698
+
699
+ .glass-context select:focus,
700
+ .glass-context [data-slot="native-select"]:focus {
701
+ border-color: var(--j3m-primary-300) !important;
702
+ --tw-ring-color: rgba(243, 108, 33, 0.3);
703
+ }
704
+
705
+ /* --- INPUT OTP --- */
706
+ .glass-context [data-slot="input-otp-slot"],
707
+ .glass-context [data-input-otp-slot] {
708
+ background: rgba(255, 255, 255, 0.7) !important;
709
+ border-color: rgba(0, 0, 0, 0.15) !important;
710
+ color: rgba(0, 0, 0, 0.85) !important;
711
+ }
712
+
713
+ .glass-context [data-slot="input-otp-slot"][data-active=true],
714
+ .glass-context [data-input-otp-slot][data-active=true] {
715
+ border-color: var(--j3m-primary-300) !important;
716
+ }
717
+
718
+ /* --- BUTTONS --- */
719
+ /* Default button hover in glass */
720
+ .glass-context [data-slot="button"][data-variant="default"]:hover,
721
+ .glass-context [data-slot="button"]:not([data-variant]):hover {
722
+ background: var(--j3m-primary-350) !important;
723
+ }
724
+
725
+ /* Outline/Secondary/Ghost buttons - white fill, dark border */
726
+ .glass-context [data-slot="button"][data-variant="outline"],
727
+ .glass-context [data-slot="button"][data-variant="secondary"],
728
+ .glass-context [data-slot="button"][data-variant="ghost"] {
729
+ background: rgba(255, 255, 255, 0.7) !important;
730
+ border-color: rgba(0, 0, 0, 0.15) !important;
731
+ color: rgba(0, 0, 0, 0.8) !important;
732
+ }
733
+
734
+ /* Button hover: orange primary with white text */
735
+ .glass-context [data-slot="button"][data-variant="outline"]:hover,
736
+ .glass-context [data-slot="button"][data-variant="secondary"]:hover,
737
+ .glass-context [data-slot="button"][data-variant="ghost"]:hover {
738
+ background: var(--j3m-primary-300) !important;
739
+ border-color: var(--j3m-primary-300) !important;
740
+ color: #FFFFFF !important;
741
+ }
742
+
743
+ /* --- RADIO BUTTONS --- */
744
+ .glass-context [data-slot="radio-group-item"],
745
+ .glass-context [role="radio"] {
746
+ background: rgba(255, 255, 255, 0.7) !important;
747
+ border-color: rgba(0, 0, 0, 0.15) !important;
748
+ }
749
+
750
+ .glass-context [data-slot="radio-group-item"][data-state="checked"],
751
+ .glass-context [role="radio"][data-state="checked"] {
752
+ background: rgba(255, 255, 255, 0.7) !important;
753
+ border-color: var(--j3m-primary-300) !important;
754
+ }
755
+
756
+ .glass-context [data-slot="radio-group-item"][data-state="checked"] span,
757
+ .glass-context [role="radio"][data-state="checked"] span {
758
+ background: var(--j3m-primary-300) !important;
759
+ }
760
+
761
+ /* --- CHECKBOX --- */
762
+ .glass-context [data-slot="checkbox"],
763
+ .glass-context [role="checkbox"] {
764
+ background: rgba(255, 255, 255, 0.7) !important;
765
+ border-color: rgba(0, 0, 0, 0.15) !important;
766
+ }
767
+
768
+ .glass-context [data-slot="checkbox"][data-state="checked"],
769
+ .glass-context [role="checkbox"][data-state="checked"] {
770
+ background: var(--j3m-primary-300) !important;
771
+ border-color: var(--j3m-primary-300) !important;
772
+ }
773
+
774
+ /* --- SWITCH --- */
775
+ .glass-context [data-slot="switch"],
776
+ .glass-context [role="switch"] {
777
+ background: rgba(255, 255, 255, 0.5) !important;
778
+ border-color: rgba(0, 0, 0, 0.15) !important;
779
+ }
780
+
781
+ .glass-context [data-slot="switch"][data-state="checked"],
782
+ .glass-context [role="switch"][data-state="checked"] {
783
+ background: var(--j3m-primary-300) !important;
784
+ border-color: var(--j3m-primary-300) !important;
785
+ }
786
+
787
+ /* --- DATA TABLE --- */
788
+ .glass-context table,
789
+ .glass-context [data-slot="table"] {
790
+ background: rgba(255, 255, 255, 0.7) !important;
791
+ }
792
+
793
+ .glass-context thead,
794
+ .glass-context [data-slot="table-header"] {
795
+ background: rgba(255, 255, 255, 0.5) !important;
796
+ }
797
+
798
+ .glass-context th,
799
+ .glass-context td {
800
+ border-color: rgba(0, 0, 0, 0.1) !important;
801
+ color: rgba(0, 0, 0, 0.85) !important;
802
+ }
803
+
804
+ /* --- BADGE (outline) --- */
805
+ .glass-context [data-slot="badge"][data-variant="outline"],
806
+ .glass-context .badge-outline {
807
+ background: rgba(255, 255, 255, 0.7) !important;
808
+ border-color: rgba(0, 0, 0, 0.15) !important;
809
+ color: rgba(0, 0, 0, 0.8) !important;
810
+ }
811
+
812
+ /* --- CALENDAR --- */
813
+ .glass-context [data-slot="calendar"],
814
+ .glass-context .rdp {
815
+ background: rgba(255, 255, 255, 0.7) !important;
816
+ }
817
+
818
+ .glass-context .rdp-day,
819
+ .glass-context [data-slot="calendar-day"] {
820
+ color: rgba(0, 0, 0, 0.85) !important;
821
+ }
822
+
823
+ .glass-context .rdp-day:hover,
824
+ .glass-context [data-slot="calendar-day"]:hover {
825
+ background: rgba(0, 0, 0, 0.1) !important;
826
+ }
827
+
828
+ .glass-context .rdp-day_selected,
829
+ .glass-context [data-slot="calendar-day"][data-selected] {
830
+ background: var(--j3m-primary-300) !important;
831
+ color: #FFFFFF !important;
832
+ }
833
+
834
+ .glass-context .rdp-day_today,
835
+ .glass-context [data-slot="calendar-day"][data-today] {
836
+ border-color: var(--j3m-primary-300) !important;
837
+ }
838
+
839
+ /* Calendar navigation buttons */
840
+ .glass-context .rdp-nav_button,
841
+ .glass-context [data-slot="calendar"] button {
842
+ background: rgba(255, 255, 255, 0.7) !important;
843
+ border-color: rgba(0, 0, 0, 0.15) !important;
844
+ }
845
+
846
+ .glass-context .rdp-nav_button:hover,
847
+ .glass-context [data-slot="calendar"] button:hover {
848
+ background: var(--j3m-primary-300) !important;
849
+ border-color: var(--j3m-primary-300) !important;
850
+ color: #FFFFFF !important;
851
+ }
852
+
853
+ /* --- COLLAPSIBLE --- */
854
+ .glass-context [data-slot="collapsible-content"] > *,
855
+ .glass-context [data-state="open"] > [data-slot="collapsible-content"] > * {
856
+ background: rgba(255, 255, 255, 0.7) !important;
857
+ border-color: rgba(0, 0, 0, 0.15) !important;
858
+ }
859
+
860
+ /* --- NAVIGATION MENU --- */
861
+ .glass-context [data-slot="navigation-menu-trigger"],
862
+ .glass-context [data-slot="navigation-menu-link"] {
863
+ border-radius: 9999px !important;
864
+ background: rgba(255, 255, 255, 0.7) !important;
865
+ border: 1px solid rgba(0, 0, 0, 0.15) !important;
866
+ }
867
+
868
+ .glass-context [data-slot="navigation-menu-trigger"]:hover,
869
+ .glass-context [data-slot="navigation-menu-link"]:hover {
870
+ background: var(--j3m-primary-300) !important;
871
+ border-color: var(--j3m-primary-300) !important;
872
+ color: #FFFFFF !important;
873
+ }
874
+
875
+ /* --- TABS --- */
876
+ .glass-context [data-slot="tabs-list"] {
877
+ background: rgba(255, 255, 255, 0.5) !important;
878
+ }
879
+
880
+ .glass-context [data-slot="tabs-trigger"] {
881
+ color: rgba(0, 0, 0, 0.7) !important;
882
+ }
883
+
884
+ .glass-context [data-slot="tabs-trigger"][data-state="active"] {
885
+ background: rgba(255, 255, 255, 0.9) !important;
886
+ color: rgba(0, 0, 0, 0.9) !important;
887
+ }
888
+
889
+ /* --- ACCORDION --- */
890
+ .glass-context [data-slot="accordion-item"] {
891
+ border-color: rgba(0, 0, 0, 0.1) !important;
892
+ }
893
+
894
+ .glass-context [data-slot="accordion-trigger"] {
895
+ color: rgba(0, 0, 0, 0.85) !important;
896
+ }
897
+
898
+ /* --- SLIDER --- */
899
+ .glass-context [data-slot="slider-track"] {
900
+ background: rgba(255, 255, 255, 0.5) !important;
901
+ }
902
+
903
+ .glass-context [data-slot="slider-range"] {
904
+ background: var(--j3m-primary-300) !important;
905
+ }
906
+
907
+ .glass-context [data-slot="slider-thumb"] {
908
+ background: #FFFFFF !important;
909
+ border-color: var(--j3m-primary-300) !important;
910
+ }
911
+
912
+ /* --- TOGGLE / TOGGLE GROUP --- */
913
+ .glass-context [data-slot="toggle"],
914
+ .glass-context [data-slot="toggle-group-item"] {
915
+ background: rgba(255, 255, 255, 0.7) !important;
916
+ border-color: rgba(0, 0, 0, 0.15) !important;
917
+ color: rgba(0, 0, 0, 0.8) !important;
918
+ }
919
+
920
+ .glass-context [data-slot="toggle"][data-state="on"],
921
+ .glass-context [data-slot="toggle-group-item"][data-state="on"] {
922
+ background: var(--j3m-primary-300) !important;
923
+ border-color: var(--j3m-primary-300) !important;
924
+ color: #FFFFFF !important;
925
+ }
926
+
927
+ .glass-context [data-slot="toggle"]:hover,
928
+ .glass-context [data-slot="toggle-group-item"]:hover {
929
+ background: var(--j3m-primary-300) !important;
930
+ border-color: var(--j3m-primary-300) !important;
931
+ color: #FFFFFF !important;
932
+ }
933
+
934
+ /* --- DROPDOWN MENU --- */
935
+ .glass-context [data-slot="dropdown-menu-content"],
936
+ .glass-context [role="menu"] {
937
+ background: rgba(255, 255, 255, 0.9) !important;
938
+ backdrop-filter: blur(12px) !important;
939
+ border-color: rgba(0, 0, 0, 0.15) !important;
940
+ }
941
+
942
+ .glass-context [data-slot="dropdown-menu-item"],
943
+ .glass-context [role="menuitem"] {
944
+ color: rgba(0, 0, 0, 0.85) !important;
945
+ }
946
+
947
+ .glass-context [data-slot="dropdown-menu-item"]:hover,
948
+ .glass-context [role="menuitem"]:hover,
949
+ .glass-context [data-slot="dropdown-menu-item"]:focus,
950
+ .glass-context [role="menuitem"]:focus {
951
+ background: var(--j3m-primary-300) !important;
952
+ color: #FFFFFF !important;
953
+ }
954
+
955
+ /* --- POPOVER --- */
956
+ .glass-context [data-slot="popover-content"] {
957
+ background: rgba(255, 255, 255, 0.9) !important;
958
+ backdrop-filter: blur(12px) !important;
959
+ border-color: rgba(0, 0, 0, 0.15) !important;
960
+ }
961
+
962
+ /* --- TOOLTIP --- */
963
+ .glass-context [data-slot="tooltip-content"] {
964
+ background: rgba(0, 0, 0, 0.85) !important;
965
+ color: #FFFFFF !important;
966
+ }
967
+
968
+ /* --- PROGRESS --- */
969
+ .glass-context [data-slot="progress"] {
970
+ background: rgba(255, 255, 255, 0.5) !important;
971
+ }
972
+
973
+ .glass-context [data-slot="progress-indicator"] {
974
+ background: var(--j3m-primary-300) !important;
975
+ }
976
+
977
+ /* --- ALERT --- */
978
+ .glass-context [data-slot="alert"] {
979
+ background: rgba(255, 255, 255, 0.7) !important;
980
+ border-color: rgba(0, 0, 0, 0.15) !important;
981
+ }
982
+
983
+ /* --- SHEET --- */
984
+ .glass-context [data-slot="sheet-content"] {
985
+ background: rgba(255, 255, 255, 0.95) !important;
986
+ backdrop-filter: blur(16px) !important;
987
+ }
988
+
989
+ .glass-context [data-slot="sheet-content"] input,
990
+ .glass-context [data-slot="sheet-content"] [data-slot="input"] {
991
+ margin-left: 0 !important;
992
+ margin-right: 0 !important;
993
+ }
994
+
995
+ /* --- DIALOG --- */
996
+ .glass-context [data-slot="dialog-content"] {
997
+ background: rgba(255, 255, 255, 0.95) !important;
998
+ backdrop-filter: blur(16px) !important;
999
+ }
1000
+
1001
+ /* --- COMMAND / SEARCH INPUT --- */
1002
+ .glass-context [data-slot="command"] {
1003
+ background: transparent !important;
1004
+ border: none !important;
1005
+ }
1006
+
1007
+ .glass-context [data-slot="command-input-wrapper"] {
1008
+ background: rgba(255, 255, 255, 0.7) !important;
1009
+ border: 1px solid rgba(0, 0, 0, 0.15) !important;
1010
+ border-radius: var(--j3m-radius-full) !important;
1011
+ padding-left: 1rem !important;
1012
+ padding-right: 1rem !important;
1013
+ }
1014
+
1015
+ .glass-context [data-slot="command-input"] {
1016
+ background: transparent !important;
1017
+ color: rgba(0, 0, 0, 0.85) !important;
1018
+ }
1019
+
1020
+ .glass-context [data-slot="command-input"]::placeholder {
1021
+ color: rgba(0, 0, 0, 0.5) !important;
1022
+ }
1023
+
1024
+ .glass-context [data-slot="command-input-wrapper"]:focus-within {
1025
+ border-color: var(--j3m-primary-300) !important;
1026
+ box-shadow: 0 0 0 3px rgba(243, 108, 33, 0.2) !important;
1027
+ }
1028
+
1029
+ .glass-context [data-slot="command-item"][data-selected=true] {
1030
+ background: var(--j3m-primary-300) !important;
1031
+ color: #FFFFFF !important;
1032
+ }
1033
+
1034
+ /* --- SCROLL AREA --- */
1035
+ .glass-context [data-slot="scroll-area"] {
1036
+ background: rgba(255, 255, 255, 0.7) !important;
1037
+ border: 1px solid rgba(0, 0, 0, 0.15) !important;
1038
+ border-radius: var(--radius) !important;
1039
+ }
1040
+
1041
+ /* --- COLLAPSIBLE --- */
1042
+ .glass-context [data-slot="collapsible-trigger"] {
1043
+ background: rgba(255, 255, 255, 0.7) !important;
1044
+ border: 1px solid rgba(0, 0, 0, 0.15) !important;
1045
+ border-radius: var(--radius) !important;
1046
+ padding: 0.5rem 1rem !important;
1047
+ width: 100% !important;
1048
+ text-align: left !important;
1049
+ color: rgba(0, 0, 0, 0.85) !important;
1050
+ }
1051
+
1052
+ /* --- CARD (ensure frosted glass in glass context) --- */
1053
+ .glass-context [data-slot="card"]:not([class*="glass"]) {
1054
+ background: var(--j3m-glass-frosted-card) !important;
1055
+ backdrop-filter: blur(var(--j3m-blur-frosted)) !important;
1056
+ -webkit-backdrop-filter: blur(var(--j3m-blur-frosted)) !important;
1057
+ border: none !important;
1058
+ box-shadow: var(--j3m-glass-shadow-md) !important;
1059
+ position: relative;
1060
+ }
1061
+
1062
+ .glass-context [data-slot="card"]:not([class*="glass"])::before {
1063
+ content: '';
1064
+ position: absolute;
1065
+ inset: 0;
1066
+ border-radius: inherit;
1067
+ padding: 1px;
1068
+ background: var(--j3m-glass-border-gradient);
1069
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1070
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1071
+ -webkit-mask-composite: xor;
1072
+ mask-composite: exclude;
1073
+ pointer-events: none;
1074
+ }
1075
+
1076
+ /* ========================================
1077
+ TOAST/SONNER POSITIONING
1078
+ Position toasts at top-center of screen
1079
+ ======================================== */
1080
+
1081
+ [data-sonner-toaster],
1082
+ .sonner-toast-wrapper {
1083
+ --toast-position: top-center;
1084
+ }
1085
+
1086
+ [data-sonner-toaster][data-position="top-center"],
1087
+ .sonner-toaster[data-position="top-center"] {
1088
+ top: 1rem !important;
1089
+ left: 50% !important;
1090
+ right: auto !important;
1091
+ bottom: auto !important;
1092
+ transform: translateX(-50%) !important;
1093
+ }
1094
+
1095
+ /* Glass mode toast styling */
1096
+ .glass-context [data-sonner-toast],
1097
+ .glass-context .sonner-toast {
1098
+ background: rgba(255, 255, 255, 0.95) !important;
1099
+ backdrop-filter: blur(12px) !important;
1100
+ border-color: rgba(0, 0, 0, 0.15) !important;
1101
+ color: rgba(0, 0, 0, 0.85) !important;
1102
+ }
1103
+
594
1104
  /* ========================================
595
1105
  ANIMATIONS (tw-animate-css compatible)
596
1106
  Composable animation system using CSS variables
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@j3m-quantum/ui",
3
- "version": "0.7.9",
3
+ "version": "0.7.11",
4
4
  "description": "J3M UI Component Library - themed shadcn/ui components with design tokens",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",