@1interface/shared-core 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -14,6 +14,8 @@ export declare const API_ENDPOINTS: {
14
14
  CONVERSATION_STREAM: (conversationId: string) => string;
15
15
  CONVERSATION_START: (conversationId: string) => string;
16
16
  CONVERSATION_TRANSCRIBE: (conversationId: string) => string;
17
+ DOCUMENTS: () => string;
18
+ DOCUMENT: (documentId: string) => string;
17
19
  WEBRTC_OFFER: (conversationId: string) => string;
18
20
  WEBRTC_ICE: (conversationId: string) => string;
19
21
  readonly TRANSCRIBE: string;
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("react"),r=require("@reduxjs/toolkit"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,a=o.getMonth()+1;return!(s<n||s===n&&r<a||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let a=null,i=null;const c=[];function u(e){if(a=e,c.length>0){const t=c.splice(0,c.length);for(const r of t)e.emit(r)}}function l(e){i=e}function d(e,t){const r=i?function(e){try{return e()??{}}catch{return{}}}(i):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};a?a.emit(n):(c.length>=200&&c.shift(),c.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>a?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const f={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function m(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function T(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=m(s));return t}let S=!1,h=null,F=!0;function x(e){F=e}function A(e){S||(S=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),u(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,a]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),i=a.resourceFromAttributes(e.resourceAttrs),c=new n.OTLPLogExporter({url:e.endpoint}),u=new s.LoggerProvider({resource:i,processors:[new s.BatchLogRecordProcessor(c)]});t.logs.setGlobalLoggerProvider(u);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:f[t],severityText:t,body:JSON.stringify(e),attributes:T(o),timestamp:new Date(s)})},async flush(){await u.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let a=null;function i(){return null!==a&&(clearTimeout(a),a=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?i():null===a&&(a=setTimeout(()=>{a=null,i()},r))},async flush(){await i()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){F&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&h?.())}const I=Object.freeze(Object.defineProperty({__proto__:null,initLogger:A,registerPlatformFlushAttacher:function(e){h=e},resetInitLoggerStateForTests:function(){S=!1,h=null,F=!0},setNetworkLoggingEnabled:x},Symbol.toStringTag,{value:"Module"}));let y,O="",R={},_=null,N=()=>null,C=()=>null,D=()=>null,M=!1;const L=()=>_,v=()=>D(),w=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${O}/api${t}`},B="chat",b={CONVERSATIONS:()=>w("/conversations"),CONVERSATION_STREAM:e=>w(`/conversations/${e}`),CONVERSATION_START:e=>w(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>w(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>w(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>w(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return w("/transcribe")},get BRANDING(){return w("/branding")},get CONFIG(){return w("/config")},get PROFILE(){return w("/profile")},get AUTH_ME(){return w("/auth/me")},get CHANGE_PASSWORD(){return w("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return w("/organizations/exists")},get DEBUG(){return w("/debug")},get TOOL_SERVERS(){return w("/tool-servers")},TOOL_SERVER_AUTH_START:e=>w(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>w(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return w("/tool-servers/auth/exchange")},get LOG(){return w("/log")}},k={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},P={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},G={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let U=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function j(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const V=W,Y={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},z=e=>!!e&&Date.now()>=e-k.TOKEN_CLOCK_SKEW_MS,X=e=>!e||Date.now()>=e-k.TOKEN_REFRESH_THRESHOLD_MS;function J(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function q(e){const t=J(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}const Z={LATIN:"Latn",ARABIC:"Arab",HEBREW:"Hebr",CYRILLIC:"Cyrl",GREEK:"Grek",DEVANAGARI:"Deva",THAI:"Thai",HAN:"Hani",HIRAGANA_KATAKANA:"Kana",HANGUL:"Kore"},Q={Latn:[[65,90],[97,122],[170,170],[186,186],[192,214],[216,246],[248,591],[592,687],[7680,7935],[11360,11391],[42786,42887],[42891,42957],[42960,42961],[42963,42963],[42965,42972],[42994,43007],[43824,43866],[43868,43876],[43878,43881],[64256,64262],[65313,65338],[65345,65370]],Arab:[[1568,1599],[1601,1610],[1646,1647],[1649,1747],[1749,1749],[1765,1766],[1774,1775],[1786,1788],[1791,1791],[1872,1919],[2208,2249],[2160,2183],[2185,2190],[64336,64433],[64467,64829],[64848,64911],[64914,64967],[65008,65019],[65136,65140],[65142,65276]],Hebr:[[1488,1514],[1519,1522],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64335]],Cyrl:[[1024,1153],[1162,1327],[7296,7306],[42560,42606],[42623,42653]],Grek:[[880,883],[886,887],[890,893],[895,895],[902,902],[904,906],[908,908],[910,929],[931,993],[1008,1013],[1015,1023],[7936,7957],[7960,7965],[7968,8005],[8008,8013],[8016,8023],[8025,8025],[8027,8027],[8029,8029],[8031,8061],[8064,8116],[8118,8124],[8126,8126],[8130,8132],[8134,8140],[8144,8147],[8150,8155],[8160,8172],[8178,8180],[8182,8188]],Deva:[[2308,2361],[2365,2365],[2384,2384],[2392,2401],[2417,2431]],Thai:[[3585,3632],[3634,3635],[3648,3654]],Hani:[[12293,12293],[13312,19903],[19968,40959],[63744,64109],[64112,64217],[131072,173791],[173824,177977],[177984,178205],[178208,183969],[183984,191456]],Kana:[[12353,12438],[12445,12447],[12449,12538],[12541,12543],[12784,12799],[65382,65391],[65393,65437]],Kore:[[4352,4607],[12593,12686],[43360,43388],[44032,55203],[55216,55238],[55243,55291]]},ee=[Z.LATIN,Z.ARABIC,Z.HEBREW,Z.CYRILLIC,Z.GREEK,Z.DEVANAGARI,Z.THAI,Z.HAN,Z.HIRAGANA_KATAKANA,Z.HANGUL],te=/```[\s\S]*?```|`[^`]*`|(?:https?:\/\/|www\.)\S+|\S+@[\w.-]+\.\w+|[@#][\w-]+/g;function re(e){for(const t of ee)for(const[r,s]of Q[t])if(e>=r&&e<=s)return t;return null}function se(e){const t=(e??"").replace(te," "),r=new Set,s=[];for(const e of t){const t=re(e.codePointAt(0)??0);t&&!r.has(t)&&(r.add(t),s.push(t))}return s}const oe={DEFAULT:"default",HEADING:"heading",MONO:"mono"},ne={REGULAR:"regular",MEDIUM:"medium",SEMIBOLD:"semibold",BOLD:"bold"},ae={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ie=[ae.LIGHT,ae.DARK,ae.SYSTEM],ce="default",ue={[oe.DEFAULT]:"system-ui, -apple-system, sans-serif",[oe.HEADING]:"system-ui, -apple-system, sans-serif",[oe.MONO]:"ui-monospace, monospace"},le={ar:Z.ARABIC,fa:Z.ARABIC,ur:Z.ARABIC,he:Z.HEBREW,yi:Z.HEBREW,ru:Z.CYRILLIC,bg:Z.CYRILLIC,sr:Z.CYRILLIC,uk:Z.CYRILLIC,mk:Z.CYRILLIC,be:Z.CYRILLIC,kk:Z.CYRILLIC,el:Z.GREEK,hi:Z.DEVANAGARI,mr:Z.DEVANAGARI,ne:Z.DEVANAGARI,th:Z.THAI,zh:Z.HAN,ja:Z.HIRAGANA_KATAKANA,ko:Z.HANGUL},de=new Set(["serif","sans-serif","monospace","cursive","fantasy","math","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","-apple-system","blinkmacsystemfont"]),pe=new Set(["SF Pro","SF Pro Display","SF Mono","system-ui","System","monospace","sans-serif"]),ge=new Set(Object.values(Z)),Ee=Object.values(Z);function fe(e){const t=e.split(/[-_]/);for(const e of t.slice(1)){if(1===e.length)break;const t=e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();if(ge.has(t))return t}const r=t[0]?.toLowerCase()??"";if(le[r])return le[r];if("undefined"!=typeof Intl&&"Locale"in Intl)try{const t=new Intl.Locale(e).maximize().script;if(t&&ge.has(t))return t}catch{}return Z.LATIN}function me(e,t){const r={...e?.families??{}},s=e?.locales;let o;if(s)o={...s};else{const r=e?.fontFamily,s=e?.fontFamilyMono;o={[ce]:{[oe.DEFAULT]:r??t.default,[oe.HEADING]:r??t.heading??t.default,[oe.MONO]:s??t.mono}}}const n=o[ce]??{};o[ce]={[oe.DEFAULT]:n.default??t.default,[oe.HEADING]:n.heading??t.heading??t.default,[oe.MONO]:n.mono??t.mono??t.default};const a=function(){const e={};for(const t of Ee)e[t]=[];return e}();for(const e of Object.keys(o))e!==ce&&a[fe(e)].push(e);return{locales:o,families:r,scriptIndex:a}}function Te(e){const t=e.trim();return t?de.has(t.toLowerCase())||t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`:t}function Se(e,t){return e?.[t]}function he(e,t,r){const s=[],o=new Set,n=e=>{e&&(o.has(e)||(o.add(e),s.push(e)))};for(const s of r)for(const r of e.scriptIndex[s])n(Se(e.locales[r],t));n(Se(e.locales[ce],t)??e.locales[ce].default);const a=s.map(Te);return a.length?`${a.join(", ")}, ${ue[t]}`:ue[t]}function Fe(e,t){return he(e,t,Object.keys(e.scriptIndex))}const xe={[ne.REGULAR]:400,[ne.MEDIUM]:500,[ne.SEMIBOLD]:600,[ne.BOLD]:700};function Ae(e){const t=function(e){const t=e.split(/[?#]/)[0].toLowerCase();return t.endsWith(".woff2")?"woff2":t.endsWith(".woff")?"woff":t.endsWith(".ttf")?"truetype":t.endsWith(".otf")?"opentype":void 0}(e);return t?`src: url("${e}") format("${t}");`:`src: url("${e}");`}function Ie(e){const t=[];for(const r of Ee)if(e.has(r))for(const[e,s]of Q[r]){const r=`U+${e.toString(16).toUpperCase()}`;t.push(e===s?r:`${r}-${s.toString(16).toUpperCase()}`)}return t.join(", ")}function ye(e,t,r,s){const o=["@font-face {",` font-family: ${Te(e)};`,` ${Ae(r)}`,` font-weight: ${t};`," font-style: normal;"," font-display: swap;"];return s&&o.push(` unicode-range: ${s};`),o.push("}"),o.join("\n")}const Oe=new WeakSet;function Re(e,t){if(Oe.has(e))return;Oe.add(e);const r=new Set;for(const s of Object.values(e.locales))for(const o of Object.values(s))o&&!r.has(o)&&(r.add(o),e.families[o]||pe.has(o)||t.warn({message:`Typography family "${o}" has no families entry and is not a known system font; falling back to the generic stack.`,font_family:o}))}const _e=t.createContext(void 0);function Ne(){const e=t.useContext(_e);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}class Ce{static instance;events={};constructor(){}static getInstance(){return Ce.instance||(Ce.instance=new Ce),Ce.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const De=Ce.getInstance(),Me={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},Le={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:me(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:Me.PILL,chatInputPlaceholder:"Type anything..."},ve={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:me(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:Me.PILL,chatInputPlaceholder:"Type anything..."};function we(e){return e===ae.LIGHT?ve:Le}const Be=Le;function be(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ke(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function Pe(e){switch(e){case"pill":return Me.PILL;case"none":return Me.SHARP;default:return 0===parseInt(e??"",10)?Me.SHARP:Me.ROUNDED}}const Ge=t.createContext(null);let Ue=null;const He=()=>Ue,Ke=t.createContext(null),$e={isConnected:!0,isInternetReachable:!0},We=r.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+k.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:je,updateUser:Ve,clearSession:Ye,sessionExpired:ze,setSelectedOrgId:Xe}=We.actions,Je=je,qe=Ye,Ze=r.createListenerMiddleware();Ze.startListening({matcher:r.isAnyOf(je,Ve,Ye,ze),effect:async(e,t)=>{const r=He();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(P.ACCESS_TOKEN,s.accessToken):r.removeItem(P.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(P.REFRESH_TOKEN,s.refreshToken):r.removeItem(P.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(P.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(P.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(P.USER,JSON.stringify(s.user)):r.removeItem(P.USER)),(Ye.match(e)||ze.match(e))&&o.push(r.removeItem(P.LOCATION_CACHE),r.removeItem(P.DEBUG_MODE),r.removeItem(P.APPEARANCE_MODE_KEY),r.removeItem(P.LOCATION_ENABLED),r.removeItem(P.STT_AUTO_SEND),r.removeItem(P.STT_IMPLEMENTATION),r.removeItem(P.SEND_DIAGNOSTICS),r.removeItem(P.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const Qe=We.reducer,et={lastResponseTime:null},tt=r.createSlice({name:"indicator",initialState:et,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(r.isAnyOf(Ye,ze),()=>et)}}),{setLastResponseTime:rt,clearLastResponseTime:st}=tt.actions,ot=tt.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=b,exports.APPEARANCE_MODES=ae,exports.APPEARANCE_MODE_VALUES=ie,exports.AUTH_HEADERS=G,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=V,exports.BrandingContext=_e,exports.CORNER_RADIUS_MODES=Me,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=Ce,exports.FEATURE_FLAGS={SSO:"sso"},exports.FONT_ROLES=oe,exports.FONT_WEIGHT_SLOTS=ne,exports.GENERIC_STACKS=ue,exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LANG_DEFAULT_SCRIPT=le,exports.LOGO_ALIGNMENTS={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},exports.LOG_LEVELS=n,exports.NetworkContext=Ke,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=B,exports.PASSWORD_LIMITS={MIN_LENGTH:8,MAX_LENGTH:128},exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.SCRIPTS=Z,exports.SCRIPT_RANGES=Q,exports.STORAGE_KEYS=P,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=Ge,exports.TIMING=k,exports.USER_TYPES=Y,exports.brandingToThemeStyles=function(e,t,r=ae.DARK){const s=we(r);if(!e||!t)return s;const o=me(e.typography,{default:s.typography.locales.default.default,heading:s.typography.locales.default.heading,mono:s.typography.locales.default.mono});Re(o,p);const n=t.surface?.chatInput?.border||t.surface?.input?.border,a=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?be(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?be(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:a?.style||s.userMsgBorderStyle,userMsgBorderColor:a?.color?be(a.color,a.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:a?.width||s.userMsgBorderWidth,userMsgBorderOpacity:a?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:Fe(o,oe.DEFAULT),fontFamilyHeading:Fe(o,oe.HEADING),fontFamilyMono:Fe(o,oe.MONO),fontSize:14,typography:o,borderRadius:ke(e.cornerRadius,s),cornerRadiusMode:Pe(e.cornerRadius),chatInputPlaceholder:e.startScreen?.inputPlaceholder??s.chatInputPlaceholder}},exports.buildFontFaceCss=function(e){const t=function(e){const t=new Map;for(const r of Ee)for(const s of e.scriptIndex[r])for(const o of Object.values(oe)){const n=e.locales[s]?.[o];n&&(t.has(n)||t.set(n,new Set),t.get(n).add(r))}return t}(e),r=new Set(Object.values(oe).map(t=>e.locales[ce]?.[t]).filter(e=>Boolean(e))),s=[];for(const[o,n]of Object.entries(e.families)){const e=r.has(o)?void 0:t.get(o),a=e?Ie(e):"";if(n.variable)s.push(ye(o,"100 900",n.variable,a));else for(const e of Object.values(ne)){const t=n[e];t&&s.push(ye(o,String(xe[e]),t,a))}}return s.join("\n\n")},exports.buildFontStack=he,exports.buildFullFontStack=Fe,exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=st,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)}catch{}}(e),function(e){try{e.removeItem(P.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=Ye,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=Be,exports.defaultDarkThemeStyles=Le,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=ve,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(P.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=q(t.getItem(P.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.detectScripts=se,exports.ensureFreshToken=async()=>X(v())?await(L()?.())??null:null,exports.eventEmitter=De,exports.extractTokens=function(e){const t=e.headers.get(G.ACCESS_TOKEN),r=e.headers.get(G.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${G.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${G.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),a=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:a<7?`${a}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=w,exports.getAppearanceModeStorageKey=e=>e?`${P.APPEARANCE_MODE_KEY}:${e}`:P.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>O,exports.getCustomHeaders=()=>R,exports.getDefaultThemeStyles=we,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>y,exports.getSendDiagnostics=()=>U,exports.getStorageRef=He,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-k.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=L,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),a=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(a*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(P.SEND_DIAGNOSTICS);U=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(P.ACCESS_TOKEN),e.getItem(P.REFRESH_TOKEN),e.getItem(P.TOKEN_EXPIRES_AT),e.getItem(P.USER)]),a=o?parseInt(o,10):null;if((!r||!a||z(a))&&!s)return void(r&&await Promise.all([e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)]));let i=null;if(n)try{i=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(je({user:i,accessToken:r,refreshToken:s,expiresIn:null!=a?a/1e3:null}))},exports.indicatorReducer=ot,exports.initLogger=A,exports.initializeChatConfig=e=>{O=e.baseUrl,R=e.customHeaders||{},y=e.paymentProvider},exports.isDevMode=()=>M,exports.isGuest=function(e){return e?.type===Y.GUEST_USER},exports.isTokenAboutToExpire=X,exports.isTokenExpired=z,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${B}`:`${e}/${B}`,exports.logger=p,exports.logout=qe,exports.normalizeTypography=me,exports.parseJwtPayload=J,exports.parseOrgFromJwt=q,exports.quoteFamily=Te,exports.readAccessToken=()=>N(),exports.readDeviceToken=()=>C(),exports.readTokenExpiresAt=v,exports.registerEventListener=function(e,t){return De.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=u,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){a=null,i=null,c.length=0,(await Promise.resolve().then(()=>I)).resetInitLoggerStateForTests()},exports.resolveFontFamily=function(e,t,r={}){const{language:s,script:o}=r;if(s){const r=Se(e.locales[s],t);if(r)return r}const n=o??(s?fe(s):void 0);if(n)for(const r of e.scriptIndex[n]){const s=Se(e.locales[r],t);if(s)return s}return Se(e.locales[ce],t)??e.locales[ce].default??""},exports.sanitizeExpiryDate=o,exports.sessionExpired=ze,exports.sessionListenerMiddleware=Ze,exports.sessionReducer=Qe,exports.setAccessTokenReader=e=>{N=e},exports.setCredentials=Je,exports.setDeviceTokenReader=e=>{C=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=rt,exports.setModuleStorage=function(e){Ue=e},exports.setNetworkLoggingEnabled=x,exports.setSelectedOrgId=Xe,exports.setSession=je,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{_=e},exports.showErrorToast=(e="Please try again")=>j({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>j({title:"Success",description:e,variant:"default"}),exports.showToast=e=>j(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=Ve,exports.useBranding=Ne,exports.useMessageFontStack=function(e,r){const{themeStyles:s}=Ne(),o=s.typography,n=t.useMemo(()=>{if(r){const e=r.split(/[-_]/)[0].toLowerCase(),t=le[e];if(t)return[t]}return se(e)},[e,r]);return t.useMemo(()=>he(o,oe.DEFAULT,n),[o,n])},exports.useNetworkState=()=>{const e=t.useContext(Ke),r=t.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=t.useCallback(()=>e?e.getState():$e,[e]);return t.useSyncExternalStore(r,s,s)},exports.useStorage=()=>{const e=t.useContext(Ge);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.warnUnknownFamilies=Re,exports.writeOrgToStorage=function(e,t){try{t.setItem(P.SELECTED_ORG_ID,e),t.setItem(P.SELECTED_ORG_NAME,e)}catch{}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./textDirection-Dmwjhp8G.cjs"),t=require("react"),r=require("@reduxjs/toolkit"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,a=o.getMonth()+1;return!(s<n||s===n&&r<a||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let a=null,i=null;const c=[];function u(e){if(a=e,c.length>0){const t=c.splice(0,c.length);for(const r of t)e.emit(r)}}function l(e){i=e}function d(e,t){const r=i?function(e){try{return e()??{}}catch{return{}}}(i):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};a?a.emit(n):(c.length>=200&&c.shift(),c.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>a?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const f={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function m(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function T(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=m(s));return t}let S=!1,h=null,F=!0;function x(e){F=e}function A(e){S||(S=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),u(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,a]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),i=a.resourceFromAttributes(e.resourceAttrs),c=new n.OTLPLogExporter({url:e.endpoint}),u=new s.LoggerProvider({resource:i,processors:[new s.BatchLogRecordProcessor(c)]});t.logs.setGlobalLoggerProvider(u);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:f[t],severityText:t,body:JSON.stringify(e),attributes:T(o),timestamp:new Date(s)})},async flush(){await u.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let a=null;function i(){return null!==a&&(clearTimeout(a),a=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?i():null===a&&(a=setTimeout(()=>{a=null,i()},r))},async flush(){await i()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){F&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&h?.())}const I=Object.freeze(Object.defineProperty({__proto__:null,initLogger:A,registerPlatformFlushAttacher:function(e){h=e},resetInitLoggerStateForTests:function(){S=!1,h=null,F=!0},setNetworkLoggingEnabled:x},Symbol.toStringTag,{value:"Module"}));let y,O="",R={},_=null,N=()=>null,C=()=>null,D=()=>null,M=!1;const L=()=>_,v=()=>D(),w=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${O}/api${t}`},B="chat",b={CONVERSATIONS:()=>w("/conversations"),CONVERSATION_STREAM:e=>w(`/conversations/${e}`),CONVERSATION_START:e=>w(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>w(`/conversations/${e}/transcribe`),DOCUMENTS:()=>w("/documents"),DOCUMENT:e=>w(`/documents/${encodeURIComponent(e)}`),WEBRTC_OFFER:e=>w(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>w(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return w("/transcribe")},get BRANDING(){return w("/branding")},get CONFIG(){return w("/config")},get PROFILE(){return w("/profile")},get AUTH_ME(){return w("/auth/me")},get CHANGE_PASSWORD(){return w("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return w("/organizations/exists")},get DEBUG(){return w("/debug")},get TOOL_SERVERS(){return w("/tool-servers")},TOOL_SERVER_AUTH_START:e=>w(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>w(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return w("/tool-servers/auth/exchange")},get LOG(){return w("/log")}},k={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},P={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},G={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let U=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function j(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const V=W,Y={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},z=e=>!!e&&Date.now()>=e-k.TOKEN_CLOCK_SKEW_MS,X=e=>!e||Date.now()>=e-k.TOKEN_REFRESH_THRESHOLD_MS;function J(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function q(e){const t=J(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}const Z={LATIN:"Latn",ARABIC:"Arab",HEBREW:"Hebr",CYRILLIC:"Cyrl",GREEK:"Grek",DEVANAGARI:"Deva",THAI:"Thai",HAN:"Hani",HIRAGANA_KATAKANA:"Kana",HANGUL:"Kore"},Q={Latn:[[65,90],[97,122],[170,170],[186,186],[192,214],[216,246],[248,591],[592,687],[7680,7935],[11360,11391],[42786,42887],[42891,42957],[42960,42961],[42963,42963],[42965,42972],[42994,43007],[43824,43866],[43868,43876],[43878,43881],[64256,64262],[65313,65338],[65345,65370]],Arab:[[1568,1599],[1601,1610],[1646,1647],[1649,1747],[1749,1749],[1765,1766],[1774,1775],[1786,1788],[1791,1791],[1872,1919],[2208,2249],[2160,2183],[2185,2190],[64336,64433],[64467,64829],[64848,64911],[64914,64967],[65008,65019],[65136,65140],[65142,65276]],Hebr:[[1488,1514],[1519,1522],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64335]],Cyrl:[[1024,1153],[1162,1327],[7296,7306],[42560,42606],[42623,42653]],Grek:[[880,883],[886,887],[890,893],[895,895],[902,902],[904,906],[908,908],[910,929],[931,993],[1008,1013],[1015,1023],[7936,7957],[7960,7965],[7968,8005],[8008,8013],[8016,8023],[8025,8025],[8027,8027],[8029,8029],[8031,8061],[8064,8116],[8118,8124],[8126,8126],[8130,8132],[8134,8140],[8144,8147],[8150,8155],[8160,8172],[8178,8180],[8182,8188]],Deva:[[2308,2361],[2365,2365],[2384,2384],[2392,2401],[2417,2431]],Thai:[[3585,3632],[3634,3635],[3648,3654]],Hani:[[12293,12293],[13312,19903],[19968,40959],[63744,64109],[64112,64217],[131072,173791],[173824,177977],[177984,178205],[178208,183969],[183984,191456]],Kana:[[12353,12438],[12445,12447],[12449,12538],[12541,12543],[12784,12799],[65382,65391],[65393,65437]],Kore:[[4352,4607],[12593,12686],[43360,43388],[44032,55203],[55216,55238],[55243,55291]]},ee=[Z.LATIN,Z.ARABIC,Z.HEBREW,Z.CYRILLIC,Z.GREEK,Z.DEVANAGARI,Z.THAI,Z.HAN,Z.HIRAGANA_KATAKANA,Z.HANGUL],te=/```[\s\S]*?```|`[^`]*`|(?:https?:\/\/|www\.)\S+|\S+@[\w.-]+\.\w+|[@#][\w-]+/g;function re(e){for(const t of ee)for(const[r,s]of Q[t])if(e>=r&&e<=s)return t;return null}function se(e){const t=(e??"").replace(te," "),r=new Set,s=[];for(const e of t){const t=re(e.codePointAt(0)??0);t&&!r.has(t)&&(r.add(t),s.push(t))}return s}const oe={DEFAULT:"default",HEADING:"heading",MONO:"mono"},ne={REGULAR:"regular",MEDIUM:"medium",SEMIBOLD:"semibold",BOLD:"bold"},ae={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ie=[ae.LIGHT,ae.DARK,ae.SYSTEM],ce="default",ue={[oe.DEFAULT]:"system-ui, -apple-system, sans-serif",[oe.HEADING]:"system-ui, -apple-system, sans-serif",[oe.MONO]:"ui-monospace, monospace"},le={ar:Z.ARABIC,fa:Z.ARABIC,ur:Z.ARABIC,he:Z.HEBREW,yi:Z.HEBREW,ru:Z.CYRILLIC,bg:Z.CYRILLIC,sr:Z.CYRILLIC,uk:Z.CYRILLIC,mk:Z.CYRILLIC,be:Z.CYRILLIC,kk:Z.CYRILLIC,el:Z.GREEK,hi:Z.DEVANAGARI,mr:Z.DEVANAGARI,ne:Z.DEVANAGARI,th:Z.THAI,zh:Z.HAN,ja:Z.HIRAGANA_KATAKANA,ko:Z.HANGUL},de=new Set(["serif","sans-serif","monospace","cursive","fantasy","math","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","-apple-system","blinkmacsystemfont"]),pe=new Set(["SF Pro","SF Pro Display","SF Mono","system-ui","System","monospace","sans-serif"]),ge=new Set(Object.values(Z)),Ee=Object.values(Z);function fe(e){const t=e.split(/[-_]/);for(const e of t.slice(1)){if(1===e.length)break;const t=e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();if(ge.has(t))return t}const r=t[0]?.toLowerCase()??"";if(le[r])return le[r];if("undefined"!=typeof Intl&&"Locale"in Intl)try{const t=new Intl.Locale(e).maximize().script;if(t&&ge.has(t))return t}catch{}return Z.LATIN}function me(e,t){const r={...e?.families??{}},s=e?.locales;let o;if(s)o={...s};else{const r=e?.fontFamily,s=e?.fontFamilyMono;o={[ce]:{[oe.DEFAULT]:r??t.default,[oe.HEADING]:r??t.heading??t.default,[oe.MONO]:s??t.mono}}}const n=o[ce]??{};o[ce]={[oe.DEFAULT]:n.default??t.default,[oe.HEADING]:n.heading??t.heading??t.default,[oe.MONO]:n.mono??t.mono??t.default};const a=function(){const e={};for(const t of Ee)e[t]=[];return e}();for(const e of Object.keys(o))e!==ce&&a[fe(e)].push(e);return{locales:o,families:r,scriptIndex:a}}function Te(e){const t=e.trim();return t?de.has(t.toLowerCase())||t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`:t}function Se(e,t){return e?.[t]}function he(e,t,r){const s=[],o=new Set,n=e=>{e&&(o.has(e)||(o.add(e),s.push(e)))};for(const s of r)for(const r of e.scriptIndex[s])n(Se(e.locales[r],t));n(Se(e.locales[ce],t)??e.locales[ce].default);const a=s.map(Te);return a.length?`${a.join(", ")}, ${ue[t]}`:ue[t]}function Fe(e,t){return he(e,t,Object.keys(e.scriptIndex))}const xe={[ne.REGULAR]:400,[ne.MEDIUM]:500,[ne.SEMIBOLD]:600,[ne.BOLD]:700};function Ae(e){const t=function(e){const t=e.split(/[?#]/)[0].toLowerCase();return t.endsWith(".woff2")?"woff2":t.endsWith(".woff")?"woff":t.endsWith(".ttf")?"truetype":t.endsWith(".otf")?"opentype":void 0}(e);return t?`src: url("${e}") format("${t}");`:`src: url("${e}");`}function Ie(e){const t=[];for(const r of Ee)if(e.has(r))for(const[e,s]of Q[r]){const r=`U+${e.toString(16).toUpperCase()}`;t.push(e===s?r:`${r}-${s.toString(16).toUpperCase()}`)}return t.join(", ")}function ye(e,t,r,s){const o=["@font-face {",` font-family: ${Te(e)};`,` ${Ae(r)}`,` font-weight: ${t};`," font-style: normal;"," font-display: swap;"];return s&&o.push(` unicode-range: ${s};`),o.push("}"),o.join("\n")}const Oe=new WeakSet;function Re(e,t){if(Oe.has(e))return;Oe.add(e);const r=new Set;for(const s of Object.values(e.locales))for(const o of Object.values(s))o&&!r.has(o)&&(r.add(o),e.families[o]||pe.has(o)||t.warn({message:`Typography family "${o}" has no families entry and is not a known system font; falling back to the generic stack.`,font_family:o}))}const _e=t.createContext(void 0);function Ne(){const e=t.useContext(_e);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}class Ce{static instance;events={};constructor(){}static getInstance(){return Ce.instance||(Ce.instance=new Ce),Ce.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const De=Ce.getInstance(),Me={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},Le={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:me(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:Me.PILL,chatInputPlaceholder:"Type anything..."},ve={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:me(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:Me.PILL,chatInputPlaceholder:"Type anything..."};function we(e){return e===ae.LIGHT?ve:Le}const Be=Le;function be(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ke(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function Pe(e){switch(e){case"pill":return Me.PILL;case"none":return Me.SHARP;default:return 0===parseInt(e??"",10)?Me.SHARP:Me.ROUNDED}}const Ge=t.createContext(null);let Ue=null;const He=()=>Ue,Ke=t.createContext(null),$e={isConnected:!0,isInternetReachable:!0},We=r.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+k.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:je,updateUser:Ve,clearSession:Ye,sessionExpired:ze,setSelectedOrgId:Xe}=We.actions,Je=je,qe=Ye,Ze=r.createListenerMiddleware();Ze.startListening({matcher:r.isAnyOf(je,Ve,Ye,ze),effect:async(e,t)=>{const r=He();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(P.ACCESS_TOKEN,s.accessToken):r.removeItem(P.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(P.REFRESH_TOKEN,s.refreshToken):r.removeItem(P.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(P.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(P.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(P.USER,JSON.stringify(s.user)):r.removeItem(P.USER)),(Ye.match(e)||ze.match(e))&&o.push(r.removeItem(P.LOCATION_CACHE),r.removeItem(P.DEBUG_MODE),r.removeItem(P.APPEARANCE_MODE_KEY),r.removeItem(P.LOCATION_ENABLED),r.removeItem(P.STT_AUTO_SEND),r.removeItem(P.STT_IMPLEMENTATION),r.removeItem(P.SEND_DIAGNOSTICS),r.removeItem(P.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const Qe=We.reducer,et={lastResponseTime:null},tt=r.createSlice({name:"indicator",initialState:et,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(r.isAnyOf(Ye,ze),()=>et)}}),{setLastResponseTime:rt,clearLastResponseTime:st}=tt.actions,ot=tt.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=b,exports.APPEARANCE_MODES=ae,exports.APPEARANCE_MODE_VALUES=ie,exports.AUTH_HEADERS=G,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=V,exports.BrandingContext=_e,exports.CORNER_RADIUS_MODES=Me,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=Ce,exports.FEATURE_FLAGS={SSO:"sso"},exports.FONT_ROLES=oe,exports.FONT_WEIGHT_SLOTS=ne,exports.GENERIC_STACKS=ue,exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LANG_DEFAULT_SCRIPT=le,exports.LOGO_ALIGNMENTS={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},exports.LOG_LEVELS=n,exports.NetworkContext=Ke,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=B,exports.PASSWORD_LIMITS={MIN_LENGTH:8,MAX_LENGTH:128},exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.SCRIPTS=Z,exports.SCRIPT_RANGES=Q,exports.STORAGE_KEYS=P,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=Ge,exports.TIMING=k,exports.USER_TYPES=Y,exports.brandingToThemeStyles=function(e,t,r=ae.DARK){const s=we(r);if(!e||!t)return s;const o=me(e.typography,{default:s.typography.locales.default.default,heading:s.typography.locales.default.heading,mono:s.typography.locales.default.mono});Re(o,p);const n=t.surface?.chatInput?.border||t.surface?.input?.border,a=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?be(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?be(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:a?.style||s.userMsgBorderStyle,userMsgBorderColor:a?.color?be(a.color,a.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:a?.width||s.userMsgBorderWidth,userMsgBorderOpacity:a?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:Fe(o,oe.DEFAULT),fontFamilyHeading:Fe(o,oe.HEADING),fontFamilyMono:Fe(o,oe.MONO),fontSize:14,typography:o,borderRadius:ke(e.cornerRadius,s),cornerRadiusMode:Pe(e.cornerRadius),chatInputPlaceholder:e.startScreen?.inputPlaceholder??s.chatInputPlaceholder}},exports.buildFontFaceCss=function(e){const t=function(e){const t=new Map;for(const r of Ee)for(const s of e.scriptIndex[r])for(const o of Object.values(oe)){const n=e.locales[s]?.[o];n&&(t.has(n)||t.set(n,new Set),t.get(n).add(r))}return t}(e),r=new Set(Object.values(oe).map(t=>e.locales[ce]?.[t]).filter(e=>Boolean(e))),s=[];for(const[o,n]of Object.entries(e.families)){const e=r.has(o)?void 0:t.get(o),a=e?Ie(e):"";if(n.variable)s.push(ye(o,"100 900",n.variable,a));else for(const e of Object.values(ne)){const t=n[e];t&&s.push(ye(o,String(xe[e]),t,a))}}return s.join("\n\n")},exports.buildFontStack=he,exports.buildFullFontStack=Fe,exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=st,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)}catch{}}(e),function(e){try{e.removeItem(P.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=Ye,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=Be,exports.defaultDarkThemeStyles=Le,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=ve,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(P.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=q(t.getItem(P.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.detectScripts=se,exports.ensureFreshToken=async()=>X(v())?await(L()?.())??null:null,exports.eventEmitter=De,exports.extractTokens=function(e){const t=e.headers.get(G.ACCESS_TOKEN),r=e.headers.get(G.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${G.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${G.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),a=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:a<7?`${a}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=w,exports.getAppearanceModeStorageKey=e=>e?`${P.APPEARANCE_MODE_KEY}:${e}`:P.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>O,exports.getCustomHeaders=()=>R,exports.getDefaultThemeStyles=we,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>y,exports.getSendDiagnostics=()=>U,exports.getStorageRef=He,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-k.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=L,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),a=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(a*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(P.SEND_DIAGNOSTICS);U=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(P.ACCESS_TOKEN),e.getItem(P.REFRESH_TOKEN),e.getItem(P.TOKEN_EXPIRES_AT),e.getItem(P.USER)]),a=o?parseInt(o,10):null;if((!r||!a||z(a))&&!s)return void(r&&await Promise.all([e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)]));let i=null;if(n)try{i=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(je({user:i,accessToken:r,refreshToken:s,expiresIn:null!=a?a/1e3:null}))},exports.indicatorReducer=ot,exports.initLogger=A,exports.initializeChatConfig=e=>{O=e.baseUrl,R=e.customHeaders||{},y=e.paymentProvider},exports.isDevMode=()=>M,exports.isGuest=function(e){return e?.type===Y.GUEST_USER},exports.isTokenAboutToExpire=X,exports.isTokenExpired=z,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${B}`:`${e}/${B}`,exports.logger=p,exports.logout=qe,exports.normalizeTypography=me,exports.parseJwtPayload=J,exports.parseOrgFromJwt=q,exports.quoteFamily=Te,exports.readAccessToken=()=>N(),exports.readDeviceToken=()=>C(),exports.readTokenExpiresAt=v,exports.registerEventListener=function(e,t){return De.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=u,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){a=null,i=null,c.length=0,(await Promise.resolve().then(()=>I)).resetInitLoggerStateForTests()},exports.resolveFontFamily=function(e,t,r={}){const{language:s,script:o}=r;if(s){const r=Se(e.locales[s],t);if(r)return r}const n=o??(s?fe(s):void 0);if(n)for(const r of e.scriptIndex[n]){const s=Se(e.locales[r],t);if(s)return s}return Se(e.locales[ce],t)??e.locales[ce].default??""},exports.sanitizeExpiryDate=o,exports.sessionExpired=ze,exports.sessionListenerMiddleware=Ze,exports.sessionReducer=Qe,exports.setAccessTokenReader=e=>{N=e},exports.setCredentials=Je,exports.setDeviceTokenReader=e=>{C=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=rt,exports.setModuleStorage=function(e){Ue=e},exports.setNetworkLoggingEnabled=x,exports.setSelectedOrgId=Xe,exports.setSession=je,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{_=e},exports.showErrorToast=(e="Please try again")=>j({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>j({title:"Success",description:e,variant:"default"}),exports.showToast=e=>j(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=Ve,exports.useBranding=Ne,exports.useMessageFontStack=function(e,r){const{themeStyles:s}=Ne(),o=s.typography,n=t.useMemo(()=>{if(r){const e=r.split(/[-_]/)[0].toLowerCase(),t=le[e];if(t)return[t]}return se(e)},[e,r]);return t.useMemo(()=>he(o,oe.DEFAULT,n),[o,n])},exports.useNetworkState=()=>{const e=t.useContext(Ke),r=t.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=t.useCallback(()=>e?e.getState():$e,[e]);return t.useSyncExternalStore(r,s,s)},exports.useStorage=()=>{const e=t.useContext(Ge);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.warnUnknownFamilies=Re,exports.writeOrgToStorage=function(e,t){try{t.setItem(P.SELECTED_ORG_ID,e),t.setItem(P.SELECTED_ORG_NAME,e)}catch{}};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createContext as a,useContext as i,useMemo as c,useCallback as u,useSyncExternalStore as l}from"react";import{createSlice as d,createListenerMiddleware as g,isAnyOf as f}from"@reduxjs/toolkit";const p=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},E=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),m=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),a=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:a<7?`${a}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},h=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",F=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",S=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",A=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),T=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,a=n.getMonth()+1;return!(s<o||s===o&&r<a||r>12)},I=e=>{if(!e)return"";if(!T(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},y=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return I(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},O=e=>e.replace(/\D/g,"").slice(0,4);function R(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const _=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},N=e=>Array.isArray(e.widget)&&e.widget.length>0;function C(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const D={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let M=null,x=null;const B=[];function v(e){if(M=e,B.length>0){const t=B.splice(0,B.length);for(const r of t)e.emit(r)}}function w(e){x=e}async function b(){M=null,x=null,B.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function L(e,t){const r=x?function(e){try{return e()??{}}catch{return{}}}(x):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};M?M.emit(o):(B.length>=200&&B.shift(),B.push(o))}const k={debug(e){L(D.DEBUG,e)},info(e){L(D.INFO,e)},warn(e){L(D.WARN,e)},error(e){L(D.ERROR,e)},flush:()=>M?.flush?.()},P={[D.DEBUG]:0,[D.INFO]:1,[D.WARN]:2,[D.ERROR]:3};function G(e={}){const t=P[e.minLevel??D.DEBUG];return{emit(e){P[e.level]<t||(e.level===D.ERROR?console.error:e.level===D.WARN?console.warn:e.level===D.DEBUG?console.debug:console.info)(e)}}}const H={[D.DEBUG]:5,[D.INFO]:9,[D.WARN]:13,[D.ERROR]:17};function U(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function K(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=U(s));return t}let $=!1,W=null,j=!0;function V(e){j=e}function Y(e){$||($=!0,w(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),v(function(e){const t=[G({minLevel:e.consoleMinLevel??(e.isDev?D.DEBUG:D.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,a]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),i=a.resourceFromAttributes(e.resourceAttrs),c=new o.OTLPLogExporter({url:e.endpoint}),u=new s.LoggerProvider({resource:i,processors:[new s.BatchLogRecordProcessor(c)]});t.logs.setGlobalLoggerProvider(u);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:H[t],severityText:t,body:JSON.stringify(e),attributes:K(n),timestamp:new Date(s)})},async flush(){await u.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let a=null;function i(){return null!==a&&(clearTimeout(a),a=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?i():null===a&&(a=setTimeout(()=>{a=null,i()},r))},async flush(){await i()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){j&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&W?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:Y,registerPlatformFlushAttacher:function(e){W=e},resetInitLoggerStateForTests:function(){$=!1,W=null,j=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,J="",Z={},q=null,Q=()=>null,ee=()=>null,te=()=>null,re=!1;const se=e=>{J=e.baseUrl,Z=e.customHeaders||{},z=e.paymentProvider},ne=()=>J,oe=()=>z,ae=()=>Z,ie=e=>{q=e},ce=()=>q,ue=e=>{Q=e},le=()=>Q(),de=e=>{ee=e},ge=()=>ee(),fe=e=>{te=e},pe=()=>te(),Ee=e=>{re=e},me=()=>re,he=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${J}/api${t}`},Fe="chat",Se=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${Fe}`:`${e}/${Fe}`,Ae={CONVERSATIONS:()=>he("/conversations"),CONVERSATION_STREAM:e=>he(`/conversations/${e}`),CONVERSATION_START:e=>he(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>he(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>he(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>he(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return he("/transcribe")},get BRANDING(){return he("/branding")},get CONFIG(){return he("/config")},get PROFILE(){return he("/profile")},get AUTH_ME(){return he("/auth/me")},get CHANGE_PASSWORD(){return he("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return he("/organizations/exists")},get DEBUG(){return he("/debug")},get TOOL_SERVERS(){return he("/tool-servers")},TOOL_SERVER_AUTH_START:e=>he(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>he(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return he("/tool-servers/auth/exchange")},get LOG(){return he("/log")}},Te={SSO:"sso"},Ie={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},ye={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},Oe={ONLINE:"online",DEVICE:"device"},Re=e=>e?`${ye.APPEARANCE_MODE_KEY}:${e}`:ye.APPEARANCE_MODE_KEY,_e={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},Ne="x-device-token",Ce={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},De={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},Me={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},xe={MIN_LENGTH:8,MAX_LENGTH:128};let Be=!0;const ve=async e=>{const t=await e.getItem(ye.SEND_DIAGNOSTICS);Be=null===t||"true"===t},we=()=>Be,be=3,Le=500,ke=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(k.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function Pe(e){const{performRefresh:t,isTransient:r=ke,maxAttempts:s=be,backoffBaseMs:n=Le}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Ge="bridge-toast";function He(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Ge,{detail:e}))}const Ue=e=>He(e),Ke=(e="Please try again")=>He({title:"Error",description:e,variant:"destructive"}),$e=(e="Successfully")=>He({title:"Success",description:e,variant:"default"}),We=Ge,je={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},Ve={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"};function Ye(e){return e?.type===je.GUEST_USER}const Xe=e=>!!e&&Date.now()>=e-Ie.TOKEN_CLOCK_SKEW_MS,ze=e=>!e||Date.now()>=e-Ie.TOKEN_REFRESH_THRESHOLD_MS,Je=async()=>ze(pe())?await(ce()?.())??null:null,Ze=e=>e?Math.max(0,e-Date.now()):0,qe=e=>e?Math.max(0,e-Ie.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,Qe=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function et(e){const t=e.headers.get(_e.ACCESS_TOKEN),r=e.headers.get(_e.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${_e.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${_e.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function tt(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function rt(e){const t=tt(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function st(e,t){try{const r=t.getItem(ye.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=rt(t.getItem(ye.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function nt(e){!function(e){try{e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)}catch{}}(e),function(e){try{e.removeItem(ye.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function ot(e,t){try{t.setItem(ye.SELECTED_ORG_ID,e),t.setItem(ye.SELECTED_ORG_NAME,e)}catch{}}const at={LATIN:"Latn",ARABIC:"Arab",HEBREW:"Hebr",CYRILLIC:"Cyrl",GREEK:"Grek",DEVANAGARI:"Deva",THAI:"Thai",HAN:"Hani",HIRAGANA_KATAKANA:"Kana",HANGUL:"Kore"},it={Latn:[[65,90],[97,122],[170,170],[186,186],[192,214],[216,246],[248,591],[592,687],[7680,7935],[11360,11391],[42786,42887],[42891,42957],[42960,42961],[42963,42963],[42965,42972],[42994,43007],[43824,43866],[43868,43876],[43878,43881],[64256,64262],[65313,65338],[65345,65370]],Arab:[[1568,1599],[1601,1610],[1646,1647],[1649,1747],[1749,1749],[1765,1766],[1774,1775],[1786,1788],[1791,1791],[1872,1919],[2208,2249],[2160,2183],[2185,2190],[64336,64433],[64467,64829],[64848,64911],[64914,64967],[65008,65019],[65136,65140],[65142,65276]],Hebr:[[1488,1514],[1519,1522],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64335]],Cyrl:[[1024,1153],[1162,1327],[7296,7306],[42560,42606],[42623,42653]],Grek:[[880,883],[886,887],[890,893],[895,895],[902,902],[904,906],[908,908],[910,929],[931,993],[1008,1013],[1015,1023],[7936,7957],[7960,7965],[7968,8005],[8008,8013],[8016,8023],[8025,8025],[8027,8027],[8029,8029],[8031,8061],[8064,8116],[8118,8124],[8126,8126],[8130,8132],[8134,8140],[8144,8147],[8150,8155],[8160,8172],[8178,8180],[8182,8188]],Deva:[[2308,2361],[2365,2365],[2384,2384],[2392,2401],[2417,2431]],Thai:[[3585,3632],[3634,3635],[3648,3654]],Hani:[[12293,12293],[13312,19903],[19968,40959],[63744,64109],[64112,64217],[131072,173791],[173824,177977],[177984,178205],[178208,183969],[183984,191456]],Kana:[[12353,12438],[12445,12447],[12449,12538],[12541,12543],[12784,12799],[65382,65391],[65393,65437]],Kore:[[4352,4607],[12593,12686],[43360,43388],[44032,55203],[55216,55238],[55243,55291]]},ct=[at.LATIN,at.ARABIC,at.HEBREW,at.CYRILLIC,at.GREEK,at.DEVANAGARI,at.THAI,at.HAN,at.HIRAGANA_KATAKANA,at.HANGUL],ut=/```[\s\S]*?```|`[^`]*`|(?:https?:\/\/|www\.)\S+|\S+@[\w.-]+\.\w+|[@#][\w-]+/g;function lt(e){for(const t of ct)for(const[r,s]of it[t])if(e>=r&&e<=s)return t;return null}function dt(e){const t=(e??"").replace(ut," "),r=new Set,s=[];for(const e of t){const t=lt(e.codePointAt(0)??0);t&&!r.has(t)&&(r.add(t),s.push(t))}return s}const gt={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},ft={DEFAULT:"default",HEADING:"heading",MONO:"mono"},pt={REGULAR:"regular",MEDIUM:"medium",SEMIBOLD:"semibold",BOLD:"bold"},Et={LIGHT:"light",DARK:"dark",SYSTEM:"system"},mt=[Et.LIGHT,Et.DARK,Et.SYSTEM],ht={FOREGROUND:"foreground",BACKGROUND:"background"},Ft="default",St={[ft.DEFAULT]:"system-ui, -apple-system, sans-serif",[ft.HEADING]:"system-ui, -apple-system, sans-serif",[ft.MONO]:"ui-monospace, monospace"},At={ar:at.ARABIC,fa:at.ARABIC,ur:at.ARABIC,he:at.HEBREW,yi:at.HEBREW,ru:at.CYRILLIC,bg:at.CYRILLIC,sr:at.CYRILLIC,uk:at.CYRILLIC,mk:at.CYRILLIC,be:at.CYRILLIC,kk:at.CYRILLIC,el:at.GREEK,hi:at.DEVANAGARI,mr:at.DEVANAGARI,ne:at.DEVANAGARI,th:at.THAI,zh:at.HAN,ja:at.HIRAGANA_KATAKANA,ko:at.HANGUL},Tt=new Set(["serif","sans-serif","monospace","cursive","fantasy","math","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","-apple-system","blinkmacsystemfont"]),It=new Set(["SF Pro","SF Pro Display","SF Mono","system-ui","System","monospace","sans-serif"]),yt=new Set(Object.values(at)),Ot=Object.values(at);function Rt(e){const t=e.split(/[-_]/);for(const e of t.slice(1)){if(1===e.length)break;const t=e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();if(yt.has(t))return t}const r=t[0]?.toLowerCase()??"";if(At[r])return At[r];if("undefined"!=typeof Intl&&"Locale"in Intl)try{const t=new Intl.Locale(e).maximize().script;if(t&&yt.has(t))return t}catch{}return at.LATIN}function _t(e,t){const r={...e?.families??{}},s=e?.locales;let n;if(s)n={...s};else{const r=e?.fontFamily,s=e?.fontFamilyMono;n={[Ft]:{[ft.DEFAULT]:r??t.default,[ft.HEADING]:r??t.heading??t.default,[ft.MONO]:s??t.mono}}}const o=n[Ft]??{};n[Ft]={[ft.DEFAULT]:o.default??t.default,[ft.HEADING]:o.heading??t.heading??t.default,[ft.MONO]:o.mono??t.mono??t.default};const a=function(){const e={};for(const t of Ot)e[t]=[];return e}();for(const e of Object.keys(n))e!==Ft&&a[Rt(e)].push(e);return{locales:n,families:r,scriptIndex:a}}function Nt(e){const t=e.trim();return t?Tt.has(t.toLowerCase())||t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`:t}function Ct(e,t){return e?.[t]}function Dt(e,t,r={}){const{language:s,script:n}=r;if(s){const r=Ct(e.locales[s],t);if(r)return r}const o=n??(s?Rt(s):void 0);if(o)for(const r of e.scriptIndex[o]){const s=Ct(e.locales[r],t);if(s)return s}return Ct(e.locales[Ft],t)??e.locales[Ft].default??""}function Mt(e,t,r){const s=[],n=new Set,o=e=>{e&&(n.has(e)||(n.add(e),s.push(e)))};for(const s of r)for(const r of e.scriptIndex[s])o(Ct(e.locales[r],t));o(Ct(e.locales[Ft],t)??e.locales[Ft].default);const a=s.map(Nt);return a.length?`${a.join(", ")}, ${St[t]}`:St[t]}function xt(e,t){return Mt(e,t,Object.keys(e.scriptIndex))}const Bt={[pt.REGULAR]:400,[pt.MEDIUM]:500,[pt.SEMIBOLD]:600,[pt.BOLD]:700};function vt(e){const t=function(e){const t=e.split(/[?#]/)[0].toLowerCase();return t.endsWith(".woff2")?"woff2":t.endsWith(".woff")?"woff":t.endsWith(".ttf")?"truetype":t.endsWith(".otf")?"opentype":void 0}(e);return t?`src: url("${e}") format("${t}");`:`src: url("${e}");`}function wt(e){const t=[];for(const r of Ot)if(e.has(r))for(const[e,s]of it[r]){const r=`U+${e.toString(16).toUpperCase()}`;t.push(e===s?r:`${r}-${s.toString(16).toUpperCase()}`)}return t.join(", ")}function bt(e,t,r,s){const n=["@font-face {",` font-family: ${Nt(e)};`,` ${vt(r)}`,` font-weight: ${t};`," font-style: normal;"," font-display: swap;"];return s&&n.push(` unicode-range: ${s};`),n.push("}"),n.join("\n")}function Lt(e){const t=function(e){const t=new Map;for(const r of Ot)for(const s of e.scriptIndex[r])for(const n of Object.values(ft)){const o=e.locales[s]?.[n];o&&(t.has(o)||t.set(o,new Set),t.get(o).add(r))}return t}(e),r=new Set(Object.values(ft).map(t=>e.locales[Ft]?.[t]).filter(e=>Boolean(e))),s=[];for(const[n,o]of Object.entries(e.families)){const e=r.has(n)?void 0:t.get(n),a=e?wt(e):"";if(o.variable)s.push(bt(n,"100 900",o.variable,a));else for(const e of Object.values(pt)){const t=o[e];t&&s.push(bt(n,String(Bt[e]),t,a))}}return s.join("\n\n")}const kt=new WeakSet;function Pt(e,t){if(kt.has(e))return;kt.add(e);const r=new Set;for(const s of Object.values(e.locales))for(const n of Object.values(s))n&&!r.has(n)&&(r.add(n),e.families[n]||It.has(n)||t.warn({message:`Typography family "${n}" has no families entry and is not a known system font; falling back to the generic stack.`,font_family:n}))}const Gt=a(void 0);function Ht(){const e=i(Gt);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}function Ut(e,t){const{themeStyles:r}=Ht(),s=r.typography,n=c(()=>{if(t){const e=t.split(/[-_]/)[0].toLowerCase(),r=At[e];if(r)return[r]}return dt(e)},[e,t]);return c(()=>Mt(s,ft.DEFAULT,n),[s,n])}class Kt{static instance;events={};constructor(){}static getInstance(){return Kt.instance||(Kt.instance=new Kt),Kt.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){k.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const $t=Kt.getInstance();function Wt(e,t){return $t.on(e,t)}const jt={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},Vt={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:_t(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:jt.PILL,chatInputPlaceholder:"Type anything..."},Yt={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:_t(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:jt.PILL,chatInputPlaceholder:"Type anything..."};function Xt(e){return e===Et.LIGHT?Yt:Vt}const zt=Vt;function Jt(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function Zt(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function qt(e){switch(e){case"pill":return jt.PILL;case"none":return jt.SHARP;default:return 0===parseInt(e??"",10)?jt.SHARP:jt.ROUNDED}}function Qt(e,t,r=Et.DARK){const s=Xt(r);if(!e||!t)return s;const n=_t(e.typography,{default:s.typography.locales.default.default,heading:s.typography.locales.default.heading,mono:s.typography.locales.default.mono});Pt(n,k);const o=t.surface?.chatInput?.border||t.surface?.input?.border,a=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?Jt(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?Jt(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:a?.style||s.userMsgBorderStyle,userMsgBorderColor:a?.color?Jt(a.color,a.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:a?.width||s.userMsgBorderWidth,userMsgBorderOpacity:a?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:xt(n,ft.DEFAULT),fontFamilyHeading:xt(n,ft.HEADING),fontFamilyMono:xt(n,ft.MONO),fontSize:14,typography:n,borderRadius:Zt(e.cornerRadius,s),cornerRadiusMode:qt(e.cornerRadius),chatInputPlaceholder:e.startScreen?.inputPlaceholder??s.chatInputPlaceholder}}function er(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),a=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(a*t*1e3)/1e3})`}const tr=a(null),rr=()=>{const e=i(tr);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let sr=null;function nr(e){sr=e}const or=()=>sr,ar=a(null),ir={isConnected:!0,isInternetReachable:!0},cr=()=>{const e=i(ar),t=u(t=>e?e.subscribe(t):()=>{},[e]),r=u(()=>e?e.getState():ir,[e]);return l(t,r,r)},ur=d({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+Ie.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:lr,updateUser:dr,clearSession:gr,sessionExpired:fr,setSelectedOrgId:pr}=ur.actions,Er=lr,mr=gr,hr=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(ye.ACCESS_TOKEN),e.getItem(ye.REFRESH_TOKEN),e.getItem(ye.TOKEN_EXPIRES_AT),e.getItem(ye.USER)]),a=n?parseInt(n,10):null;if((!r||!a||Xe(a))&&!s)return void(r&&await Promise.all([e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)]));let i=null;if(o)try{i=JSON.parse(o)}catch(e){k.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(lr({user:i,accessToken:r,refreshToken:s,expiresIn:null!=a?a/1e3:null}))},Fr=g();Fr.startListening({matcher:f(lr,dr,gr,fr),effect:async(e,t)=>{const r=or();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(ye.ACCESS_TOKEN,s.accessToken):r.removeItem(ye.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(ye.REFRESH_TOKEN,s.refreshToken):r.removeItem(ye.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(ye.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(ye.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(ye.USER,JSON.stringify(s.user)):r.removeItem(ye.USER)),(gr.match(e)||fr.match(e))&&n.push(r.removeItem(ye.LOCATION_CACHE),r.removeItem(ye.DEBUG_MODE),r.removeItem(ye.APPEARANCE_MODE_KEY),r.removeItem(ye.LOCATION_ENABLED),r.removeItem(ye.STT_AUTO_SEND),r.removeItem(ye.STT_IMPLEMENTATION),r.removeItem(ye.SEND_DIAGNOSTICS),r.removeItem(ye.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const Sr=ur.reducer,Ar={lastResponseTime:null},Tr=d({name:"indicator",initialState:Ar,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(f(gr,fr),()=>Ar)}}),{setLastResponseTime:Ir,clearLastResponseTime:yr}=Tr.actions,Or=Tr.reducer;function Rr(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const _r={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function Nr(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Ae as API_ENDPOINTS,Et as APPEARANCE_MODES,mt as APPEARANCE_MODE_VALUES,_e as AUTH_HEADERS,Ce as AUTH_PATHS,We as BRIDGE_TOAST_EVENT_NAME,Gt as BrandingContext,jt as CORNER_RADIUS_MODES,Ne as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,Kt as EventEmitter,Te as FEATURE_FLAGS,ft as FONT_ROLES,pt as FONT_WEIGHT_SLOTS,St as GENERIC_STACKS,Ve as IDP_HINTS,_r as INDICATOR_TIMER_ACTIONS,At as LANG_DEFAULT_SCRIPT,gt as LOGO_ALIGNMENTS,D as LOG_LEVELS,ar as NetworkContext,ht as ORB_POSITIONS,Fe as ORG_MOUNT_SUFFIX,xe as PASSWORD_LIMITS,De as PATTERNS,Me as PROFILE_LIMITS,at as SCRIPTS,it as SCRIPT_RANGES,ye as STORAGE_KEYS,Oe as STT_IMPLEMENTATIONS,tr as StorageContext,t as TEXT_DIRECTION,Ie as TIMING,je as USER_TYPES,Qt as brandingToThemeStyles,Lt as buildFontFaceCss,Mt as buildFontStack,xt as buildFullFontStack,h as capitalizeFirst,yr as clearLastResponseTime,nt as clearPreviousTenant,gr as clearSession,Pe as createTokenRefresher,zt as defaultChatThemeStyles,Vt as defaultDarkThemeStyles,ke as defaultIsTransient,Yt as defaultLightThemeStyles,st as detectOrgSwitch,dt as detectScripts,r as detectTextDirection,Je as ensureFreshToken,$t as eventEmitter,et as extractTokens,O as formatCVC,F as formatCamelCaseToTitle,A as formatCardNumber,y as formatExpiryDate,Qe as formatTimeRemaining,m as formatTimestamp,E as generateUniqueId,he as getApiUrl,Re as getAppearanceModeStorageKey,R as getArrayOfObjects,ne as getBaseUrl,ae as getCustomHeaders,Xt as getDefaultThemeStyles,C as getErrorMessage,_ as getInitials,Nr as getPaymentId,oe as getPaymentProviderHint,we as getSendDiagnostics,or as getStorageRef,Ze as getTimeUntilExpiry,qe as getTimeUntilRefresh,ce as getTokenRefreshHandler,Rr as handleSharedEvent,N as hasWidgets,er as hexToRgba,ve as hydrateAppBoot,hr as hydrateSession,Or as indicatorReducer,Y as initLogger,se as initializeChatConfig,me as isDevMode,Ye as isGuest,ze as isTokenAboutToExpire,Xe as isTokenExpired,Se as joinOrgMountBase,k as logger,mr as logout,_t as normalizeTypography,tt as parseJwtPayload,rt as parseOrgFromJwt,Nt as quoteFamily,le as readAccessToken,ge as readDeviceToken,pe as readTokenExpiresAt,Wt as registerEventListener,w as registerLoggerContextProvider,v as registerLoggerSink,S as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,Dt as resolveFontFamily,I as sanitizeExpiryDate,fr as sessionExpired,Fr as sessionListenerMiddleware,Sr as sessionReducer,ue as setAccessTokenReader,Er as setCredentials,de as setDeviceTokenReader,Ee as setIsDev,Ir as setLastResponseTime,nr as setModuleStorage,V as setNetworkLoggingEnabled,pr as setSelectedOrgId,lr as setSession,fe as setTokenExpiresAtReader,ie as setTokenRefreshHandler,Ke as showErrorToast,$e as showSuccessToast,Ue as showToast,p as truncateWordLimit,dr as updateUser,Ht as useBranding,n as useMessageDirection,o as useMessageDirections,Ut as useMessageFontStack,cr as useNetworkState,rr as useStorage,T as validateExpiryDate,Pt as warnUnknownFamilies,ot as writeOrgToStorage};
1
+ import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createContext as a,useContext as i,useMemo as c,useCallback as u,useSyncExternalStore as l}from"react";import{createSlice as d,createListenerMiddleware as g,isAnyOf as f}from"@reduxjs/toolkit";const p=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},E=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),m=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),a=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:a<7?`${a}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},h=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",F=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",S=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",T=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),A=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,a=n.getMonth()+1;return!(s<o||s===o&&r<a||r>12)},I=e=>{if(!e)return"";if(!A(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},y=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return I(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},O=e=>e.replace(/\D/g,"").slice(0,4);function R(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const N=(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"},_=e=>Array.isArray(e.widget)&&e.widget.length>0;function C(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const D={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let M=null,x=null;const B=[];function v(e){if(M=e,B.length>0){const t=B.splice(0,B.length);for(const r of t)e.emit(r)}}function w(e){x=e}async function b(){M=null,x=null,B.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function L(e,t){const r=x?function(e){try{return e()??{}}catch{return{}}}(x):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};M?M.emit(o):(B.length>=200&&B.shift(),B.push(o))}const k={debug(e){L(D.DEBUG,e)},info(e){L(D.INFO,e)},warn(e){L(D.WARN,e)},error(e){L(D.ERROR,e)},flush:()=>M?.flush?.()},P={[D.DEBUG]:0,[D.INFO]:1,[D.WARN]:2,[D.ERROR]:3};function G(e={}){const t=P[e.minLevel??D.DEBUG];return{emit(e){P[e.level]<t||(e.level===D.ERROR?console.error:e.level===D.WARN?console.warn:e.level===D.DEBUG?console.debug:console.info)(e)}}}const U={[D.DEBUG]:5,[D.INFO]:9,[D.WARN]:13,[D.ERROR]:17};function H(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function K(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=H(s));return t}let $=!1,W=null,j=!0;function V(e){j=e}function Y(e){$||($=!0,w(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),v(function(e){const t=[G({minLevel:e.consoleMinLevel??(e.isDev?D.DEBUG:D.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,a]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),i=a.resourceFromAttributes(e.resourceAttrs),c=new o.OTLPLogExporter({url:e.endpoint}),u=new s.LoggerProvider({resource:i,processors:[new s.BatchLogRecordProcessor(c)]});t.logs.setGlobalLoggerProvider(u);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:U[t],severityText:t,body:JSON.stringify(e),attributes:K(n),timestamp:new Date(s)})},async flush(){await u.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let a=null;function i(){return null!==a&&(clearTimeout(a),a=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?i():null===a&&(a=setTimeout(()=>{a=null,i()},r))},async flush(){await i()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){j&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&W?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:Y,registerPlatformFlushAttacher:function(e){W=e},resetInitLoggerStateForTests:function(){$=!1,W=null,j=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,J="",Z={},q=null,Q=()=>null,ee=()=>null,te=()=>null,re=!1;const se=e=>{J=e.baseUrl,Z=e.customHeaders||{},z=e.paymentProvider},ne=()=>J,oe=()=>z,ae=()=>Z,ie=e=>{q=e},ce=()=>q,ue=e=>{Q=e},le=()=>Q(),de=e=>{ee=e},ge=()=>ee(),fe=e=>{te=e},pe=()=>te(),Ee=e=>{re=e},me=()=>re,he=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${J}/api${t}`},Fe="chat",Se=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${Fe}`:`${e}/${Fe}`,Te={CONVERSATIONS:()=>he("/conversations"),CONVERSATION_STREAM:e=>he(`/conversations/${e}`),CONVERSATION_START:e=>he(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>he(`/conversations/${e}/transcribe`),DOCUMENTS:()=>he("/documents"),DOCUMENT:e=>he(`/documents/${encodeURIComponent(e)}`),WEBRTC_OFFER:e=>he(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>he(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return he("/transcribe")},get BRANDING(){return he("/branding")},get CONFIG(){return he("/config")},get PROFILE(){return he("/profile")},get AUTH_ME(){return he("/auth/me")},get CHANGE_PASSWORD(){return he("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return he("/organizations/exists")},get DEBUG(){return he("/debug")},get TOOL_SERVERS(){return he("/tool-servers")},TOOL_SERVER_AUTH_START:e=>he(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>he(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return he("/tool-servers/auth/exchange")},get LOG(){return he("/log")}},Ae={SSO:"sso"},Ie={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},ye={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},Oe={ONLINE:"online",DEVICE:"device"},Re=e=>e?`${ye.APPEARANCE_MODE_KEY}:${e}`:ye.APPEARANCE_MODE_KEY,Ne={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},_e="x-device-token",Ce={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},De={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},Me={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},xe={MIN_LENGTH:8,MAX_LENGTH:128};let Be=!0;const ve=async e=>{const t=await e.getItem(ye.SEND_DIAGNOSTICS);Be=null===t||"true"===t},we=()=>Be,be=3,Le=500,ke=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(k.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function Pe(e){const{performRefresh:t,isTransient:r=ke,maxAttempts:s=be,backoffBaseMs:n=Le}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Ge="bridge-toast";function Ue(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Ge,{detail:e}))}const He=e=>Ue(e),Ke=(e="Please try again")=>Ue({title:"Error",description:e,variant:"destructive"}),$e=(e="Successfully")=>Ue({title:"Success",description:e,variant:"default"}),We=Ge,je={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},Ve={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"};function Ye(e){return e?.type===je.GUEST_USER}const Xe=e=>!!e&&Date.now()>=e-Ie.TOKEN_CLOCK_SKEW_MS,ze=e=>!e||Date.now()>=e-Ie.TOKEN_REFRESH_THRESHOLD_MS,Je=async()=>ze(pe())?await(ce()?.())??null:null,Ze=e=>e?Math.max(0,e-Date.now()):0,qe=e=>e?Math.max(0,e-Ie.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,Qe=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function et(e){const t=e.headers.get(Ne.ACCESS_TOKEN),r=e.headers.get(Ne.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${Ne.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${Ne.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function tt(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function rt(e){const t=tt(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function st(e,t){try{const r=t.getItem(ye.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=rt(t.getItem(ye.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function nt(e){!function(e){try{e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)}catch{}}(e),function(e){try{e.removeItem(ye.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function ot(e,t){try{t.setItem(ye.SELECTED_ORG_ID,e),t.setItem(ye.SELECTED_ORG_NAME,e)}catch{}}const at={LATIN:"Latn",ARABIC:"Arab",HEBREW:"Hebr",CYRILLIC:"Cyrl",GREEK:"Grek",DEVANAGARI:"Deva",THAI:"Thai",HAN:"Hani",HIRAGANA_KATAKANA:"Kana",HANGUL:"Kore"},it={Latn:[[65,90],[97,122],[170,170],[186,186],[192,214],[216,246],[248,591],[592,687],[7680,7935],[11360,11391],[42786,42887],[42891,42957],[42960,42961],[42963,42963],[42965,42972],[42994,43007],[43824,43866],[43868,43876],[43878,43881],[64256,64262],[65313,65338],[65345,65370]],Arab:[[1568,1599],[1601,1610],[1646,1647],[1649,1747],[1749,1749],[1765,1766],[1774,1775],[1786,1788],[1791,1791],[1872,1919],[2208,2249],[2160,2183],[2185,2190],[64336,64433],[64467,64829],[64848,64911],[64914,64967],[65008,65019],[65136,65140],[65142,65276]],Hebr:[[1488,1514],[1519,1522],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64335]],Cyrl:[[1024,1153],[1162,1327],[7296,7306],[42560,42606],[42623,42653]],Grek:[[880,883],[886,887],[890,893],[895,895],[902,902],[904,906],[908,908],[910,929],[931,993],[1008,1013],[1015,1023],[7936,7957],[7960,7965],[7968,8005],[8008,8013],[8016,8023],[8025,8025],[8027,8027],[8029,8029],[8031,8061],[8064,8116],[8118,8124],[8126,8126],[8130,8132],[8134,8140],[8144,8147],[8150,8155],[8160,8172],[8178,8180],[8182,8188]],Deva:[[2308,2361],[2365,2365],[2384,2384],[2392,2401],[2417,2431]],Thai:[[3585,3632],[3634,3635],[3648,3654]],Hani:[[12293,12293],[13312,19903],[19968,40959],[63744,64109],[64112,64217],[131072,173791],[173824,177977],[177984,178205],[178208,183969],[183984,191456]],Kana:[[12353,12438],[12445,12447],[12449,12538],[12541,12543],[12784,12799],[65382,65391],[65393,65437]],Kore:[[4352,4607],[12593,12686],[43360,43388],[44032,55203],[55216,55238],[55243,55291]]},ct=[at.LATIN,at.ARABIC,at.HEBREW,at.CYRILLIC,at.GREEK,at.DEVANAGARI,at.THAI,at.HAN,at.HIRAGANA_KATAKANA,at.HANGUL],ut=/```[\s\S]*?```|`[^`]*`|(?:https?:\/\/|www\.)\S+|\S+@[\w.-]+\.\w+|[@#][\w-]+/g;function lt(e){for(const t of ct)for(const[r,s]of it[t])if(e>=r&&e<=s)return t;return null}function dt(e){const t=(e??"").replace(ut," "),r=new Set,s=[];for(const e of t){const t=lt(e.codePointAt(0)??0);t&&!r.has(t)&&(r.add(t),s.push(t))}return s}const gt={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},ft={DEFAULT:"default",HEADING:"heading",MONO:"mono"},pt={REGULAR:"regular",MEDIUM:"medium",SEMIBOLD:"semibold",BOLD:"bold"},Et={LIGHT:"light",DARK:"dark",SYSTEM:"system"},mt=[Et.LIGHT,Et.DARK,Et.SYSTEM],ht={FOREGROUND:"foreground",BACKGROUND:"background"},Ft="default",St={[ft.DEFAULT]:"system-ui, -apple-system, sans-serif",[ft.HEADING]:"system-ui, -apple-system, sans-serif",[ft.MONO]:"ui-monospace, monospace"},Tt={ar:at.ARABIC,fa:at.ARABIC,ur:at.ARABIC,he:at.HEBREW,yi:at.HEBREW,ru:at.CYRILLIC,bg:at.CYRILLIC,sr:at.CYRILLIC,uk:at.CYRILLIC,mk:at.CYRILLIC,be:at.CYRILLIC,kk:at.CYRILLIC,el:at.GREEK,hi:at.DEVANAGARI,mr:at.DEVANAGARI,ne:at.DEVANAGARI,th:at.THAI,zh:at.HAN,ja:at.HIRAGANA_KATAKANA,ko:at.HANGUL},At=new Set(["serif","sans-serif","monospace","cursive","fantasy","math","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","-apple-system","blinkmacsystemfont"]),It=new Set(["SF Pro","SF Pro Display","SF Mono","system-ui","System","monospace","sans-serif"]),yt=new Set(Object.values(at)),Ot=Object.values(at);function Rt(e){const t=e.split(/[-_]/);for(const e of t.slice(1)){if(1===e.length)break;const t=e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();if(yt.has(t))return t}const r=t[0]?.toLowerCase()??"";if(Tt[r])return Tt[r];if("undefined"!=typeof Intl&&"Locale"in Intl)try{const t=new Intl.Locale(e).maximize().script;if(t&&yt.has(t))return t}catch{}return at.LATIN}function Nt(e,t){const r={...e?.families??{}},s=e?.locales;let n;if(s)n={...s};else{const r=e?.fontFamily,s=e?.fontFamilyMono;n={[Ft]:{[ft.DEFAULT]:r??t.default,[ft.HEADING]:r??t.heading??t.default,[ft.MONO]:s??t.mono}}}const o=n[Ft]??{};n[Ft]={[ft.DEFAULT]:o.default??t.default,[ft.HEADING]:o.heading??t.heading??t.default,[ft.MONO]:o.mono??t.mono??t.default};const a=function(){const e={};for(const t of Ot)e[t]=[];return e}();for(const e of Object.keys(n))e!==Ft&&a[Rt(e)].push(e);return{locales:n,families:r,scriptIndex:a}}function _t(e){const t=e.trim();return t?At.has(t.toLowerCase())||t.startsWith('"')&&t.endsWith('"')?t:`"${t}"`:t}function Ct(e,t){return e?.[t]}function Dt(e,t,r={}){const{language:s,script:n}=r;if(s){const r=Ct(e.locales[s],t);if(r)return r}const o=n??(s?Rt(s):void 0);if(o)for(const r of e.scriptIndex[o]){const s=Ct(e.locales[r],t);if(s)return s}return Ct(e.locales[Ft],t)??e.locales[Ft].default??""}function Mt(e,t,r){const s=[],n=new Set,o=e=>{e&&(n.has(e)||(n.add(e),s.push(e)))};for(const s of r)for(const r of e.scriptIndex[s])o(Ct(e.locales[r],t));o(Ct(e.locales[Ft],t)??e.locales[Ft].default);const a=s.map(_t);return a.length?`${a.join(", ")}, ${St[t]}`:St[t]}function xt(e,t){return Mt(e,t,Object.keys(e.scriptIndex))}const Bt={[pt.REGULAR]:400,[pt.MEDIUM]:500,[pt.SEMIBOLD]:600,[pt.BOLD]:700};function vt(e){const t=function(e){const t=e.split(/[?#]/)[0].toLowerCase();return t.endsWith(".woff2")?"woff2":t.endsWith(".woff")?"woff":t.endsWith(".ttf")?"truetype":t.endsWith(".otf")?"opentype":void 0}(e);return t?`src: url("${e}") format("${t}");`:`src: url("${e}");`}function wt(e){const t=[];for(const r of Ot)if(e.has(r))for(const[e,s]of it[r]){const r=`U+${e.toString(16).toUpperCase()}`;t.push(e===s?r:`${r}-${s.toString(16).toUpperCase()}`)}return t.join(", ")}function bt(e,t,r,s){const n=["@font-face {",` font-family: ${_t(e)};`,` ${vt(r)}`,` font-weight: ${t};`," font-style: normal;"," font-display: swap;"];return s&&n.push(` unicode-range: ${s};`),n.push("}"),n.join("\n")}function Lt(e){const t=function(e){const t=new Map;for(const r of Ot)for(const s of e.scriptIndex[r])for(const n of Object.values(ft)){const o=e.locales[s]?.[n];o&&(t.has(o)||t.set(o,new Set),t.get(o).add(r))}return t}(e),r=new Set(Object.values(ft).map(t=>e.locales[Ft]?.[t]).filter(e=>Boolean(e))),s=[];for(const[n,o]of Object.entries(e.families)){const e=r.has(n)?void 0:t.get(n),a=e?wt(e):"";if(o.variable)s.push(bt(n,"100 900",o.variable,a));else for(const e of Object.values(pt)){const t=o[e];t&&s.push(bt(n,String(Bt[e]),t,a))}}return s.join("\n\n")}const kt=new WeakSet;function Pt(e,t){if(kt.has(e))return;kt.add(e);const r=new Set;for(const s of Object.values(e.locales))for(const n of Object.values(s))n&&!r.has(n)&&(r.add(n),e.families[n]||It.has(n)||t.warn({message:`Typography family "${n}" has no families entry and is not a known system font; falling back to the generic stack.`,font_family:n}))}const Gt=a(void 0);function Ut(){const e=i(Gt);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}function Ht(e,t){const{themeStyles:r}=Ut(),s=r.typography,n=c(()=>{if(t){const e=t.split(/[-_]/)[0].toLowerCase(),r=Tt[e];if(r)return[r]}return dt(e)},[e,t]);return c(()=>Mt(s,ft.DEFAULT,n),[s,n])}class Kt{static instance;events={};constructor(){}static getInstance(){return Kt.instance||(Kt.instance=new Kt),Kt.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){k.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const $t=Kt.getInstance();function Wt(e,t){return $t.on(e,t)}const jt={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},Vt={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:Nt(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:jt.PILL,chatInputPlaceholder:"Type anything..."},Yt={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyHeading:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,typography:Nt(void 0,{default:"SF Pro Display",heading:"SF Pro Display",mono:"SF Mono"}),borderRadius:16,cornerRadiusMode:jt.PILL,chatInputPlaceholder:"Type anything..."};function Xt(e){return e===Et.LIGHT?Yt:Vt}const zt=Vt;function Jt(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function Zt(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function qt(e){switch(e){case"pill":return jt.PILL;case"none":return jt.SHARP;default:return 0===parseInt(e??"",10)?jt.SHARP:jt.ROUNDED}}function Qt(e,t,r=Et.DARK){const s=Xt(r);if(!e||!t)return s;const n=Nt(e.typography,{default:s.typography.locales.default.default,heading:s.typography.locales.default.heading,mono:s.typography.locales.default.mono});Pt(n,k);const o=t.surface?.chatInput?.border||t.surface?.input?.border,a=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?Jt(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?Jt(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:a?.style||s.userMsgBorderStyle,userMsgBorderColor:a?.color?Jt(a.color,a.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:a?.width||s.userMsgBorderWidth,userMsgBorderOpacity:a?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:xt(n,ft.DEFAULT),fontFamilyHeading:xt(n,ft.HEADING),fontFamilyMono:xt(n,ft.MONO),fontSize:14,typography:n,borderRadius:Zt(e.cornerRadius,s),cornerRadiusMode:qt(e.cornerRadius),chatInputPlaceholder:e.startScreen?.inputPlaceholder??s.chatInputPlaceholder}}function er(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),a=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(a*t*1e3)/1e3})`}const tr=a(null),rr=()=>{const e=i(tr);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let sr=null;function nr(e){sr=e}const or=()=>sr,ar=a(null),ir={isConnected:!0,isInternetReachable:!0},cr=()=>{const e=i(ar),t=u(t=>e?e.subscribe(t):()=>{},[e]),r=u(()=>e?e.getState():ir,[e]);return l(t,r,r)},ur=d({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+Ie.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:lr,updateUser:dr,clearSession:gr,sessionExpired:fr,setSelectedOrgId:pr}=ur.actions,Er=lr,mr=gr,hr=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(ye.ACCESS_TOKEN),e.getItem(ye.REFRESH_TOKEN),e.getItem(ye.TOKEN_EXPIRES_AT),e.getItem(ye.USER)]),a=n?parseInt(n,10):null;if((!r||!a||Xe(a))&&!s)return void(r&&await Promise.all([e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)]));let i=null;if(o)try{i=JSON.parse(o)}catch(e){k.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(lr({user:i,accessToken:r,refreshToken:s,expiresIn:null!=a?a/1e3:null}))},Fr=g();Fr.startListening({matcher:f(lr,dr,gr,fr),effect:async(e,t)=>{const r=or();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(ye.ACCESS_TOKEN,s.accessToken):r.removeItem(ye.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(ye.REFRESH_TOKEN,s.refreshToken):r.removeItem(ye.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(ye.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(ye.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(ye.USER,JSON.stringify(s.user)):r.removeItem(ye.USER)),(gr.match(e)||fr.match(e))&&n.push(r.removeItem(ye.LOCATION_CACHE),r.removeItem(ye.DEBUG_MODE),r.removeItem(ye.APPEARANCE_MODE_KEY),r.removeItem(ye.LOCATION_ENABLED),r.removeItem(ye.STT_AUTO_SEND),r.removeItem(ye.STT_IMPLEMENTATION),r.removeItem(ye.SEND_DIAGNOSTICS),r.removeItem(ye.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const Sr=ur.reducer,Tr={lastResponseTime:null},Ar=d({name:"indicator",initialState:Tr,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(f(gr,fr),()=>Tr)}}),{setLastResponseTime:Ir,clearLastResponseTime:yr}=Ar.actions,Or=Ar.reducer;function Rr(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const Nr={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function _r(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Te as API_ENDPOINTS,Et as APPEARANCE_MODES,mt as APPEARANCE_MODE_VALUES,Ne as AUTH_HEADERS,Ce as AUTH_PATHS,We as BRIDGE_TOAST_EVENT_NAME,Gt as BrandingContext,jt as CORNER_RADIUS_MODES,_e as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,Kt as EventEmitter,Ae as FEATURE_FLAGS,ft as FONT_ROLES,pt as FONT_WEIGHT_SLOTS,St as GENERIC_STACKS,Ve as IDP_HINTS,Nr as INDICATOR_TIMER_ACTIONS,Tt as LANG_DEFAULT_SCRIPT,gt as LOGO_ALIGNMENTS,D as LOG_LEVELS,ar as NetworkContext,ht as ORB_POSITIONS,Fe as ORG_MOUNT_SUFFIX,xe as PASSWORD_LIMITS,De as PATTERNS,Me as PROFILE_LIMITS,at as SCRIPTS,it as SCRIPT_RANGES,ye as STORAGE_KEYS,Oe as STT_IMPLEMENTATIONS,tr as StorageContext,t as TEXT_DIRECTION,Ie as TIMING,je as USER_TYPES,Qt as brandingToThemeStyles,Lt as buildFontFaceCss,Mt as buildFontStack,xt as buildFullFontStack,h as capitalizeFirst,yr as clearLastResponseTime,nt as clearPreviousTenant,gr as clearSession,Pe as createTokenRefresher,zt as defaultChatThemeStyles,Vt as defaultDarkThemeStyles,ke as defaultIsTransient,Yt as defaultLightThemeStyles,st as detectOrgSwitch,dt as detectScripts,r as detectTextDirection,Je as ensureFreshToken,$t as eventEmitter,et as extractTokens,O as formatCVC,F as formatCamelCaseToTitle,T as formatCardNumber,y as formatExpiryDate,Qe as formatTimeRemaining,m as formatTimestamp,E as generateUniqueId,he as getApiUrl,Re as getAppearanceModeStorageKey,R as getArrayOfObjects,ne as getBaseUrl,ae as getCustomHeaders,Xt as getDefaultThemeStyles,C as getErrorMessage,N as getInitials,_r as getPaymentId,oe as getPaymentProviderHint,we as getSendDiagnostics,or as getStorageRef,Ze as getTimeUntilExpiry,qe as getTimeUntilRefresh,ce as getTokenRefreshHandler,Rr as handleSharedEvent,_ as hasWidgets,er as hexToRgba,ve as hydrateAppBoot,hr as hydrateSession,Or as indicatorReducer,Y as initLogger,se as initializeChatConfig,me as isDevMode,Ye as isGuest,ze as isTokenAboutToExpire,Xe as isTokenExpired,Se as joinOrgMountBase,k as logger,mr as logout,Nt as normalizeTypography,tt as parseJwtPayload,rt as parseOrgFromJwt,_t as quoteFamily,le as readAccessToken,ge as readDeviceToken,pe as readTokenExpiresAt,Wt as registerEventListener,w as registerLoggerContextProvider,v as registerLoggerSink,S as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,Dt as resolveFontFamily,I as sanitizeExpiryDate,fr as sessionExpired,Fr as sessionListenerMiddleware,Sr as sessionReducer,ue as setAccessTokenReader,Er as setCredentials,de as setDeviceTokenReader,Ee as setIsDev,Ir as setLastResponseTime,nr as setModuleStorage,V as setNetworkLoggingEnabled,pr as setSelectedOrgId,lr as setSession,fe as setTokenExpiresAtReader,ie as setTokenRefreshHandler,Ke as showErrorToast,$e as showSuccessToast,He as showToast,p as truncateWordLimit,dr as updateUser,Ut as useBranding,n as useMessageDirection,o as useMessageDirections,Ht as useMessageFontStack,cr as useNetworkState,rr as useStorage,A as validateExpiryDate,Pt as warnUnknownFamilies,ot as writeOrgToStorage};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1interface/shared-core",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "sideEffects": false,