@aikaara/chat-sdk 1.4.5 → 1.4.7

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.
@@ -1,4 +1,4 @@
1
- import { H as p } from "./MountTenant-b6kTA3yk.mjs";
1
+ import { H as p } from "./MountTenant-DOYMoJu4.mjs";
2
2
  class c extends HTMLElement {
3
3
  shadow;
4
4
  payload = null;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./MountTenant-DeboVbWw.cjs");class l extends HTMLElement{shadow;payload=null;constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render()}setPayload(e){this.payload=e,this.render()}render(){const e=this.payload;this.shadow.innerHTML=`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./MountTenant-LbcBXsS9.cjs");class l extends HTMLElement{shadow;payload=null;constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render()}setPayload(e){this.payload=e,this.render()}render(){const e=this.payload;this.shadow.innerHTML=`
2
2
  <style>
3
3
  :host { display: block; margin-top: 8px; }
4
4
  button {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y="https://checkout.razorpay.com/v1/checkout.js";let f=null;function u(){return window}class h extends HTMLElement{shadow;payloadData=[];message="";paidIdx={};constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}setPayload(r,t){this.payloadData=Array.isArray(r)?r:[],this.message=t??"",this.render()}render(){const r=this.payloadData.filter(e=>!!e&&typeof e=="object"&&e.type==="link"&&typeof e.url=="string"),t=r.map((e,a)=>{const i=e.name||"Open link",o=!!this.paidIdx[a];return`<button class="link${o?" paid":""}" data-i="${a}" type="button"${o?" disabled":""}><span class="lbl">${k(o?"Paid":i)}</span>`+(o?'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 8.5 L7 12 L13 5"/></svg>':'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 11 L11 5 M6 5 H11 V10"/></svg>')+"</button>"}).join("");this.shadow.innerHTML="<style>:host { display:block; margin:6px 0; font-family:inherit; }.bubble { padding:12px 16px; border-radius:14px; background:var(--aikaara-bot-bubble-bg, #d8e5f5); color:var(--aikaara-bot-bubble-text, #1a2845); font-size:14px; line-height:1.55; margin-bottom:10px; }.links { display:flex; flex-direction:column; gap:8px; }.link { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; border:1.5px solid var(--aikaara-primary, #1849a9); background:var(--aikaara-primary, #1849a9); color:var(--aikaara-primary-contrast, #fff); border-radius:24px; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; text-decoration:none; transition: filter 120ms; width:150px; align-self:flex-start; }.link:hover:not(:disabled) { filter: brightness(0.94); }.link.paid, .link:disabled { background:#e7f5ec; color:#0e7c3a; border-color:#0e7c3a; cursor:default; }.icon { width:13px; height:13px; }</style>"+(this.message?`<div class="bubble">${this.message}</div>`:"")+`<div class="links">${t}</div>`,this.shadow.querySelectorAll(".link").forEach(e=>{e.addEventListener("click",()=>{if(e.disabled)return;const a=Number(e.dataset.i||0),i=r[a];i&&this.handleClick(a,i)})})}handleClick(r,t){const e=b(t),a=u().__aikaara_descriptor__?.razorpay;if(!e||!a?.keyId){_(t.url,t.name||"Pay"),this.dispatchEvent(new CustomEvent("template-action",{detail:{text:t.name||"link-click",attributes:{action:{type:"link",url:t.url,orderId:e||t.orderId,openedIn:"modal"}}},bubbles:!0,composed:!0}));return}w(a.preferredBanksUrl,e,a.preferredBanksMethod,a.preferredBanksHeaders).catch(i=>(console.warn("[payment_link] preferred-banks fetch failed; continuing with default UI",i),[])).then(i=>g().then(()=>this.openRazorpay(r,e,a,i))).catch(i=>{console.error("[payment_link] Razorpay launch failed",i)})}openRazorpay(r,t,e,a){const i=u(),o=i.__aikaara_runtime__?.identity??{},c={key:e.keyId,order_id:t,name:e.name||i.__aikaara_descriptor__?.title||"Payment",prefill:{},handler:()=>{this.paidIdx[r]=!0,this.render()},modal:{ondismiss:()=>{}}};typeof o.mobile=="string"?c.prefill.contact=o.mobile:typeof o.phone=="string"&&(c.prefill.contact=o.phone),typeof o.email=="string"&&(c.prefill.email=o.email),typeof o.name=="string"?c.prefill.name=o.name:typeof o.userName=="string"&&(c.prefill.name=o.userName),Array.isArray(a)&&a.length&&(c.config={display:{blocks:{preferred_banks:{name:"Preferred Netbanking",instruments:a}},sequence:["block.preferred_banks","netbanking","card","upi"],preferences:{show_default_blocks:!0}}});const d=i.Razorpay;if(typeof d!="function")throw new Error("Razorpay Checkout script not available");const s=new d(c);s.on("payment.failed",l=>{console.warn("[payment_link] payment.failed",l?.error)}),s.open()}}function k(n){return String(n??"").replace(/[&<>]/g,r=>r==="&"?"&amp;":r==="<"?"&lt;":"&gt;")}function b(n){if(typeof n.orderId=="string"&&n.orderId)return n.orderId;try{const r=new URL(n.url,window.location.origin),t=r.searchParams.get("orderId")||r.searchParams.get("order_id");if(t)return t;if(r.hash&&r.hash.length>1){const e=new URLSearchParams(r.hash.replace(/^#/,"")),a=e.get("orderId")||e.get("order_id");if(a)return a}}catch{}return null}function g(){return typeof u().Razorpay=="function"?Promise.resolve():f||(f=new Promise((n,r)=>{const t=document.querySelector('script[data-aikaara-razorpay="1"]');if(t){t.addEventListener("load",()=>n()),t.addEventListener("error",()=>r(new Error("checkout.js failed to load")));return}const e=document.createElement("script");e.src=y,e.async=!0,e.dataset.aikaaraRazorpay="1",e.onload=()=>n(),e.onerror=()=>{f=null,r(new Error("checkout.js failed to load"))},document.head.appendChild(e)}),f)}function w(n,r,t,e){if(!n)return Promise.resolve([]);const a=String(t||"GET").toUpperCase()==="POST"?"POST":"GET",i=n.includes("{orderId}")?n.replace("{orderId}",encodeURIComponent(r)):n+(n.includes("?")?"&":"?")+"orderId="+encodeURIComponent(r),o=u().__aikaara_runtime__??{};return(typeof o.getSessionToken=="function"?o.getSessionToken():typeof o.getChatJwt=="function"?o.getChatJwt():Promise.resolve(null)).then(d=>{const s={Accept:"application/json",...e??{}};d&&(s.Authorization=`Bearer ${d}`);const l={method:a,headers:s,credentials:"omit"};return a==="POST"&&(s["Content-Type"]="application/json",l.body=JSON.stringify({orderId:r})),fetch(i,l)}).then(d=>{if(!d.ok)throw new Error(`preferred-banks ${d.status}`);return d.json()}).then(d=>{const s=d,l=s?.data&&typeof s.data=="object"&&!Array.isArray(s.data)?s.data:null;return(Array.isArray(d)?d:Array.isArray(s?.banks)?s.banks:Array.isArray(s?.data)?s.data:Array.isArray(l?.preferredPaymentBank)?l.preferredPaymentBank:Array.isArray(l?.banks)?l.banks:[]).map(p=>{if(typeof p=="string")return p;if(p&&typeof p=="object"){const m=p;return m.code||m.bankCode||m.bank_code||null}return null}).filter(p=>!!p)})}function _(n,r){if(!n)return;let t=document.querySelector("aikaara-link-modal");t||(t=document.createElement("aikaara-link-modal"),document.body.appendChild(t)),typeof t.show=="function"?t.show(n,r):window.open(n,"_blank","noopener,noreferrer")}function x(){typeof customElements>"u"||customElements.get("aikaara-template-payment-link")||customElements.define("aikaara-template-payment-link",h)}exports.AikaaraPaymentLink=h;exports.registerAikaaraPaymentLink=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y="https://checkout.razorpay.com/v1/checkout.js";let u=null;function f(){return window}class h extends HTMLElement{shadow;payloadData=[];message="";paidIdx={};constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}setPayload(r,t){this.payloadData=Array.isArray(r)?r:[],this.message=t??"",this.render()}render(){const r=this.payloadData.filter(e=>!!e&&typeof e=="object"&&e.type==="link"&&typeof e.url=="string"),t=r.map((e,a)=>{const i=e.name||"Open link",o=!!this.paidIdx[a];return`<button class="link${o?" paid":""}" data-i="${a}" type="button"${o?" disabled":""}><span class="lbl">${k(o?"Paid":i)}</span>`+(o?'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 8.5 L7 12 L13 5"/></svg>':'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 11 L11 5 M6 5 H11 V10"/></svg>')+"</button>"}).join("");this.shadow.innerHTML="<style>:host { display:block; margin:6px 0; font-family:inherit; }.bubble { padding:12px 16px; border-radius:14px; background:var(--aikaara-bot-bubble-bg, #d8e5f5); color:var(--aikaara-bot-bubble-text, #1a2845); font-size:14px; line-height:1.55; margin-bottom:10px; }.links { display:flex; flex-direction:column; gap:8px; }.link { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; border:1.5px solid var(--aikaara-primary, #1849a9); background:var(--aikaara-primary, #1849a9); color:var(--aikaara-primary-contrast, #fff); border-radius:24px; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; text-decoration:none; transition: filter 120ms; width:150px; align-self:flex-start; }.link:hover:not(:disabled) { filter: brightness(0.94); }.link.paid, .link:disabled { background:#e7f5ec; color:#0e7c3a; border-color:#0e7c3a; cursor:default; }.icon { width:13px; height:13px; }</style>"+(this.message?`<div class="bubble">${this.message}</div>`:"")+`<div class="links">${t}</div>`,this.shadow.querySelectorAll(".link").forEach(e=>{e.addEventListener("click",()=>{if(e.disabled)return;const a=Number(e.dataset.i||0),i=r[a];i&&this.handleClick(a,i)})})}handleClick(r,t){const e=b(t),a=f().__aikaara_descriptor__?.razorpay;if(!e||!a?.keyId){_(t.url,t.name||"Pay"),this.dispatchEvent(new CustomEvent("template-action",{detail:{text:t.name||"link-click",attributes:{action:{type:"link",url:t.url,orderId:e||t.orderId,openedIn:"modal"}}},bubbles:!0,composed:!0}));return}w(a.preferredBanksUrl,e,a.preferredBanksMethod,a.preferredBanksHeaders).catch(i=>(console.warn("[payment_link] preferred-banks fetch failed; continuing with default UI",i),[])).then(i=>g().then(()=>this.openRazorpay(r,e,a,i))).catch(i=>{console.error("[payment_link] Razorpay launch failed",i)})}openRazorpay(r,t,e,a){const i=f(),o=i.__aikaara_runtime__?.identity??{},c={key:e.keyId,order_id:t,name:e.name||i.__aikaara_descriptor__?.title||"Payment",prefill:{},handler:()=>{this.paidIdx[r]=!0,this.render()},modal:{ondismiss:()=>{}}};typeof o.mobile=="string"?c.prefill.contact=o.mobile:typeof o.phone=="string"&&(c.prefill.contact=o.phone),typeof o.email=="string"&&(c.prefill.email=o.email),typeof o.name=="string"?c.prefill.name=o.name:typeof o.userName=="string"&&(c.prefill.name=o.userName),Array.isArray(a)&&a.length&&(c.config={display:{blocks:{utib:{name:"Pay Using Preferred Netbanking",instruments:[{method:"netbanking",banks:a}]}},sequence:["block.utib","netbanking","card","upi"],preferences:{show_default_blocks:!0}}});const d=i.Razorpay;if(typeof d!="function")throw new Error("Razorpay Checkout script not available");const s=new d(c);s.on("payment.failed",l=>{console.warn("[payment_link] payment.failed",l?.error)}),s.open()}}function k(n){return String(n??"").replace(/[&<>]/g,r=>r==="&"?"&amp;":r==="<"?"&lt;":"&gt;")}function b(n){if(typeof n.orderId=="string"&&n.orderId)return n.orderId;try{const r=new URL(n.url,window.location.origin),t=r.searchParams.get("orderId")||r.searchParams.get("order_id");if(t)return t;if(r.hash&&r.hash.length>1){const e=new URLSearchParams(r.hash.replace(/^#/,"")),a=e.get("orderId")||e.get("order_id");if(a)return a}}catch{}return null}function g(){return typeof f().Razorpay=="function"?Promise.resolve():u||(u=new Promise((n,r)=>{const t=document.querySelector('script[data-aikaara-razorpay="1"]');if(t){t.addEventListener("load",()=>n()),t.addEventListener("error",()=>r(new Error("checkout.js failed to load")));return}const e=document.createElement("script");e.src=y,e.async=!0,e.dataset.aikaaraRazorpay="1",e.onload=()=>n(),e.onerror=()=>{u=null,r(new Error("checkout.js failed to load"))},document.head.appendChild(e)}),u)}function w(n,r,t,e){if(!n)return Promise.resolve([]);const a=String(t||"GET").toUpperCase()==="POST"?"POST":"GET",i=n.includes("{orderId}")?n.replace("{orderId}",encodeURIComponent(r)):n+(n.includes("?")?"&":"?")+"orderId="+encodeURIComponent(r),o=f().__aikaara_runtime__??{};return(typeof o.getSessionToken=="function"?o.getSessionToken():typeof o.getChatJwt=="function"?o.getChatJwt():Promise.resolve(null)).then(d=>{const s={Accept:"application/json",...e??{}};d&&(s.Authorization=`Bearer ${d}`);const l={method:a,headers:s,credentials:"omit"};return a==="POST"&&(s["Content-Type"]="application/json",l.body=JSON.stringify({orderId:r})),fetch(i,l)}).then(d=>{if(!d.ok)throw new Error(`preferred-banks ${d.status}`);return d.json()}).then(d=>{const s=d,l=s?.data&&typeof s.data=="object"&&!Array.isArray(s.data)?s.data:null;return(Array.isArray(d)?d:Array.isArray(s?.banks)?s.banks:Array.isArray(s?.data)?s.data:Array.isArray(l?.preferredPaymentBank)?l.preferredPaymentBank:Array.isArray(l?.banks)?l.banks:[]).map(p=>{if(typeof p=="string")return p;if(p&&typeof p=="object"){const m=p;return m.code||m.bankCode||m.bank_code||null}return null}).filter(p=>!!p)})}function _(n,r){if(!n)return;let t=document.querySelector("aikaara-link-modal");t||(t=document.createElement("aikaara-link-modal"),document.body.appendChild(t)),typeof t.show=="function"?t.show(n,r):window.open(n,"_blank","noopener,noreferrer")}function x(){typeof customElements>"u"||customElements.get("aikaara-template-payment-link")||customElements.define("aikaara-template-payment-link",h)}exports.AikaaraPaymentLink=h;exports.registerAikaaraPaymentLink=x;
@@ -1,6 +1,6 @@
1
1
  const h = "https://checkout.razorpay.com/v1/checkout.js";
2
- let f = null;
3
- function u() {
2
+ let u = null;
3
+ function f() {
4
4
  return window;
5
5
  }
6
6
  class y extends HTMLElement {
@@ -32,9 +32,9 @@ class y extends HTMLElement {
32
32
  });
33
33
  }
34
34
  handleClick(r, t) {
35
- const e = b(t), a = u().__aikaara_descriptor__?.razorpay;
35
+ const e = b(t), a = f().__aikaara_descriptor__?.razorpay;
36
36
  if (!e || !a?.keyId) {
37
- _(t.url, t.name || "Pay"), this.dispatchEvent(
37
+ x(t.url, t.name || "Pay"), this.dispatchEvent(
38
38
  new CustomEvent("template-action", {
39
39
  detail: {
40
40
  text: t.name || "link-click",
@@ -53,7 +53,7 @@ class y extends HTMLElement {
53
53
  });
54
54
  }
55
55
  openRazorpay(r, t, e, a) {
56
- const i = u(), o = i.__aikaara_runtime__?.identity ?? {}, c = {
56
+ const i = f(), o = i.__aikaara_runtime__?.identity ?? {}, c = {
57
57
  key: e.keyId,
58
58
  order_id: t,
59
59
  name: e.name || i.__aikaara_descriptor__?.title || "Payment",
@@ -71,12 +71,12 @@ class y extends HTMLElement {
71
71
  typeof o.mobile == "string" ? c.prefill.contact = o.mobile : typeof o.phone == "string" && (c.prefill.contact = o.phone), typeof o.email == "string" && (c.prefill.email = o.email), typeof o.name == "string" ? c.prefill.name = o.name : typeof o.userName == "string" && (c.prefill.name = o.userName), Array.isArray(a) && a.length && (c.config = {
72
72
  display: {
73
73
  blocks: {
74
- preferred_banks: {
75
- name: "Preferred Netbanking",
76
- instruments: a
74
+ utib: {
75
+ name: "Pay Using Preferred Netbanking",
76
+ instruments: [{ method: "netbanking", banks: a }]
77
77
  }
78
78
  },
79
- sequence: ["block.preferred_banks", "netbanking", "card", "upi"],
79
+ sequence: ["block.utib", "netbanking", "card", "upi"],
80
80
  preferences: { show_default_blocks: !0 }
81
81
  }
82
82
  });
@@ -106,7 +106,7 @@ function b(n) {
106
106
  return null;
107
107
  }
108
108
  function g() {
109
- return typeof u().Razorpay == "function" ? Promise.resolve() : f || (f = new Promise((n, r) => {
109
+ return typeof f().Razorpay == "function" ? Promise.resolve() : u || (u = new Promise((n, r) => {
110
110
  const t = document.querySelector('script[data-aikaara-razorpay="1"]');
111
111
  if (t) {
112
112
  t.addEventListener("load", () => n()), t.addEventListener("error", () => r(new Error("checkout.js failed to load")));
@@ -114,13 +114,13 @@ function g() {
114
114
  }
115
115
  const e = document.createElement("script");
116
116
  e.src = h, e.async = !0, e.dataset.aikaaraRazorpay = "1", e.onload = () => n(), e.onerror = () => {
117
- f = null, r(new Error("checkout.js failed to load"));
117
+ u = null, r(new Error("checkout.js failed to load"));
118
118
  }, document.head.appendChild(e);
119
- }), f);
119
+ }), u);
120
120
  }
121
121
  function w(n, r, t, e) {
122
122
  if (!n) return Promise.resolve([]);
123
- const a = String(t || "GET").toUpperCase() === "POST" ? "POST" : "GET", i = n.includes("{orderId}") ? n.replace("{orderId}", encodeURIComponent(r)) : n + (n.includes("?") ? "&" : "?") + "orderId=" + encodeURIComponent(r), o = u().__aikaara_runtime__ ?? {};
123
+ const a = String(t || "GET").toUpperCase() === "POST" ? "POST" : "GET", i = n.includes("{orderId}") ? n.replace("{orderId}", encodeURIComponent(r)) : n + (n.includes("?") ? "&" : "?") + "orderId=" + encodeURIComponent(r), o = f().__aikaara_runtime__ ?? {};
124
124
  return (typeof o.getSessionToken == "function" ? o.getSessionToken() : typeof o.getChatJwt == "function" ? o.getChatJwt() : Promise.resolve(null)).then((d) => {
125
125
  const s = { Accept: "application/json", ...e ?? {} };
126
126
  d && (s.Authorization = `Bearer ${d}`);
@@ -141,7 +141,7 @@ function w(n, r, t, e) {
141
141
  }).filter((p) => !!p);
142
142
  });
143
143
  }
144
- function _(n, r) {
144
+ function x(n, r) {
145
145
  if (!n) return;
146
146
  let t = document.querySelector("aikaara-link-modal");
147
147
  t || (t = document.createElement("aikaara-link-modal"), document.body.appendChild(t)), typeof t.show == "function" ? t.show(n, r) : window.open(n, "_blank", "noopener,noreferrer");
@@ -13580,7 +13580,7 @@ class ld extends HTMLElement {
13580
13580
  gap: 4px;
13581
13581
  padding: 10px 14px;
13582
13582
  align-self: flex-start;
13583
- background: var(--aikaara-bot-bubble-bg, var(--aikaara-bg-secondary, #f9fafb));
13583
+ background: transparent;
13584
13584
  border-radius: var(--aikaara-radius, 12px);
13585
13585
  border-bottom-left-radius: 4px;
13586
13586
  }
@@ -14361,7 +14361,7 @@ function yd(a, e = 5e3) {
14361
14361
  });
14362
14362
  }
14363
14363
  const vd = {
14364
- "aikaara-template-payment-link": () => import("./AikaaraPaymentLink-Bt-ZcRQQ.mjs").then(({ registerAikaaraPaymentLink: a }) => a())
14364
+ "aikaara-template-payment-link": () => import("./AikaaraPaymentLink-C82ApGKH.mjs").then(({ registerAikaaraPaymentLink: a }) => a())
14365
14365
  };
14366
14366
  function wd(a) {
14367
14367
  const e = `template:${a}`, t = window.__aikaara_descriptor__?.components?.[e];
@@ -14550,7 +14550,7 @@ class _d extends HTMLElement {
14550
14550
  */
14551
14551
  mountLinkButton(e) {
14552
14552
  const t = this.renderGen;
14553
- import("./AikaaraLinkButton-Bu-_kC4m.mjs").then(({ registerAikaaraLinkButton: r, AikaaraLinkButton: o }) => {
14553
+ import("./AikaaraLinkButton-BRR8kKL8.mjs").then(({ registerAikaaraLinkButton: r, AikaaraLinkButton: o }) => {
14554
14554
  if (t !== this.renderGen) return;
14555
14555
  r();
14556
14556
  const n = document.createElement("aikaara-link-button");
@@ -455,7 +455,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
455
455
  gap: 4px;
456
456
  padding: 10px 14px;
457
457
  align-self: flex-start;
458
- background: var(--aikaara-bot-bubble-bg, var(--aikaara-bg-secondary, #f9fafb));
458
+ background: transparent;
459
459
  border-radius: var(--aikaara-radius, 12px);
460
460
  border-bottom-left-radius: 4px;
461
461
  }
@@ -743,7 +743,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
743
743
  <span class="message"></span>
744
744
  <button class="dismiss">Dismiss</button>
745
745
  </div>
746
- `,this.container=this.shadow.querySelector(".banner"),this.shadow.querySelector(".dismiss")?.addEventListener("click",()=>this.hide())}show(e,t){const r=this.container.querySelector(".message");r&&(r.textContent=e),this.container.classList.add("visible"),this.dismissTimer&&clearTimeout(this.dismissTimer),t&&(this.dismissTimer=setTimeout(()=>this.hide(),t))}hide(){this.container.classList.remove("visible"),this.dismissTimer&&(clearTimeout(this.dismissTimer),this.dismissTimer=null)}}const Jr=new Map;function Ql(a){const e=Jr.get(a);if(e)return e;const t=new Promise((r,o)=>{const n=document.querySelector(`script[data-aikaara-src="${CSS.escape(a)}"]`);if(n){n.dataset.aikaaraReady==="1"?r():(n.addEventListener("load",()=>r(),{once:!0}),n.addEventListener("error",()=>o(new Error(`Failed to load ${a}`)),{once:!0}));return}const i=document.createElement("script");i.src=a,i.async=!0,i.crossOrigin="anonymous",i.dataset.aikaaraSrc=a,i.addEventListener("load",()=>{i.dataset.aikaaraReady="1",r()},{once:!0}),i.addEventListener("error",()=>{Jr.delete(a),o(new Error(`Failed to load ${a}`))},{once:!0}),document.head.appendChild(i)});return Jr.set(a,t),t}function Nd(a,e=5e3){return new Promise((t,r)=>{const o=setTimeout(()=>r(new Error(`Custom element <${a}> not registered within ${e}ms`)),e);customElements.whenDefined(a).then(()=>{clearTimeout(o),t()})})}const Ud={"aikaara-template-payment-link":()=>Promise.resolve().then(()=>require("./AikaaraPaymentLink-Bdhq7MOy.cjs")).then(({registerAikaaraPaymentLink:a})=>a())};function Bd(a){const e=`template:${a}`,t=window.__aikaara_descriptor__?.components?.[e];return t&&t.kind==="iife-element"?{render:t.tag,scriptUrl:t.scriptUrl,props:t.props}:window.__aikaara_descriptor__?.templates?.[a]}class Jl extends HTMLElement{shadow;payloadData=null;innerMessage="";renderGen=0;_consumedValues=null;static get observedAttributes(){return["content-type","template-id","message-id"]}constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render(),this.addEventListener("template-action",e=>{const t=e.detail,r=this.getAttribute("message-id");if(r&&t?.attributes?.action){const o=$d(t.attributes.action);if(Object.keys(o).length>0)try{localStorage.setItem(`aikaara_form:${r}`,JSON.stringify(o))}catch{}}this.dataset.consumed="true",this._applyConsumedToChildren()})}attributeChangedCallback(){this.render()}setPayload(e,t){this.payloadData=e,t!==void 0&&(this.innerMessage=t),this.render()}setConsumedValues(e){this._consumedValues=e,this._applyConsumedToChildren()}_applyConsumedToChildren(){let e=this._consumedValues;if(!e){const r=this.getAttribute("message-id");if(r)try{const o=localStorage.getItem(`aikaara_form:${r}`);o&&(e=JSON.parse(o))}catch{}}if(e){const r=e;this.querySelectorAll("aikaara-option-list").forEach(o=>{const n=o,i=n.getName?.();i&&r[i]?.length&&n.setPreSelected?.(r[i])})}this.querySelectorAll("aikaara-submit-action, aikaara-modal-action, aikaara-link-button").forEach(r=>{r.style.display="none"});const t=new Set(["aikaara-option-list","aikaara-submit-action","aikaara-modal-action","aikaara-link-button"]);this.querySelectorAll("*").forEach(r=>{if(t.has(r.tagName.toLowerCase()))return;e&&r.setConsumedValues?.(e),r.dataset.consumed="true"})}render(){const e=this.getAttribute("content-type")??"",t=this.getAttribute("template-id")??"";for(this.renderGen+=1,this.shadow.innerHTML=`
746
+ `,this.container=this.shadow.querySelector(".banner"),this.shadow.querySelector(".dismiss")?.addEventListener("click",()=>this.hide())}show(e,t){const r=this.container.querySelector(".message");r&&(r.textContent=e),this.container.classList.add("visible"),this.dismissTimer&&clearTimeout(this.dismissTimer),t&&(this.dismissTimer=setTimeout(()=>this.hide(),t))}hide(){this.container.classList.remove("visible"),this.dismissTimer&&(clearTimeout(this.dismissTimer),this.dismissTimer=null)}}const Jr=new Map;function Ql(a){const e=Jr.get(a);if(e)return e;const t=new Promise((r,o)=>{const n=document.querySelector(`script[data-aikaara-src="${CSS.escape(a)}"]`);if(n){n.dataset.aikaaraReady==="1"?r():(n.addEventListener("load",()=>r(),{once:!0}),n.addEventListener("error",()=>o(new Error(`Failed to load ${a}`)),{once:!0}));return}const i=document.createElement("script");i.src=a,i.async=!0,i.crossOrigin="anonymous",i.dataset.aikaaraSrc=a,i.addEventListener("load",()=>{i.dataset.aikaaraReady="1",r()},{once:!0}),i.addEventListener("error",()=>{Jr.delete(a),o(new Error(`Failed to load ${a}`))},{once:!0}),document.head.appendChild(i)});return Jr.set(a,t),t}function Nd(a,e=5e3){return new Promise((t,r)=>{const o=setTimeout(()=>r(new Error(`Custom element <${a}> not registered within ${e}ms`)),e);customElements.whenDefined(a).then(()=>{clearTimeout(o),t()})})}const Ud={"aikaara-template-payment-link":()=>Promise.resolve().then(()=>require("./AikaaraPaymentLink-C-GhGZ4c.cjs")).then(({registerAikaaraPaymentLink:a})=>a())};function Bd(a){const e=`template:${a}`,t=window.__aikaara_descriptor__?.components?.[e];return t&&t.kind==="iife-element"?{render:t.tag,scriptUrl:t.scriptUrl,props:t.props}:window.__aikaara_descriptor__?.templates?.[a]}class Jl extends HTMLElement{shadow;payloadData=null;innerMessage="";renderGen=0;_consumedValues=null;static get observedAttributes(){return["content-type","template-id","message-id"]}constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render(),this.addEventListener("template-action",e=>{const t=e.detail,r=this.getAttribute("message-id");if(r&&t?.attributes?.action){const o=$d(t.attributes.action);if(Object.keys(o).length>0)try{localStorage.setItem(`aikaara_form:${r}`,JSON.stringify(o))}catch{}}this.dataset.consumed="true",this._applyConsumedToChildren()})}attributeChangedCallback(){this.render()}setPayload(e,t){this.payloadData=e,t!==void 0&&(this.innerMessage=t),this.render()}setConsumedValues(e){this._consumedValues=e,this._applyConsumedToChildren()}_applyConsumedToChildren(){let e=this._consumedValues;if(!e){const r=this.getAttribute("message-id");if(r)try{const o=localStorage.getItem(`aikaara_form:${r}`);o&&(e=JSON.parse(o))}catch{}}if(e){const r=e;this.querySelectorAll("aikaara-option-list").forEach(o=>{const n=o,i=n.getName?.();i&&r[i]?.length&&n.setPreSelected?.(r[i])})}this.querySelectorAll("aikaara-submit-action, aikaara-modal-action, aikaara-link-button").forEach(r=>{r.style.display="none"});const t=new Set(["aikaara-option-list","aikaara-submit-action","aikaara-modal-action","aikaara-link-button"]);this.querySelectorAll("*").forEach(r=>{if(t.has(r.tagName.toLowerCase()))return;e&&r.setConsumedValues?.(e),r.dataset.consumed="true"})}render(){const e=this.getAttribute("content-type")??"",t=this.getAttribute("template-id")??"";for(this.renderGen+=1,this.shadow.innerHTML=`
747
747
  <style>
748
748
  :host { display: block; }
749
749
  ::slotted(*) { display: block; }
@@ -757,7 +757,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
757
757
  }
758
758
  </style>
759
759
  <slot></slot>
760
- `;this.firstChild;)this.removeChild(this.firstChild);if(!e)return;const r=t?Bd(t):void 0,o=r?.render??(t?`aikaara-template-${t}`:`aikaara-template-${e}`),n=Ud[o];if(n&&!customElements.get(o)?n().then(()=>this.render()).catch(i=>console.warn(`[aikaara-template-renderer] native template ${o} failed to load`,i)):r?.scriptUrl&&!customElements.get(o)&&Ql(r.scriptUrl).then(()=>Nd(o)).then(()=>this.render()).catch(i=>console.warn(`[aikaara-template-renderer] failed to lazy-load ${r.scriptUrl}`,i)),customElements.get(o)){const i=document.createElement(o);if(r?.props){for(const[s,l]of Object.entries(r.props))if(typeof i[s]=="function")try{i[s](l)}catch(c){console.warn(`[aikaara-template-renderer] props.${s} threw on <${o}>`,c)}}i.setPayload?.(this.payloadData,this.innerMessage),this.appendChild(i),this.dataset.consumed==="true"&&(this._consumedValues&&Object.keys(this._consumedValues).length>0&&i.setConsumedValues?.(this._consumedValues),i.dataset.consumed="true");return}if(Array.isArray(this.payloadData)){const i=this.payloadData;if(i.length>0&&i.every(l=>l&&typeof l=="object"&&!Array.isArray(l)&&!("type"in l)&&!("data"in l)&&typeof l.message=="string")){const l=document.createElement("aikaara-option-list");l.setPayload({name:"quick-reply",type:"button",options:i.map(c=>{const u=typeof c.title=="string"?c.title:"",h=c.message;return{label:u||h,value:h}})}),this.appendChild(l);return}for(const l of i)this.mountField(l)}else if(this.payloadData&&typeof this.payloadData=="object"){const i=this.payloadData;typeof i.message=="string"&&(i.okLabel||i.action||i.ok)&&this.mountModal(i)}this.dataset.consumed==="true"&&this._applyConsumedToChildren()}mountField(e){if(!e||typeof e!="object")return;const t=e.type??e.data?.type;if(t==="link"){this.mountLinkButton(e);return}const r=e.data;if(r){if(t==="checkbox"||t==="radio"||t==="button"){const o=document.createElement("aikaara-option-list");o.setPayload({name:r.name??"",title:r.title,options:r.options??[],type:t}),this.appendChild(o);return}if(t==="submit"){const o=document.createElement("aikaara-submit-action"),n=this.getAttribute("message-id")??void 0;o.setPayload({name:r.name??"Submit",action:r.action??{message:r.name??"Submit"},messageId:n}),this.appendChild(o);return}t==="modal"&&this.mountModal({message:r.message??"",okLabel:r.okLabel,cancelLabel:r.cancelLabel,action:r.action})}}mountLinkButton(e){const t=this.renderGen;Promise.resolve().then(()=>require("./AikaaraLinkButton-8noYZU6k.cjs")).then(({registerAikaaraLinkButton:r,AikaaraLinkButton:o})=>{if(t!==this.renderGen)return;r();const n=document.createElement("aikaara-link-button");n.setPayload({name:e.name??"Open",url:e.url??"",openLinkInNewTab:e.openLinkInNewTab,orderId:e.orderId,extra:Fd(e),messageId:this.getAttribute("message-id")??void 0}),this.appendChild(n)})}mountModal(e){const t=document.createElement("aikaara-modal-action");t.setPayload(e),this.appendChild(t)}}const Dd=new Set(["type","url","name","openLinkInNewTab","orderId"]);function Fd(a){const e={};for(const[t,r]of Object.entries(a))Dd.has(t)||(e[t]=r);return e}function $d(a){const e=new Set(["message_id","formAction","requestType","serviceType"]),t={};for(const[r,o]of Object.entries(a))e.has(r)||(Array.isArray(o)&&o.every(n=>typeof n=="string")?t[r]=o:typeof o=="string"&&(t[r]=[o]));return t}class Xl extends HTMLElement{shadow;static get observedAttributes(){return["text","subtext"]}constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render()}attributeChangedCallback(){this.render()}render(){const e=this.getAttribute("text")??this.textContent??"",t=this.getAttribute("subtext")??"";this.shadow.innerHTML=`
760
+ `;this.firstChild;)this.removeChild(this.firstChild);if(!e)return;const r=t?Bd(t):void 0,o=r?.render??(t?`aikaara-template-${t}`:`aikaara-template-${e}`),n=Ud[o];if(n&&!customElements.get(o)?n().then(()=>this.render()).catch(i=>console.warn(`[aikaara-template-renderer] native template ${o} failed to load`,i)):r?.scriptUrl&&!customElements.get(o)&&Ql(r.scriptUrl).then(()=>Nd(o)).then(()=>this.render()).catch(i=>console.warn(`[aikaara-template-renderer] failed to lazy-load ${r.scriptUrl}`,i)),customElements.get(o)){const i=document.createElement(o);if(r?.props){for(const[s,l]of Object.entries(r.props))if(typeof i[s]=="function")try{i[s](l)}catch(c){console.warn(`[aikaara-template-renderer] props.${s} threw on <${o}>`,c)}}i.setPayload?.(this.payloadData,this.innerMessage),this.appendChild(i),this.dataset.consumed==="true"&&(this._consumedValues&&Object.keys(this._consumedValues).length>0&&i.setConsumedValues?.(this._consumedValues),i.dataset.consumed="true");return}if(Array.isArray(this.payloadData)){const i=this.payloadData;if(i.length>0&&i.every(l=>l&&typeof l=="object"&&!Array.isArray(l)&&!("type"in l)&&!("data"in l)&&typeof l.message=="string")){const l=document.createElement("aikaara-option-list");l.setPayload({name:"quick-reply",type:"button",options:i.map(c=>{const u=typeof c.title=="string"?c.title:"",h=c.message;return{label:u||h,value:h}})}),this.appendChild(l);return}for(const l of i)this.mountField(l)}else if(this.payloadData&&typeof this.payloadData=="object"){const i=this.payloadData;typeof i.message=="string"&&(i.okLabel||i.action||i.ok)&&this.mountModal(i)}this.dataset.consumed==="true"&&this._applyConsumedToChildren()}mountField(e){if(!e||typeof e!="object")return;const t=e.type??e.data?.type;if(t==="link"){this.mountLinkButton(e);return}const r=e.data;if(r){if(t==="checkbox"||t==="radio"||t==="button"){const o=document.createElement("aikaara-option-list");o.setPayload({name:r.name??"",title:r.title,options:r.options??[],type:t}),this.appendChild(o);return}if(t==="submit"){const o=document.createElement("aikaara-submit-action"),n=this.getAttribute("message-id")??void 0;o.setPayload({name:r.name??"Submit",action:r.action??{message:r.name??"Submit"},messageId:n}),this.appendChild(o);return}t==="modal"&&this.mountModal({message:r.message??"",okLabel:r.okLabel,cancelLabel:r.cancelLabel,action:r.action})}}mountLinkButton(e){const t=this.renderGen;Promise.resolve().then(()=>require("./AikaaraLinkButton-DoINI2KX.cjs")).then(({registerAikaaraLinkButton:r,AikaaraLinkButton:o})=>{if(t!==this.renderGen)return;r();const n=document.createElement("aikaara-link-button");n.setPayload({name:e.name??"Open",url:e.url??"",openLinkInNewTab:e.openLinkInNewTab,orderId:e.orderId,extra:Fd(e),messageId:this.getAttribute("message-id")??void 0}),this.appendChild(n)})}mountModal(e){const t=document.createElement("aikaara-modal-action");t.setPayload(e),this.appendChild(t)}}const Dd=new Set(["type","url","name","openLinkInNewTab","orderId"]);function Fd(a){const e={};for(const[t,r]of Object.entries(a))Dd.has(t)||(e[t]=r);return e}function $d(a){const e=new Set(["message_id","formAction","requestType","serviceType"]),t={};for(const[r,o]of Object.entries(a))e.has(r)||(Array.isArray(o)&&o.every(n=>typeof n=="string")?t[r]=o:typeof o=="string"&&(t[r]=[o]));return t}class Xl extends HTMLElement{shadow;static get observedAttributes(){return["text","subtext"]}constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render()}attributeChangedCallback(){this.render()}render(){const e=this.getAttribute("text")??this.textContent??"",t=this.getAttribute("subtext")??"";this.shadow.innerHTML=`
761
761
  <style>
762
762
  :host {
763
763
  display: flex;
@@ -455,7 +455,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
455
455
  gap: 4px;
456
456
  padding: 10px 14px;
457
457
  align-self: flex-start;
458
- background: var(--aikaara-bot-bubble-bg, var(--aikaara-bg-secondary, #f9fafb));
458
+ background: transparent;
459
459
  border-radius: var(--aikaara-radius, 12px);
460
460
  border-bottom-left-radius: 4px;
461
461
  }
@@ -1468,7 +1468,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
1468
1468
  }
1469
1469
  .save-btn:hover { filter: brightness(1.07); }
1470
1470
  .save-btn:active { filter: brightness(0.95); }
1471
- `}}function Pt(a){return a.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Qe(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function wo(){const a=[["aikaara-chat-widget",Al],["aikaara-chat-bubble",Il],["aikaara-chat-header",Tl],["aikaara-message-list",Ol],["aikaara-message-bubble",Rl],["aikaara-chat-input",jl],["aikaara-typing-indicator",Nl],["aikaara-streaming-message",Ul],["aikaara-error-banner",Bl],["aikaara-template-renderer",xd],["aikaara-system-pill",Id],["aikaara-option-list",Td],["aikaara-submit-action",Cd],["aikaara-modal-action",Od],["aikaara-chat",Md],["aikaara-link-modal",Rd],["aikaara-compare-plans",Nd],["aikaara-smart-edit-modal",Ud],["aikaara-schema-form",Fd]];for(const[e,t]of a)customElements.get(e)||customElements.define(e,t)}wo();function Wr(a,e,t=""){if(!e)return t;const r=e.split(".");let o=a;for(const n of r)if(o&&typeof o=="object"&&n in o)o=o[n];else return t;return typeof o=="string"?o:t}function Wl(a){try{const e=a.split(".")[1];if(!e)return 0;const t=JSON.parse(atob(e.replace(/-/g,"+").replace(/_/g,"/")));return typeof t.exp=="number"?t.exp*1e3:0}catch{return 0}}async function qt(a){return typeof a=="function"?await a():a}class zl{constructor(e,t){this.descriptor=e,this.sessionToken=t}cache=null;inflight=null;reset(){this.cache=null,this.inflight=null}prime(e,t={}){if(!e)return;const r=Wl(e)||Date.now()+3600*1e3;this.cache={token:e,requestId:t.requestId??this.cache?.requestId??"",fullName:t.fullName??this.cache?.fullName??"",userId:t.userId??this.cache?.userId??"",expiresAt:r}}async get(){const e=this.descriptor.expiryBufferMs??6e4,t=Date.now();return this.cache&&this.cache.expiresAt>t+e?this.cache:this.inflight?this.inflight:(this.inflight=this.fetchOnce().finally(()=>{this.inflight=null}),this.inflight)}async fetchOnce(){const e=await qt(this.sessionToken),t=this.descriptor.authHeader??"Authorization",r=this.descriptor.authHeaderTemplate??"Bearer {token}",o={accept:"application/json",...this.descriptor.headers??{},[t]:r.replace("{token}",e)},n=this.descriptor.method??"POST",i={method:n,headers:o};n==="POST"&&(o["content-type"]="application/json",i.body=JSON.stringify(this.descriptor.body??{}));const s=await fetch(this.descriptor.endpoint,i);if(!s.ok){const w=await s.text().catch(()=>"");throw new Error(`Session auth failed: ${s.status} ${w.slice(0,200)}`)}const l=await s.json().catch(()=>({})),c=Wr(l,this.descriptor.tokenPath??"data.token"),u=this.descriptor.tokenStripPrefix,h=u?c.replace(new RegExp(`^${u}`,"i"),"").trim():c;if(!h)throw new Error("Session auth response missing token");const p=Wr(l,this.descriptor.requestIdPath??"data.requestId"),g=this.cache?.requestId||p||"",f=Wr(l,this.descriptor.fullNamePath??"data.fullName"),b=Wr(l,this.descriptor.userPath??"data.userId"),y=Wl(h)||Date.now()+3600*1e3;return this.cache={token:h,requestId:g,fullName:f,userId:b,expiresAt:y},this.cache}}async function Vl(a){const e={};for(const t of a.spec){const r=await $d(t,a.providers);if(r!==void 0&&r!=="")e[t.name]=r;else{if(t.required)throw new Error(`[aikaara-chat-sdk] SSO credential "${t.name}" is required but ${t.source}`+(t.key?`[${t.key}]`:"")+" returned no value");t.default!==void 0&&(e[t.name]=t.default)}}return e}async function $d(a,e){const t=a.key??a.name;switch(a.source){case"cookie":return qd(t);case"localStorage":return zr(()=>window.localStorage.getItem(t)??void 0);case"sessionStorage":return zr(()=>window.sessionStorage.getItem(t)??void 0);case"url_param":return zr(()=>new URL(window.location.href).searchParams.get(t)??void 0);case"header_meta":return zr(()=>document.querySelector(`meta[name="${Hd(t)}"]`)?.content??void 0);case"callback":{const r=e?.[a.name];if(!r)return;const o=await r();return typeof o=="string"?o:void 0}default:return}}function qd(a){if(typeof document>"u")return;const e=encodeURIComponent(a),t=document.cookie?document.cookie.split("; "):[];for(const r of t){const o=r.indexOf("=");if(o===-1)continue;const n=r.slice(0,o);if(n===a||n===e)try{return decodeURIComponent(r.slice(o+1))}catch{return r.slice(o+1)}}}function zr(a){try{return a()}catch{return}}function Hd(a){return a.replace(/["\\]/g,"\\$&")}const Wd=1800;class Gl{constructor(e){this.opts=e,this.cache=this.loadCache()}cache=null;inflight=null;reset(){this.cache=null,this.inflight=null,this.clearCache()}async get(e=!1){if(!e){const t=this.cache;if(t&&(!t.expiresAt||t.expiresAt>Date.now()))return t}return this.inflight?this.inflight:(this.inflight=this.exchange().finally(()=>{this.inflight=null}),this.inflight)}async exchange(){if(!this.opts.descriptor.collect||this.opts.descriptor.collect.length===0)throw new Error("[aikaara-chat-sdk] SsoExchangeAdapter.exchange() requires descriptor.sso.collect; v2 partner-token flow should be handled by TokenDiscoveryReader instead.");const e=await Vl({spec:this.opts.descriptor.collect,providers:this.opts.providers}),t=JSON.stringify({credentials:e}),r={accept:"application/json","content-type":"application/json",...this.opts.descriptor.headers??{}};this.opts.descriptor.apiKey&&(r["X-Api-Key"]=this.opts.descriptor.apiKey);const o=this.opts.descriptor.exchangeEndpoint||this.opts.exchangeUrl;if(!o)throw new Error("[aikaara-chat-sdk] SSO exchange URL not resolved — set descriptor.sso.exchangeEndpoint or pass `exchangeUrl` (mountFromSlug derives it from configBase + slug).");const n=await fetch(o,{method:"POST",headers:r,body:t});if(!n.ok){const h=await n.text().catch(()=>"");throw new Error(`SSO exchange failed: ${n.status} ${h.slice(0,240)}`)}const s=(await n.json().catch(()=>({}))).user??{},l=String(s.ext_uid??s.extUid??""),c=String(s.token??s.user_token??s.userToken??"");if(!l)throw new Error("SSO exchange response missing user.ext_uid");if(!c)throw new Error("SSO exchange response missing user.token");const u={id:s.id,extUid:l,userToken:c,email:typeof s.email=="string"?s.email:void 0,displayName:typeof s.display_name=="string"?s.display_name:typeof s.displayName=="string"?s.displayName:void 0,properties:s.properties&&typeof s.properties=="object"?s.properties:void 0,expiresAt:this.computeExpiry()};return this.cache=u,this.persistCache(u),u}computeExpiry(){const e=this.opts.descriptor.cacheTtlSec??Wd;if(!(!this.opts.descriptor.cacheKey||e<=0))return Date.now()+e*1e3}loadCache(){const e=this.opts.descriptor.cacheKey;if(!e)return null;try{const t=window.localStorage.getItem(e);if(!t)return null;const r=JSON.parse(t);return r.expiresAt&&r.expiresAt<Date.now()?(window.localStorage.removeItem(e),null):r}catch{return null}}persistCache(e){const t=this.opts.descriptor.cacheKey;if(t)try{window.localStorage.setItem(t,JSON.stringify(e))}catch{}}clearCache(){const e=this.opts.descriptor.cacheKey;if(e)try{window.localStorage.removeItem(e)}catch{}}}const zd=3e4,Vd=2e3,Gd=100;async function Kl(a){const{descriptor:e}=a,t=e.tokenSourceConfig??{};switch(e.tokenSource){case"init":{if(!a.initToken)throw new Ke("init","No init token supplied to Aikaara.init({token})");return{token:a.initToken,source:"init"}}case"query":{const r=typeof t.key=="string"&&t.key?t.key:"token",o=Kd(r);if(!o)throw new Ke("query",`?${r}= not present`);return{token:o,source:"query"}}case"hash":{const r=typeof t.key=="string"&&t.key?t.key:"token",o=Yd(r);if(!o)throw new Ke("hash",`#${r}= not present`);return{token:o,source:"hash"}}case"postmsg":{const r=typeof t.type=="string"?t.type:"",o=typeof t.key=="string"&&t.key?t.key:"token",n=ef(typeof t.origins=="string"?t.origins:""),i=typeof t.timeoutMs=="number"&&t.timeoutMs>0?t.timeoutMs:zd;return{token:await Zd({type:r,key:o,origins:n,timeoutMs:i}),source:"postmsg"}}case"cookie":{const r=typeof t.name=="string"&&t.name?t.name:"";if(!r)throw new Ke("cookie","cookie.name not configured");const o=Qd(r);if(!o)throw new Ke("cookie",`cookie "${r}" not set`);return{token:o,source:"cookie"}}case"storage":{const r=t.store==="session"?"session":"local",o=typeof t.key=="string"&&t.key?t.key:"",n=typeof t.path=="string"?t.path:"";if(!o)throw new Ke("storage","storage.key not configured");const i=Jd(r,o,n);if(!i)throw new Ke("storage",`${r}Storage["${o}"] not set`);return{token:i,source:"storage"}}case"global":{const r=typeof t.path=="string"?t.path:"";if(!r)throw new Ke("global","global.path not configured");const o=typeof t.timeoutMs=="number"&&t.timeoutMs>0?t.timeoutMs:Vd,n=typeof t.intervalMs=="number"&&t.intervalMs>0?t.intervalMs:Gd,i=await Xd(r,o,n);if(!i)throw new Ke("global",`window.${r} not present`);return{token:i,source:"global"}}default:{const r=e.tokenSource;throw new Ke("unknown",`Unknown tokenSource ${JSON.stringify(r)}`)}}}class Yl{constructor(e){this.opts=e}cached=null;get descriptor(){return this.opts.descriptor}async get(){if(this.cached)return this.cached;const e=await Kl(this.opts);return this.cached=e,e}async refresh(){return this.opts.descriptor.tokenSource==="init"?this.cached?this.cached:this.get():(this.cached=null,this.get())}}class Ke extends Error{constructor(e,t){super(`[aikaara-chat-sdk] token-discovery (${e}): ${t}`),this.source=e,this.name="TokenDiscoveryError"}}function Kd(a){if(!(typeof window>"u"))try{const e=window.location.search.slice(1);for(const t of e.split("&")){const r=t.indexOf("=");if(r!==-1&&decodeURIComponent(t.slice(0,r))===a)return decodeURIComponent(t.slice(r+1))}return}catch{return}}function Yd(a){if(!(typeof window>"u"))try{const e=window.location.hash.replace(/^#/,"");return new URLSearchParams(e).get(a)??void 0}catch{return}}function Qd(a){if(typeof document>"u")return;const e=encodeURIComponent(a),t=document.cookie?document.cookie.split("; "):[];for(const r of t){const o=r.indexOf("=");if(o===-1)continue;const n=r.slice(0,o);if(n===a||n===e)try{return decodeURIComponent(r.slice(o+1))}catch{return r.slice(o+1)}}}function Jd(a,e,t){if(!(typeof window>"u"))try{const o=(a==="session"?window.sessionStorage:window.localStorage).getItem(e);if(o==null)return;if(!t)return o;let n;try{n=JSON.parse(o)}catch{return o}const i=Ql(n,t);return typeof i=="string"?i:void 0}catch{return}}async function Xd(a,e,t){if(typeof window>"u")return;const r=Date.now()+e;for(;Date.now()<r;){const o=Ql(window,a);if(typeof o=="string"&&o.length>0)return o;if(typeof o=="function")try{const n=o();if(typeof n=="string"&&n.length>0)return n}catch{}await new Promise(n=>setTimeout(n,t))}}function Zd(a){return new Promise((e,t)=>{if(typeof window>"u"){t(new Ke("postmsg","no window"));return}const r=()=>{window.removeEventListener("message",n),clearTimeout(o)},o=setTimeout(()=>{r(),t(new Ke("postmsg",`timeout after ${a.timeoutMs}ms`))},a.timeoutMs),n=i=>{if(a.origins.length>0&&!a.origins.includes(i.origin))return;const s=i.data;if(!s||typeof s!="object")return;const l=s;if(a.type&&l.type!==a.type)return;const c=l[a.key];typeof c=="string"&&c.length>0&&(r(),e(c))};window.addEventListener("message",n)})}function ef(a){return a?a.split(/[,\s]+/).map(e=>e.trim()).filter(Boolean):[]}function Ql(a,e){if(!e)return a;const t=e.split(".").filter(Boolean);let r=a;for(const o of t)if(r&&typeof r=="object"&&o in r)r=r[o];else return;return r}function tf(){const a=typeof crypto<"u"?crypto:null;if(a?.randomUUID)return a.randomUUID();if(a?.getRandomValues){const e=new Uint8Array(16);a.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}const rf="aikaara_chat:requestId";function _o(a,e,t){const r=`${rf}:${a}:${e}`;return t?`${r}:${t}`:r}function Jl(a,e,t){try{return localStorage.getItem(_o(a,e,t))}catch{return null}}function nf(a,e,t,r){try{localStorage.setItem(_o(a,e,r),t)}catch{}}function of(a,e,t){try{localStorage.removeItem(_o(a,e,t))}catch{}}async function ko(a,e,t="before-chat"){const r=a.filter(u=>(u.trigger??"before-chat")===t);console.log("[aikaara-chat-sdk] preflight running",r.length,"steps",`(trigger=${t})`);const o={userId:e.userId,projectId:e.projectId,slug:e.slug};if(e.identity)for(const[u,h]of Object.entries(e.identity))typeof h=="string"&&(o[u]=h);typeof e.serviceType=="string"&&(o.serviceType=e.serviceType),typeof e.userType=="string"&&(o.userType=e.userType);const n=u=>u.replace(/\{(\w+)\}/g,(h,p)=>p in o?o[p]:""),i=u=>{if(typeof u=="string")return n(u);if(Array.isArray(u))return u.map(i);if(u&&typeof u=="object"){const h={};for(const[p,g]of Object.entries(u))h[p]=i(g);return h}return u},s=await qt(e.sessionToken),l={},c=[800,1500,3e3,5e3,8e3];for(let u=0;u<r.length;u++){const h=r[u],p=n(h.url),g=h.method??(h.body?"POST":"GET"),f={accept:"application/json",...h.headers??{}};if((h.authHeader??"session")==="session"){const x=h.authHeaderTemplate??"Bearer {token}";f.authorization=x.replace("{token}",s)}const b={method:g,headers:f};h.body&&(f["content-type"]="application/json",b.body=JSON.stringify(i(h.body)));let y=0,w="",m=0,_=null;for(;;)try{const x=await fetch(p,b);if(x.ok){_=x;break}if(y=x.status,w=await x.text().catch(()=>""),m<c.length&&af(y,w)){const E=c[m++];console.warn(`[aikaara-chat-sdk] preflight #${u} ${g} ${p} → ${y} (transient). Retry #${m} in ${E}ms.`),await new Promise(S=>setTimeout(S,E));continue}const v=`Preflight #${u} ${g} ${p} → ${y} ${w.slice(0,200)}`;if(h.soft){console.warn("[aikaara-chat-sdk]",v);break}throw new Error(v)}catch(x){if(m<c.length){const v=c[m++];console.warn(`[aikaara-chat-sdk] preflight #${u} threw, retry #${m} in ${v}ms`,x),await new Promise(E=>setTimeout(E,v));continue}if(h.soft){console.warn(`[aikaara-chat-sdk] preflight #${u} soft-failed:`,x);break}throw x}if(_&&h.capture&&h.capture.as)try{const x=await _.clone().text();let v=x;try{v=JSON.parse(x)}catch{}if(h.capture.path)for(const E of h.capture.path.split("."))if(v&&typeof v=="object"&&E in v)v=v[E];else{v=void 0;break}if(typeof v=="string"&&v.length>0){let E=v;h.capture.stripPrefix&&E.startsWith(h.capture.stripPrefix)&&(E=E.slice(h.capture.stripPrefix.length)),l[h.capture.as]=E,o[h.capture.as]=E,console.log(`[aikaara-chat-sdk] preflight #${u} captured ${h.capture.as} (${E.slice(0,24)}…)`)}}catch(x){console.warn(`[aikaara-chat-sdk] preflight #${u} capture failed`,x)}}return{captured:l}}async function sf(a){const e=a.steps??[];return e.some(r=>r.trigger==="on-method-select")?(await ko(e,{sessionToken:a.sessionToken,userId:a.userId,projectId:a.projectId??"",slug:a.slug??"",identity:a.identity,serviceType:a.serviceType,userType:a.userType},"on-method-select")).captured:{}}function af(a,e){if(a===503||a===504||a===502)return!0;if(a===401||a===403)return e.trim().length===0;if(a===500){const t=e.toLowerCase();return t.includes("customernew")||t.includes("is null")||t.includes("not yet ready")}return!1}async function Xl(a,e){const t=await fetch(a,{method:"GET",headers:{accept:"application/json",...e??{}}});if(!t.ok){const o=await t.text().catch(()=>"");throw new Error(`Widget config fetch failed: ${t.status} ${t.statusText} ${o.slice(0,200)}`)}const r=await t.json();if(r&&typeof r=="object"){if("config"in r)return r.config;if("data"in r)return r.data}return r}function Zl(a,e){return a.replace("{projectId}",e).replace("{uuid}",tf().replace(/-/g,""))}function ec(a){const e=a._preload;if(!Array.isArray(e)||e.length===0)return;const t=Array.from(new Set(e.map(r=>r&&typeof r=="object"?r.scriptUrl:null).filter(r=>typeof r=="string"&&r.length>0)));t.length!==0&&Promise.allSettled(t.map(r=>Dl(r)))}async function tc(a){const e={...a.config??(a.configUrl?await Xl(a.configUrl,a.configHeaders):{}),...a.overrides??{}};ec(e);const t=e.transport??"tiledesk",r=e.tiledesk;if((t==="tiledesk"||t==="dual")&&!r)throw new Error("mount: descriptor.tiledesk is required for tiledesk/dual transport");const o=r?.projectId??"",n=a.identity.userId,i=a.conversationScope||void 0,s=a.forceNewConversation?null:Jl(n,o,i),l=r?.requestIdTemplate??"support-group-{projectId}-{uuid}",c=a.conversationId??s??Zl(l,o);(a.conversationId||!s||a.forceNewConversation)&&o&&nf(n,o,c,i);const u=await a.tokenProvider(),h=a.tokenProvider,p=a.historyTokenProvider??h,g=r?{mqttEndpoint:r.mqttEndpoint,jwtToken:u,userId:n,userName:a.identity.userName,projectId:r.projectId,appId:r.appId,mqttUsername:r.mqttUsername,protocolId:r.protocolId,protocolVersion:r.protocolVersion,keepAliveSec:r.keepAliveSec,connectTimeoutMs:r.connectTimeoutMs,maxReconnectAttempts:r.maxReconnectAttempts,reconnectMaxDelayMs:r.reconnectMaxDelayMs,wildcardSubscribe:r.wildcardSubscribe,enablePresence:r.enablePresence,autoInitiateOnEmpty:r.autoInitiateOnEmpty,chatInitiatedAttributes:r.chatInitiatedAttributes,messageDefaults:{...r.messageDefaults,...a.identity.departmentId?{departmentId:a.identity.departmentId}:r.messageDefaults?.departmentId?{departmentId:r.messageDefaults.departmentId}:{}},fileTemplate:r.fileTemplate,topicTemplates:r.topicTemplates,debug:r.debug,senderFullname:a.identity.senderFullname??a.identity.userName,tokenProvider:h}:void 0,f=a.uploadAdapter??(e.uploadEndpoint?fo({endpoint:e.uploadEndpoint,fieldName:e.uploadFieldName,extraFields:e.uploadExtraFields}):void 0),b=a.historyAdapter??(e.historyApiBase?wl({apiBase:e.historyApiBase,pageSize:e.historyPageSize??200,pathTemplate:e.historyPathTemplate,extraHeaders:e.historyHeaders,getToken:p}):void 0),y={transport:t,baseUrl:"",userToken:a.userToken??n,conversationId:c,display:e.display??"embed",position:e.position,primaryColor:e.theme?.primary??e.primaryColor,title:e.title,subtitle:e.subtitle,avatarUrl:e.avatarUrl,width:e.width,height:e.height,borderRadius:e.theme?.radius??e.borderRadius,fontFamily:e.theme?.font??e.fontFamily,themeTokens:e.theme,linkHandlers:e.linkHandlers,getLinkBearer:a.getLinkBearer,welcomeMessage:e.welcomeMessage,placeholder:e.placeholder,showTimestamps:e.showTimestamps,persistConversation:e.persistConversation,showHeader:e.showHeader,hideSystemMessages:e.hideSystemMessages,timestampFormat:e.timestampFormat,input:e.input,templateLayout:e.templateLayout,chatActions:e.chatActions,tiledesk:g,tiledeskIdentity:{userId:n,userName:a.identity.userName,departmentId:a.identity.departmentId,senderFullname:a.identity.senderFullname??a.identity.userName},templateActionAttributes:e.templateActionAttributes,uploadAdapter:f,historyAdapter:b,onError:a.onError,onMessage:a.onMessage},w=document.createElement("aikaara-chat-widget");return w.configure(y),y.title&&w.setAttribute("title",y.title),y.primaryColor&&w.setAttribute("primary-color",y.primaryColor),y.display&&w.setAttribute("display",y.display),y.display==="embed"&&(w.style.cssText="display:flex;flex-direction:column;width:100%;height:100%;min-height:0;--aikaara-close-btn-display:none;"),a.container.appendChild(w),{widget:w,requestId:c,config:y,destroy(){w.remove()}}}function lf(a){if(typeof a!="string")return a;const e=document.querySelector(a);if(!e)throw new Error(`mountFromSlug: container "${a}" not found`);return e}async function rc(a){const e=(a.configBase??"https://api.aikaara.com").replace(/\/$/,""),t=`${e}/api/v1/widget_configs/${encodeURIComponent(a.slug)}`;let r=null;try{r=await Xl(t,a.configHeaders)}catch(I){if(!a.fallbackConfig)throw I;console.warn(`[aikaara-chat-sdk] Widget config fetch failed for slug "${a.slug}" — using fallbackConfig.`,I)}const o={...a.fallbackConfig??{},...r??{},...a.overrides??{}};if(ec(o),o.templates&&Object.keys(o.templates).length>0){o.components={...o.components??{}};for(const[I,P]of Object.entries(o.templates)){const O=`template:${I}`;o.components[O]||!P?.scriptUrl||!P?.render||(o.components[O]={kind:"iife-element",scriptUrl:P.scriptUrl,tag:P.render,...P.props?{props:P.props}:{}})}}const n=window;if(n.__aikaara_descriptor__={...n.__aikaara_descriptor__??{},templates:o.templates,components:o.components,razorpay:o.razorpay,title:o.title,cloud:o.cloud??n.__aikaara_descriptor__?.cloud,upload:o.upload??n.__aikaara_descriptor__?.upload,themeSource:o.themeSource??n.__aikaara_descriptor__?.themeSource,api:o.api,auth:o.auth},!o.auth)throw new Error(`mountFromSlug: widget_configs/${a.slug} descriptor must include "auth" block`);let i=null,s=a.user.id,l=a.user.name,c="",u=a.user.token,h=null;const p=await qt(a.user.token).catch(()=>""),g=typeof p=="string"&&p.length>0;if(!g&&o.sso?.tokenSource){h=new Yl({descriptor:{provider:o.sso.provider,flow:o.sso.flow,skipLogin:o.sso.skipLogin,autoRefresh:o.sso.autoRefresh,tokenSource:o.sso.tokenSource,tokenSourceConfig:o.sso.tokenSourceConfig,fallback:o.sso.fallback,map:o.sso.map},initToken:a.user.partnerToken});const I=await h.get();u=async()=>(await h.get()).token,a.user.identity&&!a.user.identity.partnerToken&&(a.user.identity.partnerToken=I.token)}else if(!g&&o.sso&&o.sso.collect&&o.sso.collect.length>0){const I=`${e}/api/v1/projects/by-slug/${encodeURIComponent(a.slug)}/sso_exchange`;i=await new Gl({descriptor:o.sso,providers:a.user.credentialProviders,exchangeUrl:I}).get(),s=i.extUid||s,l=l??i.displayName,c=i.userToken}let f="",b="";if(o.preflight&&o.preflight.length){const I=await ko(o.preflight,{sessionToken:u,userId:s,projectId:o.tiledesk?.projectId??"",slug:a.slug,identity:a.user.identity});if(I.captured.sessionToken){f=I.captured.sessionToken;const P=f;u=()=>P}I.captured.userId&&(s=I.captured.userId),I.captured.requestId&&(b=I.captured.requestId)}const y=new zl(o.auth,u);if(f){const I=o.tiledesk?.projectId??"",P=I?Jl(s,I):null,O=o.tiledesk?.requestIdTemplate??"support-group-{projectId}-{uuid}",N=P??(I?Zl(O,I):"");y.prime(f,{requestId:N,fullName:l})}const w=await y.get();s=s||w.userId;const m=w.fullName||l||s;window.__aikaara_runtime__={getChatJwt:async()=>(await y.get()).token,getSessionToken:()=>qt(a.user.token),identity:a.user.identity,slug:a.slug,configBase:e};const _=h&&o.sso?.autoRefresh?async()=>{try{return await h.refresh(),y.reset(),(await y.get()).token}catch(I){return console.warn("[aikaara-chat-sdk] partner auto-refresh failed",I),null}}:null,x=o.upload,v=async()=>`Bearer ${x&&"tokenSource"in x&&x.tokenSource==="chat"?(await y.get()).token:await qt(a.user.token)}`,E=a.hooks?.upload??(x&&x.mode==="presigned-3step"?vl({...x,authHeader:v}):x&&x.mode==="direct"?fo({endpoint:x.endpoint,fieldName:x.fieldName,extraFields:x.extraFields,headers:async()=>({authorization:await v()})}):void 0),S=await tc({container:lf(a.container),config:o,userToken:c||void 0,identity:{userId:s,userName:m,departmentId:a.user.departmentId,senderFullname:m},tokenProvider:async()=>(await y.get()).token,historyTokenProvider:async()=>(await y.get()).token,uploadAdapter:E,historyAdapter:a.hooks?.history,conversationId:w.requestId||b||void 0,conversationScope:a.conversationScope,onError:a.hooks?.onError,onMessage:a.hooks?.onMessage,getLinkBearer:async I=>I==="none"?null:I==="chat"?(await y.get()).token:qt(a.user.token)});return Object.assign(S,{fullName:m,requestId:w.requestId,descriptor:o,async refreshAuth(){y.reset(),await y.get()},async refreshPartnerAuth(){return _?_():null},async runMethodSelectPreflight(I){const P=o.preflight;return!P||!P.length?{}:P.some(N=>N.trigger==="on-method-select")?(await ko(P,{sessionToken:u,userId:s,projectId:o.tiledesk?.projectId??"",slug:a.slug,identity:{...a.user.identity??{},...I?.identity??{}},serviceType:I?.serviceType,userType:I?.userType},"on-method-select")).captured:{}}})}function cf(a){wo();const e=document.createElement("aikaara-chat-widget"),t={baseUrl:"base-url",userToken:"user-token",apiKey:"api-key",title:"title",subtitle:"subtitle",theme:"theme",primaryColor:"primary-color",position:"position",width:"width",height:"height",placeholder:"placeholder",welcomeMessage:"welcome-message",avatarUrl:"avatar-url"};for(const[r,o]of Object.entries(t)){const n=a[r];n!=null&&e.setAttribute(o,String(n))}return e.configure(a),document.body.appendChild(e),e}function uf(){const a=document.querySelector("aikaara-chat-widget");a&&a.remove()}const hf="https://checkout.razorpay.com/v1/checkout.js";let Zt=null;function Vr(){return window}class nc extends HTMLElement{shadow;payloadData=[];message="";paidIdx={};constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}setPayload(e,t){this.payloadData=Array.isArray(e)?e:[],this.message=t??"",this.render()}render(){const e=this.payloadData.filter(r=>!!r&&typeof r=="object"&&r.type==="link"&&typeof r.url=="string"),t=e.map((r,o)=>{const n=r.name||"Open link",i=!!this.paidIdx[o];return`<button class="link${i?" paid":""}" data-i="${o}" type="button"${i?" disabled":""}><span class="lbl">${df(i?"Paid":n)}</span>`+(i?'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 8.5 L7 12 L13 5"/></svg>':'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 11 L11 5 M6 5 H11 V10"/></svg>')+"</button>"}).join("");this.shadow.innerHTML="<style>:host { display:block; margin:6px 0; font-family:inherit; }.bubble { padding:12px 16px; border-radius:14px; background:var(--aikaara-bot-bubble-bg, #d8e5f5); color:var(--aikaara-bot-bubble-text, #1a2845); font-size:14px; line-height:1.55; margin-bottom:10px; }.links { display:flex; flex-direction:column; gap:8px; }.link { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; border:1.5px solid var(--aikaara-primary, #1849a9); background:var(--aikaara-primary, #1849a9); color:var(--aikaara-primary-contrast, #fff); border-radius:24px; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; text-decoration:none; transition: filter 120ms; width:150px; align-self:flex-start; }.link:hover:not(:disabled) { filter: brightness(0.94); }.link.paid, .link:disabled { background:#e7f5ec; color:#0e7c3a; border-color:#0e7c3a; cursor:default; }.icon { width:13px; height:13px; }</style>"+(this.message?`<div class="bubble">${this.message}</div>`:"")+`<div class="links">${t}</div>`,this.shadow.querySelectorAll(".link").forEach(r=>{r.addEventListener("click",()=>{if(r.disabled)return;const o=Number(r.dataset.i||0),n=e[o];n&&this.handleClick(o,n)})})}handleClick(e,t){const r=ff(t),o=Vr().__aikaara_descriptor__?.razorpay;if(!r||!o?.keyId){gf(t.url,t.name||"Pay"),this.dispatchEvent(new CustomEvent("template-action",{detail:{text:t.name||"link-click",attributes:{action:{type:"link",url:t.url,orderId:r||t.orderId,openedIn:"modal"}}},bubbles:!0,composed:!0}));return}mf(o.preferredBanksUrl,r,o.preferredBanksMethod,o.preferredBanksHeaders).catch(n=>(console.warn("[payment_link] preferred-banks fetch failed; continuing with default UI",n),[])).then(n=>pf().then(()=>this.openRazorpay(e,r,o,n))).catch(n=>{console.error("[payment_link] Razorpay launch failed",n)})}openRazorpay(e,t,r,o){const n=Vr(),i=n.__aikaara_runtime__?.identity??{},s={key:r.keyId,order_id:t,name:r.name||n.__aikaara_descriptor__?.title||"Payment",prefill:{},handler:()=>{this.paidIdx[e]=!0,this.render()},modal:{ondismiss:()=>{}}};typeof i.mobile=="string"?s.prefill.contact=i.mobile:typeof i.phone=="string"&&(s.prefill.contact=i.phone),typeof i.email=="string"&&(s.prefill.email=i.email),typeof i.name=="string"?s.prefill.name=i.name:typeof i.userName=="string"&&(s.prefill.name=i.userName),Array.isArray(o)&&o.length&&(s.config={display:{blocks:{preferred_banks:{name:"Preferred Netbanking",instruments:o}},sequence:["block.preferred_banks","netbanking","card","upi"],preferences:{show_default_blocks:!0}}});const l=n.Razorpay;if(typeof l!="function")throw new Error("Razorpay Checkout script not available");const c=new l(s);c.on("payment.failed",u=>{console.warn("[payment_link] payment.failed",u?.error)}),c.open()}}function df(a){return String(a??"").replace(/[&<>]/g,e=>e==="&"?"&amp;":e==="<"?"&lt;":"&gt;")}function ff(a){if(typeof a.orderId=="string"&&a.orderId)return a.orderId;try{const e=new URL(a.url,window.location.origin),t=e.searchParams.get("orderId")||e.searchParams.get("order_id");if(t)return t;if(e.hash&&e.hash.length>1){const r=new URLSearchParams(e.hash.replace(/^#/,"")),o=r.get("orderId")||r.get("order_id");if(o)return o}}catch{}return null}function pf(){return typeof Vr().Razorpay=="function"?Promise.resolve():Zt||(Zt=new Promise((a,e)=>{const t=document.querySelector('script[data-aikaara-razorpay="1"]');if(t){t.addEventListener("load",()=>a()),t.addEventListener("error",()=>e(new Error("checkout.js failed to load")));return}const r=document.createElement("script");r.src=hf,r.async=!0,r.dataset.aikaaraRazorpay="1",r.onload=()=>a(),r.onerror=()=>{Zt=null,e(new Error("checkout.js failed to load"))},document.head.appendChild(r)}),Zt)}function mf(a,e,t,r){if(!a)return Promise.resolve([]);const o=String(t||"GET").toUpperCase()==="POST"?"POST":"GET",n=a.includes("{orderId}")?a.replace("{orderId}",encodeURIComponent(e)):a+(a.includes("?")?"&":"?")+"orderId="+encodeURIComponent(e),i=Vr().__aikaara_runtime__??{};return(typeof i.getSessionToken=="function"?i.getSessionToken():typeof i.getChatJwt=="function"?i.getChatJwt():Promise.resolve(null)).then(l=>{const c={Accept:"application/json",...r??{}};l&&(c.Authorization=`Bearer ${l}`);const u={method:o,headers:c,credentials:"omit"};return o==="POST"&&(c["Content-Type"]="application/json",u.body=JSON.stringify({orderId:e})),fetch(n,u)}).then(l=>{if(!l.ok)throw new Error(`preferred-banks ${l.status}`);return l.json()}).then(l=>{const c=l,u=c?.data&&typeof c.data=="object"&&!Array.isArray(c.data)?c.data:null;return(Array.isArray(l)?l:Array.isArray(c?.banks)?c.banks:Array.isArray(c?.data)?c.data:Array.isArray(u?.preferredPaymentBank)?u.preferredPaymentBank:Array.isArray(u?.banks)?u.banks:[]).map(p=>{if(typeof p=="string")return p;if(p&&typeof p=="object"){const g=p;return g.code||g.bankCode||g.bank_code||null}return null}).filter(p=>!!p)})}function gf(a,e){if(!a)return;let t=document.querySelector("aikaara-link-modal");t||(t=document.createElement("aikaara-link-modal"),document.body.appendChild(t)),typeof t.show=="function"?t.show(a,e):window.open(a,"_blank","noopener,noreferrer")}function bf(){typeof customElements>"u"||customElements.get("aikaara-template-payment-link")||customElements.define("aikaara-template-payment-link",nc)}const yf=Object.freeze(Object.defineProperty({__proto__:null,AikaaraPaymentLink:nc,registerAikaaraPaymentLink:bf},Symbol.toStringTag,{value:"Module"}));class ic extends HTMLElement{shadow;payload=null;constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render()}setPayload(e){this.payload=e,this.render()}render(){const e=this.payload;this.shadow.innerHTML=`
1471
+ `}}function Pt(a){return a.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Qe(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function wo(){const a=[["aikaara-chat-widget",Al],["aikaara-chat-bubble",Il],["aikaara-chat-header",Tl],["aikaara-message-list",Ol],["aikaara-message-bubble",Rl],["aikaara-chat-input",jl],["aikaara-typing-indicator",Nl],["aikaara-streaming-message",Ul],["aikaara-error-banner",Bl],["aikaara-template-renderer",xd],["aikaara-system-pill",Id],["aikaara-option-list",Td],["aikaara-submit-action",Cd],["aikaara-modal-action",Od],["aikaara-chat",Md],["aikaara-link-modal",Rd],["aikaara-compare-plans",Nd],["aikaara-smart-edit-modal",Ud],["aikaara-schema-form",Fd]];for(const[e,t]of a)customElements.get(e)||customElements.define(e,t)}wo();function Wr(a,e,t=""){if(!e)return t;const r=e.split(".");let o=a;for(const n of r)if(o&&typeof o=="object"&&n in o)o=o[n];else return t;return typeof o=="string"?o:t}function Wl(a){try{const e=a.split(".")[1];if(!e)return 0;const t=JSON.parse(atob(e.replace(/-/g,"+").replace(/_/g,"/")));return typeof t.exp=="number"?t.exp*1e3:0}catch{return 0}}async function qt(a){return typeof a=="function"?await a():a}class zl{constructor(e,t){this.descriptor=e,this.sessionToken=t}cache=null;inflight=null;reset(){this.cache=null,this.inflight=null}prime(e,t={}){if(!e)return;const r=Wl(e)||Date.now()+3600*1e3;this.cache={token:e,requestId:t.requestId??this.cache?.requestId??"",fullName:t.fullName??this.cache?.fullName??"",userId:t.userId??this.cache?.userId??"",expiresAt:r}}async get(){const e=this.descriptor.expiryBufferMs??6e4,t=Date.now();return this.cache&&this.cache.expiresAt>t+e?this.cache:this.inflight?this.inflight:(this.inflight=this.fetchOnce().finally(()=>{this.inflight=null}),this.inflight)}async fetchOnce(){const e=await qt(this.sessionToken),t=this.descriptor.authHeader??"Authorization",r=this.descriptor.authHeaderTemplate??"Bearer {token}",o={accept:"application/json",...this.descriptor.headers??{},[t]:r.replace("{token}",e)},n=this.descriptor.method??"POST",i={method:n,headers:o};n==="POST"&&(o["content-type"]="application/json",i.body=JSON.stringify(this.descriptor.body??{}));const s=await fetch(this.descriptor.endpoint,i);if(!s.ok){const w=await s.text().catch(()=>"");throw new Error(`Session auth failed: ${s.status} ${w.slice(0,200)}`)}const l=await s.json().catch(()=>({})),c=Wr(l,this.descriptor.tokenPath??"data.token"),u=this.descriptor.tokenStripPrefix,h=u?c.replace(new RegExp(`^${u}`,"i"),"").trim():c;if(!h)throw new Error("Session auth response missing token");const p=Wr(l,this.descriptor.requestIdPath??"data.requestId"),g=this.cache?.requestId||p||"",f=Wr(l,this.descriptor.fullNamePath??"data.fullName"),b=Wr(l,this.descriptor.userPath??"data.userId"),y=Wl(h)||Date.now()+3600*1e3;return this.cache={token:h,requestId:g,fullName:f,userId:b,expiresAt:y},this.cache}}async function Vl(a){const e={};for(const t of a.spec){const r=await $d(t,a.providers);if(r!==void 0&&r!=="")e[t.name]=r;else{if(t.required)throw new Error(`[aikaara-chat-sdk] SSO credential "${t.name}" is required but ${t.source}`+(t.key?`[${t.key}]`:"")+" returned no value");t.default!==void 0&&(e[t.name]=t.default)}}return e}async function $d(a,e){const t=a.key??a.name;switch(a.source){case"cookie":return qd(t);case"localStorage":return zr(()=>window.localStorage.getItem(t)??void 0);case"sessionStorage":return zr(()=>window.sessionStorage.getItem(t)??void 0);case"url_param":return zr(()=>new URL(window.location.href).searchParams.get(t)??void 0);case"header_meta":return zr(()=>document.querySelector(`meta[name="${Hd(t)}"]`)?.content??void 0);case"callback":{const r=e?.[a.name];if(!r)return;const o=await r();return typeof o=="string"?o:void 0}default:return}}function qd(a){if(typeof document>"u")return;const e=encodeURIComponent(a),t=document.cookie?document.cookie.split("; "):[];for(const r of t){const o=r.indexOf("=");if(o===-1)continue;const n=r.slice(0,o);if(n===a||n===e)try{return decodeURIComponent(r.slice(o+1))}catch{return r.slice(o+1)}}}function zr(a){try{return a()}catch{return}}function Hd(a){return a.replace(/["\\]/g,"\\$&")}const Wd=1800;class Gl{constructor(e){this.opts=e,this.cache=this.loadCache()}cache=null;inflight=null;reset(){this.cache=null,this.inflight=null,this.clearCache()}async get(e=!1){if(!e){const t=this.cache;if(t&&(!t.expiresAt||t.expiresAt>Date.now()))return t}return this.inflight?this.inflight:(this.inflight=this.exchange().finally(()=>{this.inflight=null}),this.inflight)}async exchange(){if(!this.opts.descriptor.collect||this.opts.descriptor.collect.length===0)throw new Error("[aikaara-chat-sdk] SsoExchangeAdapter.exchange() requires descriptor.sso.collect; v2 partner-token flow should be handled by TokenDiscoveryReader instead.");const e=await Vl({spec:this.opts.descriptor.collect,providers:this.opts.providers}),t=JSON.stringify({credentials:e}),r={accept:"application/json","content-type":"application/json",...this.opts.descriptor.headers??{}};this.opts.descriptor.apiKey&&(r["X-Api-Key"]=this.opts.descriptor.apiKey);const o=this.opts.descriptor.exchangeEndpoint||this.opts.exchangeUrl;if(!o)throw new Error("[aikaara-chat-sdk] SSO exchange URL not resolved — set descriptor.sso.exchangeEndpoint or pass `exchangeUrl` (mountFromSlug derives it from configBase + slug).");const n=await fetch(o,{method:"POST",headers:r,body:t});if(!n.ok){const h=await n.text().catch(()=>"");throw new Error(`SSO exchange failed: ${n.status} ${h.slice(0,240)}`)}const s=(await n.json().catch(()=>({}))).user??{},l=String(s.ext_uid??s.extUid??""),c=String(s.token??s.user_token??s.userToken??"");if(!l)throw new Error("SSO exchange response missing user.ext_uid");if(!c)throw new Error("SSO exchange response missing user.token");const u={id:s.id,extUid:l,userToken:c,email:typeof s.email=="string"?s.email:void 0,displayName:typeof s.display_name=="string"?s.display_name:typeof s.displayName=="string"?s.displayName:void 0,properties:s.properties&&typeof s.properties=="object"?s.properties:void 0,expiresAt:this.computeExpiry()};return this.cache=u,this.persistCache(u),u}computeExpiry(){const e=this.opts.descriptor.cacheTtlSec??Wd;if(!(!this.opts.descriptor.cacheKey||e<=0))return Date.now()+e*1e3}loadCache(){const e=this.opts.descriptor.cacheKey;if(!e)return null;try{const t=window.localStorage.getItem(e);if(!t)return null;const r=JSON.parse(t);return r.expiresAt&&r.expiresAt<Date.now()?(window.localStorage.removeItem(e),null):r}catch{return null}}persistCache(e){const t=this.opts.descriptor.cacheKey;if(t)try{window.localStorage.setItem(t,JSON.stringify(e))}catch{}}clearCache(){const e=this.opts.descriptor.cacheKey;if(e)try{window.localStorage.removeItem(e)}catch{}}}const zd=3e4,Vd=2e3,Gd=100;async function Kl(a){const{descriptor:e}=a,t=e.tokenSourceConfig??{};switch(e.tokenSource){case"init":{if(!a.initToken)throw new Ke("init","No init token supplied to Aikaara.init({token})");return{token:a.initToken,source:"init"}}case"query":{const r=typeof t.key=="string"&&t.key?t.key:"token",o=Kd(r);if(!o)throw new Ke("query",`?${r}= not present`);return{token:o,source:"query"}}case"hash":{const r=typeof t.key=="string"&&t.key?t.key:"token",o=Yd(r);if(!o)throw new Ke("hash",`#${r}= not present`);return{token:o,source:"hash"}}case"postmsg":{const r=typeof t.type=="string"?t.type:"",o=typeof t.key=="string"&&t.key?t.key:"token",n=ef(typeof t.origins=="string"?t.origins:""),i=typeof t.timeoutMs=="number"&&t.timeoutMs>0?t.timeoutMs:zd;return{token:await Zd({type:r,key:o,origins:n,timeoutMs:i}),source:"postmsg"}}case"cookie":{const r=typeof t.name=="string"&&t.name?t.name:"";if(!r)throw new Ke("cookie","cookie.name not configured");const o=Qd(r);if(!o)throw new Ke("cookie",`cookie "${r}" not set`);return{token:o,source:"cookie"}}case"storage":{const r=t.store==="session"?"session":"local",o=typeof t.key=="string"&&t.key?t.key:"",n=typeof t.path=="string"?t.path:"";if(!o)throw new Ke("storage","storage.key not configured");const i=Jd(r,o,n);if(!i)throw new Ke("storage",`${r}Storage["${o}"] not set`);return{token:i,source:"storage"}}case"global":{const r=typeof t.path=="string"?t.path:"";if(!r)throw new Ke("global","global.path not configured");const o=typeof t.timeoutMs=="number"&&t.timeoutMs>0?t.timeoutMs:Vd,n=typeof t.intervalMs=="number"&&t.intervalMs>0?t.intervalMs:Gd,i=await Xd(r,o,n);if(!i)throw new Ke("global",`window.${r} not present`);return{token:i,source:"global"}}default:{const r=e.tokenSource;throw new Ke("unknown",`Unknown tokenSource ${JSON.stringify(r)}`)}}}class Yl{constructor(e){this.opts=e}cached=null;get descriptor(){return this.opts.descriptor}async get(){if(this.cached)return this.cached;const e=await Kl(this.opts);return this.cached=e,e}async refresh(){return this.opts.descriptor.tokenSource==="init"?this.cached?this.cached:this.get():(this.cached=null,this.get())}}class Ke extends Error{constructor(e,t){super(`[aikaara-chat-sdk] token-discovery (${e}): ${t}`),this.source=e,this.name="TokenDiscoveryError"}}function Kd(a){if(!(typeof window>"u"))try{const e=window.location.search.slice(1);for(const t of e.split("&")){const r=t.indexOf("=");if(r!==-1&&decodeURIComponent(t.slice(0,r))===a)return decodeURIComponent(t.slice(r+1))}return}catch{return}}function Yd(a){if(!(typeof window>"u"))try{const e=window.location.hash.replace(/^#/,"");return new URLSearchParams(e).get(a)??void 0}catch{return}}function Qd(a){if(typeof document>"u")return;const e=encodeURIComponent(a),t=document.cookie?document.cookie.split("; "):[];for(const r of t){const o=r.indexOf("=");if(o===-1)continue;const n=r.slice(0,o);if(n===a||n===e)try{return decodeURIComponent(r.slice(o+1))}catch{return r.slice(o+1)}}}function Jd(a,e,t){if(!(typeof window>"u"))try{const o=(a==="session"?window.sessionStorage:window.localStorage).getItem(e);if(o==null)return;if(!t)return o;let n;try{n=JSON.parse(o)}catch{return o}const i=Ql(n,t);return typeof i=="string"?i:void 0}catch{return}}async function Xd(a,e,t){if(typeof window>"u")return;const r=Date.now()+e;for(;Date.now()<r;){const o=Ql(window,a);if(typeof o=="string"&&o.length>0)return o;if(typeof o=="function")try{const n=o();if(typeof n=="string"&&n.length>0)return n}catch{}await new Promise(n=>setTimeout(n,t))}}function Zd(a){return new Promise((e,t)=>{if(typeof window>"u"){t(new Ke("postmsg","no window"));return}const r=()=>{window.removeEventListener("message",n),clearTimeout(o)},o=setTimeout(()=>{r(),t(new Ke("postmsg",`timeout after ${a.timeoutMs}ms`))},a.timeoutMs),n=i=>{if(a.origins.length>0&&!a.origins.includes(i.origin))return;const s=i.data;if(!s||typeof s!="object")return;const l=s;if(a.type&&l.type!==a.type)return;const c=l[a.key];typeof c=="string"&&c.length>0&&(r(),e(c))};window.addEventListener("message",n)})}function ef(a){return a?a.split(/[,\s]+/).map(e=>e.trim()).filter(Boolean):[]}function Ql(a,e){if(!e)return a;const t=e.split(".").filter(Boolean);let r=a;for(const o of t)if(r&&typeof r=="object"&&o in r)r=r[o];else return;return r}function tf(){const a=typeof crypto<"u"?crypto:null;if(a?.randomUUID)return a.randomUUID();if(a?.getRandomValues){const e=new Uint8Array(16);a.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}const rf="aikaara_chat:requestId";function _o(a,e,t){const r=`${rf}:${a}:${e}`;return t?`${r}:${t}`:r}function Jl(a,e,t){try{return localStorage.getItem(_o(a,e,t))}catch{return null}}function nf(a,e,t,r){try{localStorage.setItem(_o(a,e,r),t)}catch{}}function of(a,e,t){try{localStorage.removeItem(_o(a,e,t))}catch{}}async function ko(a,e,t="before-chat"){const r=a.filter(u=>(u.trigger??"before-chat")===t);console.log("[aikaara-chat-sdk] preflight running",r.length,"steps",`(trigger=${t})`);const o={userId:e.userId,projectId:e.projectId,slug:e.slug};if(e.identity)for(const[u,h]of Object.entries(e.identity))typeof h=="string"&&(o[u]=h);typeof e.serviceType=="string"&&(o.serviceType=e.serviceType),typeof e.userType=="string"&&(o.userType=e.userType);const n=u=>u.replace(/\{(\w+)\}/g,(h,p)=>p in o?o[p]:""),i=u=>{if(typeof u=="string")return n(u);if(Array.isArray(u))return u.map(i);if(u&&typeof u=="object"){const h={};for(const[p,g]of Object.entries(u))h[p]=i(g);return h}return u},s=await qt(e.sessionToken),l={},c=[800,1500,3e3,5e3,8e3];for(let u=0;u<r.length;u++){const h=r[u],p=n(h.url),g=h.method??(h.body?"POST":"GET"),f={accept:"application/json",...h.headers??{}};if((h.authHeader??"session")==="session"){const x=h.authHeaderTemplate??"Bearer {token}";f.authorization=x.replace("{token}",s)}const b={method:g,headers:f};h.body&&(f["content-type"]="application/json",b.body=JSON.stringify(i(h.body)));let y=0,w="",m=0,_=null;for(;;)try{const x=await fetch(p,b);if(x.ok){_=x;break}if(y=x.status,w=await x.text().catch(()=>""),m<c.length&&af(y,w)){const E=c[m++];console.warn(`[aikaara-chat-sdk] preflight #${u} ${g} ${p} → ${y} (transient). Retry #${m} in ${E}ms.`),await new Promise(S=>setTimeout(S,E));continue}const v=`Preflight #${u} ${g} ${p} → ${y} ${w.slice(0,200)}`;if(h.soft){console.warn("[aikaara-chat-sdk]",v);break}throw new Error(v)}catch(x){if(m<c.length){const v=c[m++];console.warn(`[aikaara-chat-sdk] preflight #${u} threw, retry #${m} in ${v}ms`,x),await new Promise(E=>setTimeout(E,v));continue}if(h.soft){console.warn(`[aikaara-chat-sdk] preflight #${u} soft-failed:`,x);break}throw x}if(_&&h.capture&&h.capture.as)try{const x=await _.clone().text();let v=x;try{v=JSON.parse(x)}catch{}if(h.capture.path)for(const E of h.capture.path.split("."))if(v&&typeof v=="object"&&E in v)v=v[E];else{v=void 0;break}if(typeof v=="string"&&v.length>0){let E=v;h.capture.stripPrefix&&E.startsWith(h.capture.stripPrefix)&&(E=E.slice(h.capture.stripPrefix.length)),l[h.capture.as]=E,o[h.capture.as]=E,console.log(`[aikaara-chat-sdk] preflight #${u} captured ${h.capture.as} (${E.slice(0,24)}…)`)}}catch(x){console.warn(`[aikaara-chat-sdk] preflight #${u} capture failed`,x)}}return{captured:l}}async function sf(a){const e=a.steps??[];return e.some(r=>r.trigger==="on-method-select")?(await ko(e,{sessionToken:a.sessionToken,userId:a.userId,projectId:a.projectId??"",slug:a.slug??"",identity:a.identity,serviceType:a.serviceType,userType:a.userType},"on-method-select")).captured:{}}function af(a,e){if(a===503||a===504||a===502)return!0;if(a===401||a===403)return e.trim().length===0;if(a===500){const t=e.toLowerCase();return t.includes("customernew")||t.includes("is null")||t.includes("not yet ready")}return!1}async function Xl(a,e){const t=await fetch(a,{method:"GET",headers:{accept:"application/json",...e??{}}});if(!t.ok){const o=await t.text().catch(()=>"");throw new Error(`Widget config fetch failed: ${t.status} ${t.statusText} ${o.slice(0,200)}`)}const r=await t.json();if(r&&typeof r=="object"){if("config"in r)return r.config;if("data"in r)return r.data}return r}function Zl(a,e){return a.replace("{projectId}",e).replace("{uuid}",tf().replace(/-/g,""))}function ec(a){const e=a._preload;if(!Array.isArray(e)||e.length===0)return;const t=Array.from(new Set(e.map(r=>r&&typeof r=="object"?r.scriptUrl:null).filter(r=>typeof r=="string"&&r.length>0)));t.length!==0&&Promise.allSettled(t.map(r=>Dl(r)))}async function tc(a){const e={...a.config??(a.configUrl?await Xl(a.configUrl,a.configHeaders):{}),...a.overrides??{}};ec(e);const t=e.transport??"tiledesk",r=e.tiledesk;if((t==="tiledesk"||t==="dual")&&!r)throw new Error("mount: descriptor.tiledesk is required for tiledesk/dual transport");const o=r?.projectId??"",n=a.identity.userId,i=a.conversationScope||void 0,s=a.forceNewConversation?null:Jl(n,o,i),l=r?.requestIdTemplate??"support-group-{projectId}-{uuid}",c=a.conversationId??s??Zl(l,o);(a.conversationId||!s||a.forceNewConversation)&&o&&nf(n,o,c,i);const u=await a.tokenProvider(),h=a.tokenProvider,p=a.historyTokenProvider??h,g=r?{mqttEndpoint:r.mqttEndpoint,jwtToken:u,userId:n,userName:a.identity.userName,projectId:r.projectId,appId:r.appId,mqttUsername:r.mqttUsername,protocolId:r.protocolId,protocolVersion:r.protocolVersion,keepAliveSec:r.keepAliveSec,connectTimeoutMs:r.connectTimeoutMs,maxReconnectAttempts:r.maxReconnectAttempts,reconnectMaxDelayMs:r.reconnectMaxDelayMs,wildcardSubscribe:r.wildcardSubscribe,enablePresence:r.enablePresence,autoInitiateOnEmpty:r.autoInitiateOnEmpty,chatInitiatedAttributes:r.chatInitiatedAttributes,messageDefaults:{...r.messageDefaults,...a.identity.departmentId?{departmentId:a.identity.departmentId}:r.messageDefaults?.departmentId?{departmentId:r.messageDefaults.departmentId}:{}},fileTemplate:r.fileTemplate,topicTemplates:r.topicTemplates,debug:r.debug,senderFullname:a.identity.senderFullname??a.identity.userName,tokenProvider:h}:void 0,f=a.uploadAdapter??(e.uploadEndpoint?fo({endpoint:e.uploadEndpoint,fieldName:e.uploadFieldName,extraFields:e.uploadExtraFields}):void 0),b=a.historyAdapter??(e.historyApiBase?wl({apiBase:e.historyApiBase,pageSize:e.historyPageSize??200,pathTemplate:e.historyPathTemplate,extraHeaders:e.historyHeaders,getToken:p}):void 0),y={transport:t,baseUrl:"",userToken:a.userToken??n,conversationId:c,display:e.display??"embed",position:e.position,primaryColor:e.theme?.primary??e.primaryColor,title:e.title,subtitle:e.subtitle,avatarUrl:e.avatarUrl,width:e.width,height:e.height,borderRadius:e.theme?.radius??e.borderRadius,fontFamily:e.theme?.font??e.fontFamily,themeTokens:e.theme,linkHandlers:e.linkHandlers,getLinkBearer:a.getLinkBearer,welcomeMessage:e.welcomeMessage,placeholder:e.placeholder,showTimestamps:e.showTimestamps,persistConversation:e.persistConversation,showHeader:e.showHeader,hideSystemMessages:e.hideSystemMessages,timestampFormat:e.timestampFormat,input:e.input,templateLayout:e.templateLayout,chatActions:e.chatActions,tiledesk:g,tiledeskIdentity:{userId:n,userName:a.identity.userName,departmentId:a.identity.departmentId,senderFullname:a.identity.senderFullname??a.identity.userName},templateActionAttributes:e.templateActionAttributes,uploadAdapter:f,historyAdapter:b,onError:a.onError,onMessage:a.onMessage},w=document.createElement("aikaara-chat-widget");return w.configure(y),y.title&&w.setAttribute("title",y.title),y.primaryColor&&w.setAttribute("primary-color",y.primaryColor),y.display&&w.setAttribute("display",y.display),y.display==="embed"&&(w.style.cssText="display:flex;flex-direction:column;width:100%;height:100%;min-height:0;--aikaara-close-btn-display:none;"),a.container.appendChild(w),{widget:w,requestId:c,config:y,destroy(){w.remove()}}}function lf(a){if(typeof a!="string")return a;const e=document.querySelector(a);if(!e)throw new Error(`mountFromSlug: container "${a}" not found`);return e}async function rc(a){const e=(a.configBase??"https://api.aikaara.com").replace(/\/$/,""),t=`${e}/api/v1/widget_configs/${encodeURIComponent(a.slug)}`;let r=null;try{r=await Xl(t,a.configHeaders)}catch(I){if(!a.fallbackConfig)throw I;console.warn(`[aikaara-chat-sdk] Widget config fetch failed for slug "${a.slug}" — using fallbackConfig.`,I)}const o={...a.fallbackConfig??{},...r??{},...a.overrides??{}};if(ec(o),o.templates&&Object.keys(o.templates).length>0){o.components={...o.components??{}};for(const[I,P]of Object.entries(o.templates)){const O=`template:${I}`;o.components[O]||!P?.scriptUrl||!P?.render||(o.components[O]={kind:"iife-element",scriptUrl:P.scriptUrl,tag:P.render,...P.props?{props:P.props}:{}})}}const n=window;if(n.__aikaara_descriptor__={...n.__aikaara_descriptor__??{},templates:o.templates,components:o.components,razorpay:o.razorpay,title:o.title,cloud:o.cloud??n.__aikaara_descriptor__?.cloud,upload:o.upload??n.__aikaara_descriptor__?.upload,themeSource:o.themeSource??n.__aikaara_descriptor__?.themeSource,api:o.api,auth:o.auth},!o.auth)throw new Error(`mountFromSlug: widget_configs/${a.slug} descriptor must include "auth" block`);let i=null,s=a.user.id,l=a.user.name,c="",u=a.user.token,h=null;const p=await qt(a.user.token).catch(()=>""),g=typeof p=="string"&&p.length>0;if(!g&&o.sso?.tokenSource){h=new Yl({descriptor:{provider:o.sso.provider,flow:o.sso.flow,skipLogin:o.sso.skipLogin,autoRefresh:o.sso.autoRefresh,tokenSource:o.sso.tokenSource,tokenSourceConfig:o.sso.tokenSourceConfig,fallback:o.sso.fallback,map:o.sso.map},initToken:a.user.partnerToken});const I=await h.get();u=async()=>(await h.get()).token,a.user.identity&&!a.user.identity.partnerToken&&(a.user.identity.partnerToken=I.token)}else if(!g&&o.sso&&o.sso.collect&&o.sso.collect.length>0){const I=`${e}/api/v1/projects/by-slug/${encodeURIComponent(a.slug)}/sso_exchange`;i=await new Gl({descriptor:o.sso,providers:a.user.credentialProviders,exchangeUrl:I}).get(),s=i.extUid||s,l=l??i.displayName,c=i.userToken}let f="",b="";if(o.preflight&&o.preflight.length){const I=await ko(o.preflight,{sessionToken:u,userId:s,projectId:o.tiledesk?.projectId??"",slug:a.slug,identity:a.user.identity});if(I.captured.sessionToken){f=I.captured.sessionToken;const P=f;u=()=>P}I.captured.userId&&(s=I.captured.userId),I.captured.requestId&&(b=I.captured.requestId)}const y=new zl(o.auth,u);if(f){const I=o.tiledesk?.projectId??"",P=I?Jl(s,I):null,O=o.tiledesk?.requestIdTemplate??"support-group-{projectId}-{uuid}",N=P??(I?Zl(O,I):"");y.prime(f,{requestId:N,fullName:l})}const w=await y.get();s=s||w.userId;const m=w.fullName||l||s;window.__aikaara_runtime__={getChatJwt:async()=>(await y.get()).token,getSessionToken:()=>qt(a.user.token),identity:a.user.identity,slug:a.slug,configBase:e};const _=h&&o.sso?.autoRefresh?async()=>{try{return await h.refresh(),y.reset(),(await y.get()).token}catch(I){return console.warn("[aikaara-chat-sdk] partner auto-refresh failed",I),null}}:null,x=o.upload,v=async()=>`Bearer ${x&&"tokenSource"in x&&x.tokenSource==="chat"?(await y.get()).token:await qt(a.user.token)}`,E=a.hooks?.upload??(x&&x.mode==="presigned-3step"?vl({...x,authHeader:v}):x&&x.mode==="direct"?fo({endpoint:x.endpoint,fieldName:x.fieldName,extraFields:x.extraFields,headers:async()=>({authorization:await v()})}):void 0),S=await tc({container:lf(a.container),config:o,userToken:c||void 0,identity:{userId:s,userName:m,departmentId:a.user.departmentId,senderFullname:m},tokenProvider:async()=>(await y.get()).token,historyTokenProvider:async()=>(await y.get()).token,uploadAdapter:E,historyAdapter:a.hooks?.history,conversationId:w.requestId||b||void 0,conversationScope:a.conversationScope,onError:a.hooks?.onError,onMessage:a.hooks?.onMessage,getLinkBearer:async I=>I==="none"?null:I==="chat"?(await y.get()).token:qt(a.user.token)});return Object.assign(S,{fullName:m,requestId:w.requestId,descriptor:o,async refreshAuth(){y.reset(),await y.get()},async refreshPartnerAuth(){return _?_():null},async runMethodSelectPreflight(I){const P=o.preflight;return!P||!P.length?{}:P.some(N=>N.trigger==="on-method-select")?(await ko(P,{sessionToken:u,userId:s,projectId:o.tiledesk?.projectId??"",slug:a.slug,identity:{...a.user.identity??{},...I?.identity??{}},serviceType:I?.serviceType,userType:I?.userType},"on-method-select")).captured:{}}})}function cf(a){wo();const e=document.createElement("aikaara-chat-widget"),t={baseUrl:"base-url",userToken:"user-token",apiKey:"api-key",title:"title",subtitle:"subtitle",theme:"theme",primaryColor:"primary-color",position:"position",width:"width",height:"height",placeholder:"placeholder",welcomeMessage:"welcome-message",avatarUrl:"avatar-url"};for(const[r,o]of Object.entries(t)){const n=a[r];n!=null&&e.setAttribute(o,String(n))}return e.configure(a),document.body.appendChild(e),e}function uf(){const a=document.querySelector("aikaara-chat-widget");a&&a.remove()}const hf="https://checkout.razorpay.com/v1/checkout.js";let Zt=null;function Vr(){return window}class nc extends HTMLElement{shadow;payloadData=[];message="";paidIdx={};constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}setPayload(e,t){this.payloadData=Array.isArray(e)?e:[],this.message=t??"",this.render()}render(){const e=this.payloadData.filter(r=>!!r&&typeof r=="object"&&r.type==="link"&&typeof r.url=="string"),t=e.map((r,o)=>{const n=r.name||"Open link",i=!!this.paidIdx[o];return`<button class="link${i?" paid":""}" data-i="${o}" type="button"${i?" disabled":""}><span class="lbl">${df(i?"Paid":n)}</span>`+(i?'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 8.5 L7 12 L13 5"/></svg>':'<svg class="icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 11 L11 5 M6 5 H11 V10"/></svg>')+"</button>"}).join("");this.shadow.innerHTML="<style>:host { display:block; margin:6px 0; font-family:inherit; }.bubble { padding:12px 16px; border-radius:14px; background:var(--aikaara-bot-bubble-bg, #d8e5f5); color:var(--aikaara-bot-bubble-text, #1a2845); font-size:14px; line-height:1.55; margin-bottom:10px; }.links { display:flex; flex-direction:column; gap:8px; }.link { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; border:1.5px solid var(--aikaara-primary, #1849a9); background:var(--aikaara-primary, #1849a9); color:var(--aikaara-primary-contrast, #fff); border-radius:24px; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; text-decoration:none; transition: filter 120ms; width:150px; align-self:flex-start; }.link:hover:not(:disabled) { filter: brightness(0.94); }.link.paid, .link:disabled { background:#e7f5ec; color:#0e7c3a; border-color:#0e7c3a; cursor:default; }.icon { width:13px; height:13px; }</style>"+(this.message?`<div class="bubble">${this.message}</div>`:"")+`<div class="links">${t}</div>`,this.shadow.querySelectorAll(".link").forEach(r=>{r.addEventListener("click",()=>{if(r.disabled)return;const o=Number(r.dataset.i||0),n=e[o];n&&this.handleClick(o,n)})})}handleClick(e,t){const r=ff(t),o=Vr().__aikaara_descriptor__?.razorpay;if(!r||!o?.keyId){gf(t.url,t.name||"Pay"),this.dispatchEvent(new CustomEvent("template-action",{detail:{text:t.name||"link-click",attributes:{action:{type:"link",url:t.url,orderId:r||t.orderId,openedIn:"modal"}}},bubbles:!0,composed:!0}));return}mf(o.preferredBanksUrl,r,o.preferredBanksMethod,o.preferredBanksHeaders).catch(n=>(console.warn("[payment_link] preferred-banks fetch failed; continuing with default UI",n),[])).then(n=>pf().then(()=>this.openRazorpay(e,r,o,n))).catch(n=>{console.error("[payment_link] Razorpay launch failed",n)})}openRazorpay(e,t,r,o){const n=Vr(),i=n.__aikaara_runtime__?.identity??{},s={key:r.keyId,order_id:t,name:r.name||n.__aikaara_descriptor__?.title||"Payment",prefill:{},handler:()=>{this.paidIdx[e]=!0,this.render()},modal:{ondismiss:()=>{}}};typeof i.mobile=="string"?s.prefill.contact=i.mobile:typeof i.phone=="string"&&(s.prefill.contact=i.phone),typeof i.email=="string"&&(s.prefill.email=i.email),typeof i.name=="string"?s.prefill.name=i.name:typeof i.userName=="string"&&(s.prefill.name=i.userName),Array.isArray(o)&&o.length&&(s.config={display:{blocks:{utib:{name:"Pay Using Preferred Netbanking",instruments:[{method:"netbanking",banks:o}]}},sequence:["block.utib","netbanking","card","upi"],preferences:{show_default_blocks:!0}}});const l=n.Razorpay;if(typeof l!="function")throw new Error("Razorpay Checkout script not available");const c=new l(s);c.on("payment.failed",u=>{console.warn("[payment_link] payment.failed",u?.error)}),c.open()}}function df(a){return String(a??"").replace(/[&<>]/g,e=>e==="&"?"&amp;":e==="<"?"&lt;":"&gt;")}function ff(a){if(typeof a.orderId=="string"&&a.orderId)return a.orderId;try{const e=new URL(a.url,window.location.origin),t=e.searchParams.get("orderId")||e.searchParams.get("order_id");if(t)return t;if(e.hash&&e.hash.length>1){const r=new URLSearchParams(e.hash.replace(/^#/,"")),o=r.get("orderId")||r.get("order_id");if(o)return o}}catch{}return null}function pf(){return typeof Vr().Razorpay=="function"?Promise.resolve():Zt||(Zt=new Promise((a,e)=>{const t=document.querySelector('script[data-aikaara-razorpay="1"]');if(t){t.addEventListener("load",()=>a()),t.addEventListener("error",()=>e(new Error("checkout.js failed to load")));return}const r=document.createElement("script");r.src=hf,r.async=!0,r.dataset.aikaaraRazorpay="1",r.onload=()=>a(),r.onerror=()=>{Zt=null,e(new Error("checkout.js failed to load"))},document.head.appendChild(r)}),Zt)}function mf(a,e,t,r){if(!a)return Promise.resolve([]);const o=String(t||"GET").toUpperCase()==="POST"?"POST":"GET",n=a.includes("{orderId}")?a.replace("{orderId}",encodeURIComponent(e)):a+(a.includes("?")?"&":"?")+"orderId="+encodeURIComponent(e),i=Vr().__aikaara_runtime__??{};return(typeof i.getSessionToken=="function"?i.getSessionToken():typeof i.getChatJwt=="function"?i.getChatJwt():Promise.resolve(null)).then(l=>{const c={Accept:"application/json",...r??{}};l&&(c.Authorization=`Bearer ${l}`);const u={method:o,headers:c,credentials:"omit"};return o==="POST"&&(c["Content-Type"]="application/json",u.body=JSON.stringify({orderId:e})),fetch(n,u)}).then(l=>{if(!l.ok)throw new Error(`preferred-banks ${l.status}`);return l.json()}).then(l=>{const c=l,u=c?.data&&typeof c.data=="object"&&!Array.isArray(c.data)?c.data:null;return(Array.isArray(l)?l:Array.isArray(c?.banks)?c.banks:Array.isArray(c?.data)?c.data:Array.isArray(u?.preferredPaymentBank)?u.preferredPaymentBank:Array.isArray(u?.banks)?u.banks:[]).map(p=>{if(typeof p=="string")return p;if(p&&typeof p=="object"){const g=p;return g.code||g.bankCode||g.bank_code||null}return null}).filter(p=>!!p)})}function gf(a,e){if(!a)return;let t=document.querySelector("aikaara-link-modal");t||(t=document.createElement("aikaara-link-modal"),document.body.appendChild(t)),typeof t.show=="function"?t.show(a,e):window.open(a,"_blank","noopener,noreferrer")}function bf(){typeof customElements>"u"||customElements.get("aikaara-template-payment-link")||customElements.define("aikaara-template-payment-link",nc)}const yf=Object.freeze(Object.defineProperty({__proto__:null,AikaaraPaymentLink:nc,registerAikaaraPaymentLink:bf},Symbol.toStringTag,{value:"Module"}));class ic extends HTMLElement{shadow;payload=null;constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render()}setPayload(e){this.payload=e,this.render()}render(){const e=this.payload;this.shadow.innerHTML=`
1472
1472
  <style>
1473
1473
  :host { display: block; margin-top: 8px; }
1474
1474
  button {
package/dist/headless.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MountTenant-DeboVbWw.cjs");class s extends e.EventEmitter{registration=null;pendingEdits=[];constructor(t){super(),this.setupListeners(t)}registerForm(t){this.registration=t;const i=this.pendingEdits.filter(r=>r.entity_type===t.entityType&&String(r.entity_id)===String(t.entityId));if(i.length>0){for(const r of i)t.onFieldUpdate(r.fields),this.emit("edit:applied",{entityType:r.entity_type,entityId:r.entity_id,fields:r.fields});this.pendingEdits=this.pendingEdits.filter(r=>!(r.entity_type===t.entityType&&String(r.entity_id)===String(t.entityId)))}}unregisterForm(t,i){this.registration?.entityType===t&&String(this.registration?.entityId)===String(i)&&(this.registration=null)}get currentForm(){return this.registration}pushFieldUpdates(t,i,r){this.registration&&this.registration.entityType===t&&String(this.registration.entityId)===String(i)?(this.registration.onFieldUpdate(r),this.emit("edit:applied",{entityType:t,entityId:i,fields:r})):(this.pendingEdits.push({action:"edit_entity",entity_type:t,entity_id:i,fields:r}),this.emit("edit:pending",{entityType:t,entityId:i,fields:r}))}async requestSave(){if(!this.registration)return{success:!1,error:"No form registered"};try{return await this.registration.onSave(),this.emit("save:success",{entityType:this.registration.entityType,entityId:this.registration.entityId}),{success:!0}}catch(t){const i=t instanceof Error?t.message:"Save failed";return this.emit("save:error",{entityType:this.registration.entityType,entityId:this.registration.entityId,error:i}),{success:!1,error:i}}}async requestTest(t){if(!this.registration?.onTest)return{success:!1,error:"Current form does not support testing"};try{return await this.registration.onTest(t),{success:!0}}catch(i){return{success:!1,error:i instanceof Error?i.message:"Test failed"}}}setupListeners(t){t.on("action:edit_entity",i=>{this.pushFieldUpdates(i.entity_type,i.entity_id,i.fields)}),t.on("action:save_entity",i=>{this.requestSave()}),t.on("action:test_tool",i=>{this.emit("test:triggered",{toolId:i.tool_id,parameters:i.parameters}),this.requestTest(i.parameters)})}}exports.ActionCableClient=e.ActionCableClient;exports.AikaaraChatClient=e.AikaaraChatClient;exports.ApiClient=e.ApiClient;exports.ChannelSubscription=e.ChannelSubscription;exports.ConnectionManager=e.ConnectionManager;exports.ConversationManager=e.ConversationManager;exports.EventEmitter=e.EventEmitter;exports.MessageStore=e.MessageStore;exports.SessionAuthAdapter=e.SessionAuthAdapter;exports.SsoExchangeAdapter=e.SsoExchangeAdapter;exports.TiledeskTransport=e.TiledeskTransport;exports.TokenDiscoveryError=e.TokenDiscoveryError;exports.TokenDiscoveryReader=e.TokenDiscoveryReader;exports.clearPersistedConversationId=e.clearPersistedConversationId;exports.collectSsoCredentials=e.collectSsoCredentials;exports.createFetchUploadAdapter=e.createFetchUploadAdapter;exports.createPresigned3StepUploadAdapter=e.createPresigned3StepUploadAdapter;exports.createTiledeskHistoryAdapter=e.createTiledeskHistoryAdapter;exports.discoverToken=e.discoverToken;exports.extractTiledeskFileEnvelope=e.extractTiledeskFileEnvelope;exports.inferTiledeskRole=e.inferTiledeskRole;exports.isTiledeskSelfEcho=e.isTiledeskSelfEcho;exports.mountFromSlug=e.mountFromSlug;exports.mountTenantWidget=e.mount;exports.parseTiledeskTemplate=e.parseTiledeskTemplate;exports.runMethodSelectPreflight=e.runMethodSelectPreflight;exports.FormBridge=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MountTenant-LbcBXsS9.cjs");class s extends e.EventEmitter{registration=null;pendingEdits=[];constructor(t){super(),this.setupListeners(t)}registerForm(t){this.registration=t;const i=this.pendingEdits.filter(r=>r.entity_type===t.entityType&&String(r.entity_id)===String(t.entityId));if(i.length>0){for(const r of i)t.onFieldUpdate(r.fields),this.emit("edit:applied",{entityType:r.entity_type,entityId:r.entity_id,fields:r.fields});this.pendingEdits=this.pendingEdits.filter(r=>!(r.entity_type===t.entityType&&String(r.entity_id)===String(t.entityId)))}}unregisterForm(t,i){this.registration?.entityType===t&&String(this.registration?.entityId)===String(i)&&(this.registration=null)}get currentForm(){return this.registration}pushFieldUpdates(t,i,r){this.registration&&this.registration.entityType===t&&String(this.registration.entityId)===String(i)?(this.registration.onFieldUpdate(r),this.emit("edit:applied",{entityType:t,entityId:i,fields:r})):(this.pendingEdits.push({action:"edit_entity",entity_type:t,entity_id:i,fields:r}),this.emit("edit:pending",{entityType:t,entityId:i,fields:r}))}async requestSave(){if(!this.registration)return{success:!1,error:"No form registered"};try{return await this.registration.onSave(),this.emit("save:success",{entityType:this.registration.entityType,entityId:this.registration.entityId}),{success:!0}}catch(t){const i=t instanceof Error?t.message:"Save failed";return this.emit("save:error",{entityType:this.registration.entityType,entityId:this.registration.entityId,error:i}),{success:!1,error:i}}}async requestTest(t){if(!this.registration?.onTest)return{success:!1,error:"Current form does not support testing"};try{return await this.registration.onTest(t),{success:!0}}catch(i){return{success:!1,error:i instanceof Error?i.message:"Test failed"}}}setupListeners(t){t.on("action:edit_entity",i=>{this.pushFieldUpdates(i.entity_type,i.entity_id,i.fields)}),t.on("action:save_entity",i=>{this.requestSave()}),t.on("action:test_tool",i=>{this.emit("test:triggered",{toolId:i.tool_id,parameters:i.parameters}),this.requestTest(i.parameters)})}}exports.ActionCableClient=e.ActionCableClient;exports.AikaaraChatClient=e.AikaaraChatClient;exports.ApiClient=e.ApiClient;exports.ChannelSubscription=e.ChannelSubscription;exports.ConnectionManager=e.ConnectionManager;exports.ConversationManager=e.ConversationManager;exports.EventEmitter=e.EventEmitter;exports.MessageStore=e.MessageStore;exports.SessionAuthAdapter=e.SessionAuthAdapter;exports.SsoExchangeAdapter=e.SsoExchangeAdapter;exports.TiledeskTransport=e.TiledeskTransport;exports.TokenDiscoveryError=e.TokenDiscoveryError;exports.TokenDiscoveryReader=e.TokenDiscoveryReader;exports.clearPersistedConversationId=e.clearPersistedConversationId;exports.collectSsoCredentials=e.collectSsoCredentials;exports.createFetchUploadAdapter=e.createFetchUploadAdapter;exports.createPresigned3StepUploadAdapter=e.createPresigned3StepUploadAdapter;exports.createTiledeskHistoryAdapter=e.createTiledeskHistoryAdapter;exports.discoverToken=e.discoverToken;exports.extractTiledeskFileEnvelope=e.extractTiledeskFileEnvelope;exports.inferTiledeskRole=e.inferTiledeskRole;exports.isTiledeskSelfEcho=e.isTiledeskSelfEcho;exports.mountFromSlug=e.mountFromSlug;exports.mountTenantWidget=e.mount;exports.parseTiledeskTemplate=e.parseTiledeskTemplate;exports.runMethodSelectPreflight=e.runMethodSelectPreflight;exports.FormBridge=s;
package/dist/headless.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { E as s } from "./MountTenant-b6kTA3yk.mjs";
2
- import { A as p, b as l, k as g, C as c, l as h, m as y, M as u, S as m, n as f, T, o as S, p as _, q as v, s as E, t as C, u as F, v as k, w as A, x as I, y as x, z as U, B as q, D as M, F as b, G as w } from "./MountTenant-b6kTA3yk.mjs";
1
+ import { E as s } from "./MountTenant-DOYMoJu4.mjs";
2
+ import { A as p, b as l, k as g, C as c, l as h, m as y, M as u, S as m, n as f, T, o as S, p as _, q as v, s as E, t as C, u as F, v as k, w as A, x as I, y as x, z as U, B as q, D as M, F as b, G as w } from "./MountTenant-DOYMoJu4.mjs";
3
3
  class a extends s {
4
4
  registration = null;
5
5
  pendingEdits = [];
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MountTenant-DeboVbWw.cjs"),s=require("./headless.cjs");function l(a){e.registerComponents();const t=document.createElement("aikaara-chat-widget"),i={baseUrl:"base-url",userToken:"user-token",apiKey:"api-key",title:"title",subtitle:"subtitle",theme:"theme",primaryColor:"primary-color",position:"position",width:"width",height:"height",placeholder:"placeholder",welcomeMessage:"welcome-message",avatarUrl:"avatar-url"};for(const[o,n]of Object.entries(i)){const r=a[o];r!=null&&t.setAttribute(n,String(r))}return t.configure(a),document.body.appendChild(t),t}function d(){const a=document.querySelector("aikaara-chat-widget");a&&a.remove()}exports.ActionCableClient=e.ActionCableClient;exports.AikaaraChatBubble=e.AikaaraChatBubble;exports.AikaaraChatClient=e.AikaaraChatClient;exports.AikaaraChatHeader=e.AikaaraChatHeader;exports.AikaaraChatInput=e.AikaaraChatInput;exports.AikaaraChatWidget=e.AikaaraChatWidget;exports.AikaaraErrorBanner=e.AikaaraErrorBanner;exports.AikaaraMessageBubble=e.AikaaraMessageBubble;exports.AikaaraMessageList=e.AikaaraMessageList;exports.AikaaraStreamingMessage=e.AikaaraStreamingMessage;exports.AikaaraTypingIndicator=e.AikaaraTypingIndicator;exports.ApiClient=e.ApiClient;exports.ChannelSubscription=e.ChannelSubscription;exports.ConnectionManager=e.ConnectionManager;exports.ConversationManager=e.ConversationManager;exports.EventEmitter=e.EventEmitter;exports.MessageStore=e.MessageStore;exports.SessionAuthAdapter=e.SessionAuthAdapter;exports.SsoExchangeAdapter=e.SsoExchangeAdapter;exports.TiledeskTransport=e.TiledeskTransport;exports.TokenDiscoveryError=e.TokenDiscoveryError;exports.TokenDiscoveryReader=e.TokenDiscoveryReader;exports.clearPersistedConversationId=e.clearPersistedConversationId;exports.collectSsoCredentials=e.collectSsoCredentials;exports.createFetchUploadAdapter=e.createFetchUploadAdapter;exports.createPresigned3StepUploadAdapter=e.createPresigned3StepUploadAdapter;exports.createTiledeskHistoryAdapter=e.createTiledeskHistoryAdapter;exports.discoverToken=e.discoverToken;exports.extractTiledeskFileEnvelope=e.extractTiledeskFileEnvelope;exports.inferTiledeskRole=e.inferTiledeskRole;exports.isTiledeskSelfEcho=e.isTiledeskSelfEcho;exports.mountFromSlug=e.mountFromSlug;exports.mountTenantWidget=e.mount;exports.parseTiledeskTemplate=e.parseTiledeskTemplate;exports.registerComponents=e.registerComponents;exports.runMethodSelectPreflight=e.runMethodSelectPreflight;exports.FormBridge=s.FormBridge;exports.mount=l;exports.unmount=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MountTenant-LbcBXsS9.cjs"),s=require("./headless.cjs");function l(a){e.registerComponents();const t=document.createElement("aikaara-chat-widget"),i={baseUrl:"base-url",userToken:"user-token",apiKey:"api-key",title:"title",subtitle:"subtitle",theme:"theme",primaryColor:"primary-color",position:"position",width:"width",height:"height",placeholder:"placeholder",welcomeMessage:"welcome-message",avatarUrl:"avatar-url"};for(const[o,n]of Object.entries(i)){const r=a[o];r!=null&&t.setAttribute(n,String(r))}return t.configure(a),document.body.appendChild(t),t}function d(){const a=document.querySelector("aikaara-chat-widget");a&&a.remove()}exports.ActionCableClient=e.ActionCableClient;exports.AikaaraChatBubble=e.AikaaraChatBubble;exports.AikaaraChatClient=e.AikaaraChatClient;exports.AikaaraChatHeader=e.AikaaraChatHeader;exports.AikaaraChatInput=e.AikaaraChatInput;exports.AikaaraChatWidget=e.AikaaraChatWidget;exports.AikaaraErrorBanner=e.AikaaraErrorBanner;exports.AikaaraMessageBubble=e.AikaaraMessageBubble;exports.AikaaraMessageList=e.AikaaraMessageList;exports.AikaaraStreamingMessage=e.AikaaraStreamingMessage;exports.AikaaraTypingIndicator=e.AikaaraTypingIndicator;exports.ApiClient=e.ApiClient;exports.ChannelSubscription=e.ChannelSubscription;exports.ConnectionManager=e.ConnectionManager;exports.ConversationManager=e.ConversationManager;exports.EventEmitter=e.EventEmitter;exports.MessageStore=e.MessageStore;exports.SessionAuthAdapter=e.SessionAuthAdapter;exports.SsoExchangeAdapter=e.SsoExchangeAdapter;exports.TiledeskTransport=e.TiledeskTransport;exports.TokenDiscoveryError=e.TokenDiscoveryError;exports.TokenDiscoveryReader=e.TokenDiscoveryReader;exports.clearPersistedConversationId=e.clearPersistedConversationId;exports.collectSsoCredentials=e.collectSsoCredentials;exports.createFetchUploadAdapter=e.createFetchUploadAdapter;exports.createPresigned3StepUploadAdapter=e.createPresigned3StepUploadAdapter;exports.createTiledeskHistoryAdapter=e.createTiledeskHistoryAdapter;exports.discoverToken=e.discoverToken;exports.extractTiledeskFileEnvelope=e.extractTiledeskFileEnvelope;exports.inferTiledeskRole=e.inferTiledeskRole;exports.isTiledeskSelfEcho=e.isTiledeskSelfEcho;exports.mountFromSlug=e.mountFromSlug;exports.mountTenantWidget=e.mount;exports.parseTiledeskTemplate=e.parseTiledeskTemplate;exports.registerComponents=e.registerComponents;exports.runMethodSelectPreflight=e.runMethodSelectPreflight;exports.FormBridge=s.FormBridge;exports.mount=l;exports.unmount=d;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { r as o } from "./MountTenant-b6kTA3yk.mjs";
2
- import { A as u, a as m, b as g, c as h, d as k, e as A, f as C, g as T, h as b, i as f, j as v, k as S, C as y, l as M, m as w, E, M as x, S as B, n as F, T as U, o as D, p as I, q as P, s as j, t as q, u as H, v as R, w as W, x as z, y as G, z as K, B as L, D as O, F as J, G as N } from "./MountTenant-b6kTA3yk.mjs";
1
+ import { r as o } from "./MountTenant-DOYMoJu4.mjs";
2
+ import { A as u, a as m, b as g, c as h, d as k, e as A, f as C, g as T, h as b, i as f, j as v, k as S, C as y, l as M, m as w, E, M as x, S as B, n as F, T as U, o as D, p as I, q as P, s as j, t as q, u as H, v as R, w as W, x as z, y as G, z as K, B as L, D as O, F as J, G as N } from "./MountTenant-DOYMoJu4.mjs";
3
3
  import { FormBridge as V } from "./headless.mjs";
4
4
  function l(e) {
5
5
  o();
package/dist/ui.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./MountTenant-DeboVbWw.cjs");exports.AikaaraChat=a.AikaaraChat;exports.AikaaraChatBubble=a.AikaaraChatBubble;exports.AikaaraChatHeader=a.AikaaraChatHeader;exports.AikaaraChatInput=a.AikaaraChatInput;exports.AikaaraChatWidget=a.AikaaraChatWidget;exports.AikaaraComparePlans=a.AikaaraComparePlans;exports.AikaaraErrorBanner=a.AikaaraErrorBanner;exports.AikaaraLinkModal=a.AikaaraLinkModal;exports.AikaaraMessageBubble=a.AikaaraMessageBubble;exports.AikaaraMessageList=a.AikaaraMessageList;exports.AikaaraModalAction=a.AikaaraModalAction;exports.AikaaraOptionList=a.AikaaraOptionList;exports.AikaaraSchemaForm=a.AikaaraSchemaForm;exports.AikaaraSmartEditModal=a.AikaaraSmartEditModal;exports.AikaaraStreamingMessage=a.AikaaraStreamingMessage;exports.AikaaraSubmitAction=a.AikaaraSubmitAction;exports.AikaaraSystemPill=a.AikaaraSystemPill;exports.AikaaraTemplateRenderer=a.AikaaraTemplateRenderer;exports.AikaaraTypingIndicator=a.AikaaraTypingIndicator;exports.registerComponents=a.registerComponents;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./MountTenant-LbcBXsS9.cjs");exports.AikaaraChat=a.AikaaraChat;exports.AikaaraChatBubble=a.AikaaraChatBubble;exports.AikaaraChatHeader=a.AikaaraChatHeader;exports.AikaaraChatInput=a.AikaaraChatInput;exports.AikaaraChatWidget=a.AikaaraChatWidget;exports.AikaaraComparePlans=a.AikaaraComparePlans;exports.AikaaraErrorBanner=a.AikaaraErrorBanner;exports.AikaaraLinkModal=a.AikaaraLinkModal;exports.AikaaraMessageBubble=a.AikaaraMessageBubble;exports.AikaaraMessageList=a.AikaaraMessageList;exports.AikaaraModalAction=a.AikaaraModalAction;exports.AikaaraOptionList=a.AikaaraOptionList;exports.AikaaraSchemaForm=a.AikaaraSchemaForm;exports.AikaaraSmartEditModal=a.AikaaraSmartEditModal;exports.AikaaraStreamingMessage=a.AikaaraStreamingMessage;exports.AikaaraSubmitAction=a.AikaaraSubmitAction;exports.AikaaraSystemPill=a.AikaaraSystemPill;exports.AikaaraTemplateRenderer=a.AikaaraTemplateRenderer;exports.AikaaraTypingIndicator=a.AikaaraTypingIndicator;exports.registerComponents=a.registerComponents;
package/dist/ui.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { I as i, a as s, c as e, d as t, e as A, J as k, f as n, K as o, g as m, h as d, L as l, N as g, O as h, P as p, i as C, Q as M, R as b, U as c, j as S, r as u } from "./MountTenant-b6kTA3yk.mjs";
1
+ import { I as i, a as s, c as e, d as t, e as A, J as k, f as n, K as o, g as m, h as d, L as l, N as g, O as h, P as p, i as C, Q as M, R as b, U as c, j as S, r as u } from "./MountTenant-DOYMoJu4.mjs";
2
2
  export {
3
3
  i as AikaaraChat,
4
4
  s as AikaaraChatBubble,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aikaara/chat-sdk",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
4
4
  "type": "module",
5
5
  "description": "Aikaara Chat SDK — embeddable chat widget and headless client",
6
6
  "license": "MIT",