cobrowse-agent-ui 1.5.0 → 1.6.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.
- package/README.md +6 -8
- package/dist/cobrowse-agent-ui.css +1 -1
- package/dist/cobrowse-agent-ui.d.ts +131 -12
- package/dist/cobrowse-agent-ui.js +430 -119
- package/dist/cobrowse-agent-ui.js.map +1 -1
- package/dist/index-fBWDR3rY.js +1337 -0
- package/dist/index-fBWDR3rY.js.map +1 -0
- package/dist/integrations.d.ts +4 -10
- package/dist/integrations.js +109 -107
- package/dist/integrations.js.map +1 -1
- package/dist/session/demo-session.html +111 -0
- package/package.json +5 -4
- package/dist/index-BmaoQ4Rn.js +0 -1041
- package/dist/index-BmaoQ4Rn.js.map +0 -1
package/README.md
CHANGED
|
@@ -11,15 +11,13 @@ achieve this from an app that's also using `i18next` to handle localization.
|
|
|
11
11
|
// i18n.js
|
|
12
12
|
|
|
13
13
|
import i18n from 'i18next';
|
|
14
|
-
import {
|
|
14
|
+
import { bindI18n } from 'cobrowse-agent-ui';
|
|
15
15
|
|
|
16
16
|
i18n.init({
|
|
17
17
|
// ...
|
|
18
18
|
});
|
|
19
19
|
|
|
20
|
-
i18n
|
|
21
|
-
i18nAgentUI.changeLanguage(language);
|
|
22
|
-
});
|
|
20
|
+
bindI18n(i18n);
|
|
23
21
|
|
|
24
22
|
export default i18n;
|
|
25
23
|
```
|
|
@@ -28,12 +26,12 @@ export default i18n;
|
|
|
28
26
|
|
|
29
27
|
To add a new locale follow these steps:
|
|
30
28
|
|
|
31
|
-
- Add a new entry to the `locales` array inside `i18next
|
|
29
|
+
- Add a new entry to the `locales` array inside `i18next.config.ts`.
|
|
32
30
|
- Run the `npm run i18n` command to generate a new locale file.
|
|
33
|
-
- Import the new locale JSON file inside `lib/i18n.
|
|
31
|
+
- Import the new locale JSON file inside `lib/i18n/instance.ts` and add it to the `resources` object (in the i18n instance
|
|
34
32
|
configuration) keyed by the locale key.
|
|
35
|
-
- Import the relevant `date-fns` locale inside `lib/i18n.
|
|
36
|
-
- Add a new entry to
|
|
33
|
+
- Import the relevant `date-fns` locale inside `lib/i18n/instance.ts`.
|
|
34
|
+
- Add a new entry to `dateLocales` inside `lib/i18n/instance.ts`.
|
|
37
35
|
|
|
38
36
|
**Note:** ensure the locale code matches the ones provided by the
|
|
39
37
|
[date-fns library](https://github.com/date-fns/date-fns/tree/main/src/locale) as these are used to localize dates as well.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.CodeEntry-module__root__CEZCb{text-align:center;white-space:nowrap;display:inline-flex;align-items:center;gap:10px;border:none;margin:0;padding:0;min-inline-size:0}.CodeEntry-module__legend__GN0ge{padding:0;font-weight:700;display:contents}.CodeEntry-module__digits__aob60{display:inline-flex;align-items:center}.CodeEntry-module__input__Mp3LR{font-size:1rem;width:1.6rem;height:2rem;margin:.2rem;text-align:center;border-radius:4px;border:1px solid #dfe3f0;background:#fff;color:#0b1220;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;appearance:textfield}.CodeEntry-module__input__Mp3LR:nth-of-type(3){margin-inline-end:.6rem}.CodeEntry-module__input__Mp3LR[type=number]::-webkit-outer-spin-button,.CodeEntry-module__input__Mp3LR[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.CodeEntry-module__input__Mp3LR:focus{border-color:#040d3c
|
|
1
|
+
.CodeEntry-module__root__CEZCb{text-align:center;white-space:nowrap;display:inline-flex;align-items:center;gap:10px;border:none;margin:0;padding:0;min-inline-size:0}.CodeEntry-module__legend__GN0ge{padding:0;font-weight:700;display:contents}.CodeEntry-module__digits__aob60{display:inline-flex;align-items:center}.CodeEntry-module__input__Mp3LR{font-size:1rem;width:1.6rem;height:2rem;margin:.2rem;text-align:center;border-radius:4px;border:1px solid #dfe3f0;background:#fff;color:#0b1220;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;appearance:textfield}.CodeEntry-module__input__Mp3LR:nth-of-type(3){margin-inline-end:.6rem}.CodeEntry-module__input__Mp3LR[type=number]::-webkit-outer-spin-button,.CodeEntry-module__input__Mp3LR[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.CodeEntry-module__input__Mp3LR:focus-visible{border-color:#040d3c}@keyframes CodeEntry-module__shake__0xLiW{10%,90%{transform:translate3d(-2px,0,0)}20%,80%{transform:translate3d(3px,0,0)}30%,50%,70%{transform:translate3d(-7px,0,0)}40%,60%{transform:translate3d(7px,0,0)}}.CodeEntry-module__invalid__0fo6R{animation:CodeEntry-module__shake__0xLiW .6s cubic-bezier(.16,.07,.19,.97) both;transform:translateZ(0)}.Button-module__root__FeqPS{appearance:none;border:none;display:inline-block;background:#f6f4f8;padding:12px 16px;border-radius:4px;font-weight:600;font-size:1rem;font-family:inherit;line-height:inherit;transition:background .15s ease,color .15s ease,transform .12s ease,opacity .12s ease;outline:none}.Button-module__root__FeqPS:disabled{cursor:not-allowed;opacity:.6}.PlatformIcon-module__root__ogAvA{width:.9rem;height:.9rem;vertical-align:middle}.Device-module__root__UZx82{padding:6px;display:flex;align-items:center;position:relative;gap:12px}.Device-module__deviceType__XLr3o{color:#0e0c26}.Device-module__lastSeen__6lPw2{color:#6f6d82}.Device-module__onlineStatus__qY0ly{display:flex;align-items:center;gap:6px}.Device-module__onlineIndicator__AjhAU{background:#22c55e;height:12px;width:12px;border:2px solid #BBF7D0;border-radius:9999px}.Device-module__deviceStatus__0yCZg{height:32px;width:32px;padding:4px;outline:1px solid rgba(4,13,60,.25);border-radius:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:transparent}.Device-module__platformIcon__Y-uEy{height:100%;width:auto;pointer-events:none;display:flex;align-items:center;justify-content:center;color:inherit;padding:2px}.Device-module__details__hiywz{display:flex;flex-direction:column;gap:4px;flex:1;color:inherit;font-size:14px}.Session-module__root__cORao{appearance:none;border:none;background:none;padding:6px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;text-align:start;font-family:inherit;line-height:inherit;outline:none}.Session-module__clickable__ZEtjv{cursor:pointer;width:100%}.Session-module__details__oye-t{flex:1;display:flex;flex-direction:column;gap:4px;font-size:14px}.Session-module__deviceType__tXRrM{display:flex;gap:8px;align-items:center;color:#0e0c26}.Session-module__subdetails__rorhH{display:flex;align-items:baseline;color:#6f6d82;gap:12px}.Session-module__recorded__aV5Ih{text-transform:uppercase;font-size:10px;margin-inline-start:3px;letter-spacing:.05rem;color:#0b1220;cursor:pointer}.Session-module__active__1c1v0{display:flex;align-items:center;gap:6px}.Session-module__activeIndicator__lWO9H{background:#22c55e;height:12px;width:12px;border:2px solid #BBF7D0;border-radius:9999px;flex:1}.Session-module__activated__g-IUA{white-space:nowrap;display:flex;gap:10px;align-items:center}.Session-module__recorded__aV5Ih:before{content:"";width:8px;height:8px;margin-inline-end:4px;background:red;border-radius:100%;display:inline-block}.Session-module__duration__2WYUC{display:flex;gap:4px;align-items:center}.SmartConnectButton-module__connectable__9zFuL{background:#040d3c;color:#fff;cursor:pointer;opacity:1}.SmartConnectButton-module__connectable__9zFuL:active{transform:translateY(1px)}.RefreshButton-module__root__2r6Po{padding:4px;background:transparent;display:flex;align-items:center;justify-content:center;color:#6f7780;cursor:pointer;opacity:1}.RefreshButton-module__icon__ZMGzA{width:18px;height:18px;transition:transform .2s ease-out}.RefreshButton-module__icon__ZMGzA:hover{transform:rotate(25deg)}.Loader-module__root__CuLMw{display:flex;justify-content:center}.Loader-module__spinner__tOnAQ{display:grid;width:24px;height:24px;animation:Loader-module__spin__HaoIa 4s infinite}.Loader-module__spinner__tOnAQ:before,.Loader-module__spinner__tOnAQ:after{content:"";grid-area:1 / 1;border-radius:50%;animation:Loader-module__spin__HaoIa 1s infinite linear}.Loader-module__spinner__tOnAQ:after{border:4px solid;border-color:#0e0c26 #0e0c26 #d7dae9 #d7dae9;animation-direction:reverse}@keyframes Loader-module__spin__HaoIa{to{transform:rotate(1turn)}}.ExternalLink-module__root__7-WiY{position:absolute;right:10px;display:flex;align-items:center;gap:4px;text-decoration:none;color:var(--text-color-base)}.ExternalLink-module__root__7-WiY:hover{text-decoration:underline}.ExternalLink-module__root__7-WiY:visited{color:#0e0c26;color:var(--text-color-base)}.UserIcon-module__root__-NL30{color:#fff;display:inline-flex;align-items:center;justify-content:center;text-align:center;background-size:cover;background-position:center;padding:16px;border-radius:50%;width:1.5rem;height:1.5rem;border:1px solid #ddd;flex:0 0 auto;white-space:nowrap}.CancelButton-module__root__CbF-w{height:40px;border-radius:62px;background-color:#b91c1c;color:#fff;padding:4px 20px;cursor:pointer;opacity:1}.CancelButton-module__root__CbF-w:hover{background-color:#dc2626}.BlockingError-module__root__myw6b{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:10px;height:100%;text-align:center}.BlockingError-module__heading__FzjhY{font-size:1.5rem;font-weight:700}.BlockingError-module__message__7jJ2T{font-size:1.2rem}.Overlay-module__root__qqUZs{position:absolute;inset:0;z-index:1;pointer-events:none}.Overlay-module__content__5FwWj{display:contents;pointer-events:auto}.SessionEmbed-module__root__Y9AHn{position:relative;width:100%;height:100%}.ConnectDevice-module__root__JnmG1{display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;height:100%;width:100%;background:#0e0c26;color:#fff}.ConnectDevice-module__statusMessage__JWNqk{font-size:1.2rem}.focus-module__focusRing__rvgPB:focus-visible{outline:none;box-shadow:0 0 0 var(--focus-ring-width, 3px) var(--focus-ring-color, rgba(4, 13, 60, .16))}.Tabs-module__root__vrPV-{--tab-text-color: #6f7780;--tab-active-color: #040d3c;--tab-border-color: #d7dce2;width:100%;display:flex;flex-direction:column;gap:10px;min-height:0;flex:1 1}.Tabs-module__header__ZVkH2{display:flex;align-items:center;border-bottom:1px solid var(--tab-border-color);gap:12px}.Tabs-module__tabList__thjbJ{display:flex;margin:0}.Tabs-module__tab__HyAQH{position:relative;margin-bottom:-1px;padding:10px;border:none;background:transparent;color:var(--tab-text-color);font-size:14px;font-weight:600;border-bottom:2px solid transparent;cursor:pointer;transition:color .3s,border .3s}.Tabs-module__tabHover__yC8x3{color:var(--tab-active-color)}.Tabs-module__tabActive__4FIE-{color:var(--tab-active-color);border-bottom:2px solid var(--tab-active-color)}.Tabs-module__tabPanels__xvxyl{overflow-y:auto;flex:1 1;min-height:0;width:100%}.Tabs-module__panelItem__jS1PJ{position:relative}.Tabs-module__panelItem__jS1PJ+.Tabs-module__panelItem__jS1PJ:before{content:"";position:absolute;top:0;left:6px;right:6px;border-top:1px solid #E1E1E4}.Tabs-module__refresh__MV7Wh{margin-inline-start:auto}.SessionAction-module__recorded__wCyhA{display:flex;gap:4px;align-items:center}.SessionAction-module__recordedIcon__clzY-{height:14px;width:14px}.CodeEntry-module__root__XlJve{display:flex;flex-direction:column;gap:4px}.CodeEntry-module__supportLabel__4nBLA{display:none}@media screen and (min-width:300px){.CodeEntry-module__supportLabel__4nBLA{display:inline}}
|
|
@@ -6,14 +6,66 @@ import { DeviceInfo as DeviceInfo_2 } from 'cobrowse-agent-sdk';
|
|
|
6
6
|
import { ElementType } from 'react';
|
|
7
7
|
import { ForwardedRef } from 'react';
|
|
8
8
|
import { i18n as i18n_2 } from 'i18next';
|
|
9
|
+
import { InitOptions } from 'i18next';
|
|
9
10
|
import { JSX } from 'react/jsx-runtime';
|
|
10
11
|
import { ReactNode } from 'react';
|
|
12
|
+
import { RemoteContext } from 'cobrowse-agent-sdk';
|
|
11
13
|
import { Session as Session_2 } from 'cobrowse-agent-sdk';
|
|
12
14
|
import { SVGProps } from 'react';
|
|
13
15
|
|
|
16
|
+
declare interface BaseButtonProps {
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
14
20
|
declare interface BaseSessionProps<TSession extends SessionData = SessionData> {
|
|
15
21
|
session: TSession;
|
|
16
22
|
className?: string;
|
|
23
|
+
joinSessionButtonClassName?: string;
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export declare const bindI18n: (consumerI18n: {
|
|
28
|
+
language: string;
|
|
29
|
+
resolvedLanguage?: string | undefined;
|
|
30
|
+
on: {
|
|
31
|
+
(event: "initialized", callback: (options: InitOptions) => void): void;
|
|
32
|
+
(event: "loaded", callback: (loaded: {
|
|
33
|
+
[language: string]: {
|
|
34
|
+
[namespace: string]: boolean;
|
|
35
|
+
};
|
|
36
|
+
}) => void): void;
|
|
37
|
+
(event: "failedLoading", callback: (lng: string, ns: string, msg: string) => void): void;
|
|
38
|
+
(event: "missingKey", callback: (lngs: readonly string[], namespace: string, key: string, res: string) => void): void;
|
|
39
|
+
(event: "added" | "removed", callback: (lng: string, ns: string) => void): void;
|
|
40
|
+
(event: "languageChanged", callback: (lng: string) => void): void;
|
|
41
|
+
(event: string, listener: (...args: any[]) => void): void;
|
|
42
|
+
};
|
|
43
|
+
off: (event: string, listener?: (...args: any[]) => void) => void;
|
|
44
|
+
}) => () => void;
|
|
45
|
+
|
|
46
|
+
export declare const BlockingError: ({ heading, message, children }: BlockingErrorProps) => JSX.Element;
|
|
47
|
+
|
|
48
|
+
export declare interface BlockingErrorProps {
|
|
49
|
+
heading?: string;
|
|
50
|
+
message?: string;
|
|
51
|
+
children?: ReactNode;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export declare const Button: <TElement extends ElementType = "button">({ as, className, ...props }: ButtonProps<TElement>) => JSX.Element;
|
|
55
|
+
|
|
56
|
+
export declare type ButtonProps<TElement extends ElementType = typeof DEFAULT_TAG> = BaseButtonProps & PropsOf<TElement> & {
|
|
57
|
+
as?: TElement;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export declare const CancelButton: ({ type, className, children, ...props }: CancelButtonProps) => JSX.Element;
|
|
61
|
+
|
|
62
|
+
export declare interface CancelButtonProps extends ComponentPropsWithoutRef<'button'> {
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export declare const CobrowseProvider: ({ cobrowse, children }: CobrowseProviderProps) => JSX.Element;
|
|
66
|
+
|
|
67
|
+
export declare interface CobrowseProviderProps {
|
|
68
|
+
cobrowse: default_2;
|
|
17
69
|
children?: ReactNode;
|
|
18
70
|
}
|
|
19
71
|
|
|
@@ -34,7 +86,39 @@ export declare interface CodeEntryProps {
|
|
|
34
86
|
children?: ReactNode;
|
|
35
87
|
}
|
|
36
88
|
|
|
37
|
-
declare const
|
|
89
|
+
export declare const ConnectDevice: ((props: ConnectDeviceProps) => ReactNode) & {
|
|
90
|
+
StatusMessage: (props: ConnectDeviceStatusMessageProps) => ReactNode;
|
|
91
|
+
Loader: (props: ConnectDeviceLoaderProps) => ReactNode;
|
|
92
|
+
CancelButton: (props: CancelButtonProps) => ReactNode;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
declare interface ConnectDeviceLoaderProps {
|
|
96
|
+
attempt: number;
|
|
97
|
+
maxPushAttempts?: number;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export declare interface ConnectDeviceProps {
|
|
101
|
+
deviceId: string;
|
|
102
|
+
onConnectAttempt?: (attempt: number) => void;
|
|
103
|
+
onConnected?: (session: Session_2) => void;
|
|
104
|
+
onCancelled?: (session: Session_2) => void;
|
|
105
|
+
onEnded?: (session: Session_2) => void;
|
|
106
|
+
onError?: (error: unknown) => void;
|
|
107
|
+
maxPushAttempts?: number;
|
|
108
|
+
pushRetryMs?: number;
|
|
109
|
+
className?: string;
|
|
110
|
+
children: (attempt: number, cancel: () => void) => ReactNode;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
declare interface ConnectDeviceStatusMessageProps {
|
|
114
|
+
attempt: number;
|
|
115
|
+
maxPushAttempts?: number;
|
|
116
|
+
className?: string;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
declare const DEFAULT_TAG: "button";
|
|
120
|
+
|
|
121
|
+
declare const DEFAULT_TAG_2: "div";
|
|
38
122
|
|
|
39
123
|
export declare const Device: <T extends DeviceData = DeviceData>({ style, className, device, children }: DeviceProps<T>) => JSX.Element;
|
|
40
124
|
|
|
@@ -58,15 +142,11 @@ export declare interface ExternalLinkProps {
|
|
|
58
142
|
children?: ReactNode;
|
|
59
143
|
}
|
|
60
144
|
|
|
61
|
-
export declare const Frame: ({
|
|
145
|
+
export declare const Frame: ({ src, onError, title, width, height, style, children, ...props }: FrameProps) => JSX.Element;
|
|
62
146
|
|
|
63
147
|
export declare interface FrameProps extends IframeProps {
|
|
64
|
-
cobrowse: default_2;
|
|
65
148
|
src: string;
|
|
66
|
-
|
|
67
|
-
onSessionUpdated?: (session: Session_2) => void;
|
|
68
|
-
onSessionActivated?: (session: Session_2) => void;
|
|
69
|
-
onSessionEnded?: (session: Session_2) => void;
|
|
149
|
+
children?: ReactNode;
|
|
70
150
|
onError?: (error: unknown) => void;
|
|
71
151
|
}
|
|
72
152
|
|
|
@@ -80,27 +160,58 @@ export declare interface LoaderProps {
|
|
|
80
160
|
children?: ReactNode;
|
|
81
161
|
}
|
|
82
162
|
|
|
83
|
-
export declare const PlatformIcon: ({
|
|
163
|
+
export declare const PlatformIcon: ({ device, className, ...props }: PlatformIconProps) => JSX.Element;
|
|
84
164
|
|
|
85
165
|
declare interface PlatformIconProps extends SVGProps<SVGSVGElement> {
|
|
86
|
-
|
|
166
|
+
device: DeviceInfo;
|
|
87
167
|
className?: string;
|
|
88
168
|
}
|
|
89
169
|
|
|
90
170
|
declare type PropsOf<T extends ElementType> = ComponentPropsWithoutRef<T>;
|
|
91
171
|
|
|
172
|
+
declare type PropsOf_2<T extends ElementType> = ComponentPropsWithoutRef<T>;
|
|
173
|
+
|
|
92
174
|
export declare const RefreshButton: ({ className, children, ...props }: RefreshButtonProps) => JSX.Element;
|
|
93
175
|
|
|
94
176
|
export declare interface RefreshButtonProps extends ComponentPropsWithoutRef<'button'> {
|
|
95
177
|
}
|
|
96
178
|
|
|
97
|
-
export declare const Session: <TSession extends SessionData = SessionData, TElement extends ElementType = "div">({ as, session, onClick, className, children, ...props }: SessionProps<TSession, TElement>) => JSX.Element;
|
|
179
|
+
export declare const Session: <TSession extends SessionData = SessionData, TElement extends ElementType = "div">({ as, session, onClick, className, joinSessionButtonClassName, children, ...props }: SessionProps<TSession, TElement>) => JSX.Element;
|
|
98
180
|
|
|
99
|
-
export declare type SessionData = Pick<Session_2, 'id' | 'state' | 'recorded' | 'activated' | 'ended'> & {
|
|
181
|
+
export declare type SessionData = Pick<Session_2, 'id' | 'state' | 'recorded' | 'activated' | 'ended' | 'getRecording' | 'recording'> & {
|
|
100
182
|
device: DeviceInfo;
|
|
101
183
|
};
|
|
102
184
|
|
|
103
|
-
export declare
|
|
185
|
+
export declare const SessionEmbed: (({ id, endAction, popout, agentTools, deviceControls, sessionDetails, messages, onError, onLoaded, onUpdated, onActivated, onEnded, className, children, ...props }: SessionEmbedProps) => JSX.Element) & {
|
|
186
|
+
Overlay: ({ state, children }: SessionEmbedOverlayProps) => JSX.Element | null;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
declare type SessionEmbedFrameProps = Omit<FrameProps, 'src' | 'onLoad' | 'onEnded' | 'onError'>;
|
|
190
|
+
|
|
191
|
+
declare interface SessionEmbedOverlayProps {
|
|
192
|
+
state: SessionEmbedOverlayState;
|
|
193
|
+
children: ReactNode;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
declare type SessionEmbedOverlayState = 'loading' | Session_2['state'];
|
|
197
|
+
|
|
198
|
+
export declare interface SessionEmbedProps extends SessionEmbedFrameProps {
|
|
199
|
+
id: string;
|
|
200
|
+
endAction?: 'dashboard' | 'none' | 'code';
|
|
201
|
+
popout?: 'none';
|
|
202
|
+
agentTools?: 'none';
|
|
203
|
+
deviceControls?: 'none';
|
|
204
|
+
sessionDetails?: 'none';
|
|
205
|
+
messages?: 'none';
|
|
206
|
+
onLoaded?: (session: Session_2) => void;
|
|
207
|
+
onUpdated?: (session: Session_2) => void;
|
|
208
|
+
onActivated?: (session: Session_2) => void;
|
|
209
|
+
onEnded?: (session: Session_2) => void;
|
|
210
|
+
onError?: FrameProps['onError'];
|
|
211
|
+
children?: ReactNode;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export declare type SessionProps<TSession extends SessionData = SessionData, TElement extends ElementType = typeof DEFAULT_TAG_2> = BaseSessionProps<TSession> & Omit<PropsOf_2<TElement>, 'onClick'> & {
|
|
104
215
|
as?: TElement;
|
|
105
216
|
onClick?: (session: TSession) => void;
|
|
106
217
|
};
|
|
@@ -113,6 +224,12 @@ export declare interface SmartConnectButtonProps<T extends DeviceData = DeviceDa
|
|
|
113
224
|
children?: ReactNode;
|
|
114
225
|
}
|
|
115
226
|
|
|
227
|
+
export declare const useCobrowse: () => default_2;
|
|
228
|
+
|
|
229
|
+
export declare const useRemoteContext: typeof useRemoteContext_2;
|
|
230
|
+
|
|
231
|
+
declare function useRemoteContext_2(target?: HTMLIFrameElement | null): RemoteContext | null;
|
|
232
|
+
|
|
116
233
|
export declare const UserIcon: ({ user, className }: UserIconProps) => JSX.Element | null;
|
|
117
234
|
|
|
118
235
|
declare interface UserIconProps {
|
|
@@ -126,4 +243,6 @@ declare interface UserIconUser {
|
|
|
126
243
|
colour?: string;
|
|
127
244
|
}
|
|
128
245
|
|
|
246
|
+
export declare const useSession: (source: RemoteContext | Session_2 | null) => Session_2 | null;
|
|
247
|
+
|
|
129
248
|
export { }
|