@useago/sdk 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/widget.js CHANGED
@@ -1,70 +1,70 @@
1
- import { t as Ze, u as Je } from "./AgoClient-DYdIe_R4.js";
2
- import { r as et, t as tt } from "./createFormCollector-BwM7qTrp.js";
3
- import { t as nt } from "./createConversationSession-CCT1hCf8.js";
4
- var ot = {
1
+ import { t as ot, u as rt } from "./AgoClient-QcTtrN7u.js";
2
+ import { r as at, t as st } from "./createFormCollector-CFt1_QSL.js";
3
+ import { t as it } from "./createConversationSession-CR-71aLR.js";
4
+ var lt = {
5
5
  "&": "&",
6
6
  "<": "&lt;",
7
7
  ">": "&gt;",
8
8
  '"': "&quot;",
9
9
  "'": "&#39;"
10
10
  };
11
- function U(o) {
12
- return o.replace(/[&<>"']/g, (n) => ot[n]);
11
+ function U(r) {
12
+ return r.replace(/[&<>"']/g, (o) => lt[o]);
13
13
  }
14
- function Ne(o) {
15
- const n = o.trim();
16
- return /^(https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(n) || !/^[a-z][a-z0-9+.-]*:/i.test(n) ? n : null;
14
+ function Oe(r) {
15
+ const o = r.trim();
16
+ return /^(https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(o) || !/^[a-z][a-z0-9+.-]*:/i.test(o) ? o : null;
17
17
  }
18
- var Me = '"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace', Q = "";
19
- function B(o) {
20
- const n = [], a = (u) => (n.push(u), `${Q}${n.length - 1}${Q}`);
21
- let t = o;
22
- return t = t.replace(/`([^`]+)`/g, (u, i) => a(`<code style="background:#f0f2f5;padding:2px 5px;border-radius:4px;font-size:13px;font-family:${Me}">${U(i)}</code>`)), t = t.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g, (u, i, f) => {
23
- const l = Ne(f);
18
+ var ze = '"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace', Z = "";
19
+ function M(r) {
20
+ const o = [], a = (u) => (o.push(u), `${Z}${o.length - 1}${Z}`);
21
+ let t = r;
22
+ return t = t.replace(/`([^`]+)`/g, (u, i) => a(`<code style="background:#f0f2f5;padding:2px 5px;border-radius:4px;font-size:13px;font-family:${ze}">${U(i)}</code>`)), t = t.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g, (u, i, f) => {
23
+ const l = Oe(f);
24
24
  return l ? a(`<img alt="${U(i)}" src="${U(l)}" style="max-width:100%;border-radius:8px;margin:4px 0" />`) : u;
25
25
  }), t = t.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (u, i, f) => {
26
- const l = Ne(f);
27
- return l ? a(`<a href="${U(l)}" target="_blank" rel="noopener noreferrer" style="color:#1b5fc4;text-decoration:underline">${B(i)}</a>`) : u;
28
- }), t = U(t), t = t.replace(/\*\*([^*]+?)\*\*/g, "<strong>$1</strong>").replace(/__([^_]+?)__/g, "<strong>$1</strong>").replace(/~~([^~]+?)~~/g, "<del>$1</del>").replace(/(^|[^*])\*(?!\s)([^*]+?)\*/g, "$1<em>$2</em>").replace(/(^|[^\w_])_(?!\s)([^_]+?)_/g, "$1<em>$2</em>"), t = t.replace(new RegExp(`${Q}(\\d+)${Q}`, "g"), (u, i) => n[Number(i)]), t;
26
+ const l = Oe(f);
27
+ return l ? a(`<a href="${U(l)}" target="_blank" rel="noopener noreferrer" style="color:#1b5fc4;text-decoration:underline">${M(i)}</a>`) : u;
28
+ }), t = U(t), t = t.replace(/\*\*([^*]+?)\*\*/g, "<strong>$1</strong>").replace(/__([^_]+?)__/g, "<strong>$1</strong>").replace(/~~([^~]+?)~~/g, "<del>$1</del>").replace(/(^|[^*])\*(?!\s)([^*]+?)\*/g, "$1<em>$2</em>").replace(/(^|[^\w_])_(?!\s)([^_]+?)_/g, "$1<em>$2</em>"), t = t.replace(new RegExp(`${Z}(\\d+)${Z}`, "g"), (u, i) => o[Number(i)]), t;
29
29
  }
30
- function R(o, n, a) {
31
- const t = document.createElement(o);
32
- return Object.assign(t.style, n), a !== void 0 && (t.innerHTML = a), t;
30
+ function R(r, o, a) {
31
+ const t = document.createElement(r);
32
+ return Object.assign(t.style, o), a !== void 0 && (t.innerHTML = a), t;
33
33
  }
34
- var Be = /^ {0,3}([-*_])( *\1){2,} *$/, ze = /^ {0,3}(#{1,6})\s+(.*?)\s*#*\s*$/, Fe = /^ {0,3}(```+|~~~+)/, Z = /^ {0,3}>\s?/, W = /^(\s*)([-*+]|\d+[.)])\s+(.*)$/, rt = [
34
+ var He = /^ {0,3}([-*_])( *\1){2,} *$/, Ue = /^ {0,3}(#{1,6})\s+(.*?)\s*#*\s*$/, We = /^ {0,3}(```+|~~~+)/, ee = /^ {0,3}>\s?/, W = /^(\s*)([-*+]|\d+[.)])\s+(.*)$/, dt = [
35
35
  "20px",
36
36
  "18px",
37
37
  "16px",
38
38
  "15px",
39
39
  "14px",
40
40
  "13px"
41
- ], ue = (o) => o.match(/^\s*/)?.[0].length ?? 0;
42
- function at(o) {
43
- return o.trim() === "" || Be.test(o) || ze.test(o) || Fe.test(o) || Z.test(o) || W.test(o);
41
+ ], me = (r) => r.match(/^\s*/)?.[0].length ?? 0;
42
+ function ct(r) {
43
+ return r.trim() === "" || He.test(r) || Ue.test(r) || We.test(r) || ee.test(r) || W.test(r);
44
44
  }
45
- function He(o) {
46
- const n = o[0].match(W), a = n[1].length, t = /\d/.test(n[2]), u = R(t ? "ol" : "ul", {
45
+ function Pe(r) {
46
+ const o = r[0].match(W), a = o[1].length, t = /\d/.test(o[2]), u = R(t ? "ol" : "ul", {
47
47
  margin: "0 0 8px 0",
48
48
  paddingLeft: "20px",
49
49
  listStyleType: t ? "decimal" : "disc",
50
50
  listStylePosition: "outside"
51
51
  });
52
52
  let i = 0;
53
- for (; i < o.length; ) {
54
- const f = o[i].match(W), l = [];
55
- for (i++; i < o.length && ue(o[i]) > a; )
56
- l.push(o[i]), i++;
53
+ for (; i < r.length; ) {
54
+ const f = r[i].match(W), l = [];
55
+ for (i++; i < r.length && me(r[i]) > a; )
56
+ l.push(r[i]), i++;
57
57
  const p = R("li", {
58
58
  display: "list-item",
59
59
  margin: "2px 0",
60
60
  lineHeight: "1.6"
61
61
  }), c = f[3].match(/^\[([ xX])\]\s+(.*)$/);
62
- c ? (p.style.listStyleType = "none", p.style.marginLeft = "-20px", p.innerHTML = `<span style="margin-right:6px">${c[1].toLowerCase() === "x" ? "☑" : "☐"}</span>${B(c[2])}`) : p.innerHTML = B(f[3]), l.filter((g) => W.test(g)).length > 0 && p.appendChild(He(l.filter((g) => g.trim() !== ""))), u.appendChild(p);
62
+ c ? (p.style.listStyleType = "none", p.style.marginLeft = "-20px", p.innerHTML = `<span style="margin-right:6px">${c[1].toLowerCase() === "x" ? "☑" : "☐"}</span>${M(c[2])}`) : p.innerHTML = M(f[3]), l.filter((h) => W.test(h)).length > 0 && p.appendChild(Pe(l.filter((h) => h.trim() !== ""))), u.appendChild(p);
63
63
  }
64
64
  return u;
65
65
  }
66
- function st(o) {
67
- const n = (l) => l.replace(/^\s*\|?/, "").replace(/\|?\s*$/, "").split("|").map((p) => p.trim()), a = R("div", {
66
+ function pt(r) {
67
+ const o = (l) => l.replace(/^\s*\|?/, "").replace(/\|?\s*$/, "").split("|").map((p) => p.trim()), a = R("div", {
68
68
  overflowX: "auto",
69
69
  margin: "0 0 8px 0"
70
70
  }), t = R("table", {
@@ -72,28 +72,28 @@ function st(o) {
72
72
  width: "100%",
73
73
  fontSize: "13px"
74
74
  }), u = document.createElement("thead"), i = document.createElement("tr");
75
- for (const l of n(o[0])) i.appendChild(R("th", {
75
+ for (const l of o(r[0])) i.appendChild(R("th", {
76
76
  border: "1px solid #dee3e8",
77
77
  padding: "6px 10px",
78
78
  textAlign: "left",
79
79
  backgroundColor: "#f5f7fa",
80
80
  fontWeight: "600"
81
- }, B(l)));
81
+ }, M(l)));
82
82
  u.appendChild(i), t.appendChild(u);
83
83
  const f = document.createElement("tbody");
84
- for (const l of o.slice(2)) {
84
+ for (const l of r.slice(2)) {
85
85
  const p = document.createElement("tr");
86
- for (const c of n(l)) p.appendChild(R("td", {
86
+ for (const c of o(l)) p.appendChild(R("td", {
87
87
  border: "1px solid #dee3e8",
88
88
  padding: "6px 10px"
89
- }, B(c)));
89
+ }, M(c)));
90
90
  f.appendChild(p);
91
91
  }
92
92
  return t.appendChild(f), a.appendChild(t), a;
93
93
  }
94
- var it = (o) => !!o && /^\s*\|?\s*:?-{1,}:?\s*(\|\s*:?-{1,}:?\s*)*\|?\s*$/.test(o);
95
- function ge(o) {
96
- const n = document.createDocumentFragment(), a = o.replace(/\r\n?/g, `
94
+ var ft = (r) => !!r && /^\s*\|?\s*:?-{1,}:?\s*(\|\s*:?-{1,}:?\s*)*\|?\s*$/.test(r);
95
+ function he(r) {
96
+ const o = document.createDocumentFragment(), a = r.replace(/\r\n?/g, `
97
97
  `).split(`
98
98
  `);
99
99
  let t = 0;
@@ -103,88 +103,88 @@ function ge(o) {
103
103
  t++;
104
104
  continue;
105
105
  }
106
- const f = i.match(Fe);
106
+ const f = i.match(We);
107
107
  if (f) {
108
- const c = f[1][0], g = [];
108
+ const c = f[1][0], h = [];
109
109
  for (t++; t < a.length && !new RegExp(`^ {0,3}${c === "`" ? "`{3,}" : "~{3,}"}\\s*$`).test(a[t]); )
110
- g.push(a[t]), t++;
110
+ h.push(a[t]), t++;
111
111
  t++;
112
- const T = R("pre", { margin: "0 0 8px 0" });
113
- T.appendChild(R("code", {
112
+ const N = R("pre", { margin: "0 0 8px 0" });
113
+ N.appendChild(R("code", {
114
114
  display: "block",
115
115
  background: "#f5f5f5",
116
116
  padding: "8px 12px",
117
117
  borderRadius: "6px",
118
118
  fontSize: "13px",
119
119
  overflowX: "auto",
120
- fontFamily: Me,
120
+ fontFamily: ze,
121
121
  whiteSpace: "pre"
122
- }, U(g.join(`
123
- `)))), n.appendChild(T);
122
+ }, U(h.join(`
123
+ `)))), o.appendChild(N);
124
124
  continue;
125
125
  }
126
- if (Be.test(i)) {
127
- n.appendChild(R("hr", {
126
+ if (He.test(i)) {
127
+ o.appendChild(R("hr", {
128
128
  border: "none",
129
129
  borderTop: "1px solid #dee3e8",
130
130
  margin: "12px 0"
131
131
  })), t++;
132
132
  continue;
133
133
  }
134
- const l = i.match(ze);
134
+ const l = i.match(Ue);
135
135
  if (l) {
136
136
  const c = l[1].length;
137
- n.appendChild(R(`h${c}`, {
137
+ o.appendChild(R(`h${c}`, {
138
138
  margin: "16px 0 8px 0",
139
- fontSize: rt[c - 1],
139
+ fontSize: dt[c - 1],
140
140
  fontWeight: "600",
141
141
  lineHeight: "1.3"
142
- }, B(l[2]))), t++;
142
+ }, M(l[2]))), t++;
143
143
  continue;
144
144
  }
145
- if (Z.test(i)) {
145
+ if (ee.test(i)) {
146
146
  const c = [];
147
- for (; t < a.length && Z.test(a[t]); )
148
- c.push(a[t].replace(Z, "")), t++;
149
- const g = R("blockquote", {
147
+ for (; t < a.length && ee.test(a[t]); )
148
+ c.push(a[t].replace(ee, "")), t++;
149
+ const h = R("blockquote", {
150
150
  borderLeft: "4px solid #dee3e8",
151
151
  paddingLeft: "12px",
152
152
  margin: "0 0 8px 0",
153
153
  fontStyle: "italic",
154
154
  color: "#6b6d6f"
155
155
  });
156
- g.appendChild(ge(c.join(`
157
- `))), n.appendChild(g);
156
+ h.appendChild(he(c.join(`
157
+ `))), o.appendChild(h);
158
158
  continue;
159
159
  }
160
- if (i.includes("|") && it(a[t + 1])) {
160
+ if (i.includes("|") && ft(a[t + 1])) {
161
161
  const c = [i, a[t + 1]];
162
162
  for (t += 2; t < a.length && a[t].includes("|") && a[t].trim(); )
163
163
  c.push(a[t]), t++;
164
- n.appendChild(st(c));
164
+ o.appendChild(pt(c));
165
165
  continue;
166
166
  }
167
167
  if (W.test(i)) {
168
- const c = [], g = ue(i);
168
+ const c = [], h = me(i);
169
169
  for (; t < a.length && a[t].trim() !== ""; )
170
- if (W.test(a[t]) || ue(a[t]) > g)
170
+ if (W.test(a[t]) || me(a[t]) > h)
171
171
  c.push(a[t]), t++;
172
172
  else break;
173
- n.appendChild(He(c));
173
+ o.appendChild(Pe(c));
174
174
  continue;
175
175
  }
176
176
  const p = [i];
177
- for (t++; t < a.length && !at(a[t]); )
177
+ for (t++; t < a.length && !ct(a[t]); )
178
178
  p.push(a[t]), t++;
179
- n.appendChild(R("p", {
179
+ o.appendChild(R("p", {
180
180
  margin: "0 0 8px 0",
181
181
  lineHeight: "1.6"
182
- }, p.map((c) => B(c)).join("<br>")));
182
+ }, p.map((c) => M(c)).join("<br>")));
183
183
  }
184
- const u = n.lastElementChild;
185
- return u && (u.style.marginBottom = "0"), n;
184
+ const u = o.lastElementChild;
185
+ return u && (u.style.marginBottom = "0"), o;
186
186
  }
187
- var me = 'var(--ago-font, "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)', Te = {
187
+ var xe = 'var(--ago-font, "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)', De = {
188
188
  font: "--ago-font",
189
189
  radius: "--ago-radius",
190
190
  messageRadius: "--ago-message-radius",
@@ -197,29 +197,30 @@ var me = 'var(--ago-font, "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "S
197
197
  text: "--ago-text-color",
198
198
  mutedText: "--ago-muted-text-color",
199
199
  border: "--ago-border-color",
200
- accent: "--ago-accent-color"
201
- }, he = "var(--ago-brand-color, #03182f)", xe = "var(--ago-brand-text-color, #fff)", lt = "var(--ago-header-background, var(--ago-brand-color, #03182f))", Le = "var(--ago-header-text-color, #e8f0fe)", j = "var(--ago-panel-background, #fff)", dt = "var(--ago-messages-background, #fbfbfb)", Y = "var(--ago-text-color, #30373e)", ct = "var(--ago-muted-text-color, #6b6d6f)", I = "var(--ago-border-color, #dee3e8)", pe = "var(--ago-accent-color, #1b5fc4)", pt = "var(--ago-radius, 16px)", fe = "var(--ago-message-radius, 16px)";
202
- function ft(o, n) {
203
- if (n)
204
- for (const a of Object.keys(Te)) {
205
- const t = n[a];
206
- t != null && o.style.setProperty(Te[a], t);
200
+ accent: "--ago-accent-color",
201
+ agentBubbleBg: "--ago-agent-bubble-background"
202
+ }, be = "var(--ago-brand-color, #03182f)", Ce = "var(--ago-brand-text-color, #fff)", ut = "var(--ago-header-background, var(--ago-brand-color, #03182f))", Be = "var(--ago-header-text-color, #e8f0fe)", K = "var(--ago-panel-background, #fff)", gt = "var(--ago-messages-background, #fbfbfb)", J = "var(--ago-text-color, #30373e)", mt = "var(--ago-muted-text-color, #6b6d6f)", A = "var(--ago-border-color, #dee3e8)", ue = "var(--ago-accent-color, #1b5fc4)", ht = "var(--ago-agent-bubble-background, #f1f3f5)", xt = "var(--ago-radius, 16px)", ge = "var(--ago-message-radius, 16px)";
203
+ function bt(r, o) {
204
+ if (o)
205
+ for (const a of Object.keys(De)) {
206
+ const t = o[a];
207
+ t != null && r.style.setProperty(De[a], t);
207
208
  }
208
209
  }
209
- function w(o, n) {
210
- Object.assign(o.style, n);
210
+ function E(r, o) {
211
+ Object.assign(r.style, o);
211
212
  }
212
- function x(o = {}) {
213
- const n = document.createElement("div");
214
- return w(n, o), n;
213
+ function b(r = {}) {
214
+ const o = document.createElement("div");
215
+ return E(o, r), o;
215
216
  }
216
- var Oe = "Form submitted.";
217
- function ut(o) {
218
- if (typeof o == "string") return o || null;
219
- if (!o || typeof o != "object") return null;
220
- const n = o;
221
- if (typeof n.message == "string" && n.message) return n.message;
222
- const a = n.result;
217
+ var Me = "Form submitted.";
218
+ function Ct(r) {
219
+ if (typeof r == "string") return r || null;
220
+ if (!r || typeof r != "object") return null;
221
+ const o = r;
222
+ if (typeof o.message == "string" && o.message) return o.message;
223
+ const a = o.result;
223
224
  if (typeof a == "string" && a) return a;
224
225
  if (a && typeof a == "object") {
225
226
  const t = a.message;
@@ -227,166 +228,168 @@ function ut(o) {
227
228
  }
228
229
  return null;
229
230
  }
230
- var De = "ago-chat-widget-keyframes";
231
- function gt() {
232
- if (typeof document > "u" || document.getElementById(De)) return;
233
- const o = document.createElement("style");
234
- o.id = De, o.textContent = "@keyframes ago-pulse { 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } 40% { opacity: 1; transform: scale(1); } }", document.head.appendChild(o);
231
+ var Fe = "ago-chat-widget-keyframes";
232
+ function yt() {
233
+ if (typeof document > "u" || document.getElementById(Fe)) return;
234
+ const r = document.createElement("style");
235
+ r.id = Fe, r.textContent = "@keyframes ago-pulse { 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } 40% { opacity: 1; transform: scale(1); } }", document.head.appendChild(r);
235
236
  }
236
- function mt(o) {
237
- const n = typeof o == "string" ? document.querySelector(o) : o;
238
- if (!n) throw new Error(`mountChatWidget: target "${String(o)}" not found.`);
239
- return n;
237
+ function vt(r) {
238
+ const o = typeof r == "string" ? document.querySelector(r) : r;
239
+ if (!o) throw new Error(`mountChatWidget: target "${String(r)}" not found.`);
240
+ return o;
240
241
  }
241
- function yt(o, n) {
242
- const { title: a = "Chat", welcomeMessage: t = "Hello! How can I help you today?", placeholder: u = "Type a message...", allowFiles: i = !1, height: f = 500, placement: l = "inline", width: p = 400, defaultOpen: c = !1, logoUrl: g, showAgentName: T = !1, theme: m, loadThreads: _ = !1, forms: X, formSubmittedMessage: L = Oe, onFollowUpClick: $, onMessageSent: be, onMessageReceived: J } = n;
243
- if (!n.client && !n.config?.baseUrl) throw new Je("mountChatWidget requires either `client` or `config` (with a baseUrl).", "config_missing_base_url");
244
- const b = n.client ?? new Ze(n.config), Ce = mt(o), z = l === "left" || l === "right", Ue = z && (n.launcher ?? !0);
245
- let F = z ? c : !0;
246
- const ee = n.persistConversation, K = ee ? nt(ee === !0 ? {} : ee) : void 0;
247
- let k = n.conversationId ?? K?.getLastActiveThread() ?? void 0, d = [], O = !1, P = null;
248
- const ye = [];
249
- function We(e) {
250
- if (typeof L == "function") {
251
- const s = L(e);
242
+ function _t(r, o) {
243
+ const { title: a = "Chat", welcomeMessage: t = "Hello! How can I help you today?", placeholder: u = "Type a message...", allowFiles: i = !1, height: f = 500, placement: l = "inline", width: p = 400, defaultOpen: c = !1, logoUrl: h, showAgentName: N = !1, agentBubble: g = !1, showHeader: I = !0, theme: q, loadThreads: P = !1, forms: T, formSubmittedMessage: G = Me, onFollowUpClick: j, onMessageSent: Ge, onMessageReceived: je, onFormSubmitted: te, onFormError: ne } = o;
244
+ if (!o.client && !o.config?.baseUrl) throw new rt("mountChatWidget requires either `client` or `config` (with a baseUrl).", "config_missing_base_url");
245
+ const m = o.client ?? new ot(o.config), ye = vt(r), F = l === "left" || l === "right", Xe = F && (o.launcher ?? !0);
246
+ let z = F ? c : !0;
247
+ const oe = o.persistConversation, V = oe ? it(oe === !0 ? {} : oe) : void 0;
248
+ let _ = o.conversationId ?? V?.getLastActiveThread() ?? void 0, d = [], L = !1, X = null;
249
+ const ve = [];
250
+ function Ke(e) {
251
+ if (typeof G == "function") {
252
+ const s = G(e);
252
253
  if (typeof s == "string" && s) return s;
253
254
  }
254
- const r = ut(e);
255
- return r || (typeof L == "string" ? L : Oe);
255
+ const n = Ct(e);
256
+ return n || (typeof G == "string" ? G : Me);
256
257
  }
257
- const q = [], H = x({
258
+ const Q = [], H = b({
258
259
  display: "flex",
259
260
  flexDirection: "column",
260
- height: z ? "100%" : typeof f == "number" ? `${f}px` : f,
261
- border: `1px solid ${I}`,
262
- borderRadius: pt,
261
+ height: F ? "100%" : typeof f == "number" ? `${f}px` : f,
262
+ border: `1px solid ${A}`,
263
+ borderRadius: xt,
263
264
  overflow: "hidden",
264
- backgroundColor: j,
265
- fontFamily: me,
265
+ backgroundColor: K,
266
+ fontFamily: xe,
266
267
  textAlign: "left",
267
268
  boxShadow: "rgba(15, 15, 15, 0.08) 0px 2px 16px 0px"
268
269
  });
269
- H.className = "ago-chat-widget", ft(H, m);
270
- const G = x({
271
- padding: "14px 16px",
272
- borderBottom: `1px solid ${I}`,
273
- backgroundColor: lt,
274
- color: Le,
275
- display: "flex",
276
- alignItems: "center",
277
- gap: "10px"
278
- });
279
- if (G.className = "ago-chat-widget__header", g) {
280
- const e = document.createElement("img");
281
- e.src = g, e.alt = "Logo", w(e, {
282
- height: "24px",
283
- width: "auto"
284
- }), G.appendChild(e);
285
- }
286
- const te = document.createElement("h3");
287
- if (te.textContent = a, w(te, {
288
- margin: "0",
289
- fontSize: "15px",
290
- fontWeight: "600"
291
- }), G.appendChild(te), z) {
292
- const e = document.createElement("button");
293
- e.type = "button", e.className = "ago-chat-widget__close", e.setAttribute("aria-label", "Close"), e.textContent = "×", w(e, {
294
- marginLeft: "auto",
295
- background: "transparent",
296
- border: "none",
297
- color: Le,
298
- fontSize: "22px",
299
- lineHeight: "1",
300
- cursor: "pointer",
301
- padding: "0 2px"
302
- }), e.addEventListener("click", () => de()), G.appendChild(e);
270
+ H.className = "ago-chat-widget", bt(H, q);
271
+ let O;
272
+ if (I) {
273
+ if (O = b({
274
+ padding: "14px 16px",
275
+ borderBottom: `1px solid ${A}`,
276
+ backgroundColor: ut,
277
+ color: Be,
278
+ display: "flex",
279
+ alignItems: "center",
280
+ gap: "10px"
281
+ }), O.className = "ago-chat-widget__header", h) {
282
+ const n = document.createElement("img");
283
+ n.src = h, n.alt = "Logo", E(n, {
284
+ height: "24px",
285
+ width: "auto"
286
+ }), O.appendChild(n);
287
+ }
288
+ const e = document.createElement("h3");
289
+ if (e.textContent = a, E(e, {
290
+ margin: "0",
291
+ fontSize: "15px",
292
+ fontWeight: "600"
293
+ }), O.appendChild(e), F) {
294
+ const n = document.createElement("button");
295
+ n.type = "button", n.className = "ago-chat-widget__close", n.setAttribute("aria-label", "Close"), n.textContent = "×", E(n, {
296
+ marginLeft: "auto",
297
+ background: "transparent",
298
+ border: "none",
299
+ color: Be,
300
+ fontSize: "22px",
301
+ lineHeight: "1",
302
+ cursor: "pointer",
303
+ padding: "0 2px"
304
+ }), n.addEventListener("click", () => pe()), O.appendChild(n);
305
+ }
303
306
  }
304
- const N = x({
307
+ const $ = b({
305
308
  flex: "1",
306
309
  overflow: "auto",
307
310
  padding: "16px",
308
- backgroundColor: dt
311
+ backgroundColor: gt
309
312
  });
310
- N.className = "ago-chat-widget__messages";
311
- const { inputRow: Pe, setDisabled: Ge, focus: ne } = ht({
313
+ $.className = "ago-chat-widget__messages";
314
+ const { inputRow: qe, setDisabled: Ve, focus: re } = Et({
312
315
  placeholder: u,
313
316
  allowFiles: i,
314
- onSend: (e, r) => {
315
- ae(e, r);
317
+ onSend: (e, n) => {
318
+ ie(e, n);
316
319
  }
317
320
  });
318
- gt(), H.append(G, N, Pe);
319
- let V = H, D, S;
320
- const oe = l === "left" ? "left" : "right";
321
- if (z && (D = x({
321
+ yt(), H.append(...O ? [O] : [], $, qe);
322
+ let Y = H, D, S;
323
+ const ae = l === "left" ? "left" : "right";
324
+ if (F && (D = b({
322
325
  position: "fixed",
323
326
  top: "0",
324
327
  bottom: "0",
325
- [oe]: "0",
328
+ [ae]: "0",
326
329
  width: typeof p == "number" ? `${p}px` : p,
327
330
  maxWidth: "100vw",
328
331
  display: "flex",
329
332
  zIndex: "2147483000",
330
333
  transition: "transform 0.3s ease",
331
334
  boxShadow: "rgba(15, 15, 15, 0.18) 0px 0px 24px 0px"
332
- }), D.className = "ago-chat-widget-panel", w(H, {
335
+ }), D.className = "ago-chat-widget-panel", E(H, {
333
336
  height: "100%",
334
337
  width: "100%",
335
338
  borderRadius: "0",
336
339
  border: "none",
337
340
  boxShadow: "none",
338
- [oe === "left" ? "borderRight" : "borderLeft"]: `1px solid ${I}`
339
- }), D.appendChild(H), V = D), Ue) {
340
- if (S = document.createElement("button"), S.type = "button", S.className = "ago-chat-widget-launcher", S.setAttribute("aria-label", `Open ${a}`), w(S, {
341
+ [ae === "left" ? "borderRight" : "borderLeft"]: `1px solid ${A}`
342
+ }), D.appendChild(H), Y = D), Xe) {
343
+ if (S = document.createElement("button"), S.type = "button", S.className = "ago-chat-widget-launcher", S.setAttribute("aria-label", `Open ${a}`), E(S, {
341
344
  position: "fixed",
342
345
  bottom: "20px",
343
- [oe]: "20px",
346
+ [ae]: "20px",
344
347
  width: "56px",
345
348
  height: "56px",
346
349
  borderRadius: "50%",
347
350
  border: "none",
348
- backgroundColor: he,
349
- color: xe,
351
+ backgroundColor: be,
352
+ color: Ce,
350
353
  cursor: "pointer",
351
354
  display: "flex",
352
355
  alignItems: "center",
353
356
  justifyContent: "center",
354
357
  zIndex: "2147483000",
355
358
  boxShadow: "rgba(15, 15, 15, 0.2) 0px 4px 14px 0px",
356
- fontFamily: me
357
- }), g) {
359
+ fontFamily: xe
360
+ }), h) {
358
361
  const e = document.createElement("img");
359
- e.src = g, e.alt = "", w(e, {
362
+ e.src = h, e.alt = "", E(e, {
360
363
  width: "26px",
361
364
  height: "26px",
362
365
  objectFit: "contain"
363
366
  }), S.appendChild(e);
364
- } else S.appendChild(Qe());
365
- S.addEventListener("click", () => le());
367
+ } else S.appendChild(tt());
368
+ S.addEventListener("click", () => ce());
366
369
  }
367
- Ce.appendChild(V), S && Ce.appendChild(S), ie();
368
- const ve = $ !== !1, we = $ === !1 ? void 0 : $ ?? ((e) => {
369
- ae(e);
370
+ ye.appendChild(Y), S && ye.appendChild(S), de();
371
+ const Ee = j !== !1, we = j === !1 ? void 0 : j ?? ((e) => {
372
+ ie(e);
370
373
  });
371
- function je(e, r) {
372
- const s = e.role === "user", h = x({
374
+ function Qe(e, n) {
375
+ const s = e.role === "user", x = b({
373
376
  display: "flex",
374
377
  flexDirection: "column",
375
378
  alignItems: s ? "flex-end" : "flex-start",
376
379
  marginBottom: "16px"
377
380
  });
378
- if (h.className = `ago-message ago-message--${e.role}`, !s && T && e.agent) {
379
- const C = x({
381
+ if (x.className = `ago-message ago-message--${e.role}`, !s && N && e.agent) {
382
+ const C = b({
380
383
  fontSize: "13px",
381
384
  fontWeight: "500",
382
- color: Y,
385
+ color: J,
383
386
  marginBottom: "6px",
384
387
  padding: "0 4px"
385
388
  });
386
- C.className = "ago-message__agent", C.textContent = e.agent.displayName || e.agent.name, h.appendChild(C);
389
+ C.className = "ago-message__agent", C.textContent = e.agent.displayName || e.agent.name, x.appendChild(C);
387
390
  }
388
391
  if (!s && e.sources && e.sources.length > 0) {
389
- const C = x({
392
+ const C = b({
390
393
  display: "grid",
391
394
  gridTemplateColumns: "1fr 1fr",
392
395
  gap: "6px",
@@ -394,28 +397,28 @@ function yt(o, n) {
394
397
  width: "100%",
395
398
  maxWidth: "85%"
396
399
  });
397
- C.className = "ago-message__sources", e.sources.forEach((y, E) => {
398
- const M = y.url ? document.createElement("a") : document.createElement("div");
399
- y.url && M instanceof HTMLAnchorElement && (M.href = y.url, M.target = "_blank", M.rel = "noopener noreferrer"), w(M, {
400
+ C.className = "ago-message__sources", e.sources.forEach((y, w) => {
401
+ const B = y.url ? document.createElement("a") : document.createElement("div");
402
+ y.url && B instanceof HTMLAnchorElement && (B.href = y.url, B.target = "_blank", B.rel = "noopener noreferrer"), E(B, {
400
403
  display: "flex",
401
404
  alignItems: "center",
402
405
  gap: "8px",
403
406
  padding: "8px 10px",
404
- border: `1px solid ${I}`,
407
+ border: `1px solid ${A}`,
405
408
  borderRadius: "8px",
406
- backgroundColor: j,
409
+ backgroundColor: K,
407
410
  textDecoration: "none",
408
- color: Y,
411
+ color: J,
409
412
  fontSize: "12px",
410
413
  overflow: "hidden"
411
414
  });
412
- const $e = x({
415
+ const Le = b({
413
416
  flexShrink: "0",
414
417
  width: "18px",
415
418
  height: "18px",
416
419
  borderRadius: "3px",
417
- border: `1px solid ${pe}`,
418
- color: pe,
420
+ border: `1px solid ${ue}`,
421
+ color: ue,
419
422
  fontSize: "11px",
420
423
  fontWeight: "500",
421
424
  display: "flex",
@@ -423,27 +426,27 @@ function yt(o, n) {
423
426
  justifyContent: "center",
424
427
  backgroundColor: "#f0f4ff"
425
428
  });
426
- $e.textContent = String(E + 1);
427
- const ce = x({
429
+ Le.textContent = String(w + 1);
430
+ const fe = b({
428
431
  overflow: "hidden",
429
432
  textOverflow: "ellipsis",
430
433
  whiteSpace: "nowrap"
431
434
  });
432
- ce.textContent = y.title, ce.title = y.title, M.append($e, ce), C.appendChild(M);
433
- }), h.appendChild(C);
435
+ fe.textContent = y.title, fe.title = y.title, B.append(Le, fe), C.appendChild(B);
436
+ }), x.appendChild(C);
434
437
  }
435
- const v = x({
436
- maxWidth: s ? "75%" : "100%",
437
- padding: s ? "10px 14px" : "2px 8px",
438
- borderRadius: s ? fe : "0",
439
- backgroundColor: s ? he : "transparent",
440
- color: s ? xe : Y,
438
+ const v = b({
439
+ maxWidth: s ? "75%" : g ? "85%" : "100%",
440
+ padding: s || g ? "10px 14px" : "2px 8px",
441
+ borderRadius: s || g ? ge : "0",
442
+ backgroundColor: s ? be : g ? ht : "transparent",
443
+ color: s ? Ce : J,
441
444
  wordBreak: "break-word",
442
445
  fontSize: "16px",
443
446
  lineHeight: "1.6"
444
447
  });
445
- if (v.className = "ago-message__content", e.content ? v.appendChild(ge(e.content)) : e.status === "IN_PROGRESS" && v.appendChild(Ye()), h.appendChild(v), r && e.followUpReplies && e.followUpReplies.length > 0) {
446
- const C = x({
448
+ if (v.className = "ago-message__content", e.content ? v.appendChild(he(e.content)) : e.status === "IN_PROGRESS" && v.appendChild(nt()), x.appendChild(v), n && e.followUpReplies && e.followUpReplies.length > 0) {
449
+ const C = b({
447
450
  display: "flex",
448
451
  flexWrap: "wrap",
449
452
  gap: "8px",
@@ -451,61 +454,61 @@ function yt(o, n) {
451
454
  });
452
455
  C.className = "ago-message__followups";
453
456
  for (const y of e.followUpReplies) {
454
- const E = document.createElement("button");
455
- E.type = "button", E.className = "ago-message__followup-btn", E.textContent = y, E.disabled = !ve, w(E, {
457
+ const w = document.createElement("button");
458
+ w.type = "button", w.className = "ago-message__followup-btn", w.textContent = y, w.disabled = !Ee, E(w, {
456
459
  padding: "6px 14px",
457
460
  fontSize: "14px",
458
- borderRadius: fe,
459
- border: `1px solid ${I}`,
460
- backgroundColor: j,
461
- color: Y,
462
- cursor: ve ? "pointer" : "default",
461
+ borderRadius: ge,
462
+ border: `1px solid ${A}`,
463
+ backgroundColor: K,
464
+ color: J,
465
+ cursor: Ee ? "pointer" : "default",
463
466
  transition: "border-color 0.15s"
464
- }), we && E.addEventListener("click", () => we(y)), E.addEventListener("mouseenter", () => {
465
- E.style.borderColor = pe;
466
- }), E.addEventListener("mouseleave", () => {
467
- E.style.borderColor = I;
468
- }), C.appendChild(E);
467
+ }), we && w.addEventListener("click", () => we(y)), w.addEventListener("mouseenter", () => {
468
+ w.style.borderColor = ue;
469
+ }), w.addEventListener("mouseleave", () => {
470
+ w.style.borderColor = A;
471
+ }), C.appendChild(w);
469
472
  }
470
- h.appendChild(C);
473
+ x.appendChild(C);
471
474
  }
472
- return h;
475
+ return x;
473
476
  }
474
- function Xe(e) {
475
- const r = x({
477
+ function Ye(e) {
478
+ const n = b({
476
479
  display: "flex",
477
480
  alignItems: "center",
478
481
  gap: "8px",
479
482
  padding: "10px 14px",
480
483
  backgroundColor: "#f0fdf4",
481
484
  color: "#15803d",
482
- borderRadius: fe,
485
+ borderRadius: ge,
483
486
  marginTop: "8px",
484
487
  fontSize: "13px",
485
488
  border: "1px solid #bbf7d0"
486
489
  });
487
- r.className = "ago-form-notice", r.setAttribute("role", "status");
490
+ n.className = "ago-form-notice", n.setAttribute("role", "status");
488
491
  const s = document.createElement("span");
489
- s.textContent = "✓", s.setAttribute("aria-hidden", "true"), w(s, { fontWeight: "700" });
490
- const h = document.createElement("span");
491
- return h.textContent = e, r.append(s, h), r;
492
+ s.textContent = "✓", s.setAttribute("aria-hidden", "true"), E(s, { fontWeight: "700" });
493
+ const x = document.createElement("span");
494
+ return x.textContent = e, n.append(s, x), n;
492
495
  }
493
- function A() {
494
- if (N.replaceChildren(), d.length === 0) {
495
- const r = x({
496
+ function k() {
497
+ if ($.replaceChildren(), d.length === 0) {
498
+ const n = b({
496
499
  textAlign: "center",
497
- color: ct,
500
+ color: mt,
498
501
  padding: "24px 16px",
499
502
  fontSize: "16px",
500
503
  lineHeight: "1.5"
501
504
  });
502
- r.appendChild(ge(t)), N.appendChild(r);
503
- } else d.forEach((r, s) => {
504
- N.appendChild(je(r, s === d.length - 1));
505
+ n.appendChild(he(t)), $.appendChild(n);
506
+ } else d.forEach((n, s) => {
507
+ $.appendChild(Qe(n, s === d.length - 1));
505
508
  });
506
- for (const r of ye) N.appendChild(Xe(r));
507
- if (P) {
508
- const r = x({
509
+ for (const n of ve) $.appendChild(Ye(n));
510
+ if (X) {
511
+ const n = b({
509
512
  padding: "10px 14px",
510
513
  backgroundColor: "#fef2f2",
511
514
  color: "#dc2626",
@@ -514,260 +517,262 @@ function yt(o, n) {
514
517
  fontSize: "13px",
515
518
  border: "1px solid #fecaca"
516
519
  });
517
- r.textContent = P, N.appendChild(r);
520
+ n.textContent = X, $.appendChild(n);
518
521
  }
519
- N.scrollTop = N.scrollHeight;
522
+ $.scrollTop = $.scrollHeight;
520
523
  const e = d[d.length - 1];
521
- Ge(O && e?.role === "assistant" && e.status === "IN_PROGRESS");
524
+ Ve(L && e?.role === "assistant" && e.status === "IN_PROGRESS");
522
525
  }
523
- function Ke() {
526
+ function Ze() {
524
527
  for (let e = d.length - 1; e >= 0; e--) {
525
- const r = d[e];
526
- if (r.role === "assistant" && r.status === "IN_PROGRESS") return r;
528
+ const n = d[e];
529
+ if (n.role === "assistant" && n.status === "IN_PROGRESS") return n;
527
530
  }
528
531
  }
529
- const Ee = (e) => {
530
- k || (k = e.conversationId);
531
- }, Se = (e) => {
532
- const r = Ke();
533
- r && (r.content += e.content, A());
532
+ const Se = (e) => {
533
+ _ || (_ = e.conversationId);
534
534
  }, Re = (e) => {
535
- const r = d.findIndex((s) => s.id === e.id || s.role === "assistant" && s.status === "IN_PROGRESS");
536
- r >= 0 ? d[r] = e : d.push(e), A(), ne();
535
+ const n = Ze();
536
+ n && (n.content += e.content, k());
537
537
  }, _e = (e) => {
538
- const r = d.findIndex((s) => s.id === e.id || s.role === "assistant" && s.status === "IN_PROGRESS");
539
- r >= 0 ? d[r] = e : d.push(e), O = !1, A(), e.status === "DONE" && J?.({
538
+ const n = d.findIndex((s) => s.id === e.id || s.role === "assistant" && s.status === "IN_PROGRESS");
539
+ n >= 0 ? d[n] = e : d.push(e), k(), re();
540
+ }, ke = (e) => {
541
+ const n = d.findIndex((s) => s.id === e.id || s.role === "assistant" && s.status === "IN_PROGRESS");
542
+ n >= 0 ? d[n] = e : d.push(e), L = !1, k(), e.status === "DONE" && je?.({
540
543
  id: e.id,
541
544
  content: e.content
542
545
  });
543
- }, ke = (e) => {
544
- P = e.error, O = !1, d = d.filter((r) => !r.id.startsWith("temp-")), A();
546
+ }, Ae = (e) => {
547
+ X = e.error, L = !1, d = d.filter((n) => !n.id.startsWith("temp-")), k();
545
548
  };
546
- b.on("message:start", Ee), b.on("message:chunk", Se), b.on("message:answer-complete", Re), b.on("message:complete", _e), b.on("message:error", ke);
547
- const re = [];
548
- let Ae = !1;
549
- const Ie = (e) => {
550
- if (Ae) return;
551
- re.push(e.install(b));
552
- let r = e.store.get().submitted;
553
- const s = e.store.subscribe((h) => {
554
- h.submitted && !r && (ye.push(We(h.submitResult)), A()), r = h.submitted;
549
+ m.on("message:start", Se), m.on("message:chunk", Re), m.on("message:answer-complete", _e), m.on("message:complete", ke), m.on("message:error", Ae);
550
+ const Ie = (e) => te?.(e), $e = (e) => ne?.(e);
551
+ te && m.on("form:submitted", Ie), ne && m.on("form:error", $e);
552
+ const se = [];
553
+ let Ne = !1;
554
+ const Te = (e) => {
555
+ if (Ne) return;
556
+ se.push(e.install(m));
557
+ let n = e.store.get().submitted;
558
+ const s = e.store.subscribe((x) => {
559
+ x.submitted && !n && (ve.push(Ke(x.submitResult)), k()), n = x.submitted;
555
560
  });
556
- re.push(s);
561
+ se.push(s);
557
562
  };
558
- for (const e of X ?? []) e.schema != null ? Ie(tt(e)) : et(b, e).then((r) => Ie(r)).catch(() => {
563
+ for (const e of T ?? []) e.schema != null ? Te(st(e)) : at(m, e).then((n) => Te(n)).catch(() => {
559
564
  });
560
- async function ae(e, r) {
565
+ async function ie(e, n) {
561
566
  const s = e.trim();
562
- if (!s && !r?.length || O) return;
563
- be?.(s), O = !0, P = null;
564
- const h = Date.now();
567
+ if (!s && !n?.length || L) return;
568
+ Ge?.(s), L = !0, X = null;
569
+ const x = Date.now();
565
570
  d.push({
566
- id: `temp-user-${h}`,
567
- conversationId: k || "",
571
+ id: `temp-user-${x}`,
572
+ conversationId: _ || "",
568
573
  content: s,
569
574
  role: "user",
570
575
  status: "DONE",
571
576
  createdAt: /* @__PURE__ */ new Date()
572
577
  }), d.push({
573
- id: `temp-assistant-${h}`,
574
- conversationId: k || "",
578
+ id: `temp-assistant-${x}`,
579
+ conversationId: _ || "",
575
580
  content: "",
576
581
  role: "assistant",
577
582
  status: "IN_PROGRESS",
578
583
  createdAt: /* @__PURE__ */ new Date()
579
- }), A();
584
+ }), k();
580
585
  try {
581
- const v = await b.sendMessage(s, {
582
- conversationId: k,
583
- files: r
586
+ const v = await m.sendMessage(s, {
587
+ conversationId: _,
588
+ files: n
584
589
  });
585
- v.conversationId && (k || (k = v.conversationId), K?.setActiveThread(v.conversationId, v.createdAt));
586
- const C = d.find((y) => y.id === `temp-user-${h}`);
587
- if (C && (C.id = `user-${h}`, C.conversationId = v.conversationId), !d.some((y) => y.id === v.id)) {
588
- const y = d.findIndex((E) => E.id === `temp-assistant-${h}`);
590
+ v.conversationId && (_ || (_ = v.conversationId), V?.setActiveThread(v.conversationId, v.createdAt));
591
+ const C = d.find((y) => y.id === `temp-user-${x}`);
592
+ if (C && (C.id = `user-${x}`, C.conversationId = v.conversationId), !d.some((y) => y.id === v.id)) {
593
+ const y = d.findIndex((w) => w.id === `temp-assistant-${x}`);
589
594
  y >= 0 ? d[y] = v : d.push(v);
590
595
  }
591
- d = d.filter((y) => !y.id.startsWith("temp-")), O = !1, A(), _ && se();
596
+ d = d.filter((y) => !y.id.startsWith("temp-")), L = !1, k(), P && le();
592
597
  } catch (v) {
593
- P = v instanceof Error ? v.message : "Failed to send message", O = !1, d = d.filter((C) => !C.id.startsWith("temp-")), A();
598
+ X = v instanceof Error ? v.message : "Failed to send message", L = !1, d = d.filter((C) => !C.id.startsWith("temp-")), k();
594
599
  }
595
600
  }
596
- async function se() {
601
+ async function le() {
597
602
  try {
598
- const e = await b.getConversations();
599
- q.splice(0, q.length, ...e);
603
+ const e = await m.getConversations();
604
+ Q.splice(0, Q.length, ...e);
600
605
  } catch {
601
606
  }
602
- return q;
607
+ return Q;
603
608
  }
604
- async function qe(e) {
609
+ async function Je(e) {
605
610
  try {
606
- const r = (await b.getConversation(e))?.messages ?? [];
607
- r.length > 0 && d.length === 0 && (d = r, A());
611
+ const n = (await m.getConversation(e))?.messages ?? [];
612
+ n.length > 0 && d.length === 0 && (d = n, k());
608
613
  } catch {
609
- d.length === 0 && (K?.clear(), k = void 0);
614
+ d.length === 0 && (V?.clear(), _ = void 0);
610
615
  }
611
616
  }
612
- return A(), ne(), k && qe(k), _ && se(), {
613
- client: b,
614
- element: V,
615
- sendMessage: ae,
616
- ...z ? {
617
- open: le,
618
- close: de,
619
- toggle: Ve
617
+ return k(), re(), _ && Je(_), P && le(), {
618
+ client: m,
619
+ element: Y,
620
+ sendMessage: ie,
621
+ ...F ? {
622
+ open: ce,
623
+ close: pe,
624
+ toggle: et
620
625
  } : {},
621
- session: K,
622
- threads: q,
623
- refreshThreads: se,
626
+ session: V,
627
+ threads: Q,
628
+ refreshThreads: le,
624
629
  destroy() {
625
- b.off("message:start", Ee), b.off("message:chunk", Se), b.off("message:answer-complete", Re), b.off("message:complete", _e), b.off("message:error", ke), Ae = !0, re.forEach((e) => e()), V.remove(), S?.remove(), n.client || b.destroy();
630
+ m.off("message:start", Se), m.off("message:chunk", Re), m.off("message:answer-complete", _e), m.off("message:complete", ke), m.off("message:error", Ae), te && m.off("form:submitted", Ie), ne && m.off("form:error", $e), Ne = !0, se.forEach((e) => e()), Y.remove(), S?.remove(), o.client || m.destroy();
626
631
  }
627
632
  };
628
- function ie() {
633
+ function de() {
629
634
  if (!D) return;
630
635
  const e = l === "left" ? "translateX(-100%)" : "translateX(100%)";
631
- D.style.transform = F ? "translateX(0)" : e, D.setAttribute("aria-hidden", F ? "false" : "true"), S && (S.style.display = F ? "none" : "flex");
636
+ D.style.transform = z ? "translateX(0)" : e, D.setAttribute("aria-hidden", z ? "false" : "true"), S && (S.style.display = z ? "none" : "flex");
632
637
  }
633
- function le() {
634
- F = !0, ie(), ne();
638
+ function ce() {
639
+ z = !0, de(), re();
635
640
  }
636
- function de() {
637
- F = !1, ie();
641
+ function pe() {
642
+ z = !1, de();
638
643
  }
639
- function Ve() {
640
- F ? de() : le();
644
+ function et() {
645
+ z ? pe() : ce();
641
646
  }
642
- function Qe() {
643
- const e = "http://www.w3.org/2000/svg", r = document.createElementNS(e, "svg");
644
- r.setAttribute("width", "26"), r.setAttribute("height", "26"), r.setAttribute("viewBox", "0 0 24 24"), r.setAttribute("fill", "none");
647
+ function tt() {
648
+ const e = "http://www.w3.org/2000/svg", n = document.createElementNS(e, "svg");
649
+ n.setAttribute("width", "26"), n.setAttribute("height", "26"), n.setAttribute("viewBox", "0 0 24 24"), n.setAttribute("fill", "none");
645
650
  const s = document.createElementNS(e, "path");
646
- return s.setAttribute("d", "M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.5 8.5 0 0 1-3.8-.9L3 21l1.9-5.7a8.5 8.5 0 0 1-.9-3.8 8.38 8.38 0 0 1 8.5-8.5 8.38 8.38 0 0 1 8.5 8.5z"), s.setAttribute("stroke", "currentColor"), s.setAttribute("stroke-width", "2"), s.setAttribute("stroke-linecap", "round"), s.setAttribute("stroke-linejoin", "round"), r.appendChild(s), r;
651
+ return s.setAttribute("d", "M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.5 8.5 0 0 1-3.8-.9L3 21l1.9-5.7a8.5 8.5 0 0 1-.9-3.8 8.38 8.38 0 0 1 8.5-8.5 8.38 8.38 0 0 1 8.5 8.5z"), s.setAttribute("stroke", "currentColor"), s.setAttribute("stroke-width", "2"), s.setAttribute("stroke-linecap", "round"), s.setAttribute("stroke-linejoin", "round"), n.appendChild(s), n;
647
652
  }
648
- function Ye() {
649
- const e = x({
653
+ function nt() {
654
+ const e = b({
650
655
  display: "flex",
651
656
  gap: "4px",
652
657
  padding: "4px 0"
653
658
  });
654
- for (let r = 0; r < 3; r++) {
655
- const s = x({
659
+ for (let n = 0; n < 3; n++) {
660
+ const s = b({
656
661
  width: "6px",
657
662
  height: "6px",
658
663
  borderRadius: "50%",
659
664
  backgroundColor: "#b5bfc8",
660
665
  animation: "ago-pulse 1.2s ease-in-out infinite",
661
- animationDelay: `${r * 0.2}s`
666
+ animationDelay: `${n * 0.2}s`
662
667
  });
663
668
  e.appendChild(s);
664
669
  }
665
670
  return e;
666
671
  }
667
672
  }
668
- function ht(o) {
669
- let n = [];
673
+ function Et(r) {
674
+ let o = [];
670
675
  const a = document.createElement("form");
671
- w(a, {
676
+ E(a, {
672
677
  display: "flex",
673
678
  flexDirection: "column",
674
679
  gap: "8px",
675
680
  padding: "12px",
676
- borderTop: `1px solid ${I}`,
677
- backgroundColor: j
681
+ borderTop: `1px solid ${A}`,
682
+ backgroundColor: K
678
683
  }), a.className = "ago-chat-input";
679
- const t = x({
684
+ const t = b({
680
685
  display: "flex",
681
686
  flexWrap: "wrap",
682
687
  gap: "6px"
683
- }), u = x({
688
+ }), u = b({
684
689
  display: "flex",
685
690
  gap: "8px",
686
691
  alignItems: "flex-end"
687
692
  }), i = document.createElement("textarea");
688
- i.placeholder = o.placeholder, i.rows = 1, w(i, {
693
+ i.placeholder = r.placeholder, i.rows = 1, E(i, {
689
694
  flex: "1",
690
695
  resize: "none",
691
696
  padding: "10px 12px",
692
- border: `1px solid ${I}`,
697
+ border: `1px solid ${A}`,
693
698
  borderRadius: "12px",
694
699
  fontSize: "16px",
695
- fontFamily: me,
700
+ fontFamily: xe,
696
701
  lineHeight: "1.4",
697
702
  maxHeight: "120px",
698
703
  outline: "none"
699
704
  });
700
705
  const f = document.createElement("button");
701
- f.type = "submit", f.textContent = "Send", w(f, {
706
+ f.type = "submit", f.textContent = "Send", E(f, {
702
707
  padding: "10px 16px",
703
708
  border: "none",
704
709
  borderRadius: "12px",
705
- backgroundColor: he,
706
- color: xe,
710
+ backgroundColor: be,
711
+ color: Ce,
707
712
  fontSize: "16px",
708
713
  fontWeight: "500",
709
714
  cursor: "pointer"
710
715
  });
711
716
  let l = null, p = null;
712
- o.allowFiles && (l = document.createElement("input"), l.type = "file", l.multiple = !0, w(l, { display: "none" }), p = document.createElement("button"), p.type = "button", p.textContent = "📎", w(p, {
717
+ r.allowFiles && (l = document.createElement("input"), l.type = "file", l.multiple = !0, E(l, { display: "none" }), p = document.createElement("button"), p.type = "button", p.textContent = "📎", E(p, {
713
718
  padding: "10px 12px",
714
- border: `1px solid ${I}`,
719
+ border: `1px solid ${A}`,
715
720
  borderRadius: "12px",
716
- backgroundColor: j,
721
+ backgroundColor: K,
717
722
  cursor: "pointer",
718
723
  fontSize: "14px"
719
724
  }), p.addEventListener("click", () => l?.click()), l.addEventListener("change", () => {
720
- n = [...n, ...Array.from(l?.files ?? [])], c();
725
+ o = [...o, ...Array.from(l?.files ?? [])], c();
721
726
  }));
722
727
  function c() {
723
- t.replaceChildren(), n.forEach((m, _) => {
724
- const X = x({
728
+ t.replaceChildren(), o.forEach((g, I) => {
729
+ const q = b({
725
730
  display: "flex",
726
731
  alignItems: "center",
727
732
  gap: "4px",
728
733
  padding: "4px 8px",
729
734
  backgroundColor: "#f0f4ff",
730
- border: `1px solid ${I}`,
735
+ border: `1px solid ${A}`,
731
736
  borderRadius: "8px",
732
737
  fontSize: "12px"
733
- }), L = document.createElement("span");
734
- L.textContent = m.name;
735
- const $ = document.createElement("button");
736
- $.type = "button", $.textContent = "×", w($, {
738
+ }), P = document.createElement("span");
739
+ P.textContent = g.name;
740
+ const T = document.createElement("button");
741
+ T.type = "button", T.textContent = "×", E(T, {
737
742
  border: "none",
738
743
  background: "transparent",
739
744
  cursor: "pointer",
740
745
  fontSize: "14px",
741
746
  lineHeight: "1"
742
- }), $.addEventListener("click", () => {
743
- n = n.filter((be, J) => J !== _), c();
744
- }), X.append(L, $), t.appendChild(X);
747
+ }), T.addEventListener("click", () => {
748
+ o = o.filter((G, j) => j !== I), c();
749
+ }), q.append(P, T), t.appendChild(q);
745
750
  });
746
751
  }
747
- const g = () => {
748
- const m = i.value, _ = n;
749
- return i.value = "", n = [], c(), {
750
- content: m,
751
- files: _
752
+ const h = () => {
753
+ const g = i.value, I = o;
754
+ return i.value = "", o = [], c(), {
755
+ content: g,
756
+ files: I
752
757
  };
753
- }, T = () => {
754
- const { content: m, files: _ } = g();
755
- (m.trim() || _.length > 0) && o.onSend(m.trim(), _.length > 0 ? _ : void 0);
758
+ }, N = () => {
759
+ const { content: g, files: I } = h();
760
+ (g.trim() || I.length > 0) && r.onSend(g.trim(), I.length > 0 ? I : void 0);
756
761
  };
757
- return a.addEventListener("submit", (m) => {
758
- m.preventDefault(), T();
759
- }), i.addEventListener("keydown", (m) => {
760
- m.key === "Enter" && !m.shiftKey && (m.preventDefault(), T());
762
+ return a.addEventListener("submit", (g) => {
763
+ g.preventDefault(), N();
764
+ }), i.addEventListener("keydown", (g) => {
765
+ g.key === "Enter" && !g.shiftKey && (g.preventDefault(), N());
761
766
  }), p && u.appendChild(p), u.append(i, f), l && a.appendChild(l), a.append(t, u), {
762
767
  inputRow: a,
763
- getValueAndClear: g,
764
- setDisabled: (m) => {
765
- i.disabled = m, f.disabled = m, f.style.opacity = m ? "0.6" : "1", f.style.cursor = m ? "not-allowed" : "pointer";
768
+ getValueAndClear: h,
769
+ setDisabled: (g) => {
770
+ i.disabled = g, f.disabled = g, f.style.opacity = g ? "0.6" : "1", f.style.cursor = g ? "not-allowed" : "pointer";
766
771
  },
767
772
  focus: () => i.focus()
768
773
  };
769
774
  }
770
775
  export {
771
- yt as mountChatWidget,
772
- ge as renderMarkdown
776
+ _t as mountChatWidget,
777
+ he as renderMarkdown
773
778
  };