@1interface/shared-core 0.4.0 → 0.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/dist/index.d.ts +136 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -52,6 +52,11 @@ export declare interface AppResponse<T> {
|
|
|
52
52
|
message?: string;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
export declare interface AppSettingConfig {
|
|
56
|
+
web?: PlatformScreens;
|
|
57
|
+
mobile?: PlatformScreens;
|
|
58
|
+
}
|
|
59
|
+
|
|
55
60
|
export declare const AUTH_HEADERS: {
|
|
56
61
|
readonly ACCESS_TOKEN: "x-access-token";
|
|
57
62
|
readonly REFRESH_TOKEN: "x-refresh-token";
|
|
@@ -117,6 +122,8 @@ export declare interface BrandingTheme {
|
|
|
117
122
|
surface?: SurfaceColors;
|
|
118
123
|
text?: TextColors;
|
|
119
124
|
status?: StatusColors;
|
|
125
|
+
orbVideo?: OrbVideoConfig;
|
|
126
|
+
appSetting?: AppSettingConfig;
|
|
120
127
|
}
|
|
121
128
|
|
|
122
129
|
export declare interface BrandingThemes {
|
|
@@ -126,10 +133,23 @@ export declare interface BrandingThemes {
|
|
|
126
133
|
|
|
127
134
|
export declare function brandingToThemeStyles(branding: BrandingConfig | null, theme: BrandingTheme | null, resolvedTheme?: ResolvedTheme): ChatThemeStyles;
|
|
128
135
|
|
|
136
|
+
export declare interface BrandLogo {
|
|
137
|
+
url?: string;
|
|
138
|
+
width?: number;
|
|
139
|
+
height?: number;
|
|
140
|
+
alignment?: LogoAlignment;
|
|
141
|
+
}
|
|
142
|
+
|
|
129
143
|
export declare const BRIDGE_TOAST_EVENT_NAME = "bridge-toast";
|
|
130
144
|
|
|
131
145
|
export declare type BridgeToastDetail = ToastOptions;
|
|
132
146
|
|
|
147
|
+
export declare function buildFontFaceCss(t: ResolvedTypography): string;
|
|
148
|
+
|
|
149
|
+
export declare function buildFontStack(t: ResolvedTypography, role: FontRole, scripts: Script[]): string;
|
|
150
|
+
|
|
151
|
+
export declare function buildFullFontStack(t: ResolvedTypography, role: FontRole): string;
|
|
152
|
+
|
|
133
153
|
declare type CallbackFn = (payload?: unknown) => void;
|
|
134
154
|
|
|
135
155
|
export declare const capitalizeFirst: (text: string) => string;
|
|
@@ -193,6 +213,7 @@ export declare interface ChatThemeStyles {
|
|
|
193
213
|
sideMenuText: string;
|
|
194
214
|
sideMenuIcon: string;
|
|
195
215
|
sideMenuProfile: string;
|
|
216
|
+
screenMaskingColor: string;
|
|
196
217
|
statusPrimary: StatusThemeVariant;
|
|
197
218
|
statusSecondary: StatusThemeVariant;
|
|
198
219
|
statusSuccess: StatusThemeVariant;
|
|
@@ -203,8 +224,10 @@ export declare interface ChatThemeStyles {
|
|
|
203
224
|
switchCheckedColor: string;
|
|
204
225
|
switchUncheckedColor: string;
|
|
205
226
|
fontFamily: string;
|
|
227
|
+
fontFamilyHeading: string;
|
|
206
228
|
fontFamilyMono: string;
|
|
207
229
|
fontSize: number;
|
|
230
|
+
typography: ResolvedTypography;
|
|
208
231
|
borderRadius: number;
|
|
209
232
|
cornerRadiusMode: CornerRadiusMode;
|
|
210
233
|
chatInputPlaceholder: string;
|
|
@@ -216,6 +239,8 @@ export declare function clearPreviousTenant(storage: SyncKeyValueStorage): void;
|
|
|
216
239
|
|
|
217
240
|
export declare const clearSession: ActionCreatorWithoutPayload<"auth/clearSession">;
|
|
218
241
|
|
|
242
|
+
declare type CodepointRange = readonly [number, number];
|
|
243
|
+
|
|
219
244
|
export declare const CORNER_RADIUS_MODES: {
|
|
220
245
|
readonly PILL: "pill";
|
|
221
246
|
readonly ROUNDED: "rounded";
|
|
@@ -236,6 +261,8 @@ export declare const defaultLightThemeStyles: ChatThemeStyles;
|
|
|
236
261
|
|
|
237
262
|
export declare function detectOrgSwitch(activeOrgId: string, storage: SyncKeyValueStorage): OrgSwitchReason;
|
|
238
263
|
|
|
264
|
+
export declare function detectScripts(text: string | null | undefined): Script[];
|
|
265
|
+
|
|
239
266
|
export declare function detectTextDirection(text: string | null | undefined, fallback?: TextDirection): DirectionResult;
|
|
240
267
|
|
|
241
268
|
export declare const DEVICE_TOKEN_HEADER = "x-device-token";
|
|
@@ -278,6 +305,34 @@ export declare const FEATURE_FLAGS: {
|
|
|
278
305
|
|
|
279
306
|
export declare type FeatureFlag = (typeof FEATURE_FLAGS)[keyof typeof FEATURE_FLAGS];
|
|
280
307
|
|
|
308
|
+
export declare const FONT_ROLES: {
|
|
309
|
+
readonly DEFAULT: "default";
|
|
310
|
+
readonly HEADING: "heading";
|
|
311
|
+
readonly MONO: "mono";
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
export declare const FONT_WEIGHT_SLOTS: {
|
|
315
|
+
readonly REGULAR: "regular";
|
|
316
|
+
readonly MEDIUM: "medium";
|
|
317
|
+
readonly SEMIBOLD: "semibold";
|
|
318
|
+
readonly BOLD: "bold";
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
export declare type FontFamilySource = {
|
|
322
|
+
variable?: string;
|
|
323
|
+
} & Partial<Record<FontWeightSlot, string>>;
|
|
324
|
+
|
|
325
|
+
declare interface FontLogger {
|
|
326
|
+
warn: (input: {
|
|
327
|
+
message: string;
|
|
328
|
+
[key: string]: unknown;
|
|
329
|
+
}) => void;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
export declare type FontRole = (typeof FONT_ROLES)[keyof typeof FONT_ROLES];
|
|
333
|
+
|
|
334
|
+
export declare type FontWeightSlot = (typeof FONT_WEIGHT_SLOTS)[keyof typeof FONT_WEIGHT_SLOTS];
|
|
335
|
+
|
|
281
336
|
export declare interface ForgotPasswordRequest {
|
|
282
337
|
email: string;
|
|
283
338
|
}
|
|
@@ -296,6 +351,8 @@ export declare const formatTimestamp: (timestamp: string, now?: Date) => string;
|
|
|
296
351
|
|
|
297
352
|
export declare const generateUniqueId: () => string;
|
|
298
353
|
|
|
354
|
+
export declare const GENERIC_STACKS: Record<FontRole, string>;
|
|
355
|
+
|
|
299
356
|
export declare const getApiUrl: (path: string) => string;
|
|
300
357
|
|
|
301
358
|
export declare const getAppearanceModeStorageKey: (userId?: string | null) => string;
|
|
@@ -399,6 +456,8 @@ export declare const isTokenExpired: (expiresAt: number | null) => boolean;
|
|
|
399
456
|
|
|
400
457
|
export declare const joinOrgMountBase: (host: string, orgId?: string | null) => string;
|
|
401
458
|
|
|
459
|
+
export declare const LANG_DEFAULT_SCRIPT: Record<string, Script>;
|
|
460
|
+
|
|
402
461
|
export declare const LOG_LEVELS: {
|
|
403
462
|
readonly DEBUG: "DEBUG";
|
|
404
463
|
readonly INFO: "INFO";
|
|
@@ -434,6 +493,20 @@ export declare type LogInput = LogAttrs & {
|
|
|
434
493
|
|
|
435
494
|
export declare type LogLevel = (typeof LOG_LEVELS)[keyof typeof LOG_LEVELS];
|
|
436
495
|
|
|
496
|
+
export declare const LOGO_ALIGNMENTS: {
|
|
497
|
+
readonly TOP_LEADING: "topLeading";
|
|
498
|
+
readonly TOP: "top";
|
|
499
|
+
readonly TOP_TRAILING: "topTrailing";
|
|
500
|
+
readonly LEADING: "leading";
|
|
501
|
+
readonly CENTER: "center";
|
|
502
|
+
readonly TRAILING: "trailing";
|
|
503
|
+
readonly BOTTOM_LEADING: "bottomLeading";
|
|
504
|
+
readonly BOTTOM: "bottom";
|
|
505
|
+
readonly BOTTOM_TRAILING: "bottomTrailing";
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
export declare type LogoAlignment = (typeof LOGO_ALIGNMENTS)[keyof typeof LOGO_ALIGNMENTS];
|
|
509
|
+
|
|
437
510
|
export declare const logout: ActionCreatorWithoutPayload<"auth/clearSession">;
|
|
438
511
|
|
|
439
512
|
export declare interface LogoutRequest {
|
|
@@ -516,6 +589,8 @@ export declare interface NetworkState {
|
|
|
516
589
|
isInternetReachable: boolean | null;
|
|
517
590
|
}
|
|
518
591
|
|
|
592
|
+
export declare function normalizeTypography(cfg: TypographyConfig | undefined, fallback: TypographyRoles): ResolvedTypography;
|
|
593
|
+
|
|
519
594
|
export declare const ORB_POSITIONS: {
|
|
520
595
|
readonly FOREGROUND: "foreground";
|
|
521
596
|
readonly BACKGROUND: "background";
|
|
@@ -523,6 +598,16 @@ export declare const ORB_POSITIONS: {
|
|
|
523
598
|
|
|
524
599
|
export declare type OrbPosition = (typeof ORB_POSITIONS)[keyof typeof ORB_POSITIONS];
|
|
525
600
|
|
|
601
|
+
export declare interface OrbVideoConfig {
|
|
602
|
+
background?: string;
|
|
603
|
+
video?: {
|
|
604
|
+
url?: string;
|
|
605
|
+
width?: number;
|
|
606
|
+
height?: number;
|
|
607
|
+
posterUrl?: string;
|
|
608
|
+
};
|
|
609
|
+
}
|
|
610
|
+
|
|
526
611
|
export declare const ORG_MOUNT_SUFFIX = "chat";
|
|
527
612
|
|
|
528
613
|
export declare interface Organization {
|
|
@@ -551,12 +636,20 @@ export declare type PaymentInitPayload = StripePaymentInit | MoyasarPaymentInit
|
|
|
551
636
|
|
|
552
637
|
export declare type PaymentProviderType = "stripe" | "moyasar" | "chargebee";
|
|
553
638
|
|
|
639
|
+
export declare interface PlatformScreens {
|
|
640
|
+
splash?: ScreenConfig;
|
|
641
|
+
landing?: ScreenConfig;
|
|
642
|
+
login?: ScreenConfig;
|
|
643
|
+
}
|
|
644
|
+
|
|
554
645
|
export declare const PROFILE_LIMITS: {
|
|
555
646
|
readonly NAME_MAX_LENGTH: 64;
|
|
556
647
|
readonly PHONE_MIN_LENGTH: 8;
|
|
557
648
|
readonly PHONE_MAX_LENGTH: 16;
|
|
558
649
|
};
|
|
559
650
|
|
|
651
|
+
export declare function quoteFamily(name: string): string;
|
|
652
|
+
|
|
560
653
|
export declare const readAccessToken: () => string | null;
|
|
561
654
|
|
|
562
655
|
export declare const readDeviceToken: () => string | null;
|
|
@@ -593,8 +686,42 @@ export declare function resolveDirectionFromLang(tag?: string): TextDirection |
|
|
|
593
686
|
|
|
594
687
|
export declare type ResolvedTheme = Exclude<AppearanceMode, typeof APPEARANCE_MODES.SYSTEM>;
|
|
595
688
|
|
|
689
|
+
export declare interface ResolvedTypography {
|
|
690
|
+
locales: Record<string, TypographyRoles>;
|
|
691
|
+
families: Record<string, FontFamilySource>;
|
|
692
|
+
scriptIndex: Record<Script, string[]>;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
export declare function resolveFontFamily(t: ResolvedTypography, role: FontRole, ctx?: {
|
|
696
|
+
language?: string | null;
|
|
697
|
+
script?: Script;
|
|
698
|
+
}): string;
|
|
699
|
+
|
|
596
700
|
export declare const sanitizeExpiryDate: (value: string) => string;
|
|
597
701
|
|
|
702
|
+
export declare interface ScreenConfig {
|
|
703
|
+
background?: string;
|
|
704
|
+
logo?: BrandLogo;
|
|
705
|
+
image?: BrandLogo;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
export declare type Script = (typeof SCRIPTS)[keyof typeof SCRIPTS];
|
|
709
|
+
|
|
710
|
+
export declare const SCRIPT_RANGES: Record<Script, readonly CodepointRange[]>;
|
|
711
|
+
|
|
712
|
+
export declare const SCRIPTS: {
|
|
713
|
+
readonly LATIN: "Latn";
|
|
714
|
+
readonly ARABIC: "Arab";
|
|
715
|
+
readonly HEBREW: "Hebr";
|
|
716
|
+
readonly CYRILLIC: "Cyrl";
|
|
717
|
+
readonly GREEK: "Grek";
|
|
718
|
+
readonly DEVANAGARI: "Deva";
|
|
719
|
+
readonly THAI: "Thai";
|
|
720
|
+
readonly HAN: "Hani";
|
|
721
|
+
readonly HIRAGANA_KATAKANA: "Kana";
|
|
722
|
+
readonly HANGUL: "Kore";
|
|
723
|
+
};
|
|
724
|
+
|
|
598
725
|
export declare interface SessionCreateRequest {
|
|
599
726
|
email: string;
|
|
600
727
|
password: string;
|
|
@@ -804,6 +931,7 @@ export declare interface SurfaceColors {
|
|
|
804
931
|
userMessage?: UserMessageColors;
|
|
805
932
|
sideMenu?: SideMenuColors;
|
|
806
933
|
settings?: SettingsColors;
|
|
934
|
+
screenMasking?: string;
|
|
807
935
|
}
|
|
808
936
|
|
|
809
937
|
export declare interface SyncKeyValueStorage {
|
|
@@ -867,10 +995,14 @@ export declare type TransientClassifier = (err: unknown) => boolean;
|
|
|
867
995
|
export declare const truncateWordLimit: (text: string, wordLimit: number) => string;
|
|
868
996
|
|
|
869
997
|
export declare interface TypographyConfig {
|
|
998
|
+
locales?: Record<string, TypographyRoles>;
|
|
999
|
+
families?: Record<string, FontFamilySource>;
|
|
870
1000
|
fontFamily?: string;
|
|
871
1001
|
fontFamilyMono?: string;
|
|
872
1002
|
}
|
|
873
1003
|
|
|
1004
|
+
export declare type TypographyRoles = Partial<Record<FontRole, string>>;
|
|
1005
|
+
|
|
874
1006
|
export declare const updateUser: ActionCreatorWithNonInferrablePayload<"auth/updateUser">;
|
|
875
1007
|
|
|
876
1008
|
export declare function useBranding(): BrandingContextValue;
|
|
@@ -879,6 +1011,8 @@ export declare function useMessageDirection(msgId: string, text: string | null |
|
|
|
879
1011
|
|
|
880
1012
|
export declare function useMessageDirections(messages: Message[]): TextDirection[];
|
|
881
1013
|
|
|
1014
|
+
export declare function useMessageFontStack(text: string, language?: string | null): string;
|
|
1015
|
+
|
|
882
1016
|
export declare const useNetworkState: () => NetworkState;
|
|
883
1017
|
|
|
884
1018
|
export declare const USER_TYPES: {
|
|
@@ -913,6 +1047,8 @@ export declare const useStorage: () => Storage_2;
|
|
|
913
1047
|
|
|
914
1048
|
export declare const validateExpiryDate: (value: string) => boolean;
|
|
915
1049
|
|
|
1050
|
+
export declare function warnUnknownFamilies(t: ResolvedTypography, logger: FontLogger): void;
|
|
1051
|
+
|
|
916
1052
|
export declare interface WidgetSurfaceColors {
|
|
917
1053
|
background?: string;
|
|
918
1054
|
border?: {
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./textDirection-Dmwjhp8G.cjs"),t=require("@reduxjs/toolkit"),r=require("react"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,i=o.getMonth()+1;return!(s<n||s===n&&r<i||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let i=null,a=null;const u=[];function c(e){if(i=e,u.length>0){const t=u.splice(0,u.length);for(const r of t)e.emit(r)}}function l(e){a=e}function d(e,t){const r=a?function(e){try{return e()??{}}catch{return{}}}(a):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};i?i.emit(n):(u.length>=200&&u.shift(),u.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>i?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const m={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function T(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function F(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=T(s));return t}let S=!1,x=null,f=!0;function h(e){f=e}function _(e){S||(S=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),c(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new n.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:m[t],severityText:t,body:JSON.stringify(e),attributes:F(o),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){f&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&x?.())}const O=Object.freeze(Object.defineProperty({__proto__:null,initLogger:_,registerPlatformFlushAttacher:function(e){x=e},resetInitLoggerStateForTests:function(){S=!1,x=null,f=!0},setNetworkLoggingEnabled:h},Symbol.toStringTag,{value:"Module"}));let A,I="",y={},R=null,N=()=>null,C=()=>null,D=()=>null,M=!1;const v=()=>R,B=()=>D(),k=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${I}/api${t}`},b="chat",w={CONVERSATIONS:()=>k("/conversations"),CONVERSATION_STREAM:e=>k(`/conversations/${e}`),CONVERSATION_START:e=>k(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>k(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>k(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>k(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return k("/transcribe")},get BRANDING(){return k("/branding")},get CONFIG(){return k("/config")},get PROFILE(){return k("/profile")},get AUTH_ME(){return k("/auth/me")},get CHANGE_PASSWORD(){return k("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return k("/organizations/exists")},get DEBUG(){return k("/debug")},get TOOL_SERVERS(){return k("/tool-servers")},TOOL_SERVER_AUTH_START:e=>k(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>k(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return k("/tool-servers/auth/exchange")},get LOG(){return k("/log")}},P={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},L={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},U={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let G=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function V(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const j=W,X={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},z=e=>!!e&&Date.now()>=e-P.TOKEN_CLOCK_SKEW_MS,Y=e=>!e||Date.now()>=e-P.TOKEN_REFRESH_THRESHOLD_MS;function J(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function q(e){const t=J(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}class Z{static instance;events={};constructor(){}static getInstance(){return Z.instance||(Z.instance=new Z),Z.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const Q=Z.getInstance(),ee={LIGHT:"light",DARK:"dark",SYSTEM:"system"},te=[ee.LIGHT,ee.DARK,ee.SYSTEM],re={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},se={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:re.PILL,chatInputPlaceholder:"Type anything..."},oe={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:re.PILL,chatInputPlaceholder:"Type anything..."};function ne(e){return e===ee.LIGHT?oe:se}const ie=se;function ae(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ue(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function ce(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function le(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function de(e){switch(e){case"pill":return re.PILL;case"none":return re.SHARP;default:return 0===parseInt(e??"",10)?re.SHARP:re.ROUNDED}}const pe=r.createContext(void 0),ge=r.createContext(null);let Ee=null;const me=()=>Ee,Te=r.createContext(null),Fe={isConnected:!0,isInternetReachable:!0},Se=t.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+P.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:xe,updateUser:fe,clearSession:he,sessionExpired:_e,setSelectedOrgId:Oe}=Se.actions,Ae=xe,Ie=he,ye=t.createListenerMiddleware();ye.startListening({matcher:t.isAnyOf(xe,fe,he,_e),effect:async(e,t)=>{const r=me();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(L.ACCESS_TOKEN,s.accessToken):r.removeItem(L.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(L.REFRESH_TOKEN,s.refreshToken):r.removeItem(L.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(L.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(L.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(L.USER,JSON.stringify(s.user)):r.removeItem(L.USER)),(he.match(e)||_e.match(e))&&o.push(r.removeItem(L.LOCATION_CACHE),r.removeItem(L.DEBUG_MODE),r.removeItem(L.APPEARANCE_MODE_KEY),r.removeItem(L.LOCATION_ENABLED),r.removeItem(L.STT_AUTO_SEND),r.removeItem(L.STT_IMPLEMENTATION),r.removeItem(L.SEND_DIAGNOSTICS),r.removeItem(L.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const Re=Se.reducer,Ne={lastResponseTime:null},Ce=t.createSlice({name:"indicator",initialState:Ne,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(t.isAnyOf(he,_e),()=>Ne)}}),{setLastResponseTime:De,clearLastResponseTime:Me}=Ce.actions,ve=Ce.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=w,exports.APPEARANCE_MODES=ee,exports.APPEARANCE_MODE_VALUES=te,exports.AUTH_HEADERS=U,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=j,exports.BrandingContext=pe,exports.CORNER_RADIUS_MODES=re,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=Z,exports.FEATURE_FLAGS={SSO:"sso"},exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LOG_LEVELS=n,exports.NetworkContext=Te,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=b,exports.PASSWORD_LIMITS={MIN_LENGTH:8,MAX_LENGTH:128},exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.STORAGE_KEYS=L,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=ge,exports.TIMING=P,exports.USER_TYPES=X,exports.brandingToThemeStyles=function(e,t,r=ee.DARK){const s=ne(r);if(!e||!t)return s;const o=t.surface?.chatInput?.border||t.surface?.input?.border,n=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?ae(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?ae(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:n?.style||s.userMsgBorderStyle,userMsgBorderColor:n?.color?ae(n.color,n.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:n?.width||s.userMsgBorderWidth,userMsgBorderOpacity:n?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ue(e.typography?.fontFamily,s),fontFamilyMono:ce(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:le(e.cornerRadius,s),cornerRadiusMode:de(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}},exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=Me,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(L.ACCESS_TOKEN),e.removeItem(L.REFRESH_TOKEN),e.removeItem(L.TOKEN_EXPIRES_AT),e.removeItem(L.USER)}catch{}}(e),function(e){try{e.removeItem(L.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=he,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=ie,exports.defaultDarkThemeStyles=se,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=oe,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(L.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=q(t.getItem(L.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.ensureFreshToken=async()=>Y(B())?await(v()?.())??null:null,exports.eventEmitter=Q,exports.extractTokens=function(e){const t=e.headers.get(U.ACCESS_TOKEN),r=e.headers.get(U.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${U.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${U.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),i=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=k,exports.getAppearanceModeStorageKey=e=>e?`${L.APPEARANCE_MODE_KEY}:${e}`:L.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>I,exports.getCustomHeaders=()=>y,exports.getDefaultThemeStyles=ne,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>A,exports.getSendDiagnostics=()=>G,exports.getStorageRef=me,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-P.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=v,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(i*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(L.SEND_DIAGNOSTICS);G=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(L.ACCESS_TOKEN),e.getItem(L.REFRESH_TOKEN),e.getItem(L.TOKEN_EXPIRES_AT),e.getItem(L.USER)]),i=o?parseInt(o,10):null;if((!r||!i||z(i))&&!s)return void(r&&await Promise.all([e.removeItem(L.ACCESS_TOKEN),e.removeItem(L.REFRESH_TOKEN),e.removeItem(L.TOKEN_EXPIRES_AT),e.removeItem(L.USER)]));let a=null;if(n)try{a=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(xe({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},exports.indicatorReducer=ve,exports.initLogger=_,exports.initializeChatConfig=e=>{I=e.baseUrl,y=e.customHeaders||{},A=e.paymentProvider},exports.isDevMode=()=>M,exports.isGuest=function(e){return e?.type===X.GUEST_USER},exports.isTokenAboutToExpire=Y,exports.isTokenExpired=z,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${b}`:`${e}/${b}`,exports.logger=p,exports.logout=Ie,exports.parseJwtPayload=J,exports.parseOrgFromJwt=q,exports.readAccessToken=()=>N(),exports.readDeviceToken=()=>C(),exports.readTokenExpiresAt=B,exports.registerEventListener=function(e,t){return Q.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=c,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){i=null,a=null,u.length=0,(await Promise.resolve().then(()=>O)).resetInitLoggerStateForTests()},exports.sanitizeExpiryDate=o,exports.sessionExpired=_e,exports.sessionListenerMiddleware=ye,exports.sessionReducer=Re,exports.setAccessTokenReader=e=>{N=e},exports.setCredentials=Ae,exports.setDeviceTokenReader=e=>{C=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=De,exports.setModuleStorage=function(e){Ee=e},exports.setNetworkLoggingEnabled=h,exports.setSelectedOrgId=Oe,exports.setSession=xe,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{R=e},exports.showErrorToast=(e="Please try again")=>V({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>V({title:"Success",description:e,variant:"default"}),exports.showToast=e=>V(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=fe,exports.useBranding=function(){const e=r.useContext(pe);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e},exports.useNetworkState=()=>{const e=r.useContext(Te),t=r.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=r.useCallback(()=>e?e.getState():Fe,[e]);return r.useSyncExternalStore(t,s,s)},exports.useStorage=()=>{const e=r.useContext(ge);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.writeOrgToStorage=function(e,t){try{t.setItem(L.SELECTED_ORG_ID,e),t.setItem(L.SELECTED_ORG_NAME,e)}catch{}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./textDirection-Dmwjhp8G.cjs"),t=require("react"),r=require("@reduxjs/toolkit"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,a=o.getMonth()+1;return!(s<n||s===n&&r<a||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let a=null,i=null;const c=[];function u(e){if(a=e,c.length>0){const t=c.splice(0,c.length);for(const r of t)e.emit(r)}}function l(e){i=e}function d(e,t){const r=i?function(e){try{return e()??{}}catch{return{}}}(i):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};a?a.emit(n):(c.length>=200&&c.shift(),c.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>a?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const f={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function m(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function T(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=m(s));return t}let S=!1,h=null,F=!0;function x(e){F=e}function A(e){S||(S=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),u(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,a]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),i=a.resourceFromAttributes(e.resourceAttrs),c=new n.OTLPLogExporter({url:e.endpoint}),u=new s.LoggerProvider({resource:i,processors:[new s.BatchLogRecordProcessor(c)]});t.logs.setGlobalLoggerProvider(u);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:f[t],severityText:t,body:JSON.stringify(e),attributes:T(o),timestamp:new Date(s)})},async flush(){await u.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let a=null;function i(){return null!==a&&(clearTimeout(a),a=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?i():null===a&&(a=setTimeout(()=>{a=null,i()},r))},async flush(){await i()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){F&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&h?.())}const I=Object.freeze(Object.defineProperty({__proto__:null,initLogger:A,registerPlatformFlushAttacher:function(e){h=e},resetInitLoggerStateForTests:function(){S=!1,h=null,F=!0},setNetworkLoggingEnabled:x},Symbol.toStringTag,{value:"Module"}));let y,O="",R={},_=null,N=()=>null,C=()=>null,D=()=>null,M=!1;const L=()=>_,v=()=>D(),w=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${O}/api${t}`},B="chat",b={CONVERSATIONS:()=>w("/conversations"),CONVERSATION_STREAM:e=>w(`/conversations/${e}`),CONVERSATION_START:e=>w(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>w(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>w(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>w(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return w("/transcribe")},get BRANDING(){return w("/branding")},get CONFIG(){return w("/config")},get PROFILE(){return w("/profile")},get AUTH_ME(){return w("/auth/me")},get CHANGE_PASSWORD(){return w("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return w("/organizations/exists")},get DEBUG(){return w("/debug")},get TOOL_SERVERS(){return w("/tool-servers")},TOOL_SERVER_AUTH_START:e=>w(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>w(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return w("/tool-servers/auth/exchange")},get LOG(){return w("/log")}},k={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},P={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},G={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let U=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function j(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const V=W,Y={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},z=e=>!!e&&Date.now()>=e-k.TOKEN_CLOCK_SKEW_MS,X=e=>!e||Date.now()>=e-k.TOKEN_REFRESH_THRESHOLD_MS;function J(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function q(e){const t=J(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}const Z={LATIN:"Latn",ARABIC:"Arab",HEBREW:"Hebr",CYRILLIC:"Cyrl",GREEK:"Grek",DEVANAGARI:"Deva",THAI:"Thai",HAN:"Hani",HIRAGANA_KATAKANA:"Kana",HANGUL:"Kore"},Q={Latn:[[65,90],[97,122],[170,170],[186,186],[192,214],[216,246],[248,591],[592,687],[7680,7935],[11360,11391],[42786,42887],[42891,42957],[42960,42961],[42963,42963],[42965,42972],[42994,43007],[43824,43866],[43868,43876],[43878,43881],[64256,64262],[65313,65338],[65345,65370]],Arab:[[1568,1599],[1601,1610],[1646,1647],[1649,1747],[1749,1749],[1765,1766],[1774,1775],[1786,1788],[1791,1791],[1872,1919],[2208,2249],[2160,2183],[2185,2190],[64336,64433],[64467,64829],[64848,64911],[64914,64967],[65008,65019],[65136,65140],[65142,65276]],Hebr:[[1488,1514],[1519,1522],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64335]],Cyrl:[[1024,1153],[1162,1327],[7296,7306],[42560,42606],[42623,42653]],Grek:[[880,883],[886,887],[890,893],[895,895],[902,902],[904,906],[908,908],[910,929],[931,993],[1008,1013],[1015,1023],[7936,7957],[7960,7965],[7968,8005],[8008,8013],[8016,8023],[8025,8025],[8027,8027],[8029,8029],[8031,8061],[8064,8116],[8118,8124],[8126,8126],[8130,8132],[8134,8140],[8144,8147],[8150,8155],[8160,8172],[8178,8180],[8182,8188]],Deva:[[2308,2361],[2365,2365],[2384,2384],[2392,2401],[2417,2431]],Thai:[[3585,3632],[3634,3635],[3648,3654]],Hani:[[12293,12293],[13312,19903],[19968,40959],[63744,64109],[64112,64217],[131072,173791],[173824,177977],[177984,178205],[178208,183969],[183984,191456]],Kana:[[12353,12438],[12445,12447],[12449,12538],[12541,12543],[12784,12799],[65382,65391],[65393,65437]],Kore:[[4352,4607],[12593,12686],[43360,43388],[44032,55203],[55216,55238],[55243,55291]]},ee=[Z.LATIN,Z.ARABIC,Z.HEBREW,Z.CYRILLIC,Z.GREEK,Z.DEVANAGARI,Z.THAI,Z.HAN,Z.HIRAGANA_KATAKANA,Z.HANGUL],te=/```[\s\S]*?```|`[^`]*`|(?:https?:\/\/|www\.)\S+|\S+@[\w.-]+\.\w+|[@#][\w-]+/g;function re(e){for(const t of ee)for(const[r,s]of Q[t])if(e>=r&&e<=s)return t;return null}function se(e){const t=(e??"").replace(te," "),r=new Set,s=[];for(const e of t){const t=re(e.codePointAt(0)??0);t&&!r.has(t)&&(r.add(t),s.push(t))}return s}const oe={DEFAULT:"default",HEADING:"heading",MONO:"mono"},ne={REGULAR:"regular",MEDIUM:"medium",SEMIBOLD:"semibold",BOLD:"bold"},ae={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ie=[ae.LIGHT,ae.DARK,ae.SYSTEM],ce="default",ue={[oe.DEFAULT]:"system-ui, -apple-system, sans-serif",[oe.HEADING]:"system-ui, -apple-system, sans-serif",[oe.MONO]:"ui-monospace, monospace"},le={ar:Z.ARABIC,fa:Z.ARABIC,ur:Z.ARABIC,he:Z.HEBREW,yi:Z.HEBREW,ru:Z.CYRILLIC,bg:Z.CYRILLIC,sr:Z.CYRILLIC,uk:Z.CYRILLIC,mk:Z.CYRILLIC,be:Z.CYRILLIC,kk:Z.CYRILLIC,el:Z.GREEK,hi:Z.DEVANAGARI,mr:Z.DEVANAGARI,ne:Z.DEVANAGARI,th:Z.THAI,zh:Z.HAN,ja:Z.HIRAGANA_KATAKANA,ko:Z.HANGUL},de=new Set(["serif","sans-serif","monospace","cursive","fantasy","math","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","-apple-system","blinkmacsystemfont"]),pe=new Set(["SF Pro","SF Pro Display","SF Mono","system-ui","System","monospace","sans-serif"]),ge=new Set(Object.values(Z)),Ee=Object.values(Z);function fe(e){const t=e.split(/[-_]/);for(const e of t.slice(1)){if(1===e.length)break;const t=e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();if(ge.has(t))return t}const r=t[0]?.toLowerCase()??"";if(le[r])return le[r];if("undefined"!=typeof Intl&&"Locale"in Intl)try{const t=new Intl.Locale(e).maximize().script;if(t&&ge.has(t))return t}catch{}return Z.LATIN}function me(e,t){const r={...e?.families??{}},s=e?.locales;let o;if(s)o={...s};else{const r=e?.fontFamily,s=e?.fontFamilyMono;o={[ce]:{[oe.DEFAULT]:r??t.default,[oe.HEADING]:r??t.heading??t.default,[oe.MONO]:s??t.mono}}}const n=o[ce]??{};o[ce]={[oe.DEFAULT]:n.default??t.default,[oe.HEADING]:n.heading??t.heading??t.default,[oe.MONO]:n.mono??t.mono??t.default};const a=function(){const e={};for(const t of Ee)e[t]=[];return e}();for(const e of Object.keys(o))e!==ce&&a[fe(e)].push(e);return{locales:o,families:r,scriptIndex:a}}function Te(e){const t=e.trim();return t?de.has(t.toLowerCase())||t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`:t}function Se(e,t){return e?.[t]}function he(e,t,r){const s=[],o=new Set,n=e=>{e&&(o.has(e)||(o.add(e),s.push(e)))};for(const s of r)for(const r of e.scriptIndex[s])n(Se(e.locales[r],t));n(Se(e.locales[ce],t)??e.locales[ce].default);const a=s.map(Te);return a.length?`${a.join(", ")}, ${ue[t]}`:ue[t]}function Fe(e,t){return he(e,t,Object.keys(e.scriptIndex))}const xe={[ne.REGULAR]:400,[ne.MEDIUM]:500,[ne.SEMIBOLD]:600,[ne.BOLD]:700};function Ae(e){const t=function(e){const t=e.split(/[?#]/)[0].toLowerCase();return t.endsWith(".woff2")?"woff2":t.endsWith(".woff")?"woff":t.endsWith(".ttf")?"truetype":t.endsWith(".otf")?"opentype":void 0}(e);return t?`src: url("${e}") format("${t}");`:`src: url("${e}");`}function Ie(e){const t=[];for(const r of Ee)if(e.has(r))for(const[e,s]of Q[r]){const r=`U+${e.toString(16).toUpperCase()}`;t.push(e===s?r:`${r}-${s.toString(16).toUpperCase()}`)}return t.join(", ")}function ye(e,t,r,s){const o=["@font-face {",` font-family: ${Te(e)};`,` ${Ae(r)}`,` font-weight: ${t};`," font-style: normal;"," font-display: swap;"];return s&&o.push(` unicode-range: ${s};`),o.push("}"),o.join("\n")}const Oe=new WeakSet;function Re(e,t){if(Oe.has(e))return;Oe.add(e);const r=new Set;for(const s of Object.values(e.locales))for(const o of Object.values(s))o&&!r.has(o)&&(r.add(o),e.families[o]||pe.has(o)||t.warn({message:`Typography family "${o}" has no families entry and is not a known system font; falling back to the generic stack.`,font_family:o}))}const _e=t.createContext(void 0);function Ne(){const e=t.useContext(_e);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}class Ce{static instance;events={};constructor(){}static getInstance(){return Ce.instance||(Ce.instance=new Ce),Ce.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const De=Ce.getInstance(),Me={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},Le={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:me(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:Me.PILL,chatInputPlaceholder:"Type anything..."},ve={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:me(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:Me.PILL,chatInputPlaceholder:"Type anything..."};function we(e){return e===ae.LIGHT?ve:Le}const Be=Le;function be(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ke(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function Pe(e){switch(e){case"pill":return Me.PILL;case"none":return Me.SHARP;default:return 0===parseInt(e??"",10)?Me.SHARP:Me.ROUNDED}}const Ge=t.createContext(null);let Ue=null;const He=()=>Ue,Ke=t.createContext(null),$e={isConnected:!0,isInternetReachable:!0},We=r.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+k.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:je,updateUser:Ve,clearSession:Ye,sessionExpired:ze,setSelectedOrgId:Xe}=We.actions,Je=je,qe=Ye,Ze=r.createListenerMiddleware();Ze.startListening({matcher:r.isAnyOf(je,Ve,Ye,ze),effect:async(e,t)=>{const r=He();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(P.ACCESS_TOKEN,s.accessToken):r.removeItem(P.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(P.REFRESH_TOKEN,s.refreshToken):r.removeItem(P.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(P.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(P.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(P.USER,JSON.stringify(s.user)):r.removeItem(P.USER)),(Ye.match(e)||ze.match(e))&&o.push(r.removeItem(P.LOCATION_CACHE),r.removeItem(P.DEBUG_MODE),r.removeItem(P.APPEARANCE_MODE_KEY),r.removeItem(P.LOCATION_ENABLED),r.removeItem(P.STT_AUTO_SEND),r.removeItem(P.STT_IMPLEMENTATION),r.removeItem(P.SEND_DIAGNOSTICS),r.removeItem(P.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const Qe=We.reducer,et={lastResponseTime:null},tt=r.createSlice({name:"indicator",initialState:et,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(r.isAnyOf(Ye,ze),()=>et)}}),{setLastResponseTime:rt,clearLastResponseTime:st}=tt.actions,ot=tt.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=b,exports.APPEARANCE_MODES=ae,exports.APPEARANCE_MODE_VALUES=ie,exports.AUTH_HEADERS=G,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=V,exports.BrandingContext=_e,exports.CORNER_RADIUS_MODES=Me,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=Ce,exports.FEATURE_FLAGS={SSO:"sso"},exports.FONT_ROLES=oe,exports.FONT_WEIGHT_SLOTS=ne,exports.GENERIC_STACKS=ue,exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LANG_DEFAULT_SCRIPT=le,exports.LOGO_ALIGNMENTS={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},exports.LOG_LEVELS=n,exports.NetworkContext=Ke,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=B,exports.PASSWORD_LIMITS={MIN_LENGTH:8,MAX_LENGTH:128},exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.SCRIPTS=Z,exports.SCRIPT_RANGES=Q,exports.STORAGE_KEYS=P,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=Ge,exports.TIMING=k,exports.USER_TYPES=Y,exports.brandingToThemeStyles=function(e,t,r=ae.DARK){const s=we(r);if(!e||!t)return s;const o=me(e.typography,{default:s.typography.locales.default.default,heading:s.typography.locales.default.heading,mono:s.typography.locales.default.mono});Re(o,p);const n=t.surface?.chatInput?.border||t.surface?.input?.border,a=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?be(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?be(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:a?.style||s.userMsgBorderStyle,userMsgBorderColor:a?.color?be(a.color,a.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:a?.width||s.userMsgBorderWidth,userMsgBorderOpacity:a?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:Fe(o,oe.DEFAULT),fontFamilyHeading:Fe(o,oe.HEADING),fontFamilyMono:Fe(o,oe.MONO),fontSize:14,typography:o,borderRadius:ke(e.cornerRadius,s),cornerRadiusMode:Pe(e.cornerRadius),chatInputPlaceholder:e.startScreen?.inputPlaceholder??s.chatInputPlaceholder}},exports.buildFontFaceCss=function(e){const t=function(e){const t=new Map;for(const r of Ee)for(const s of e.scriptIndex[r])for(const o of Object.values(oe)){const n=e.locales[s]?.[o];n&&(t.has(n)||t.set(n,new Set),t.get(n).add(r))}return t}(e),r=new Set(Object.values(oe).map(t=>e.locales[ce]?.[t]).filter(e=>Boolean(e))),s=[];for(const[o,n]of Object.entries(e.families)){const e=r.has(o)?void 0:t.get(o),a=e?Ie(e):"";if(n.variable)s.push(ye(o,"100 900",n.variable,a));else for(const e of Object.values(ne)){const t=n[e];t&&s.push(ye(o,String(xe[e]),t,a))}}return s.join("\n\n")},exports.buildFontStack=he,exports.buildFullFontStack=Fe,exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=st,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)}catch{}}(e),function(e){try{e.removeItem(P.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=Ye,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=Be,exports.defaultDarkThemeStyles=Le,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=ve,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(P.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=q(t.getItem(P.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.detectScripts=se,exports.ensureFreshToken=async()=>X(v())?await(L()?.())??null:null,exports.eventEmitter=De,exports.extractTokens=function(e){const t=e.headers.get(G.ACCESS_TOKEN),r=e.headers.get(G.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${G.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${G.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),a=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:a<7?`${a}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=w,exports.getAppearanceModeStorageKey=e=>e?`${P.APPEARANCE_MODE_KEY}:${e}`:P.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>O,exports.getCustomHeaders=()=>R,exports.getDefaultThemeStyles=we,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>y,exports.getSendDiagnostics=()=>U,exports.getStorageRef=He,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-k.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=L,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),a=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(a*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(P.SEND_DIAGNOSTICS);U=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(P.ACCESS_TOKEN),e.getItem(P.REFRESH_TOKEN),e.getItem(P.TOKEN_EXPIRES_AT),e.getItem(P.USER)]),a=o?parseInt(o,10):null;if((!r||!a||z(a))&&!s)return void(r&&await Promise.all([e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)]));let i=null;if(n)try{i=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(je({user:i,accessToken:r,refreshToken:s,expiresIn:null!=a?a/1e3:null}))},exports.indicatorReducer=ot,exports.initLogger=A,exports.initializeChatConfig=e=>{O=e.baseUrl,R=e.customHeaders||{},y=e.paymentProvider},exports.isDevMode=()=>M,exports.isGuest=function(e){return e?.type===Y.GUEST_USER},exports.isTokenAboutToExpire=X,exports.isTokenExpired=z,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${B}`:`${e}/${B}`,exports.logger=p,exports.logout=qe,exports.normalizeTypography=me,exports.parseJwtPayload=J,exports.parseOrgFromJwt=q,exports.quoteFamily=Te,exports.readAccessToken=()=>N(),exports.readDeviceToken=()=>C(),exports.readTokenExpiresAt=v,exports.registerEventListener=function(e,t){return De.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=u,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){a=null,i=null,c.length=0,(await Promise.resolve().then(()=>I)).resetInitLoggerStateForTests()},exports.resolveFontFamily=function(e,t,r={}){const{language:s,script:o}=r;if(s){const r=Se(e.locales[s],t);if(r)return r}const n=o??(s?fe(s):void 0);if(n)for(const r of e.scriptIndex[n]){const s=Se(e.locales[r],t);if(s)return s}return Se(e.locales[ce],t)??e.locales[ce].default??""},exports.sanitizeExpiryDate=o,exports.sessionExpired=ze,exports.sessionListenerMiddleware=Ze,exports.sessionReducer=Qe,exports.setAccessTokenReader=e=>{N=e},exports.setCredentials=Je,exports.setDeviceTokenReader=e=>{C=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=rt,exports.setModuleStorage=function(e){Ue=e},exports.setNetworkLoggingEnabled=x,exports.setSelectedOrgId=Xe,exports.setSession=je,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{_=e},exports.showErrorToast=(e="Please try again")=>j({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>j({title:"Success",description:e,variant:"default"}),exports.showToast=e=>j(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=Ve,exports.useBranding=Ne,exports.useMessageFontStack=function(e,r){const{themeStyles:s}=Ne(),o=s.typography,n=t.useMemo(()=>{if(r){const e=r.split(/[-_]/)[0].toLowerCase(),t=le[e];if(t)return[t]}return se(e)},[e,r]);return t.useMemo(()=>he(o,oe.DEFAULT,n),[o,n])},exports.useNetworkState=()=>{const e=t.useContext(Ke),r=t.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=t.useCallback(()=>e?e.getState():$e,[e]);return t.useSyncExternalStore(r,s,s)},exports.useStorage=()=>{const e=t.useContext(Ge);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.warnUnknownFamilies=Re,exports.writeOrgToStorage=function(e,t){try{t.setItem(P.SELECTED_ORG_ID,e),t.setItem(P.SELECTED_ORG_NAME,e)}catch{}};
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createSlice as i,createListenerMiddleware as a,isAnyOf as u}from"@reduxjs/toolkit";import{createContext as c,useContext as l,useCallback as d,useSyncExternalStore as g}from"react";const E=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},p=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),F=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),i=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},m=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",f=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",h=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",S=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),T=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,i=n.getMonth()+1;return!(s<o||s===o&&r<i||r>12)},_=e=>{if(!e)return"";if(!T(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},y=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return _(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},O=e=>e.replace(/\D/g,"").slice(0,4);function I(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const A=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},R=e=>Array.isArray(e.widget)&&e.widget.length>0;function N(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const C={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let x=null,M=null;const D=[];function B(e){if(x=e,D.length>0){const t=D.splice(0,D.length);for(const r of t)e.emit(r)}}function v(e){M=e}async function b(){x=null,M=null,D.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function w(e,t){const r=M?function(e){try{return e()??{}}catch{return{}}}(M):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};x?x.emit(o):(D.length>=200&&D.shift(),D.push(o))}const k={debug(e){w(C.DEBUG,e)},info(e){w(C.INFO,e)},warn(e){w(C.WARN,e)},error(e){w(C.ERROR,e)},flush:()=>x?.flush?.()},P={[C.DEBUG]:0,[C.INFO]:1,[C.WARN]:2,[C.ERROR]:3};function L(e={}){const t=P[e.minLevel??C.DEBUG];return{emit(e){P[e.level]<t||(e.level===C.ERROR?console.error:e.level===C.WARN?console.warn:e.level===C.DEBUG?console.debug:console.info)(e)}}}const U={[C.DEBUG]:5,[C.INFO]:9,[C.WARN]:13,[C.ERROR]:17};function G(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function H(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=G(s));return t}let K=!1,$=null,W=!0;function V(e){W=e}function j(e){K||(K=!0,v(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),B(function(e){const t=[L({minLevel:e.consoleMinLevel??(e.isDev?C.DEBUG:C.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new o.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:U[t],severityText:t,body:JSON.stringify(e),attributes:H(n),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){W&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&$?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:j,registerPlatformFlushAttacher:function(e){$=e},resetInitLoggerStateForTests:function(){K=!1,$=null,W=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,Y="",J={},Z=null,q=()=>null,Q=()=>null,ee=()=>null,te=!1;const re=e=>{Y=e.baseUrl,J=e.customHeaders||{},z=e.paymentProvider},se=()=>Y,ne=()=>z,oe=()=>J,ie=e=>{Z=e},ae=()=>Z,ue=e=>{q=e},ce=()=>q(),le=e=>{Q=e},de=()=>Q(),ge=e=>{ee=e},Ee=()=>ee(),pe=e=>{te=e},Fe=()=>te,me=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${Y}/api${t}`},fe="chat",he=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${fe}`:`${e}/${fe}`,Se={CONVERSATIONS:()=>me("/conversations"),CONVERSATION_STREAM:e=>me(`/conversations/${e}`),CONVERSATION_START:e=>me(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>me(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>me(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>me(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return me("/transcribe")},get BRANDING(){return me("/branding")},get CONFIG(){return me("/config")},get PROFILE(){return me("/profile")},get AUTH_ME(){return me("/auth/me")},get CHANGE_PASSWORD(){return me("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return me("/organizations/exists")},get DEBUG(){return me("/debug")},get TOOL_SERVERS(){return me("/tool-servers")},TOOL_SERVER_AUTH_START:e=>me(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>me(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return me("/tool-servers/auth/exchange")},get LOG(){return me("/log")}},Te={SSO:"sso"},_e={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},ye={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},Oe={ONLINE:"online",DEVICE:"device"},Ie=e=>e?`${ye.APPEARANCE_MODE_KEY}:${e}`:ye.APPEARANCE_MODE_KEY,Ae={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},Re="x-device-token",Ne={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},Ce={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},xe={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},Me={MIN_LENGTH:8,MAX_LENGTH:128};let De=!0;const Be=async e=>{const t=await e.getItem(ye.SEND_DIAGNOSTICS);De=null===t||"true"===t},ve=()=>De,be=3,we=500,ke=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(k.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function Pe(e){const{performRefresh:t,isTransient:r=ke,maxAttempts:s=be,backoffBaseMs:n=we}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Le="bridge-toast";function Ue(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Le,{detail:e}))}const Ge=e=>Ue(e),He=(e="Please try again")=>Ue({title:"Error",description:e,variant:"destructive"}),Ke=(e="Successfully")=>Ue({title:"Success",description:e,variant:"default"}),$e=Le,We={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},Ve={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"};function je(e){return e?.type===We.GUEST_USER}const Xe=e=>!!e&&Date.now()>=e-_e.TOKEN_CLOCK_SKEW_MS,ze=e=>!e||Date.now()>=e-_e.TOKEN_REFRESH_THRESHOLD_MS,Ye=async()=>ze(Ee())?await(ae()?.())??null:null,Je=e=>e?Math.max(0,e-Date.now()):0,Ze=e=>e?Math.max(0,e-_e.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,qe=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function Qe(e){const t=e.headers.get(Ae.ACCESS_TOKEN),r=e.headers.get(Ae.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${Ae.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${Ae.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function et(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function tt(e){const t=et(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function rt(e,t){try{const r=t.getItem(ye.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=tt(t.getItem(ye.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function st(e){!function(e){try{e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)}catch{}}(e),function(e){try{e.removeItem(ye.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function nt(e,t){try{t.setItem(ye.SELECTED_ORG_ID,e),t.setItem(ye.SELECTED_ORG_NAME,e)}catch{}}class ot{static instance;events={};constructor(){}static getInstance(){return ot.instance||(ot.instance=new ot),ot.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){k.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const it=ot.getInstance();function at(e,t){return it.on(e,t)}const ut={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ct=[ut.LIGHT,ut.DARK,ut.SYSTEM],lt={FOREGROUND:"foreground",BACKGROUND:"background"},dt={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},gt={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:dt.PILL,chatInputPlaceholder:"Type anything..."},Et={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:dt.PILL,chatInputPlaceholder:"Type anything..."};function pt(e){return e===ut.LIGHT?Et:gt}const Ft=gt;function mt(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ft(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function ht(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function St(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function Tt(e){switch(e){case"pill":return dt.PILL;case"none":return dt.SHARP;default:return 0===parseInt(e??"",10)?dt.SHARP:dt.ROUNDED}}function _t(e,t,r=ut.DARK){const s=pt(r);if(!e||!t)return s;const n=t.surface?.chatInput?.border||t.surface?.input?.border,o=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?mt(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?mt(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:o?.style||s.userMsgBorderStyle,userMsgBorderColor:o?.color?mt(o.color,o.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:o?.width||s.userMsgBorderWidth,userMsgBorderOpacity:o?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ft(e.typography?.fontFamily,s),fontFamilyMono:ht(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:St(e.cornerRadius,s),cornerRadiusMode:Tt(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}}function yt(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(i*t*1e3)/1e3})`}const Ot=c(void 0);function It(){const e=l(Ot);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}const At=c(null),Rt=()=>{const e=l(At);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let Nt=null;function Ct(e){Nt=e}const xt=()=>Nt,Mt=c(null),Dt={isConnected:!0,isInternetReachable:!0},Bt=()=>{const e=l(Mt),t=d(t=>e?e.subscribe(t):()=>{},[e]),r=d(()=>e?e.getState():Dt,[e]);return g(t,r,r)},vt=i({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+_e.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:bt,updateUser:wt,clearSession:kt,sessionExpired:Pt,setSelectedOrgId:Lt}=vt.actions,Ut=bt,Gt=kt,Ht=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(ye.ACCESS_TOKEN),e.getItem(ye.REFRESH_TOKEN),e.getItem(ye.TOKEN_EXPIRES_AT),e.getItem(ye.USER)]),i=n?parseInt(n,10):null;if((!r||!i||Xe(i))&&!s)return void(r&&await Promise.all([e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)]));let a=null;if(o)try{a=JSON.parse(o)}catch(e){k.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(bt({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},Kt=a();Kt.startListening({matcher:u(bt,wt,kt,Pt),effect:async(e,t)=>{const r=xt();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(ye.ACCESS_TOKEN,s.accessToken):r.removeItem(ye.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(ye.REFRESH_TOKEN,s.refreshToken):r.removeItem(ye.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(ye.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(ye.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(ye.USER,JSON.stringify(s.user)):r.removeItem(ye.USER)),(kt.match(e)||Pt.match(e))&&n.push(r.removeItem(ye.LOCATION_CACHE),r.removeItem(ye.DEBUG_MODE),r.removeItem(ye.APPEARANCE_MODE_KEY),r.removeItem(ye.LOCATION_ENABLED),r.removeItem(ye.STT_AUTO_SEND),r.removeItem(ye.STT_IMPLEMENTATION),r.removeItem(ye.SEND_DIAGNOSTICS),r.removeItem(ye.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const $t=vt.reducer,Wt={lastResponseTime:null},Vt=i({name:"indicator",initialState:Wt,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(u(kt,Pt),()=>Wt)}}),{setLastResponseTime:jt,clearLastResponseTime:Xt}=Vt.actions,zt=Vt.reducer;function Yt(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const Jt={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function Zt(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Se as API_ENDPOINTS,ut as APPEARANCE_MODES,ct as APPEARANCE_MODE_VALUES,Ae as AUTH_HEADERS,Ne as AUTH_PATHS,$e as BRIDGE_TOAST_EVENT_NAME,Ot as BrandingContext,dt as CORNER_RADIUS_MODES,Re as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,ot as EventEmitter,Te as FEATURE_FLAGS,Ve as IDP_HINTS,Jt as INDICATOR_TIMER_ACTIONS,C as LOG_LEVELS,Mt as NetworkContext,lt as ORB_POSITIONS,fe as ORG_MOUNT_SUFFIX,Me as PASSWORD_LIMITS,Ce as PATTERNS,xe as PROFILE_LIMITS,ye as STORAGE_KEYS,Oe as STT_IMPLEMENTATIONS,At as StorageContext,t as TEXT_DIRECTION,_e as TIMING,We as USER_TYPES,_t as brandingToThemeStyles,m as capitalizeFirst,Xt as clearLastResponseTime,st as clearPreviousTenant,kt as clearSession,Pe as createTokenRefresher,Ft as defaultChatThemeStyles,gt as defaultDarkThemeStyles,ke as defaultIsTransient,Et as defaultLightThemeStyles,rt as detectOrgSwitch,r as detectTextDirection,Ye as ensureFreshToken,it as eventEmitter,Qe as extractTokens,O as formatCVC,f as formatCamelCaseToTitle,S as formatCardNumber,y as formatExpiryDate,qe as formatTimeRemaining,F as formatTimestamp,p as generateUniqueId,me as getApiUrl,Ie as getAppearanceModeStorageKey,I as getArrayOfObjects,se as getBaseUrl,oe as getCustomHeaders,pt as getDefaultThemeStyles,N as getErrorMessage,A as getInitials,Zt as getPaymentId,ne as getPaymentProviderHint,ve as getSendDiagnostics,xt as getStorageRef,Je as getTimeUntilExpiry,Ze as getTimeUntilRefresh,ae as getTokenRefreshHandler,Yt as handleSharedEvent,R as hasWidgets,yt as hexToRgba,Be as hydrateAppBoot,Ht as hydrateSession,zt as indicatorReducer,j as initLogger,re as initializeChatConfig,Fe as isDevMode,je as isGuest,ze as isTokenAboutToExpire,Xe as isTokenExpired,he as joinOrgMountBase,k as logger,Gt as logout,et as parseJwtPayload,tt as parseOrgFromJwt,ce as readAccessToken,de as readDeviceToken,Ee as readTokenExpiresAt,at as registerEventListener,v as registerLoggerContextProvider,B as registerLoggerSink,h as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,_ as sanitizeExpiryDate,Pt as sessionExpired,Kt as sessionListenerMiddleware,$t as sessionReducer,ue as setAccessTokenReader,Ut as setCredentials,le as setDeviceTokenReader,pe as setIsDev,jt as setLastResponseTime,Ct as setModuleStorage,V as setNetworkLoggingEnabled,Lt as setSelectedOrgId,bt as setSession,ge as setTokenExpiresAtReader,ie as setTokenRefreshHandler,He as showErrorToast,Ke as showSuccessToast,Ge as showToast,E as truncateWordLimit,wt as updateUser,It as useBranding,n as useMessageDirection,o as useMessageDirections,Bt as useNetworkState,Rt as useStorage,T as validateExpiryDate,nt as writeOrgToStorage};
|
|
1
|
+
import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createContext as a,useContext as i,useMemo as c,useCallback as u,useSyncExternalStore as l}from"react";import{createSlice as d,createListenerMiddleware as g,isAnyOf as f}from"@reduxjs/toolkit";const p=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},E=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),m=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),a=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:a<7?`${a}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},h=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",F=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",S=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",A=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),T=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,a=n.getMonth()+1;return!(s<o||s===o&&r<a||r>12)},I=e=>{if(!e)return"";if(!T(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},y=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return I(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},O=e=>e.replace(/\D/g,"").slice(0,4);function R(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const _=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},N=e=>Array.isArray(e.widget)&&e.widget.length>0;function C(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const D={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let M=null,x=null;const B=[];function v(e){if(M=e,B.length>0){const t=B.splice(0,B.length);for(const r of t)e.emit(r)}}function w(e){x=e}async function b(){M=null,x=null,B.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function L(e,t){const r=x?function(e){try{return e()??{}}catch{return{}}}(x):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};M?M.emit(o):(B.length>=200&&B.shift(),B.push(o))}const k={debug(e){L(D.DEBUG,e)},info(e){L(D.INFO,e)},warn(e){L(D.WARN,e)},error(e){L(D.ERROR,e)},flush:()=>M?.flush?.()},P={[D.DEBUG]:0,[D.INFO]:1,[D.WARN]:2,[D.ERROR]:3};function G(e={}){const t=P[e.minLevel??D.DEBUG];return{emit(e){P[e.level]<t||(e.level===D.ERROR?console.error:e.level===D.WARN?console.warn:e.level===D.DEBUG?console.debug:console.info)(e)}}}const H={[D.DEBUG]:5,[D.INFO]:9,[D.WARN]:13,[D.ERROR]:17};function U(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function K(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=U(s));return t}let $=!1,W=null,j=!0;function V(e){j=e}function Y(e){$||($=!0,w(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),v(function(e){const t=[G({minLevel:e.consoleMinLevel??(e.isDev?D.DEBUG:D.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,a]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),i=a.resourceFromAttributes(e.resourceAttrs),c=new o.OTLPLogExporter({url:e.endpoint}),u=new s.LoggerProvider({resource:i,processors:[new s.BatchLogRecordProcessor(c)]});t.logs.setGlobalLoggerProvider(u);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:H[t],severityText:t,body:JSON.stringify(e),attributes:K(n),timestamp:new Date(s)})},async flush(){await u.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let a=null;function i(){return null!==a&&(clearTimeout(a),a=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?i():null===a&&(a=setTimeout(()=>{a=null,i()},r))},async flush(){await i()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){j&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&W?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:Y,registerPlatformFlushAttacher:function(e){W=e},resetInitLoggerStateForTests:function(){$=!1,W=null,j=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,J="",Z={},q=null,Q=()=>null,ee=()=>null,te=()=>null,re=!1;const se=e=>{J=e.baseUrl,Z=e.customHeaders||{},z=e.paymentProvider},ne=()=>J,oe=()=>z,ae=()=>Z,ie=e=>{q=e},ce=()=>q,ue=e=>{Q=e},le=()=>Q(),de=e=>{ee=e},ge=()=>ee(),fe=e=>{te=e},pe=()=>te(),Ee=e=>{re=e},me=()=>re,he=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${J}/api${t}`},Fe="chat",Se=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${Fe}`:`${e}/${Fe}`,Ae={CONVERSATIONS:()=>he("/conversations"),CONVERSATION_STREAM:e=>he(`/conversations/${e}`),CONVERSATION_START:e=>he(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>he(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>he(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>he(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return he("/transcribe")},get BRANDING(){return he("/branding")},get CONFIG(){return he("/config")},get PROFILE(){return he("/profile")},get AUTH_ME(){return he("/auth/me")},get CHANGE_PASSWORD(){return he("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return he("/organizations/exists")},get DEBUG(){return he("/debug")},get TOOL_SERVERS(){return he("/tool-servers")},TOOL_SERVER_AUTH_START:e=>he(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>he(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return he("/tool-servers/auth/exchange")},get LOG(){return he("/log")}},Te={SSO:"sso"},Ie={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},ye={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},Oe={ONLINE:"online",DEVICE:"device"},Re=e=>e?`${ye.APPEARANCE_MODE_KEY}:${e}`:ye.APPEARANCE_MODE_KEY,_e={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},Ne="x-device-token",Ce={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},De={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},Me={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},xe={MIN_LENGTH:8,MAX_LENGTH:128};let Be=!0;const ve=async e=>{const t=await e.getItem(ye.SEND_DIAGNOSTICS);Be=null===t||"true"===t},we=()=>Be,be=3,Le=500,ke=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(k.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function Pe(e){const{performRefresh:t,isTransient:r=ke,maxAttempts:s=be,backoffBaseMs:n=Le}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Ge="bridge-toast";function He(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Ge,{detail:e}))}const Ue=e=>He(e),Ke=(e="Please try again")=>He({title:"Error",description:e,variant:"destructive"}),$e=(e="Successfully")=>He({title:"Success",description:e,variant:"default"}),We=Ge,je={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},Ve={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"};function Ye(e){return e?.type===je.GUEST_USER}const Xe=e=>!!e&&Date.now()>=e-Ie.TOKEN_CLOCK_SKEW_MS,ze=e=>!e||Date.now()>=e-Ie.TOKEN_REFRESH_THRESHOLD_MS,Je=async()=>ze(pe())?await(ce()?.())??null:null,Ze=e=>e?Math.max(0,e-Date.now()):0,qe=e=>e?Math.max(0,e-Ie.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,Qe=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function et(e){const t=e.headers.get(_e.ACCESS_TOKEN),r=e.headers.get(_e.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${_e.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${_e.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function tt(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function rt(e){const t=tt(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function st(e,t){try{const r=t.getItem(ye.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=rt(t.getItem(ye.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function nt(e){!function(e){try{e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)}catch{}}(e),function(e){try{e.removeItem(ye.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function ot(e,t){try{t.setItem(ye.SELECTED_ORG_ID,e),t.setItem(ye.SELECTED_ORG_NAME,e)}catch{}}const at={LATIN:"Latn",ARABIC:"Arab",HEBREW:"Hebr",CYRILLIC:"Cyrl",GREEK:"Grek",DEVANAGARI:"Deva",THAI:"Thai",HAN:"Hani",HIRAGANA_KATAKANA:"Kana",HANGUL:"Kore"},it={Latn:[[65,90],[97,122],[170,170],[186,186],[192,214],[216,246],[248,591],[592,687],[7680,7935],[11360,11391],[42786,42887],[42891,42957],[42960,42961],[42963,42963],[42965,42972],[42994,43007],[43824,43866],[43868,43876],[43878,43881],[64256,64262],[65313,65338],[65345,65370]],Arab:[[1568,1599],[1601,1610],[1646,1647],[1649,1747],[1749,1749],[1765,1766],[1774,1775],[1786,1788],[1791,1791],[1872,1919],[2208,2249],[2160,2183],[2185,2190],[64336,64433],[64467,64829],[64848,64911],[64914,64967],[65008,65019],[65136,65140],[65142,65276]],Hebr:[[1488,1514],[1519,1522],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64335]],Cyrl:[[1024,1153],[1162,1327],[7296,7306],[42560,42606],[42623,42653]],Grek:[[880,883],[886,887],[890,893],[895,895],[902,902],[904,906],[908,908],[910,929],[931,993],[1008,1013],[1015,1023],[7936,7957],[7960,7965],[7968,8005],[8008,8013],[8016,8023],[8025,8025],[8027,8027],[8029,8029],[8031,8061],[8064,8116],[8118,8124],[8126,8126],[8130,8132],[8134,8140],[8144,8147],[8150,8155],[8160,8172],[8178,8180],[8182,8188]],Deva:[[2308,2361],[2365,2365],[2384,2384],[2392,2401],[2417,2431]],Thai:[[3585,3632],[3634,3635],[3648,3654]],Hani:[[12293,12293],[13312,19903],[19968,40959],[63744,64109],[64112,64217],[131072,173791],[173824,177977],[177984,178205],[178208,183969],[183984,191456]],Kana:[[12353,12438],[12445,12447],[12449,12538],[12541,12543],[12784,12799],[65382,65391],[65393,65437]],Kore:[[4352,4607],[12593,12686],[43360,43388],[44032,55203],[55216,55238],[55243,55291]]},ct=[at.LATIN,at.ARABIC,at.HEBREW,at.CYRILLIC,at.GREEK,at.DEVANAGARI,at.THAI,at.HAN,at.HIRAGANA_KATAKANA,at.HANGUL],ut=/```[\s\S]*?```|`[^`]*`|(?:https?:\/\/|www\.)\S+|\S+@[\w.-]+\.\w+|[@#][\w-]+/g;function lt(e){for(const t of ct)for(const[r,s]of it[t])if(e>=r&&e<=s)return t;return null}function dt(e){const t=(e??"").replace(ut," "),r=new Set,s=[];for(const e of t){const t=lt(e.codePointAt(0)??0);t&&!r.has(t)&&(r.add(t),s.push(t))}return s}const gt={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},ft={DEFAULT:"default",HEADING:"heading",MONO:"mono"},pt={REGULAR:"regular",MEDIUM:"medium",SEMIBOLD:"semibold",BOLD:"bold"},Et={LIGHT:"light",DARK:"dark",SYSTEM:"system"},mt=[Et.LIGHT,Et.DARK,Et.SYSTEM],ht={FOREGROUND:"foreground",BACKGROUND:"background"},Ft="default",St={[ft.DEFAULT]:"system-ui, -apple-system, sans-serif",[ft.HEADING]:"system-ui, -apple-system, sans-serif",[ft.MONO]:"ui-monospace, monospace"},At={ar:at.ARABIC,fa:at.ARABIC,ur:at.ARABIC,he:at.HEBREW,yi:at.HEBREW,ru:at.CYRILLIC,bg:at.CYRILLIC,sr:at.CYRILLIC,uk:at.CYRILLIC,mk:at.CYRILLIC,be:at.CYRILLIC,kk:at.CYRILLIC,el:at.GREEK,hi:at.DEVANAGARI,mr:at.DEVANAGARI,ne:at.DEVANAGARI,th:at.THAI,zh:at.HAN,ja:at.HIRAGANA_KATAKANA,ko:at.HANGUL},Tt=new Set(["serif","sans-serif","monospace","cursive","fantasy","math","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","-apple-system","blinkmacsystemfont"]),It=new Set(["SF Pro","SF Pro Display","SF Mono","system-ui","System","monospace","sans-serif"]),yt=new Set(Object.values(at)),Ot=Object.values(at);function Rt(e){const t=e.split(/[-_]/);for(const e of t.slice(1)){if(1===e.length)break;const t=e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();if(yt.has(t))return t}const r=t[0]?.toLowerCase()??"";if(At[r])return At[r];if("undefined"!=typeof Intl&&"Locale"in Intl)try{const t=new Intl.Locale(e).maximize().script;if(t&&yt.has(t))return t}catch{}return at.LATIN}function _t(e,t){const r={...e?.families??{}},s=e?.locales;let n;if(s)n={...s};else{const r=e?.fontFamily,s=e?.fontFamilyMono;n={[Ft]:{[ft.DEFAULT]:r??t.default,[ft.HEADING]:r??t.heading??t.default,[ft.MONO]:s??t.mono}}}const o=n[Ft]??{};n[Ft]={[ft.DEFAULT]:o.default??t.default,[ft.HEADING]:o.heading??t.heading??t.default,[ft.MONO]:o.mono??t.mono??t.default};const a=function(){const e={};for(const t of Ot)e[t]=[];return e}();for(const e of Object.keys(n))e!==Ft&&a[Rt(e)].push(e);return{locales:n,families:r,scriptIndex:a}}function Nt(e){const t=e.trim();return t?Tt.has(t.toLowerCase())||t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`:t}function Ct(e,t){return e?.[t]}function Dt(e,t,r={}){const{language:s,script:n}=r;if(s){const r=Ct(e.locales[s],t);if(r)return r}const o=n??(s?Rt(s):void 0);if(o)for(const r of e.scriptIndex[o]){const s=Ct(e.locales[r],t);if(s)return s}return Ct(e.locales[Ft],t)??e.locales[Ft].default??""}function Mt(e,t,r){const s=[],n=new Set,o=e=>{e&&(n.has(e)||(n.add(e),s.push(e)))};for(const s of r)for(const r of e.scriptIndex[s])o(Ct(e.locales[r],t));o(Ct(e.locales[Ft],t)??e.locales[Ft].default);const a=s.map(Nt);return a.length?`${a.join(", ")}, ${St[t]}`:St[t]}function xt(e,t){return Mt(e,t,Object.keys(e.scriptIndex))}const Bt={[pt.REGULAR]:400,[pt.MEDIUM]:500,[pt.SEMIBOLD]:600,[pt.BOLD]:700};function vt(e){const t=function(e){const t=e.split(/[?#]/)[0].toLowerCase();return t.endsWith(".woff2")?"woff2":t.endsWith(".woff")?"woff":t.endsWith(".ttf")?"truetype":t.endsWith(".otf")?"opentype":void 0}(e);return t?`src: url("${e}") format("${t}");`:`src: url("${e}");`}function wt(e){const t=[];for(const r of Ot)if(e.has(r))for(const[e,s]of it[r]){const r=`U+${e.toString(16).toUpperCase()}`;t.push(e===s?r:`${r}-${s.toString(16).toUpperCase()}`)}return t.join(", ")}function bt(e,t,r,s){const n=["@font-face {",` font-family: ${Nt(e)};`,` ${vt(r)}`,` font-weight: ${t};`," font-style: normal;"," font-display: swap;"];return s&&n.push(` unicode-range: ${s};`),n.push("}"),n.join("\n")}function Lt(e){const t=function(e){const t=new Map;for(const r of Ot)for(const s of e.scriptIndex[r])for(const n of Object.values(ft)){const o=e.locales[s]?.[n];o&&(t.has(o)||t.set(o,new Set),t.get(o).add(r))}return t}(e),r=new Set(Object.values(ft).map(t=>e.locales[Ft]?.[t]).filter(e=>Boolean(e))),s=[];for(const[n,o]of Object.entries(e.families)){const e=r.has(n)?void 0:t.get(n),a=e?wt(e):"";if(o.variable)s.push(bt(n,"100 900",o.variable,a));else for(const e of Object.values(pt)){const t=o[e];t&&s.push(bt(n,String(Bt[e]),t,a))}}return s.join("\n\n")}const kt=new WeakSet;function Pt(e,t){if(kt.has(e))return;kt.add(e);const r=new Set;for(const s of Object.values(e.locales))for(const n of Object.values(s))n&&!r.has(n)&&(r.add(n),e.families[n]||It.has(n)||t.warn({message:`Typography family "${n}" has no families entry and is not a known system font; falling back to the generic stack.`,font_family:n}))}const Gt=a(void 0);function Ht(){const e=i(Gt);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}function Ut(e,t){const{themeStyles:r}=Ht(),s=r.typography,n=c(()=>{if(t){const e=t.split(/[-_]/)[0].toLowerCase(),r=At[e];if(r)return[r]}return dt(e)},[e,t]);return c(()=>Mt(s,ft.DEFAULT,n),[s,n])}class Kt{static instance;events={};constructor(){}static getInstance(){return Kt.instance||(Kt.instance=new Kt),Kt.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){k.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const $t=Kt.getInstance();function Wt(e,t){return $t.on(e,t)}const jt={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},Vt={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:_t(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:jt.PILL,chatInputPlaceholder:"Type anything..."},Yt={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:_t(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:jt.PILL,chatInputPlaceholder:"Type anything..."};function Xt(e){return e===Et.LIGHT?Yt:Vt}const zt=Vt;function Jt(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function Zt(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function qt(e){switch(e){case"pill":return jt.PILL;case"none":return jt.SHARP;default:return 0===parseInt(e??"",10)?jt.SHARP:jt.ROUNDED}}function Qt(e,t,r=Et.DARK){const s=Xt(r);if(!e||!t)return s;const n=_t(e.typography,{default:s.typography.locales.default.default,heading:s.typography.locales.default.heading,mono:s.typography.locales.default.mono});Pt(n,k);const o=t.surface?.chatInput?.border||t.surface?.input?.border,a=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?Jt(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?Jt(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:a?.style||s.userMsgBorderStyle,userMsgBorderColor:a?.color?Jt(a.color,a.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:a?.width||s.userMsgBorderWidth,userMsgBorderOpacity:a?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:xt(n,ft.DEFAULT),fontFamilyHeading:xt(n,ft.HEADING),fontFamilyMono:xt(n,ft.MONO),fontSize:14,typography:n,borderRadius:Zt(e.cornerRadius,s),cornerRadiusMode:qt(e.cornerRadius),chatInputPlaceholder:e.startScreen?.inputPlaceholder??s.chatInputPlaceholder}}function er(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),a=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(a*t*1e3)/1e3})`}const tr=a(null),rr=()=>{const e=i(tr);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let sr=null;function nr(e){sr=e}const or=()=>sr,ar=a(null),ir={isConnected:!0,isInternetReachable:!0},cr=()=>{const e=i(ar),t=u(t=>e?e.subscribe(t):()=>{},[e]),r=u(()=>e?e.getState():ir,[e]);return l(t,r,r)},ur=d({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+Ie.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:lr,updateUser:dr,clearSession:gr,sessionExpired:fr,setSelectedOrgId:pr}=ur.actions,Er=lr,mr=gr,hr=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(ye.ACCESS_TOKEN),e.getItem(ye.REFRESH_TOKEN),e.getItem(ye.TOKEN_EXPIRES_AT),e.getItem(ye.USER)]),a=n?parseInt(n,10):null;if((!r||!a||Xe(a))&&!s)return void(r&&await Promise.all([e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)]));let i=null;if(o)try{i=JSON.parse(o)}catch(e){k.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(lr({user:i,accessToken:r,refreshToken:s,expiresIn:null!=a?a/1e3:null}))},Fr=g();Fr.startListening({matcher:f(lr,dr,gr,fr),effect:async(e,t)=>{const r=or();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(ye.ACCESS_TOKEN,s.accessToken):r.removeItem(ye.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(ye.REFRESH_TOKEN,s.refreshToken):r.removeItem(ye.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(ye.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(ye.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(ye.USER,JSON.stringify(s.user)):r.removeItem(ye.USER)),(gr.match(e)||fr.match(e))&&n.push(r.removeItem(ye.LOCATION_CACHE),r.removeItem(ye.DEBUG_MODE),r.removeItem(ye.APPEARANCE_MODE_KEY),r.removeItem(ye.LOCATION_ENABLED),r.removeItem(ye.STT_AUTO_SEND),r.removeItem(ye.STT_IMPLEMENTATION),r.removeItem(ye.SEND_DIAGNOSTICS),r.removeItem(ye.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const Sr=ur.reducer,Ar={lastResponseTime:null},Tr=d({name:"indicator",initialState:Ar,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(f(gr,fr),()=>Ar)}}),{setLastResponseTime:Ir,clearLastResponseTime:yr}=Tr.actions,Or=Tr.reducer;function Rr(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const _r={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function Nr(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Ae as API_ENDPOINTS,Et as APPEARANCE_MODES,mt as APPEARANCE_MODE_VALUES,_e as AUTH_HEADERS,Ce as AUTH_PATHS,We as BRIDGE_TOAST_EVENT_NAME,Gt as BrandingContext,jt as CORNER_RADIUS_MODES,Ne as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,Kt as EventEmitter,Te as FEATURE_FLAGS,ft as FONT_ROLES,pt as FONT_WEIGHT_SLOTS,St as GENERIC_STACKS,Ve as IDP_HINTS,_r as INDICATOR_TIMER_ACTIONS,At as LANG_DEFAULT_SCRIPT,gt as LOGO_ALIGNMENTS,D as LOG_LEVELS,ar as NetworkContext,ht as ORB_POSITIONS,Fe as ORG_MOUNT_SUFFIX,xe as PASSWORD_LIMITS,De as PATTERNS,Me as PROFILE_LIMITS,at as SCRIPTS,it as SCRIPT_RANGES,ye as STORAGE_KEYS,Oe as STT_IMPLEMENTATIONS,tr as StorageContext,t as TEXT_DIRECTION,Ie as TIMING,je as USER_TYPES,Qt as brandingToThemeStyles,Lt as buildFontFaceCss,Mt as buildFontStack,xt as buildFullFontStack,h as capitalizeFirst,yr as clearLastResponseTime,nt as clearPreviousTenant,gr as clearSession,Pe as createTokenRefresher,zt as defaultChatThemeStyles,Vt as defaultDarkThemeStyles,ke as defaultIsTransient,Yt as defaultLightThemeStyles,st as detectOrgSwitch,dt as detectScripts,r as detectTextDirection,Je as ensureFreshToken,$t as eventEmitter,et as extractTokens,O as formatCVC,F as formatCamelCaseToTitle,A as formatCardNumber,y as formatExpiryDate,Qe as formatTimeRemaining,m as formatTimestamp,E as generateUniqueId,he as getApiUrl,Re as getAppearanceModeStorageKey,R as getArrayOfObjects,ne as getBaseUrl,ae as getCustomHeaders,Xt as getDefaultThemeStyles,C as getErrorMessage,_ as getInitials,Nr as getPaymentId,oe as getPaymentProviderHint,we as getSendDiagnostics,or as getStorageRef,Ze as getTimeUntilExpiry,qe as getTimeUntilRefresh,ce as getTokenRefreshHandler,Rr as handleSharedEvent,N as hasWidgets,er as hexToRgba,ve as hydrateAppBoot,hr as hydrateSession,Or as indicatorReducer,Y as initLogger,se as initializeChatConfig,me as isDevMode,Ye as isGuest,ze as isTokenAboutToExpire,Xe as isTokenExpired,Se as joinOrgMountBase,k as logger,mr as logout,_t as normalizeTypography,tt as parseJwtPayload,rt as parseOrgFromJwt,Nt as quoteFamily,le as readAccessToken,ge as readDeviceToken,pe as readTokenExpiresAt,Wt as registerEventListener,w as registerLoggerContextProvider,v as registerLoggerSink,S as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,Dt as resolveFontFamily,I as sanitizeExpiryDate,fr as sessionExpired,Fr as sessionListenerMiddleware,Sr as sessionReducer,ue as setAccessTokenReader,Er as setCredentials,de as setDeviceTokenReader,Ee as setIsDev,Ir as setLastResponseTime,nr as setModuleStorage,V as setNetworkLoggingEnabled,pr as setSelectedOrgId,lr as setSession,fe as setTokenExpiresAtReader,ie as setTokenRefreshHandler,Ke as showErrorToast,$e as showSuccessToast,Ue as showToast,p as truncateWordLimit,dr as updateUser,Ht as useBranding,n as useMessageDirection,o as useMessageDirections,Ut as useMessageFontStack,cr as useNetworkState,rr as useStorage,T as validateExpiryDate,Pt as warnUnknownFamilies,ot as writeOrgToStorage};
|