@1interface/shared-core 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export declare const API_ENDPOINTS: {
21
21
  readonly CONFIG: string;
22
22
  readonly PROFILE: string;
23
23
  readonly AUTH_ME: string;
24
+ readonly CHANGE_PASSWORD: string;
24
25
  readonly ORGANIZATIONS_EXISTS: string;
25
26
  readonly DEBUG: string;
26
27
  readonly TOOL_SERVERS: string;
@@ -532,6 +533,11 @@ export declare function parseJwtPayload(token: string | null | undefined): Recor
532
533
 
533
534
  export declare function parseOrgFromJwt(token: string | null | undefined): string | null;
534
535
 
536
+ export declare const PASSWORD_LIMITS: {
537
+ readonly MIN_LENGTH: 8;
538
+ readonly MAX_LENGTH: 128;
539
+ };
540
+
535
541
  export declare const PATTERNS: {
536
542
  readonly EMAIL: RegExp;
537
543
  readonly NON_DIGIT: RegExp;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./textDirection-Dmwjhp8G.cjs"),t=require("@reduxjs/toolkit"),r=require("react"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,i=o.getMonth()+1;return!(s<n||s===n&&r<i||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let i=null,a=null;const u=[];function c(e){if(i=e,u.length>0){const t=u.splice(0,u.length);for(const r of t)e.emit(r)}}function l(e){a=e}function d(e,t){const r=a?function(e){try{return e()??{}}catch{return{}}}(a):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};i?i.emit(n):(u.length>=200&&u.shift(),u.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>i?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const m={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function F(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function x(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=F(s));return t}let T=!1,f=null,S=!0;function h(e){S=e}function O(e){T||(T=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),c(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new n.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:m[t],severityText:t,body:JSON.stringify(e),attributes:x(o),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){S&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&f?.())}const _=Object.freeze(Object.defineProperty({__proto__:null,initLogger:O,registerPlatformFlushAttacher:function(e){f=e},resetInitLoggerStateForTests:function(){T=!1,f=null,S=!0},setNetworkLoggingEnabled:h},Symbol.toStringTag,{value:"Module"}));let y,I="",A={},R=null,C=()=>null,N=()=>null,D=()=>null,M=!1;const v=()=>R,B=()=>D(),k=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${I}/api${t}`},b="chat",w={CONVERSATIONS:()=>k("/conversations"),CONVERSATION_STREAM:e=>k(`/conversations/${e}`),CONVERSATION_START:e=>k(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>k(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>k(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>k(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return k("/transcribe")},get BRANDING(){return k("/branding")},get CONFIG(){return k("/config")},get PROFILE(){return k("/profile")},get AUTH_ME(){return k("/auth/me")},get ORGANIZATIONS_EXISTS(){return k("/organizations/exists")},get DEBUG(){return k("/debug")},get TOOL_SERVERS(){return k("/tool-servers")},TOOL_SERVER_AUTH_START:e=>k(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>k(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return k("/tool-servers/auth/exchange")},get LOG(){return k("/log")}},P={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},L={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},U={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let G=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function V(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const j=W,X=e=>!!e&&Date.now()>=e-P.TOKEN_CLOCK_SKEW_MS,z=e=>!e||Date.now()>=e-P.TOKEN_REFRESH_THRESHOLD_MS;function Y(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function J(e){const t=Y(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}class q{static instance;events={};constructor(){}static getInstance(){return q.instance||(q.instance=new q),q.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const Z=q.getInstance(),Q={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ee=[Q.LIGHT,Q.DARK,Q.SYSTEM],te={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},re={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:te.PILL,chatInputPlaceholder:"Type anything..."},se={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:te.PILL,chatInputPlaceholder:"Type anything..."};function oe(e){return e===Q.LIGHT?se:re}const ne=re;function ie(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ae(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function ue(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function ce(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function le(e){switch(e){case"pill":return te.PILL;case"none":return te.SHARP;default:return 0===parseInt(e??"",10)?te.SHARP:te.ROUNDED}}const de=r.createContext(void 0),pe=r.createContext(null);let ge=null;const Ee=()=>ge,me=r.createContext(null),Fe={isConnected:!0,isInternetReachable:!0},xe=t.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+P.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:Te,updateUser:fe,clearSession:Se,sessionExpired:he,setSelectedOrgId:Oe}=xe.actions,_e=Te,ye=Se,Ie=t.createListenerMiddleware();Ie.startListening({matcher:t.isAnyOf(Te,fe,Se,he),effect:async(e,t)=>{const r=Ee();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(L.ACCESS_TOKEN,s.accessToken):r.removeItem(L.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(L.REFRESH_TOKEN,s.refreshToken):r.removeItem(L.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(L.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(L.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(L.USER,JSON.stringify(s.user)):r.removeItem(L.USER)),(Se.match(e)||he.match(e))&&o.push(r.removeItem(L.LOCATION_CACHE),r.removeItem(L.DEBUG_MODE),r.removeItem(L.APPEARANCE_MODE_KEY),r.removeItem(L.LOCATION_ENABLED),r.removeItem(L.STT_AUTO_SEND),r.removeItem(L.STT_IMPLEMENTATION),r.removeItem(L.SEND_DIAGNOSTICS),r.removeItem(L.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const Ae=xe.reducer,Re={lastResponseTime:null},Ce=t.createSlice({name:"indicator",initialState:Re,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(t.isAnyOf(Se,he),()=>Re)}}),{setLastResponseTime:Ne,clearLastResponseTime:De}=Ce.actions,Me=Ce.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=w,exports.APPEARANCE_MODES=Q,exports.APPEARANCE_MODE_VALUES=ee,exports.AUTH_HEADERS=U,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=j,exports.BrandingContext=de,exports.CORNER_RADIUS_MODES=te,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=q,exports.FEATURE_FLAGS={SSO:"sso"},exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LOG_LEVELS=n,exports.NetworkContext=me,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=b,exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.STORAGE_KEYS=L,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=pe,exports.TIMING=P,exports.brandingToThemeStyles=function(e,t,r=Q.DARK){const s=oe(r);if(!e||!t)return s;const o=t.surface?.chatInput?.border||t.surface?.input?.border,n=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?ie(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?ie(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:n?.style||s.userMsgBorderStyle,userMsgBorderColor:n?.color?ie(n.color,n.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:n?.width||s.userMsgBorderWidth,userMsgBorderOpacity:n?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ae(e.typography?.fontFamily,s),fontFamilyMono:ue(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:ce(e.cornerRadius,s),cornerRadiusMode:le(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}},exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=De,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(L.ACCESS_TOKEN),e.removeItem(L.REFRESH_TOKEN),e.removeItem(L.TOKEN_EXPIRES_AT),e.removeItem(L.USER)}catch{}}(e),function(e){try{e.removeItem(L.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=Se,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=ne,exports.defaultDarkThemeStyles=re,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=se,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(L.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=J(t.getItem(L.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.ensureFreshToken=async()=>z(B())?await(v()?.())??null:null,exports.eventEmitter=Z,exports.extractTokens=function(e){const t=e.headers.get(U.ACCESS_TOKEN),r=e.headers.get(U.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${U.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${U.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),i=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=k,exports.getAppearanceModeStorageKey=e=>e?`${L.APPEARANCE_MODE_KEY}:${e}`:L.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>I,exports.getCustomHeaders=()=>A,exports.getDefaultThemeStyles=oe,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>y,exports.getSendDiagnostics=()=>G,exports.getStorageRef=Ee,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-P.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=v,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(i*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(L.SEND_DIAGNOSTICS);G=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(L.ACCESS_TOKEN),e.getItem(L.REFRESH_TOKEN),e.getItem(L.TOKEN_EXPIRES_AT),e.getItem(L.USER)]),i=o?parseInt(o,10):null;if((!r||!i||X(i))&&!s)return void(r&&await Promise.all([e.removeItem(L.ACCESS_TOKEN),e.removeItem(L.REFRESH_TOKEN),e.removeItem(L.TOKEN_EXPIRES_AT),e.removeItem(L.USER)]));let a=null;if(n)try{a=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(Te({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},exports.indicatorReducer=Me,exports.initLogger=O,exports.initializeChatConfig=e=>{I=e.baseUrl,A=e.customHeaders||{},y=e.paymentProvider},exports.isDevMode=()=>M,exports.isTokenAboutToExpire=z,exports.isTokenExpired=X,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${b}`:`${e}/${b}`,exports.logger=p,exports.logout=ye,exports.parseJwtPayload=Y,exports.parseOrgFromJwt=J,exports.readAccessToken=()=>C(),exports.readDeviceToken=()=>N(),exports.readTokenExpiresAt=B,exports.registerEventListener=function(e,t){return Z.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=c,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){i=null,a=null,u.length=0,(await Promise.resolve().then(()=>_)).resetInitLoggerStateForTests()},exports.sanitizeExpiryDate=o,exports.sessionExpired=he,exports.sessionListenerMiddleware=Ie,exports.sessionReducer=Ae,exports.setAccessTokenReader=e=>{C=e},exports.setCredentials=_e,exports.setDeviceTokenReader=e=>{N=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=Ne,exports.setModuleStorage=function(e){ge=e},exports.setNetworkLoggingEnabled=h,exports.setSelectedOrgId=Oe,exports.setSession=Te,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{R=e},exports.showErrorToast=(e="Please try again")=>V({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>V({title:"Success",description:e,variant:"default"}),exports.showToast=e=>V(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=fe,exports.useBranding=function(){const e=r.useContext(de);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e},exports.useNetworkState=()=>{const e=r.useContext(me),t=r.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=r.useCallback(()=>e?e.getState():Fe,[e]);return r.useSyncExternalStore(t,s,s)},exports.useStorage=()=>{const e=r.useContext(pe);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.writeOrgToStorage=function(e,t){try{t.setItem(L.SELECTED_ORG_ID,e),t.setItem(L.SELECTED_ORG_NAME,e)}catch{}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./textDirection-Dmwjhp8G.cjs"),t=require("@reduxjs/toolkit"),r=require("react"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,i=o.getMonth()+1;return!(s<n||s===n&&r<i||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let i=null,a=null;const u=[];function c(e){if(i=e,u.length>0){const t=u.splice(0,u.length);for(const r of t)e.emit(r)}}function l(e){a=e}function d(e,t){const r=a?function(e){try{return e()??{}}catch{return{}}}(a):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};i?i.emit(n):(u.length>=200&&u.shift(),u.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>i?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const m={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function F(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function x(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=F(s));return t}let T=!1,S=null,f=!0;function h(e){f=e}function O(e){T||(T=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),c(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new n.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:m[t],severityText:t,body:JSON.stringify(e),attributes:x(o),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){f&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&S?.())}const _=Object.freeze(Object.defineProperty({__proto__:null,initLogger:O,registerPlatformFlushAttacher:function(e){S=e},resetInitLoggerStateForTests:function(){T=!1,S=null,f=!0},setNetworkLoggingEnabled:h},Symbol.toStringTag,{value:"Module"}));let A,I="",y={},R=null,N=()=>null,C=()=>null,D=()=>null,M=!1;const v=()=>R,B=()=>D(),k=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${I}/api${t}`},b="chat",w={CONVERSATIONS:()=>k("/conversations"),CONVERSATION_STREAM:e=>k(`/conversations/${e}`),CONVERSATION_START:e=>k(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>k(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>k(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>k(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return k("/transcribe")},get BRANDING(){return k("/branding")},get CONFIG(){return k("/config")},get PROFILE(){return k("/profile")},get AUTH_ME(){return k("/auth/me")},get CHANGE_PASSWORD(){return k("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return k("/organizations/exists")},get DEBUG(){return k("/debug")},get TOOL_SERVERS(){return k("/tool-servers")},TOOL_SERVER_AUTH_START:e=>k(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>k(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return k("/tool-servers/auth/exchange")},get LOG(){return k("/log")}},L={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},P={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},U={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let G=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function V(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const j=W,X=e=>!!e&&Date.now()>=e-L.TOKEN_CLOCK_SKEW_MS,z=e=>!e||Date.now()>=e-L.TOKEN_REFRESH_THRESHOLD_MS;function Y(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function J(e){const t=Y(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}class q{static instance;events={};constructor(){}static getInstance(){return q.instance||(q.instance=new q),q.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const Z=q.getInstance(),Q={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ee=[Q.LIGHT,Q.DARK,Q.SYSTEM],te={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},re={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:te.PILL,chatInputPlaceholder:"Type anything..."},se={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:te.PILL,chatInputPlaceholder:"Type anything..."};function oe(e){return e===Q.LIGHT?se:re}const ne=re;function ie(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ae(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function ue(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function ce(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function le(e){switch(e){case"pill":return te.PILL;case"none":return te.SHARP;default:return 0===parseInt(e??"",10)?te.SHARP:te.ROUNDED}}const de=r.createContext(void 0),pe=r.createContext(null);let ge=null;const Ee=()=>ge,me=r.createContext(null),Fe={isConnected:!0,isInternetReachable:!0},xe=t.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+L.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:Te,updateUser:Se,clearSession:fe,sessionExpired:he,setSelectedOrgId:Oe}=xe.actions,_e=Te,Ae=fe,Ie=t.createListenerMiddleware();Ie.startListening({matcher:t.isAnyOf(Te,Se,fe,he),effect:async(e,t)=>{const r=Ee();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(P.ACCESS_TOKEN,s.accessToken):r.removeItem(P.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(P.REFRESH_TOKEN,s.refreshToken):r.removeItem(P.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(P.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(P.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(P.USER,JSON.stringify(s.user)):r.removeItem(P.USER)),(fe.match(e)||he.match(e))&&o.push(r.removeItem(P.LOCATION_CACHE),r.removeItem(P.DEBUG_MODE),r.removeItem(P.APPEARANCE_MODE_KEY),r.removeItem(P.LOCATION_ENABLED),r.removeItem(P.STT_AUTO_SEND),r.removeItem(P.STT_IMPLEMENTATION),r.removeItem(P.SEND_DIAGNOSTICS),r.removeItem(P.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const ye=xe.reducer,Re={lastResponseTime:null},Ne=t.createSlice({name:"indicator",initialState:Re,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(t.isAnyOf(fe,he),()=>Re)}}),{setLastResponseTime:Ce,clearLastResponseTime:De}=Ne.actions,Me=Ne.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=w,exports.APPEARANCE_MODES=Q,exports.APPEARANCE_MODE_VALUES=ee,exports.AUTH_HEADERS=U,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=j,exports.BrandingContext=de,exports.CORNER_RADIUS_MODES=te,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=q,exports.FEATURE_FLAGS={SSO:"sso"},exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LOG_LEVELS=n,exports.NetworkContext=me,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=b,exports.PASSWORD_LIMITS={MIN_LENGTH:8,MAX_LENGTH:128},exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.STORAGE_KEYS=P,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=pe,exports.TIMING=L,exports.brandingToThemeStyles=function(e,t,r=Q.DARK){const s=oe(r);if(!e||!t)return s;const o=t.surface?.chatInput?.border||t.surface?.input?.border,n=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?ie(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?ie(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:n?.style||s.userMsgBorderStyle,userMsgBorderColor:n?.color?ie(n.color,n.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:n?.width||s.userMsgBorderWidth,userMsgBorderOpacity:n?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ae(e.typography?.fontFamily,s),fontFamilyMono:ue(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:ce(e.cornerRadius,s),cornerRadiusMode:le(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}},exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=De,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)}catch{}}(e),function(e){try{e.removeItem(P.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=fe,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=ne,exports.defaultDarkThemeStyles=re,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=se,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(P.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=J(t.getItem(P.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.ensureFreshToken=async()=>z(B())?await(v()?.())??null:null,exports.eventEmitter=Z,exports.extractTokens=function(e){const t=e.headers.get(U.ACCESS_TOKEN),r=e.headers.get(U.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${U.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${U.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),i=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=k,exports.getAppearanceModeStorageKey=e=>e?`${P.APPEARANCE_MODE_KEY}:${e}`:P.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>I,exports.getCustomHeaders=()=>y,exports.getDefaultThemeStyles=oe,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>A,exports.getSendDiagnostics=()=>G,exports.getStorageRef=Ee,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-L.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=v,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(i*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(P.SEND_DIAGNOSTICS);G=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(P.ACCESS_TOKEN),e.getItem(P.REFRESH_TOKEN),e.getItem(P.TOKEN_EXPIRES_AT),e.getItem(P.USER)]),i=o?parseInt(o,10):null;if((!r||!i||X(i))&&!s)return void(r&&await Promise.all([e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)]));let a=null;if(n)try{a=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(Te({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},exports.indicatorReducer=Me,exports.initLogger=O,exports.initializeChatConfig=e=>{I=e.baseUrl,y=e.customHeaders||{},A=e.paymentProvider},exports.isDevMode=()=>M,exports.isTokenAboutToExpire=z,exports.isTokenExpired=X,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${b}`:`${e}/${b}`,exports.logger=p,exports.logout=Ae,exports.parseJwtPayload=Y,exports.parseOrgFromJwt=J,exports.readAccessToken=()=>N(),exports.readDeviceToken=()=>C(),exports.readTokenExpiresAt=B,exports.registerEventListener=function(e,t){return Z.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=c,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){i=null,a=null,u.length=0,(await Promise.resolve().then(()=>_)).resetInitLoggerStateForTests()},exports.sanitizeExpiryDate=o,exports.sessionExpired=he,exports.sessionListenerMiddleware=Ie,exports.sessionReducer=ye,exports.setAccessTokenReader=e=>{N=e},exports.setCredentials=_e,exports.setDeviceTokenReader=e=>{C=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=Ce,exports.setModuleStorage=function(e){ge=e},exports.setNetworkLoggingEnabled=h,exports.setSelectedOrgId=Oe,exports.setSession=Te,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{R=e},exports.showErrorToast=(e="Please try again")=>V({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>V({title:"Success",description:e,variant:"default"}),exports.showToast=e=>V(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=Se,exports.useBranding=function(){const e=r.useContext(de);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e},exports.useNetworkState=()=>{const e=r.useContext(me),t=r.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=r.useCallback(()=>e?e.getState():Fe,[e]);return r.useSyncExternalStore(t,s,s)},exports.useStorage=()=>{const e=r.useContext(pe);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.writeOrgToStorage=function(e,t){try{t.setItem(P.SELECTED_ORG_ID,e),t.setItem(P.SELECTED_ORG_NAME,e)}catch{}};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createSlice as i,createListenerMiddleware as a,isAnyOf as u}from"@reduxjs/toolkit";import{createContext as c,useContext as l,useCallback as d,useSyncExternalStore as g}from"react";const E=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},p=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),F=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),i=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},m=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",f=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",h=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",S=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),T=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,i=n.getMonth()+1;return!(s<o||s===o&&r<i||r>12)},y=e=>{if(!e)return"";if(!T(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},_=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return y(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},O=e=>e.replace(/\D/g,"").slice(0,4);function I(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const A=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},R=e=>Array.isArray(e.widget)&&e.widget.length>0;function N(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const C={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let x=null,M=null;const D=[];function B(e){if(x=e,D.length>0){const t=D.splice(0,D.length);for(const r of t)e.emit(r)}}function v(e){M=e}async function b(){x=null,M=null,D.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function w(e,t){const r=M?function(e){try{return e()??{}}catch{return{}}}(M):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};x?x.emit(o):(D.length>=200&&D.shift(),D.push(o))}const k={debug(e){w(C.DEBUG,e)},info(e){w(C.INFO,e)},warn(e){w(C.WARN,e)},error(e){w(C.ERROR,e)},flush:()=>x?.flush?.()},P={[C.DEBUG]:0,[C.INFO]:1,[C.WARN]:2,[C.ERROR]:3};function L(e={}){const t=P[e.minLevel??C.DEBUG];return{emit(e){P[e.level]<t||(e.level===C.ERROR?console.error:e.level===C.WARN?console.warn:e.level===C.DEBUG?console.debug:console.info)(e)}}}const U={[C.DEBUG]:5,[C.INFO]:9,[C.WARN]:13,[C.ERROR]:17};function G(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function H(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=G(s));return t}let K=!1,$=null,W=!0;function V(e){W=e}function j(e){K||(K=!0,v(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),B(function(e){const t=[L({minLevel:e.consoleMinLevel??(e.isDev?C.DEBUG:C.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new o.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:U[t],severityText:t,body:JSON.stringify(e),attributes:H(n),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){W&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&$?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:j,registerPlatformFlushAttacher:function(e){$=e},resetInitLoggerStateForTests:function(){K=!1,$=null,W=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,Y="",J={},Z=null,q=()=>null,Q=()=>null,ee=()=>null,te=!1;const re=e=>{Y=e.baseUrl,J=e.customHeaders||{},z=e.paymentProvider},se=()=>Y,ne=()=>z,oe=()=>J,ie=e=>{Z=e},ae=()=>Z,ue=e=>{q=e},ce=()=>q(),le=e=>{Q=e},de=()=>Q(),ge=e=>{ee=e},Ee=()=>ee(),pe=e=>{te=e},Fe=()=>te,me=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${Y}/api${t}`},fe="chat",he=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${fe}`:`${e}/${fe}`,Se={CONVERSATIONS:()=>me("/conversations"),CONVERSATION_STREAM:e=>me(`/conversations/${e}`),CONVERSATION_START:e=>me(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>me(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>me(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>me(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return me("/transcribe")},get BRANDING(){return me("/branding")},get CONFIG(){return me("/config")},get PROFILE(){return me("/profile")},get AUTH_ME(){return me("/auth/me")},get ORGANIZATIONS_EXISTS(){return me("/organizations/exists")},get DEBUG(){return me("/debug")},get TOOL_SERVERS(){return me("/tool-servers")},TOOL_SERVER_AUTH_START:e=>me(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>me(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return me("/tool-servers/auth/exchange")},get LOG(){return me("/log")}},Te={SSO:"sso"},ye={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},_e={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},Oe={ONLINE:"online",DEVICE:"device"},Ie=e=>e?`${_e.APPEARANCE_MODE_KEY}:${e}`:_e.APPEARANCE_MODE_KEY,Ae={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},Re="x-device-token",Ne={LOGIN:"/auth/login",SIGNUP:"/auth/signup",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},Ce={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},xe={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16};let Me=!0;const De=async e=>{const t=await e.getItem(_e.SEND_DIAGNOSTICS);Me=null===t||"true"===t},Be=()=>Me,ve=3,be=500,we=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(k.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function ke(e){const{performRefresh:t,isTransient:r=we,maxAttempts:s=ve,backoffBaseMs:n=be}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Pe="bridge-toast";function Le(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Pe,{detail:e}))}const Ue=e=>Le(e),Ge=(e="Please try again")=>Le({title:"Error",description:e,variant:"destructive"}),He=(e="Successfully")=>Le({title:"Success",description:e,variant:"default"}),Ke=Pe,$e=e=>!!e&&Date.now()>=e-ye.TOKEN_CLOCK_SKEW_MS,We=e=>!e||Date.now()>=e-ye.TOKEN_REFRESH_THRESHOLD_MS,Ve=async()=>We(Ee())?await(ae()?.())??null:null,je=e=>e?Math.max(0,e-Date.now()):0,Xe=e=>e?Math.max(0,e-ye.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,ze=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function Ye(e){const t=e.headers.get(Ae.ACCESS_TOKEN),r=e.headers.get(Ae.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${Ae.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${Ae.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function Je(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function Ze(e){const t=Je(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function qe(e,t){try{const r=t.getItem(_e.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=Ze(t.getItem(_e.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function Qe(e){!function(e){try{e.removeItem(_e.ACCESS_TOKEN),e.removeItem(_e.REFRESH_TOKEN),e.removeItem(_e.TOKEN_EXPIRES_AT),e.removeItem(_e.USER)}catch{}}(e),function(e){try{e.removeItem(_e.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function et(e,t){try{t.setItem(_e.SELECTED_ORG_ID,e),t.setItem(_e.SELECTED_ORG_NAME,e)}catch{}}class tt{static instance;events={};constructor(){}static getInstance(){return tt.instance||(tt.instance=new tt),tt.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){k.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const rt=tt.getInstance();function st(e,t){return rt.on(e,t)}const nt={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ot=[nt.LIGHT,nt.DARK,nt.SYSTEM],it={FOREGROUND:"foreground",BACKGROUND:"background"},at={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},ut={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:at.PILL,chatInputPlaceholder:"Type anything..."},ct={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:at.PILL,chatInputPlaceholder:"Type anything..."};function lt(e){return e===nt.LIGHT?ct:ut}const dt=ut;function gt(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function Et(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function pt(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function Ft(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function mt(e){switch(e){case"pill":return at.PILL;case"none":return at.SHARP;default:return 0===parseInt(e??"",10)?at.SHARP:at.ROUNDED}}function ft(e,t,r=nt.DARK){const s=lt(r);if(!e||!t)return s;const n=t.surface?.chatInput?.border||t.surface?.input?.border,o=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?gt(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?gt(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:o?.style||s.userMsgBorderStyle,userMsgBorderColor:o?.color?gt(o.color,o.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:o?.width||s.userMsgBorderWidth,userMsgBorderOpacity:o?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:Et(e.typography?.fontFamily,s),fontFamilyMono:pt(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:Ft(e.cornerRadius,s),cornerRadiusMode:mt(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}}function ht(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(i*t*1e3)/1e3})`}const St=c(void 0);function Tt(){const e=l(St);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}const yt=c(null),_t=()=>{const e=l(yt);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let Ot=null;function It(e){Ot=e}const At=()=>Ot,Rt=c(null),Nt={isConnected:!0,isInternetReachable:!0},Ct=()=>{const e=l(Rt),t=d(t=>e?e.subscribe(t):()=>{},[e]),r=d(()=>e?e.getState():Nt,[e]);return g(t,r,r)},xt=i({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+ye.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:Mt,updateUser:Dt,clearSession:Bt,sessionExpired:vt,setSelectedOrgId:bt}=xt.actions,wt=Mt,kt=Bt,Pt=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(_e.ACCESS_TOKEN),e.getItem(_e.REFRESH_TOKEN),e.getItem(_e.TOKEN_EXPIRES_AT),e.getItem(_e.USER)]),i=n?parseInt(n,10):null;if((!r||!i||$e(i))&&!s)return void(r&&await Promise.all([e.removeItem(_e.ACCESS_TOKEN),e.removeItem(_e.REFRESH_TOKEN),e.removeItem(_e.TOKEN_EXPIRES_AT),e.removeItem(_e.USER)]));let a=null;if(o)try{a=JSON.parse(o)}catch(e){k.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(Mt({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},Lt=a();Lt.startListening({matcher:u(Mt,Dt,Bt,vt),effect:async(e,t)=>{const r=At();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(_e.ACCESS_TOKEN,s.accessToken):r.removeItem(_e.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(_e.REFRESH_TOKEN,s.refreshToken):r.removeItem(_e.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(_e.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(_e.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(_e.USER,JSON.stringify(s.user)):r.removeItem(_e.USER)),(Bt.match(e)||vt.match(e))&&n.push(r.removeItem(_e.LOCATION_CACHE),r.removeItem(_e.DEBUG_MODE),r.removeItem(_e.APPEARANCE_MODE_KEY),r.removeItem(_e.LOCATION_ENABLED),r.removeItem(_e.STT_AUTO_SEND),r.removeItem(_e.STT_IMPLEMENTATION),r.removeItem(_e.SEND_DIAGNOSTICS),r.removeItem(_e.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const Ut=xt.reducer,Gt={lastResponseTime:null},Ht=i({name:"indicator",initialState:Gt,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(u(Bt,vt),()=>Gt)}}),{setLastResponseTime:Kt,clearLastResponseTime:$t}=Ht.actions,Wt=Ht.reducer;function Vt(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const jt={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},Xt={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function zt(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Se as API_ENDPOINTS,nt as APPEARANCE_MODES,ot as APPEARANCE_MODE_VALUES,Ae as AUTH_HEADERS,Ne as AUTH_PATHS,Ke as BRIDGE_TOAST_EVENT_NAME,St as BrandingContext,at as CORNER_RADIUS_MODES,Re as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,tt as EventEmitter,Te as FEATURE_FLAGS,jt as IDP_HINTS,Xt as INDICATOR_TIMER_ACTIONS,C as LOG_LEVELS,Rt as NetworkContext,it as ORB_POSITIONS,fe as ORG_MOUNT_SUFFIX,Ce as PATTERNS,xe as PROFILE_LIMITS,_e as STORAGE_KEYS,Oe as STT_IMPLEMENTATIONS,yt as StorageContext,t as TEXT_DIRECTION,ye as TIMING,ft as brandingToThemeStyles,m as capitalizeFirst,$t as clearLastResponseTime,Qe as clearPreviousTenant,Bt as clearSession,ke as createTokenRefresher,dt as defaultChatThemeStyles,ut as defaultDarkThemeStyles,we as defaultIsTransient,ct as defaultLightThemeStyles,qe as detectOrgSwitch,r as detectTextDirection,Ve as ensureFreshToken,rt as eventEmitter,Ye as extractTokens,O as formatCVC,f as formatCamelCaseToTitle,S as formatCardNumber,_ as formatExpiryDate,ze as formatTimeRemaining,F as formatTimestamp,p as generateUniqueId,me as getApiUrl,Ie as getAppearanceModeStorageKey,I as getArrayOfObjects,se as getBaseUrl,oe as getCustomHeaders,lt as getDefaultThemeStyles,N as getErrorMessage,A as getInitials,zt as getPaymentId,ne as getPaymentProviderHint,Be as getSendDiagnostics,At as getStorageRef,je as getTimeUntilExpiry,Xe as getTimeUntilRefresh,ae as getTokenRefreshHandler,Vt as handleSharedEvent,R as hasWidgets,ht as hexToRgba,De as hydrateAppBoot,Pt as hydrateSession,Wt as indicatorReducer,j as initLogger,re as initializeChatConfig,Fe as isDevMode,We as isTokenAboutToExpire,$e as isTokenExpired,he as joinOrgMountBase,k as logger,kt as logout,Je as parseJwtPayload,Ze as parseOrgFromJwt,ce as readAccessToken,de as readDeviceToken,Ee as readTokenExpiresAt,st as registerEventListener,v as registerLoggerContextProvider,B as registerLoggerSink,h as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,y as sanitizeExpiryDate,vt as sessionExpired,Lt as sessionListenerMiddleware,Ut as sessionReducer,ue as setAccessTokenReader,wt as setCredentials,le as setDeviceTokenReader,pe as setIsDev,Kt as setLastResponseTime,It as setModuleStorage,V as setNetworkLoggingEnabled,bt as setSelectedOrgId,Mt as setSession,ge as setTokenExpiresAtReader,ie as setTokenRefreshHandler,Ge as showErrorToast,He as showSuccessToast,Ue as showToast,E as truncateWordLimit,Dt as updateUser,Tt as useBranding,n as useMessageDirection,o as useMessageDirections,Ct as useNetworkState,_t as useStorage,T as validateExpiryDate,et as writeOrgToStorage};
1
+ import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createSlice as i,createListenerMiddleware as a,isAnyOf as u}from"@reduxjs/toolkit";import{createContext as c,useContext as l,useCallback as d,useSyncExternalStore as g}from"react";const E=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},p=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),F=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),i=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},m=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",f=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",h=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",S=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),T=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,i=n.getMonth()+1;return!(s<o||s===o&&r<i||r>12)},y=e=>{if(!e)return"";if(!T(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},_=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return y(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},O=e=>e.replace(/\D/g,"").slice(0,4);function I(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const A=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},R=e=>Array.isArray(e.widget)&&e.widget.length>0;function N(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const C={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let x=null,M=null;const D=[];function B(e){if(x=e,D.length>0){const t=D.splice(0,D.length);for(const r of t)e.emit(r)}}function v(e){M=e}async function b(){x=null,M=null,D.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function w(e,t){const r=M?function(e){try{return e()??{}}catch{return{}}}(M):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};x?x.emit(o):(D.length>=200&&D.shift(),D.push(o))}const k={debug(e){w(C.DEBUG,e)},info(e){w(C.INFO,e)},warn(e){w(C.WARN,e)},error(e){w(C.ERROR,e)},flush:()=>x?.flush?.()},P={[C.DEBUG]:0,[C.INFO]:1,[C.WARN]:2,[C.ERROR]:3};function L(e={}){const t=P[e.minLevel??C.DEBUG];return{emit(e){P[e.level]<t||(e.level===C.ERROR?console.error:e.level===C.WARN?console.warn:e.level===C.DEBUG?console.debug:console.info)(e)}}}const G={[C.DEBUG]:5,[C.INFO]:9,[C.WARN]:13,[C.ERROR]:17};function U(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function H(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=U(s));return t}let K=!1,$=null,W=!0;function V(e){W=e}function j(e){K||(K=!0,v(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),B(function(e){const t=[L({minLevel:e.consoleMinLevel??(e.isDev?C.DEBUG:C.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new o.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:G[t],severityText:t,body:JSON.stringify(e),attributes:H(n),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){W&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&$?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:j,registerPlatformFlushAttacher:function(e){$=e},resetInitLoggerStateForTests:function(){K=!1,$=null,W=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,Y="",J={},Z=null,q=()=>null,Q=()=>null,ee=()=>null,te=!1;const re=e=>{Y=e.baseUrl,J=e.customHeaders||{},z=e.paymentProvider},se=()=>Y,ne=()=>z,oe=()=>J,ie=e=>{Z=e},ae=()=>Z,ue=e=>{q=e},ce=()=>q(),le=e=>{Q=e},de=()=>Q(),ge=e=>{ee=e},Ee=()=>ee(),pe=e=>{te=e},Fe=()=>te,me=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${Y}/api${t}`},fe="chat",he=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${fe}`:`${e}/${fe}`,Se={CONVERSATIONS:()=>me("/conversations"),CONVERSATION_STREAM:e=>me(`/conversations/${e}`),CONVERSATION_START:e=>me(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>me(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>me(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>me(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return me("/transcribe")},get BRANDING(){return me("/branding")},get CONFIG(){return me("/config")},get PROFILE(){return me("/profile")},get AUTH_ME(){return me("/auth/me")},get CHANGE_PASSWORD(){return me("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return me("/organizations/exists")},get DEBUG(){return me("/debug")},get TOOL_SERVERS(){return me("/tool-servers")},TOOL_SERVER_AUTH_START:e=>me(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>me(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return me("/tool-servers/auth/exchange")},get LOG(){return me("/log")}},Te={SSO:"sso"},ye={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},_e={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},Oe={ONLINE:"online",DEVICE:"device"},Ie=e=>e?`${_e.APPEARANCE_MODE_KEY}:${e}`:_e.APPEARANCE_MODE_KEY,Ae={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},Re="x-device-token",Ne={LOGIN:"/auth/login",SIGNUP:"/auth/signup",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},Ce={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},xe={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},Me={MIN_LENGTH:8,MAX_LENGTH:128};let De=!0;const Be=async e=>{const t=await e.getItem(_e.SEND_DIAGNOSTICS);De=null===t||"true"===t},ve=()=>De,be=3,we=500,ke=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(k.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function Pe(e){const{performRefresh:t,isTransient:r=ke,maxAttempts:s=be,backoffBaseMs:n=we}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Le="bridge-toast";function Ge(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Le,{detail:e}))}const Ue=e=>Ge(e),He=(e="Please try again")=>Ge({title:"Error",description:e,variant:"destructive"}),Ke=(e="Successfully")=>Ge({title:"Success",description:e,variant:"default"}),$e=Le,We=e=>!!e&&Date.now()>=e-ye.TOKEN_CLOCK_SKEW_MS,Ve=e=>!e||Date.now()>=e-ye.TOKEN_REFRESH_THRESHOLD_MS,je=async()=>Ve(Ee())?await(ae()?.())??null:null,Xe=e=>e?Math.max(0,e-Date.now()):0,ze=e=>e?Math.max(0,e-ye.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,Ye=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function Je(e){const t=e.headers.get(Ae.ACCESS_TOKEN),r=e.headers.get(Ae.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${Ae.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${Ae.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function Ze(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function qe(e){const t=Ze(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function Qe(e,t){try{const r=t.getItem(_e.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=qe(t.getItem(_e.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function et(e){!function(e){try{e.removeItem(_e.ACCESS_TOKEN),e.removeItem(_e.REFRESH_TOKEN),e.removeItem(_e.TOKEN_EXPIRES_AT),e.removeItem(_e.USER)}catch{}}(e),function(e){try{e.removeItem(_e.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function tt(e,t){try{t.setItem(_e.SELECTED_ORG_ID,e),t.setItem(_e.SELECTED_ORG_NAME,e)}catch{}}class rt{static instance;events={};constructor(){}static getInstance(){return rt.instance||(rt.instance=new rt),rt.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){k.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const st=rt.getInstance();function nt(e,t){return st.on(e,t)}const ot={LIGHT:"light",DARK:"dark",SYSTEM:"system"},it=[ot.LIGHT,ot.DARK,ot.SYSTEM],at={FOREGROUND:"foreground",BACKGROUND:"background"},ut={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},ct={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:ut.PILL,chatInputPlaceholder:"Type anything..."},lt={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:ut.PILL,chatInputPlaceholder:"Type anything..."};function dt(e){return e===ot.LIGHT?lt:ct}const gt=ct;function Et(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function pt(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function Ft(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function mt(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function ft(e){switch(e){case"pill":return ut.PILL;case"none":return ut.SHARP;default:return 0===parseInt(e??"",10)?ut.SHARP:ut.ROUNDED}}function ht(e,t,r=ot.DARK){const s=dt(r);if(!e||!t)return s;const n=t.surface?.chatInput?.border||t.surface?.input?.border,o=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?Et(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?Et(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:o?.style||s.userMsgBorderStyle,userMsgBorderColor:o?.color?Et(o.color,o.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:o?.width||s.userMsgBorderWidth,userMsgBorderOpacity:o?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:pt(e.typography?.fontFamily,s),fontFamilyMono:Ft(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:mt(e.cornerRadius,s),cornerRadiusMode:ft(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}}function St(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(i*t*1e3)/1e3})`}const Tt=c(void 0);function yt(){const e=l(Tt);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}const _t=c(null),Ot=()=>{const e=l(_t);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let It=null;function At(e){It=e}const Rt=()=>It,Nt=c(null),Ct={isConnected:!0,isInternetReachable:!0},xt=()=>{const e=l(Nt),t=d(t=>e?e.subscribe(t):()=>{},[e]),r=d(()=>e?e.getState():Ct,[e]);return g(t,r,r)},Mt=i({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+ye.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:Dt,updateUser:Bt,clearSession:vt,sessionExpired:bt,setSelectedOrgId:wt}=Mt.actions,kt=Dt,Pt=vt,Lt=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(_e.ACCESS_TOKEN),e.getItem(_e.REFRESH_TOKEN),e.getItem(_e.TOKEN_EXPIRES_AT),e.getItem(_e.USER)]),i=n?parseInt(n,10):null;if((!r||!i||We(i))&&!s)return void(r&&await Promise.all([e.removeItem(_e.ACCESS_TOKEN),e.removeItem(_e.REFRESH_TOKEN),e.removeItem(_e.TOKEN_EXPIRES_AT),e.removeItem(_e.USER)]));let a=null;if(o)try{a=JSON.parse(o)}catch(e){k.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(Dt({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},Gt=a();Gt.startListening({matcher:u(Dt,Bt,vt,bt),effect:async(e,t)=>{const r=Rt();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(_e.ACCESS_TOKEN,s.accessToken):r.removeItem(_e.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(_e.REFRESH_TOKEN,s.refreshToken):r.removeItem(_e.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(_e.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(_e.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(_e.USER,JSON.stringify(s.user)):r.removeItem(_e.USER)),(vt.match(e)||bt.match(e))&&n.push(r.removeItem(_e.LOCATION_CACHE),r.removeItem(_e.DEBUG_MODE),r.removeItem(_e.APPEARANCE_MODE_KEY),r.removeItem(_e.LOCATION_ENABLED),r.removeItem(_e.STT_AUTO_SEND),r.removeItem(_e.STT_IMPLEMENTATION),r.removeItem(_e.SEND_DIAGNOSTICS),r.removeItem(_e.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const Ut=Mt.reducer,Ht={lastResponseTime:null},Kt=i({name:"indicator",initialState:Ht,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(u(vt,bt),()=>Ht)}}),{setLastResponseTime:$t,clearLastResponseTime:Wt}=Kt.actions,Vt=Kt.reducer;function jt(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const Xt={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},zt={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function Yt(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Se as API_ENDPOINTS,ot as APPEARANCE_MODES,it as APPEARANCE_MODE_VALUES,Ae as AUTH_HEADERS,Ne as AUTH_PATHS,$e as BRIDGE_TOAST_EVENT_NAME,Tt as BrandingContext,ut as CORNER_RADIUS_MODES,Re as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,rt as EventEmitter,Te as FEATURE_FLAGS,Xt as IDP_HINTS,zt as INDICATOR_TIMER_ACTIONS,C as LOG_LEVELS,Nt as NetworkContext,at as ORB_POSITIONS,fe as ORG_MOUNT_SUFFIX,Me as PASSWORD_LIMITS,Ce as PATTERNS,xe as PROFILE_LIMITS,_e as STORAGE_KEYS,Oe as STT_IMPLEMENTATIONS,_t as StorageContext,t as TEXT_DIRECTION,ye as TIMING,ht as brandingToThemeStyles,m as capitalizeFirst,Wt as clearLastResponseTime,et as clearPreviousTenant,vt as clearSession,Pe as createTokenRefresher,gt as defaultChatThemeStyles,ct as defaultDarkThemeStyles,ke as defaultIsTransient,lt as defaultLightThemeStyles,Qe as detectOrgSwitch,r as detectTextDirection,je as ensureFreshToken,st as eventEmitter,Je as extractTokens,O as formatCVC,f as formatCamelCaseToTitle,S as formatCardNumber,_ as formatExpiryDate,Ye as formatTimeRemaining,F as formatTimestamp,p as generateUniqueId,me as getApiUrl,Ie as getAppearanceModeStorageKey,I as getArrayOfObjects,se as getBaseUrl,oe as getCustomHeaders,dt as getDefaultThemeStyles,N as getErrorMessage,A as getInitials,Yt as getPaymentId,ne as getPaymentProviderHint,ve as getSendDiagnostics,Rt as getStorageRef,Xe as getTimeUntilExpiry,ze as getTimeUntilRefresh,ae as getTokenRefreshHandler,jt as handleSharedEvent,R as hasWidgets,St as hexToRgba,Be as hydrateAppBoot,Lt as hydrateSession,Vt as indicatorReducer,j as initLogger,re as initializeChatConfig,Fe as isDevMode,Ve as isTokenAboutToExpire,We as isTokenExpired,he as joinOrgMountBase,k as logger,Pt as logout,Ze as parseJwtPayload,qe as parseOrgFromJwt,ce as readAccessToken,de as readDeviceToken,Ee as readTokenExpiresAt,nt as registerEventListener,v as registerLoggerContextProvider,B as registerLoggerSink,h as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,y as sanitizeExpiryDate,bt as sessionExpired,Gt as sessionListenerMiddleware,Ut as sessionReducer,ue as setAccessTokenReader,kt as setCredentials,le as setDeviceTokenReader,pe as setIsDev,$t as setLastResponseTime,At as setModuleStorage,V as setNetworkLoggingEnabled,wt as setSelectedOrgId,Dt as setSession,ge as setTokenExpiresAtReader,ie as setTokenRefreshHandler,He as showErrorToast,Ke as showSuccessToast,Ue as showToast,E as truncateWordLimit,Bt as updateUser,yt as useBranding,n as useMessageDirection,o as useMessageDirections,xt as useNetworkState,Ot as useStorage,T as validateExpiryDate,tt as writeOrgToStorage};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1interface/shared-core",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "sideEffects": false,