@sendbird/ai-agent-messenger-react 1.23.0 → 1.24.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.cjs +118 -113
- package/dist/index.d.ts +66 -61
- package/dist/index.js +1935 -1929
- package/package.json +3 -3
- package/dist/cjs/CKPzhVy2.cjs +0 -1
- package/dist/cjs/CZIjo9nb.cjs +0 -1
- package/dist/cjs/DlvMdI1f.cjs +0 -1
- package/dist/cjs/JA0x62Fd.cjs +0 -1
- package/dist/cjs/PhHbzZB_.cjs +0 -1
- package/dist/cjs/ohTjxqcW.cjs +0 -1
- package/dist/es/CAIYsKDy.js +0 -5
- package/dist/es/CZXPLnTx.js +0 -5
- package/dist/es/DHVHq9Fo.js +0 -5
- package/dist/es/DMruRpOm.js +0 -5
- package/dist/es/Dp48Y7fJ.js +0 -5
- package/dist/es/dqwvRBog.js +0 -5
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";var yi=Object.defineProperty;var Si=(e,t,n)=>t in e?yi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var A=(e,t,n)=>Si(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("@sendbird/chat"),c=require("react"),R=require("styled-components"),We=require("date-fns"),Ai=require("date-fns/locale/en-US"),qe=require("@sendbird/chat/message"),Ee=require("@sendbird/chat/aiAgent"),gt=require("@sendbird/chat/groupChannel"),Ye=require("@sendbird/uikit-tools"),xi=require("react-dom"),Ti=require("date-fns/isSameDay"),Fn=require("@sendbird/react-uikit-message-template-view"),Ii=require("@sendbird/uikit-message-template"),wi=require("dompurify"),ki=require("@emotion/is-prop-valid"),dn=e=>e&&e.__esModule?e:{default:e};function Li(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Mi=dn(ie),i=Li(c),_=dn(R),Fo=dn(wi),Oi=dn(ki),ut="sb-agent",Bo="KEY_IMG_ASPECT_RATIO",Bn="*/*",Y={BODY_MAX_WIDTH:244,WIDE_BODY_MAX_WIDTH:640,AVATAR_SIZE:26,BODY_TIME_GAP:4,HORIZONTAL_PADDING:12,GAP_GROUPED:2,GAP_UNGROUPED:16};var Qt=(e=>(e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELED="CANCELED",e))(Qt||{}),St=(e=>(e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELED="CANCELED",e))(St||{});const Ho=e=>{var t;return!!((t=e==null?void 0:e.extendedMessagePayload)!=null&&t.steward)},Ri=e=>e===St.COMPLETED||e===St.CANCELED?e:St.IN_PROGRESS,Sn=e=>Oe(e)&&!Ho(e),Oe=e=>!!e&&"sender"in e,Ni=e=>Oe(e)?e.sendingStatus==="succeeded"?String(e.messageId):e.reqId:String(e.messageId),kr=(e,t)=>!e||!t?!1:Oe(e)&&Oe(t)?e.messageId>0&&t.messageId>0?e.messageId===t.messageId:e.reqId.length>0&&e.reqId===t.reqId:e.messageId>0&&e.messageId===t.messageId,Di=(e,t,n,r=!0)=>{if(!r||!Sn(e))return"single";const o=()=>{if(!Sn(t))return!1;const u=t.sender.userId===e.sender.userId,d=We.isSameMinute(t.createdAt,e.createdAt);return u&&d},s=()=>{if(!Sn(n))return!1;const u=n.sender.userId===e.sender.userId,d=We.isSameMinute(n.createdAt,e.createdAt);return u&&d},a=o(),l=s();return a&&l?"middle":a?"bottom":l?"top":"single"},Tt=(e,t)=>(()=>{var r;return Oe(e)?e.sender.userId:((r=e==null?void 0:e.sender)==null?void 0:r.userId)??void 0})()===t,pe={isAdmin:e=>e.isAdminMessage(),isCSAT:e=>{var t;return e.isAdminMessage()&&!!((t=e.extendedMessagePayload)!=null&&t.csat)},isSteward:e=>Ho(e),isIncoming:(e,t)=>Oe(e)&&e.sender.userId!==t,isOutgoing:(e,t)=>Oe(e)&&(e.sender.userId===t||e.sendingStatus===qe.SendingStatus.PENDING)},ze=e=>e.startsWith("image/"),Uo=e=>e.startsWith("video/"),Qn=(e,t)=>{if(e&&!e.startsWith(".")){const n=e.split(".").pop();if(n&&n!==e)return n.toUpperCase()}if(t){const[,n]=t.split("/");if(n)return n.toUpperCase()}return"FILE"},Vo=e=>{var t;return e.messageType==="file"?e.message.length>0&&e.file.name!==e.message:e.messageType==="multipleFiles"?e.message.length>0&&((t=e.files[0])==null?void 0:t.name)!==e.message:e.message.length>0},mn=e=>{switch(e){case"top":case"middle":return Y.GAP_GROUPED;default:return Y.GAP_UNGROUPED}},$i=(e,t)=>{const n=/```(\w+)?\n([\s\S]*?)```/g,r=[];let o=0;return e.replace(n,(s,...a)=>{const[l,u,d]=a;return o<d&&r.push({type:"text",value:e.slice(o,d).trim()}),r.push({type:"code",value:u.trim(),language:l?l.trim():"plaintext"}),o=d+s.length,s}),o<e.length&&r.push({type:"text",value:e.slice(o).trim()}),t?r.map(s=>s.type!=="text"?s:{...s,value:t(s.value)}):r},Pi=e=>e.replace(/\[([^\]]+)\](?!\()/g,"\\[$1\\]"),Fi=e=>e.replace(/([a-zA-Z0-9])_(?=[a-zA-Z0-9])/g,"$1\\_"),Bi=e=>e.replace(/~~/g,"\\~\\~"),Hi=e=>{let t=e;return t=Pi(t),t=Fi(t),t=Bi(t),t},Ui=typeof navigator<"u"&&navigator.product==="ReactNative",Lr=(e,t)=>{const n=r=>!t||t.length===0?!0:Oe(r)&&t.includes(r.sendingStatus);return Ui?e.find(n):e.findLast(n)};function oe(){}function Vi(){const e=typeof navigator<"u"?navigator.userAgent:"",t=/iPad|iPhone|iPod/.test(e),n=/Android/.test(e);return t||n}function Gi(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t.toString(16)}const Hn=e=>{try{return JSON.parse(e===""?"{}":e)}catch{return{}}},$e={isStreaming(e){const t=Hn(e.data);return typeof t=="object"&&!!t.stream},isWelcomeMessage(e,t){var n;if(((n=e.extendedMessagePayload)==null?void 0:n.bot_message_type)==="welcome")return!0;if(Tt(e,t)){const r=Hn(e.data);return!(r!=null&&r.respond_mesg_id)&&!(r!=null&&r.stream)}return!1},isGeneratedMessage(e){var t;return((t=e.extendedMessagePayload)==null?void 0:t.bot_message_type)==="generated"},hasFeedback(e){var t;return!!((t=e.extendedMessagePayload)!=null&&t.feedback)}},An=`@${ut}`,zi=({appId:e,aiAgentId:t,storage:n})=>{const r={templateBase:`${An}-template`,template:o=>`${r.templateBase}/templates/${o}`,templateToken:()=>`${r.templateBase}/tokens`,messengerSession:o=>{const s=Gi(`${e}/${t}/${o}`);return`${An}-udata/${s}`},anonUserSession:()=>`${An}-session/${e}/${t}`};return{template:{set:(o,s)=>n.set(r.template(o),s),get:o=>n.get(r.template(o)),setCachedToken:o=>n.set(r.templateToken(),o),getCachedToken:()=>n.get(r.templateToken()),clear:()=>{n.getKeys(r.templateBase).forEach(n.delete)}},messenger:{getSettings:o=>{try{const s=n.get(r.messengerSession(o));return s?JSON.parse(s):null}catch{return null}},setSettings:(o,s)=>{try{delete s.auto_created_user;const a=JSON.stringify(s);n.set(r.messengerSession(o),a)}catch{return}},getAnonUser:()=>{try{const o=n.get(r.anonUserSession());return o?JSON.parse(o):null}catch{return null}},setAnonUser:o=>{try{const s=JSON.stringify(o);n.set(r.anonUserSession(),s)}catch{return}},clear:o=>{try{o&&n.delete(r.messengerSession(o)),n.delete(r.anonUserSession())}catch{return}}}}},Go=(e,t,n={})=>{let r=null,o=null,s=null;const{leading:a=!0,trailing:l=!0}=n,u=(...d)=>{const m=Date.now();if(s===null||m-s>=t)a?(e(...d),s=m):(o=d,s=m);else if(o=d,l&&!r){const h=t-(m-s);r=setTimeout(()=>{o&&l&&(e(...o),s=Date.now()),r=null,o=null},h)}};return u.cancel=()=>{r&&(clearTimeout(r),r=null),o=null,s=null},u};class zo{constructor(t,{filter:n,limit:r=20}){A(this,"filter");A(this,"_sdk");A(this,"_pinnedChannels");A(this,"_channels");A(this,"_isDisposed",!1);A(this,"_handlerId",`handler-id-${Date.now()}`);A(this,"_order",gt.GroupChannelListOrder.LATEST_LAST_MESSAGE);A(this,"_limit");A(this,"_query");A(this,"_token");A(this,"_timestamp");A(this,"_isSyncing");A(this,"_channelHandler");A(this,"_connectionHandler");A(this,"_collectionEventHandler");A(this,"_throttledOnChannelChanged");var o,s,a,l,u,d,m;this.filter=n,this._sdk=t,this._pinnedChannels=[],this._channels=[],this._limit=r,this._query=this._sdk.aiAgent.createMyGroupChannelListQuery({aiAgentChannelFilter:(o=this.filter)==null?void 0:o.aiAgentChannelFilter,aiAgentConversationStatusFilter:(s=this.filter)==null?void 0:s.aiAgentConversationStatusFilter,aiAgentIds:(a=this.filter)==null?void 0:a.aiAgentIds,deskChannelFilter:(l=this.filter)==null?void 0:l.deskChannelFilter,pinnedChannelUrls:(u=this.filter)==null?void 0:u.pinnedChannelUrls,copilotConversationOnly:(d=this.filter)==null?void 0:d.copilotConversationOnly,copilotSupportChannelUrl:(m=this.filter)==null?void 0:m.copilotSupportChannelUrl,limit:this._limit}),this._token="",this._timestamp=Number.MAX_SAFE_INTEGER,this._isSyncing=!1,this._throttledOnChannelChanged=Go(h=>{this._query.belongsTo(h)?this._addChannelsToView([h],!1):this._removeChannelsFromView([h.url])},250,{trailing:!1,leading:!0}),this._channelHandler=new gt.GroupChannelHandler({onChannelChanged:h=>{h.isGroupChannel()&&this._throttledOnChannelChanged(h)},onChannelDeleted:h=>{this._removeChannelsFromView([h])}}),this._connectionHandler=new ie.ConnectionHandler({onReconnectSucceeded:()=>{this._isDefaultChangelogSyncTimestampUpdated&&this._syncChannelChangelogs()}}),this._sdk.addConnectionHandler(this._handlerId,this._connectionHandler),this._sdk.groupChannel.addGroupChannelHandler(this._handlerId,this._channelHandler)}get _isDefaultChangelogSyncTimestampUpdated(){return this._timestamp!==Number.MAX_SAFE_INTEGER}_setDefaultChangelogsSyncTimestamp(t){var s,a;const n=new Set(((s=this.filter)==null?void 0:s.pinnedChannelUrls)??[]),r=t.find(l=>!n.has(l.url));let o;r?o=((a=r.lastMessage)==null?void 0:a.createdAt)??r.createdAt:o=this._query.lastResponseAt,this._timestamp>o&&(this._timestamp=o)}async _syncChannelChangelogs(){if(this._isDisposed)return[];if(this._isSyncing)return[];try{this._isSyncing=!0;let t;for(this._token?t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter):t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByTimestamp(this._timestamp,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls);t.hasMore&&t.token;)t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls)}catch{}finally{this._isSyncing=!1}return[]}_upsertPinnedChannelsToArray(t){var l;const n=((l=this.filter)==null?void 0:l.pinnedChannelUrls)??[],r=new Map(n.map((u,d)=>[u,d])),o=[],s=[],a=[];for(const u of t){if(!this._query.belongsTo(u)){a.push(u.url);continue}const d=r.get(u.url);if(d===void 0)continue;const m=Un(this._pinnedChannels,u);m>=0?(this._pinnedChannels.splice(m,1),s.push(u)):o.push(u);const g=this._pinnedChannels.findIndex(b=>(r.get(b.url)??1/0)>d),C=g===-1?this._pinnedChannels.length:g;this._pinnedChannels.splice(C,0,u)}return{addedChannels:o,updatedChannels:s,unmatchedChannelUrls:a}}_upsertRegularChannelsToArray(t,n=!1){const r=[],o=[],s=[];for(const a of t){if(!this._query.belongsTo(a)){r.push(a.url);continue}const l=Un(this._channels,a),u=l<0;!u&&this._channels.splice(l,1);const m=Wi(this._channels,a,this._order).place,h=m===this._channels.length;u?h?(n||!this.hasMore)&&(this._channels.push(a),o.push(a)):(this._channels.splice(m,0,a),o.push(a)):(this._channels.splice(m,0,a),s.push(a))}return{addedChannels:o,updatedChannels:s,unmatchedChannelUrls:r}}_addChannelsToView(t,n=!1){var h,g,C,b,v;const r=new Set(((h=this.filter)==null?void 0:h.pinnedChannelUrls)??[]),o=[],s=[];for(const f of t)r.has(f.url)?o.push(f):s.push(f);const a=this._upsertPinnedChannelsToArray(o),l=this._upsertRegularChannelsToArray(s,n),u=a.addedChannels.concat(l.addedChannels),d=a.updatedChannels.concat(l.updatedChannels),m=a.unmatchedChannelUrls.concat(l.unmatchedChannelUrls);u.length>0&&((C=(g=this._collectionEventHandler)==null?void 0:g.onChannelsAdded)==null||C.call(g,{},u)),d.length>0&&((v=(b=this._collectionEventHandler)==null?void 0:b.onChannelsUpdated)==null||v.call(b,{},d)),m.length>0&&this._removeChannelsFromView(m)}_removeChannelsFromView(t){var o,s,a;const n=new Set(((o=this.filter)==null?void 0:o.pinnedChannelUrls)??[]),r=[];for(const l of t)if(n.has(l)){const u=this._pinnedChannels.findIndex(d=>d.url===l);u>=0&&(r.push(l),this._pinnedChannels.splice(u,1))}else{const u=this._channels.findIndex(d=>d.url===l);u>=0&&(r.push(l),this._channels.splice(u,1))}r.length>0&&((a=(s=this._collectionEventHandler)==null?void 0:s.onChannelsDeleted)==null||a.call(s,{},r))}get channels(){return this._isDisposed?[]:[...this._pinnedChannels,...this._channels]}get hasMore(){return this._isDisposed?!1:this._query.hasNext}async loadMore(){if(this._isDisposed)return[];if(this.hasMore){const t=await this._query.next();return this._setDefaultChangelogsSyncTimestamp(t),this._addChannelsToView(t,!0),t}return[]}setConversationListCollectionHandler(t){this._collectionEventHandler=t}dispose(){this._isDisposed||(this._isDisposed=!0,this._throttledOnChannelChanged.cancel(),this._collectionEventHandler=void 0,this._sdk.removeConnectionHandler(this._handlerId),this._sdk.groupChannel.removeGroupChannelHandler(this._handlerId),this._pinnedChannels.length=0,this._channels.length=0)}}const Un=(e,t)=>e.findIndex(n=>n.isIdentical(t)),Wi=(e,t,n)=>{if(e.length>0){const r=Un(e,t);let o=0,s=e.length-1,a=Math.floor((o+s)/2);for(;o<s;){const u=Mr(e[a],t,n);if(u>0)s=a,a=Math.floor((o+s)/2);else if(u<0)o=a+1,a=Math.floor((o+s)/2);else return{place:a,oldPosition:r}}return{place:Mr(e[a],t,n)>=0?a:a+1,oldPosition:r}}return{place:e.length,oldPosition:-1}},Mr=(e,t,n)=>{switch(n){case gt.GroupChannelListOrder.LATEST_LAST_MESSAGE:if(e.lastMessage&&t.lastMessage){const r=t.lastMessage.createdAt-e.lastMessage.createdAt;return r===0?t.createdAt-e.createdAt:r}else return e.lastMessage?-1:t.lastMessage?1:t.createdAt-e.createdAt;default:return 0}};class Wo{constructor(t){A(this,"subscribers",{});this.logger=t}async send(t){const n=qi(),r=this.subscribers[t.type];if(r){this.logger.debug(`messenger.dispatcher: dispatching command: ${t.type}`,t.payload);const o=r.map(s=>s(t.payload));await Promise.all(o).catch(s=>{this.logger.error(`messenger.dispatcher: error in callback for command: ${t.type}`,s)})}return n.resolve(),n.promise}subscribe(t,n){this.subscribers[t]||(this.subscribers[t]=[]),this.subscribers[t].push(n)}unsubscribe(t,n){const r=this.subscribers[t];r&&(this.subscribers[t]=r.filter(o=>o!==n))}}const qi=()=>{let e=oe,t=oe;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}};var Me=(e=>(e.ConversationClose="conv.close",e.MessengerSettingsUpdated="messenger.settings.updated",e.ActiveChannelUpdated="active.channel.updated",e.AnonymousSessionTokenExpired="anon.token.expired",e.AuthTokenRefreshed="auth.token.refreshed",e))(Me||{});class It{constructor(t={}){A(this,"payload");this.payload=t}toJSON(){return JSON.stringify({type:this.type,payload:this.payload})}}const rt={CloseConversation:e=>new Ki(e),MessengerSettingsUpdated:e=>new Yi(e),ActiveChannelUpdated:e=>new ji(e),AnonymousSessionTokenExpired:()=>new Xi,AuthTokenRefreshed:()=>new Zi};class Ki extends It{constructor(){super(...arguments);A(this,"type","conv.close")}}class Yi extends It{constructor(){super(...arguments);A(this,"type","messenger.settings.updated")}}class ji extends It{constructor(){super(...arguments);A(this,"type","active.channel.updated")}}class Xi extends It{constructor(){super(...arguments);A(this,"type","anon.token.expired")}}class Zi extends It{constructor(){super(...arguments);A(this,"type","auth.token.refreshed")}}var er=(e=>(e[e.VERBOSE=0]="VERBOSE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.NONE=5]="NONE",e))(er||{});class qo{constructor(t){A(this,"level");this.level=t}verbose(...t){this.level<=0&&console.log(`[${ut}/verbose]`,...t)}debug(...t){this.level<=1&&console.log(`[${ut}/debug]`,...t)}info(...t){this.level<=2&&console.log(`[${ut}/info]`,...t)}warn(...t){this.level<=3&&console.warn(`[${ut}/warn]`,...t)}error(...t){this.level<=4&&console.error(`[${ut}/error]`,...t)}}class Ko{constructor({userId:t,authToken:n,sessionHandler:r}){A(this,"userId");A(this,"authToken");A(this,"sessionHandler");this.userId=t,this.authToken=n,this.sessionHandler=r}}class Vn{constructor(){A(this,"userId");A(this,"authToken");A(this,"sessionHandler")}}const Ji=e=>({onSessionTokenRequired:t=>{t(null),e.send(rt.AnonymousSessionTokenExpired())}}),Qi="ai_agent:stats",ea="conversation_initial_render",ta=800220;var ae=(e=>(e.AUTH="auth_duration",e.GET_CHANNEL="get_channel_duration",e.GET_MESSAGES="get_messages_duration",e.TOTAL_DURATION="total_duration",e.TOTAL_DURATION_FROM_CACHE="total_duration_from_cache",e))(ae||{});class na{constructor(){A(this,"timers",new Map);A(this,"committed",!1);A(this,"commitCallback",null);A(this,"conversationId",null);A(this,"channelUrl",null);A(this,"errorCode",null);A(this,"errorDescription",null);A(this,"extraData",{})}setCommitCallback(t){return this.commitCallback=t,this}setConversationId(t){return this.conversationId=t,this}setChannelUrl(t){return this.setExtra("channel_url",t),this}setError(t,n){return this.errorCode=t??ta,this.errorDescription=n,this}setExtra(t,n){return n!=null&&(this.extraData[t]=n),this}startTimer(t){if(this.committed)return this;const n=this.timers.get(t);return(n==null?void 0:n.startTime)!==null&&(n==null?void 0:n.startTime)!==void 0?this:(this.timers.set(t,{startTime:Date.now(),endTime:null}),this)}stopTimer(t){if(this.committed)return this;const n=this.timers.get(t);return!n||n.startTime===null||n.endTime!==null?this:(this.timers.set(t,{...n,endTime:Date.now()}),this)}getDuration(t){const n=this.timers.get(t);return!n||n.startTime===null||n.endTime===null?null:n.endTime-n.startTime}isCommitted(){return this.committed}commit(){if(this.committed||!this.commitCallback)return!1;const t=this.buildPayload();return t?(this.committed=!0,this.commitCallback(Qi,t)):!1}}class ra extends na{constructor(){super(...arguments);A(this,"presentMethod","direct_present")}setPresentMethod(n){return this.presentMethod=n,this}getMetricKey(){return ea}buildPayload(){const n=this.getDuration(ae.AUTH),r=this.getDuration(ae.GET_CHANNEL),o=this.getDuration(ae.GET_MESSAGES),s=this.getDuration(ae.TOTAL_DURATION_FROM_CACHE),a=this.getDuration(ae.TOTAL_DURATION),l={...this.extraData,present_method:this.presentMethod,...n!==null&&{auth_duration:n},...r!==null&&{get_channel_duration:r},...o!==null&&{get_messages_duration:o},...s!==null&&{total_duration_from_cache:s}},u={key:this.getMetricKey(),value:a!==null?String(a):"0"};return this.conversationId!==null&&(u.conversation_id=this.conversationId),this.errorCode!==null&&(u.error_code=this.errorCode),this.errorDescription!==null&&(u.error_description=this.errorDescription),Object.keys(l).length>0&&(u.extra=l),u}}class oa{constructor(t){A(this,"commitCallback");A(this,"presentMethod","direct_present");A(this,"stats",null);this.commitCallback=t}getOrCreateStats(){return(!this.stats||this.stats.isCommitted())&&(this.stats=new ra().setCommitCallback(this.commitCallback).setPresentMethod(this.presentMethod)),this.stats}onAuthStart(){this.getOrCreateStats().startTimer(ae.TOTAL_DURATION).startTimer(ae.TOTAL_DURATION_FROM_CACHE).startTimer(ae.AUTH)}onAuthComplete(){var t;(t=this.stats)==null||t.stopTimer(ae.AUTH)}onAuthError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(ae.AUTH).setError(t instanceof ie.SendbirdError?t.code:void 0,t.message).stopTimer(ae.TOTAL_DURATION).commit()}onGetChannelStart(){var t;(t=this.stats)==null||t.startTimer(ae.GET_CHANNEL)}onGetChannelComplete(t){this.stats&&(this.stats.stopTimer(ae.GET_CHANNEL),t!==void 0&&this.stats.setConversationId(t),this.stats.startTimer(ae.GET_MESSAGES))}onGetChannelError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(ae.GET_CHANNEL).setError(t instanceof ie.SendbirdError?t.code:void 0,t.message).stopTimer(ae.TOTAL_DURATION).commit()}onCacheResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof ie.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(ae.TOTAL_DURATION_FROM_CACHE))}onApiResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof ie.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(ae.TOTAL_DURATION).stopTimer(ae.GET_MESSAGES).commit())}setChannelUrl(t){var n;(n=this.stats)==null||n.setChannelUrl(t)}cleanup(){var t;(t=this.stats)==null||t.commit()}setPresentMethod(t){var n;this.presentMethod=t,(n=this.stats)==null||n.setPresentMethod(t)}clear(){this.stats=null}}function sa(){let e=null,t=0;const n=(r,o)=>{if((e==null?void 0:e.key)===r)return e.promise;const s=++t,l=(e?e.promise.catch(()=>{}).then(()=>o()):o()).finally(()=>{(e==null?void 0:e.id)===s&&(e=null)});return e={key:r,id:s,promise:l},l};return n.isPending=()=>e!==null,n}const Ge={conversation:{isTalkToAgentViewEnabled:!0,scrollMode:"auto",newMessageIndicatorEnabled:!0,senderAvatarEnabled:!0,messageAlertSoundEnabled:!1,header:{avatarEnabled:!0},input:{camera:{photoEnabled:!0},gallery:{photoEnabled:!0},fileEnabled:!0},fileViewer:{downloadEnabled:!0}}},Or=e=>{var t,n,r,o,s,a,l,u,d,m,h,g,C,b;return e?{...Ge,...e,conversation:{...Ge.conversation,...e==null?void 0:e.conversation,header:{...(t=Ge.conversation)==null?void 0:t.header,...(n=e==null?void 0:e.conversation)==null?void 0:n.header},input:{...(r=Ge.conversation)==null?void 0:r.input,...(o=e==null?void 0:e.conversation)==null?void 0:o.input,camera:{...(a=(s=Ge.conversation)==null?void 0:s.input)==null?void 0:a.camera,...(u=(l=e==null?void 0:e.conversation)==null?void 0:l.input)==null?void 0:u.camera},gallery:{...(m=(d=Ge.conversation)==null?void 0:d.input)==null?void 0:m.gallery,...(g=(h=e==null?void 0:e.conversation)==null?void 0:h.input)==null?void 0:g.gallery}},fileViewer:{...(C=Ge.conversation)==null?void 0:C.fileViewer,...(b=e==null?void 0:e.conversation)==null?void 0:b.fileViewer}}}:Ge},Se=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===Ee.ConversationStatus.CLOSED||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="closed")},tr=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===Ee.ConversationStatus.OPEN||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="open")};function je(e){var n,r,o;return typeof(((n=e==null?void 0:e.conversation)==null?void 0:n.handedOverAt)??((o=(r=e==null?void 0:e.conversation)==null?void 0:r.handoff)==null?void 0:o.timestamp))=="number"}function ia(e){var r;const t=(r=e==null?void 0:e.conversation)==null?void 0:r.handoff;return t?typeof t.requestedAt=="number"&&!je(e):!1}function aa(e){var t;if(((t=e==null?void 0:e.resolution)==null?void 0:t.determinedBy)==="user")return e.resolution.isResolved}function Rr(e){return!!e&&e<Date.now()}function la(e){return!e.title}function ca(e,t){var n;if(e)return la(e)?{...e,title:t.title,csat_question:t.question,csat_scores:[{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/angry-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/suspicious-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/neutral-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/smile-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/happy-active.png"}],cre:{required:((n=e.cre)==null?void 0:n.required)??!0,question:t.cre.question,positive_label:t.cre.positive_label,negative_label:t.cre.negative_label},follow_up:[{response_type:"free_text",scores:[1,2,3,4,5],question:t.followUp.question,always_visible:!1}],csat_submit_label:t.submit_label,csat_submitted_label:t.submitted_label}:e}class ua{constructor(){A(this,"_channelHandlerId",null);A(this,"_connectionHandlerId",null);A(this,"_handleActiveChannelChangedThrottled",null);A(this,"_setupChannelHandler",()=>{const t=Date.now();this._channelHandlerId=`aiagent_channel_${t}`,this._connectionHandlerId=`aiagent_connection_${t}`,this._handleActiveChannelChangedThrottled=Go(o=>{var s,a;(a=this._session)==null||a._updateActiveChannel({url:o.url,status:Se(o)?"closed":"open",conversationStatus:(s=o.conversation)==null?void 0:s.status}),this._logger.debug("AIAgentEventManager: activeChannel updated",o.url)},250,{leading:!0,trailing:!1});const n=new gt.GroupChannelHandler({onChannelChanged:o=>{var s,a;o.isGroupChannel()&&o.url===((s=this._session)==null?void 0:s.activeChannel.url)&&((a=this._handleActiveChannelChangedThrottled)==null||a.call(this,o))}}),r=new ie.ConnectionHandler({onReconnectSucceeded:async()=>{await this._syncActiveChannelOnReconnect()}});this._chatClient.chatSDK.groupChannel.addGroupChannelHandler(this._channelHandlerId,n),this._chatClient.chatSDK.addConnectionHandler(this._connectionHandlerId,r),this._logger.debug("AIAgentEventManager: handlers registered",{channelHandlerId:this._channelHandlerId,connectionHandlerId:this._connectionHandlerId})});A(this,"_removeChannelHandler",()=>{this._channelHandlerId&&(this._chatClient.chatSDK.groupChannel.removeGroupChannelHandler(this._channelHandlerId),this._channelHandlerId=null),this._connectionHandlerId&&(this._chatClient.chatSDK.removeConnectionHandler(this._connectionHandlerId),this._connectionHandlerId=null),this._handleActiveChannelChangedThrottled&&(this._handleActiveChannelChangedThrottled.cancel(),this._handleActiveChannelChangedThrottled=null),this._logger.debug("AIAgentEventManager: handlers removed")});A(this,"_syncActiveChannelOnReconnect",async()=>{var n,r,o;const t=(n=this._session)==null?void 0:n.activeChannel.url;if(t)try{const a=await(await this._chatClient.chatSDK.groupChannel.getChannel(t)).refresh();a.url===t&&((o=this._session)==null||o._updateActiveChannel({url:a.url,status:Se(a)?"closed":"open",conversationStatus:(r=a.conversation)==null?void 0:r.status}),this._logger.debug("AIAgentEventManager: activeChannel synced on reconnect",a.url))}catch(s){this._logger.error("AIAgentEventManager: failed to sync activeChannel on reconnect",s)}});A(this,"_initConversationIfNeeded",async t=>{if(t.isAIAgent&&!t.conversation)try{await t.initConversation({aiAgentId:this.aiAgentId})}catch(n){this._logger.warn("AIAgentEventManager: initConversation failed",n)}});A(this,"onMessengerSettingsUpdated",t=>(this._dispatcher.subscribe(Me.MessengerSettingsUpdated,t),()=>{this._dispatcher.unsubscribe(Me.MessengerSettingsUpdated,t)}));A(this,"onActiveChannelUpdated",t=>(this._dispatcher.subscribe(Me.ActiveChannelUpdated,t),()=>{this._dispatcher.unsubscribe(Me.ActiveChannelUpdated,t)}));A(this,"onAuthTokenRefreshed",t=>(this._dispatcher.subscribe(Me.AuthTokenRefreshed,t),()=>{this._dispatcher.unsubscribe(Me.AuthTokenRefreshed,t)}))}}class da{constructor(t){A(this,"_sdkUser");A(this,"_userSession");A(this,"_dispatcher");A(this,"_activeChannel");A(this,"_updateActiveChannel",t=>{this._activeChannel=t,this._dispatcher.send(rt.ActiveChannelUpdated({channelUrl:t.url,status:t.status,conversationStatus:t.conversationStatus}))});A(this,"_updateAuthToken",t=>{this._userSession.authToken=t,this._dispatcher.send(rt.AuthTokenRefreshed())});this._sdkUser=t.sdkUser,this._userSession=t.userSession,this._dispatcher=t.dispatcher,this._activeChannel=t.activeChannel}get sdkUser(){return this._sdkUser}get userSession(){return this._userSession}get activeChannel(){return this._activeChannel}}const Yo=e=>{try{const t=JSON.parse(e);return typeof t=="string"?JSON.stringify(t).slice(1,-1):e.trim()}catch{return JSON.stringify(e).slice(1,-1)}},wt=e=>JSON.parse(e),hn=e=>JSON.parse(e);function ma(e,t){const[n,r]=t.split(",").map(o=>o.trim());return e==="dark"&&r||n}function ha(e){const t={};function n(r,o=""){for(const[s,a]of Object.entries(r)){const l=o?`${o}.${s}`:s;a&&typeof a=="object"&&!Array.isArray(a)?n(a,l):t[l]=a}}return n(e),t}function nr({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return Object.entries(t).reduce((o,[s,a])=>{if(!r&&!["number","boolean","string"].includes(typeof a))throw new Error(`If transformer is not provided, value(${s}:${a}) must be a {string, number, or boolean}`);const l=r?r(a):String(a),u=n(s);return o.replace(u,Yo(l))},e)}async function ga({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return(await Promise.all(Object.entries(t).map(async([s,a])=>{const l=await r(a);return{regex:n(s),transformedValue:l}}))).reduce((s,{regex:a,transformedValue:l})=>s.replace(a,Yo(l)),e)}var Gn=(e=>(e[e.EXTERNAL_AUTH_TOKEN_EXPIRED=1]="EXTERNAL_AUTH_TOKEN_EXPIRED",e))(Gn||{});const jo=e=>typeof e=="object"&&e!==null,Nr=(e,t)=>t in e&&typeof e[t]=="string"&&e[t]!=="",fa=e=>!jo(e)||!Nr(e,"channel_url")||!Nr(e,"ai_agent_id")?null:{channelUrl:e.channel_url,aiAgentId:e.ai_agent_id},pa={1:fa};function _a(e){if(!jo(e)||!("cat"in e)||typeof e.cat!="number"||!("data"in e))return null;const t=e.cat,n=pa[t];if(!n)return null;const r=n(e.data);return r?{category:t,data:r}:null}function Ea(e,t,n,r){const o=Mi.default.init({appId:e,modules:[new gt.GroupChannelModule,new Ee.AIAgentModule],localCacheEnabled:!0,options:new ie.SendbirdChatOptions({typingIndicatorInvalidateTime:2e4}),...r});return o.addSendbirdExtensions([{version:n,product:ie.SendbirdProduct.AI_AGENT,platform:t.platform}],{platform:t.deviceOSPlatform,version:t.deviceOSVersion},t.customData)||console.warn("Invalid Sendbird Extensions",t),o}function ba(e){const t=n=>{throw new Error(`Please initialize chat sdk with ${n}`)};typeof e.groupChannel!="object"&&t("GroupChannelModule"),typeof e.aiAgent!="object"&&t("AIAgentModule")}const Ca=[400300,400301,400302,400310];class rr{constructor(t,n,r){A(this,"chatSDK");A(this,"_logger");A(this,"_cache");A(this,"connect",async(t,n,r,o)=>{if(this._logger.debug("ChatClient.connect: start",t.userId),n){const s=new ie.SessionHandler({...n,onSessionTokenRequired:this._interceptTokenRefresh(n.onSessionTokenRequired,r,o)});this.chatSDK.setSessionHandler(s),this.chatSDK.aiAgent.addEventHandler(Gn.EXTERNAL_AUTH_TOKEN_EXPIRED.toString(),a=>{var u;this._logger.debug("ChatClient.connect: EXTERNAL_AUTH_TOKEN_EXPIRED event received",a);const l=_a(a);(l==null?void 0:l.category)===Gn.EXTERNAL_AUTH_TOKEN_EXPIRED&&(this._logger.debug("ChatClient.connect: calling onExternalAuthTokenExpired handler",l.data),(u=n==null?void 0:n.onExternalAuthTokenExpired)==null||u.call(n,l.data))})}try{return await this.chatSDK.connect(t.userId,t.authToken),await this._syncTemplatesIfNeeded(),this._logger.debug("ChatClient.connect: end",this.chatSDK.currentUser),this.chatSDK.currentUser}catch(s){const a=s;if(this.chatSDK.isCacheEnabled){if(this._isCacheRestrictedError(a))this._logger.warn("ChatClient.connect","offline connect restricted",a.message,a.code),this._logger.warn("ChatClient.connect","clear cached-data"),await this.chatSDK.clearCachedData().catch(l=>this._logger.warn("ChatClient.connect","clear cached-data failure",l));else if(this.chatSDK.currentUser)return this._logger.debug("ChatClient.connect: end (offline)",this.chatSDK.currentUser),this.chatSDK.currentUser}throw this._logger.warn("ChatClient.connect","connect failure",a.message,a.code),a}});A(this,"disconnect",async()=>{this._logger.debug("ChatClient.disconnect: start"),this.chatSDK.aiAgent.removeAllEventHandlers(),await this.chatSDK.disconnect(),this._cache.template.clear(),this._logger.debug("ChatClient.disconnect: end")});A(this,"getChannel",async t=>this.chatSDK.groupChannel.getChannel(t));A(this,"patchContext",async(t,n,r)=>this.chatSDK.aiAgent.patchContext(t,n,r));A(this,"updateContext",async(t,n,r)=>this.chatSDK.aiAgent.updateContext(t,n,r));A(this,"requestMessengerSettings",async t=>{var o;if(t.userId===""){const s=new Error("userId cannot be empty string for messenger settings request");throw this._logger.error("ChatClient.requestMessengerSettings: invalid userId",s),s}const n={...t,shouldSendFirstMessage:!1};this._logger.debug("ChatClient.requestMessengerSettings: requesting",n);const r=await this.chatSDK.aiAgent.requestMessengerSettings(n);return this._logger.debug("ChatClient.requestMessengerSettings: received",(o=r.active_channel)==null?void 0:o.channel_url),r});A(this,"_interceptTokenRefresh",(t,n,r)=>{if(t)return async(o,s)=>{new Promise((a,l)=>t==null?void 0:t(a,l)).then(a=>{a?n==null||n(a):r==null||r(),o(a)}).catch(a=>{r==null||r(),s(a)})}});A(this,"_isCacheRestrictedError",t=>Ca.some(n=>t.code===n));A(this,"_syncTemplatesIfNeeded",async()=>{var r,o;const t=(o=(r=this.chatSDK.appInfo)==null?void 0:r.aiAgentInfo)==null?void 0:o.templateListToken;if(!t)return;const n=this._cache.template.getCachedToken();if(!(n&&n===t)){this._logger.debug("ChatClient._syncTemplatesIfNeeded: syncing templates");try{const{templates:s,token:a}=await this.chatSDK.aiAgent.getMessageTemplates({limit:20});for(const{template:l}of s){const{key:u}=wt(l);this._cache.template.set(u,l)}this._cache.template.setCachedToken(a),this._logger.debug("ChatClient._syncTemplatesIfNeeded: sync completed")}catch(s){this._logger.error("ChatClient._syncTemplatesIfNeeded: error",s)}}});this.chatSDK=t,this._logger=n,this._cache=r}static init(t){let n;return t.chatSDK?(ba(t.chatSDK),n=t.chatSDK):n=Ea(t.appId,t.extensions,t.messengerVersion,t.chatParams),new rr(n,t.logger,t.cache)}}const Pt=new Map,Xo={set:(e,t)=>{Pt.set(e,t)},get:e=>{if(Pt.size===0)throw new Error("AIAgent platform not configured. Ensure you are using the correct package (@sendbird/ai-agent-messenger-react or @sendbird/ai-agent-messenger-react-native).");if(e){const n=Pt.get(e);if(!n)throw new Error(`AIAgent platform "${e}" is not configured.`);return{platform:e,...n}}const t=Pt.entries().next().value;return{platform:t[0],...t[1]}}},va=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0));class Dr extends Error{constructor(n,r){const o=(r==null?void 0:r.detail)??"";super(o||`Desk API error (${n})`);A(this,"status");A(this,"code");A(this,"detail");this.name="DeskApiError",this.status=n,this.code=(r==null?void 0:r.code)??"",this.detail=o}}var or=(e=>(e.INITIALIZED="INITIALIZED",e.PROACTIVE="PROACTIVE",e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.CLOSED="CLOSED",e.WORK_IN_PROGRESS="WORK_IN_PROGRESS",e.IDLE="IDLE",e))(or||{}),sr=(e=>(e.URGENT="URGENT",e.HIGH="HIGH",e.MEDIUM="MEDIUM",e.LOW="LOW",e))(sr||{}),Zo=(e=>(e.ERR_CREDENTIALS_NOT_PROVIDED="desk401100",e.ERR_NON_AUTHORIZED="desk401103",e.ERR_SESSION_KEY_EXPIRED="desk401106",e.ERR_SESSION_TOKEN_REVOKED="desk401107",e.ERR_USER_DEACTIVATED="desk401108",e.ERR_USER_NOT_EXIST="desk401109",e))(Zo||{});const ya=e=>e==="desk401103"||e==="desk401106"||e==="desk401107"||e==="desk401108"||e==="desk401109";class Sa{constructor(t){A(this,"_appId");A(this,"_apiHost");A(this,"_logger");A(this,"_credential",null);A(this,"_authRefreshPromise",null);A(this,"_onDeskTokenRefreshRequired",async()=>!1);A(this,"request",async(t,n)=>{const r=n.authRequired??!0,o=`${this._apiHost}${t}`;r&&this._authRefreshPromise&&(this._logger.debug("DeskApiClient: waiting for in-flight recovery..."),await this._authRefreshPromise);const s=await this._fetch(o,n);return r&&s.status===401?this._handleUnauthorized(s,o,n):this._toResult(s)});A(this,"setCredential",(t,n=async()=>!1)=>{this._authRefreshPromise=null,this._onDeskTokenRefreshRequired=n,this._credential=t});A(this,"clearCredential",()=>{this._authRefreshPromise=null,this._credential=null,this._onDeskTokenRefreshRequired=async()=>!1});A(this,"_handleUnauthorized",async(t,n,r)=>{const o=await this._parseErrorCode(t);if(!ya(o))return this._toResult(t);if(!await this._refresh(o)||this._credential===null)return this._toResult(t);const a=await this._fetch(n,r);return this._toResult(a)});A(this,"_refresh",async t=>{if(this._authRefreshPromise)return this._logger.debug("DeskApiClient: refresh already in progress, joining..."),this._authRefreshPromise;try{return this._authRefreshPromise=this._onDeskTokenRefreshRequired({reason:t}).catch(n=>(this._logger.error("DeskApiClient: delegated recovery failed",n),!1)),await this._authRefreshPromise}finally{this._authRefreshPromise=null}});A(this,"_fetch",(t,n)=>fetch(`${t}?${this._buildParams(n.params)}`,{method:n.method,headers:this._buildHeaders(n.authRequired??!0,n.headers),...n.body?{body:JSON.stringify(this._buildBody(n.body))}:{}}));A(this,"_buildParams",t=>new URLSearchParams({sendbirdAppId:this._appId,...t}));A(this,"_buildBody",t=>({sendbirdAppId:this._appId,...t}));A(this,"_buildHeaders",(t,n)=>({"content-type":"application/json",...t&&this._credential?{sendbirdDeskToken:this._credential.deskToken}:{},...n}));A(this,"_toResult",async t=>{if(!t.ok){const r=await t.json().catch(()=>({}));throw new Dr(t.status,r)}const n=await t.text();if(n)try{return JSON.parse(n)}catch{throw new Dr(t.status,{})}});A(this,"_parseErrorCode",async t=>{const n=await t.clone().json().catch(()=>({}));return n==null?void 0:n.code});this._appId=t.appId,this._apiHost=t.customApiHost??`https://desk-api-${t.appId}.sendbird.com/sapi`,this._logger=t.logger}get credential(){return this._credential}}class en{constructor(t,n){A(this,"id");A(this,"title");A(this,"status");A(this,"agent");A(this,"priority");A(this,"group");A(this,"firstResponseTime");A(this,"issuedAt");A(this,"customFields");A(this,"_client");A(this,"refresh",async()=>this._client.getTicket(this.id));this.id=t.id,this.title=t.title,this.status=t.status,this.agent=t.agent,this.priority=t.priority,this.group=t.group,this.firstResponseTime=t.firstResponseTime,this.issuedAt=t.issuedAt,this.customFields=t.customFields,this._client=n}static _fromResponse(t,n){var r;return new en({id:t.id,title:t.channelName??null,status:t.status2??or.INITIALIZED,agent:(()=>{var s;const o=(s=t.recentAssignment)==null?void 0:s.agent;return o?{userId:o.sendbirdId??"",name:o.displayName??"",profileUrl:o.photoThumbnailUrl??""}:null})(),priority:t.priority??sr.MEDIUM,group:t.group??0,firstResponseTime:t.firstResponseTime??-1,issuedAt:t.issuedAt??null,customFields:Object.fromEntries(((r=t.customFields)==null?void 0:r.map(o=>[o.key,o.value]))??[])},n)}}class ir{constructor(t){A(this,"_logger");A(this,"_apiClient");A(this,"_onDeskTokenRefreshRequired");A(this,"refreshDeskAuthToken",async t=>this._apiClient.credential?this.authenticate({userId:this._apiClient.credential.userId,accessToken:t,onDeskTokenRefreshRequired:this._onDeskTokenRefreshRequired}):!1);A(this,"authenticate",async t=>{this._logger.debug("DeskClient.authenticate: start",t.userId);try{const{token:n}=await this._apiClient.request("/customers/auth/",{method:"POST",headers:{sendbirdAccessToken:t.accessToken},body:{sendbirdId:t.userId},authRequired:!1});return t.onDeskTokenRefreshRequired!==void 0&&(this._onDeskTokenRefreshRequired=t.onDeskTokenRefreshRequired),this._apiClient.setCredential({userId:t.userId,deskToken:n,chatToken:t.accessToken},this._onDeskTokenRefreshRequired),this._logger.debug("DeskClient.authenticate: end"),!0}catch(n){return this._apiClient.clearCredential(),this._logger.debug("DeskClient.authenticate: failed",n),!1}});A(this,"deauthenticate",()=>{this._apiClient.clearCredential(),this._onDeskTokenRefreshRequired=void 0,this._logger.debug("DeskClient.deauthenticate: token cleared")});A(this,"setCustomerLanguage",async t=>{this._assertAuthenticated(this._apiClient),this._logger.debug("DeskClient.setCustomerLanguage: start",t),await this._apiClient.request("/customers/language/",{method:"PATCH",body:{language:t}}),this._logger.debug("DeskClient.setCustomerLanguage: end")});A(this,"getTicket",async t=>{this._assertAuthenticated(this._apiClient);const n=await this._apiClient.request(`/tickets/${encodeURIComponent(t)}/`,{method:"GET"});return en._fromResponse(n,this)});A(this,"createTicket",async t=>{this._assertAuthenticated(this._apiClient);const n=await this._apiClient.request("/tickets/",{method:"POST",body:va({channelName:t.title,channelType:"SENDBIRD_JAVASCRIPT",customFields:t.customFields?JSON.stringify(t.customFields):void 0,info:JSON.stringify({ticket:{subject:t.title,requester:{name:t.name,email:this._apiClient.credential.userId}}}),priority:t.priority,groupKey:t.groupKey})});return en._fromResponse(n,this)});this._logger=t.logger,this._apiClient=new Sa(t)}static init(t){return new ir(t)}_assertAuthenticated(t){if(t.credential==null)throw new Error("DeskClient is not authenticated")}}function Aa(e){return{get:t=>e.getString(t)??null,set:(t,n)=>{e.set(t,n)},delete:t=>{e.delete?e.delete(t):e.remove&&e.remove(t)},getKeys:t=>e.getAllKeys().filter(n=>n.startsWith(t))}}const xa=1440*60*1e3;function tt(e){if(!e)throw new Error("Not authenticated. Call authenticate() first.")}function Ta(e,t){return Object.entries(t).every(([n,r])=>e[n]===r)}class tn extends ua{constructor(n){super();A(this,"appId");A(this,"aiAgentId");A(this,"_chatClient");A(this,"_deskClient");A(this,"_cache");A(this,"_logger");A(this,"_dispatcher");A(this,"_session",null);A(this,"language");A(this,"countryCode");A(this,"context");A(this,"queryParams");A(this,"_config");A(this,"_networkStateAdapter");A(this,"_forceCreateChannel");A(this,"_agentVersion");A(this,"_statsTrackers");A(this,"_operationQueue",sa());A(this,"dispose",()=>{this._operationQueue.isPending()||(this._logger.debug("AIAgent.dispose: start"),this._chatClient.chatSDK.connectionState==="OPEN"&&this._chatClient.chatSDK.disconnectWebSocket(),this._removeChannelHandler(),this._session=null,this._deskClient.deauthenticate(),this._statsTrackers.initialRender.clear(),this._logger.debug("AIAgent.dispose: end"))});A(this,"initConversationIfNeeded",n=>this._initConversationIfNeeded(n));A(this,"authenticate",n=>{if(!this.appId)return Promise.reject(new Error("appId is required"));if(!this.aiAgentId)return Promise.reject(new Error("aiAgentId is required"));const r=n&&"userId"in n?`auth:${n.userId}`:"auth:anon";return this._operationQueue(r,async()=>{var a,l,u,d,m;this._logger.debug("AIAgent.authenticate: start"),this._statsTrackers.initialRender.onAuthStart();const o=this._getSessionCandidate(n),s=(a=o.userSessionCandidate)!=null&&a.userId?this._cache.messenger.getSettings(o.userSessionCandidate.userId):null;s!=null&&s.bot&&this._dispatcher.send(rt.MessengerSettingsUpdated({settings:s,source:"cache"}));try{const h=await this._chatClient.requestMessengerSettings({aiAgentId:this.aiAgentId,userId:(l=o.userSessionCandidate)==null?void 0:l.userId,language:this.language,country:this.countryCode,context:this.context,knownActiveChannelUrl:(u=s==null?void 0:s.active_channel)==null?void 0:u.channel_url,forceCreateChannel:this._forceCreateChannel,agentVersion:this._agentVersion});let g;if(h.auto_created_user)if(o.type==="manual")this._logger.warn("Received auto created user info but current session is manual. Ignoring auto created user info."),g={userId:o.userSessionCandidate.userId,authToken:o.userSessionCandidate.authToken};else{const{user_id:v,session_token:f,expire_at:y}=h.auto_created_user;this._cache.messenger.setAnonUser({userId:v,authToken:f,expireAt:y}),g={userId:v,authToken:f},this._logger.debug("AIAgent.authenticate: anonymous user created",v)}else g={userId:((d=o.userSessionCandidate)==null?void 0:d.userId)??"",authToken:((m=o.userSessionCandidate)==null?void 0:m.authToken)??""};this._cache.messenger.setSettings(g.userId,h),this._dispatcher.send(rt.MessengerSettingsUpdated({settings:h,source:"server"}));const C=(()=>{var v;return o.type==="anonymous"?Ji(this._dispatcher):(v=o.userSessionCandidate)==null?void 0:v.sessionHandler})(),b=await this._chatClient.connect(g,C,v=>{var f;this._logger.debug("AIAgent: session token refreshed"),(f=this._session)==null||f._updateAuthToken(v),this._deskClient.refreshDeskAuthToken(v)},()=>{this._logger.debug("AIAgent: session token unavailable, deauthenticating desk"),this._deskClient.deauthenticate()});return await this._deskClient.authenticate({userId:g.userId,accessToken:g.authToken,onDeskTokenRefreshRequired:async({reason:v})=>{var f;if(v===Zo.ERR_SESSION_KEY_EXPIRED){await new Promise(E=>setTimeout(E,2e3));const y=(f=this._session)==null?void 0:f.userSession.authToken;return y?await this._deskClient.refreshDeskAuthToken(y):!1}return!1}}),(s==null?void 0:s.language)!==h.language&&this._deskClient.setCustomerLanguage(this.language).catch(()=>{}),this._statsTrackers.initialRender.onAuthComplete(),this._session=new da({sdkUser:b,userSession:g,activeChannel:{url:h.active_channel.channel_url,status:"open"},dispatcher:this._dispatcher}),this._setupChannelHandler(),this._logger.debug("AIAgent.authenticate: end",{userId:g.userId}),h}catch(h){throw this._statsTrackers.initialRender.onAuthError(h),h}})});A(this,"deauthenticate",()=>this._operationQueue("deauth",async()=>{var n;this._logger.debug("AIAgent.deauthenticate: start"),await this._chatClient.disconnect(),this._deskClient.deauthenticate(),this._cache.messenger.clear((n=this._session)==null?void 0:n.userSession.userId),this._session=null,this._removeChannelHandler(),this._statsTrackers.initialRender.clear(),this._logger.debug("AIAgent.deauthenticate: end")}));A(this,"createConversation",async n=>{tt(this._session),this._logger.debug("AIAgent.createConversation: start",n);const r=await this._chatClient.requestMessengerSettings({...n,userId:this._session.userSession.userId,knownActiveChannelUrl:void 0,agentVersion:this._agentVersion}),o=r.active_channel.channel_url;return this._cache.messenger.setSettings(this._session.userSession.userId,r),this._logger.debug("AIAgent.createConversation: end",o),o});A(this,"searchConversation",async n=>{if(tt(this._session),this._logger.debug("AIAgent.searchConversation: start",n),Object.entries(n.context).length===0)return this._logger.debug("AIAgent.searchConversation: empty context, returning empty array"),[];const r=this.chatSDK.aiAgent.createConversationListQuery({aiAgentId:n.aiAgentId,status:Ee.ConversationStatus.OPEN,limit:100}),o=[];for(;r.hasNext;){const s=await r.next();for(const a of s)Ta(a.context??{},n.context)&&o.push(a.channelInfo.url)}return this._logger.debug("AIAgent.searchConversation: end",{count:o.length}),o});A(this,"closeConversation",async n=>{var o;tt(this._session),this._logger.debug("AIAgent.closeConversation: start",n);const r=await this._chatClient.getChannel(n);((o=r.conversation)==null?void 0:o.status)===Ee.ConversationStatus.OPEN?(await r.closeConversation(),this._session.activeChannel.url===n&&this._session._updateActiveChannel({url:n,status:"closed",conversationStatus:Ee.ConversationStatus.CLOSED}),this._logger.debug("AIAgent.closeConversation: end")):this._logger.debug("AIAgent.closeConversation: already closed or not an AI agent conversation")});A(this,"createConversationListCollection",n=>new zo(this.chatSDK,n??{}));A(this,"patchContext",async(n,r)=>{tt(this._session),this._logger.debug("AIAgent.patchContext: start",{channelUrl:n,context:r});const o=await this._chatClient.patchContext(this.aiAgentId,n,r);return this._logger.debug("AIAgent.patchContext: end",o),{...o,context:o.context??{}}});A(this,"updateContext",async(n,r)=>{tt(this._session),this._logger.debug("AIAgent.updateContext: start",{channelUrl:n,context:r});const o=await this._chatClient.updateContext(this.aiAgentId,n,r);return this._logger.debug("AIAgent.updateContext: end",o),{...o,context:o.context??{}}});A(this,"getContextObject",async n=>{tt(this._session),this._logger.debug("AIAgent.getContextObject: start",n);const o=await(await this._chatClient.getChannel(n)).getContextObject(this.aiAgentId);return this._logger.debug("AIAgent.getContextObject: end",o),{...o,context:o.context??{}}});A(this,"refreshActiveChannel",async n=>{var l,u,d;tt(this._session);const r=this._session,o=(n==null?void 0:n.useKnownActiveChannelUrl)??!0;this._logger.debug("AIAgent.refreshActiveChannel: start",{useKnownActiveChannelUrl:o});const s=await this._chatClient.requestMessengerSettings({aiAgentId:this.aiAgentId,userId:r.userSession.userId,language:this.language,country:this.countryCode,context:this.context,knownActiveChannelUrl:o?(u=(l=this._cache.messenger.getSettings(r.userSession.userId))==null?void 0:l.active_channel)==null?void 0:u.channel_url:void 0,forceCreateChannel:this._forceCreateChannel,agentVersion:this._agentVersion});if(this._session!==r)return this._logger.debug("AIAgent.refreshActiveChannel: session changed during refresh, discarding stale result"),((d=this._session)==null?void 0:d.activeChannel.url)??s.active_channel.channel_url;const a=s.active_channel.channel_url;return this._cache.messenger.setSettings(this._session.userSession.userId,s),this._session._updateActiveChannel({url:a,status:"open"}),this._logger.debug("AIAgent.refreshActiveChannel: end",a),a});A(this,"_getSessionCandidate",n=>n instanceof Ko?{type:"manual",userSessionCandidate:this._getManualSessionInfo(n)}:n instanceof Vn?{type:"anonymous",userSessionCandidate:this._getAnonymousSessionInfo()}:n&&typeof n=="object"?(this._logger.warn("Please use ManualSessionInfo instead of the old userSessionInfo format."),{type:"manual",userSessionCandidate:this._getManualSessionInfo(n)}):n===void 0?(this._logger.warn("Please use AnonymousSessionInfo instead of undefined userSessionInfo."),{type:"anonymous",userSessionCandidate:this._getAnonymousSessionInfo()}):{type:"anonymous",userSessionCandidate:null});A(this,"_getAnonymousSessionInfo",()=>{const n=this._cache.messenger.getAnonUser();return n?n.expireAt-xa<=Date.now()?(this._logger.debug("_getAnonymousSessionInfo: auto session expired, clear cache"),this._cache.messenger.clear(n.userId),null):(this._logger.debug("_getAnonymousSessionInfo: auto session info detected"),{userId:n.userId,authToken:n.authToken}):null});A(this,"_getManualSessionInfo",n=>{if(!n||n instanceof Vn)throw new Error("userSessionInfo must be an instance of ManualSessionInfo");if(typeof n.userId!="string")throw new Error("userSessionInfo.userId must be a string");const r=["userId","authToken","sessionHandler"].filter(o=>!(o in n));return r.length>0&&this._logger.error(`_getManualSessionInfo: missing required keys in userSessionInfo: ${r.join(", ")}`),this._logger.debug("_getManualSessionInfo: manual session info detected"),{userId:n.userId,authToken:n.authToken,sessionHandler:n.sessionHandler}});this.appId=n.appId,this.aiAgentId=n.aiAgentId,this.language=n.language??"en",this.countryCode=n.countryCode,this.context=n.context,this._config=Or(n.config),this.queryParams=n.queryParams,this._networkStateAdapter=n.networkStateAdapter,this._forceCreateChannel=n.forceCreateChannel,this._agentVersion=n.agentVersion,this._chatClient=n.chatClient,this._deskClient=n.deskClient,this._cache=n.cache,this._logger=n.logger,this._dispatcher=n.dispatcher,this._statsTrackers={initialRender:new oa((r,o)=>this._chatClient.chatSDK.aiAgent.appendStat(r,o))}}static init(n){var h;const r=Xo.get(n.platform),o=n.logger??new qo(n.logLevel??er.WARN),s=n.dispatcher??new Wo(o),a=n.useMMKVStorage?Aa(n.useMMKVStorage):r.keyValueStorage,l=n.useMMKVStorage?{...n.chatParams,useMMKVStorageStore:n.useMMKVStorage}:n.chatParams,u=zi({appId:n.appId,aiAgentId:n.aiAgentId,storage:a}),d=rr.init({appId:n.appId,messengerVersion:r.messengerVersion,extensions:{platform:r.platform,deviceOSPlatform:r.deviceOSPlatform,deviceOSVersion:r.deviceOSVersion},chatParams:l,chatSDK:n.chatSDK,logger:o,cache:u}),m=ir.init({appId:n.appId,logger:o,customApiHost:(h=n.deskParams)==null?void 0:h.customApiHost});return o.debug("AIAgent.init: created",{appId:n.appId,aiAgentId:n.aiAgentId}),new tn({appId:n.appId,aiAgentId:n.aiAgentId,language:n.language,countryCode:n.countryCode,context:n.context,config:n.config,queryParams:n.queryParams,networkStateAdapter:r.networkStateAdapter,forceCreateChannel:n._forceCreateChannel,agentVersion:n._agentVersion,chatClient:d,deskClient:m,cache:u,logger:o,dispatcher:s})}get chatSDK(){return this._chatClient.chatSDK}get deskClient(){return this._deskClient}get session(){return this._session}get config(){return this._config}set config(n){this._config=Or(n)}get agentVersion(){return this._agentVersion}set agentVersion(n){this._agentVersion=n}get networkStateAdapter(){return this._networkStateAdapter}get logger(){return this._logger}get dispatcher(){return this._dispatcher}get cache(){return this._cache}get statsTrackers(){return this._statsTrackers}}const me=(e,t)=>{const n=c.createContext(t??null),r=({children:a,value:l})=>i.createElement(n.Provider,{value:l},typeof a=="function"?a(l):a),o=({children:a})=>i.createElement(n.Consumer,null,l=>l?typeof a=="function"?a(l):a:null),s=()=>{const a=c.useContext(n);if(!a)throw new Error(`use${e}Context must be used within a ${e}Provider`);return a};return n.displayName=`${e}Context`,r.displayName=`${e}Provider`,o.displayName=`${e}Consumer`,s.displayName=`use${e}Context`,{Context:n,Provider:r,Consumer:o,useContext:s}};function Pe(e){const t=c.createContext({Template:e.template,updateTemplate:()=>{},components:e.components,updateComponent:()=>{}});function n({children:s}){const[a,l]=c.useState(()=>e.template),[u,d]=c.useState(e.components),m={Template:a,updateTemplate:h=>l(()=>h),components:u,updateComponent:(h,g)=>d(C=>({...C,[h]:g}))};return i.createElement(t.Provider,{value:m},s)}function r({template:s,children:a}){const{updateTemplate:l}=c.useContext(t);return c.useLayoutEffect(()=>{s&&l(s)},[s]),i.createElement(i.Fragment,null,a)}function o({children:s}){return i.createElement(n,null,s)}return o.defaults=e,o.useContext=()=>c.useContext(t),o.Context=t,o.Template=r,Object.keys(e.components).forEach(s=>{o[s]=function({component:l}){const{updateComponent:u}=c.useContext(t);return c.useLayoutEffect(()=>{l&&u(s,l)},[l]),null}}),o}function Ia(...e){return function({children:n}){return e.reduce((r,o)=>i.createElement(o,null,r),n)}}function wa(e,t){const n=e.lastMessage;return n!=null&&n.isAdminMessage()?n.message??"":Jo(e,t)}function Jo(e,t){var r;const n=e.lastMessage;if(n!=null&&n.isUserMessage())return n.message||"";if(n!=null&&n.isAdminMessage())return n.message??"";if(n!=null&&n.isFileMessage())return n.message||n.name||"FILE";if(n!=null&&n.isMultipleFilesMessage()){if(n.message)return n.message;const o=n.fileInfoList.length;return((r=t==null?void 0:t.formatMultipleFilesCount)==null?void 0:r.call(t,o))??`${o} photos`}return e.name}function ka(e,t,n){var a;const r=new Date,o=new Date(((a=e.lastMessage)==null?void 0:a.createdAt)||e.createdAt),s=We.differenceInMinutes(r,o);return s<1?n.justNow:s<60?n.minutesAgo(s):We.isToday(o)?n.hoursAgo(We.differenceInHours(r,o)):t(o,n.dateShortFormat)}const La=e=>{const t=e.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return t?[Number(t[1]),Number(t[2]),Number(t[3])]:null},Ft=e=>Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0"),$r=(e,t)=>{const n=Ft(Math.round(t*255));if(e.startsWith("#")){const o=e.slice(1);return o.length===3||o.length===4?`#${o[0]}${o[0]}${o[1]}${o[1]}${o[2]}${o[2]}${n}`:`#${o.slice(0,6)}${n}`}const r=La(e);return r?`#${Ft(r[0])}${Ft(r[1])}${Ft(r[2])}${n}`:e},Qo=me("AIAgent"),Ma=Qo.Provider,ke=Qo.useContext;function Oa(e){const t=Ra(e);return i.createElement(Ma,{value:{_aiAgentSDK:t,chatSDK:t.chatSDK,deskClient:t.deskClient,appId:t.appId,aiAgentId:t.aiAgentId,language:t.language,countryCode:t.countryCode,context:t.context,logger:t.logger,dispatcher:t.dispatcher,cache:t.cache,networkStateAdapter:t.networkStateAdapter,queryParams:t.queryParams,config:t.config}},e.children)}function Ra(e){const t=c.useRef(null),n=c.useRef(null);if(!t.current||!n.current)t.current=tn.init(e);else{const o=Na(n.current,e);(o.appId||o.aiAgentId||o.chatSDK)&&(t.current.dispose(),t.current=tn.init({...e,chatParams:o.appId?{...e.chatParams,newInstance:!0}:e.chatParams}))}n.current=e,c.useEffect(()=>()=>{var o;(o=t.current)==null||o.dispose()},[]);const r=t.current;return r.language=e.language??"en",r.countryCode=e.countryCode,r.context=e.context,r.queryParams=e.queryParams,r.config=e.config,r.agentVersion=e._agentVersion,r}function Na(e,t){const n=t.chatSDK!==void 0&&t.chatSDK!==null;return{appId:!n&&e.appId!==t.appId,aiAgentId:e.aiAgentId!==t.aiAgentId,chatSDK:!!e.chatSDK!==n||n&&t.chatSDK!==e.chatSDK}}const Pr=Symbol("conversationMessageEventBridge"),bt=Symbol("conversationMessageEventPublisher"),Da=(e,t)=>{const n=e;if(n[bt]=t,n[Pr])return e;n[Pr]=!0;const r=e.setMessageCollectionHandler.bind(e);e.setMessageCollectionHandler=s=>{r({...s,onMessagesAdded:(a,l,u)=>{var d,m;(d=s.onMessagesAdded)==null||d.call(s,a,l,u),(m=n[bt])==null||m.call(n,{kind:"messagesAdded",source:a.source,messages:u})},onMessagesUpdated:(a,l,u)=>{var d,m;(d=s.onMessagesUpdated)==null||d.call(s,a,l,u),(m=n[bt])==null||m.call(n,{kind:"messagesUpdated",source:a.source,messages:u})}})};const o=e.initialize.bind(e);return e.initialize=s=>{const a=o(s),l=a.onCacheResult.bind(a),u=a.onApiResult.bind(a);return a.onCacheResult=d=>l((m,h)=>{var g;d(m,h),(g=n[bt])==null||g.call(n,{kind:"initialized",source:"cache",messages:h??[]})}),a.onApiResult=d=>u((m,h)=>{var g;d(m,h),(g=n[bt])==null||g.call(n,{kind:"initialized",source:"api",messages:h??[]})}),a},e},$a=(e,t,n)=>{const r=c.useRef(0),o=c.useRef(new Set),s=c.useCallback(d=>{const m={id:r.current+=1,...d};o.current.forEach(h=>{h(m)})},[]),a=c.useCallback(d=>{var h;const m=((h=n==null?void 0:n.collectionCreator)==null?void 0:h.call(n,d))??(t==null?void 0:t.createMessageCollection({...d??{},filter:new gt.MessageFilter(d)}));if(!m)throw new Error("Group channel is required to create a message collection");return Da(m,s)},[t,n==null?void 0:n.collectionCreator,s]),l=Ye.useGroupChannelMessages(e,t,{...n,collectionCreator:a,strictStreamingOrder:!0}),u=c.useCallback(d=>(o.current.add(d),()=>{o.current.delete(d)}),[]);return{...l,subscribeMessageEvents:u}},xt={DEFAULT_PRIMARY:"#000000",DEFAULT_BOT_MSG_BG:"#ECECEC",WHITE:"#ffffff",BLACK:"#000000"};function es(e){return e.length===4?`#${[...e.slice(1)].map(t=>t+t).join("")}`:e}function Pa(e){const t=es(e);return[parseInt(t.slice(1,3),16),parseInt(t.slice(3,5),16),parseInt(t.slice(5,7),16)]}function Fa(e){return`#${e.map(t=>t.toString(16).padStart(2,"0")).join("")}`}function Ba(e,t,n){e/=255,t/=255,n/=255;const r=Math.max(e,t,n),o=Math.min(e,t,n),s=r-o;let a=0,l=0;const u=(r+o)/2;return r!==o&&(l=u>.5?s/(2-r-o):s/(r+o)),r===e?a=(t-n)/s+(t<n?6:0):r===t?a=(n-e)/s+2:r===n&&(a=(e-t)/s+4),a/=6,[a,l,u]}function Ha(e,t,n){let r,o,s;if(t===0)r=o=s=n;else{const a=function(m,h,g){return g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?m+(h-m)*6*g:g<.5?h:g<.6666666666666666?m+(h-m)*(.6666666666666666-g)*6:m},l=n<.5?n*(1+t):n+t-n*t,u=2*n-l;r=a(u,l,e+1/3),o=a(u,l,e),s=a(u,l,e-1/3)}return[Math.round(r*255),Math.round(o*255),Math.round(s*255)]}function Bt(e,t,n){const[r,o,s]=Pa(e),[a,l,u]=Ba(r,o,s),d=Math.max(0,Math.min(1,u*t)),m=Math.max(0,Math.min(1,l*n)),[h,g,C]=Ha(a,m,d);return Fa([Math.round(h),Math.round(g),Math.round(C)])}function Ua(e,t="light"){return{extraDark:Bt(e,.6,1.2),dark:Bt(e,.85,1.1),main:e,light:Bt(e,t==="dark"?1.1:1.5,t==="dark"?.95:.9),extraLight:Bt(e,t==="dark"?1.2:1.75,t==="dark"?.9:.8)}}function zn(e){const t=es(e),n=149,r=+`0x${t[1]}${t[2]}`,o=+`0x${t[3]}${t[4]}`,s=+`0x${t[5]}${t[6]}`;return r*.299+o*.587+s*.114>n?xt.BLACK:xt.WHITE}function Va(e,t,n,r,o){return{base:{primary:t,primaryContrastContent:n,background:e.background50,headerBackground:e.background50,modalContentBackground:e.background50},messageInput:{text:e.onlight.textHighEmphasis,placeholderText:e.onlight.textLowEmphasis,background:e.background100},messageIncoming:{text:o,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background100}}}const Ga=(e,t,n,r,o)=>({base:{primary:t,primaryContrastContent:n,background:e.background600,headerBackground:e.background500,modalContentBackground:e.background500},messageInput:{text:e.ondark.textHighEmphasis,placeholderText:e.ondark.textLowEmphasis,background:e.background400},messageIncoming:{text:o,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background400}}),Ht={primary:{extraDark:"#491389",dark:"#6211c8",main:"#742ddd",light:"#c2a9fa",extraLight:"#dbd1ff"},secondary:{extraDark:"#066858",dark:"#027d69",main:"#259c72",light:"#69c085",extraLight:"#a8e2ab"},error:{extraDark:"#9d091e",dark:"#bf0711",main:"#de360b",light:"#f66161",extraLight:"#fdaaaa"},information:{extraDark:"#241389",dark:"#362ca9",main:"#4a48cd",light:"#a9bbfa",extraLight:"#d1dbff"},background700:"#000000",background600:"#161616",background500:"#2c2c2c",background400:"#393939",background300:"#bdbdbd",background200:"#e0e0e0",background100:"#eeeeee",background50:"#ffffff",onlight:{textHighEmphasis:"rgba(0, 0, 0, 0.88)",textMidEmphasis:"rgba(0, 0, 0, 0.5)",textLowEmphasis:"rgba(0, 0, 0, 0.38)",textDisabled:"rgba(0, 0, 0, 0.12)"},ondark:{textHighEmphasis:"rgba(255, 255, 255, 0.88)",textMidEmphasis:"rgba(255, 255, 255, 0.5)",textLowEmphasis:"rgba(255, 255, 255, 0.38)",textDisabled:"rgba(255, 255, 255, 0.12)"},overlay:{dark:"rgba(0, 0, 0, 0.55)",light:"rgba(22, 22, 22, 0.32)"}},xn={h1:{fontSize:18,fontWeight:700},h2:{fontSize:16,fontWeight:700},subtitle1:{fontSize:16,fontWeight:500},subtitle2:{fontSize:16,fontWeight:400},body1:{fontSize:16,fontWeight:400},body2:{fontSize:14,fontWeight:500},body3:{fontSize:14,fontWeight:400},button:{fontSize:14,fontWeight:700},caption1:{fontSize:12,fontWeight:700},caption2:{fontSize:12,fontWeight:400},caption3:{fontSize:11,fontWeight:700},caption4:{fontSize:11,fontWeight:400}};function Fr(e){const t=za(e),n=Wa(e,t),r=Ka(n,e.colors,e.selectedTheme),o=ja(e);return{selectedTheme:e.selectedTheme,palette:t,colors:r,aiAgentColorVariables:{primary_color:r.base.primary,primary_contrast_color:r.base.primaryContrastContent,bot_message_bg_color:r.messageIncoming.background,bot_message_bg_contrast_color:r.messageIncoming.text},typography:o}}function za({selectedTheme:e,palette:t,primary:n}){const r=t!=null&&t.primary?t.primary:n?n===Ht.primary.main?Ht.primary:Ua(n,e):Ht.primary;return{...Ht,primary:r,...t}}function Wa({selectedTheme:e,primaryContrast:t,botMessageBackground:n,botMessageBackgroundContrast:r},o){const s=o.primary.main,a=t??zn(s),l=n??xt.DEFAULT_BOT_MSG_BG,u=r??zn(l);return(e==="light"?Va:Ga)(o,s,a,l,u)}function qa(e,t,n){return typeof e=="string"?e:e[t]??n}function Ka(e,t,n){var a;if(!t||Object.keys(t).length===0)return e;const r={...e},o=r,s=e;for(const l of Object.keys(t)){const u=t[l];if(u){o[l]={...o[l]};for(const[d,m]of Object.entries(u))if(m!==void 0){const h=((a=s[l])==null?void 0:a[d])??"";o[l][d]=qa(m,n,h)}}}return r}function Ya(e,t,n){const r={...e};return n.forEach(o=>{const s=t[o];s!=null&&(r[o]=s)}),r}function ja({typography:e}){if(!e)return xn;const t={...xn};return Object.keys(e).forEach(n=>{const r=e[n];if(r&&typeof r=="object"){const o=xn[n],s=["fontSize","fontWeight","fontFamily","lineHeight"];t[n]=Ya(o,r,s)}}),t}const{Provider:Xa,useContext:ar}=me("AIAgentTheme");function Za({logger:e,palette:t,typography:n,colors:r,appearance:o,children:s}){const a=c.useRef(null),[l,u]=c.useState(()=>Fr({selectedTheme:(o==null?void 0:o.theme)??"light",palette:t,typography:n,colors:r,primary:o==null?void 0:o.primaryColor,botMessageBackground:o==null?void 0:o.botMessageBackgroundColor})),d=c.useCallback((m,h)=>{h&&(a.current=h);const g=(o==null?void 0:o.theme)??m,C=a.current?a.current.themes[g]:null,b={primary:o==null?void 0:o.primaryColor,primaryContrast:void 0,botMessageBackground:o==null?void 0:o.botMessageBackgroundColor,botMessageBackgroundContrast:void 0};!b.primary&&(C!=null&&C.primary_color)&&(b.primary=C.primary_color,b.primaryContrast=C.primary_contrast_color),!b.botMessageBackground&&(C!=null&&C.bot_message_bg_color)&&(b.botMessageBackground=C.bot_message_bg_color,b.botMessageBackgroundContrast=C.bot_message_bg_contrast_color);const v=Fr({selectedTheme:g,palette:t,typography:n,colors:r,...b});u(v),e==null||e.info("theme.update:",g)},[o==null?void 0:o.theme,o==null?void 0:o.primaryColor,o==null?void 0:o.botMessageBackgroundColor,t,n,r,e]);return c.useEffect(()=>{(o!=null&&o.theme||o!=null&&o.primaryColor||o!=null&&o.botMessageBackgroundColor)&&d(l.selectedTheme)},[o==null?void 0:o.theme,o==null?void 0:o.primaryColor,o==null?void 0:o.botMessageBackgroundColor]),i.createElement(Xa,{value:{theme:l,updateTheme:d}},s)}const Tn=25*1024*1024,Br=1,Hr=new Set(["image/png","image/jpeg","image/jpg"]),Ur=new Set(["application/pdf"]),Ja={off:"off",always:"always",handed_off_only:"handed_off_only"},Qa=()=>{const[e,t]=c.useState(()=>({maxAttachmentCount:Br,attachmentMode:"handed_off_only",defaultUploadSizeLimit:Tn,uploadSizeLimitPerType:new Map,supportedImageMimeTypes:Hr,supportedFileMimeTypes:Ur})),n=c.useCallback(({active_channel:o,upload_restriction:s})=>{t({maxAttachmentCount:(s==null?void 0:s.max_attachment_count)??Br,attachmentMode:Ja[o.attachment_mode]??"handed_off_only",defaultUploadSizeLimit:(s==null?void 0:s.default_upload_size_limit)??Tn,uploadSizeLimitPerType:new Map(Object.entries((s==null?void 0:s.upload_size_limit_per_type)??[])),supportedImageMimeTypes:new Set((s==null?void 0:s.supported_image_mime_types)??Hr),supportedFileMimeTypes:new Set((s==null?void 0:s.supported_file_mime_types)??Ur)})},[]),r=c.useCallback(o=>{const{channel:s,uploadSizeLimit:a=Tn}=o,l=(d=!0)=>s!=null&&s.isAIAgent?d?je(s):!1:!0,u=d=>{if(l())return e.defaultUploadSizeLimit??a;const m=e.defaultUploadSizeLimit??a,h=e.uploadSizeLimitPerType.get(d)??m;return Math.min(m,h)};return{maxAttachmentCount:e.maxAttachmentCount,isEnabled:()=>{if(l(!1))return!0;switch(e.attachmentMode){case"off":return!1;case"always":return!0;case"handed_off_only":return je(s);default:return!0}},get supportedMimeTypes(){return l()?[Bn]:[...e.supportedImageMimeTypes,...e.supportedFileMimeTypes]},isSupportedMimeType:d=>l()?!0:e.supportedImageMimeTypes.has(d)||e.supportedFileMimeTypes.has(d),getUploadSizeLimit:u,getUploadSizeLimitInMB:d=>u(d)/(1024*1024)}},[e]);return{updateBaseAttachmentRules:n,createAttachmentRules:r}},Vr=(...e)=>{const[t,n,r]=e;if(e.length===1&&typeof t=="object"&&t!==null)return{type:"active",context:t};if(e.length===3&&typeof t=="string"&&typeof n=="string"&&typeof r=="object"&&r!==null)return{type:"specific",aiAgentId:t,channelUrl:n,context:r};throw new Error("Invalid arguments: expected (context) or (aiAgentId, channelUrl, context)")},Ct=e=>({...e,context:e.context??{}}),{Provider:el,useContext:kt}=me("AIAgentMessengerSession"),tl=c.forwardRef(function({userSessionInfo:e,children:t},n){const{_aiAgentSDK:r,chatSDK:o,aiAgentId:s,logger:a}=ke(),{updateTheme:l}=ar(),[u,d]=c.useState(void 0),[m,h]=c.useState(void 0),[g,C]=c.useState(null),[b,v]=c.useState(null),[f,y]=c.useState(null),[E,x]=c.useState(null),{updateBaseAttachmentRules:S,createAttachmentRules:I}=Qa();c.useEffect(()=>{const L=r.onMessengerSettingsUpdated(({settings:w})=>{const{appearance:$,bot:O,launcher:q}=w;l($.selected_theme,$),y({userId:O.bot_userid,profileUrl:O.bot_profile_url,nickname:O.bot_nickname,replyToFile:O.reply_to_file,specialNotice:O.special_notice,specialNoticeEnabled:O.is_special_notice_enabled,showHandoffButton:O.show_handoff_button??!0,isMultipleActiveConversationsEnabled:O.is_multiple_active_conversations_enabled??!0,isUserFeedbackEnabled:O.is_user_feedback_enabled??!1,isUserFeedbackCommentOptionEnabled:O.is_user_feedback_comment_option_enabled??!1}),x({type:q.image_type||"default_icon",imageUrl:q.image_url}),S(w)}),P=r.onActiveChannelUpdated(({channelUrl:w,status:$,conversationStatus:O})=>{h({url:w,status:$,conversationStatus:O})}),N=r.onAuthTokenRefreshed(()=>{var $;const w=($=r.session)==null?void 0:$.userSession.authToken;w&&v(O=>O?{...O,authToken:w}:null)});return()=>{L(),P(),N()}},[r,l,S]);const k=c.useCallback(async()=>{try{const L=await r.authenticate(e),P=r.session;return C(P.sdkUser),v(P.userSession),h(P.activeChannel),d(void 0),L}catch(L){throw C(null),v(null),h(void 0),d(L),L}},[r,e]),M=c.useCallback(async()=>{await r.deauthenticate(),C(null),h(void 0),v(null),y(null),x(null)},[r]),U=c.useCallback(async()=>{if(!r.session){if(b)return a.debug("agentMessengerSession.refreshActiveChannel: stale call after deauthenticate, skipping"),"";throw a.error("agentMessengerSession.refreshActiveChannel: userSession is not ready"),new Error("userSession is not ready")}return r.session.userSession.userId!==(b==null?void 0:b.userId)?(a.debug("agentMessengerSession.refreshActiveChannel: stale call from previous session, skipping"),r.session.activeChannel.url):(h(void 0),await r.refreshActiveChannel())},[r,a,b]),F=c.useCallback(async L=>{if(!r.session)throw new Error("Current user is not authenticated. Please authenticate first.");return r.createConversation(L)},[r]),G=c.useCallback(async L=>{if(!r.session)throw new Error("Current user is not authenticated. Please authenticate first.");return r.searchConversation(L)},[r]);return c.useImperativeHandle(n,()=>{const L=async()=>{if(!m)throw new Error("No active conversation. Please start a conversation first.");return await o.groupChannel.getChannel(m.url)};return{activeChannel:m,chatSDK:o,authenticate:k,deauthenticate:M,updateContext:async(...P)=>{const N=Vr(...P);if(N.type==="active"){const O=await(await L()).updateContext(s,N.context);return Ct(O)}const w=await o.aiAgent.updateContext(N.aiAgentId,N.channelUrl,N.context);return Ct(w)},patchContext:async(...P)=>{const N=Vr(...P);if(N.type==="active"){const O=await(await L()).patchContext(s,N.context);return Ct(O)}const w=await o.aiAgent.patchContext(N.aiAgentId,N.channelUrl,N.context);return Ct(w)},getContextObject:async()=>{const N=await(await L()).getContextObject(s);return Ct(N)}}},[k,M,m,o,s,a]),i.createElement(el,{value:{sdkUser:g,userSessionInfo:e,userSession:b,activeChannel:m,setActiveChannel:h,refreshActiveChannel:U,createConversation:F,searchConversation:G,connectionError:u,aiAgentInfo:f,launcherInfo:E,authenticate:k,deauthenticate:M,createAttachmentRules:I,statsTrackers:r.statsTrackers}},t)}),lr=(e,t)=>{const n=c.useId(),r=c.useRef(t);c.useLayoutEffect(()=>{r.current=t}),c.useEffect(()=>{const o=new ie.ConnectionHandler({onDisconnected:s=>{var a,l;return(l=(a=r.current).onDisconnected)==null?void 0:l.call(a,s)},onConnected:s=>{var a,l;return(l=(a=r.current).onConnected)==null?void 0:l.call(a,s)},onReconnectStarted:()=>{var s,a;return(a=(s=r.current).onReconnectStarted)==null?void 0:a.call(s)},onReconnectSucceeded:()=>{var s,a;return(a=(s=r.current).onReconnectSucceeded)==null?void 0:a.call(s)},onReconnectFailed:()=>{var s,a;return(a=(s=r.current).onReconnectFailed)==null?void 0:a.call(s)},onConnectionLost:()=>{var s,a;return(a=(s=r.current).onConnectionLost)==null?void 0:a.call(s)},onConnectionDelayed:s=>{var a,l;return(l=(a=r.current).onConnectionDelayed)==null?void 0:l.call(a,s)}});return e.addConnectionHandler(n,o),()=>{e.removeConnectionHandler(n)}},[e,n])};function nl(e){const{chatSDK:t,logger:n,aiAgentId:r,_aiAgentSDK:o}=ke(),{sdkUser:s,statsTrackers:a}=kt(),l=Ye.useForceUpdate(),[u,d]=c.useState(void 0),[m,h]=c.useState(void 0),[g,C]=c.useState(!1);function b(f){f.isAIAgent&&!f.conversation&&(C(!0),o.initConversationIfNeeded(f).finally(()=>C(!1)))}async function v(){var f,y,E;if(!s){n.debug("useChannel.getChannel: no sdk user, skip fetching channel");return}if(n.debug("useChannel.getChannel: start"),d(void 0),h(void 0),C(!1),e){a.initialRender.onGetChannelStart();try{n.debug("useChannel.getChannel: get channel",e);const x=await t.groupChannel.getChannel(e);b(x),d(x),a.initialRender.onGetChannelComplete((f=x.conversation)==null?void 0:f.id),x.url===((y=o.session)==null?void 0:y.activeChannel.url)&&o.session._updateActiveChannel({url:x.url,status:Se(x)?"closed":"open",conversationStatus:(E=x.conversation)==null?void 0:E.status}),n.debug("useChannel.getChannel: fetched channel",x)}catch(x){a.initialRender.onGetChannelError(x),x instanceof ie.SendbirdError&&h(x),n.error("useChannel.getChannel: error",x)}}}return c.useEffect(()=>{v()},[t,s,e,r]),lr(t,{async onReconnectSucceeded(){if(!u)return;const f=await u.refresh();b(f),d(f)}}),Ye.useGroupChannelHandler(t,{onChannelChanged:f=>{f.isGroupChannel()&&f.url===e&&(n.debug("useChannel.onChannelChanged: channel changed",f.url),d(f),l())}}),{channel:u,channelFetchError:m,getChannel:v,isInitializingConversation:g}}const rl=new Set(["suggested_replies","steward","system"]),ol=e=>{const t=e==null?void 0:e.lastMessage,n=t==null?void 0:t.extendedMessagePayload,r=n==null?void 0:n.user_input_disabled_by;if(!(!r||!rl.has(r)))return r},sl=e=>{var a;const t=e==null?void 0:e.lastMessage;if(!t||!e)return!1;const n=t.extendedMessagePayload,r=n==null?void 0:n.form,o=!!r&&!r.submitted_at&&!r.canceled_at,s=e.isAIAgent&&!!((a=e.conversation)!=null&&a.handedOverAt);return o&&!s},il=()=>{const{chatSDK:e,networkStateAdapter:t}=ke(),[n,r]=c.useState(()=>t?t.isOnline()?"connected":"reconnecting":"connected");return lr(e,{onConnected:()=>r("connected"),onDisconnected:()=>r("disconnected"),onReconnectStarted:()=>r("reconnecting"),onReconnectSucceeded:()=>r("connected"),onReconnectFailed:()=>r("disconnected"),onConnectionLost:()=>r("reconnecting")}),c.useEffect(()=>{if(t)return t.subscribe(o=>{if(!o){r("reconnecting");return}r(s=>s==="reconnecting"&&e.connectionState===ie.ConnectionState.OPEN?"connected":s)})},[t,e]),n},al=3e4,ll=({shouldApply:e,lastMessage:t,isBlockedWhileAIResponding:n,currentUserId:r})=>{const[o,s]=c.useState(!1),a=c.useRef(null),l=t&&Tt(t,r)?t.createdAt:0;return c.useEffect(()=>{const u=()=>{a.current&&(clearTimeout(a.current),a.current=null),s(!1)},d=g=>{a.current&&clearTimeout(a.current),s(!0),a.current=setTimeout(()=>{s(!1),a.current=null},g)},m=Date.now()-l,h=al-m;return n||h<=0?u():d(h),()=>{a.current&&clearTimeout(a.current)}},[n,l]),o&&e},ts=e=>{const{chatSDK:t}=ke(),[n,r]=c.useState([]);return Ye.useGroupChannelHandler(t,{onTypingStatusUpdated(o){if(o.url===(e==null?void 0:e.url)){const s=o.getTypingUsers();r(s)}}}),n},cl=({channel:e,lastMessage:t,aiAgentUserId:n,isStreamAnimating:r})=>{const[o,s]=c.useState(!1),a=ts(e);return c.useEffect(()=>{if(!t)return;const l=a.some(d=>d.userId===n),u=Tt(t,n)&&($e.isStreaming(t)||r);s(u||l)},[a,t,n,r]),o},ul=({channel:e,messages:t,isStreamAnimating:n,isInitializingConversation:r})=>{const{aiAgentInfo:o,userSession:s}=kt(),a=il(),l=cl({channel:e,lastMessage:Lr(t,[qe.SendingStatus.SUCCEEDED]),aiAgentUserId:(o==null?void 0:o.userId)??"",isStreamAnimating:n}),u=ll({shouldApply:!!(e!=null&&e.isAIAgent)&&!je(e),isBlockedWhileAIResponding:l,lastMessage:Lr(t,[qe.SendingStatus.PENDING,qe.SendingStatus.SUCCEEDED]),currentUserId:(s==null?void 0:s.userId)??""}),d=(h,g)=>({_mode:h,disabled:h!=="enabled",disabledBy:g});if(!e||a==="disconnected")return d("disabled","unavailable");if(a==="reconnecting")return d("disabled","reconnecting");if(Se(e))return d("disabled","conversation_closed");if(ia(e))return d("disabled","handoff_pending");if(sl(e))return d("disabled","form_active");const m=ol(e);return m?d("disabled",m):l||u||r?d("readOnly","ai_responding"):d("enabled","")},dl=()=>{const[e,t]=c.useState(new Set),n=c.useCallback(o=>{t(s=>{if(s.has(o))return s;const a=new Set(s);return a.add(o),a})},[]),r=c.useCallback(o=>{t(s=>{if(!s.has(o))return s;const a=new Set(s);return a.delete(o),a})},[]);return{isAnimating:e.size>0,start:n,stop:r}},{Provider:ml}=me("AIAgentConversation");function hl({children:e,channelUrl:t,onChannelDeleted:n,onMessagesReceived:r,onMessagesUpdated:o,onConversationClosedStatusChanged:s,onConversationClosedViaDispatcher:a,onBeforeSendMessage:l,onAfterSendMessage:u=oe,shouldMarkAsRead:d=!0,shouldCountNewMessages:m=()=>!1,sortComparator:h}){var G;const g=()=>d&&(f==null?void 0:f.markAsRead()),{chatSDK:C,logger:b,dispatcher:v}=ke(),{channel:f,channelFetchError:y,getChannel:E,isInitializingConversation:x}=nl(t),{statsTrackers:S}=kt();c.useEffect(()=>{if(t)return S.initialRender.setChannelUrl(t),()=>{S.initialRender.cleanup()}},[t,S]);const I=$a(C,f,{replyType:qe.ReplyType.ONLY_REPLY_TO_CHANNEL,shouldCountNewMessages:m,onChannelDeleted:n,onMessagesReceived:L=>r==null?void 0:r(L),onMessagesUpdated:L=>o==null?void 0:o(L),onCacheResult:L=>S.initialRender.onCacheResult(L),onApiResult:L=>S.initialRender.onApiResult(L),logger:b,markAsRead:g,sortComparator:h}),k=dl(),M=ul({channel:f,messages:I.messages,isStreamAnimating:k.isAnimating,isInitializingConversation:x});c.useEffect(()=>{g()},[d,f]);const U=Se(f);c.useEffect(()=>{s==null||s(U)},[U,s]),c.useEffect(()=>{const L=async P=>{const N=typeof(P==null?void 0:P.channelUrl)=="string";f&&N&&P.channelUrl!==f.url||(b.debug("conversation.dispatcher: try to close conversation",f),f!=null&&f.conversation&&f.conversation.status===Ee.ConversationStatus.OPEN&&(await f.closeConversation(),a==null||a()))};return v.subscribe(Me.ConversationClose,L),()=>{v.unsubscribe(Me.ConversationClose,L)}},[v,f,b,(G=f==null?void 0:f.conversation)==null?void 0:G.status,a]);const F={conversation:(f==null?void 0:f.conversation)??void 0,channelSource:{channel:f,error:y,refetch:()=>E(),closeConversation:async()=>{Se(f)||await(f==null?void 0:f.closeConversation())}},messageSource:{messages:I.messages,newMessages:I.newMessages,initialized:I.initialized,subscribeMessageEvents:I.subscribeMessageEvents,loadPrevious:()=>I.loadPrevious(),loadNext:()=>I.loadNext(),deleteMessage:L=>I.deleteMessage(L),resendMessage:L=>I.resendMessage(L),resetNewMessages:()=>I.resetNewMessages(),sendUserMessage:async L=>{var N;if(((N=f==null?void 0:f.conversation)==null?void 0:N.status)===Ee.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(L=await l(L));const P=await I.sendUserMessage(L,u);return u==null||u(P),P},sendFileMessage:async L=>{var N;if(((N=f==null?void 0:f.conversation)==null?void 0:N.status)===Ee.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(L=await l(L));const P=await I.sendFileMessage(L,u);return u==null||u(P),P},sendMultipleFilesMessage:async L=>{var N;if(((N=f==null?void 0:f.conversation)==null?void 0:N.status)===Ee.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(L=await l(L));const P=await I.sendMultipleFilesMessage(L,u);return u==null||u(P),P}},state:{streamAnimation:k,input:M}};return i.createElement(ml,{value:F},e)}function gl(e,t){var C,b,v,f,y,E,x,S,I,k;const[n,r]=c.useState(!1),[o,s]=c.useState(null),[a,l]=c.useState([]),[u,d]=c.useState(null),m=c.useRef(!1),h=c.useCallback(async()=>{if(!m.current&&e.currentUser){m.current=!0,r(!1),s(null),l([]);try{u==null||u.dispose();const M=new zo(e,t);M.setConversationListCollectionHandler({onChannelsAdded:()=>{l(M.channels)},onChannelsUpdated:()=>{l(M.channels)},onChannelsDeleted:()=>{l(M.channels)}}),await M.loadMore(),d(M),s(null)}catch(M){d(null),s(M)}finally{r(!0),m.current=!1}}},[e,e.currentUser,(C=t.filter)==null?void 0:C.aiAgentChannelFilter,(v=(b=t.filter)==null?void 0:b.aiAgentConversationStatusFilter)==null?void 0:v.join(),(y=(f=t.filter)==null?void 0:f.aiAgentIds)==null?void 0:y.join(),(E=t.filter)==null?void 0:E.deskChannelFilter,(S=(x=t.filter)==null?void 0:x.pinnedChannelUrls)==null?void 0:S.join(),(I=t.filter)==null?void 0:I.copilotConversationOnly,(k=t.filter)==null?void 0:k.copilotSupportChannelUrl,t.limit]),g=c.useCallback(async()=>{if(u)try{await u.loadMore()}catch(M){s(M)}},[u]);return lr(e,{onConnected:()=>h()}),c.useEffect(()=>{h()},[h]),c.useEffect(()=>()=>{m.current=!1,u==null||u.dispose()},[u]),{initialized:n,error:o,channels:a,loadMore:g}}const{Provider:fl}=me("AIAgentConversationList");function pl({conversationListLimit:e,conversationListFilter:t,children:n}){var h,g;const{chatSDK:r,aiAgentId:o,queryParams:s}=ke(),a={aiAgentIds:[o],aiAgentConversationStatusFilter:[Ee.ConversationStatus.CLOSED,Ee.ConversationStatus.OPEN]},l=e??((h=s==null?void 0:s.conversationListParams)==null?void 0:h.limit),u={...a,...(g=s==null?void 0:s.conversationListParams)==null?void 0:g.filter,...t},d=gl(r,{limit:l,filter:u}),m={listSource:{initialized:d.initialized,error:d.error??void 0,channels:d.channels,loadMore:()=>d.loadMore()}};return i.createElement(fl,{value:m},n)}function _l(e){let t="pending",n=e.then(r=>{t="resolved",n=r}).catch(r=>{t="rejected",n=r});return{get value(){if(t==="resolved")return n;throw n}}}const{Provider:El,useContext:ns}=me("MessageTemplateFetching");function bl({children:e,internalVariables:t}){const n=c.useRef({}),r=c.useRef({}),[o,s]=c.useState({}),a=c.useCallback((d,m)=>{s(h=>({...h,[d]:{fetching:!1,error:!1,...h[d],...m}}))},[]),l=c.useCallback(async({onRequestTemplate:d,onGetCachedTemplate:m,templateKey:h,suspense:g=!1})=>{const C=m(h);if(C)return C;const b=r.current[h];if(b)return b;g||a(h,{fetching:!0});const v=d(h).catch(f=>{throw g||a(h,{error:!0}),f}).finally(()=>{g||a(h,{fetching:!1}),delete r.current[h]});return r.current[h]=v,v},[a]),u={internalVariables:t,fetchTemplate:l,suspend:(d,m)=>{if(n.current[d])return n.current[d];const h=_l(m());return n.current[d]=h,h},getIsFetching:d=>{var m;return((m=o[d])==null?void 0:m.fetching)??!1},getHasError:d=>{var m;return((m=o[d])==null?void 0:m.error)??!1}};return i.createElement(El,{value:u},e)}const gn={VARIABLE:e=>new RegExp(`\\{${e}\\}`,"g"),VIEW_VARIABLE:e=>new RegExp(`"{@${e}}"`,"g")};function Xe({uiTemplateString:e,variables:t={}}){const n=ha(t);return nr({template:e,variables:n,variableKeyPattern:r=>gn.VARIABLE(r)})}function Ze({theme:e,uiTemplateString:t,colorVariables:n={}}){return nr({template:t,variables:n,variableKeyPattern:r=>gn.VARIABLE(r),variableValueTransformer:r=>ma(e,r)})}function Cl({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:o,onRequestTemplate:s}){const l=Object.values(n).flat().map(d=>d.key);return[...new Set(l)].some(d=>!s(d))?null:nr({template:t,variables:n,variableKeyPattern:d=>gn.VIEW_VARIABLE(d),variableValueTransformer:d=>{const m=d.map(({key:h,variables:g})=>{const C=s(h),{ui_template:b,color_variables:v}=wt(C);let f=JSON.stringify(b);return f=Xe({uiTemplateString:f,variables:o}),f=Ze({theme:e,uiTemplateString:f,colorVariables:v}),f=Ze({theme:e,uiTemplateString:f,colorVariables:r}),f=Xe({uiTemplateString:f,variables:g}),hn(f)});return JSON.stringify(m)}})}async function vl({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:o,onRequestTemplate:s}){return ga({template:t,variables:n,variableKeyPattern:a=>gn.VIEW_VARIABLE(a),variableValueTransformer:async a=>{const l=a.map(async({key:d,variables:m})=>{const h=await s(d),{ui_template:g,color_variables:C}=wt(h);let b=JSON.stringify(g);return b=Xe({uiTemplateString:b,variables:o}),b=Ze({theme:e,uiTemplateString:b,colorVariables:C}),b=Ze({theme:e,uiTemplateString:b,colorVariables:r}),b=Xe({uiTemplateString:b,variables:m}),hn(b)}),u=await Promise.all(l);return JSON.stringify(u)}})}const yl=({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:o,color_variables:s}=wt(e);let a=JSON.stringify(o);if(Object.keys(r.viewVariables??{}).length>0){const u=Cl({...r,uiTemplateString:a,aiAgentColorVariables:t,internalVariables:n});if(u===null)return null;a=u}return a=Xe({...r,uiTemplateString:a,variables:n}),a=Ze({...r,uiTemplateString:a,colorVariables:s}),a=Ze({...r,uiTemplateString:a,colorVariables:t}),a=Xe({...r,uiTemplateString:a}),hn(a)},Sl=async({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:o,color_variables:s}=wt(e);let a=JSON.stringify(o);return Object.keys(r.viewVariables??{}).length>0&&(a=await vl({...r,uiTemplateString:a,aiAgentColorVariables:t,internalVariables:n})),a=Xe({...r,uiTemplateString:a,variables:n}),a=Ze({...r,uiTemplateString:a,colorVariables:s}),a=Ze({...r,uiTemplateString:a,colorVariables:t}),a=Xe({...r,uiTemplateString:a}),hn(a)},Al=e=>{const{aiAgentColorVariables:t={}}=e,{internalVariables:n}=ns();return c.useState(()=>{const r=e.onGetCachedTemplate(e.templateKey);return r?yl({...e,rawTemplate:r,aiAgentColorVariables:t,internalVariables:n,onRequestTemplate:e.onGetCachedTemplate}):null})},xl=e=>{const[t]=Al(e);if(t)return t;const{aiAgentColorVariables:n={}}=e,{internalVariables:r,fetchTemplate:o,suspend:s}=ns();return s(e.templateKey,async()=>{const l=await o({...e,suspense:!0});return await Sl({...e,rawTemplate:l,aiAgentColorVariables:n,internalVariables:r})}).value},Tl="remove_powered_by",cr=(e,t)=>{var o,s;const{chatSDK:n}=ke(),{aiAgentInfo:r}=kt();if(e==="handoff-button"){const a=!!((o=t==null?void 0:t.conversation)!=null&&o.handoff);return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.showHandoffButton)&&a&&tr(t)}if(e==="special-notice")return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.specialNoticeEnabled)&&!!(r!=null&&r.specialNotice);if(e==="powered-by"){const a=(s=n==null?void 0:n.appInfo)==null?void 0:s.applicationAttributes;return c.useMemo(()=>!(Array.isArray(a)&&a.includes(Tl)),[a])}throw new Error("Unsupported feature")},Il={required:"This question is required",minLength:e=>`Minimum ${e} characters required`,maxLength:e=>`Maximum ${e} characters allowed`,min:e=>`Minimum value is ${e}`,max:e=>`Maximum value is ${e}`,minSelect:e=>`Select at least ${e} options`,maxSelect:e=>`Select at most ${e} options`,regex:"Invalid format",invalidSelection:"Invalid selection"},wl={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.trim()===""))return{isValid:!1,error:n.required};if(!r)return{isValid:!0};const{rules:o}=e;if(o){if(o.min_length!==void 0&&r.length<o.min_length)return{isValid:!1,error:typeof n.minLength=="function"?n.minLength(o.min_length):n.minLength};if(o.max_length!==void 0&&r.length>o.max_length)return{isValid:!1,error:typeof n.maxLength=="function"?n.maxLength(o.max_length):n.maxLength};if(o.regex&&!new RegExp(o.regex).test(r))return{isValid:!1,error:n.regex}}return{isValid:!0}}},kl={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&r===null)return{isValid:!1,error:n.required};if(r===null)return{isValid:!0};const{rules:o}=e;if(o){if(o.min!==void 0&&r<o.min)return{isValid:!1,error:typeof n.min=="function"?n.min(o.min):n.min};if(o.max!==void 0&&r>o.max)return{isValid:!1,error:typeof n.max=="function"?n.max(o.max):n.max}}return{isValid:!0}}},Ll={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;return e.required&&!r?{isValid:!1,error:n.required}:r&&!e.options.includes(r)?{isValid:!1,error:n.invalidSelection}:{isValid:!0}}},Ml={getValueOrDefault:e=>e.values??e.default_values??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.length===0))return{isValid:!1,error:n.required};if(!r||r.length===0)return{isValid:!0};if(r.filter(a=>!e.options.includes(a)).length>0)return{isValid:!1,error:n.invalidSelection};const{rules:s}=e;if(s){if(s.min_select!==void 0&&r.length<s.min_select)return{isValid:!1,error:typeof n.minSelect=="function"?n.minSelect(s.min_select):n.minSelect};if(s.max_select!==void 0&&r.length>s.max_select)return{isValid:!1,error:typeof n.maxSelect=="function"?n.maxSelect(s.max_select):n.maxSelect}}return{isValid:!0}}},Ol={text:wl,number:kl,"single-select":Ll,"multi-select":Ml},Rl={getValueOrDefault:()=>null,validate:()=>({isValid:!1})};function rs(e){return Ol[e.type]||Rl}function Gr(e){return rs(e).getValueOrDefault(e)}function Nl(e,t,n={}){const r={...Il,...n};return rs(e).validate(e,t,r)}const Dl=(e,t={})=>{const{labels:n={},onSubmit:r,onCancel:o}=t,[s,a]=c.useState({}),[l,u]=c.useState(()=>{const v={};return e.fields.forEach(f=>{v[f.key]=Gr(f)}),v}),d=c.useMemo(()=>e.submitted_at?"submitted":e.canceled_at?"canceled":"draft",[e.submitted_at,e.canceled_at]);c.useEffect(()=>{if(d==="submitted"||d==="canceled"){const v={};let f=!1;e.fields.forEach(y=>{const E=Gr(y);JSON.stringify(l[y.key])!==JSON.stringify(E)&&(f=!0),v[y.key]=E}),f&&u(v)}},[d]);const m=(v,f)=>{u(y=>({...y,[v]:f})),a(y=>({...y,[v]:void 0}))},h=e.fields.map(v=>{var E,x,S;const f=l[v.key]??null,y={key:v.key,label:v.label,error:s[v.key],required:v.required};return v.type==="text"?{...y,type:"text",layout:v.layout,value:f,...v.placeholder&&{placeholder:v.placeholder},...((E=v.rules)==null?void 0:E.max_length)&&{maxLength:v.rules.max_length}}:v.type==="number"?{...y,type:"number",layout:v.layout,value:f,...v.placeholder&&{placeholder:v.placeholder},...((x=v.rules)==null?void 0:x.max)&&{max:v.rules.max}}:v.type==="single-select"?{...y,type:"single-select",layout:v.layout,value:f,options:v.options}:v.type==="multi-select"?{...y,type:"multi-select",layout:v.layout,value:f,options:v.options,...((S=v.rules)==null?void 0:S.max_select)&&{maxSelect:v.rules.max_select}}:{...y,type:"unknown",layout:"default",value:null}});return{state:d,fields:h,getField:v=>h.find(f=>f.key===v),updateFieldValue:m,submit:async()=>{const v={};let f=!1;for(const y of e.fields){const E=l[y.key]??null,x=Nl(y,E,n);x.isValid||(v[y.key]=x.error,f=!0)}if(a(v),!f&&r){const y={};e.fields.forEach(E=>{y[E.key]=l[E.key]??null}),await r(y)}},cancel:async()=>{await(o==null?void 0:o())}}},$l=e=>{if(e==null||typeof e!="object")return;const t="thinking_message"in e?e.thinking_message:void 0;return typeof t=="string"&&t?t:void 0},os=e=>{const{aiAgentInfo:t}=kt(),r=ts(e)[0];if(!r)return null;const o=r.userId===(t==null?void 0:t.userId),s=o?$l(r.metaData):void 0;return{user:o?t:r,isBot:o,thinkingMessage:s}},Pl=(e,t,{enabled:n=!0,idleMs:r=1e3}={})=>{const o=c.useRef(null),s=c.useRef(t),a=c.useRef(t),l=c.useRef(!1);s.current=t,c.useEffect(()=>{if(o.current&&(clearTimeout(o.current),o.current=null),!n||!e){(l.current?a.current:s.current)(!1),l.current=!1,a.current=s.current;return}l.current=!0,a.current=s.current,a.current(!0),o.current=setTimeout(()=>{o.current=null,a.current(!1),l.current=!1,a.current=s.current},r)},[n,r,e]),c.useEffect(()=>()=>{o.current&&(clearTimeout(o.current),o.current=null),(l.current?a.current:s.current)(!1),l.current=!1,a.current=s.current},[])},Fl=(e=1e4)=>{const t=new Map;let n=e;return{shouldAnnounce:l=>{const u=Date.now(),d=t.get(l);return d!==void 0&&u-d<n?!1:(t.set(l,u),!0)},setInterval:l=>{n=l},reset:()=>{t.clear()}}},Bl=(e,t,n=1e4,r=!0)=>{const o=c.useRef(null),s=c.useRef(null),a=c.useRef(!1);o.current||(o.current=Fl(n));const l=(e==null?void 0:e.nickname.trim())||null,u=(e==null?void 0:e.userId)??l;c.useEffect(()=>{var d;(d=o.current)==null||d.setInterval(n)},[n]),c.useEffect(()=>{var h;if(!r){a.current=!1,s.current=u;return}if(!u||!l){a.current=!1,s.current=null;return}const d=!a.current,m=s.current!==u;a.current=!0,s.current=u,!(!d&&!m)&&(h=o.current)!=null&&h.shouldAnnounce(u)&&t(l)},[u,l,r,t])},ur=({channel:e,userSession:t,aiAgentInfo:n})=>{if(!t||!n||!e)return{fallbackIcon:"delight",url:void 0,title:""};const r=e.members.filter(s=>s.userId!==t.userId).sort((s,a)=>a.joinedAt-s.joinedAt)[0],o={ai(s){return{fallbackIcon:s,url:n.profileUrl,title:n.nickname}},human(s){return{fallbackIcon:s,url:r==null?void 0:r.profileUrl,title:(r==null?void 0:r.nickname)||n.nickname}},channel(s){return{fallbackIcon:s,url:e==null?void 0:e.coverUrl,title:(e==null?void 0:e.name)??""}}};return e.isAIAgent?je(e)?o.human("agent"):o.ai("delight"):e.isDesk?o.human("agent"):o.channel("user")},zr=e=>c.useReducer((t,n)=>({...t,...n}),e);var Ne=(e=>(e.AI_AGENT_CSAT_5="AI_AGENT_CSAT_5",e.AI_AGENT_CSAT_5_WITH_CRE="AI_AGENT_CSAT_5_WITH_CRE",e.HELPDESK_CSAT_5="HELPDESK_CSAT_5",e))(Ne||{});const Hl=new Set(["free_text","single_choice"]),Ul=({csatPayload:e,type:t,initialCsat:n,initialCsatReason:r,initialIsResolved:o})=>{const[s,a]=zr({csatType:t,csat:n,csatReason:r,isResolved:o}),[l,u]=zr({followUpItem:!1}),d=c.useMemo(()=>{var f;const C=s.csat,b=typeof C=="number",v=(f=e.follow_up)==null?void 0:f.find(y=>b?y.scores.includes(C):y.always_visible??!1);if(Hl.has(v==null?void 0:v.response_type))return v},[s.csat,e.follow_up]),m=(()=>{var C;if(typeof n=="number")return"submitted";if((t===Ne.AI_AGENT_CSAT_5||t===Ne.HELPDESK_CSAT_5)&&typeof s.csat=="number")return"submittable";if(t===Ne.AI_AGENT_CSAT_5_WITH_CRE){const b=typeof s.csat=="number",v=!((C=e.cre)!=null&&C.required)||typeof s.isResolved=="boolean";if(b&&v)return"submittable"}return"unsubmittable"})(),h=c.useCallback(()=>typeof s.csat>"u"?!1:d!=null&&d.required&&!s.csatReason?(u({followUpItem:!0}),!1):!0,[s,d,u]);return c.useEffect(()=>{r||(a({csatReason:""}),u({followUpItem:!1}))},[r,d,a,u]),{params:s,setParams:a,error:l,setError:u,followUpItem:d,state:m,validateParams:h,itemProps:{csatPayload:e,state:m,submitted:m==="submitted"}}},In=5,Vl=250,Gl=50,Wr=e=>Math.max(0,e-Gl),zl=e=>e<1e3?{speed:In*.5,chunkSize:2}:e<2e3?{speed:In*.8,chunkSize:2}:{speed:In*.6,chunkSize:3},Wl=e=>{const{text:t,enabled:n=!1,onAnimationStart:r,onAnimationProgress:o,onAnimationComplete:s}=e,[a,l]=c.useState(()=>Wr(t.length)),u=c.useRef(null),d=c.useRef({startTime:0,lastUpdate:0,lastProgressCall:0}).current,m=c.useRef({onStart:r,onProgress:o,onComplete:s}).current,h=c.useRef({startCalled:!1,completeCalled:!1}).current,g=c.useRef({initialEnabled:n,textLength:t.length,enabled:n}).current,C=n,b=a<t.length,v=g.initialEnabled&&(C||b);return c.useLayoutEffect(()=>{m.onStart=r,m.onProgress=o,m.onComplete=s,g.textLength=t.length,g.enabled=n}),c.useLayoutEffect(()=>{var f;g.initialEnabled&&(h.startCalled||(h.startCalled=!0,(f=m.onStart)==null||f.call(m)),l(y=>t.length<y?t.length:y))},[t]),c.useEffect(()=>{if(!g.initialEnabled)return;let f=Wr(t.length);d.lastUpdate=0,d.startTime=0,d.lastProgressCall=0;const y=E=>{var G;d.lastUpdate===0&&(d.lastUpdate=E,d.startTime=E,d.lastProgressCall=E);const x=g.textLength,S=E-d.lastUpdate,I=E-d.startTime,{speed:k,chunkSize:M}=zl(I),U=k*M;S>=U&&f<x&&(f=Math.min(f+M,x),l(f),d.lastUpdate=E),E-d.lastProgressCall>=Vl&&(d.lastProgressCall=E,(G=m.onProgress)==null||G.call(m)),(f<x||g.enabled)&&(u.current=requestAnimationFrame(y))};return u.current=requestAnimationFrame(y),()=>{var E;u.current&&cancelAnimationFrame(u.current),h.startCalled&&!h.completeCalled&&(h.completeCalled=!0,(E=m.onComplete)==null||E.call(m))}},[]),c.useEffect(()=>{var x;const f=g.initialEnabled&&h.startCalled,y=!n,E=a>=t.length&&t.length>0;f&&y&&E&&!h.completeCalled&&(h.completeCalled=!0,(x=m.onComplete)==null||x.call(m))},[n,a,t.length]),{streamText:g.initialEnabled?t.slice(0,a):t,isAnimating:v}},ss=e=>e.replace(/\s+/g," ").trim(),ql="Code block",is=e=>`A11Y_INLINE_CODE_${e}`,as=e=>{let t="",n=e;for(;;){const r=n.match(/^([ \t]{0,3}>\s?)(.*)$/);if(r){t+=r[1],n=r[2];continue}break}return{blockquotePrefix:t,content:n}},ls=e=>{const t=e.match(/^([ \t]{0,3}[-+*]\s+)(.*)$/);if(t)return{content:t[2],hasListPrefix:!0};const n=e.match(/^([ \t]{0,3}\d+[.)]\s+)(.*)$/);return n?{content:n[2],hasListPrefix:!0}:{content:e,hasListPrefix:!1}},Kl=e=>{const{blockquotePrefix:t,content:n}=as(e),{content:r}=ls(n),o=r.match(/^[ \t]{0,3}([`~]{3,})(.*)$/);if(!o)return;const s=o[1],a=o[2],l=s[0];if(!(l!=="`"&&l!=="~"||!s.split("").every(u=>u===l))&&!(l==="`"&&a.includes("`")))return{char:l,blockquotePrefix:t,length:s.length}},Yl=(e,t)=>{const{blockquotePrefix:n,content:r}=as(e);if(n!==t.blockquotePrefix)return!1;const{content:o,hasListPrefix:s}=ls(r);if(s)return!1;const a=o.match(/^[ \t]{0,3}([`~]{3,})[ \t]*$/);if(!a)return!1;const l=a[1];return l[0]===t.char&&l.length>=t.length&&l.split("").every(u=>u===t.char)},jl=(e,t,n)=>{let r=n;for(;r<e.length;){const o=e[r];if(o==="\\"&&r+1<e.length){r+=2;continue}if(o===t)return r;r+=1}return-1},Xl=(e,t)=>{let n=1,r=t;for(;r<e.length;){const o=e[r];if(o==="\\"&&r+1<e.length){r+=2;continue}if(o==="["){n+=1,r+=1;continue}if(o==="]"&&(n-=1,n===0))return r;r+=1}return-1},Zl=(e,t)=>{let n=t,r=1,o,s=!1,a=!1;for(;n<e.length&&r>0;){const l=e[n];if(l==="\\"&&n+1<e.length){n+=2;continue}if(o){l===o&&(o=void 0),n+=1;continue}if(r===1&&s&&/\s/.test(l)){a=!0,n+=1;continue}if(r===1&&a&&(l==='"'||l==="'")){o=l,n+=1;continue}if(l==="("){r+=1,s=!0,n+=1;continue}if(l===")"){r-=1,n+=1;continue}/\s/.test(l)||(s=!0),n+=1}return r===0?n:-1},Jl=e=>{let t=0,n="";for(;t<e.length;){const r=jl(e,"[",t);if(r===-1){n+=e.slice(t);break}const o=Xl(e,r+1);if(o===-1){n+=e.slice(t);break}if(r>0&&e[r-1]==="!"&&nn(e,r-1)){n+=e.slice(t,o+1),t=o+1;continue}if(e[o+1]!=="("){n+=e.slice(t,o+1),t=o+1;continue}const s=r>0&&e[r-1]==="!"&&!nn(e,r-1)?r-1:r;n+=e.slice(t,s);const a=e.slice(r+1,o),l=Zl(e,o+2);if(l===-1){n+=e.slice(s);break}n+=a,t=l}return n},cs=(e,t,n)=>{if(!/^\d+$/.test(t))return!1;const r=e.slice(-1);return/\d/.test(r)&&/\d/.test(n)},Ql=e=>e.replace(/(^|[^*\\])\*\*([^\s*](?:[\s\S]*?[^\s*])?)\*\*(?!\*)/g,(t,n,r,o,s)=>{const a=s[o+t.length]??"";return cs(n,r,a)?t:`${n}${r}`}),ec=e=>e.replace(/(^|[^_\\])__([^\s_](?:[\s\S]*?[^\s_])?)__(?!_)/g,"$1$2"),tc=e=>e.replace(/(^|[^~\\])~~([^\s~](?:[\s\S]*?[^\s~])?)~~(?!~)/g,"$1$2"),nc=e=>{let t=e;return t=t.replace(/(^|[^*\\])\*([^\s*](?:[\s\S]*?[^\s*])?)\*(?!\*)/g,(n,r,o,s,a)=>{const l=a[s+n.length]??"";return cs(r,o,l)?n:`${r}${o}`}),t=t.replace(/(^|[\s([{"'])_([^_\s](?:[\s\S]*?[^_\s])?)_(?=$|[\s)\]}"'.,!?:;])/g,"$1$2"),t},rc=e=>e.replace(/\\([\\`*_[\]()#+.!~|-])/g,"$1"),oc=e=>{let t=e;return t=t.replace(/^\s{0,3}#{1,6}\s+/gm,""),t=t.replace(/^\s{0,3}>\s?/gm,""),t=t.replace(/^\s{0,3}(?!([-*_])(?:\s*\1){2,}\s*$)[-*+]\s+/gm,""),t=t.replace(/^\s{0,3}\d+[.)]\s+/gm,""),t},qr=e=>{const t=e.trim();if(!t.includes("|"))return!1;const n=t.split("|").map(r=>r.trim()).filter(Boolean);return n.length===0?!1:n.every(r=>/^:?-{3,}:?$/.test(r))},Kr=e=>{const t=[];let n="",r=!1;for(const s of e.trim()){if(r){n+=s==="|"?"|":`\\${s}`,r=!1;continue}if(s==="\\"){r=!0;continue}if(s==="|"){const a=n.trim();a&&t.push(a),n="";continue}n+=s}r&&(n+="\\");const o=n.trim();return o&&t.push(o),t},sc=e=>{const t=e.split(`
|
|
2
|
-
`),n=[];let r=0;for(;r<t.length;){const o=t[r],s=t[r+1],a=
|
|
3
|
-
`)},
|
|
4
|
-
`),r=[];let o=0;for(;o<n.length;){const s=n[o],a=
|
|
5
|
-
`)},
|
|
6
|
-
`;){if(e[l]==="`"&&!
|
|
7
|
-
`);if(!n)return;const r=[];let o=n;o=ac(o,t),o=oc(o);const s=lc(o);o=s.text,r.push(...s.inlineCodes),o=Jl(o),o=Ql(o),o=ec(o),o=tc(o),o=nc(o),o=sc(o),o=ic(o),o=rc(o);for(let l=0;l<r.length;l++)o=o.replaceAll(is(l),r[l]);return ss(o)||void 0},rn=e=>(e==null?void 0:e.trim())||"",uc=e=>(e?ss(e):void 0)||void 0,dr=e=>({text:rn(e),format:"plain"}),dc=e=>({text:rn(e),format:"markdown"}),ht=({markdownText:e,plainText:t,comparisonText:n})=>{const r=rn(e);return r&&r!==rn(n)?dc(r):dr(t)},mt=({sender:e,message:t,messageFormat:n="plain",time:r,codeBlockPlaceholder:o})=>{const s=[],a=n==="markdown"?cc(t,{codeBlockPlaceholder:o}):uc(t);if(e&&s.push(e),a&&s.push(a),r&&s.push(r),s.length!==0)return s.join(", ")},mc=(e,t={})=>{const{throttleMs:n=1e3,isSuppressed:r}=t;let o=null;const s=[];let a=null,l=null,u=!1,d=0;const m=(S,I)=>({text:S,ignoreSuppression:I,queueOrder:d++}),h=()=>{const S=s[0]??null,I=o;return S&&I?I.queueOrder<S.queueOrder?(o=null,I):s.shift()??null:S?s.shift()??null:I!==null?(o=null,I):null},g=()=>{for(;;){const S=h();if(!S)return null;if(!(!S.ignoreSuppression&&(r!=null&&r())))return S}},C=S=>{a=S,u=!0,e(S),l=setTimeout(()=>{l=null,u=!1;const I=g();I&&C(I.text)},n)},b=S=>{a=S,e(S)},v=(S,I,k)=>{if(S&&!(!I&&(r!=null&&r()))&&!(S===a&&u))if(u){if(((k==null?void 0:k.mode)??"latestOnly")==="ordered"){const U=s[s.length-1];if((U==null?void 0:U.text)===S)return;s.push(m(S,I));return}o=m(S,I)}else o=null,C(S)};return{announce:(S,I)=>{v(S,!1,I)},announceIgnoringSuppression:(S,I)=>{v(S,!0,I)},flush:()=>{const S=[];let I=h();for(;I!==null;)S.push(I),I=h();if(l!==null&&(clearTimeout(l),l=null),u=!1,S.length!==0)for(const k of S)b(k.text)},destroy:()=>{l!==null&&(clearTimeout(l),l=null),o=null,s.length=0,a=null,u=!1}}},hc=e=>{switch(e){case"conversationClosed":case"csatDisplayed":return"ordered";default:return"latestOnly"}},gc=(e,t)=>e.screen==="conversationList"?typeof e.conversationCount=="number"?t.screenConversationListWithCount(e.conversationCount):t.screenConversationListNoCount:[e.agentName?t.screenConversationWithAgent(e.agentName):t.screenConversation,e.isClosed?t.conversationClosed:null,e.isClosed&&e.hasCSAT?t.csatDisplayed:null,e.isEmpty?t.emptyState:null].filter(r=>!!r).join(". "),fc=(e,t)=>{switch(e.event){case"newMessage":return e.senderName?t.newMessageFromSender(e.senderName,1):t.newMessage(1);case"typing":return t.typing(e.agentName??"");case"sendFailed":return t.sendFailed;case"agentConnected":return t.agentConnected(e.agentName??"");case"conversationClosed":return t.conversationClosed;case"csatDisplayed":return t.csatDisplayed;case"emptyState":return t.emptyState;case"inputDisabled":return t.inputDisabled}},pc=(e,t)=>{switch(e.type){case"fileSizeExceeded":return t.fileSizeExceeded(e.maxSizeMB??25);case"sendFailed":return t.sendFailed;case"csatFormError":return t.csatFormError;case"generic":return e.message}},_c=(e,t)=>!t||!Oe(e)||e.sender.userId!==t?null:e.reqId||(e.messageId>0?String(e.messageId):null),Yr=(e,t)=>pe.isAdmin(e)?pe.isCSAT(e):"sender"in e?e.sender.userId!==t:!1,Ec=e=>"messageId"in e&&e.messageId>0?String(e.messageId):"reqId"in e&&typeof e.reqId=="string"&&e.reqId.length>0?e.reqId:null,bc=e=>e===ie.CollectionEventSource.EVENT_MESSAGE_RECEIVED||e===ie.CollectionEventSource.EVENT_MESSAGE_UPDATED,jr=(e,t,n,r)=>{const{newestFirst:o=!1}={};if(o){for(const s of e)if(s&&Yr(s,n)&&t.some(a=>kr(s,a)))return s;return}for(let s=e.length-1;s>=0;s-=1){const a=e[s];if(a&&Yr(a,n)&&t.some(l=>kr(a,l)))return a}},Cc=({isOpened:e,opensConversationList:t})=>e?t?"closeConversationList":"closeConversation":t?"openConversationList":"openConversation",vc=(e,t)=>{switch(e){case"closeConversationList":return t.closeConversationList;case"closeConversation":return t.closeConversation;case"openConversationList":return t.openConversationList;case"openConversation":return t.openConversation}},yc=(e,t)=>{switch(e){case"closeConversation":return t.hintCloseConversation;case"openConversationList":return t.hintOpenConversationList;case"openConversation":return t.hintOpenConversation;default:return}},Sc=({intent:e,strings:t})=>({label:vc(e,t),hint:yc(e,t)}),Ac="1.23.0",we="sb-agent",ce={ENTRY:`${we}-entry`,MODAL_ROOT:`${we}-modal-root`,WINDOW:`${we}-window`,LAUNCHER:`${we}-launcher`},us="data-sb-initial-focus",ds="true",xc=`[${us}="${ds}"]`,Tc={[us]:ds},Ut=2147483647,ot={MODAL:Ut-1,TOOLTIP:Ut-2,WINDOW:Ut-3,LAUNCHER:Ut-4},ms=36,Ic=100,wc=Ac,mr="noopener noreferrer nofollow";function kc(){return{isOnline:()=>navigator.onLine,subscribe:e=>{const t=()=>e(!0),n=()=>e(!1);return window.addEventListener("online",t),window.addEventListener("offline",n),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",n)}}}}const Vt={};function Lc(){return{get:e=>{try{return localStorage.getItem(e)}catch{return Vt[e]??null}},set:(e,t)=>{try{localStorage.setItem(e,t)}catch{Vt[e]=t}},delete:e=>{try{localStorage.removeItem(e)}catch{delete Vt[e]}},getKeys:e=>{try{const t=[];for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);r&&r.startsWith(e)&&t.push(r)}return t}catch{return Object.keys(Vt).filter(t=>t.startsWith(e))}}}}const Mc={conversation:{input_placeholder:"Ask a question",input_placeholder_disabled:"Chat is unavailable in this channel",input_placeholder_steward:"Processing your request...",input_placeholder_wait_ai_agent_response:"Waiting for the agent's reply...",input_placeholder_active_form:"Please fill out the form to move forward.",input_placeholder_reconnecting:"Trying to reconnect. Refresh if persists.",unknown_message_type:"(Unknown message type)",powered_by:"Powered by",citation_title:"Source",start_new_conversation_label:"Start a conversation",scroll_to_new_messages_label:()=>"New message",failed_message_resend:"Retry",failed_message_remove:"Remove",file_upload_no_supported_files:"No supported file types available.",file_upload_replace_alert_title:"Replace attachment?",file_upload_replace_alert_description:"Uploading a different file type will replace the current one.",a11y_message_list:"Chat messages",a11y_scroll_to_bottom:"Scroll to bottom",a11y_scroll_to_new_messages:"Scroll to new messages",a11y_open_conversation_list:"Open conversation list",a11y_open_conversation:"Open conversation",a11y_open_conversations:"Open conversations",a11y_close_conversation:"Close conversation",a11y_close_conversations:"Close conversations",a11y_menu:"Menu",a11y_message_input:"Message",a11y_send_message:"Send message",a11y_attach_file:"Attach file",a11y_close_messenger:"Close messenger",a11y_expand_messenger:"Expand messenger",a11y_collapse_messenger:"Collapse messenger",a11y_connect_agent:"Connect with an agent",a11y_message_sender_you:"You",a11y_suggested_reply:"Suggested reply",a11y_typing_indicator:"Typing",a11y_code_block_placeholder:"Code block",a11y_typing_format:e=>`${e} is typing`,a11y_message_failed:"Message send failed",a11y_new_messages_received:e=>`${e} new ${e===1?"message":"messages"} received`,a11y_new_messages_received_from_sender:(e,t)=>`${e}: ${t} new ${t===1?"message":"messages"} received`,a11y_agent_connected:e=>"Connected to human agent",a11y_conversation_closed:"Conversation has ended",a11y_file_image:e=>`Image file: ${e}`,a11y_file_video:e=>`Video file: ${e}`,a11y_file_document:e=>`Document file: ${e}`,a11y_screen_conversation:"Conversation",a11y_screen_conversation_with_agent:e=>`Conversation with ${e}`,a11y_screen_conversation_list_no_count:"Conversation list",a11y_screen_conversation_list_with_count:e=>`Conversations, ${e} total`,a11y_csat_displayed:"Satisfaction survey displayed",a11y_empty_conversation:"No messages in this conversation",a11y_input_disabled:"Message input is disabled",a11y_file_size_exceeded:e=>`File exceeds size limit of ${e}MB`,a11y_csat_form_error:"Please complete the required fields",a11y_hint_send_message:"Sends the message",a11y_hint_open_conversation:"Opens the conversation",a11y_hint_open_conversations:"Opens conversations",a11y_hint_close_conversation:"Closes the conversation",a11y_hint_open_menu:"Opens the menu",a11y_hint_connect_to_agent:"Escalates to a human agent",a11y_hint_attach_file:"Opens file attachment options",a11y_hint_view_new_messages:"Scrolls to new messages",a11y_hint_open_file:"Opens the file",a11y_hint_open_image:"Opens the image",a11y_hint_send_reply:"Sends this reply"},conversation_list:{header_title:"Conversations",ended:"Ended",system_message:"System message",footer_title:"Start a conversation",multiple_files_count:e=>`${e} ${e===1?"file":"files"}`,a11y_conversation_item:(e,t,n,r)=>`${e}, ${t}, ${n}, ${r} unread ${r===1?"message":"messages"}`},date_format:{just_now:"Just now",minutes_ago:e=>`${e} minutes ago`,hours_ago:e=>`${e} hours ago`,date_short:"MM/dd/yyyy",date_separator:"MMMM dd, yyyy",message_timestamp:"p"},csat:{title:"Your feedback matters to us",submitted_label:"Successfully submitted!",cre_question:"Was your issue resolved?",cre_positive_label:"Yes, thank you! 👍",cre_negative_label:"No, that didn't help.",reason_placeholder:"Share your feedback",question:"How would you rate your experience?",submit_label:"Submit",submission_expired:"We're sorry, the survey period has ended.",a11y_rating_label:(e,t)=>`${e} out of 5 — ${t}`,a11y_hint_select_rating:"Selects this rating"},form:{optional_label:"optional",validation_required:"This question is required"},common:{placeholder_something_went_wrong:"Something went wrong",placeholder_no_messages:"No messages",placeholder_no_conversations:"No conversations yet",placeholder_something_went_wrong_retry_label:"Retry",button_ok:"OK",button_cancel:"Cancel"},feedback:{title:"Submit feedback",good:"Good",bad:"Bad",comment_label:"Comment (optional)",comment_placeholder:"Leave a comment",cancel:"Cancel",submit:"Submit",save:"Save",edit:"Edit feedback",remove:"Remove feedback"},handoff:{confirm_title:"Request handoff?",confirm_description:"You'll be transferred to a human agent. Your conversation history will be shared.",confirm_cancel:"Cancel",confirm_handoff:"Handoff"}},Wn={language:"en",strings:Mc,dateLocale:Ai.enUS},hs=e=>({MESSAGE_INPUT__PLACE_HOLDER:e.conversation.input_placeholder,MESSAGE_INPUT__PLACE_HOLDER__DISABLED:e.conversation.input_placeholder_disabled,MESSAGE_INPUT__PLACE_HOLDER__STEWARD:e.conversation.input_placeholder_steward,MESSAGE_INPUT__PLACE_HOLDER__WAIT_AI_AGENT_RESPONSE:e.conversation.input_placeholder_wait_ai_agent_response,MESSAGE_INPUT__PLACE_HOLDER__RECONNECTING:e.conversation.input_placeholder_reconnecting,UNKNOWN__UNKNOWN_MESSAGE_TYPE:e.conversation.unknown_message_type,POWERED_BY:e.conversation.powered_by,CSAT_TITLE_UNSUBMITTED:e.csat.title,CSAT_TITLE_SUBMITTED:e.csat.submitted_label,CSAT_CRE_TITLE:e.csat.cre_question,CSAT_CRE_SOLVED:e.csat.cre_positive_label,CSAT_CRE_NOT_SOLVED:e.csat.cre_negative_label,CSAT_REASON_PLACEHOLDER:e.csat.reason_placeholder,CSAT_RATING_TITLE:e.csat.question,CSAT_SUBMIT_LABEL:e.csat.submit_label,CSAT_SUBMISSION_EXPIRED:e.csat.submission_expired,DATE_FORMAT__JUST_NOW:e.date_format.just_now,DATE_FORMAT__MINUTES_AGO:e.date_format.minutes_ago,DATE_FORMAT__HOURS_AGO:e.date_format.hours_ago,DATE_FORMAT__DATE_SHORT:e.date_format.date_short,DATE_FORMAT__MESSAGE_LIST__DATE_SEPARATOR:e.date_format.date_separator,DATE_FORMAT__MESSAGE_TIMESTAMP:e.date_format.message_timestamp,CONVERSATION_LIST__HEADER_TITLE:e.conversation_list.header_title,CONVERSATION_LIST__ENDED:e.conversation_list.ended,CONVERSATION_LIST__SYSTEM_MESSAGE:e.conversation_list.system_message,CONVERSATION_LIST__NO_CONVERSATIONS:e.common.placeholder_no_conversations,CONVERSATION_LIST__MULTIPLE_FILES_COUNT:e.conversation_list.multiple_files_count,TALK_TO_AGENT:e.conversation.start_new_conversation_label,CITATION_SOURCE_TITLE:e.conversation.citation_title,FORM_PLACEHOLDER:e.conversation.input_placeholder_active_form,FORM_VALIDATION_REQUIRED:e.form.validation_required,OPTIONAL:e.form.optional_label,PLACE_HOLDER__WRONG:e.common.placeholder_something_went_wrong,PLACE_HOLDER__NO_MESSAGES:e.common.placeholder_no_messages,RETRY:e.common.placeholder_something_went_wrong_retry_label,BUTTON__OK:e.common.button_ok,BUTTON__CANCEL:e.common.button_cancel,FAILED_MESSAGE_RESEND:e.conversation.failed_message_resend,FAILED_MESSAGE_REMOVE:e.conversation.failed_message_remove,FILE_UPLOAD_NO_SUPPORTED_FILES:e.conversation.file_upload_no_supported_files,FILE_UPLOAD_REPLACE_ALERT__TITLE:e.conversation.file_upload_replace_alert_title,FILE_UPLOAD_REPLACE_ALERT__DESCRIPTION:e.conversation.file_upload_replace_alert_description,FEEDBACK_TITLE:e.feedback.title,FEEDBACK_GOOD:e.feedback.good,FEEDBACK_BAD:e.feedback.bad,FEEDBACK_COMMENT_LABEL:e.feedback.comment_label,FEEDBACK_COMMENT_PLACEHOLDER:e.feedback.comment_placeholder,FEEDBACK_CANCEL:e.feedback.cancel,FEEDBACK_SUBMIT:e.feedback.submit,FEEDBACK_SAVE:e.feedback.save,FEEDBACK_EDIT:e.feedback.edit,FEEDBACK_REMOVE:e.feedback.remove,A11Y_MESSAGE_LIST:e.conversation.a11y_message_list,A11Y_SCROLL_TO_BOTTOM:e.conversation.a11y_scroll_to_bottom,A11Y_SCROLL_TO_NEW_MESSAGES:e.conversation.a11y_scroll_to_new_messages,A11Y_OPEN_CONVERSATION_LIST:e.conversation.a11y_open_conversation_list,A11Y_OPEN_CONVERSATION:e.conversation.a11y_open_conversation,A11Y_OPEN_CONVERSATIONS:e.conversation.a11y_open_conversations,A11Y_CLOSE_CONVERSATION:e.conversation.a11y_close_conversation,A11Y_CLOSE_CONVERSATIONS:e.conversation.a11y_close_conversations,A11Y_MENU:e.conversation.a11y_menu,A11Y_MESSAGE_INPUT:e.conversation.a11y_message_input,A11Y_SEND_MESSAGE:e.conversation.a11y_send_message,A11Y_ATTACH_FILE:e.conversation.a11y_attach_file,A11Y_CONNECT_AGENT:e.conversation.a11y_connect_agent,A11Y_CLOSE_MESSENGER:e.conversation.a11y_close_messenger,A11Y_EXPAND_MESSENGER:e.conversation.a11y_expand_messenger,A11Y_COLLAPSE_MESSENGER:e.conversation.a11y_collapse_messenger,A11Y_MESSAGE_SENDER_YOU:e.conversation.a11y_message_sender_you,A11Y_SUGGESTED_REPLY:e.conversation.a11y_suggested_reply,A11Y_TYPING_INDICATOR:e.conversation.a11y_typing_indicator,A11Y_CODE_BLOCK_PLACEHOLDER:e.conversation.a11y_code_block_placeholder,A11Y_TYPING_FORMAT:e.conversation.a11y_typing_format,A11Y_MESSAGE_FAILED:e.conversation.a11y_message_failed,A11Y_NEW_MESSAGES_RECEIVED:e.conversation.a11y_new_messages_received,A11Y_NEW_MESSAGES_RECEIVED_FROM_SENDER:e.conversation.a11y_new_messages_received_from_sender,A11Y_AGENT_CONNECTED:e.conversation.a11y_agent_connected,A11Y_CONVERSATION_CLOSED:e.conversation.a11y_conversation_closed,A11Y_FILE_IMAGE:e.conversation.a11y_file_image,A11Y_FILE_VIDEO:e.conversation.a11y_file_video,A11Y_FILE_DOCUMENT:e.conversation.a11y_file_document,A11Y_SCREEN_CONVERSATION:e.conversation.a11y_screen_conversation,A11Y_SCREEN_CONVERSATION_WITH_AGENT:e.conversation.a11y_screen_conversation_with_agent,A11Y_SCREEN_CONVERSATION_LIST_NO_COUNT:e.conversation.a11y_screen_conversation_list_no_count,A11Y_SCREEN_CONVERSATION_LIST_WITH_COUNT:e.conversation.a11y_screen_conversation_list_with_count,A11Y_CSAT_DISPLAYED:e.conversation.a11y_csat_displayed,A11Y_EMPTY_CONVERSATION:e.conversation.a11y_empty_conversation,A11Y_INPUT_DISABLED:e.conversation.a11y_input_disabled,A11Y_FILE_SIZE_EXCEEDED:e.conversation.a11y_file_size_exceeded,A11Y_CSAT_FORM_ERROR:e.conversation.a11y_csat_form_error,A11Y_HINT_SEND_MESSAGE:e.conversation.a11y_hint_send_message,A11Y_HINT_OPEN_CONVERSATION:e.conversation.a11y_hint_open_conversation,A11Y_HINT_OPEN_CONVERSATIONS:e.conversation.a11y_hint_open_conversations,A11Y_HINT_CLOSE_CONVERSATION:e.conversation.a11y_hint_close_conversation,A11Y_HINT_OPEN_MENU:e.conversation.a11y_hint_open_menu,A11Y_HINT_CONNECT_TO_AGENT:e.conversation.a11y_hint_connect_to_agent,A11Y_HINT_ATTACH_FILE:e.conversation.a11y_hint_attach_file,A11Y_HINT_VIEW_NEW_MESSAGES:e.conversation.a11y_hint_view_new_messages,A11Y_HINT_OPEN_FILE:e.conversation.a11y_hint_open_file,A11Y_HINT_OPEN_IMAGE:e.conversation.a11y_hint_open_image,A11Y_HINT_SEND_REPLY:e.conversation.a11y_hint_send_reply,A11Y_CONVERSATION_ITEM:e.conversation_list.a11y_conversation_item,A11Y_RATING_LABEL:e.csat.a11y_rating_label,A11Y_HINT_SELECT_RATING:e.csat.a11y_hint_select_rating,SCROLL_TO_NEW_MESSAGES_LABEL:e.conversation.scroll_to_new_messages_label,HANDOFF_CONFIRM__TITLE:e.handoff.confirm_title,HANDOFF_CONFIRM__DESCRIPTION:e.handoff.confirm_description,HANDOFF_CONFIRM__CANCEL:e.handoff.confirm_cancel,HANDOFF_CONFIRM__HANDOFF:e.handoff.confirm_handoff}),gs=e=>{var t;return((t=e.split("-"))==null?void 0:t[0])??Lt},Lt="en",fs=new Set([Lt,"ko","es","pt","fr","hi","it","de","tr","ja"]),Oc='@import"https://fonts.googleapis.com/css?family=Roboto:400,500,600,700&display=swap";.sb-message-template__border{position:relative}.sb-message-template__border:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);border-radius:var(--border-radius);pointer-events:none}.sb-message-template__action{cursor:pointer}.sb-message-template__parent{font-family:Roboto,serif}.sb-message-template__text{font-family:inherit;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;letter-spacing:normal;text-align:left}.sb-message-template__text-button{font-family:inherit;background-color:#e0e0e0;text-align:center;padding:10px;border-radius:6px;font-size:14px;font-weight:600;font-stretch:normal;font-style:normal;letter-spacing:normal}.sendbird-theme--light .sb-message-template__text-button{color:#742ddd}.sendbird-theme--dark .sb-message-template__text-button{color:#c2a9fa}.sb-message-template__text-button:hover{opacity:1;box-shadow:#0000001a 0 1px 3px,#0000000f 0 1px 2px}.sb-message-template__text-button,.sb-message-template__image-button{cursor:pointer;border-style:none}.sb-message-template__parent{border-radius:unset;background-color:transparent;overflow:hidden}.sb-message-template__parent *{box-sizing:border-box;line-height:1.3}.sb-message-template__carousel{display:flex;width:100%;box-sizing:border-box;touch-action:pan-y}',Rc=(e,t,n)=>{const r=e[t];return r?typeof r=="function"?r():Promise.resolve(r):new Promise((o,s)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},Xr=hs(Wn.strings),Nc={...Xr,HEADER_BUTTON__AGENT_HANDOFF:"Talk to human agent",MESSAGE_INPUT__PLACE_HOLDER__SUGGESTED_REPLIES:"Select an option to continue",BUTTON__SUBMIT:"Submit",SUBMITTED:"Submitted",TRY_AGAIN:"Please try again.",FILE_UPLOAD_NOTIFICATION__COUNT_LIMIT:"Up to %d files can be attached.",FILE_UPLOAD_NOTIFICATION__SIZE_LIMIT:"The maximum size per file is %d MB.",FILE_UPLOAD_NOTIFICATION__FILES_EXCLUDED_BY_VALIDATION:"%d files were excluded due to limits. Please select files individually.",FILE_UPLOAD_PHOTOS:"Photos",FILE_UPLOAD_FILES:"Files",FILE_VIEWER__UNSUPPORT:"Unsupported message",IMAGE_VIEWER__DEFAULT_TITLE:"Image",A11Y_IMAGE_VIEWER_CLOSE:"Close image viewer",A11Y_IMAGE_VIEWER_PREVIOUS:"Previous image",A11Y_IMAGE_VIEWER_NEXT:"Next image",A11Y_IMAGE_VIEWER_DOWNLOAD:"Download image",A11Y_ATTACH_FILE:"Attach file",A11Y_FILE_SELECTED:e=>`${e}, selected`,A11Y_FILE_REMOVE_BUTTON:e=>`Remove file: ${e}`,A11Y_CSAT_RATING_LABEL:(e,t)=>`${e} — ${t}`,A11Y_FILE_UPLOAD_OPTIONS:"File upload options",A11Y_FAILED_MESSAGE_OPTIONS:"Failed message options",A11Y_FEEDBACK_OPTIONS:"Feedback options",A11Y_CSAT_TEXT_INPUT_LABEL:"Enter answer",A11Y_CONNECT_AGENT:"Talk to human agent",FORM_UNAVAILABLE:"Form is no longer available.",FORM_NOT_SUPPORTED:"This form is not supported in the current version.",FORM_VALIDATION_MIN_LENGTH:e=>`Minimum ${e} characters required`,FORM_VALIDATION_MAX_LENGTH:e=>`Maximum ${e} characters allowed`,FORM_VALIDATION_MIN:e=>`Minimum value is ${e}`,FORM_VALIDATION_MAX:e=>`Maximum value is ${e}`,FORM_VALIDATION_MIN_SELECT:e=>`Select at least ${e} options`,FORM_VALIDATION_MAX_SELECT:e=>`Select at most ${e} options`,FORM_VALIDATION_REGEX_FAILED:"Invalid format",DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE:Xr.DATE_FORMAT__DATE_SHORT,DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE_CAPTION:"h:mma",CONVERSATION_LIST__TOPICS_FALLBACK:"No category",CONVERSATION_CLOSED_FOOTER_LABEL:"Your conversation has ended",START_NEW_CONVERSATION:"💬 Start a new conversation",RETURN_TO_CONVERSATION:"💬 Return to conversation",BUTTON__SAVE:"Save",NO_NAME:"(No name)",CHANNEL_FROZEN:"Channel frozen"},on={language:Wn.language,dateLocale:Wn.dateLocale,stringSet:Nc},Dc=Object.freeze(Object.defineProperty({__proto__:null,default:on},Symbol.toStringTag,{value:"Module"})),qn=new Map([[Lt,on]]);async function $c(e){const t=qn.get(e);if(t)return t;try{if(fs.has(e)){const{default:n}=await Rc(Object.assign({"./languages/de.ts":()=>Promise.resolve().then(()=>require("./cjs/RKaCusvu.cjs")),"./languages/en.ts":()=>Promise.resolve().then(()=>Dc),"./languages/es.ts":()=>Promise.resolve().then(()=>require("./cjs/CfhYXtgc.cjs")),"./languages/fr.ts":()=>Promise.resolve().then(()=>require("./cjs/BCDZXq61.cjs")),"./languages/hi.ts":()=>Promise.resolve().then(()=>require("./cjs/BBssumix.cjs")),"./languages/it.ts":()=>Promise.resolve().then(()=>require("./cjs/Jlh8RyJW.cjs")),"./languages/ja.ts":()=>Promise.resolve().then(()=>require("./cjs/Sz9ta-fi.cjs")),"./languages/ko.ts":()=>Promise.resolve().then(()=>require("./cjs/Bz2jHC-Z.cjs")),"./languages/pt.ts":()=>Promise.resolve().then(()=>require("./cjs/CFY_588Z.cjs")),"./languages/tr.ts":()=>Promise.resolve().then(()=>require("./cjs/CHz4H01e.cjs"))}),`./languages/${e}.ts`,3);return qn.set(e,n),n}return on}catch{return on}}const{Provider:Pc,useContext:Q}=me("Localization"),Fc=({language:e=navigator.language,languageCode:t,logger:n,stringSet:r,children:o})=>{const[s,a]=c.useState(qn.get(Lt));return c.useEffect(()=>{const l=t??gs(e);s.language!==l&&(n==null||n.debug("localization.useEffect: update language",{from:s.language,to:l}),$c(l).then(a))},[e,t,n]),i.createElement(Pc,{value:{language:s.language,defaultStringSet:s.stringSet,stringSet:{...s.stringSet,...r},dateLocale:s.dateLocale,format:(l,u,d)=>We.format(l,u,{locale:s.dateLocale,...d})}},o)},sn="data-sb-agent-theme",Zr=e=>(t,...n)=>{let r="";return t.forEach((o,s)=>{r+=o+(n[s]??"")}),`[${sn}='${e}'] & { ${r} }`},W={light:Zr("light"),dark:Zr("dark")},Bc=R.css(({theme:e})=>{const{palette:t}=e;return`
|
|
1
|
+
"use strict";var Si=Object.defineProperty;var Ai=(e,t,n)=>t in e?Si(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var A=(e,t,n)=>Ai(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("@sendbird/chat"),u=require("react"),O=require("styled-components"),We=require("date-fns"),xi=require("date-fns/locale/en-US"),qe=require("@sendbird/chat/message"),be=require("@sendbird/chat/aiAgent"),ht=require("@sendbird/chat/groupChannel"),Ye=require("@sendbird/uikit-tools"),Ti=require("react-dom"),Ii=require("date-fns/isSameDay"),Bn=require("@sendbird/react-uikit-message-template-view"),wi=require("@sendbird/uikit-message-template"),ki=require("dompurify"),Li=require("@emotion/is-prop-valid"),mn=e=>e&&e.__esModule?e:{default:e};function Mi(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Ri=mn(ie),i=Mi(u),_=mn(O),Fo=mn(ki),Oi=mn(Li),ct="sb-agent",Bo="KEY_IMG_ASPECT_RATIO",Hn="*/*",K={BODY_MAX_WIDTH:244,WIDE_BODY_MAX_WIDTH:640,AVATAR_SIZE:26,BODY_TIME_GAP:4,HORIZONTAL_PADDING:12,GAP_GROUPED:2,GAP_UNGROUPED:16};var en=(e=>(e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELED="CANCELED",e))(en||{}),St=(e=>(e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELED="CANCELED",e))(St||{});const Ho=e=>{var t;return!!((t=e==null?void 0:e.extendedMessagePayload)!=null&&t.steward)},Ni=e=>e===St.COMPLETED||e===St.CANCELED?e:St.IN_PROGRESS,An=e=>Re(e)&&!Ho(e),Re=e=>!!e&&"sender"in e,$i=e=>Re(e)?e.sendingStatus==="succeeded"?String(e.messageId):e.reqId:String(e.messageId),Mr=(e,t)=>!e||!t?!1:Re(e)&&Re(t)?e.messageId>0&&t.messageId>0?e.messageId===t.messageId:e.reqId.length>0&&e.reqId===t.reqId:e.messageId>0&&e.messageId===t.messageId,Di=(e,t,n,r=!0)=>{if(!r||!An(e))return"single";const o=()=>{if(!An(t))return!1;const c=t.sender.userId===e.sender.userId,d=We.isSameMinute(t.createdAt,e.createdAt);return c&&d},s=()=>{if(!An(n))return!1;const c=n.sender.userId===e.sender.userId,d=We.isSameMinute(n.createdAt,e.createdAt);return c&&d},a=o(),l=s();return a&&l?"middle":a?"bottom":l?"top":"single"},Tt=(e,t)=>(()=>{var r;return Re(e)?e.sender.userId:((r=e==null?void 0:e.sender)==null?void 0:r.userId)??void 0})()===t,pe={isAdmin:e=>e.isAdminMessage(),isCSAT:e=>{var t;return e.isAdminMessage()&&!!((t=e.extendedMessagePayload)!=null&&t.csat)},isSteward:e=>Ho(e),isIncoming:(e,t)=>Re(e)&&e.sender.userId!==t,isOutgoing:(e,t)=>Re(e)&&(e.sender.userId===t||e.sendingStatus===qe.SendingStatus.PENDING)},ze=e=>e.startsWith("image/"),Uo=e=>e.startsWith("video/"),er=(e,t)=>{if(e&&!e.startsWith(".")){const n=e.split(".").pop();if(n&&n!==e)return n.toUpperCase()}if(t){const[,n]=t.split("/");if(n)return n.toUpperCase()}return"FILE"},Vo=e=>{var t;return e.messageType==="file"?e.message.length>0&&e.file.name!==e.message:e.messageType==="multipleFiles"?e.message.length>0&&((t=e.files[0])==null?void 0:t.name)!==e.message:e.message.length>0},hn=e=>{switch(e){case"top":case"middle":return K.GAP_GROUPED;default:return K.GAP_UNGROUPED}},Pi=(e,t)=>{const n=/```(\w+)?\n([\s\S]*?)```/g,r=[];let o=0;return e.replace(n,(s,...a)=>{const[l,c,d]=a;return o<d&&r.push({type:"text",value:e.slice(o,d).trim()}),r.push({type:"code",value:c.trim(),language:l?l.trim():"plaintext"}),o=d+s.length,s}),o<e.length&&r.push({type:"text",value:e.slice(o).trim()}),t?r.map(s=>s.type!=="text"?s:{...s,value:t(s.value)}):r},Fi=e=>e.replace(/\[([^\]]+)\](?!\()/g,"\\[$1\\]"),Bi=e=>e.replace(/([a-zA-Z0-9])_(?=[a-zA-Z0-9])/g,"$1\\_"),Hi=e=>e.replace(/~~/g,"\\~\\~"),Ui=e=>{let t=e;return t=Fi(t),t=Bi(t),t=Hi(t),t},Vi=typeof navigator<"u"&&navigator.product==="ReactNative",Rr=(e,t)=>{const n=r=>!t||t.length===0?!0:Re(r)&&t.includes(r.sendingStatus);return Vi?e.find(n):e.findLast(n)};function oe(){}function Gi(){const e=typeof navigator<"u"?navigator.userAgent:"",t=/iPad|iPhone|iPod/.test(e),n=/Android/.test(e);return t||n}function zi(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t.toString(16)}const Un=e=>{try{return JSON.parse(e===""?"{}":e)}catch{return{}}},De={isStreaming(e){const t=Un(e.data);return typeof t=="object"&&!!t.stream},isWelcomeMessage(e,t){var n;if(((n=e.extendedMessagePayload)==null?void 0:n.bot_message_type)==="welcome")return!0;if(Tt(e,t)){const r=Un(e.data);return!(r!=null&&r.respond_mesg_id)&&!(r!=null&&r.stream)}return!1},isGeneratedMessage(e){var t;return((t=e.extendedMessagePayload)==null?void 0:t.bot_message_type)==="generated"},hasFeedback(e){var t;return!!((t=e.extendedMessagePayload)!=null&&t.feedback)}},xn=`@${ct}`,Wi=({appId:e,aiAgentId:t,storage:n})=>{const r={templateBase:`${xn}-template`,template:o=>`${r.templateBase}/templates/${o}`,templateToken:()=>`${r.templateBase}/tokens`,messengerSession:o=>{const s=zi(`${e}/${t}/${o}`);return`${xn}-udata/${s}`},anonUserSession:()=>`${xn}-session/${e}/${t}`};return{template:{set:(o,s)=>n.set(r.template(o),s),get:o=>n.get(r.template(o)),setCachedToken:o=>n.set(r.templateToken(),o),getCachedToken:()=>n.get(r.templateToken()),clear:()=>{n.getKeys(r.templateBase).forEach(n.delete)}},messenger:{getSettings:o=>{try{const s=n.get(r.messengerSession(o));return s?JSON.parse(s):null}catch{return null}},setSettings:(o,s)=>{try{delete s.auto_created_user;const a=JSON.stringify(s);n.set(r.messengerSession(o),a)}catch{return}},getAnonUser:()=>{try{const o=n.get(r.anonUserSession());return o?JSON.parse(o):null}catch{return null}},setAnonUser:o=>{try{const s=JSON.stringify(o);n.set(r.anonUserSession(),s)}catch{return}},clear:o=>{try{o&&n.delete(r.messengerSession(o)),n.delete(r.anonUserSession())}catch{return}}}}},Go=(e,t,n={})=>{let r=null,o=null,s=null;const{leading:a=!0,trailing:l=!0}=n,c=(...d)=>{const m=Date.now();if(s===null||m-s>=t)a?(e(...d),s=m):(o=d,s=m);else if(o=d,l&&!r){const h=t-(m-s);r=setTimeout(()=>{o&&l&&(e(...o),s=Date.now()),r=null,o=null},h)}};return c.cancel=()=>{r&&(clearTimeout(r),r=null),o=null,s=null},c};class zo{constructor(t,{filter:n,limit:r=20}){A(this,"filter");A(this,"_sdk");A(this,"_pinnedChannels");A(this,"_channels");A(this,"_isDisposed",!1);A(this,"_handlerId",`handler-id-${Date.now()}`);A(this,"_order",ht.GroupChannelListOrder.LATEST_LAST_MESSAGE);A(this,"_limit");A(this,"_query");A(this,"_token");A(this,"_timestamp");A(this,"_isSyncing");A(this,"_channelHandler");A(this,"_connectionHandler");A(this,"_collectionEventHandler");A(this,"_throttledOnChannelChanged");var o,s,a,l,c,d,m;this.filter=n,this._sdk=t,this._pinnedChannels=[],this._channels=[],this._limit=r,this._query=this._sdk.aiAgent.createMyGroupChannelListQuery({aiAgentChannelFilter:(o=this.filter)==null?void 0:o.aiAgentChannelFilter,aiAgentConversationStatusFilter:(s=this.filter)==null?void 0:s.aiAgentConversationStatusFilter,aiAgentIds:(a=this.filter)==null?void 0:a.aiAgentIds,deskChannelFilter:(l=this.filter)==null?void 0:l.deskChannelFilter,pinnedChannelUrls:(c=this.filter)==null?void 0:c.pinnedChannelUrls,copilotConversationOnly:(d=this.filter)==null?void 0:d.copilotConversationOnly,copilotSupportChannelUrl:(m=this.filter)==null?void 0:m.copilotSupportChannelUrl,limit:this._limit}),this._token="",this._timestamp=Number.MAX_SAFE_INTEGER,this._isSyncing=!1,this._throttledOnChannelChanged=Go(h=>{this._query.belongsTo(h)?this._addChannelsToView([h],!1):this._removeChannelsFromView([h.url])},250,{trailing:!1,leading:!0}),this._channelHandler=new ht.GroupChannelHandler({onChannelChanged:h=>{h.isGroupChannel()&&this._throttledOnChannelChanged(h)},onChannelDeleted:h=>{this._removeChannelsFromView([h])}}),this._connectionHandler=new ie.ConnectionHandler({onReconnectSucceeded:()=>{this._isDefaultChangelogSyncTimestampUpdated&&this._syncChannelChangelogs()}}),this._sdk.addConnectionHandler(this._handlerId,this._connectionHandler),this._sdk.groupChannel.addGroupChannelHandler(this._handlerId,this._channelHandler)}get _isDefaultChangelogSyncTimestampUpdated(){return this._timestamp!==Number.MAX_SAFE_INTEGER}_setDefaultChangelogsSyncTimestamp(t){var s,a;const n=new Set(((s=this.filter)==null?void 0:s.pinnedChannelUrls)??[]),r=t.find(l=>!n.has(l.url));let o;r?o=((a=r.lastMessage)==null?void 0:a.createdAt)??r.createdAt:o=this._query.lastResponseAt,this._timestamp>o&&(this._timestamp=o)}async _syncChannelChangelogs(){if(this._isDisposed)return[];if(this._isSyncing)return[];try{this._isSyncing=!0;let t;for(this._token?t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter):t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByTimestamp(this._timestamp,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls);t.hasMore&&t.token;)t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls)}catch{}finally{this._isSyncing=!1}return[]}_upsertPinnedChannelsToArray(t){var l;const n=((l=this.filter)==null?void 0:l.pinnedChannelUrls)??[],r=new Map(n.map((c,d)=>[c,d])),o=[],s=[],a=[];for(const c of t){if(!this._query.belongsTo(c)){a.push(c.url);continue}const d=r.get(c.url);if(d===void 0)continue;const m=Vn(this._pinnedChannels,c);m>=0?(this._pinnedChannels.splice(m,1),s.push(c)):o.push(c);const g=this._pinnedChannels.findIndex(b=>(r.get(b.url)??1/0)>d),C=g===-1?this._pinnedChannels.length:g;this._pinnedChannels.splice(C,0,c)}return{addedChannels:o,updatedChannels:s,unmatchedChannelUrls:a}}_upsertRegularChannelsToArray(t,n=!1){const r=[],o=[],s=[];for(const a of t){if(!this._query.belongsTo(a)){r.push(a.url);continue}const l=Vn(this._channels,a),c=l<0;!c&&this._channels.splice(l,1);const m=qi(this._channels,a,this._order).place,h=m===this._channels.length;c?h?(n||!this.hasMore)&&(this._channels.push(a),o.push(a)):(this._channels.splice(m,0,a),o.push(a)):(this._channels.splice(m,0,a),s.push(a))}return{addedChannels:o,updatedChannels:s,unmatchedChannelUrls:r}}_addChannelsToView(t,n=!1){var h,g,C,b,v;const r=new Set(((h=this.filter)==null?void 0:h.pinnedChannelUrls)??[]),o=[],s=[];for(const f of t)r.has(f.url)?o.push(f):s.push(f);const a=this._upsertPinnedChannelsToArray(o),l=this._upsertRegularChannelsToArray(s,n),c=a.addedChannels.concat(l.addedChannels),d=a.updatedChannels.concat(l.updatedChannels),m=a.unmatchedChannelUrls.concat(l.unmatchedChannelUrls);c.length>0&&((C=(g=this._collectionEventHandler)==null?void 0:g.onChannelsAdded)==null||C.call(g,{},c)),d.length>0&&((v=(b=this._collectionEventHandler)==null?void 0:b.onChannelsUpdated)==null||v.call(b,{},d)),m.length>0&&this._removeChannelsFromView(m)}_removeChannelsFromView(t){var o,s,a;const n=new Set(((o=this.filter)==null?void 0:o.pinnedChannelUrls)??[]),r=[];for(const l of t)if(n.has(l)){const c=this._pinnedChannels.findIndex(d=>d.url===l);c>=0&&(r.push(l),this._pinnedChannels.splice(c,1))}else{const c=this._channels.findIndex(d=>d.url===l);c>=0&&(r.push(l),this._channels.splice(c,1))}r.length>0&&((a=(s=this._collectionEventHandler)==null?void 0:s.onChannelsDeleted)==null||a.call(s,{},r))}get channels(){return this._isDisposed?[]:[...this._pinnedChannels,...this._channels]}get hasMore(){return this._isDisposed?!1:this._query.hasNext}async loadMore(){if(this._isDisposed)return[];if(this.hasMore){const t=await this._query.next();return this._setDefaultChangelogsSyncTimestamp(t),this._addChannelsToView(t,!0),t}return[]}setConversationListCollectionHandler(t){this._collectionEventHandler=t}dispose(){this._isDisposed||(this._isDisposed=!0,this._throttledOnChannelChanged.cancel(),this._collectionEventHandler=void 0,this._sdk.removeConnectionHandler(this._handlerId),this._sdk.groupChannel.removeGroupChannelHandler(this._handlerId),this._pinnedChannels.length=0,this._channels.length=0)}}const Vn=(e,t)=>e.findIndex(n=>n.isIdentical(t)),qi=(e,t,n)=>{if(e.length>0){const r=Vn(e,t);let o=0,s=e.length-1,a=Math.floor((o+s)/2);for(;o<s;){const c=Or(e[a],t,n);if(c>0)s=a,a=Math.floor((o+s)/2);else if(c<0)o=a+1,a=Math.floor((o+s)/2);else return{place:a,oldPosition:r}}return{place:Or(e[a],t,n)>=0?a:a+1,oldPosition:r}}return{place:e.length,oldPosition:-1}},Or=(e,t,n)=>{switch(n){case ht.GroupChannelListOrder.LATEST_LAST_MESSAGE:if(e.lastMessage&&t.lastMessage){const r=t.lastMessage.createdAt-e.lastMessage.createdAt;return r===0?t.createdAt-e.createdAt:r}else return e.lastMessage?-1:t.lastMessage?1:t.createdAt-e.createdAt;default:return 0}};class Wo{constructor(t){A(this,"subscribers",{});this.logger=t}async send(t){const n=Ki(),r=this.subscribers[t.type];if(r){this.logger.debug(`messenger.dispatcher: dispatching command: ${t.type}`,t.payload);const o=r.map(s=>s(t.payload));await Promise.all(o).catch(s=>{this.logger.error(`messenger.dispatcher: error in callback for command: ${t.type}`,s)})}return n.resolve(),n.promise}subscribe(t,n){this.subscribers[t]||(this.subscribers[t]=[]),this.subscribers[t].push(n)}unsubscribe(t,n){const r=this.subscribers[t];r&&(this.subscribers[t]=r.filter(o=>o!==n))}}const Ki=()=>{let e=oe,t=oe;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}};var Me=(e=>(e.ConversationClose="conv.close",e.MessengerSettingsUpdated="messenger.settings.updated",e.ActiveChannelUpdated="active.channel.updated",e.AnonymousSessionTokenExpired="anon.token.expired",e.AuthTokenRefreshed="auth.token.refreshed",e))(Me||{});class It{constructor(t={}){A(this,"payload");this.payload=t}toJSON(){return JSON.stringify({type:this.type,payload:this.payload})}}const rt={CloseConversation:e=>new Yi(e),MessengerSettingsUpdated:e=>new ji(e),ActiveChannelUpdated:e=>new Xi(e),AnonymousSessionTokenExpired:()=>new Zi,AuthTokenRefreshed:()=>new Ji};class Yi extends It{constructor(){super(...arguments);A(this,"type","conv.close")}}class ji extends It{constructor(){super(...arguments);A(this,"type","messenger.settings.updated")}}class Xi extends It{constructor(){super(...arguments);A(this,"type","active.channel.updated")}}class Zi extends It{constructor(){super(...arguments);A(this,"type","anon.token.expired")}}class Ji extends It{constructor(){super(...arguments);A(this,"type","auth.token.refreshed")}}var tr=(e=>(e[e.VERBOSE=0]="VERBOSE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.NONE=5]="NONE",e))(tr||{});class qo{constructor(t){A(this,"level");this.level=t}verbose(...t){this.level<=0&&console.log(`[${ct}/verbose]`,...t)}debug(...t){this.level<=1&&console.log(`[${ct}/debug]`,...t)}info(...t){this.level<=2&&console.log(`[${ct}/info]`,...t)}warn(...t){this.level<=3&&console.warn(`[${ct}/warn]`,...t)}error(...t){this.level<=4&&console.error(`[${ct}/error]`,...t)}}class Ko{constructor({userId:t,authToken:n,sessionHandler:r}){A(this,"userId");A(this,"authToken");A(this,"sessionHandler");this.userId=t,this.authToken=n,this.sessionHandler=r}}class Gn{constructor(){A(this,"userId");A(this,"authToken");A(this,"sessionHandler")}}const Qi=e=>({onSessionTokenRequired:t=>{t(null),e.send(rt.AnonymousSessionTokenExpired())}}),ea="ai_agent:stats",ta="conversation_initial_render",na=800220;var ae=(e=>(e.AUTH="auth_duration",e.GET_CHANNEL="get_channel_duration",e.GET_MESSAGES="get_messages_duration",e.TOTAL_DURATION="total_duration",e.TOTAL_DURATION_FROM_CACHE="total_duration_from_cache",e))(ae||{});class ra{constructor(){A(this,"timers",new Map);A(this,"committed",!1);A(this,"commitCallback",null);A(this,"conversationId",null);A(this,"channelUrl",null);A(this,"errorCode",null);A(this,"errorDescription",null);A(this,"extraData",{})}setCommitCallback(t){return this.commitCallback=t,this}setConversationId(t){return this.conversationId=t,this}setChannelUrl(t){return this.setExtra("channel_url",t),this}setError(t,n){return this.errorCode=t??na,this.errorDescription=n,this}setExtra(t,n){return n!=null&&(this.extraData[t]=n),this}startTimer(t){if(this.committed)return this;const n=this.timers.get(t);return(n==null?void 0:n.startTime)!==null&&(n==null?void 0:n.startTime)!==void 0?this:(this.timers.set(t,{startTime:Date.now(),endTime:null}),this)}stopTimer(t){if(this.committed)return this;const n=this.timers.get(t);return!n||n.startTime===null||n.endTime!==null?this:(this.timers.set(t,{...n,endTime:Date.now()}),this)}getDuration(t){const n=this.timers.get(t);return!n||n.startTime===null||n.endTime===null?null:n.endTime-n.startTime}isCommitted(){return this.committed}commit(){if(this.committed||!this.commitCallback)return!1;const t=this.buildPayload();return t?(this.committed=!0,this.commitCallback(ea,t)):!1}}class oa extends ra{constructor(){super(...arguments);A(this,"presentMethod","direct_present")}setPresentMethod(n){return this.presentMethod=n,this}getMetricKey(){return ta}buildPayload(){const n=this.getDuration(ae.AUTH),r=this.getDuration(ae.GET_CHANNEL),o=this.getDuration(ae.GET_MESSAGES),s=this.getDuration(ae.TOTAL_DURATION_FROM_CACHE),a=this.getDuration(ae.TOTAL_DURATION),l={...this.extraData,present_method:this.presentMethod,...n!==null&&{auth_duration:n},...r!==null&&{get_channel_duration:r},...o!==null&&{get_messages_duration:o},...s!==null&&{total_duration_from_cache:s}},c={key:this.getMetricKey(),value:a!==null?String(a):"0"};return this.conversationId!==null&&(c.conversation_id=this.conversationId),this.errorCode!==null&&(c.error_code=this.errorCode),this.errorDescription!==null&&(c.error_description=this.errorDescription),Object.keys(l).length>0&&(c.extra=l),c}}class sa{constructor(t){A(this,"commitCallback");A(this,"presentMethod","direct_present");A(this,"stats",null);this.commitCallback=t}getOrCreateStats(){return(!this.stats||this.stats.isCommitted())&&(this.stats=new oa().setCommitCallback(this.commitCallback).setPresentMethod(this.presentMethod)),this.stats}onAuthStart(){this.getOrCreateStats().startTimer(ae.TOTAL_DURATION).startTimer(ae.TOTAL_DURATION_FROM_CACHE).startTimer(ae.AUTH)}onAuthComplete(){var t;(t=this.stats)==null||t.stopTimer(ae.AUTH)}onAuthError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(ae.AUTH).setError(t instanceof ie.SendbirdError?t.code:void 0,t.message).stopTimer(ae.TOTAL_DURATION).commit()}onGetChannelStart(){var t;(t=this.stats)==null||t.startTimer(ae.GET_CHANNEL)}onGetChannelComplete(t){this.stats&&(this.stats.stopTimer(ae.GET_CHANNEL),t!==void 0&&this.stats.setConversationId(t),this.stats.startTimer(ae.GET_MESSAGES))}onGetChannelError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(ae.GET_CHANNEL).setError(t instanceof ie.SendbirdError?t.code:void 0,t.message).stopTimer(ae.TOTAL_DURATION).commit()}onCacheResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof ie.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(ae.TOTAL_DURATION_FROM_CACHE))}onApiResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof ie.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(ae.TOTAL_DURATION).stopTimer(ae.GET_MESSAGES).commit())}setChannelUrl(t){var n;(n=this.stats)==null||n.setChannelUrl(t)}cleanup(){var t;(t=this.stats)==null||t.commit()}setPresentMethod(t){var n;this.presentMethod=t,(n=this.stats)==null||n.setPresentMethod(t)}clear(){this.stats=null}}function ia(){let e=null,t=0;const n=(r,o)=>{if((e==null?void 0:e.key)===r)return e.promise;const s=++t,l=(e?e.promise.catch(()=>{}).then(()=>o()):o()).finally(()=>{(e==null?void 0:e.id)===s&&(e=null)});return e={key:r,id:s,promise:l},l};return n.isPending=()=>e!==null,n}const Ge={conversation:{isTalkToAgentViewEnabled:!0,scrollMode:"auto",newMessageIndicatorEnabled:!0,senderAvatarEnabled:!0,messageAlertSoundEnabled:!1,header:{avatarEnabled:!0},input:{camera:{photoEnabled:!0},gallery:{photoEnabled:!0},fileEnabled:!0},fileViewer:{downloadEnabled:!0}}},Nr=e=>{var t,n,r,o,s,a,l,c,d,m,h,g,C,b;return e?{...Ge,...e,conversation:{...Ge.conversation,...e==null?void 0:e.conversation,header:{...(t=Ge.conversation)==null?void 0:t.header,...(n=e==null?void 0:e.conversation)==null?void 0:n.header},input:{...(r=Ge.conversation)==null?void 0:r.input,...(o=e==null?void 0:e.conversation)==null?void 0:o.input,camera:{...(a=(s=Ge.conversation)==null?void 0:s.input)==null?void 0:a.camera,...(c=(l=e==null?void 0:e.conversation)==null?void 0:l.input)==null?void 0:c.camera},gallery:{...(m=(d=Ge.conversation)==null?void 0:d.input)==null?void 0:m.gallery,...(g=(h=e==null?void 0:e.conversation)==null?void 0:h.input)==null?void 0:g.gallery}},fileViewer:{...(C=Ge.conversation)==null?void 0:C.fileViewer,...(b=e==null?void 0:e.conversation)==null?void 0:b.fileViewer}}}:Ge},Ce=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===be.ConversationStatus.CLOSED||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="closed")},nr=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===be.ConversationStatus.OPEN||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="open")};function je(e){var n,r,o;return typeof(((n=e==null?void 0:e.conversation)==null?void 0:n.handedOverAt)??((o=(r=e==null?void 0:e.conversation)==null?void 0:r.handoff)==null?void 0:o.timestamp))=="number"}function aa(e){var r;const t=(r=e==null?void 0:e.conversation)==null?void 0:r.handoff;return t?typeof t.requestedAt=="number"&&!je(e):!1}function la(e){var t;if(((t=e==null?void 0:e.resolution)==null?void 0:t.determinedBy)==="user")return e.resolution.isResolved}function $r(e){return!!e&&e<Date.now()}function ca(e){return!e.title}function ua(e,t){var n;if(e)return ca(e)?{...e,title:t.title,csat_question:t.question,csat_scores:[{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/angry-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/suspicious-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/neutral-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/smile-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/happy-active.png"}],cre:{required:((n=e.cre)==null?void 0:n.required)??!0,question:t.cre.question,positive_label:t.cre.positive_label,negative_label:t.cre.negative_label},follow_up:[{response_type:"free_text",scores:[1,2,3,4,5],question:t.followUp.question,always_visible:!1}],csat_submit_label:t.submit_label,csat_submitted_label:t.submitted_label}:e}class da{constructor(){A(this,"_channelHandlerId",null);A(this,"_connectionHandlerId",null);A(this,"_handleActiveChannelChangedThrottled",null);A(this,"_setupChannelHandler",()=>{const t=Date.now();this._channelHandlerId=`aiagent_channel_${t}`,this._connectionHandlerId=`aiagent_connection_${t}`,this._handleActiveChannelChangedThrottled=Go(o=>{var s,a;(a=this._session)==null||a._updateActiveChannel({url:o.url,status:Ce(o)?"closed":"open",conversationStatus:(s=o.conversation)==null?void 0:s.status}),this._logger.debug("AIAgentEventManager: activeChannel updated",o.url)},250,{leading:!0,trailing:!1});const n=new ht.GroupChannelHandler({onChannelChanged:o=>{var s,a;o.isGroupChannel()&&o.url===((s=this._session)==null?void 0:s.activeChannel.url)&&((a=this._handleActiveChannelChangedThrottled)==null||a.call(this,o))}}),r=new ie.ConnectionHandler({onReconnectSucceeded:async()=>{await this._syncActiveChannelOnReconnect()}});this._chatClient.chatSDK.groupChannel.addGroupChannelHandler(this._channelHandlerId,n),this._chatClient.chatSDK.addConnectionHandler(this._connectionHandlerId,r),this._logger.debug("AIAgentEventManager: handlers registered",{channelHandlerId:this._channelHandlerId,connectionHandlerId:this._connectionHandlerId})});A(this,"_removeChannelHandler",()=>{this._channelHandlerId&&(this._chatClient.chatSDK.groupChannel.removeGroupChannelHandler(this._channelHandlerId),this._channelHandlerId=null),this._connectionHandlerId&&(this._chatClient.chatSDK.removeConnectionHandler(this._connectionHandlerId),this._connectionHandlerId=null),this._handleActiveChannelChangedThrottled&&(this._handleActiveChannelChangedThrottled.cancel(),this._handleActiveChannelChangedThrottled=null),this._logger.debug("AIAgentEventManager: handlers removed")});A(this,"_syncActiveChannelOnReconnect",async()=>{var n,r,o;const t=(n=this._session)==null?void 0:n.activeChannel.url;if(t)try{const a=await(await this._chatClient.chatSDK.groupChannel.getChannel(t)).refresh();a.url===t&&((o=this._session)==null||o._updateActiveChannel({url:a.url,status:Ce(a)?"closed":"open",conversationStatus:(r=a.conversation)==null?void 0:r.status}),this._logger.debug("AIAgentEventManager: activeChannel synced on reconnect",a.url))}catch(s){this._logger.error("AIAgentEventManager: failed to sync activeChannel on reconnect",s)}});A(this,"_initConversationIfNeeded",async t=>{if(t.isAIAgent&&!t.conversation)try{await t.initConversation({aiAgentId:this.aiAgentId})}catch(n){this._logger.warn("AIAgentEventManager: initConversation failed",n)}});A(this,"onMessengerSettingsUpdated",t=>(this._dispatcher.subscribe(Me.MessengerSettingsUpdated,t),()=>{this._dispatcher.unsubscribe(Me.MessengerSettingsUpdated,t)}));A(this,"onActiveChannelUpdated",t=>(this._dispatcher.subscribe(Me.ActiveChannelUpdated,t),()=>{this._dispatcher.unsubscribe(Me.ActiveChannelUpdated,t)}));A(this,"onAuthTokenRefreshed",t=>(this._dispatcher.subscribe(Me.AuthTokenRefreshed,t),()=>{this._dispatcher.unsubscribe(Me.AuthTokenRefreshed,t)}))}}class ma{constructor(t){A(this,"_sdkUser");A(this,"_userSession");A(this,"_dispatcher");A(this,"_activeChannel");A(this,"_updateActiveChannel",t=>{this._activeChannel=t,this._dispatcher.send(rt.ActiveChannelUpdated({channelUrl:t.url,status:t.status,conversationStatus:t.conversationStatus}))});A(this,"_updateAuthToken",t=>{this._userSession.authToken=t,this._dispatcher.send(rt.AuthTokenRefreshed())});this._sdkUser=t.sdkUser,this._userSession=t.userSession,this._dispatcher=t.dispatcher,this._activeChannel=t.activeChannel}get sdkUser(){return this._sdkUser}get userSession(){return this._userSession}get activeChannel(){return this._activeChannel}}const Yo=e=>{try{const t=JSON.parse(e);return typeof t=="string"?JSON.stringify(t).slice(1,-1):e.trim()}catch{return JSON.stringify(e).slice(1,-1)}},wt=e=>JSON.parse(e),gn=e=>JSON.parse(e);function ha(e,t){const[n,r]=t.split(",").map(o=>o.trim());return e==="dark"&&r||n}function ga(e){const t={};function n(r,o=""){for(const[s,a]of Object.entries(r)){const l=o?`${o}.${s}`:s;a&&typeof a=="object"&&!Array.isArray(a)?n(a,l):t[l]=a}}return n(e),t}function rr({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return Object.entries(t).reduce((o,[s,a])=>{if(!r&&!["number","boolean","string"].includes(typeof a))throw new Error(`If transformer is not provided, value(${s}:${a}) must be a {string, number, or boolean}`);const l=r?r(a):String(a),c=n(s);return o.replace(c,Yo(l))},e)}async function fa({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return(await Promise.all(Object.entries(t).map(async([s,a])=>{const l=await r(a);return{regex:n(s),transformedValue:l}}))).reduce((s,{regex:a,transformedValue:l})=>s.replace(a,Yo(l)),e)}var zn=(e=>(e[e.EXTERNAL_AUTH_TOKEN_EXPIRED=1]="EXTERNAL_AUTH_TOKEN_EXPIRED",e))(zn||{});const jo=e=>typeof e=="object"&&e!==null,Dr=(e,t)=>t in e&&typeof e[t]=="string"&&e[t]!=="",pa=e=>!jo(e)||!Dr(e,"channel_url")||!Dr(e,"ai_agent_id")?null:{channelUrl:e.channel_url,aiAgentId:e.ai_agent_id},_a={1:pa};function Ea(e){if(!jo(e)||!("cat"in e)||typeof e.cat!="number"||!("data"in e))return null;const t=e.cat,n=_a[t];if(!n)return null;const r=n(e.data);return r?{category:t,data:r}:null}function ba(e,t,n,r){const o=Ri.default.init({appId:e,modules:[new ht.GroupChannelModule,new be.AIAgentModule],localCacheEnabled:!0,options:new ie.SendbirdChatOptions({typingIndicatorInvalidateTime:2e4}),...r});return o.addSendbirdExtensions([{version:n,product:ie.SendbirdProduct.AI_AGENT,platform:t.platform}],{platform:t.deviceOSPlatform,version:t.deviceOSVersion},t.customData)||console.warn("Invalid Sendbird Extensions",t),o}function Ca(e){const t=n=>{throw new Error(`Please initialize chat sdk with ${n}`)};typeof e.groupChannel!="object"&&t("GroupChannelModule"),typeof e.aiAgent!="object"&&t("AIAgentModule")}const va=[400300,400301,400302,400310];class or{constructor(t,n,r){A(this,"chatSDK");A(this,"_logger");A(this,"_cache");A(this,"connect",async(t,n,r,o)=>{if(this._logger.debug("ChatClient.connect: start",t.userId),n){const s=new ie.SessionHandler({...n,onSessionTokenRequired:this._interceptTokenRefresh(n.onSessionTokenRequired,r,o)});this.chatSDK.setSessionHandler(s),this.chatSDK.aiAgent.addEventHandler(zn.EXTERNAL_AUTH_TOKEN_EXPIRED.toString(),a=>{var c;this._logger.debug("ChatClient.connect: EXTERNAL_AUTH_TOKEN_EXPIRED event received",a);const l=Ea(a);(l==null?void 0:l.category)===zn.EXTERNAL_AUTH_TOKEN_EXPIRED&&(this._logger.debug("ChatClient.connect: calling onExternalAuthTokenExpired handler",l.data),(c=n==null?void 0:n.onExternalAuthTokenExpired)==null||c.call(n,l.data))})}try{return await this.chatSDK.connect(t.userId,t.authToken),await this._syncTemplatesIfNeeded(),this._logger.debug("ChatClient.connect: end",this.chatSDK.currentUser),this.chatSDK.currentUser}catch(s){const a=s;if(this.chatSDK.isCacheEnabled){if(this._isCacheRestrictedError(a))this._logger.warn("ChatClient.connect","offline connect restricted",a.message,a.code),this._logger.warn("ChatClient.connect","clear cached-data"),await this.chatSDK.clearCachedData().catch(l=>this._logger.warn("ChatClient.connect","clear cached-data failure",l));else if(this.chatSDK.currentUser)return this._logger.debug("ChatClient.connect: end (offline)",this.chatSDK.currentUser),this.chatSDK.currentUser}throw this._logger.warn("ChatClient.connect","connect failure",a.message,a.code),a}});A(this,"disconnect",async()=>{this._logger.debug("ChatClient.disconnect: start"),this.chatSDK.aiAgent.removeAllEventHandlers(),await this.chatSDK.disconnect(),this._cache.template.clear(),this._logger.debug("ChatClient.disconnect: end")});A(this,"getChannel",async t=>this.chatSDK.groupChannel.getChannel(t));A(this,"patchContext",async(t,n,r)=>this.chatSDK.aiAgent.patchContext(t,n,r));A(this,"updateContext",async(t,n,r)=>this.chatSDK.aiAgent.updateContext(t,n,r));A(this,"requestMessengerSettings",async t=>{var o;if(t.userId===""){const s=new Error("userId cannot be empty string for messenger settings request");throw this._logger.error("ChatClient.requestMessengerSettings: invalid userId",s),s}const n={...t,shouldSendFirstMessage:!1};this._logger.debug("ChatClient.requestMessengerSettings: requesting",n);const r=await this.chatSDK.aiAgent.requestMessengerSettings(n);return this._logger.debug("ChatClient.requestMessengerSettings: received",(o=r.active_channel)==null?void 0:o.channel_url),r});A(this,"_interceptTokenRefresh",(t,n,r)=>{if(t)return async(o,s)=>{new Promise((a,l)=>t==null?void 0:t(a,l)).then(a=>{a?n==null||n(a):r==null||r(),o(a)}).catch(a=>{r==null||r(),s(a)})}});A(this,"_isCacheRestrictedError",t=>va.some(n=>t.code===n));A(this,"_syncTemplatesIfNeeded",async()=>{var r,o;const t=(o=(r=this.chatSDK.appInfo)==null?void 0:r.aiAgentInfo)==null?void 0:o.templateListToken;if(!t)return;const n=this._cache.template.getCachedToken();if(!(n&&n===t)){this._logger.debug("ChatClient._syncTemplatesIfNeeded: syncing templates");try{const{templates:s,token:a}=await this.chatSDK.aiAgent.getMessageTemplates({limit:20});for(const{template:l}of s){const{key:c}=wt(l);this._cache.template.set(c,l)}this._cache.template.setCachedToken(a),this._logger.debug("ChatClient._syncTemplatesIfNeeded: sync completed")}catch(s){this._logger.error("ChatClient._syncTemplatesIfNeeded: error",s)}}});this.chatSDK=t,this._logger=n,this._cache=r}static init(t){let n;return t.chatSDK?(Ca(t.chatSDK),n=t.chatSDK):n=ba(t.appId,t.extensions,t.messengerVersion,t.chatParams),new or(n,t.logger,t.cache)}}const Pt=new Map,Xo={set:(e,t)=>{Pt.set(e,t)},get:e=>{if(Pt.size===0)throw new Error("AIAgent platform not configured. Ensure you are using the correct package (@sendbird/ai-agent-messenger-react or @sendbird/ai-agent-messenger-react-native).");if(e){const n=Pt.get(e);if(!n)throw new Error(`AIAgent platform "${e}" is not configured.`);return{platform:e,...n}}const t=Pt.entries().next().value;return{platform:t[0],...t[1]}}},ya=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0));class Pr extends Error{constructor(n,r){const o=(r==null?void 0:r.detail)??"";super(o||`Desk API error (${n})`);A(this,"status");A(this,"code");A(this,"detail");this.name="DeskApiError",this.status=n,this.code=(r==null?void 0:r.code)??"",this.detail=o}}var sr=(e=>(e.INITIALIZED="INITIALIZED",e.PROACTIVE="PROACTIVE",e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.CLOSED="CLOSED",e.WORK_IN_PROGRESS="WORK_IN_PROGRESS",e.IDLE="IDLE",e))(sr||{}),ir=(e=>(e.URGENT="URGENT",e.HIGH="HIGH",e.MEDIUM="MEDIUM",e.LOW="LOW",e))(ir||{}),Zo=(e=>(e.ERR_CREDENTIALS_NOT_PROVIDED="desk401100",e.ERR_NON_AUTHORIZED="desk401103",e.ERR_SESSION_KEY_EXPIRED="desk401106",e.ERR_SESSION_TOKEN_REVOKED="desk401107",e.ERR_USER_DEACTIVATED="desk401108",e.ERR_USER_NOT_EXIST="desk401109",e))(Zo||{});const Sa=e=>e==="desk401103"||e==="desk401106"||e==="desk401107"||e==="desk401108"||e==="desk401109";class Aa{constructor(t){A(this,"_appId");A(this,"_apiHost");A(this,"_logger");A(this,"_credential",null);A(this,"_authRefreshPromise",null);A(this,"_onDeskTokenRefreshRequired",async()=>!1);A(this,"request",async(t,n)=>{const r=n.authRequired??!0,o=`${this._apiHost}${t}`;r&&this._authRefreshPromise&&(this._logger.debug("DeskApiClient: waiting for in-flight recovery..."),await this._authRefreshPromise);const s=await this._fetch(o,n);return r&&s.status===401?this._handleUnauthorized(s,o,n):this._toResult(s)});A(this,"setCredential",(t,n=async()=>!1)=>{this._authRefreshPromise=null,this._onDeskTokenRefreshRequired=n,this._credential=t});A(this,"clearCredential",()=>{this._authRefreshPromise=null,this._credential=null,this._onDeskTokenRefreshRequired=async()=>!1});A(this,"_handleUnauthorized",async(t,n,r)=>{const o=await this._parseErrorCode(t);if(!Sa(o))return this._toResult(t);if(!await this._refresh(o)||this._credential===null)return this._toResult(t);const a=await this._fetch(n,r);return this._toResult(a)});A(this,"_refresh",async t=>{if(this._authRefreshPromise)return this._logger.debug("DeskApiClient: refresh already in progress, joining..."),this._authRefreshPromise;try{return this._authRefreshPromise=this._onDeskTokenRefreshRequired({reason:t}).catch(n=>(this._logger.error("DeskApiClient: delegated recovery failed",n),!1)),await this._authRefreshPromise}finally{this._authRefreshPromise=null}});A(this,"_fetch",(t,n)=>fetch(`${t}?${this._buildParams(n.params)}`,{method:n.method,headers:this._buildHeaders(n.authRequired??!0,n.headers),...n.body?{body:JSON.stringify(this._buildBody(n.body))}:{}}));A(this,"_buildParams",t=>new URLSearchParams({sendbirdAppId:this._appId,...t}));A(this,"_buildBody",t=>({sendbirdAppId:this._appId,...t}));A(this,"_buildHeaders",(t,n)=>({"content-type":"application/json",...t&&this._credential?{sendbirdDeskToken:this._credential.deskToken}:{},...n}));A(this,"_toResult",async t=>{if(!t.ok){const r=await t.json().catch(()=>({}));throw new Pr(t.status,r)}const n=await t.text();if(n)try{return JSON.parse(n)}catch{throw new Pr(t.status,{})}});A(this,"_parseErrorCode",async t=>{const n=await t.clone().json().catch(()=>({}));return n==null?void 0:n.code});this._appId=t.appId,this._apiHost=t.customApiHost??`https://desk-api-${t.appId}.sendbird.com/sapi`,this._logger=t.logger}get credential(){return this._credential}}class tn{constructor(t,n){A(this,"id");A(this,"title");A(this,"status");A(this,"agent");A(this,"priority");A(this,"group");A(this,"firstResponseTime");A(this,"issuedAt");A(this,"customFields");A(this,"_client");A(this,"refresh",async()=>this._client.getTicket(this.id));this.id=t.id,this.title=t.title,this.status=t.status,this.agent=t.agent,this.priority=t.priority,this.group=t.group,this.firstResponseTime=t.firstResponseTime,this.issuedAt=t.issuedAt,this.customFields=t.customFields,this._client=n}static _fromResponse(t,n){var r;return new tn({id:t.id,title:t.channelName??null,status:t.status2??sr.INITIALIZED,agent:(()=>{var s;const o=(s=t.recentAssignment)==null?void 0:s.agent;return o?{userId:o.sendbirdId??"",name:o.displayName??"",profileUrl:o.photoThumbnailUrl??""}:null})(),priority:t.priority??ir.MEDIUM,group:t.group??0,firstResponseTime:t.firstResponseTime??-1,issuedAt:t.issuedAt??null,customFields:Object.fromEntries(((r=t.customFields)==null?void 0:r.map(o=>[o.key,o.value]))??[])},n)}}class ar{constructor(t){A(this,"_logger");A(this,"_apiClient");A(this,"_onDeskTokenRefreshRequired");A(this,"refreshDeskAuthToken",async t=>this._apiClient.credential?this.authenticate({userId:this._apiClient.credential.userId,accessToken:t,onDeskTokenRefreshRequired:this._onDeskTokenRefreshRequired}):!1);A(this,"authenticate",async t=>{this._logger.debug("DeskClient.authenticate: start",t.userId);try{const{token:n}=await this._apiClient.request("/customers/auth/",{method:"POST",headers:{sendbirdAccessToken:t.accessToken},body:{sendbirdId:t.userId},authRequired:!1});return t.onDeskTokenRefreshRequired!==void 0&&(this._onDeskTokenRefreshRequired=t.onDeskTokenRefreshRequired),this._apiClient.setCredential({userId:t.userId,deskToken:n,chatToken:t.accessToken},this._onDeskTokenRefreshRequired),this._logger.debug("DeskClient.authenticate: end"),!0}catch(n){return this._apiClient.clearCredential(),this._logger.debug("DeskClient.authenticate: failed",n),!1}});A(this,"deauthenticate",()=>{this._apiClient.clearCredential(),this._onDeskTokenRefreshRequired=void 0,this._logger.debug("DeskClient.deauthenticate: token cleared")});A(this,"setCustomerLanguage",async t=>{this._assertAuthenticated(this._apiClient),this._logger.debug("DeskClient.setCustomerLanguage: start",t),await this._apiClient.request("/customers/language/",{method:"PATCH",body:{language:t}}),this._logger.debug("DeskClient.setCustomerLanguage: end")});A(this,"getTicket",async t=>{this._assertAuthenticated(this._apiClient);const n=await this._apiClient.request(`/tickets/${encodeURIComponent(t)}/`,{method:"GET"});return tn._fromResponse(n,this)});A(this,"createTicket",async t=>{this._assertAuthenticated(this._apiClient);const n=await this._apiClient.request("/tickets/",{method:"POST",body:ya({channelName:t.title,channelType:"SENDBIRD_JAVASCRIPT",customFields:t.customFields?JSON.stringify(t.customFields):void 0,info:JSON.stringify({ticket:{subject:t.title,requester:{name:t.name,email:this._apiClient.credential.userId}}}),priority:t.priority,groupKey:t.groupKey})});return tn._fromResponse(n,this)});this._logger=t.logger,this._apiClient=new Aa(t)}static init(t){return new ar(t)}_assertAuthenticated(t){if(t.credential==null)throw new Error("DeskClient is not authenticated")}}function xa(e){return{get:t=>e.getString(t)??null,set:(t,n)=>{e.set(t,n)},delete:t=>{e.delete?e.delete(t):e.remove&&e.remove(t)},getKeys:t=>e.getAllKeys().filter(n=>n.startsWith(t))}}const Ta=1440*60*1e3;function tt(e){if(!e)throw new Error("Not authenticated. Call authenticate() first.")}function Ia(e,t){return Object.entries(t).every(([n,r])=>e[n]===r)}class nn extends da{constructor(n){super();A(this,"appId");A(this,"aiAgentId");A(this,"_chatClient");A(this,"_deskClient");A(this,"_cache");A(this,"_logger");A(this,"_dispatcher");A(this,"_session",null);A(this,"language");A(this,"countryCode");A(this,"context");A(this,"queryParams");A(this,"_config");A(this,"_networkStateAdapter");A(this,"_forceCreateChannel");A(this,"_agentVersion");A(this,"_statsTrackers");A(this,"_operationQueue",ia());A(this,"dispose",()=>{this._operationQueue.isPending()||(this._logger.debug("AIAgent.dispose: start"),this._chatClient.chatSDK.connectionState==="OPEN"&&this._chatClient.chatSDK.disconnectWebSocket(),this._removeChannelHandler(),this._session=null,this._deskClient.deauthenticate(),this._statsTrackers.initialRender.clear(),this._logger.debug("AIAgent.dispose: end"))});A(this,"initConversationIfNeeded",n=>this._initConversationIfNeeded(n));A(this,"authenticate",n=>{if(!this.appId)return Promise.reject(new Error("appId is required"));if(!this.aiAgentId)return Promise.reject(new Error("aiAgentId is required"));const r=n&&"userId"in n?`auth:${n.userId}`:"auth:anon";return this._operationQueue(r,async()=>{var a,l,c,d,m;this._logger.debug("AIAgent.authenticate: start"),this._statsTrackers.initialRender.onAuthStart();const o=this._getSessionCandidate(n),s=(a=o.userSessionCandidate)!=null&&a.userId?this._cache.messenger.getSettings(o.userSessionCandidate.userId):null;s!=null&&s.bot&&this._dispatcher.send(rt.MessengerSettingsUpdated({settings:s,source:"cache"}));try{const h=await this._chatClient.requestMessengerSettings({aiAgentId:this.aiAgentId,userId:(l=o.userSessionCandidate)==null?void 0:l.userId,language:this.language,country:this.countryCode,context:this.context,knownActiveChannelUrl:(c=s==null?void 0:s.active_channel)==null?void 0:c.channel_url,forceCreateChannel:this._forceCreateChannel,agentVersion:this._agentVersion});let g;if(h.auto_created_user)if(o.type==="manual")this._logger.warn("Received auto created user info but current session is manual. Ignoring auto created user info."),g={userId:o.userSessionCandidate.userId,authToken:o.userSessionCandidate.authToken};else{const{user_id:v,session_token:f,expire_at:y}=h.auto_created_user;this._cache.messenger.setAnonUser({userId:v,authToken:f,expireAt:y}),g={userId:v,authToken:f},this._logger.debug("AIAgent.authenticate: anonymous user created",v)}else g={userId:((d=o.userSessionCandidate)==null?void 0:d.userId)??"",authToken:((m=o.userSessionCandidate)==null?void 0:m.authToken)??""};this._cache.messenger.setSettings(g.userId,h),this._dispatcher.send(rt.MessengerSettingsUpdated({settings:h,source:"server"}));const C=(()=>{var v;return o.type==="anonymous"?Qi(this._dispatcher):(v=o.userSessionCandidate)==null?void 0:v.sessionHandler})(),b=await this._chatClient.connect(g,C,v=>{var f;this._logger.debug("AIAgent: session token refreshed"),(f=this._session)==null||f._updateAuthToken(v),this._deskClient.refreshDeskAuthToken(v)},()=>{this._logger.debug("AIAgent: session token unavailable, deauthenticating desk"),this._deskClient.deauthenticate()});return await this._deskClient.authenticate({userId:g.userId,accessToken:g.authToken,onDeskTokenRefreshRequired:async({reason:v})=>{var f;if(v===Zo.ERR_SESSION_KEY_EXPIRED){await new Promise(E=>setTimeout(E,2e3));const y=(f=this._session)==null?void 0:f.userSession.authToken;return y?await this._deskClient.refreshDeskAuthToken(y):!1}return!1}}),(s==null?void 0:s.language)!==h.language&&this._deskClient.setCustomerLanguage(this.language).catch(()=>{}),this._statsTrackers.initialRender.onAuthComplete(),this._session=new ma({sdkUser:b,userSession:g,activeChannel:{url:h.active_channel.channel_url,status:"open"},dispatcher:this._dispatcher}),this._setupChannelHandler(),this._logger.debug("AIAgent.authenticate: end",{userId:g.userId}),h}catch(h){throw this._statsTrackers.initialRender.onAuthError(h),h}})});A(this,"deauthenticate",()=>this._operationQueue("deauth",async()=>{var n;this._logger.debug("AIAgent.deauthenticate: start"),await this._chatClient.disconnect(),this._deskClient.deauthenticate(),this._cache.messenger.clear((n=this._session)==null?void 0:n.userSession.userId),this._session=null,this._removeChannelHandler(),this._statsTrackers.initialRender.clear(),this._logger.debug("AIAgent.deauthenticate: end")}));A(this,"createConversation",async n=>{tt(this._session),this._logger.debug("AIAgent.createConversation: start",n);const r=await this._chatClient.requestMessengerSettings({...n,userId:this._session.userSession.userId,knownActiveChannelUrl:void 0,agentVersion:this._agentVersion}),o=r.active_channel.channel_url;return this._cache.messenger.setSettings(this._session.userSession.userId,r),this._logger.debug("AIAgent.createConversation: end",o),o});A(this,"searchConversation",async n=>{if(tt(this._session),this._logger.debug("AIAgent.searchConversation: start",n),Object.entries(n.context).length===0)return this._logger.debug("AIAgent.searchConversation: empty context, returning empty array"),[];const r=this.chatSDK.aiAgent.createConversationListQuery({aiAgentId:n.aiAgentId,status:be.ConversationStatus.OPEN,limit:100}),o=[];for(;r.hasNext;){const s=await r.next();for(const a of s)Ia(a.context??{},n.context)&&o.push(a.channelInfo.url)}return this._logger.debug("AIAgent.searchConversation: end",{count:o.length}),o});A(this,"closeConversation",async n=>{var o;tt(this._session),this._logger.debug("AIAgent.closeConversation: start",n);const r=await this._chatClient.getChannel(n);((o=r.conversation)==null?void 0:o.status)===be.ConversationStatus.OPEN?(await r.closeConversation(),this._session.activeChannel.url===n&&this._session._updateActiveChannel({url:n,status:"closed",conversationStatus:be.ConversationStatus.CLOSED}),this._logger.debug("AIAgent.closeConversation: end")):this._logger.debug("AIAgent.closeConversation: already closed or not an AI agent conversation")});A(this,"createConversationListCollection",n=>new zo(this.chatSDK,n??{}));A(this,"patchContext",async(n,r)=>{tt(this._session),this._logger.debug("AIAgent.patchContext: start",{channelUrl:n,context:r});const o=await this._chatClient.patchContext(this.aiAgentId,n,r);return this._logger.debug("AIAgent.patchContext: end",o),{...o,context:o.context??{}}});A(this,"updateContext",async(n,r)=>{tt(this._session),this._logger.debug("AIAgent.updateContext: start",{channelUrl:n,context:r});const o=await this._chatClient.updateContext(this.aiAgentId,n,r);return this._logger.debug("AIAgent.updateContext: end",o),{...o,context:o.context??{}}});A(this,"getContextObject",async n=>{tt(this._session),this._logger.debug("AIAgent.getContextObject: start",n);const o=await(await this._chatClient.getChannel(n)).getContextObject(this.aiAgentId);return this._logger.debug("AIAgent.getContextObject: end",o),{...o,context:o.context??{}}});A(this,"refreshActiveChannel",async n=>{var l,c,d;tt(this._session);const r=this._session,o=(n==null?void 0:n.useKnownActiveChannelUrl)??!0;this._logger.debug("AIAgent.refreshActiveChannel: start",{useKnownActiveChannelUrl:o});const s=await this._chatClient.requestMessengerSettings({aiAgentId:this.aiAgentId,userId:r.userSession.userId,language:this.language,country:this.countryCode,context:this.context,knownActiveChannelUrl:o?(c=(l=this._cache.messenger.getSettings(r.userSession.userId))==null?void 0:l.active_channel)==null?void 0:c.channel_url:void 0,forceCreateChannel:this._forceCreateChannel,agentVersion:this._agentVersion});if(this._session!==r)return this._logger.debug("AIAgent.refreshActiveChannel: session changed during refresh, discarding stale result"),((d=this._session)==null?void 0:d.activeChannel.url)??s.active_channel.channel_url;const a=s.active_channel.channel_url;return this._cache.messenger.setSettings(this._session.userSession.userId,s),this._session._updateActiveChannel({url:a,status:"open"}),this._logger.debug("AIAgent.refreshActiveChannel: end",a),a});A(this,"_getSessionCandidate",n=>n instanceof Ko?{type:"manual",userSessionCandidate:this._getManualSessionInfo(n)}:n instanceof Gn?{type:"anonymous",userSessionCandidate:this._getAnonymousSessionInfo()}:n&&typeof n=="object"?(this._logger.warn("Please use ManualSessionInfo instead of the old userSessionInfo format."),{type:"manual",userSessionCandidate:this._getManualSessionInfo(n)}):n===void 0?(this._logger.warn("Please use AnonymousSessionInfo instead of undefined userSessionInfo."),{type:"anonymous",userSessionCandidate:this._getAnonymousSessionInfo()}):{type:"anonymous",userSessionCandidate:null});A(this,"_getAnonymousSessionInfo",()=>{const n=this._cache.messenger.getAnonUser();return n?n.expireAt-Ta<=Date.now()?(this._logger.debug("_getAnonymousSessionInfo: auto session expired, clear cache"),this._cache.messenger.clear(n.userId),null):(this._logger.debug("_getAnonymousSessionInfo: auto session info detected"),{userId:n.userId,authToken:n.authToken}):null});A(this,"_getManualSessionInfo",n=>{if(!n||n instanceof Gn)throw new Error("userSessionInfo must be an instance of ManualSessionInfo");if(typeof n.userId!="string")throw new Error("userSessionInfo.userId must be a string");const r=["userId","authToken","sessionHandler"].filter(o=>!(o in n));return r.length>0&&this._logger.error(`_getManualSessionInfo: missing required keys in userSessionInfo: ${r.join(", ")}`),this._logger.debug("_getManualSessionInfo: manual session info detected"),{userId:n.userId,authToken:n.authToken,sessionHandler:n.sessionHandler}});this.appId=n.appId,this.aiAgentId=n.aiAgentId,this.language=n.language??"en",this.countryCode=n.countryCode,this.context=n.context,this._config=Nr(n.config),this.queryParams=n.queryParams,this._networkStateAdapter=n.networkStateAdapter,this._forceCreateChannel=n.forceCreateChannel,this._agentVersion=n.agentVersion,this._chatClient=n.chatClient,this._deskClient=n.deskClient,this._cache=n.cache,this._logger=n.logger,this._dispatcher=n.dispatcher,this._statsTrackers={initialRender:new sa((r,o)=>this._chatClient.chatSDK.aiAgent.appendStat(r,o))}}static init(n){var h;const r=Xo.get(n.platform),o=n.logger??new qo(n.logLevel??tr.WARN),s=n.dispatcher??new Wo(o),a=n.useMMKVStorage?xa(n.useMMKVStorage):r.keyValueStorage,l=n.useMMKVStorage?{...n.chatParams,useMMKVStorageStore:n.useMMKVStorage}:n.chatParams,c=Wi({appId:n.appId,aiAgentId:n.aiAgentId,storage:a}),d=or.init({appId:n.appId,messengerVersion:r.messengerVersion,extensions:{platform:r.platform,deviceOSPlatform:r.deviceOSPlatform,deviceOSVersion:r.deviceOSVersion},chatParams:l,chatSDK:n.chatSDK,logger:o,cache:c}),m=ar.init({appId:n.appId,logger:o,customApiHost:(h=n.deskParams)==null?void 0:h.customApiHost});return o.debug("AIAgent.init: created",{appId:n.appId,aiAgentId:n.aiAgentId}),new nn({appId:n.appId,aiAgentId:n.aiAgentId,language:n.language,countryCode:n.countryCode,context:n.context,config:n.config,queryParams:n.queryParams,networkStateAdapter:r.networkStateAdapter,forceCreateChannel:n._forceCreateChannel,agentVersion:n._agentVersion,chatClient:d,deskClient:m,cache:c,logger:o,dispatcher:s})}get chatSDK(){return this._chatClient.chatSDK}get deskClient(){return this._deskClient}get session(){return this._session}get config(){return this._config}set config(n){this._config=Nr(n)}get agentVersion(){return this._agentVersion}set agentVersion(n){this._agentVersion=n}get networkStateAdapter(){return this._networkStateAdapter}get logger(){return this._logger}get dispatcher(){return this._dispatcher}get cache(){return this._cache}get statsTrackers(){return this._statsTrackers}}const ue=(e,t)=>{const n=u.createContext(t??null),r=({children:a,value:l})=>i.createElement(n.Provider,{value:l},typeof a=="function"?a(l):a),o=({children:a})=>i.createElement(n.Consumer,null,l=>l?typeof a=="function"?a(l):a:null),s=()=>{const a=u.useContext(n);if(!a)throw new Error(`use${e}Context must be used within a ${e}Provider`);return a};return n.displayName=`${e}Context`,r.displayName=`${e}Provider`,o.displayName=`${e}Consumer`,s.displayName=`use${e}Context`,{Context:n,Provider:r,Consumer:o,useContext:s}};function Pe(e){const t=u.createContext({Template:e.template,updateTemplate:()=>{},components:e.components,updateComponent:()=>{}});function n({children:s}){const[a,l]=u.useState(()=>e.template),[c,d]=u.useState(e.components),m={Template:a,updateTemplate:h=>l(()=>h),components:c,updateComponent:(h,g)=>d(C=>({...C,[h]:g}))};return i.createElement(t.Provider,{value:m},s)}function r({template:s,children:a}){const{updateTemplate:l}=u.useContext(t);return u.useLayoutEffect(()=>{s&&l(s)},[s]),i.createElement(i.Fragment,null,a)}function o({children:s}){return i.createElement(n,null,s)}return o.defaults=e,o.useContext=()=>u.useContext(t),o.Context=t,o.Template=r,Object.keys(e.components).forEach(s=>{o[s]=function({component:l}){const{updateComponent:c}=u.useContext(t);return u.useLayoutEffect(()=>{l&&c(s,l)},[l]),null}}),o}function wa(...e){return function({children:n}){return e.reduce((r,o)=>i.createElement(o,null,r),n)}}function ka(e,t){const n=e.lastMessage;return n!=null&&n.isAdminMessage()?n.message??"":Jo(e,t)}function Jo(e,t){var r;const n=e.lastMessage;if(n!=null&&n.isUserMessage())return n.message||"";if(n!=null&&n.isAdminMessage())return n.message??"";if(n!=null&&n.isFileMessage())return n.message||n.name||"FILE";if(n!=null&&n.isMultipleFilesMessage()){if(n.message)return n.message;const o=n.fileInfoList.length;return((r=t==null?void 0:t.formatMultipleFilesCount)==null?void 0:r.call(t,o))??`${o} photos`}return e.name}function La(e,t,n){var a;const r=new Date,o=new Date(((a=e.lastMessage)==null?void 0:a.createdAt)||e.createdAt),s=We.differenceInMinutes(r,o);return s<1?n.justNow:s<60?n.minutesAgo(s):We.isToday(o)?n.hoursAgo(We.differenceInHours(r,o)):t(o,n.dateShortFormat)}const Ma=e=>{const t=e.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return t?[Number(t[1]),Number(t[2]),Number(t[3])]:null},Ft=e=>Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0"),Fr=(e,t)=>{const n=Ft(Math.round(t*255));if(e.startsWith("#")){const o=e.slice(1);return o.length===3||o.length===4?`#${o[0]}${o[0]}${o[1]}${o[1]}${o[2]}${o[2]}${n}`:`#${o.slice(0,6)}${n}`}const r=Ma(e);return r?`#${Ft(r[0])}${Ft(r[1])}${Ft(r[2])}${n}`:e},Ra=(e,t)=>{if(!t)return e;const n={...e};for(const[r,o]of Object.entries(t))o&&(n[r]=o);return n},Qo=ue("AIAgent"),Oa=Qo.Provider,ke=Qo.useContext;function Na(e){const t=$a(e);return i.createElement(Oa,{value:{_aiAgentSDK:t,chatSDK:t.chatSDK,deskClient:t.deskClient,appId:t.appId,aiAgentId:t.aiAgentId,language:t.language,countryCode:t.countryCode,context:t.context,logger:t.logger,dispatcher:t.dispatcher,cache:t.cache,networkStateAdapter:t.networkStateAdapter,queryParams:t.queryParams,config:t.config}},e.children)}function $a(e){const t=u.useRef(null),n=u.useRef(null);if(!t.current||!n.current)t.current=nn.init(e);else{const o=Da(n.current,e);(o.appId||o.aiAgentId||o.chatSDK)&&(t.current.dispose(),t.current=nn.init({...e,chatParams:o.appId?{...e.chatParams,newInstance:!0}:e.chatParams}))}n.current=e,u.useEffect(()=>()=>{var o;(o=t.current)==null||o.dispose()},[]);const r=t.current;return r.language=e.language??"en",r.countryCode=e.countryCode,r.context=e.context,r.queryParams=e.queryParams,r.config=e.config,r.agentVersion=e._agentVersion,r}function Da(e,t){const n=t.chatSDK!==void 0&&t.chatSDK!==null;return{appId:!n&&e.appId!==t.appId,aiAgentId:e.aiAgentId!==t.aiAgentId,chatSDK:!!e.chatSDK!==n||n&&t.chatSDK!==e.chatSDK}}const Br=Symbol("conversationMessageEventBridge"),bt=Symbol("conversationMessageEventPublisher"),Pa=(e,t)=>{const n=e;if(n[bt]=t,n[Br])return e;n[Br]=!0;const r=e.setMessageCollectionHandler.bind(e);e.setMessageCollectionHandler=s=>{r({...s,onMessagesAdded:(a,l,c)=>{var d,m;(d=s.onMessagesAdded)==null||d.call(s,a,l,c),(m=n[bt])==null||m.call(n,{kind:"messagesAdded",source:a.source,messages:c})},onMessagesUpdated:(a,l,c)=>{var d,m;(d=s.onMessagesUpdated)==null||d.call(s,a,l,c),(m=n[bt])==null||m.call(n,{kind:"messagesUpdated",source:a.source,messages:c})}})};const o=e.initialize.bind(e);return e.initialize=s=>{const a=o(s),l=a.onCacheResult.bind(a),c=a.onApiResult.bind(a);return a.onCacheResult=d=>l((m,h)=>{var g;d(m,h),(g=n[bt])==null||g.call(n,{kind:"initialized",source:"cache",messages:h??[]})}),a.onApiResult=d=>c((m,h)=>{var g;d(m,h),(g=n[bt])==null||g.call(n,{kind:"initialized",source:"api",messages:h??[]})}),a},e},Fa=(e,t,n)=>{const r=u.useRef(0),o=u.useRef(new Set),s=u.useCallback(d=>{const m={id:r.current+=1,...d};o.current.forEach(h=>{h(m)})},[]),a=u.useCallback(d=>{var h;const m=((h=n==null?void 0:n.collectionCreator)==null?void 0:h.call(n,d))??(t==null?void 0:t.createMessageCollection({...d??{},filter:new ht.MessageFilter(d)}));if(!m)throw new Error("Group channel is required to create a message collection");return Pa(m,s)},[t,n==null?void 0:n.collectionCreator,s]),l=Ye.useGroupChannelMessages(e,t,{...n,collectionCreator:a,strictStreamingOrder:!0}),c=u.useCallback(d=>(o.current.add(d),()=>{o.current.delete(d)}),[]);return{...l,subscribeMessageEvents:c}},xt={DEFAULT_PRIMARY:"#000000",DEFAULT_BOT_MSG_BG:"#ECECEC",WHITE:"#ffffff",BLACK:"#000000"};function es(e){return e.length===4?`#${[...e.slice(1)].map(t=>t+t).join("")}`:e}function Ba(e){const t=es(e);return[parseInt(t.slice(1,3),16),parseInt(t.slice(3,5),16),parseInt(t.slice(5,7),16)]}function Ha(e){return`#${e.map(t=>t.toString(16).padStart(2,"0")).join("")}`}function Ua(e,t,n){e/=255,t/=255,n/=255;const r=Math.max(e,t,n),o=Math.min(e,t,n),s=r-o;let a=0,l=0;const c=(r+o)/2;return r!==o&&(l=c>.5?s/(2-r-o):s/(r+o)),r===e?a=(t-n)/s+(t<n?6:0):r===t?a=(n-e)/s+2:r===n&&(a=(e-t)/s+4),a/=6,[a,l,c]}function Va(e,t,n){let r,o,s;if(t===0)r=o=s=n;else{const a=function(m,h,g){return g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?m+(h-m)*6*g:g<.5?h:g<.6666666666666666?m+(h-m)*(.6666666666666666-g)*6:m},l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;r=a(c,l,e+1/3),o=a(c,l,e),s=a(c,l,e-1/3)}return[Math.round(r*255),Math.round(o*255),Math.round(s*255)]}function Bt(e,t,n){const[r,o,s]=Ba(e),[a,l,c]=Ua(r,o,s),d=Math.max(0,Math.min(1,c*t)),m=Math.max(0,Math.min(1,l*n)),[h,g,C]=Va(a,m,d);return Ha([Math.round(h),Math.round(g),Math.round(C)])}function Ga(e,t="light"){return{extraDark:Bt(e,.6,1.2),dark:Bt(e,.85,1.1),main:e,light:Bt(e,t==="dark"?1.1:1.5,t==="dark"?.95:.9),extraLight:Bt(e,t==="dark"?1.2:1.75,t==="dark"?.9:.8)}}function Wn(e){const t=es(e),n=149,r=+`0x${t[1]}${t[2]}`,o=+`0x${t[3]}${t[4]}`,s=+`0x${t[5]}${t[6]}`;return r*.299+o*.587+s*.114>n?xt.BLACK:xt.WHITE}function za(e,t,n,r,o){return{base:{primary:t,primaryContrastContent:n,background:e.background50,headerBackground:e.background50,modalContentBackground:e.background50},messageInput:{text:e.onlight.textHighEmphasis,placeholderText:e.onlight.textLowEmphasis,background:e.background100},messageIncoming:{text:o,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background100}}}const Wa=(e,t,n,r,o)=>({base:{primary:t,primaryContrastContent:n,background:e.background600,headerBackground:e.background500,modalContentBackground:e.background500},messageInput:{text:e.ondark.textHighEmphasis,placeholderText:e.ondark.textLowEmphasis,background:e.background400},messageIncoming:{text:o,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background400}}),Ht={primary:{extraDark:"#491389",dark:"#6211c8",main:"#742ddd",light:"#c2a9fa",extraLight:"#dbd1ff"},secondary:{extraDark:"#066858",dark:"#027d69",main:"#259c72",light:"#69c085",extraLight:"#a8e2ab"},error:{extraDark:"#9d091e",dark:"#bf0711",main:"#de360b",light:"#f66161",extraLight:"#fdaaaa"},information:{extraDark:"#241389",dark:"#362ca9",main:"#4a48cd",light:"#a9bbfa",extraLight:"#d1dbff"},background700:"#000000",background600:"#161616",background500:"#2c2c2c",background400:"#393939",background300:"#bdbdbd",background200:"#e0e0e0",background100:"#eeeeee",background50:"#ffffff",onlight:{textHighEmphasis:"rgba(0, 0, 0, 1)",textMidEmphasis:"rgba(0, 0, 0, 0.75)",textLowEmphasis:"rgba(0, 0, 0, 0.55)",textDisabled:"rgba(0, 0, 0, 0.12)"},ondark:{textHighEmphasis:"rgba(255, 255, 255, 1)",textMidEmphasis:"rgba(255, 255, 255, 0.75)",textLowEmphasis:"rgba(255, 255, 255, 0.58)",textDisabled:"rgba(255, 255, 255, 0.12)"},overlay:{dark:"rgba(0, 0, 0, 0.55)",light:"rgba(22, 22, 22, 0.32)"}},Tn={h1:{fontSize:18,fontWeight:700},h2:{fontSize:16,fontWeight:700},subtitle1:{fontSize:16,fontWeight:500},subtitle2:{fontSize:16,fontWeight:400},body1:{fontSize:16,fontWeight:400},body2:{fontSize:14,fontWeight:500},body3:{fontSize:14,fontWeight:400},button:{fontSize:14,fontWeight:700},caption1:{fontSize:12,fontWeight:700},caption2:{fontSize:12,fontWeight:400},caption3:{fontSize:11,fontWeight:700},caption4:{fontSize:11,fontWeight:400}};function Hr(e){const t=qa(e),n=Ka(e,t),r=ja(n,e.colors,e.selectedTheme),o=Za(e);return{selectedTheme:e.selectedTheme,palette:t,colors:r,aiAgentColorVariables:{primary_color:r.base.primary,primary_contrast_color:r.base.primaryContrastContent,bot_message_bg_color:r.messageIncoming.background,bot_message_bg_contrast_color:r.messageIncoming.text},typography:o}}function qa({selectedTheme:e,palette:t,primary:n}){const r=t!=null&&t.primary?t.primary:n?n===Ht.primary.main?Ht.primary:Ga(n,e):Ht.primary;return{...Ht,primary:r,...t}}function Ka({selectedTheme:e,primaryContrast:t,botMessageBackground:n,botMessageBackgroundContrast:r},o){const s=o.primary.main,a=t??Wn(s),l=n??xt.DEFAULT_BOT_MSG_BG,c=r??Wn(l);return(e==="light"?za:Wa)(o,s,a,l,c)}function Ya(e,t,n){return typeof e=="string"?e:e[t]??n}function ja(e,t,n){var a;if(!t||Object.keys(t).length===0)return e;const r={...e},o=r,s=e;for(const l of Object.keys(t)){const c=t[l];if(c){o[l]={...o[l]};for(const[d,m]of Object.entries(c))if(m!==void 0){const h=((a=s[l])==null?void 0:a[d])??"";o[l][d]=Ya(m,n,h)}}}return r}function Xa(e,t,n){const r={...e};return n.forEach(o=>{const s=t[o];s!=null&&(r[o]=s)}),r}function Za({typography:e}){if(!e)return Tn;const t={...Tn};return Object.keys(e).forEach(n=>{const r=e[n];if(r&&typeof r=="object"){const o=Tn[n],s=["fontSize","fontWeight","fontFamily","lineHeight"];t[n]=Xa(o,r,s)}}),t}const{Provider:Ja,useContext:lr}=ue("AIAgentTheme");function Qa({logger:e,palette:t,typography:n,colors:r,appearance:o,children:s}){const a=u.useRef(null),[l,c]=u.useState(()=>Hr({selectedTheme:(o==null?void 0:o.theme)??"light",palette:t,typography:n,colors:r,primary:o==null?void 0:o.primaryColor,botMessageBackground:o==null?void 0:o.botMessageBackgroundColor})),d=u.useCallback((m,h)=>{h&&(a.current=h);const g=(o==null?void 0:o.theme)??m,C=a.current?a.current.themes[g]:null,b={primary:o==null?void 0:o.primaryColor,primaryContrast:void 0,botMessageBackground:o==null?void 0:o.botMessageBackgroundColor,botMessageBackgroundContrast:void 0};!b.primary&&(C!=null&&C.primary_color)&&(b.primary=C.primary_color,b.primaryContrast=C.primary_contrast_color),!b.botMessageBackground&&(C!=null&&C.bot_message_bg_color)&&(b.botMessageBackground=C.bot_message_bg_color,b.botMessageBackgroundContrast=C.bot_message_bg_contrast_color);const v=Hr({selectedTheme:g,palette:t,typography:n,colors:r,...b});c(v),e==null||e.info("theme.update:",g)},[o==null?void 0:o.theme,o==null?void 0:o.primaryColor,o==null?void 0:o.botMessageBackgroundColor,t,n,r,e]);return u.useEffect(()=>{(o!=null&&o.theme||o!=null&&o.primaryColor||o!=null&&o.botMessageBackgroundColor)&&d(l.selectedTheme)},[o==null?void 0:o.theme,o==null?void 0:o.primaryColor,o==null?void 0:o.botMessageBackgroundColor]),i.createElement(Ja,{value:{theme:l,updateTheme:d}},s)}const In=25*1024*1024,Ur=1,Vr=new Set(["image/png","image/jpeg","image/jpg"]),Gr=new Set(["application/pdf"]),el={off:"off",always:"always",handed_off_only:"handed_off_only"},tl=()=>{const[e,t]=u.useState(()=>({maxAttachmentCount:Ur,attachmentMode:"handed_off_only",defaultUploadSizeLimit:In,uploadSizeLimitPerType:new Map,supportedImageMimeTypes:Vr,supportedFileMimeTypes:Gr})),n=u.useCallback(({active_channel:o,upload_restriction:s})=>{t({maxAttachmentCount:(s==null?void 0:s.max_attachment_count)??Ur,attachmentMode:el[o.attachment_mode]??"handed_off_only",defaultUploadSizeLimit:(s==null?void 0:s.default_upload_size_limit)??In,uploadSizeLimitPerType:new Map(Object.entries((s==null?void 0:s.upload_size_limit_per_type)??[])),supportedImageMimeTypes:new Set((s==null?void 0:s.supported_image_mime_types)??Vr),supportedFileMimeTypes:new Set((s==null?void 0:s.supported_file_mime_types)??Gr)})},[]),r=u.useCallback(o=>{const{channel:s,uploadSizeLimit:a=In}=o,l=(d=!0)=>s!=null&&s.isAIAgent?d?je(s):!1:!0,c=d=>{if(l())return e.defaultUploadSizeLimit??a;const m=e.defaultUploadSizeLimit??a,h=e.uploadSizeLimitPerType.get(d)??m;return Math.min(m,h)};return{maxAttachmentCount:e.maxAttachmentCount,isEnabled:()=>{if(l(!1))return!0;switch(e.attachmentMode){case"off":return!1;case"always":return!0;case"handed_off_only":return je(s);default:return!0}},get supportedMimeTypes(){return l()?[Hn]:[...e.supportedImageMimeTypes,...e.supportedFileMimeTypes]},isSupportedMimeType:d=>l()?!0:e.supportedImageMimeTypes.has(d)||e.supportedFileMimeTypes.has(d),getUploadSizeLimit:c,getUploadSizeLimitInMB:d=>c(d)/(1024*1024)}},[e]);return{updateBaseAttachmentRules:n,createAttachmentRules:r}},zr=(...e)=>{const[t,n,r]=e;if(e.length===1&&typeof t=="object"&&t!==null)return{type:"active",context:t};if(e.length===3&&typeof t=="string"&&typeof n=="string"&&typeof r=="object"&&r!==null)return{type:"specific",aiAgentId:t,channelUrl:n,context:r};throw new Error("Invalid arguments: expected (context) or (aiAgentId, channelUrl, context)")},Ct=e=>({...e,context:e.context??{}}),{Provider:nl,useContext:kt}=ue("AIAgentMessengerSession"),rl=u.forwardRef(function({userSessionInfo:e,children:t},n){const{_aiAgentSDK:r,chatSDK:o,aiAgentId:s,logger:a}=ke(),{updateTheme:l}=lr(),[c,d]=u.useState(void 0),[m,h]=u.useState(void 0),[g,C]=u.useState(null),[b,v]=u.useState(null),[f,y]=u.useState(null),[E,x]=u.useState(null),{updateBaseAttachmentRules:S,createAttachmentRules:I}=tl();u.useEffect(()=>{const L=r.onMessengerSettingsUpdated(({settings:w})=>{const{appearance:D,bot:R,launcher:Y}=w;l(D.selected_theme,D),y({userId:R.bot_userid,profileUrl:R.bot_profile_url,nickname:R.bot_nickname,replyToFile:R.reply_to_file,specialNotice:R.special_notice,specialNoticeEnabled:R.is_special_notice_enabled,showHandoffButton:R.show_handoff_button??!0,isMultipleActiveConversationsEnabled:R.is_multiple_active_conversations_enabled??!0,isUserFeedbackEnabled:R.is_user_feedback_enabled??!1,isUserFeedbackCommentOptionEnabled:R.is_user_feedback_comment_option_enabled??!1}),x({type:Y.image_type||"default_icon",imageUrl:Y.image_url}),S(w)}),P=r.onActiveChannelUpdated(({channelUrl:w,status:D,conversationStatus:R})=>{h({url:w,status:D,conversationStatus:R})}),N=r.onAuthTokenRefreshed(()=>{var D;const w=(D=r.session)==null?void 0:D.userSession.authToken;w&&v(R=>R?{...R,authToken:w}:null)});return()=>{L(),P(),N()}},[r,l,S]);const k=u.useCallback(async()=>{try{const L=await r.authenticate(e),P=r.session;return C(P.sdkUser),v(P.userSession),h(P.activeChannel),d(void 0),L}catch(L){throw C(null),v(null),h(void 0),d(L),L}},[r,e]),M=u.useCallback(async()=>{await r.deauthenticate(),C(null),h(void 0),v(null),y(null),x(null)},[r]),U=u.useCallback(async()=>{if(!r.session){if(b)return a.debug("agentMessengerSession.refreshActiveChannel: stale call after deauthenticate, skipping"),"";throw a.error("agentMessengerSession.refreshActiveChannel: userSession is not ready"),new Error("userSession is not ready")}return r.session.userSession.userId!==(b==null?void 0:b.userId)?(a.debug("agentMessengerSession.refreshActiveChannel: stale call from previous session, skipping"),r.session.activeChannel.url):(h(void 0),await r.refreshActiveChannel())},[r,a,b]),F=u.useCallback(async L=>{if(!r.session)throw new Error("Current user is not authenticated. Please authenticate first.");return r.createConversation(L)},[r]),z=u.useCallback(async L=>{if(!r.session)throw new Error("Current user is not authenticated. Please authenticate first.");return r.searchConversation(L)},[r]);return u.useImperativeHandle(n,()=>{const L=async()=>{if(!m)throw new Error("No active conversation. Please start a conversation first.");return await o.groupChannel.getChannel(m.url)};return{activeChannel:m,chatSDK:o,authenticate:k,deauthenticate:M,updateContext:async(...P)=>{const N=zr(...P);if(N.type==="active"){const R=await(await L()).updateContext(s,N.context);return Ct(R)}const w=await o.aiAgent.updateContext(N.aiAgentId,N.channelUrl,N.context);return Ct(w)},patchContext:async(...P)=>{const N=zr(...P);if(N.type==="active"){const R=await(await L()).patchContext(s,N.context);return Ct(R)}const w=await o.aiAgent.patchContext(N.aiAgentId,N.channelUrl,N.context);return Ct(w)},getContextObject:async()=>{const N=await(await L()).getContextObject(s);return Ct(N)}}},[k,M,m,o,s,a]),i.createElement(nl,{value:{sdkUser:g,userSessionInfo:e,userSession:b,activeChannel:m,setActiveChannel:h,refreshActiveChannel:U,createConversation:F,searchConversation:z,connectionError:c,aiAgentInfo:f,launcherInfo:E,authenticate:k,deauthenticate:M,createAttachmentRules:I,statsTrackers:r.statsTrackers}},t)}),cr=(e,t)=>{const n=u.useId(),r=u.useRef(t);u.useLayoutEffect(()=>{r.current=t}),u.useEffect(()=>{const o=new ie.ConnectionHandler({onDisconnected:s=>{var a,l;return(l=(a=r.current).onDisconnected)==null?void 0:l.call(a,s)},onConnected:s=>{var a,l;return(l=(a=r.current).onConnected)==null?void 0:l.call(a,s)},onReconnectStarted:()=>{var s,a;return(a=(s=r.current).onReconnectStarted)==null?void 0:a.call(s)},onReconnectSucceeded:()=>{var s,a;return(a=(s=r.current).onReconnectSucceeded)==null?void 0:a.call(s)},onReconnectFailed:()=>{var s,a;return(a=(s=r.current).onReconnectFailed)==null?void 0:a.call(s)},onConnectionLost:()=>{var s,a;return(a=(s=r.current).onConnectionLost)==null?void 0:a.call(s)},onConnectionDelayed:s=>{var a,l;return(l=(a=r.current).onConnectionDelayed)==null?void 0:l.call(a,s)}});return e.addConnectionHandler(n,o),()=>{e.removeConnectionHandler(n)}},[e,n])};function ol(e){const{chatSDK:t,logger:n,aiAgentId:r,_aiAgentSDK:o}=ke(),{sdkUser:s,statsTrackers:a}=kt(),l=Ye.useForceUpdate(),[c,d]=u.useState(void 0),[m,h]=u.useState(void 0),[g,C]=u.useState(!1);function b(f){f.isAIAgent&&!f.conversation&&(C(!0),o.initConversationIfNeeded(f).finally(()=>C(!1)))}async function v(){var f,y,E;if(!s){n.debug("useChannel.getChannel: no sdk user, skip fetching channel");return}if(n.debug("useChannel.getChannel: start"),d(void 0),h(void 0),C(!1),e){a.initialRender.onGetChannelStart();try{n.debug("useChannel.getChannel: get channel",e);const x=await t.groupChannel.getChannel(e);b(x),d(x),a.initialRender.onGetChannelComplete((f=x.conversation)==null?void 0:f.id),x.url===((y=o.session)==null?void 0:y.activeChannel.url)&&o.session._updateActiveChannel({url:x.url,status:Ce(x)?"closed":"open",conversationStatus:(E=x.conversation)==null?void 0:E.status}),n.debug("useChannel.getChannel: fetched channel",x)}catch(x){a.initialRender.onGetChannelError(x),x instanceof ie.SendbirdError&&h(x),n.error("useChannel.getChannel: error",x)}}}return u.useEffect(()=>{v()},[t,s,e,r]),cr(t,{async onReconnectSucceeded(){if(!c)return;const f=await c.refresh();b(f),d(f)}}),Ye.useGroupChannelHandler(t,{onChannelChanged:f=>{f.isGroupChannel()&&f.url===e&&(n.debug("useChannel.onChannelChanged: channel changed",f.url),d(f),l())}}),{channel:c,channelFetchError:m,getChannel:v,isInitializingConversation:g}}const sl=new Set(["suggested_replies","steward","system"]),il=e=>{const t=e==null?void 0:e.lastMessage,n=t==null?void 0:t.extendedMessagePayload,r=n==null?void 0:n.user_input_disabled_by;if(!(!r||!sl.has(r)))return r},al=e=>{var a;const t=e==null?void 0:e.lastMessage;if(!t||!e)return!1;const n=t.extendedMessagePayload,r=n==null?void 0:n.form,o=!!r&&!r.submitted_at&&!r.canceled_at,s=e.isAIAgent&&!!((a=e.conversation)!=null&&a.handedOverAt);return o&&!s},ll=()=>{const{chatSDK:e,networkStateAdapter:t}=ke(),[n,r]=u.useState(()=>t?t.isOnline()?"connected":"reconnecting":"connected");return cr(e,{onConnected:()=>r("connected"),onDisconnected:()=>r("disconnected"),onReconnectStarted:()=>r("reconnecting"),onReconnectSucceeded:()=>r("connected"),onReconnectFailed:()=>r("disconnected"),onConnectionLost:()=>r("reconnecting")}),u.useEffect(()=>{if(t)return t.subscribe(o=>{if(!o){r("reconnecting");return}r(s=>s==="reconnecting"&&e.connectionState===ie.ConnectionState.OPEN?"connected":s)})},[t,e]),n},cl=3e4,ul=({shouldApply:e,lastMessage:t,isBlockedWhileAIResponding:n,currentUserId:r})=>{const[o,s]=u.useState(!1),a=u.useRef(null),l=t&&Tt(t,r)?t.createdAt:0;return u.useEffect(()=>{const c=()=>{a.current&&(clearTimeout(a.current),a.current=null),s(!1)},d=g=>{a.current&&clearTimeout(a.current),s(!0),a.current=setTimeout(()=>{s(!1),a.current=null},g)},m=Date.now()-l,h=cl-m;return n||h<=0?c():d(h),()=>{a.current&&clearTimeout(a.current)}},[n,l]),o&&e},ts=e=>{const{chatSDK:t}=ke(),[n,r]=u.useState([]);return Ye.useGroupChannelHandler(t,{onTypingStatusUpdated(o){if(o.url===(e==null?void 0:e.url)){const s=o.getTypingUsers();r(s)}}}),n},dl=({channel:e,lastMessage:t,aiAgentUserId:n,isStreamAnimating:r})=>{const[o,s]=u.useState(!1),a=ts(e);return u.useEffect(()=>{if(!t)return;const l=a.some(d=>d.userId===n),c=Tt(t,n)&&(De.isStreaming(t)||r);s(c||l)},[a,t,n,r]),o},ml=({channel:e,messages:t,isStreamAnimating:n,isInitializingConversation:r})=>{const{aiAgentInfo:o,userSession:s}=kt(),a=ll(),l=dl({channel:e,lastMessage:Rr(t,[qe.SendingStatus.SUCCEEDED]),aiAgentUserId:(o==null?void 0:o.userId)??"",isStreamAnimating:n}),c=ul({shouldApply:!!(e!=null&&e.isAIAgent)&&!je(e),isBlockedWhileAIResponding:l,lastMessage:Rr(t,[qe.SendingStatus.PENDING,qe.SendingStatus.SUCCEEDED]),currentUserId:(s==null?void 0:s.userId)??""}),d=(h,g)=>({_mode:h,disabled:h!=="enabled",disabledBy:g});if(!e||a==="disconnected")return d("disabled","unavailable");if(a==="reconnecting")return d("disabled","reconnecting");if(Ce(e))return d("disabled","conversation_closed");if(aa(e))return d("disabled","handoff_pending");if(al(e))return d("disabled","form_active");const m=il(e);return m?d("disabled",m):l||c||r?d("readOnly","ai_responding"):d("enabled","")},hl=()=>{const[e,t]=u.useState(new Set),n=u.useCallback(o=>{t(s=>{if(s.has(o))return s;const a=new Set(s);return a.add(o),a})},[]),r=u.useCallback(o=>{t(s=>{if(!s.has(o))return s;const a=new Set(s);return a.delete(o),a})},[]);return{isAnimating:e.size>0,start:n,stop:r}},{Provider:gl}=ue("AIAgentConversation");function fl({children:e,channelUrl:t,onChannelDeleted:n,onMessagesReceived:r,onMessagesUpdated:o,onConversationClosedStatusChanged:s,onConversationClosedViaDispatcher:a,onBeforeSendMessage:l,onAfterSendMessage:c=oe,shouldMarkAsRead:d=!0,shouldCountNewMessages:m=()=>!1,sortComparator:h}){var z;const g=()=>d&&(f==null?void 0:f.markAsRead()),{chatSDK:C,logger:b,dispatcher:v}=ke(),{channel:f,channelFetchError:y,getChannel:E,isInitializingConversation:x}=ol(t),{statsTrackers:S}=kt();u.useEffect(()=>{if(t)return S.initialRender.setChannelUrl(t),()=>{S.initialRender.cleanup()}},[t,S]);const I=Fa(C,f,{replyType:qe.ReplyType.ONLY_REPLY_TO_CHANNEL,shouldCountNewMessages:m,onChannelDeleted:n,onMessagesReceived:L=>r==null?void 0:r(L),onMessagesUpdated:L=>o==null?void 0:o(L),onCacheResult:L=>S.initialRender.onCacheResult(L),onApiResult:L=>S.initialRender.onApiResult(L),logger:b,markAsRead:g,sortComparator:h}),k=hl(),M=ml({channel:f,messages:I.messages,isStreamAnimating:k.isAnimating,isInitializingConversation:x});u.useEffect(()=>{g()},[d,f]);const U=Ce(f);u.useEffect(()=>{s==null||s(U)},[U,s]),u.useEffect(()=>{const L=async P=>{const N=typeof(P==null?void 0:P.channelUrl)=="string";f&&N&&P.channelUrl!==f.url||(b.debug("conversation.dispatcher: try to close conversation",f),f!=null&&f.conversation&&f.conversation.status===be.ConversationStatus.OPEN&&(await f.closeConversation(),a==null||a()))};return v.subscribe(Me.ConversationClose,L),()=>{v.unsubscribe(Me.ConversationClose,L)}},[v,f,b,(z=f==null?void 0:f.conversation)==null?void 0:z.status,a]);const F={conversation:(f==null?void 0:f.conversation)??void 0,channelSource:{channel:f,error:y,refetch:()=>E(),closeConversation:async()=>{Ce(f)||await(f==null?void 0:f.closeConversation())}},messageSource:{messages:I.messages,newMessages:I.newMessages,initialized:I.initialized,subscribeMessageEvents:I.subscribeMessageEvents,loadPrevious:()=>I.loadPrevious(),loadNext:()=>I.loadNext(),deleteMessage:L=>I.deleteMessage(L),resendMessage:L=>I.resendMessage(L),resetNewMessages:()=>I.resetNewMessages(),sendUserMessage:async L=>{var N;if(((N=f==null?void 0:f.conversation)==null?void 0:N.status)===be.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(L=await l(L));const P=await I.sendUserMessage(L,c);return c==null||c(P),P},sendFileMessage:async L=>{var N;if(((N=f==null?void 0:f.conversation)==null?void 0:N.status)===be.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(L=await l(L));const P=await I.sendFileMessage(L,c);return c==null||c(P),P},sendMultipleFilesMessage:async L=>{var N;if(((N=f==null?void 0:f.conversation)==null?void 0:N.status)===be.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(L=await l(L));const P=await I.sendMultipleFilesMessage(L,c);return c==null||c(P),P}},state:{streamAnimation:k,input:M}};return i.createElement(gl,{value:F},e)}function pl(e,t){var C,b,v,f,y,E,x,S,I,k;const[n,r]=u.useState(!1),[o,s]=u.useState(null),[a,l]=u.useState([]),[c,d]=u.useState(null),m=u.useRef(!1),h=u.useCallback(async()=>{if(!m.current&&e.currentUser){m.current=!0,r(!1),s(null),l([]);try{c==null||c.dispose();const M=new zo(e,t);M.setConversationListCollectionHandler({onChannelsAdded:()=>{l(M.channels)},onChannelsUpdated:()=>{l(M.channels)},onChannelsDeleted:()=>{l(M.channels)}}),await M.loadMore(),d(M),s(null)}catch(M){d(null),s(M)}finally{r(!0),m.current=!1}}},[e,e.currentUser,(C=t.filter)==null?void 0:C.aiAgentChannelFilter,(v=(b=t.filter)==null?void 0:b.aiAgentConversationStatusFilter)==null?void 0:v.join(),(y=(f=t.filter)==null?void 0:f.aiAgentIds)==null?void 0:y.join(),(E=t.filter)==null?void 0:E.deskChannelFilter,(S=(x=t.filter)==null?void 0:x.pinnedChannelUrls)==null?void 0:S.join(),(I=t.filter)==null?void 0:I.copilotConversationOnly,(k=t.filter)==null?void 0:k.copilotSupportChannelUrl,t.limit]),g=u.useCallback(async()=>{if(c)try{await c.loadMore()}catch(M){s(M)}},[c]);return cr(e,{onConnected:()=>h()}),u.useEffect(()=>{h()},[h]),u.useEffect(()=>()=>{m.current=!1,c==null||c.dispose()},[c]),{initialized:n,error:o,channels:a,loadMore:g}}const{Provider:_l}=ue("AIAgentConversationList");function El({conversationListLimit:e,conversationListFilter:t,children:n}){var h,g;const{chatSDK:r,aiAgentId:o,queryParams:s}=ke(),a={aiAgentIds:[o],aiAgentConversationStatusFilter:[be.ConversationStatus.CLOSED,be.ConversationStatus.OPEN]},l=e??((h=s==null?void 0:s.conversationListParams)==null?void 0:h.limit),c={...a,...(g=s==null?void 0:s.conversationListParams)==null?void 0:g.filter,...t},d=pl(r,{limit:l,filter:c}),m={listSource:{initialized:d.initialized,error:d.error??void 0,channels:d.channels,loadMore:()=>d.loadMore()}};return i.createElement(_l,{value:m},n)}function bl(e){let t="pending",n=e.then(r=>{t="resolved",n=r}).catch(r=>{t="rejected",n=r});return{get value(){if(t==="resolved")return n;throw n}}}const{Provider:Cl,useContext:ns}=ue("MessageTemplateFetching");function vl({children:e,internalVariables:t}){const n=u.useRef({}),r=u.useRef({}),[o,s]=u.useState({}),a=u.useCallback((d,m)=>{s(h=>({...h,[d]:{fetching:!1,error:!1,...h[d],...m}}))},[]),l=u.useCallback(async({onRequestTemplate:d,onGetCachedTemplate:m,templateKey:h,suspense:g=!1})=>{const C=m(h);if(C)return C;const b=r.current[h];if(b)return b;g||a(h,{fetching:!0});const v=d(h).catch(f=>{throw g||a(h,{error:!0}),f}).finally(()=>{g||a(h,{fetching:!1}),delete r.current[h]});return r.current[h]=v,v},[a]),c={internalVariables:t,fetchTemplate:l,suspend:(d,m)=>{if(n.current[d])return n.current[d];const h=bl(m());return n.current[d]=h,h},getIsFetching:d=>{var m;return((m=o[d])==null?void 0:m.fetching)??!1},getHasError:d=>{var m;return((m=o[d])==null?void 0:m.error)??!1}};return i.createElement(Cl,{value:c},e)}const fn={VARIABLE:e=>new RegExp(`\\{${e}\\}`,"g"),VIEW_VARIABLE:e=>new RegExp(`"{@${e}}"`,"g")};function Xe({uiTemplateString:e,variables:t={}}){const n=ga(t);return rr({template:e,variables:n,variableKeyPattern:r=>fn.VARIABLE(r)})}function Ze({theme:e,uiTemplateString:t,colorVariables:n={}}){return rr({template:t,variables:n,variableKeyPattern:r=>fn.VARIABLE(r),variableValueTransformer:r=>ha(e,r)})}function yl({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:o,onRequestTemplate:s}){const l=Object.values(n).flat().map(d=>d.key);return[...new Set(l)].some(d=>!s(d))?null:rr({template:t,variables:n,variableKeyPattern:d=>fn.VIEW_VARIABLE(d),variableValueTransformer:d=>{const m=d.map(({key:h,variables:g})=>{const C=s(h),{ui_template:b,color_variables:v}=wt(C);let f=JSON.stringify(b);return f=Xe({uiTemplateString:f,variables:o}),f=Ze({theme:e,uiTemplateString:f,colorVariables:v}),f=Ze({theme:e,uiTemplateString:f,colorVariables:r}),f=Xe({uiTemplateString:f,variables:g}),gn(f)});return JSON.stringify(m)}})}async function Sl({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:o,onRequestTemplate:s}){return fa({template:t,variables:n,variableKeyPattern:a=>fn.VIEW_VARIABLE(a),variableValueTransformer:async a=>{const l=a.map(async({key:d,variables:m})=>{const h=await s(d),{ui_template:g,color_variables:C}=wt(h);let b=JSON.stringify(g);return b=Xe({uiTemplateString:b,variables:o}),b=Ze({theme:e,uiTemplateString:b,colorVariables:C}),b=Ze({theme:e,uiTemplateString:b,colorVariables:r}),b=Xe({uiTemplateString:b,variables:m}),gn(b)}),c=await Promise.all(l);return JSON.stringify(c)}})}const Al=({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:o,color_variables:s}=wt(e);let a=JSON.stringify(o);if(Object.keys(r.viewVariables??{}).length>0){const c=yl({...r,uiTemplateString:a,aiAgentColorVariables:t,internalVariables:n});if(c===null)return null;a=c}return a=Xe({...r,uiTemplateString:a,variables:n}),a=Ze({...r,uiTemplateString:a,colorVariables:s}),a=Ze({...r,uiTemplateString:a,colorVariables:t}),a=Xe({...r,uiTemplateString:a}),gn(a)},xl=async({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:o,color_variables:s}=wt(e);let a=JSON.stringify(o);return Object.keys(r.viewVariables??{}).length>0&&(a=await Sl({...r,uiTemplateString:a,aiAgentColorVariables:t,internalVariables:n})),a=Xe({...r,uiTemplateString:a,variables:n}),a=Ze({...r,uiTemplateString:a,colorVariables:s}),a=Ze({...r,uiTemplateString:a,colorVariables:t}),a=Xe({...r,uiTemplateString:a}),gn(a)},Tl=e=>{const{aiAgentColorVariables:t={}}=e,{internalVariables:n}=ns();return u.useState(()=>{const r=e.onGetCachedTemplate(e.templateKey);return r?Al({...e,rawTemplate:r,aiAgentColorVariables:t,internalVariables:n,onRequestTemplate:e.onGetCachedTemplate}):null})},Il=e=>{const[t]=Tl(e);if(t)return t;const{aiAgentColorVariables:n={}}=e,{internalVariables:r,fetchTemplate:o,suspend:s}=ns();return s(e.templateKey,async()=>{const l=await o({...e,suspense:!0});return await xl({...e,rawTemplate:l,aiAgentColorVariables:n,internalVariables:r})}).value},wl="remove_powered_by",ur=(e,t)=>{var o,s;const{chatSDK:n}=ke(),{aiAgentInfo:r}=kt();if(e==="handoff-button"){const a=!!((o=t==null?void 0:t.conversation)!=null&&o.handoff);return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.showHandoffButton)&&a&&nr(t)}if(e==="special-notice")return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.specialNoticeEnabled)&&!!(r!=null&&r.specialNotice);if(e==="powered-by"){const a=(s=n==null?void 0:n.appInfo)==null?void 0:s.applicationAttributes;return u.useMemo(()=>!(Array.isArray(a)&&a.includes(wl)),[a])}throw new Error("Unsupported feature")},kl={required:"This question is required",minLength:e=>`Minimum ${e} characters required`,maxLength:e=>`Maximum ${e} characters allowed`,min:e=>`Minimum value is ${e}`,max:e=>`Maximum value is ${e}`,minSelect:e=>`Select at least ${e} options`,maxSelect:e=>`Select at most ${e} options`,regex:"Invalid format",invalidSelection:"Invalid selection"},Ll={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.trim()===""))return{isValid:!1,error:n.required};if(!r)return{isValid:!0};const{rules:o}=e;if(o){if(o.min_length!==void 0&&r.length<o.min_length)return{isValid:!1,error:typeof n.minLength=="function"?n.minLength(o.min_length):n.minLength};if(o.max_length!==void 0&&r.length>o.max_length)return{isValid:!1,error:typeof n.maxLength=="function"?n.maxLength(o.max_length):n.maxLength};if(o.regex&&!new RegExp(o.regex).test(r))return{isValid:!1,error:n.regex}}return{isValid:!0}}},Ml={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&r===null)return{isValid:!1,error:n.required};if(r===null)return{isValid:!0};const{rules:o}=e;if(o){if(o.min!==void 0&&r<o.min)return{isValid:!1,error:typeof n.min=="function"?n.min(o.min):n.min};if(o.max!==void 0&&r>o.max)return{isValid:!1,error:typeof n.max=="function"?n.max(o.max):n.max}}return{isValid:!0}}},Rl={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;return e.required&&!r?{isValid:!1,error:n.required}:r&&!e.options.includes(r)?{isValid:!1,error:n.invalidSelection}:{isValid:!0}}},Ol={getValueOrDefault:e=>e.values??e.default_values??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.length===0))return{isValid:!1,error:n.required};if(!r||r.length===0)return{isValid:!0};if(r.filter(a=>!e.options.includes(a)).length>0)return{isValid:!1,error:n.invalidSelection};const{rules:s}=e;if(s){if(s.min_select!==void 0&&r.length<s.min_select)return{isValid:!1,error:typeof n.minSelect=="function"?n.minSelect(s.min_select):n.minSelect};if(s.max_select!==void 0&&r.length>s.max_select)return{isValid:!1,error:typeof n.maxSelect=="function"?n.maxSelect(s.max_select):n.maxSelect}}return{isValid:!0}}},Nl={text:Ll,number:Ml,"single-select":Rl,"multi-select":Ol},$l={getValueOrDefault:()=>null,validate:()=>({isValid:!1})};function rs(e){return Nl[e.type]||$l}function Wr(e){return rs(e).getValueOrDefault(e)}function Dl(e,t,n={}){const r={...kl,...n};return rs(e).validate(e,t,r)}const Pl=(e,t={})=>{const{labels:n={},onSubmit:r,onCancel:o}=t,[s,a]=u.useState({}),[l,c]=u.useState(()=>{const v={};return e.fields.forEach(f=>{v[f.key]=Wr(f)}),v}),d=u.useMemo(()=>e.submitted_at?"submitted":e.canceled_at?"canceled":"draft",[e.submitted_at,e.canceled_at]);u.useEffect(()=>{if(d==="submitted"||d==="canceled"){const v={};let f=!1;e.fields.forEach(y=>{const E=Wr(y);JSON.stringify(l[y.key])!==JSON.stringify(E)&&(f=!0),v[y.key]=E}),f&&c(v)}},[d]);const m=(v,f)=>{c(y=>({...y,[v]:f})),a(y=>({...y,[v]:void 0}))},h=e.fields.map(v=>{var E,x,S;const f=l[v.key]??null,y={key:v.key,label:v.label,error:s[v.key],required:v.required};return v.type==="text"?{...y,type:"text",layout:v.layout,value:f,...v.placeholder&&{placeholder:v.placeholder},...((E=v.rules)==null?void 0:E.max_length)&&{maxLength:v.rules.max_length}}:v.type==="number"?{...y,type:"number",layout:v.layout,value:f,...v.placeholder&&{placeholder:v.placeholder},...((x=v.rules)==null?void 0:x.max)&&{max:v.rules.max}}:v.type==="single-select"?{...y,type:"single-select",layout:v.layout,value:f,options:v.options}:v.type==="multi-select"?{...y,type:"multi-select",layout:v.layout,value:f,options:v.options,...((S=v.rules)==null?void 0:S.max_select)&&{maxSelect:v.rules.max_select}}:{...y,type:"unknown",layout:"default",value:null}});return{state:d,fields:h,getField:v=>h.find(f=>f.key===v),updateFieldValue:m,submit:async()=>{const v={};let f=!1;for(const y of e.fields){const E=l[y.key]??null,x=Dl(y,E,n);x.isValid||(v[y.key]=x.error,f=!0)}if(a(v),!f&&r){const y={};e.fields.forEach(E=>{y[E.key]=l[E.key]??null}),await r(y)}},cancel:async()=>{await(o==null?void 0:o())}}},Fl=e=>{if(e==null||typeof e!="object")return;const t="thinking_message"in e?e.thinking_message:void 0;return typeof t=="string"&&t?t:void 0},os=e=>{const{aiAgentInfo:t}=kt(),n=ts(e);if(Ce(e))return null;const r=n[0];if(!r)return null;const o=r.userId===(t==null?void 0:t.userId),s=o?Fl(r.metaData):void 0;return{user:o?t:r,isBot:o,thinkingMessage:s}},Bl=(e,t,{enabled:n=!0,idleMs:r=1e3}={})=>{const o=u.useRef(null),s=u.useRef(t),a=u.useRef(t),l=u.useRef(!1);s.current=t,u.useEffect(()=>{if(o.current&&(clearTimeout(o.current),o.current=null),!n||!e){(l.current?a.current:s.current)(!1),l.current=!1,a.current=s.current;return}l.current=!0,a.current=s.current,a.current(!0),o.current=setTimeout(()=>{o.current=null,a.current(!1),l.current=!1,a.current=s.current},r)},[n,r,e]),u.useEffect(()=>()=>{o.current&&(clearTimeout(o.current),o.current=null),(l.current?a.current:s.current)(!1),l.current=!1,a.current=s.current},[])},Hl=(e=1e4)=>{const t=new Map;let n=e;return{shouldAnnounce:l=>{const c=Date.now(),d=t.get(l);return d!==void 0&&c-d<n?!1:(t.set(l,c),!0)},setInterval:l=>{n=l},reset:()=>{t.clear()}}},Ul=(e,t,n=1e4,r=!0)=>{const o=u.useRef(null),s=u.useRef(null),a=u.useRef(!1);o.current||(o.current=Hl(n));const l=(e==null?void 0:e.nickname.trim())||null,c=(e==null?void 0:e.userId)??l;u.useEffect(()=>{var d;(d=o.current)==null||d.setInterval(n)},[n]),u.useEffect(()=>{var h;if(!r){a.current=!1,s.current=c;return}if(!c||!l){a.current=!1,s.current=null;return}const d=!a.current,m=s.current!==c;a.current=!0,s.current=c,!(!d&&!m)&&(h=o.current)!=null&&h.shouldAnnounce(c)&&t(l)},[c,l,r,t])},dr=({channel:e,userSession:t,aiAgentInfo:n})=>{if(!t||!n||!e)return{fallbackIcon:"delight",url:void 0,title:""};const r=e.members.filter(s=>s.userId!==t.userId).sort((s,a)=>a.joinedAt-s.joinedAt)[0],o={ai(s){return{fallbackIcon:s,url:n.profileUrl,title:n.nickname}},human(s){return{fallbackIcon:s,url:r==null?void 0:r.profileUrl,title:(r==null?void 0:r.nickname)||n.nickname}},channel(s){return{fallbackIcon:s,url:e==null?void 0:e.coverUrl,title:(e==null?void 0:e.name)??""}}};return e.isAIAgent?je(e)?o.human("agent"):o.ai("delight"):e.isDesk?o.human("agent"):o.channel("user")},qr=e=>u.useReducer((t,n)=>({...t,...n}),e);var Ne=(e=>(e.AI_AGENT_CSAT_5="AI_AGENT_CSAT_5",e.AI_AGENT_CSAT_5_WITH_CRE="AI_AGENT_CSAT_5_WITH_CRE",e.HELPDESK_CSAT_5="HELPDESK_CSAT_5",e))(Ne||{});const Vl=new Set(["free_text","single_choice"]),Gl=({csatPayload:e,type:t,initialCsat:n,initialCsatReason:r,initialIsResolved:o})=>{const[s,a]=qr({csatType:t,csat:n,csatReason:r,isResolved:o}),[l,c]=qr({followUpItem:!1}),d=u.useMemo(()=>{var f;const C=s.csat,b=typeof C=="number",v=(f=e.follow_up)==null?void 0:f.find(y=>b?y.scores.includes(C):y.always_visible??!1);if(Vl.has(v==null?void 0:v.response_type))return v},[s.csat,e.follow_up]),m=(()=>{var C;if(typeof n=="number")return"submitted";if((t===Ne.AI_AGENT_CSAT_5||t===Ne.HELPDESK_CSAT_5)&&typeof s.csat=="number")return"submittable";if(t===Ne.AI_AGENT_CSAT_5_WITH_CRE){const b=typeof s.csat=="number",v=!((C=e.cre)!=null&&C.required)||typeof s.isResolved=="boolean";if(b&&v)return"submittable"}return"unsubmittable"})(),h=u.useCallback(()=>typeof s.csat>"u"?!1:d!=null&&d.required&&!s.csatReason?(c({followUpItem:!0}),!1):!0,[s,d,c]);return u.useEffect(()=>{r||(a({csatReason:""}),c({followUpItem:!1}))},[r,d,a,c]),{params:s,setParams:a,error:l,setError:c,followUpItem:d,state:m,validateParams:h,itemProps:{csatPayload:e,state:m,submitted:m==="submitted"}}},wn=5,zl=250,Wl=50,Kr=e=>Math.max(0,e-Wl),ql=e=>e<1e3?{speed:wn*.5,chunkSize:2}:e<2e3?{speed:wn*.8,chunkSize:2}:{speed:wn*.6,chunkSize:3},Kl=e=>{const{text:t,enabled:n=!1,onAnimationStart:r,onAnimationProgress:o,onAnimationComplete:s}=e,[a,l]=u.useState(()=>Kr(t.length)),c=u.useRef(null),d=u.useRef({startTime:0,lastUpdate:0,lastProgressCall:0}).current,m=u.useRef({onStart:r,onProgress:o,onComplete:s}).current,h=u.useRef({startCalled:!1,completeCalled:!1}).current,g=u.useRef({initialEnabled:n,textLength:t.length,enabled:n}).current,C=n,b=a<t.length,v=g.initialEnabled&&(C||b);return u.useLayoutEffect(()=>{m.onStart=r,m.onProgress=o,m.onComplete=s,g.textLength=t.length,g.enabled=n}),u.useLayoutEffect(()=>{var f;g.initialEnabled&&(h.startCalled||(h.startCalled=!0,(f=m.onStart)==null||f.call(m)),l(y=>t.length<y?t.length:y))},[t]),u.useEffect(()=>{if(!g.initialEnabled)return;let f=Kr(t.length);d.lastUpdate=0,d.startTime=0,d.lastProgressCall=0;const y=E=>{var z;d.lastUpdate===0&&(d.lastUpdate=E,d.startTime=E,d.lastProgressCall=E);const x=g.textLength,S=E-d.lastUpdate,I=E-d.startTime,{speed:k,chunkSize:M}=ql(I),U=k*M;S>=U&&f<x&&(f=Math.min(f+M,x),l(f),d.lastUpdate=E),E-d.lastProgressCall>=zl&&(d.lastProgressCall=E,(z=m.onProgress)==null||z.call(m)),(f<x||g.enabled)&&(c.current=requestAnimationFrame(y))};return c.current=requestAnimationFrame(y),()=>{var E;c.current&&cancelAnimationFrame(c.current),h.startCalled&&!h.completeCalled&&(h.completeCalled=!0,(E=m.onComplete)==null||E.call(m))}},[]),u.useEffect(()=>{var x;const f=g.initialEnabled&&h.startCalled,y=!n,E=a>=t.length&&t.length>0;f&&y&&E&&!h.completeCalled&&(h.completeCalled=!0,(x=m.onComplete)==null||x.call(m))},[n,a,t.length]),{streamText:g.initialEnabled?t.slice(0,a):t,isAnimating:v}},ss=e=>e.replace(/\s+/g," ").trim(),Yl="Code block",is=e=>`A11Y_INLINE_CODE_${e}`,as=e=>{let t="",n=e;for(;;){const r=n.match(/^([ \t]{0,3}>\s?)(.*)$/);if(r){t+=r[1],n=r[2];continue}break}return{blockquotePrefix:t,content:n}},ls=e=>{const t=e.match(/^([ \t]{0,3}[-+*]\s+)(.*)$/);if(t)return{content:t[2],hasListPrefix:!0};const n=e.match(/^([ \t]{0,3}\d+[.)]\s+)(.*)$/);return n?{content:n[2],hasListPrefix:!0}:{content:e,hasListPrefix:!1}},jl=e=>{const{blockquotePrefix:t,content:n}=as(e),{content:r}=ls(n),o=r.match(/^[ \t]{0,3}([`~]{3,})(.*)$/);if(!o)return;const s=o[1],a=o[2],l=s[0];if(!(l!=="`"&&l!=="~"||!s.split("").every(c=>c===l))&&!(l==="`"&&a.includes("`")))return{char:l,blockquotePrefix:t,length:s.length}},Xl=(e,t)=>{const{blockquotePrefix:n,content:r}=as(e);if(n!==t.blockquotePrefix)return!1;const{content:o,hasListPrefix:s}=ls(r);if(s)return!1;const a=o.match(/^[ \t]{0,3}([`~]{3,})[ \t]*$/);if(!a)return!1;const l=a[1];return l[0]===t.char&&l.length>=t.length&&l.split("").every(c=>c===t.char)},Zl=(e,t,n)=>{let r=n;for(;r<e.length;){const o=e[r];if(o==="\\"&&r+1<e.length){r+=2;continue}if(o===t)return r;r+=1}return-1},Jl=(e,t)=>{let n=1,r=t;for(;r<e.length;){const o=e[r];if(o==="\\"&&r+1<e.length){r+=2;continue}if(o==="["){n+=1,r+=1;continue}if(o==="]"&&(n-=1,n===0))return r;r+=1}return-1},Ql=(e,t)=>{let n=t,r=1,o,s=!1,a=!1;for(;n<e.length&&r>0;){const l=e[n];if(l==="\\"&&n+1<e.length){n+=2;continue}if(o){l===o&&(o=void 0),n+=1;continue}if(r===1&&s&&/\s/.test(l)){a=!0,n+=1;continue}if(r===1&&a&&(l==='"'||l==="'")){o=l,n+=1;continue}if(l==="("){r+=1,s=!0,n+=1;continue}if(l===")"){r-=1,n+=1;continue}/\s/.test(l)||(s=!0),n+=1}return r===0?n:-1},ec=e=>{let t=0,n="";for(;t<e.length;){const r=Zl(e,"[",t);if(r===-1){n+=e.slice(t);break}const o=Jl(e,r+1);if(o===-1){n+=e.slice(t);break}if(r>0&&e[r-1]==="!"&&rn(e,r-1)){n+=e.slice(t,o+1),t=o+1;continue}if(e[o+1]!=="("){n+=e.slice(t,o+1),t=o+1;continue}const s=r>0&&e[r-1]==="!"&&!rn(e,r-1)?r-1:r;n+=e.slice(t,s);const a=e.slice(r+1,o),l=Ql(e,o+2);if(l===-1){n+=e.slice(s);break}n+=a,t=l}return n},cs=(e,t,n)=>{if(!/^\d+$/.test(t))return!1;const r=e.slice(-1);return/\d/.test(r)&&/\d/.test(n)},tc=e=>e.replace(/(^|[^*\\])\*\*([^\s*](?:[\s\S]*?[^\s*])?)\*\*(?!\*)/g,(t,n,r,o,s)=>{const a=s[o+t.length]??"";return cs(n,r,a)?t:`${n}${r}`}),nc=e=>e.replace(/(^|[^_\\])__([^\s_](?:[\s\S]*?[^\s_])?)__(?!_)/g,"$1$2"),rc=e=>e.replace(/(^|[^~\\])~~([^\s~](?:[\s\S]*?[^\s~])?)~~(?!~)/g,"$1$2"),oc=e=>{let t=e;return t=t.replace(/(^|[^*\\])\*([^\s*](?:[\s\S]*?[^\s*])?)\*(?!\*)/g,(n,r,o,s,a)=>{const l=a[s+n.length]??"";return cs(r,o,l)?n:`${r}${o}`}),t=t.replace(/(^|[\s([{"'])_([^_\s](?:[\s\S]*?[^_\s])?)_(?=$|[\s)\]}"'.,!?:;])/g,"$1$2"),t},sc=e=>e.replace(/\\([\\`*_[\]()#+.!~|-])/g,"$1"),ic=e=>{let t=e;return t=t.replace(/^\s{0,3}#{1,6}\s+/gm,""),t=t.replace(/^\s{0,3}>\s?/gm,""),t=t.replace(/^\s{0,3}(?!([-*_])(?:\s*\1){2,}\s*$)[-*+]\s+/gm,""),t=t.replace(/^\s{0,3}\d+[.)]\s+/gm,""),t},Yr=e=>{const t=e.trim();if(!t.includes("|"))return!1;const n=t.split("|").map(r=>r.trim()).filter(Boolean);return n.length===0?!1:n.every(r=>/^:?-{3,}:?$/.test(r))},jr=e=>{const t=[];let n="",r=!1;for(const s of e.trim()){if(r){n+=s==="|"?"|":`\\${s}`,r=!1;continue}if(s==="\\"){r=!0;continue}if(s==="|"){const a=n.trim();a&&t.push(a),n="";continue}n+=s}r&&(n+="\\");const o=n.trim();return o&&t.push(o),t},ac=e=>{const t=e.split(`
|
|
2
|
+
`),n=[];let r=0;for(;r<t.length;){const o=t[r],s=t[r+1],a=jr(o);if(a.length>0&&s&&Yr(s)){for(n.push(a.join(" ")),r+=2;r<t.length;){const l=t[r],c=jr(l);if(c.length===0||Yr(l))break;n.push(c.join(" ")),r+=1}continue}n.push(o),r+=1}return n.join(`
|
|
3
|
+
`)},lc=e=>e.replace(/^\s{0,3}(?:(?:-\s*){3,}|(?:\*\s*){3,}|(?:_\s*){3,})$/gm,""),cc=(e,t)=>{const n=e.split(`
|
|
4
|
+
`),r=[];let o=0;for(;o<n.length;){const s=n[o],a=jl(s);if(!a){r.push(s),o+=1;continue}let l=-1;for(let c=o+1;c<n.length;c++)if(Xl(n[c],a)){l=c;break}if(l===-1){r.push(s),o+=1;continue}r.push(` ${t} `),o=l+1}return r.join(`
|
|
5
|
+
`)},rn=(e,t)=>{let n=0,r=t-1;for(;r>=0&&e[r]==="\\";)n+=1,r-=1;return n%2===1},uc=e=>{const t=[];let n=0,r="";for(;n<e.length;){const o=e[n];if(o!=="`"||rn(e,n)){r+=o,n+=1;continue}let s=n;for(;s<e.length&&e[s]==="`";)s+=1;const a=e.slice(n,s);let l=s,c=!1;for(;l<e.length&&e[l]!==`
|
|
6
|
+
`;){if(e[l]==="`"&&!rn(e,l)&&e.startsWith(a,l)){const d=e.slice(s,l),m=t.push(d)-1;r+=is(m),n=l+a.length,c=!0;break}l+=1}c||(r+=a,n=s)}return{text:r,inlineCodes:t}},dc=(e,{codeBlockPlaceholder:t=Yl}={})=>{const n=e==null?void 0:e.replace(/\r\n?/g,`
|
|
7
|
+
`);if(!n)return;const r=[];let o=n;o=cc(o,t),o=ic(o);const s=uc(o);o=s.text,r.push(...s.inlineCodes),o=ec(o),o=tc(o),o=nc(o),o=rc(o),o=oc(o),o=ac(o),o=lc(o),o=sc(o);for(let l=0;l<r.length;l++)o=o.replaceAll(is(l),r[l]);return ss(o)||void 0},on=e=>(e==null?void 0:e.trim())||"",mc=e=>(e?ss(e):void 0)||void 0,mr=e=>({text:on(e),format:"plain"}),hc=e=>({text:on(e),format:"markdown"}),mt=({markdownText:e,plainText:t,comparisonText:n})=>{const r=on(e);return r&&r!==on(n)?hc(r):mr(t)},dt=({sender:e,message:t,messageFormat:n="plain",time:r,codeBlockPlaceholder:o})=>{const s=[],a=n==="markdown"?dc(t,{codeBlockPlaceholder:o}):mc(t);if(e&&s.push(e),a&&s.push(a),r&&s.push(r),s.length!==0)return s.join(", ")},gc=(e,t={})=>{const{throttleMs:n=1e3,isSuppressed:r}=t;let o=null;const s=[];let a=null,l=null,c=!1,d=0;const m=(S,I)=>({text:S,ignoreSuppression:I,queueOrder:d++}),h=()=>{const S=s[0]??null,I=o;return S&&I?I.queueOrder<S.queueOrder?(o=null,I):s.shift()??null:S?s.shift()??null:I!==null?(o=null,I):null},g=()=>{for(;;){const S=h();if(!S)return null;if(!(!S.ignoreSuppression&&(r!=null&&r())))return S}},C=S=>{a=S,c=!0,e(S),l=setTimeout(()=>{l=null,c=!1;const I=g();I&&C(I.text)},n)},b=S=>{a=S,e(S)},v=(S,I,k)=>{if(S&&!(!I&&(r!=null&&r()))&&!(S===a&&c))if(c){if(((k==null?void 0:k.mode)??"latestOnly")==="ordered"){const U=s[s.length-1];if((U==null?void 0:U.text)===S)return;s.push(m(S,I));return}o=m(S,I)}else o=null,C(S)};return{announce:(S,I)=>{v(S,!1,I)},announceIgnoringSuppression:(S,I)=>{v(S,!0,I)},flush:()=>{const S=[];let I=h();for(;I!==null;)S.push(I),I=h();if(l!==null&&(clearTimeout(l),l=null),c=!1,S.length!==0)for(const k of S)b(k.text)},destroy:()=>{l!==null&&(clearTimeout(l),l=null),o=null,s.length=0,a=null,c=!1}}},fc=e=>{switch(e){case"conversationClosed":case"csatDisplayed":return"ordered";default:return"latestOnly"}},pc=(e,t)=>e.screen==="conversationList"?typeof e.conversationCount=="number"?t.screenConversationListWithCount(e.conversationCount):t.screenConversationListNoCount:[e.agentName?t.screenConversationWithAgent(e.agentName):t.screenConversation,e.isClosed?t.conversationClosed:null,e.isClosed&&e.hasCSAT?t.csatDisplayed:null,e.isEmpty?t.emptyState:null].filter(r=>!!r).join(". "),_c=(e,t)=>{switch(e.event){case"newMessage":return e.senderName?t.newMessageFromSender(e.senderName,1):t.newMessage(1);case"typing":return t.typing(e.agentName??"");case"sendFailed":return t.sendFailed;case"agentConnected":return t.agentConnected(e.agentName??"");case"conversationClosed":return t.conversationClosed;case"csatDisplayed":return t.csatDisplayed;case"emptyState":return t.emptyState;case"inputDisabled":return t.inputDisabled}},Ec=(e,t)=>{switch(e.type){case"fileSizeExceeded":return t.fileSizeExceeded(e.maxSizeMB??25);case"sendFailed":return t.sendFailed;case"csatFormError":return t.csatFormError;case"generic":return e.message}},bc=(e,t)=>!t||!Re(e)||e.sender.userId!==t?null:e.reqId||(e.messageId>0?String(e.messageId):null),Xr=(e,t)=>pe.isAdmin(e)?pe.isCSAT(e):"sender"in e?e.sender.userId!==t:!1,Cc=e=>"messageId"in e&&e.messageId>0?String(e.messageId):"reqId"in e&&typeof e.reqId=="string"&&e.reqId.length>0?e.reqId:null,vc=e=>e===ie.CollectionEventSource.EVENT_MESSAGE_RECEIVED||e===ie.CollectionEventSource.EVENT_MESSAGE_UPDATED,Zr=(e,t,n,r)=>{const{newestFirst:o=!1}={};if(o){for(const s of e)if(s&&Xr(s,n)&&t.some(a=>Mr(s,a)))return s;return}for(let s=e.length-1;s>=0;s-=1){const a=e[s];if(a&&Xr(a,n)&&t.some(l=>Mr(a,l)))return a}},yc=({isOpened:e,opensConversationList:t})=>e?t?"closeConversationList":"closeConversation":t?"openConversationList":"openConversation",Sc=(e,t)=>{switch(e){case"closeConversationList":return t.closeConversationList;case"closeConversation":return t.closeConversation;case"openConversationList":return t.openConversationList;case"openConversation":return t.openConversation}},Ac=(e,t)=>{switch(e){case"closeConversation":return t.hintCloseConversation;case"openConversationList":return t.hintOpenConversationList;case"openConversation":return t.hintOpenConversation;default:return}},xc=({intent:e,strings:t})=>({label:Sc(e,t),hint:Ac(e,t)}),Tc="1.24.0",we="sb-agent",ce={ENTRY:`${we}-entry`,MODAL_ROOT:`${we}-modal-root`,WINDOW:`${we}-window`,LAUNCHER:`${we}-launcher`},us="data-sb-initial-focus",ds="true",Ic=`[${us}="${ds}"]`,wc={[us]:ds},Ut=2147483647,gt={MODAL:Ut-1,TOOLTIP:Ut-2,WINDOW:Ut-3,LAUNCHER:Ut-4},ms=36,kc=100,Lc=Tc,hr="noopener noreferrer nofollow";function Mc(){return{isOnline:()=>navigator.onLine,subscribe:e=>{const t=()=>e(!0),n=()=>e(!1);return window.addEventListener("online",t),window.addEventListener("offline",n),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",n)}}}}const Vt={};function Rc(){return{get:e=>{try{return localStorage.getItem(e)}catch{return Vt[e]??null}},set:(e,t)=>{try{localStorage.setItem(e,t)}catch{Vt[e]=t}},delete:e=>{try{localStorage.removeItem(e)}catch{delete Vt[e]}},getKeys:e=>{try{const t=[];for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);r&&r.startsWith(e)&&t.push(r)}return t}catch{return Object.keys(Vt).filter(t=>t.startsWith(e))}}}}const Oc={conversation:{input_placeholder:"Ask a question",input_placeholder_disabled:"Chat is unavailable in this channel",input_placeholder_steward:"Processing your request...",input_placeholder_wait_ai_agent_response:"Waiting for the agent's reply...",input_placeholder_active_form:"Please fill out the form to move forward.",input_placeholder_reconnecting:"Trying to reconnect. Refresh if persists.",unknown_message_type:"(Unknown message type)",powered_by:"Powered by",citation_title:"Source",start_new_conversation_label:"Start a conversation",scroll_to_new_messages_label:()=>"New message",failed_message_resend:"Retry",failed_message_remove:"Remove",file_upload_no_supported_files:"No supported file types available.",file_upload_replace_alert_title:"Replace attachment?",file_upload_replace_alert_description:"Uploading a different file type will replace the current one.",a11y_message_list:"Chat messages",a11y_scroll_to_bottom:"Scroll to bottom",a11y_scroll_to_new_messages:"Scroll to new messages",a11y_open_conversation_list:"Open conversation list",a11y_open_conversation:"Open conversation",a11y_open_conversations:"Open conversations",a11y_close_conversation:"Close conversation",a11y_close_conversations:"Close conversations",a11y_menu:"Menu",a11y_message_input:"Message",a11y_send_message:"Send message",a11y_attach_file:"Attach file",a11y_close_messenger:"Close messenger",a11y_expand_messenger:"Expand messenger",a11y_collapse_messenger:"Collapse messenger",a11y_connect_agent:"Connect with an agent",a11y_message_sender_you:"You",a11y_suggested_reply:"Suggested reply",a11y_typing_indicator:"Typing",a11y_code_block_placeholder:"Code block",a11y_typing_format:e=>`${e} is typing`,a11y_message_failed:"Message send failed",a11y_new_messages_received:e=>`${e} new ${e===1?"message":"messages"} received`,a11y_new_messages_received_from_sender:(e,t)=>`${e}: ${t} new ${t===1?"message":"messages"} received`,a11y_agent_connected:e=>"Connected to human agent",a11y_conversation_closed:"Conversation has ended",a11y_file_image:e=>`Image file: ${e}`,a11y_file_video:e=>`Video file: ${e}`,a11y_file_document:e=>`Document file: ${e}`,a11y_screen_conversation:"Conversation",a11y_screen_conversation_with_agent:e=>`Conversation with ${e}`,a11y_screen_conversation_list_no_count:"Conversation list",a11y_screen_conversation_list_with_count:e=>`Conversations, ${e} total`,a11y_csat_displayed:"Satisfaction survey displayed",a11y_empty_conversation:"No messages in this conversation",a11y_input_disabled:"Message input is disabled",a11y_file_size_exceeded:e=>`File exceeds size limit of ${e}MB`,a11y_csat_form_error:"Please complete the required fields",a11y_hint_send_message:"Sends the message",a11y_hint_open_conversation:"Opens the conversation",a11y_hint_open_conversations:"Opens conversations",a11y_hint_close_conversation:"Closes the conversation",a11y_hint_open_menu:"Opens the menu",a11y_hint_connect_to_agent:"Escalates to a human agent",a11y_hint_attach_file:"Opens file attachment options",a11y_hint_view_new_messages:"Scrolls to new messages",a11y_hint_open_file:"Opens the file",a11y_hint_open_image:"Opens the image",a11y_hint_send_reply:"Sends this reply"},conversation_list:{header_title:"Conversations",ended:"Ended",system_message:"System message",footer_title:"Start a conversation",multiple_files_count:e=>`${e} ${e===1?"file":"files"}`,a11y_conversation_item:(e,t,n,r)=>`${e}, ${t}, ${n}, ${r} unread ${r===1?"message":"messages"}`},date_format:{just_now:"Just now",minutes_ago:e=>`${e} minutes ago`,hours_ago:e=>`${e} hours ago`,date_short:"MM/dd/yyyy",date_separator:"MMMM dd, yyyy",message_timestamp:"p"},csat:{title:"Your feedback matters to us",submitted_label:"Successfully submitted!",cre_question:"Was your issue resolved?",cre_positive_label:"Yes, thank you! 👍",cre_negative_label:"No, that didn't help.",reason_placeholder:"Share your feedback",question:"How would you rate your experience?",submit_label:"Submit",submission_expired:"We're sorry, the survey period has ended.",a11y_rating_label:(e,t)=>`${e} out of 5 — ${t}`,a11y_hint_select_rating:"Selects this rating"},form:{optional_label:"optional",validation_required:"This question is required"},common:{placeholder_something_went_wrong:"Something went wrong",placeholder_no_messages:"No messages",placeholder_no_conversations:"No conversations yet",placeholder_something_went_wrong_retry_label:"Retry",button_ok:"OK",button_cancel:"Cancel"},feedback:{title:"Submit feedback",good:"Good",bad:"Bad",comment_label:"Comment (optional)",comment_placeholder:"Leave a comment",cancel:"Cancel",submit:"Submit",save:"Save",edit:"Edit feedback",remove:"Remove feedback"},handoff:{confirm_title:"Request handoff?",confirm_description:"You'll be transferred to a human agent. Your conversation history will be shared.",confirm_cancel:"Cancel",confirm_handoff:"Handoff"}},qn={language:"en",strings:Oc,dateLocale:xi.enUS},hs=e=>({MESSAGE_INPUT__PLACE_HOLDER:e.conversation.input_placeholder,MESSAGE_INPUT__PLACE_HOLDER__DISABLED:e.conversation.input_placeholder_disabled,MESSAGE_INPUT__PLACE_HOLDER__STEWARD:e.conversation.input_placeholder_steward,MESSAGE_INPUT__PLACE_HOLDER__WAIT_AI_AGENT_RESPONSE:e.conversation.input_placeholder_wait_ai_agent_response,MESSAGE_INPUT__PLACE_HOLDER__RECONNECTING:e.conversation.input_placeholder_reconnecting,UNKNOWN__UNKNOWN_MESSAGE_TYPE:e.conversation.unknown_message_type,POWERED_BY:e.conversation.powered_by,CSAT_TITLE_UNSUBMITTED:e.csat.title,CSAT_TITLE_SUBMITTED:e.csat.submitted_label,CSAT_CRE_TITLE:e.csat.cre_question,CSAT_CRE_SOLVED:e.csat.cre_positive_label,CSAT_CRE_NOT_SOLVED:e.csat.cre_negative_label,CSAT_REASON_PLACEHOLDER:e.csat.reason_placeholder,CSAT_RATING_TITLE:e.csat.question,CSAT_SUBMIT_LABEL:e.csat.submit_label,CSAT_SUBMISSION_EXPIRED:e.csat.submission_expired,DATE_FORMAT__JUST_NOW:e.date_format.just_now,DATE_FORMAT__MINUTES_AGO:e.date_format.minutes_ago,DATE_FORMAT__HOURS_AGO:e.date_format.hours_ago,DATE_FORMAT__DATE_SHORT:e.date_format.date_short,DATE_FORMAT__MESSAGE_LIST__DATE_SEPARATOR:e.date_format.date_separator,DATE_FORMAT__MESSAGE_TIMESTAMP:e.date_format.message_timestamp,CONVERSATION_LIST__HEADER_TITLE:e.conversation_list.header_title,CONVERSATION_LIST__ENDED:e.conversation_list.ended,CONVERSATION_LIST__SYSTEM_MESSAGE:e.conversation_list.system_message,CONVERSATION_LIST__NO_CONVERSATIONS:e.common.placeholder_no_conversations,CONVERSATION_LIST__MULTIPLE_FILES_COUNT:e.conversation_list.multiple_files_count,TALK_TO_AGENT:e.conversation.start_new_conversation_label,CITATION_SOURCE_TITLE:e.conversation.citation_title,FORM_PLACEHOLDER:e.conversation.input_placeholder_active_form,FORM_VALIDATION_REQUIRED:e.form.validation_required,OPTIONAL:e.form.optional_label,PLACE_HOLDER__WRONG:e.common.placeholder_something_went_wrong,PLACE_HOLDER__NO_MESSAGES:e.common.placeholder_no_messages,RETRY:e.common.placeholder_something_went_wrong_retry_label,BUTTON__OK:e.common.button_ok,BUTTON__CANCEL:e.common.button_cancel,FAILED_MESSAGE_RESEND:e.conversation.failed_message_resend,FAILED_MESSAGE_REMOVE:e.conversation.failed_message_remove,FILE_UPLOAD_NO_SUPPORTED_FILES:e.conversation.file_upload_no_supported_files,FILE_UPLOAD_REPLACE_ALERT__TITLE:e.conversation.file_upload_replace_alert_title,FILE_UPLOAD_REPLACE_ALERT__DESCRIPTION:e.conversation.file_upload_replace_alert_description,FEEDBACK_TITLE:e.feedback.title,FEEDBACK_GOOD:e.feedback.good,FEEDBACK_BAD:e.feedback.bad,FEEDBACK_COMMENT_LABEL:e.feedback.comment_label,FEEDBACK_COMMENT_PLACEHOLDER:e.feedback.comment_placeholder,FEEDBACK_CANCEL:e.feedback.cancel,FEEDBACK_SUBMIT:e.feedback.submit,FEEDBACK_SAVE:e.feedback.save,FEEDBACK_EDIT:e.feedback.edit,FEEDBACK_REMOVE:e.feedback.remove,A11Y_MESSAGE_LIST:e.conversation.a11y_message_list,A11Y_SCROLL_TO_BOTTOM:e.conversation.a11y_scroll_to_bottom,A11Y_SCROLL_TO_NEW_MESSAGES:e.conversation.a11y_scroll_to_new_messages,A11Y_OPEN_CONVERSATION_LIST:e.conversation.a11y_open_conversation_list,A11Y_OPEN_CONVERSATION:e.conversation.a11y_open_conversation,A11Y_OPEN_CONVERSATIONS:e.conversation.a11y_open_conversations,A11Y_CLOSE_CONVERSATION:e.conversation.a11y_close_conversation,A11Y_CLOSE_CONVERSATIONS:e.conversation.a11y_close_conversations,A11Y_MENU:e.conversation.a11y_menu,A11Y_MESSAGE_INPUT:e.conversation.a11y_message_input,A11Y_SEND_MESSAGE:e.conversation.a11y_send_message,A11Y_ATTACH_FILE:e.conversation.a11y_attach_file,A11Y_CONNECT_AGENT:e.conversation.a11y_connect_agent,A11Y_CLOSE_MESSENGER:e.conversation.a11y_close_messenger,A11Y_EXPAND_MESSENGER:e.conversation.a11y_expand_messenger,A11Y_COLLAPSE_MESSENGER:e.conversation.a11y_collapse_messenger,A11Y_MESSAGE_SENDER_YOU:e.conversation.a11y_message_sender_you,A11Y_SUGGESTED_REPLY:e.conversation.a11y_suggested_reply,A11Y_TYPING_INDICATOR:e.conversation.a11y_typing_indicator,A11Y_CODE_BLOCK_PLACEHOLDER:e.conversation.a11y_code_block_placeholder,A11Y_TYPING_FORMAT:e.conversation.a11y_typing_format,A11Y_MESSAGE_FAILED:e.conversation.a11y_message_failed,A11Y_NEW_MESSAGES_RECEIVED:e.conversation.a11y_new_messages_received,A11Y_NEW_MESSAGES_RECEIVED_FROM_SENDER:e.conversation.a11y_new_messages_received_from_sender,A11Y_AGENT_CONNECTED:e.conversation.a11y_agent_connected,A11Y_CONVERSATION_CLOSED:e.conversation.a11y_conversation_closed,A11Y_FILE_IMAGE:e.conversation.a11y_file_image,A11Y_FILE_VIDEO:e.conversation.a11y_file_video,A11Y_FILE_DOCUMENT:e.conversation.a11y_file_document,A11Y_SCREEN_CONVERSATION:e.conversation.a11y_screen_conversation,A11Y_SCREEN_CONVERSATION_WITH_AGENT:e.conversation.a11y_screen_conversation_with_agent,A11Y_SCREEN_CONVERSATION_LIST_NO_COUNT:e.conversation.a11y_screen_conversation_list_no_count,A11Y_SCREEN_CONVERSATION_LIST_WITH_COUNT:e.conversation.a11y_screen_conversation_list_with_count,A11Y_CSAT_DISPLAYED:e.conversation.a11y_csat_displayed,A11Y_EMPTY_CONVERSATION:e.conversation.a11y_empty_conversation,A11Y_INPUT_DISABLED:e.conversation.a11y_input_disabled,A11Y_FILE_SIZE_EXCEEDED:e.conversation.a11y_file_size_exceeded,A11Y_CSAT_FORM_ERROR:e.conversation.a11y_csat_form_error,A11Y_HINT_SEND_MESSAGE:e.conversation.a11y_hint_send_message,A11Y_HINT_OPEN_CONVERSATION:e.conversation.a11y_hint_open_conversation,A11Y_HINT_OPEN_CONVERSATIONS:e.conversation.a11y_hint_open_conversations,A11Y_HINT_CLOSE_CONVERSATION:e.conversation.a11y_hint_close_conversation,A11Y_HINT_OPEN_MENU:e.conversation.a11y_hint_open_menu,A11Y_HINT_CONNECT_TO_AGENT:e.conversation.a11y_hint_connect_to_agent,A11Y_HINT_ATTACH_FILE:e.conversation.a11y_hint_attach_file,A11Y_HINT_VIEW_NEW_MESSAGES:e.conversation.a11y_hint_view_new_messages,A11Y_HINT_OPEN_FILE:e.conversation.a11y_hint_open_file,A11Y_HINT_OPEN_IMAGE:e.conversation.a11y_hint_open_image,A11Y_HINT_SEND_REPLY:e.conversation.a11y_hint_send_reply,A11Y_CONVERSATION_ITEM:e.conversation_list.a11y_conversation_item,A11Y_RATING_LABEL:e.csat.a11y_rating_label,A11Y_HINT_SELECT_RATING:e.csat.a11y_hint_select_rating,SCROLL_TO_NEW_MESSAGES_LABEL:e.conversation.scroll_to_new_messages_label,HANDOFF_CONFIRM__TITLE:e.handoff.confirm_title,HANDOFF_CONFIRM__DESCRIPTION:e.handoff.confirm_description,HANDOFF_CONFIRM__CANCEL:e.handoff.confirm_cancel,HANDOFF_CONFIRM__HANDOFF:e.handoff.confirm_handoff}),gs=e=>{var t;return((t=e.split("-"))==null?void 0:t[0])??Lt},Lt="en",fs=new Set([Lt,"ko","es","pt","fr","hi","it","de","tr","ja"]),Nc='@import"https://fonts.googleapis.com/css?family=Roboto:400,500,600,700&display=swap";.sb-message-template__border{position:relative}.sb-message-template__border:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);border-radius:var(--border-radius);pointer-events:none}.sb-message-template__action{cursor:pointer}.sb-message-template__parent{font-family:Roboto,serif}.sb-message-template__text{font-family:inherit;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;letter-spacing:normal;text-align:left}.sb-message-template__text-button{font-family:inherit;background-color:#e0e0e0;text-align:center;padding:10px;border-radius:6px;font-size:14px;font-weight:600;font-stretch:normal;font-style:normal;letter-spacing:normal}.sendbird-theme--light .sb-message-template__text-button{color:#742ddd}.sendbird-theme--dark .sb-message-template__text-button{color:#c2a9fa}.sb-message-template__text-button:hover{opacity:1;box-shadow:#0000001a 0 1px 3px,#0000000f 0 1px 2px}.sb-message-template__text-button,.sb-message-template__image-button{cursor:pointer;border-style:none}.sb-message-template__parent{border-radius:unset;background-color:transparent;overflow:hidden}.sb-message-template__parent *{box-sizing:border-box;line-height:1.3}.sb-message-template__carousel{display:flex;width:100%;box-sizing:border-box;touch-action:pan-y}',$c=(e,t,n)=>{const r=e[t];return r?typeof r=="function"?r():Promise.resolve(r):new Promise((o,s)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},Jr=hs(qn.strings),Dc={...Jr,HEADER_BUTTON__AGENT_HANDOFF:"Talk to human agent",MESSAGE_INPUT__PLACE_HOLDER__SUGGESTED_REPLIES:"Select an option to continue",BUTTON__SUBMIT:"Submit",SUBMITTED:"Submitted",TRY_AGAIN:"Please try again.",FILE_UPLOAD_NOTIFICATION__COUNT_LIMIT:"Up to %d files can be attached.",FILE_UPLOAD_NOTIFICATION__SIZE_LIMIT:"The maximum size per file is %d MB.",FILE_UPLOAD_NOTIFICATION__FILES_EXCLUDED_BY_VALIDATION:"%d files were excluded due to limits. Please select files individually.",FILE_UPLOAD_PHOTOS:"Photos",FILE_UPLOAD_FILES:"Files",FILE_VIEWER__UNSUPPORT:"Unsupported message",IMAGE_VIEWER__DEFAULT_TITLE:"Image",A11Y_IMAGE_VIEWER_CLOSE:"Close image viewer",A11Y_IMAGE_VIEWER_PREVIOUS:"Previous image",A11Y_IMAGE_VIEWER_NEXT:"Next image",A11Y_IMAGE_VIEWER_DOWNLOAD:"Download image",A11Y_ATTACH_FILE:"Attach file",A11Y_FILE_SELECTED:e=>`${e}, selected`,A11Y_FILE_REMOVE_BUTTON:e=>`Remove file: ${e}`,A11Y_CSAT_RATING_LABEL:(e,t)=>`${e} — ${t}`,A11Y_FILE_UPLOAD_OPTIONS:"File upload options",A11Y_FAILED_MESSAGE_OPTIONS:"Failed message options",A11Y_FEEDBACK_OPTIONS:"Feedback options",A11Y_CSAT_TEXT_INPUT_LABEL:"Enter answer",A11Y_CONNECT_AGENT:"Talk to human agent",FORM_UNAVAILABLE:"Form is no longer available.",FORM_NOT_SUPPORTED:"This form is not supported in the current version.",FORM_VALIDATION_MIN_LENGTH:e=>`Minimum ${e} characters required`,FORM_VALIDATION_MAX_LENGTH:e=>`Maximum ${e} characters allowed`,FORM_VALIDATION_MIN:e=>`Minimum value is ${e}`,FORM_VALIDATION_MAX:e=>`Maximum value is ${e}`,FORM_VALIDATION_MIN_SELECT:e=>`Select at least ${e} options`,FORM_VALIDATION_MAX_SELECT:e=>`Select at most ${e} options`,FORM_VALIDATION_REGEX_FAILED:"Invalid format",DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE:Jr.DATE_FORMAT__DATE_SHORT,DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE_CAPTION:"h:mma",CONVERSATION_LIST__TOPICS_FALLBACK:"No category",CONVERSATION_CLOSED_FOOTER_LABEL:"Your conversation has ended",START_NEW_CONVERSATION:"💬 Start a new conversation",RETURN_TO_CONVERSATION:"💬 Return to conversation",BUTTON__SAVE:"Save",NO_NAME:"(No name)",CHANNEL_FROZEN:"Channel frozen"},sn={language:qn.language,dateLocale:qn.dateLocale,stringSet:Dc},Pc=Object.freeze(Object.defineProperty({__proto__:null,default:sn},Symbol.toStringTag,{value:"Module"})),Kn=new Map([[Lt,sn]]);async function Fc(e){const t=Kn.get(e);if(t)return t;try{if(fs.has(e)){const{default:n}=await $c(Object.assign({"./languages/de.ts":()=>Promise.resolve().then(()=>require("./cjs/RKaCusvu.cjs")),"./languages/en.ts":()=>Promise.resolve().then(()=>Pc),"./languages/es.ts":()=>Promise.resolve().then(()=>require("./cjs/CfhYXtgc.cjs")),"./languages/fr.ts":()=>Promise.resolve().then(()=>require("./cjs/BCDZXq61.cjs")),"./languages/hi.ts":()=>Promise.resolve().then(()=>require("./cjs/BBssumix.cjs")),"./languages/it.ts":()=>Promise.resolve().then(()=>require("./cjs/Jlh8RyJW.cjs")),"./languages/ja.ts":()=>Promise.resolve().then(()=>require("./cjs/Sz9ta-fi.cjs")),"./languages/ko.ts":()=>Promise.resolve().then(()=>require("./cjs/Bz2jHC-Z.cjs")),"./languages/pt.ts":()=>Promise.resolve().then(()=>require("./cjs/CFY_588Z.cjs")),"./languages/tr.ts":()=>Promise.resolve().then(()=>require("./cjs/CHz4H01e.cjs"))}),`./languages/${e}.ts`,3);return Kn.set(e,n),n}return sn}catch{return sn}}const{Provider:Bc,useContext:Q}=ue("Localization"),Hc=({language:e=navigator.language,languageCode:t,logger:n,stringSet:r,children:o})=>{const[s,a]=u.useState(Kn.get(Lt));return u.useEffect(()=>{const l=t??gs(e);s.language!==l&&(n==null||n.debug("localization.useEffect: update language",{from:s.language,to:l}),Fc(l).then(a))},[e,t,n]),i.createElement(Bc,{value:{language:s.language,defaultStringSet:s.stringSet,stringSet:{...s.stringSet,...r},dateLocale:s.dateLocale,format:(l,c,d)=>We.format(l,c,{locale:s.dateLocale,...d})}},o)},an="data-sb-agent-theme",Qr=e=>(t,...n)=>{let r="";return t.forEach((o,s)=>{r+=o+(n[s]??"")}),`[${an}='${e}'] & { ${r} }`},G={light:Qr("light"),dark:Qr("dark")},Uc=O.css(({theme:e})=>{const{palette:t}=e;return`
|
|
8
8
|
:root,
|
|
9
9
|
:host {
|
|
10
10
|
--sendbird-primary-extra-dark: ${t.primary.extraDark};
|
|
@@ -53,18 +53,15 @@
|
|
|
53
53
|
--sendbird-overlay-dark: ${t.overlay.dark};
|
|
54
54
|
--sendbird-overlay-light: ${t.overlay.light};
|
|
55
55
|
}
|
|
56
|
-
`}),
|
|
57
|
-
|
|
58
|
-
`;return n.set(e,s),s},ou=e=>e?R.css`display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:${e};overflow:hidden;`:"",su=_.default.span`font-stretch:normal;letter-spacing:normal;${({$variant:e,theme:t})=>ru(e,t.typography)}color:${({$color:e})=>e};${({$maxTextLines:e})=>ou(e)}`,vs=["a[href]","button:not(:disabled)","input:not(:disabled)","select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),Ot=e=>{if(!e.isConnected||e.hidden)return!1;let t=e;const n=e.ownerDocument.defaultView;for(;t;){if(t.hidden||t.getAttribute("aria-hidden")==="true")return!1;if(n){const r=n.getComputedStyle(t);if(r.display==="none"||r.visibility==="hidden")return!1}t=t.parentElement}return!0};async function fr(e){let t=e;t&&(!t.startsWith("http://")&&!t.startsWith("https://")&&(t="https://"+t),window.open(t,"_blank","noopener,noreferrer"))}function Ce(e){requestAnimationFrame(()=>{requestAnimationFrame(()=>{e()})})}const iu='[data-sb-initial-focus="true"]',ys=e=>Array.from(e.querySelectorAll(vs)).filter(Ot),au=e=>Array.from(e.querySelectorAll(iu)).find(Ot)??ys(e)[0]??null,lu=e=>Array.from(e.ownerDocument.querySelectorAll('[role="dialog"][aria-modal="true"]')).some(t=>t!==e&&Ot(t)),cu=e=>{const t=au(e)??e;t===e&&!e.hasAttribute("tabindex")&&e.setAttribute("tabindex","-1"),t.focus()},uu=(e,t,n)=>{const r=ys(t);if(r.length===0){e.preventDefault(),t.focus();return}const o=r[0],s=r[r.length-1],a=n.activeElement;(e.shiftKey?a===o:a===s)&&(e.preventDefault(),(e.shiftKey?s:o).focus())},du=(e,t)=>{const n=c.useRef(null);c.useEffect(()=>{if(!e||!t.current)return;const r=t.current,o=r.getRootNode();n.current=o.activeElement instanceof HTMLElement?o.activeElement:null;let s=!1;return Ce(()=>{s||!r.isConnected||cu(r)}),()=>{s=!0;const a=n.current;n.current=null,a&&Ce(()=>{lu(r)||!a.isConnected||!Ot(a)||a.focus()})}},[e,t]),c.useEffect(()=>{if(!e||!t.current)return;const r=t.current,o=r.getRootNode(),s=a=>{a.key==="Tab"&&uu(a,r,o)};return r.addEventListener("keydown",s),()=>r.removeEventListener("keydown",s)},[e,t])},mu=(e,t=!0,n)=>{const r=n==null?void 0:n.containerRef;c.useEffect(()=>{if(!t||!e)return;const o=a=>{a.key==="Escape"&&e()&&a.stopImmediatePropagation()},s=(r==null?void 0:r.current)??document;return s.addEventListener("keydown",o),()=>s.removeEventListener("keydown",o)},[r,e,t])},ft=({style:e,rootElementId:t,visible:n,onClose:r,children:o,"aria-label":s,"aria-labelledby":a,"aria-describedby":l})=>{const u=c.useRef(null),{rootElement:d}=hr();if(du(n,u),mu(c.useCallback(()=>(r(),!0),[r]),n,{containerRef:u}),!n)return null;const m=He(d),h=He(d,!0);return xi.createPortal(i.createElement(hu,{onClick:r,style:e},i.createElement(gu,{ref:u,role:"dialog","aria-modal":"true","aria-label":s,"aria-labelledby":a,"aria-describedby":l,onClick:g=>g.stopPropagation()},o)),m.getElementById(t)??m.getElementById(ce.MODAL_ROOT)??h.body)},hu=_.default.div`position:fixed;top:0;left:0;width:100%;height:100%;background:${p.color.overlay.dark};display:flex;justify-content:center;align-items:center;z-index:${ot.MODAL};`,gu=_.default.div`border-radius:4px;overflow:hidden;box-shadow:0 16px 24px 2px rgba(13,13,13,0.12),0 6px 30px 5px rgba(13,13,13,0.08),0 6px 10px -5px rgba(13,13,13,0.04);z-index:${ot.MODAL};`,Qr=e=>{if(typeof e=="string"||typeof e=="number")return String(e)},pr=({visible:e,title:t,description:n,confirmText:r="OK",cancelText:o,onConfirm:s,onCancel:a,onClose:l,"aria-label":u})=>{const d=c.useId(),m=c.useId(),h=u??Qr(t)??Qr(n),g=u?void 0:t?d:n?m:void 0,C=t&&n?m:void 0,b=()=>{l(),Ce(()=>s==null?void 0:s())},v=()=>{l(),Ce(()=>a==null?void 0:a())};return i.createElement(ft,{rootElementId:ce.WINDOW,visible:e,onClose:l,"aria-label":h,"aria-labelledby":g,"aria-describedby":C},i.createElement(fu,null,i.createElement(pu,null,t&&i.createElement("div",{id:d},i.createElement(D,{variant:"h1",color:p.themedColor.textHighEmphasis},t)),n&&i.createElement(_u,{id:m},i.createElement(D,{variant:"subtitle2",color:p.themedColor.textHighEmphasis},n))),i.createElement(Eu,null,o&&i.createElement(eo,{onClick:v},i.createElement(D,{variant:"button",color:p.themedColor.textHighEmphasis},o)),i.createElement(eo,{onClick:b},i.createElement(D,{variant:"button",color:p.themedColor.primary},r)))))},fu=_.default.div`width:360px;height:auto;padding-block:24px 12px;padding-inline:24px;margin:0 auto;border-radius:4px;box-sizing:border-box;background-color:${({theme:e})=>e.colors.base.modalContentBackground};`,pu=_.default.div`margin-bottom:16px;`,_u=_.default.div`margin-top:8px;`,Eu=_.default.div`display:flex;flex-direction:row;justify-content:flex-end;`,eo=_.default.button`all:unset;display:flex;justify-content:center;align-items:center;border-radius:4px;cursor:pointer;background-color:transparent;padding:10px 16px;${be}`,{Provider:bu,useContext:_e}=me("MessengerSession"),Cu=c.forwardRef(function({children:e,...t},n){return i.createElement(tl,{ref:n,...t},r=>i.createElement(vu,{...r},e))}),vu=({children:e,...t})=>{const{chatSDK:n,logger:r,appId:o,aiAgentId:s,agentPreviewConfigs:a,state:l,handlers:u,dispatcher:d,_aiAgentSDK:m}=ne(),{userSessionInfo:h,authenticate:g,userSession:C,aiAgentInfo:b,launcherInfo:v}=t,[f,y]=c.useState(!1),E=c.useRef(null);Ye.useGroupChannelHandler(n,{async onUserJoined(S,I){var M,U,F,G;S.conversation&&S.conversation.type===Ee.ConversationType.PROACTIVE&&I.userId===((M=n.currentUser)==null?void 0:M.userId)&&(r.info("messengerSession.onUserJoined: proactive channel joined",S.url),(F=m.session)==null||F._updateActiveChannel({url:S.url,status:"open",conversationStatus:(U=S.conversation)==null?void 0:U.status}),l.setOpened(!0),yu({sound:document.hidden||!l.opened}),(G=E.current)==null||G.call(E,{channel:S}))}}),c.useEffect(()=>{g().then(({launcher:S})=>{S.auto_open&&!Mt()&&setTimeout(()=>l.setOpened(!0),500)}).catch(S=>{var I;r.error("messengerSession: failed to initialize",S),(I=u==null?void 0:u.onInitializeFailed)==null||I.call(u,S)})},[n,o,s,h==null?void 0:h.userId]),c.useEffect(()=>{const S=()=>y(!0);return d.subscribe(Me.AnonymousSessionTokenExpired,S),()=>d.unsubscribe(Me.AnonymousSessionTokenExpired,S)},[d]);const x=c.useCallback(()=>{t.deauthenticate().finally(()=>window.location.reload())},[t.deauthenticate]);return!C||!b||!v?null:i.createElement(bu,{value:{...t,userSession:C,aiAgentInfo:{...b,...a==null?void 0:a.bot},launcherInfo:{...v,...a==null?void 0:a.launcher},registerOnJoinedProactiveConversation:S=>E.current=S}},e,i.createElement(pr,{visible:f,title:"Session timed out",description:"Start a new conversation.",onConfirm:x,onClose:oe}))};function yu({sound:e}){nu("🔔You have received a new message"),e&&Cs()}const Su=e=>{const{chatSDK:t,handlers:n,logger:r}=ne(),{aiAgentInfo:o}=_e(),s=c.useRef(new Set),a=m=>{if(!(n!=null&&n.onCustomEvent))return;Oe(m)&&m.sender.userId===o.userId&&!$e.isStreaming(m)&&!s.current.has(m.messageId)&&(r.debug("useCustomEventForMessageReceive: bot-message-received",m),n.onCustomEvent({type:"bot-message-received",data:{message:m}}),s.current.add(m.messageId))},l=m=>{if(n!=null&&n.onCustomEvent&&m.isAdminMessage()&&m.customType==="user_action_required"&&!s.current.has(m.messageId)){const h=Hn(m.data);Array.isArray(h.history)&&h.history.length===0&&(r.debug("useCustomEventForMessageReceive: user_action_required",h),n.onCustomEvent({type:"user-action-requested",data:h}),s.current.add(m.messageId))}},u=(m,h)=>{m.url===e&&(a(h),l(h))},d=m=>{l(m)};return Ye.useGroupChannelHandler(t,{onMessageUpdated:u,onMessageReceived:u}),{checkForUserActionRequired:d}},an=`@${we}-focused-channel`,Ss=`${Date.now()}-${Math.random().toString(36).slice(2)}`,Au=()=>{try{const e=localStorage.getItem(an);return e?JSON.parse(e).channelUrl??null:null}catch{return null}},to=e=>{try{localStorage.setItem(an,JSON.stringify({channelUrl:e,tabId:Ss}))}catch{}},no=()=>{try{const e=localStorage.getItem(an);if(!e)return;JSON.parse(e).tabId===Ss&&localStorage.removeItem(an)}catch{}},xu=(e,t)=>(c.useEffect(()=>{if(!t||!e)return;const n=()=>to(e),r=()=>no();return document.hasFocus()&&to(e),window.addEventListener("focus",n),window.addEventListener("blur",r),()=>{window.removeEventListener("focus",n),window.removeEventListener("blur",r),no()}},[t,e]),{isChannelViewedInAnyTab:()=>document.hasFocus()||Au()===e}),Tu=e=>{var a;const{config:t,chatSDK:n}=ne(),{sdkUser:r}=_e(),o=!!((a=t==null?void 0:t.conversation)!=null&&a.messageAlertSoundEnabled),{isChannelViewedInAnyTab:s}=xu(e,o);Ye.useGroupChannelHandler(n,{onMessageReceived(l,u){if(!o||l.url!==e||s())return;(Oe(u)&&u.sender.userId!==(r==null?void 0:r.userId)||u.isAdminMessage()&&!u.silent)&&Cs()}})};function Iu(e){return new Promise(t=>{const n=new Image;n.onload=function(){const r=String(n.width),o=String(n.height);URL.revokeObjectURL(n.src),t({width:r,height:o})},n.src=URL.createObjectURL(e)})}async function wu(e){if("file"in e&&e.file instanceof File&&e.file.type.startsWith("image/")){const{width:t,height:n}=await Iu(e.file);return new qe.MessageMetaArray({key:Bo,value:[t,n]})}}const ku=({onScrollAfterSendMessage:e})=>{const{agentPreviewConfigs:t,handlers:n}=ne(),r=c.useRef(t==null?void 0:t.agentAttributes);return r.current=t==null?void 0:t.agentAttributes,{onBeforeSendMessage:async o=>{const s=await wu(o),a={...o,metaArrays:s?[s]:void 0},l=Lu(r.current);return l?{...a,data:JSON.stringify(l)}:a},onAfterSendMessage:o=>{var s,a,l;e(),(s=n==null?void 0:n.onMessageSend)==null||s.call(n,o.message),o.sendingStatus===qe.SendingStatus.SUCCEEDED?(a=n==null?void 0:n.onCustomEvent)==null||a.call(n,{type:"message-sent-succeeded",data:{message:o}}):o.sendingStatus===qe.SendingStatus.PENDING&&((l=n==null?void 0:n.onCustomEvent)==null||l.call(n,{type:"message-sent-pending",data:{message:o}}))}}},Lu=e=>{if(!e)return null;const t={};return e.ai&&Object.keys(e.ai).length>0&&(t.ai_attrs=e.ai),e.safeguard&&Object.keys(e.safeguard).length>0&&(t.safeguard_attrs=e.safeguard),typeof e.use_prompt_cache=="boolean"&&(t.use_prompt_cache=e.use_prompt_cache),Object.keys(t).length>0?t:null},dt=50,kn=dt-40,{Provider:Mu,useContext:As}=me("ConversationScroll"),ro={viewport:0,contentHeight:0,contentSnapshotHeight:0,shouldRecalc:!1,shouldUpdate:!1},Ln=e=>Math.max(0,e.scrollHeight-e.scrollTop-e.clientHeight);function Ou({scrollMode:e,messageStackDirection:t,children:n}){const r=c.useRef(null),o=c.useRef(null),s=c.useRef(0),a=c.useRef(0),l=c.useRef(!1),u=c.useRef(!1),d=c.useRef(null),m=c.useRef(ro),h=c.useRef(!1),g=c.useRef(null),[C,b]=c.useState(0),[v,f]=c.useState(0),[y,E]=c.useState(!1),[x,S]=c.useState(!1),[I,k]=c.useState(!0),M=B=>{const Z=Ln(B);return s.current=Z,f(Z),Z},U=()=>{d.current&&(clearTimeout(d.current),d.current=null)},F=c.useMemo(()=>y||t==="bottom"?"auto":e,[y,t,e]),G=()=>{m.current.contentSnapshotHeight=m.current.contentHeight,m.current.shouldUpdate=!0,m.current.shouldRecalc=!0},L=()=>{const B=r.current;!B||!m.current.shouldUpdate||b(Z=>{m.current.shouldUpdate=!1;const{contentHeight:X,contentSnapshotHeight:ge,shouldRecalc:ve}=m.current,Be=B.clientHeight;if(ge>X)return Z;const lt=P(B,{messageType:"outgoing"});let Le=0;if(lt){const Ve=lt.message.offsetTop-kn+Be;Le=Math.max(0,Ve-X)}else{const Ve=X-ge,ct=Be-kn;Le=Math.max(0,Ve-ct)}return Z===0||Le!==Z||ve?(m.current.shouldRecalc=!1,Le):Z})},P=c.useCallback((B,Z)=>{const{messageType:X="all"}=Z??{},ge=Array.from(B.querySelectorAll(`#${we}-message-item`));let ve=ge;X==="outgoing"&&(ve=ge.filter(Qe=>Qe.getAttribute("data-layout-id")==="outgoingmessage"));const Be=ve[ve.length-1];if(!Be)return null;const lt=B.getBoundingClientRect(),Le=Be.getBoundingClientRect(),Ve=B.scrollTop+(Le.top-lt.top),ct=Ve+Be.offsetHeight;return{message:Be,scrollTop:Ve,lastMessageBottom:ct}},[]),N=c.useCallback(()=>{const B=r.current;if(!B||F!=="fixed")return;const Z=P(B);m.current.contentHeight=(Z==null?void 0:Z.lastMessageBottom)??B.scrollHeight,!h.current&&m.current.contentSnapshotHeight>0&&G(),u.current?s.current=Ln(B):M(B),L()},[F,P]),w=c.useCallback(()=>{o.current&&(o.current.disconnect(),o.current=null),U(),m.current=ro,b(0),f(0),k(!0),s.current=0,l.current=!1,a.current=0,u.current=!1},[]),$=c.useCallback((B=!0)=>{const Z=s.current>dt;if(l.current=!1,f(0),!Z){Ce(()=>{const X=r.current;X&&!l.current&&X.scrollTo({top:X.scrollHeight,behavior:"auto"})});return}u.current||(u.current=!0,k(!1),U()),Ce(()=>{const X=r.current;if(!X){u.current=!1,k(!0);return}if(l.current){u.current=!1,M(X),k(!0);return}const ge=()=>{if(r.current!==X){u.current=!1,r.current&&M(r.current),k(!0);return}u.current=!1,M(X),k(!0)};if(B&&!d.current){const ve=setTimeout(ge,500);d.current=ve,X.addEventListener("scrollend",()=>{clearTimeout(ve),d.current=null,ge()},{once:!0})}X.scrollTo({top:X.scrollHeight,behavior:B?"smooth":"auto"}),B||ge()})},[]),O=c.useCallback(B=>{B&&(r.current=B,F==="fixed"&&(w(),m.current.viewport=B.clientHeight,o.current=new MutationObserver(()=>{N()}),o.current.observe(B,{childList:!0,subtree:!0})))},[F,N,w]),q=c.useCallback(()=>{const B=r.current;if(!B)return;const Z=P(B,{messageType:"outgoing"});Z&&(B.scrollTo({top:Z.message.offsetTop-kn,behavior:"smooth"}),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{S(!1)},500))},[P]),te=(B,Z,X)=>{const ge=Ln(B);if(X&&ge>dt){u.current=!1,l.current=!0,U(),M(B),k(!0),a.current=Z;return}s.current=ge},re=(B,Z,X)=>{const ve=M(B)<=dt;Z&&!ve&&(l.current=!0,U()),X&&ve&&(l.current=!1)},K=B=>{const{scrollTop:Z}=B.currentTarget,X=a.current;u.current?te(B.currentTarget,Z,Z<X):re(B.currentTarget,Z<X,Z>X),a.current=Z},T=c.useCallback(()=>{F==="fixed"&&(S(!0),G())},[F]),V=c.useCallback(()=>{F==="fixed"?setTimeout(()=>q(),300):$()},[F,q]),H=c.useCallback(B=>{h.current=B,F==="fixed"?G():l.current||$()},[F,$]),j=c.useCallback(B=>{E(B),B&&(b(0),o.current&&(o.current.disconnect(),o.current=null))},[]),se=c.useCallback(B=>{F==="auto"&&B&&!l.current&&$()},[F,$]),Re=!(v<=dt)&&!x,Ae=c.useCallback(()=>s.current>dt,[]);return i.createElement(Mu,{value:{ref:O,state:{bottomSpace:C,isAwayFromBottom:Re,isScrollPositionReconciled:I,shouldCountNewMessages:Ae},props:{onScroll:K},actions:{scrollToBottom:$,onBeforeMessageSend:T,onAfterMessageSend:V,onStreamingUpdate:H,onConversationClosed:j,onTypingIndicatorUpdate:se}}},n)}const{Provider:Ru,Context:Nu,useContext:he}=me("Conversation"),Du=({children:e})=>{var o;const{channelSource:t}=he(),n=(o=t.channel)==null?void 0:o.url,{checkForUserActionRequired:r}=Su(n);return c.useEffect(()=>{var a;const s=(a=t.channel)==null?void 0:a.lastMessage;s&&r(s)},[t.channel,r]),i.createElement(i.Fragment,null,e)},$u=({channelUrl:e,onClearChannelUrl:t,onNavigateToConversationList:n,shouldMarkAsRead:r,children:o})=>{const{activeChannel:s,refreshActiveChannel:a}=_e(),l=As(),u=e||(s==null?void 0:s.url);Tu(u);const{onBeforeSendMessage:d,onAfterSendMessage:m}=ku({onScrollAfterSendMessage:()=>{l.actions.onAfterMessageSend()}}),h=c.useCallback(b=>(l.actions.onBeforeMessageSend(),d(b)),[l.actions,d]),g=c.useCallback(b=>{const v=b.some(f=>$e.isStreaming(f));l.actions.onStreamingUpdate(v)},[l.actions.onStreamingUpdate]),C=c.useCallback(async()=>{await a(),e&&(t==null||t())},[a,e,t]);return i.createElement(hl,{key:u,channelUrl:u,onBeforeSendMessage:h,onAfterSendMessage:m,onMessagesUpdated:g,onMessagesReceived:g,onChannelDeleted:C,onConversationClosedStatusChanged:l.actions.onConversationClosed,shouldMarkAsRead:r,shouldCountNewMessages:l.state.shouldCountNewMessages},b=>i.createElement(Ru,{value:{...b,scrollSource:l,goToActiveConversation:C,onNavigateToConversationList:n}},i.createElement(Du,null,o)))},xs=({children:e,...t})=>{var a;const{config:n}=ke(),{agentPreviewConfigs:r}=ne(),o=((a=n==null?void 0:n.conversation)==null?void 0:a.scrollMode)??"auto",s=r==null?void 0:r.messageStackDirection;return i.createElement(Ou,{scrollMode:o,messageStackDirection:s},i.createElement($u,{...t},e))},_r=c.createContext({onDrop:oe,subscribe:()=>oe}),Kn=({children:e})=>{const t=c.useRef(new Set);return i.createElement(_r.Provider,{value:{onDrop:n=>{var r;if(n.preventDefault(),(r=n.dataTransfer)!=null&&r.files){const o=Array.from(n.dataTransfer.files);o.length>0&&t.current.forEach(s=>s(o))}},subscribe:n=>(t.current.add(n),()=>t.current.delete(n))}},e)},Pu=({onDropFiles:e})=>{const{subscribe:t}=c.useContext(_r);c.useEffect(()=>t(e),[e])};Kn.Consumer=({children:e})=>{const{onDrop:t}=c.useContext(_r);return e({onDrop:t,onDragOver:o=>o.preventDefault()})};const Fu=e=>ze(e)||Uo(e);function Bu(e){return e.isAdminMessage()?e.message==="The channel's custom_type was updated.":!1}function Hu(e,t){return e.filter(n=>$e.isWelcomeMessage(n,t))}const Ts=(e,{previewWelcomeMessages:t,aiAgentUserId:n})=>e.filter(r=>Bu(r)?!1:t.length>0?!$e.isWelcomeMessage(r,n):!0),Uu=[],Is=()=>{var b,v,f,y,E,x,S;const{agentPreviewConfigs:e={},aiAgentId:t}=ne(),{aiAgentInfo:n,userSession:r}=_e(),{channelSource:o,messageSource:s,state:{input:a,streamAnimation:l}}=he(),u=e.welcomeMessages??Uu,d=c.useMemo(()=>Ts(s.messages,{previewWelcomeMessages:u,aiAgentUserId:t}),[t,s.messages,u]),m=je(o.channel),h=(f=(v=(b=o.channel)==null?void 0:b.members.find(I=>I.userId!==r.userId))==null?void 0:v.nickname)==null?void 0:f.trim(),g=m?(E=(y=o.channel)==null?void 0:y.name)==null?void 0:E.trim():(x=n==null?void 0:n.nickname)==null?void 0:x.trim(),C=h||g||void 0;return{initialized:s.initialized,channelUrl:(S=o.channel)==null?void 0:S.url,agentName:C,isClosed:Se(o.channel),isHandedOff:m,messages:d,filteredMessagesCount:d.length,hasWelcomeMessages:u.length>0,inputDisabled:a.disabled,inputDisabledBy:a.disabledBy,isStreamAnimating:l.isAnimating,subscribeMessageEvents:s.subscribeMessageEvents,currentUserId:r.userId}},Vu=(e={})=>{const{announceScreenEntry:t,announcementsActive:n}=st(),{initialized:r=!1,channelUrl:o,agentName:s,isClosed:a=!1,messages:l=[],hasWelcomeMessages:u=!1}=e,d=c.useRef(null),m=c.useMemo(()=>l.some(g=>pe.isAdmin(g)&&pe.isCSAT(g)),[l]),h=l.length===0&&!u;c.useEffect(()=>{if(!n){d.current=null;return}!r||!o||d.current!==o&&(t({screen:"conversation",agentName:s,isClosed:a,hasCSAT:m,...h?{isEmpty:!0}:{}}),d.current=o)},[s,t,n,o,m,r,a,h])},Gu=()=>{const e=Is();Vu(e)},zu=(e,t,n)=>t!=null&&t.startsWith("image")?n.A11Y_FILE_IMAGE(e):t!=null&&t.startsWith("video")?n.A11Y_FILE_VIDEO(e):n.A11Y_FILE_DOCUMENT(e),Wu=(e,t)=>{var r,o,s,a,l,u;const n=(r=e.message)==null?void 0:r.trim();if(e.isFileMessage()){const d=((o=e.name)==null?void 0:o.trim())||"";return ht({markdownText:n,comparisonText:d,plainText:zu(d,e.type,t)})}if(e.isMultipleFilesMessage()){const d=((l=(a=(s=e.fileInfoList)==null?void 0:s[0])==null?void 0:a.fileName)==null?void 0:l.trim())||"",m=((u=e.fileInfoList)==null?void 0:u.length)??0;return ht({markdownText:n,comparisonText:d,plainText:m>0?t.CONVERSATION_LIST__MULTIPLE_FILES_COUNT(m):""})}return n?ht({markdownText:n}):dr("")},oo=(e,t,n=We.format)=>{const r=Wu(e,t),o="sender"in e?e.sender:void 0,s=mt({message:r.text,messageFormat:r.format,codeBlockPlaceholder:t.A11Y_CODE_BLOCK_PLACEHOLDER}),a=e.createdAt!=null&&e.createdAt!==0?n(e.createdAt,t.DATE_FORMAT__MESSAGE_TIMESTAMP):void 0,l=typeof(o==null?void 0:o.nickname)=="string"&&o.nickname.trim()||void 0;return[t.SCROLL_TO_NEW_MESSAGES_LABEL([e]),a,l,s].filter(u=>!!u).join(", ")},so=2e3,io=400,Xt=e=>{const t=new Set;return"reqId"in e&&typeof e.reqId=="string"&&e.reqId.length>0&&t.add(`req:${e.reqId}`),"messageId"in e&&e.messageId>0&&t.add(`message:${String(e.messageId)}`),[...t]},ws=e=>{if(!pe.isAdmin(e)||!pe.isCSAT(e))return null;const t=Ec(e);return t?`csat:${t}`:null},qu=e=>{const t=new Set;for(const n of e){const r=ws(n);r&&t.add(r)}return t},Ku=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r&&Xt(r).some(o=>t.includes(o)))return r}},Mn=(e,t)=>e.some(n=>t.includes(n)),ao=()=>typeof document>"u"?null:document.activeElement instanceof HTMLElement?document.activeElement:null,On=e=>new Map(e.map(({key:t,sendingStatus:n})=>[t,n])),Yu=()=>{const{announceStatusText:e,announceStatus:t,announcementsActive:n}=st(),{stringSet:r,format:o}=Q(),{channelUrl:s,messages:a,isClosed:l,isHandedOff:u,agentName:d,initialized:m,inputDisabled:h,inputDisabledBy:g,isStreamAnimating:C,subscribeMessageEvents:b,currentUserId:v}=Is(),{outgoingMessageStates:f,outgoingMessageStatusSignature:y}=c.useMemo(()=>{if(!v)return{outgoingMessageStates:[],outgoingMessageStatusSignature:""};const T=a.flatMap(V=>{const H=_c(V,v);return!H||!("sendingStatus"in V)?[]:[{key:H,sendingStatus:V.sendingStatus}]});return{outgoingMessageStates:T,outgoingMessageStatusSignature:T.map(({key:V,sendingStatus:H})=>`${V}:${H}`).join(",")}},[v,a]),E=c.useRef({isClosed:!1,isHandedOff:!1,inputDisabled:h,inputDisabledBy:g,outgoingMessageStatuses:On(f)}),x=c.useRef({messages:a,currentUserId:v,inputDisabledBy:g,isStreamAnimating:C,stringSet:r,format:o}),S=c.useRef([]),I=c.useRef(null),k=c.useRef({eventKeys:[],text:null,replaceableUntil:null}),M=c.useRef(new Set),U=c.useRef(new Set),F=c.useRef(!1),G=c.useRef(s);x.current={messages:a,currentUserId:v,inputDisabledBy:g,isStreamAnimating:C,stringSet:r,format:o};const L=()=>x.current.isStreamAnimating||x.current.inputDisabledBy==="ai_responding",P=()=>{I.current!=null&&(clearTimeout(I.current),I.current=null)},N=(T,V,H)=>{k.current={eventKeys:T,text:V,replaceableUntil:H!=null&&H.replaceableForMs?Date.now()+H.replaceableForMs:null}},w=()=>S.current.length>0,$=()=>{S.current=[]},O=()=>{const[T,...V]=S.current;if(!T)return!1;S.current=V;const{eventKeys:H,text:j}=T,se=Ae=>{N(H,Ae,{replaceableForMs:H.length>0?so:void 0}),e(Ae)};if(H.length===0)return j&&se(j),!0;const le=x.current,Re=Ku(le.messages,H);return Re?(se(oo(Re,le.stringSet,le.format)),!0):(j&&se(j),!0)},q=()=>{for(P();O(););},te=(T=so)=>{P(),I.current=setTimeout(()=>{if(I.current=null,L())return;const V=ao(),[H]=S.current;if(!H)return;if(H.focusTarget!==V){S.current=[{...H,focusTarget:V},...S.current.slice(1)],te(io);return}O()&&w()&&te(io)},T)},re=(T,V)=>{const H={eventKeys:V,text:T,focusTarget:ao()},j=V.length===0?-1:S.current.findIndex(({eventKeys:se})=>Mn(se,V));j>=0?S.current=S.current.map((se,le)=>le===j?H:se):S.current=[...S.current,H],te()},K=(T,V,H)=>{if(T!=="messagesUpdated"||V.length===0)return!1;const j=k.current;return!Mn(j.eventKeys,V)||j.text==null||j.replaceableUntil==null||Date.now()>j.replaceableUntil?!1:H!==j.text};c.useEffect(()=>{const T=G.current!==s;(!n||!m||T)&&(F.current=!1,U.current.clear(),$(),k.current={eventKeys:[],text:null,replaceableUntil:null},M.current.clear(),P(),T&&(G.current=s),!n||!m)||F.current||(F.current=!0,G.current=s,E.current={isClosed:l,isHandedOff:u,inputDisabled:h,inputDisabledBy:g,outgoingMessageStatuses:On(f)},M.current=new Set(a.flatMap(V=>{if(!$e.isStreaming(V))return[];const H="sender"in V?V.sender:void 0;return(H==null?void 0:H.userId)===x.current.currentUserId?[]:Xt(V)})),U.current=qu(a))},[t,n,s,m,h,l,u,y]),c.useEffect(()=>b(T=>{if(!F.current||T.kind==="initialized"||!bc(T.source))return;const V=x.current,H=jr(T.messages,T.messages,V.currentUserId)??jr(V.messages,T.messages,V.currentUserId);if(!H)return;const j=Xt(H),se=ws(H);if(se!=null){if(U.current.has(se))return;U.current.add(se),t({event:"csatDisplayed"});return}if($e.isStreaming(H)){Xt(H).forEach(X=>{M.current.add(X)});return}const le=j.filter(X=>M.current.has(X)),Re=T.kind==="messagesUpdated"&&le.length>0;Re&&le.forEach(X=>{M.current.delete(X)});const Ae=T.kind==="messagesUpdated"&&S.current.some(({eventKeys:X})=>Mn(X,j)),B=oo(H,V.stringSet,V.format),Z=K(T.kind,j,B);if(!(!Re&&T.kind!=="messagesAdded"&&!Ae&&!Z)){if(Re||L()||Ae){re(B,[...new Set([...le,...j])]);return}w()&&q(),N(j,B),e(B)}}),[t,e,b]),c.useEffect(()=>{F.current&&(L()||w()&&te())},[g,C]),c.useEffect(()=>()=>{P()},[]),c.useEffect(()=>{if(!F.current)return;const T=E.current,V=T.outgoingMessageStatuses;T.outgoingMessageStatuses=On(f),f.some(({key:j,sendingStatus:se})=>{const le=V.get(j);return le!==void 0&&le!=="failed"&&se==="failed"})&&t({event:"sendFailed"})},[t,y]),c.useEffect(()=>{if(!F.current)return;const T=E.current;l&&!T.isClosed&&t({event:"conversationClosed"}),T.isClosed=l},[t,l]),c.useEffect(()=>{if(!F.current)return;const T=E.current;u&&!T.isHandedOff&&t({event:"agentConnected",agentName:d}),T.isHandedOff=u},[d,t,u]),c.useEffect(()=>{if(!F.current)return;const T=E.current;h&&g!=="ai_responding"&&(!T.inputDisabled||T.inputDisabledBy==="ai_responding")&&t({event:"inputDisabled"}),T.inputDisabled=h,T.inputDisabledBy=g},[t,h,g])},ju=()=>{const{channelSource:e}=he(),t=os(e.channel);return!(t!=null&&t.user.userId)||!t.user.nickname?null:{userId:t.user.userId,nickname:t.user.nickname}},Xu=e=>{const{announceStatus:t,announcementsActive:n}=st();Bl(e??null,r=>{t({event:"typing",agentName:r})},1e4,n)},Zu=()=>{const e=ju();Xu(e)};class ln extends c.PureComponent{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}render(){const{fallback:t=null,errorFallback:n=t,loadingFallback:r=t,children:o}=this.props;return this.state.hasError?n:i.createElement(c.Suspense,{fallback:r},o)}}const Ju=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",...e},i.createElement("path",{className:"fill",d:"M52.552 11.448a2.666 2.666 0 0 1 .222 3.52l-.222.251-16.781 16.78 16.781 16.782a2.665 2.665 0 0 1 0 3.771 2.666 2.666 0 0 1-3.52.222l-.251-.222L32 35.771 15.219 52.552a2.665 2.665 0 0 1-3.771 0 2.666 2.666 0 0 1-.222-3.52l.222-.251L28.228 32l-16.78-16.781a2.665 2.665 0 0 1 0-3.771 2.666 2.666 0 0 1 3.52-.222l.251.222 16.78 16.78 16.782-16.78a2.665 2.665 0 0 1 3.771 0z",fill:"#000",fillRule:"evenodd"})),Qu=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",...e},i.createElement("path",{className:"fill",d:"M7.33348 7.3335L2.00015 7.3335L2.00015 6.00016H5.05735L1.3335 2.27631L2.27631 1.3335L6.00015 5.05734V2.00016L7.33348 2.00016L7.33348 7.3335ZM8.66683 8.66683H14.0002V10.0002L10.943 10.0002L14.6668 13.724L13.724 14.6668L10.0002 10.943V14.0002H8.66683L8.66683 8.66683Z",fill:"#000",fillRule:"evenodd"})),ed=e=>i.createElement("svg",{viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",...e},i.createElement("path",{className:"fill",fillRule:"evenodd",clipRule:"evenodd",d:"M2 2H7.33333V3.33333L4.27613 3.33333L7.99999 7.05719L7.05718 8L3.33333 4.27616L3.33333 7.33333H2V2ZM14 14H8.66667V12.6667H11.7239L8.00001 8.94281L8.94282 8L12.6667 11.7238V8.66667H14V14Z",fill:"#000"})),td=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",fill:"evenodd",...e},i.createElement("path",{className:"fill",fill:"#0D0D0D",d:"M50.667 18.667H13.333v-5.334h37.334zM50.667 34.667H13.333v-5.334h37.334zM13.333 50.667h37.334v-5.334H13.333z"})),nd=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",...e},i.createElement("path",{fill:"#000",fillRule:"evenodd",d:"M59.795 29.43 7.329 2.979C4.691 1.802 1.76 4.153 2.932 6.798l6.925 18.609a2 2 0 0 0 1.544 1.275l32.273 5.394L11.4 37.47a1.998 1.998 0 0 0-1.544 1.275L2.932 57.353c-.879 2.645 1.76 4.997 4.397 3.527l52.466-26.453c2.051-.882 2.051-3.82 0-4.996z",className:"fill"})),rd=new Set(["send","chat","message","chevron-right","good","good-filled","bad","bad-filled"]),od={close:Ju,send:nd,menu:td,expand:ed,collapse:Qu,spinner:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/Cf3-irI8.cjs"))),chat:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/BmdfYY9c.cjs"))),message:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/CmWLVNPR.cjs"))),error:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DNmdC4-j.cjs"))),info:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/ohTjxqcW.cjs"))),refresh:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/D00MOxhE.cjs"))),"chevron-down":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/wf-LdaaN.cjs"))),"chevron-right":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/B0k-GApQ.cjs"))),done:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/kp5wcW4s.cjs"))),"done-circle":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/Bwaslfwl.cjs"))),stop:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/w1C9O3WB.cjs"))),"stop-circle":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DGubkk9p.cjs"))),user:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/CtHfgPDp.cjs"))),"file-document":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/_YfLwFkX.cjs"))),download:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/BN09c8-A.cjs"))),attach:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DcDTXo8_.cjs"))),delete:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/CKPzhVy2.cjs"))),"close-filled":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/D1kINslt.cjs"))),agent:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/Ce1MzjFq.cjs"))),question:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/JA0x62Fd.cjs"))),actionbook:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/CXa-CGHE.cjs"))),function:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/zbLY6xl_.cjs"))),"radio-on":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/B9NJk4MI.cjs"))),"radio-off":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/Bb0r6Nhu.cjs"))),confluence:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/c6TZaE94.cjs"))),zendesk:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DqpDy_26.cjs"))),salesforce:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/BsgzT_SF.cjs"))),sprinklr:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/D97ZpKUC.cjs"))),website:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/ygZY2D-5.cjs"))),snippet:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/BCFOnu0u.cjs"))),template:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/eJXfXI1_.cjs"))),source:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/yVmX6iux.cjs"))),bot:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/PhHbzZB_.cjs"))),"bot-filled":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DlvMdI1f.cjs"))),copy:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/COgkkyBM.cjs"))),show:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DM-WWpci.cjs"))),mute:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/P_ra76fq.cjs"))),good:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DEgUVAck.cjs"))),bad:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/C0s7eAf7.cjs"))),"good-filled":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/Chg8xHXT.cjs"))),"bad-filled":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/CGkmTaBn.cjs"))),delight:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DCB0iTxd.cjs"))),photo:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/GQlGFYP2.cjs"))),"arrow-left":c.lazy(()=>Promise.resolve().then(()=>require("./cjs/CZIjo9nb.cjs"))),add:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DEGDJBmd.cjs"))),document:c.lazy(()=>Promise.resolve().then(()=>require("./cjs/DBHlAmeA.cjs")))},z=({type:e,size:t=24,className:n,color:r})=>{const o=od[e];return i.createElement(id,{className:n,$rtlFlip:rd.has(e),$size:t,$color:r??p.color.primary.main},i.createElement(ln,{errorFallback:i.createElement(ad,null)},i.createElement(o,null)))},sd=R.css`[dir='rtl'] &{transform:scaleX(-1);}`,id=_.default.div.attrs({"aria-hidden":"true"})`
|
|
59
|
-
width: ${({$size:e})=>De(e)};
|
|
60
|
-
height: ${({$size:e})=>De(e)};
|
|
56
|
+
`}),Vc=O.css`[${an}='light'] &{--sb-text-high-emphasis:var(--sendbird-onlight-text-high-emphasis);--sb-text-mid-emphasis:var(--sendbird-onlight-text-mid-emphasis);--sb-text-low-emphasis:var(--sendbird-onlight-text-low-emphasis);--sb-text-disabled:var(--sendbird-onlight-text-disabled);--sb-text-high-emphasis-inverse:var(--sendbird-ondark-text-high-emphasis);--sb-text-mid-emphasis-inverse:var(--sendbird-ondark-text-mid-emphasis);--sb-text-low-emphasis-inverse:var(--sendbird-ondark-text-low-emphasis);--sb-text-disabled-inverse:var(--sendbird-ondark-text-disabled);--sb-bg-50-600:var(--sendbird-background-50);--sb-bg-100-500:var(--sendbird-background-100);--sb-bg-300-500:var(--sendbird-background-300);--sb-bg-200-400:var(--sendbird-background-200);--sb-primary:var(--sendbird-primary-main);--sb-secondary:var(--sendbird-secondary-main);--sb-error:var(--sendbird-error-main);--sb-information:var(--sendbird-information-light);}[${an}='dark'] &{--sb-text-high-emphasis:var(--sendbird-ondark-text-high-emphasis);--sb-text-mid-emphasis:var(--sendbird-ondark-text-mid-emphasis);--sb-text-low-emphasis:var(--sendbird-ondark-text-low-emphasis);--sb-text-disabled:var(--sendbird-ondark-text-disabled);--sb-text-high-emphasis-inverse:var(--sendbird-onlight-text-high-emphasis);--sb-text-mid-emphasis-inverse:var(--sendbird-onlight-text-mid-emphasis);--sb-text-low-emphasis-inverse:var(--sendbird-onlight-text-low-emphasis);--sb-text-disabled-inverse:var(--sendbird-onlight-text-disabled);--sb-bg-50-600:var(--sendbird-background-600);--sb-bg-100-500:var(--sendbird-background-500);--sb-bg-300-500:var(--sendbird-background-500);--sb-bg-200-400:var(--sendbird-background-400);--sb-primary:var(--sendbird-primary-light);--sb-secondary:var(--sendbird-secondary-light);--sb-error:var(--sendbird-error-light);--sb-information:var(--sendbird-information-light);}`,p={color:{primary:{dark:"var(--sendbird-primary-dark)",main:"var(--sendbird-primary-main)"},secondary:{dark:"var(--sendbird-secondary-dark)",light:"var(--sendbird-secondary-light)"},error:{dark:"var(--sendbird-error-dark)",light:"var(--sendbird-error-light)"},information:{main:"var(--sendbird-information-main)",light:"var(--sendbird-information-light)"},background700:"var(--sendbird-background-700)",background500:"var(--sendbird-background-500)",background400:"var(--sendbird-background-400)",background200:"var(--sendbird-background-200)",background100:"var(--sendbird-background-100)",background50:"var(--sendbird-background-50)",onlight:{textLowEmphasis:"var(--sendbird-onlight-text-low-emphasis)",textDisabled:"var(--sendbird-onlight-text-disabled)"},ondark:{textMidEmphasis:"var(--sendbird-ondark-text-mid-emphasis)",textLowEmphasis:"var(--sendbird-ondark-text-low-emphasis)",textDisabled:"var(--sendbird-ondark-text-disabled)"},overlay:{dark:"var(--sendbird-overlay-dark)"}},themedColor:{textHighEmphasis:"var(--sb-text-high-emphasis)",textMidEmphasis:"var(--sb-text-mid-emphasis)",textLowEmphasis:"var(--sb-text-low-emphasis)",textDisabled:"var(--sb-text-disabled)",textHighEmphasisInverse:"var(--sb-text-high-emphasis-inverse)",textLowEmphasisInverse:"var(--sb-text-low-emphasis-inverse)",bg_50_600:"var(--sb-bg-50-600)",bg_100_500:"var(--sb-bg-100-500)",bg_300_500:"var(--sb-bg-300-500)",bg_200_400:"var(--sb-bg-200-400)",primary:"var(--sb-primary)",error:"var(--sb-error)",secondary:"var(--sb-secondary)"}};class ln extends u.PureComponent{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}render(){const{fallback:t=null,errorFallback:n=t,loadingFallback:r=t,children:o}=this.props;return this.state.hasError?n:i.createElement(u.Suspense,{fallback:r},o)}}const $e=e=>{const t=e;return typeof t=="number"?`${t}px`:t},Gc=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",...e},i.createElement("path",{className:"fill",d:"M52.552 11.448a2.666 2.666 0 0 1 .222 3.52l-.222.251-16.781 16.78 16.781 16.782a2.665 2.665 0 0 1 0 3.771 2.666 2.666 0 0 1-3.52.222l-.251-.222L32 35.771 15.219 52.552a2.665 2.665 0 0 1-3.771 0 2.666 2.666 0 0 1-.222-3.52l.222-.251L28.228 32l-16.78-16.781a2.665 2.665 0 0 1 0-3.771 2.666 2.666 0 0 1 3.52-.222l.251.222 16.78 16.78 16.782-16.78a2.665 2.665 0 0 1 3.771 0z",fill:"#000",fillRule:"evenodd"})),zc=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",...e},i.createElement("path",{className:"fill",d:"M7.33348 7.3335L2.00015 7.3335L2.00015 6.00016H5.05735L1.3335 2.27631L2.27631 1.3335L6.00015 5.05734V2.00016L7.33348 2.00016L7.33348 7.3335ZM8.66683 8.66683H14.0002V10.0002L10.943 10.0002L14.6668 13.724L13.724 14.6668L10.0002 10.943V14.0002H8.66683L8.66683 8.66683Z",fill:"#000",fillRule:"evenodd"})),Wc=e=>i.createElement("svg",{viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",...e},i.createElement("path",{className:"fill",fillRule:"evenodd",clipRule:"evenodd",d:"M2 2H7.33333V3.33333L4.27613 3.33333L7.99999 7.05719L7.05718 8L3.33333 4.27616L3.33333 7.33333H2V2ZM14 14H8.66667V12.6667H11.7239L8.00001 8.94281L8.94282 8L12.6667 11.7238V8.66667H14V14Z",fill:"#000"})),qc=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",fill:"evenodd",...e},i.createElement("path",{className:"fill",fill:"#0D0D0D",d:"M50.667 18.667H13.333v-5.334h37.334zM50.667 34.667H13.333v-5.334h37.334zM13.333 50.667h37.334v-5.334H13.333z"})),Kc=e=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",...e},i.createElement("path",{fill:"#000",fillRule:"evenodd",d:"M59.795 29.43 7.329 2.979C4.691 1.802 1.76 4.153 2.932 6.798l6.925 18.609a2 2 0 0 0 1.544 1.275l32.273 5.394L11.4 37.47a1.998 1.998 0 0 0-1.544 1.275L2.932 57.353c-.879 2.645 1.76 4.997 4.397 3.527l52.466-26.453c2.051-.882 2.051-3.82 0-4.996z",className:"fill"})),Yc=new Set(["send","chat","message","chevron-right","good","good-filled","bad","bad-filled"]),jc={close:Gc,send:Kc,menu:qc,expand:Wc,collapse:zc,spinner:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/Cf3-irI8.cjs"))),chat:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/BmdfYY9c.cjs"))),message:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/CmWLVNPR.cjs"))),error:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DNmdC4-j.cjs"))),refresh:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/D00MOxhE.cjs"))),"chevron-down":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/wf-LdaaN.cjs"))),"chevron-right":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/B0k-GApQ.cjs"))),done:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/kp5wcW4s.cjs"))),"done-circle":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/Bwaslfwl.cjs"))),stop:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/w1C9O3WB.cjs"))),"stop-circle":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DGubkk9p.cjs"))),user:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/CtHfgPDp.cjs"))),"file-document":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/_YfLwFkX.cjs"))),download:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/BN09c8-A.cjs"))),attach:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DcDTXo8_.cjs"))),"close-filled":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/D1kINslt.cjs"))),agent:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/Ce1MzjFq.cjs"))),actionbook:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/CXa-CGHE.cjs"))),function:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/zbLY6xl_.cjs"))),"radio-on":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/B9NJk4MI.cjs"))),"radio-off":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/Bb0r6Nhu.cjs"))),confluence:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/c6TZaE94.cjs"))),zendesk:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DqpDy_26.cjs"))),salesforce:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/BsgzT_SF.cjs"))),sprinklr:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/D97ZpKUC.cjs"))),website:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/ygZY2D-5.cjs"))),snippet:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/BCFOnu0u.cjs"))),template:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/eJXfXI1_.cjs"))),source:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/yVmX6iux.cjs"))),copy:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/COgkkyBM.cjs"))),show:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DM-WWpci.cjs"))),mute:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/P_ra76fq.cjs"))),good:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DEgUVAck.cjs"))),bad:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/C0s7eAf7.cjs"))),"good-filled":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/Chg8xHXT.cjs"))),"bad-filled":u.lazy(()=>Promise.resolve().then(()=>require("./cjs/CGkmTaBn.cjs"))),delight:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DCB0iTxd.cjs"))),photo:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/GQlGFYP2.cjs"))),add:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DEGDJBmd.cjs"))),document:u.lazy(()=>Promise.resolve().then(()=>require("./cjs/DBHlAmeA.cjs")))},Xc=e=>({size:t=24,color:n=p.color.primary.main,flipInRtl:r=!1})=>i.createElement(Jc,{$size:t,$color:n,$rtlFlip:r},i.createElement(ln,{errorFallback:i.createElement(Qc,null)},i.createElement(e,null))),ps=Object.fromEntries(Object.entries(jc).map(([e,t])=>[e,Xc(t)])),Zc=O.css`[dir='rtl'] &:not([dir='ltr']),&[dir='rtl']{transform:scaleX(-1);}`,Jc=_.default.span.attrs({"aria-hidden":"true"})`
|
|
57
|
+
width: ${({$size:e})=>$e(e)};
|
|
58
|
+
height: ${({$size:e})=>$e(e)};
|
|
61
59
|
display: inline-block;
|
|
62
|
-
&:focus {
|
|
63
|
-
outline: none;
|
|
64
|
-
}
|
|
65
60
|
|
|
66
61
|
svg {
|
|
67
62
|
display: block;
|
|
63
|
+
width: 100%;
|
|
64
|
+
height: 100%;
|
|
68
65
|
}
|
|
69
66
|
|
|
70
67
|
[class*='fill'] {
|
|
@@ -77,17 +74,24 @@
|
|
|
77
74
|
stroke-linejoin: round;
|
|
78
75
|
}
|
|
79
76
|
|
|
80
|
-
${({$rtlFlip:e})=>e&&
|
|
81
|
-
`,ad=()=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64"},i.createElement("rect",{x:"8",y:"8",width:"48",height:"48",fill:"none",className:"stroke",rx:"4"}),i.createElement("line",{x1:"20",y1:"20",x2:"44",y2:"44",className:"stroke"}),i.createElement("line",{x1:"44",y1:"20",x2:"20",y2:"44",className:"stroke"})),ld=.75,ks=6,cd=ks*2;let Yn=null;typeof Intl<"u"&&"Segmenter"in Intl&&(Yn=new Intl.Segmenter(void 0,{granularity:"grapheme"}));const ud=e=>Yn?Array.from(Yn.segment(e),t=>t.segment):[...e],dd=e=>{const t=Math.floor(e.length*ld),n=Math.max(0,e.length-ks);return Math.max(t,n)},lo=(e,t="")=>{if(e.length<cd)return{start:e+t,end:""};const n=ud(e),r=dd(n);return{start:n.slice(0,r).join(""),end:n.slice(r).join("")+t}},md=e=>{const t=e.normalize("NFC").trim(),n=t.lastIndexOf(".");if(!(n>0&&n<t.length-1))return lo(t);const o=t.slice(0,n),s=t.slice(n);return lo(o,s)},Ls=({children:e,...t})=>{const{start:n,end:r}=c.useMemo(()=>md(e),[e]);return r?i.createElement(hd,null,i.createElement(gd,{...t},n),i.createElement(fd,{...t},r)):i.createElement(D,{...t},n)},hd=_.default.span`display:flex;width:100%;min-width:0;overflow:hidden;direction:inherit;`,gd=_.default(D)`overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;`,fd=_.default(D)`flex-shrink:0;white-space:nowrap;`,pd=({id:e,children:t})=>i.createElement(_d,{id:e},t),_d=_.default.span`position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;`,Gt=(e,t)=>e!=null&&e.startsWith("image")?t.A11Y_HINT_OPEN_IMAGE:t.A11Y_HINT_OPEN_FILE,zt=({name:e,mimeType:t,selected:n},r)=>{var s;const o=t!=null&&t.startsWith("image")?r.A11Y_FILE_IMAGE(e):t!=null&&t.startsWith("video")?r.A11Y_FILE_VIDEO(e):r.A11Y_FILE_DOCUMENT(e);return n?((s=r.A11Y_FILE_SELECTED)==null?void 0:s.call(r,o))??`${o}, selected`:o},de=(e,t)=>t?{describedByProps:{"aria-describedby":e},descriptionNode:c.createElement(pd,{id:e,children:t})}:{describedByProps:{},descriptionNode:null},Ed=(e,t,n,r)=>{var s;const o=n.trim()||n;return((s=r.A11Y_CSAT_RATING_LABEL)==null?void 0:s.call(r,e,o))??`${e} / ${t} — ${o}`},Wt=e=>t=>{t.repeat||(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),e())},ee=()=>{const{stringSet:e}=Q(),t=c.useId(),n=c.useId(),r=c.useId(),o=c.useId(),s=c.useId(),a=c.useId(),l=c.useId(),u=c.useId(),d=c.useId(),m=c.useId(),h=c.useId(),g=c.useId(),C=c.useId(),b=c.useId(),v=c.useId(),f=c.useId(),y=w=>w===e.A11Y_HINT_OPEN_CONVERSATION?de(t,w):w===e.A11Y_HINT_OPEN_CONVERSATIONS?de(n,w):(w===e.A11Y_HINT_CLOSE_CONVERSATION,de(r,w)),E=de(o,e.A11Y_HINT_OPEN_MENU),x=de(s,e.A11Y_HINT_CLOSE_CONVERSATION),S=de(a,e.A11Y_HINT_CONNECT_TO_AGENT),I=de(l,e.A11Y_HINT_ATTACH_FILE),k=de(u,e.A11Y_HINT_SEND_MESSAGE),M=de(d,e.A11Y_HINT_VIEW_NEW_MESSAGES),U=de(m,e.A11Y_HINT_VIEW_NEW_MESSAGES),F=de(h,e.A11Y_HINT_SEND_REPLY),G=de(g,e.A11Y_HINT_SELECT_RATING),L=de(C,e.A11Y_HINT_SELECT_RATING),P=de(b,e.A11Y_HINT_OPEN_CONVERSATION),N=w=>{const $=Gt(w,e);return w!=null&&w.startsWith("image")?de(f,$):de(v,$)};return{launcher:{button:({isOpened:w,opensConversationList:$})=>{const O=Sc({intent:Cc({isOpened:w,opensConversationList:$}),strings:{openConversation:e.A11Y_OPEN_CONVERSATION,openConversationList:e.A11Y_OPEN_CONVERSATIONS,closeConversation:e.A11Y_CLOSE_CONVERSATION,closeConversationList:e.A11Y_CLOSE_CONVERSATIONS,hintOpenConversation:e.A11Y_HINT_OPEN_CONVERSATION,hintOpenConversationList:e.A11Y_HINT_OPEN_CONVERSATIONS,hintCloseConversation:e.A11Y_HINT_CLOSE_CONVERSATION}}),q=y(O.hint);return{props:{"aria-label":O.label,...q.describedByProps},hint:O.hint,descriptionNode:q.descriptionNode}}},messenger:{closeButton:{"aria-label":e.A11Y_CLOSE_MESSENGER},expandButton:w=>({"aria-label":w?e.A11Y_COLLAPSE_MESSENGER:e.A11Y_EXPAND_MESSENGER})},conversation:{menuButton:{props:{"aria-label":e.A11Y_MENU,...E.describedByProps},hint:e.A11Y_HINT_OPEN_MENU,descriptionNode:E.descriptionNode},closeConversationButton:{props:{"aria-label":e.A11Y_CLOSE_CONVERSATION,...x.describedByProps},hint:e.A11Y_HINT_CLOSE_CONVERSATION,descriptionNode:x.descriptionNode},handoffButton:{props:{"aria-label":e.A11Y_CONNECT_AGENT,...S.describedByProps},hint:e.A11Y_HINT_CONNECT_TO_AGENT,descriptionNode:S.descriptionNode},headerTitle:w=>({role:"heading","aria-level":2,"aria-label":w,tabIndex:-1}),messageInput:{attachFileButton:{props:{"aria-label":e.A11Y_ATTACH_FILE,...I.describedByProps},hint:e.A11Y_HINT_ATTACH_FILE,descriptionNode:I.descriptionNode},sendButton:{props:{"aria-label":e.A11Y_SEND_MESSAGE,...k.describedByProps},hint:e.A11Y_HINT_SEND_MESSAGE,descriptionNode:k.descriptionNode},textInput:w=>({role:"textbox","aria-label":w})},suggestedReplies:{hint:e.A11Y_HINT_SEND_REPLY,descriptionNode:F.descriptionNode,item:w=>({props:{"aria-label":`${e.A11Y_SUGGESTED_REPLY}, ${w}`,...F.describedByProps}})},feedback:{hint:e.A11Y_HINT_SELECT_RATING,descriptionNode:G.descriptionNode,button:(w,$)=>({props:{"aria-label":w==="good"?e.FEEDBACK_GOOD:e.FEEDBACK_BAD,...G.describedByProps,"aria-pressed":$}}),optionsBottomSheet:{"aria-label":e.A11Y_FEEDBACK_OPTIONS}},newMessagesButton:{props:{"aria-label":e.A11Y_SCROLL_TO_NEW_MESSAGES,...M.describedByProps},hint:e.A11Y_HINT_VIEW_NEW_MESSAGES,descriptionNode:M.descriptionNode},scrollToBottomButton:{props:{"aria-label":e.A11Y_SCROLL_TO_BOTTOM,...U.describedByProps},hint:e.A11Y_HINT_VIEW_NEW_MESSAGES,descriptionNode:U.descriptionNode},startNewConversationButton:({onActivate:w})=>({role:"button",tabIndex:0,"aria-label":e.TALK_TO_AGENT,onClick:w,onKeyDown:Wt(w)}),poweredByLink:{"aria-label":`${e.POWERED_BY} Sendbird`},retryButton:(w=e.RETRY)=>({"aria-label":w}),file:{label:(w,$)=>w?zt({name:w,mimeType:$},e):"",preview:w=>({props:{"aria-label":zt(w,e)}}),interactivePreview:w=>{const $=N(w.mimeType);return{props:{"aria-label":zt(w,e),...$.describedByProps},hint:Gt(w.mimeType,e),descriptionNode:$.descriptionNode}},openDescription:w=>{const $=N(w);return{props:$.describedByProps,hint:Gt(w,e),descriptionNode:$.descriptionNode}},buttonLikeInteractivePreview:({onActivate:w,...$})=>{const O=N($.mimeType);return{props:{role:"button",tabIndex:0,"aria-label":zt($,e),...O.describedByProps,onClick:w,onKeyDown:Wt(w)},hint:Gt($.mimeType,e),descriptionNode:O.descriptionNode}},removeButton:w=>({"aria-label":e.A11Y_FILE_REMOVE_BUTTON(w)})},csat:{scoresContainer:w=>({props:{role:"radiogroup","aria-label":w},descriptionNode:L.descriptionNode}),scoreItem:({score:w,label:$,selected:O,disabled:q,currentIndex:te,totalCount:re,hasSelection:K,onChange:T})=>({props:{disabled:q,onClick:()=>T(w),onKeyDown:V=>{var le;if(q)return;let H=null;switch(V.key){case"ArrowRight":case"ArrowDown":H=(te+1)%re;break;case"ArrowLeft":case"ArrowUp":H=(te-1+re)%re;break;default:return}V.preventDefault(),T(H+1);const j=V.currentTarget.parentElement,se=j==null?void 0:j.querySelectorAll('[role="radio"]');(le=se==null?void 0:se[H])==null||le.focus()},tabIndex:O||!K&&te===0?0:-1,role:"radio","aria-checked":O,"aria-disabled":q,...L.describedByProps,"aria-label":Ed(w,re,$,e)}}),submitButton:w=>({"aria-label":w})},form:{button:w=>({"aria-label":w}),textInput:(w,$,O)=>({"aria-label":w,"aria-required":$,"aria-disabled":O}),numberInput:(w,$,O)=>({"aria-label":w,"aria-required":$,"aria-disabled":O}),singleSelectGroup:w=>({role:"radiogroup",...w?{"aria-label":w}:{}}),singleSelectOption:(w,$,O)=>({role:"radio","aria-label":w,"aria-checked":$,"aria-disabled":O}),multiSelectOption:(w,$,O)=>({"aria-label":w,"aria-pressed":$,"aria-disabled":O})}},conversationList:{footer:{button:({onActivate:w})=>({role:"button",tabIndex:0,"aria-label":e.TALK_TO_AGENT,onClick:w,onKeyDown:Wt(w)})},item:({agent:w,status:$,time:O,unreadCount:q,onActivate:te})=>{const re=typeof te<"u",K=re?P:{describedByProps:{},descriptionNode:null};return{props:{...re?{role:"button",tabIndex:0,onClick:te,onKeyDown:Wt(te)}:{},...K.describedByProps,"aria-label":e.A11Y_CONVERSATION_ITEM(w,$,O,q)},hint:re?e.A11Y_HINT_OPEN_CONVERSATION:void 0,descriptionNode:re?K.descriptionNode:void 0}}}}},Er=({name:e,mimeType:t,type:n="FILE",iconColor:r,iconBackgroundColor:o,onClick:s,ariaLabel:a})=>{const{colors:l}=R.useTheme(),{conversation:u}=ee(),d=s?u.file.interactivePreview({name:e,mimeType:t}):u.file.preview({name:e,mimeType:t}),m={...d,props:{...d.props,...a?{"aria-label":a}:{}}};return i.createElement(bd,{as:s?"button":"div",type:s?"button":void 0,onClick:s,...m.props,$clickable:!!s},i.createElement(vd,{$bgColor:o??l.base.primary},i.createElement(z,{type:"file-document",size:24,color:r??l.base.primaryContrastContent})),i.createElement(yd,null,i.createElement(Ls,{variant:"button",color:p.themedColor.textHighEmphasis},e),i.createElement(D,{color:p.themedColor.textMidEmphasis,variant:"caption3"},n)),m.descriptionNode)},bd=_.default.div`border:none;border-radius:12px;gap:8px;width:${Y.BODY_MAX_WIDTH}px;height:64px;display:flex;align-items:center;padding:12px;box-sizing:border-box;border:1px solid ${p.themedColor.textDisabled};background-color:${p.themedColor.bg_50_600};${({$clickable:e})=>e&&Cd}`,Cd=R.css`cursor:pointer;&:hover{background-color:${p.themedColor.bg_100_500};}`,vd=_.default.div`border-radius:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:${({$bgColor:e})=>e};`,yd=_.default.div`display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;`;function Sd({file:e,children:t,onClickFile:n}){const r=n?()=>n(e):void 0;return i.createElement(Ad,null,i.createElement(Er,{name:e.name,mimeType:e.type,type:Qn(e.name,e.type),onClick:r}),t)}const Ad=_.default.div`display:flex;flex-direction:column;align-items:flex-start;gap:${Y.GAP_GROUPED}px;`,Fe=`${we}-incoming-msg`,xd=`${we}-marked-text`;function Td({file:e,onClickMedia:t,onClickMediaFiles:n,children:r}){const{conversation:o}=ee(),s=e.type.startsWith("image"),a=(()=>{if(n)return()=>n({files:[{url:e.url,type:e.type,name:e.name}],index:0});if(t)return()=>t(e)})(),l=a?o.file.buttonLikeInteractivePreview({name:e.name,mimeType:e.type,onActivate:a}):o.file.preview({name:e.name,mimeType:e.type}),u=()=>s?i.createElement(kd,{src:e.url,alt:"image-message"}):e.type.startsWith("video")?i.createElement(Ld,{controls:!0},i.createElement("source",{src:e.url}),i.createElement("track",{kind:"captions"})):null;if(u){const d={id:`${Fe}-media-body`,...l.props};return i.createElement(Id,null,i.createElement(wd,{...d},u(),l.descriptionNode),r)}return null}const Id=_.default.div`display:flex;flex-direction:column;align-items:flex-start;gap:${Y.GAP_GROUPED}px;`,wd=_.default.div`width:${Y.BODY_MAX_WIDTH}px;height:160px;border-radius:12px;overflow:hidden;cursor:pointer;${W.light`
|
|
77
|
+
${({$rtlFlip:e})=>e&&Zc};
|
|
78
|
+
`,Qc=()=>i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64"},i.createElement("rect",{x:"8",y:"8",width:"48",height:"48",fill:"none",className:"stroke",rx:"4"}),i.createElement("line",{x1:"20",y1:"20",x2:"44",y2:"44",className:"stroke"}),i.createElement("line",{x1:"44",y1:"20",x2:"20",y2:"44",className:"stroke"})),{Provider:eu,useContext:tu}=ue("MessengerIcon",{icons:ps}),nu=({icons:e,children:t})=>{const n=u.useMemo(()=>({icons:Ra(ps,e)}),[e]);return i.createElement(eu,{value:n},t)},{Provider:ru,useContext:gr}=ue("MessengerTheme");function ou(e){const{theme:t,appearance:n,logger:r}=e;return i.createElement(Qa,{appearance:n,palette:t==null?void 0:t.palette,typography:t==null?void 0:t.typography,colors:t==null?void 0:t.colors,logger:r},i.createElement(su,{...e}))}function su({rootElement:e=document.body,children:t}){const{theme:n,updateTheme:r}=lr();return u.useLayoutEffect(()=>{e.setAttribute(an,n.selectedTheme)},[e,n.selectedTheme]),i.createElement(O.ThemeProvider,{theme:n},i.createElement(ru,{value:{theme:n,updateTheme:r,rootElement:e}},t))}function He(e,t){const n=e.getRootNode({composed:t});return n instanceof ShadowRoot||n instanceof Document?n:document}const iu=(e,t)=>{u.useEffect(()=>{const n=He(t)instanceof ShadowRoot,r=He(t,!0);if(!(n?t:r).querySelector(`link[href*='${e}']`)){const s=r.createElement("link");s.rel="stylesheet",s.href=e,(n?t:r.head).appendChild(s)}},[e,t])},au=(e,t=document.body)=>{u.useEffect(()=>{const n=He(t),o=n instanceof ShadowRoot?t:n.head;if(!o)return;const s=`sba-${btoa(e).slice(0,10)}`;let a=o.querySelector(`style#${s}`);a?a.textContent!==e&&(a.textContent=e):(a=o.ownerDocument.createElement("style"),a.id=s,a.textContent=e,o.appendChild(a))},[e,t])},lu=80,cu=()=>{const{stringSet:e}=Q(),t={screenConversation:e.A11Y_SCREEN_CONVERSATION,screenConversationWithAgent:e.A11Y_SCREEN_CONVERSATION_WITH_AGENT,screenConversationListNoCount:e.A11Y_SCREEN_CONVERSATION_LIST_NO_COUNT,screenConversationListWithCount:e.A11Y_SCREEN_CONVERSATION_LIST_WITH_COUNT,newMessage:e.A11Y_NEW_MESSAGES_RECEIVED,newMessageFromSender:e.A11Y_NEW_MESSAGES_RECEIVED_FROM_SENDER,typing:e.A11Y_TYPING_FORMAT,sendFailed:e.A11Y_MESSAGE_FAILED,agentConnected:e.A11Y_AGENT_CONNECTED,conversationClosed:e.A11Y_CONVERSATION_CLOSED,csatDisplayed:e.A11Y_CSAT_DISPLAYED,emptyState:e.A11Y_EMPTY_CONVERSATION,inputDisabled:e.A11Y_INPUT_DISABLED,fileSizeExceeded:e.A11Y_FILE_SIZE_EXCEEDED,csatFormError:e.A11Y_CSAT_FORM_ERROR},n=u.useRef(t);return n.current=t,n},_s=ue("AriaLiveRegion",{announce:oe,announceScreenEntry:oe,announceStatus:oe,announceError:oe,flush:oe,setSuppressionState:oe}),uu=_s.Provider,fr=_s.useContext,du={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},mu=({children:e})=>{const t=u.useRef(null),n=u.useRef(new Set),r=u.useRef(oe),o=cu(),[s]=u.useState(()=>gc(C=>{r.current(C)},{throttleMs:1e3,isSuppressed:()=>n.current.size>0}));r.current=C=>{const b=t.current;b&&(b.textContent="",requestAnimationFrame(()=>{b.textContent=C}))},u.useEffect(()=>()=>{s.destroy()},[s]);const a=s.announce,l=s.flush,c=u.useCallback(C=>{const b=pc(C,o.current);a(b)},[a]),d=u.useCallback(C=>{const b=_c(C,o.current);a(b,{mode:fc(C.event)})},[a]),m=u.useCallback((C,b)=>{const v=Ec(C,o.current);s.announceIgnoringSuppression(v),b&&setTimeout(()=>{b.focus()},lu)},[s]),h=u.useCallback((C,b)=>{if(b){n.current.add(C);return}n.current.delete(C)},[]),g=u.useMemo(()=>({announce:a,announceScreenEntry:c,announceStatus:d,announceError:m,flush:l,setSuppressionState:h}),[a,m,c,d,l,h]);return i.createElement(uu,{value:g},e,i.createElement("div",{ref:t,role:"status","aria-live":"polite","aria-atomic":"true",style:du}))},Es=ue("ConversationAnnouncements",{announcementsActive:!0,announce:oe,announceStatusText:oe,announceScreenEntry:oe,announceStatus:oe,announceError:oe,setIsSuppressed:oe,setStatusPauseState:oe,flush:oe}),hu=Es.Provider,ot=Es.useContext,gu=({children:e,announcementsActive:t=!0})=>{const{announce:n,announceScreenEntry:r,announceStatus:o,announceError:s,flush:a,setSuppressionState:l}=fr(),c=u.useRef([]),d=u.useRef(new Set),m=u.useRef(Symbol("conversation-announcements")),h=u.useCallback(I=>{if(!t||!I){l(m.current,!1);return}l(m.current,!0)},[t,l]),g=u.useCallback(()=>{c.current=[]},[]),C=u.useCallback(()=>{if(c.current.length===0)return;if(!t){g();return}const I=[...c.current];g(),I.forEach(k=>{if(a(),k.type==="status"){o(k.params);return}n(k.text)})},[n,o,t,g,a]),b=u.useCallback((I,k)=>{if(k){d.current.add(I);return}d.current.delete(I),d.current.size===0&&C()},[C]),v=u.useCallback(I=>{t&&n(I)},[n,t]),f=u.useCallback(I=>{if(t){if(d.current.size>0){c.current.push({type:"text",text:I});return}a(),n(I)}},[n,t,a]),y=u.useCallback(I=>{t&&r(I)},[r,t]),E=u.useCallback(I=>{if(t){if(d.current.size>0){c.current.push({type:"status",params:I});return}o(I)}},[o,t]),x=u.useCallback((I,k)=>{t&&s(I,k)},[s,t]);u.useLayoutEffect(()=>(t||(g(),l(m.current,!1)),()=>{g(),l(m.current,!1)}),[t,g,l]);const S=u.useMemo(()=>({announcementsActive:t,announce:v,announceStatusText:f,announceScreenEntry:y,announceStatus:E,announceError:x,setIsSuppressed:h,setStatusPauseState:b,flush:a}),[t,a,v,f,x,y,E,h,b]);return i.createElement(hu,{value:S},e)},{Provider:fu,Consumer:bs,useContext:ne}=ue("Messenger");function pu({children:e,state:t,enableCloseConversationButton:n=!1,enableExpandButton:r=!0,enableAutoDisconnectInLauncher:o=!0,...s}){const[a,l]=u.useState(!1),[c,d]=u.useState(!1),m={opened:(t==null?void 0:t.opened)??a,setOpened:(t==null?void 0:t.setOpened)??l,expanded:(t==null?void 0:t.expanded)??c,setExpanded:(t==null?void 0:t.setExpanded)??d};return i.createElement(Na,{...s},h=>i.createElement(fu,{value:{...s,...h,state:m,enableCloseConversationButton:n,enableExpandButton:r,enableAutoDisconnectInLauncher:o}},e))}const Cs=/iPad|iPhone|iPod/.test(navigator.userAgent),_u=/Android/.test(navigator.userAgent),Mt=e=>Cs||_u;let vt=null,kn=null;const Eu=(e,t=5e3)=>{vt&&(clearInterval(vt),clearTimeout(kn));const n=document.title;vt=setInterval(()=>{document.title=document.title===e?n:e},750),kn=setTimeout(()=>{clearInterval(vt),vt=null,kn=null,document.title=n},t)},vs=()=>{Promise.resolve().then(()=>require("./cjs/B93o4u0P.cjs")).then(e=>{new Audio(e.default).play().catch(()=>{})})},_e=O.css`&:focus-visible{outline:2px solid ${p.themedColor.primary};outline-offset:2px;}`,$=({as:e,variant:t="body1",color:n,maxTextLines:r,className:o,...s})=>i.createElement(vu,{as:e,$variant:t,className:o,$color:n,$maxTextLines:r,...s}),eo=new WeakMap,bu=(e,t)=>{let n=eo.get(t);n||(n=new Map,eo.set(t,n));const r=n.get(e);if(r)return r;const o=t[e]??t.body1,s=O.css`font-size:${$e(o.fontSize)};font-weight:${o.fontWeight};${o.fontFamily?`font-family: ${o.fontFamily};`:""}
|
|
79
|
+
${o.lineHeight?`line-height: ${o.lineHeight};`:"line-height: 100%;"}
|
|
80
|
+
`;return n.set(e,s),s},Cu=e=>e?O.css`display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:${e};overflow:hidden;`:"",vu=_.default.span`font-stretch:normal;letter-spacing:normal;${({$variant:e,theme:t})=>bu(e,t.typography)}color:${({$color:e})=>e};${({$maxTextLines:e})=>Cu(e)}`,ys=["a[href]","button:not(:disabled)","input:not(:disabled)","select:not(:disabled)","textarea:not(:disabled)",'[tabindex]:not([tabindex="-1"])'].join(", "),Rt=e=>{if(!e.isConnected||e.hidden)return!1;let t=e;const n=e.ownerDocument.defaultView;for(;t;){if(t.hidden||t.getAttribute("aria-hidden")==="true")return!1;if(n){const r=n.getComputedStyle(t);if(r.display==="none"||r.visibility==="hidden")return!1}t=t.parentElement}return!0};async function pr(e){let t=e;t&&(!t.startsWith("http://")&&!t.startsWith("https://")&&(t="https://"+t),window.open(t,"_blank","noopener,noreferrer"))}function ve(e){requestAnimationFrame(()=>{requestAnimationFrame(()=>{e()})})}const yu='[data-sb-initial-focus="true"]',Ss=e=>Array.from(e.querySelectorAll(ys)).filter(Rt),Su=e=>Array.from(e.querySelectorAll(yu)).find(Rt)??Ss(e)[0]??null,Au=e=>Array.from(e.ownerDocument.querySelectorAll('[role="dialog"][aria-modal="true"]')).some(t=>t!==e&&Rt(t)),xu=e=>{const t=Su(e)??e;t===e&&!e.hasAttribute("tabindex")&&e.setAttribute("tabindex","-1"),t.focus()},Tu=(e,t,n)=>{const r=Ss(t);if(r.length===0){e.preventDefault(),t.focus();return}const o=r[0],s=r[r.length-1],a=n.activeElement;(e.shiftKey?a===o:a===s)&&(e.preventDefault(),(e.shiftKey?s:o).focus())},Iu=(e,t)=>{const n=u.useRef(null);u.useEffect(()=>{if(!e||!t.current)return;const r=t.current,o=r.getRootNode();n.current=o.activeElement instanceof HTMLElement?o.activeElement:null;let s=!1;return ve(()=>{s||!r.isConnected||xu(r)}),()=>{s=!0;const a=n.current;n.current=null,a&&ve(()=>{Au(r)||!a.isConnected||!Rt(a)||a.focus()})}},[e,t]),u.useEffect(()=>{if(!e||!t.current)return;const r=t.current,o=r.getRootNode(),s=a=>{a.key==="Tab"&&Tu(a,r,o)};return r.addEventListener("keydown",s),()=>r.removeEventListener("keydown",s)},[e,t])},wu=(e,t=!0,n)=>{const r=n==null?void 0:n.containerRef;u.useEffect(()=>{if(!t||!e)return;const o=a=>{a.key==="Escape"&&e()&&a.stopImmediatePropagation()},s=(r==null?void 0:r.current)??document;return s.addEventListener("keydown",o),()=>s.removeEventListener("keydown",o)},[r,e,t])},ft=({style:e,rootElementId:t,visible:n,onClose:r,children:o,"aria-label":s,"aria-labelledby":a,"aria-describedby":l})=>{const c=u.useRef(null),{rootElement:d}=gr();if(Iu(n,c),wu(u.useCallback(()=>(r(),!0),[r]),n,{containerRef:c}),!n)return null;const m=He(d),h=He(d,!0);return Ti.createPortal(i.createElement(ku,{onClick:r,style:e},i.createElement(Lu,{ref:c,role:"dialog","aria-modal":"true","aria-label":s,"aria-labelledby":a,"aria-describedby":l,onClick:g=>g.stopPropagation()},o)),m.getElementById(t)??m.getElementById(ce.MODAL_ROOT)??h.body)},ku=_.default.div`position:fixed;top:0;left:0;width:100%;height:100%;background:${p.color.overlay.dark};display:flex;justify-content:center;align-items:center;z-index:${gt.MODAL};`,Lu=_.default.div`border-radius:4px;overflow:hidden;box-shadow:0 16px 24px 2px rgba(13,13,13,0.12),0 6px 30px 5px rgba(13,13,13,0.08),0 6px 10px -5px rgba(13,13,13,0.04);z-index:${gt.MODAL};`,to=e=>{if(typeof e=="string"||typeof e=="number")return String(e)},_r=({visible:e,title:t,description:n,confirmText:r="OK",cancelText:o,onConfirm:s,onCancel:a,onClose:l,"aria-label":c})=>{const d=u.useId(),m=u.useId(),h=c??to(t)??to(n),g=c?void 0:t?d:n?m:void 0,C=t&&n?m:void 0,b=()=>{l(),ve(()=>s==null?void 0:s())},v=()=>{l(),ve(()=>a==null?void 0:a())};return i.createElement(ft,{rootElementId:ce.WINDOW,visible:e,onClose:l,"aria-label":h,"aria-labelledby":g,"aria-describedby":C},i.createElement(Mu,null,i.createElement(Ru,null,t&&i.createElement("div",{id:d},i.createElement($,{variant:"h1",color:p.themedColor.textHighEmphasis},t)),n&&i.createElement(Ou,{id:m},i.createElement($,{variant:"subtitle2",color:p.themedColor.textHighEmphasis},n))),i.createElement(Nu,null,o&&i.createElement(no,{onClick:v},i.createElement($,{variant:"button",color:p.themedColor.textHighEmphasis},o)),i.createElement(no,{onClick:b},i.createElement($,{variant:"button",color:p.themedColor.primary},r)))))},Mu=_.default.div`width:360px;height:auto;padding-block:24px 12px;padding-inline:24px;margin:0 auto;border-radius:4px;box-sizing:border-box;background-color:${({theme:e})=>e.colors.base.modalContentBackground};`,Ru=_.default.div`margin-bottom:16px;`,Ou=_.default.div`margin-top:8px;`,Nu=_.default.div`display:flex;flex-direction:row;justify-content:flex-end;`,no=_.default.button`all:unset;display:flex;justify-content:center;align-items:center;border-radius:4px;cursor:pointer;background-color:transparent;padding:10px 16px;${_e}`,{Provider:$u,useContext:Ee}=ue("MessengerSession"),Du=u.forwardRef(function({children:e,...t},n){return i.createElement(rl,{ref:n,...t},r=>i.createElement(Pu,{...r},e))}),Pu=({children:e,...t})=>{const{chatSDK:n,logger:r,appId:o,aiAgentId:s,agentPreviewConfigs:a,state:l,handlers:c,dispatcher:d,_aiAgentSDK:m}=ne(),{userSessionInfo:h,authenticate:g,userSession:C,aiAgentInfo:b,launcherInfo:v}=t,[f,y]=u.useState(!1),E=u.useRef(null);Ye.useGroupChannelHandler(n,{async onUserJoined(S,I){var M,U,F,z;S.conversation&&S.conversation.type===be.ConversationType.PROACTIVE&&I.userId===((M=n.currentUser)==null?void 0:M.userId)&&(r.info("messengerSession.onUserJoined: proactive channel joined",S.url),(F=m.session)==null||F._updateActiveChannel({url:S.url,status:"open",conversationStatus:(U=S.conversation)==null?void 0:U.status}),l.setOpened(!0),Fu({sound:document.hidden||!l.opened}),(z=E.current)==null||z.call(E,{channel:S}))}}),u.useEffect(()=>{g().then(({launcher:S})=>{S.auto_open&&!Mt()&&setTimeout(()=>l.setOpened(!0),500)}).catch(S=>{var I;r.error("messengerSession: failed to initialize",S),(I=c==null?void 0:c.onInitializeFailed)==null||I.call(c,S)})},[n,o,s,h==null?void 0:h.userId]),u.useEffect(()=>{const S=()=>y(!0);return d.subscribe(Me.AnonymousSessionTokenExpired,S),()=>d.unsubscribe(Me.AnonymousSessionTokenExpired,S)},[d]);const x=u.useCallback(()=>{t.deauthenticate().finally(()=>window.location.reload())},[t.deauthenticate]);return!C||!b||!v?null:i.createElement($u,{value:{...t,userSession:C,aiAgentInfo:{...b,...a==null?void 0:a.bot},launcherInfo:{...v,...a==null?void 0:a.launcher},registerOnJoinedProactiveConversation:S=>E.current=S}},e,i.createElement(_r,{visible:f,title:"Session timed out",description:"Start a new conversation.",onConfirm:x,onClose:oe}))};function Fu({sound:e}){Eu("🔔You have received a new message"),e&&vs()}const Bu=e=>{const{chatSDK:t,handlers:n,logger:r}=ne(),{aiAgentInfo:o}=Ee(),s=u.useRef(new Set),a=m=>{if(!(n!=null&&n.onCustomEvent))return;Re(m)&&m.sender.userId===o.userId&&!De.isStreaming(m)&&!s.current.has(m.messageId)&&(r.debug("useCustomEventForMessageReceive: bot-message-received",m),n.onCustomEvent({type:"bot-message-received",data:{message:m}}),s.current.add(m.messageId))},l=m=>{if(n!=null&&n.onCustomEvent&&m.isAdminMessage()&&m.customType==="user_action_required"&&!s.current.has(m.messageId)){const h=Un(m.data);Array.isArray(h.history)&&h.history.length===0&&(r.debug("useCustomEventForMessageReceive: user_action_required",h),n.onCustomEvent({type:"user-action-requested",data:h}),s.current.add(m.messageId))}},c=(m,h)=>{m.url===e&&(a(h),l(h))},d=m=>{l(m)};return Ye.useGroupChannelHandler(t,{onMessageUpdated:c,onMessageReceived:c}),{checkForUserActionRequired:d}},cn=`@${we}-focused-channel`,As=`${Date.now()}-${Math.random().toString(36).slice(2)}`,Hu=()=>{try{const e=localStorage.getItem(cn);return e?JSON.parse(e).channelUrl??null:null}catch{return null}},ro=e=>{try{localStorage.setItem(cn,JSON.stringify({channelUrl:e,tabId:As}))}catch{}},oo=()=>{try{const e=localStorage.getItem(cn);if(!e)return;JSON.parse(e).tabId===As&&localStorage.removeItem(cn)}catch{}},Uu=(e,t)=>(u.useEffect(()=>{if(!t||!e)return;const n=()=>ro(e),r=()=>oo();return document.hasFocus()&&ro(e),window.addEventListener("focus",n),window.addEventListener("blur",r),()=>{window.removeEventListener("focus",n),window.removeEventListener("blur",r),oo()}},[t,e]),{isChannelViewedInAnyTab:()=>document.hasFocus()||Hu()===e}),Vu=e=>{var a;const{config:t,chatSDK:n}=ne(),{sdkUser:r}=Ee(),o=!!((a=t==null?void 0:t.conversation)!=null&&a.messageAlertSoundEnabled),{isChannelViewedInAnyTab:s}=Uu(e,o);Ye.useGroupChannelHandler(n,{onMessageReceived(l,c){if(!o||l.url!==e||s())return;(Re(c)&&c.sender.userId!==(r==null?void 0:r.userId)||c.isAdminMessage()&&!c.silent)&&vs()}})};function Gu(e){return new Promise(t=>{const n=new Image;n.onload=function(){const r=String(n.width),o=String(n.height);URL.revokeObjectURL(n.src),t({width:r,height:o})},n.src=URL.createObjectURL(e)})}async function zu(e){if("file"in e&&e.file instanceof File&&e.file.type.startsWith("image/")){const{width:t,height:n}=await Gu(e.file);return new qe.MessageMetaArray({key:Bo,value:[t,n]})}}const Wu=({onScrollAfterSendMessage:e})=>{const{agentPreviewConfigs:t,handlers:n}=ne(),r=u.useRef(t==null?void 0:t.agentAttributes);return r.current=t==null?void 0:t.agentAttributes,{onBeforeSendMessage:async o=>{const s=await zu(o),a={...o,metaArrays:s?[s]:void 0},l=qu(r.current);return l?{...a,data:JSON.stringify(l)}:a},onAfterSendMessage:o=>{var s,a,l;e(),(s=n==null?void 0:n.onMessageSend)==null||s.call(n,o.message),o.sendingStatus===qe.SendingStatus.SUCCEEDED?(a=n==null?void 0:n.onCustomEvent)==null||a.call(n,{type:"message-sent-succeeded",data:{message:o}}):o.sendingStatus===qe.SendingStatus.PENDING&&((l=n==null?void 0:n.onCustomEvent)==null||l.call(n,{type:"message-sent-pending",data:{message:o}}))}}},qu=e=>{if(!e)return null;const t={};return e.ai&&Object.keys(e.ai).length>0&&(t.ai_attrs=e.ai),e.safeguard&&Object.keys(e.safeguard).length>0&&(t.safeguard_attrs=e.safeguard),typeof e.use_prompt_cache=="boolean"&&(t.use_prompt_cache=e.use_prompt_cache),Object.keys(t).length>0?t:null},ut=50,Ln=ut-40,{Provider:Ku,useContext:xs}=ue("ConversationScroll"),so={viewport:0,contentHeight:0,contentSnapshotHeight:0,shouldRecalc:!1,shouldUpdate:!1},Mn=e=>Math.max(0,e.scrollHeight-e.scrollTop-e.clientHeight);function Yu({scrollMode:e,messageStackDirection:t,children:n}){const r=u.useRef(null),o=u.useRef(null),s=u.useRef(0),a=u.useRef(0),l=u.useRef(!1),c=u.useRef(!1),d=u.useRef(null),m=u.useRef(so),h=u.useRef(!1),g=u.useRef(null),[C,b]=u.useState(0),[v,f]=u.useState(0),[y,E]=u.useState(!1),[x,S]=u.useState(!1),[I,k]=u.useState(!0),M=B=>{const Z=Mn(B);return s.current=Z,f(Z),Z},U=()=>{d.current&&(clearTimeout(d.current),d.current=null)},F=u.useMemo(()=>y||t==="bottom"?"auto":e,[y,t,e]),z=()=>{m.current.contentSnapshotHeight=m.current.contentHeight,m.current.shouldUpdate=!0,m.current.shouldRecalc=!0},L=()=>{const B=r.current;!B||!m.current.shouldUpdate||b(Z=>{m.current.shouldUpdate=!1;const{contentHeight:X,contentSnapshotHeight:ge,shouldRecalc:ye}=m.current,Be=B.clientHeight;if(ge>X)return Z;const at=P(B,{messageType:"outgoing"});let Le=0;if(at){const Ve=at.message.offsetTop-Ln+Be;Le=Math.max(0,Ve-X)}else{const Ve=X-ge,lt=Be-Ln;Le=Math.max(0,Ve-lt)}return Z===0||Le!==Z||ye?(m.current.shouldRecalc=!1,Le):Z})},P=u.useCallback((B,Z)=>{const{messageType:X="all"}=Z??{},ge=Array.from(B.querySelectorAll(`#${we}-message-item`));let ye=ge;X==="outgoing"&&(ye=ge.filter(Qe=>Qe.getAttribute("data-layout-id")==="outgoingmessage"));const Be=ye[ye.length-1];if(!Be)return null;const at=B.getBoundingClientRect(),Le=Be.getBoundingClientRect(),Ve=B.scrollTop+(Le.top-at.top),lt=Ve+Be.offsetHeight;return{message:Be,scrollTop:Ve,lastMessageBottom:lt}},[]),N=u.useCallback(()=>{const B=r.current;if(!B||F!=="fixed")return;const Z=P(B);m.current.contentHeight=(Z==null?void 0:Z.lastMessageBottom)??B.scrollHeight,!h.current&&m.current.contentSnapshotHeight>0&&z(),c.current?s.current=Mn(B):M(B),L()},[F,P]),w=u.useCallback(()=>{o.current&&(o.current.disconnect(),o.current=null),U(),m.current=so,b(0),f(0),k(!0),s.current=0,l.current=!1,a.current=0,c.current=!1},[]),D=u.useCallback((B=!0)=>{const Z=s.current>ut;if(l.current=!1,f(0),!Z){ve(()=>{const X=r.current;X&&!l.current&&X.scrollTo({top:X.scrollHeight,behavior:"auto"})});return}c.current||(c.current=!0,k(!1),U()),ve(()=>{const X=r.current;if(!X){c.current=!1,k(!0);return}if(l.current){c.current=!1,M(X),k(!0);return}const ge=()=>{if(r.current!==X){c.current=!1,r.current&&M(r.current),k(!0);return}c.current=!1,M(X),k(!0)};if(B&&!d.current){const ye=setTimeout(ge,500);d.current=ye,X.addEventListener("scrollend",()=>{clearTimeout(ye),d.current=null,ge()},{once:!0})}X.scrollTo({top:X.scrollHeight,behavior:B?"smooth":"auto"}),B||ge()})},[]),R=u.useCallback(B=>{B&&(r.current=B,F==="fixed"&&(w(),m.current.viewport=B.clientHeight,o.current=new MutationObserver(()=>{N()}),o.current.observe(B,{childList:!0,subtree:!0})))},[F,N,w]),Y=u.useCallback(()=>{const B=r.current;if(!B)return;const Z=P(B,{messageType:"outgoing"});Z&&(B.scrollTo({top:Z.message.offsetTop-Ln,behavior:"smooth"}),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{S(!1)},500))},[P]),te=(B,Z,X)=>{const ge=Mn(B);if(X&&ge>ut){c.current=!1,l.current=!0,U(),M(B),k(!0),a.current=Z;return}s.current=ge},re=(B,Z,X)=>{const ye=M(B)<=ut;Z&&!ye&&(l.current=!0,U()),X&&ye&&(l.current=!1)},q=B=>{const{scrollTop:Z}=B.currentTarget,X=a.current;c.current?te(B.currentTarget,Z,Z<X):re(B.currentTarget,Z<X,Z>X),a.current=Z},T=u.useCallback(()=>{F==="fixed"&&(S(!0),z())},[F]),V=u.useCallback(()=>{F==="fixed"?setTimeout(()=>Y(),300):D()},[F,Y]),H=u.useCallback(B=>{h.current=B,F==="fixed"?z():l.current||D()},[F,D]),j=u.useCallback(B=>{E(B),B&&(b(0),o.current&&(o.current.disconnect(),o.current=null))},[]),se=u.useCallback(B=>{F==="auto"&&B&&!l.current&&D()},[F,D]),Oe=!(v<=ut)&&!x,Ae=u.useCallback(()=>s.current>ut,[]);return i.createElement(Ku,{value:{ref:R,state:{bottomSpace:C,isAwayFromBottom:Oe,isScrollPositionReconciled:I,shouldCountNewMessages:Ae},props:{onScroll:q},actions:{scrollToBottom:D,onBeforeMessageSend:T,onAfterMessageSend:V,onStreamingUpdate:H,onConversationClosed:j,onTypingIndicatorUpdate:se}}},n)}const{Provider:ju,Context:Xu,useContext:he}=ue("Conversation"),Zu=({children:e})=>{var o;const{channelSource:t}=he(),n=(o=t.channel)==null?void 0:o.url,{checkForUserActionRequired:r}=Bu(n);return u.useEffect(()=>{var a;const s=(a=t.channel)==null?void 0:a.lastMessage;s&&r(s)},[t.channel,r]),i.createElement(i.Fragment,null,e)},Ju=({channelUrl:e,onClearChannelUrl:t,onNavigateToConversationList:n,shouldMarkAsRead:r,children:o})=>{const{activeChannel:s,refreshActiveChannel:a}=Ee(),l=xs(),c=e||(s==null?void 0:s.url);Vu(c);const{onBeforeSendMessage:d,onAfterSendMessage:m}=Wu({onScrollAfterSendMessage:()=>{l.actions.onAfterMessageSend()}}),h=u.useCallback(b=>(l.actions.onBeforeMessageSend(),d(b)),[l.actions,d]),g=u.useCallback(b=>{const v=b.some(f=>De.isStreaming(f));l.actions.onStreamingUpdate(v)},[l.actions.onStreamingUpdate]),C=u.useCallback(async()=>{await a(),e&&(t==null||t())},[a,e,t]);return i.createElement(fl,{key:c,channelUrl:c,onBeforeSendMessage:h,onAfterSendMessage:m,onMessagesUpdated:g,onMessagesReceived:g,onChannelDeleted:C,onConversationClosedStatusChanged:l.actions.onConversationClosed,shouldMarkAsRead:r,shouldCountNewMessages:l.state.shouldCountNewMessages},b=>i.createElement(ju,{value:{...b,scrollSource:l,goToActiveConversation:C,onNavigateToConversationList:n}},i.createElement(Zu,null,o)))},Ts=({children:e,...t})=>{var a;const{config:n}=ke(),{agentPreviewConfigs:r}=ne(),o=((a=n==null?void 0:n.conversation)==null?void 0:a.scrollMode)??"auto",s=r==null?void 0:r.messageStackDirection;return i.createElement(Yu,{scrollMode:o,messageStackDirection:s},i.createElement(Ju,{...t},e))},Er=u.createContext({onDrop:oe,subscribe:()=>oe}),Yn=({children:e})=>{const t=u.useRef(new Set);return i.createElement(Er.Provider,{value:{onDrop:n=>{var r;if(n.preventDefault(),(r=n.dataTransfer)!=null&&r.files){const o=Array.from(n.dataTransfer.files);o.length>0&&t.current.forEach(s=>s(o))}},subscribe:n=>(t.current.add(n),()=>t.current.delete(n))}},e)},Qu=({onDropFiles:e})=>{const{subscribe:t}=u.useContext(Er);u.useEffect(()=>t(e),[e])};Yn.Consumer=({children:e})=>{const{onDrop:t}=u.useContext(Er);return e({onDrop:t,onDragOver:o=>o.preventDefault()})};const ed=e=>ze(e)||Uo(e);function td(e){return e.isAdminMessage()?e.message==="The channel's custom_type was updated.":!1}function nd(e,t){return e.filter(n=>De.isWelcomeMessage(n,t))}const Is=(e,{previewWelcomeMessages:t,aiAgentUserId:n})=>e.filter(r=>td(r)?!1:t.length>0?!De.isWelcomeMessage(r,n):!0),rd=[],ws=()=>{var b,v,f,y,E,x,S;const{agentPreviewConfigs:e={},aiAgentId:t}=ne(),{aiAgentInfo:n,userSession:r}=Ee(),{channelSource:o,messageSource:s,state:{input:a,streamAnimation:l}}=he(),c=e.welcomeMessages??rd,d=u.useMemo(()=>Is(s.messages,{previewWelcomeMessages:c,aiAgentUserId:t}),[t,s.messages,c]),m=je(o.channel),h=(f=(v=(b=o.channel)==null?void 0:b.members.find(I=>I.userId!==r.userId))==null?void 0:v.nickname)==null?void 0:f.trim(),g=m?(E=(y=o.channel)==null?void 0:y.name)==null?void 0:E.trim():(x=n==null?void 0:n.nickname)==null?void 0:x.trim(),C=h||g||void 0;return{initialized:s.initialized,channelUrl:(S=o.channel)==null?void 0:S.url,agentName:C,isClosed:Ce(o.channel),isHandedOff:m,messages:d,filteredMessagesCount:d.length,hasWelcomeMessages:c.length>0,inputDisabled:a.disabled,inputDisabledBy:a.disabledBy,isStreamAnimating:l.isAnimating,subscribeMessageEvents:s.subscribeMessageEvents,currentUserId:r.userId}},od=(e={})=>{const{announceScreenEntry:t,announcementsActive:n}=ot(),{initialized:r=!1,channelUrl:o,agentName:s,isClosed:a=!1,messages:l=[],hasWelcomeMessages:c=!1}=e,d=u.useRef(null),m=u.useMemo(()=>l.some(g=>pe.isAdmin(g)&&pe.isCSAT(g)),[l]),h=l.length===0&&!c;u.useEffect(()=>{if(!n){d.current=null;return}!r||!o||d.current!==o&&(t({screen:"conversation",agentName:s,isClosed:a,hasCSAT:m,...h?{isEmpty:!0}:{}}),d.current=o)},[s,t,n,o,m,r,a,h])},sd=()=>{const e=ws();od(e)},id=(e,t,n)=>t!=null&&t.startsWith("image")?n.A11Y_FILE_IMAGE(e):t!=null&&t.startsWith("video")?n.A11Y_FILE_VIDEO(e):n.A11Y_FILE_DOCUMENT(e),ad=(e,t)=>{var r,o,s,a,l,c;const n=(r=e.message)==null?void 0:r.trim();if(e.isFileMessage()){const d=((o=e.name)==null?void 0:o.trim())||"";return mt({markdownText:n,comparisonText:d,plainText:id(d,e.type,t)})}if(e.isMultipleFilesMessage()){const d=((l=(a=(s=e.fileInfoList)==null?void 0:s[0])==null?void 0:a.fileName)==null?void 0:l.trim())||"",m=((c=e.fileInfoList)==null?void 0:c.length)??0;return mt({markdownText:n,comparisonText:d,plainText:m>0?t.CONVERSATION_LIST__MULTIPLE_FILES_COUNT(m):""})}return n?mt({markdownText:n}):mr("")},io=(e,t,n=We.format)=>{const r=ad(e,t),o="sender"in e?e.sender:void 0,s=dt({message:r.text,messageFormat:r.format,codeBlockPlaceholder:t.A11Y_CODE_BLOCK_PLACEHOLDER}),a=e.createdAt!=null&&e.createdAt!==0?n(e.createdAt,t.DATE_FORMAT__MESSAGE_TIMESTAMP):void 0,l=typeof(o==null?void 0:o.nickname)=="string"&&o.nickname.trim()||void 0;return[t.SCROLL_TO_NEW_MESSAGES_LABEL([e]),a,l,s].filter(c=>!!c).join(", ")},ao=2e3,lo=400,Zt=e=>{const t=new Set;return"reqId"in e&&typeof e.reqId=="string"&&e.reqId.length>0&&t.add(`req:${e.reqId}`),"messageId"in e&&e.messageId>0&&t.add(`message:${String(e.messageId)}`),[...t]},ks=e=>{if(!pe.isAdmin(e)||!pe.isCSAT(e))return null;const t=Cc(e);return t?`csat:${t}`:null},ld=e=>{const t=new Set;for(const n of e){const r=ks(n);r&&t.add(r)}return t},cd=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r&&Zt(r).some(o=>t.includes(o)))return r}},Rn=(e,t)=>e.some(n=>t.includes(n)),co=()=>typeof document>"u"?null:document.activeElement instanceof HTMLElement?document.activeElement:null,On=e=>new Map(e.map(({key:t,sendingStatus:n})=>[t,n])),ud=()=>{const{announceStatusText:e,announceStatus:t,announcementsActive:n}=ot(),{stringSet:r,format:o}=Q(),{channelUrl:s,messages:a,isClosed:l,isHandedOff:c,agentName:d,initialized:m,inputDisabled:h,inputDisabledBy:g,isStreamAnimating:C,subscribeMessageEvents:b,currentUserId:v}=ws(),{outgoingMessageStates:f,outgoingMessageStatusSignature:y}=u.useMemo(()=>{if(!v)return{outgoingMessageStates:[],outgoingMessageStatusSignature:""};const T=a.flatMap(V=>{const H=bc(V,v);return!H||!("sendingStatus"in V)?[]:[{key:H,sendingStatus:V.sendingStatus}]});return{outgoingMessageStates:T,outgoingMessageStatusSignature:T.map(({key:V,sendingStatus:H})=>`${V}:${H}`).join(",")}},[v,a]),E=u.useRef({isClosed:!1,isHandedOff:!1,inputDisabled:h,inputDisabledBy:g,outgoingMessageStatuses:On(f)}),x=u.useRef({messages:a,currentUserId:v,inputDisabledBy:g,isStreamAnimating:C,stringSet:r,format:o}),S=u.useRef([]),I=u.useRef(null),k=u.useRef({eventKeys:[],text:null,replaceableUntil:null}),M=u.useRef(new Set),U=u.useRef(new Set),F=u.useRef(!1),z=u.useRef(s);x.current={messages:a,currentUserId:v,inputDisabledBy:g,isStreamAnimating:C,stringSet:r,format:o};const L=()=>x.current.isStreamAnimating||x.current.inputDisabledBy==="ai_responding",P=()=>{I.current!=null&&(clearTimeout(I.current),I.current=null)},N=(T,V,H)=>{k.current={eventKeys:T,text:V,replaceableUntil:H!=null&&H.replaceableForMs?Date.now()+H.replaceableForMs:null}},w=()=>S.current.length>0,D=()=>{S.current=[]},R=()=>{const[T,...V]=S.current;if(!T)return!1;S.current=V;const{eventKeys:H,text:j}=T,se=Ae=>{N(H,Ae,{replaceableForMs:H.length>0?ao:void 0}),e(Ae)};if(H.length===0)return j&&se(j),!0;const le=x.current,Oe=cd(le.messages,H);return Oe?(se(io(Oe,le.stringSet,le.format)),!0):(j&&se(j),!0)},Y=()=>{for(P();R(););},te=(T=ao)=>{P(),I.current=setTimeout(()=>{if(I.current=null,L())return;const V=co(),[H]=S.current;if(!H)return;if(H.focusTarget!==V){S.current=[{...H,focusTarget:V},...S.current.slice(1)],te(lo);return}R()&&w()&&te(lo)},T)},re=(T,V)=>{const H={eventKeys:V,text:T,focusTarget:co()},j=V.length===0?-1:S.current.findIndex(({eventKeys:se})=>Rn(se,V));j>=0?S.current=S.current.map((se,le)=>le===j?H:se):S.current=[...S.current,H],te()},q=(T,V,H)=>{if(T!=="messagesUpdated"||V.length===0)return!1;const j=k.current;return!Rn(j.eventKeys,V)||j.text==null||j.replaceableUntil==null||Date.now()>j.replaceableUntil?!1:H!==j.text};u.useEffect(()=>{const T=z.current!==s;(!n||!m||T)&&(F.current=!1,U.current.clear(),D(),k.current={eventKeys:[],text:null,replaceableUntil:null},M.current.clear(),P(),T&&(z.current=s),!n||!m)||F.current||(F.current=!0,z.current=s,E.current={isClosed:l,isHandedOff:c,inputDisabled:h,inputDisabledBy:g,outgoingMessageStatuses:On(f)},M.current=new Set(a.flatMap(V=>{if(!De.isStreaming(V))return[];const H="sender"in V?V.sender:void 0;return(H==null?void 0:H.userId)===x.current.currentUserId?[]:Zt(V)})),U.current=ld(a))},[t,n,s,m,h,l,c,y]),u.useEffect(()=>b(T=>{if(!F.current||T.kind==="initialized"||!vc(T.source))return;const V=x.current,H=Zr(T.messages,T.messages,V.currentUserId)??Zr(V.messages,T.messages,V.currentUserId);if(!H)return;const j=Zt(H),se=ks(H);if(se!=null){if(U.current.has(se))return;U.current.add(se),t({event:"csatDisplayed"});return}if(De.isStreaming(H)){Zt(H).forEach(X=>{M.current.add(X)});return}const le=j.filter(X=>M.current.has(X)),Oe=T.kind==="messagesUpdated"&&le.length>0;Oe&&le.forEach(X=>{M.current.delete(X)});const Ae=T.kind==="messagesUpdated"&&S.current.some(({eventKeys:X})=>Rn(X,j)),B=io(H,V.stringSet,V.format),Z=q(T.kind,j,B);if(!(!Oe&&T.kind!=="messagesAdded"&&!Ae&&!Z)){if(Oe||L()||Ae){re(B,[...new Set([...le,...j])]);return}w()&&Y(),N(j,B),e(B)}}),[t,e,b]),u.useEffect(()=>{F.current&&(L()||w()&&te())},[g,C]),u.useEffect(()=>()=>{P()},[]),u.useEffect(()=>{if(!F.current)return;const T=E.current,V=T.outgoingMessageStatuses;T.outgoingMessageStatuses=On(f),f.some(({key:j,sendingStatus:se})=>{const le=V.get(j);return le!==void 0&&le!=="failed"&&se==="failed"})&&t({event:"sendFailed"})},[t,y]),u.useEffect(()=>{if(!F.current)return;const T=E.current;l&&!T.isClosed&&t({event:"conversationClosed"}),T.isClosed=l},[t,l]),u.useEffect(()=>{if(!F.current)return;const T=E.current;c&&!T.isHandedOff&&t({event:"agentConnected",agentName:d}),T.isHandedOff=c},[d,t,c]),u.useEffect(()=>{if(!F.current)return;const T=E.current;h&&g!=="ai_responding"&&(!T.inputDisabled||T.inputDisabledBy==="ai_responding")&&t({event:"inputDisabled"}),T.inputDisabled=h,T.inputDisabledBy=g},[t,h,g])},dd=()=>{const{channelSource:e}=he(),t=os(e.channel);return!(t!=null&&t.user.userId)||!t.user.nickname?null:{userId:t.user.userId,nickname:t.user.nickname}},md=e=>{const{announceStatus:t,announcementsActive:n}=ot();Ul(e??null,r=>{t({event:"typing",agentName:r})},1e4,n)},hd=()=>{const e=dd();md(e)},W=({type:e,size:t=24,className:n,color:r})=>{const{icons:o}=tu(),s=o[e];return i.createElement(gd,{className:n},i.createElement(s,{size:t,color:r??p.color.primary.main,flipInRtl:Yc.has(e)}))},gd=_.default.span.attrs({"aria-hidden":"true"})`
|
|
81
|
+
display: inline-flex;
|
|
82
|
+
&:focus {
|
|
83
|
+
outline: none;
|
|
84
|
+
}
|
|
85
|
+
`,fd=.75,Ls=6,pd=Ls*2;let jn=null;typeof Intl<"u"&&"Segmenter"in Intl&&(jn=new Intl.Segmenter(void 0,{granularity:"grapheme"}));const _d=e=>jn?Array.from(jn.segment(e),t=>t.segment):[...e],Ed=e=>{const t=Math.floor(e.length*fd),n=Math.max(0,e.length-Ls);return Math.max(t,n)},uo=(e,t="")=>{if(e.length<pd)return{start:e+t,end:""};const n=_d(e),r=Ed(n);return{start:n.slice(0,r).join(""),end:n.slice(r).join("")+t}},bd=e=>{const t=e.normalize("NFC").trim(),n=t.lastIndexOf(".");if(!(n>0&&n<t.length-1))return uo(t);const o=t.slice(0,n),s=t.slice(n);return uo(o,s)},Ms=({children:e,...t})=>{const{start:n,end:r}=u.useMemo(()=>bd(e),[e]);return r?i.createElement(Cd,null,i.createElement(vd,{...t},n),i.createElement(yd,{...t},r)):i.createElement($,{...t},n)},Cd=_.default.span`display:flex;width:100%;min-width:0;overflow:hidden;direction:inherit;`,vd=_.default($)`overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;`,yd=_.default($)`flex-shrink:0;white-space:nowrap;`,Sd=({id:e,children:t})=>i.createElement(Ad,{id:e},t),Ad=_.default.span`position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;`,Gt=(e,t)=>e!=null&&e.startsWith("image")?t.A11Y_HINT_OPEN_IMAGE:t.A11Y_HINT_OPEN_FILE,zt=({name:e,mimeType:t,selected:n},r)=>{var s;const o=t!=null&&t.startsWith("image")?r.A11Y_FILE_IMAGE(e):t!=null&&t.startsWith("video")?r.A11Y_FILE_VIDEO(e):r.A11Y_FILE_DOCUMENT(e);return n?((s=r.A11Y_FILE_SELECTED)==null?void 0:s.call(r,o))??`${o}, selected`:o},me=(e,t)=>t?{describedByProps:{"aria-describedby":e},descriptionNode:u.createElement(Sd,{id:e,children:t})}:{describedByProps:{},descriptionNode:null},xd=(e,t,n,r)=>{var s;const o=n.trim()||n;return((s=r.A11Y_CSAT_RATING_LABEL)==null?void 0:s.call(r,e,o))??`${e} / ${t} — ${o}`},Wt=e=>t=>{t.repeat||(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),e())},ee=()=>{const{stringSet:e}=Q(),t=u.useId(),n=u.useId(),r=u.useId(),o=u.useId(),s=u.useId(),a=u.useId(),l=u.useId(),c=u.useId(),d=u.useId(),m=u.useId(),h=u.useId(),g=u.useId(),C=u.useId(),b=u.useId(),v=u.useId(),f=u.useId(),y=w=>w===e.A11Y_HINT_OPEN_CONVERSATION?me(t,w):w===e.A11Y_HINT_OPEN_CONVERSATIONS?me(n,w):(w===e.A11Y_HINT_CLOSE_CONVERSATION,me(r,w)),E=me(o,e.A11Y_HINT_OPEN_MENU),x=me(s,e.A11Y_HINT_CLOSE_CONVERSATION),S=me(a,e.A11Y_HINT_CONNECT_TO_AGENT),I=me(l,e.A11Y_HINT_ATTACH_FILE),k=me(c,e.A11Y_HINT_SEND_MESSAGE),M=me(d,e.A11Y_HINT_VIEW_NEW_MESSAGES),U=me(m,e.A11Y_HINT_VIEW_NEW_MESSAGES),F=me(h,e.A11Y_HINT_SEND_REPLY),z=me(g,e.A11Y_HINT_SELECT_RATING),L=me(C,e.A11Y_HINT_SELECT_RATING),P=me(b,e.A11Y_HINT_OPEN_CONVERSATION),N=w=>{const D=Gt(w,e);return w!=null&&w.startsWith("image")?me(f,D):me(v,D)};return{launcher:{button:({isOpened:w,opensConversationList:D})=>{const R=xc({intent:yc({isOpened:w,opensConversationList:D}),strings:{openConversation:e.A11Y_OPEN_CONVERSATION,openConversationList:e.A11Y_OPEN_CONVERSATIONS,closeConversation:e.A11Y_CLOSE_CONVERSATION,closeConversationList:e.A11Y_CLOSE_CONVERSATIONS,hintOpenConversation:e.A11Y_HINT_OPEN_CONVERSATION,hintOpenConversationList:e.A11Y_HINT_OPEN_CONVERSATIONS,hintCloseConversation:e.A11Y_HINT_CLOSE_CONVERSATION}}),Y=y(R.hint);return{props:{"aria-label":R.label,...Y.describedByProps},hint:R.hint,descriptionNode:Y.descriptionNode}}},messenger:{closeButton:{"aria-label":e.A11Y_CLOSE_MESSENGER},expandButton:w=>({"aria-label":w?e.A11Y_COLLAPSE_MESSENGER:e.A11Y_EXPAND_MESSENGER})},conversation:{menuButton:{props:{"aria-label":e.A11Y_MENU,...E.describedByProps},hint:e.A11Y_HINT_OPEN_MENU,descriptionNode:E.descriptionNode},closeConversationButton:{props:{"aria-label":e.A11Y_CLOSE_CONVERSATION,...x.describedByProps},hint:e.A11Y_HINT_CLOSE_CONVERSATION,descriptionNode:x.descriptionNode},handoffButton:{props:{"aria-label":e.A11Y_CONNECT_AGENT,...S.describedByProps},hint:e.A11Y_HINT_CONNECT_TO_AGENT,descriptionNode:S.descriptionNode},headerTitle:w=>({role:"heading","aria-level":2,"aria-label":w,tabIndex:-1}),messageInput:{attachFileButton:{props:{"aria-label":e.A11Y_ATTACH_FILE,...I.describedByProps},hint:e.A11Y_HINT_ATTACH_FILE,descriptionNode:I.descriptionNode},sendButton:{props:{"aria-label":e.A11Y_SEND_MESSAGE,...k.describedByProps},hint:e.A11Y_HINT_SEND_MESSAGE,descriptionNode:k.descriptionNode},textInput:w=>({role:"textbox","aria-label":w})},suggestedReplies:{hint:e.A11Y_HINT_SEND_REPLY,descriptionNode:F.descriptionNode,item:w=>({props:{"aria-label":`${e.A11Y_SUGGESTED_REPLY}, ${w}`,...F.describedByProps}})},feedback:{hint:e.A11Y_HINT_SELECT_RATING,descriptionNode:z.descriptionNode,button:(w,D)=>({props:{"aria-label":w==="good"?e.FEEDBACK_GOOD:e.FEEDBACK_BAD,...z.describedByProps,"aria-pressed":D}}),optionsBottomSheet:{"aria-label":e.A11Y_FEEDBACK_OPTIONS}},newMessagesButton:{props:{"aria-label":e.A11Y_SCROLL_TO_NEW_MESSAGES,...M.describedByProps},hint:e.A11Y_HINT_VIEW_NEW_MESSAGES,descriptionNode:M.descriptionNode},scrollToBottomButton:{props:{"aria-label":e.A11Y_SCROLL_TO_BOTTOM,...U.describedByProps},hint:e.A11Y_HINT_VIEW_NEW_MESSAGES,descriptionNode:U.descriptionNode},startNewConversationButton:({onActivate:w})=>({role:"button",tabIndex:0,"aria-label":e.TALK_TO_AGENT,onClick:w,onKeyDown:Wt(w)}),poweredByLink:{"aria-label":`${e.POWERED_BY} Sendbird`},retryButton:(w=e.RETRY)=>({"aria-label":w}),file:{label:(w,D)=>w?zt({name:w,mimeType:D},e):"",preview:w=>({props:{"aria-label":zt(w,e)}}),interactivePreview:w=>{const D=N(w.mimeType);return{props:{"aria-label":zt(w,e),...D.describedByProps},hint:Gt(w.mimeType,e),descriptionNode:D.descriptionNode}},openDescription:w=>{const D=N(w);return{props:D.describedByProps,hint:Gt(w,e),descriptionNode:D.descriptionNode}},buttonLikeInteractivePreview:({onActivate:w,...D})=>{const R=N(D.mimeType);return{props:{role:"button",tabIndex:0,"aria-label":zt(D,e),...R.describedByProps,onClick:w,onKeyDown:Wt(w)},hint:Gt(D.mimeType,e),descriptionNode:R.descriptionNode}},removeButton:w=>({"aria-label":e.A11Y_FILE_REMOVE_BUTTON(w)})},csat:{scoresContainer:w=>({props:{role:"radiogroup","aria-label":w},descriptionNode:L.descriptionNode}),scoreItem:({score:w,label:D,selected:R,disabled:Y,currentIndex:te,totalCount:re,hasSelection:q,onChange:T})=>({props:{disabled:Y,onClick:()=>T(w),onKeyDown:V=>{var le;if(Y)return;let H=null;switch(V.key){case"ArrowRight":case"ArrowDown":H=(te+1)%re;break;case"ArrowLeft":case"ArrowUp":H=(te-1+re)%re;break;default:return}V.preventDefault(),T(H+1);const j=V.currentTarget.parentElement,se=j==null?void 0:j.querySelectorAll('[role="radio"]');(le=se==null?void 0:se[H])==null||le.focus()},tabIndex:R||!q&&te===0?0:-1,role:"radio","aria-checked":R,"aria-disabled":Y,...L.describedByProps,"aria-label":xd(w,re,D,e)}}),submitButton:w=>({"aria-label":w})},form:{button:w=>({"aria-label":w}),textInput:(w,D,R)=>({"aria-label":w,"aria-required":D,"aria-disabled":R}),numberInput:(w,D,R)=>({"aria-label":w,"aria-required":D,"aria-disabled":R}),singleSelectGroup:w=>({role:"radiogroup",...w?{"aria-label":w}:{}}),singleSelectOption:(w,D,R)=>({role:"radio","aria-label":w,"aria-checked":D,"aria-disabled":R}),multiSelectOption:(w,D,R)=>({"aria-label":w,"aria-pressed":D,"aria-disabled":R})}},conversationList:{footer:{button:({onActivate:w})=>({role:"button",tabIndex:0,"aria-label":e.TALK_TO_AGENT,onClick:w,onKeyDown:Wt(w)})},item:({agent:w,status:D,time:R,unreadCount:Y,onActivate:te})=>{const re=typeof te<"u",q=re?P:{describedByProps:{},descriptionNode:null};return{props:{...re?{role:"button",tabIndex:0,onClick:te,onKeyDown:Wt(te)}:{},...q.describedByProps,"aria-label":e.A11Y_CONVERSATION_ITEM(w,D,R,Y)},hint:re?e.A11Y_HINT_OPEN_CONVERSATION:void 0,descriptionNode:re?q.descriptionNode:void 0}}}}},br=({name:e,mimeType:t,type:n="FILE",iconColor:r,iconBackgroundColor:o,onClick:s,ariaLabel:a})=>{const{colors:l}=O.useTheme(),{conversation:c}=ee(),d=s?c.file.interactivePreview({name:e,mimeType:t}):c.file.preview({name:e,mimeType:t}),m={...d,props:{...d.props,...a?{"aria-label":a}:{}}};return i.createElement(Td,{as:s?"button":"div",type:s?"button":void 0,onClick:s,...m.props,$clickable:!!s},i.createElement(wd,{$bgColor:o??l.base.primary},i.createElement(W,{type:"file-document",size:24,color:r??l.base.primaryContrastContent})),i.createElement(kd,null,i.createElement(Ms,{variant:"button",color:p.themedColor.textHighEmphasis},e),i.createElement($,{color:p.themedColor.textMidEmphasis,variant:"caption3"},n)),m.descriptionNode)},Td=_.default.div`border:none;border-radius:12px;gap:8px;width:${K.BODY_MAX_WIDTH}px;height:64px;display:flex;align-items:center;padding:12px;box-sizing:border-box;border:1px solid ${p.themedColor.textDisabled};background-color:${p.themedColor.bg_50_600};${({$clickable:e})=>e&&Id}`,Id=O.css`cursor:pointer;&:hover{background-color:${p.themedColor.bg_100_500};}`,wd=_.default.div`border-radius:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:${({$bgColor:e})=>e};`,kd=_.default.div`display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;`;function Ld({file:e,children:t,onClickFile:n}){const r=n?()=>n(e):void 0;return i.createElement(Md,null,i.createElement(br,{name:e.name,mimeType:e.type,type:er(e.name,e.type),onClick:r}),t)}const Md=_.default.div`display:flex;flex-direction:column;align-items:flex-start;gap:${K.GAP_GROUPED}px;`,Fe=`${we}-incoming-msg`,Rd=`${we}-marked-text`;function Od({file:e,onClickMedia:t,onClickMediaFiles:n,children:r}){const{conversation:o}=ee(),s=e.type.startsWith("image"),a=(()=>{if(n)return()=>n({files:[{url:e.url,type:e.type,name:e.name}],index:0});if(t)return()=>t(e)})(),l=a?o.file.buttonLikeInteractivePreview({name:e.name,mimeType:e.type,onActivate:a}):o.file.preview({name:e.name,mimeType:e.type}),c=()=>s?i.createElement(Dd,{src:e.url,alt:"image-message"}):e.type.startsWith("video")?i.createElement(Pd,{controls:!0},i.createElement("source",{src:e.url}),i.createElement("track",{kind:"captions"})):null;if(c){const d={id:`${Fe}-media-body`,...l.props};return i.createElement(Nd,null,i.createElement($d,{...d},c(),l.descriptionNode),r)}return null}const Nd=_.default.div`display:flex;flex-direction:column;align-items:flex-start;gap:${K.GAP_GROUPED}px;`,$d=_.default.div`width:${K.BODY_MAX_WIDTH}px;height:160px;border-radius:12px;overflow:hidden;cursor:pointer;${G.light`
|
|
82
86
|
background-color: ${p.color.background100};
|
|
83
87
|
`}
|
|
84
|
-
${
|
|
88
|
+
${G.dark`
|
|
85
89
|
background-color: ${p.color.background400};
|
|
86
90
|
`}
|
|
87
|
-
`,
|
|
91
|
+
`,Dd=_.default.img`width:100%;height:100%;object-fit:cover;`,Pd=_.default.video`width:100%;height:100%;object-fit:cover;`,st=({className:e,children:t,size:n=26})=>i.createElement(Fd,{className:e,$size:n},t??i.createElement(W,{type:"spinner",size:n})),Fd=_.default.div`display:flex;align-items:center;justify-content:center;width:${({$size:e})=>$e(e)};height:${({$size:e})=>$e(e)};animation:1s infinite linear;animation-name:rotate;@keyframes rotate{from{transform:rotate(0);}to{transform:rotate(360deg);}}`,un=3,pn=6,Bd=pn/un,Hd=un,Ud=pn,Vd=e=>{const t=e%un;return{gridColumns:t>0?pn:un,wideBottomCount:t}},Rs=({images:e,isPending:t=!1,onClickImage:n})=>{const{conversation:r}=ee(),o=e.length;if(o===0)return null;const{gridColumns:s,wideBottomCount:a=0}=Vd(o),l=!!n&&!t,c=e.map(C=>C.type??"image/*"),d=c.find(C=>C.startsWith("image")),m=c.find(C=>!C.startsWith("image")),h=l&&d?r.file.openDescription(d):void 0,g=l&&m?r.file.openDescription(m):void 0;return i.createElement(zd,{$width:K.BODY_MAX_WIDTH,$columns:s},e.map((C,b)=>{const v=a>0&&b>=o-a,f=()=>!t&&(n==null?void 0:n(b)),y=C.type??"image/*",E=l?r.file.buttonLikeInteractivePreview({name:C.name||"",mimeType:y,onActivate:f}):r.file.preview({name:C.name||"",mimeType:y});let x=1;return s===pn&&(v?x=a===1?Ud:Hd:x=Bd),i.createElement(Wd,{key:C.url,$clickable:l,$itemSpan:x,$isPending:t,...E.props},i.createElement(Gd,{src:C.url,alt:C.name||""}),t&&i.createElement(qd,null))}),h==null?void 0:h.descriptionNode,g==null?void 0:g.descriptionNode)},Gd=({src:e,alt:t})=>{const[n,r]=u.useState(!1),[o,s]=u.useState(!1);return i.createElement(i.Fragment,null,!n&&!o&&i.createElement(Kd,null,i.createElement(st,{size:20},i.createElement(W,{type:"spinner",color:"textLowEmphasis",size:20}))),o?i.createElement(Yd,null,i.createElement(W,{type:"photo",color:"textLowEmphasis",size:24})):i.createElement(jd,{src:e,alt:t,$loaded:n,onLoad:()=>r(!0),onError:()=>s(!0)}))},zd=_.default.div`display:grid;grid-template-columns:repeat(${({$columns:e})=>e},1fr);width:${({$width:e})=>e}px;gap:2px;border-radius:16px;overflow:hidden;`,Wd=_.default.div`position:relative;width:100%;aspect-ratio:1;overflow:hidden;cursor:${e=>e.$clickable?"pointer":"default"};${G.light`
|
|
88
92
|
background-color: ${p.color.background100};
|
|
89
93
|
`}
|
|
90
|
-
${
|
|
94
|
+
${G.dark`
|
|
91
95
|
background-color: ${p.color.background400};
|
|
92
96
|
`}
|
|
93
97
|
${e=>e.$itemSpan&&e.$itemSpan>1&&`
|
|
@@ -107,19 +111,19 @@
|
|
|
107
111
|
}
|
|
108
112
|
`}
|
|
109
113
|
}
|
|
110
|
-
`,
|
|
114
|
+
`,qd=_.default.div`position:absolute;top:0;left:0;width:100%;height:100%;background-color:${p.color.overlay.dark};pointer-events:none;`,Os=_.default.div`display:flex;align-items:center;justify-content:center;`,Kd=_.default(Os)`position:absolute;inset:0;`,Yd=_.default(Os)`position:absolute;inset:0;${G.light`
|
|
111
115
|
background-color: ${p.color.background200};
|
|
112
116
|
`}
|
|
113
|
-
${
|
|
117
|
+
${G.dark`
|
|
114
118
|
background-color: ${p.color.background500};
|
|
115
119
|
`}
|
|
116
|
-
`,
|
|
120
|
+
`,jd=_.default.img`position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:${({$loaded:e})=>e?1:0};transition:opacity 0.3s ease;`,Xd=({files:e,children:t,onClickMedia:n,onClickMediaFiles:r})=>{const o=s=>{const a=e[s];a&&(r?r({files:e,index:s}):n&&n({url:a.url,type:a.type||"image/*"}))};return i.createElement(Zd,null,i.createElement(Rs,{images:e,onClickImage:o}),t)},Zd=_.default.div`display:flex;flex-direction:column;align-items:flex-start;gap:${K.GAP_GROUPED}px;`,Jd="✱",Ns=e=>{const t=new RegExp(`(\`+)([^\`]+?)\\1|(${Jd}+)`,"g");return e.replace(t,(n,r,o,s)=>r?n:s?`<span id=${Rd} aria-label="masked-text">${s}</span>`:n)},Qd=e=>e.replace(/\*\*(.*?)\*\*/g,"<b>$1</b>"),mo=e=>{var t;return{files:e.fileInfoList.map(n=>({url:n.url,type:n.mimeType??"",name:n.fileName??""})),metadata:{localFiles:(t=e.messageParams)==null?void 0:t.fileInfoList.map(n=>n.file)}}},em=u.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./cjs/D2Opuq0j.cjs"))).MarkdownText})),tm=u.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./cjs/DlvEEpWX.cjs"))).CodeBlock}));function nm(e){var o,s;const t=e.maxBodyWidth??K.BODY_MAX_WIDTH,n=u.useMemo(()=>Pi(e.message,Ns),[e.message]),r={id:`${Fe}-text-body`,$maxWidth:t,$color:(o=e.customStyle)==null?void 0:o.bubbleContentColor,$bgColor:(s=e.customStyle)==null?void 0:s.bubbleBackgroundColor,$surface:e.surface??"bubble"};return n.length===0?e.children?i.createElement(ho,{...r},e.children):null:i.createElement(ho,{...r},n.map((a,l)=>a.type==="text"?i.createElement(go,{key:l,variant:"body3"},i.createElement(ln,{fallback:a.value},i.createElement(em,{onClickImage:c=>{var d;return(d=e.onClickMedia)==null?void 0:d.call(e,{url:c,type:"image/*"})}},a.value))):a.type==="code"?i.createElement(ln,{key:l,fallback:i.createElement(go,{variant:"body3"},a.value)},i.createElement(tm,{code:a.value,language:a.language})):null),e.children)}const ho=_.default.div`display:flex;flex-direction:column;min-width:0;max-width:min(${({$maxWidth:e})=>e}px,100%);${({theme:e,$color:t,$bgColor:n,$surface:r})=>O.css`
|
|
117
121
|
color: ${t||e.colors.messageIncoming.text};
|
|
118
|
-
${r==="bubble"?
|
|
122
|
+
${r==="bubble"?O.css`background-color:${n||e.colors.messageIncoming.background};border-radius:12px;overflow:hidden;padding:12px 0;`:O.css`background-color:transparent;border-radius:0;overflow:visible;padding:0;`}
|
|
119
123
|
`}
|
|
120
124
|
transition: max-width 0.3s;
|
|
121
125
|
overflow-wrap: break-word;
|
|
122
|
-
`,
|
|
126
|
+
`,go=_.default($)`align-items:flex-start;line-height:140%;white-space:pre-wrap;padding:0 12px;`;function $s({id:e,src:t,size:n=56,onClick:r,style:o,...s}){return i.createElement(rm,{id:e,tabIndex:r?0:void 0,onClick:r,$size:$e(n),style:o,...s},t?i.createElement(om,{src:t,alt:""}):i.createElement(W,{type:"user",size:n}))}const rm=_.default.div`border-radius:50%;display:inline-block;overflow:hidden;position:relative;flex-shrink:0;height:${e=>e.$size};width:${e=>e.$size};background-color:${p.themedColor.bg_100_500};&:focus{outline:none;}${_e}`,om=_.default.img`object-fit:cover;width:100%;height:100%;position:absolute;`,sm=({sender:e,isBotMessage:t})=>{const n=`${Fe}-sender-avatar`;return t&&!e.profileUrl?i.createElement(im,{id:n},i.createElement(W,{type:"delight",size:"100%"})):i.createElement($s,{id:n,size:K.AVATAR_SIZE,src:e.profileUrl})},im=_.default.div`flex-shrink:0;width:${K.AVATAR_SIZE}px;height:${K.AVATAR_SIZE}px;box-sizing:border-box;padding:4px;border-radius:50%;display:flex;justify-content:center;align-items:center;background-color:${({theme:e})=>e.colors.base.primary}!important;ellipse,path{fill:${({theme:e})=>e.colors.base.primaryContrastContent}!important;}}`,am=({sender:e})=>i.createElement(lm,{id:`${Fe}-sender-name`,variant:"caption1",color:p.themedColor.textMidEmphasis},e.nickname),lm=_.default($)`text-align:start;width:100%;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-block:5px;padding-inline:0 7px;`,cm=({createdAt:e})=>{const{stringSet:t,format:n}=Q();return e?i.createElement($,{id:`${Fe}-sent-time`,variant:"caption4",color:p.themedColor.textLowEmphasis},n(e,t.DATE_FORMAT__MESSAGE_TIMESTAMP)):null},Ds="(prefers-reduced-motion: reduce)",um=()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia(Ds).matches,Ps=()=>{const[e,t]=u.useState(um);return u.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia(Ds);t(n.matches);const r=o=>{t(o.matches)};return typeof n.addEventListener=="function"?(n.addEventListener("change",r),()=>{n.removeEventListener("change",r)}):(n.addListener(r),()=>{n.removeListener(r)})},[]),e},dm=({thinkingMessage:e,customStyle:t})=>{const n=Ps();return e?i.createElement(gm,{$prefersReducedMotion:n},i.createElement(fm,null,e),!n&&i.createElement(pm,null)):i.createElement(mm,{$bgColor:t==null?void 0:t.bubbleBackgroundColor},[0,1,2].map(r=>i.createElement(hm,{key:r,$color:t==null?void 0:t.bubbleContentColor,$prefersReducedMotion:n})))},mm=_.default.div`align-items:center;border-radius:16px;display:flex;gap:6px;height:26px;justify-content:center;padding:0 12px;background-color:${({theme:e,$bgColor:t})=>t||e.colors.messageIncoming.background};`,hm=_.default.span`animation:${({$prefersReducedMotion:e})=>e?"none":"blink 1.4s infinite"};animation-fill-mode:both;border-radius:50%;height:8px;width:8px;background:${({theme:e,$color:t})=>t||e.colors.messageIncoming.text};opacity:${({$prefersReducedMotion:e})=>e?.38:void 0};@keyframes blink{0%{opacity:0.12;transform:scale(1);}21.43%{opacity:0.38;transform:scale(1.2);}42.86%{opacity:0.12;transform:scale(1);}100%{opacity:0.12;transform:scale(1);}}&:nth-child(1){animation-delay:0.4s;}&:nth-child(2){animation-delay:0.6s;}&:nth-child(3){animation-delay:0.8s;}`,gm=_.default.div.attrs({id:`${Fe}-typing-indicator`})`
|
|
123
127
|
position: relative;
|
|
124
128
|
overflow: hidden;
|
|
125
129
|
animation: ${({$prefersReducedMotion:e})=>e?"none":"fadeIn 0.4s ease-in-out"};
|
|
@@ -131,12 +135,12 @@
|
|
|
131
135
|
opacity: 1;
|
|
132
136
|
}
|
|
133
137
|
}
|
|
134
|
-
`,
|
|
138
|
+
`,fm=_.default($).attrs({variant:"body3"})`
|
|
135
139
|
white-space: pre-wrap;
|
|
136
140
|
word-break: break-word;
|
|
137
141
|
color: ${p.themedColor.textHighEmphasis};
|
|
138
|
-
`,
|
|
139
|
-
`,
|
|
142
|
+
`,pm=_.default.div`position:absolute;inset:0;pointer-events:none;background-size:33% 100%;background-repeat:no-repeat;animation:shimmerSweepLtr 1.6s linear infinite;@keyframes shimmerSweepLtr{from{background-position:-33% 0;}to{background-position:133% 0;}}[dir='rtl'] &{animation-name:shimmerSweepRtl;@keyframes shimmerSweepRtl{from{background-position:133% 0;}to{background-position:-33% 0;}}}background-image:${({theme:e})=>{const t=Fr(e.colors.base.background,.5),n=Fr(e.colors.base.background,0);return`linear-gradient(90deg, ${n} 0%, ${t} 30%, ${t} 60%, ${n} 100%)`}};
|
|
143
|
+
`,_m=({extendedMessagePayload:e,onClickCTA:t=({url:n})=>pr(n)})=>{const n=e==null?void 0:e.cta_button;if(!n)return null;const r=()=>t(n);return i.createElement(Em,{id:`${Fe}-ext-cta-button`,onClick:r},i.createElement(bm,{variant:"button"},n.label))},Em=_.default.button.attrs({type:"button"})`
|
|
140
144
|
all: unset;
|
|
141
145
|
display: flex;
|
|
142
146
|
width: 100%;
|
|
@@ -148,12 +152,12 @@
|
|
|
148
152
|
padding: 8px;
|
|
149
153
|
color: ${p.themedColor.textHighEmphasis};
|
|
150
154
|
background-color: ${p.color.background50};
|
|
151
|
-
${
|
|
155
|
+
${G.dark`
|
|
152
156
|
background-color: ${p.color.ondark.textDisabled};
|
|
153
157
|
`}
|
|
154
158
|
|
|
155
|
-
${
|
|
156
|
-
`,
|
|
159
|
+
${_e}
|
|
160
|
+
`,bm=_.default($)`overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`,Cm=({extendedMessagePayload:e,onClickCitation:t=n=>pr(n.link)})=>{const{stringSet:n}=Q(),{theme:r}=lr(),o=e==null?void 0:e.citations;return!o||o.length===0?null:i.createElement(vm,{id:`${Fe}-ext-citation`},i.createElement(ym,{variant:"caption1",color:r.colors.messageIncoming.text},n.CITATION_SOURCE_TITLE),i.createElement(Sm,null,o.map((s,a)=>i.createElement(xm,{key:`${s.embedding_id}-${a}`,onClick:()=>t(s)},i.createElement(W,{type:"source",size:16,color:r.colors.messageIncoming.text}),i.createElement(Am,{variant:"body3",color:r.colors.messageIncoming.text},s.title)))))},vm=_.default.div`display:flex;flex-direction:column;gap:8px;border-radius:8px;padding:8px 12px 6px;`,ym=_.default($)`opacity:0.5;`,Sm=_.default.div`display:flex;flex-direction:column;gap:8px;`,Am=_.default($)`text-decoration:underline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`,xm=_.default.button.attrs({type:"button"})`
|
|
157
161
|
background: none;
|
|
158
162
|
border: none;
|
|
159
163
|
padding: 0;
|
|
@@ -168,133 +172,127 @@
|
|
|
168
172
|
&:hover {
|
|
169
173
|
opacity: 0.5;
|
|
170
174
|
}
|
|
171
|
-
`,
|
|
172
|
-
|
|
175
|
+
`,Tm=e=>i.createElement(i.Fragment,null),Im=({visible:e,onClose:t,children:n,"aria-label":r})=>i.createElement(ft,{rootElementId:ce.WINDOW,visible:e,onClose:t,"aria-label":r},i.createElement(Mm,null,n)),wm=({onClick:e,destructive:t,icon:n,initialFocus:r,children:o})=>i.createElement(km,{onClick:e,$destructive:t,"data-sb-initial-focus":r?"true":void 0},n&&i.createElement(Lm,null,i.createElement(W,{type:n,size:24,color:p.themedColor.primary})),o),Ke=Object.assign(Im,{ActionItem:wm}),km=_.default.button`all:unset;display:flex;align-items:center;gap:24px;width:100%;padding:12px 24px;cursor:pointer;color:${({$destructive:e})=>e?p.themedColor.error:p.themedColor.textHighEmphasis};${_e}`,Lm=_.default.div`display:flex;align-items:center;justify-content:center;flex-shrink:0;`,Mm=_.default.div`position:absolute;left:0;right:0;bottom:0;border-radius:12px 12px 0 0;flex-direction:column;align-items:flex-end;margin:0 auto;box-sizing:border-box;background-color:${({theme:e})=>e.colors.base.modalContentBackground};`,Xn=e=>`${e}-filled`,Rm=e=>e==="good"?be.AIAgentMessageFeedbackRating.GOOD:be.AIAgentMessageFeedbackRating.BAD,Cr=O.css`&:hover{opacity:0.8;}&:active{opacity:0.6;}`,qt={good:{onlight:p.color.secondary.dark,ondark:p.color.secondary.light},bad:{onlight:p.color.error.dark,ondark:p.color.error.light}},Om={good:p.themedColor.secondary,bad:p.themedColor.error},Fs=e=>O.css`color:${qt[e].onlight};border-color:${qt[e].onlight};${G.dark`
|
|
176
|
+
color: ${qt[e].ondark};
|
|
177
|
+
border-color: ${qt[e].ondark};
|
|
173
178
|
`}
|
|
174
|
-
|
|
175
|
-
&:hover {
|
|
176
|
-
opacity: 0.8;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
&:active {
|
|
180
|
-
opacity: 0.6;
|
|
181
|
-
}
|
|
182
|
-
`,Om=_.default.div`display:flex;flex-direction:column;gap:6px;`,Rm=_.default.textarea`font-family:inherit;font-size:12px;line-height:16px;border:1px solid ${p.themedColor.textDisabled};border-radius:4px;padding:6px 12px;color:${p.themedColor.textHighEmphasis};background-color:${p.themedColor.textLowEmphasisInverse};resize:none;field-sizing:content;min-height:28px;max-height:118px;overflow-y:auto;&::placeholder{color:${p.themedColor.textLowEmphasis};}&:focus{outline:none;}${({$focusVisible:e})=>e&&R.css`
|
|
179
|
+
`,Nm=({visible:e,onClose:t,isEdit:n,initialRating:r,initialComment:o="",onSubmit:s,isCommentEnabled:a=!1})=>{const{stringSet:l}=Q(),{rootElement:c}=gr(),d=He(c),[m,h]=u.useState(r),[g,C]=u.useState(o),[b,v]=u.useState(!1),f=u.useRef(!1),y=m??r??"good";u.useLayoutEffect(()=>{e?(h(r),C(o)):(h(void 0),C(""))},[e,r,o]),u.useEffect(()=>{if(!e)return;const S=k=>{const M=k;M.metaKey||M.altKey||M.ctrlKey||(f.current=!0)},I=()=>{f.current=!1,v(!1)};return d.addEventListener("keydown",S),d.addEventListener("pointerdown",I),()=>{d.removeEventListener("keydown",S),d.removeEventListener("pointerdown",I)}},[d,e]);const E=()=>{m&&(s({rating:m,comment:g.trim()||void 0}),t())},x=()=>{t()};return e?i.createElement(ft,{rootElementId:ce.WINDOW,visible:e,onClose:x,"aria-label":l.FEEDBACK_TITLE},i.createElement($m,null,i.createElement(Dm,null,i.createElement($,{variant:"h2",color:p.themedColor.textHighEmphasis},l.FEEDBACK_TITLE)),i.createElement(Pm,null,i.createElement(Fm,null,["good","bad"].map(S=>{const I=m===S,k=S==="good"?l.FEEDBACK_GOOD:l.FEEDBACK_BAD;return i.createElement(Bm,{key:S,$selected:I,$rating:S,onClick:()=>h(S),"data-sb-initial-focus":S===y?"true":void 0},i.createElement(W,{type:I?Xn(S):S,size:24,color:"currentColor"}),i.createElement($,{variant:"caption1",color:"currentColor"},k))})),a&&i.createElement(Hm,null,i.createElement($,{variant:"caption3",color:p.themedColor.textHighEmphasis},l.FEEDBACK_COMMENT_LABEL),i.createElement(Um,{placeholder:l.FEEDBACK_COMMENT_PLACEHOLDER,value:g,onChange:S=>C(S.target.value),onFocus:()=>v(f.current),onBlur:()=>v(!1),maxLength:100,$focusVisible:b,"data-focus-visible":b?"true":"false"}))),i.createElement(Vm,null,i.createElement(Gm,{onClick:x},i.createElement($,{variant:"button",color:p.themedColor.textHighEmphasis},l.FEEDBACK_CANCEL)),i.createElement(zm,{onClick:E,disabled:!m},i.createElement($,{variant:"button"},n?l.FEEDBACK_SAVE:l.FEEDBACK_SUBMIT))))):null},$m=_.default.div`width:280px;background-color:${({theme:e})=>e.colors.base.modalContentBackground};border-radius:12px;overflow:hidden;`,Dm=_.default.div`padding:24px;`,Pm=_.default.div`padding-inline:24px;display:flex;flex-direction:column;gap:24px;`,Fm=_.default.div`display:flex;gap:4px;`,Bm=_.default.button`width:114px;height:64px;border-radius:12px;border:1px solid ${p.themedColor.textDisabled};box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;gap:0;transition:background-color 0.2s;color:${p.themedColor.textLowEmphasis};background-color:transparent;${({$selected:e,$rating:t})=>e&&Fs(t)}${Cr}`,Hm=_.default.div`display:flex;flex-direction:column;gap:6px;`,Um=_.default.textarea`font-family:inherit;font-size:12px;line-height:16px;border:1px solid ${p.themedColor.textDisabled};border-radius:4px;padding:6px 12px;color:${p.themedColor.textHighEmphasis};background-color:${p.themedColor.textLowEmphasisInverse};resize:none;field-sizing:content;min-height:28px;max-height:118px;overflow-y:auto;&::placeholder{color:${p.themedColor.textLowEmphasis};}&:focus{outline:none;}${({$focusVisible:e})=>e&&O.css`
|
|
183
180
|
outline: 2px solid ${p.themedColor.primary};
|
|
184
181
|
outline-offset: 2px;
|
|
185
182
|
`}
|
|
186
|
-
`,
|
|
183
|
+
`,Vm=_.default.div`padding-inline:24px;padding-block:16px;display:flex;justify-content:flex-end;gap:4px;`,Bs=_.default.button`width:86px;height:40px;border-radius:20px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity 0.2s;`,Gm=_.default(Bs)`background-color:transparent;${Cr}`,zm=_.default(Bs)`cursor:${({disabled:e})=>e?"not-allowed":"pointer"};opacity:${({disabled:e})=>e?.4:1};&:hover:not(:disabled){opacity:0.8;}&:active:not(:disabled){opacity:0.6;}background-color:${({theme:e})=>e.colors.base.primary};span{color:${({theme:e})=>e.colors.base.primaryContrastContent};}`,Wm=({isBotMessage:e,isConversationClosed:t,isStreaming:n,isFeedbackEnabled:r,isFeedbackCommentEnabled:o,extendedMessagePayload:s,onFeedbackUpdate:a})=>{const{stringSet:l}=Q(),{conversation:c}=ee(),[d,m]=u.useState(!1),[h,g]=u.useState(!1),[C,b]=u.useState(void 0),[v,f]=u.useState(""),y=u.useRef(null),E=u.useRef(null),x=u.useRef(null),S=u.useRef(!1),I=c.feedback,k=s==null?void 0:s.feedback,M=(k==null?void 0:k.rating)??"none";if(M!=="none"?!1:!!(n||!e||!r||(s==null?void 0:s.bot_message_type)!=="generated"||t))return null;const F=R=>{R&&ve(()=>{const Y=R==="good"?y.current:E.current;Y==null||Y.focus()})},z=({restoreTrigger:R=!0}={})=>{g(!1),R&&F(x.current)},L=R=>{M==="none"?(b(R),f(""),m(!0)):(x.current=R,g(!0))},P=()=>{a==null||a(null),z()},N=()=>{S.current=!0,z({restoreTrigger:!1}),b(k==null?void 0:k.rating),f((k==null?void 0:k.comment)??""),m(!0)},w=R=>{S.current=!1,a==null||a(R),m(!1),F(x.current)},D=()=>{m(!1),S.current&&(S.current=!1,g(!0))};return t&&M!=="none"?i.createElement(fo,{role:"presentation",$horizontal:!0},i.createElement(qm,null,i.createElement(W,{type:Xn(M),size:12,color:Om[M]})),(k==null?void 0:k.comment)&&i.createElement(po,{variant:"caption2",style:{lineHeight:"16px"}},k.comment)):i.createElement(i.Fragment,null,i.createElement(fo,{role:"presentation"},i.createElement(Km,{role:"presentation"},["good","bad"].map(R=>{const Y=M===R,te=I.button(R,Y);return i.createElement(Ym,{key:R,$selected:Y,$rating:R,ref:R==="good"?y:E,...te.props,onClick:()=>L(R)},i.createElement(W,{type:Y?Xn(R):R,size:14,color:"currentColor"}))})),I.descriptionNode,M!=="none"&&(k==null?void 0:k.comment)&&i.createElement(po,{variant:"caption2"},k.comment)),i.createElement(Ke,{visible:h,onClose:z,...I.optionsBottomSheet},i.createElement(Ke.ActionItem,{onClick:N,initialFocus:!0},l.FEEDBACK_EDIT),i.createElement(Ke.ActionItem,{onClick:P,destructive:!0},l.FEEDBACK_REMOVE)),i.createElement(Nm,{visible:d,onClose:D,isEdit:M!=="none",initialRating:C,initialComment:v,onSubmit:w,isCommentEnabled:o}))},fo=_.default.div`display:flex;flex-direction:${({$horizontal:e})=>e?"row":"column"};align-items:${({$horizontal:e})=>e?"flex-start":"stretch"};gap:4px;margin-top:8px;word-break:break-word;max-width:${K.BODY_MAX_WIDTH}px;`,qm=_.default.div`padding:2px;flex-shrink:0;display:flex;align-items:center;`,Km=_.default.div`display:flex;gap:2px;`,Ym=_.default.button`width:38px;height:20px;border-radius:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:opacity 0.2s;box-sizing:border-box;color:${p.themedColor.textMidEmphasis};border:1px solid ${p.color.background200};background-color:transparent;${G.dark`
|
|
187
184
|
border: 1px solid ${p.color.background400};
|
|
188
|
-
background-color: ${e?p.color.background500:"transparent"};
|
|
189
185
|
`}
|
|
190
186
|
|
|
191
|
-
${
|
|
192
|
-
|
|
187
|
+
${({$selected:e,$rating:t})=>e&&Fs(t)}
|
|
188
|
+
|
|
189
|
+
${Cr}
|
|
190
|
+
`,po=_.default($)`color:${p.themedColor.textMidEmphasis};${G.dark`
|
|
193
191
|
color: ${p.themedColor.textHighEmphasis};
|
|
194
192
|
`}
|
|
195
|
-
`,
|
|
193
|
+
`,vr=O.css`width:100%;height:36px;border-radius:6px;cursor:pointer;transition:all 0.2s ease;padding:0 12px;border:none;outline:none;display:flex;align-items:center;justify-content:center;${_e}&:disabled{cursor:not-allowed;}`,_o=_.default.button`${vr};background-color:${p.themedColor.primary};color:${p.themedColor.textHighEmphasis};&:hover:not(:disabled){opacity:0.9;}`,jm=_.default.button`${vr};color:${p.themedColor.primary};${G.light`
|
|
196
194
|
background-color: ${p.color.background50};
|
|
197
195
|
`};
|
|
198
|
-
${
|
|
196
|
+
${G.dark`
|
|
199
197
|
background-color: ${p.color.background700};
|
|
200
198
|
`};
|
|
201
199
|
|
|
202
200
|
&:hover:not(:disabled) {
|
|
203
201
|
opacity: 0.9;
|
|
204
202
|
}
|
|
205
|
-
`,
|
|
203
|
+
`,Xm=_.default.button`${vr};background-color:transparent;color:${p.themedColor.textHighEmphasis};&:hover:not(:disabled){opacity:0.7;}`,Zm=e=>{switch(e){case"primary":return _o;case"secondary":return jm;case"clear":return Xm;default:return _o}},Jm=_.default.div`animation:1s infinite linear;animation-name:rotate;display:flex;align-items:center;justify-content:center;@keyframes rotate{from{transform:rotate(0);}to{transform:rotate(360deg);}}`,Qm=({children:e,onClick:t,variant:n="primary",disabled:r=!1,loading:o=!1,className:s,ariaLabel:a})=>{const l=()=>{switch(n){case"primary":return p.themedColor.textHighEmphasisInverse;case"secondary":return p.themedColor.primary;case"clear":return p.themedColor.textHighEmphasis;default:return p.themedColor.textHighEmphasisInverse}},c=Zm(n);return i.createElement(c,{onClick:t,disabled:r||o,className:s,"aria-label":a},o?i.createElement(Jm,null,i.createElement(W,{type:"spinner",size:22,color:l()})):i.createElement($,{variant:"button",color:l()},e))},eh=({children:e,className:t,style:n,id:r,role:o})=>i.createElement($,{variant:"caption4",color:p.themedColor.error,className:t,style:n,id:r,role:o},e),th=({id:e,children:t,className:n,style:r,required:o,ariaHidden:s=!1,"aria-hidden":a})=>{const{stringSet:l}=Q();return i.createElement($,{id:e,variant:"caption3",color:p.themedColor.textMidEmphasis,className:n,style:r,"aria-hidden":a??s},t,!o&&i.createElement("span",{style:{color:p.themedColor.textLowEmphasis}},` (${l.OPTIONAL})`))},nh=({value:e,onChange:t,placeholder:n,error:r=!1,submitted:o=!1,className:s,disabled:a=!1,max:l,ariaLabel:c,required:d=!1})=>{const m=g=>{const b=g.target.value.replace(/[^0-9.-]/g,""),v=b.split("."),y=v.length>1?v[0]+"."+v.slice(1).join("").replace(/\./g,""):b;if(g.target.value=y,y===""||y==="-")t==null||t(null);else{const E=Number(y);if(!isNaN(E)){if(l!==void 0&&E>l)return;t==null||t(E)}}},h=e==null?"":String(e);return i.createElement(ah,{type:"text",value:h,onChange:m,placeholder:n,className:s,disabled:a||o,inputMode:"decimal","aria-label":c,"aria-required":d,"aria-disabled":a||o,$error:r,$submitted:o})},rh=O.css`width:100%;height:36px;padding:8px 12px;border-radius:6px;font-size:14px;font-weight:400;line-height:1.43;outline:none;transition:all 0.2s ease;${_e}&::placeholder{color:${p.themedColor.textLowEmphasis};}&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}`,oh=O.css`color:${p.themedColor.textHighEmphasis};border:1px solid transparent;cursor:not-allowed;${G.light`
|
|
206
204
|
background-color: ${p.color.ondark.textMidEmphasis};
|
|
207
205
|
`}
|
|
208
|
-
${
|
|
206
|
+
${G.dark`
|
|
209
207
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
210
208
|
`}
|
|
211
209
|
|
|
212
210
|
&::placeholder {
|
|
213
211
|
color: ${p.themedColor.textLowEmphasis};
|
|
214
212
|
}
|
|
215
|
-
`,
|
|
213
|
+
`,sh=O.css`border:1px solid ${p.themedColor.error};color:${p.themedColor.textHighEmphasis};${G.light`
|
|
216
214
|
background-color: ${p.color.background50};
|
|
217
215
|
`}
|
|
218
|
-
${
|
|
216
|
+
${G.dark`
|
|
219
217
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
220
218
|
`}
|
|
221
|
-
`,
|
|
219
|
+
`,ih=O.css`border:1px solid ${p.themedColor.textDisabled};color:${p.themedColor.textHighEmphasis};${G.light`
|
|
222
220
|
background-color: ${p.color.background50};
|
|
223
221
|
`}
|
|
224
|
-
${
|
|
222
|
+
${G.dark`
|
|
225
223
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
226
224
|
`}
|
|
227
225
|
|
|
228
226
|
&:focus {
|
|
229
227
|
border-color: ${p.themedColor.primary};
|
|
230
228
|
}
|
|
231
|
-
`,
|
|
229
|
+
`,ah=_.default.input`${rh}${({$error:e,$submitted:t})=>t?oh:e?sh:ih}`,lh=e=>{if(e.multiple){const{value:t=[],onChange:n,maxSelect:r,submitted:o=!1}=e;return{selectedValues:t,handleOptionClick:a=>{if(o)return;if(t.includes(a)){const c=t.filter(d=>d!==a);n==null||n(c)}else{if(r&&t.length>=r)return;const c=[...t,a];n==null||n(c)}}}}else{const{value:t,onChange:n,submitted:r=!1}=e;return{selectedValues:t?[t]:[],handleOptionClick:s=>{r||t!==s&&(n==null||n(s))}}}},Hs=e=>{const{options:t,submitted:n=!1,error:r=!1,className:o,groupLabel:s}=e,{conversation:a}=ee(),l=e.multiple===!0,{selectedValues:c,handleOptionClick:d}=lh(e),m=l?void 0:a.form.singleSelectGroup(s),h=u.useRef([]),g=l?-1:Math.max(t.findIndex(b=>c.includes(b.value)),0),C=(b,v)=>{var E;if(l||n)return;let f=null;switch(b.key){case"ArrowRight":case"ArrowDown":f=(v+1)%t.length;break;case"ArrowLeft":case"ArrowUp":f=(v-1+t.length)%t.length;break;default:return}b.preventDefault();const y=t[f];y&&(d(y.value),(E=h.current[f])==null||E.focus())};return i.createElement(uh,{className:o,...m},t.map((b,v)=>{const f=c.includes(b.value),y=s?`${s}, ${b.label}`:b.label,E=l?a.form.multiSelectOption(y,f,n):a.form.singleSelectOption(y,f,n);return i.createElement(_h,{key:b.value,ref:x=>{h.current[v]=x},type:"button",$active:f,$submitted:n,$error:r,...E,disabled:n,onClick:()=>d(b.value),onKeyDown:x=>C(x,v),tabIndex:l?void 0:v===g?0:-1},i.createElement($,{variant:"caption1",color:ch(f,n)},b.label))}))},ch=(e,t)=>t?e?p.themedColor.textHighEmphasis:p.themedColor.textDisabled:e?p.themedColor.primary:p.themedColor.textMidEmphasis,uh=_.default.div`display:flex;flex-wrap:wrap;gap:4px 2px;`,dh=O.css`display:inline-flex;align-items:center;padding:8px 12px;border-radius:15px;transition:all 0.2s ease;`,mh=O.css`cursor:default;background-color:${p.color.ondark.textMidEmphasis};color:${p.themedColor.textHighEmphasis};${G.dark`
|
|
232
230
|
background-color: transparent;
|
|
233
231
|
border: 1px solid white;
|
|
234
232
|
color: white;
|
|
235
233
|
`}
|
|
236
|
-
`,
|
|
234
|
+
`,hh=O.css`cursor:default;${G.light`
|
|
237
235
|
background-color: ${p.color.ondark.textMidEmphasis};
|
|
238
236
|
color: ${p.themedColor.textDisabled};
|
|
239
237
|
`}
|
|
240
|
-
${
|
|
238
|
+
${G.dark`
|
|
241
239
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
242
240
|
border: 1px solid ${p.color.onlight.textLowEmphasis};
|
|
243
241
|
color: ${p.themedColor.textDisabled};
|
|
244
242
|
`}
|
|
245
|
-
`,
|
|
243
|
+
`,gh=O.css`cursor:pointer;border:1px solid ${p.themedColor.primary};${G.light`
|
|
246
244
|
background-color: ${p.color.background50};
|
|
247
245
|
color: ${p.themedColor.primary};
|
|
248
246
|
`}
|
|
249
|
-
${
|
|
247
|
+
${G.dark`
|
|
250
248
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
251
249
|
color: ${p.themedColor.primary};
|
|
252
250
|
`}
|
|
253
|
-
`,
|
|
251
|
+
`,fh=O.css`cursor:pointer;border:1px solid ${p.themedColor.textDisabled};${G.light`
|
|
254
252
|
background-color: ${p.color.background50};
|
|
255
253
|
color: ${p.themedColor.textMidEmphasis};
|
|
256
254
|
`}
|
|
257
|
-
${
|
|
255
|
+
${G.dark`
|
|
258
256
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
259
257
|
color: ${p.themedColor.textMidEmphasis};
|
|
260
258
|
`}
|
|
261
|
-
`,
|
|
262
|
-
${r} ${
|
|
259
|
+
`,ph=O.css`border-color:${p.themedColor.error}!important;`,_h=_.default.button`${dh}${({$active:e,$submitted:t,$error:n})=>{if(t)return e?mh:hh;const r=e?gh:fh;return n?O.css`
|
|
260
|
+
${r} ${ph}
|
|
263
261
|
`:r}}
|
|
264
|
-
`,
|
|
262
|
+
`,Eh=e=>i.createElement(Hs,{...e,multiple:!1}),bh=e=>i.createElement(Hs,{...e,multiple:!0}),Ch=_.default.div`width:100%;height:1px;background-color:${p.themedColor.textDisabled};`,vh=({className:e})=>i.createElement(Ch,{className:e}),yh=({id:e,value:t="",onChange:n,placeholder:r,variant:o="single-line",error:s=!1,submitted:a=!1,className:l,disabled:c=!1,maxLength:d,ariaLabel:m,required:h=!1,ariaInvalid:g=!1,ariaErrorMessage:C,"aria-label":b,"aria-required":v,"aria-invalid":f,"aria-errormessage":y,"aria-disabled":E})=>{const S={id:e,value:t,onChange:I=>{const k=I.target.value;d&&k.length>d||n==null||n(k)},placeholder:r,className:l,disabled:c||a,maxLength:d,"aria-label":b??m,"aria-required":v??h,"aria-disabled":E??(c||a),"aria-invalid":f??g,"aria-errormessage":y??C,$error:s,$submitted:a};return o==="multi-line"?i.createElement(Ah,{...S}):i.createElement(Sh,{...S})},Us=O.css`width:100%;padding:8px 12px;border-radius:6px;font-size:14px;font-weight:400;line-height:1.43;outline:none;transition:all 0.2s ease;${_e}&::placeholder{color:${p.themedColor.textLowEmphasis};}`,Vs=O.css`color:${p.themedColor.textHighEmphasis};border:1px solid transparent;cursor:not-allowed;${G.light`
|
|
265
263
|
background-color: ${p.color.ondark.textMidEmphasis};
|
|
266
264
|
`}
|
|
267
|
-
${
|
|
265
|
+
${G.dark`
|
|
268
266
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
269
267
|
`}
|
|
270
268
|
|
|
271
269
|
&::placeholder {
|
|
272
270
|
color: ${p.themedColor.textLowEmphasis};
|
|
273
271
|
}
|
|
274
|
-
`,
|
|
272
|
+
`,Gs=O.css`border:1px solid ${p.themedColor.error};color:${p.themedColor.textHighEmphasis};${G.light`
|
|
275
273
|
background-color: ${p.color.background50};
|
|
276
274
|
`}
|
|
277
|
-
${
|
|
275
|
+
${G.dark`
|
|
278
276
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
279
277
|
`}
|
|
280
|
-
`,
|
|
278
|
+
`,zs=O.css`border:1px solid ${p.themedColor.textDisabled};color:${p.themedColor.textHighEmphasis};${G.light`
|
|
281
279
|
background-color: ${p.color.background50};
|
|
282
280
|
`}
|
|
283
|
-
${
|
|
281
|
+
${G.dark`
|
|
284
282
|
background-color: ${p.color.onlight.textLowEmphasis};
|
|
285
283
|
`}
|
|
286
284
|
|
|
287
285
|
&:focus {
|
|
288
286
|
border-color: ${p.themedColor.primary};
|
|
289
287
|
}
|
|
290
|
-
`,
|
|
288
|
+
`,Sh=_.default.input`${Us};height:36px;${({$error:e,$submitted:t})=>t?Vs:e?Gs:zs}`,Ah=_.default.textarea`${Us};height:96px;resize:none;font-family:inherit;${({$error:e,$submitted:t})=>t?Vs:e?Gs:zs}`,xh=({children:e,className:t,style:n})=>i.createElement($,{variant:"button",color:p.themedColor.textHighEmphasis,className:t,style:n},e),fe={Title:xh,Label:th,ErrorLabel:eh,Separator:vh,Button:Qm,TextInput:yh,NumberInput:nh,SingleSelect:Eh,MultiSelect:bh},Th=1,Ih=new Set(["text","number","single-select","multi-select"]),wh=e=>{var y;const t=(y=e.extendedMessagePayload)==null?void 0:y.form;if(!t)throw new Error("Form is not provided");const{stringSet:n}=Q(),{conversation:r}=ee(),[o,s]=u.useState({submitting:!1,canceling:!1}),[a,l]=u.useState({visible:!1}),{state:c,fields:d,submit:m,cancel:h,updateFieldValue:g}=Pl(t,{labels:{required:n.FORM_VALIDATION_REQUIRED,regex:n.FORM_VALIDATION_REGEX_FAILED,minLength:n.FORM_VALIDATION_MIN_LENGTH,maxLength:n.FORM_VALIDATION_MAX_LENGTH,min:n.FORM_VALIDATION_MIN,max:n.FORM_VALIDATION_MAX,minSelect:n.FORM_VALIDATION_MIN_SELECT,maxSelect:n.FORM_VALIDATION_MAX_SELECT},onSubmit:E=>{var x;return(x=e.onSubmitForm)==null?void 0:x.call(e,{key:t.key,data:E})},onCancel:()=>{var E;return(E=e.onCancelForm)==null?void 0:E.call(e,{key:t.key})}}),C=c==="submitted",b=async()=>{s(E=>({...E,submitting:!0}));try{await m()}catch(E){l({visible:!0,description:E instanceof Error?E.message:n.TRY_AGAIN})}finally{s(E=>({...E,submitting:!1}))}},v=async()=>{s(E=>({...E,canceling:!0}));try{await h()}catch(E){l({visible:!0,description:E instanceof Error?E.message:n.TRY_AGAIN})}finally{s(E=>({...E,canceling:!1}))}},f=u.useMemo(()=>{const E=()=>t.version>Th,x=()=>t.fields.some(S=>!Ih.has(S.type));return E()||x()?{visible:!1,cancelable:!0,reason:n.FORM_NOT_SUPPORTED}:c==="draft"&&(e.isHandedOff||e.isConversationClosed)?{visible:!1,cancelable:!1,reason:n.FORM_UNAVAILABLE}:{visible:!0,cancelable:!0,reason:""}},[t.version,t.fields,c,e.isHandedOff,e.isConversationClosed]);return c==="canceled"?null:f.visible?i.createElement(u.Fragment,null,i.createElement(Eo,{$maxWidth:e.maxBodyWidth??K.BODY_MAX_WIDTH},i.createElement(fe.Title,null,t.title),i.createElement(kh,null,d.map(E=>i.createElement(Lh,{key:E.key},i.createElement(fe.Label,{style:{marginBottom:"6px"},required:E.required},E.label),E.type==="text"&&i.createElement(fe.TextInput,{value:E.value||"",placeholder:E.placeholder,onChange:x=>g(E.key,x),disabled:C,error:!!E.error,submitted:C,variant:E.layout==="multiline"?"multi-line":"single-line",maxLength:E.maxLength,ariaLabel:E.label,required:E.required}),E.type==="number"&&i.createElement(fe.NumberInput,{value:E.value||null,placeholder:E.placeholder,onChange:x=>g(E.key,x),disabled:C,error:!!E.error,submitted:C,max:E.max,ariaLabel:E.label,required:E.required}),E.type==="single-select"&&i.createElement(fe.SingleSelect,{options:E.options.map(x=>({label:x,value:x})),value:E.value||"",onChange:x=>g(E.key,x),submitted:C,groupLabel:E.label}),E.type==="multi-select"&&i.createElement(fe.MultiSelect,{options:E.options.map(x=>({label:x,value:x})),value:E.value||[],onChange:x=>g(E.key,x),submitted:C,maxSelect:E.maxSelect,groupLabel:E.label}),E.error&&i.createElement(fe.ErrorLabel,{style:{marginTop:"4px"}},E.error)))),i.createElement(fe.Separator,null),i.createElement(Mh,null,i.createElement(fe.Button,{variant:C?"clear":"primary",ariaLabel:r.form.button(C?n.SUBMITTED:n.BUTTON__SUBMIT)["aria-label"],onClick:b,disabled:C||o.canceling,loading:o.submitting},C?n.SUBMITTED:n.BUTTON__SUBMIT),c!=="submitted"&&i.createElement(fe.Button,{variant:"secondary",ariaLabel:r.form.button(n.BUTTON__CANCEL)["aria-label"],onClick:v,disabled:o.submitting,loading:o.canceling},n.BUTTON__CANCEL))),i.createElement(_r,{...a,onClose:()=>l({visible:!1,title:""})})):i.createElement(Eo,{$maxWidth:e.maxBodyWidth??K.BODY_MAX_WIDTH},i.createElement($,{variant:"body3"},f.reason),f.cancelable&&i.createElement(fe.Button,{variant:"primary",ariaLabel:r.form.button(n.BUTTON__CANCEL)["aria-label"],onClick:v,loading:o.canceling},n.BUTTON__CANCEL))},Eo=_.default.div`display:flex;flex-direction:column;gap:12px;border-radius:12px;overflow:hidden;max-width:${({$maxWidth:e})=>e}px;${({theme:e})=>O.css`
|
|
291
289
|
color: ${e.colors.messageIncoming.text};
|
|
292
290
|
background-color: ${e.colors.messageIncoming.background};
|
|
293
291
|
`}
|
|
294
292
|
padding: 16px 12px;
|
|
295
293
|
transition: max-width 0.3s;
|
|
296
294
|
overflow-wrap: break-word;
|
|
297
|
-
`,
|
|
295
|
+
`,kh=_.default.div`display:flex;flex-direction:column;gap:12px;`,Lh=_.default.div`display:flex;flex-direction:column;`,Mh=_.default.div`display:flex;flex-direction:column;gap:8px;`,Rh=e=>i.createElement(i.Fragment,null),Oh=new Set(["default"]),{MessageTemplate:Nh}=wi.createMessageTemplate({parser:Bn.parser,renderer:Bn.renderer,Container:e=>i.createElement("div",{...e})}),$h=e=>i.createElement(ln,{errorFallback:e.messageTemplateErrorFallback,loadingFallback:e.messageTemplateLoadingFallback},i.createElement(Dh,{...e})),Dh=({extendedMessagePayload:e,onGetCachedMessageTemplate:t=()=>null,onRequestMessageTemplate:n,onHandleTemplateInternalAction:r=oe})=>{const o=e==null?void 0:e.message_template;if(!Oh.has((o==null?void 0:o.type)??"default"))throw new Error("Unsupported template type");if(!n)throw new Error("onRequestMessageTemplate is required");const a=o==null?void 0:o.key;if(!a)throw new Error("Template key is missing");const{theme:l}=gr(),c=Il({onRequestTemplate:n,onGetCachedTemplate:t,theme:l.selectedTheme,templateKey:a,variables:o==null?void 0:o.variables,viewVariables:o==null?void 0:o.view_variables,aiAgentColorVariables:l.aiAgentColorVariables});return i.createElement(Ph,{id:`${Fe}-ext-message-template`},i.createElement(Bn.MessageProvider,{handleInternalAction:(d,m)=>{d.stopPropagation(),r==null||r(m)}},i.createElement(Nh,{templateItems:c.body.items,templateVersion:c.version})))},Ph=_.default.div`box-sizing:border-box;overflow:hidden;width:100%;`,Fh=({extendedMessagePayload:e,onClickSuggestedReply:t,suggestedRepliesDirection:n="vertical"})=>{const{conversation:r}=ee(),[o,s]=u.useState(!1),{suggestedReplies:a}=r,l=(e==null?void 0:e.suggested_replies)??[];if(l.length===0||o)return null;const c=d=>{t&&(t({reply:d}),s(!0))};return i.createElement(Bh,{id:`${Fe}-ext-suggested-replies`,role:"presentation",$type:n},l.map((d,m)=>{const h=a.item(d);return i.createElement(Hh,{key:m,$type:n,...h.props,onClick:()=>c(d)},i.createElement(Uh,{variant:"body3"},d))}),a.descriptionNode)},Bh=_.default.div`margin:16px 0;padding:0 ${K.HORIZONTAL_PADDING}px;position:relative;display:flex;align-self:stretch;gap:8px;${({$type:e})=>e==="vertical"?Vh:Gh};`,Hh=_.default.button.attrs({type:"button"})`
|
|
298
296
|
all: unset;
|
|
299
297
|
box-sizing: border-box;
|
|
300
298
|
padding: 8px 12px;
|
|
@@ -312,22 +310,22 @@
|
|
|
312
310
|
background-color: ${p.themedColor.bg_100_500};
|
|
313
311
|
}
|
|
314
312
|
|
|
315
|
-
${
|
|
313
|
+
${_e}
|
|
316
314
|
|
|
317
|
-
${({$type:e,theme:t})=>
|
|
318
|
-
`,
|
|
315
|
+
${({$type:e,theme:t})=>O.css`${e==="vertical"?zh:Wh};&:active{background-color:${t.colors.base.primary};color:${t.colors.base.primaryContrastContent};}`}
|
|
316
|
+
`,Uh=_.default($)`color:inherit;`,Vh=O.css`flex-direction:column;align-items:flex-end;`,Gh=O.css`flex-direction:row;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none;}`,zh=O.css`max-width:calc(100% - 70px);white-space:pre-wrap;`,Wh=O.css`white-space:nowrap;`,qh=e=>{const{components:t}=Je.useContext(),{stringSet:n}=Q(),r=Vo(e)?i.createElement(t.TextMessageBody,{...e}):null;if(e.messageType==="user")return r;if(e.messageType==="file"){const o=e.file;return o.type.startsWith("image")||o.type.startsWith("video")?i.createElement(t.MediaMessageBody,{...e},r):i.createElement(t.FileMessageBody,{...e},r)}return e.messageType==="multipleFiles"?i.createElement(t.MultipleFilesMessageBody,{...e},r):i.createElement(t.TextMessageBody,{...e,message:n.UNKNOWN__UNKNOWN_MESSAGE_TYPE})},Kh=e=>i.createElement(Ws,{...e,testerMode:!1}),Je=Pe({template:Kh,components:{SenderName:am,SenderAvatar:sm,SentTime:cm,MessageBody:qh,TextMessageBody:nm,MediaMessageBody:Od,FileMessageBody:Ld,MultipleFilesMessageBody:Xd,TypingIndicator:dm,SuggestedReplies:Fh,MessageTemplate:$h,CustomMessageTemplate:Tm,CTAButton:_m,Citation:Cm,Form:wh,Feedback:Wm,MessageLogs:Rh}}),Yh=/(?:!\[[^\]]*]\([^)]+\)|\[[^\]]+]\([^)]+\)|https?:\/\/\S+|www\.\S+)/i,jh=e=>e?Yh.test(e):!1,Ws=e=>{var x,S,I,k,M,U,F;const{components:t}=Je.useContext(),{streamText:n,isAnimating:r}=Kl({text:e.message,enabled:e.isStreaming,onAnimationStart:e.onStreamAnimationStart,onAnimationProgress:e.onStreamAnimationProgress,onAnimationComplete:e.onStreamAnimationComplete}),o={...e,message:n,extendedMessagePayload:r?{}:e.extendedMessagePayload},s=!!o.isTyping,a=o.testerMode,l=!!o.isSenderAvatarVisible,c=!!((x=o.extendedMessagePayload)!=null&&x.form)&&!((S=o.extendedMessagePayload)!=null&&S.form.canceled_at),d=!!((I=o.extendedMessagePayload)!=null&&I.message_template),m=!!((k=o.extendedMessagePayload)!=null&&k.cta_button),h=!!((M=o.extendedMessagePayload)!=null&&M.citations)&&o.extendedMessagePayload.citations.length>0,g=!!o.createdAt,C=m||h,b=o.messageType==="user"&&!jh(o.message),v=o.groupType==="top"||o.groupType==="single",f=o.groupType==="bottom"||o.groupType==="single",y=a||!l?0:K.AVATAR_SIZE,E=z=>b?i.createElement(eg,null,z):z;return i.createElement(Xh,{$marginBottom:s?0:hn(o.groupType)},v&&i.createElement(Qh,{"aria-hidden":"true"},!a&&l&&i.createElement(t.SenderAvatar,{...o}),i.createElement(t.SenderName,{...o})),i.createElement(ng,null,i.createElement(Nn,{$extraStartPadding:y},s?i.createElement(t.TypingIndicator,{...o}):C?i.createElement(Zh,{$maxWidth:o.maxBodyWidth??K.BODY_MAX_WIDTH},E(i.createElement(t.MessageBody,{...o,surface:"plain"})),m&&i.createElement(Jh,{$marginTop:12,$paddingInline:12},i.createElement(t.CTAButton,{...o})),h&&i.createElement(t.Citation,{...o})):E(i.createElement(t.MessageBody,{...o}))),d&&i.createElement(bo,{$startPadding:0,$endPadding:0},i.createElement(t.MessageTemplate,{...o,messageTemplateErrorFallback:o.messageTemplateErrorFallback??i.createElement(Nn,{$extraStartPadding:y},i.createElement(t.MessageBody,{...o,messageType:"user",message:((F=(U=o.extendedMessagePayload)==null?void 0:U.message_template)==null?void 0:F.fallback_message)??"Cannot read this template."})),messageTemplateLoadingFallback:o.messageTemplateLoadingFallback??i.createElement(Nn,{$extraStartPadding:y},i.createElement(t.TypingIndicator,{...o}))})),i.createElement(t.CustomMessageTemplate,{...o}),c&&i.createElement(bo,{$extraStartPadding:y},i.createElement(t.Form,{...o}))),f&&g&&i.createElement(tg,{$extraStartPadding:y+8,"aria-hidden":"true"},i.createElement(t.SentTime,{...o})),i.createElement(u.Fragment,null,!s&&i.createElement(Ot,{$extraStartPadding:y+8},i.createElement(t.Feedback,{...o})),o.suggestedRepliesVisible&&i.createElement(t.SuggestedReplies,{...o}),i.createElement(t.MessageLogs,{...o})))},Xh=_.default.div.attrs({role:"presentation"})`
|
|
319
317
|
display: flex;
|
|
320
318
|
flex-direction: column;
|
|
321
319
|
align-items: flex-start;
|
|
322
320
|
margin-bottom: ${({$marginBottom:e})=>`${e}px`};
|
|
323
|
-
`,
|
|
321
|
+
`,Ot=_.default.div.attrs({role:"presentation"})`
|
|
324
322
|
display: flex;
|
|
325
323
|
align-self: stretch;
|
|
326
324
|
justify-content: flex-start;
|
|
327
|
-
${({$startPadding:e=
|
|
325
|
+
${({$startPadding:e=K.HORIZONTAL_PADDING,$endPadding:t=K.HORIZONTAL_PADDING,$extraStartPadding:n=0})=>`
|
|
328
326
|
padding-inline: ${e+n}px ${t}px;
|
|
329
327
|
`}
|
|
330
|
-
`,
|
|
328
|
+
`,Zh=_.default.div.attrs({role:"presentation"})`
|
|
331
329
|
display: flex;
|
|
332
330
|
flex-direction: column;
|
|
333
331
|
min-width: 0;
|
|
@@ -335,54 +333,57 @@
|
|
|
335
333
|
border-radius: 12px;
|
|
336
334
|
overflow: hidden;
|
|
337
335
|
padding: 12px 0;
|
|
338
|
-
${({theme:e})=>
|
|
339
|
-
`,
|
|
336
|
+
${({theme:e})=>O.css`color:${e.colors.messageIncoming.text};background-color:${e.colors.messageIncoming.background};`}
|
|
337
|
+
`,Jh=_.default.div.attrs({role:"presentation"})`
|
|
340
338
|
display: flex;
|
|
341
339
|
flex-direction: column;
|
|
342
340
|
min-width: 0;
|
|
343
|
-
${({$marginTop:e=0,$paddingInline:t=0})=>
|
|
344
|
-
`,
|
|
341
|
+
${({$marginTop:e=0,$paddingInline:t=0})=>O.css`margin-top:${e}px;padding-inline:${t}px;`}
|
|
342
|
+
`,Qh=_.default(Ot)`display:flex;flex-direction:row;align-items:center;gap:8px;`,Nn=_.default(Ot)`display:flex;`,eg=_.default.div.attrs({"aria-hidden":"true",role:"presentation"})``,tg=_.default(Ot)`margin-top:${K.BODY_TIME_GAP}px;display:flex;align-items:flex-start;justify-content:flex-start;`,bo=_.default(Ot).attrs({role:"presentation"})`
|
|
345
343
|
display: flex;
|
|
346
|
-
${({$startPadding:e=
|
|
344
|
+
${({$startPadding:e=K.HORIZONTAL_PADDING,$endPadding:t=K.HORIZONTAL_PADDING,$extraStartPadding:n=0})=>`
|
|
347
345
|
padding-inline: ${e+n}px ${t}px;
|
|
348
346
|
`}
|
|
349
|
-
`,
|
|
347
|
+
`,ng=_.default.div.attrs({role:"presentation"})`
|
|
350
348
|
display: flex;
|
|
351
349
|
flex-direction: column;
|
|
352
350
|
min-width: 0;
|
|
353
351
|
max-width: 100%;
|
|
354
|
-
gap: ${
|
|
355
|
-
`;function
|
|
352
|
+
gap: ${K.GAP_GROUPED}px;
|
|
353
|
+
`;function rg({file:e,children:t,onClickFile:n,sendingStatus:r}){const o=(()=>{if(!(!n||r==="failed"))return()=>n==null?void 0:n(e)})();return i.createElement(og,null,i.createElement(br,{name:e.name,mimeType:e.type,type:er(e.name,e.type),onClick:o}),t)}const og=_.default.div`display:flex;flex-direction:column;align-items:flex-end;gap:${K.GAP_GROUPED}px;`;function sg({sendingStatus:e,file:t,metadata:n,onClickMedia:r,onClickMediaFiles:o,children:s}){const{conversation:a}=ee(),{aspectRatio:l,localFile:c}=n,[d]=u.useState(()=>c instanceof Blob?URL.createObjectURL(c):t.url),[m,h]=u.useState(!1),g=(()=>{if(e!=="failed"){if(o)return()=>o({files:[{url:d,type:t.type,name:t.name}],index:0});if(r)return()=>r({...t,url:d})}})(),C=g?a.file.buttonLikeInteractivePreview({name:t.name,mimeType:t.type,onActivate:g}):a.file.preview({name:t.name,mimeType:t.type}),b={...C.props,$ratio:l,$clickable:!!g};return i.createElement(ig,null,i.createElement(ag,{...b},!m&&i.createElement(st,{size:26},i.createElement(W,{type:"spinner",color:"textLowEmphasis",size:26})),i.createElement(lg,{$loaded:m,src:d,alt:"image-message",onLoad:()=>h(!0)}),C.descriptionNode),s)}const ig=_.default.div`display:flex;flex-direction:column;align-items:flex-end;gap:${K.GAP_GROUPED}px;`,ag=_.default.div`width:${K.BODY_MAX_WIDTH}px;border-radius:12px;overflow:hidden;cursor:${e=>e.$clickable?"pointer":"default"};height:auto;aspect-ratio:${e=>e.$ratio};position:relative;display:flex;align-items:center;justify-content:center;${G.light`
|
|
356
354
|
background-color: ${p.color.background100};
|
|
357
355
|
`}
|
|
358
|
-
${
|
|
356
|
+
${G.dark`
|
|
359
357
|
background-color: ${p.color.background400};
|
|
360
358
|
`}
|
|
361
|
-
`,
|
|
359
|
+
`,lg=_.default.img`position:absolute;width:100%;height:100%;inset-block-start:0;inset-inline-start:0;object-fit:cover;opacity:${e=>e.$loaded?1:0};transition:opacity 0.5s ease;`,cg=({sendingStatus:e,files:t,metadata:n,onClickMedia:r,onClickMediaFiles:o,children:s})=>{const[a]=u.useState(()=>n.localFiles?n.localFiles.filter(m=>m instanceof Blob).map(m=>({...m,url:URL.createObjectURL(m)})):t),l=e==="pending",c=e==="failed",d=m=>{if(c||l)return;const h=a[m];h&&(o?o({files:a,index:m}):r&&r({url:h.url,type:h.type||"image/*"}))};return i.createElement(ug,null,i.createElement(Rs,{images:a,isPending:l,onClickImage:d}),s)},ug=_.default.div`display:flex;flex-direction:column;align-items:flex-end;gap:${K.GAP_GROUPED}px;`;function dg(e){var n,r;const t=u.useMemo(()=>{const o=Qd(Ns(e.message));return Fo.default.sanitize(o)},[e.message]);return i.createElement(mg,{$maxWidth:e.maxBodyWidth??K.BODY_MAX_WIDTH,$color:(n=e.customStyle)==null?void 0:n.bubbleContentColor,$bgColor:(r=e.customStyle)==null?void 0:r.bubbleBackgroundColor},i.createElement(hg,{variant:"body3",dangerouslySetInnerHTML:{__html:t}}))}const mg=_.default.div`display:flex;flex-direction:column;border-radius:12px;overflow:hidden;max-width:${({$maxWidth:e})=>e}px;${({theme:e,$color:t,$bgColor:n})=>O.css`
|
|
362
360
|
color: ${t||e.colors.messageOutgoing.text};
|
|
363
361
|
background-color: ${n||e.colors.messageOutgoing.background};
|
|
364
362
|
`}
|
|
365
363
|
padding: 12px 0;
|
|
366
364
|
transition: max-width 0.3s;
|
|
367
365
|
overflow-wrap: break-word;
|
|
368
|
-
`,
|
|
369
|
-
`,
|
|
370
|
-
`,mg=_.default(Ws)``,hg=_.default(Ws)`margin-top:${Y.BODY_TIME_GAP}px;`,gg=e=>e.messageType!=="admin"?null:i.createElement(fg,null,i.createElement(D,{variant:"caption2",color:p.themedColor.textMidEmphasis},pg(Fo.default.sanitize(e.message)))),fg=_.default.div`text-align:center;text-wrap:pretty;word-break:break-word;padding-inline:${Y.HORIZONTAL_PADDING}px;a{text-decoration:underline;color:inherit;}`,pg=e=>{try{const t=[];let n=e,r=0;for(;n;){const o=n.match(/\[([^\]]+)\]\((https?:\/\/[^\s]+)\)/),s=n.match(/\*\*([^*]+)\*\*/),a=[o&&{match:o,type:"link"},s&&{match:s,type:"bold"}].filter(h=>!!h);if(!a.length){t.push(n);break}const l=a.reduce((h,g)=>g.match.index<h.match.index?g:h),{match:u,type:d}=l,m=u.index;m>0&&t.push(n.slice(0,m)),d==="link"?t.push(i.createElement("a",{key:r++,href:u[2],target:"_blank",rel:mr},u[1])):d==="bold"&&t.push(i.createElement("strong",{key:r++},u[1])),n=n.slice(m+u[0].length)}return t.filter(o=>o!=="")}catch{return[e]}},_g=({direction:e,currentIndex:t,totalCount:n})=>n<=0?t:e==="next"?(t+1)%n:(t-1+n)%n,qs=({options:e,value:t,disabled:n,hasError:r=!1,errorId:o,onChange:s})=>{const a=c.useRef([]),l=e.findIndex(h=>h.value===t),u=l>=0?l:0,d=h=>{requestAnimationFrame(()=>{var g;(g=a.current[h])==null||g.focus()})},m=h=>{const g=e[h];!g||n||(s==null||s(g.value),d(h))};return{radioGroupProps:h=>({role:"radiogroup","aria-label":h,...r&&o?{"aria-invalid":!0,"aria-errormessage":o}:{}}),getRadioProps:h=>({ref:g=>{a.current[h]=g},tabIndex:n?-1:h===u?0:-1,describedBy:r&&o?o:void 0,onArrowNavigate:g=>{m(_g({direction:g,currentIndex:h,totalCount:e.length}))}})}},Eg=e=>{switch(e.key){case"ArrowDown":case"ArrowRight":return"next";case"ArrowUp":case"ArrowLeft":return"previous";default:return}},bg=({event:e,onClick:t,onArrowNavigate:n})=>{if(Cg(e))return;const r=Eg(e);if(r){e.preventDefault(),n==null||n(r);return}e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),t==null||t())},Cg=e=>e.repeat||e.currentTarget.getAttribute("aria-disabled")==="true",Cr=c.forwardRef(({onClick:e,checked:t,label:n,disabled:r,tabIndex:o=0,labelVariant:s="caption2",describedBy:a,onArrowNavigate:l},u)=>{const d=t?p.themedColor.primary:r?p.themedColor.textDisabled:p.themedColor.textLowEmphasis,m=t?p.themedColor.textHighEmphasis:r?p.themedColor.textLowEmphasis:p.themedColor.textHighEmphasis;return i.createElement(Sg,{ref:u,role:"radio",tabIndex:r?-1:o,"aria-checked":t,"aria-disabled":!!r,"aria-label":n,"aria-describedby":a,onClick:r?void 0:e,onKeyDown:h=>bg({event:h,onClick:e,onArrowNavigate:l})},i.createElement(vg,{"aria-hidden":"true"},i.createElement(z,{size:20,type:t?"radio-on":"radio-off",color:d})),i.createElement(yg,{"aria-hidden":"true",variant:s,color:m},n))});Cr.displayName="Radio";const vg=_.default.div`width:20px;height:20px;`,yg=_.default(D)`line-height:20px;word-break:break-word;`,Sg=_.default.div`display:flex;align-items:flex-start;justify-content:flex-start;gap:2px;${be}&[aria-disabled='false']{cursor:pointer;}`,Ag=({csatPayload:e,submitted:t,defaultValue:n,value:r,onChange:o})=>{var u,d;const s=[{label:((u=e.cre)==null?void 0:u.positive_label)??"",value:!0},{label:((d=e.cre)==null?void 0:d.negative_label)??"",value:!1}],a=qs({options:s,value:r,disabled:t,onChange:o});if(c.useEffect(()=>{typeof r>"u"&&typeof n=="boolean"&&(o==null||o(n))},[r,n]),!e.cre)return null;const l=e.cre;return i.createElement(xg,null,i.createElement(fe.Label,{required:l.required,ariaHidden:!0},l.question),i.createElement(Tg,{...a.radioGroupProps(l.question)},s.map((m,h)=>i.createElement(Cr,{key:m.label,checked:r===m.value,label:m.label,disabled:t,...a.getRadioProps(h),onClick:()=>o==null?void 0:o(m.value)}))))},xg=_.default.div`display:flex;flex-direction:column;gap:8px;`,Tg=_.default.div`display:flex;flex-direction:column;gap:8px;`,Ig=({followUpItem:e,submitted:t,value:n="",onChange:r,hasError:o})=>{const{stringSet:s}=Q(),a=c.useId(),l=e.response_type!=="free_text",u={ariaInvalid:o,ariaErrorMessage:o?a:void 0},d=e.response_type==="single_choice"?e.options.map(h=>({label:h,value:h})):[],m=qs({options:d,value:n,disabled:t,hasError:o,errorId:a,onChange:r});return i.createElement(wg,null,i.createElement(fe.Label,{required:e.required,ariaHidden:l},e.question),e.response_type==="free_text"&&i.createElement(fe.TextInput,{variant:"multi-line",disabled:t,submitted:t,maxLength:100,value:n,onChange:h=>r(h),error:o,ariaLabel:s.A11Y_CSAT_TEXT_INPUT_LABEL,required:e.required,ariaInvalid:u.ariaInvalid,ariaErrorMessage:u.ariaErrorMessage}),e.response_type==="single_choice"&&i.createElement(kg,{...m.radioGroupProps(e.question)},d.map((h,g)=>i.createElement(Cr,{key:h.value,checked:n===h.value,label:h.label,disabled:t,...m.getRadioProps(g),onClick:()=>r==null?void 0:r(h.value),labelVariant:"body3"}))),o&&i.createElement(Lg,{role:"alert",id:a},s.FORM_VALIDATION_REQUIRED))},wg=_.default.div`display:flex;flex-direction:column;gap:8px;`,kg=_.default.div`display:flex;flex-direction:column;gap:8px;`,Lg=_.default(fe.ErrorLabel)``,Mg=({value:e,selected:t})=>i.createElement(Og,{$selected:t,"aria-hidden":"true"},Rg[e-1]),Og=_.default.div`user-select:none;-webkit-user-drag:none;width:40px;height:40px;aspect-ratio:1;opacity:${({$selected:e})=>e?1:.38};`,Rg=[i.createElement("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{d:"M2.08337 19.9999C2.08337 10.1048 10.1049 2.08325 20 2.08325C29.8952 2.08325 37.9167 10.1048 37.9167 19.9999C37.9167 29.8951 29.8952 37.9166 20 37.9166C10.1049 37.9166 2.08337 29.8951 2.08337 19.9999Z",fill:"url(#paint0_linear_159_173206)"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.5828 29.3328C13.1348 29.7473 13.9184 29.636 14.3329 29.084C15.6272 27.3607 17.6839 26.25 20 26.25C22.3164 26.25 24.373 27.3607 25.6672 29.084C26.0819 29.636 26.8654 29.7473 27.4175 29.3328C27.9695 28.9182 28.0809 28.1347 27.6662 27.5825C25.9202 25.2577 23.136 23.75 20 23.75C16.8642 23.75 14.0801 25.2577 12.334 27.5825C11.9194 28.1347 12.0308 28.9182 12.5828 29.3328Z",fill:"#141B34"}),i.createElement("path",{d:"M28.4454 13.7707C29.1329 13.8328 29.6405 14.4406 29.5785 15.1281C29.5165 15.8153 28.9095 16.3221 28.2224 16.2608C28.2224 16.2608 28.0287 16.2502 27.9272 16.2487C27.7229 16.2457 27.4387 16.2509 27.1229 16.2833C26.7869 16.3177 26.4649 16.3782 26.1804 16.4662L26.3045 16.86C26.7797 18.3675 25.5099 19.5813 24.2062 19.5813C23.5045 19.5813 22.8324 19.2617 22.43 18.6857C22.003 18.0745 21.9422 17.241 22.408 16.5344C22.751 16.0143 23.2449 15.3831 23.8964 14.8657C24.836 14.1195 26.044 13.8809 26.8675 13.7963C27.3029 13.7517 28.0154 13.7319 28.4454 13.7707Z",fill:"#141B34"}),i.createElement("path",{d:"M11.5549 13.7707C10.8674 13.8328 10.3597 14.4406 10.4218 15.1281C10.4838 15.8153 11.0908 16.3221 11.7779 16.2608C11.7779 16.2608 11.9716 16.2502 12.073 16.2487C12.2774 16.2457 12.5616 16.2509 12.8774 16.2833C13.2134 16.3177 13.5353 16.3782 13.8199 16.4662L13.6958 16.86C13.2205 18.3675 14.4904 19.5813 15.794 19.5813C16.4958 19.5813 17.168 19.2617 17.5703 18.6857C17.9971 18.0745 18.0581 17.241 17.5921 16.5344C17.2493 16.0143 16.7553 15.3831 16.1039 14.8657C15.1643 14.1195 13.9562 13.8809 13.1327 13.7963C12.6974 13.7517 11.9849 13.7319 11.5549 13.7707Z",fill:"#141B34"}),i.createElement("defs",null,i.createElement("linearGradient",{id:"paint0_linear_159_173206",x1:"20",y1:"2.08325",x2:"20",y2:"37.9166",gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#FF2D1D"}),i.createElement("stop",{offset:"1",stopColor:"#FFA540"})))),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("path",{d:"M14.249 27.334C15.851 26.13 17.844 25.417 20 25.417c2.156 0 4.149.714 5.751 1.917.553.415.664 1.199.25 1.751-.415.552-1.199.664-1.751.25-1.183-.889-2.652-1.416-4.25-1.416s-3.067.527-4.25 1.416c-.553.414-1.336.302-1.751-.25-.415-.552-.303-1.336.249-1.751Z",fill:"#141B34"}),i.createElement("path",{d:"M23.445 14.596c-.687.062-1.294-.445-1.356-1.132-.062-.687.445-1.295 1.132-1.357.082-.005.342-.02.482-.022.277-.004.662.002 1.097.047.823.085 2.031.323 2.97 1.07.652.518 1.146 1.15 1.489 1.67.466.706.405 1.54-.022 2.15-.402.576-1.074.896-1.775.896-1.304 0-2.573-1.214-2.098-2.722l.125-.394c-.285-.088-.607-.148-.942-.182-.316-.033-.6-.038-.804-.035-.101.002-.242.01-.294.013Z",fill:"#141B34"}),i.createElement("path",{d:"M11.779 14.596c-.687.062-1.294-.445-1.356-1.132-.062-.687.445-1.295 1.132-1.357.082-.005.342-.02.482-.022.277-.004.662.002 1.097.047.823.085 2.031.323 2.97 1.07.652.518 1.146 1.15 1.489 1.67.466.706.405 1.54-.022 2.15-.402.576-1.074.896-1.775.896-1.304 0-2.573-1.214-2.098-2.722l.124-.394c-.284-.088-.606-.148-.941-.182-.316-.033-.6-.038-.804-.035-.101.002-.243.01-.294.013Z",fill:"#141B34"})),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.25 15c0-1.151.933-2.083 2.083-2.083h.015c1.151 0 2.084.933 2.084 2.083 0 1.151-.933 2.083-2.084 2.083h-.015c-1.15 0-2.083-.933-2.083-2.083ZM24.568 15c0-1.151.933-2.083 2.084-2.083h.015c1.151 0 2.083.933 2.083 2.083 0 1.151-.932 2.083-2.083 2.083h-.015c-1.151 0-2.084-.933-2.084-2.083Z",fill:"#141B34"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.75 26.667c0-.691.56-1.25 1.25-1.25h10c.69 0 1.25.559 1.25 1.25 0 .691-.56 1.25-1.25 1.25h-10c-.69 0-1.25-.559-1.25-1.25Z",fill:"#141B34"})),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.583 24.001c.552-.414 1.335-.302 1.75.25 1.294 1.723 3.35 2.834 5.667 2.834s4.373-1.11 5.667-2.834c.415-.552 1.199-.664 1.751-.25.552.415.664 1.199.25 1.751C25.92 28.076 23.136 29.584 20 29.584s-5.92-1.508-7.666-3.832c-.415-.552-.303-1.336.249-1.751Z",fill:"#141B34"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.25 15c0-1.151.933-2.083 2.083-2.083h.015c1.151 0 2.084.933 2.084 2.083 0 1.151-.933 2.083-2.084 2.083h-.015c-1.15 0-2.083-.933-2.083-2.083ZM24.568 15c0-1.151.933-2.083 2.084-2.083h.015c1.151 0 2.083.933 2.083 2.083 0 1.151-.932 2.083-2.083 2.083h-.015c-1.151 0-2.084-.933-2.084-2.083Z",fill:"#141B34"})),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("g",{clipPath:"url(#clip0_159_173224)"},i.createElement("g",{clipPath:"url(#clip1_159_173224)"},i.createElement("path",{d:"M20 30.624c3.752 0 6.904-2.532 7.789-5.956.412-1.593-.185-1.959-1.76-1.959H13.973c-1.575 0-2.173.366-1.761 1.959.885 3.424 4.037 5.956 7.788 5.956Z",fill:"#141B34"})),i.createElement("mask",{id:"mask0_159_173224",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"12",y:"22",width:"16",height:"9"},i.createElement("path",{d:"M20 30.624c3.752 0 6.904-2.532 7.789-5.956.412-1.593-.185-1.959-1.76-1.959H13.973c-1.575 0-2.173.366-1.761 1.959.885 3.424 4.037 5.956 7.788 5.956Z",fill:"#141B34"})),i.createElement("g",{mask:"url(#mask0_159_173224)"},i.createElement("path",{d:"M20 32.998c3.278 0 5.936-1.594 5.936-3.561 0-1.968-2.658-3.562-5.936-3.562-3.278 0-5.936 1.594-5.936 3.562 0 1.967 2.658 3.561 5.936 3.561Z",fill:"#FF493B"}))),i.createElement("path",{d:"M11.667 15.833c0-1.381 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5M23.333 15.833c0-1.381 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5",stroke:"#141B34",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),i.createElement("defs",null,i.createElement("clipPath",{id:"clip0_159_173224"},i.createElement("rect",{width:"15.83",height:"7.915",fill:"white",transform:"translate(12.085 22.709)"})),i.createElement("clipPath",{id:"clip1_159_173224"},i.createElement("rect",{width:"15.83",height:"7.915",fill:"white",transform:"translate(12.085 22.709)"}))))],Ng=({csatPayload:e,submitted:t,value:n,onChange:r})=>{const o=typeof n>"u",{conversation:s}=ee(),a=s.csat.scoresContainer(e.csat_question);return i.createElement($g,null,i.createElement(D,{variant:"caption3",color:p.themedColor.textMidEmphasis,"aria-hidden":"true"},e.csat_question),i.createElement(Pg,{...a.props},a.descriptionNode,e.csat_scores.map(({label:l,image_url:u},d)=>{const m=d+1,h=n===m,g=e.csat_scores.length,C=s.csat.scoreItem({score:m,label:l,selected:h,disabled:t,currentIndex:d,totalCount:g,hasSelection:!o,onChange:r});return i.createElement(Fg,{key:d,type:"button",...C.props},i.createElement(Dg,{value:m,selected:o||h,src:u}),!!l&&i.createElement(D,{"aria-hidden":"true",color:h?p.themedColor.textHighEmphasis:p.themedColor.textLowEmphasis,variant:"caption3"},l))})))},Dg=({value:e,src:t,selected:n})=>{const[r,o]=c.useState(!1),s=r?i.createElement(Mg,{value:e,selected:n}):i.createElement(Hg,{$selected:n,alt:"","aria-hidden":"true",src:t,onError:()=>o(!0)});return i.createElement(Bg,null,s)},$g=_.default.div`display:flex;flex-direction:column;gap:8px;`,Pg=_.default.div`display:flex;justify-content:space-between;align-self:center;width:100%;max-width:400px;gap:16px;`,Fg=_.default.button`all:unset;background-color:transparent;border:none;gap:4px;display:flex;flex-direction:column;align-items:center;justify-content:start;box-sizing:border-box;min-width:48px;max-width:68px;&:not(:disabled):hover span{color:${p.themedColor.textHighEmphasis};}`,Bg=_.default.div`button:not(:disabled):hover &{border-radius:4px;cursor:pointer;background-color:${p.color.background200};${W.dark`
|
|
366
|
+
`,hg=_.default($)`align-items:flex-start;line-height:140%;white-space:pre-wrap;padding:0 12px;`,gg=({sendingStatus:e})=>{const t=O.useTheme();switch(e){case"pending":return i.createElement(fg,{size:16},i.createElement(W,{type:"spinner",color:t.colors.messageOutgoing.background,size:16}));case"failed":return i.createElement("div",{style:{marginBottom:2}},i.createElement(W,{type:"error",color:p.themedColor.error,size:16}));case"scheduled":case"canceled":return null;default:return i.createElement("div",{style:{marginBottom:2}},i.createElement(W,{type:"done",color:p.themedColor.secondary,size:16}))}},fg=_.default(st)`margin-bottom:2px;width:16px;height:16px;`,pg=({createdAt:e})=>{const{stringSet:t,format:n}=Q();return e?i.createElement($,{variant:"caption4",color:p.themedColor.textLowEmphasis},n(e,t.DATE_FORMAT__MESSAGE_TIMESTAMP)):null},_g=e=>{const{components:t}=Nt.useContext(),{stringSet:n}=Q(),r=()=>{const c=Vo(e)?i.createElement(t.TextMessageBody,{...e}):null;return e.messageType==="user"?c:e.messageType==="file"?e.file.type.startsWith("image")?i.createElement(t.MediaMessageBody,{...e},c):i.createElement(t.FileMessageBody,{...e},c):e.messageType==="multipleFiles"?i.createElement(t.MultipleFilesMessageBody,{...e},c):i.createElement(t.TextMessageBody,{...e,message:n.UNKNOWN__UNKNOWN_MESSAGE_TYPE})},o=e.sendingStatus==="failed"&&e.onClickFailedMessage,s=()=>{var c;return(c=e.onClickFailedMessage)==null?void 0:c.call(e)},l=o?{role:"button",tabIndex:0,onClick:s,onKeyDown:c=>{c.repeat||(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),s())}}:{};return i.createElement("div",{...l,style:{display:"contents",cursor:o?"pointer":"default"}},r())},Eg=e=>{const{components:t}=Nt.useContext(),n=e.sendingStatus==="succeeded",r=e.groupType==="bottom"||e.groupType==="single",o=e.messageType==="user"&&e.sendingStatus!=="failed";return i.createElement(bg,{$marginBottom:hn(e.groupType)},i.createElement(Cg,{"aria-hidden":o?"true":void 0},i.createElement(t.MessageBody,{...e})),r&&i.createElement(vg,{$extraEndPadding:8,"aria-hidden":n?"true":void 0},n?i.createElement(t.SentTime,{...e}):i.createElement(t.SendingStatus,{...e})))},Nt=Pe({template:Eg,components:{SendingStatus:gg,SentTime:pg,MessageBody:_g,TextMessageBody:dg,MediaMessageBody:sg,FileMessageBody:rg,MultipleFilesMessageBody:cg}}),bg=_.default.div`display:flex;flex:1;flex-direction:column;align-items:flex-end;margin-bottom:${({$marginBottom:e})=>`${e}px`};
|
|
367
|
+
`,qs=_.default.div`display:flex;align-self:stretch;justify-content:flex-end;${({$startPadding:e=K.HORIZONTAL_PADDING,$endPadding:t=K.HORIZONTAL_PADDING,$extraEndPadding:n=0})=>`padding-inline: ${e}px ${t+n}px;`};
|
|
368
|
+
`,Cg=_.default(qs)``,vg=_.default(qs)`margin-top:${K.BODY_TIME_GAP}px;`,yg=e=>e.messageType!=="admin"?null:i.createElement(Sg,null,i.createElement($,{variant:"caption2",color:p.themedColor.textMidEmphasis},Ag(Fo.default.sanitize(e.message)))),Sg=_.default.div`text-align:center;text-wrap:pretty;word-break:break-word;padding-inline:${K.HORIZONTAL_PADDING}px;a{text-decoration:underline;color:inherit;}`,Ag=e=>{try{const t=[];let n=e,r=0;for(;n;){const o=n.match(/\[([^\]]+)\]\((https?:\/\/[^\s]+)\)/),s=n.match(/\*\*([^*]+)\*\*/),a=[o&&{match:o,type:"link"},s&&{match:s,type:"bold"}].filter(h=>!!h);if(!a.length){t.push(n);break}const l=a.reduce((h,g)=>g.match.index<h.match.index?g:h),{match:c,type:d}=l,m=c.index;m>0&&t.push(n.slice(0,m)),d==="link"?t.push(i.createElement("a",{key:r++,href:c[2],target:"_blank",rel:hr},c[1])):d==="bold"&&t.push(i.createElement("strong",{key:r++},c[1])),n=n.slice(m+c[0].length)}return t.filter(o=>o!=="")}catch{return[e]}},xg=({direction:e,currentIndex:t,totalCount:n})=>n<=0?t:e==="next"?(t+1)%n:(t-1+n)%n,Ks=({options:e,value:t,disabled:n,hasError:r=!1,errorId:o,onChange:s})=>{const a=u.useRef([]),l=e.findIndex(h=>h.value===t),c=l>=0?l:0,d=h=>{requestAnimationFrame(()=>{var g;(g=a.current[h])==null||g.focus()})},m=h=>{const g=e[h];!g||n||(s==null||s(g.value),d(h))};return{radioGroupProps:h=>({role:"radiogroup","aria-label":h,...r&&o?{"aria-invalid":!0,"aria-errormessage":o}:{}}),getRadioProps:h=>({ref:g=>{a.current[h]=g},tabIndex:n?-1:h===c?0:-1,describedBy:r&&o?o:void 0,onArrowNavigate:g=>{m(xg({direction:g,currentIndex:h,totalCount:e.length}))}})}},Tg=e=>{switch(e.key){case"ArrowDown":case"ArrowRight":return"next";case"ArrowUp":case"ArrowLeft":return"previous";default:return}},Ig=({event:e,onClick:t,onArrowNavigate:n})=>{if(wg(e))return;const r=Tg(e);if(r){e.preventDefault(),n==null||n(r);return}e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),t==null||t())},wg=e=>e.repeat||e.currentTarget.getAttribute("aria-disabled")==="true",yr=u.forwardRef(({onClick:e,checked:t,label:n,disabled:r,tabIndex:o=0,labelVariant:s="caption2",describedBy:a,onArrowNavigate:l},c)=>{const d=t?p.themedColor.primary:r?p.themedColor.textDisabled:p.themedColor.textLowEmphasis,m=t?p.themedColor.textHighEmphasis:r?p.themedColor.textLowEmphasis:p.themedColor.textHighEmphasis;return i.createElement(Mg,{ref:c,role:"radio",tabIndex:r?-1:o,"aria-checked":t,"aria-disabled":!!r,"aria-label":n,"aria-describedby":a,onClick:r?void 0:e,onKeyDown:h=>Ig({event:h,onClick:e,onArrowNavigate:l})},i.createElement(kg,{"aria-hidden":"true"},i.createElement(W,{size:20,type:t?"radio-on":"radio-off",color:d})),i.createElement(Lg,{"aria-hidden":"true",variant:s,color:m},n))});yr.displayName="Radio";const kg=_.default.div`width:20px;height:20px;`,Lg=_.default($)`line-height:20px;word-break:break-word;`,Mg=_.default.div`display:flex;align-items:flex-start;justify-content:flex-start;gap:2px;${_e}&[aria-disabled='false']{cursor:pointer;}`,Rg=({csatPayload:e,submitted:t,defaultValue:n,value:r,onChange:o})=>{var c,d;const s=[{label:((c=e.cre)==null?void 0:c.positive_label)??"",value:!0},{label:((d=e.cre)==null?void 0:d.negative_label)??"",value:!1}],a=Ks({options:s,value:r,disabled:t,onChange:o});if(u.useEffect(()=>{typeof r>"u"&&typeof n=="boolean"&&(o==null||o(n))},[r,n]),!e.cre)return null;const l=e.cre;return i.createElement(Og,null,i.createElement(fe.Label,{required:l.required,ariaHidden:!0},l.question),i.createElement(Ng,{...a.radioGroupProps(l.question)},s.map((m,h)=>i.createElement(yr,{key:m.label,checked:r===m.value,label:m.label,disabled:t,...a.getRadioProps(h),onClick:()=>o==null?void 0:o(m.value)}))))},Og=_.default.div`display:flex;flex-direction:column;gap:8px;`,Ng=_.default.div`display:flex;flex-direction:column;gap:8px;`,$g=({followUpItem:e,submitted:t,value:n="",onChange:r,hasError:o})=>{const{stringSet:s}=Q(),a=u.useId(),l=e.response_type!=="free_text",c={ariaInvalid:o,ariaErrorMessage:o?a:void 0},d=e.response_type==="single_choice"?e.options.map(h=>({label:h,value:h})):[],m=Ks({options:d,value:n,disabled:t,hasError:o,errorId:a,onChange:r});return i.createElement(Dg,null,i.createElement(fe.Label,{required:e.required,ariaHidden:l},e.question),e.response_type==="free_text"&&i.createElement(fe.TextInput,{variant:"multi-line",disabled:t,submitted:t,maxLength:100,value:n,onChange:h=>r(h),error:o,ariaLabel:s.A11Y_CSAT_TEXT_INPUT_LABEL,required:e.required,ariaInvalid:c.ariaInvalid,ariaErrorMessage:c.ariaErrorMessage}),e.response_type==="single_choice"&&i.createElement(Pg,{...m.radioGroupProps(e.question)},d.map((h,g)=>i.createElement(yr,{key:h.value,checked:n===h.value,label:h.label,disabled:t,...m.getRadioProps(g),onClick:()=>r==null?void 0:r(h.value),labelVariant:"body3"}))),o&&i.createElement(Fg,{role:"alert",id:a},s.FORM_VALIDATION_REQUIRED))},Dg=_.default.div`display:flex;flex-direction:column;gap:8px;`,Pg=_.default.div`display:flex;flex-direction:column;gap:8px;`,Fg=_.default(fe.ErrorLabel)``,Bg=({value:e,selected:t})=>i.createElement(Hg,{$selected:t,"aria-hidden":"true"},Ug[e-1]),Hg=_.default.div`user-select:none;-webkit-user-drag:none;width:40px;height:40px;aspect-ratio:1;opacity:${({$selected:e})=>e?1:.38};`,Ug=[i.createElement("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{d:"M2.08337 19.9999C2.08337 10.1048 10.1049 2.08325 20 2.08325C29.8952 2.08325 37.9167 10.1048 37.9167 19.9999C37.9167 29.8951 29.8952 37.9166 20 37.9166C10.1049 37.9166 2.08337 29.8951 2.08337 19.9999Z",fill:"url(#paint0_linear_159_173206)"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.5828 29.3328C13.1348 29.7473 13.9184 29.636 14.3329 29.084C15.6272 27.3607 17.6839 26.25 20 26.25C22.3164 26.25 24.373 27.3607 25.6672 29.084C26.0819 29.636 26.8654 29.7473 27.4175 29.3328C27.9695 28.9182 28.0809 28.1347 27.6662 27.5825C25.9202 25.2577 23.136 23.75 20 23.75C16.8642 23.75 14.0801 25.2577 12.334 27.5825C11.9194 28.1347 12.0308 28.9182 12.5828 29.3328Z",fill:"#141B34"}),i.createElement("path",{d:"M28.4454 13.7707C29.1329 13.8328 29.6405 14.4406 29.5785 15.1281C29.5165 15.8153 28.9095 16.3221 28.2224 16.2608C28.2224 16.2608 28.0287 16.2502 27.9272 16.2487C27.7229 16.2457 27.4387 16.2509 27.1229 16.2833C26.7869 16.3177 26.4649 16.3782 26.1804 16.4662L26.3045 16.86C26.7797 18.3675 25.5099 19.5813 24.2062 19.5813C23.5045 19.5813 22.8324 19.2617 22.43 18.6857C22.003 18.0745 21.9422 17.241 22.408 16.5344C22.751 16.0143 23.2449 15.3831 23.8964 14.8657C24.836 14.1195 26.044 13.8809 26.8675 13.7963C27.3029 13.7517 28.0154 13.7319 28.4454 13.7707Z",fill:"#141B34"}),i.createElement("path",{d:"M11.5549 13.7707C10.8674 13.8328 10.3597 14.4406 10.4218 15.1281C10.4838 15.8153 11.0908 16.3221 11.7779 16.2608C11.7779 16.2608 11.9716 16.2502 12.073 16.2487C12.2774 16.2457 12.5616 16.2509 12.8774 16.2833C13.2134 16.3177 13.5353 16.3782 13.8199 16.4662L13.6958 16.86C13.2205 18.3675 14.4904 19.5813 15.794 19.5813C16.4958 19.5813 17.168 19.2617 17.5703 18.6857C17.9971 18.0745 18.0581 17.241 17.5921 16.5344C17.2493 16.0143 16.7553 15.3831 16.1039 14.8657C15.1643 14.1195 13.9562 13.8809 13.1327 13.7963C12.6974 13.7517 11.9849 13.7319 11.5549 13.7707Z",fill:"#141B34"}),i.createElement("defs",null,i.createElement("linearGradient",{id:"paint0_linear_159_173206",x1:"20",y1:"2.08325",x2:"20",y2:"37.9166",gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#FF2D1D"}),i.createElement("stop",{offset:"1",stopColor:"#FFA540"})))),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("path",{d:"M14.249 27.334C15.851 26.13 17.844 25.417 20 25.417c2.156 0 4.149.714 5.751 1.917.553.415.664 1.199.25 1.751-.415.552-1.199.664-1.751.25-1.183-.889-2.652-1.416-4.25-1.416s-3.067.527-4.25 1.416c-.553.414-1.336.302-1.751-.25-.415-.552-.303-1.336.249-1.751Z",fill:"#141B34"}),i.createElement("path",{d:"M23.445 14.596c-.687.062-1.294-.445-1.356-1.132-.062-.687.445-1.295 1.132-1.357.082-.005.342-.02.482-.022.277-.004.662.002 1.097.047.823.085 2.031.323 2.97 1.07.652.518 1.146 1.15 1.489 1.67.466.706.405 1.54-.022 2.15-.402.576-1.074.896-1.775.896-1.304 0-2.573-1.214-2.098-2.722l.125-.394c-.285-.088-.607-.148-.942-.182-.316-.033-.6-.038-.804-.035-.101.002-.242.01-.294.013Z",fill:"#141B34"}),i.createElement("path",{d:"M11.779 14.596c-.687.062-1.294-.445-1.356-1.132-.062-.687.445-1.295 1.132-1.357.082-.005.342-.02.482-.022.277-.004.662.002 1.097.047.823.085 2.031.323 2.97 1.07.652.518 1.146 1.15 1.489 1.67.466.706.405 1.54-.022 2.15-.402.576-1.074.896-1.775.896-1.304 0-2.573-1.214-2.098-2.722l.124-.394c-.284-.088-.606-.148-.941-.182-.316-.033-.6-.038-.804-.035-.101.002-.243.01-.294.013Z",fill:"#141B34"})),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.25 15c0-1.151.933-2.083 2.083-2.083h.015c1.151 0 2.084.933 2.084 2.083 0 1.151-.933 2.083-2.084 2.083h-.015c-1.15 0-2.083-.933-2.083-2.083ZM24.568 15c0-1.151.933-2.083 2.084-2.083h.015c1.151 0 2.083.933 2.083 2.083 0 1.151-.932 2.083-2.083 2.083h-.015c-1.151 0-2.084-.933-2.084-2.083Z",fill:"#141B34"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.75 26.667c0-.691.56-1.25 1.25-1.25h10c.69 0 1.25.559 1.25 1.25 0 .691-.56 1.25-1.25 1.25h-10c-.69 0-1.25-.559-1.25-1.25Z",fill:"#141B34"})),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.583 24.001c.552-.414 1.335-.302 1.75.25 1.294 1.723 3.35 2.834 5.667 2.834s4.373-1.11 5.667-2.834c.415-.552 1.199-.664 1.751-.25.552.415.664 1.199.25 1.751C25.92 28.076 23.136 29.584 20 29.584s-5.92-1.508-7.666-3.832c-.415-.552-.303-1.336.249-1.751Z",fill:"#141B34"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.25 15c0-1.151.933-2.083 2.083-2.083h.015c1.151 0 2.084.933 2.084 2.083 0 1.151-.933 2.083-2.084 2.083h-.015c-1.15 0-2.083-.933-2.083-2.083ZM24.568 15c0-1.151.933-2.083 2.084-2.083h.015c1.151 0 2.083.933 2.083 2.083 0 1.151-.932 2.083-2.083 2.083h-.015c-1.151 0-2.084-.933-2.084-2.083Z",fill:"#141B34"})),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none"},i.createElement("path",{d:"M2.083 20C2.083 10.105 10.105 2.083 20 2.083c9.895 0 17.917 8.021 17.917 17.917 0 9.895-8.022 17.917-17.917 17.917C10.105 37.917 2.083 29.895 2.083 20Z",fill:"#FFD46E"}),i.createElement("g",{clipPath:"url(#clip0_159_173224)"},i.createElement("g",{clipPath:"url(#clip1_159_173224)"},i.createElement("path",{d:"M20 30.624c3.752 0 6.904-2.532 7.789-5.956.412-1.593-.185-1.959-1.76-1.959H13.973c-1.575 0-2.173.366-1.761 1.959.885 3.424 4.037 5.956 7.788 5.956Z",fill:"#141B34"})),i.createElement("mask",{id:"mask0_159_173224",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"12",y:"22",width:"16",height:"9"},i.createElement("path",{d:"M20 30.624c3.752 0 6.904-2.532 7.789-5.956.412-1.593-.185-1.959-1.76-1.959H13.973c-1.575 0-2.173.366-1.761 1.959.885 3.424 4.037 5.956 7.788 5.956Z",fill:"#141B34"})),i.createElement("g",{mask:"url(#mask0_159_173224)"},i.createElement("path",{d:"M20 32.998c3.278 0 5.936-1.594 5.936-3.561 0-1.968-2.658-3.562-5.936-3.562-3.278 0-5.936 1.594-5.936 3.562 0 1.967 2.658 3.561 5.936 3.561Z",fill:"#FF493B"}))),i.createElement("path",{d:"M11.667 15.833c0-1.381 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5M23.333 15.833c0-1.381 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5",stroke:"#141B34",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),i.createElement("defs",null,i.createElement("clipPath",{id:"clip0_159_173224"},i.createElement("rect",{width:"15.83",height:"7.915",fill:"white",transform:"translate(12.085 22.709)"})),i.createElement("clipPath",{id:"clip1_159_173224"},i.createElement("rect",{width:"15.83",height:"7.915",fill:"white",transform:"translate(12.085 22.709)"}))))],Vg=({csatPayload:e,submitted:t,value:n,onChange:r})=>{const o=typeof n>"u",{conversation:s}=ee(),a=s.csat.scoresContainer(e.csat_question);return i.createElement(zg,null,i.createElement($,{variant:"caption3",color:p.themedColor.textMidEmphasis,"aria-hidden":"true"},e.csat_question),i.createElement(Wg,{...a.props},a.descriptionNode,e.csat_scores.map(({label:l,image_url:c},d)=>{const m=d+1,h=n===m,g=e.csat_scores.length,C=s.csat.scoreItem({score:m,label:l,selected:h,disabled:t,currentIndex:d,totalCount:g,hasSelection:!o,onChange:r});return i.createElement(qg,{key:d,type:"button",...C.props},i.createElement(Gg,{value:m,selected:o||h,src:c}),!!l&&i.createElement($,{"aria-hidden":"true",color:h?p.themedColor.textHighEmphasis:p.themedColor.textLowEmphasis,variant:"caption3"},l))})))},Gg=({value:e,src:t,selected:n})=>{const[r,o]=u.useState(!1),s=r?i.createElement(Bg,{value:e,selected:n}):i.createElement(Yg,{$selected:n,alt:"","aria-hidden":"true",src:t,onError:()=>o(!0)});return i.createElement(Kg,null,s)},zg=_.default.div`display:flex;flex-direction:column;gap:8px;`,Wg=_.default.div`display:flex;justify-content:space-between;align-self:center;width:100%;max-width:400px;gap:16px;`,qg=_.default.button`appearance:none;-webkit-appearance:none;background-color:transparent;border:none;padding:0;text-align:center;gap:4px;display:flex;flex-direction:column;align-items:center;justify-content:start;box-sizing:border-box;min-width:48px;max-width:68px;${_e}&:not(:disabled):hover span{color:${p.themedColor.textHighEmphasis};}`,Kg=_.default.div`button:not(:disabled):hover &{border-radius:4px;cursor:pointer;background-color:${p.color.background200};${G.dark`
|
|
371
369
|
background-color: ${p.color.background500};
|
|
372
370
|
`}
|
|
373
371
|
}
|
|
374
|
-
`,
|
|
372
|
+
`,Yg=_.default.img`user-select:none;-webkit-user-drag:none;width:40px;height:40px;aspect-ratio:1;opacity:${({$selected:e})=>e?1:.38};`,jg=({csatPayload:e})=>i.createElement($,{variant:"button",color:p.themedColor.textHighEmphasis},e.title),$n=({csatPayload:e,type:t,renderSubmitButton:n,initialCsat:r,initialCsatReason:o,initialIsResolved:s})=>{const{params:a,setParams:l,error:c,setError:d,followUpItem:m,state:h,validateParams:g,itemProps:C}=Gl({csatPayload:e,type:t,initialCsat:r,initialCsatReason:o,initialIsResolved:s});return i.createElement(i.Fragment,null,i.createElement(Xg,null,i.createElement(jg,{...C}),t===Ne.AI_AGENT_CSAT_5_WITH_CRE&&i.createElement(Rg,{...C,defaultValue:s,value:a.isResolved,onChange:b=>l({isResolved:b})}),i.createElement(Vg,{...C,value:a.csat,onChange:b=>l({csat:b})}),m&&i.createElement($g,{...C,followUpItem:m,value:a.csatReason,onChange:b=>{l({csatReason:b}),d({followUpItem:!1})},hasError:c.followUpItem})),h!=="unsubmittable"&&i.createElement(i.Fragment,null,i.createElement(fe.Separator,null),n({state:h,params:a,validateParams:g})))},Xg=_.default.div`display:flex;flex-direction:column;gap:12px;`,Zg=e=>{const{stringSet:t}=Q();return ua(e,{title:t.CSAT_TITLE_UNSUBMITTED,question:t.CSAT_RATING_TITLE,cre:{question:t.CSAT_CRE_TITLE,positive_label:t.CSAT_CRE_SOLVED,negative_label:t.CSAT_CRE_NOT_SOLVED},followUp:{question:t.CSAT_REASON_PLACEHOLDER},submit_label:t.CSAT_SUBMIT_LABEL,submitted_label:t.CSAT_TITLE_SUBMITTED})},Jg=()=>{const{stringSet:e}=Q();return i.createElement($,{variant:"body2",color:p.themedColor.textMidEmphasis,style:{textAlign:"center"}},e.CSAT_SUBMISSION_EXPIRED)},Qg=({onMount:e,children:t})=>(u.useEffect(()=>{e&&ve(e)},[]),t),ef=e=>{const{conversation:t}=ee(),{announceStatusText:n,announceError:r}=ot();if(e.messageType!=="admin.csat")throw new Error("Invalid message type");const{extendedMessagePayload:o,onSubmitCSAT:s,onScrollToBottom:a}=e,{csat:l,csatReason:c,csatExpireAt:d,isResolvedWhenDeterminedByUser:m}=e,h=Ye.useForceUpdate(),g=Zg(o==null?void 0:o.csat),C=u.useRef(null),b=u.useRef(!1),v=u.useRef(null),f=u.useRef(typeof l=="number"),y=(g==null?void 0:g.csat_submitted_label)??"",E=!!g&&g.visibility&&!!Ne[g.type];if(u.useEffect(()=>{E&&y&&(typeof l!="number"||f.current||(f.current=!0,n(y),ve(()=>{var I;(I=v.current)==null||I.focus()})))},[n,l,E,y]),!E||!g)return null;const x=()=>{var k;const I=(k=C.current)==null?void 0:k.querySelector('[aria-invalid="true"]');return I?I.getAttribute("role")==="radiogroup"?I.querySelector('[role="radio"]'):I:null},S=g.type===Ne.AI_AGENT_CSAT_5||g.type===Ne.AI_AGENT_CSAT_5_WITH_CRE||g.type===Ne.HELPDESK_CSAT_5?$n:()=>null;return i.createElement(tf,{ref:C},!l&&$r(d)?i.createElement(Jg,null):i.createElement(S,{csatPayload:g,type:g.type,initialCsat:l,initialCsatReason:c,initialIsResolved:m,renderSubmitButton:({state:I,params:k,validateParams:M})=>I==="submitted"?i.createElement(rf,{ref:v,role:"status","aria-live":"polite","aria-atomic":"true","aria-label":y,tabIndex:-1},i.createElement($,{variant:"button","aria-hidden":"true"},g.csat_submitted_label)):i.createElement(Qg,{onMount:a},i.createElement(nf,{type:"button",...t.csat.submitButton(g.csat_submit_label),onClick:async()=>{if(b.current)return;const U=$r(d);!U&&M()?(b.current=!0,await s(k).finally(()=>{b.current=!1})):(h(),U||ve(()=>{r({type:"csatFormError"},x())}))}},i.createElement($,{variant:"button"},g.csat_submit_label)))}))},tf=_.default.div`display:flex;flex-direction:column;background-color:${({theme:e})=>e.colors.csat.background};border-radius:16px;gap:16px;padding:16px;`,nf=_.default.button`all:unset;width:100%;box-sizing:border-box;background-color:${({theme:e})=>e.colors.base.primary};color:${({theme:e})=>e.colors.base.primaryContrastContent};border-radius:6px;padding:10px 20px;display:flex;align-items:center;justify-content:center;cursor:pointer;text-align:center;word-break:break-word;${_e}&:hover{background-color:${p.color.primary.dark};}`,rf=_.default.div`width:100%;box-sizing:border-box;color:${p.themedColor.textHighEmphasis};background-color:${p.color.background200};border-radius:6px;padding:10px 20px;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-word;${G.dark`
|
|
373
|
+
background-color: ${p.color.onlight.textDisabled};
|
|
374
|
+
`}
|
|
375
|
+
`,of=e=>{const{components:t}=_n.useContext(),n=e.messageType==="admin"?i.createElement(t.AdminMessage,{...e}):e.messageType==="admin.csat"?i.createElement(t.CSATMessage,{...e}):null;return i.createElement(sf,{$marginBottom:hn(e.groupType)},n)},_n=Pe({template:of,components:{AdminMessage:yg,CSATMessage:ef}}),sf=_.default.div`padding-inline:${K.HORIZONTAL_PADDING}px;margin-bottom:${({$marginBottom:e})=>e}px;`,Co={file:"attach",snippet:"snippet",site:"website",sb_sprinklr:"sprinklr",sb_salesforce:"salesforce",sb_confluence:"confluence",sb_zendesk:"zendesk",sb_desk:"snippet"},Ys=({actionbook:e,functionCalls:t,groundedness:n,agentMessageTemplates:r,onClickActionbook:o,onClickFunctionCall:s,onClickFunctionCallDetail:a,onClickGroundedness:l,onClickAgentMessageTemplate:c,bottomContent:d,renderCustomGroundednessIcon:m=g=>g.default,style:h={}})=>{const{iconColor:g="#000000",textColor:C="#000000",highlightColor:b=xt.DEFAULT_PRIMARY}=h;return i.createElement(vo,null,e&&i.createElement(vo,null,i.createElement(dn,null,i.createElement(Yt,null,i.createElement(W,{size:16,type:"actionbook",color:g})),i.createElement(Kt,{$clickable:!!o,$highlightColor:b,variant:"body2",color:C,onClick:()=>o==null?void 0:o(e),maxTextLines:1},e.name))),t==null?void 0:t.map(v=>i.createElement(Dn,{key:v.key},i.createElement(Yt,null,i.createElement(W,{size:16,type:"function",color:g})),i.createElement(dn,null,i.createElement(Kt,{$clickable:!!s,$highlightColor:b,variant:"body2",color:C,onClick:()=>s==null?void 0:s(v),maxTextLines:1},v.name),a&&i.createElement(lf,{role:"button",onClick:()=>a==null?void 0:a(v)},i.createElement($,{variant:"body2",color:b},"View details"),i.createElement(W,{type:"chevron-right",size:16,color:b}))))),n==null?void 0:n.map(v=>i.createElement(Dn,{key:v.id},i.createElement(Yt,null,m({default:i.createElement(W,{size:16,type:Co[v.source_type]??Co.snippet,color:g}),sourceType:v.source_type})),i.createElement(Kt,{$clickable:!!l,$highlightColor:b,variant:"body2",color:C,onClick:()=>l==null?void 0:l(v),maxTextLines:1},v.preview_title))),r==null?void 0:r.map(v=>i.createElement(Dn,{key:v.key},i.createElement(Yt,null,i.createElement(W,{size:16,type:"template",color:g})),i.createElement(Kt,{$clickable:!!c,$highlightColor:b,variant:"body2",color:C,onClick:()=>c==null?void 0:c(v),maxTextLines:1},v.name))),d)},af=_.default($)`font-weight:400;`,Kt=_.default(af)`${({$clickable:e,$highlightColor:t})=>e&&O.css`
|
|
375
376
|
cursor: pointer;
|
|
376
377
|
text-decoration: underline;
|
|
377
378
|
&:hover {
|
|
378
379
|
color: ${t};
|
|
379
380
|
}
|
|
380
381
|
`}
|
|
381
|
-
`,Kt=_.default.div`display:flex;align-items:center;justify-content:center;flex-shrink:0;`,un=_.default.div`display:flex;gap:8px;align-items:center;word-break:break-word;`,Qg=_.default(un)`cursor:pointer;gap:4px;`,Dn=_.default(un)`flex-direction:row;align-items:center;`,vo=_.default.div`display:flex;gap:4px;flex-direction:column;align-items:flex-start;`,Ys=c.createContext(null);function ef({testerType:e,origin:t,children:n}){return i.createElement(Ys.Provider,{value:{testerType:e,isActionbookTester:e==="actionbook",origin:t}},e&&i.createElement(tf,null),n)}const pt=()=>{const e=c.useContext(Ys);if(!e)throw new Error("_UNSAFE_INTERNAL_DashboardTesterProvider not found");return e},tf=()=>{const{isActionbookTester:e}=pt();return i.createElement(Je.Template,{template:e?nf:void 0},i.createElement(Je.MessageLogs,{component:rf}))},nf=e=>i.createElement(zs,{...e,testerMode:!0,maxBodyWidth:Y.WIDE_BODY_MAX_WIDTH}),rf=({extendedMessagePayload:e={}})=>{const{handlers:t}=ne(),{manual:n,groundedness:r,function_calls:o,agent_message_templates:s,is_thinking:a}=e;return a||!n&&!(r!=null&&r.length)&&!(o!=null&&o.length)&&!(s!=null&&s.length)?i.createElement(i.Fragment,null):i.createElement(of,null,i.createElement(sf,{width:4}),i.createElement(Ks,{actionbook:n,functionCalls:o,groundedness:r,agentMessageTemplates:s,onClickFunctionCallDetail:t==null?void 0:t.onFunctionCallDetailClick,style:{iconColor:p.themedColor.textHighEmphasis,textColor:p.themedColor.textHighEmphasis,barColor:p.themedColor.textDisabled},bottomContent:i.createElement(af,{variant:"caption2",color:p.themedColor.textLowEmphasis},"Only visible in the tester")}))},of=_.default.div`display:flex;gap:16px;margin:16px ${Y.HORIZONTAL_PADDING}px 0;align-self:stretch;`,sf=_.default.div`width:${({width:e})=>e}px;background-color:${p.themedColor.textDisabled};border-radius:100px;flex-shrink:0;`,af=_.default(D)`margin-top:5px;`,yo=40,So=.9,lf="[data-message-listitem]",cf='input, textarea, select, [role="textbox"], [contenteditable="true"]',uf=({event:e,list:t,isMessageAnchor:n})=>{switch(e.key){case"PageDown":return t.clientHeight*So;case"PageUp":return t.clientHeight*-So;case"ArrowDown":return n?yo:void 0;case"ArrowUp":return n?yo*-1:void 0;default:return}},df=({listRef:e,syncScrollPosition:t})=>c.useCallback(n=>{const r=e.current;if(!r||n.defaultPrevented||n.metaKey||n.altKey||n.ctrlKey)return;const o=n.target;if(!o||!r.contains(o)||o.closest(cf))return;const s=o===r||o.matches(lf),a=uf({event:n,list:r,isMessageAnchor:s});if(a==null||a===0)return;const l=Math.max(0,r.scrollHeight-r.clientHeight),u=Math.min(l,Math.max(0,r.scrollTop+a));u!==r.scrollTop&&(n.preventDefault(),t(u))},[e,t]),mf="[data-message-listitem]",hf=e=>Math.min(Math.max(0,e),1),gf=e=>{const n=e.getRootNode().activeElement,r=n==null?void 0:n.closest(mf),o=n===e||n===r;return!n||!e.contains(n)?null:o?e:n},ff=({list:e,focusRestoreTarget:t})=>{if(!t)return;const r=e.getRootNode().activeElement,o=r===e||e.contains(r),s=t===e||e.contains(t);o&&s&&t.focus({preventScroll:!0})},pf=({depsForResetScrollPositionToBottom:e,listRef:t,loadThreshold:n,messagesLength:r,onLoadNext:o,onLoadPrev:s,onScroll:a})=>{const l=c.useRef(!1),u=c.useRef(void 0),d=c.useRef(0),m=c.useRef(0),h=c.useRef(null),g=c.useRef(null),C=c.useRef(null);c.useLayoutEffect(()=>{t.current&&(t.current.scrollTop=t.current.scrollHeight)},e),c.useLayoutEffect(()=>{const y=t.current;y&&(u.current==="top"&&(y.scrollTop=y.scrollHeight-m.current,ff({list:y,focusRestoreTarget:h.current}),h.current=null),u.current==="bottom"&&(y.scrollTop=d.current),u.current=void 0)},[t,r]);const b=c.useCallback(async y=>{const E=t.current;if(!E||(a==null||a(y),m.current=E.scrollHeight-E.scrollTop,d.current=E.scrollTop,l.current))return;const x=E.clientHeight*hf(n);if(E.scrollTop<=x){l.current=!0,u.current="top",h.current=gf(E),await s(),l.current=!1;return}if(E.scrollHeight-E.scrollTop-E.clientHeight<=x){l.current=!0,u.current="bottom",await o(),l.current=!1;return}u.current=void 0},[t,n,o,s,a]),v=c.useCallback(y=>{const E=t.current;if(!E)return;const x=C.current;if(x!=null){if(x===E.scrollTop){C.current=null;return}C.current=null}const S=g.current;if(S!=null&&S===E.scrollTop){g.current=null,C.current=E.scrollTop,b(y);return}g.current=null,b(y)},[b,t]),f=c.useCallback(y=>{const E=t.current;E&&(g.current=y,C.current=null,E.scrollTop=y,E.dispatchEvent(new Event("scroll",{bubbles:!0})))},[t]);return c.useLayoutEffect(()=>()=>{g.current=null,C.current=null},[]),{handleScroll:v,syncScrollPosition:f}},_f=c.forwardRef(function(t,n){const{messages:r,renderMessage:o,loading:s,LoadingComponent:a,error:l,ErrorComponent:u,empty:d,EmptyComponent:m,messageTopArea:h,messageBottomArea:g,overlayArea:C,onLoadPrev:b,onLoadNext:v,loadThreshold:f=.05,onScroll:y=oe,depsForResetScrollPositionToBottom:E,stackDirection:x="top",bottomSpacerHeight:S=0,ariaLabel:I}=t,k=c.useRef(null),M=c.useCallback(L=>{k.current=L,n&&(typeof n=="function"?n(L):n.current=L)},[n]),{handleScroll:U,syncScrollPosition:F}=pf({depsForResetScrollPositionToBottom:E,listRef:k,loadThreshold:f,messagesLength:r.length,onLoadNext:v,onLoadPrev:b,onScroll:y}),G=df({listRef:k,syncScrollPosition:F});return l?i.createElement(i.Fragment,null,u):s?i.createElement(i.Fragment,null,a):i.createElement(Ef,{id:"infinite-list-container"},i.createElement(bf,{id:"infinite-list-inner",ref:M,onScroll:U,onKeyDown:G,role:"list","aria-label":I,tabIndex:0},x==="bottom"&&i.createElement("div",{style:{flexGrow:1}}),h,d?m:r.map((L,P)=>o({message:L,index:P})),g,S>0&&i.createElement("div",{style:{minHeight:S}})),i.createElement(Cf,{id:"infinite-list-overlay-container"},i.createElement(vf,{id:"infinite-list-overlay"},C)))}),Ef=_.default.div`display:flex;position:relative;flex:1;overflow:hidden;`,bf=_.default.div`display:flex;flex:1;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:${p.themedColor.textLowEmphasis}transparent;&::-webkit-scrollbar-thumb:hover{background-color:transparent;}`,Cf=_.default.div`position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;`,vf=_.default.div`pointer-events:auto;`,Ue=({as:e,type:t,size:n=16,color:r,disabled:o,children:s,...a})=>{const l=o?p.themedColor.textDisabled:p.themedColor.textHighEmphasis;return i.createElement(yf,{as:e,disabled:o,...a},i.createElement(z,{type:t,size:n,color:r??l}),s)},yf=_.default.button`all:unset;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;${be}&:disabled{cursor:not-allowed;}`,Sf=({files:e,initialIndex:t=0,onClose:n,visible:r})=>{var I,k;const[o,s]=c.useState(t),[a,l]=c.useState(!1),{stringSet:u,format:d}=Q(),{config:m}=ne(),h=e.length,g=e[o],C=((k=(I=m==null?void 0:m.conversation)==null?void 0:I.fileViewer)==null?void 0:k.downloadEnabled)!==!1,b=h>1,v=(g==null?void 0:g.type)||"",f=ze(v),y=Uo(v),E=!Fu(v);c.useEffect(()=>{r&&(s(t),l(!1))},[r,t]);const x=c.useCallback(()=>{o>0&&(s(M=>M-1),l(!1))},[o]),S=c.useCallback(()=>{o<h-1&&(s(M=>M+1),l(!1))},[o,h]);return c.useEffect(()=>{if(!r)return;const M=U=>{U.key==="ArrowLeft"?x():U.key==="ArrowRight"&&S()};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[r,x,S]),!r||!g?null:i.createElement(ft,{onClose:n,visible:r,rootElementId:ce.MODAL_ROOT,"aria-label":(g==null?void 0:g.name)||u.IMAGE_VIEWER__DEFAULT_TITLE},i.createElement(Af,null,i.createElement(xf,null,i.createElement(Tf,null,i.createElement(If,null,i.createElement(D,{variant:"button",maxTextLines:1,color:p.themedColor.textHighEmphasis},g.name||u.IMAGE_VIEWER__DEFAULT_TITLE),g.timestamp&&i.createElement(D,{variant:"caption2",color:p.themedColor.textMidEmphasis},d(new Date(g.timestamp),"h:mm a")))),i.createElement(wf,{type:"close",size:24,"aria-label":u.A11Y_IMAGE_VIEWER_CLOSE,onClick:n})),i.createElement(kf,{onClick:M=>M.currentTarget===M.target&&n()},b&&i.createElement(Ao,{$position:"left",type:"chevron-right",size:32,onClick:x,"aria-label":u.A11Y_IMAGE_VIEWER_PREVIOUS,disabled:o===0,$flipped:!0}),i.createElement(Lf,null,f&&i.createElement(i.Fragment,null,!a&&i.createElement(Mf,null,i.createElement(it,{size:32},i.createElement(z,{type:"spinner",color:"textLowEmphasis",size:32}))),i.createElement(Of,{src:g.url,alt:g.name||"Image",$loaded:a,onLoad:()=>l(!0)})),y&&i.createElement(Rf,{controls:!0},i.createElement("source",{src:g.url,type:v})),E&&i.createElement(Nf,null,i.createElement(D,{variant:"h1",color:p.themedColor.textHighEmphasis},u.FILE_VIEWER__UNSUPPORT))),b&&i.createElement(Ao,{$position:"right",type:"chevron-right",size:32,onClick:S,"aria-label":u.A11Y_IMAGE_VIEWER_NEXT,disabled:o===h-1})),i.createElement(Df,null,i.createElement($f,null),b&&i.createElement(D,{variant:"body3",color:p.themedColor.textHighEmphasis},o+1,"/",h),i.createElement(Pf,null,C&&!E&&i.createElement(Ue,{as:"a",href:g.url,download:g.name||"file",type:"download",size:24,"aria-label":u.A11Y_IMAGE_VIEWER_DOWNLOAD})))))},Af=_.default.div`position:fixed;inset:0;outline:none;display:flex;flex-direction:column;background-color:${p.themedColor.bg_50_600};`,xf=_.default.header`display:flex;align-items:center;justify-content:space-between;padding:12px 16px;min-height:56px;border-bottom:1px solid ${p.themedColor.textDisabled};`,Tf=_.default.div`flex:1;min-width:0;padding-right:16px;`,If=_.default.div`display:flex;flex-direction:column;gap:2px;`,wf=_.default(Ue)`flex-shrink:0;width:32px;height:32px;border-radius:50%;&:hover{background-color:${p.themedColor.bg_100_500};}`,_n=_.default.div`display:flex;align-items:center;justify-content:center;`,kf=_.default(_n)`flex:1;min-height:0;position:relative;padding:0 16px;`,Lf=_.default(_n)`position:relative;max-width:100%;max-height:100%;`,Mf=_.default(_n)`position:absolute;inset:0;`,Of=_.default.img`max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;opacity:${e=>e.$loaded?1:0};transition:opacity 0.3s ease;`,Rf=_.default.video`max-width:100%;max-height:100%;object-fit:contain;`,Nf=_.default(_n)`flex-direction:column;gap:16px;`,Ao=_.default(Ue)`position:absolute;${e=>e.$position==="left"?"left: 16px;":"right: 16px;"}top:50%;transform:translateY(-50%) ${e=>e.$flipped?"scaleX(-1)":""};border-radius:50%;&:hover:not(:disabled){background-color:${p.themedColor.bg_200_400};}&:disabled{opacity:0.3;}@media (max-width:480px){width:38px;height:38px;${e=>e.$position==="left"?"left: 8px;":"right: 8px;"}}`,Df=_.default.footer`display:flex;align-items:center;justify-content:space-between;padding:16px;min-height:56px;border-top:1px solid ${p.themedColor.textDisabled};`,$f=_.default.div`width:40px;`,Pf=_.default.div`display:flex;align-items:center;justify-content:flex-end;width:40px;`,js=({title:e,description:t,negativeText:n,positiveText:r,onCancel:o,onConfirm:s})=>i.createElement(Ff,null,i.createElement(Bf,null,i.createElement(D,{as:"div",variant:"h2",color:p.themedColor.textHighEmphasis},e)),i.createElement(Hf,null,i.createElement(D,{as:"div",variant:"body3",color:p.themedColor.textMidEmphasis},t)),i.createElement(Uf,null,i.createElement(Vf,{type:"button",onClick:o},i.createElement(D,{variant:"button",color:p.themedColor.textHighEmphasis},n)),i.createElement(Gf,{type:"button",onClick:s},i.createElement(D,{variant:"button",color:p.themedColor.textHighEmphasisInverse},r)))),Ff=_.default.div`display:flex;flex-direction:column;width:280px;border-radius:16px;overflow:hidden;background-color:${p.color.background50};${W.dark`
|
|
382
|
+
`,Yt=_.default.div`display:flex;align-items:center;justify-content:center;flex-shrink:0;`,dn=_.default.div`display:flex;gap:8px;align-items:center;word-break:break-word;`,lf=_.default(dn)`cursor:pointer;gap:4px;`,Dn=_.default(dn)`flex-direction:row;align-items:center;`,vo=_.default.div`display:flex;gap:4px;flex-direction:column;align-items:flex-start;`,js=u.createContext(null);function cf({testerType:e,origin:t,children:n}){return i.createElement(js.Provider,{value:{testerType:e,isActionbookTester:e==="actionbook",origin:t}},e&&i.createElement(uf,null),n)}const pt=()=>{const e=u.useContext(js);if(!e)throw new Error("_UNSAFE_INTERNAL_DashboardTesterProvider not found");return e},uf=()=>{const{isActionbookTester:e}=pt();return i.createElement(Je.Template,{template:e?df:void 0},i.createElement(Je.MessageLogs,{component:mf}))},df=e=>i.createElement(Ws,{...e,testerMode:!0,maxBodyWidth:K.WIDE_BODY_MAX_WIDTH}),mf=({extendedMessagePayload:e={}})=>{const{handlers:t}=ne(),{manual:n,groundedness:r,function_calls:o,agent_message_templates:s,is_thinking:a}=e;return a||!n&&!(r!=null&&r.length)&&!(o!=null&&o.length)&&!(s!=null&&s.length)?i.createElement(i.Fragment,null):i.createElement(hf,null,i.createElement(gf,{width:4}),i.createElement(Ys,{actionbook:n,functionCalls:o,groundedness:r,agentMessageTemplates:s,onClickFunctionCallDetail:t==null?void 0:t.onFunctionCallDetailClick,style:{iconColor:p.themedColor.textHighEmphasis,textColor:p.themedColor.textHighEmphasis,barColor:p.themedColor.textDisabled},bottomContent:i.createElement(ff,{variant:"caption2",color:p.themedColor.textLowEmphasis},"Only visible in the tester")}))},hf=_.default.div`display:flex;gap:16px;margin:16px ${K.HORIZONTAL_PADDING}px 0;align-self:stretch;`,gf=_.default.div`width:${({width:e})=>e}px;background-color:${p.themedColor.textDisabled};border-radius:100px;flex-shrink:0;`,ff=_.default($)`margin-top:5px;`,yo=40,So=.9,pf="[data-message-listitem]",_f='input, textarea, select, [role="textbox"], [contenteditable="true"]',Ef=({event:e,list:t,isMessageAnchor:n})=>{switch(e.key){case"PageDown":return t.clientHeight*So;case"PageUp":return t.clientHeight*-So;case"ArrowDown":return n?yo:void 0;case"ArrowUp":return n?yo*-1:void 0;default:return}},bf=({listRef:e,syncScrollPosition:t})=>u.useCallback(n=>{const r=e.current;if(!r||n.defaultPrevented||n.metaKey||n.altKey||n.ctrlKey)return;const o=n.target;if(!o||!r.contains(o)||o.closest(_f))return;const s=o===r||o.matches(pf),a=Ef({event:n,list:r,isMessageAnchor:s});if(a==null||a===0)return;const l=Math.max(0,r.scrollHeight-r.clientHeight),c=Math.min(l,Math.max(0,r.scrollTop+a));c!==r.scrollTop&&(n.preventDefault(),t(c))},[e,t]),Cf="[data-message-listitem]",vf=e=>Math.min(Math.max(0,e),1),yf=e=>{const n=e.getRootNode().activeElement,r=n==null?void 0:n.closest(Cf),o=n===e||n===r;return!n||!e.contains(n)?null:o?e:n},Sf=({list:e,focusRestoreTarget:t})=>{if(!t)return;const r=e.getRootNode().activeElement,o=r===e||e.contains(r),s=t===e||e.contains(t);o&&s&&t.focus({preventScroll:!0})},Af=({depsForResetScrollPositionToBottom:e,listRef:t,loadThreshold:n,messagesLength:r,onLoadNext:o,onLoadPrev:s,onScroll:a})=>{const l=u.useRef(!1),c=u.useRef(void 0),d=u.useRef(0),m=u.useRef(0),h=u.useRef(null),g=u.useRef(null),C=u.useRef(null);u.useLayoutEffect(()=>{t.current&&(t.current.scrollTop=t.current.scrollHeight)},e),u.useLayoutEffect(()=>{const y=t.current;y&&(c.current==="top"&&(y.scrollTop=y.scrollHeight-m.current,Sf({list:y,focusRestoreTarget:h.current}),h.current=null),c.current==="bottom"&&(y.scrollTop=d.current),c.current=void 0)},[t,r]);const b=u.useCallback(async y=>{const E=t.current;if(!E||(a==null||a(y),m.current=E.scrollHeight-E.scrollTop,d.current=E.scrollTop,l.current))return;const x=E.clientHeight*vf(n);if(E.scrollTop<=x){l.current=!0,c.current="top",h.current=yf(E),await s(),l.current=!1;return}if(E.scrollHeight-E.scrollTop-E.clientHeight<=x){l.current=!0,c.current="bottom",await o(),l.current=!1;return}c.current=void 0},[t,n,o,s,a]),v=u.useCallback(y=>{const E=t.current;if(!E)return;const x=C.current;if(x!=null){if(x===E.scrollTop){C.current=null;return}C.current=null}const S=g.current;if(S!=null&&S===E.scrollTop){g.current=null,C.current=E.scrollTop,b(y);return}g.current=null,b(y)},[b,t]),f=u.useCallback(y=>{const E=t.current;E&&(g.current=y,C.current=null,E.scrollTop=y,E.dispatchEvent(new Event("scroll",{bubbles:!0})))},[t]);return u.useLayoutEffect(()=>()=>{g.current=null,C.current=null},[]),{handleScroll:v,syncScrollPosition:f}},xf=u.forwardRef(function(t,n){const{messages:r,renderMessage:o,loading:s,LoadingComponent:a,error:l,ErrorComponent:c,empty:d,EmptyComponent:m,messageTopArea:h,messageBottomArea:g,overlayArea:C,onLoadPrev:b,onLoadNext:v,loadThreshold:f=.05,onScroll:y=oe,depsForResetScrollPositionToBottom:E,stackDirection:x="top",bottomSpacerHeight:S=0,ariaLabel:I}=t,k=u.useRef(null),M=u.useCallback(L=>{k.current=L,n&&(typeof n=="function"?n(L):n.current=L)},[n]),{handleScroll:U,syncScrollPosition:F}=Af({depsForResetScrollPositionToBottom:E,listRef:k,loadThreshold:f,messagesLength:r.length,onLoadNext:v,onLoadPrev:b,onScroll:y}),z=bf({listRef:k,syncScrollPosition:F});return l?i.createElement(i.Fragment,null,c):s?i.createElement(i.Fragment,null,a):i.createElement(Tf,{id:"infinite-list-container"},i.createElement(If,{id:"infinite-list-inner",ref:M,onScroll:U,onKeyDown:z,role:"list","aria-label":I,tabIndex:0},x==="bottom"&&i.createElement("div",{style:{flexGrow:1}}),h,d?m:r.map((L,P)=>o({message:L,index:P})),g,S>0&&i.createElement("div",{style:{minHeight:S}})),i.createElement(wf,{id:"infinite-list-overlay-container"},i.createElement(kf,{id:"infinite-list-overlay"},C)))}),Tf=_.default.div`display:flex;position:relative;flex:1;overflow:hidden;`,If=_.default.div`display:flex;flex:1;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:${p.themedColor.textLowEmphasis}transparent;&::-webkit-scrollbar-thumb:hover{background-color:transparent;}`,wf=_.default.div`position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;`,kf=_.default.div`pointer-events:auto;`,Ue=({as:e,type:t,size:n=16,color:r,disabled:o,children:s,...a})=>{const l=o?p.themedColor.textDisabled:p.themedColor.textHighEmphasis;return i.createElement(Lf,{as:e,disabled:o,...a},i.createElement(W,{type:t,size:n,color:r??l}),s)},Lf=_.default.button`all:unset;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;${_e}&:disabled{cursor:not-allowed;}`,Mf=({files:e,initialIndex:t=0,onClose:n,visible:r})=>{var I,k;const[o,s]=u.useState(t),[a,l]=u.useState(!1),{stringSet:c,format:d}=Q(),{config:m}=ne(),h=e.length,g=e[o],C=((k=(I=m==null?void 0:m.conversation)==null?void 0:I.fileViewer)==null?void 0:k.downloadEnabled)!==!1,b=h>1,v=(g==null?void 0:g.type)||"",f=ze(v),y=Uo(v),E=!ed(v);u.useEffect(()=>{r&&(s(t),l(!1))},[r,t]);const x=u.useCallback(()=>{o>0&&(s(M=>M-1),l(!1))},[o]),S=u.useCallback(()=>{o<h-1&&(s(M=>M+1),l(!1))},[o,h]);return u.useEffect(()=>{if(!r)return;const M=U=>{U.key==="ArrowLeft"?x():U.key==="ArrowRight"&&S()};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[r,x,S]),!r||!g?null:i.createElement(ft,{onClose:n,visible:r,rootElementId:ce.MODAL_ROOT,"aria-label":(g==null?void 0:g.name)||c.IMAGE_VIEWER__DEFAULT_TITLE},i.createElement(Rf,null,i.createElement(Of,null,i.createElement(Nf,null,i.createElement($f,null,i.createElement($,{variant:"button",maxTextLines:1,color:p.themedColor.textHighEmphasis},g.name||c.IMAGE_VIEWER__DEFAULT_TITLE),g.timestamp&&i.createElement($,{variant:"caption2",color:p.themedColor.textMidEmphasis},d(new Date(g.timestamp),"h:mm a")))),i.createElement(Df,{type:"close",size:24,"aria-label":c.A11Y_IMAGE_VIEWER_CLOSE,onClick:n})),i.createElement(Pf,{onClick:M=>M.currentTarget===M.target&&n()},b&&i.createElement(Ao,{$position:"left",type:"chevron-right",size:32,onClick:x,"aria-label":c.A11Y_IMAGE_VIEWER_PREVIOUS,disabled:o===0,$flipped:!0}),i.createElement(Ff,null,f&&i.createElement(i.Fragment,null,!a&&i.createElement(Bf,null,i.createElement(st,{size:32},i.createElement(W,{type:"spinner",color:"textLowEmphasis",size:32}))),i.createElement(Hf,{src:g.url,alt:g.name||"Image",$loaded:a,onLoad:()=>l(!0)})),y&&i.createElement(Uf,{controls:!0},i.createElement("source",{src:g.url,type:v})),E&&i.createElement(Vf,null,i.createElement($,{variant:"h1",color:p.themedColor.textHighEmphasis},c.FILE_VIEWER__UNSUPPORT))),b&&i.createElement(Ao,{$position:"right",type:"chevron-right",size:32,onClick:S,"aria-label":c.A11Y_IMAGE_VIEWER_NEXT,disabled:o===h-1})),i.createElement(Gf,null,i.createElement(zf,null),b&&i.createElement($,{variant:"body3",color:p.themedColor.textHighEmphasis},o+1,"/",h),i.createElement(Wf,null,C&&!E&&i.createElement(Ue,{as:"a",href:g.url,download:g.name||"file",type:"download",size:24,"aria-label":c.A11Y_IMAGE_VIEWER_DOWNLOAD})))))},Rf=_.default.div`position:fixed;inset:0;outline:none;display:flex;flex-direction:column;background-color:${p.themedColor.bg_50_600};`,Of=_.default.header`display:flex;align-items:center;justify-content:space-between;padding:12px 16px;min-height:56px;border-bottom:1px solid ${p.themedColor.textDisabled};`,Nf=_.default.div`flex:1;min-width:0;padding-right:16px;`,$f=_.default.div`display:flex;flex-direction:column;gap:2px;`,Df=_.default(Ue)`flex-shrink:0;width:32px;height:32px;border-radius:50%;&:hover{background-color:${p.themedColor.bg_100_500};}`,En=_.default.div`display:flex;align-items:center;justify-content:center;`,Pf=_.default(En)`flex:1;min-height:0;position:relative;padding:0 16px;`,Ff=_.default(En)`position:relative;max-width:100%;max-height:100%;`,Bf=_.default(En)`position:absolute;inset:0;`,Hf=_.default.img`max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;opacity:${e=>e.$loaded?1:0};transition:opacity 0.3s ease;`,Uf=_.default.video`max-width:100%;max-height:100%;object-fit:contain;`,Vf=_.default(En)`flex-direction:column;gap:16px;`,Ao=_.default(Ue)`position:absolute;${e=>e.$position==="left"?"left: 16px;":"right: 16px;"}top:50%;transform:translateY(-50%) ${e=>e.$flipped?"scaleX(-1)":""};border-radius:50%;&:hover:not(:disabled){background-color:${p.themedColor.bg_200_400};}&:disabled{opacity:0.3;}@media (max-width:480px){width:38px;height:38px;${e=>e.$position==="left"?"left: 8px;":"right: 8px;"}}`,Gf=_.default.footer`display:flex;align-items:center;justify-content:space-between;padding:16px;min-height:56px;border-top:1px solid ${p.themedColor.textDisabled};`,zf=_.default.div`width:40px;`,Wf=_.default.div`display:flex;align-items:center;justify-content:flex-end;width:40px;`,Xs=({title:e,description:t,negativeText:n,positiveText:r,onCancel:o,onConfirm:s})=>i.createElement(qf,null,i.createElement(Kf,null,i.createElement($,{as:"div",variant:"h2",color:p.themedColor.textHighEmphasis},e)),i.createElement(Yf,null,i.createElement($,{as:"div",variant:"body3",color:p.themedColor.textMidEmphasis},t)),i.createElement(jf,null,i.createElement(Xf,{type:"button",onClick:o},i.createElement($,{variant:"button",color:p.themedColor.textHighEmphasis},n)),i.createElement(Zf,{type:"button",onClick:s},i.createElement($,{variant:"button",color:p.themedColor.textHighEmphasisInverse},r)))),qf=_.default.div`display:flex;flex-direction:column;width:280px;border-radius:16px;overflow:hidden;background-color:${p.color.background50};${G.dark`
|
|
382
383
|
background-color: ${p.color.background500};
|
|
383
384
|
`}
|
|
384
|
-
`,
|
|
385
|
-
`,
|
|
385
|
+
`,Kf=_.default.div`padding:24px 24px 16px;`,Yf=_.default.div`padding-inline:24px;`,jf=_.default.div`display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:4px;padding:16px 24px;`,Xf=_.default.button`display:flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:0;cursor:pointer;border:none;background:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;&:hover{opacity:0.8;}`,Zf=_.default.button`display:flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:20px;cursor:pointer;border:none;background-color:${p.themedColor.textHighEmphasis};white-space:nowrap;overflow:hidden;text-overflow:ellipsis;&:hover{opacity:0.8;}`,jt=16,Jf=({status:e})=>e===en.COMPLETED?i.createElement(W,{type:"done-circle",size:jt,color:p.themedColor.textHighEmphasis}):e===en.CANCELED?i.createElement(W,{type:"stop-circle",size:jt,color:p.themedColor.textLowEmphasis}):i.createElement(st,{size:jt},i.createElement(W,{type:"spinner",size:jt,color:p.themedColor.textHighEmphasis})),Zs=24,Qf=8,ep=40,tp=({task:e,isFirst:t,isLast:n})=>i.createElement(np,{role:"listitem"},i.createElement(rp,null,i.createElement(xo,{$hidden:t}),i.createElement(op,null,i.createElement(Jf,{status:e.status})),i.createElement(xo,{$hidden:n})),i.createElement(sp,null,i.createElement($,{as:"div",variant:"body3",color:e.status===en.CANCELED?p.themedColor.textLowEmphasis:p.themedColor.textHighEmphasis},e.user_facing_title))),np=_.default.div`display:flex;gap:4px;`,rp=_.default.div`display:flex;flex-direction:column;align-items:center;width:${Zs}px;flex-shrink:0;`,xo=_.default.div`width:1px;flex:1;transform:translateX(-25%);${({$hidden:e})=>e&&"visibility: hidden;"}background-image:repeating-linear-gradient( to bottom,${p.themedColor.textHighEmphasis}0 2px,transparent 2px 4px );`,op=_.default.div`display:flex;height:${Zs}px;align-items:center;justify-content:center;`,sp=_.default.div`display:flex;flex:1;align-items:center;box-sizing:border-box;min-width:0;min-height:${ep}px;padding-block:${Qf}px;`,ip=({steward:e,onCancelSteward:t})=>{const{logger:n}=ne(),[r,o]=u.useState(!1),[s,a]=u.useState(!1),l=!!e.cancellation_option,c=Ni(e.status);return i.createElement(ap,{$marginBottom:hn("single")},i.createElement(lp,null,i.createElement(cp,null,i.createElement(up,null,i.createElement($,{as:"div",variant:"caption1",color:p.themedColor.textHighEmphasis},e.title),!!e.description&&i.createElement($,{as:"div",variant:"caption4",color:p.themedColor.textLowEmphasis},e.description)),l&&i.createElement(gp,{type:"button","aria-label":"Stop steward",disabled:s,onClick:()=>o(!0)},i.createElement(W,{type:"stop",size:16,color:s?p.themedColor.textDisabled:p.themedColor.textHighEmphasis}))),i.createElement(dp,null),e.tasks.length===0?c!==St.IN_PROGRESS?null:i.createElement(hp,null,i.createElement(st,{size:16},i.createElement(W,{type:"spinner",size:16,color:p.themedColor.textHighEmphasis}))):i.createElement(mp,{role:"list"},e.tasks.map((d,m)=>i.createElement(tp,{key:d.id,task:d,isFirst:m===0,isLast:m===e.tasks.length-1})))),r&&e.cancellation_option&&i.createElement(ft,{rootElementId:ce.WINDOW,visible:r,onClose:()=>o(!1)},i.createElement(Xs,{title:e.cancellation_option.title,description:e.cancellation_option.description,negativeText:e.cancellation_option.negative_text,positiveText:e.cancellation_option.positive_text,onCancel:()=>o(!1),onConfirm:async()=>{o(!1),a(!0);try{await(t==null?void 0:t())}catch(d){n.warn("steward.cancelSteward: failed",d)}finally{a(!1)}}})))},ap=_.default.div`display:flex;flex-direction:column;margin:0 ${K.HORIZONTAL_PADDING}px;margin-bottom:${({$marginBottom:e})=>`${e}px`};
|
|
386
|
+
`,lp=_.default.div`display:flex;flex-direction:column;border-radius:12px;overflow:hidden;padding:16px;border:1px solid ${p.themedColor.bg_300_500};background-color:${p.themedColor.bg_50_600};box-shadow:0 8px 20px rgba(0,0,0,0.12);`,cp=_.default.div`display:flex;flex-direction:row;align-items:flex-start;gap:8px;`,up=_.default.div`display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;`,dp=_.default.div`height:1px;margin-block:12px;background-color:${p.themedColor.bg_200_400};`,mp=_.default.div`display:flex;flex-direction:column;`,hp=_.default.div`display:flex;width:100%;height:40px;align-items:center;justify-content:center;`,gp=_.default.button`width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:none;cursor:pointer;color:${p.themedColor.textHighEmphasis};background-color:${p.themedColor.bg_200_400};&:hover:not(:disabled){opacity:0.8;}&:disabled{cursor:default;}`,fp=({className:e,label:t,onClick:n})=>{const{colors:r}=O.useTheme(),{conversation:o}=ee(),s=o.newMessagesButton;return i.createElement(pp,{className:e,onClick:n,...s.props},i.createElement($,{variant:"button",color:r.base.primaryContrastContent},t),i.createElement(W,{size:16,type:"chevron-down",color:r.base.primaryContrastContent}),s.descriptionNode)},pp=_.default.button`all:unset;cursor:pointer;display:flex;align-items:center;gap:4px;padding:10px 12px 10px 16px;border-radius:24px;background-color:${({theme:e})=>e.colors.base.primary};box-shadow:0 8px 10px 1px rgba(13,13,13,0.12),0 3px 14px 2px rgba(13,13,13,0.08),0 3px 5px -3px rgba(13,13,13,0.04);&:focus{outline:none;}${_e}`,Sr=({iconSize:e=64,icon:t,className:n,label:r,children:o})=>i.createElement(Ep,{className:n},t&&i.createElement(W,{type:t,size:e,color:p.themedColor.textLowEmphasis}),r&&i.createElement($,{variant:"body1",color:p.themedColor.textMidEmphasis},r),o),_p=_.default.div`position:relative;display:flex;justify-content:center;align-items:center;width:100%;height:100%;`,Ep=_.default.div`display:flex;flex-direction:column;min-height:104px;align-items:center;gap:20px;text-align:center;`,bp=({label:e="Something went wrong",icon:t="error",action:n,...r})=>i.createElement(Sr,{icon:t,label:e,...r},n&&i.createElement(Cp,{onClick:n.onClick,label:n.label??"Retry"})),Cp=({label:e,onClick:t})=>{const{conversation:n}=ee();return i.createElement(vp,{tabIndex:0,"aria-label":n.retryButton(e)["aria-label"],onClick:t},i.createElement(W,{type:"refresh",size:20}),i.createElement($,{variant:"button",color:p.color.primary.main},e))},vp=_.default.button`all:unset;display:flex;cursor:pointer;gap:4px;align-items:center;justify-content:center;${_e}`,yp=({iconSize:e=48,className:t})=>i.createElement(st,{size:e,className:t}),Sp=({label:e="No channels",icon:t="chat",...n})=>i.createElement(Sr,{icon:t,label:e,...n}),Ap=({label:e="No messages",icon:t="message",...n})=>i.createElement(Sr,{icon:t,label:e,...n}),xp=e=>{const{components:t}=bn.useContext(),n=e.type==="loading"?i.createElement(t.Loading,{...e}):e.type==="error"?i.createElement(t.Error,{...e}):e.type==="noChannels"?i.createElement(t.NoChannels,{...e}):e.type==="noMessages"?i.createElement(t.NoMessages,{...e}):null;return n&&i.createElement(_p,null,n)},bn=Pe({template:xp,components:{Loading:yp,Error:bp,NoChannels:Sp,NoMessages:Ap}}),At=e=>{const{Template:t}=bn.useContext();return i.createElement(t,{...e})},Tp=[0,150,450];function Ip({enabled:e}){const{state:t,actions:n}=xs(),r=u.useRef(0),o=u.useRef(t.isAwayFromBottom);o.current=t.isAwayFromBottom,u.useEffect(()=>{if(!e){r.current+=1;return}const s=r.current+1;r.current=s;const a=Tp.map(l=>setTimeout(()=>{ve(()=>{r.current===s&&(o.current||n.scrollToBottom(!1))})},l));return()=>{r.current+=1,a.forEach(l=>clearTimeout(l))}},[n.scrollToBottom,e])}const wp=({className:e,date:t=Date.now(),style:n})=>{const{format:r,stringSet:o}=Q();return i.createElement(kp,{id:`${we}-date-separator`,style:n,className:e},i.createElement($,{variant:"caption4",color:p.themedColor.textMidEmphasis},r(t,o.DATE_FORMAT__MESSAGE_LIST__DATE_SEPARATOR)))},kp=_.default.div`display:flex;justify-content:center;align-items:center;text-align:center;word-break:break-word;`,Lp=({className:e,style:t,onClick:n})=>{const{conversation:r}=ee(),o=r.scrollToBottomButton;return i.createElement(Mp,{className:e,style:t,onClick:n,tabIndex:0,...o.props},i.createElement(W,{size:24,type:"chevron-down",color:p.color.primary.main}),o.descriptionNode??null)},Mp=_.default.button`all:unset;cursor:pointer;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:24px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.08),0 4px 6px 0 rgba(0,0,0,0.12);${G.light`
|
|
386
387
|
background-color: ${p.color.background50};
|
|
387
388
|
&:hover {
|
|
388
389
|
background-color: ${p.color.background100};
|
|
@@ -391,7 +392,7 @@
|
|
|
391
392
|
background-color: ${p.color.background200};
|
|
392
393
|
}
|
|
393
394
|
`}
|
|
394
|
-
${
|
|
395
|
+
${G.dark`
|
|
395
396
|
background-color: ${p.color.background400};
|
|
396
397
|
&:hover {
|
|
397
398
|
background-color: ${p.color.background500};
|
|
@@ -405,15 +406,19 @@
|
|
|
405
406
|
outline: none;
|
|
406
407
|
}
|
|
407
408
|
|
|
408
|
-
${
|
|
409
|
-
`,
|
|
409
|
+
${_e}
|
|
410
|
+
`,Rp=()=>null,Cn=Pe({template:Rp,components:{DateSeparator:wp,ScrollToBottomButton:Lp}}),Op=()=>{const{stringSet:e,format:t}=Q(),{agentPreviewConfigs:n={},aiAgentId:r}=ne(),{aiAgentInfo:o}=Ee(),{messageSource:s}=he(),{Template:a}=Je.useContext(),{components:l}=Cn.useContext(),c=n.welcomeMessages??[],d=s.messages,m=nd(d,r),h=d[m.length+1],g=m[0]??h;return{filteredMessages:Is(d,{previewWelcomeMessages:c,aiAgentUserId:r}),shouldShowOriginalDate:C=>C>0||c.length===0?!0:h&&!We.isSameDay(h.createdAt,(g==null?void 0:g.createdAt)??0),renderAgentPreviewWelcomeMessages:()=>c.length===0?null:i.createElement(i.Fragment,null,i.createElement(l.DateSeparator,{style:{margin:"16px 0"},date:g==null?void 0:g.createdAt}),c.map((C,b)=>{const v=b===c.length-1,f=m.length!==d.length,y=c.length===1?"single":b===0?"top":v||f?"bottom":"middle",E=(g==null?void 0:g.createdAt)??Date.now();return i.createElement("div",{key:b,role:"listitem",tabIndex:-1,"aria-label":dt({sender:(o==null?void 0:o.nickname)||"",message:C.message,messageFormat:"markdown",time:t(E,e.DATE_FORMAT__MESSAGE_TIMESTAMP),codeBlockPlaceholder:e.A11Y_CODE_BLOCK_PLACEHOLDER}),"data-message-listitem":""},i.createElement(a,{messageType:"user",message:C.message,sender:o,groupType:y,createdAt:E,extendedMessagePayload:{suggested_replies:C.suggestedReplies},suggestedRepliesDirection:n.suggestedRepliesDirection,suggestedRepliesVisible:v&&!f,isBotMessage:!0,onClickSuggestedReply:async({reply:x})=>{s.sendUserMessage({message:x})}}))}))}},Np=()=>{const{messageSource:e,scrollSource:t}=he();u.useEffect(()=>{!t.state.isAwayFromBottom&&t.state.isScrollPositionReconciled&&e.resetNewMessages()},[t.state.isAwayFromBottom,t.state.isScrollPositionReconciled])},$p=e=>_.default(e).withConfig({shouldForwardProp:Oi.default}),Dp=({style:e})=>{const{stringSet:t}=Q(),{conversation:n}=ee(),{isActionbookTester:r}=pt();return!ur("powered-by")||r?null:i.createElement(Pp,{variant:"caption2",style:e},t.POWERED_BY+" ",i.createElement(Fp,{variant:"caption2",as:"a",href:"https://delight.ai?utm_medium=product&utm_source=aiagent&utm_campaign=fy26-glbl-ai-agent-poweredby",...n.poweredByLink,rel:hr,target:"_blank"},"Sendbird"))},Pp=_.default($)`color:${p.themedColor.textLowEmphasis};text-align:center;`,Fp=$p($)`
|
|
410
411
|
color: ${p.themedColor.textLowEmphasis};
|
|
411
412
|
cursor: pointer;
|
|
412
413
|
text-decoration: none;
|
|
413
|
-
`,Mp=()=>{var u;const{stringSet:e}=Q(),{conversation:t}=ee(),{channelSource:n,goToActiveConversation:r,scrollSource:o}=he(),s=Se(n.channel),a=c.useRef(s);if(c.useEffect(()=>{if(!a.current&&s){const h=setTimeout(()=>{o.actions.scrollToBottom()},100);return()=>clearTimeout(h)}a.current=s},[s,o.actions.scrollToBottom]),!((u=n.channel)!=null&&u.isAIAgent)||!s)return null;const l=t.startNewConversationButton({onActivate:r});return i.createElement(Op,null,i.createElement(Rp,{variant:"button",color:p.themedColor.textHighEmphasis,...l},e.TALK_TO_AGENT))},Op=_.default.div`display:flex;justify-content:center;margin-bottom:16px;`,Rp=_.default(D)`border-radius:6px;box-sizing:border-box;padding:10px 20px;border:1px solid ${p.themedColor.textDisabled};cursor:pointer;user-select:none;`,Np=()=>{var q,te,re,K;const{Template:e}=Nt.useContext(),{Template:t}=Je.useContext(),{Template:n}=pn.useContext(),{components:r}=bn.useContext(),{stringSet:o,format:s}=Q(),{conversation:a}=ee(),{config:l,cache:u,agentPreviewConfigs:d,chatSDK:m,state:h}=ne(),{userSession:g,aiAgentInfo:C,connectionError:b}=_e(),{conversation:v,channelSource:f,messageSource:y,scrollSource:E,state:{input:x,streamAnimation:S}}=he(),{isActionbookTester:I}=pt(),{filteredMessages:k,shouldShowOriginalDate:M,renderAgentPreviewWelcomeMessages:U}=xp(),F=os(f.channel),[G,L]=c.useState(null),[P,N]=c.useState(null);c.useEffect(()=>{E.actions.onTypingIndicatorUpdate(!!F)},[!!F,E.actions.onTypingIndicatorUpdate]),Tp(),bp({enabled:y.initialized&&y.messages.length>0});const w=(T,V=!1)=>{var H;return V?C:((H=f.channel)==null?void 0:H.members.find(j=>j.userId===T.sender.userId))??T.sender},$=T=>{if(T.sendingStatus==="failed"&&!x.disabled)return()=>N(T)},O=({message:T,index:V})=>{const H=Ni(T),j=k[V-1],se=k[V+1],le=k[k.length-1],Re=T===le,Ae=Tt(T,C.userId),B=!(C.isUserFeedbackEnabled&&Ae&&!$e.isWelcomeMessage(T)),Z=Di(T,j,se,B),X=!Ti.isSameDay((j==null?void 0:j.createdAt)??0,T.createdAt)&&M(V)&&!I,ge=xe=>{L({files:xe.files.map(et=>({...et,timestamp:T.createdAt})),index:xe.index})},ve=xe=>{ge({files:[xe],index:0})},Be=()=>{T.isFileMessage()&&fr(T.url)},lt=X?i.createElement(r.DateSeparator,{style:{margin:"16px 0"},date:T.createdAt}):null,Le={data:T.data,maxBodyWidth:h.expanded?Y.WIDE_BODY_MAX_WIDTH:void 0,extendedMessagePayload:T.extendedMessagePayload,createdAt:T.createdAt,groupType:Z,onClickMedia:ve,onClickMediaFiles:ge,onClickFile:Be},Ve=()=>{if(pe.isOutgoing(T,g.userId))return"outgoingmessage";if(pe.isIncoming(T,g.userId))return"incomingmessage"},ct=T.createdAt!=null&&T.createdAt!==0?s(T.createdAt,o.DATE_FORMAT__MESSAGE_TIMESTAMP):void 0,Qe=(()=>{var et,Et,Te,J,ue,Ie;const xe=(et=T.message)==null?void 0:et.trim();if(T.isFileMessage()){const $t=((Et=T.name)==null?void 0:Et.trim())||"";return ht({markdownText:xe,comparisonText:$t,plainText:a.file.label($t,T.type)})}if(T.isMultipleFilesMessage()){const $t=((ue=(J=(Te=T.fileInfoList)==null?void 0:Te[0])==null?void 0:J.fileName)==null?void 0:ue.trim())||"",wr=((Ie=T.fileInfoList)==null?void 0:Ie.length)??0;return ht({markdownText:xe,comparisonText:$t,plainText:wr>0?o.CONVERSATION_LIST__MULTIPLE_FILES_COUNT(wr):""})}return xe?ht({markdownText:xe}):dr("")})(),Ci=(()=>{if(pe.isAdmin(T))return mt({message:Qe.text,messageFormat:Qe.format,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER});if(pe.isOutgoing(T,g.userId))return mt({sender:o.A11Y_MESSAGE_SENDER_YOU,message:Qe.text,messageFormat:"plain",time:ct,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER});if(pe.isIncoming(T,g.userId))return mt({sender:w(T,Ae).nickname,message:Qe.text,messageFormat:Qe.format,time:ct,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER})})(),vi=(()=>{var xe,et,Et;if(pe.isAdmin(T))return pe.isCSAT(T)?v?i.createElement(n,{...Le,...v,isResolvedWhenDeterminedByUser:aa(v),messageType:"admin.csat",onSubmitCSAT:async Te=>{var J;await((J=f.channel)==null?void 0:J.submitCSAT(Te))},onScrollToBottom:()=>E.actions.scrollToBottom()}):null:i.createElement(n,{...Le,messageType:"admin",message:T.message});if(pe.isSteward(T))return i.createElement(Jf,{steward:T.extendedMessagePayload.steward,onCancelSteward:async()=>{await m.aiAgent.cancelStewardTask({channelUrl:T.channelUrl,messageId:T.messageId})}});if(pe.isOutgoing(T,g.userId)){const Te={...Le,message:T.message,sender:w(T),sendingStatus:T.sendingStatus,onClickFailedMessage:$(T)};if(T.isUserMessage())return i.createElement(e,{messageType:"user",...Te});if(T.isFileMessage()){const[J,ue]=((xe=T.metaArrays.find(Ie=>Ie.key===Bo))==null?void 0:xe.value)??[];return i.createElement(e,{messageType:"file",file:T,metadata:{aspectRatio:J&&ue?`${J}/${ue}`:"1/1",localFile:(et=T.messageParams)==null?void 0:et.file},...Te})}if(T.isMultipleFilesMessage()){const{files:J,metadata:ue}=co(T);return i.createElement(e,{messageType:"multipleFiles",files:J,metadata:ue,...Te})}}if(pe.isIncoming(T,g.userId)){const Te={...Le,sender:w(T,Ae),message:T.message,suggestedRepliesVisible:Re,suggestedRepliesDirection:d==null?void 0:d.suggestedRepliesDirection,isBotMessage:Ae,isStreaming:$e.isStreaming(T),isHandedOff:je(f.channel),isConversationClosed:Se(f.channel),isFeedbackEnabled:C.isUserFeedbackEnabled,isFeedbackCommentEnabled:C.isUserFeedbackCommentOptionEnabled,isSenderAvatarVisible:(Et=l==null?void 0:l.conversation)==null?void 0:Et.senderAvatarEnabled,onClickSuggestedReply:async({reply:J})=>{y.sendUserMessage({message:J})},onRequestMessageTemplate:async J=>{const{template:ue}=await m.aiAgent.getMessageTemplate(J);return u.template.set(J,ue),ue},onGetCachedMessageTemplate:J=>u.template.get(J),onHandleTemplateInternalAction:J=>{if(J.type==="internal"&&J.internalData){const{method:ue,payload:Ie}=J.internalData;ue==="message.send"&&(Ie!=null&&Ie.message)&&y.sendUserMessage({message:Ie.message})}},onFeedbackUpdate:J=>{const ue={messageId:T.messageId,channelUrl:T.channelUrl};if(!J)return m.aiAgent.deleteMessageFeedback(ue);const Ie={...ue,rating:xm(J.rating),comment:J.comment};return $e.hasFeedback(T)?m.aiAgent.updateMessageFeedback(Ie):m.aiAgent.createMessageFeedback(Ie)},onSubmitForm:({key:J,data:ue})=>m.aiAgent.submitForm({messageId:T.messageId,channelUrl:T.channelUrl,formKey:J,formData:ue}),onCancelForm:({key:J})=>m.aiAgent.cancelForm({messageId:T.messageId,channelUrl:T.channelUrl,formKey:J}),onStreamAnimationStart:()=>{S.start(T.messageId)},onStreamAnimationProgress:()=>{E.actions.onStreamingUpdate(!0)},onStreamAnimationComplete:()=>{S.stop(T.messageId),E.actions.onStreamingUpdate(!1)}};if(T.isUserMessage())return i.createElement(t,{messageType:"user",...Te});if(T.isFileMessage())return i.createElement(t,{messageType:"file",file:T,...Te});if(T.isMultipleFilesMessage()){const{files:J}=co(T);return i.createElement(t,{messageType:"multipleFiles",files:J,...Te})}}})();return i.createElement("div",{key:H,id:`${we}-message-item`,role:"listitem",tabIndex:-1,"aria-label":Ci,"data-message-listitem":"","data-layout-id":Ve()},lt,vi)};return i.createElement(Dp,{id:`${we}-message-list`},i.createElement(_f,{ref:E.ref,onScroll:E.props.onScroll,stackDirection:d==null?void 0:d.messageStackDirection,messages:k,renderMessage:O,onLoadPrev:y.loadPrevious,onLoadNext:y.loadNext,depsForResetScrollPositionToBottom:[y.initialized,y.messages.length!==0],bottomSpacerHeight:E.state.bottomSpace,ariaLabel:o.A11Y_MESSAGE_LIST,loading:!y.initialized||!f.channel,empty:k.length===0&&!F,error:!!(b||f.error),LoadingComponent:i.createElement(At,{type:"loading"}),EmptyComponent:(()=>{const T=U();return T?i.createElement("div",{style:{width:"100%"}},T):i.createElement(At,{type:"noMessages",label:o.PLACE_HOLDER__NO_MESSAGES})})(),ErrorComponent:i.createElement(At,{type:"error",label:(b==null?void 0:b.message)??((q=f.error)==null?void 0:q.message),action:f.error?{label:o.RETRY,onClick:()=>f.refetch()}:void 0}),messageTopArea:i.createElement(i.Fragment,null,i.createElement(wp,{style:{marginTop:16}}),U()),messageBottomArea:i.createElement(i.Fragment,null,F&&i.createElement("div",{id:`${we}-message-item`,role:"listitem",tabIndex:-1,"aria-label":mt({sender:F.user.nickname,message:o.A11Y_TYPING_INDICATOR,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER}),"data-message-listitem":"",style:{marginTop:k.length===0?8:0}},i.createElement(t,{isTyping:!0,isBotMessage:F.isBot,sender:F.user,thinkingMessage:F.thinkingMessage,messageType:"user",groupType:"single",message:"",isSenderAvatarVisible:(te=l==null?void 0:l.conversation)==null?void 0:te.senderAvatarEnabled})),((re=l==null?void 0:l.conversation)==null?void 0:re.isTalkToAgentViewEnabled)&&i.createElement(Mp,null)),overlayArea:i.createElement(i.Fragment,null,((K=l==null?void 0:l.conversation)==null?void 0:K.newMessageIndicatorEnabled)&&E.state.isAwayFromBottom&&y.newMessages.length>0&&i.createElement($p,{label:o.SCROLL_TO_NEW_MESSAGES_LABEL(y.newMessages),onClick:()=>E.actions.scrollToBottom()}),E.state.isAwayFromBottom&&y.newMessages.length===0&&!F&&i.createElement(r.ScrollToBottomButton,{onClick:()=>E.actions.scrollToBottom(),style:{position:"absolute",bottom:12,insetInlineEnd:16}}))}),G&&i.createElement(Sf,{files:G.files,initialIndex:G.index,onClose:()=>L(null),visible:!0}),P&&i.createElement(Ke,{visible:!0,onClose:()=>N(null),"aria-label":o.A11Y_FAILED_MESSAGE_OPTIONS},i.createElement(Ke.ActionItem,{onClick:()=>{y.resendMessage(P),N(null)}},o.FAILED_MESSAGE_RESEND),i.createElement(Ke.ActionItem,{destructive:!0,onClick:()=>{y.deleteMessage(P),N(null)}},o.FAILED_MESSAGE_REMOVE)))},Dp=_.default.div`overflow-y:hidden;display:flex;flex:1;position:relative;`,$p=_.default(ap)`position:absolute;bottom:12px;left:50%;transform:translateX(-50%);`,Pp=()=>i.createElement(Np,null),Fp=()=>{var o;const{origin:e}=pt(),{appId:t,aiAgentId:n}=ke(),{channelSource:r}=he();return(o=r.channel)!=null&&o.conversation?i.createElement(Bp,null,i.createElement(Xn,{style:{gap:4}},i.createElement(z,{color:p.themedColor.textLowEmphasis,size:12,type:"show"}),i.createElement(D,{as:"i",color:p.themedColor.textLowEmphasis,variant:"caption2"},"Only visible in the tester")),i.createElement(Xn,{role:"button",style:{gap:4},onClick:()=>{var u,d;const s=e??window.location.origin,a=(d=(u=r.channel)==null?void 0:u.conversation)==null?void 0:d.id,l=`${s}/ai-agent/${t}/${n}/evaluate/conversations/${a}`;navigator.clipboard.writeText(l)}},i.createElement(D,{variant:"body3",color:p.themedColor.textHighEmphasis},"Copy ",i.createElement("span",{style:{color:p.themedColor.primary}},"conversation link")),i.createElement(z,{color:p.themedColor.primary,size:14,type:"copy"}))):null},Xn=_.default.div`display:flex;justify-content:center;align-items:center;`,Bp=_.default(Xn)`flex-direction:column;padding-block:16px;background-color:${p.themedColor.bg_100_500};gap:8px;`,Hp=e=>{const t=e[0];if(!t)return e;const n=e.some(o=>ze(o.type)),r=e.some(o=>!ze(o.type));return n&&r?ze(t.type)?e.filter(o=>ze(o.type)):[t]:r?[t]:e},Up=(e,t)=>{const n=[],r=[],o=[];for(const s of e){const a=t.isSupportedMimeType(s.type),l=s.size<=t.getUploadSizeLimit(s.type);a&&l?n.push(s):a?r.push(s):o.push(s)}return{passed:n,failedBySize:r,failedByType:o}},Zs=c.createContext(void 0),Vp=({children:e})=>{var L,P;const{chatSDK:t}=ne(),{createAttachmentRules:n}=_e(),{stringSet:r}=Q(),{channelSource:o,state:s}=he(),[a,l]=c.useState([]),{announceError:u}=gr(),[d,m]=c.useState(null),h=n({channel:o.channel,uploadSizeLimit:(L=t.appInfo)==null?void 0:L.uploadSizeLimit}),g=((P=s==null?void 0:s.input)==null?void 0:P.disabled)??!1,C=h.isEnabled(),b=h.maxAttachmentCount,v=()=>m(null),f=N=>m(N),y=()=>{f({title:r.FILE_UPLOAD_NOTIFICATION__COUNT_LIMIT.replace("%d",b.toString())})},E=N=>{f({title:r.FILE_UPLOAD_NOTIFICATION__SIZE_LIMIT.replace("%d",N.toString())}),u({type:"fileSizeExceeded",maxSizeMB:N})},x=N=>{f({title:r.FILE_UPLOAD_NOTIFICATION__FILES_EXCLUDED_BY_VALIDATION.replace("%d",N.toString())})},S=N=>N.map(w=>({file:w,preview:{url:URL.createObjectURL(w),type:w.type,name:w.name}})),I=N=>{l(w=>[...w,...S(N)])},k=N=>{l(w=>(w.forEach($=>URL.revokeObjectURL($.preview.url)),S(N)))},M=N=>{const{passed:w,failedBySize:$,failedByType:O}=Up(N,h),q=$.length+O.length,te=N.length===1?$[0]:void 0;return te?E(h.getUploadSizeLimitInMB(te.type)):q>0&&x(q),w},U=N=>{if(!C||g||N.length===0)return;if(a.length>=b||a.length+N.length>b){y();return}const w=Hp(N),$=a.every(re=>ze(re.file.type)),O=w.every(re=>ze(re.type));if(a.length>0&&$!==O){f({title:r.FILE_UPLOAD_REPLACE_ALERT__TITLE,description:r.FILE_UPLOAD_REPLACE_ALERT__DESCRIPTION,confirmText:r.BUTTON__OK,cancelText:r.BUTTON__CANCEL,onConfirm:()=>{const re=M(w);re.length>0&&k(re)}});return}const q=M(w);if(q.length===0)return;a.length>0&&$&&O?I(q):k(q)},F=N=>{l(w=>{var O;const $=(O=w[N])==null?void 0:O.preview;return $&&URL.revokeObjectURL($.url),w.filter((q,te)=>te!==N)})},G=()=>{l(N=>(N.forEach(w=>URL.revokeObjectURL(w.preview.url)),[]))};return i.createElement(Zs.Provider,{value:{files:a,addFiles:U,removeFile:F,clearFiles:G,isFileUploadEnabled:C,acceptableMimeTypes:h.supportedMimeTypes,maxAttachmentCount:h.maxAttachmentCount,showFileUploadAlert:f}},e,i.createElement(pr,{visible:!!d,...d??{},onClose:v}))},yr=()=>{const e=c.useContext(Zs);if(!e)throw new Error("useFileUpload must be used within FileUploadProvider");return e};function Gp({blurred:e,elementRef:t,document:n=window.document,onRecoverFocus:r}){const o=c.useRef(!1);e&&t.current&&n.activeElement===t.current&&(o.current=!0),c.useLayoutEffect(()=>{var s;!e&&o.current&&(r==null||r(),(s=t.current)==null||s.focus(),o.current=!1)},[e,r])}const zp=()=>{const{announceError:e}=st();return c.useCallback(t=>{e({type:"sendFailed"},t)},[e])},Wp=1e3,qp=(e,t,n)=>{const{announcementsActive:r,setIsSuppressed:o}=st(),s=n??!0,a=c.useRef(!1),l=c.useRef(void 0),u=c.useCallback(d=>{var m;d&&s&&(a.current=!0,l.current=e,e==null||e.startTyping()),d||(a.current&&s&&((m=l.current)==null||m.endTyping()),a.current=!1,l.current=void 0),o(d)},[e,o,s]);c.useLayoutEffect(()=>{o(a.current)},[r,o]),Pl(t,u,{enabled:s,idleMs:Wp})},Kp=({enabled:e=!0,focusRoot:t})=>{const[n,r]=c.useState(!1),o=c.useRef(!1),s=c.useRef(!1);c.useEffect(()=>{if(!e){r(!1);return}const d=h=>{const g=h;g.metaKey||g.altKey||g.ctrlKey||(o.current=!0)},m=()=>{o.current=!1,r(!1)};return t.addEventListener("keydown",d),t.addEventListener("pointerdown",m),()=>{t.removeEventListener("keydown",d),t.removeEventListener("pointerdown",m)}},[e,t]);const a=c.useCallback(()=>{if(s.current){s.current=!1,r(!1);return}r(o.current)},[]),l=c.useCallback(()=>{r(!1)},[]),u=c.useCallback(()=>{s.current=!0,r(!1)},[]);return{isFocusVisible:n,suppressNextFocusVisible:u,focusHandlers:{onFocus:a,onBlur:l}}},Yp=_.default.div`&::-webkit-scrollbar{display:none;}overflow-x:auto;display:flex;flex-direction:row;gap:10px;padding:8px 16px;background-color:transparent;`,jp=_.default.div`display:flex;flex-shrink:0;position:relative;margin-block-start:8px;border-radius:12px;height:64px;img{border-radius:12px;object-fit:cover;width:64px;-webkit-user-drag:none;}&:hover button,&:focus-within button{opacity:1;}`,Xp=_.default.button`display:flex;align-items:center;justify-content:center;position:absolute;inset-inline-end:-8px;inset-block-start:-8px;cursor:pointer;border-radius:50%;border:none;padding:0;opacity:${({$mobile:e})=>e?1:0};transition:opacity 0.12s ease-in-out;${W.light`
|
|
414
|
+
`,Bp=()=>{var c;const{stringSet:e}=Q(),{conversation:t}=ee(),{channelSource:n,goToActiveConversation:r,scrollSource:o}=he(),s=Ce(n.channel),a=u.useRef(s);if(u.useEffect(()=>{if(!a.current&&s){const h=setTimeout(()=>{o.actions.scrollToBottom()},100);return()=>clearTimeout(h)}a.current=s},[s,o.actions.scrollToBottom]),!((c=n.channel)!=null&&c.isAIAgent)||!s)return null;const l=t.startNewConversationButton({onActivate:r});return i.createElement(Hp,null,i.createElement(Up,{variant:"button",color:p.themedColor.textHighEmphasis,...l},e.TALK_TO_AGENT))},Hp=_.default.div`display:flex;justify-content:center;margin-bottom:16px;`,Up=_.default($)`border-radius:6px;box-sizing:border-box;padding:10px 20px;cursor:pointer;user-select:none;background-color:${p.color.background50};border:1px solid ${p.color.onlight.textDisabled};${G.dark`
|
|
415
|
+
background-color: ${p.color.background700};
|
|
416
|
+
border-color: ${p.color.ondark.textLowEmphasis};
|
|
417
|
+
`}
|
|
418
|
+
`,Vp=()=>{var Y,te,re,q;const{Template:e}=Nt.useContext(),{Template:t}=Je.useContext(),{Template:n}=_n.useContext(),{components:r}=Cn.useContext(),{stringSet:o,format:s}=Q(),{conversation:a}=ee(),{config:l,cache:c,agentPreviewConfigs:d,chatSDK:m,state:h}=ne(),{userSession:g,aiAgentInfo:C,connectionError:b}=Ee(),{conversation:v,channelSource:f,messageSource:y,scrollSource:E,state:{input:x,streamAnimation:S}}=he(),{isActionbookTester:I}=pt(),{filteredMessages:k,shouldShowOriginalDate:M,renderAgentPreviewWelcomeMessages:U}=Op(),F=os(f.channel),[z,L]=u.useState(null),[P,N]=u.useState(null);u.useEffect(()=>{E.actions.onTypingIndicatorUpdate(!!F)},[!!F,E.actions.onTypingIndicatorUpdate]),Np(),Ip({enabled:y.initialized&&y.messages.length>0});const w=(T,V=!1)=>{var H;return V?C:((H=f.channel)==null?void 0:H.members.find(j=>j.userId===T.sender.userId))??T.sender},D=T=>{if(T.sendingStatus==="failed"&&!x.disabled)return()=>N(T)},R=({message:T,index:V})=>{const H=$i(T),j=k[V-1],se=k[V+1],le=k[k.length-1],Oe=T===le,Ae=Tt(T,C.userId),B=!(C.isUserFeedbackEnabled&&Ae&&!De.isWelcomeMessage(T)),Z=Di(T,j,se,B),X=!Ii.isSameDay((j==null?void 0:j.createdAt)??0,T.createdAt)&&M(V)&&!I,ge=xe=>{L({files:xe.files.map(et=>({...et,timestamp:T.createdAt})),index:xe.index})},ye=xe=>{ge({files:[xe],index:0})},Be=()=>{T.isFileMessage()&&pr(T.url)},at=X?i.createElement(r.DateSeparator,{style:{margin:"16px 0"},date:T.createdAt}):null,Le={data:T.data,maxBodyWidth:h.expanded?K.WIDE_BODY_MAX_WIDTH:void 0,extendedMessagePayload:T.extendedMessagePayload,createdAt:T.createdAt,groupType:Z,onClickMedia:ye,onClickMediaFiles:ge,onClickFile:Be},Ve=()=>{if(pe.isOutgoing(T,g.userId))return"outgoingmessage";if(pe.isIncoming(T,g.userId))return"incomingmessage"},lt=T.createdAt!=null&&T.createdAt!==0?s(T.createdAt,o.DATE_FORMAT__MESSAGE_TIMESTAMP):void 0,Qe=(()=>{var et,Et,Te,J,de,Ie;const xe=(et=T.message)==null?void 0:et.trim();if(T.isFileMessage()){const Dt=((Et=T.name)==null?void 0:Et.trim())||"";return mt({markdownText:xe,comparisonText:Dt,plainText:a.file.label(Dt,T.type)})}if(T.isMultipleFilesMessage()){const Dt=((de=(J=(Te=T.fileInfoList)==null?void 0:Te[0])==null?void 0:J.fileName)==null?void 0:de.trim())||"",Lr=((Ie=T.fileInfoList)==null?void 0:Ie.length)??0;return mt({markdownText:xe,comparisonText:Dt,plainText:Lr>0?o.CONVERSATION_LIST__MULTIPLE_FILES_COUNT(Lr):""})}return xe?mt({markdownText:xe}):mr("")})(),vi=(()=>{if(pe.isAdmin(T))return dt({message:Qe.text,messageFormat:Qe.format,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER});if(pe.isOutgoing(T,g.userId))return dt({sender:o.A11Y_MESSAGE_SENDER_YOU,message:Qe.text,messageFormat:"plain",time:lt,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER});if(pe.isIncoming(T,g.userId))return dt({sender:w(T,Ae).nickname,message:Qe.text,messageFormat:Qe.format,time:lt,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER})})(),yi=(()=>{var xe,et,Et;if(pe.isAdmin(T))return pe.isCSAT(T)?v?i.createElement(n,{...Le,...v,isResolvedWhenDeterminedByUser:la(v),messageType:"admin.csat",onSubmitCSAT:async Te=>{var J;await((J=f.channel)==null?void 0:J.submitCSAT(Te))},onScrollToBottom:()=>E.actions.scrollToBottom()}):null:i.createElement(n,{...Le,messageType:"admin",message:T.message});if(pe.isSteward(T))return i.createElement(ip,{steward:T.extendedMessagePayload.steward,onCancelSteward:async()=>{await m.aiAgent.cancelStewardTask({channelUrl:T.channelUrl,messageId:T.messageId})}});if(pe.isOutgoing(T,g.userId)){const Te={...Le,message:T.message,sender:w(T),sendingStatus:T.sendingStatus,onClickFailedMessage:D(T)};if(T.isUserMessage())return i.createElement(e,{messageType:"user",...Te});if(T.isFileMessage()){const[J,de]=((xe=T.metaArrays.find(Ie=>Ie.key===Bo))==null?void 0:xe.value)??[];return i.createElement(e,{messageType:"file",file:T,metadata:{aspectRatio:J&&de?`${J}/${de}`:"1/1",localFile:(et=T.messageParams)==null?void 0:et.file},...Te})}if(T.isMultipleFilesMessage()){const{files:J,metadata:de}=mo(T);return i.createElement(e,{messageType:"multipleFiles",files:J,metadata:de,...Te})}}if(pe.isIncoming(T,g.userId)){const Te={...Le,sender:w(T,Ae),message:T.message,suggestedRepliesVisible:Oe,suggestedRepliesDirection:d==null?void 0:d.suggestedRepliesDirection,isBotMessage:Ae,isStreaming:De.isStreaming(T),isHandedOff:je(f.channel),isConversationClosed:Ce(f.channel),isFeedbackEnabled:C.isUserFeedbackEnabled,isFeedbackCommentEnabled:C.isUserFeedbackCommentOptionEnabled,isSenderAvatarVisible:(Et=l==null?void 0:l.conversation)==null?void 0:Et.senderAvatarEnabled,onClickSuggestedReply:async({reply:J})=>{y.sendUserMessage({message:J})},onRequestMessageTemplate:async J=>{const{template:de}=await m.aiAgent.getMessageTemplate(J);return c.template.set(J,de),de},onGetCachedMessageTemplate:J=>c.template.get(J),onHandleTemplateInternalAction:J=>{if(J.type==="internal"&&J.internalData){const{method:de,payload:Ie}=J.internalData;de==="message.send"&&(Ie!=null&&Ie.message)&&y.sendUserMessage({message:Ie.message})}},onFeedbackUpdate:J=>{const de={messageId:T.messageId,channelUrl:T.channelUrl};if(!J)return m.aiAgent.deleteMessageFeedback(de);const Ie={...de,rating:Rm(J.rating),comment:J.comment};return De.hasFeedback(T)?m.aiAgent.updateMessageFeedback(Ie):m.aiAgent.createMessageFeedback(Ie)},onSubmitForm:({key:J,data:de})=>m.aiAgent.submitForm({messageId:T.messageId,channelUrl:T.channelUrl,formKey:J,formData:de}),onCancelForm:({key:J})=>m.aiAgent.cancelForm({messageId:T.messageId,channelUrl:T.channelUrl,formKey:J}),onStreamAnimationStart:()=>{S.start(T.messageId)},onStreamAnimationProgress:()=>{E.actions.onStreamingUpdate(!0)},onStreamAnimationComplete:()=>{S.stop(T.messageId),E.actions.onStreamingUpdate(!1)}};if(T.isUserMessage())return i.createElement(t,{messageType:"user",...Te});if(T.isFileMessage())return i.createElement(t,{messageType:"file",file:T,...Te});if(T.isMultipleFilesMessage()){const{files:J}=mo(T);return i.createElement(t,{messageType:"multipleFiles",files:J,...Te})}}})();return i.createElement("div",{key:H,id:`${we}-message-item`,role:"listitem",tabIndex:-1,"aria-label":vi,"data-message-listitem":"","data-layout-id":Ve()},at,yi)};return i.createElement(Gp,{id:`${we}-message-list`},i.createElement(xf,{ref:E.ref,onScroll:E.props.onScroll,stackDirection:d==null?void 0:d.messageStackDirection,messages:k,renderMessage:R,onLoadPrev:y.loadPrevious,onLoadNext:y.loadNext,depsForResetScrollPositionToBottom:[y.initialized,y.messages.length!==0],bottomSpacerHeight:E.state.bottomSpace,ariaLabel:o.A11Y_MESSAGE_LIST,loading:!y.initialized||!f.channel,empty:k.length===0&&!F,error:!!(b||f.error),LoadingComponent:i.createElement(At,{type:"loading"}),EmptyComponent:(()=>{const T=U();return T?i.createElement("div",{style:{width:"100%"}},T):i.createElement(At,{type:"noMessages",label:o.PLACE_HOLDER__NO_MESSAGES})})(),ErrorComponent:i.createElement(At,{type:"error",label:(b==null?void 0:b.message)??((Y=f.error)==null?void 0:Y.message),action:f.error?{label:o.RETRY,onClick:()=>f.refetch()}:void 0}),messageTopArea:i.createElement(i.Fragment,null,i.createElement(Dp,{style:{marginTop:16}}),U()),messageBottomArea:i.createElement(i.Fragment,null,F&&i.createElement("div",{id:`${we}-message-item`,role:"listitem",tabIndex:-1,"aria-label":dt({sender:F.user.nickname,message:o.A11Y_TYPING_INDICATOR,codeBlockPlaceholder:o.A11Y_CODE_BLOCK_PLACEHOLDER}),"data-message-listitem":"",style:{marginTop:k.length===0?8:0}},i.createElement(t,{isTyping:!0,isBotMessage:F.isBot,sender:F.user,thinkingMessage:F.thinkingMessage,messageType:"user",groupType:"single",message:"",isSenderAvatarVisible:(te=l==null?void 0:l.conversation)==null?void 0:te.senderAvatarEnabled})),((re=l==null?void 0:l.conversation)==null?void 0:re.isTalkToAgentViewEnabled)&&i.createElement(Bp,null)),overlayArea:i.createElement(i.Fragment,null,((q=l==null?void 0:l.conversation)==null?void 0:q.newMessageIndicatorEnabled)&&E.state.isAwayFromBottom&&y.newMessages.length>0&&i.createElement(zp,{label:o.SCROLL_TO_NEW_MESSAGES_LABEL(y.newMessages),onClick:()=>E.actions.scrollToBottom()}),E.state.isAwayFromBottom&&y.newMessages.length===0&&!F&&i.createElement(r.ScrollToBottomButton,{onClick:()=>E.actions.scrollToBottom(),style:{position:"absolute",bottom:12,insetInlineEnd:16}}))}),z&&i.createElement(Mf,{files:z.files,initialIndex:z.index,onClose:()=>L(null),visible:!0}),P&&i.createElement(Ke,{visible:!0,onClose:()=>N(null),"aria-label":o.A11Y_FAILED_MESSAGE_OPTIONS},i.createElement(Ke.ActionItem,{onClick:()=>{y.resendMessage(P),N(null)}},o.FAILED_MESSAGE_RESEND),i.createElement(Ke.ActionItem,{destructive:!0,onClick:()=>{y.deleteMessage(P),N(null)}},o.FAILED_MESSAGE_REMOVE)))},Gp=_.default.div`overflow-y:hidden;display:flex;flex:1;position:relative;`,zp=_.default(fp)`position:absolute;bottom:12px;left:50%;transform:translateX(-50%);`,Wp=()=>i.createElement(Vp,null),qp=()=>{var o;const{origin:e}=pt(),{appId:t,aiAgentId:n}=ke(),{channelSource:r}=he();return(o=r.channel)!=null&&o.conversation?i.createElement(Kp,null,i.createElement(Zn,{style:{gap:4}},i.createElement(W,{color:p.themedColor.textLowEmphasis,size:12,type:"show"}),i.createElement($,{as:"i",color:p.themedColor.textLowEmphasis,variant:"caption2"},"Only visible in the tester")),i.createElement(Zn,{role:"button",style:{gap:4},onClick:()=>{var c,d;const s=e??window.location.origin,a=(d=(c=r.channel)==null?void 0:c.conversation)==null?void 0:d.id,l=`${s}/ai-agent/${t}/${n}/evaluate/conversations/${a}`;navigator.clipboard.writeText(l)}},i.createElement($,{variant:"body3",color:p.themedColor.textHighEmphasis},"Copy ",i.createElement("span",{style:{color:p.themedColor.primary}},"conversation link")),i.createElement(W,{color:p.themedColor.primary,size:14,type:"copy"}))):null},Zn=_.default.div`display:flex;justify-content:center;align-items:center;`,Kp=_.default(Zn)`flex-direction:column;padding-block:16px;background-color:${p.themedColor.bg_100_500};gap:8px;`,Yp=e=>{const t=e[0];if(!t)return e;const n=e.some(o=>ze(o.type)),r=e.some(o=>!ze(o.type));return n&&r?ze(t.type)?e.filter(o=>ze(o.type)):[t]:r?[t]:e},jp=(e,t)=>{const n=[],r=[],o=[];for(const s of e){const a=t.isSupportedMimeType(s.type),l=s.size<=t.getUploadSizeLimit(s.type);a&&l?n.push(s):a?r.push(s):o.push(s)}return{passed:n,failedBySize:r,failedByType:o}},Js=u.createContext(void 0),Xp=({children:e})=>{var L,P;const{chatSDK:t}=ne(),{createAttachmentRules:n}=Ee(),{stringSet:r}=Q(),{channelSource:o,state:s}=he(),[a,l]=u.useState([]),{announceError:c}=fr(),[d,m]=u.useState(null),h=n({channel:o.channel,uploadSizeLimit:(L=t.appInfo)==null?void 0:L.uploadSizeLimit}),g=((P=s==null?void 0:s.input)==null?void 0:P.disabled)??!1,C=h.isEnabled(),b=h.maxAttachmentCount,v=()=>m(null),f=N=>m(N),y=()=>{f({title:r.FILE_UPLOAD_NOTIFICATION__COUNT_LIMIT.replace("%d",b.toString())})},E=N=>{f({title:r.FILE_UPLOAD_NOTIFICATION__SIZE_LIMIT.replace("%d",N.toString())}),c({type:"fileSizeExceeded",maxSizeMB:N})},x=N=>{f({title:r.FILE_UPLOAD_NOTIFICATION__FILES_EXCLUDED_BY_VALIDATION.replace("%d",N.toString())})},S=N=>N.map(w=>({file:w,preview:{url:URL.createObjectURL(w),type:w.type,name:w.name}})),I=N=>{l(w=>[...w,...S(N)])},k=N=>{l(w=>(w.forEach(D=>URL.revokeObjectURL(D.preview.url)),S(N)))},M=N=>{const{passed:w,failedBySize:D,failedByType:R}=jp(N,h),Y=D.length+R.length,te=N.length===1?D[0]:void 0;return te?E(h.getUploadSizeLimitInMB(te.type)):Y>0&&x(Y),w},U=N=>{if(!C||g||N.length===0)return;if(a.length>=b||a.length+N.length>b){y();return}const w=Yp(N),D=a.every(re=>ze(re.file.type)),R=w.every(re=>ze(re.type));if(a.length>0&&D!==R){f({title:r.FILE_UPLOAD_REPLACE_ALERT__TITLE,description:r.FILE_UPLOAD_REPLACE_ALERT__DESCRIPTION,confirmText:r.BUTTON__OK,cancelText:r.BUTTON__CANCEL,onConfirm:()=>{const re=M(w);re.length>0&&k(re)}});return}const Y=M(w);if(Y.length===0)return;a.length>0&&D&&R?I(Y):k(Y)},F=N=>{l(w=>{var R;const D=(R=w[N])==null?void 0:R.preview;return D&&URL.revokeObjectURL(D.url),w.filter((Y,te)=>te!==N)})},z=()=>{l(N=>(N.forEach(w=>URL.revokeObjectURL(w.preview.url)),[]))};return i.createElement(Js.Provider,{value:{files:a,addFiles:U,removeFile:F,clearFiles:z,isFileUploadEnabled:C,acceptableMimeTypes:h.supportedMimeTypes,maxAttachmentCount:h.maxAttachmentCount,showFileUploadAlert:f}},e,i.createElement(_r,{visible:!!d,...d??{},onClose:v}))},Ar=()=>{const e=u.useContext(Js);if(!e)throw new Error("useFileUpload must be used within FileUploadProvider");return e};function Zp({blurred:e,elementRef:t,document:n=window.document,onRecoverFocus:r}){const o=u.useRef(!1);e&&t.current&&n.activeElement===t.current&&(o.current=!0),u.useLayoutEffect(()=>{var s;!e&&o.current&&(r==null||r(),(s=t.current)==null||s.focus(),o.current=!1)},[e,r])}const Jp=()=>{const{announceError:e}=ot();return u.useCallback(t=>{e({type:"sendFailed"},t)},[e])},Qp=1e3,e_=(e,t,n)=>{const{announcementsActive:r,setIsSuppressed:o}=ot(),s=n??!0,a=u.useRef(!1),l=u.useRef(void 0),c=u.useCallback(d=>{var m;d&&s&&(a.current=!0,l.current=e,e==null||e.startTyping()),d||(a.current&&s&&((m=l.current)==null||m.endTyping()),a.current=!1,l.current=void 0),o(d)},[e,o,s]);u.useLayoutEffect(()=>{o(a.current)},[r,o]),Bl(t,c,{enabled:s,idleMs:Qp})},t_=({enabled:e=!0,focusRoot:t})=>{const[n,r]=u.useState(!1),o=u.useRef(!1),s=u.useRef(!1);u.useEffect(()=>{if(!e){r(!1);return}const d=h=>{const g=h;g.metaKey||g.altKey||g.ctrlKey||(o.current=!0)},m=()=>{o.current=!1,r(!1)};return t.addEventListener("keydown",d),t.addEventListener("pointerdown",m),()=>{t.removeEventListener("keydown",d),t.removeEventListener("pointerdown",m)}},[e,t]);const a=u.useCallback(()=>{if(s.current){s.current=!1,r(!1);return}r(o.current)},[]),l=u.useCallback(()=>{r(!1)},[]),c=u.useCallback(()=>{s.current=!0,r(!1)},[]);return{isFocusVisible:n,suppressNextFocusVisible:c,focusHandlers:{onFocus:a,onBlur:l}}},n_=_.default.div`&::-webkit-scrollbar{display:none;}overflow-x:auto;display:flex;flex-direction:row;gap:10px;padding:8px 16px;background-color:transparent;`,r_=_.default.div`display:flex;flex-shrink:0;position:relative;margin-block-start:8px;border-radius:12px;height:64px;img{border-radius:12px;object-fit:cover;width:64px;-webkit-user-drag:none;}&:hover button,&:focus-within button{opacity:1;}`,o_=_.default.button`display:flex;align-items:center;justify-content:center;position:absolute;inset-inline-end:-8px;inset-block-start:-8px;cursor:pointer;border-radius:50%;border:none;padding:0;opacity:${({$mobile:e})=>e?1:0};transition:opacity 0.12s ease-in-out;${G.light`
|
|
414
419
|
background-color: ${p.color.background50};
|
|
415
420
|
`}
|
|
416
|
-
${
|
|
421
|
+
${G.dark`
|
|
417
422
|
background-color: ${p.color.background500};
|
|
418
423
|
`}
|
|
419
424
|
path {
|
|
@@ -435,7 +440,7 @@
|
|
|
435
440
|
circle {
|
|
436
441
|
stroke: ${p.themedColor.bg_50_600};
|
|
437
442
|
}
|
|
438
|
-
`,
|
|
443
|
+
`,s_=()=>{const e=Mt(),{conversation:t}=ee(),{files:n,removeFile:r,isFileUploadEnabled:o}=Ar();return o&&n.length>0?i.createElement(n_,null,n.map(({preview:{type:a,name:l,url:c}},d)=>{const m=t.file.removeButton(l),g=t.file.preview({name:l,mimeType:a,selected:!0}).props["aria-label"];return i.createElement(r_,{key:c},i.createElement(o_,{type:"button",title:m["aria-label"],"aria-label":m["aria-label"],$mobile:e,onClick:()=>r(d)},i.createElement(W,{type:"close-filled",color:p.themedColor.textMidEmphasis})),a.startsWith("image/")?i.createElement("img",{alt:g,src:c}):i.createElement(br,{name:l,mimeType:a,type:er(l,a),ariaLabel:g}))})):null},i_={textArea:O.css`min-height:40px;height:40px;font-size:16px;line-height:24px;`},Qs=_.default.button`all:unset;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;${_e}`,To=_.default.div`width:100%;position:relative;background-color:${p.themedColor.bg_100_500};border-radius:20px;`,Io=_.default.div`display:flex;flex-direction:row;align-items:flex-end;position:relative;`,wo=_.default.textarea`all:unset;display:block;flex:1;min-width:0;padding-top:8px;padding-bottom:8px;padding-inline-start:16px;padding-inline-end:12px;box-sizing:border-box;font-size:14px;line-height:20px;color:${p.themedColor.textHighEmphasis};resize:none;width:100%;height:${ms}px;overflow-wrap:break-word;white-space:pre-wrap;overflow-x:hidden;${Cs&&i_.textArea};${({$focusVisible:e})=>e&&O.css`
|
|
439
444
|
outline: 2px solid ${p.themedColor.primary};
|
|
440
445
|
outline-offset: 2px;
|
|
441
446
|
`}
|
|
@@ -451,15 +456,15 @@
|
|
|
451
456
|
}
|
|
452
457
|
}
|
|
453
458
|
|
|
454
|
-
${({$blocked:e})=>e&&
|
|
455
|
-
`,
|
|
459
|
+
${({$blocked:e})=>e&&O.css`cursor:not-allowed;&::placeholder{color:${p.themedColor.textDisabled};}`}
|
|
460
|
+
`,a_=_.default.input`display:none;`;_.default.div`display:flex;align-items:center;gap:24px;`;const l_=_.default(Qs)`flex-shrink:0;border-radius:8px;&:disabled{cursor:not-allowed;}&:not(:disabled){&:hover{background-color:${p.themedColor.bg_100_500};path{fill:${p.themedColor.textHighEmphasis};}}&:active{background-color:${p.themedColor.bg_200_400};}}`,ko=_.default.div`padding:10px 16px 10px 12px;position:relative;display:flex;align-items:center;gap:8px;`,Lo=e=>e.startsWith("image/"),Mo=({disabled:e})=>{var k,M,U,F,z;const{stringSet:t}=Q(),{conversation:n}=ee(),{config:r}=ne(),o=u.useRef(null),s=u.useRef(null),[a,l]=u.useState(!1),{addFiles:c,isFileUploadEnabled:d,acceptableMimeTypes:m,showFileUploadAlert:h}=Ar(),g=m.includes(Hn),C=g?["image/*"]:m.filter(Lo),b=g?[Hn]:m.filter(L=>!Lo(L)),v=!!((U=(M=(k=r==null?void 0:r.conversation)==null?void 0:k.input)==null?void 0:M.gallery)!=null&&U.photoEnabled),f=!!((z=(F=r==null?void 0:r.conversation)==null?void 0:F.input)!=null&&z.fileEnabled),y=()=>g||C.length>0,E=()=>g||b.length>0,x=L=>{const P=L.currentTarget.files;P&&c(Array.from(P)),L.target.value=""},S=()=>{l(!0)},I=u.useMemo(()=>{const L=[];return v&&L.push({type:"image",icon:"photo",label:t.FILE_UPLOAD_PHOTOS,accept:C.join(","),inputRef:o,onSelect:()=>{if(!y()){h({title:t.FILE_UPLOAD_NO_SUPPORTED_FILES});return}l(!1),setTimeout(()=>{var P;return(P=o.current)==null?void 0:P.click()},100)}}),f&&L.push({type:"file",icon:"document",label:t.FILE_UPLOAD_FILES,accept:m.join(","),inputRef:s,onSelect:()=>{if(!E()){h({title:t.FILE_UPLOAD_NO_SUPPORTED_FILES});return}l(!1),setTimeout(()=>{var P;return(P=s.current)==null?void 0:P.click()},100)}}),L},[C,m,t,v,f]);return d?i.createElement(i.Fragment,null,i.createElement(l_,{...n.messageInput.attachFileButton.props,disabled:e,onClick:S},i.createElement(W,{type:"add",color:e?p.themedColor.textDisabled:p.color.primary.main,size:20}),n.messageInput.attachFileButton.descriptionNode),I.map(L=>i.createElement(a_,{key:L.type,type:"file",ref:L.inputRef,multiple:L.type==="image",onChange:x,accept:L.accept})),i.createElement(Ke,{visible:a,onClose:()=>l(!1),"aria-label":t.A11Y_FILE_UPLOAD_OPTIONS},I.map(L=>i.createElement(Ke.ActionItem,{key:L.type,onClick:L.onSelect,icon:L.icon},L.label)))):null},c_=()=>{const e=u.useRef(null),[t,n]=u.useState(""),{stringSet:r}=Q(),{conversation:o}=ee(),{rootElement:s}=ne(),a=He(s),{focusHandlers:l,isFocusVisible:c,suppressNextFocusVisible:d}=t_({focusRoot:a}),{channelSource:m,messageSource:h,state:g}=he(),{files:C,addFiles:b,clearFiles:v}=Ar(),f=Jp(),y=u.useRef(!1),{_mode:E,disabled:x,disabledBy:S}=g.input,I=E==="readOnly",k=o.messageInput.textInput(r.A11Y_MESSAGE_INPUT),M=(()=>{if(!x)return r.MESSAGE_INPUT__PLACE_HOLDER;switch(S){case"form_active":return r.FORM_PLACEHOLDER;case"ai_responding":return r.MESSAGE_INPUT__PLACE_HOLDER__WAIT_AI_AGENT_RESPONSE;case"suggested_replies":return r.MESSAGE_INPUT__PLACE_HOLDER__SUGGESTED_REPLIES;case"steward":return r.MESSAGE_INPUT__PLACE_HOLDER__STEWARD;case"system":return r.MESSAGE_INPUT__PLACE_HOLDER__DISABLED;case"reconnecting":return r.MESSAGE_INPUT__PLACE_HOLDER__RECONNECTING;case"unavailable":case"conversation_closed":default:return r.MESSAGE_INPUT__PLACE_HOLDER__DISABLED}})();Qu({onDropFiles:q=>{b(q)}}),Zp({blurred:E==="disabled",elementRef:e,document:a,onRecoverFocus:()=>{d()}}),e_(m.channel,t,!x);const U=t.trim().length>0,F=C.length>0,z=!x&&(U||F),L=()=>{e.current&&(e.current.value="",e.current.style.height=""),v(),n("")},P=()=>{var q;d(),(q=e.current)==null||q.focus()};u.useEffect(()=>{var q;E!=="readOnly"||!y.current||(d(),(q=e.current)==null||q.focus(),y.current=!1)},[E,d]);const N=q=>{y.current=!1,f(q)},w=()=>{y.current=!1},D=async q=>{try{await q(),w()}catch{N(e.current)}},R=async()=>{if(x)return;const q=t.trim();if(!q&&!C.length)return;const T=[...C];if(y.current=!0,L(),P(),T.length===0){await D(()=>h.sendUserMessage({message:q}));return}if(T.length===1)await D(()=>h.sendFileMessage({message:q,file:T[0].file}));else{const V=T.map(({file:H})=>({file:H}));await D(()=>h.sendMultipleFilesMessage({message:q,fileInfoList:V}))}},Y=q=>{const T=Array.from(q.clipboardData.files);T.length>0&&(q.preventDefault(),b(T))},te=q=>{q.key!=="Enter"||q.nativeEvent.isComposing||q.shiftKey||(q.preventDefault(),R())},re=q=>{if(x){e.current&&(e.current.value=t);return}if(e.current){e.current.style.height="";const T=Math.min(kc,e.current.scrollHeight);ms<T&&(e.current.style.height=`${T}px`)}n(q.target.value)};return E==="disabled"?i.createElement(ko,null,i.createElement(Mo,{disabled:!0}),i.createElement(To,null,i.createElement(Io,null,i.createElement(wo,{rows:1,...k,disabled:!0,placeholder:M,$blocked:!0,$focusVisible:!1,"data-focus-visible":"false"})))):i.createElement(ko,{"data-message-composer":""},i.createElement(Mo,{disabled:x}),i.createElement(To,null,i.createElement(s_,null),i.createElement(Io,null,i.createElement(wo,{ref:e,rows:1,...k,readOnly:I,"aria-disabled":I?"true":void 0,placeholder:M,maxLength:5e3,$blocked:x,$focusVisible:c,"data-focus-visible":c?"true":"false",onKeyDown:te,onChange:re,onFocus:l.onFocus,onBlur:l.onBlur,onPaste:Y}))),z&&i.createElement(Qs,{...o.messageInput.sendButton.props,onClick:()=>R()},i.createElement(W,{type:"send",color:p.color.primary.main,size:20}),o.messageInput.sendButton.descriptionNode))},u_=_.default.div`padding:8px 16px;text-align:center;word-break:break-word;white-space:pre-wrap;line-height:1.43;letter-spacing:-0.2px;font-size:14px;font-weight:400;color:${p.themedColor.textLowEmphasis};&& a{font-weight:700;text-decoration:none;${G.light`
|
|
456
461
|
color: ${p.color.information.light};
|
|
457
462
|
`};
|
|
458
|
-
${
|
|
463
|
+
${G.dark`
|
|
459
464
|
color: ${p.color.information.main};
|
|
460
465
|
`};
|
|
461
466
|
}
|
|
462
|
-
`,
|
|
467
|
+
`,d_=u.lazy(()=>Promise.resolve().then(()=>require("./cjs/D2Opuq0j.cjs")).then(e=>({default:e.MarkdownText}))),m_=()=>{const{aiAgentInfo:e,userSession:t}=Ee(),{messageSource:n,channelSource:r}=he(),[o,s]=u.useState(null),a=ur("special-notice",r.channel),l=u.useCallback(()=>r.channel?a?n.messages.some(c=>Tt(c,(t==null?void 0:t.userId)??"")):!0:null,[r.channel,a,n.messages,t==null?void 0:t.userId]);return u.useEffect(()=>{o||s(l())},[l,o]),o||!e.specialNotice?null:i.createElement(u_,null,i.createElement(d_,null,e.specialNotice))},h_=()=>i.createElement(g_,null,i.createElement(m_,null),i.createElement(Xp,null,i.createElement(c_,null))),g_=_.default.div`z-index:0;border:none;width:100%;`,f_=()=>{var o;const{testerType:e}=pt(),{channelSource:t}=he(),n=Ce(t.channel),r=!!e&&((o=t.channel)==null?void 0:o.isAIAgent);return n&&r?i.createElement(qp,null):i.createElement(h_,null)},ei=({start:e,title:t,titleAlign:n="start",end:r})=>{const o=u.useRef(null),s=u.useRef(null),[a,l]=u.useState(0),[c,d]=u.useState(0);return u.useLayoutEffect(()=>{o.current&&l(o.current.offsetWidth),s.current&&d(s.current.offsetWidth)},[e,r]),i.createElement(p_,null,i.createElement(__,null,n==="center"&&t&&i.createElement(E_,{$sideWidth:Math.max(a,c)},i.createElement(b_,null,t)),i.createElement(C_,null,i.createElement(v_,{ref:o},e),(n==="start"||n==="end")&&t&&i.createElement(S_,{$align:n,$hasStart:!!e,$hasEnd:!!r},t),i.createElement(y_,{ref:s},r))))},p_=_.default.div`position:relative;width:100%;background-color:${({theme:e})=>e.colors.base.headerBackground};border-bottom:1px solid ${p.themedColor.textDisabled};`,__=_.default.div`position:relative;height:56px;padding:11px 12px;`,E_=_.default.div`position:absolute;left:${({$sideWidth:e})=>e}px;right:${({$sideWidth:e})=>e}px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;`,b_=_.default.div`max-width:100%;overflow:hidden;`,C_=_.default.div`display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%;z-index:1;`,v_=_.default.div`flex-shrink:0;display:flex;align-items:center;`,y_=_.default.div`flex-shrink:0;display:flex;align-items:center;`,S_=_.default.div`flex:1;overflow:hidden;display:flex;align-items:${({$align:e})=>e==="start"?"flex-start":"flex-end"};margin-left:${({$hasStart:e})=>e?8:0}px;margin-right:${({$hasEnd:e})=>e?8:0}px;`,$t=()=>Mt()?24:16,A_=()=>{const{state:e}=ne(),{messenger:t}=ee(),n=$t(),r=()=>{e.setOpened(!1)};return i.createElement(Ue,{...t.closeButton,type:"close",size:n,onClick:r})},x_=()=>{const{enableCloseConversationButton:e,dispatcher:t}=ne(),{channelSource:n}=he(),{conversation:r}=ee(),o=n.channel,s=$t(),a=(o==null?void 0:o.isAIAgent)&&e,l=!nr(o);if(!a)return null;const c=async()=>{o&&await t.send(rt.CloseConversation({channelUrl:o.url}))};return i.createElement(i.Fragment,null,i.createElement(Ue,{...r.closeConversationButton.props,type:"mute",size:s,disabled:l,onClick:c}),r.closeConversationButton.descriptionNode)},T_=()=>{const{state:e,enableExpandButton:t}=ne(),{messenger:n}=ee(),r=$t();return t?i.createElement(Ue,{...n.expandButton(e.expanded),type:e.expanded?"collapse":"expand",size:r,onClick:()=>e.setExpanded(!e.expanded)}):null},I_=({label:e,children:t,position:n="top",disabled:r})=>r?t:i.createElement(Jn,null,t,i.createElement(L_,{$position:n},i.createElement(M_,{variant:"caption1"},e),i.createElement(w_,{$position:n}))),w_=({$position:e})=>i.createElement("svg",{style:{transform:e==="top"?"rotate(0)":"rotate(180deg)"},xmlns:"http://www.w3.org/2000/svg",width:"12",height:"6",viewBox:"0 0 12 6",fill:"none"},i.createElement("path",{d:"M6 6L0 0h12L6 6Z",fill:p.themedColor.textHighEmphasis})),k_={top:O.css`flex-direction:column;top:0;transform:translate(-50%,-100%);`,bottom:O.css`flex-direction:column-reverse;bottom:0;transform:translate(-50%,100%);`},Jn=_.default.div`position:relative;`,L_=_.default.div`display:flex;align-items:center;position:absolute;left:50%;z-index:${gt.TOOLTIP};${({$position:e})=>k_[e]}opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none;${Jn}:hover &,${Jn}:focus-within &{opacity:1;}`,M_=_.default($)`padding:6px 8px;background:${p.themedColor.textHighEmphasis};color:${p.themedColor.textHighEmphasisInverse};border-radius:4px;font-size:12px;white-space:nowrap;`,R_=2e3,Ro=0,O_=1500,Xt=Symbol("header-focus-status-pause"),Oo="data-sb-header-focus-protected",N_="[data-message-composer]",No=new WeakMap,Pn=e=>{const t=No.get(e);if(t)return t;const n={focusedTargetIds:new Set,pendingBlurTimeouts:new Map,maxPauseTimeout:null};return No.set(e,n),n},Fn=(e,t)=>{const n=e.pendingBlurTimeouts.get(t);n&&(clearTimeout(n),e.pendingBlurTimeouts.delete(t))},Jt=e=>{e.maxPauseTimeout&&(clearTimeout(e.maxPauseTimeout),e.maxPauseTimeout=null)},$_=e=>{e.pendingBlurTimeouts.forEach(t=>clearTimeout(t)),e.pendingBlurTimeouts.clear(),e.focusedTargetIds.clear(),Jt(e)},D_=e=>{const t=e.hasAttribute("tabindex"),n=e.getAttribute("tabindex");return t||e.tabIndex>=0?()=>{}:(e.setAttribute("tabindex","-1"),()=>{if(n===null){e.removeAttribute("tabindex");return}e.setAttribute("tabindex",n)})},P_=e=>e instanceof HTMLBodyElement||(e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)&&e.disabled?!0:(e instanceof HTMLElement&&e.closest(N_),!1),ti=()=>{const{setStatusPauseState:e}=ot(),t=u.useRef(Symbol("header-focus-target")),n=u.useRef(!1),r=u.useRef(0),o=u.useRef(null),s=u.useCallback(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]),a=u.useCallback(()=>{if(n.current)return;n.current=!0,r.current=Date.now()+O_,s();const c=Pn(e);Fn(c,t.current),c.focusedTargetIds.add(t.current),c.focusedTargetIds.size===1&&e(Xt,!0),Jt(c),c.maxPauseTimeout=setTimeout(()=>{$_(c),e(Xt,!1)},R_)},[s,e]),l=u.useCallback(c=>{if(!n.current)return;n.current=!1;const d=c.currentTarget,m=Pn(e),h=d instanceof HTMLElement&&Date.now()<=r.current;Fn(m,t.current),h&&(s(),o.current=setTimeout(()=>{if(o.current=null,!(d instanceof HTMLElement)||!d.isConnected)return;const C=d.ownerDocument.activeElement,b=C instanceof HTMLElement&&C.hasAttribute(Oo);if(C===d||b||!P_(C))return;const v=D_(d);d.focus({preventScroll:!0}),v()},Ro)),m.pendingBlurTimeouts.set(t.current,setTimeout(()=>{m.pendingBlurTimeouts.delete(t.current),m.focusedTargetIds.delete(t.current),m.focusedTargetIds.size===0&&(Jt(m),e(Xt,!1))},Ro))},[s,e]);return u.useEffect(()=>()=>{const c=Pn(e);n.current=!1,s(),Fn(c,t.current),c.focusedTargetIds.delete(t.current)&&c.focusedTargetIds.size===0&&(Jt(c),e(Xt,!1))},[s,e]),{[Oo]:"true",onFocus:a,onBlur:l}},F_=()=>{const{logger:e}=ne(),{stringSet:t}=Q(),{channelSource:n}=he(),{conversation:r}=ee(),o=n.channel,s=$t(),a=ur("handoff-button",o),l=!nr(o)||je(o),[c,d]=u.useState(!1),m=ti(),h=async()=>{d(!1);try{const g=await(o==null?void 0:o.markConversationAsHandoff());e.info("conversation.handleAgentHandoff: success",g)}catch(g){e.error("conversation.handleAgentHandoff: error",g)}};return a?i.createElement(i.Fragment,null,i.createElement(i.Fragment,null,i.createElement(I_,{label:t.HEADER_BUTTON__AGENT_HANDOFF,position:"bottom",disabled:l},i.createElement(Ue,{...r.handoffButton.props,type:"agent",size:s,disabled:l,...m,onClick:()=>d(!0)})),r.handoffButton.descriptionNode),i.createElement(ft,{rootElementId:ce.WINDOW,visible:c,onClose:()=>d(!1)},i.createElement(Xs,{title:t.HANDOFF_CONFIRM__TITLE,description:t.HANDOFF_CONFIRM__DESCRIPTION,negativeText:t.HANDOFF_CONFIRM__CANCEL,positiveText:t.HANDOFF_CONFIRM__HANDOFF,onCancel:()=>d(!1),onConfirm:h}))):null},B_=()=>{const{conversation:e}=ee(),{onNavigateToConversationList:t}=he();return t?i.createElement(i.Fragment,null,i.createElement(Ue,{...e.menuButton.props,...wc,type:"menu",size:24,onClick:()=>t()}),e.menuButton.descriptionNode):null},ni=({channel:e,size:t=40})=>{const{userSession:n,aiAgentInfo:r}=Ee(),{fallbackIcon:o,url:s}=dr({channel:e,aiAgentInfo:r,userSession:n}),a=O.useTheme();return s?i.createElement($s,{src:s,size:t,"aria-hidden":"true"}):i.createElement(H_,{"aria-hidden":"true",$size:t,$bgColor:a.colors.base.primary},i.createElement(W,{type:o,size:t*.55,color:a.colors.base.primaryContrastContent}))},H_=_.default.div`width:${({$size:e})=>e}px;height:${({$size:e})=>e}px;border-radius:50%;background-color:${({$bgColor:e})=>e};display:flex;align-items:center;justify-content:center;flex-shrink:0;`,U_=()=>{var m,h;const{channelSource:e}=he(),{aiAgentInfo:t,userSession:n}=Ee(),{conversation:r}=ee(),{config:o}=ke(),s=e.channel,a=dr({channel:s,userSession:n,aiAgentInfo:t}),l=(h=(m=o==null?void 0:o.conversation)==null?void 0:m.header)==null?void 0:h.avatarEnabled,c=ti(),d=r.headerTitle(a.title);return i.createElement(V_,null,l&&i.createElement(ni,{channel:s,size:34}),i.createElement(G_,{...d,...c},a.title))},V_=_.default.div`display:flex;flex-direction:row;align-items:center;gap:6px;overflow:hidden;`,G_=_.default($).attrs({variant:"h2",color:p.themedColor.textHighEmphasis})`
|
|
463
468
|
margin: 0;
|
|
464
469
|
flex: 1;
|
|
465
470
|
min-width: 0;
|
|
@@ -471,10 +476,10 @@
|
|
|
471
476
|
&:focus {
|
|
472
477
|
outline: none;
|
|
473
478
|
}
|
|
474
|
-
|
|
479
|
+
`,z_=e=>{const{components:t}=it.useContext();return i.createElement(ei,{start:i.createElement(t.StartArea,null),title:i.createElement(t.TitleArea,null),titleAlign:e.titleAlign,end:i.createElement(t.EndArea,null)})},W_=()=>{const{components:e}=it.useContext();return i.createElement(e.MenuButton,null)},q_=()=>{const{components:e}=it.useContext();return i.createElement(e.Title,null)},K_=()=>{const{components:e}=it.useContext();return i.createElement(j_,null,i.createElement(e.HandoffButton,null),i.createElement(e.ConversationCloseButton,null),i.createElement(e.ExpandButton,null),i.createElement(e.CloseButton,null))},it=Pe({template:z_,components:{StartArea:W_,TitleArea:q_,EndArea:K_,MenuButton:B_,Title:U_,HandoffButton:F_,ConversationCloseButton:x_,ExpandButton:T_,CloseButton:A_}}),Y_=()=>{const{isActionbookTester:e}=pt(),{Template:t}=it.useContext();return e?null:i.createElement(t,{titleAlign:"start"})},j_=_.default.div`display:flex;gap:10px;align-items:center;justify-content:center;`,ri=({children:e,onNavigateToConversationList:t,channelUrl:n,onClearChannelUrl:r,shouldMarkAsRead:o,announcementsEnabled:s,style:a,closedChannelUrl:l,onClearClosedChannelUrl:c})=>{const{Template:d}=vn.useContext();return i.createElement(Ts,{onNavigateToConversationList:t,channelUrl:n??l,onClearChannelUrl:r??c,shouldMarkAsRead:o},i.createElement(Yn,null,i.createElement(Yn.Consumer,null,m=>i.createElement(gu,{announcementsActive:s},i.createElement(X_,null),i.createElement(J_,{style:a,...m},i.createElement(d,null)),e))))},X_=()=>(hd(),sd(),ud(),null),Z_=e=>{const{components:t}=vn.useContext();return i.createElement(i.Fragment,null,i.createElement(t.Header,null),i.createElement(t.Body,null),i.createElement(t.Footer,null))},vn=Pe({template:Z_,components:{Header:Y_,Body:Wp,Footer:f_}}),J_=_.default.div`height:100%;width:100%;display:flex;flex-direction:column;flex:1;background-color:${({theme:e})=>e.colors.base.background};`,{Provider:Q_,Context:eE,useContext:yn}=ue("ConversationList");function oi({conversationListLimit:e,conversationListFilter:t,onOpenConversationView:n=oe,children:r}){return i.createElement(El,{conversationListLimit:e,conversationListFilter:t},o=>i.createElement(Q_,{value:{...o,onOpenConversationView:n}},r))}const tE=({channel:e})=>i.createElement(ni,{channel:e}),Qn=99,nE=e=>{var f,y;const{channel:t,onClick:n}=e,{stringSet:r,format:o}=Q(),{userSession:s,aiAgentInfo:a}=Ee(),{conversationList:l}=ee(),c=dr({channel:t,userSession:s,aiAgentInfo:a}),d=ka(t,{formatMultipleFilesCount:r.CONVERSATION_LIST__MULTIPLE_FILES_COUNT}),m=La(t,o,{justNow:r.DATE_FORMAT__JUST_NOW,minutesAgo:r.DATE_FORMAT__MINUTES_AGO,hoursAgo:r.DATE_FORMAT__HOURS_AGO,dateShortFormat:r.DATE_FORMAT__DATE_SHORT}),h=t.unreadMessageCount,g=(f=t.lastMessage)!=null&&f.isAdminMessage()?r.CONVERSATION_LIST__SYSTEM_MESSAGE:c.title,C=Ce(t)?r.CONVERSATION_LIST__ENDED:Jo(t,{formatMultipleFilesCount:r.CONVERSATION_LIST__MULTIPLE_FILES_COUNT}),b=n?()=>n():void 0,v=l.item({agent:g,status:C,time:m,unreadCount:h,onActivate:b});return i.createElement(rE,{"data-testid":"sb-conversation-list-item",$clickable:!!b,...v.props},i.createElement(oE,null,i.createElement(tE,{...e})),i.createElement(sE,null,i.createElement(iE,null,(y=t.lastMessage)!=null&&y.isFileMessage()&&(!t.lastMessage.message||t.lastMessage.name===t.lastMessage.message)?i.createElement(Ms,{variant:"subtitle1",color:p.themedColor.textHighEmphasis},d):i.createElement($,{variant:"subtitle1",color:p.themedColor.textHighEmphasis,maxTextLines:1},d),i.createElement(aE,null,Ce(t)&&i.createElement(i.Fragment,null,i.createElement($,{variant:"caption1",color:p.themedColor.textMidEmphasis,maxTextLines:1},r.CONVERSATION_LIST__ENDED),i.createElement(lE,null)),i.createElement($,{variant:"caption2",color:p.themedColor.textLowEmphasis,maxTextLines:1},m))),h>0&&i.createElement(cE,{$count:h},i.createElement($,{variant:"caption3",color:p.themedColor.textHighEmphasisInverse},h<=Qn?h:`${Qn}+`))),v.descriptionNode)},xr=Pe({template:nE,components:{}}),rE=_.default.div`display:flex;flex-shrink:0;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;box-sizing:border-box;gap:16px;cursor:${({$clickable:e})=>e?"pointer":"default"};`,oE=_.default.div`display:flex;align-items:center;justify-content:center;padding-inline-start:16px;`,sE=_.default.div`display:flex;flex-direction:row;align-items:center;flex:1;min-width:0;padding-inline-end:16px;height:100%;gap:8px;border-bottom:1px solid ${p.themedColor.textDisabled};`,iE=_.default.div`display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0;gap:4px;word-break:break-word;overflow-wrap:break-word;`,aE=_.default.div`display:flex;align-items:center;gap:6px;`,lE=_.default.div`width:2px;height:2px;border-radius:1px;background-color:${p.themedColor.textLowEmphasis};`,cE=_.default.div`display:flex;align-items:center;justify-content:center;height:20px;padding:4px;border-radius:10px;background-color:${p.themedColor.error};${({$count:e})=>e<=Qn&&O.css`
|
|
475
480
|
width: 20px;
|
|
476
481
|
`}
|
|
477
|
-
`,
|
|
482
|
+
`,uE=({items:e,renderItem:t,onEndReached:n})=>{const r=o=>{const s=o.target;s.scrollHeight-s.scrollTop===s.clientHeight&&(n==null||n())};return i.createElement(dE,{onScroll:o=>r(o)},e.map((o,s)=>t(o,s)))},dE=_.default.div`width:100%;height:100%;display:flex;flex-direction:column;flex:1;overflow:auto;overscroll-behavior:contain;`,mE=()=>{const{stringSet:e}=Q(),{listSource:t,onOpenConversationView:n}=yn(),{Template:r}=xr.useContext();return t.initialized?t.channels.length===0?i.createElement(At,{type:"noChannels",label:e.CONVERSATION_LIST__NO_CONVERSATIONS}):i.createElement(uE,{items:t.channels,renderItem:o=>{var s,a,l;return i.createElement(r,{key:o.url,channel:o,onClick:()=>n(o.url,Ce(o)?"closed":"open"),channelUrl:o.url,title:(a=(s=o.conversation)==null?void 0:s.topics)==null?void 0:a.join(", "),lastMessageTimestamp:(l=o.lastMessage)==null?void 0:l.createdAt})},onEndReached:()=>{t.loadMore()}}):i.createElement(At,{type:"loading"})},hE=()=>{const{stringSet:e}=Q(),{_aiAgentSDK:t}=ke(),{language:n,countryCode:r,context:o}=ne(),{aiAgentInfo:s,refreshActiveChannel:a,createConversation:l}=Ee(),{onOpenConversationView:c}=yn(),{conversationList:d}=ee(),m=async()=>{var h;if(s.isMultipleActiveConversationsEnabled){const g=await l({aiAgentId:s.userId,language:n,country:r,context:o});(h=t.session)==null||h._updateActiveChannel({url:g,status:"open"}),c(g,"open")}else{const g=await a();c(g,"open")}};return i.createElement(gE,{...d.footer.button({onActivate:m})},i.createElement(fE,{variant:"h1"},e.TALK_TO_AGENT))},gE=_.default.div`background-color:${({theme:e})=>e.colors.base.primary};display:flex;align-items:center;justify-content:center;padding:16px;cursor:pointer;`,fE=_.default($)`color:${({theme:e})=>e.colors.base.primaryContrastContent};overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`,pE=()=>{const{state:e}=ne(),{messenger:t}=ee(),n=$t(),r=()=>{e.setOpened(!1)};return i.createElement(Ue,{...t.closeButton,type:"close",size:n,onClick:r})},_E=()=>{const{stringSet:e}=Q();return i.createElement(EE,{forwardedAs:"h2",variant:"h2",color:p.themedColor.textHighEmphasis},e.CONVERSATION_LIST__HEADER_TITLE)},EE=_.default($)`margin:0;padding:0 4px;width:100%;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;`,bE=e=>{const{components:t}=_t.useContext();return i.createElement(ei,{start:i.createElement(t.StartArea,null),title:i.createElement(t.TitleArea,null),titleAlign:e.titleAlign,end:i.createElement(t.EndArea,null)})},CE=()=>null,vE=()=>{const{components:e}=_t.useContext();return i.createElement(e.Title,null)},yE=()=>{const{components:e}=_t.useContext();return i.createElement(e.CloseButton,null)},_t=Pe({template:bE,components:{StartArea:CE,TitleArea:vE,EndArea:yE,Title:_E,CloseButton:pE}}),SE=()=>{const{Template:e}=_t.useContext();return i.createElement(e,{titleAlign:"start"})},si=({conversationListLimit:e,conversationListFilter:t,children:n,onOpenConversationView:r,style:o})=>{const{Template:s}=Sn.useContext();return i.createElement(oi,{conversationListLimit:e,conversationListFilter:t,onOpenConversationView:r},i.createElement(xE,{style:o},i.createElement(s,null)),n)},AE=()=>{const{components:e}=Sn.useContext();return i.createElement(i.Fragment,null,i.createElement(e.Header,null),i.createElement(e.Body,null),i.createElement(e.Footer,null))},Sn=Pe({template:AE,components:{Header:SE,Body:mE,Footer:hE}}),xE=_.default.div`height:100%;width:100%;display:flex;flex-direction:column;flex:1;background-color:${({theme:e})=>e.colors.base.background};`,TE=O.css`:where(#${ce.ENTRY}) :not(code *){font-family:'Roboto',sans-serif;box-sizing:border-box;}`,IE=[TE,Uc,Vc],wE=(e,...t)=>O.createGlobalStyle(e,...IE,...t),kE=wE``,LE=wa(vn,Je,Nt,_n,Cn,Sn,it,xr,_t,bn);function ii({appearance:e,rootElement:t,logger:n,language:r,languageCode:o,stringSet:s,children:a,messageTemplate:l,icons:c,theme:d}){return au(Nc,t),i.createElement(O.StyleSheetManager,{target:t},i.createElement(ou,{rootElement:t,logger:n,appearance:e,theme:d},i.createElement(vl,{internalVariables:l==null?void 0:l.__internalVariables},i.createElement(Hc,{stringSet:s,logger:n,language:r,languageCode:o},i.createElement(nu,{icons:c},i.createElement(LE,null,a,i.createElement(kE,null)))))))}const Tr=u.forwardRef(function({rootElement:t=document.body,logLevel:n=ie.LogLevel.WARN,language:r=navigator.language,userSessionInfo:o,children:s,chatParams:a,icons:l,...c},d){var g,C,b;yt.level!==n&&(yt.level=n),iu("https://fonts.googleapis.com/css2?family=Roboto&display=swap",t);const m=gs(r),h=fs.has(m)?m:Lt;return i.createElement("div",{id:ce.ENTRY,lang:h,style:{width:"fit-content",height:"fit-content",...c.entryStyle}},i.createElement(ii,{logger:yt,rootElement:t,appearance:(g=c.agentPreviewConfigs)==null?void 0:g.appearance,stringSet:c.stringSet,language:h,messageTemplate:c.messageTemplate,icons:l,theme:c.theme},i.createElement(pu,{rootElement:t,language:r,logger:yt,dispatcher:ai,chatParams:{...a,...c.customApiHost&&{customApiHost:c.customApiHost},...c.customWebSocketHost&&{customWebSocketHost:c.customWebSocketHost}},chatSDK:c.customChatSDK,_forceCreateChannel:(C=c.agentPreviewConfigs)==null?void 0:C.forceCreateChannel,_agentVersion:(b=c.agentPreviewConfigs)==null?void 0:b.agentVersion,...c},i.createElement(Du,{ref:d,userSessionInfo:o},i.createElement(cf,{...c._UNSAFE_INTERNAL_dashboardTester},i.createElement(mu,null,s,i.createElement("div",{id:ce.MODAL_ROOT,dir:c.dir})))))))}),yt=new qo(ie.LogLevel.WARN),ai=new Wo(yt),{Provider:ME,useContext:Ir}=ue("PageChildren"),li=({children:e})=>{const[t,n]=u.useState(null),[r,o]=u.useState(null);return i.createElement(ME,{value:{conversationChildren:t,setConversationChildren:n,conversationListChildren:r,setConversationListChildren:o}},e)},ci=({children:e,isOpened:t,zIndex:n=gt.WINDOW})=>{const{dir:r,rootElement:o}=ne(),s=He(o,!0);return u.useEffect(()=>{const a="sb-agent-block-scroll";return t?s.body.classList.add(a):s.body.classList.remove(a),()=>{s.body.classList.remove(a)}},[s,t]),i.createElement(RE,{dir:r,$visible:t,$zIndex:n},e)},RE=_.default.div`width:100%;height:100%;position:fixed;top:0;left:0;z-index:${({$zIndex:e})=>e};visibility:${({$visible:e})=>e?"visible":"hidden"};`,OE=48,NE=2/3;function ui({className:e,children:t,isOpened:n,onClick:r,ariaLabel:o,"aria-label":s,"aria-describedby":a,type:l,imageUrl:c,dir:d,animated:m=!0,backgroundColor:h,size:g=OE}){const C=Ps(),b=m&&!C,v=Wn(h),f=Math.round(g*NE),y=s??o;return i.createElement(PE,{dir:d,id:ce.LAUNCHER,className:e,"aria-label":y??"Sendbird AIAgent Launcher","aria-describedby":a,onClick:r,$animated:b,$backgroundColor:h,$prefersReducedMotion:C,$size:g},i.createElement(FE,{$isOpened:n,$animated:b,$fillColor:v,$iconSize:f,$prefersReducedMotion:C},i.createElement($o.Open,{url:c,isDefaultIcon:l==="default_icon",size:f})),i.createElement(BE,{$isOpened:n,$animated:b,$fillColor:v,$iconSize:f,$prefersReducedMotion:C},i.createElement($o.Close,{size:f})),t)}const $E=O.css`&:hover{transition:transform 250ms cubic-bezier(0.33,0,0,1);transform:scale(1.1);}&:active{transform:scale(0.8);}`,DE=O.css`img{width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;&[data-default-icon='true']{width:${({$iconSize:e})=>e}px;height:${({$iconSize:e})=>e}px;filter:${({$fillColor:e})=>e===xt.WHITE?"grayscale(100%) brightness(2000%)":"grayscale(100%) invert(100%) saturate(0%) brightness(0%) contrast(1000%)"};}}`,di=O.css`svg{width:${({$iconSize:e})=>e}px;height:${({$iconSize:e})=>e}px;${({$fillColor:e})=>O.css`
|
|
478
483
|
ellipse,
|
|
479
484
|
path {
|
|
480
485
|
fill: ${e};
|
|
@@ -484,7 +489,7 @@
|
|
|
484
489
|
}
|
|
485
490
|
`}
|
|
486
491
|
}
|
|
487
|
-
`,
|
|
492
|
+
`,PE=_.default.button`position:relative;padding:0;width:${({$size:e})=>e}px;height:${({$size:e})=>e}px;background:${({$backgroundColor:e})=>e};border-radius:50%;transition:${({$prefersReducedMotion:e})=>e?"none":"all 0.3s cubic-bezier(0.31, -0.105, 0.43, 1.4)"};border:none;display:flex;justify-content:center;align-items:center;box-shadow:0 16px 24px 2px rgba(33,33,33,0.12),0 6px 30px 5px rgba(33,33,33,0.08),0 6px 10px -5px rgba(33,33,33,0.04);${({$animated:e})=>e&&$E}`,mi=_.default.span.attrs({"aria-hidden":"true"})`
|
|
488
493
|
position: absolute;
|
|
489
494
|
width: 100%;
|
|
490
495
|
height: 100%;
|
|
@@ -494,15 +499,15 @@
|
|
|
494
499
|
display: flex;
|
|
495
500
|
justify-content: center;
|
|
496
501
|
align-items: center;
|
|
497
|
-
`,
|
|
502
|
+
`,FE=_.default(mi)`transition:${({$prefersReducedMotion:e})=>e?"none":"transform 0.16s linear, opacity 0.08s linear, scale 0.16s linear"};opacity:${({$isOpened:e})=>e?0:1};transform:${({$animated:e,$isOpened:t})=>e&&(t?"rotate(-90deg) scale(0)":"rotate(0deg)")};${DE}${di}`,BE=_.default(mi)`transition:${({$prefersReducedMotion:e})=>e?"none":"transform 0.16s linear, opacity 0.08s linear, scale 0.16s linear"};scale:${({$isOpened:e})=>e?1:0};transform:${({$animated:e,$isOpened:t})=>e&&(t?"rotate(0deg)":"rotate(-90deg)")};${di}`,$o={Open:e=>e.url?i.createElement("img",{src:e.url,alt:"","data-default-icon":e.isDefaultIcon}):i.createElement(W,{size:e.size,type:"delight"}),Close:({size:e})=>i.createElement(W,{size:e,type:"chevron-down"})},Do=(e,t)=>Array.from(e.querySelectorAll(t)).find(Rt)??null,hi=e=>Do(e,Ic)??Do(e,ys),HE=e=>{const t=hi(e)??e;t===e&&!t.hasAttribute("tabindex")&&t.setAttribute("tabindex","-1"),t.focus()},UE=(e,t)=>{u.useEffect(()=>{if(!e||!t.current)return;let n=!1;return ve(()=>{n||!t.current||HE(t.current)}),()=>{n=!0}},[e,t])};function gi({className:e,size:t,entryPoint:n="Conversation",activeRoute:r}){const{colors:o}=O.useTheme(),{dir:s,rootElement:a,state:l}=ne(),{launcher:c}=ee(),{launcherInfo:d,statsTrackers:m}=Ee(),h=(r??n)==="ConversationList",g=c.button({isOpened:l.opened,opensConversationList:h}),C=He(a);u.useLayoutEffect(()=>{m.initialRender.setPresentMethod("launcher_toggle")},[m]),GE();const b=E=>C.querySelector(`#${E}`),v=()=>{ve(()=>{const E=b(ce.WINDOW),x=E?hi(E):null;x==null||x.focus()})},f=()=>{ve(()=>{var E;(E=b(ce.LAUNCHER))==null||E.focus()})},y=()=>{const E=!l.opened;l.setOpened(E),E?v():f()};return i.createElement(ui,{dir:s,className:e,isOpened:l.opened,onClick:y,type:d.type,imageUrl:d.imageUrl,backgroundColor:o.base.primary,size:t,...g.props},g.descriptionNode)}const VE=1e3*60;function GE(){const{chatSDK:e,state:t,logger:n,enableAutoDisconnectInLauncher:r}=ne(),o=u.useRef(null);u.useEffect(()=>{if(!r)return;function s(){o.current&&(clearTimeout(o.current),o.current=null)}function a(){e.connectionState===ie.ConnectionState.CLOSED&&(e.reconnect(),n.debug("useSDKInactivityTimeout: reconnected")),s(),n.debug("useSDKInactivityTimeout: clear disconnect schedule")}function l(){s(),o.current=setTimeout(async()=>{await e.disconnectWebSocket(),n.debug("useSDKInactivityTimeout: disconnected")},VE)}t.opened?a():(l(),n.debug("useSDKInactivityTimeout: schedule disconnect"))},[r,e,t.opened])}const fi=u.createContext(null);function wr(){const e=u.useContext(fi);if(!e)throw new Error("useNavigator() must be used within <Navigator />");return e}function pi({children:e}){const t=wr();return typeof e=="function"?e(t):i.createElement(i.Fragment,null,e)}const zE=O.keyframes`0%{transform:translateY(40px);opacity:0;}100%{transform:translateY(0px);opacity:1;}`,WE=O.keyframes`0%{transform:translateY(0px);opacity:1;}100%{transform:translateY(40px);opacity:0;}`,qE=O.css`animation-name:${zE};animation-duration:0.3s;animation-fill-mode:forwards;`,KE=O.css``,YE=O.css`animation-name:${WE};animation-duration:0.3s;animation-fill-mode:forwards;`,jE=O.css`visibility:hidden;`,XE=_.default.div`position:absolute;top:0;left:0;width:100%;height:100%;${({$transitionState:e})=>{switch(e){case"entering":return qE;case"entered":return KE;case"exiting":return YE;case"exited":return jE;default:return""}}}${({$active:e})=>e?O.css`
|
|
498
503
|
z-index: 999;
|
|
499
|
-
`:
|
|
500
|
-
`;function
|
|
504
|
+
`:O.css`z-index:1;pointer-events:none;`}
|
|
505
|
+
`;function Qt({initialId:e,children:t}){const[n,r]=u.useState([e]),o=n[n.length-1],s=u.useCallback((f,y)=>{r(E=>[...E,f]),h(E=>({...E,[f]:!0})),y!=null&&y.reset&&v(E=>({...E,[f]:(E[f]||0)+1})),C(E=>({...E,[f]:"entering"})),setTimeout(()=>{C(E=>({...E,[f]:"entered"}))},300)},[]),a=u.useCallback(()=>{r(f=>{if(f.length<=1)return f;const y=f[f.length-1];return C(E=>({...E,[y]:"exiting"})),setTimeout(()=>{C(E=>({...E,[y]:"exited"})),r(E=>E.slice(0,-1))},300),f})},[]),l=u.useMemo(()=>({navigation:{navigate:s,pop:a},activeScreenId:o}),[s,a,o]),c=u.useMemo(()=>u.Children.toArray(t).filter(f=>f.type===pi),[t]),d=u.useMemo(()=>{const f={};return c.forEach(y=>{const{id:E,lazy:x,children:S}=y.props;f[E]={lazy:x,element:typeof S=="function"?S(l):S}}),f},[c,l]),[m,h]=u.useState(()=>{const f={};return Object.entries(d).forEach(([y,{lazy:E}])=>{E===!1&&(f[y]=!0)}),f[e]=!0,f}),[g,C]=u.useState(()=>{const f={};return Object.keys(d).forEach(y=>{y===e?f[y]="entered":f[y]="exited"}),f}),[b,v]=u.useState({});return i.createElement(fi.Provider,{value:l},i.createElement(ZE,null,Object.keys(d).map(f=>{var S;if(!m[f])return null;const y=g[f]||"exited",E=f===o,x=`${f}-${b[f]||0}`;return i.createElement(XE,{key:x,$transitionState:y,$active:E},(S=d[f])==null?void 0:S.element)})))}const ZE=_.default.div`position:relative;width:100%;height:100%;`;Qt.Screen=pi;const Se={conv:"conv",convList:"conv-list"},Po=({isOpened:e,activeScreenId:t})=>e&&t===Se.conv,JE=({screenId:e,conversationKey:t,navigationKey:n})=>e===Se.conv?`${e}:${t??""}`:n?`${e}:${n}`:e,QE=({initialRoute:e,isOpened:t,selectedChannelUrl:n,setSelectedChannelUrl:r})=>{const{announceScreenEntry:o}=fr(),s=u.useRef(null),a=u.useRef(null),l=u.useRef(0),[c,d]=u.useState(0),m=u.useCallback(b=>{const v=JE(b);s.current!==v&&(s.current=v,a.current=b,b.screenId===Se.convList&&o({screen:"conversationList"}))},[o]),h=u.useCallback((b,v)=>{const f={screenId:Se.conv,conversationKey:v};r(v),b.navigate(Se.conv),a.current=f,t&&m(f)},[m,t,r]),g=u.useCallback(b=>{l.current+=1;const v=l.current,f={screenId:Se.convList,navigationKey:`visit:${v}`};a.current=f,d(v),b.navigate(Se.convList)},[]),C=u.useCallback(()=>{var v;const b=((v=a.current)==null?void 0:v.screenId)===Se.convList?a.current:{screenId:Se.convList};m(b)},[m]);return u.useEffect(()=>{if(t){const b=a.current?a.current.screenId===Se.conv?{screenId:Se.conv,conversationKey:n??a.current.conversationKey}:a.current:{screenId:e,conversationKey:e===Se.conv?n:void 0};b.screenId!==Se.convList&&m(b)}else s.current=null,a.current=null},[m,e,t,n]),{announceConversationListScreen:C,conversationListAnnouncementToken:c,navigateToConversationList:g,openConversation:h}},nt={conv:"conv",convList:"conv-list"},eb=e=>e===nt.convList?"ConversationList":"Conversation",_i=({isOpened:e,entryPoint:t,selectedChannelUrl:n,setSelectedChannelUrl:r,onActiveRouteChange:o})=>{const{conversationChildren:s,conversationListChildren:a}=Ir(),l=(()=>{switch(t){case"Conversation":return nt.conv;case"ConversationList":return nt.convList;default:return nt.conv}})(),{announceConversationListScreen:c,conversationListAnnouncementToken:d,navigateToConversationList:m,openConversation:h}=QE({initialRoute:l,isOpened:e,selectedChannelUrl:n,setSelectedChannelUrl:r}),g=i.createElement(i.Fragment,null,i.createElement(tb,{onOpenConversationView:(C,b)=>h(C,b)}),i.createElement(rb,{onActiveRouteChange:o}));return i.createElement(Qt,{initialId:l},i.createElement(Qt.Screen,{id:nt.conv},({navigation:C,activeScreenId:b})=>i.createElement(ri,{key:n,channelUrl:n,onClearChannelUrl:()=>r(void 0),onNavigateToConversationList:()=>m(C),announcementsEnabled:Po({isOpened:e,activeScreenId:b}),shouldMarkAsRead:Po({isOpened:e,activeScreenId:b})},g,s)),i.createElement(Qt.Screen,{id:nt.convList,lazy:!0},({navigation:C,activeScreenId:b})=>{const v=e&&b===nt.convList;return i.createElement(si,{onOpenConversationView:f=>{h(C,f)}},i.createElement(nb,{announcementToken:d,enabled:v,onAnnounce:c}),g,a)}))},tb=({onOpenConversationView:e})=>{const{registerOnJoinedProactiveConversation:t}=Ee(),{navigation:n}=wr();return t(({channel:r})=>{e(n,r.url)}),null},nb=({announcementToken:e,enabled:t,onAnnounce:n})=>{const{listSource:r}=yn();return u.useEffect(()=>{if(!t||!r.initialized)return;const o=setTimeout(()=>{n()},0);return()=>{clearTimeout(o)}},[e,t,r.initialized,n]),null},rb=({onActiveRouteChange:e})=>{const{activeScreenId:t}=wr();return u.useEffect(()=>{e==null||e(eb(t))},[t,e]),null},ob=`#${ce.WINDOW} [role="dialog"][aria-modal="true"], #${ce.MODAL_ROOT} [role="dialog"][aria-modal="true"]`,sb=e=>!!e.querySelector(ob),Ei=(e,t)=>u.useCallback(n=>{var r;if(n.key==="Escape"&&e){const s=n.currentTarget.getRootNode();if(sb(s))return;n.stopPropagation(),t(!1),(r=s.querySelector(`#${ce.LAUNCHER}`))==null||r.focus()}},[e,t]),ib=({isExpanded:e,isOpened:t,children:n,launcher:r})=>{const{dir:o,state:s}=ne(),a=Ei(t,s.setOpened),l=u.useRef(null);return UE(t,l),i.createElement(ab,null,i.createElement(lb,{ref:l,dir:o,id:ce.WINDOW,$isExpanded:e,$isOpened:t,onKeyDown:a},n),r)},ab=_.default.div`display:flex;flex-direction:column;gap:8px;align-items:flex-end;`,lb=_.default.div`background:${({theme:e})=>e.colors.base.background};display:flex;overscroll-behavior:none;-webkit-overflow-scrolling:auto;height:640px;min-height:80px;width:400px;max-width:80vw;max-height:80vh;box-shadow:0px 16px 24px 2px rgba(33,33,33,0.12),0px 6px 30px 5px rgba(33,33,33,0.08),0px 6px 10px -5px rgba(33,33,33,0.04);border-radius:16px;overflow:hidden;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 150ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;transform:scale(0.15);opacity:0;transform-origin:right bottom;[dir='rtl'] &:not([dir='ltr']),&[dir='rtl']{transform-origin:left bottom;}${({$isOpened:e})=>e&&ub};${({$isExpanded:e})=>e&&cb};`,cb=O.css`width:743px;height:723px;`,ub=O.css`pointer-events:all;transform:scale(1);opacity:1;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 300ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;`,db=u.forwardRef(function({children:e,initialChannelUrl:t,...n},r){const o=Mt(),[s,a]=u.useState(t),[l,c]=u.useState(n.entryPoint??"Conversation"),d=o?ci:ib;return i.createElement(Tr,{enableExpandButton:!o,ref:r,...n},i.createElement(bs,null,({state:m})=>i.createElement(li,null,i.createElement(d,{isExpanded:m.expanded,isOpened:m.opened,...o&&{zIndex:"auto"},launcher:i.createElement(gi,{entryPoint:n.entryPoint,activeRoute:l})},i.createElement(_i,{isOpened:m.opened,entryPoint:n.entryPoint,selectedChannelUrl:s,setSelectedChannelUrl:a,onActiveRouteChange:c})),e)))}),{Provider:mb,useContext:kr}=ue("FixedMessengerStyle");function bi(e,t,n,r=0){const{top:o,bottom:s,start:a,end:l}=n;let c="",d="";switch(e){case"start":d=`inset-inline-start: ${$e(a)}`;break;case"end":d=`inset-inline-end: ${$e(l)}`;break}switch(t){case"top":c=`top: calc(${$e(o)} + ${r}px)`;break;case"bottom":c=`bottom: calc(${$e(s)} + ${r}px)`;break}return O.css`${c};${d};`}function hb(e){const{horizontal:t,vertical:n,margin:r,launcherSize:o}=kr();return i.createElement(gb,{...e,size:o,$horizontal:t,$vertical:n,$margin:r})}const gb=_.default(gi)`position:fixed;z-index:${gt.LAUNCHER};${({$horizontal:e,$vertical:t,$margin:n})=>bi(e,t,n)};`,fb=({isExpanded:e,isOpened:t,children:n})=>{const{dir:r,state:o}=ne(),{horizontal:s,vertical:a,margin:l,launcherSize:c}=kr(),d=Ei(t,o.setOpened);return i.createElement(pb,{dir:r,id:ce.WINDOW,"aria-hidden":t?void 0:"true",inert:t?void 0:!0,$isExpanded:e,$isOpened:t,$horizontal:s,$vertical:a,$margin:l,$launcherSize:c,onKeyDown:d},n)},pb=_.default.div`background:${({theme:e})=>e.colors.base.background};display:flex;overscroll-behavior:none;-webkit-overflow-scrolling:auto;position:fixed;pointer-events:none;visibility:hidden;${({$horizontal:e,$vertical:t,$margin:n,$launcherSize:r})=>bi(e,t,n,r+12)};height:640px;min-height:80px;width:400px;max-width:80vw;max-height:80vh;box-shadow:0px 16px 24px 2px rgba(33,33,33,0.12),0px 6px 30px 5px rgba(33,33,33,0.08),0px 6px 10px -5px rgba(33,33,33,0.04);border-radius:16px;overflow:hidden;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 150ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;transform:scale(0.15);opacity:0;transform-origin:${({$horizontal:e,$vertical:t})=>`${e==="start"?"left":"right"} ${t}`};
|
|
501
506
|
[dir='rtl'] &:not([dir='ltr']),
|
|
502
507
|
&[dir='rtl'] {
|
|
503
508
|
transform-origin: ${({$horizontal:e,$vertical:t})=>`${e==="start"?"right":"left"} ${t}`};
|
|
504
509
|
}
|
|
505
510
|
|
|
506
|
-
${({$isOpened:e})=>e&&
|
|
507
|
-
${({$isExpanded:e})=>e&&
|
|
508
|
-
`,
|
|
511
|
+
${({$isOpened:e})=>e&&Eb};
|
|
512
|
+
${({$isExpanded:e})=>e&&_b};
|
|
513
|
+
`,_b=O.css`width:743px;height:723px;`,Eb=O.css`z-index:${gt.WINDOW};pointer-events:all;visibility:visible;transform:scale(1);opacity:1;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 300ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;`,Ci={top:24,bottom:24,start:24,end:24},bb=u.forwardRef(function({children:e,initialChannelUrl:t,...n},r){const[o,s]=u.useState(t),[a,l]=u.useState(n.entryPoint??"Conversation"),[c,d]=u.useState("end-bottom"),[m,h]=u.useState(Ci),[g,C]=u.useState(48),b=Mt(),v=b?ci:fb,{horizontal:f,vertical:y}=u.useMemo(()=>{const[E,x]=c.split("-");return{horizontal:E==="start"?"start":"end",vertical:x==="top"?"top":"bottom"}},[c]);return i.createElement(Tr,{enableExpandButton:!b,ref:r,...n},i.createElement(bs,null,({state:E})=>i.createElement(mb,{value:{horizontal:f,vertical:y,margin:m,launcherSize:g,setPosition:d,setMargin:h,setLauncherSize:C}},i.createElement(li,null,i.createElement(v,{isExpanded:E.expanded,isOpened:E.opened},i.createElement(_i,{isOpened:E.opened,entryPoint:n.entryPoint,selectedChannelUrl:o,setSelectedChannelUrl:s,onActiveRouteChange:l})),i.createElement(hb,{entryPoint:n.entryPoint,activeRoute:a}),e))))}),Cb=e=>{var o,s,a,l;const{setPosition:t,setMargin:n,setLauncherSize:r}=kr();return u.useLayoutEffect(()=>{e.position&&t(e.position),e.margin&&n({...Ci,...e.margin}),e.launcherSize&&r(e.launcherSize)},[e.position,(o=e.margin)==null?void 0:o.top,(s=e.margin)==null?void 0:s.bottom,(a=e.margin)==null?void 0:a.start,(l=e.margin)==null?void 0:l.end,e.launcherSize]),null},vb=({children:e})=>{const{setConversationChildren:t}=Ir();return u.useLayoutEffect(()=>(t(e),()=>t(null)),[e]),null},yb=({children:e})=>{const{setConversationListChildren:t}=Ir();return u.useLayoutEffect(()=>(t(e),()=>t(null)),[e]),null},Sb=Object.assign(bb,{Style:Cb,ConversationChildren:vb,ConversationListChildren:yb}),Ab=e=>{const{refreshActiveChannel:t}=Ee(),[n,r]=u.useState(!1),o=u.useRef(null),s=u.useRef(null);return u.useEffect(()=>{n&&t().then(()=>{var a;(a=o.current)==null||a.call(o),r(!1)}).catch(a=>{var l;(l=s.current)==null||l.call(s,a),r(!1)})},[n]),u.useCallback(()=>new Promise((a,l)=>{o.current=a,s.current=l,e().then(()=>r(!0)).catch(l)}),[e])};Xo.set(ie.SendbirdPlatform.JS,{deviceOSPlatform:Gi()?ie.DeviceOsPlatform.MOBILE_WEB:ie.DeviceOsPlatform.WEB,messengerVersion:Lc,keyValueStorage:Rc(),networkStateAdapter:Mc()});exports.ANCHOR_REL=hr;exports.AgentProviderContainer=Tr;exports.AgentUIProviderContainer=ii;exports.AnonymousSessionInfo=Gn;exports.CSATType=Ne;exports.Commands=rt;exports.Conversation=ri;exports.ConversationContext=Xu;exports.ConversationContextProvider=Ts;exports.ConversationHeaderLayout=it;exports.ConversationLayout=vn;exports.ConversationList=si;exports.ConversationListContext=eE;exports.ConversationListContextProvider=oi;exports.ConversationListHeaderLayout=_t;exports.ConversationListItemLayout=xr;exports.ConversationListLayout=Sn;exports.DefaultMessenger=db;exports.DeskTicketPriority=ir;exports.DeskTicketStatus=sr;exports.FixedMessenger=Sb;exports.IncomingMessageLayout=Je;exports.LauncherBase=ui;exports.LogLevel=tr;exports.ManualSessionInfo=Ko;exports.MessageListUILayout=Cn;exports.MessageLogs=Ys;exports.OutgoingMessageLayout=Nt;exports.PlaceholderLayout=bn;exports.SystemMessageLayout=_n;exports.cssVars=p;exports.escapeMarkdownSyntax=Ui;exports.mapCommonStringsToReactFormat=hs;exports.messengerDispatcher=ai;exports.useAIAgentContext=ke;exports.useConversationContext=he;exports.useConversationListContext=yn;exports.useLocalizationContext=Q;exports.useMessengerContext=ne;exports.useMessengerSessionContext=Ee;exports.useRefreshActiveChannel=Ab;
|