@interopio/groups-ui-react 3.0.0 → 3.0.1

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.
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Bounds, ButtonProps, Location, OverflowedTabInfo, StylesOptions, ToggleButtonProps } from "./internal";
2
+ import { Bounds, ButtonProps, Location, OverflowedTabInfo, PopupTargetLocation, Size, StylesOptions, ToggleButtonProps } from "./internal";
3
3
  import { CustomButtonProps } from "./defaultComponents";
4
4
  export interface ChannelProps {
5
5
  visible: boolean;
@@ -54,6 +54,7 @@ export interface TabOverflowPopupProps {
54
54
  frameId: string;
55
55
  select: (windowId: string) => void;
56
56
  close: (windowId: string) => void;
57
+ resize?: (size: Size) => void;
57
58
  hiddenTabsToTheLeft: OverflowedTabInfo[];
58
59
  hiddenTabsToTheRight: OverflowedTabInfo[];
59
60
  }
@@ -193,4 +194,38 @@ export interface OpenTabOverflowPopupOptions {
193
194
  frameId: string;
194
195
  location: Location;
195
196
  }
197
+ export interface CreatePopupOptions {
198
+ left?: number;
199
+ top?: number;
200
+ width?: number;
201
+ height?: number;
202
+ roundedCorners?: boolean;
203
+ hasSizeAreas?: boolean;
204
+ hasMoveAreas?: boolean;
205
+ transparent?: boolean;
206
+ copyStyles?: boolean;
207
+ }
208
+ export interface PopupShowOptions {
209
+ targetBounds?: Bounds;
210
+ size?: Size;
211
+ targetLocation?: PopupTargetLocation;
212
+ focus?: boolean;
213
+ horizontalOffset?: number;
214
+ verticalOffset?: number;
215
+ }
216
+ export interface PopupWindow {
217
+ ioConnectWindow: any;
218
+ browserWindow: Window;
219
+ }
220
+ export interface ExternalWindowPopupResult {
221
+ getContainer: () => HTMLElement | null;
222
+ createPopup: (options?: CreatePopupOptions) => Promise<PopupWindow | null>;
223
+ showPopup: (options?: PopupShowOptions) => Promise<void>;
224
+ resizePopup: (size: Size) => Promise<void>;
225
+ hidePopup: () => Promise<void>;
226
+ closePopup: () => Promise<void>;
227
+ isOpen: boolean;
228
+ isVisible: boolean;
229
+ popup: PopupWindow | null;
230
+ }
196
231
  export {};
@@ -288,6 +288,7 @@ export interface ElementCreationWrapperState {
288
288
  [targetId: string]: CreateButtonsOptions;
289
289
  };
290
290
  }
291
+ export declare type IndexableElementCreationWrapperState = Omit<Omit<ElementCreationWrapperState, "groupCaptionBar">, "groupOverlay">;
291
292
  export interface ExternalLibraryFactory {
292
293
  readonly groupId: string;
293
294
  focusPage(): void;
@@ -310,6 +311,7 @@ export interface ExternalLibraryFactory {
310
311
  updateFrameStyles(styles: StylesOptions): void;
311
312
  selectTab(windowId: string): void;
312
313
  openTabOverflowPopup(frameId: string, location: Location): void;
314
+ resizeTabOverflowPopup(frameId: string, size: Size): void;
313
315
  addTabContainerClass(windowId: string, className: string): void;
314
316
  removeTabContainerClass(windowId: string, className: string): void;
315
317
  }
@@ -337,4 +339,14 @@ export interface StylesOptions {
337
339
  }
338
340
  export interface Bounds extends Size, Location {
339
341
  }
342
+ export declare type PopupTargetLocation = "top" | "bottom" | "left" | "right" | "none";
343
+ export interface ExternalWindowPopup {
344
+ browserWindow?: Window;
345
+ ioConnectWindow?: any;
346
+ }
347
+ export interface ShowExternalWindowPopupConfig {
348
+ targetBounds: Bounds;
349
+ size: Size;
350
+ targetLocation: PopupTargetLocation;
351
+ }
340
352
  export {};
@@ -1,4 +1,4 @@
1
- import { Bounds, Location, StylesOptions, TargetType } from "./types/internal";
1
+ import { Bounds, Location, Size, StylesOptions, TargetType } from "./types/internal";
2
2
  declare class WebGroupsManagerDecorator {
3
3
  private readonly registry;
4
4
  readonly skipFocusStyle = "t42-skip-focus";
@@ -44,6 +44,7 @@ declare class WebGroupsManagerDecorator {
44
44
  addTabContainerClass(windowId: string, className: string): void;
45
45
  removeTabContainerClass(windowId: string, className: string): void;
46
46
  openTabOverflowPopup(frameId: string, location: Location): void;
47
+ resizeTabOverflowPopup(frameId: string, size: Size): void;
47
48
  }
48
49
  declare const _default: WebGroupsManagerDecorator;
49
50
  export default _default;
@@ -60,6 +60,9 @@ declare class WebGroupsStore {
60
60
  private onHideTabCaptionEditorRequested;
61
61
  private onShowLoadingAnimation;
62
62
  private onHideLoadingAnimation;
63
+ private onCreateElementRequested;
64
+ private onUpdateElementRequested;
65
+ private onRemoveElementRequested;
63
66
  private setState;
64
67
  }
65
68
  declare const _default: WebGroupsStore;
@@ -919,9 +919,9 @@ input {
919
919
  .t42-tabs-overflow.t42-tabs-fade-right {
920
920
  -webkit-mask-image: linear-gradient(
921
921
  -90deg,
922
- rgba(0, 0, 0, 0) 0,
923
- rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
924
- rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
922
+ rgba(0, 0, 0, 0) 0,
923
+ rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
924
+ rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
925
925
  rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size)
926
926
  );
927
927
  }
@@ -929,9 +929,9 @@ input {
929
929
  .t42-tabs-overflow.t42-tabs-fade-left {
930
930
  -webkit-mask-image: linear-gradient(
931
931
  90deg,
932
- rgba(0, 0, 0, 0) 0,
933
- rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
934
- rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
932
+ rgba(0, 0, 0, 0) 0,
933
+ rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
934
+ rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
935
935
  rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size)
936
936
  );
937
937
  }
@@ -939,13 +939,13 @@ input {
939
939
  .t42-tabs-overflow.t42-tabs-fade-both {
940
940
  -webkit-mask-image: linear-gradient(
941
941
  90deg,
942
- rgba(0, 0, 0, 0) 0%,
943
- rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
944
- rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
945
- rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size),
946
- rgba(0, 0, 0, 1) calc(100% - var(--t42-tab-bar-fade-size)),
947
- rgba(0, 0, 0, 0.8) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 80)),
948
- rgba(0, 0, 0, 0.3) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 30)),
942
+ rgba(0, 0, 0, 0) 0%,
943
+ rgba(0, 0, 0, 0.3) calc(var(--t42-tab-bar-fade-size) / 100 * 30),
944
+ rgba(0, 0, 0, 0.8) calc(var(--t42-tab-bar-fade-size) / 100 * 80),
945
+ rgba(0, 0, 0, 1) var(--t42-tab-bar-fade-size),
946
+ rgba(0, 0, 0, 1) calc(100% - var(--t42-tab-bar-fade-size)),
947
+ rgba(0, 0, 0, 0.8) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 80)),
948
+ rgba(0, 0, 0, 0.3) calc(100% - (var(--t42-tab-bar-fade-size) / 100 * 30)),
949
949
  rgba(0, 0, 0, 0) 100%
950
950
  );
951
951
  }
@@ -954,7 +954,17 @@ input {
954
954
  position: absolute;
955
955
  z-index: 999;
956
956
  margin-top: var(--t42-wg-tab-over-top-offset);
957
+ }
958
+
959
+ .t42-external-page-popup {
960
+ position: absolute;
961
+ z-index: 999;
962
+ background-color: transparent;
963
+ height: fit-content;
964
+ }
957
965
 
966
+ .t42-external-page-popup .t42-tab-overflow-popup {
967
+ --t42-wg-tab-over-max-height: none;
958
968
  }
959
969
 
960
970
  .t42-tab-overflow-popup {
@@ -970,6 +980,10 @@ input {
970
980
  background-color: var(--t42-wg-tab-over-background);
971
981
  }
972
982
 
983
+ .renderer-mode-keycolor .t42-tab-overflow-popup {
984
+ border-radius: 0px;
985
+ }
986
+
973
987
  .t42-tab-overflow-popup li {
974
988
  display: flex;
975
989
  gap: var(--t42-wg-tab-over-item-gap);
@@ -1049,8 +1063,8 @@ input {
1049
1063
  .t42-multi-channel-selector-2 {
1050
1064
  background-image: conic-gradient(
1051
1065
  var(--t42-multi-channel-selector-2-color-1) 0deg,
1052
- var(--t42-multi-channel-selector-2-color-1) 180deg,
1053
- var(--t42-multi-channel-selector-2-color-2) 180deg,
1066
+ var(--t42-multi-channel-selector-2-color-1) 180deg,
1067
+ var(--t42-multi-channel-selector-2-color-2) 180deg,
1054
1068
  var(--t42-multi-channel-selector-2-color-2) 0deg
1055
1069
  );
1056
1070
  mask-image: var(--t42-multi-channel-selector-2-mask);
@@ -1059,10 +1073,10 @@ input {
1059
1073
  .t42-multi-channel-selector-3 {
1060
1074
  background-image: conic-gradient(
1061
1075
  var(--t42-multi-channel-selector-3-color-1) 0deg,
1062
- var(--t42-multi-channel-selector-3-color-1) 120deg,
1063
- var(--t42-multi-channel-selector-3-color-2) 120deg,
1064
- var(--t42-multi-channel-selector-3-color-2) 240deg,
1065
- var(--t42-multi-channel-selector-3-color-3) 240deg,
1076
+ var(--t42-multi-channel-selector-3-color-1) 120deg,
1077
+ var(--t42-multi-channel-selector-3-color-2) 120deg,
1078
+ var(--t42-multi-channel-selector-3-color-2) 240deg,
1079
+ var(--t42-multi-channel-selector-3-color-3) 240deg,
1066
1080
  var(--t42-multi-channel-selector-3-color-3) 0deg
1067
1081
  );
1068
1082
  mask-image: var(--t42-multi-channel-selector-3-mask);
@@ -1071,12 +1085,12 @@ input {
1071
1085
  .t42-multi-channel-selector-4 {
1072
1086
  background-image: conic-gradient(
1073
1087
  var(--t42-multi-channel-selector-4-color-1) 0deg,
1074
- var(--t42-multi-channel-selector-4-color-1) 90deg,
1075
- var(--t42-multi-channel-selector-4-color-2) 90deg,
1076
- var(--t42-multi-channel-selector-4-color-2) 180deg,
1077
- var(--t42-multi-channel-selector-4-color-3) 180deg,
1078
- var(--t42-multi-channel-selector-4-color-3) 270deg,
1079
- var(--t42-multi-channel-selector-4-color-4) 270deg,
1088
+ var(--t42-multi-channel-selector-4-color-1) 90deg,
1089
+ var(--t42-multi-channel-selector-4-color-2) 90deg,
1090
+ var(--t42-multi-channel-selector-4-color-2) 180deg,
1091
+ var(--t42-multi-channel-selector-4-color-3) 180deg,
1092
+ var(--t42-multi-channel-selector-4-color-3) 270deg,
1093
+ var(--t42-multi-channel-selector-4-color-4) 270deg,
1080
1094
  var(--t42-multi-channel-selector-4-color-4) 0deg
1081
1095
  );
1082
1096
  mask-image: var(--t42-multi-channel-selector-4-mask);
@@ -877,7 +877,7 @@ body .ace-jsoneditor .ace_fold-widget:hover,body .ace-jsoneditor .ace_fold-widge
877
877
  --t42-caption-bar-button-close-hover-background: var(--io-red-700);
878
878
  --t42-caption-bar-button-close-hover-text: var(--io-neutrals-0);
879
879
 
880
- --t42-sizing-border-group-color: transparent;
880
+ --t42-sizing-border-group-color: var(--window-header-background);
881
881
  --t42-hover-sizing-border-group-color: var(--io-blue-600);
882
882
  --t42-active-sizing-border-group-color: var(--io-blue-700);
883
883
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interopio/groups-ui-react",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "React library for building a Web Group App for io.Connect Desktop.",
5
5
  "keywords": [
6
6
  "interop",
@@ -32,6 +32,7 @@
32
32
  "clean": ""
33
33
  },
34
34
  "dependencies": {
35
+ "@interopio/components-react": "^0.8.2",
35
36
  "@interopio/theme": "3.1.0",
36
37
  "callback-registry": "^2.7.2",
37
38
  "color2k": "^2.0.0",
@@ -92,4 +93,4 @@
92
93
  "publishConfig": {
93
94
  "access": "public"
94
95
  }
95
- }
96
+ }