@opencx/widget 3.0.75 → 3.0.77

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.
Files changed (33) hide show
  1. package/dist/designs.cjs +3 -3
  2. package/dist/designs.cjs.map +1 -1
  3. package/dist/designs.js +10 -9
  4. package/dist/designs.js.map +1 -1
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/react.cjs +1 -1
  8. package/dist/react.js +2 -2
  9. package/dist/src/headless/core/__tests__/test-utils.d.ts +41 -2
  10. package/dist/src/headless/core/api/api-caller.d.ts +42 -3
  11. package/dist/src/headless/core/api/schema.d.ts +61 -3
  12. package/dist/src/headless/core/context/active-session-polling.ctx.d.ts +1 -1
  13. package/dist/src/headless/core/context/message.ctx.d.ts +1 -1
  14. package/dist/src/headless/core/context/session.ctx.d.ts +2 -1
  15. package/dist/src/headless/core/index.d.ts +1 -1
  16. package/dist/src/headless/core/types/{schemas.d.ts → dtos.d.ts} +1 -0
  17. package/dist/src/headless/core/types/json-value.d.ts +7 -0
  18. package/dist/src/headless/core/types/messages.d.ts +1 -1
  19. package/dist/src/headless/core/types/widget-config.d.ts +8 -6
  20. package/dist/{useWidgetTrigger-CiYy4rS2.cjs → useWidgetTrigger-Bj4tpdxy.cjs} +2 -2
  21. package/dist/{useWidgetTrigger-CiYy4rS2.cjs.map → useWidgetTrigger-Bj4tpdxy.cjs.map} +1 -1
  22. package/dist/{useWidgetTrigger-CwB0x_Pe.js → useWidgetTrigger-TmZa8JFh.js} +3 -3
  23. package/dist/{useWidgetTrigger-CwB0x_Pe.js.map → useWidgetTrigger-TmZa8JFh.js.map} +1 -1
  24. package/dist/{widget.ctx-COUAUyWX.js → widget.ctx-DRC-z8Ql.js} +113 -102
  25. package/dist/widget.ctx-DRC-z8Ql.js.map +1 -0
  26. package/dist/widget.ctx-sL-dW2kY.cjs +5 -0
  27. package/dist/widget.ctx-sL-dW2kY.cjs.map +1 -0
  28. package/dist-embed/script.js +5 -5
  29. package/dist-embed/script.js.map +1 -1
  30. package/package.json +1 -1
  31. package/dist/widget.ctx-COUAUyWX.js.map +0 -1
  32. package/dist/widget.ctx-DUaeXkNb.cjs +0 -5
  33. package/dist/widget.ctx-DUaeXkNb.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./widget.ctx-DUaeXkNb.cjs");exports.PrimitiveState=t.PrimitiveState;exports.WidgetCtx=t.WidgetCtx;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./widget.ctx-sL-dW2kY.cjs");exports.PrimitiveState=t.PrimitiveState;exports.WidgetCtx=t.WidgetCtx;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P as i, W as a } from "./widget.ctx-COUAUyWX.js";
1
+ import { P as i, W as a } from "./widget.ctx-DRC-z8Ql.js";
2
2
  export {
3
3
  i as PrimitiveState,
4
4
  a as WidgetCtx
package/dist/react.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useWidgetTrigger-CiYy4rS2.cjs");function g(t,i,s){const{widgetCtx:{api:u}}=e.useWidget();return e._default(async r=>u.vote({action:r==="up"?"upvote":"downvote",messagePublicId:t,sessionId:i}).then(s),[u,t,i,s])}exports.WidgetProvider=e.WidgetProvider;exports.WidgetTriggerProvider=e.WidgetTriggerProvider;exports.useConfig=e.useConfig;exports.useContact=e.useContact;exports.useIsAwaitingBotReply=e.useIsAwaitingBotReply;exports.useMessages=e.useMessages;exports.usePreludeData=e.usePreludeData;exports.usePrimitiveState=e.usePrimitiveState;exports.useSessions=e.useSessions;exports.useUploadFiles=e.useUploadFiles;exports.useWidget=e.useWidget;exports.useWidgetRouter=e.useWidgetRouter;exports.useWidgetTrigger=e.useWidgetTrigger;exports.useVote=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useWidgetTrigger-Bj4tpdxy.cjs");function g(t,i,s){const{widgetCtx:{api:u}}=e.useWidget();return e._default(async r=>u.vote({action:r==="up"?"upvote":"downvote",messagePublicId:t,sessionId:i}).then(s),[u,t,i,s])}exports.WidgetProvider=e.WidgetProvider;exports.WidgetTriggerProvider=e.WidgetTriggerProvider;exports.useConfig=e.useConfig;exports.useContact=e.useContact;exports.useIsAwaitingBotReply=e.useIsAwaitingBotReply;exports.useMessages=e.useMessages;exports.usePreludeData=e.usePreludeData;exports.usePrimitiveState=e.usePrimitiveState;exports.useSessions=e.useSessions;exports.useUploadFiles=e.useUploadFiles;exports.useWidget=e.useWidget;exports.useWidgetRouter=e.useWidgetRouter;exports.useWidgetTrigger=e.useWidgetTrigger;exports.useVote=g;
2
2
  //# sourceMappingURL=react.cjs.map
package/dist/react.js CHANGED
@@ -1,5 +1,5 @@
1
- import { u, _ as r } from "./useWidgetTrigger-CwB0x_Pe.js";
2
- import { W as p, k as f, a as l, b as v, c as W, d as c, e as m, f as P, g as w, i as x, h as C, j as b } from "./useWidgetTrigger-CwB0x_Pe.js";
1
+ import { u, _ as r } from "./useWidgetTrigger-TmZa8JFh.js";
2
+ import { W as p, k as f, a as l, b as v, c as W, d as c, e as m, f as P, g as w, i as x, h as C, j as b } from "./useWidgetTrigger-TmZa8JFh.js";
3
3
  function g(e, s, t) {
4
4
  const {
5
5
  widgetCtx: { api: a }
@@ -82,7 +82,7 @@ export declare const TestUtils: {
82
82
  email?: string;
83
83
  non_verified_name?: string;
84
84
  non_verified_custom_data?: {
85
- [key: string]: string;
85
+ [key: string]: string | number | boolean;
86
86
  };
87
87
  };
88
88
  }, `${string}/${string}`>> | undefined): void;
@@ -159,13 +159,16 @@ export declare const TestUtils: {
159
159
  uuid: string;
160
160
  content: string;
161
161
  session_id: string;
162
+ bot_token: string;
162
163
  headers?: {
163
164
  [key: string]: string;
164
165
  } | null;
165
- bot_token: string;
166
166
  query_params?: {
167
167
  [key: string]: string;
168
168
  } | null;
169
+ body_properties?: {
170
+ [key: string]: unknown;
171
+ } | null;
169
172
  language?: string | null;
170
173
  attachments?: {
171
174
  id: string;
@@ -333,6 +336,42 @@ export declare const TestUtils: {
333
336
  };
334
337
  signal: AbortSignal;
335
338
  }, `${string}/${string}`>> | undefined): void;
339
+ resolveSession(target: typeof ApiCaller, returnValue: Partial<import('openapi-fetch').FetchResponse<{
340
+ parameters: {
341
+ query?: never;
342
+ header?: never;
343
+ path?: never;
344
+ cookie?: never;
345
+ };
346
+ requestBody: {
347
+ content: {
348
+ "application/json": import('../api/schema').components["schemas"]["WidgetResolveSessionInputDto"];
349
+ };
350
+ };
351
+ responses: {
352
+ 200: {
353
+ headers: {
354
+ [name: string]: unknown;
355
+ };
356
+ content: {
357
+ "application/json": import('../api/schema').components["schemas"]["WidgetSessionDto"];
358
+ };
359
+ };
360
+ 500: {
361
+ headers: {
362
+ [name: string]: unknown;
363
+ };
364
+ content: {
365
+ "application/json": import('../api/schema').components["schemas"]["ErrorDto"];
366
+ };
367
+ };
368
+ };
369
+ }, {
370
+ body: {
371
+ session_id: string;
372
+ };
373
+ signal: AbortSignal | undefined;
374
+ }, `${string}/${string}`>> | undefined): void;
336
375
  };
337
376
  };
338
377
  };
@@ -1,6 +1,6 @@
1
1
  import { Dto } from './client';
2
2
  import { WidgetConfig } from '../types/widget-config';
3
- import { SendMessageDto, VoteInputDto } from '../types/schemas';
3
+ import { ResolveSessionDto, SendMessageDto, VoteInputDto } from '../types/dtos';
4
4
  export declare class ApiCaller {
5
5
  private client;
6
6
  private config;
@@ -116,13 +116,16 @@ export declare class ApiCaller {
116
116
  uuid: string;
117
117
  content: string;
118
118
  session_id: string;
119
+ bot_token: string;
119
120
  headers?: {
120
121
  [key: string]: string;
121
122
  } | null;
122
- bot_token: string;
123
123
  query_params?: {
124
124
  [key: string]: string;
125
125
  } | null;
126
+ body_properties?: {
127
+ [key: string]: unknown;
128
+ } | null;
126
129
  language?: string | null;
127
130
  attachments?: {
128
131
  id: string;
@@ -179,7 +182,7 @@ export declare class ApiCaller {
179
182
  email?: string;
180
183
  non_verified_name?: string;
181
184
  non_verified_custom_data?: {
182
- [key: string]: string;
185
+ [key: string]: string | number | boolean;
183
186
  };
184
187
  };
185
188
  }, `${string}/${string}`>>;
@@ -353,4 +356,40 @@ export declare class ApiCaller {
353
356
  messagePublicId: string;
354
357
  };
355
358
  }, `${string}/${string}`>>;
359
+ resolveSession: (body: ResolveSessionDto, abortSignal?: AbortSignal) => Promise<import('openapi-fetch').FetchResponse<{
360
+ parameters: {
361
+ query?: never;
362
+ header?: never;
363
+ path?: never;
364
+ cookie?: never;
365
+ };
366
+ requestBody: {
367
+ content: {
368
+ "application/json": import('./schema').components["schemas"]["WidgetResolveSessionInputDto"];
369
+ };
370
+ };
371
+ responses: {
372
+ 200: {
373
+ headers: {
374
+ [name: string]: unknown;
375
+ };
376
+ content: {
377
+ "application/json": import('./schema').components["schemas"]["WidgetSessionDto"];
378
+ };
379
+ };
380
+ 500: {
381
+ headers: {
382
+ [name: string]: unknown;
383
+ };
384
+ content: {
385
+ "application/json": import('./schema').components["schemas"]["ErrorDto"];
386
+ };
387
+ };
388
+ };
389
+ }, {
390
+ body: {
391
+ session_id: string;
392
+ };
393
+ signal: AbortSignal | undefined;
394
+ }, `${string}/${string}`>>;
356
395
  }
@@ -147,6 +147,22 @@ export interface paths {
147
147
  patch?: never;
148
148
  trace?: never;
149
149
  };
150
+ '/backend/widget/v2/session/resolve': {
151
+ parameters: {
152
+ query?: never;
153
+ header?: never;
154
+ path?: never;
155
+ cookie?: never;
156
+ };
157
+ get?: never;
158
+ put?: never;
159
+ post: operations['resolveSession'];
160
+ delete?: never;
161
+ options?: never;
162
+ head?: never;
163
+ patch?: never;
164
+ trace?: never;
165
+ };
150
166
  '/backend/widget/v2/contact/create-unverified': {
151
167
  parameters: {
152
168
  query?: never;
@@ -171,7 +187,7 @@ export interface components {
171
187
  email?: string;
172
188
  non_verified_name?: string;
173
189
  non_verified_custom_data?: {
174
- [key: string]: string;
190
+ [key: string]: string | number | boolean;
175
191
  };
176
192
  };
177
193
  CreateWidgetSessionDto: {
@@ -186,7 +202,7 @@ export interface components {
186
202
  HandleContactMessageOutputDto: {
187
203
  /** @enum {boolean} */
188
204
  success: true;
189
- code?: string | 'session_assigned_to_human_agent';
205
+ code?: string | 'session_assigned_to_human_agent' | 'response_cancelled';
190
206
  autopilotResponse?: {
191
207
  /** @enum {string} */
192
208
  type: 'text';
@@ -196,6 +212,7 @@ export interface components {
196
212
  };
197
213
  id?: string;
198
214
  mightSolveUserIssue: boolean;
215
+ completelyAndFullyCoveredUserIssue: boolean;
199
216
  };
200
217
  uiResponse?: {
201
218
  /** @enum {string} */
@@ -245,13 +262,19 @@ export interface components {
245
262
  uuid: string;
246
263
  content: string;
247
264
  session_id: string;
265
+ bot_token: string;
266
+ /** @description Additional headers to be included in the request of action calls */
248
267
  headers?: {
249
268
  [key: string]: string;
250
269
  } | null;
251
- bot_token: string;
270
+ /** @description Additional query parameters to be included in the query of action calls */
252
271
  query_params?: {
253
272
  [key: string]: string;
254
273
  } | null;
274
+ /** @description Additional body properties to be included in the body of action calls */
275
+ body_properties?: {
276
+ [key: string]: unknown;
277
+ } | null;
255
278
  language?: string | null;
256
279
  attachments?: {
257
280
  id: string;
@@ -347,6 +370,9 @@ export interface components {
347
370
  officeHoursTimezone: string | null;
348
371
  organizationName: string;
349
372
  };
373
+ WidgetResolveSessionInputDto: {
374
+ session_id: string;
375
+ };
350
376
  WidgetSessionAndHistoryDto: {
351
377
  /** @description WidgetSession */
352
378
  session: {
@@ -724,6 +750,38 @@ export interface operations {
724
750
  };
725
751
  };
726
752
  };
753
+ resolveSession: {
754
+ parameters: {
755
+ query?: never;
756
+ header?: never;
757
+ path?: never;
758
+ cookie?: never;
759
+ };
760
+ requestBody: {
761
+ content: {
762
+ 'application/json': components['schemas']['WidgetResolveSessionInputDto'];
763
+ };
764
+ };
765
+ responses: {
766
+ 200: {
767
+ headers: {
768
+ [name: string]: unknown;
769
+ };
770
+ content: {
771
+ 'application/json': components['schemas']['WidgetSessionDto'];
772
+ };
773
+ };
774
+ /** @description Internal Server Error */
775
+ 500: {
776
+ headers: {
777
+ [name: string]: unknown;
778
+ };
779
+ content: {
780
+ 'application/json': components['schemas']['ErrorDto'];
781
+ };
782
+ };
783
+ };
784
+ };
727
785
  createUnverifiedContact: {
728
786
  parameters: {
729
787
  query?: never;
@@ -1,6 +1,6 @@
1
1
  import { ApiCaller } from '../api/api-caller';
2
2
  import { MessageType } from '../types/messages';
3
- import { ActionCallDto, MessageDto } from '../types/schemas';
3
+ import { ActionCallDto, MessageDto } from '../types/dtos';
4
4
  import { WidgetConfig } from '../types/widget-config';
5
5
  import { MessageCtx } from './message.ctx';
6
6
  import { SessionCtx } from './session.ctx';
@@ -1,7 +1,7 @@
1
1
  import { ApiCaller } from '../api/api-caller';
2
2
  import { WidgetConfig } from '../types/widget-config';
3
3
  import { MessageType } from '../types/messages';
4
- import { SendMessageDto } from '../types/schemas';
4
+ import { SendMessageDto } from '../types/dtos';
5
5
  import { PrimitiveState } from '../utils/PrimitiveState';
6
6
  import { SessionCtx } from './session.ctx';
7
7
  import { ContactCtx } from './contact.ctx';
@@ -1,5 +1,5 @@
1
1
  import { ApiCaller } from '../api/api-caller';
2
- import { SessionDto } from '../types/schemas';
2
+ import { SessionDto } from '../types/dtos';
3
3
  import { PrimitiveState } from '../utils/PrimitiveState';
4
4
  import { ContactCtx } from './contact.ctx';
5
5
  type SessionState = {
@@ -56,5 +56,6 @@ export declare class SessionCtx {
56
56
  private getSessions;
57
57
  setSessions: (data: SessionDto[]) => void;
58
58
  refreshSessions: () => Promise<void>;
59
+ resolveSession: () => Promise<void>;
59
60
  }
60
61
  export {};
@@ -1,7 +1,7 @@
1
1
  export type { AgentOrBotType } from './types/agent-or-bot';
2
2
  export type { SafeExtract, StringOrLiteral } from './types/helpers';
3
3
  export type { LiteralWidgetComponentKey, WidgetComponentKey, UserMessageType, AgentMessageType, BotMessageType, MessageType, } from './types/messages';
4
- export type { MessageAttachmentType, MessageDto, PreludeDto, SendMessageDto, SendMessageOutputDto, SessionDto, VoteInputDto, VoteOutputDto, ActionCallDto, } from './types/schemas';
4
+ export type { MessageAttachmentType, MessageDto, PreludeDto, SendMessageDto, SendMessageOutputDto, ResolveSessionDto, SessionDto, VoteInputDto, VoteOutputDto, ActionCallDto, } from './types/dtos';
5
5
  export type { WidgetConfig } from './types/widget-config';
6
6
  export type { ExternalStorage } from './types/external-storage';
7
7
  export type { OpenCxComponentNameU } from './types/component-name';
@@ -3,6 +3,7 @@ export type VoteInputDto = Dto['WidgetVoteDto'];
3
3
  export type VoteOutputDto = Dto['WidgetVoteResponseDto'];
4
4
  export type SendMessageDto = Dto['SendWidgetMessageDto'];
5
5
  export type SendMessageOutputDto = Dto['HandleContactMessageOutputDto'];
6
+ export type ResolveSessionDto = Dto['WidgetResolveSessionInputDto'];
6
7
  export type SessionDto = Dto['WidgetSessionDto'];
7
8
  export type MessageDto = Dto['WidgetHistoryDto'];
8
9
  export type PreludeDto = Dto['WidgetPreludeDto'];
@@ -0,0 +1,7 @@
1
+ type JsonArray = JsonValue[];
2
+ type JsonObject = {
3
+ [x: string]: JsonValue | undefined;
4
+ };
5
+ type JsonPrimitive = boolean | number | string | null;
6
+ export type JsonValue = JsonArray | JsonObject | JsonPrimitive;
7
+ export {};
@@ -1,4 +1,4 @@
1
- import { MessageAttachmentType, MessageDto } from './schemas';
1
+ import { MessageAttachmentType, MessageDto } from './dtos';
2
2
  import { SafeExtract, StringOrLiteral } from './helpers';
3
3
  import { AgentOrBotType } from './agent-or-bot';
4
4
  export type LiteralWidgetComponentKey = 'bot_message' | 'agent_message' | 'loading' | 'fallback';
@@ -1,4 +1,5 @@
1
1
  import { AgentOrBotType } from './agent-or-bot';
2
+ import { JsonValue } from './json-value';
2
3
  type UserBaseConfig = {
3
4
  token: string;
4
5
  data?: never;
@@ -220,19 +221,20 @@ export interface WidgetConfig {
220
221
  */
221
222
  anchorTarget?: '_blank' | '_top';
222
223
  /**
223
- * Headers to be sent with each send-message request from the widget.
224
- * These headers will be sent with each AI action (AI tools) that the LLM can call.
225
- * This is useful if your AI actions require authentication specific to each contact.
224
+ * Headers to be added to every Http AI action taken.
226
225
  * @default undefined
227
226
  */
228
227
  headers?: Record<string, string>;
229
228
  /**
230
- * Query params to be sent with each send-message request from the widget.
231
- * These query params will be sent with each AI action (AI tools) that the LLM can call.
232
- * This is useful if you want to send extra information with each AI action.
229
+ * Query params to be added to every Http AI action taken.
233
230
  * @default undefined
234
231
  */
235
232
  queryParams?: Record<string, string>;
233
+ /**
234
+ * Properties to be added to the `body` of every Http AI action taken.
235
+ * @default undefined
236
+ */
237
+ bodyProperties?: Record<string, JsonValue>;
236
238
  /**
237
239
  * Dynamic context to be sent with each send-message request from the widget.
238
240
  * Useful if you want to send data regarding the current page the user is viewing.
@@ -1,4 +1,4 @@
1
- "use strict";const y=require("react"),Ht=require("uuid"),Ze=require("react/jsx-runtime"),Kt=require("./widget.ctx-DUaeXkNb.cjs"),zt="3.0.75";class kt{constructor(t){this.components=[];const{components:n}=t;if(n&&n.forEach(r=>this.register(r)),this.components.length===0)throw new Error("No components registered");if(!this.get("fallback"))throw new Error("No fallback component registered")}register(t){const n=this.components.findIndex(r=>r.key===t.key);return n!==-1?this.components[n]=t:this.components.push(t),this}get(t){const n=this.components.find(r=>r.key.toUpperCase()===t.toUpperCase());return n||null}getComponent(t){var n;return(n=this.get(t))==null?void 0:n.component}}const et=y.createContext(null);function Yt({options:e,children:t,components:n,storage:r}){const o=y.useRef(null),s=y.useRef(!1),[i,d]=y.useState(null),h=y.useMemo(()=>new kt({components:n}),[n]);return y.useEffect(()=>{s.current||(s.current=!0,Kt.WidgetCtx.initialize({config:e,storage:r}).then(d))},[]),i?Ze.jsx(et.Provider,{value:{widgetCtx:i,config:e,components:n,componentStore:h,version:zt,contentIframeRef:o},children:t}):null}function K(){const e=y.useContext(et);if(!e)throw new Error("useWidget must be used within a WidgetProvider");return e}function tt(){const{config:e}=K();return e}function ee(e){return y.useSyncExternalStore(e.subscribe,e.get,e.get)}function Jt(){const{widgetCtx:e}=K();return{contactState:ee(e.contactCtx.state),createUnverifiedContact:e.contactCtx.createUnverifiedContact}}function nt(){const{widgetCtx:e}=K();return{messagesState:ee(e.messageCtx.state),sendMessage:e.messageCtx.sendMessage}}function rt(){const{widgetCtx:e}=K(),t=ee(e.sessionCtx.sessionState),n=ee(e.sessionCtx.sessionsState);return{sessionState:t,sessionsState:n,loadMoreSessions:e.sessionCtx.loadMoreSessions}}function Xt(){var i;const{sessionState:e}=rt(),{messagesState:t}=nt(),n=((i=e.session)==null?void 0:i.assignee.kind)==="ai",r=t.messages.length>0?t.messages[t.messages.length-1]:null,o=(r==null?void 0:r.type)==="FROM_USER";return{isAwaitingBotReply:(n||e.isCreatingSession)&&(t.isSendingMessage||o)}}var Qt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function en(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var Re={exports:{}},_e={};/**
1
+ "use strict";const y=require("react"),Ht=require("uuid"),Ze=require("react/jsx-runtime"),Kt=require("./widget.ctx-sL-dW2kY.cjs"),zt="3.0.77";class kt{constructor(t){this.components=[];const{components:n}=t;if(n&&n.forEach(r=>this.register(r)),this.components.length===0)throw new Error("No components registered");if(!this.get("fallback"))throw new Error("No fallback component registered")}register(t){const n=this.components.findIndex(r=>r.key===t.key);return n!==-1?this.components[n]=t:this.components.push(t),this}get(t){const n=this.components.find(r=>r.key.toUpperCase()===t.toUpperCase());return n||null}getComponent(t){var n;return(n=this.get(t))==null?void 0:n.component}}const et=y.createContext(null);function Yt({options:e,children:t,components:n,storage:r}){const o=y.useRef(null),s=y.useRef(!1),[i,d]=y.useState(null),h=y.useMemo(()=>new kt({components:n}),[n]);return y.useEffect(()=>{s.current||(s.current=!0,Kt.WidgetCtx.initialize({config:e,storage:r}).then(d))},[]),i?Ze.jsx(et.Provider,{value:{widgetCtx:i,config:e,components:n,componentStore:h,version:zt,contentIframeRef:o},children:t}):null}function K(){const e=y.useContext(et);if(!e)throw new Error("useWidget must be used within a WidgetProvider");return e}function tt(){const{config:e}=K();return e}function ee(e){return y.useSyncExternalStore(e.subscribe,e.get,e.get)}function Jt(){const{widgetCtx:e}=K();return{contactState:ee(e.contactCtx.state),createUnverifiedContact:e.contactCtx.createUnverifiedContact}}function nt(){const{widgetCtx:e}=K();return{messagesState:ee(e.messageCtx.state),sendMessage:e.messageCtx.sendMessage}}function rt(){const{widgetCtx:e}=K(),t=ee(e.sessionCtx.sessionState),n=ee(e.sessionCtx.sessionsState);return{sessionState:t,sessionsState:n,loadMoreSessions:e.sessionCtx.loadMoreSessions}}function Xt(){var i;const{sessionState:e}=rt(),{messagesState:t}=nt(),n=((i=e.session)==null?void 0:i.assignee.kind)==="ai",r=t.messages.length>0?t.messages[t.messages.length-1]:null,o=(r==null?void 0:r.type)==="FROM_USER";return{isAwaitingBotReply:(n||e.isCreatingSession)&&(t.isSendingMessage||o)}}var Qt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function en(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var Re={exports:{}},_e={};/**
2
2
  * @license React
3
3
  * use-sync-external-store-shim.production.min.js
4
4
  *
@@ -15,4 +15,4 @@
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
17
  */var ze;function nn(){return ze||(ze=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=y,t=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function n(R){{for(var v=arguments.length,w=new Array(v>1?v-1:0),S=1;S<v;S++)w[S-1]=arguments[S];r("error",R,w)}}function r(R,v,w){{var S=t.ReactDebugCurrentFrame,I=S.getStackAddendum();I!==""&&(v+="%s",w=w.concat([I]));var m=w.map(function(D){return String(D)});m.unshift("Warning: "+v),Function.prototype.apply.call(console[R],console,m)}}function o(R,v){return R===v&&(R!==0||1/R===1/v)||R!==R&&v!==v}var s=typeof Object.is=="function"?Object.is:o,i=e.useState,d=e.useEffect,h=e.useLayoutEffect,f=e.useDebugValue,a=!1,u=!1;function l(R,v,w){a||e.startTransition!==void 0&&(a=!0,n("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var S=v();if(!u){var I=v();s(S,I)||(n("The result of getSnapshot should be cached to avoid an infinite loop"),u=!0)}var m=i({inst:{value:S,getSnapshot:v}}),D=m[0].inst,j=m[1];return h(function(){D.value=S,D.getSnapshot=v,c(D)&&j({inst:D})},[R,S,v]),d(function(){c(D)&&j({inst:D});var B=function(){c(D)&&j({inst:D})};return R(B)},[R]),f(S),S}function c(R){var v=R.getSnapshot,w=R.value;try{var S=v();return!s(w,S)}catch{return!0}}function _(R,v,w){return v()}var g=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",C=!g,p=C?_:l,k=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p;Ee.useSyncExternalStore=k,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),Ee}process.env.NODE_ENV==="production"?Re.exports=tn():Re.exports=nn();var rn=Re.exports;const G=()=>{},L=G(),ve=Object,E=e=>e===L,N=e=>typeof e=="function",H=(e,t)=>({...e,...t}),on=e=>N(e.then),ue=new WeakMap;let sn=0;const oe=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let o,s;if(ve(e)===e&&!r&&n!=RegExp){if(o=ue.get(e),o)return o;if(o=++sn+"~",ue.set(e,o),n==Array){for(o="@",s=0;s<e.length;s++)o+=oe(e[s])+",";ue.set(e,o)}if(n==ve){o="#";const i=ve.keys(e).sort();for(;!E(s=i.pop());)E(e[s])||(o+=s+":"+oe(e[s])+",");ue.set(e,o)}}else o=r?e.toJSON():t=="symbol"?e.toString():t=="string"?JSON.stringify(e):""+e;return o},q=new WeakMap,Se={},ce={},Le="undefined",pe=typeof window!=Le,Te=typeof document!=Le,an=()=>pe&&typeof window.requestAnimationFrame!=Le,ot=(e,t)=>{const n=q.get(e);return[()=>!E(t)&&e.get(t)||Se,r=>{if(!E(t)){const o=e.get(t);t in ce||(ce[t]=o),n[5](t,H(o,r),o||Se)}},n[6],()=>!E(t)&&t in ce?ce[t]:!E(t)&&e.get(t)||Se]};let Ce=!0;const un=()=>Ce,[De,Ae]=pe&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[G,G],cn=()=>{const e=Te&&document.visibilityState;return E(e)||e!=="hidden"},fn=e=>(Te&&document.addEventListener("visibilitychange",e),De("focus",e),()=>{Te&&document.removeEventListener("visibilitychange",e),Ae("focus",e)}),ln=e=>{const t=()=>{Ce=!0,e()},n=()=>{Ce=!1};return De("online",t),De("offline",n),()=>{Ae("online",t),Ae("offline",n)}},dn={isOnline:un,isVisible:cn},pn={initFocus:fn,initReconnect:ln},ke=!y.useId,se=!pe||"Deno"in window,hn=e=>an()?window.requestAnimationFrame(e):setTimeout(e,1),we=se?y.useEffect:y.useLayoutEffect,me=typeof navigator<"u"&&navigator.connection,Ye=!se&&me&&(["slow-2g","2g"].includes(me.effectiveType)||me.saveData),Ie=e=>{if(N(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?oe(e):"",[e,t]};let gn=0;const xe=()=>++gn,st=0,it=1,at=2,yn=3;var re={__proto__:null,ERROR_REVALIDATE_EVENT:yn,FOCUS_EVENT:st,MUTATE_EVENT:at,RECONNECT_EVENT:it};async function ut(...e){const[t,n,r,o]=e,s=H({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let i=s.populateCache;const d=s.rollbackOnError;let h=s.optimisticData;const f=l=>typeof d=="function"?d(l):d!==!1,a=s.throwOnError;if(N(n)){const l=n,c=[],_=t.keys();for(const g of _)!/^\$(inf|sub)\$/.test(g)&&l(t.get(g)._k)&&c.push(g);return Promise.all(c.map(u))}return u(n);async function u(l){const[c]=Ie(l);if(!c)return;const[_,g]=ot(t,c),[C,p,k,R]=q.get(t),v=()=>{const M=C[c];return(N(s.revalidate)?s.revalidate(_().data,l):s.revalidate!==!1)&&(delete k[c],delete R[c],M&&M[0])?M[0](at).then(()=>_().data):_().data};if(e.length<3)return v();let w=r,S;const I=xe();p[c]=[I,0];const m=!E(h),D=_(),j=D.data,B=D._c,z=E(B)?j:B;if(m&&(h=N(h)?h(z,j):h,g({data:h,_c:z})),N(w))try{w=w(z)}catch(M){S=M}if(w&&on(w))if(w=await w.catch(M=>{S=M}),I!==p[c][0]){if(S)throw S;return w}else S&&m&&f(S)&&(i=!0,g({data:z,_c:L}));if(i&&!S)if(N(i)){const M=i(w,z);g({data:M,error:L,_c:L})}else g({data:w,error:L,_c:L});if(p[c][1]=xe(),Promise.resolve(v()).then(()=>{g({_c:L})}),S){if(a)throw S;return}return w}}const Je=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},_n=(e,t)=>{if(!q.has(e)){const n=H(pn,t),r={},o=ut.bind(L,e);let s=G;const i={},d=(a,u)=>{const l=i[a]||[];return i[a]=l,l.push(u),()=>l.splice(l.indexOf(u),1)},h=(a,u,l)=>{e.set(a,u);const c=i[a];if(c)for(const _ of c)_(u,l)},f=()=>{if(!q.has(e)&&(q.set(e,[r,{},{},{},o,h,d]),!se)){const a=n.initFocus(setTimeout.bind(L,Je.bind(L,r,st))),u=n.initReconnect(setTimeout.bind(L,Je.bind(L,r,it)));s=()=>{a&&a(),u&&u(),q.delete(e)}}};return f(),[e,o,f,s]}return[e,q.get(e)[4]]},En=(e,t,n,r,o)=>{const s=n.errorRetryCount,i=o.retryCount,d=~~((Math.random()+.5)*(1<<(i<8?i:8)))*n.errorRetryInterval;!E(s)&&i>s||setTimeout(r,d,o)},vn=(e,t)=>oe(e)==oe(t),[ct,Sn]=_n(new Map),wn=H({onLoadingSlow:G,onSuccess:G,onError:G,onErrorRetry:En,onDiscarded:G,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Ye?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Ye?5e3:3e3,compare:vn,isPaused:()=>!1,cache:ct,mutate:Sn,fallback:{}},dn),mn=(e,t)=>{const n=H(e,t);if(t){const{use:r,fallback:o}=e,{use:s,fallback:i}=t;r&&s&&(n.use=r.concat(s)),o&&i&&(n.fallback=H(o,i))}return n},bn=y.createContext({}),On="$inf$",ft=pe&&window.__SWR_DEVTOOLS_USE__,Rn=ft?window.__SWR_DEVTOOLS_USE__:[],Tn=()=>{ft&&(window.__SWR_DEVTOOLS_REACT__=y)},Cn=e=>N(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],Dn=()=>H(wn,y.useContext(bn)),An=e=>(t,n,r)=>e(t,n&&((...s)=>{const[i]=Ie(t),[,,,d]=q.get(ct);if(i.startsWith(On))return n(...s);const h=d[i];return E(h)?n(...s):(delete d[i],h)}),r),xn=Rn.concat(An),Pn=e=>function(...n){const r=Dn(),[o,s,i]=Cn(n),d=mn(r,i);let h=e;const{use:f}=d,a=(f||[]).concat(xn);for(let u=a.length;u--;)h=a[u](h);return h(o,s||d.fetcher||null,d)},jn=(e,t,n)=>{const r=t[e]||(t[e]=[]);return r.push(n),()=>{const o=r.indexOf(n);o>=0&&(r[o]=r[r.length-1],r.pop())}};Tn();const Xe=y.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),be={dedupe:!0},Ln=(e,t,n)=>{const{cache:r,compare:o,suspense:s,fallbackData:i,revalidateOnMount:d,revalidateIfStale:h,refreshInterval:f,refreshWhenHidden:a,refreshWhenOffline:u,keepPreviousData:l}=n,[c,_,g,C]=q.get(r),[p,k]=Ie(e),R=y.useRef(!1),v=y.useRef(!1),w=y.useRef(p),S=y.useRef(t),I=y.useRef(n),m=()=>I.current,D=()=>m().isVisible()&&m().isOnline(),[j,B,z,M]=ot(r,p),Y=y.useRef({}).current,Wt=E(i)?n.fallback[p]:i,Me=(b,O)=>{for(const x in Y){const T=x;if(T==="data"){if(!o(b[T],O[T])&&(!E(b[T])||!o(ae,O[T])))return!1}else if(O[T]!==b[T])return!1}return!0},Fe=y.useMemo(()=>{const b=!p||!t?!1:E(d)?m().isPaused()||s?!1:E(h)?!0:h:d,O=P=>{const U=H(P);return delete U._k,b?{isValidating:!0,isLoading:!0,...U}:U},x=j(),T=M(),F=O(x),Z=x===T?F:O(T);let A=F;return[()=>{const P=O(j());return Me(P,A)?(A.data=P.data,A.isLoading=P.isLoading,A.isValidating=P.isValidating,A.error=P.error,A):(A=P,P)},()=>Z]},[r,p]),J=rn.useSyncExternalStore(y.useCallback(b=>z(p,(O,x)=>{Me(x,O)||b()}),[r,p]),Fe[0],Fe[1]),Ne=!R.current,qt=c[p]&&c[p].length>0,X=J.data,Q=E(X)?Wt:X,ie=J.error,Ue=y.useRef(Q),ae=l?E(X)?Ue.current:X:Q,We=qt&&!E(ie)?!1:Ne&&!E(d)?d:m().isPaused()?!1:s?E(Q)?!1:h:E(Q)||h,qe=!!(p&&t&&Ne&&We),Bt=E(J.isValidating)?qe:J.isValidating,$t=E(J.isLoading)?qe:J.isLoading,ne=y.useCallback(async b=>{const O=S.current;if(!p||!O||v.current||m().isPaused())return!1;let x,T,F=!0;const Z=b||{},A=!g[p]||!Z.dedupe,P=()=>ke?!v.current&&p===w.current&&R.current:p===w.current,U={isValidating:!1,isLoading:!1},$e=()=>{B(U)},Ge=()=>{const V=g[p];V&&V[1]===T&&delete g[p]},He={isValidating:!0};E(j().data)&&(He.isLoading=!0);try{if(A&&(B(He),n.loadingTimeout&&E(j().data)&&setTimeout(()=>{F&&P()&&m().onLoadingSlow(p,n)},n.loadingTimeout),g[p]=[O(k),xe()]),[x,T]=g[p],x=await x,A&&setTimeout(Ge,n.dedupingInterval),!g[p]||g[p][1]!==T)return A&&P()&&m().onDiscarded(p),!1;U.error=L;const V=_[p];if(!E(V)&&(T<=V[0]||T<=V[1]||V[1]===0))return $e(),A&&P()&&m().onDiscarded(p),!1;const W=j().data;U.data=o(W,x)?W:x,A&&P()&&m().onSuccess(x,p,n)}catch(V){Ge();const W=m(),{shouldRetryOnError:ge}=W;W.isPaused()||(U.error=V,A&&P()&&(W.onError(V,p,W),(ge===!0||N(ge)&&ge(V))&&(!m().revalidateOnFocus||!m().revalidateOnReconnect||D())&&W.onErrorRetry(V,p,W,Gt=>{const ye=c[p];ye&&ye[0]&&ye[0](re.ERROR_REVALIDATE_EVENT,Gt)},{retryCount:(Z.retryCount||0)+1,dedupe:!0})))}return F=!1,$e(),!0},[p,r]),Be=y.useCallback((...b)=>ut(r,w.current,...b),[]);if(we(()=>{S.current=t,I.current=n,E(X)||(Ue.current=X)}),we(()=>{if(!p)return;const b=ne.bind(L,be);let O=0;const T=jn(p,c,(F,Z={})=>{if(F==re.FOCUS_EVENT){const A=Date.now();m().revalidateOnFocus&&A>O&&D()&&(O=A+m().focusThrottleInterval,b())}else if(F==re.RECONNECT_EVENT)m().revalidateOnReconnect&&D()&&b();else{if(F==re.MUTATE_EVENT)return ne();if(F==re.ERROR_REVALIDATE_EVENT)return ne(Z)}});return v.current=!1,w.current=p,R.current=!0,B({_k:k}),We&&(E(Q)||se?b():hn(b)),()=>{v.current=!0,T()}},[p]),we(()=>{let b;function O(){const T=N(f)?f(j().data):f;T&&b!==-1&&(b=setTimeout(x,T))}function x(){!j().error&&(a||m().isVisible())&&(u||m().isOnline())?ne(be).then(O):O()}return O(),()=>{b&&(clearTimeout(b),b=-1)}},[f,a,u,p]),y.useDebugValue(ae),s&&E(Q)&&p){if(!ke&&se)throw new Error("Fallback data is required when using suspense in SSR.");S.current=t,I.current=n,v.current=!1;const b=C[p];if(!E(b)){const O=Be(b);Xe(O)}if(E(ie)){const O=ne(be);E(ae)||(O.status="fulfilled",O.value=!0),Xe(O)}else throw ie}return{mutate:Be,get data(){return Y.data=!0,ae},get error(){return Y.error=!0,ie},get isValidating(){return Y.isValidating=!0,Bt},get isLoading(){return Y.isLoading=!0,$t}}},In=Pn(Ln);function Vn(){const{widgetCtx:e}=K();return In([e.config.token],e.api.widgetPrelude,{revalidateOnFocus:!1})}function Mn(){const{widgetCtx:e}=K();return{routerState:ee(e.routerCtx.state),toSessionsScreen:e.routerCtx.toSessionsScreen,toChatScreen:e.routerCtx.toChatScreen}}var lt={},Pe=function(e,t){return Pe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o])},Pe(e,t)};function dt(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Pe(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var le=function(){return le=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},le.apply(this,arguments)};function pt(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function ht(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var d=e.length-1;d>=0;d--)(i=e[d])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function gt(e,t){return function(n,r){t(n,r,e)}}function yt(e,t,n,r,o,s){function i(p){if(p!==void 0&&typeof p!="function")throw new TypeError("Function expected");return p}for(var d=r.kind,h=d==="getter"?"get":d==="setter"?"set":"value",f=!t&&e?r.static?e:e.prototype:null,a=t||(f?Object.getOwnPropertyDescriptor(f,r.name):{}),u,l=!1,c=n.length-1;c>=0;c--){var _={};for(var g in r)_[g]=g==="access"?{}:r[g];for(var g in r.access)_.access[g]=r.access[g];_.addInitializer=function(p){if(l)throw new TypeError("Cannot add initializers after decoration has completed");s.push(i(p||null))};var C=(0,n[c])(d==="accessor"?{get:a.get,set:a.set}:a[h],_);if(d==="accessor"){if(C===void 0)continue;if(C===null||typeof C!="object")throw new TypeError("Object expected");(u=i(C.get))&&(a.get=u),(u=i(C.set))&&(a.set=u),(u=i(C.init))&&o.unshift(u)}else(u=i(C))&&(d==="field"?o.unshift(u):a[h]=u)}f&&Object.defineProperty(f,r.name,a),l=!0}function _t(e,t,n){for(var r=arguments.length>2,o=0;o<t.length;o++)n=r?t[o].call(e,n):t[o].call(e);return r?n:void 0}function Et(e){return typeof e=="symbol"?e:"".concat(e)}function vt(e,t,n){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function St(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function wt(e,t,n,r){function o(s){return s instanceof n?s:new n(function(i){i(s)})}return new(n||(n=Promise))(function(s,i){function d(a){try{f(r.next(a))}catch(u){i(u)}}function h(a){try{f(r.throw(a))}catch(u){i(u)}}function f(a){a.done?s(a.value):o(a.value).then(d,h)}f((r=r.apply(e,t||[])).next())})}function mt(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,o,s,i=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return i.next=d(0),i.throw=d(1),i.return=d(2),typeof Symbol=="function"&&(i[Symbol.iterator]=function(){return this}),i;function d(f){return function(a){return h([f,a])}}function h(f){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,f[0]&&(n=0)),n;)try{if(r=1,o&&(s=f[0]&2?o.return:f[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,f[1])).done)return s;switch(o=0,s&&(f=[f[0]&2,s.value]),f[0]){case 0:case 1:s=f;break;case 4:return n.label++,{value:f[1],done:!1};case 5:n.label++,o=f[1],f=[0];continue;case 7:f=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(f[0]===6||f[0]===2)){n=0;continue}if(f[0]===3&&(!s||f[1]>s[0]&&f[1]<s[3])){n.label=f[1];break}if(f[0]===6&&n.label<s[1]){n.label=s[1],s=f;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(f);break}s[2]&&n.ops.pop(),n.trys.pop();continue}f=t.call(e,n)}catch(a){f=[6,a],o=0}finally{r=s=0}if(f[0]&5)throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}}var he=Object.create?function(e,t,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]};function bt(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&he(t,e,n)}function de(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ve(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),o,s=[],i;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)s.push(o.value)}catch(d){i={error:d}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return s}function Ot(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Ve(arguments[t]));return e}function Rt(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),o=0,t=0;t<n;t++)for(var s=arguments[t],i=0,d=s.length;i<d;i++,o++)r[o]=s[i];return r}function Tt(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,s;r<o;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return e.concat(s||Array.prototype.slice.call(t))}function te(e){return this instanceof te?(this.v=e,this):new te(e)}function Ct(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,s=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),d("next"),d("throw"),d("return",i),o[Symbol.asyncIterator]=function(){return this},o;function i(c){return function(_){return Promise.resolve(_).then(c,u)}}function d(c,_){r[c]&&(o[c]=function(g){return new Promise(function(C,p){s.push([c,g,C,p])>1||h(c,g)})},_&&(o[c]=_(o[c])))}function h(c,_){try{f(r[c](_))}catch(g){l(s[0][3],g)}}function f(c){c.value instanceof te?Promise.resolve(c.value.v).then(a,u):l(s[0][2],c)}function a(c){h("next",c)}function u(c){h("throw",c)}function l(c,_){c(_),s.shift(),s.length&&h(s[0][0],s[0][1])}}function Dt(e){var t,n;return t={},r("next"),r("throw",function(o){throw o}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(o,s){t[o]=e[o]?function(i){return(n=!n)?{value:te(e[o](i)),done:!1}:s?s(i):i}:s}}function At(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof de=="function"?de(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=e[s]&&function(i){return new Promise(function(d,h){i=e[s](i),o(d,h,i.done,i.value)})}}function o(s,i,d,h){Promise.resolve(h).then(function(f){s({value:f,done:d})},i)}}function xt(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var Fn=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function Pt(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&he(t,e,n);return Fn(t,e),t}function jt(e){return e&&e.__esModule?e:{default:e}}function Lt(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}function It(e,t,n,r,o){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?o.call(e,n):o?o.value=n:t.set(e,n),n}function Vt(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function Mt(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var r,o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(o=r)}if(typeof r!="function")throw new TypeError("Object not disposable.");o&&(r=function(){try{o.call(this)}catch(s){return Promise.reject(s)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var Nn=typeof SuppressedError=="function"?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function Ft(e){function t(s){e.error=e.hasError?new Nn(s,e.error,"An error was suppressed during disposal."):s,e.hasError=!0}var n,r=0;function o(){for(;n=e.stack.pop();)try{if(!n.async&&r===1)return r=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var s=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(s).then(o,function(i){return t(i),o()})}else r|=1}catch(i){t(i)}if(r===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return o()}function Nt(e,t){return typeof e=="string"&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(n,r,o,s,i){return r?t?".jsx":".js":o&&(!s||!i)?n:o+s+"."+i.toLowerCase()+"js"}):e}const Un={__extends:dt,__assign:le,__rest:pt,__decorate:ht,__param:gt,__esDecorate:yt,__runInitializers:_t,__propKey:Et,__setFunctionName:vt,__metadata:St,__awaiter:wt,__generator:mt,__createBinding:he,__exportStar:bt,__values:de,__read:Ve,__spread:Ot,__spreadArrays:Rt,__spreadArray:Tt,__await:te,__asyncGenerator:Ct,__asyncDelegator:Dt,__asyncValues:At,__makeTemplateObject:xt,__importStar:Pt,__importDefault:jt,__classPrivateFieldGet:Lt,__classPrivateFieldSet:It,__classPrivateFieldIn:Vt,__addDisposableResource:Mt,__disposeResources:Ft,__rewriteRelativeImportExtension:Nt},Wn=Object.freeze(Object.defineProperty({__proto__:null,__addDisposableResource:Mt,get __assign(){return le},__asyncDelegator:Dt,__asyncGenerator:Ct,__asyncValues:At,__await:te,__awaiter:wt,__classPrivateFieldGet:Lt,__classPrivateFieldIn:Vt,__classPrivateFieldSet:It,__createBinding:he,__decorate:ht,__disposeResources:Ft,__esDecorate:yt,__exportStar:bt,__extends:dt,__generator:mt,__importDefault:jt,__importStar:Pt,__makeTemplateObject:xt,__metadata:St,__param:gt,__propKey:Et,__read:Ve,__rest:pt,__rewriteRelativeImportExtension:Nt,__runInitializers:_t,__setFunctionName:vt,__spread:Ot,__spreadArray:Tt,__spreadArrays:Rt,__values:de,default:Un},Symbol.toStringTag,{value:"Module"})),qn=en(Wn);var fe={},Qe;function Bn(){if(Qe)return fe;Qe=1,Object.defineProperty(fe,"__esModule",{value:!0});var e=y;function t(){var n=e.useRef(!1),r=e.useCallback(function(){return n.current},[]);return e.useEffect(function(){return n.current=!0,function(){n.current=!1}},[]),r}return fe.default=t,fe}Object.defineProperty(lt,"__esModule",{value:!0});var je=qn,Oe=y,$n=je.__importDefault(Bn());function Gn(e,t,n){t===void 0&&(t=[]),n===void 0&&(n={loading:!1});var r=Oe.useRef(0),o=$n.default(),s=Oe.useState(n),i=s[0],d=s[1],h=Oe.useCallback(function(){for(var f=[],a=0;a<arguments.length;a++)f[a]=arguments[a];var u=++r.current;return i.loading||d(function(l){return je.__assign(je.__assign({},l),{loading:!0})}),e.apply(void 0,f).then(function(l){return o()&&u===r.current&&d({value:l,loading:!1}),l},function(l){return o()&&u===r.current&&d({error:l,loading:!1}),l})},t);return[i,h]}var Hn=lt.default=Gn;const $=new Map;function Kn(){const[e,t]=y.useState([]),{widgetCtx:{api:n}}=K();function r(a){const u=a.map(l=>({file:l,id:Ht.v4(),status:"pending",progress:0}));t(l=>[...l,...u]),u.forEach(i)}function o(a,u){t(l=>l.map(c=>c.id===a?{...c,...u}:c))}function s(a){t(u=>u.filter(l=>l.id!==a))}const i=async a=>{const u=new AbortController;$.set(a.id,u);try{t(c=>c.map(_=>_.id===a.id?{..._,status:"uploading",progress:0}:_));const l=await n.uploadFile({file:a.file,abortSignal:u.signal,onProgress:c=>{o(a.id,{progress:c})}});o(a.id,{status:"success",fileUrl:l.fileUrl,progress:100})}catch(l){u.signal.aborted||o(a.id,{status:"error",error:l instanceof Error?l.message:"Upload failed",progress:0})}finally{$.delete(a.id)}},d=a=>{const u=$.get(a);u&&(u.abort(),$.delete(a)),s(a)},h=y.useMemo(()=>e.filter(a=>a.status==="success"&&a.fileUrl),[e]);function f(){$.forEach(a=>a.abort()),$.clear(),t([])}return y.useEffect(()=>()=>{$.forEach(a=>a.abort()),$.clear()},[]),{allFiles:e,appendFiles:r,handleCancelUpload:d,successFiles:h,emptyTheFiles:f,getFileById:a=>e.find(u=>u.id===a),getUploadProgress:a=>{var u;return((u=e.find(l=>l.id===a))==null?void 0:u.progress)??0},getUploadStatus:a=>{var u;return(u=e.find(l=>l.id===a))==null?void 0:u.status},hasErrors:e.some(a=>a.status==="error"),isUploading:e.some(a=>a.status==="uploading")}}const Ut=y.createContext(null);function zn({children:e}){const t=tt(),[n,r]=y.useState(t.isOpen??!1);return y.useEffect(()=>{r(o=>t.isOpen??o)},[t.isOpen]),Ze.jsx(Ut.Provider,{value:{isOpen:n,setIsOpen:r},children:e})}function kn(){const e=y.useContext(Ut);if(!e)throw new Error("useWidgetTrigger must be used within a WidgetTriggerProvider");return e}exports.WidgetProvider=Yt;exports.WidgetTriggerProvider=zn;exports._default=Hn;exports.commonjsGlobal=Qt;exports.getDefaultExportFromCjs=Zt;exports.useConfig=tt;exports.useContact=Jt;exports.useIsAwaitingBotReply=Xt;exports.useMessages=nt;exports.usePreludeData=Vn;exports.usePrimitiveState=ee;exports.useSessions=rt;exports.useUploadFiles=Kn;exports.useWidget=K;exports.useWidgetRouter=Mn;exports.useWidgetTrigger=kn;
18
- //# sourceMappingURL=useWidgetTrigger-CiYy4rS2.cjs.map
18
+ //# sourceMappingURL=useWidgetTrigger-Bj4tpdxy.cjs.map