@locus-ui/components 0.0.12 → 0.0.15

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.
package/dist/index.css CHANGED
@@ -412,6 +412,22 @@
412
412
  }
413
413
  }
414
414
  }
415
+ .panel[data-variant] {
416
+ --panel-custom-color: var(--color, var(--panel-color));
417
+ backdrop-filter: blur(var(--panel-blur, 0px));
418
+ &[data-variant=solid] {
419
+ background-color: rgb(var(--panel-custom-color));
420
+ border: 1px solid transparent;
421
+ }
422
+ &[data-variant=outlined] {
423
+ background-color: rgba(var(--panel-custom-color), 0.5);
424
+ border: 1px solid rgba(var(--color, var(--border-color)));
425
+ }
426
+ &[data-variant=muted] {
427
+ background-color: rgba(var(--panel-custom-color), 0.4);
428
+ border: 1px solid transparent;
429
+ }
430
+ }
415
431
  .portal-backdrop[data-variant] {
416
432
  position: fixed;
417
433
  top: 0;
@@ -478,6 +494,62 @@
478
494
  align-items: end;
479
495
  }
480
496
  }
497
+ .progress-bar-root[data-variant] {
498
+ --progress-bar-base: var(--lcs-color, var(--panel-color));
499
+ --progress-bar-color: var(--color, var(--primary));
500
+ display: flex;
501
+ overflow: hidden;
502
+ min-height: 1px;
503
+ border-radius: var(--lcs-radius, 1);
504
+ height: calc(4px * var(--lcs-spacing, 1));
505
+ &[data-variant=solid] {
506
+ background-color: rgba(var(--progress-bar-base), 0.8);
507
+ }
508
+ &[data-variant=outlined] {
509
+ background-color: transparent;
510
+ border: 1px solid rgba(var(--progress-bar-color), 0.8);
511
+ }
512
+ &[data-variant=muted] {
513
+ background-color: rgba(var(--progress-bar-color), 0.2);
514
+ }
515
+ &[data-size=xs] {
516
+ height: calc(2px * var(--lcs-spacing, 1));
517
+ }
518
+ &[data-size=sm] {
519
+ height: calc(3px * var(--lcs-spacing, 1));
520
+ }
521
+ &[data-size=lg] {
522
+ height: calc(6px * var(--lcs-spacing, 1));
523
+ }
524
+ &[data-size=xl] {
525
+ height: calc(8px * var(--lcs-spacing, 1));
526
+ }
527
+ }
528
+ .progress-bar-fill[data-variant] {
529
+ --progress-bar-fill-color: var(--color, var(--primary));
530
+ height: 100%;
531
+ border-radius: 0;
532
+ &:only-child {
533
+ border-radius: var(--lcs-radius, 1);
534
+ }
535
+ &:first-child:not(:only-child) {
536
+ border-top-left-radius: var(--lcs-radius, 1);
537
+ border-bottom-left-radius: var(--lcs-radius, 1);
538
+ }
539
+ &:last-child:not(:only-child) {
540
+ border-top-right-radius: var(--lcs-radius, 1);
541
+ border-bottom-right-radius: var(--lcs-radius, 1);
542
+ }
543
+ &[data-variant=solid] {
544
+ background-color: rgba(var(--progress-bar-fill-color), 1);
545
+ }
546
+ &[data-variant=outlined] {
547
+ background-color: rgba(var(--progress-bar-fill-color), 0.8);
548
+ }
549
+ &[data-variant=muted] {
550
+ background-color: rgba(var(--progress-bar-fill-color), 0.6);
551
+ }
552
+ }
481
553
  .select-root[data-variant] {
482
554
  flex: 1;
483
555
  display: flex;
@@ -694,11 +766,210 @@
694
766
  border-right: 1px dotted rgb(var(--border-color));
695
767
  }
696
768
  }
697
- .lcs-text {
698
- color: rgb(var(--text-color));
769
+ .switch-root[data-variant] {
770
+ --switch-color: var(--color, var(--primary));
771
+ display: flex;
772
+ flex-direction: row;
773
+ gap: calc(12px * var(--lcs-spacing, 1));
774
+ cursor: pointer;
775
+ &:not([data-align]) {
776
+ align-items: center;
777
+ }
778
+ &[data-disabled=true],
779
+ &[data-readonly=true] {
780
+ cursor: not-allowed !important;
781
+ }
782
+ &[data-disabled=true] {
783
+ opacity: 0.6;
784
+ }
785
+ &:has(.switch-label[data-position=top]) {
786
+ flex-direction: column-reverse;
787
+ align-items: start;
788
+ }
789
+ &:has(.switch-label[data-position=bottom]) {
790
+ flex-direction: column;
791
+ align-items: start;
792
+ }
793
+ &:has(.switch-label[data-position=right]) {
794
+ flex-direction: row-reverse;
795
+ }
796
+ .switch-container {
797
+ overflow: hidden;
798
+ border-radius: 16px;
799
+ width: calc(40px * var(--lcs-spacing, 1));
800
+ min-width: calc(40px * var(--lcs-spacing, 1));
801
+ &[data-focused=true] {
802
+ outline: 1px solid rgba(var(--switch-color), 0.8);
803
+ outline-offset: 0.5px;
804
+ }
805
+ &[data-variant=solid] {
806
+ background-color: rgba(var(--panel-color), 0.8);
807
+ transition: background-color 100ms;
808
+ }
809
+ &[data-variant=outlined] {
810
+ border: 1px solid rgba(var(--panel-color), 0.8);
811
+ transition: border-color 100ms;
812
+ &[data-checked=true] {
813
+ border-color: rgba(var(--switch-color), 0.6);
814
+ }
815
+ &[data-hovered=true]:not([data-disabled=true], [data-readonly=true]),
816
+ &[data-focused=true]:not([data-disabled=true], [data-readonly=true]) {
817
+ border-color: rgba(var(--switch-color), 0.8);
818
+ }
819
+ }
820
+ &[data-variant=muted] {
821
+ background-color: rgba(var(--panel-color), 0.4);
822
+ transition: background-color 100ms;
823
+ }
824
+ &[data-size=xs] {
825
+ width: calc(24px * var(--lcs-spacing, 1));
826
+ min-width: calc(24px * var(--lcs-spacing, 1));
827
+ }
828
+ &[data-size=sm] {
829
+ width: calc(32px * var(--lcs-spacing, 1));
830
+ min-width: calc(32px * var(--lcs-spacing, 1));
831
+ }
832
+ &[data-size=lg] {
833
+ width: calc(48px * var(--lcs-spacing, 1));
834
+ min-width: calc(48px * var(--lcs-spacing, 1));
835
+ }
836
+ &[data-size=xl] {
837
+ width: calc(64px * var(--lcs-spacing, 1));
838
+ min-width: calc(64px * var(--lcs-spacing, 1));
839
+ }
840
+ &.size {
841
+ width: var(--custom-size);
842
+ min-width: var(--custom-size);
843
+ }
844
+ }
845
+ }
846
+ .switch-indicator[data-variant] {
847
+ --switch-color: var(--color, var(--primary));
848
+ position: relative;
849
+ display: flex;
850
+ align-items: center;
851
+ justify-content: center;
852
+ box-sizing: border-box;
853
+ width: calc(20px * var(--lcs-spacing, 1));
854
+ height: calc(20px * var(--lcs-spacing, 1));
855
+ min-width: calc(12px * var(--lcs-spacing, 1));
856
+ min-height: calc(12px * var(--lcs-spacing, 1));
857
+ border: 1px solid transparent;
858
+ border-radius: 100%;
859
+ transition:
860
+ background-color 100ms,
861
+ border-color 100ms,
862
+ margin 100ms;
863
+ &[data-size=xs] {
864
+ width: calc(12px * var(--lcs-spacing, 1));
865
+ height: calc(12px * var(--lcs-spacing, 1));
866
+ }
867
+ &[data-size=sm] {
868
+ width: calc(16px * var(--lcs-spacing, 1));
869
+ height: calc(16px * var(--lcs-spacing, 1));
870
+ }
871
+ &[data-size=lg] {
872
+ width: calc(24px * var(--lcs-spacing, 1));
873
+ height: calc(24px * var(--lcs-spacing, 1));
874
+ }
875
+ &[data-size=xl] {
876
+ width: calc(32px * var(--lcs-spacing, 1));
877
+ height: calc(32px * var(--lcs-spacing, 1));
878
+ }
879
+ &.size {
880
+ width: calc(var(--custom-size) / 2);
881
+ height: calc(var(--custom-size) / 2);
882
+ }
883
+ &[data-checked=true] {
884
+ margin-left: 50%;
885
+ }
886
+ &[data-disabled=true],
887
+ &[data-readonly=true] {
888
+ cursor: not-allowed;
889
+ opacity: 0.6;
890
+ }
891
+ &::before {
892
+ content: "";
893
+ position: absolute;
894
+ top: 50%;
895
+ left: 50%;
896
+ transform: translate(-100%, -50%);
897
+ width: 200%;
898
+ height: 200%;
899
+ pointer-events: none;
900
+ opacity: 0;
901
+ transition: opacity 100ms, background-color 100ms;
902
+ }
903
+ &[data-checked=true]::before {
904
+ opacity: 1;
905
+ }
906
+ &::after {
907
+ content: "";
908
+ position: absolute;
909
+ inset: -1px;
910
+ border-radius: inherit;
911
+ background-color: inherit;
912
+ pointer-events: none;
913
+ transition: background-color 100ms;
914
+ }
915
+ &[data-variant=solid] {
916
+ outline: none;
917
+ background-color: rgb(222, 222, 222);
918
+ &::before {
919
+ background-color: rgba(var(--switch-color), 0.5);
920
+ }
921
+ &[data-checked=true] {
922
+ background-color: rgb(222, 222, 222);
923
+ }
924
+ &[data-hovered=true]:not([data-disabled=true], [data-readonly=true]),
925
+ &[data-focused=true]:not([data-disabled=true], [data-readonly=true]) {
926
+ background-color: rgba(var(--switch-color), 0.9);
927
+ &::before {
928
+ background-color: rgb(var(--switch-color), 0.4);
929
+ }
930
+ }
931
+ }
932
+ &[data-variant=outlined] {
933
+ outline: none;
934
+ background-color: rgba(var(--panel-color), 0.8);
935
+ &::before {
936
+ background-color: rgba(var(--switch-color), 0.2);
937
+ }
938
+ &[data-checked=true] {
939
+ background-color: rgb(222, 222, 222);
940
+ }
941
+ &[data-hovered=true]:not([data-disabled=true], [data-readonly=true]),
942
+ &[data-focused=true]:not([data-disabled=true], [data-readonly=true]) {
943
+ background-color: rgba(var(--switch-color), 0.9);
944
+ &::before {
945
+ background-color: rgb(var(--switch-color), 0.4);
946
+ }
947
+ }
948
+ }
949
+ &[data-variant=muted] {
950
+ outline: none;
951
+ background-color: rgb(var(--panel-color));
952
+ &::before {
953
+ background-color: rgba(var(--switch-color), 0.2);
954
+ }
955
+ &[data-checked=true] {
956
+ background-color: rgb(var(--switch-color)) !important;
957
+ }
958
+ &[data-hovered=true]:not([data-disabled=true], [data-readonly=true]),
959
+ &[data-focused=true]:not([data-disabled=true], [data-readonly=true]) {
960
+ background-color: rgba(var(--switch-color), 0.7);
961
+ &::before {
962
+ background-color: rgb(var(--switch-color), 0.4);
963
+ }
964
+ }
965
+ }
699
966
  }
700
- .lcs-text[disabled] {
701
- color: rgb(var(--text-color-disabled));
967
+ .text {
968
+ --text-custom-color: var(--color, var(--text-color));
969
+ color: rgb(var(--text-custom-color));
970
+ &[disabled] {
971
+ color: rgb(var(--text-color-disabled));
972
+ }
702
973
  }
703
974
  .lcs-flex {
704
975
  display: flex;
@@ -744,6 +1015,9 @@
744
1015
  align-items: flex-end;
745
1016
  }
746
1017
  [data-color] {
1018
+ --color: var(--custom-color);
1019
+ }
1020
+ [data-color=primary] {
747
1021
  --color: var(--primary);
748
1022
  }
749
1023
  [data-color=secondary] {