@interopio/groups-ui-react 2.3.0 → 2.4.0

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.
@@ -96,6 +96,7 @@ export interface TabElementProps {
96
96
  caption: string;
97
97
  selected: boolean;
98
98
  flashing: boolean;
99
+ pinned: boolean;
99
100
  close: () => void;
100
101
  channels: ChannelProps;
101
102
  notifyCaptionBoundsChanged: (bounds: Bounds) => void;
@@ -107,6 +107,7 @@ export interface CreateTabRequestOptions extends CreateElementRequestOptions {
107
107
  caption: string;
108
108
  selected: boolean;
109
109
  flashing: boolean;
110
+ pinned: boolean;
110
111
  channelSelectorVisible: boolean;
111
112
  selectedChannel: string;
112
113
  selectedChannelColor: string;
@@ -440,7 +440,8 @@ input {
440
440
  height: var(--t42-tab-bar-height);
441
441
  }
442
442
 
443
- .t42-tabs {
443
+ .t42-tabs,
444
+ .t42-tabs-pinned {
444
445
  position: relative;
445
446
  display: flex;
446
447
  flex-direction: row;
@@ -448,7 +449,6 @@ input {
448
449
  flex-shrink: 1;
449
450
  align-items: center;
450
451
  padding: var(--t42-tab-bar-padding);
451
- margin: 0px;
452
452
  overflow: hidden;
453
453
  list-style-type: none;
454
454
  -webkit-app-region: drag;
@@ -478,7 +478,11 @@ input {
478
478
  border-top-right-radius: var(--spacing-4);
479
479
  background-color: var(--t42-tab-bar-tab-background);
480
480
  container-type: size;
481
+ container-name: normal-tabs;
481
482
  -webkit-app-region: no-drag;
483
+ /* transition-property: all;
484
+ transition-duration: 260ms;
485
+ transition-timing-function: ease-in-out; */
482
486
  }
483
487
 
484
488
  .t42-tab::before {
@@ -522,12 +526,12 @@ input {
522
526
  .t42-tab-caption {
523
527
  flex-grow: 1;
524
528
  color: var(--t42-tab-bar-tab-text);
525
- -webkit-mask-image: linear-gradient(90deg, Hsl(var(--io-bg-00)) 75%, transparent);
529
+ mask-image: linear-gradient(90deg, Hsl(var(--io-bg-00)) 75%, transparent);
526
530
  }
527
531
 
528
532
  .t42-tab-caption-editor {
529
533
  min-width: unset;
530
- -webkit-mask-image: none;
534
+ mask-image: none;
531
535
  height: var(--spacing-12);
532
536
  }
533
537
 
@@ -575,7 +579,7 @@ input {
575
579
  }
576
580
 
577
581
  .t42-selected-tab::before,
578
- .t42-selected-tab+.t42-tab::before {
582
+ .t42-selected-tab + .t42-tab::before {
579
583
  opacity: 0;
580
584
  }
581
585
 
@@ -702,7 +706,6 @@ input {
702
706
  }
703
707
 
704
708
  @keyframes clipMe {
705
-
706
709
  0%,
707
710
  100% {
708
711
  clip: rect(0, 25vh, 2px, 0);
@@ -784,20 +787,20 @@ input {
784
787
  background-color: transparent;
785
788
  }
786
789
 
787
- @container (max-width: 50px) {
790
+ @container normal-tabs (max-width: 50px) {
788
791
  .t42-tab-channel-selector {
789
- width: 0;
790
- margin: 0;
792
+ --t42-tab-bar-tab-channels-size:0;
793
+ --t42-tab-bar-tab-channels-margin: 0;
791
794
  }
792
795
  }
793
796
 
794
- @container (max-width: 40px) {
797
+ @container normal-tabs (max-width: 40px) {
795
798
  .t42-tab-close-button {
796
799
  margin: auto;
797
800
  }
798
801
  }
799
802
 
800
- @container (max-width: 30px) {
803
+ @container normal-tabs (max-width: 30px) {
801
804
  .t42-selected-tab-caption {
802
805
  flex-grow: 0;
803
806
  width: 0;
@@ -817,31 +820,37 @@ input {
817
820
  }
818
821
 
819
822
  .t42-tabs-overflow.t42-tabs-fade-right {
820
- -webkit-mask-image: linear-gradient(-90deg,
821
- rgba(0, 0, 0, 0) 0,
822
- rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
823
- rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
824
- rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size));
823
+ -webkit-mask-image: linear-gradient(
824
+ -90deg,
825
+ rgba(0, 0, 0, 0) 0,
826
+ rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
827
+ rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
828
+ rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size)
829
+ );
825
830
  }
826
831
 
827
832
  .t42-tabs-overflow.t42-tabs-fade-left {
828
- -webkit-mask-image: linear-gradient(90deg,
829
- rgba(0, 0, 0, 0) 0,
830
- rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
831
- rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
832
- rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size));
833
+ -webkit-mask-image: linear-gradient(
834
+ 90deg,
835
+ rgba(0, 0, 0, 0) 0,
836
+ rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
837
+ rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
838
+ rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size)
839
+ );
833
840
  }
834
841
 
835
842
  .t42-tabs-overflow.t42-tabs-fade-both {
836
- -webkit-mask-image: linear-gradient(90deg,
837
- rgba(0, 0, 0, 0) 0%,
838
- rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
839
- rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
840
- rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size),
841
- rgba(0, 0, 0, 1) calc(100% - var(--t42-tab-bar-fade-size)),
842
- rgba(0, 0, 0, 0.8) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 80)),
843
- rgba(0, 0, 0, 0.3) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 30)),
844
- rgba(0, 0, 0, 0) 100%);
843
+ -webkit-mask-image: linear-gradient(
844
+ 90deg,
845
+ rgba(0, 0, 0, 0) 0%,
846
+ rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
847
+ rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
848
+ rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size),
849
+ rgba(0, 0, 0, 1) calc(100% - var(--t42-tab-bar-fade-size)),
850
+ rgba(0, 0, 0, 0.8) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 80)),
851
+ rgba(0, 0, 0, 0.3) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 30)),
852
+ rgba(0, 0, 0, 0) 100%
853
+ );
845
854
  }
846
855
 
847
856
  .t42-page-popup {
@@ -850,7 +859,8 @@ input {
850
859
  margin-top: var(--t42-wg-tab-over-top-offset);
851
860
  }
852
861
 
853
- .t42-tab-overflow-popup {
862
+ .t42-tab-overflow-popup,
863
+ .t42-tab-context-menu {
854
864
  display: flex;
855
865
  flex-direction: column;
856
866
  min-width: var(--t42-wg-tab-over-min-width);
@@ -862,7 +872,8 @@ input {
862
872
  background-color: var(--t42-wg-tab-over-background);
863
873
  }
864
874
 
865
- .t42-tab-overflow-popup li {
875
+ .t42-tab-overflow-popup li,
876
+ .t42-tab-context-menu li {
866
877
  display: flex;
867
878
  gap: var(--t42-wg-tab-over-item-gap);
868
879
  align-items: center;
@@ -872,14 +883,16 @@ input {
872
883
  transition-property: background-color;
873
884
  }
874
885
 
875
- .t42-tab-overflow-popup li span {
886
+ .t42-tab-overflow-popup li span,
887
+ .t42-tab-context-menu li span {
876
888
  flex-grow: 1;
877
889
  overflow: hidden;
878
890
  text-wrap: nowrap;
879
891
  text-overflow: clip;
880
892
  }
881
893
 
882
- .t42-tab-overflow-popup li:not(.title):hover {
894
+ .t42-tab-overflow-popup li:not(.title):hover,
895
+ .t42-tab-context-menu li:not(.title):hover {
883
896
  color: var(--t42-wg-tab-over-item-color-hover);
884
897
  background-color: var(--t42-wg-tab-over-item-background-hover);
885
898
  }
@@ -895,4 +908,39 @@ input {
895
908
  color: var(--t42-wg-tab-over-item-title-color);
896
909
  font-size: var(--t42-wg-tab-over-item-title-size);
897
910
  letter-spacing: var(--t42-wg-tab-over-item-title-spacing);
911
+ }
912
+
913
+ .t42-tabs-pinned {
914
+ min-width: 0;
915
+ flex-shrink: 0;
916
+ }
917
+
918
+ .t42-tabs-pinned .t42-tab {
919
+ --t42-tab-bar-tab-margin: var(--t42-wg-pin-tab-margin);
920
+ --t42-tab-bar-tab-height: var(--t42-wg-pin-tab-height);
921
+ border-radius: var(--t42-wg-pin-tab-border-radius);
922
+ width: var(--t42-wg-pin-tab-width);
923
+ }
924
+
925
+ .t42-tabs-pinned .t42-tab-caption {
926
+ mask-image: none;
927
+ }
928
+
929
+ .t42-tabs-pinned .t42-tab {
930
+ container-name: pinned;
931
+ }
932
+
933
+ @container pinned (min-width:1px) {
934
+ .t42-tab-close-button {
935
+ background-color: transparent;
936
+ }
937
+ }
938
+
939
+ .t42-tabs-pinned .t42-tab-fade,
940
+ .t42-tabs-overflow .t42-tab-fade {
941
+ overflow: hidden;
942
+ width: 0;
943
+ padding: 0;
944
+ min-width: 0;
945
+ margin: 0;
898
946
  }
@@ -122,6 +122,11 @@
122
122
  --t42-wg-tab-over-separator-size: var(--spacing-1);
123
123
  --t42-wg-tab-over-separator-color: var(--base-border-separator);
124
124
  --t42-wg-tab-over-separator-space: var(--spacing-8) 0;
125
+
126
+ --t42-wg-pin-tab-border-radius: var(--spacing-4);
127
+ --t42-wg-pin-tab-width: 120px;
128
+ --t42-wg-pin-tab-margin: var(--spacing-4);
129
+ --t42-wg-pin-tab-height: var(--spacing-24);
125
130
  }/* Scroll vars override */.os-theme-dark,
126
131
  .os-theme-light {
127
132
  --os-size: var(--spacing-4);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interopio/groups-ui-react",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "React library for building a Web Group App for io.Connect Desktop.",
5
5
  "author": {
6
6
  "name": "interop.io",