@linktr.ee/messaging-react 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  import { jsx as t, jsxs as d, Fragment as de } from "react/jsx-runtime";
2
2
  import D from "classnames";
3
- import B, { createContext as ht, useContext as ft, useCallback as G, useState as O, useRef as J, useEffect as q, useMemo as pe, Suspense as gt } from "react";
4
- import { StreamChatService as Ut } from "@linktr.ee/messaging-core";
5
- import { Chat as zt, ChannelList as Bt, DateSeparator as $t, useChannelStateContext as oe, useChatContext as Le, areMessageUIPropsEqual as jt, useMessageReminder as Gt, useComponentContext as bt, Attachment as Vt, EditMessageModal as Ht, MessageBlocked as Yt, MessageBouncePrompt as qt, MessageDeleted as Wt, MessageIsThreadReplyInChannelButtonIndicator as Xt, MessageRepliesCountButton as Zt, ReminderNotification as Jt, StreamedMessageText as Kt, messageHasAttachments as Qt, messageHasReactions as es, isDateSeparatorMessage as ts, isMessageBlocked as ss, isMessageBounced as ns, MessageBounceModal as as, MessageText as tt, Poll as rs, MessageErrorIcon as is, useMessageContext as pt, useMessageComposer as os, useStateStore as ls, MessageInput as cs, useMessageInputContext as ds, useMessageComposerHasSendableData as us, SimpleAttachmentSelector as ms, QuotedMessagePreview as hs, AttachmentPreviewList as fs, TextareaComposer as gs, MessageTimestamp as Ce, useTypingContext as bs, Channel as ps, WithComponents as xs, Window as vs, MessageList as ws } from "stream-chat-react";
6
- import { StarIcon as Me, GiftIcon as ys, XIcon as xt, SpinnerGapIcon as Ee, SignOutIcon as _s, ProhibitInsetIcon as st, FlagIcon as Ns, FileIcon as vt, ImageIcon as Cs, SpeakerHighIcon as Es, VideoCameraIcon as Ss, FileMdIcon as Is, FileTextIcon as ks, FileZipIcon as Ms, FilePptIcon as Ts, FileCsvIcon as Ds, FileXlsIcon as Rs, FileDocIcon as Ls, FilePdfIcon as As, CircleNotchIcon as wt, PlayIcon as nt, PauseIcon as Fs, LinkIcon as Os, DownloadSimpleIcon as Ps, ThumbsUpIcon as Us, ThumbsDownIcon as zs, ArrowUpIcon as Bs, SparkleIcon as Te, ProhibitIcon as $s, ArrowLeftIcon as at, CaretRightIcon as rt, DotsThreeIcon as it } from "@phosphor-icons/react";
7
- import { LinkPreviewsManager as ot } from "stream-chat";
8
- const yt = ht({
3
+ import B, { createContext as Ae, useContext as Fe, useCallback as G, useState as O, useRef as J, useEffect as q, useMemo as pe, Suspense as pt } from "react";
4
+ import { StreamChatService as $t } from "@linktr.ee/messaging-core";
5
+ import { Chat as jt, ChannelList as Gt, DateSeparator as Vt, useChannelStateContext as oe, useChatContext as Oe, areMessageUIPropsEqual as Ht, useMessageReminder as Yt, useComponentContext as xt, Attachment as qt, EditMessageModal as Wt, MessageBlocked as Xt, MessageBouncePrompt as Zt, MessageDeleted as Jt, MessageIsThreadReplyInChannelButtonIndicator as Kt, MessageRepliesCountButton as Qt, ReminderNotification as es, StreamedMessageText as ts, messageHasAttachments as ss, messageHasReactions as ns, isDateSeparatorMessage as as, isMessageBlocked as rs, isMessageBounced as is, MessageBounceModal as os, MessageText as at, Poll as ls, MessageErrorIcon as cs, useMessageContext as vt, useMessageComposer as ds, useStateStore as us, MessageInput as ms, useMessageInputContext as hs, useMessageComposerHasSendableData as fs, SimpleAttachmentSelector as gs, QuotedMessagePreview as bs, AttachmentPreviewList as ps, TextareaComposer as xs, MessageTimestamp as Ce, AIStates as Ee, useTypingContext as vs, useAIState as ws, Channel as ys, WithComponents as _s, Window as Ns, MessageList as Cs } from "stream-chat-react";
6
+ import { StarIcon as Me, GiftIcon as Es, XIcon as wt, SpinnerGapIcon as Se, SignOutIcon as Ss, ProhibitInsetIcon as rt, FlagIcon as Is, FileIcon as yt, ImageIcon as ks, SpeakerHighIcon as Ts, VideoCameraIcon as Ms, FileMdIcon as Ds, FileTextIcon as Rs, FileZipIcon as Ls, FilePptIcon as As, FileCsvIcon as Fs, FileXlsIcon as Os, FileDocIcon as Ps, FilePdfIcon as zs, CircleNotchIcon as _t, PlayIcon as it, PauseIcon as Us, LinkIcon as Bs, DownloadSimpleIcon as $s, ThumbsUpIcon as js, ThumbsDownIcon as Gs, ArrowUpIcon as Vs, SparkleIcon as De, ProhibitIcon as Hs, ArrowLeftIcon as ot, CaretRightIcon as lt, DotsThreeIcon as ct } from "@phosphor-icons/react";
7
+ import { LinkPreviewsManager as dt } from "stream-chat";
8
+ const Nt = Ae({
9
9
  service: null,
10
10
  client: null,
11
11
  isConnected: !1,
@@ -15,7 +15,7 @@ const yt = ht({
15
15
  refreshConnection: async () => {
16
16
  },
17
17
  debug: !1
18
- }), Ae = () => ft(yt), fa = ({
18
+ }), Pe = () => Fe(Nt), wa = ({
19
19
  children: e,
20
20
  user: s,
21
21
  serviceConfig: n,
@@ -24,8 +24,8 @@ const yt = ht({
24
24
  debug: l = !1
25
25
  }) => {
26
26
  const i = G(
27
- (k, ...T) => {
28
- l && console.log(`🔥 [MessagingProvider] ${k}`, ...T);
27
+ (k, ...M) => {
28
+ l && console.log(`🔥 [MessagingProvider] ${k}`, ...M);
29
29
  },
30
30
  [l]
31
31
  );
@@ -35,7 +35,7 @@ const yt = ht({
35
35
  serviceConfig: !!n,
36
36
  capabilities: Object.keys(o)
37
37
  });
38
- const [c, f] = O(null), [u, b] = O(null), [h, p] = O(!1), [r, g] = O(!1), [x, y] = O(null), N = J(!1), w = J({
38
+ const [c, f] = O(null), [g, y] = O(null), [m, h] = O(!1), [r, b] = O(!1), [w, x] = O(null), N = J(!1), p = J({
39
39
  userId: s == null ? void 0 : s.id,
40
40
  apiKey: a,
41
41
  serviceConfig: n,
@@ -45,12 +45,12 @@ const yt = ht({
45
45
  renderCount: S.current,
46
46
  currentProps: { userId: s == null ? void 0 : s.id, apiKey: (a == null ? void 0 : a.substring(0, 8)) + "..." },
47
47
  propChanges: {
48
- userChanged: w.current.userId !== (s == null ? void 0 : s.id),
49
- apiKeyChanged: w.current.apiKey !== a,
50
- serviceConfigChanged: w.current.serviceConfig !== n,
51
- capabilitiesChanged: w.current.capabilities !== o
48
+ userChanged: p.current.userId !== (s == null ? void 0 : s.id),
49
+ apiKeyChanged: p.current.apiKey !== a,
50
+ serviceConfigChanged: p.current.serviceConfig !== n,
51
+ capabilitiesChanged: p.current.capabilities !== o
52
52
  }
53
- }), w.current = {
53
+ }), p.current = {
54
54
  userId: s == null ? void 0 : s.id,
55
55
  apiKey: a,
56
56
  serviceConfig: n,
@@ -64,8 +64,8 @@ const yt = ht({
64
64
  dependencies: {
65
65
  apiKey: (a == null ? void 0 : a.substring(0, 8)) + "...",
66
66
  serviceConfigRef: n,
67
- serviceConfigStable: w.current.serviceConfig === n,
68
- apiKeyStable: w.current.apiKey === a
67
+ serviceConfigStable: p.current.serviceConfig === n,
68
+ apiKeyStable: p.current.apiKey === a
69
69
  }
70
70
  }), !a || !n) {
71
71
  i("⚠️ SERVICE INIT SKIPPED", {
@@ -77,32 +77,32 @@ const yt = ht({
77
77
  i("🚀 CREATING NEW SERVICE", {
78
78
  renderCount: k,
79
79
  apiKey: (a == null ? void 0 : a.substring(0, 8)) + "...",
80
- serviceConfigChanged: w.current.serviceConfig !== n
80
+ serviceConfigChanged: p.current.serviceConfig !== n
81
81
  });
82
- const T = new Ut({
82
+ const M = new $t({
83
83
  ...n,
84
84
  apiKey: a,
85
85
  debug: l
86
86
  });
87
- return f(T), i("✅ SERVICE SET", {
87
+ return f(M), i("✅ SERVICE SET", {
88
88
  renderCount: k,
89
- serviceInstance: !!T
89
+ serviceInstance: !!M
90
90
  }), () => {
91
91
  i("🧹 SERVICE CLEANUP", {
92
92
  renderCount: k,
93
93
  reason: "Effect cleanup"
94
- }), T.disconnectUser().catch(console.error);
94
+ }), M.disconnectUser().catch(console.error);
95
95
  };
96
96
  }, [a, n, l, i]);
97
97
  const I = J(null);
98
98
  q(() => {
99
- var T, j;
99
+ var M, j;
100
100
  if (i("🔗 USER CONNECTION EFFECT TRIGGERED", {
101
101
  hasService: !!c,
102
102
  hasUser: !!s,
103
103
  userId: s == null ? void 0 : s.id,
104
104
  isConnecting: N.current,
105
- isConnected: h,
105
+ isConnected: m,
106
106
  dependencies: { service: !!c, userId: s == null ? void 0 : s.id }
107
107
  }), !c || !s) {
108
108
  i("⚠️ USER CONNECTION SKIPPED", "Missing service or user");
@@ -112,7 +112,7 @@ const yt = ht({
112
112
  i("⚠️ USER CONNECTION SKIPPED", "Already connecting");
113
113
  return;
114
114
  }
115
- if (((T = I.current) == null ? void 0 : T.serviceId) === c && ((j = I.current) == null ? void 0 : j.userId) === s.id) {
115
+ if (((M = I.current) == null ? void 0 : M.serviceId) === c && ((j = I.current) == null ? void 0 : j.userId) === s.id) {
116
116
  i(
117
117
  "⚠️ USER CONNECTION SKIPPED",
118
118
  "Already connected this user with this service"
@@ -120,40 +120,40 @@ const yt = ht({
120
120
  return;
121
121
  }
122
122
  (async () => {
123
- i("🚀 STARTING USER CONNECTION", { userId: s.id }), N.current = !0, g(!0), y(null);
123
+ i("🚀 STARTING USER CONNECTION", { userId: s.id }), N.current = !0, b(!0), x(null);
124
124
  try {
125
125
  i("📞 CALLING SERVICE.CONNECTUSER", { userId: s.id });
126
126
  const _ = await c.connectUser(s);
127
- b(_), p(!0), I.current = { serviceId: c, userId: s.id }, i("✅ USER CONNECTION SUCCESS", {
127
+ y(_), h(!0), I.current = { serviceId: c, userId: s.id }, i("✅ USER CONNECTION SUCCESS", {
128
128
  userId: s.id,
129
129
  clientId: _.userID
130
130
  });
131
131
  } catch (_) {
132
132
  const L = _ instanceof Error ? _.message : "Connection failed";
133
- y(L), i("❌ USER CONNECTION ERROR", {
133
+ x(L), i("❌ USER CONNECTION ERROR", {
134
134
  userId: s.id,
135
135
  error: L
136
136
  });
137
137
  } finally {
138
- g(!1), N.current = !1, i("🔄 USER CONNECTION FINISHED", {
138
+ b(!1), N.current = !1, i("🔄 USER CONNECTION FINISHED", {
139
139
  userId: s.id,
140
- isConnected: h
140
+ isConnected: m
141
141
  });
142
142
  }
143
143
  })();
144
- }, [c, s, i, h]), q(() => (i("🔌 CLEANUP EFFECT REGISTERED", {
144
+ }, [c, s, i, m]), q(() => (i("🔌 CLEANUP EFFECT REGISTERED", {
145
145
  hasService: !!c,
146
- isConnected: h
146
+ isConnected: m
147
147
  }), () => {
148
- c && h ? (i(
148
+ c && m ? (i(
149
149
  "🧹 CLEANUP EFFECT TRIGGERED",
150
150
  "Cleaning up connection on unmount"
151
151
  ), I.current = null, c.disconnectUser().catch(console.error)) : i("🔇 CLEANUP EFFECT SKIPPED", {
152
152
  hasService: !!c,
153
- isConnected: h
153
+ isConnected: m
154
154
  });
155
- }), [c, h, i]);
156
- const M = G(async () => {
155
+ }), [c, m, i]);
156
+ const T = G(async () => {
157
157
  if (i("🔄 REFRESH CONNECTION CALLED", {
158
158
  hasService: !!c,
159
159
  hasUser: !!s
@@ -161,76 +161,76 @@ const yt = ht({
161
161
  i("⚠️ REFRESH CONNECTION SKIPPED", "Missing service or user");
162
162
  return;
163
163
  }
164
- i("🚀 STARTING CONNECTION REFRESH", { userId: s.id }), g(!0);
164
+ i("🚀 STARTING CONNECTION REFRESH", { userId: s.id }), b(!0);
165
165
  try {
166
166
  i("🔌 DISCONNECTING FOR REFRESH"), await c.disconnectUser(), i("📞 RECONNECTING FOR REFRESH");
167
167
  const k = await c.connectUser(s);
168
- b(k), p(!0), y(null), i("✅ CONNECTION REFRESH SUCCESS", { userId: s.id });
168
+ y(k), h(!0), x(null), i("✅ CONNECTION REFRESH SUCCESS", { userId: s.id });
169
169
  } catch (k) {
170
- const T = k instanceof Error ? k.message : "Refresh failed";
171
- y(T), i("❌ CONNECTION REFRESH ERROR", {
170
+ const M = k instanceof Error ? k.message : "Refresh failed";
171
+ x(M), i("❌ CONNECTION REFRESH ERROR", {
172
172
  userId: s.id,
173
- error: T
173
+ error: M
174
174
  });
175
175
  } finally {
176
- g(!1), i("🔄 CONNECTION REFRESH FINISHED", { userId: s.id });
176
+ b(!1), i("🔄 CONNECTION REFRESH FINISHED", { userId: s.id });
177
177
  }
178
178
  }, [c, s, i]), $ = B.useMemo(() => (i("💫 CONTEXT VALUE MEMOIZATION", {
179
179
  hasService: !!c,
180
- hasClient: !!u,
181
- isConnected: h,
180
+ hasClient: !!g,
181
+ isConnected: m,
182
182
  isLoading: r,
183
- hasError: !!x,
183
+ hasError: !!w,
184
184
  capabilitiesKeys: Object.keys(o)
185
185
  }), {
186
186
  service: c,
187
- client: u,
188
- isConnected: h,
187
+ client: g,
188
+ isConnected: m,
189
189
  isLoading: r,
190
- error: x,
190
+ error: w,
191
191
  capabilities: o,
192
- refreshConnection: M,
192
+ refreshConnection: T,
193
193
  debug: l
194
194
  }), [
195
195
  c,
196
- u,
197
- h,
196
+ g,
197
+ m,
198
198
  r,
199
- x,
199
+ w,
200
200
  o,
201
- M,
201
+ T,
202
202
  l,
203
203
  i
204
204
  ]);
205
205
  return i("🔄 RENDER END", {
206
206
  renderCount: S.current,
207
- willRenderChat: !!(u && h),
207
+ willRenderChat: !!(g && m),
208
208
  contextValueReady: !!$
209
- }), /* @__PURE__ */ t(yt.Provider, { value: $, children: u && h ? /* @__PURE__ */ t(
210
- zt,
209
+ }), /* @__PURE__ */ t(Nt.Provider, { value: $, children: g && m ? /* @__PURE__ */ t(
210
+ jt,
211
211
  {
212
- client: u,
212
+ client: g,
213
213
  customClasses: {
214
214
  channelList: "str-chat__channel-list str-chat__channel-list-react bg-transparent lg:border-r-2 border-r-0 border-[#0000000A]"
215
215
  },
216
216
  children: e
217
217
  }
218
218
  ) : e });
219
- }, js = () => Ae();
220
- function Gs(e) {
219
+ }, Ys = () => Pe();
220
+ function qs(e) {
221
221
  const s = e.state.pending_messages;
222
222
  if (s != null && s.length)
223
223
  for (const n of s)
224
224
  e.state.addMessageSorted(n.message);
225
225
  }
226
- const _t = B.createContext({
226
+ const Ct = B.createContext({
227
227
  selectedChannel: void 0,
228
228
  onChannelSelect: () => {
229
229
  },
230
230
  debug: !1,
231
231
  renderMessagePreview: void 0,
232
232
  viewerLanguage: void 0
233
- }), Vs = _t.Provider, Hs = () => B.useContext(_t), Nt = (e) => {
233
+ }), Ws = Ct.Provider, Xs = () => B.useContext(Ct), Et = (e) => {
234
234
  var a, o;
235
235
  const [s, n] = O(
236
236
  !!((o = (a = e == null ? void 0 : e.state) == null ? void 0 : a.membership) != null && o.pinned_at)
@@ -252,18 +252,18 @@ const _t = B.createContext({
252
252
  e.off("member.updated", l);
253
253
  };
254
254
  }, [e]), s;
255
- }, Ys = (e, s) => {
255
+ }, Zs = (e, s) => {
256
256
  const n = new Date(
257
257
  Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate())
258
258
  ), o = new Date(
259
259
  Date.UTC(s.getUTCFullYear(), s.getUTCMonth(), s.getUTCDate())
260
260
  ).getTime() - n.getTime();
261
261
  return Math.floor(o / (1e3 * 60 * 60 * 24));
262
- }, qs = (e) => {
262
+ }, Js = (e) => {
263
263
  const s = /* @__PURE__ */ new Date();
264
264
  if (Math.floor((s.getTime() - e.getTime()) / 1e3) < 60)
265
265
  return "Just now";
266
- const a = Ys(e, s);
266
+ const a = Zs(e, s);
267
267
  return a === 0 ? e.toLocaleTimeString([], {
268
268
  hour: "numeric",
269
269
  minute: "2-digit",
@@ -274,18 +274,18 @@ const _t = B.createContext({
274
274
  year: "2-digit"
275
275
  });
276
276
  };
277
- function Ws(e) {
277
+ function Ks(e) {
278
278
  return (e == null ? void 0 : e.trim().toLowerCase().split(/[-_]/)[0]) || void 0;
279
279
  }
280
- function Ct({
280
+ function St({
281
281
  message: e,
282
282
  viewerLanguage: s
283
283
  }) {
284
284
  var o;
285
- const n = e == null ? void 0 : e.text, a = Ws(s);
285
+ const n = e == null ? void 0 : e.text, a = Ks(s);
286
286
  return a ? ((o = e == null ? void 0 : e.i18n) == null ? void 0 : o[`${a}_text`]) ?? n : n;
287
287
  }
288
- const lt = [
288
+ const ut = [
289
289
  "🍎",
290
290
  // Apple
291
291
  "🍌",
@@ -313,7 +313,7 @@ const lt = [
313
313
  "🍈"
314
314
  // Melon
315
315
  ];
316
- function Xs(e) {
316
+ function Qs(e) {
317
317
  let s = 0;
318
318
  for (let n = 0; n < e.length; n++) {
319
319
  const a = e.charCodeAt(n);
@@ -321,9 +321,9 @@ function Xs(e) {
321
321
  }
322
322
  return Math.abs(s);
323
323
  }
324
- function Zs(e) {
325
- const n = Xs(e) % lt.length;
326
- return lt[n];
324
+ function en(e) {
325
+ const n = Qs(e) % ut.length;
326
+ return ut[n];
327
327
  }
328
328
  const ae = ({
329
329
  id: e,
@@ -334,10 +334,10 @@ const ae = ({
334
334
  shape: l = "squircle",
335
335
  dmAgentEnabled: i = !1
336
336
  }) => {
337
- const c = Zs(e), u = n < 32 ? "text-xs" : n < 56 ? "text-sm" : n < 120 ? "text-lg" : "text-4xl", b = n >= 40 ? 2 : 1, h = l === "circle" ? { borderRadius: "50%" } : {
337
+ const c = en(e), g = n < 32 ? "text-xs" : n < 56 ? "text-sm" : n < 120 ? "text-lg" : "text-4xl", y = n >= 40 ? 2 : 1, m = l === "circle" ? { borderRadius: "50%" } : {
338
338
  borderRadius: "33%",
339
339
  cornerShape: "superellipse(1.3)"
340
- }, p = /* @__PURE__ */ t("div", { className: "h-full w-full overflow-hidden", style: h, children: s ? /* @__PURE__ */ t(
340
+ }, h = /* @__PURE__ */ t("div", { className: "h-full w-full overflow-hidden", style: m, children: s ? /* @__PURE__ */ t(
341
341
  "img",
342
342
  {
343
343
  src: s,
@@ -350,7 +350,7 @@ const ae = ({
350
350
  "aria-hidden": "true",
351
351
  className: D(
352
352
  "avatar-fallback flex h-full w-full items-center justify-center bg-[#E6E5E3] font-semibold select-none transition-colors",
353
- u
353
+ g
354
354
  ),
355
355
  children: c
356
356
  }
@@ -385,21 +385,21 @@ const ae = ({
385
385
  "bg-transparent"
386
386
  ),
387
387
  style: {
388
- ...h,
388
+ ...m,
389
389
  ...i && {
390
- borderWidth: `${b}px`,
390
+ borderWidth: `${y}px`,
391
391
  borderStyle: "solid",
392
392
  borderColor: "var(--AI-Gradient, #7F22FE)",
393
393
  boxShadow: "inset 0 1px 2px 0 rgba(255, 255, 255, 0.5)"
394
394
  }
395
395
  },
396
- children: p
396
+ children: h
397
397
  }
398
398
  )
399
399
  ]
400
400
  }
401
401
  );
402
- }, Js = ({ size: e = 15 }) => /* @__PURE__ */ t(
402
+ }, tn = ({ size: e = 15 }) => /* @__PURE__ */ t(
403
403
  "svg",
404
404
  {
405
405
  width: e,
@@ -416,94 +416,94 @@ const ae = ({
416
416
  }
417
417
  )
418
418
  }
419
- ), Ks = (e) => {
419
+ ), sn = (e) => {
420
420
  var s;
421
421
  return ((s = e.metadata) == null ? void 0 : s.custom_type) === "MESSAGE_TIP";
422
- }, Qs = (e) => {
422
+ }, nn = (e) => {
423
423
  var s;
424
424
  return ((s = e.metadata) == null ? void 0 : s.custom_type) === "MESSAGE_PAID";
425
425
  }, ve = (e) => {
426
426
  var s;
427
427
  return ((s = e.metadata) == null ? void 0 : s.custom_type) === "MESSAGE_CHATBOT";
428
- }, en = (e) => {
428
+ }, an = (e) => {
429
429
  var s;
430
430
  return ((s = e.metadata) == null ? void 0 : s.custom_type) === "MESSAGE_ATTACHMENT";
431
- }, Et = (e) => Ks(e) || Qs(e), tn = (e) => {
431
+ }, It = (e) => sn(e) || nn(e), rn = (e) => {
432
432
  var s;
433
- return Et(e) && !((s = e.text) != null && s.trim());
434
- }, Se = ({
433
+ return It(e) && !((s = e.text) != null && s.trim());
434
+ }, Ie = ({
435
435
  message: e,
436
436
  standalone: s = !1,
437
437
  isMyMessage: n = !1,
438
438
  hasAttachment: a = !1
439
439
  }) => {
440
- var h;
441
- const o = Et(e), l = ve(e);
440
+ var m;
441
+ const o = It(e), l = ve(e);
442
442
  if (!o && !l)
443
443
  return null;
444
444
  if (o) {
445
- const p = (h = e.metadata) == null ? void 0 : h.amount_text;
446
- if (!p) return null;
447
- const r = s ? "message-tip-standalone" : "message-tag message-tag--tip", g = s ? `${p} tip` : `Delivered with ${p} tip`;
445
+ const h = (m = e.metadata) == null ? void 0 : m.amount_text;
446
+ if (!h) return null;
447
+ const r = s ? "message-tip-standalone" : "message-tag message-tag--tip", b = s ? `${h} tip` : `Delivered with ${h} tip`;
448
448
  return /* @__PURE__ */ d("div", { className: r, children: [
449
- /* @__PURE__ */ t(ys, { size: s ? 14 : 12 }),
450
- /* @__PURE__ */ t("span", { children: g })
449
+ /* @__PURE__ */ t(Es, { size: s ? 14 : 12 }),
450
+ /* @__PURE__ */ t("span", { children: b })
451
451
  ] });
452
452
  }
453
453
  const i = n && a, c = i ? "Sent with AI" : "Sent with DM Agent", f = [
454
454
  "message-chatbot-indicator",
455
455
  n ? "message-chatbot-indicator--sender" : "message-chatbot-indicator--receiver",
456
456
  i ? "message-chatbot-indicator--attachment" : "message-chatbot-indicator--text"
457
- ].join(" "), u = /* @__PURE__ */ t("span", { className: "message-chatbot-indicator__label", children: c }), b = /* @__PURE__ */ t("span", { className: "message-chatbot-indicator__icon", children: /* @__PURE__ */ t(Js, { size: i ? 12 : 15 }) });
457
+ ].join(" "), g = /* @__PURE__ */ t("span", { className: "message-chatbot-indicator__label", children: c }), y = /* @__PURE__ */ t("span", { className: "message-chatbot-indicator__icon", children: /* @__PURE__ */ t(tn, { size: i ? 12 : 15 }) });
458
458
  return /* @__PURE__ */ t("div", { className: f, "data-testid": "message-chatbot-indicator", children: n && !i ? /* @__PURE__ */ d(de, { children: [
459
- u,
460
- b
459
+ g,
460
+ y
461
461
  ] }) : /* @__PURE__ */ d(de, { children: [
462
- b,
463
- u
462
+ y,
463
+ g
464
464
  ] }) });
465
- }, St = B.memo(
465
+ }, kt = B.memo(
466
466
  ({ channel: e, unread: s }) => {
467
- var $, k, T, j;
467
+ var $, k, M, j;
468
468
  const {
469
469
  selectedChannel: n,
470
470
  onChannelSelect: a,
471
471
  debug: o,
472
472
  renderMessagePreview: l,
473
473
  viewerLanguage: i
474
- } = Hs(), c = (n == null ? void 0 : n.id) === (e == null ? void 0 : e.id), f = () => {
474
+ } = Xs(), c = (n == null ? void 0 : n.id) === (e == null ? void 0 : e.id), f = () => {
475
475
  e && a(e);
476
- }, u = (_) => {
476
+ }, g = (_) => {
477
477
  const L = _.key === "Enter" || _.key === " ", v = _.repeat;
478
478
  !L || v || (_.preventDefault(), f());
479
- }, h = Object.values((($ = e == null ? void 0 : e.state) == null ? void 0 : $.members) || {}).find(
479
+ }, m = Object.values((($ = e == null ? void 0 : e.state) == null ? void 0 : $.members) || {}).find(
480
480
  (_) => {
481
481
  var L, v;
482
482
  return ((L = _.user) == null ? void 0 : L.id) && _.user.id !== ((v = e == null ? void 0 : e._client) == null ? void 0 : v.userID);
483
483
  }
484
- ), p = ((k = h == null ? void 0 : h.user) == null ? void 0 : k.name) || "Conversation", r = (T = h == null ? void 0 : h.user) == null ? void 0 : T.image, g = (() => {
484
+ ), h = ((k = m == null ? void 0 : m.user) == null ? void 0 : k.name) || "Conversation", r = (M = m == null ? void 0 : m.user) == null ? void 0 : M.image, b = (() => {
485
485
  var L;
486
486
  const _ = (L = e == null ? void 0 : e.state) == null ? void 0 : L.messages;
487
487
  if (_ != null && _.length) {
488
488
  for (let v = _.length - 1; v >= 0; v--)
489
489
  if (_[v].type !== "system") return _[v];
490
490
  }
491
- })(), y = (() => {
491
+ })(), x = (() => {
492
492
  var A, V;
493
- const _ = Ct({
494
- message: g,
493
+ const _ = St({
494
+ message: b,
495
495
  viewerLanguage: i
496
496
  });
497
497
  if (_) return _;
498
- if (((A = g == null ? void 0 : g.metadata) == null ? void 0 : A.custom_type) === "MESSAGE_TIP") return "💵 Sent a tip";
499
- const v = (V = g == null ? void 0 : g.attachments) == null ? void 0 : V[0];
498
+ if (((A = b == null ? void 0 : b.metadata) == null ? void 0 : A.custom_type) === "MESSAGE_TIP") return "💵 Sent a tip";
499
+ const v = (V = b == null ? void 0 : b.attachments) == null ? void 0 : V[0];
500
500
  return v ? v.og_scrape_url ? v.og_scrape_url : v.type === "image" ? "📷 Sent an image" : v.type === "video" ? "🎥 Sent a video" : v.type === "audio" ? "🎵 Sent audio" : v.type === "file" ? "📎 Sent a file" : "📎 Sent an attachment" : "No messages yet";
501
- })(), N = g != null && g.created_at ? qs(new Date(g.created_at)) : "", w = g ? ve(g) : !1, S = l ? l(g, y) : `${w ? "✨ " : ""}${y}`, I = Nt(e), M = s ?? 0;
501
+ })(), N = b != null && b.created_at ? Js(new Date(b.created_at)) : "", p = b ? ve(b) : !1, S = l ? l(b, x) : `${p ? "✨ " : ""}${x}`, I = Et(e), T = s ?? 0;
502
502
  return o && console.log("📺 [ChannelList] 📋 CHANNEL PREVIEW RENDER", {
503
503
  channelId: e == null ? void 0 : e.id,
504
504
  isSelected: c,
505
- participantName: p,
506
- unreadCount: M,
505
+ participantName: h,
506
+ unreadCount: T,
507
507
  hasTimestamp: !!N
508
508
  }), /* @__PURE__ */ t(
509
509
  "div",
@@ -511,7 +511,7 @@ const ae = ({
511
511
  role: "button",
512
512
  tabIndex: 0,
513
513
  onClick: f,
514
- onKeyDown: u,
514
+ onKeyDown: g,
515
515
  className: D(
516
516
  "group w-full px-4 py-3 transition-colors text-left max-w-full overflow-hidden focus-ring",
517
517
  {
@@ -523,8 +523,8 @@ const ae = ({
523
523
  /* @__PURE__ */ t(
524
524
  ae,
525
525
  {
526
- id: ((j = h == null ? void 0 : h.user) == null ? void 0 : j.id) || e.id || "unknown",
527
- name: p,
526
+ id: ((j = m == null ? void 0 : m.user) == null ? void 0 : j.id) || e.id || "unknown",
527
+ name: h,
528
528
  image: r,
529
529
  size: 44,
530
530
  starred: I,
@@ -542,7 +542,7 @@ const ae = ({
542
542
  ),
543
543
  children: [
544
544
  I && /* @__PURE__ */ t("span", { className: "sr-only", children: "Starred conversation. " }),
545
- p
545
+ h
546
546
  ]
547
547
  }
548
548
  ),
@@ -550,7 +550,7 @@ const ae = ({
550
550
  ] }),
551
551
  /* @__PURE__ */ d("div", { className: "flex items-center justify-between gap-2 min-w-0", children: [
552
552
  /* @__PURE__ */ t("p", { className: "text-xs text-stone flex-1 line-clamp-1", children: S }),
553
- M > 0 && /* @__PURE__ */ t("span", { className: "bg-[#7f22fe] text-white text-xs px-2 py-0.5 rounded-full min-w-[20px] text-center flex-shrink-0", children: M > 99 ? "99+" : M })
553
+ T > 0 && /* @__PURE__ */ t("span", { className: "bg-[#7f22fe] text-white text-xs px-2 py-0.5 rounded-full min-w-[20px] text-center flex-shrink-0", children: T > 99 ? "99+" : T })
554
554
  ] })
555
555
  ] })
556
556
  ] })
@@ -558,8 +558,8 @@ const ae = ({
558
558
  );
559
559
  }
560
560
  );
561
- St.displayName = "CustomChannelPreview";
562
- const sn = { last_message_at: -1 }, It = B.memo(
561
+ kt.displayName = "CustomChannelPreview";
562
+ const on = { last_message_at: -1 }, Tt = B.memo(
563
563
  ({
564
564
  onChannelSelect: e,
565
565
  selectedChannel: s,
@@ -568,41 +568,41 @@ const sn = { last_message_at: -1 }, It = B.memo(
568
568
  onMessageNew: o,
569
569
  onAddedToChannel: l,
570
570
  channelRenderFilterFn: i,
571
- sort: c = sn,
571
+ sort: c = on,
572
572
  className: f,
573
- customEmptyStateIndicator: u,
574
- renderMessagePreview: b,
575
- viewerLanguage: h
573
+ customEmptyStateIndicator: g,
574
+ renderMessagePreview: y,
575
+ viewerLanguage: m
576
576
  }) => {
577
- const p = B.useRef(0);
578
- p.current++;
579
- const { debug: r = !1 } = Ae(), g = B.useCallback(
580
- (y) => {
581
- for (const N of y)
582
- Gs(N);
583
- return i ? i(y) : y;
577
+ const h = B.useRef(0);
578
+ h.current++;
579
+ const { debug: r = !1 } = Pe(), b = B.useCallback(
580
+ (x) => {
581
+ for (const N of x)
582
+ qs(N);
583
+ return i ? i(x) : x;
584
584
  },
585
585
  [i]
586
586
  );
587
587
  r && console.log("📺 [ChannelList] 🔄 RENDER START", {
588
- renderCount: p.current,
588
+ renderCount: h.current,
589
589
  selectedChannelId: s == null ? void 0 : s.id,
590
590
  filters: n
591
591
  });
592
- const x = B.useMemo(
592
+ const w = B.useMemo(
593
593
  () => ({
594
594
  selectedChannel: s,
595
595
  onChannelSelect: e,
596
596
  debug: r,
597
- renderMessagePreview: b,
598
- viewerLanguage: h
597
+ renderMessagePreview: y,
598
+ viewerLanguage: m
599
599
  }),
600
600
  [
601
601
  s,
602
602
  e,
603
603
  r,
604
- b,
605
- h
604
+ y,
605
+ m
606
606
  ]
607
607
  );
608
608
  return /* @__PURE__ */ t(
@@ -612,8 +612,8 @@ const sn = { last_message_at: -1 }, It = B.memo(
612
612
  "messaging-channel-list h-full flex flex-col min-w-0 overflow-hidden",
613
613
  f
614
614
  ),
615
- children: /* @__PURE__ */ t("div", { className: "flex-1 overflow-hidden min-w-0", children: /* @__PURE__ */ t(Vs, { value: x, children: /* @__PURE__ */ t(
616
- Bt,
615
+ children: /* @__PURE__ */ t("div", { className: "flex-1 overflow-hidden min-w-0", children: /* @__PURE__ */ t(Ws, { value: w, children: /* @__PURE__ */ t(
616
+ Gt,
617
617
  {
618
618
  filters: n,
619
619
  sort: c,
@@ -621,9 +621,9 @@ const sn = { last_message_at: -1 }, It = B.memo(
621
621
  allowNewMessagesFromUnfilteredChannels: a,
622
622
  onMessageNew: o,
623
623
  onAddedToChannel: l,
624
- channelRenderFilterFn: g,
625
- Preview: St,
626
- EmptyStateIndicator: u
624
+ channelRenderFilterFn: b,
625
+ Preview: kt,
626
+ EmptyStateIndicator: g
627
627
  },
628
628
  `${JSON.stringify(n)}:${JSON.stringify(c)}`
629
629
  ) }) })
@@ -631,7 +631,7 @@ const sn = { last_message_at: -1 }, It = B.memo(
631
631
  );
632
632
  }
633
633
  );
634
- It.displayName = "ChannelList";
634
+ Tt.displayName = "ChannelList";
635
635
  const be = ({
636
636
  variant: e = "default",
637
637
  className: s,
@@ -650,7 +650,7 @@ const be = ({
650
650
  children: n
651
651
  }
652
652
  );
653
- function nn({ label: e, className: s, children: n, ...a }) {
653
+ function ln({ label: e, className: s, children: n, ...a }) {
654
654
  return /* @__PURE__ */ d(
655
655
  "button",
656
656
  {
@@ -671,10 +671,10 @@ function nn({ label: e, className: s, children: n, ...a }) {
671
671
  }
672
672
  );
673
673
  }
674
- function an({ onClick: e }) {
675
- return /* @__PURE__ */ t(nn, { label: "Close", onClick: e, className: "p-1", children: /* @__PURE__ */ t(xt, { className: "h-5 w-5 text-stone", weight: "bold" }) });
674
+ function cn({ onClick: e }) {
675
+ return /* @__PURE__ */ t(ln, { label: "Close", onClick: e, className: "p-1", children: /* @__PURE__ */ t(wt, { className: "h-5 w-5 text-stone", weight: "bold" }) });
676
676
  }
677
- const rn = ({
677
+ const dn = ({
678
678
  dialogRef: e,
679
679
  onClose: s,
680
680
  participant: n,
@@ -684,72 +684,72 @@ const rn = ({
684
684
  onBlockParticipant: i,
685
685
  showDeleteConversation: c = !0,
686
686
  onDeleteConversationClick: f,
687
- onBlockParticipantClick: u,
688
- onReportParticipantClick: b,
689
- customProfileContent: h,
690
- customChannelActions: p
687
+ onBlockParticipantClick: g,
688
+ onReportParticipantClick: y,
689
+ customProfileContent: m,
690
+ customChannelActions: h
691
691
  }) => {
692
692
  var R, P, E, H, Y, te;
693
- const { service: r, debug: g } = Ae(), [x, y] = O(!1), [N, w] = O(!1), [S, I] = O(!1), M = G(async () => {
694
- var U;
695
- if (!(!r || !((U = n == null ? void 0 : n.user) != null && U.id)))
693
+ const { service: r, debug: b } = Pe(), [w, x] = O(!1), [N, p] = O(!1), [S, I] = O(!1), T = G(async () => {
694
+ var z;
695
+ if (!(!r || !((z = n == null ? void 0 : n.user) != null && z.id)))
696
696
  try {
697
697
  const C = (await r.getBlockedUsers()).some(
698
- (z) => {
698
+ (U) => {
699
699
  var K;
700
- return z.blocked_user_id === ((K = n == null ? void 0 : n.user) == null ? void 0 : K.id);
700
+ return U.blocked_user_id === ((K = n == null ? void 0 : n.user) == null ? void 0 : K.id);
701
701
  }
702
702
  );
703
- y(C);
704
- } catch (m) {
703
+ x(C);
704
+ } catch (u) {
705
705
  console.error(
706
706
  "[ChannelInfoDialog] Failed to check blocked status:",
707
- m
707
+ u
708
708
  );
709
709
  }
710
710
  }, [r, (R = n == null ? void 0 : n.user) == null ? void 0 : R.id]);
711
711
  q(() => {
712
- M();
713
- }, [M]);
712
+ T();
713
+ }, [T]);
714
714
  const $ = async () => {
715
- var U;
715
+ var z;
716
716
  if (!N) {
717
- f == null || f(), g && console.log("[ChannelInfoDialog] Leave conversation", a.cid), w(!0);
717
+ f == null || f(), b && console.log("[ChannelInfoDialog] Leave conversation", a.cid), p(!0);
718
718
  try {
719
- const m = ((U = a._client) == null ? void 0 : U.userID) ?? null;
720
- await a.hide(m, !1), l && await l(a), s();
721
- } catch (m) {
722
- console.error("[ChannelInfoDialog] Failed to leave conversation", m);
719
+ const u = ((z = a._client) == null ? void 0 : z.userID) ?? null;
720
+ await a.hide(u, !1), l && await l(a), s();
721
+ } catch (u) {
722
+ console.error("[ChannelInfoDialog] Failed to leave conversation", u);
723
723
  } finally {
724
- w(!1);
724
+ p(!1);
725
725
  }
726
726
  }
727
727
  }, k = async () => {
728
- var U, m, C;
728
+ var z, u, C;
729
729
  if (!(S || !r)) {
730
- u == null || u(), g && console.log("[ChannelInfoDialog] Block member", (U = n == null ? void 0 : n.user) == null ? void 0 : U.id), I(!0);
730
+ g == null || g(), b && console.log("[ChannelInfoDialog] Block member", (z = n == null ? void 0 : n.user) == null ? void 0 : z.id), I(!0);
731
731
  try {
732
- await r.blockUser((m = n == null ? void 0 : n.user) == null ? void 0 : m.id), i && await i((C = n == null ? void 0 : n.user) == null ? void 0 : C.id), s();
733
- } catch (z) {
734
- console.error("[ChannelInfoDialog] Failed to block member", z);
732
+ await r.blockUser((u = n == null ? void 0 : n.user) == null ? void 0 : u.id), i && await i((C = n == null ? void 0 : n.user) == null ? void 0 : C.id), s();
733
+ } catch (U) {
734
+ console.error("[ChannelInfoDialog] Failed to block member", U);
735
735
  } finally {
736
736
  I(!1);
737
737
  }
738
738
  }
739
- }, T = async () => {
740
- var U, m, C;
739
+ }, M = async () => {
740
+ var z, u, C;
741
741
  if (!(S || !r)) {
742
- u == null || u(), g && console.log("[ChannelInfoDialog] Unblock member", (U = n == null ? void 0 : n.user) == null ? void 0 : U.id), I(!0);
742
+ g == null || g(), b && console.log("[ChannelInfoDialog] Unblock member", (z = n == null ? void 0 : n.user) == null ? void 0 : z.id), I(!0);
743
743
  try {
744
- await r.unBlockUser((m = n == null ? void 0 : n.user) == null ? void 0 : m.id), i && await i((C = n == null ? void 0 : n.user) == null ? void 0 : C.id), s();
745
- } catch (z) {
746
- console.error("[ChannelInfoDialog] Failed to unblock member", z);
744
+ await r.unBlockUser((u = n == null ? void 0 : n.user) == null ? void 0 : u.id), i && await i((C = n == null ? void 0 : n.user) == null ? void 0 : C.id), s();
745
+ } catch (U) {
746
+ console.error("[ChannelInfoDialog] Failed to unblock member", U);
747
747
  } finally {
748
748
  I(!1);
749
749
  }
750
750
  }
751
751
  }, j = () => {
752
- b == null || b(), s(), window.open(
752
+ y == null || y(), s(), window.open(
753
753
  "https://linktr.ee/s/about/trust-center/report",
754
754
  "_blank",
755
755
  "noopener,noreferrer"
@@ -765,13 +765,13 @@ const rn = ({
765
765
  ref: e,
766
766
  className: "mes-dialog group",
767
767
  onClose: s,
768
- onClick: (U) => {
769
- U.target === e.current && s();
768
+ onClick: (z) => {
769
+ z.target === e.current && s();
770
770
  },
771
771
  children: /* @__PURE__ */ d("div", { className: "ml-auto flex h-full w-full flex-col bg-white shadow-none transition-shadow duration-200 group-open:shadow-max-elevation-light", children: [
772
772
  /* @__PURE__ */ d("div", { className: "flex items-center justify-between border-b border-sand px-4 py-3", children: [
773
773
  /* @__PURE__ */ t("h2", { className: "text-base font-semibold text-charcoal", children: "Chat info" }),
774
- /* @__PURE__ */ t(an, { onClick: s })
774
+ /* @__PURE__ */ t(cn, { onClick: s })
775
775
  ] }),
776
776
  /* @__PURE__ */ d("div", { className: "flex-1 px-2 overflow-y-auto w-full", children: [
777
777
  /* @__PURE__ */ d(
@@ -794,7 +794,7 @@ const rn = ({
794
794
  /* @__PURE__ */ d("div", { className: "flex flex-col min-w-0 flex-1", children: [
795
795
  /* @__PURE__ */ t("p", { className: "truncate text-base font-semibold text-charcoal", children: _ }),
796
796
  A && /* @__PURE__ */ t("p", { className: "truncate text-sm text-[#00000055]", children: A }),
797
- o && !h && /* @__PURE__ */ t(
797
+ o && !m && /* @__PURE__ */ t(
798
798
  "span",
799
799
  {
800
800
  className: "mt-1 rounded-full text-xs font-normal w-fit",
@@ -810,7 +810,7 @@ const rn = ({
810
810
  )
811
811
  ] })
812
812
  ] }),
813
- h && /* @__PURE__ */ t("div", { className: "w-full", children: h })
813
+ m && /* @__PURE__ */ t("div", { className: "w-full", children: m })
814
814
  ]
815
815
  }
816
816
  ),
@@ -822,19 +822,19 @@ const rn = ({
822
822
  disabled: N,
823
823
  "aria-busy": N,
824
824
  children: [
825
- N ? /* @__PURE__ */ t(Ee, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ t(_s, { className: "h-5 w-5" }),
825
+ N ? /* @__PURE__ */ t(Se, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ t(Ss, { className: "h-5 w-5" }),
826
826
  /* @__PURE__ */ t("span", { children: "Delete Conversation" })
827
827
  ]
828
828
  }
829
829
  ) }),
830
- /* @__PURE__ */ t("li", { children: x ? /* @__PURE__ */ d(
830
+ /* @__PURE__ */ t("li", { children: w ? /* @__PURE__ */ d(
831
831
  be,
832
832
  {
833
- onClick: T,
833
+ onClick: M,
834
834
  disabled: S,
835
835
  "aria-busy": S,
836
836
  children: [
837
- S ? /* @__PURE__ */ t(Ee, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ t(st, { className: "h-5 w-5" }),
837
+ S ? /* @__PURE__ */ t(Se, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ t(rt, { className: "h-5 w-5" }),
838
838
  /* @__PURE__ */ t("span", { children: "Unblock" })
839
839
  ]
840
840
  }
@@ -845,36 +845,36 @@ const rn = ({
845
845
  disabled: S,
846
846
  "aria-busy": S,
847
847
  children: [
848
- S ? /* @__PURE__ */ t(Ee, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ t(st, { className: "h-5 w-5" }),
848
+ S ? /* @__PURE__ */ t(Se, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ t(rt, { className: "h-5 w-5" }),
849
849
  /* @__PURE__ */ t("span", { children: "Block" })
850
850
  ]
851
851
  }
852
852
  ) }),
853
853
  /* @__PURE__ */ t("li", { children: /* @__PURE__ */ d(be, { variant: "danger", onClick: j, children: [
854
- /* @__PURE__ */ t(Ns, { className: "h-5 w-5" }),
854
+ /* @__PURE__ */ t(Is, { className: "h-5 w-5" }),
855
855
  /* @__PURE__ */ t("span", { children: "Report" })
856
856
  ] }) }),
857
- p
857
+ h
858
858
  ] })
859
859
  ] })
860
860
  ] })
861
861
  }
862
862
  )
863
863
  );
864
- }, on = (e) => /* @__PURE__ */ t($t, { ...e, position: "center" }), De = "vote_up", Re = "vote_down";
865
- function ln(e) {
866
- return e != null && e.length ? e.some((s) => s.type === Re) ? "down" : e.some((s) => s.type === De) ? "up" : null : null;
864
+ }, un = (e) => /* @__PURE__ */ t(Vt, { ...e, position: "center" }), Re = "vote_up", Le = "vote_down";
865
+ function mn(e) {
866
+ return e != null && e.length ? e.some((s) => s.type === Le) ? "down" : e.some((s) => s.type === Re) ? "up" : null : null;
867
867
  }
868
- function cn(e) {
869
- const { channel: s } = oe(), { client: n } = Le("useMessageVote"), a = pe(
870
- () => ln(e.own_reactions),
868
+ function hn(e) {
869
+ const { channel: s } = oe(), { client: n } = Oe("useMessageVote"), a = pe(
870
+ () => mn(e.own_reactions),
871
871
  [e.own_reactions]
872
872
  ), o = G(async () => {
873
873
  if (n != null && n.userID)
874
874
  try {
875
- a === "up" ? await s.deleteReaction(e.id, De) : await s.sendReaction(
875
+ a === "up" ? await s.deleteReaction(e.id, Re) : await s.sendReaction(
876
876
  e.id,
877
- { type: De },
877
+ { type: Re },
878
878
  { enforce_unique: !0, skip_push: !0 }
879
879
  );
880
880
  } catch {
@@ -882,9 +882,9 @@ function cn(e) {
882
882
  }, [s, n == null ? void 0 : n.userID, e.id, a]), l = G(async () => {
883
883
  if (n != null && n.userID)
884
884
  try {
885
- a === "down" ? await s.deleteReaction(e.id, Re) : await s.sendReaction(
885
+ a === "down" ? await s.deleteReaction(e.id, Le) : await s.sendReaction(
886
886
  e.id,
887
- { type: Re },
887
+ { type: Le },
888
888
  { enforce_unique: !0, skip_push: !0 }
889
889
  );
890
890
  } catch {
@@ -892,13 +892,13 @@ function cn(e) {
892
892
  }, [s, n == null ? void 0 : n.userID, e.id, a]);
893
893
  return { selected: a, voteUp: o, voteDown: l };
894
894
  }
895
- const dn = B.lazy(() => import("./Card-BHknCeHw.js")), un = B.lazy(() => import("./Card-DT7_ms2p.js")), kt = () => /* @__PURE__ */ t(
895
+ const fn = B.lazy(() => import("./Card-BKP9ml9O.js")), gn = B.lazy(() => import("./Card-Bk_4lVzP.js")), Mt = () => /* @__PURE__ */ t(
896
896
  "div",
897
897
  {
898
898
  className: "w-[280px] min-h-[200px] animate-pulse rounded-[24px] bg-black/[0.06] shadow-[0_0_0_1px_rgba(0,0,0,0.04),0_4px_8px_rgba(0,0,0,0.06)]",
899
899
  "aria-hidden": !0
900
900
  }
901
- ), mn = (e) => /* @__PURE__ */ t(gt, { fallback: /* @__PURE__ */ t(kt, {}), children: /* @__PURE__ */ t(dn, { ...e }) }), hn = (e) => /* @__PURE__ */ t(gt, { fallback: /* @__PURE__ */ t(kt, {}), children: /* @__PURE__ */ t(un, { ...e }) }), ct = { Creator: mn, Visitor: hn }, fn = [
901
+ ), bn = (e) => /* @__PURE__ */ t(pt, { fallback: /* @__PURE__ */ t(Mt, {}), children: /* @__PURE__ */ t(fn, { ...e }) }), pn = (e) => /* @__PURE__ */ t(pt, { fallback: /* @__PURE__ */ t(Mt, {}), children: /* @__PURE__ */ t(gn, { ...e }) }), mt = { Creator: bn, Visitor: pn }, xn = [
902
902
  [/pdf/, "pdf"],
903
903
  [/wordprocessingml|msword|\.doc/, "doc"],
904
904
  [/spreadsheetml|ms-excel|\.xls/, "xls"],
@@ -911,39 +911,39 @@ const dn = B.lazy(() => import("./Card-BHknCeHw.js")), un = B.lazy(() => import(
911
911
  function _e(e) {
912
912
  return e.startsWith("video/") ? "video" : e.startsWith("audio/") ? "audio" : e.startsWith("image/") ? "image" : "document";
913
913
  }
914
- function gn(e) {
915
- const s = fn.find(
914
+ function vn(e) {
915
+ const s = xn.find(
916
916
  ([n]) => n.test(e)
917
917
  );
918
918
  return s ? s[1] : "generic";
919
919
  }
920
- const bn = {
921
- video: Ss,
922
- audio: Es,
923
- image: Cs,
924
- document: vt
925
- }, pn = {
926
- pdf: As,
927
- doc: Ls,
928
- xls: Rs,
929
- csv: Ds,
930
- ppt: Ts,
931
- zip: Ms,
932
- text: ks,
933
- markdown: Is,
934
- generic: vt
920
+ const wn = {
921
+ video: Ms,
922
+ audio: Ts,
923
+ image: ks,
924
+ document: yt
925
+ }, yn = {
926
+ pdf: zs,
927
+ doc: Ps,
928
+ xls: Os,
929
+ csv: Fs,
930
+ ppt: As,
931
+ zip: Ls,
932
+ text: Rs,
933
+ markdown: Ds,
934
+ generic: yt
935
935
  };
936
- function xn(e) {
936
+ function _n(e) {
937
937
  const s = _e(e);
938
- return s !== "document" ? bn[s] : pn[gn(e)];
938
+ return s !== "document" ? wn[s] : yn[vn(e)];
939
939
  }
940
940
  function we(e, s) {
941
- return B.createElement(xn(e), s);
941
+ return B.createElement(_n(e), s);
942
942
  }
943
- const vn = (e) => {
943
+ const Nn = (e) => {
944
944
  var s, n;
945
945
  return "touches" in e ? ((s = e.touches[0]) == null ? void 0 : s.clientX) ?? ((n = e.changedTouches[0]) == null ? void 0 : n.clientX) ?? 0 : e.clientX;
946
- }, wn = ({
946
+ }, Cn = ({
947
947
  source: e,
948
948
  mimeType: s,
949
949
  poster: n,
@@ -953,55 +953,55 @@ const vn = (e) => {
953
953
  controls: i = !0,
954
954
  showProgress: c = !1,
955
955
  muted: f = !1,
956
- onContainerClick: u
956
+ onContainerClick: g
957
957
  }) => {
958
- const b = _e(s), h = J(null), p = J(null), r = J(null), g = J(o), [x, y] = O(a), [N, w] = O(0), [S, I] = O(!1), [M, $] = O(!1), [k, T] = O(!1), [j, _] = O(!1), [L, v] = O(!0), [A, V] = O(null), R = G(() => {
959
- T(!1), y(!0);
960
- }, []), P = G((m) => {
961
- const C = p.current;
958
+ const y = _e(s), m = J(null), h = J(null), r = J(null), b = J(o), [w, x] = O(a), [N, p] = O(0), [S, I] = O(!1), [T, $] = O(!1), [k, M] = O(!1), [j, _] = O(!1), [L, v] = O(!0), [A, V] = O(null), R = G(() => {
959
+ M(!1), x(!0);
960
+ }, []), P = G((u) => {
961
+ const C = h.current;
962
962
  if (!C) return 0;
963
- const z = C.getBoundingClientRect();
963
+ const U = C.getBoundingClientRect();
964
964
  return Math.max(
965
965
  0,
966
- Math.min(1, (vn(m) - z.left) / z.width)
966
+ Math.min(1, (Nn(u) - U.left) / U.width)
967
967
  );
968
- }, []), E = G((m) => {
969
- const C = h.current;
970
- C && C.duration && (C.currentTime = m * C.duration);
971
- }, []), H = (m) => {
972
- m.stopPropagation(), I(!0);
973
- const C = P(m);
974
- w(C), E(C);
968
+ }, []), E = G((u) => {
969
+ const C = m.current;
970
+ C && C.duration && (C.currentTime = u * C.duration);
971
+ }, []), H = (u) => {
972
+ u.stopPropagation(), I(!0);
973
+ const C = P(u);
974
+ p(C), E(C);
975
975
  };
976
976
  q(() => {
977
- o !== void 0 && o !== g.current && (g.current = o, y(o));
977
+ o !== void 0 && o !== b.current && (b.current = o, x(o));
978
978
  }, [o]), q(() => {
979
- if (!x) {
979
+ if (!w) {
980
980
  r.current !== null && (cancelAnimationFrame(r.current), r.current = null);
981
981
  return;
982
982
  }
983
- const m = () => {
984
- const C = h.current;
985
- C && C.duration && !S && w(C.currentTime / C.duration), r.current = requestAnimationFrame(m);
983
+ const u = () => {
984
+ const C = m.current;
985
+ C && C.duration && !S && p(C.currentTime / C.duration), r.current = requestAnimationFrame(u);
986
986
  };
987
- return r.current = requestAnimationFrame(m), () => {
987
+ return r.current = requestAnimationFrame(u), () => {
988
988
  r.current !== null && cancelAnimationFrame(r.current);
989
989
  };
990
- }, [x, S]), q(() => {
991
- const m = h.current;
992
- m && (x ? m.play().catch((C) => {
993
- y(!1), T(!0);
994
- }) : m.pause());
995
- }, [x]), q(() => {
990
+ }, [w, S]), q(() => {
991
+ const u = m.current;
992
+ u && (w ? u.play().catch((C) => {
993
+ x(!1), M(!0);
994
+ }) : u.pause());
995
+ }, [w]), q(() => {
996
996
  if (!S) return;
997
- const m = (z) => w(P(z)), C = (z) => {
998
- I(!1), E(P(z));
997
+ const u = (U) => p(P(U)), C = (U) => {
998
+ I(!1), E(P(U));
999
999
  };
1000
- return window.addEventListener("mousemove", m), window.addEventListener("mouseup", C), window.addEventListener("touchmove", m, { passive: !0 }), window.addEventListener("touchend", C), () => {
1001
- window.removeEventListener("mousemove", m), window.removeEventListener("mouseup", C), window.removeEventListener("touchmove", m), window.removeEventListener("touchend", C);
1000
+ return window.addEventListener("mousemove", u), window.addEventListener("mouseup", C), window.addEventListener("touchmove", u, { passive: !0 }), window.addEventListener("touchend", C), () => {
1001
+ window.removeEventListener("mousemove", u), window.removeEventListener("mouseup", C), window.removeEventListener("touchmove", u), window.removeEventListener("touchend", C);
1002
1002
  };
1003
1003
  }, [S, P, E]);
1004
- const Y = A ? { aspectRatio: String(A) } : void 0, te = A ? "" : " aspect-video", U = Math.round(N * 100);
1004
+ const Y = A ? { aspectRatio: String(A) } : void 0, te = A ? "" : " aspect-video", z = Math.round(N * 100);
1005
1005
  return /* @__PURE__ */ d(
1006
1006
  "div",
1007
1007
  {
@@ -1009,24 +1009,24 @@ const vn = (e) => {
1009
1009
  tabIndex: 0,
1010
1010
  className: `relative cursor-pointer overflow-hidden bg-black ${te}`,
1011
1011
  style: Y,
1012
- onClick: (m) => {
1013
- if (u) {
1014
- u(m);
1012
+ onClick: (u) => {
1013
+ if (g) {
1014
+ g(u);
1015
1015
  return;
1016
1016
  }
1017
- k || i && y((C) => !C);
1017
+ k || i && x((C) => !C);
1018
1018
  },
1019
- onKeyDown: (m) => {
1020
- if (!(m.key !== "Enter" && m.key !== " ")) {
1021
- if (m.preventDefault(), u) {
1022
- u(m);
1019
+ onKeyDown: (u) => {
1020
+ if (!(u.key !== "Enter" && u.key !== " ")) {
1021
+ if (u.preventDefault(), g) {
1022
+ g(u);
1023
1023
  return;
1024
1024
  }
1025
- k || i && y((C) => !C);
1025
+ k || i && x((C) => !C);
1026
1026
  }
1027
1027
  },
1028
1028
  children: [
1029
- n && (b === "audio" || L) && /* @__PURE__ */ t(
1029
+ n && (y === "audio" || L) && /* @__PURE__ */ t(
1030
1030
  "img",
1031
1031
  {
1032
1032
  src: n,
@@ -1034,14 +1034,14 @@ const vn = (e) => {
1034
1034
  className: "absolute inset-0 h-full w-full object-cover"
1035
1035
  }
1036
1036
  ),
1037
- !n && (b === "audio" || L) && /* @__PURE__ */ t("div", { className: "absolute inset-0 flex items-center justify-center", children: we(s, {
1037
+ !n && (y === "audio" || L) && /* @__PURE__ */ t("div", { className: "absolute inset-0 flex items-center justify-center", children: we(s, {
1038
1038
  className: "size-12 text-black/20",
1039
1039
  weight: "regular"
1040
1040
  }) }),
1041
- /* @__PURE__ */ t("div", { className: "absolute inset-0", children: b === "audio" ? /* @__PURE__ */ t(
1041
+ /* @__PURE__ */ t("div", { className: "absolute inset-0", children: y === "audio" ? /* @__PURE__ */ t(
1042
1042
  "audio",
1043
1043
  {
1044
- ref: h,
1044
+ ref: m,
1045
1045
  src: e,
1046
1046
  loop: l,
1047
1047
  muted: f,
@@ -1051,16 +1051,16 @@ const vn = (e) => {
1051
1051
  _(!1), v(!1);
1052
1052
  },
1053
1053
  onWaiting: () => _(!0),
1054
- onPlay: () => T(!1),
1054
+ onPlay: () => M(!1),
1055
1055
  onEnded: () => {
1056
- l || (y(!1), w(0));
1056
+ l || (x(!1), p(0));
1057
1057
  },
1058
1058
  children: /* @__PURE__ */ t("track", { kind: "captions" })
1059
1059
  }
1060
1060
  ) : /* @__PURE__ */ t(
1061
1061
  "video",
1062
1062
  {
1063
- ref: h,
1063
+ ref: m,
1064
1064
  src: e,
1065
1065
  loop: l,
1066
1066
  muted: f,
@@ -1071,19 +1071,19 @@ const vn = (e) => {
1071
1071
  _(!1), v(!1);
1072
1072
  },
1073
1073
  onWaiting: () => _(!0),
1074
- onPlay: () => T(!1),
1074
+ onPlay: () => M(!1),
1075
1075
  onLoadedMetadata: () => {
1076
- const m = h.current;
1077
- m instanceof HTMLVideoElement && m.videoWidth && m.videoHeight && V(m.videoWidth / m.videoHeight);
1076
+ const u = m.current;
1077
+ u instanceof HTMLVideoElement && u.videoWidth && u.videoHeight && V(u.videoWidth / u.videoHeight);
1078
1078
  },
1079
1079
  onEnded: () => {
1080
- l || (y(!1), w(0));
1080
+ l || (x(!1), p(0));
1081
1081
  },
1082
1082
  children: /* @__PURE__ */ t("track", { kind: "captions" })
1083
1083
  }
1084
1084
  ) }),
1085
1085
  j && !k && /* @__PURE__ */ t("div", { className: "absolute inset-0 z-10 flex items-center justify-center", children: /* @__PURE__ */ t(
1086
- wt,
1086
+ _t,
1087
1087
  {
1088
1088
  className: "size-8 animate-spin text-white/80",
1089
1089
  weight: "bold"
@@ -1096,13 +1096,13 @@ const vn = (e) => {
1096
1096
  role: "button",
1097
1097
  tabIndex: 0,
1098
1098
  "aria-label": "Play preview",
1099
- onClick: (m) => {
1100
- m.stopPropagation(), R();
1099
+ onClick: (u) => {
1100
+ u.stopPropagation(), R();
1101
1101
  },
1102
- onKeyDown: (m) => {
1103
- m.key !== "Enter" && m.key !== " " || (m.preventDefault(), m.stopPropagation(), R());
1102
+ onKeyDown: (u) => {
1103
+ u.key !== "Enter" && u.key !== " " || (u.preventDefault(), u.stopPropagation(), R());
1104
1104
  },
1105
- children: /* @__PURE__ */ t("span", { className: "flex size-16 items-center justify-center rounded-full bg-white/20 text-white backdrop-blur-sm", children: /* @__PURE__ */ t(nt, { className: "size-9 translate-x-0.5", weight: "fill" }) })
1105
+ children: /* @__PURE__ */ t("span", { className: "flex size-16 items-center justify-center rounded-full bg-white/20 text-white backdrop-blur-sm", children: /* @__PURE__ */ t(it, { className: "size-9 translate-x-0.5", weight: "fill" }) })
1106
1106
  }
1107
1107
  ),
1108
1108
  c && !i && /* @__PURE__ */ t("div", { className: "absolute inset-x-0 bottom-0 px-3 pb-2.5 pt-6 bg-gradient-to-t from-black/40 to-transparent", children: /* @__PURE__ */ t(
@@ -1110,23 +1110,23 @@ const vn = (e) => {
1110
1110
  {
1111
1111
  role: "slider",
1112
1112
  "aria-label": "Playback position",
1113
- "aria-valuenow": U,
1113
+ "aria-valuenow": z,
1114
1114
  "aria-valuemin": 0,
1115
1115
  "aria-valuemax": 100,
1116
1116
  tabIndex: 0,
1117
- ref: p,
1117
+ ref: h,
1118
1118
  className: "relative flex h-4 w-full cursor-pointer items-center",
1119
1119
  onMouseDown: H,
1120
1120
  onTouchStart: H,
1121
- onClick: (m) => m.stopPropagation(),
1122
- onKeyDown: (m) => {
1123
- m.key === "ArrowRight" && E(Math.min(1, N + 0.05)), m.key === "ArrowLeft" && E(Math.max(0, N - 0.05));
1121
+ onClick: (u) => u.stopPropagation(),
1122
+ onKeyDown: (u) => {
1123
+ u.key === "ArrowRight" && E(Math.min(1, N + 0.05)), u.key === "ArrowLeft" && E(Math.max(0, N - 0.05));
1124
1124
  },
1125
1125
  children: /* @__PURE__ */ t("div", { className: "w-full overflow-hidden rounded-full bg-white/30 h-1", children: /* @__PURE__ */ t(
1126
1126
  "div",
1127
1127
  {
1128
1128
  className: "h-full rounded-full bg-white",
1129
- style: { width: `${U}%` }
1129
+ style: { width: `${z}%` }
1130
1130
  }
1131
1131
  ) })
1132
1132
  }
@@ -1136,12 +1136,12 @@ const vn = (e) => {
1136
1136
  "button",
1137
1137
  {
1138
1138
  type: "button",
1139
- onClick: (m) => {
1140
- m.stopPropagation(), y((C) => !C);
1139
+ onClick: (u) => {
1140
+ u.stopPropagation(), x((C) => !C);
1141
1141
  },
1142
1142
  className: "shrink-0 text-white",
1143
- "aria-label": x ? "Pause" : "Play",
1144
- children: x ? /* @__PURE__ */ t(Fs, { className: "size-5", weight: "fill" }) : /* @__PURE__ */ t(nt, { className: "size-5 translate-x-px", weight: "fill" })
1143
+ "aria-label": w ? "Pause" : "Play",
1144
+ children: w ? /* @__PURE__ */ t(Us, { className: "size-5", weight: "fill" }) : /* @__PURE__ */ t(it, { className: "size-5 translate-x-px", weight: "fill" })
1145
1145
  }
1146
1146
  ),
1147
1147
  /* @__PURE__ */ d(
@@ -1149,30 +1149,30 @@ const vn = (e) => {
1149
1149
  {
1150
1150
  role: "slider",
1151
1151
  "aria-label": "Playback position",
1152
- "aria-valuenow": U,
1152
+ "aria-valuenow": z,
1153
1153
  "aria-valuemin": 0,
1154
1154
  "aria-valuemax": 100,
1155
1155
  tabIndex: 0,
1156
- ref: p,
1156
+ ref: h,
1157
1157
  className: "relative flex h-4 w-full cursor-pointer items-center",
1158
1158
  onMouseDown: H,
1159
1159
  onTouchStart: H,
1160
- onClick: (m) => m.stopPropagation(),
1160
+ onClick: (u) => u.stopPropagation(),
1161
1161
  onMouseEnter: () => $(!0),
1162
1162
  onMouseLeave: () => $(!1),
1163
- onKeyDown: (m) => {
1164
- m.key === "ArrowRight" && E(Math.min(1, N + 0.05)), m.key === "ArrowLeft" && E(Math.max(0, N - 0.05));
1163
+ onKeyDown: (u) => {
1164
+ u.key === "ArrowRight" && E(Math.min(1, N + 0.05)), u.key === "ArrowLeft" && E(Math.max(0, N - 0.05));
1165
1165
  },
1166
1166
  children: [
1167
1167
  /* @__PURE__ */ t(
1168
1168
  "div",
1169
1169
  {
1170
- className: `w-full overflow-hidden rounded-full bg-white/30 transition-all duration-200 ${M || S ? "h-1.5" : "h-1"}`,
1170
+ className: `w-full overflow-hidden rounded-full bg-white/30 transition-all duration-200 ${T || S ? "h-1.5" : "h-1"}`,
1171
1171
  children: /* @__PURE__ */ t(
1172
1172
  "div",
1173
1173
  {
1174
1174
  className: "h-full rounded-full bg-white",
1175
- style: { width: `${U}%` }
1175
+ style: { width: `${z}%` }
1176
1176
  }
1177
1177
  )
1178
1178
  }
@@ -1180,8 +1180,8 @@ const vn = (e) => {
1180
1180
  /* @__PURE__ */ t(
1181
1181
  "div",
1182
1182
  {
1183
- className: `absolute size-3 -translate-x-1/2 rounded-full bg-white shadow transition-[opacity,transform] duration-200 ${M || S ? "scale-100 opacity-100" : "scale-0 opacity-0"}`,
1184
- style: { left: `${U}%` }
1183
+ className: `absolute size-3 -translate-x-1/2 rounded-full bg-white shadow transition-[opacity,transform] duration-200 ${T || S ? "scale-100 opacity-100" : "scale-0 opacity-0"}`,
1184
+ style: { left: `${z}%` }
1185
1185
  }
1186
1186
  )
1187
1187
  ]
@@ -1191,7 +1191,7 @@ const vn = (e) => {
1191
1191
  ]
1192
1192
  }
1193
1193
  );
1194
- }, dt = (e) => e === "dark" ? "size-12 text-white/20" : "size-12 text-black/20", yn = (e) => e === "dark" ? "aspect-video overflow-hidden bg-white/10" : "aspect-video overflow-hidden bg-black/5", Mt = ({
1194
+ }, ht = (e) => e === "dark" ? "size-12 text-white/20" : "size-12 text-black/20", En = (e) => e === "dark" ? "aspect-video overflow-hidden bg-white/10" : "aspect-video overflow-hidden bg-black/5", Dt = ({
1195
1195
  mimeType: e,
1196
1196
  sourceUrl: s,
1197
1197
  thumbnailUrl: n,
@@ -1200,9 +1200,9 @@ const vn = (e) => {
1200
1200
  mediaPlayerProps: l,
1201
1201
  containedImage: i = !1
1202
1202
  }) => {
1203
- const c = _e(e), [f, u] = O(!1);
1203
+ const c = _e(e), [f, g] = O(!1);
1204
1204
  return s && (c === "video" || c === "audio") ? /* @__PURE__ */ t(
1205
- wn,
1205
+ Cn,
1206
1206
  {
1207
1207
  source: s,
1208
1208
  mimeType: e,
@@ -1217,7 +1217,7 @@ const vn = (e) => {
1217
1217
  alt: a ?? "",
1218
1218
  className: `absolute inset-0 h-full w-full object-contain transition-opacity duration-300 ${f ? "opacity-100" : "opacity-0"}`,
1219
1219
  draggable: !1,
1220
- onLoad: () => u(!0)
1220
+ onLoad: () => g(!0)
1221
1221
  }
1222
1222
  ) }) : /* @__PURE__ */ t(
1223
1223
  "img",
@@ -1234,7 +1234,7 @@ const vn = (e) => {
1234
1234
  alt: a ?? "",
1235
1235
  className: `absolute inset-0 h-full w-full object-contain transition-opacity duration-300 ${f ? "opacity-100" : "opacity-0"}`,
1236
1236
  draggable: !1,
1237
- onLoad: () => u(!0)
1237
+ onLoad: () => g(!0)
1238
1238
  }
1239
1239
  ) }) : /* @__PURE__ */ t(
1240
1240
  "img",
@@ -1249,11 +1249,11 @@ const vn = (e) => {
1249
1249
  {
1250
1250
  className: `flex aspect-video w-full items-center justify-center ${o === "dark" ? "bg-white/10" : "bg-black/5"}`,
1251
1251
  children: we(e, {
1252
- className: dt(o),
1252
+ className: ht(o),
1253
1253
  weight: "regular"
1254
1254
  })
1255
1255
  }
1256
- ) : n ? /* @__PURE__ */ t("div", { className: `relative ${yn(o)}`, children: /* @__PURE__ */ t(
1256
+ ) : n ? /* @__PURE__ */ t("div", { className: `relative ${En(o)}`, children: /* @__PURE__ */ t(
1257
1257
  "img",
1258
1258
  {
1259
1259
  src: n,
@@ -1266,12 +1266,12 @@ const vn = (e) => {
1266
1266
  {
1267
1267
  className: `flex aspect-video w-full items-center justify-center ${o === "dark" ? "bg-white/10" : "bg-black/5"}`,
1268
1268
  children: we(e, {
1269
- className: dt(o),
1269
+ className: ht(o),
1270
1270
  weight: "regular"
1271
1271
  })
1272
1272
  }
1273
1273
  );
1274
- }, Tt = ({
1274
+ }, Rt = ({
1275
1275
  variant: e,
1276
1276
  thumbnail: s,
1277
1277
  title: n,
@@ -1281,32 +1281,32 @@ const vn = (e) => {
1281
1281
  statusBadge: i,
1282
1282
  action: c,
1283
1283
  topLeft: f,
1284
- topRight: u,
1285
- rootRef: b,
1286
- "data-testid": h
1284
+ topRight: g,
1285
+ rootRef: y,
1286
+ "data-testid": m
1287
1287
  }) => {
1288
- const p = e === "dark", r = p ? n ?? a : n ?? "", g = p && !n;
1288
+ const h = e === "dark", r = h ? n ?? a : n ?? "", b = h && !n;
1289
1289
  return /* @__PURE__ */ d(
1290
1290
  "div",
1291
1291
  {
1292
- ref: b,
1293
- "data-testid": h,
1292
+ ref: y,
1293
+ "data-testid": m,
1294
1294
  className: D(
1295
1295
  "relative w-[280px] select-none overflow-hidden rounded-[24px] shadow-[0_0_0_1px_rgba(0,0,0,0.04),0_4px_8px_rgba(0,0,0,0.06)]",
1296
- p ? "bg-[#121110]" : "bg-white"
1296
+ h ? "bg-[#121110]" : "bg-white"
1297
1297
  ),
1298
1298
  children: [
1299
1299
  f ? /* @__PURE__ */ t("div", { className: "pointer-events-auto absolute left-3 top-3 z-50", children: f }) : null,
1300
- u ? /* @__PURE__ */ t("div", { className: "pointer-events-auto absolute right-3 top-3 z-50", children: u }) : null,
1300
+ g ? /* @__PURE__ */ t("div", { className: "pointer-events-auto absolute right-3 top-3 z-50", children: g }) : null,
1301
1301
  s,
1302
1302
  /* @__PURE__ */ d("div", { className: "px-4 pb-3 pt-3", children: [
1303
1303
  r.trim() !== "" && /* @__PURE__ */ t(
1304
1304
  "p",
1305
1305
  {
1306
1306
  className: D("mb-0.5 truncate text-base font-medium", {
1307
- "text-black": !p,
1308
- "text-white/30": p && g,
1309
- "text-white": p && !g
1307
+ "text-black": !h,
1308
+ "text-white/30": h && b,
1309
+ "text-white": h && !b
1310
1310
  }),
1311
1311
  children: r
1312
1312
  }
@@ -1315,7 +1315,7 @@ const vn = (e) => {
1315
1315
  we(o, {
1316
1316
  className: D(
1317
1317
  "size-5 shrink-0",
1318
- p ? "text-white/55" : "text-black/55"
1318
+ h ? "text-white/55" : "text-black/55"
1319
1319
  ),
1320
1320
  weight: "regular"
1321
1321
  }),
@@ -1324,7 +1324,7 @@ const vn = (e) => {
1324
1324
  {
1325
1325
  className: D(
1326
1326
  "text-xs font-medium",
1327
- p ? "text-white/55" : "text-black/55"
1327
+ h ? "text-white/55" : "text-black/55"
1328
1328
  ),
1329
1329
  children: l
1330
1330
  }
@@ -1337,29 +1337,29 @@ const vn = (e) => {
1337
1337
  }
1338
1338
  );
1339
1339
  };
1340
- function Dt(e) {
1340
+ function Lt(e) {
1341
1341
  return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`;
1342
1342
  }
1343
- function Fe(e) {
1343
+ function ze(e) {
1344
1344
  return `w-[280px] select-none overflow-hidden rounded-[24px] ${e ? "bg-[#121110]" : "bg-[#F3F3F1]"} shadow-[0_0_0_1px_rgba(0,0,0,0.04),0_4px_8px_rgba(0,0,0,0.06)]`;
1345
1345
  }
1346
- function _n(e) {
1346
+ function Sn(e) {
1347
1347
  return e ? "bg-white/10" : "bg-black/5";
1348
1348
  }
1349
- function Nn(e) {
1349
+ function In(e) {
1350
1350
  return e ? "text-white" : "text-black";
1351
1351
  }
1352
- function Cn(e) {
1352
+ function kn(e) {
1353
1353
  return e ? "text-white/55" : "text-black/55";
1354
1354
  }
1355
- function En(e) {
1355
+ function Tn(e) {
1356
1356
  return e ? "text-white/40" : "text-black/40";
1357
1357
  }
1358
- function Sn(e) {
1358
+ function Mn(e) {
1359
1359
  return e ? "text-white/20" : "text-black/20";
1360
1360
  }
1361
- const Oe = ({ attachment: e, isMyMessage: s }) => {
1362
- const { title: n, text: a, image_url: o, og_scrape_url: l, title_link: i } = e, c = l ?? i, f = typeof c == "string" && c.trim() !== "" ? c : void 0, u = /* @__PURE__ */ d(B.Fragment, { children: [
1361
+ const Ue = ({ attachment: e, isMyMessage: s }) => {
1362
+ const { title: n, text: a, image_url: o, og_scrape_url: l, title_link: i } = e, c = l ?? i, f = typeof c == "string" && c.trim() !== "" ? c : void 0, g = /* @__PURE__ */ d(B.Fragment, { children: [
1363
1363
  /* @__PURE__ */ t("div", { className: "p-2", children: o ? /* @__PURE__ */ t(
1364
1364
  "img",
1365
1365
  {
@@ -1370,26 +1370,26 @@ const Oe = ({ attachment: e, isMyMessage: s }) => {
1370
1370
  ) : /* @__PURE__ */ t(
1371
1371
  "div",
1372
1372
  {
1373
- className: `aspect-video w-full rounded-[20px] ${_n(s)} flex items-center justify-center`,
1374
- children: /* @__PURE__ */ t(Os, { className: `size-12 ${Sn(s)}` })
1373
+ className: `aspect-video w-full rounded-[20px] ${Sn(s)} flex items-center justify-center`,
1374
+ children: /* @__PURE__ */ t(Bs, { className: `size-12 ${Mn(s)}` })
1375
1375
  }
1376
1376
  ) }),
1377
1377
  /* @__PURE__ */ d("div", { className: "px-3 pb-3", children: [
1378
- n && /* @__PURE__ */ t("p", { className: `truncate text-[14px] font-medium leading-5 ${Nn(s)}`, children: n }),
1379
- a && /* @__PURE__ */ t("p", { className: `truncate text-[12px] leading-4 ${Cn(s)}`, children: a }),
1380
- f && /* @__PURE__ */ t("p", { className: `mt-1 truncate text-[12px] leading-4 ${En(s)}`, children: f })
1378
+ n && /* @__PURE__ */ t("p", { className: `truncate text-[14px] font-medium leading-5 ${In(s)}`, children: n }),
1379
+ a && /* @__PURE__ */ t("p", { className: `truncate text-[12px] leading-4 ${kn(s)}`, children: a }),
1380
+ f && /* @__PURE__ */ t("p", { className: `mt-1 truncate text-[12px] leading-4 ${Tn(s)}`, children: f })
1381
1381
  ] })
1382
1382
  ] });
1383
- return f ? /* @__PURE__ */ t("a", { href: f, target: "_blank", rel: "noopener noreferrer", className: "block no-underline", children: u }) : /* @__PURE__ */ t("div", { className: "block", children: u });
1383
+ return f ? /* @__PURE__ */ t("a", { href: f, target: "_blank", rel: "noopener noreferrer", className: "block no-underline", children: g }) : /* @__PURE__ */ t("div", { className: "block", children: g });
1384
1384
  };
1385
- function Rt(e) {
1385
+ function At(e) {
1386
1386
  return e.type === "link" || !!e.og_scrape_url && !e.asset_url;
1387
1387
  }
1388
- function Pe(e) {
1388
+ function Be(e) {
1389
1389
  var s;
1390
- return (s = e.attachments) == null ? void 0 : s.find(Rt);
1390
+ return (s = e.attachments) == null ? void 0 : s.find(At);
1391
1391
  }
1392
- async function In(e, s) {
1392
+ async function Dn(e, s) {
1393
1393
  let n;
1394
1394
  try {
1395
1395
  n = s ?? new URL(e).pathname.split("/").pop() ?? "download";
@@ -1401,7 +1401,7 @@ async function In(e, s) {
1401
1401
  const o = await a.blob(), l = URL.createObjectURL(o), i = document.createElement("a");
1402
1402
  i.href = l, i.download = n, i.style.display = "none", document.body.appendChild(i), i.click(), document.body.removeChild(i), URL.revokeObjectURL(l);
1403
1403
  }
1404
- const kn = ({
1404
+ const Rn = ({
1405
1405
  url: e,
1406
1406
  filename: s
1407
1407
  }) => {
@@ -1413,7 +1413,7 @@ const kn = ({
1413
1413
  onClick: (l) => {
1414
1414
  l.stopPropagation();
1415
1415
  const i = window.open("", "_blank", "noopener,noreferrer");
1416
- a(!0), In(e, s).then(() => {
1416
+ a(!0), Dn(e, s).then(() => {
1417
1417
  i == null || i.close();
1418
1418
  }).catch(() => {
1419
1419
  i && (i.location.href = e);
@@ -1421,44 +1421,44 @@ const kn = ({
1421
1421
  },
1422
1422
  disabled: n,
1423
1423
  className: "mt-3 inline-flex h-10 w-full items-center justify-center gap-2 rounded-full bg-[#121110] px-4 text-sm font-medium leading-none text-white hover:bg-[#2a2928] disabled:opacity-70",
1424
- children: n ? /* @__PURE__ */ t(wt, { className: "size-4 animate-spin text-white", weight: "bold" }) : /* @__PURE__ */ d(B.Fragment, { children: [
1425
- /* @__PURE__ */ t(Ps, { className: "size-4 text-white", weight: "bold" }),
1424
+ children: n ? /* @__PURE__ */ t(_t, { className: "size-4 animate-spin text-white", weight: "bold" }) : /* @__PURE__ */ d(B.Fragment, { children: [
1425
+ /* @__PURE__ */ t($s, { className: "size-4 text-white", weight: "bold" }),
1426
1426
  "Download"
1427
1427
  ] })
1428
1428
  }
1429
1429
  );
1430
1430
  };
1431
- function Ue(e) {
1432
- var h, p, r, g;
1433
- const s = (h = e.attachments) == null ? void 0 : h.find(
1434
- (x) => x.type === "video" && x.asset_url
1435
- ), n = (p = e.attachments) == null ? void 0 : p.find(
1436
- (x) => x.type === "image" && x.image_url
1431
+ function $e(e) {
1432
+ var m, h, r, b;
1433
+ const s = (m = e.attachments) == null ? void 0 : m.find(
1434
+ (w) => w.type === "video" && w.asset_url
1435
+ ), n = (h = e.attachments) == null ? void 0 : h.find(
1436
+ (w) => w.type === "image" && w.image_url
1437
1437
  ), a = (r = e.attachments) == null ? void 0 : r.find(
1438
- (x) => x.type === "audio" && x.asset_url
1439
- ), o = (g = e.attachments) == null ? void 0 : g.find(
1440
- (x) => x.type === "file" && x.asset_url
1438
+ (w) => w.type === "audio" && w.asset_url
1439
+ ), o = (b = e.attachments) == null ? void 0 : b.find(
1440
+ (w) => w.type === "file" && w.asset_url
1441
1441
  ), l = s ?? n ?? a ?? o, i = (s == null ? void 0 : s.asset_url) ?? (n == null ? void 0 : n.image_url) ?? (a == null ? void 0 : a.asset_url) ?? (o == null ? void 0 : o.asset_url);
1442
1442
  if (!i) return null;
1443
- const c = (l == null ? void 0 : l.mime_type) ?? ((l == null ? void 0 : l.type) === "image" ? "image/jpeg" : (l == null ? void 0 : l.type) === "video" ? "video/mp4" : (l == null ? void 0 : l.type) === "audio" ? "audio/mpeg" : "application/octet-stream"), f = l == null ? void 0 : l.title, u = l == null ? void 0 : l.file_size, b = s == null ? void 0 : s.thumb_url;
1443
+ const c = (l == null ? void 0 : l.mime_type) ?? ((l == null ? void 0 : l.type) === "image" ? "image/jpeg" : (l == null ? void 0 : l.type) === "video" ? "video/mp4" : (l == null ? void 0 : l.type) === "audio" ? "audio/mpeg" : "application/octet-stream"), f = l == null ? void 0 : l.title, g = l == null ? void 0 : l.file_size, y = s == null ? void 0 : s.thumb_url;
1444
1444
  return {
1445
1445
  resolvedUrl: i,
1446
1446
  resolvedType: c,
1447
1447
  title: f,
1448
- fileSize: u,
1449
- thumbnailUrl: b
1448
+ fileSize: g,
1449
+ thumbnailUrl: y
1450
1450
  };
1451
1451
  }
1452
- const Lt = ({
1452
+ const Ft = ({
1453
1453
  resolvedUrl: e,
1454
1454
  resolvedType: s,
1455
1455
  title: n,
1456
1456
  fileSize: a,
1457
1457
  thumbnailUrl: o
1458
1458
  }) => {
1459
- const l = a !== void 0 ? Dt(a) : void 0;
1459
+ const l = a !== void 0 ? Lt(a) : void 0;
1460
1460
  return /* @__PURE__ */ t(
1461
- Tt,
1461
+ Rt,
1462
1462
  {
1463
1463
  variant: "dark",
1464
1464
  title: n,
@@ -1466,7 +1466,7 @@ const Lt = ({
1466
1466
  mimeType: s,
1467
1467
  detail: l,
1468
1468
  thumbnail: /* @__PURE__ */ t(
1469
- Mt,
1469
+ Dt,
1470
1470
  {
1471
1471
  mimeType: s,
1472
1472
  sourceUrl: e,
@@ -1477,23 +1477,23 @@ const Lt = ({
1477
1477
  )
1478
1478
  }
1479
1479
  );
1480
- }, At = ({
1480
+ }, Ot = ({
1481
1481
  resolvedUrl: e,
1482
1482
  resolvedType: s,
1483
1483
  title: n,
1484
1484
  fileSize: a,
1485
1485
  thumbnailUrl: o
1486
1486
  }) => {
1487
- const l = _e(s), i = a !== void 0 ? Dt(a) : void 0;
1487
+ const l = _e(s), i = a !== void 0 ? Lt(a) : void 0;
1488
1488
  return /* @__PURE__ */ t(
1489
- Tt,
1489
+ Rt,
1490
1490
  {
1491
1491
  variant: "light",
1492
1492
  title: n,
1493
1493
  mimeType: s,
1494
1494
  detail: i,
1495
1495
  thumbnail: /* @__PURE__ */ t(
1496
- Mt,
1496
+ Dt,
1497
1497
  {
1498
1498
  mimeType: s,
1499
1499
  sourceUrl: e,
@@ -1503,14 +1503,14 @@ const Lt = ({
1503
1503
  containedImage: l === "image" || l === "document"
1504
1504
  }
1505
1505
  ),
1506
- action: /* @__PURE__ */ t(kn, { url: e, filename: n })
1506
+ action: /* @__PURE__ */ t(Rn, { url: e, filename: n })
1507
1507
  }
1508
1508
  );
1509
- }, Mn = ({
1509
+ }, Ln = ({
1510
1510
  message: e,
1511
1511
  isMyMessage: s = !1
1512
1512
  }) => {
1513
- const n = Pe(e), a = Ue(e);
1513
+ const n = Be(e), a = $e(e);
1514
1514
  return !n && !a ? null : /* @__PURE__ */ d("div", { className: s ? "str-chat__message str-chat__message-simple str-chat__message--me str-chat__message-simple--me" : "str-chat__message str-chat__message-simple str-chat__message--other", children: [
1515
1515
  !s && e.user && /* @__PURE__ */ t(
1516
1516
  ae,
@@ -1531,40 +1531,40 @@ const Lt = ({
1531
1531
  {
1532
1532
  className: "str-chat__message-bubble",
1533
1533
  style: { padding: 0, borderRadius: 0, overflow: "visible", background: "transparent" },
1534
- children: n ? /* @__PURE__ */ t("div", { className: Fe(s), children: /* @__PURE__ */ t(Oe, { attachment: n, isMyMessage: s }) }) : s ? /* @__PURE__ */ t(Lt, { ...a }) : /* @__PURE__ */ t(At, { ...a })
1534
+ children: n ? /* @__PURE__ */ t("div", { className: ze(s), children: /* @__PURE__ */ t(Ue, { attachment: n, isMyMessage: s }) }) : s ? /* @__PURE__ */ t(Ft, { ...a }) : /* @__PURE__ */ t(Ot, { ...a })
1535
1535
  }
1536
1536
  ) })
1537
1537
  }
1538
1538
  )
1539
1539
  ] });
1540
- }, Tn = ({
1540
+ }, An = ({
1541
1541
  message: e
1542
1542
  }) => {
1543
- const s = Pe(e);
1543
+ const s = Be(e);
1544
1544
  if (s)
1545
- return /* @__PURE__ */ t("div", { className: Fe(!0), children: /* @__PURE__ */ t(Oe, { attachment: s, isMyMessage: !0 }) });
1546
- const n = Ue(e);
1547
- return n ? /* @__PURE__ */ t(Lt, { ...n }) : null;
1548
- }, Dn = ({
1545
+ return /* @__PURE__ */ t("div", { className: ze(!0), children: /* @__PURE__ */ t(Ue, { attachment: s, isMyMessage: !0 }) });
1546
+ const n = $e(e);
1547
+ return n ? /* @__PURE__ */ t(Ft, { ...n }) : null;
1548
+ }, Fn = ({
1549
1549
  message: e
1550
1550
  }) => {
1551
- const s = Pe(e);
1551
+ const s = Be(e);
1552
1552
  if (s)
1553
- return /* @__PURE__ */ t("div", { className: Fe(!1), children: /* @__PURE__ */ t(Oe, { attachment: s, isMyMessage: !1 }) });
1554
- const n = Ue(e);
1555
- return n ? /* @__PURE__ */ t(At, { ...n }) : null;
1556
- }, ga = Object.assign(Mn, {
1557
- Creator: Tn,
1558
- Visitor: Dn
1559
- }), Rn = {
1553
+ return /* @__PURE__ */ t("div", { className: ze(!1), children: /* @__PURE__ */ t(Ue, { attachment: s, isMyMessage: !1 }) });
1554
+ const n = $e(e);
1555
+ return n ? /* @__PURE__ */ t(Ot, { ...n }) : null;
1556
+ }, ya = Object.assign(Ln, {
1557
+ Creator: An,
1558
+ Visitor: Fn
1559
+ }), On = {
1560
1560
  isUnlocking: () => !1
1561
- }, Ln = {
1562
- LockedAttachment: Rn
1563
- }, Ft = ht({}), ba = Ft.Provider;
1564
- function An(e) {
1565
- return ft(Ft)[e] ?? Ln[e];
1561
+ }, Pn = {
1562
+ LockedAttachment: On
1563
+ }, Pt = Ae({}), _a = Pt.Provider;
1564
+ function zn(e) {
1565
+ return Fe(Pt)[e] ?? Pn[e];
1566
1566
  }
1567
- const Fn = ({
1567
+ const Un = ({
1568
1568
  selected: e,
1569
1569
  onVoteUp: s,
1570
1570
  onVoteDown: n
@@ -1580,7 +1580,7 @@ const Fn = ({
1580
1580
  "aria-label": "Good response",
1581
1581
  "aria-pressed": e === "up",
1582
1582
  "data-tooltip": "Good response",
1583
- children: /* @__PURE__ */ t(Us, { size: 16, weight: e === "up" ? "fill" : "regular" })
1583
+ children: /* @__PURE__ */ t(js, { size: 16, weight: e === "up" ? "fill" : "regular" })
1584
1584
  }
1585
1585
  ),
1586
1586
  /* @__PURE__ */ t(
@@ -1594,11 +1594,11 @@ const Fn = ({
1594
1594
  "aria-label": "Bad response",
1595
1595
  "aria-pressed": e === "down",
1596
1596
  "data-tooltip": "Bad response",
1597
- children: /* @__PURE__ */ t(zs, { size: 16, weight: e === "down" ? "fill" : "regular" })
1597
+ children: /* @__PURE__ */ t(Gs, { size: 16, weight: e === "down" ? "fill" : "regular" })
1598
1598
  }
1599
1599
  )
1600
- ] }), On = (e) => {
1601
- var ze, Be, $e, je, Ge, Ve, He, Ye, qe, We, Xe, Ze, Je, Ke;
1600
+ ] }), Bn = (e) => {
1601
+ var je, Ge, Ve, He, Ye, qe, We, Xe, Ze, Je, Ke, Qe, et, tt;
1602
1602
  const {
1603
1603
  additionalMessageInputProps: s,
1604
1604
  chatbotVotingEnabled: n,
@@ -1608,47 +1608,47 @@ const Fn = ({
1608
1608
  groupedByUser: i,
1609
1609
  handleAction: c,
1610
1610
  handleOpenThread: f,
1611
- handleRetry: u,
1612
- highlighted: b,
1613
- isMessageAIGenerated: h,
1614
- isMyMessage: p,
1611
+ handleRetry: g,
1612
+ highlighted: y,
1613
+ isMessageAIGenerated: m,
1614
+ isMyMessage: h,
1615
1615
  message: r,
1616
- renderText: g,
1617
- threadList: x,
1618
- viewerLanguage: y
1619
- } = e, { client: N } = Le("CustomMessage"), { channel: w } = oe("CustomMessage"), { isUnlocking: S, onUnlockClick: I, onFetchSource: M, onDownloadClick: $ } = An("LockedAttachment"), [k, T] = O(!1), j = Gt(r.id), { selected: _, voteUp: L, voteDown: v } = cn(r), {
1620
- Attachment: A = Vt,
1621
- EditMessageModal: V = Ht,
1622
- MessageBlocked: R = Yt,
1623
- MessageBouncePrompt: P = qt,
1624
- MessageDeleted: E = Wt,
1625
- MessageIsThreadReplyInChannelButtonIndicator: H = Xt,
1626
- MessageRepliesCountButton: Y = Zt,
1627
- ReminderNotification: te = Jt,
1628
- StreamedMessageText: U = Kt,
1629
- PinIndicator: m
1630
- } = bt("CustomMessage"), C = Qt(r), z = es(r), K = pe(
1631
- () => h == null ? void 0 : h(r),
1632
- [h, r]
1616
+ renderText: b,
1617
+ threadList: w,
1618
+ viewerLanguage: x
1619
+ } = e, { client: N } = Oe("CustomMessage"), { channel: p } = oe("CustomMessage"), { isUnlocking: S, onUnlockClick: I, onFetchSource: T, onDownloadClick: $ } = zn("LockedAttachment"), [k, M] = O(!1), j = Yt(r.id), { selected: _, voteUp: L, voteDown: v } = hn(r), {
1620
+ Attachment: A = qt,
1621
+ EditMessageModal: V = Wt,
1622
+ MessageBlocked: R = Xt,
1623
+ MessageBouncePrompt: P = Zt,
1624
+ MessageDeleted: E = Jt,
1625
+ MessageIsThreadReplyInChannelButtonIndicator: H = Kt,
1626
+ MessageRepliesCountButton: Y = Qt,
1627
+ ReminderNotification: te = es,
1628
+ StreamedMessageText: z = ts,
1629
+ PinIndicator: u
1630
+ } = xt("CustomMessage"), C = ss(r), U = ns(r), K = pe(
1631
+ () => m == null ? void 0 : m(r),
1632
+ [m, r]
1633
1633
  ), W = pe(() => {
1634
1634
  const ue = r.attachments ?? [], ge = r.shared_location ? [r.shared_location, ...ue] : ue;
1635
1635
  if (!ve(r)) return ge;
1636
- const Qe = ge.filter((et) => !("type" in et) || !Rt(et));
1637
- return Qe.length === ge.length ? ge : Qe;
1636
+ const st = ge.filter((nt) => !("type" in nt) || !At(nt));
1637
+ return st.length === ge.length ? ge : st;
1638
1638
  }, [r]), Q = pe(() => {
1639
- const ue = Ct({ message: r, viewerLanguage: y });
1639
+ const ue = St({ message: r, viewerLanguage: x });
1640
1640
  return ue === r.text ? r : { ...r, text: ue };
1641
- }, [r, y]);
1642
- if (ts(r))
1641
+ }, [r, x]);
1642
+ if (as(r))
1643
1643
  return null;
1644
1644
  if (r.deleted_at || r.type === "deleted")
1645
1645
  return /* @__PURE__ */ t(E, { message: r });
1646
- if (ss(r))
1646
+ if (rs(r))
1647
1647
  return /* @__PURE__ */ t(R, {});
1648
- const me = !x && !!r.reply_count, he = !x && r.show_in_channel && r.parent_id, re = r.status === "failed" && ((ze = r.error) == null ? void 0 : ze.status) !== 403, ee = ns(r);
1648
+ const me = !w && !!r.reply_count, he = !w && r.show_in_channel && r.parent_id, re = r.status === "failed" && ((je = r.error) == null ? void 0 : je.status) !== 403, ee = is(r);
1649
1649
  let se;
1650
- re ? se = () => u(r) : ee && (se = () => T(!0));
1651
- const ie = p(), Ne = D(
1650
+ re ? se = () => g(r) : ee && (se = () => M(!0));
1651
+ const ie = h(), Ne = D(
1652
1652
  "str-chat__message str-chat__message-simple",
1653
1653
  `str-chat__message--${r.type}`,
1654
1654
  `str-chat__message--${r.status}`,
@@ -1656,16 +1656,16 @@ const Fn = ({
1656
1656
  r.text ? "str-chat__message--has-text" : "has-no-text",
1657
1657
  {
1658
1658
  "str-chat__message--has-attachment": C,
1659
- "str-chat__message--highlighted": b,
1659
+ "str-chat__message--highlighted": y,
1660
1660
  "str-chat__message--pinned pinned-message": r.pinned,
1661
- "str-chat__message--with-reactions": z,
1662
- "str-chat__message-send-can-be-retried": (r == null ? void 0 : r.status) === "failed" && ((Be = r == null ? void 0 : r.error) == null ? void 0 : Be.status) !== 403,
1661
+ "str-chat__message--with-reactions": U,
1662
+ "str-chat__message-send-can-be-retried": (r == null ? void 0 : r.status) === "failed" && ((Ge = r == null ? void 0 : r.error) == null ? void 0 : Ge.status) !== 403,
1663
1663
  "str-chat__message-with-thread-link": me || he,
1664
1664
  "str-chat__virtual-message__wrapper--end": o,
1665
1665
  "str-chat__virtual-message__wrapper--first": l,
1666
1666
  "str-chat__virtual-message__wrapper--group": i
1667
1667
  }
1668
- ), fe = r.poll_id && N.polls.fromState(r.poll_id), le = tn(r), F = ve(r), X = en(r), Z = !!(W != null && W.length && !r.quoted_message), ne = F && ie && Z;
1668
+ ), fe = r.poll_id && N.polls.fromState(r.poll_id), le = rn(r), F = ve(r), X = an(r), Z = !!(W != null && W.length && !r.quoted_message), ne = F && ie && Z;
1669
1669
  return /* @__PURE__ */ d(de, { children: [
1670
1670
  a && /* @__PURE__ */ t(
1671
1671
  V,
@@ -1674,15 +1674,15 @@ const Fn = ({
1674
1674
  }
1675
1675
  ),
1676
1676
  k && /* @__PURE__ */ t(
1677
- as,
1677
+ os,
1678
1678
  {
1679
1679
  MessageBouncePrompt: P,
1680
- onClose: () => T(!1),
1680
+ onClose: () => M(!1),
1681
1681
  open: k
1682
1682
  }
1683
1683
  ),
1684
1684
  /* @__PURE__ */ d("div", { className: Ne, children: [
1685
- m && /* @__PURE__ */ t(m, {}),
1685
+ u && /* @__PURE__ */ t(u, {}),
1686
1686
  !!j && /* @__PURE__ */ t(te, { reminder: j }),
1687
1687
  r.user && /* @__PURE__ */ t(
1688
1688
  ae,
@@ -1715,54 +1715,54 @@ const Fn = ({
1715
1715
  },
1716
1716
  children: X ? /* @__PURE__ */ d("div", { className: "str-chat__message-bubble-wrapper", children: [
1717
1717
  ie ? /* @__PURE__ */ t(
1718
- ct.Creator,
1718
+ mt.Creator,
1719
1719
  {
1720
- title: ($e = r.metadata) == null ? void 0 : $e.attachment_title,
1721
- mimeType: (je = r.metadata) == null ? void 0 : je.attachment_mime_type,
1722
- thumbnailUrl: (Ge = r.metadata) == null ? void 0 : Ge.attachment_thumbnail,
1723
- amountText: (Ve = r.metadata) == null ? void 0 : Ve.amount_text,
1724
- detail: (He = r.metadata) == null ? void 0 : He.attachment_detail,
1725
- paymentStatus: (Ye = r.metadata) == null ? void 0 : Ye.payment_status,
1720
+ title: (Ve = r.metadata) == null ? void 0 : Ve.attachment_title,
1721
+ mimeType: (He = r.metadata) == null ? void 0 : He.attachment_mime_type,
1722
+ thumbnailUrl: (Ye = r.metadata) == null ? void 0 : Ye.attachment_thumbnail,
1723
+ amountText: (qe = r.metadata) == null ? void 0 : qe.amount_text,
1724
+ detail: (We = r.metadata) == null ? void 0 : We.attachment_detail,
1725
+ paymentStatus: (Xe = r.metadata) == null ? void 0 : Xe.payment_status,
1726
1726
  isUnlocking: S(r.id),
1727
- onPreviewClick: () => I == null ? void 0 : I(r, w),
1728
- onFetchSource: async () => await (M == null ? void 0 : M(r, w))
1727
+ onPreviewClick: () => I == null ? void 0 : I(r, p),
1728
+ onFetchSource: async () => await (T == null ? void 0 : T(r, p))
1729
1729
  }
1730
1730
  ) : /* @__PURE__ */ t(
1731
- ct.Visitor,
1731
+ mt.Visitor,
1732
1732
  {
1733
- title: (qe = r.metadata) == null ? void 0 : qe.attachment_title,
1734
- mimeType: (We = r.metadata) == null ? void 0 : We.attachment_mime_type,
1735
- thumbnailUrl: (Xe = r.metadata) == null ? void 0 : Xe.attachment_thumbnail,
1736
- amountText: (Ze = r.metadata) == null ? void 0 : Ze.amount_text,
1737
- detail: (Je = r.metadata) == null ? void 0 : Je.attachment_detail,
1738
- paymentStatus: (Ke = r.metadata) == null ? void 0 : Ke.payment_status,
1733
+ title: (Ze = r.metadata) == null ? void 0 : Ze.attachment_title,
1734
+ mimeType: (Je = r.metadata) == null ? void 0 : Je.attachment_mime_type,
1735
+ thumbnailUrl: (Ke = r.metadata) == null ? void 0 : Ke.attachment_thumbnail,
1736
+ amountText: (Qe = r.metadata) == null ? void 0 : Qe.amount_text,
1737
+ detail: (et = r.metadata) == null ? void 0 : et.attachment_detail,
1738
+ paymentStatus: (tt = r.metadata) == null ? void 0 : tt.payment_status,
1739
1739
  isUnlocking: S(r.id),
1740
- onUnlockClick: () => I == null ? void 0 : I(r, w),
1741
- onFetchSource: async () => await (M == null ? void 0 : M(r, w)),
1742
- onDownloadClick: () => $ == null ? void 0 : $(r, w)
1740
+ onUnlockClick: () => I == null ? void 0 : I(r, p),
1741
+ onFetchSource: async () => await (T == null ? void 0 : T(r, p)),
1742
+ onDownloadClick: () => $ == null ? void 0 : $(r, p)
1743
1743
  }
1744
1744
  ),
1745
1745
  r.text && /* @__PURE__ */ t("div", { className: "str-chat__message-bubble", children: /* @__PURE__ */ t(
1746
- tt,
1746
+ at,
1747
1747
  {
1748
1748
  message: Q,
1749
- renderText: g
1749
+ renderText: b
1750
1750
  }
1751
1751
  ) })
1752
1752
  ] }) : le ? (
1753
1753
  /* Tip-only messages render as a standalone bubble */
1754
- /* @__PURE__ */ t(Se, { message: r, standalone: !0 })
1754
+ /* @__PURE__ */ t(Ie, { message: r, standalone: !0 })
1755
1755
  ) : /* @__PURE__ */ d("div", { className: "str-chat__message-bubble-wrapper", children: [
1756
1756
  /* @__PURE__ */ d("div", { className: "str-chat__message-bubble", children: [
1757
1757
  F && !ne && /* @__PURE__ */ t(
1758
- Se,
1758
+ Ie,
1759
1759
  {
1760
1760
  message: r,
1761
1761
  hasAttachment: Z,
1762
1762
  isMyMessage: ie
1763
1763
  }
1764
1764
  ),
1765
- fe && /* @__PURE__ */ t(rs, { poll: fe }),
1765
+ fe && /* @__PURE__ */ t(ls, { poll: fe }),
1766
1766
  W != null && W.length && !r.quoted_message ? /* @__PURE__ */ t(
1767
1767
  A,
1768
1768
  {
@@ -1771,22 +1771,22 @@ const Fn = ({
1771
1771
  }
1772
1772
  ) : null,
1773
1773
  K ? /* @__PURE__ */ t(
1774
- U,
1774
+ z,
1775
1775
  {
1776
1776
  message: Q,
1777
- renderText: g
1777
+ renderText: b
1778
1778
  }
1779
1779
  ) : /* @__PURE__ */ t(
1780
- tt,
1780
+ at,
1781
1781
  {
1782
1782
  message: Q,
1783
- renderText: g
1783
+ renderText: b
1784
1784
  }
1785
1785
  ),
1786
- /* @__PURE__ */ t(is, {})
1786
+ /* @__PURE__ */ t(cs, {})
1787
1787
  ] }),
1788
1788
  (!F || ne) && /* @__PURE__ */ t(
1789
- Se,
1789
+ Ie,
1790
1790
  {
1791
1791
  message: r,
1792
1792
  hasAttachment: Z,
@@ -1794,7 +1794,7 @@ const Fn = ({
1794
1794
  }
1795
1795
  ),
1796
1796
  n && F && /* @__PURE__ */ t(
1797
- Fn,
1797
+ Un,
1798
1798
  {
1799
1799
  selected: _,
1800
1800
  onVoteUp: L,
@@ -1814,17 +1814,17 @@ const Fn = ({
1814
1814
  he && /* @__PURE__ */ t(H, {})
1815
1815
  ] }, r.id)
1816
1816
  ] });
1817
- }, Pn = B.memo(
1818
- On,
1819
- (e, s) => e.chatbotVotingEnabled !== s.chatbotVotingEnabled || e.viewerLanguage !== s.viewerLanguage ? !1 : jt(e, s)
1820
- ), Un = (e) => {
1821
- const s = pt("CustomMessage");
1822
- return /* @__PURE__ */ t(Pn, { ...s, ...e });
1823
- }, zn = (e) => ({
1817
+ }, $n = B.memo(
1818
+ Bn,
1819
+ (e, s) => e.chatbotVotingEnabled !== s.chatbotVotingEnabled || e.viewerLanguage !== s.viewerLanguage ? !1 : Ht(e, s)
1820
+ ), jn = (e) => {
1821
+ const s = vt("CustomMessage");
1822
+ return /* @__PURE__ */ t($n, { ...s, ...e });
1823
+ }, Gn = (e) => ({
1824
1824
  linkPreviews: Array.from(e.previews.values()).filter(
1825
- (s) => ot.previewIsLoaded(s) || ot.previewIsLoading(s)
1825
+ (s) => dt.previewIsLoaded(s) || dt.previewIsLoading(s)
1826
1826
  )
1827
- }), Bn = ({
1827
+ }), Vn = ({
1828
1828
  link: e,
1829
1829
  onDismiss: s
1830
1830
  }) => {
@@ -1854,7 +1854,7 @@ const Fn = ({
1854
1854
  },
1855
1855
  className: "absolute right-4 top-4 flex size-6 items-center justify-center rounded-full border border-white/40 bg-white/70 backdrop-blur-2xl focus-ring",
1856
1856
  "aria-label": "Close link preview",
1857
- children: /* @__PURE__ */ t(xt, { className: "size-4 text-black/90" })
1857
+ children: /* @__PURE__ */ t(wt, { className: "size-4 text-black/90" })
1858
1858
  }
1859
1859
  ),
1860
1860
  /* @__PURE__ */ d("div", { className: "p-2", children: [
@@ -1864,22 +1864,22 @@ const Fn = ({
1864
1864
  ]
1865
1865
  }
1866
1866
  );
1867
- }, $n = () => {
1868
- const { linkPreviewsManager: e } = os(), { linkPreviews: s } = ls(
1867
+ }, Hn = () => {
1868
+ const { linkPreviewsManager: e } = ds(), { linkPreviews: s } = us(
1869
1869
  e.state,
1870
- zn
1870
+ Gn
1871
1871
  ), n = (o) => {
1872
1872
  e.dismissPreview(o);
1873
1873
  };
1874
1874
  return s.length > 0 ? /* @__PURE__ */ t("div", { className: "flex flex-col items-center w-full gap-2 mb-4", children: s.map((o) => /* @__PURE__ */ t(
1875
- Bn,
1875
+ Vn,
1876
1876
  {
1877
1877
  link: o,
1878
1878
  onDismiss: n
1879
1879
  },
1880
1880
  o.og_scrape_url
1881
1881
  )) }) : null;
1882
- }, jn = ({ sendMessage: e, disabled: s, ...n }) => /* @__PURE__ */ t(
1882
+ }, Yn = ({ sendMessage: e, disabled: s, ...n }) => /* @__PURE__ */ t(
1883
1883
  "button",
1884
1884
  {
1885
1885
  ...n,
@@ -1887,22 +1887,22 @@ const Fn = ({
1887
1887
  "aria-label": "Send",
1888
1888
  disabled: s,
1889
1889
  onClick: e,
1890
- children: /* @__PURE__ */ t(Bs, { weight: "bold", className: "size-4" })
1890
+ children: /* @__PURE__ */ t(Vs, { weight: "bold", className: "size-4" })
1891
1891
  }
1892
- ), Gn = () => {
1892
+ ), qn = () => {
1893
1893
  var c;
1894
- const { channel: e } = oe(), s = ((c = e == null ? void 0 : e.data) == null ? void 0 : c.frozen) === !0, { handleSubmit: n } = ds(), { SendButton: a } = bt(
1894
+ const { channel: e } = oe(), s = ((c = e == null ? void 0 : e.data) == null ? void 0 : c.frozen) === !0, { handleSubmit: n } = hs(), { SendButton: a } = xt(
1895
1895
  "CustomMessageInput"
1896
- ), o = a ?? jn, l = us();
1896
+ ), o = a ?? Yn, l = fs();
1897
1897
  return /* @__PURE__ */ d(de, { children: [
1898
- /* @__PURE__ */ t("div", { className: "left-container", children: /* @__PURE__ */ t(ms, {}) }),
1898
+ /* @__PURE__ */ t("div", { className: "left-container", children: /* @__PURE__ */ t(gs, {}) }),
1899
1899
  /* @__PURE__ */ d("div", { className: "central-container min-w-0 w-full p-2 bg-white rounded-[1.5rem] shadow-[0_4px_16px_0_rgba(0,0,0,0.08),0_1px_2px_0_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.04)]", children: [
1900
- /* @__PURE__ */ t(hs, {}),
1901
- /* @__PURE__ */ t($n, {}),
1902
- /* @__PURE__ */ t(fs, {}),
1900
+ /* @__PURE__ */ t(bs, {}),
1901
+ /* @__PURE__ */ t(Hn, {}),
1902
+ /* @__PURE__ */ t(ps, {}),
1903
1903
  /* @__PURE__ */ d("div", { className: "flex", children: [
1904
1904
  /* @__PURE__ */ t("div", { className: "w-full ml-2 mr-4 self-center leading-[0]", children: /* @__PURE__ */ t(
1905
- gs,
1905
+ xs,
1906
1906
  {
1907
1907
  "aria-disabled": s || void 0,
1908
1908
  className: "w-full resize-none outline-none leading-6",
@@ -1926,7 +1926,7 @@ const Fn = ({
1926
1926
  ] })
1927
1927
  ] })
1928
1928
  ] });
1929
- }, Vn = ({
1929
+ }, Wn = ({
1930
1930
  renderActions: e
1931
1931
  }) => {
1932
1932
  var a;
@@ -1939,65 +1939,65 @@ const Fn = ({
1939
1939
  className: "message-input flex items-center gap-2 p-4 aria-disabled:opacity-40",
1940
1940
  children: [
1941
1941
  e == null ? void 0 : e(),
1942
- /* @__PURE__ */ t(cs, { Input: Gn })
1942
+ /* @__PURE__ */ t(ms, { Input: qn })
1943
1943
  ]
1944
1944
  }
1945
1945
  );
1946
- }, Hn = [
1946
+ }, Xn = [
1947
1947
  "SYSTEM_DM_AGENT_PAUSED",
1948
1948
  "SYSTEM_DM_AGENT_RESUMED"
1949
- ], Yn = {
1949
+ ], Zn = {
1950
1950
  SYSTEM_DM_AGENT_PAUSED: "DM Agent has left the conversation",
1951
1951
  SYSTEM_DM_AGENT_RESUMED: "DM Agent has rejoined the conversation"
1952
- }, qn = [
1952
+ }, Jn = [
1953
1953
  "SYSTEM_AGE_SAFETY_BLOCKED"
1954
- ], Wn = {
1954
+ ], Kn = {
1955
1955
  SYSTEM_AGE_SAFETY_BLOCKED: "This user isn’t able to reply because they don’t meet our age safety guidelines."
1956
- }, Ie = "age safety guidelines.", Xn = "https://linktr.ee/s/about/contact", ut = (e) => Hn.includes(e), Zn = (e) => qn.includes(e), Jn = (e) => {
1956
+ }, ke = "age safety guidelines.", Qn = "https://linktr.ee/s/about/contact", ft = (e) => Xn.includes(e), ea = (e) => Jn.includes(e), ta = (e) => {
1957
1957
  var a;
1958
1958
  const s = (a = e.metadata) == null ? void 0 : a.custom_type;
1959
- if (ut(s))
1959
+ if (ft(s))
1960
1960
  return {
1961
1961
  kind: "dm-agent",
1962
1962
  type: s
1963
1963
  };
1964
- if (Zn(s))
1964
+ if (ea(s))
1965
1965
  return {
1966
1966
  kind: "age-safety",
1967
1967
  type: s
1968
1968
  };
1969
1969
  const n = e.dm_agent_system_type;
1970
- if (ut(n))
1970
+ if (ft(n))
1971
1971
  return {
1972
1972
  kind: "dm-agent",
1973
1973
  type: n
1974
1974
  };
1975
- }, Kn = (e) => {
1976
- const s = e.indexOf(Ie);
1975
+ }, sa = (e) => {
1976
+ const s = e.indexOf(ke);
1977
1977
  if (s === -1)
1978
1978
  return e;
1979
- const n = s + Ie.length;
1979
+ const n = s + ke.length;
1980
1980
  return /* @__PURE__ */ d(de, { children: [
1981
1981
  e.slice(0, s),
1982
1982
  /* @__PURE__ */ t(
1983
1983
  "a",
1984
1984
  {
1985
- href: Xn,
1985
+ href: Qn,
1986
1986
  target: "_blank",
1987
1987
  rel: "noopener noreferrer",
1988
1988
  className: "mes-age-safety-system-message__emphasis font-medium text-inherit underline",
1989
- children: Ie
1989
+ children: ke
1990
1990
  }
1991
1991
  ),
1992
1992
  e.slice(n)
1993
1993
  ] });
1994
- }, Qn = (e) => {
1994
+ }, na = (e) => {
1995
1995
  var a, o;
1996
- const s = e.message.hide_date === !0, n = Jn(
1996
+ const s = e.message.hide_date === !0, n = ta(
1997
1997
  e.message
1998
1998
  );
1999
1999
  if ((n == null ? void 0 : n.kind) === "dm-agent") {
2000
- const l = ((a = e.message.text) == null ? void 0 : a.trim()) || Yn[n.type];
2000
+ const l = ((a = e.message.text) == null ? void 0 : a.trim()) || Zn[n.type];
2001
2001
  return /* @__PURE__ */ d("div", { className: "str-chat__message--system", "data-testid": "message-system", children: [
2002
2002
  /* @__PURE__ */ d(
2003
2003
  "div",
@@ -2007,7 +2007,7 @@ const Fn = ({
2007
2007
  "data-dm-agent-system-type": n.type,
2008
2008
  children: [
2009
2009
  /* @__PURE__ */ t(
2010
- Te,
2010
+ De,
2011
2011
  {
2012
2012
  size: 16,
2013
2013
  weight: "regular",
@@ -2023,7 +2023,7 @@ const Fn = ({
2023
2023
  ] });
2024
2024
  }
2025
2025
  if ((n == null ? void 0 : n.kind) === "age-safety") {
2026
- const l = ((o = e.message.text) == null ? void 0 : o.trim()) || Wn[n.type];
2026
+ const l = ((o = e.message.text) == null ? void 0 : o.trim()) || Kn[n.type];
2027
2027
  return /* @__PURE__ */ d("div", { className: "str-chat__message--system", "data-testid": "message-system", children: [
2028
2028
  /* @__PURE__ */ d(
2029
2029
  "div",
@@ -2033,7 +2033,7 @@ const Fn = ({
2033
2033
  "data-age-safety-system-type": n.type,
2034
2034
  children: [
2035
2035
  /* @__PURE__ */ t(
2036
- $s,
2036
+ Hs,
2037
2037
  {
2038
2038
  size: 24,
2039
2039
  weight: "duotone",
@@ -2042,7 +2042,7 @@ const Fn = ({
2042
2042
  "data-testid": "age-safety-system-message-icon"
2043
2043
  }
2044
2044
  ),
2045
- /* @__PURE__ */ t("div", { className: "mes-age-safety-system-message__content min-w-0 flex-[1_0_0]", children: /* @__PURE__ */ t("p", { className: "m-0 text-balance text-left text-[12px] font-normal leading-4 tracking-[0.21px] text-[color:var(--text-warning-on-warning,#894b00)]", children: Kn(l) }) })
2045
+ /* @__PURE__ */ t("div", { className: "mes-age-safety-system-message__content min-w-0 flex-[1_0_0]", children: /* @__PURE__ */ t("p", { className: "m-0 text-balance text-left text-[12px] font-normal leading-4 tracking-[0.21px] text-[color:var(--text-warning-on-warning,#894b00)]", children: sa(l) }) })
2046
2046
  ]
2047
2047
  }
2048
2048
  ),
@@ -2057,7 +2057,7 @@ const Fn = ({
2057
2057
  ] }),
2058
2058
  !s && /* @__PURE__ */ t(Ce, { message: e.message })
2059
2059
  ] });
2060
- }, ke = ({ cx: e, index: s }) => /* @__PURE__ */ t("circle", { cx: e, cy: "4", r: "3.9", fill: "#A0A0A0", children: /* @__PURE__ */ t(
2060
+ }, zt = Ae(!1), Te = ({ cx: e, index: s }) => /* @__PURE__ */ t("circle", { cx: e, cy: "4", r: "3.9", fill: "#A0A0A0", children: /* @__PURE__ */ t(
2061
2061
  "animateTransform",
2062
2062
  {
2063
2063
  attributeName: "transform",
@@ -2067,62 +2067,101 @@ const Fn = ({
2067
2067
  begin: `${120 * s}ms`,
2068
2068
  repeatCount: "indefinite"
2069
2069
  }
2070
- ) }), ea = ({ threadList: e }) => {
2071
- var g;
2072
- const { channel: s, channelConfig: n, thread: a } = oe(), { client: o } = Le(), { typing: l = {} } = bs();
2070
+ ) }), aa = /* @__PURE__ */ new Set([
2071
+ Ee.Thinking,
2072
+ Ee.Generating,
2073
+ Ee.ExternalSources
2074
+ ]), ra = ({ threadList: e }) => {
2075
+ var b, w;
2076
+ const { channel: s, channelConfig: n, thread: a } = oe(), { client: o } = Oe(), { typing: l = {} } = vs(), { aiState: i } = ws(s), c = Fe(zt);
2077
+ if (!e && c && aa.has(i)) {
2078
+ const x = ia(s, (b = o.user) == null ? void 0 : b.id);
2079
+ return /* @__PURE__ */ t(
2080
+ gt,
2081
+ {
2082
+ avatarId: (x == null ? void 0 : x.id) ?? "ai-agent",
2083
+ avatarName: (x == null ? void 0 : x.name) ?? (x == null ? void 0 : x.id) ?? "Agent",
2084
+ avatarImage: x == null ? void 0 : x.image,
2085
+ testId: "typing-indicator-ai"
2086
+ }
2087
+ );
2088
+ }
2073
2089
  if ((n == null ? void 0 : n.typing_events) === !1)
2074
2090
  return null;
2075
- const i = e ? [] : Object.values(l).filter(
2076
- ({ parent_id: x, user: y }) => {
2077
- var N;
2078
- return (y == null ? void 0 : y.id) !== ((N = o.user) == null ? void 0 : N.id) && !x;
2091
+ const g = e ? [] : Object.values(l).filter(
2092
+ ({ parent_id: x, user: N }) => {
2093
+ var p;
2094
+ return (N == null ? void 0 : N.id) !== ((p = o.user) == null ? void 0 : p.id) && !x;
2079
2095
  }
2080
- ), c = e ? Object.values(l).filter(
2081
- ({ parent_id: x, user: y }) => {
2082
- var N;
2083
- return (y == null ? void 0 : y.id) !== ((N = o.user) == null ? void 0 : N.id) && x === (a == null ? void 0 : a.id);
2096
+ ), y = e ? Object.values(l).filter(
2097
+ ({ parent_id: x, user: N }) => {
2098
+ var p;
2099
+ return (N == null ? void 0 : N.id) !== ((p = o.user) == null ? void 0 : p.id) && x === (a == null ? void 0 : a.id);
2084
2100
  }
2085
- ) : [], f = e ? c : i;
2086
- if (!f.length)
2101
+ ) : [], m = e ? y : g;
2102
+ if (!m.length)
2087
2103
  return null;
2088
- const u = (g = f[0]) == null ? void 0 : g.user, b = u != null && u.id && s.state.members[u.id] ? s.state.members[u.id].user : void 0, h = (u == null ? void 0 : u.id) ?? (b == null ? void 0 : b.id) ?? "typing-user", p = (u == null ? void 0 : u.name) ?? (b == null ? void 0 : b.name) ?? (u == null ? void 0 : u.id) ?? "Typing user", r = (u == null ? void 0 : u.image) ?? (b == null ? void 0 : b.image);
2089
- return /* @__PURE__ */ d(
2090
- "div",
2104
+ const h = (w = m[0]) == null ? void 0 : w.user, r = h != null && h.id && s.state.members[h.id] ? s.state.members[h.id].user : void 0;
2105
+ return /* @__PURE__ */ t(
2106
+ gt,
2091
2107
  {
2092
- className: "str-chat__typing-indicator !items-end !bg-transparent",
2093
- "data-testid": "typing-indicator",
2094
- style: { insetInlineStart: 0, insetInlineEnd: "auto" },
2095
- children: [
2096
- /* @__PURE__ */ t("div", { className: "shrink-0", "aria-hidden": "true", children: /* @__PURE__ */ t(
2097
- ae,
2098
- {
2099
- id: h,
2100
- name: p,
2101
- image: r,
2102
- size: 24,
2103
- shape: "circle"
2104
- }
2105
- ) }),
2106
- /* @__PURE__ */ t("div", { className: "px-4 py-3 rounded-lg bg-[#E9EAED] h-12 flex flex-col justify-end", children: /* @__PURE__ */ d(
2107
- "svg",
2108
- {
2109
- "aria-hidden": "true",
2110
- className: "block overflow-visible mb-[0.2rem]",
2111
- viewBox: "0 0 32 8",
2112
- width: "32",
2113
- height: "8",
2114
- overflow: "visible",
2115
- children: [
2116
- /* @__PURE__ */ t(ke, { cx: "4", index: 0 }),
2117
- /* @__PURE__ */ t(ke, { cx: "16", index: 1 }),
2118
- /* @__PURE__ */ t(ke, { cx: "28", index: 2 })
2119
- ]
2120
- }
2121
- ) })
2122
- ]
2108
+ avatarId: (h == null ? void 0 : h.id) ?? (r == null ? void 0 : r.id) ?? "typing-user",
2109
+ avatarName: (h == null ? void 0 : h.name) ?? (r == null ? void 0 : r.name) ?? (h == null ? void 0 : h.id) ?? "Typing user",
2110
+ avatarImage: (h == null ? void 0 : h.image) ?? (r == null ? void 0 : r.image),
2111
+ testId: "typing-indicator"
2123
2112
  }
2124
2113
  );
2125
- }, ta = () => null, sa = ({ className: e, message: s }) => /* @__PURE__ */ d(
2114
+ }, gt = ({
2115
+ avatarId: e,
2116
+ avatarName: s,
2117
+ avatarImage: n,
2118
+ testId: a
2119
+ }) => /* @__PURE__ */ d(
2120
+ "div",
2121
+ {
2122
+ className: "str-chat__typing-indicator !items-end !bg-transparent",
2123
+ "data-testid": a,
2124
+ style: { insetInlineStart: 0, insetInlineEnd: "auto" },
2125
+ children: [
2126
+ /* @__PURE__ */ t("div", { className: "shrink-0", "aria-hidden": "true", children: /* @__PURE__ */ t(
2127
+ ae,
2128
+ {
2129
+ id: e,
2130
+ name: s,
2131
+ image: n ?? void 0,
2132
+ size: 24,
2133
+ shape: "circle"
2134
+ }
2135
+ ) }),
2136
+ /* @__PURE__ */ t("div", { className: "px-4 py-3 rounded-lg bg-[#E9EAED] h-12 flex flex-col justify-end", children: /* @__PURE__ */ d(
2137
+ "svg",
2138
+ {
2139
+ "aria-hidden": "true",
2140
+ className: "block overflow-visible mb-[0.2rem]",
2141
+ viewBox: "0 0 32 8",
2142
+ width: "32",
2143
+ height: "8",
2144
+ overflow: "visible",
2145
+ children: [
2146
+ /* @__PURE__ */ t(Te, { cx: "4", index: 0 }),
2147
+ /* @__PURE__ */ t(Te, { cx: "16", index: 1 }),
2148
+ /* @__PURE__ */ t(Te, { cx: "28", index: 2 })
2149
+ ]
2150
+ }
2151
+ ) })
2152
+ ]
2153
+ }
2154
+ );
2155
+ function ia(e, s) {
2156
+ var a;
2157
+ const n = ((a = e == null ? void 0 : e.state) == null ? void 0 : a.members) ?? {};
2158
+ for (const o of Object.values(n)) {
2159
+ const l = o == null ? void 0 : o.user;
2160
+ if (l && l.id !== s)
2161
+ return l;
2162
+ }
2163
+ }
2164
+ const oa = () => null, la = ({ className: e, message: s }) => /* @__PURE__ */ d(
2126
2165
  "div",
2127
2166
  {
2128
2167
  className: D("flex items-center justify-center h-full", e),
@@ -2166,11 +2205,11 @@ const Fn = ({
2166
2205
  ]
2167
2206
  }
2168
2207
  ), ye = B.memo(() => /* @__PURE__ */ t("div", { className: "messaging-loading-state flex items-center justify-center h-full", children: /* @__PURE__ */ d("div", { className: "flex items-center", children: [
2169
- /* @__PURE__ */ t(sa, { className: "w-6 h-6" }),
2208
+ /* @__PURE__ */ t(la, { className: "w-6 h-6" }),
2170
2209
  /* @__PURE__ */ t("span", { className: "text-sm text-stone", children: "Loading messages" })
2171
2210
  ] }) }));
2172
2211
  ye.displayName = "LoadingState";
2173
- const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-center justify-center transition-colors duration-150 focus-ring", mt = "Replies instantly with AI assistant", na = ({
2212
+ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-center justify-center transition-colors duration-150 focus-ring", bt = "Replies instantly with AI assistant", ca = ({
2174
2213
  onBack: e,
2175
2214
  showBackButton: s,
2176
2215
  onShowInfo: n,
@@ -2178,15 +2217,15 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2178
2217
  showStarButton: o = !1,
2179
2218
  dmAgentEnabled: l = !1
2180
2219
  }) => {
2181
- var p, r, g, x, y;
2220
+ var h, r, b, w, x;
2182
2221
  const { channel: i } = oe(), c = B.useMemo(() => Object.values(i.state.members || {}).find(
2183
- (w) => {
2222
+ (p) => {
2184
2223
  var S;
2185
- return ((S = w.user) == null ? void 0 : S.id) && w.user.id !== i._client.userID;
2224
+ return ((S = p.user) == null ? void 0 : S.id) && p.user.id !== i._client.userID;
2186
2225
  }
2187
- ), [i._client.userID, i.state.members]), f = ((p = c == null ? void 0 : c.user) == null ? void 0 : p.name) || ((r = c == null ? void 0 : c.user) == null ? void 0 : r.id) || "Unknown member", u = (g = c == null ? void 0 : c.user) == null ? void 0 : g.image, b = Nt(i), h = async () => {
2226
+ ), [i._client.userID, i.state.members]), f = ((h = c == null ? void 0 : c.user) == null ? void 0 : h.name) || ((r = c == null ? void 0 : c.user) == null ? void 0 : r.id) || "Unknown member", g = (b = c == null ? void 0 : c.user) == null ? void 0 : b.image, y = Et(i), m = async () => {
2188
2227
  try {
2189
- b ? await i.unpin() : await i.pin();
2228
+ y ? await i.unpin() : await i.pin();
2190
2229
  } catch (N) {
2191
2230
  console.error(
2192
2231
  "[CustomChannelHeader] Failed to update pinned status:",
@@ -2204,17 +2243,17 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2204
2243
  }),
2205
2244
  type: "button",
2206
2245
  "aria-label": "Back to conversations",
2207
- children: /* @__PURE__ */ t(at, { className: "size-5 text-black/90" })
2246
+ children: /* @__PURE__ */ t(ot, { className: "size-5 text-black/90" })
2208
2247
  }
2209
2248
  ) }),
2210
2249
  /* @__PURE__ */ d("div", { className: "flex flex-col gap-1 items-center", children: [
2211
2250
  /* @__PURE__ */ t(
2212
2251
  ae,
2213
2252
  {
2214
- id: ((x = c == null ? void 0 : c.user) == null ? void 0 : x.id) || i.id || "unknown",
2253
+ id: ((w = c == null ? void 0 : c.user) == null ? void 0 : w.id) || i.id || "unknown",
2215
2254
  name: f,
2216
- image: u,
2217
- starred: o && b,
2255
+ image: g,
2256
+ starred: o && y,
2218
2257
  dmAgentEnabled: l,
2219
2258
  size: 40
2220
2259
  }
@@ -2228,13 +2267,13 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2228
2267
  "aria-label": `View info for ${f}`,
2229
2268
  children: [
2230
2269
  f,
2231
- /* @__PURE__ */ t(rt, { className: "size-3 shrink-0" })
2270
+ /* @__PURE__ */ t(lt, { className: "size-3 shrink-0" })
2232
2271
  ]
2233
2272
  }
2234
2273
  ),
2235
2274
  l && /* @__PURE__ */ d("div", { className: "flex items-center gap-1 text-[10px] leading-3 text-black/55", children: [
2236
- /* @__PURE__ */ t(Te, { className: "size-3 shrink-0 text-black/55" }),
2237
- /* @__PURE__ */ t("span", { children: mt })
2275
+ /* @__PURE__ */ t(De, { className: "size-3 shrink-0 text-black/55" }),
2276
+ /* @__PURE__ */ t("span", { children: bt })
2238
2277
  ] })
2239
2278
  ] }),
2240
2279
  /* @__PURE__ */ d("div", { className: "flex justify-end items-center gap-2", children: [
@@ -2242,17 +2281,17 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2242
2281
  "button",
2243
2282
  {
2244
2283
  className: ce,
2245
- onClick: h,
2284
+ onClick: m,
2246
2285
  type: "button",
2247
- "aria-label": b ? "Unstar conversation" : "Star conversation",
2286
+ "aria-label": y ? "Unstar conversation" : "Star conversation",
2248
2287
  children: /* @__PURE__ */ t(
2249
2288
  Me,
2250
2289
  {
2251
2290
  className: D("size-5", {
2252
- "text-yellow-600": b,
2253
- "text-black/90": !b
2291
+ "text-yellow-600": y,
2292
+ "text-black/90": !y
2254
2293
  }),
2255
- weight: b ? "duotone" : "regular"
2294
+ weight: y ? "duotone" : "regular"
2256
2295
  }
2257
2296
  )
2258
2297
  }
@@ -2264,7 +2303,7 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2264
2303
  onClick: n,
2265
2304
  type: "button",
2266
2305
  "aria-label": "Show info",
2267
- children: /* @__PURE__ */ t(it, { className: "size-5 text-black/90" })
2306
+ children: /* @__PURE__ */ t(ct, { className: "size-5 text-black/90" })
2268
2307
  }
2269
2308
  )
2270
2309
  ] })
@@ -2278,16 +2317,16 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2278
2317
  onClick: e,
2279
2318
  className: ce,
2280
2319
  "aria-label": "Back to conversations",
2281
- children: /* @__PURE__ */ t(at, { className: "size-5 text-black/90" })
2320
+ children: /* @__PURE__ */ t(ot, { className: "size-5 text-black/90" })
2282
2321
  }
2283
2322
  ),
2284
2323
  /* @__PURE__ */ t(
2285
2324
  ae,
2286
2325
  {
2287
- id: ((y = c == null ? void 0 : c.user) == null ? void 0 : y.id) || i.id || "unknown",
2326
+ id: ((x = c == null ? void 0 : c.user) == null ? void 0 : x.id) || i.id || "unknown",
2288
2327
  name: f,
2289
- image: u,
2290
- starred: o && b,
2328
+ image: g,
2329
+ starred: o && y,
2291
2330
  dmAgentEnabled: l,
2292
2331
  size: 40
2293
2332
  }
@@ -2302,13 +2341,13 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2302
2341
  "aria-label": `View info for ${f}`,
2303
2342
  children: [
2304
2343
  /* @__PURE__ */ t("span", { className: "truncate", children: f }),
2305
- /* @__PURE__ */ t(rt, { className: "size-4 shrink-0" })
2344
+ /* @__PURE__ */ t(lt, { className: "size-4 shrink-0" })
2306
2345
  ]
2307
2346
  }
2308
2347
  ) : /* @__PURE__ */ t("h1", { className: "font-medium text-black/90 truncate", children: f }),
2309
2348
  l && /* @__PURE__ */ d("div", { className: "mt-0.5 flex items-center gap-1 text-[10px] leading-3 text-black/55", children: [
2310
- /* @__PURE__ */ t(Te, { className: "size-3 shrink-0 text-black/55" }),
2311
- /* @__PURE__ */ t("span", { className: "truncate", children: mt })
2349
+ /* @__PURE__ */ t(De, { className: "size-3 shrink-0 text-black/55" }),
2350
+ /* @__PURE__ */ t("span", { className: "truncate", children: bt })
2312
2351
  ] })
2313
2352
  ] })
2314
2353
  ] }),
@@ -2317,17 +2356,17 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2317
2356
  "button",
2318
2357
  {
2319
2358
  className: ce,
2320
- onClick: h,
2359
+ onClick: m,
2321
2360
  type: "button",
2322
- "aria-label": b ? "Unstar conversation" : "Star conversation",
2361
+ "aria-label": y ? "Unstar conversation" : "Star conversation",
2323
2362
  children: /* @__PURE__ */ t(
2324
2363
  Me,
2325
2364
  {
2326
2365
  className: D("size-5", {
2327
- "text-yellow-600": b,
2328
- "text-black/90": !b
2366
+ "text-yellow-600": y,
2367
+ "text-black/90": !y
2329
2368
  }),
2330
- weight: b ? "duotone" : "regular"
2369
+ weight: y ? "duotone" : "regular"
2331
2370
  }
2332
2371
  )
2333
2372
  }
@@ -2339,13 +2378,13 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2339
2378
  onClick: n,
2340
2379
  type: "button",
2341
2380
  "aria-label": "Show info",
2342
- children: /* @__PURE__ */ t(it, { className: "size-5 text-black/90" })
2381
+ children: /* @__PURE__ */ t(ct, { className: "size-5 text-black/90" })
2343
2382
  }
2344
2383
  )
2345
2384
  ] })
2346
2385
  ] })
2347
2386
  ] });
2348
- }, aa = ({
2387
+ }, da = ({
2349
2388
  onBack: e,
2350
2389
  showBackButton: s,
2351
2390
  renderMessageInputActions: n,
@@ -2355,32 +2394,32 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2355
2394
  showDeleteConversation: i = !0,
2356
2395
  onDeleteConversationClick: c,
2357
2396
  onBlockParticipantClick: f,
2358
- onReportParticipantClick: u,
2359
- showStarButton: b = !1,
2360
- chatbotVotingEnabled: h = !1,
2361
- renderChannelBanner: p,
2397
+ onReportParticipantClick: g,
2398
+ showStarButton: y = !1,
2399
+ chatbotVotingEnabled: m = !1,
2400
+ renderChannelBanner: h,
2362
2401
  customProfileContent: r,
2363
- customChannelActions: g,
2364
- renderMessage: x,
2365
- dmAgentEnabled: y = !1,
2402
+ customChannelActions: b,
2403
+ renderMessage: w,
2404
+ dmAgentEnabled: x = !1,
2366
2405
  viewerLanguage: N
2367
2406
  }) => {
2368
2407
  var A, V;
2369
- const { channel: w } = oe(), S = J(null), I = B.useMemo(() => Object.values(w.state.members || {}).find(
2408
+ const { channel: p } = oe(), S = J(null), I = B.useMemo(() => Object.values(p.state.members || {}).find(
2370
2409
  (P) => {
2371
2410
  var E;
2372
- return ((E = P.user) == null ? void 0 : E.id) && P.user.id !== w._client.userID;
2411
+ return ((E = P.user) == null ? void 0 : E.id) && P.user.id !== p._client.userID;
2373
2412
  }
2374
- ), [w._client.userID, w.state.members]), M = B.useMemo(() => Object.values(w.state.members || {}).find((P) => {
2413
+ ), [p._client.userID, p.state.members]), T = B.useMemo(() => Object.values(p.state.members || {}).find((P) => {
2375
2414
  var E;
2376
- return ((E = P.user) == null ? void 0 : E.id) === w._client.userID;
2377
- }), [w._client.userID, w.state.members]), $ = ((A = M == null ? void 0 : M.user) == null ? void 0 : A.is_account) ?? (M == null ? void 0 : M.is_account), k = ((V = I == null ? void 0 : I.user) == null ? void 0 : V.is_account) ?? (I == null ? void 0 : I.is_account), T = y && $ === !1 && k === !0, j = B.useMemo(() => {
2378
- const R = w.data ?? {};
2415
+ return ((E = P.user) == null ? void 0 : E.id) === p._client.userID;
2416
+ }), [p._client.userID, p.state.members]), $ = ((A = T == null ? void 0 : T.user) == null ? void 0 : A.is_account) ?? (T == null ? void 0 : T.is_account), k = ((V = I == null ? void 0 : I.user) == null ? void 0 : V.is_account) ?? (I == null ? void 0 : I.is_account), M = x && $ === !1 && k === !0, j = B.useMemo(() => {
2417
+ const R = p.data ?? {};
2379
2418
  if (R.followerStatus)
2380
2419
  return String(R.followerStatus);
2381
2420
  if (R.isFollower !== void 0)
2382
2421
  return R.isFollower ? "Subscribed to you" : "Not subscribed";
2383
- }, [w.data]), _ = G(() => {
2422
+ }, [p.data]), _ = G(() => {
2384
2423
  var R;
2385
2424
  (R = S.current) == null || R.showModal();
2386
2425
  }, []), L = G(() => {
@@ -2388,68 +2427,68 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2388
2427
  (R = S.current) == null || R.close();
2389
2428
  }, []), v = G(
2390
2429
  (R) => {
2391
- const { message: P } = pt("ChannelView"), E = /* @__PURE__ */ t(
2392
- Un,
2430
+ const { message: P } = vt("ChannelView"), E = /* @__PURE__ */ t(
2431
+ jn,
2393
2432
  {
2394
2433
  ...R,
2395
- chatbotVotingEnabled: h,
2434
+ chatbotVotingEnabled: m,
2396
2435
  viewerLanguage: N
2397
2436
  }
2398
2437
  );
2399
- return !x || !P ? E : x(E, P);
2438
+ return !w || !P ? E : w(E, P);
2400
2439
  },
2401
- [h, x, N]
2440
+ [m, w, N]
2402
2441
  );
2403
2442
  return /* @__PURE__ */ d(de, { children: [
2404
- /* @__PURE__ */ t(xs, { overrides: { Message: v }, children: /* @__PURE__ */ d(vs, { children: [
2443
+ /* @__PURE__ */ t(_s, { overrides: { Message: v }, children: /* @__PURE__ */ d(Ns, { children: [
2405
2444
  /* @__PURE__ */ t("div", { className: "p-4", children: /* @__PURE__ */ t(
2406
- na,
2445
+ ca,
2407
2446
  {
2408
2447
  onBack: e,
2409
2448
  showBackButton: s,
2410
2449
  onShowInfo: _,
2411
2450
  canShowInfo: !!I,
2412
- showStarButton: b,
2413
- dmAgentEnabled: T
2451
+ showStarButton: y,
2452
+ dmAgentEnabled: M
2414
2453
  }
2415
2454
  ) }),
2416
- p == null ? void 0 : p(),
2455
+ h == null ? void 0 : h(),
2417
2456
  /* @__PURE__ */ t("div", { className: "flex-1 overflow-hidden relative", children: /* @__PURE__ */ t(
2418
- ws,
2457
+ Cs,
2419
2458
  {
2420
2459
  hideDeletedMessages: !0,
2421
2460
  hideNewMessageSeparator: !1,
2422
2461
  messageActions: void 0
2423
2462
  }
2424
2463
  ) }),
2425
- a == null ? void 0 : a(w),
2464
+ a == null ? void 0 : a(p),
2426
2465
  /* @__PURE__ */ t(
2427
- Vn,
2466
+ Wn,
2428
2467
  {
2429
- renderActions: () => n == null ? void 0 : n(w)
2468
+ renderActions: () => n == null ? void 0 : n(p)
2430
2469
  }
2431
2470
  )
2432
2471
  ] }) }),
2433
2472
  /* @__PURE__ */ t(
2434
- rn,
2473
+ dn,
2435
2474
  {
2436
2475
  dialogRef: S,
2437
2476
  onClose: L,
2438
2477
  participant: I,
2439
- channel: w,
2478
+ channel: p,
2440
2479
  followerStatusLabel: j,
2441
2480
  onLeaveConversation: o,
2442
2481
  onBlockParticipant: l,
2443
2482
  showDeleteConversation: i,
2444
2483
  onDeleteConversationClick: c,
2445
2484
  onBlockParticipantClick: f,
2446
- onReportParticipantClick: u,
2485
+ onReportParticipantClick: g,
2447
2486
  customProfileContent: r,
2448
- customChannelActions: g
2487
+ customChannelActions: b
2449
2488
  }
2450
2489
  )
2451
2490
  ] });
2452
- }, Ot = B.memo(
2491
+ }, Ut = B.memo(
2453
2492
  ({
2454
2493
  channel: e,
2455
2494
  onBack: s,
@@ -2459,42 +2498,42 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2459
2498
  onLeaveConversation: l,
2460
2499
  onBlockParticipant: i,
2461
2500
  className: c,
2462
- CustomChannelEmptyState: f = ta,
2463
- showDeleteConversation: u = !0,
2464
- onDeleteConversationClick: b,
2465
- onBlockParticipantClick: h,
2466
- onReportParticipantClick: p,
2501
+ CustomChannelEmptyState: f = oa,
2502
+ showDeleteConversation: g = !0,
2503
+ onDeleteConversationClick: y,
2504
+ onBlockParticipantClick: m,
2505
+ onReportParticipantClick: h,
2467
2506
  dmAgentEnabled: r,
2468
- messageMetadata: g,
2469
- onMessageSent: x,
2470
- showStarButton: y = !1,
2507
+ messageMetadata: b,
2508
+ onMessageSent: w,
2509
+ showStarButton: x = !1,
2471
2510
  chatbotVotingEnabled: N = !1,
2472
- renderChannelBanner: w,
2511
+ renderChannelBanner: p,
2473
2512
  customProfileContent: S,
2474
2513
  customChannelActions: I,
2475
- renderMessage: M,
2514
+ renderMessage: T,
2476
2515
  sendButton: $,
2477
2516
  viewerLanguage: k
2478
2517
  }) => {
2479
- const T = G(
2518
+ const M = G(
2480
2519
  async (j, _, L) => {
2481
2520
  var E;
2482
2521
  const v = ((E = e.data) == null ? void 0 : E.chatbot_paused) === !0, A = r && !v, V = {
2483
2522
  ..._,
2484
2523
  ...A && { silent: !0 },
2485
- ...g && {
2524
+ ...b && {
2486
2525
  metadata: {
2487
2526
  ..._.metadata ?? {},
2488
- ...g
2527
+ ...b
2489
2528
  }
2490
2529
  }
2491
2530
  }, R = {
2492
2531
  ...L,
2493
2532
  ...A && { skip_push: !0 }
2494
2533
  }, P = await e.sendMessage(V, R);
2495
- return x == null || x(P), P;
2534
+ return w == null || w(P), P;
2496
2535
  },
2497
- [e, r, g, x]
2536
+ [e, r, b, w]
2498
2537
  );
2499
2538
  return /* @__PURE__ */ t(
2500
2539
  "div",
@@ -2503,19 +2542,19 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2503
2542
  "messaging-channel-view h-full flex flex-col",
2504
2543
  c
2505
2544
  ),
2506
- children: /* @__PURE__ */ t(
2507
- ps,
2545
+ children: /* @__PURE__ */ t(zt.Provider, { value: r ?? !1, children: /* @__PURE__ */ t(
2546
+ ys,
2508
2547
  {
2509
2548
  channel: e,
2510
- MessageSystem: Qn,
2549
+ MessageSystem: na,
2511
2550
  EmptyStateIndicator: f,
2512
2551
  LoadingIndicator: ye,
2513
- DateSeparator: on,
2514
- TypingIndicator: ea,
2515
- doSendMessageRequest: T,
2552
+ DateSeparator: un,
2553
+ TypingIndicator: ra,
2554
+ doSendMessageRequest: M,
2516
2555
  ...$ ? { SendButton: $ } : {},
2517
2556
  children: /* @__PURE__ */ t(
2518
- aa,
2557
+ da,
2519
2558
  {
2520
2559
  onBack: s,
2521
2560
  showBackButton: n,
@@ -2524,28 +2563,28 @@ const ce = "size-10 rounded-full bg-[#F1F0EE] hover:bg-[#E5E4E1] flex items-cent
2524
2563
  onLeaveConversation: l,
2525
2564
  onBlockParticipant: i,
2526
2565
  CustomChannelEmptyState: f,
2527
- showDeleteConversation: u,
2528
- onDeleteConversationClick: b,
2529
- onBlockParticipantClick: h,
2530
- onReportParticipantClick: p,
2531
- showStarButton: y,
2566
+ showDeleteConversation: g,
2567
+ onDeleteConversationClick: y,
2568
+ onBlockParticipantClick: m,
2569
+ onReportParticipantClick: h,
2570
+ showStarButton: x,
2532
2571
  dmAgentEnabled: r,
2533
2572
  chatbotVotingEnabled: N,
2534
- renderChannelBanner: w,
2573
+ renderChannelBanner: p,
2535
2574
  customProfileContent: S,
2536
2575
  customChannelActions: I,
2537
- renderMessage: M,
2576
+ renderMessage: T,
2538
2577
  viewerLanguage: k
2539
2578
  }
2540
2579
  )
2541
2580
  }
2542
- )
2581
+ ) })
2543
2582
  }
2544
2583
  );
2545
2584
  }
2546
2585
  );
2547
- Ot.displayName = "ChannelView";
2548
- const ra = ({ className: e }) => /* @__PURE__ */ d(
2586
+ Ut.displayName = "ChannelView";
2587
+ const ua = ({ className: e }) => /* @__PURE__ */ d(
2549
2588
  "svg",
2550
2589
  {
2551
2590
  width: "140",
@@ -2679,16 +2718,16 @@ const ra = ({ className: e }) => /* @__PURE__ */ d(
2679
2718
  ] })
2680
2719
  ]
2681
2720
  }
2682
- ), Pt = B.memo(
2721
+ ), Bt = B.memo(
2683
2722
  ({ hasChannels: e, channelsLoaded: s }) => /* @__PURE__ */ t("div", { className: "messaging-empty-state flex items-center justify-center h-full p-8 text-balance", children: /* @__PURE__ */ d("div", { className: "flex flex-col items-center max-w-sm text-center", children: [
2684
- /* @__PURE__ */ t(ra, {}),
2723
+ /* @__PURE__ */ t(ua, {}),
2685
2724
  s && !e && /* @__PURE__ */ d("div", { className: "mt-8", children: [
2686
2725
  /* @__PURE__ */ t("h2", { className: "font-medium text-black text-[18px] mb-2", children: "Your inbox is empty" }),
2687
2726
  /* @__PURE__ */ t("p", { className: "text-[#676B5F] text-sm mb-6", children: "Share with your followers to start receiving messages" })
2688
2727
  ] })
2689
2728
  ] }) })
2690
2729
  );
2691
- Pt.displayName = "EmptyState";
2730
+ Bt.displayName = "EmptyState";
2692
2731
  const xe = B.memo(({ message: e, onBack: s }) => /* @__PURE__ */ t("div", { className: "messaging-error-state flex items-center justify-center h-full p-8", children: /* @__PURE__ */ d("div", { className: "text-center max-w-sm", children: [
2693
2732
  /* @__PURE__ */ t("div", { className: "w-24 h-24 bg-danger-alt/20 rounded-full flex items-center justify-center mx-auto mb-6", children: /* @__PURE__ */ t("span", { className: "text-4xl", children: "⚠️" }) }),
2694
2733
  /* @__PURE__ */ t("h2", { className: "font-semibold text-charcoal mb-2", children: "Oops!" }),
@@ -2704,7 +2743,7 @@ const xe = B.memo(({ message: e, onBack: s }) => /* @__PURE__ */ t("div", { clas
2704
2743
  )
2705
2744
  ] }) }));
2706
2745
  xe.displayName = "ErrorState";
2707
- const pa = ({
2746
+ const Na = ({
2708
2747
  capabilities: e = {},
2709
2748
  className: s,
2710
2749
  renderMessageInputActions: n,
@@ -2714,22 +2753,22 @@ const pa = ({
2714
2753
  initialParticipantData: i,
2715
2754
  CustomChannelEmptyState: c,
2716
2755
  showChannelList: f = !0,
2717
- filters: u,
2718
- channelRenderFilterFn: b,
2719
- channelListCustomEmptyStateIndicator: h,
2720
- onDeleteConversationClick: p,
2756
+ filters: g,
2757
+ channelRenderFilterFn: y,
2758
+ channelListCustomEmptyStateIndicator: m,
2759
+ onDeleteConversationClick: h,
2721
2760
  onBlockParticipantClick: r,
2722
- onReportParticipantClick: g,
2723
- dmAgentEnabled: x,
2724
- messageMetadata: y,
2761
+ onReportParticipantClick: b,
2762
+ dmAgentEnabled: w,
2763
+ messageMetadata: x,
2725
2764
  onMessageSent: N,
2726
- showStarButton: w = !1,
2765
+ showStarButton: p = !1,
2727
2766
  chatbotVotingEnabled: S = !1,
2728
2767
  viewerLanguage: I,
2729
- renderMessagePreview: M,
2768
+ renderMessagePreview: T,
2730
2769
  renderChannelBanner: $,
2731
2770
  customProfileContent: k,
2732
- customChannelActions: T,
2771
+ customChannelActions: M,
2733
2772
  renderMessage: j,
2734
2773
  sendButton: _
2735
2774
  }) => {
@@ -2741,7 +2780,7 @@ const pa = ({
2741
2780
  error: R,
2742
2781
  refreshConnection: P,
2743
2782
  debug: E
2744
- } = js(), [H, Y] = O(null), [te, U] = O(!1), [m, C] = O(!1), [z, K] = O(!1), [W, Q] = O(null), { showDeleteConversation: me = !0 } = e, he = B.useMemo(() => {
2783
+ } = Ys(), [H, Y] = O(null), [te, z] = O(!1), [u, C] = O(!1), [U, K] = O(!1), [W, Q] = O(null), { showDeleteConversation: me = !0 } = e, he = B.useMemo(() => {
2745
2784
  const F = v == null ? void 0 : v.userID;
2746
2785
  return {
2747
2786
  ...{
@@ -2752,9 +2791,9 @@ const pa = ({
2752
2791
  hidden: !1
2753
2792
  }
2754
2793
  },
2755
- ...u
2794
+ ...g
2756
2795
  };
2757
- }, [u, v == null ? void 0 : v.userID]), re = J(null), ee = G(async () => {
2796
+ }, [g, v == null ? void 0 : v.userID]), re = J(null), ee = G(async () => {
2758
2797
  if (!v || !A) return;
2759
2798
  const F = v.userID;
2760
2799
  if (F)
@@ -2768,7 +2807,7 @@ const pa = ({
2768
2807
  {},
2769
2808
  { limit: 100 }
2770
2809
  );
2771
- U(X.length > 0), C(!0), re.current = F, E && console.log("[MessagingShell] Channels synced successfully:", {
2810
+ z(X.length > 0), C(!0), re.current = F, E && console.log("[MessagingShell] Channels synced successfully:", {
2772
2811
  channelCount: X.length
2773
2812
  });
2774
2813
  } catch (X) {
@@ -2852,8 +2891,8 @@ const pa = ({
2852
2891
  },
2853
2892
  [o]
2854
2893
  ), ie = G(() => {
2855
- z || Y(null);
2856
- }, [z]), Ne = G(
2894
+ U || Y(null);
2895
+ }, [U]), Ne = G(
2857
2896
  async (F) => {
2858
2897
  E && console.log("[MessagingShell] Leaving conversation:", F.id), Y(null), K(!1), re.current = null, await ee();
2859
2898
  },
@@ -2884,22 +2923,22 @@ const pa = ({
2884
2923
  className: D(
2885
2924
  "messaging-channel-list-sidebar min-h-0 min-w-0 lg:flex lg:flex-col",
2886
2925
  {
2887
- "!hidden": f === !1 || z,
2926
+ "!hidden": f === !1 || U,
2888
2927
  // Hide on mobile when channel selected, show on desktop with consistent wide width
2889
- "hidden lg:flex lg:flex-1 lg:max-w-2xl": f !== !1 && !z && le,
2928
+ "hidden lg:flex lg:flex-1 lg:max-w-2xl": f !== !1 && !U && le,
2890
2929
  // Show on mobile when no channel selected, use same wide width on desktop
2891
- "flex flex-col w-full lg:flex-1 lg:max-w-2xl": f !== !1 && !z && !le
2930
+ "flex flex-col w-full lg:flex-1 lg:max-w-2xl": f !== !1 && !U && !le
2892
2931
  }
2893
2932
  ),
2894
2933
  children: /* @__PURE__ */ t(
2895
- It,
2934
+ Tt,
2896
2935
  {
2897
2936
  onChannelSelect: se,
2898
2937
  selectedChannel: H || void 0,
2899
2938
  filters: he,
2900
- channelRenderFilterFn: b,
2901
- customEmptyStateIndicator: h,
2902
- renderMessagePreview: M,
2939
+ channelRenderFilterFn: y,
2940
+ customEmptyStateIndicator: m,
2941
+ renderMessagePreview: T,
2903
2942
  viewerLanguage: I
2904
2943
  }
2905
2944
  )
@@ -2912,17 +2951,17 @@ const pa = ({
2912
2951
  "messaging-conversation-view flex-1 flex-col min-w-0 min-h-0",
2913
2952
  {
2914
2953
  // In direct conversation mode (or waiting for it), always show (full width)
2915
- flex: z || le || l,
2954
+ flex: U || le || l,
2916
2955
  // Normal mode: hide on mobile when no channel selected
2917
- "hidden lg:flex": !z && !le && !l
2956
+ "hidden lg:flex": !U && !le && !l
2918
2957
  }
2919
2958
  ),
2920
2959
  children: H ? /* @__PURE__ */ t("div", { className: "flex-1 min-h-0 flex flex-col", children: /* @__PURE__ */ t(
2921
- Ot,
2960
+ Ut,
2922
2961
  {
2923
2962
  channel: H,
2924
2963
  onBack: ie,
2925
- showBackButton: !z,
2964
+ showBackButton: !U,
2926
2965
  renderMessageInputActions: n,
2927
2966
  renderConversationFooter: a,
2928
2967
  renderChannelBanner: $,
@@ -2930,17 +2969,17 @@ const pa = ({
2930
2969
  onBlockParticipant: fe,
2931
2970
  CustomChannelEmptyState: c,
2932
2971
  showDeleteConversation: me,
2933
- onDeleteConversationClick: p,
2972
+ onDeleteConversationClick: h,
2934
2973
  onBlockParticipantClick: r,
2935
- onReportParticipantClick: g,
2936
- dmAgentEnabled: x,
2937
- messageMetadata: y,
2974
+ onReportParticipantClick: b,
2975
+ dmAgentEnabled: w,
2976
+ messageMetadata: x,
2938
2977
  onMessageSent: N,
2939
- showStarButton: w,
2978
+ showStarButton: p,
2940
2979
  chatbotVotingEnabled: S,
2941
2980
  viewerLanguage: I,
2942
2981
  customProfileContent: k,
2943
- customChannelActions: T,
2982
+ customChannelActions: M,
2944
2983
  renderMessage: j,
2945
2984
  sendButton: _
2946
2985
  },
@@ -2949,10 +2988,10 @@ const pa = ({
2949
2988
  // Show loading while creating/loading direct conversation channel
2950
2989
  /* @__PURE__ */ t(ye, {})
2951
2990
  ) : /* @__PURE__ */ t(
2952
- Pt,
2991
+ Bt,
2953
2992
  {
2954
2993
  hasChannels: te,
2955
- channelsLoaded: m
2994
+ channelsLoaded: u
2956
2995
  }
2957
2996
  )
2958
2997
  }
@@ -2960,7 +2999,7 @@ const pa = ({
2960
2999
  ] })
2961
3000
  }
2962
3001
  );
2963
- }, ia = ({
3002
+ }, ma = ({
2964
3003
  question: e,
2965
3004
  onClick: s,
2966
3005
  loading: n = !1,
@@ -2982,7 +3021,7 @@ const pa = ({
2982
3021
  ),
2983
3022
  children: e
2984
3023
  }
2985
- ), xa = ({
3024
+ ), Ca = ({
2986
3025
  faqs: e,
2987
3026
  onFaqClick: s,
2988
3027
  loadingFaqId: n,
@@ -2991,7 +3030,7 @@ const pa = ({
2991
3030
  avatarImage: l,
2992
3031
  avatarName: i
2993
3032
  }) => {
2994
- const c = e.filter((f) => f.enabled).sort((f, u) => (f.order ?? 0) - (u.order ?? 0));
3033
+ const c = e.filter((f) => f.enabled).sort((f, g) => (f.order ?? 0) - (g.order ?? 0));
2995
3034
  return c.length === 0 ? null : /* @__PURE__ */ t("div", { className: o, children: /* @__PURE__ */ d("div", { className: "flex gap-3 items-end", children: [
2996
3035
  (l || i) && /* @__PURE__ */ t("div", { className: "flex-none", children: /* @__PURE__ */ t(
2997
3036
  ae,
@@ -3011,7 +3050,7 @@ const pa = ({
3011
3050
  children: [
3012
3051
  a && /* @__PURE__ */ t("p", { className: "text-md text-charcoal mb-4", children: a }),
3013
3052
  c.map((f) => /* @__PURE__ */ t(
3014
- ia,
3053
+ ma,
3015
3054
  {
3016
3055
  question: f.question,
3017
3056
  onClick: () => s(f.id),
@@ -3025,29 +3064,29 @@ const pa = ({
3025
3064
  ] }) });
3026
3065
  };
3027
3066
  export {
3028
- Tt as A,
3029
- ta as C,
3030
- xa as F,
3031
- ct as L,
3032
- ga as M,
3033
- Mt as a,
3067
+ Rt as A,
3068
+ oa as C,
3069
+ Ca as F,
3070
+ mt as L,
3071
+ ya as M,
3072
+ Dt as a,
3034
3073
  be as b,
3035
3074
  ae as c,
3036
- It as d,
3037
- Ot as e,
3038
- ba as f,
3039
- ia as g,
3040
- Fn as h,
3041
- fa as i,
3042
- pa as j,
3043
- qs as k,
3044
- Ct as l,
3045
- Rt as m,
3046
- Ws as n,
3047
- Ue as o,
3048
- cn as p,
3049
- js as q,
3050
- Pe as r,
3051
- An as u
3075
+ Tt as d,
3076
+ Ut as e,
3077
+ _a as f,
3078
+ ma as g,
3079
+ Un as h,
3080
+ wa as i,
3081
+ Na as j,
3082
+ Js as k,
3083
+ St as l,
3084
+ At as m,
3085
+ Ks as n,
3086
+ $e as o,
3087
+ hn as p,
3088
+ Ys as q,
3089
+ Be as r,
3090
+ zn as u
3052
3091
  };
3053
- //# sourceMappingURL=index-Brz9orsI.js.map
3092
+ //# sourceMappingURL=index-Bex7eg3v.js.map