@asgard-js/react 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,19 +1,19 @@
1
- import { jsx as s, jsxs as p } from "react/jsx-runtime";
1
+ import { jsx as c, jsxs as m, Fragment as mt } from "react/jsx-runtime";
2
2
  import * as g from "react";
3
- import { createContext as nt, useMemo as C, useContext as ot, useRef as M, useEffect as w, useState as x, useCallback as b, useLayoutEffect as rt, memo as gt } from "react";
4
- import { AsgardServiceClient as ft, Conversation as mt, Channel as bt, MessageTemplateType as A } from "@asgard-js/core";
5
- function U(e) {
6
- return e !== null && typeof e == "object" && !Array.isArray(e);
3
+ import { createContext as F, useMemo as v, useContext as W, useRef as R, useEffect as C, useState as w, useCallback as p, useLayoutEffect as rt, memo as ft } from "react";
4
+ import { AsgardServiceClient as bt, EventType as H, Conversation as pt, Channel as Ct, MessageTemplateType as O } from "@asgard-js/core";
5
+ function X(n) {
6
+ return n !== null && typeof n == "object" && !Array.isArray(n);
7
7
  }
8
- function st(e, t) {
9
- const o = { ...e };
8
+ function st(n, t) {
9
+ const o = { ...n };
10
10
  if (!t) return o;
11
- for (const [n, r] of Object.entries(t)) {
12
- if (!U(r)) {
13
- o[n] = r;
11
+ for (const [e, r] of Object.entries(t)) {
12
+ if (!X(r)) {
13
+ o[e] = r;
14
14
  continue;
15
15
  }
16
- o[n] = st(U(o[n]) ? o[n] : {}, r);
16
+ o[e] = st(X(o[e]) ? o[e] : {}, r);
17
17
  }
18
18
  return o;
19
19
  }
@@ -34,213 +34,208 @@ const ct = {
34
34
  color: "var(--asg-color-text)",
35
35
  backgroundColor: "var(--asg-color-primary)"
36
36
  }
37
- }, it = nt(
37
+ }, it = F(
38
38
  ct
39
39
  );
40
- function pt(e) {
41
- const { children: t, theme: o = {} } = e, n = C(
40
+ function vt(n) {
41
+ const { children: t, theme: o = {} } = n, e = v(
42
42
  () => st(ct, o),
43
43
  [o]
44
44
  );
45
- return /* @__PURE__ */ s(it.Provider, { value: n, children: t });
46
- }
47
- function z() {
48
- return ot(it);
49
- }
50
- function vt(e) {
51
- const { config: t } = e, o = M(null);
52
- return o.current || (o.current = new ft(t)), w(() => () => {
53
- o.current && (o.current.close(), o.current = null);
54
- }, [t]), o.current;
55
- }
56
- function Ct(e) {
57
- const {
58
- client: t,
59
- customChannelId: o,
60
- customMessageId: n,
61
- initMessages: r,
62
- showDebugMessage: c
63
- } = e;
45
+ return /* @__PURE__ */ c(it.Provider, { value: e, children: t });
46
+ }
47
+ function L() {
48
+ return W(it);
49
+ }
50
+ function xt(n) {
51
+ const { config: t } = n, { onRunInit: o, onProcess: e, onMessage: r, onRunDone: s, onRunError: a } = t, i = R(null);
52
+ return i.current || (i.current = new bt(t)), C(() => () => {
53
+ i.current && (i.current.close(), i.current = null);
54
+ }, []), C(() => {
55
+ !i.current || !o || i.current.on(H.INIT, o);
56
+ }, [o]), C(() => {
57
+ !i.current || !e || i.current.on(H.PROCESS, e);
58
+ }, [e]), C(() => {
59
+ !i.current || !r || i.current.on(H.MESSAGE, r);
60
+ }, [r]), C(() => {
61
+ !i.current || !s || i.current.on(H.DONE, s);
62
+ }, [s]), C(() => {
63
+ !i.current || !a || i.current.on(H.ERROR, a);
64
+ }, [a]), i.current;
65
+ }
66
+ function wt(n) {
67
+ const { client: t, customChannelId: o, customMessageId: e, initMessages: r } = n;
64
68
  if (!t)
65
69
  throw new Error("Client instance is required");
66
70
  if (!o)
67
71
  throw new Error("Custom channel id is required");
68
- const [i, a] = x(null), [l, d] = x(!0), [h, f] = x(!1), [u, _] = x(!1), [m, v] = x(null), E = b(async () => {
69
- const L = new mt({
70
- showDebugMessage: c,
72
+ const [s, a] = w(null), [i, u] = w(!0), [d, h] = w(!1), [_, l] = w(!1), [b, f] = w(null), x = p(async () => {
73
+ const k = new pt({
71
74
  messages: new Map(
72
- r == null ? void 0 : r.map((H) => [H.messageId, H])
75
+ r == null ? void 0 : r.map((V) => [V.messageId, V])
73
76
  )
74
77
  });
75
- f(!0), _(!0), v(L);
76
- const ht = await bt.reset(
78
+ h(!0), l(!0), f(k);
79
+ const gt = await Ct.reset(
77
80
  {
78
81
  client: t,
79
82
  customChannelId: o,
80
- customMessageId: n,
81
- conversation: L,
82
- statesObserver: (H) => {
83
- _(H.isConnecting), v(H.conversation);
83
+ customMessageId: e,
84
+ conversation: k,
85
+ statesObserver: (V) => {
86
+ l(V.isConnecting), f(V.conversation);
84
87
  }
85
88
  },
86
89
  {
87
90
  onSseCompleted() {
88
- f(!1);
91
+ h(!1);
89
92
  },
90
93
  onSseError() {
91
- f(!1);
94
+ h(!1);
92
95
  }
93
96
  }
94
97
  );
95
- a(ht);
96
- }, [
97
- t,
98
- o,
99
- n,
100
- r,
101
- c
102
- ]), S = b(() => {
103
- a((L) => (L == null || L.close(), null)), d(!1), f(!1), _(!1), v(null);
104
- }, []), W = b(
105
- (L) => {
106
- i == null || i.sendMessage({ text: L });
107
- },
108
- [i]
98
+ a(gt);
99
+ }, [t, o, e, r]), N = p(() => {
100
+ a((k) => (k == null || k.close(), null)), u(!1), h(!1), l(!1), f(null);
101
+ }, []), K = p(
102
+ (k) => s == null ? void 0 : s.sendMessage({ text: k }),
103
+ [s]
109
104
  );
110
- return w(() => {
111
- !i && l && E();
112
- }, [i, l, E]), w(() => () => S(), [S]), C(
105
+ return C(() => {
106
+ !s && i && x();
107
+ }, [s, i, x]), C(() => () => N(), [N]), v(
113
108
  () => ({
114
- isOpen: l,
115
- isResetting: h,
116
- isConnecting: u,
117
- conversation: m,
118
- sendMessage: W,
119
- resetChannel: E,
120
- closeChannel: S
109
+ isOpen: i,
110
+ isResetting: d,
111
+ isConnecting: _,
112
+ conversation: b,
113
+ sendMessage: K,
114
+ resetChannel: x,
115
+ closeChannel: N
121
116
  }),
122
117
  [
123
- l,
124
- h,
125
- u,
126
- m,
127
- W,
128
- E,
129
- S
118
+ i,
119
+ d,
120
+ _,
121
+ b,
122
+ K,
123
+ x,
124
+ N
130
125
  ]
131
126
  );
132
127
  }
133
- function wt(e, t) {
134
- const [o, n] = x(e);
135
- return w(() => {
128
+ function yt(n, t) {
129
+ const [o, e] = w(n);
130
+ return C(() => {
136
131
  const r = window.setTimeout(() => {
137
- n(e);
132
+ e(n);
138
133
  }, t ?? 300);
139
134
  return () => clearTimeout(r);
140
- }, [e, t]), o;
135
+ }, [n, t]), o;
141
136
  }
142
- const D = typeof window < "u" ? rt : null;
143
- function xt() {
137
+ const q = typeof window < "u" ? rt : null;
138
+ function Tt() {
144
139
  return window.visualViewport ? [window.visualViewport.width, window.visualViewport.height] : [window.innerWidth, window.innerHeight];
145
140
  }
146
- function yt() {
147
- const [e, t] = x(), o = b(() => {
148
- const n = xt();
141
+ function Et() {
142
+ const [n, t] = w(), o = p(() => {
143
+ const e = Tt();
149
144
  t(
150
- (r) => r && r[0] === n[0] && r[1] === n[1] ? r : n
145
+ (r) => r && r[0] === e[0] && r[1] === e[1] ? r : e
151
146
  );
152
147
  }, []);
153
- return D == null || D(o, [o]), w(() => {
148
+ return q == null || q(o, [o]), C(() => {
154
149
  var r;
155
- function n() {
150
+ function e() {
156
151
  o(), setTimeout(o, 1e3);
157
152
  }
158
- return window.addEventListener("resize", n), window.addEventListener("orientationchange", n), (r = window.visualViewport) == null || r.addEventListener("resize", n), () => {
159
- var c;
160
- window.removeEventListener("resize", n), window.removeEventListener("orientationchange", n), (c = window.visualViewport) == null || c.removeEventListener("resize", n);
153
+ return window.addEventListener("resize", e), window.addEventListener("orientationchange", e), (r = window.visualViewport) == null || r.addEventListener("resize", e), () => {
154
+ var s;
155
+ window.removeEventListener("resize", e), window.removeEventListener("orientationchange", e), (s = window.visualViewport) == null || s.removeEventListener("resize", e);
161
156
  };
162
- }, [o]), e;
157
+ }, [o]), n;
163
158
  }
164
- function K(e) {
165
- return ["INPUT", "TEXTAREA"].includes(e.tagName) && !["button", "submit", "checkbox", "file", "image"].includes(
166
- e.type
167
- ) || e.hasAttribute("contenteditable");
159
+ function Y(n) {
160
+ return ["INPUT", "TEXTAREA"].includes(n.tagName) && !["button", "submit", "checkbox", "file", "image"].includes(
161
+ n.type
162
+ ) || n.hasAttribute("contenteditable");
168
163
  }
169
- function Tt() {
170
- const [e, t] = x(!1);
171
- return w(() => {
164
+ function Nt() {
165
+ const [n, t] = w(!1);
166
+ return C(() => {
172
167
  function o(r) {
173
168
  if (!r.target) return;
174
- const c = r.target;
175
- K(c) && t(!0);
169
+ const s = r.target;
170
+ Y(s) && t(!0);
176
171
  }
177
- function n(r) {
172
+ function e(r) {
178
173
  if (!r.target) return;
179
- const c = r.target;
180
- K(c) && t(!1);
174
+ const s = r.target;
175
+ Y(s) && t(!1);
181
176
  }
182
- return document.addEventListener("focusin", o), document.addEventListener("focusout", n), () => {
183
- document.removeEventListener("focusin", o), document.removeEventListener("focusout", n);
177
+ return document.addEventListener("focusin", o), document.addEventListener("focusout", e), () => {
178
+ document.removeEventListener("focusin", o), document.removeEventListener("focusout", e);
184
179
  };
185
- }, []), e;
180
+ }, []), n;
186
181
  }
187
- function Nt() {
188
- w(() => {
189
- function e() {
182
+ function kt() {
183
+ C(() => {
184
+ function n() {
190
185
  window.scrollTo(0, 0);
191
186
  }
192
- return window.addEventListener("scroll", e), () => {
193
- window.removeEventListener("scroll", e);
187
+ return window.addEventListener("scroll", n), () => {
188
+ window.removeEventListener("scroll", n);
194
189
  };
195
190
  }, []);
196
191
  }
197
- function at(e) {
198
- if (e.scrollHeight > e.offsetHeight)
199
- return e;
200
- const t = e.parentElement;
192
+ function at(n) {
193
+ if (n.scrollHeight > n.offsetHeight)
194
+ return n;
195
+ const t = n.parentElement;
201
196
  if (t)
202
197
  return at(t);
203
198
  }
204
- function Et(e) {
205
- w(() => {
206
- const t = e.current;
199
+ function St(n) {
200
+ C(() => {
201
+ const t = n.current;
207
202
  if (!t) return;
208
203
  let o;
209
- function n(c) {
210
- c.touches.length === 1 && (o = c.touches[0]);
204
+ function e(s) {
205
+ s.touches.length === 1 && (o = s.touches[0]);
211
206
  }
212
- function r(c) {
213
- if (c.touches.length !== 1 || !o) return;
214
- const i = o.pageY - c.targetTouches[0].pageY, a = o.pageX - c.targetTouches[0].pageX;
215
- if (Math.abs(a) > Math.abs(i)) return;
216
- const l = c.target, d = at(l);
207
+ function r(s) {
208
+ if (s.touches.length !== 1 || !o) return;
209
+ const a = o.pageY - s.targetTouches[0].pageY, i = o.pageX - s.targetTouches[0].pageX;
210
+ if (Math.abs(i) > Math.abs(a)) return;
211
+ const u = s.target, d = at(u);
217
212
  if (!d) {
218
- c.preventDefault();
213
+ s.preventDefault();
219
214
  return;
220
215
  }
221
- const h = i < 0, f = d.scrollTop === 0;
222
- if (h && f) {
223
- c.preventDefault();
216
+ const h = a < 0, _ = d.scrollTop === 0;
217
+ if (h && _) {
218
+ s.preventDefault();
224
219
  return;
225
220
  }
226
- const u = d.scrollTop === d.scrollHeight - d.clientHeight;
227
- if (!h && u) {
228
- c.preventDefault();
221
+ const l = d.scrollTop === d.scrollHeight - d.clientHeight;
222
+ if (!h && l) {
223
+ s.preventDefault();
229
224
  return;
230
225
  }
231
226
  }
232
- return t.addEventListener("touchstart", n), t.addEventListener("touchmove", r), () => {
233
- t.removeEventListener("touchstart", n), t.removeEventListener("touchmove", r);
227
+ return t.addEventListener("touchstart", e), t.addEventListener("touchmove", r), () => {
228
+ t.removeEventListener("touchstart", e), t.removeEventListener("touchmove", r);
234
229
  };
235
- }, [e]);
230
+ }, [n]);
236
231
  }
237
- const j = typeof window < "u" ? rt : null;
238
- function Lt(e) {
239
- const t = b(() => {
232
+ const D = typeof window < "u" ? rt : null;
233
+ function Rt(n) {
234
+ const t = p(() => {
240
235
  const o = window.innerHeight * 0.01;
241
- e.current && e.current.style.setProperty("--vh", `${o}px`);
242
- }, [e]);
243
- j == null || j(t, [t]), w(() => {
236
+ n.current && n.current.style.setProperty("--vh", `${o}px`);
237
+ }, [n]);
238
+ D == null || D(t, [t]), C(() => {
244
239
  function o() {
245
240
  t(), setTimeout(t, 1e3);
246
241
  }
@@ -249,21 +244,21 @@ function Lt(e) {
249
244
  };
250
245
  }, [t]);
251
246
  }
252
- function kt(e) {
253
- const { ref: t, onResize: o } = e;
254
- w(() => {
255
- const n = new ResizeObserver((r) => {
256
- for (const c of r) {
257
- const { width: i, height: a } = c.contentRect;
258
- o(i, a);
247
+ function Lt(n) {
248
+ const { ref: t, onResize: o } = n;
249
+ C(() => {
250
+ const e = new ResizeObserver((r) => {
251
+ for (const s of r) {
252
+ const { width: a, height: i } = s.contentRect;
253
+ o(a, i);
259
254
  }
260
255
  });
261
- return t.current && n.observe(t.current), () => {
262
- n.disconnect();
256
+ return t.current && e.observe(t.current), () => {
257
+ e.disconnect();
263
258
  };
264
259
  }, [t, o]);
265
260
  }
266
- const lt = nt({
261
+ const lt = F({
267
262
  avatar: void 0,
268
263
  client: null,
269
264
  isOpen: !1,
@@ -273,69 +268,81 @@ const lt = nt({
273
268
  messageBoxBottomRef: { current: null },
274
269
  botTypingPlaceholder: void 0
275
270
  });
276
- function Mt(e) {
271
+ function Mt(n) {
277
272
  const {
278
273
  avatar: t,
279
274
  children: o,
280
- config: n,
275
+ config: e,
281
276
  botTypingPlaceholder: r,
282
- customChannelId: c,
283
- initMessages: i,
284
- options: a
285
- } = e, l = M(null), d = vt({ config: n }), {
286
- isOpen: h,
287
- isResetting: f,
288
- isConnecting: u,
289
- conversation: _,
290
- sendMessage: m,
291
- resetChannel: v,
292
- closeChannel: E
293
- } = Ct({
294
- client: d,
295
- customChannelId: c,
296
- initMessages: i,
297
- showDebugMessage: a == null ? void 0 : a.showDebugMessage
298
- }), S = C(
277
+ customChannelId: s,
278
+ initMessages: a
279
+ } = n, i = R(null), u = xt({ config: e }), {
280
+ isOpen: d,
281
+ isResetting: h,
282
+ isConnecting: _,
283
+ conversation: l,
284
+ sendMessage: b,
285
+ resetChannel: f,
286
+ closeChannel: x
287
+ } = wt({
288
+ client: u,
289
+ customChannelId: s,
290
+ initMessages: a
291
+ }), N = v(
299
292
  () => ({
300
293
  avatar: t,
301
- client: d,
302
- isOpen: h,
303
- isResetting: f,
304
- isConnecting: u,
305
- messages: (_ == null ? void 0 : _.messages) ?? null,
306
- sendMessage: m,
307
- resetChannel: v,
308
- closeChannel: E,
294
+ client: u,
295
+ isOpen: d,
296
+ isResetting: h,
297
+ isConnecting: _,
298
+ messages: (l == null ? void 0 : l.messages) ?? null,
299
+ sendMessage: b,
300
+ resetChannel: f,
301
+ closeChannel: x,
309
302
  botTypingPlaceholder: r,
310
- messageBoxBottomRef: l
303
+ messageBoxBottomRef: i
311
304
  }),
312
305
  [
313
306
  t,
307
+ u,
314
308
  d,
315
309
  h,
310
+ _,
311
+ l == null ? void 0 : l.messages,
312
+ b,
316
313
  f,
317
- u,
318
- _ == null ? void 0 : _.messages,
319
- m,
320
- v,
321
- E,
314
+ x,
322
315
  r
323
316
  ]
324
317
  );
325
- return /* @__PURE__ */ s(lt.Provider, { value: S, children: o });
326
- }
327
- function N() {
328
- return ot(lt);
329
- }
330
- const St = "_chatbot_header_luxt4_1", Rt = "_chatbot_header__content_luxt4_4", zt = "_chatbot_header__title_luxt4_12", Ht = "_chatbot_header__extra_luxt4_23", Z = {
331
- chatbot_header: St,
332
- chatbot_header__content: Rt,
333
- chatbot_header__title: zt,
334
- chatbot_header__extra: Ht
335
- }, Vt = (e) => /* @__PURE__ */ g.createElement("svg", { width: 33, height: 32, viewBox: "0 0 33 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("g", { clipPath: "url(#clip0_3084_29383)" }, /* @__PURE__ */ g.createElement("path", { d: "M0.410645 16C0.410645 7.16344 7.57409 0 16.4106 0C25.2472 0 32.4106 7.16344 32.4106 16C32.4106 24.8366 25.2472 32 16.4106 32C7.57409 32 0.410645 24.8366 0.410645 16Z", fill: "#333333" }), /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.5788 6.33398C19.8925 6.33398 22.5788 9.02028 22.5788 12.334C22.5788 14.2211 21.7075 15.9048 20.3453 17.0047C23.6487 18.3735 26.0607 21.6974 26.4106 25.6673H24.4569C24.0206 21.6274 20.9742 18.4911 17.2591 18.3397L16.9776 18.334H16.5788H15.8437C12.0019 18.334 8.81164 21.5258 8.36437 25.6673H6.41064C6.76857 21.607 9.28344 18.2225 12.7029 16.9143C11.4036 15.8137 10.5788 14.1701 10.5788 12.334C10.5788 9.02028 13.265 6.33398 16.5788 6.33398ZM16.5788 16.334C18.7879 16.334 20.5788 14.5431 20.5788 12.334C20.5788 10.1248 18.7879 8.33398 16.5788 8.33398C14.3696 8.33398 12.5788 10.1248 12.5788 12.334C12.5788 14.5431 14.3696 16.334 16.5788 16.334Z", fill: "#8C8C8C" })), /* @__PURE__ */ g.createElement("defs", null, /* @__PURE__ */ g.createElement("clipPath", { id: "clip0_3084_29383" }, /* @__PURE__ */ g.createElement("path", { d: "M0.410645 16C0.410645 7.16344 7.57409 0 16.4106 0C25.2472 0 32.4106 7.16344 32.4106 16C32.4106 24.8366 25.2472 32 16.4106 32C7.57409 32 0.410645 24.8366 0.410645 16Z", fill: "white" }))));
336
- function Bt(e) {
337
- const { avatar: t } = e;
338
- return t ? /* @__PURE__ */ s(
318
+ return /* @__PURE__ */ c(lt.Provider, { value: N, children: o });
319
+ }
320
+ function T() {
321
+ return W(lt);
322
+ }
323
+ const ut = F({
324
+ onErrorClick: void 0,
325
+ errorMessageRenderer: void 0
326
+ });
327
+ function zt(n) {
328
+ const { children: t, onErrorClick: o, errorMessageRenderer: e } = n, r = v(
329
+ () => ({ onErrorClick: o, errorMessageRenderer: e }),
330
+ [e, o]
331
+ );
332
+ return /* @__PURE__ */ c(ut.Provider, { value: r, children: t });
333
+ }
334
+ function Vt() {
335
+ return W(ut);
336
+ }
337
+ const Ht = "_chatbot_header_luxt4_1", At = "_chatbot_header__content_luxt4_4", Ot = "_chatbot_header__title_luxt4_12", Bt = "_chatbot_header__extra_luxt4_23", P = {
338
+ chatbot_header: Ht,
339
+ chatbot_header__content: At,
340
+ chatbot_header__title: Ot,
341
+ chatbot_header__extra: Bt
342
+ }, It = (n) => /* @__PURE__ */ g.createElement("svg", { width: 33, height: 32, viewBox: "0 0 33 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ g.createElement("g", { clipPath: "url(#clip0_3084_29383)" }, /* @__PURE__ */ g.createElement("path", { d: "M0.410645 16C0.410645 7.16344 7.57409 0 16.4106 0C25.2472 0 32.4106 7.16344 32.4106 16C32.4106 24.8366 25.2472 32 16.4106 32C7.57409 32 0.410645 24.8366 0.410645 16Z", fill: "#333333" }), /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.5788 6.33398C19.8925 6.33398 22.5788 9.02028 22.5788 12.334C22.5788 14.2211 21.7075 15.9048 20.3453 17.0047C23.6487 18.3735 26.0607 21.6974 26.4106 25.6673H24.4569C24.0206 21.6274 20.9742 18.4911 17.2591 18.3397L16.9776 18.334H16.5788H15.8437C12.0019 18.334 8.81164 21.5258 8.36437 25.6673H6.41064C6.76857 21.607 9.28344 18.2225 12.7029 16.9143C11.4036 15.8137 10.5788 14.1701 10.5788 12.334C10.5788 9.02028 13.265 6.33398 16.5788 6.33398ZM16.5788 16.334C18.7879 16.334 20.5788 14.5431 20.5788 12.334C20.5788 10.1248 18.7879 8.33398 16.5788 8.33398C14.3696 8.33398 12.5788 10.1248 12.5788 12.334C12.5788 14.5431 14.3696 16.334 16.5788 16.334Z", fill: "#8C8C8C" })), /* @__PURE__ */ g.createElement("defs", null, /* @__PURE__ */ g.createElement("clipPath", { id: "clip0_3084_29383" }, /* @__PURE__ */ g.createElement("path", { d: "M0.410645 16C0.410645 7.16344 7.57409 0 16.4106 0C25.2472 0 32.4106 7.16344 32.4106 16C32.4106 24.8366 25.2472 32 16.4106 32C7.57409 32 0.410645 24.8366 0.410645 16Z", fill: "white" }))));
343
+ function Pt(n) {
344
+ const { avatar: t } = n;
345
+ return t ? /* @__PURE__ */ c(
339
346
  "img",
340
347
  {
341
348
  src: t,
@@ -346,142 +353,142 @@ function Bt(e) {
346
353
  borderRadius: "50%"
347
354
  }
348
355
  }
349
- ) : /* @__PURE__ */ s(Vt, {});
356
+ ) : /* @__PURE__ */ c(It, {});
350
357
  }
351
- const At = (e) => /* @__PURE__ */ g.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.49453 2.3352C6.44049 -0.226723 10.9105 -0.106316 13.7142 2.69633C16.6428 5.62613 16.6428 10.3739 13.7144 13.3035C10.7846 16.2322 6.03581 16.2322 3.1073 13.3036C2.30873 12.505 1.71132 11.5536 1.34188 10.5109L1.78892 10.3525L1.34171 10.5106L1.22791 10.162C1.01752 9.46018 0.910643 8.73159 0.910643 7.9997H2.4542L2.46382 8.33865C2.49584 8.9024 2.60763 9.46037 2.79674 9.99539L2.7968 9.99536L2.90116 10.2683C3.19714 10.9887 3.63414 11.6475 4.19876 12.2121C6.52451 14.5379 10.2961 14.5379 12.6229 12.212C14.9486 9.88539 14.9486 6.11464 12.6227 3.78781C10.3306 1.49653 6.63579 1.46263 4.30292 3.68622L6.68087 3.68698V5.22954H3.49394H1.95141V3.68698V0.5H3.49394L3.49453 2.3352Z", fill: "#8C8C8C" })), It = (e) => /* @__PURE__ */ g.createElement("svg", { width: 15, height: 14, viewBox: "0 0 15 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M13.3496 0L7.41062 5.938L1.47162 0L0.411621 1.06L6.34962 6.999L0.411621 12.938L1.47162 13.999L7.41062 8.059L13.3496 13.999L14.4096 12.938L8.47162 6.999L14.4096 1.06L13.3496 0Z", fill: "#8C8C8C" }));
352
- function Ot(e) {
353
- const { title: t, onReset: o, onClose: n } = e, { chatbot: r } = z(), { avatar: c, isResetting: i, resetChannel: a, closeChannel: l } = N(), d = C(
358
+ const Zt = (n) => /* @__PURE__ */ g.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.49453 2.3352C6.44049 -0.226723 10.9105 -0.106316 13.7142 2.69633C16.6428 5.62613 16.6428 10.3739 13.7144 13.3035C10.7846 16.2322 6.03581 16.2322 3.1073 13.3036C2.30873 12.505 1.71132 11.5536 1.34188 10.5109L1.78892 10.3525L1.34171 10.5106L1.22791 10.162C1.01752 9.46018 0.910643 8.73159 0.910643 7.9997H2.4542L2.46382 8.33865C2.49584 8.9024 2.60763 9.46037 2.79674 9.99539L2.7968 9.99536L2.90116 10.2683C3.19714 10.9887 3.63414 11.6475 4.19876 12.2121C6.52451 14.5379 10.2961 14.5379 12.6229 12.212C14.9486 9.88539 14.9486 6.11464 12.6227 3.78781C10.3306 1.49653 6.63579 1.46263 4.30292 3.68622L6.68087 3.68698V5.22954H3.49394H1.95141V3.68698V0.5H3.49394L3.49453 2.3352Z", fill: "#8C8C8C" })), qt = (n) => /* @__PURE__ */ g.createElement("svg", { width: 15, height: 14, viewBox: "0 0 15 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M13.3496 0L7.41062 5.938L1.47162 0L0.411621 1.06L6.34962 6.999L0.411621 12.938L1.47162 13.999L7.41062 8.059L13.3496 13.999L14.4096 12.938L8.47162 6.999L14.4096 1.06L13.3496 0Z", fill: "#8C8C8C" }));
359
+ function Dt(n) {
360
+ const { title: t, onReset: o, onClose: e } = n, { chatbot: r } = L(), { avatar: s, isResetting: a, resetChannel: i, closeChannel: u } = T(), d = v(
354
361
  () => ({
355
362
  maxWidth: (r == null ? void 0 : r.contentMaxWidth) ?? "1200px",
356
363
  borderBottomColor: r == null ? void 0 : r.borderColor
357
364
  }),
358
365
  [r]
359
- ), h = b(
360
- (u) => {
361
- i || (u.stopPropagation(), o == null || o(), a == null || a());
366
+ ), h = p(
367
+ (l) => {
368
+ a || (l.stopPropagation(), o == null || o(), i == null || i());
362
369
  },
363
- [i, o, a]
364
- ), f = b(
365
- (u) => {
366
- i || (u.stopPropagation(), n == null || n(), l == null || l());
370
+ [a, o, i]
371
+ ), _ = p(
372
+ (l) => {
373
+ a || (l.stopPropagation(), e == null || e(), u == null || u());
367
374
  },
368
- [i, n, l]
375
+ [a, e, u]
369
376
  );
370
- return /* @__PURE__ */ s("div", { className: Z.chatbot_header, children: /* @__PURE__ */ p("div", { className: Z.chatbot_header__content, style: d, children: [
371
- /* @__PURE__ */ p("div", { className: Z.chatbot_header__title, children: [
372
- /* @__PURE__ */ s(Bt, { avatar: c }),
373
- /* @__PURE__ */ s("h4", { children: t })
377
+ return /* @__PURE__ */ c("div", { className: P.chatbot_header, children: /* @__PURE__ */ m("div", { className: P.chatbot_header__content, style: d, children: [
378
+ /* @__PURE__ */ m("div", { className: P.chatbot_header__title, children: [
379
+ /* @__PURE__ */ c(Pt, { avatar: s }),
380
+ /* @__PURE__ */ c("h4", { children: t })
374
381
  ] }),
375
- /* @__PURE__ */ p("div", { className: Z.chatbot_header__extra, children: [
376
- /* @__PURE__ */ s("div", { onClick: h, children: /* @__PURE__ */ s(At, {}) }),
377
- /* @__PURE__ */ s("div", { onClick: f, children: /* @__PURE__ */ s(It, {}) })
382
+ /* @__PURE__ */ m("div", { className: P.chatbot_header__extra, children: [
383
+ /* @__PURE__ */ c("div", { onClick: h, children: /* @__PURE__ */ c(Zt, {}) }),
384
+ /* @__PURE__ */ c("div", { onClick: _, children: /* @__PURE__ */ c(qt, {}) })
378
385
  ] })
379
386
  ] }) });
380
387
  }
381
- const Zt = "_chatbot_body_f6sqm_1", Pt = "_chatbot_body__content_f6sqm_5", X = {
382
- chatbot_body: Zt,
383
- chatbot_body__content: Pt
384
- }, Dt = "_template_box_1ozig_1", R = {
385
- template_box: Dt,
388
+ const $t = "_chatbot_body_f6sqm_1", Ft = "_chatbot_body__content_f6sqm_5", J = {
389
+ chatbot_body: $t,
390
+ chatbot_body__content: Ft
391
+ }, Wt = "_template_box_1ozig_1", M = {
392
+ template_box: Wt,
386
393
  "template_box--bot": "_template_box--bot_1ozig_7",
387
394
  "template_box--horizontal": "_template_box--horizontal_1ozig_7",
388
395
  "template_box--vertical": "_template_box--vertical_1ozig_10",
389
396
  "template_box--user": "_template_box--user_1ozig_14"
390
397
  };
391
- function ut(e) {
392
- var t, o, n = "";
393
- if (typeof e == "string" || typeof e == "number") n += e;
394
- else if (typeof e == "object") if (Array.isArray(e)) {
395
- var r = e.length;
396
- for (t = 0; t < r; t++) e[t] && (o = ut(e[t])) && (n && (n += " "), n += o);
397
- } else for (o in e) e[o] && (n && (n += " "), n += o);
398
- return n;
399
- }
400
- function T() {
401
- for (var e, t, o = 0, n = "", r = arguments.length; o < r; o++) (e = arguments[o]) && (t = ut(e)) && (n && (n += " "), n += t);
402
- return n;
403
- }
404
- function O(e) {
405
- const { type: t, direction: o = "horizontal", children: n } = e, r = C(() => {
398
+ function dt(n) {
399
+ var t, o, e = "";
400
+ if (typeof n == "string" || typeof n == "number") e += n;
401
+ else if (typeof n == "object") if (Array.isArray(n)) {
402
+ var r = n.length;
403
+ for (t = 0; t < r; t++) n[t] && (o = dt(n[t])) && (e && (e += " "), e += o);
404
+ } else for (o in n) n[o] && (e && (e += " "), e += o);
405
+ return e;
406
+ }
407
+ function E() {
408
+ for (var n, t, o = 0, e = "", r = arguments.length; o < r; o++) (n = arguments[o]) && (t = dt(n)) && (e && (e += " "), e += t);
409
+ return e;
410
+ }
411
+ function I(n) {
412
+ const { type: t, direction: o = "horizontal", children: e } = n, r = v(() => {
406
413
  switch (t) {
407
414
  case "user":
408
- return T(R.template_box, R["template_box--user"]);
415
+ return E(M.template_box, M["template_box--user"]);
409
416
  case "bot":
410
417
  default:
411
- return T(
412
- R.template_box,
413
- R["template_box--bot"],
414
- o === "horizontal" ? R["template_box--horizontal"] : R["template_box--vertical"]
418
+ return E(
419
+ M.template_box,
420
+ M["template_box--bot"],
421
+ o === "horizontal" ? M["template_box--horizontal"] : M["template_box--vertical"]
415
422
  );
416
423
  }
417
424
  }, [o, t]);
418
- return /* @__PURE__ */ s("div", { className: r, children: n });
425
+ return /* @__PURE__ */ c("div", { className: r, children: e });
419
426
  }
420
- const jt = "_template_box_content_fs2wk_1", qt = "_content_fs2wk_8", Y = {
427
+ const jt = "_template_box_content_fs2wk_1", Ut = "_content_fs2wk_8", G = {
421
428
  template_box_content: jt,
422
- content: qt
423
- }, $t = "_quick_replies_box_zoq7y_1", Ft = "_quick_reply_zoq7y_7", J = {
424
- quick_replies_box: $t,
425
- quick_reply: Ft
429
+ content: Ut
430
+ }, Kt = "_quick_replies_box_zoq7y_1", Xt = "_quick_reply_zoq7y_7", Q = {
431
+ quick_replies_box: Kt,
432
+ quick_reply: Xt
426
433
  };
427
- function Wt(e) {
428
- const { quickReplies: t } = e, { sendMessage: o, isConnecting: n } = N(), r = b(
429
- (c) => {
430
- o == null || o(c);
434
+ function Yt(n) {
435
+ const { quickReplies: t } = n, { sendMessage: o, isConnecting: e } = T(), r = p(
436
+ (s) => {
437
+ o == null || o(s);
431
438
  },
432
439
  [o]
433
440
  );
434
- return t != null && t.length ? /* @__PURE__ */ s("div", { className: J.quick_replies_box, children: t.map((c) => /* @__PURE__ */ s(
441
+ return t != null && t.length ? /* @__PURE__ */ c("div", { className: Q.quick_replies_box, children: t.map((s) => /* @__PURE__ */ c(
435
442
  "button",
436
443
  {
437
- className: J.quick_reply,
438
- disabled: n,
439
- onClick: () => r(c.text),
440
- children: c.text
444
+ className: Q.quick_reply,
445
+ disabled: e,
446
+ onClick: () => r(s.text),
447
+ children: s.text
441
448
  },
442
- c.text
449
+ s.text
443
450
  )) }) : null;
444
451
  }
445
- function q(e) {
446
- return e.toLocaleTimeString("zh-TW", {
452
+ function $(n) {
453
+ return n.toLocaleTimeString("zh-TW", {
447
454
  timeZone: "Asia/Taipei",
448
455
  hour: "2-digit",
449
456
  minute: "2-digit",
450
457
  hour12: !1
451
458
  });
452
459
  }
453
- const Ut = "_time_rgg92_1", Kt = {
454
- time: Ut
460
+ const Jt = "_time_rgg92_1", Gt = {
461
+ time: Jt
455
462
  };
456
- function $(e) {
457
- const { time: t, className: o } = e;
458
- return t ? /* @__PURE__ */ s("div", { className: T(Kt.time, o), children: q(t) }) : null;
459
- }
460
- function F(e) {
461
- const { quickReplies: t, time: o, children: n } = e;
462
- return /* @__PURE__ */ p("div", { className: Y.template_box_content, children: [
463
- /* @__PURE__ */ p("div", { className: Y.content, children: [
464
- n,
465
- /* @__PURE__ */ s($, { time: o })
463
+ function j(n) {
464
+ const { time: t, className: o } = n;
465
+ return t ? /* @__PURE__ */ c("div", { className: E(Gt.time, o), children: $(t) }) : null;
466
+ }
467
+ function U(n) {
468
+ const { quickReplies: t, time: o, children: e } = n;
469
+ return /* @__PURE__ */ m("div", { className: G.template_box_content, children: [
470
+ /* @__PURE__ */ m("div", { className: G.content, children: [
471
+ e,
472
+ /* @__PURE__ */ c(j, { time: o })
466
473
  ] }),
467
- !!(t != null && t.length) && /* @__PURE__ */ s(Wt, { quickReplies: t })
474
+ !!(t != null && t.length) && /* @__PURE__ */ c(Yt, { quickReplies: t })
468
475
  ] });
469
476
  }
470
- const Xt = "_bot_avatar_xrs9x_1", Q = {
471
- bot_avatar: Xt
472
- }, Yt = (e) => /* @__PURE__ */ g.createElement("svg", { viewBox: "0 0 25 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { d: "M0.40625 12C0.40625 5.37258 5.77883 0 12.4062 0C19.0337 0 24.4062 5.37258 24.4062 12C24.4062 18.6274 19.0337 24 12.4062 24C5.77883 24 0.40625 18.6274 0.40625 12Z", fill: "#585858" }), /* @__PURE__ */ g.createElement("path", { d: "M6.40625 18.75V15C6.40625 14.5875 6.55313 14.2344 6.84688 13.9406C7.14063 13.6469 7.49375 13.5 7.90625 13.5H16.9062C17.3188 13.5 17.6719 13.6469 17.9656 13.9406C18.2594 14.2344 18.4062 14.5875 18.4062 15V18.75H6.40625ZM10.1562 12.75C9.11875 12.75 8.23438 12.3844 7.50312 11.6531C6.77187 10.9219 6.40625 10.0375 6.40625 9C6.40625 7.9625 6.77187 7.07812 7.50312 6.34687C8.23438 5.61562 9.11875 5.25 10.1562 5.25H14.6562C15.6938 5.25 16.5781 5.61562 17.3094 6.34687C18.0406 7.07812 18.4062 7.9625 18.4062 9C18.4062 10.0375 18.0406 10.9219 17.3094 11.6531C16.5781 12.3844 15.6938 12.75 14.6562 12.75H10.1562ZM7.90625 17.25H16.9062V15H7.90625V17.25ZM10.1562 11.25H14.6562C15.2812 11.25 15.8125 11.0312 16.25 10.5938C16.6875 10.1562 16.9062 9.625 16.9062 9C16.9062 8.375 16.6875 7.84375 16.25 7.40625C15.8125 6.96875 15.2812 6.75 14.6562 6.75H10.1562C9.53125 6.75 9 6.96875 8.5625 7.40625C8.125 7.84375 7.90625 8.375 7.90625 9C7.90625 9.625 8.125 10.1562 8.5625 10.5938C9 11.0312 9.53125 11.25 10.1562 11.25ZM10.1562 9.75C10.3688 9.75 10.5469 9.67812 10.6906 9.53438C10.8344 9.39062 10.9062 9.2125 10.9062 9C10.9062 8.7875 10.8344 8.60938 10.6906 8.46562C10.5469 8.32187 10.3688 8.25 10.1562 8.25C9.94375 8.25 9.76562 8.32187 9.62187 8.46562C9.47812 8.60938 9.40625 8.7875 9.40625 9C9.40625 9.2125 9.47812 9.39062 9.62187 9.53438C9.76562 9.67812 9.94375 9.75 10.1562 9.75ZM14.6562 9.75C14.8687 9.75 15.0469 9.67812 15.1906 9.53438C15.3344 9.39062 15.4062 9.2125 15.4062 9C15.4062 8.7875 15.3344 8.60938 15.1906 8.46562C15.0469 8.32187 14.8687 8.25 14.6562 8.25C14.4438 8.25 14.2656 8.32187 14.1219 8.46562C13.9781 8.60938 13.9062 8.7875 13.9062 9C13.9062 9.2125 13.9781 9.39062 14.1219 9.53438C14.2656 9.67812 14.4438 9.75 14.6562 9.75Z", fill: "white" })), P = gt((e) => {
473
- const { avatar: t } = e;
474
- return t ? /* @__PURE__ */ s("img", { src: t, alt: "Bot Avatar", className: Q.bot_avatar }) : /* @__PURE__ */ s("div", { className: Q.bot_avatar, children: /* @__PURE__ */ s(Yt, {}) });
475
- }), Jt = "_card_root_1ygom_1", Qt = "_card_content_1ygom_10", Gt = "_card_title_1ygom_17", te = "_card_description_1ygom_23", ee = "_card_actions_1ygom_37", V = {
476
- card_root: Jt,
477
- card_content: Qt,
478
- card_title: Gt,
479
- card_description: te,
480
- card_actions: ee
477
+ const Qt = "_bot_avatar_xrs9x_1", tt = {
478
+ bot_avatar: Qt
479
+ }, te = (n) => /* @__PURE__ */ g.createElement("svg", { viewBox: "0 0 25 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ g.createElement("path", { d: "M0.40625 12C0.40625 5.37258 5.77883 0 12.4062 0C19.0337 0 24.4062 5.37258 24.4062 12C24.4062 18.6274 19.0337 24 12.4062 24C5.77883 24 0.40625 18.6274 0.40625 12Z", fill: "#585858" }), /* @__PURE__ */ g.createElement("path", { d: "M6.40625 18.75V15C6.40625 14.5875 6.55313 14.2344 6.84688 13.9406C7.14063 13.6469 7.49375 13.5 7.90625 13.5H16.9062C17.3188 13.5 17.6719 13.6469 17.9656 13.9406C18.2594 14.2344 18.4062 14.5875 18.4062 15V18.75H6.40625ZM10.1562 12.75C9.11875 12.75 8.23438 12.3844 7.50312 11.6531C6.77187 10.9219 6.40625 10.0375 6.40625 9C6.40625 7.9625 6.77187 7.07812 7.50312 6.34687C8.23438 5.61562 9.11875 5.25 10.1562 5.25H14.6562C15.6938 5.25 16.5781 5.61562 17.3094 6.34687C18.0406 7.07812 18.4062 7.9625 18.4062 9C18.4062 10.0375 18.0406 10.9219 17.3094 11.6531C16.5781 12.3844 15.6938 12.75 14.6562 12.75H10.1562ZM7.90625 17.25H16.9062V15H7.90625V17.25ZM10.1562 11.25H14.6562C15.2812 11.25 15.8125 11.0312 16.25 10.5938C16.6875 10.1562 16.9062 9.625 16.9062 9C16.9062 8.375 16.6875 7.84375 16.25 7.40625C15.8125 6.96875 15.2812 6.75 14.6562 6.75H10.1562C9.53125 6.75 9 6.96875 8.5625 7.40625C8.125 7.84375 7.90625 8.375 7.90625 9C7.90625 9.625 8.125 10.1562 8.5625 10.5938C9 11.0312 9.53125 11.25 10.1562 11.25ZM10.1562 9.75C10.3688 9.75 10.5469 9.67812 10.6906 9.53438C10.8344 9.39062 10.9062 9.2125 10.9062 9C10.9062 8.7875 10.8344 8.60938 10.6906 8.46562C10.5469 8.32187 10.3688 8.25 10.1562 8.25C9.94375 8.25 9.76562 8.32187 9.62187 8.46562C9.47812 8.60938 9.40625 8.7875 9.40625 9C9.40625 9.2125 9.47812 9.39062 9.62187 9.53438C9.76562 9.67812 9.94375 9.75 10.1562 9.75ZM14.6562 9.75C14.8687 9.75 15.0469 9.67812 15.1906 9.53438C15.3344 9.39062 15.4062 9.2125 15.4062 9C15.4062 8.7875 15.3344 8.60938 15.1906 8.46562C15.0469 8.32187 14.8687 8.25 14.6562 8.25C14.4438 8.25 14.2656 8.32187 14.1219 8.46562C13.9781 8.60938 13.9062 8.7875 13.9062 9C13.9062 9.2125 13.9781 9.39062 14.1219 9.53438C14.2656 9.67812 14.4438 9.75 14.6562 9.75Z", fill: "white" })), Z = ft((n) => {
480
+ const { avatar: t } = n;
481
+ return t ? /* @__PURE__ */ c("img", { src: t, alt: "Bot Avatar", className: tt.bot_avatar }) : /* @__PURE__ */ c("div", { className: tt.bot_avatar, children: /* @__PURE__ */ c(te, {}) });
482
+ }), ee = "_card_root_1ygom_1", ne = "_card_content_1ygom_10", oe = "_card_title_1ygom_17", re = "_card_description_1ygom_23", se = "_card_actions_1ygom_37", A = {
483
+ card_root: ee,
484
+ card_content: ne,
485
+ card_title: oe,
486
+ card_description: re,
487
+ card_actions: se
481
488
  };
482
- function dt(e) {
483
- var i;
484
- const { template: t } = e, { sendMessage: o } = N(), n = C(() => (t == null ? void 0 : t.thumbnailImageUrl.replace(/^http:/, "").replace(/^https:/, "")) || "https://via.assets.so/img.jpg?w=200&h=270&tc=white&bg=#eeeeee", [t]), r = C(() => {
489
+ function _t(n) {
490
+ var a;
491
+ const { template: t } = n, { sendMessage: o } = T(), e = v(() => (t == null ? void 0 : t.thumbnailImageUrl.replace(/^http:/, "").replace(/^https:/, "")) || "https://via.assets.so/img.jpg?w=200&h=270&tc=white&bg=#eeeeee", [t]), r = v(() => {
485
492
  switch (t == null ? void 0 : t.imageAspectRatio) {
486
493
  case "square":
487
494
  return "1 / 1";
@@ -489,25 +496,25 @@ function dt(e) {
489
496
  default:
490
497
  return "1.51 / 1";
491
498
  }
492
- }, [t]), c = b(
493
- (a) => function() {
494
- switch (a.type) {
499
+ }, [t]), s = p(
500
+ (i) => function() {
501
+ switch (i.type) {
495
502
  case "message":
496
- o == null || o(a.text);
503
+ o == null || o(i.text);
497
504
  return;
498
505
  case "uri":
499
- window.open(a.uri, "_blank");
506
+ window.open(i.uri, "_blank");
500
507
  return;
501
508
  }
502
509
  },
503
510
  [o]
504
511
  );
505
- return /* @__PURE__ */ p("div", { className: V.card_root, children: [
506
- (t == null ? void 0 : t.thumbnailImageUrl) && /* @__PURE__ */ s(
512
+ return /* @__PURE__ */ m("div", { className: A.card_root, children: [
513
+ (t == null ? void 0 : t.thumbnailImageUrl) && /* @__PURE__ */ c(
507
514
  "img",
508
515
  {
509
516
  alt: t == null ? void 0 : t.title,
510
- src: n,
517
+ src: e,
511
518
  style: {
512
519
  display: "block",
513
520
  width: "100%",
@@ -517,74 +524,74 @@ function dt(e) {
517
524
  }
518
525
  }
519
526
  ),
520
- /* @__PURE__ */ p("div", { className: V.card_content, children: [
521
- /* @__PURE__ */ s("h5", { className: V.card_title, children: t == null ? void 0 : t.title }),
522
- /* @__PURE__ */ s("div", { className: V.card_description, children: t == null ? void 0 : t.text }),
523
- /* @__PURE__ */ s("div", { className: V.card_actions, children: (i = t == null ? void 0 : t.buttons) == null ? void 0 : i.map((a, l) => /* @__PURE__ */ s("button", { onClick: c(a.action), children: a.label }, l)) })
527
+ /* @__PURE__ */ m("div", { className: A.card_content, children: [
528
+ /* @__PURE__ */ c("h5", { className: A.card_title, children: t == null ? void 0 : t.title }),
529
+ /* @__PURE__ */ c("div", { className: A.card_description, children: t == null ? void 0 : t.text }),
530
+ /* @__PURE__ */ c("div", { className: A.card_actions, children: (a = t == null ? void 0 : t.buttons) == null ? void 0 : a.map((i, u) => /* @__PURE__ */ c("button", { onClick: s(i.action), children: i.label }, u)) })
524
531
  ] })
525
532
  ] });
526
533
  }
527
- function ne(e) {
528
- const { message: t } = e, { avatar: o } = N(), n = t.message.template;
529
- return /* @__PURE__ */ p(O, { type: "bot", direction: "horizontal", children: [
530
- /* @__PURE__ */ s(P, { avatar: o }),
531
- /* @__PURE__ */ s(
532
- F,
534
+ function ce(n) {
535
+ const { message: t } = n, { avatar: o } = T(), e = t.message.template;
536
+ return /* @__PURE__ */ m(I, { type: "bot", direction: "horizontal", children: [
537
+ /* @__PURE__ */ c(Z, { avatar: o }),
538
+ /* @__PURE__ */ c(
539
+ U,
533
540
  {
534
541
  time: t.time,
535
- quickReplies: n == null ? void 0 : n.quickReplies,
536
- children: /* @__PURE__ */ s(dt, { template: n })
542
+ quickReplies: e == null ? void 0 : e.quickReplies,
543
+ children: /* @__PURE__ */ c(_t, { template: e })
537
544
  }
538
545
  )
539
546
  ] });
540
547
  }
541
- const oe = "_text_5fknl_1", re = "_dot_5fknl_31", y = {
542
- text: oe,
548
+ const ie = "_text_5fknl_1", ae = "_dot_5fknl_31", y = {
549
+ text: ie,
543
550
  "text--user": "_text--user_5fknl_8",
544
551
  "text--bot": "_text--bot_5fknl_14",
545
552
  "typing-indicator": "_typing-indicator_5fknl_26",
546
- dot: re
553
+ dot: ae
547
554
  };
548
- function G(e) {
549
- var c;
550
- const { message: t } = e, { avatar: o } = N(), n = z(), r = C(() => {
551
- var i, a, l, d;
555
+ function et(n) {
556
+ var s;
557
+ const { message: t } = n, { avatar: o } = T(), e = L(), r = v(() => {
558
+ var a, i, u, d;
552
559
  switch (t.type) {
553
560
  case "user":
554
561
  return {
555
- color: (i = n == null ? void 0 : n.userMessage) == null ? void 0 : i.color,
556
- backgroundColor: (a = n == null ? void 0 : n.userMessage) == null ? void 0 : a.backgroundColor
562
+ color: (a = e == null ? void 0 : e.userMessage) == null ? void 0 : a.color,
563
+ backgroundColor: (i = e == null ? void 0 : e.userMessage) == null ? void 0 : i.backgroundColor
557
564
  };
558
565
  case "bot":
559
566
  return {
560
- color: (l = n == null ? void 0 : n.botMessage) == null ? void 0 : l.color,
561
- backgroundColor: (d = n == null ? void 0 : n.botMessage) == null ? void 0 : d.backgroundColor
567
+ color: (u = e == null ? void 0 : e.botMessage) == null ? void 0 : u.color,
568
+ backgroundColor: (d = e == null ? void 0 : e.botMessage) == null ? void 0 : d.backgroundColor
562
569
  };
563
570
  default:
564
571
  return {};
565
572
  }
566
- }, [t, n]);
567
- return t.type === "error" ? null : t.type === "user" ? /* @__PURE__ */ p(O, { type: "user", direction: "horizontal", children: [
568
- /* @__PURE__ */ s(
573
+ }, [t, e]);
574
+ return t.type === "error" ? null : t.type === "user" ? /* @__PURE__ */ m(I, { type: "user", direction: "horizontal", children: [
575
+ /* @__PURE__ */ c(
569
576
  "div",
570
577
  {
571
- className: T(y.text, y["text--user"]),
578
+ className: E(y.text, y["text--user"]),
572
579
  style: r,
573
580
  children: t.text
574
581
  }
575
582
  ),
576
- /* @__PURE__ */ s($, { time: t.time })
577
- ] }) : /* @__PURE__ */ p(O, { type: "bot", direction: "horizontal", children: [
578
- /* @__PURE__ */ s(P, { avatar: o }),
579
- /* @__PURE__ */ s(
580
- F,
583
+ /* @__PURE__ */ c(j, { time: t.time })
584
+ ] }) : /* @__PURE__ */ m(I, { type: "bot", direction: "horizontal", children: [
585
+ /* @__PURE__ */ c(Z, { avatar: o }),
586
+ /* @__PURE__ */ c(
587
+ U,
581
588
  {
582
589
  time: t.time,
583
- quickReplies: (c = t.message.template) == null ? void 0 : c.quickReplies,
584
- children: /* @__PURE__ */ s(
590
+ quickReplies: (s = t.message.template) == null ? void 0 : s.quickReplies,
591
+ children: /* @__PURE__ */ c(
585
592
  "div",
586
593
  {
587
- className: T(y.text, y["text--bot"]),
594
+ className: E(y.text, y["text--bot"]),
588
595
  style: r,
589
596
  children: t.message.text
590
597
  }
@@ -593,343 +600,381 @@ function G(e) {
593
600
  )
594
601
  ] });
595
602
  }
596
- function _t(e) {
597
- const { isTyping: t, typingText: o } = e, { messageBoxBottomRef: n, avatar: r } = N(), c = z(), i = M(null), a = b(() => {
598
- var h;
599
- (h = n.current) == null || h.scrollIntoView({ behavior: "smooth" });
600
- }, [n]);
601
- kt({ ref: i, onResize: a });
602
- const l = wt(t, 500), d = C(
603
+ function ht(n) {
604
+ const { isTyping: t, typingText: o } = n, { messageBoxBottomRef: e, avatar: r } = T(), s = L(), a = R(null), i = p(() => {
605
+ var _;
606
+ (_ = e.current) == null || _.scrollIntoView({ behavior: "smooth" });
607
+ }, [e]);
608
+ Lt({ ref: a, onResize: i });
609
+ const u = yt(t, 500), d = v(
603
610
  () => {
604
- var h, f;
611
+ var _, l;
605
612
  return {
606
- color: (h = c == null ? void 0 : c.botMessage) == null ? void 0 : h.color,
607
- backgroundColor: (f = c == null ? void 0 : c.botMessage) == null ? void 0 : f.backgroundColor
613
+ color: (_ = s == null ? void 0 : s.botMessage) == null ? void 0 : _.color,
614
+ backgroundColor: (l = s == null ? void 0 : s.botMessage) == null ? void 0 : l.backgroundColor
608
615
  };
609
616
  },
610
- [c]
617
+ [s]
618
+ ), h = v(
619
+ () => {
620
+ var _;
621
+ return {
622
+ backgroundColor: (_ = s == null ? void 0 : s.botMessage) == null ? void 0 : _.color
623
+ };
624
+ },
625
+ [s]
611
626
  );
612
- return l ? /* @__PURE__ */ p(O, { type: "bot", direction: "horizontal", children: [
613
- /* @__PURE__ */ s(P, { avatar: r }),
614
- /* @__PURE__ */ s(F, { time: /* @__PURE__ */ new Date(), children: /* @__PURE__ */ s(
627
+ return u ? /* @__PURE__ */ m(I, { type: "bot", direction: "horizontal", children: [
628
+ /* @__PURE__ */ c(Z, { avatar: r }),
629
+ /* @__PURE__ */ c(U, { time: /* @__PURE__ */ new Date(), children: /* @__PURE__ */ c(
615
630
  "div",
616
631
  {
617
- ref: i,
618
- className: T(y.text, y["text--bot"]),
632
+ ref: a,
633
+ className: E(y.text, y["text--bot"]),
619
634
  style: d,
620
- children: /* @__PURE__ */ p("span", { children: [
635
+ children: /* @__PURE__ */ m("span", { children: [
621
636
  o ?? "",
622
- l && /* @__PURE__ */ p("span", { className: y["typing-indicator"], children: [
623
- /* @__PURE__ */ s("div", { className: y.dot }),
624
- /* @__PURE__ */ s("div", { className: y.dot }),
625
- /* @__PURE__ */ s("div", { className: y.dot })
637
+ u && /* @__PURE__ */ m("span", { className: y["typing-indicator"], children: [
638
+ /* @__PURE__ */ c("div", { className: y.dot, style: h }),
639
+ /* @__PURE__ */ c("div", { className: y.dot, style: h }),
640
+ /* @__PURE__ */ c("div", { className: y.dot, style: h })
626
641
  ] })
627
642
  ] })
628
643
  }
629
644
  ) })
630
645
  ] }) : null;
631
646
  }
632
- function se(e) {
633
- const { placeholder: t } = e, { isConnecting: o, messages: n } = N(), r = C(
634
- () => Array.from((n == null ? void 0 : n.values()) ?? []).some(
635
- (c) => c.type === "bot" && c.isTyping
647
+ function le(n) {
648
+ const { placeholder: t } = n, { isConnecting: o, messages: e } = T(), r = v(
649
+ () => Array.from((e == null ? void 0 : e.values()) ?? []).some(
650
+ (s) => s.type === "bot" && s.isTyping
636
651
  ),
637
- [n]
652
+ [e]
638
653
  );
639
- return o && !r ? /* @__PURE__ */ s(_t, { isTyping: !0, typingText: t }) : null;
654
+ return o && !r ? /* @__PURE__ */ c(ht, { isTyping: !0, typingText: t }) : null;
640
655
  }
641
- const ce = "_carousel_root_sv1hc_1", ie = "_carousel_time_sv1hc_12", tt = {
642
- carousel_root: ce,
643
- carousel_time: ie
656
+ const ue = "_carousel_root_sv1hc_1", de = "_carousel_time_sv1hc_12", nt = {
657
+ carousel_root: ue,
658
+ carousel_time: de
644
659
  };
645
- function ae(e) {
660
+ function _e(n) {
646
661
  var r;
647
- const { message: t } = e, { avatar: o } = N(), n = t.message.template;
648
- return /* @__PURE__ */ p(O, { type: "bot", direction: "vertical", children: [
649
- /* @__PURE__ */ s(P, { avatar: o }),
650
- /* @__PURE__ */ s("div", { className: tt.carousel_root, children: (r = n.columns) == null ? void 0 : r.map((c, i) => /* @__PURE__ */ s(dt, { template: c }, i)) }),
651
- /* @__PURE__ */ s($, { className: tt.carousel_time, time: t.time })
662
+ const { message: t } = n, { avatar: o } = T(), e = t.message.template;
663
+ return /* @__PURE__ */ m(I, { type: "bot", direction: "vertical", children: [
664
+ /* @__PURE__ */ c(Z, { avatar: o }),
665
+ /* @__PURE__ */ c("div", { className: nt.carousel_root, children: (r = e.columns) == null ? void 0 : r.map((s, a) => /* @__PURE__ */ c(_t, { template: s }, a)) }),
666
+ /* @__PURE__ */ c(j, { className: nt.carousel_time, time: t.time })
652
667
  ] });
653
668
  }
654
- const le = "_hint_root_k5fud_1", ue = "_hint_root__error_k5fud_13", de = "_time_k5fud_17", B = {
655
- hint_root: le,
656
- hint_root__error: ue,
657
- time: de
669
+ const he = "_hint_root_1bw94_1", ge = "_error_hint_title_1bw94_16", me = "_error_hint_message_1bw94_22", fe = "_time_1bw94_31", z = {
670
+ hint_root: he,
671
+ error_hint_title: ge,
672
+ error_hint_message: me,
673
+ time: fe
658
674
  };
659
- function et(e) {
660
- const { message: t } = e;
675
+ function ot(n) {
676
+ const { message: t } = n, { onErrorClick: o, errorMessageRenderer: e } = Vt();
661
677
  if (t.type === "user") return null;
662
678
  if (t.type === "error")
663
- return /* @__PURE__ */ p("div", { className: T(B.hint_root, B.hint_root__error), children: [
664
- /* @__PURE__ */ s("div", { className: B.time, children: q(t.time) }),
665
- /* @__PURE__ */ s("span", { children: "Unexpected error" })
666
- ] });
667
- const o = t.message.template;
668
- return o.type !== A.HINT ? null : /* @__PURE__ */ p("div", { className: B.hint_root, children: [
669
- /* @__PURE__ */ s("div", { className: B.time, children: q(t.time) }),
670
- o.text
679
+ return /* @__PURE__ */ c("div", { className: z.hint_root, children: (e == null ? void 0 : e(t)) ?? /* @__PURE__ */ m(mt, { children: [
680
+ /* @__PURE__ */ m("div", { className: z.error_hint_title, children: [
681
+ /* @__PURE__ */ c("span", { className: z.time, children: $(t.time) }),
682
+ /* @__PURE__ */ c("span", { children: "Unexpected error" })
683
+ ] }),
684
+ o && /* @__PURE__ */ m(
685
+ "div",
686
+ {
687
+ className: z.error_hint_message,
688
+ onClick: o,
689
+ children: [
690
+ "Click ",
691
+ /* @__PURE__ */ c("span", { children: "here" }),
692
+ " to view the report."
693
+ ]
694
+ }
695
+ )
696
+ ] }) });
697
+ const r = t.message.template;
698
+ return r.type !== O.HINT ? null : /* @__PURE__ */ m("div", { className: z.hint_root, children: [
699
+ /* @__PURE__ */ c("div", { className: z.time, children: $(t.time) }),
700
+ r.text
671
701
  ] });
672
702
  }
673
- function _e(e) {
703
+ function be(n) {
674
704
  var o;
675
- const { message: t } = e;
705
+ const { message: t } = n;
676
706
  if (t.type === "user")
677
- return /* @__PURE__ */ s(G, { message: t });
707
+ return /* @__PURE__ */ c(et, { message: t });
678
708
  if (t.type === "error")
679
- return /* @__PURE__ */ s(et, { message: t });
709
+ return /* @__PURE__ */ c(ot, { message: t });
680
710
  if (t.isTyping)
681
- return /* @__PURE__ */ s(
682
- _t,
711
+ return /* @__PURE__ */ c(
712
+ ht,
683
713
  {
684
714
  isTyping: t.isTyping,
685
715
  typingText: t.typingText
686
716
  }
687
717
  );
688
718
  switch ((o = t.message.template) == null ? void 0 : o.type) {
689
- case A.TEXT:
690
- return /* @__PURE__ */ s(G, { message: t });
691
- case A.HINT:
692
- return /* @__PURE__ */ s(et, { message: t });
693
- case A.BUTTON:
694
- return /* @__PURE__ */ s(ne, { message: t });
695
- case A.CAROUSEL:
696
- return /* @__PURE__ */ s(ae, { message: t });
719
+ case O.TEXT:
720
+ return /* @__PURE__ */ c(et, { message: t });
721
+ case O.HINT:
722
+ return /* @__PURE__ */ c(ot, { message: t });
723
+ case O.BUTTON:
724
+ return /* @__PURE__ */ c(ce, { message: t });
725
+ case O.CAROUSEL:
726
+ return /* @__PURE__ */ c(_e, { message: t });
697
727
  default:
698
- return /* @__PURE__ */ s("div", {});
728
+ return /* @__PURE__ */ c("div", {});
699
729
  }
700
730
  }
701
- function he() {
702
- const { chatbot: e } = z(), { messages: t, messageBoxBottomRef: o, botTypingPlaceholder: n } = N();
703
- w(() => {
704
- var c;
705
- (c = o.current) == null || c.scrollIntoView({ behavior: "smooth" });
731
+ function pe() {
732
+ const { chatbot: n } = L(), { messages: t, messageBoxBottomRef: o, botTypingPlaceholder: e } = T();
733
+ C(() => {
734
+ var s;
735
+ (s = o.current) == null || s.scrollIntoView({ behavior: "smooth" });
706
736
  }, [t, o]);
707
- const r = C(
737
+ const r = v(
708
738
  () => ({
709
- maxWidth: (e == null ? void 0 : e.contentMaxWidth) ?? "1200px"
739
+ maxWidth: (n == null ? void 0 : n.contentMaxWidth) ?? "1200px"
710
740
  }),
711
- [e]
741
+ [n]
712
742
  );
713
- return /* @__PURE__ */ s("div", { className: X.chatbot_body, children: /* @__PURE__ */ p("div", { className: X.chatbot_body__content, style: r, children: [
714
- Array.from((t == null ? void 0 : t.values()) ?? []).map((c) => /* @__PURE__ */ s(
715
- _e,
743
+ return /* @__PURE__ */ c("div", { className: J.chatbot_body, children: /* @__PURE__ */ m("div", { className: J.chatbot_body__content, style: r, children: [
744
+ Array.from((t == null ? void 0 : t.values()) ?? []).map((s) => /* @__PURE__ */ c(
745
+ be,
716
746
  {
717
- message: c
747
+ message: s
718
748
  },
719
- c.messageId
749
+ s.messageId
720
750
  )),
721
- /* @__PURE__ */ s(
722
- se,
751
+ /* @__PURE__ */ c(
752
+ le,
723
753
  {
724
- placeholder: n ?? "正在輸入訊息"
754
+ placeholder: e ?? "正在輸入訊息"
725
755
  }
726
756
  ),
727
- /* @__PURE__ */ s("div", { ref: o })
757
+ /* @__PURE__ */ c("div", { ref: o })
728
758
  ] }) });
729
759
  }
730
- const ge = "_chatbot_footer_1slg7_1", fe = "_chatbot_footer__content_1slg7_4", me = "_chatbot_textarea_1slg7_14", be = "_chatbot_submit_button_1slg7_29", pe = "_chatbot_submit_button__disabled_1slg7_54", k = {
731
- chatbot_footer: ge,
732
- chatbot_footer__content: fe,
733
- chatbot_textarea: me,
734
- chatbot_submit_button: be,
735
- chatbot_submit_button__disabled: pe
736
- }, ve = (e) => /* @__PURE__ */ g.createElement("svg", { width: 15, height: 12, viewBox: "0 0 15 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { d: "M0.823242 11.6953V0.945312L14.3328 6.32031L0.823242 11.6953ZM1.90658 10.0911L11.3649 6.32031L1.90658 2.54948V4.98052L5.92574 6.32031L1.90658 7.6601V10.0911Z", fill: "white" })), Ce = (e) => /* @__PURE__ */ g.createElement("svg", { width: 11, height: 16, viewBox: "0 0 11 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { d: "M5.40658 9.90397C4.82435 9.90397 4.33158 9.7023 3.92824 9.29897C3.52491 8.89564 3.32324 8.40286 3.32324 7.82064V2.82064C3.32324 2.23842 3.52491 1.74564 3.92824 1.3423C4.33158 0.938971 4.82435 0.737305 5.40658 0.737305C5.9888 0.737305 6.48158 0.938971 6.88491 1.3423C7.28824 1.74564 7.48991 2.23842 7.48991 2.82064V7.82064C7.48991 8.40286 7.28824 8.89564 6.88491 9.29897C6.48158 9.7023 5.9888 9.90397 5.40658 9.90397ZM4.86491 15.1123V12.8654C3.56213 12.7208 2.47949 12.1724 1.61699 11.2202C0.754492 10.2679 0.323242 9.13467 0.323242 7.82064H1.40658C1.40658 8.92731 1.79706 9.87064 2.57803 10.6506C3.35887 11.4306 4.30331 11.8206 5.41137 11.8206C6.51928 11.8206 7.46213 11.4306 8.23991 10.6506C9.01769 9.87064 9.40658 8.92731 9.40658 7.82064H10.4899C10.4899 9.13467 10.0587 10.2679 9.19616 11.2202C8.33366 12.1724 7.25102 12.7208 5.94824 12.8654V15.1123H4.86491ZM5.40658 8.82064C5.68991 8.82064 5.92741 8.7248 6.11908 8.53314C6.31074 8.34147 6.40658 8.10397 6.40658 7.82064V2.82064C6.40658 2.5373 6.31074 2.2998 6.11908 2.10814C5.92741 1.91647 5.68991 1.82064 5.40658 1.82064C5.12324 1.82064 4.88574 1.91647 4.69408 2.10814C4.50241 2.2998 4.40658 2.5373 4.40658 2.82064V7.82064C4.40658 8.10397 4.50241 8.34147 4.69408 8.53314C4.88574 8.7248 5.12324 8.82064 5.40658 8.82064Z", fill: "white" })), we = (e) => /* @__PURE__ */ g.createElement("svg", { width: 40, height: 40, viewBox: "0 0 40 40", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("circle", { cx: 20, cy: 20, r: 18, fill: "#D04444" }), /* @__PURE__ */ g.createElement("rect", { x: 12, y: 12, width: 16, height: 16, fill: "#FFFFFF", rx: 2, ry: 2 }));
737
- function xe(e) {
738
- const { setValue: t, className: o } = e, [n, r] = x(!1), c = M(null);
739
- w(() => {
740
- const u = window.SpeechRecognition || window.webkitSpeechRecognition;
741
- if (!u) return;
742
- const _ = new u();
743
- _.lang = "zh-TW", _.continuous = !0, _.interimResults = !0, _.onresult = (m) => {
744
- for (let v = m.resultIndex; v < m.results.length; v++)
745
- m.results[v].isFinal && t((E) => E + m.results[v][0].transcript);
746
- }, _.onerror = (m) => {
747
- alert(`語音識別錯誤: ${JSON.stringify(m.error)}`);
748
- }, _.onend = () => {
760
+ const Ce = "_chatbot_footer_1slg7_1", ve = "_chatbot_footer__content_1slg7_4", xe = "_chatbot_textarea_1slg7_14", we = "_chatbot_submit_button_1slg7_29", ye = "_chatbot_submit_button__disabled_1slg7_54", S = {
761
+ chatbot_footer: Ce,
762
+ chatbot_footer__content: ve,
763
+ chatbot_textarea: xe,
764
+ chatbot_submit_button: we,
765
+ chatbot_submit_button__disabled: ye
766
+ }, Te = (n) => /* @__PURE__ */ g.createElement("svg", { width: 15, height: 12, viewBox: "0 0 15 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ g.createElement("path", { d: "M0.823242 11.6953V0.945312L14.3328 6.32031L0.823242 11.6953ZM1.90658 10.0911L11.3649 6.32031L1.90658 2.54948V4.98052L5.92574 6.32031L1.90658 7.6601V10.0911Z", fill: "white" })), Ee = (n) => /* @__PURE__ */ g.createElement("svg", { width: 11, height: 16, viewBox: "0 0 11 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ g.createElement("path", { d: "M5.40658 9.90397C4.82435 9.90397 4.33158 9.7023 3.92824 9.29897C3.52491 8.89564 3.32324 8.40286 3.32324 7.82064V2.82064C3.32324 2.23842 3.52491 1.74564 3.92824 1.3423C4.33158 0.938971 4.82435 0.737305 5.40658 0.737305C5.9888 0.737305 6.48158 0.938971 6.88491 1.3423C7.28824 1.74564 7.48991 2.23842 7.48991 2.82064V7.82064C7.48991 8.40286 7.28824 8.89564 6.88491 9.29897C6.48158 9.7023 5.9888 9.90397 5.40658 9.90397ZM4.86491 15.1123V12.8654C3.56213 12.7208 2.47949 12.1724 1.61699 11.2202C0.754492 10.2679 0.323242 9.13467 0.323242 7.82064H1.40658C1.40658 8.92731 1.79706 9.87064 2.57803 10.6506C3.35887 11.4306 4.30331 11.8206 5.41137 11.8206C6.51928 11.8206 7.46213 11.4306 8.23991 10.6506C9.01769 9.87064 9.40658 8.92731 9.40658 7.82064H10.4899C10.4899 9.13467 10.0587 10.2679 9.19616 11.2202C8.33366 12.1724 7.25102 12.7208 5.94824 12.8654V15.1123H4.86491ZM5.40658 8.82064C5.68991 8.82064 5.92741 8.7248 6.11908 8.53314C6.31074 8.34147 6.40658 8.10397 6.40658 7.82064V2.82064C6.40658 2.5373 6.31074 2.2998 6.11908 2.10814C5.92741 1.91647 5.68991 1.82064 5.40658 1.82064C5.12324 1.82064 4.88574 1.91647 4.69408 2.10814C4.50241 2.2998 4.40658 2.5373 4.40658 2.82064V7.82064C4.40658 8.10397 4.50241 8.34147 4.69408 8.53314C4.88574 8.7248 5.12324 8.82064 5.40658 8.82064Z", fill: "white" })), Ne = (n) => /* @__PURE__ */ g.createElement("svg", { width: 40, height: 40, viewBox: "0 0 40 40", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ g.createElement("circle", { cx: 20, cy: 20, r: 18, fill: "#D04444" }), /* @__PURE__ */ g.createElement("rect", { x: 12, y: 12, width: 16, height: 16, fill: "#FFFFFF", rx: 2, ry: 2 }));
767
+ function ke(n) {
768
+ const { setValue: t, className: o } = n, [e, r] = w(!1), s = R(null);
769
+ C(() => {
770
+ const l = window.SpeechRecognition || window.webkitSpeechRecognition;
771
+ if (!l) return;
772
+ const b = new l();
773
+ b.lang = "zh-TW", b.continuous = !0, b.interimResults = !0, b.onresult = (f) => {
774
+ for (let x = f.resultIndex; x < f.results.length; x++)
775
+ f.results[x].isFinal && t((N) => N + f.results[x][0].transcript);
776
+ }, b.onerror = (f) => {
777
+ alert(`語音識別錯誤: ${JSON.stringify(f.error)}`);
778
+ }, b.onend = () => {
749
779
  r(!1);
750
- }, c.current = _;
780
+ }, s.current = b;
751
781
  }, [t]);
752
- const i = b(() => {
753
- if (!c.current) {
782
+ const a = p(() => {
783
+ if (!s.current) {
754
784
  alert("無法開始辨識: 語音識別器未初始化,請檢查是否有授權使用麥克風");
755
785
  return;
756
786
  }
757
787
  try {
758
- c.current.start(), r(!0);
759
- } catch (u) {
760
- alert(`無法開始辨識: ${JSON.stringify(u)}`);
788
+ s.current.start(), r(!0);
789
+ } catch (l) {
790
+ alert(`無法開始辨識: ${JSON.stringify(l)}`);
761
791
  }
762
- }, []), a = b(() => {
763
- c.current && (c.current.stop(), r(!1));
764
- }, []), l = b(
765
- (u) => {
766
- n || (u.preventDefault(), i());
792
+ }, []), i = p(() => {
793
+ s.current && (s.current.stop(), r(!1));
794
+ }, []), u = p(
795
+ (l) => {
796
+ e || (l.preventDefault(), a());
767
797
  },
768
- [n, i]
769
- ), d = b(
770
- (u) => {
771
- n && (u.preventDefault(), a());
798
+ [e, a]
799
+ ), d = p(
800
+ (l) => {
801
+ e && (l.preventDefault(), i());
772
802
  },
773
- [n, a]
774
- ), h = b(
775
- (u) => {
776
- n || (u.preventDefault(), i());
803
+ [e, i]
804
+ ), h = p(
805
+ (l) => {
806
+ e || (l.preventDefault(), a());
777
807
  },
778
- [n, i]
779
- ), f = b(
780
- (u) => {
781
- n && (u.preventDefault(), a());
808
+ [e, a]
809
+ ), _ = p(
810
+ (l) => {
811
+ e && (l.preventDefault(), i());
782
812
  },
783
- [n, a]
813
+ [e, i]
784
814
  );
785
- return /* @__PURE__ */ s(
815
+ return /* @__PURE__ */ c(
786
816
  "div",
787
817
  {
788
818
  className: o,
789
- onMouseDown: l,
819
+ onMouseDown: u,
790
820
  onMouseUp: d,
791
821
  onTouchStart: h,
792
- onTouchEnd: f,
793
- children: n ? /* @__PURE__ */ s(we, {}) : /* @__PURE__ */ s(Ce, {})
822
+ onTouchEnd: _,
823
+ children: e ? /* @__PURE__ */ c(Ne, {}) : /* @__PURE__ */ c(Ee, {})
794
824
  }
795
825
  );
796
826
  }
797
- function ye() {
798
- const { sendMessage: e, isConnecting: t } = N(), { chatbot: o } = z(), [n, r] = x(""), [c, i] = x(!1), a = M(null), l = C(
799
- () => t || !n.trim(),
800
- [t, n]
801
- ), d = C(
827
+ function Se() {
828
+ const { sendMessage: n, isConnecting: t } = T(), { chatbot: o } = L(), [e, r] = w(""), [s, a] = w(!1), i = R(null), u = v(
829
+ () => t || !e.trim(),
830
+ [t, e]
831
+ ), d = v(
802
832
  () => ({
803
833
  maxWidth: (o == null ? void 0 : o.contentMaxWidth) ?? "1200px",
804
834
  borderTopColor: o == null ? void 0 : o.borderColor
805
835
  }),
806
836
  [o]
807
- ), h = b(
808
- (_) => {
809
- const m = _.target, v = m.value;
810
- m.style.height = "36px", v && (m.style.height = `${m.scrollHeight}px`), r(_.target.value);
837
+ ), h = p(
838
+ (b) => {
839
+ const f = b.target, x = f.value;
840
+ f.style.height = "36px", x && (f.style.height = `${f.scrollHeight}px`), r(b.target.value);
811
841
  },
812
842
  []
813
- ), f = b(() => {
814
- !c && !t && (e == null || e(n), r(""), a.current && (a.current.style.height = "36px"));
815
- }, [c, t, e, n]), u = b(
816
- (_) => {
817
- if (_.key === "Enter" && !c && !t && n.trim()) {
818
- e == null || e(n), r("");
819
- const m = _.target;
820
- m.style.height = "36px";
843
+ ), _ = p(() => {
844
+ !s && !t && (n == null || n(e), r(""), i.current && (i.current.style.height = "36px"));
845
+ }, [s, t, n, e]), l = p(
846
+ (b) => {
847
+ if (b.key === "Enter" && !s && !t && e.trim()) {
848
+ n == null || n(e), r("");
849
+ const f = b.target;
850
+ f.style.height = "36px";
821
851
  }
822
852
  },
823
- [c, t, e, n]
853
+ [s, t, n, e]
824
854
  );
825
- return /* @__PURE__ */ s("div", { className: k.chatbot_footer, children: /* @__PURE__ */ p("div", { className: k.chatbot_footer__content, style: d, children: [
826
- /* @__PURE__ */ s(
855
+ return /* @__PURE__ */ c("div", { className: S.chatbot_footer, children: /* @__PURE__ */ m("div", { className: S.chatbot_footer__content, style: d, children: [
856
+ /* @__PURE__ */ c(
827
857
  "textarea",
828
858
  {
829
- ref: a,
830
- className: k.chatbot_textarea,
859
+ ref: i,
860
+ className: S.chatbot_textarea,
831
861
  disabled: t,
832
862
  cols: 40,
833
- value: n,
863
+ value: e,
834
864
  placeholder: "Enter message",
835
865
  onChange: h,
836
- onKeyDown: u,
837
- onCompositionStart: () => i(!0),
838
- onCompositionEnd: () => i(!1)
866
+ onKeyDown: l,
867
+ onCompositionStart: () => a(!0),
868
+ onCompositionEnd: () => a(!1)
839
869
  }
840
870
  ),
841
- n ? /* @__PURE__ */ s(
871
+ e ? /* @__PURE__ */ c(
842
872
  "button",
843
873
  {
844
- className: T(
845
- k.chatbot_submit_button,
846
- l && k.chatbot_submit_button__disabled
874
+ className: E(
875
+ S.chatbot_submit_button,
876
+ u && S.chatbot_submit_button__disabled
847
877
  ),
848
- disabled: l,
849
- onClick: f,
850
- children: /* @__PURE__ */ s(ve, {})
878
+ disabled: u,
879
+ onClick: _,
880
+ children: /* @__PURE__ */ c(Te, {})
851
881
  }
852
- ) : /* @__PURE__ */ s(
853
- xe,
882
+ ) : /* @__PURE__ */ c(
883
+ ke,
854
884
  {
855
885
  setValue: r,
856
- className: T(
857
- k.chatbot_submit_button,
858
- t && k.chatbot_submit_button__disabled
886
+ className: E(
887
+ S.chatbot_submit_button,
888
+ t && S.chatbot_submit_button__disabled
859
889
  )
860
890
  }
861
891
  )
862
892
  ] }) });
863
893
  }
864
- const Te = "_chatbot_root_1tnjj_1", Ne = "_full_screen_1tnjj_121", Ee = "_chatbot_container_1tnjj_129", Le = "_screen_keyboard_open_1tnjj_134", I = {
865
- chatbot_root: Te,
866
- full_screen: Ne,
867
- chatbot_container: Ee,
868
- screen_keyboard_open: Le
894
+ const Re = "_chatbot_root_1t5cx_1", Le = "_full_screen_1t5cx_122", Me = "_chatbot_container_1t5cx_130", ze = "_screen_keyboard_open_1t5cx_135", B = {
895
+ chatbot_root: Re,
896
+ full_screen: Le,
897
+ chatbot_container: Me,
898
+ screen_keyboard_open: ze
869
899
  };
870
- function ke(e) {
871
- const { children: t } = e, o = M(null);
872
- Et(o), Nt();
873
- const [, n] = yt() ?? [], r = Tt();
874
- return /* @__PURE__ */ s("div", { className: I.full_screen, children: /* @__PURE__ */ s(
900
+ function Ve(n) {
901
+ const { children: t } = n, o = R(null), e = L();
902
+ St(o), kt();
903
+ const [, r] = Et() ?? [], s = Nt(), a = v(() => {
904
+ var i, u;
905
+ return Object.assign(
906
+ (i = e == null ? void 0 : e.chatbot) != null && i.backgroundColor ? {
907
+ backgroundColor: (u = e.chatbot) == null ? void 0 : u.backgroundColor
908
+ } : {},
909
+ s ? { height: r } : {}
910
+ );
911
+ }, [r, s, e]);
912
+ return /* @__PURE__ */ c("div", { className: B.full_screen, children: /* @__PURE__ */ c(
875
913
  "div",
876
914
  {
877
915
  ref: o,
878
- className: T(
879
- I.chatbot_container,
880
- r && I.screen_keyboard_open
916
+ className: E(
917
+ B.chatbot_container,
918
+ s && B.screen_keyboard_open
881
919
  ),
882
- style: r ? { height: n } : void 0,
920
+ style: a,
883
921
  children: t
884
922
  }
885
923
  ) });
886
924
  }
887
- function Me(e) {
888
- const { fullScreen: t, children: o } = e, n = M(null);
889
- Lt(n);
890
- const r = z();
891
- return /* @__PURE__ */ s("div", { ref: n, className: I.chatbot_root, children: t ? /* @__PURE__ */ s(ke, { children: o }) : /* @__PURE__ */ s("div", { className: I.chatbot_container, style: r == null ? void 0 : r.chatbot, children: o }) });
925
+ function He(n) {
926
+ const { fullScreen: t, children: o } = n, e = R(null);
927
+ Rt(e);
928
+ const r = L();
929
+ return /* @__PURE__ */ c("div", { ref: e, className: B.chatbot_root, children: t ? /* @__PURE__ */ c(Ve, { children: o }) : /* @__PURE__ */ c("div", { className: B.chatbot_container, style: r == null ? void 0 : r.chatbot, children: o }) });
892
930
  }
893
- function He(e) {
931
+ function Ie(n) {
894
932
  const {
895
933
  title: t,
896
934
  theme: o,
897
- config: n,
935
+ config: e,
898
936
  customChannelId: r,
899
- initMessages: c,
900
- debugMode: i = !1,
937
+ initMessages: s,
901
938
  fullScreen: a = !1,
902
- avatar: l,
903
- botTypingPlaceholder: d,
904
- onReset: h,
905
- onClose: f
906
- } = e;
907
- return /* @__PURE__ */ s(pt, { theme: o, children: /* @__PURE__ */ s(
939
+ avatar: i,
940
+ botTypingPlaceholder: u,
941
+ onReset: d,
942
+ onClose: h,
943
+ onErrorClick: _,
944
+ errorMessageRenderer: l
945
+ } = n;
946
+ return /* @__PURE__ */ c(vt, { theme: o, children: /* @__PURE__ */ c(
908
947
  Mt,
909
948
  {
910
- avatar: l,
911
- config: n,
949
+ avatar: i,
950
+ config: e,
912
951
  customChannelId: r,
913
- initMessages: c,
914
- botTypingPlaceholder: d,
915
- options: { showDebugMessage: i },
916
- children: /* @__PURE__ */ p(Me, { fullScreen: a, children: [
917
- /* @__PURE__ */ s(Ot, { title: t, onReset: h, onClose: f }),
918
- /* @__PURE__ */ s(he, {}),
919
- /* @__PURE__ */ s(ye, {})
952
+ initMessages: s,
953
+ botTypingPlaceholder: u,
954
+ children: /* @__PURE__ */ m(He, { fullScreen: a, children: [
955
+ /* @__PURE__ */ c(Dt, { title: t, onReset: d, onClose: h }),
956
+ /* @__PURE__ */ c(
957
+ zt,
958
+ {
959
+ onErrorClick: _,
960
+ errorMessageRenderer: l,
961
+ children: /* @__PURE__ */ c(pe, {})
962
+ }
963
+ ),
964
+ /* @__PURE__ */ c(Se, {})
920
965
  ] })
921
966
  }
922
967
  ) });
923
968
  }
924
969
  export {
925
- He as Chatbot,
926
- vt as useAsgardServiceClient,
927
- Ct as useChannel,
928
- wt as useDebounce,
929
- Tt as useIsOnScreenKeyboardOpen,
930
- Nt as useOnScreenKeyboardScrollFix,
931
- Et as usePreventOverScrolling,
932
- kt as useResizeObserver,
933
- Lt as useUpdateVh,
934
- yt as useViewportSize
970
+ Ie as Chatbot,
971
+ xt as useAsgardServiceClient,
972
+ wt as useChannel,
973
+ yt as useDebounce,
974
+ Nt as useIsOnScreenKeyboardOpen,
975
+ kt as useOnScreenKeyboardScrollFix,
976
+ St as usePreventOverScrolling,
977
+ Lt as useResizeObserver,
978
+ Rt as useUpdateVh,
979
+ Et as useViewportSize
935
980
  };