@linktr.ee/messaging-react 1.6.6 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { jsx as e, jsxs as d, Fragment as oe } from "react/jsx-runtime";
2
- import D from "classnames";
3
- import X, { createContext as Ee, useContext as ye, useCallback as M, useState as E, useRef as H, useEffect as _ } from "react";
4
- import { StreamChatService as Ie } from "@linktr.ee/messaging-core";
5
- import { Chat as Se, useChatContext as Re, ChannelList as ke, Channel as Fe, useChannelStateContext as me, Window as Te, MessageList as De, MessageInput as Pe } from "stream-chat-react";
6
- import { NotePencilIcon as Oe, XIcon as he, ArrowLeftIcon as Me, DotsThreeIcon as pe, SpinnerGapIcon as ee, SignOutIcon as Ue, ProhibitInsetIcon as ie, FlagIcon as Le, MagnifyingGlassIcon as je, ChatCircleDotsIcon as ce } from "@phosphor-icons/react";
7
- const fe = Ee({
1
+ import we, { jsx as e, jsxs as d, Fragment as de } from "react/jsx-runtime";
2
+ import _ from "classnames";
3
+ import G, { createContext as Oe, useContext as Te, useCallback as M, useState as I, useRef as A, useEffect as $ } from "react";
4
+ import { StreamChatService as je } from "@linktr.ee/messaging-core";
5
+ import { Chat as Ue, useChatContext as Le, ChannelList as Be, Channel as Ae, useChannelStateContext as ye, Window as $e, MessageList as Ge, MessageInput as He } from "stream-chat-react";
6
+ import { NotePencilIcon as qe, XIcon as Ee, ArrowLeftIcon as We, DotsThreeIcon as ze, SpinnerGapIcon as re, SignOutIcon as Ve, ProhibitInsetIcon as fe, FlagIcon as Xe, MagnifyingGlassIcon as Qe, ChatCircleDotsIcon as me } from "@phosphor-icons/react";
7
+ const Ie = Oe({
8
8
  service: null,
9
9
  client: null,
10
10
  isConnected: !1,
@@ -15,221 +15,308 @@ const fe = Ee({
15
15
  refreshConnection: async () => {
16
16
  },
17
17
  debug: !1
18
- }), se = () => ye(fe), os = ({
18
+ }), le = () => Te(Ie), Is = ({
19
19
  children: t,
20
20
  user: s,
21
21
  serviceConfig: n,
22
- apiKey: o,
23
- capabilities: i = {},
22
+ apiKey: l,
23
+ capabilities: a = {},
24
24
  customization: c = {},
25
- debug: a = !1
25
+ debug: i = !1
26
26
  }) => {
27
- const l = M(
28
- (w, ...P) => {
29
- a && console.log(`🔥 [MessagingProvider] ${w}`, ...P);
27
+ const r = M(
28
+ (y, ...F) => {
29
+ i && console.log(`🔥 [MessagingProvider] ${y}`, ...F);
30
30
  },
31
- [a]
31
+ [i]
32
32
  );
33
- l("🔄 RENDER START", {
33
+ r("🔄 RENDER START", {
34
34
  userId: s == null ? void 0 : s.id,
35
- apiKey: (o == null ? void 0 : o.substring(0, 8)) + "...",
35
+ apiKey: (l == null ? void 0 : l.substring(0, 8)) + "...",
36
36
  serviceConfig: !!n,
37
- capabilities: Object.keys(i),
37
+ capabilities: Object.keys(a),
38
38
  customization: Object.keys(c)
39
39
  });
40
- const [r, b] = E(null), [u, g] = E(null), [m, y] = E(!1), [N, h] = E(!1), [v, S] = E(null), O = H(!1), I = H({
40
+ const [o, C] = I(null), [u, x] = I(null), [b, h] = I(!1), [f, m] = I(!1), [N, S] = I(null), k = A(!1), E = A({
41
41
  userId: s == null ? void 0 : s.id,
42
- apiKey: o,
42
+ apiKey: l,
43
43
  serviceConfig: n,
44
- capabilities: i,
44
+ capabilities: a,
45
45
  customization: c
46
- }), k = H(0);
47
- k.current++, l("📊 RENDER INFO", {
48
- renderCount: k.current,
49
- currentProps: { userId: s == null ? void 0 : s.id, apiKey: (o == null ? void 0 : o.substring(0, 8)) + "..." },
46
+ }), P = A(0);
47
+ P.current++, r("📊 RENDER INFO", {
48
+ renderCount: P.current,
49
+ currentProps: { userId: s == null ? void 0 : s.id, apiKey: (l == null ? void 0 : l.substring(0, 8)) + "..." },
50
50
  propChanges: {
51
- userChanged: I.current.userId !== (s == null ? void 0 : s.id),
52
- apiKeyChanged: I.current.apiKey !== o,
53
- serviceConfigChanged: I.current.serviceConfig !== n,
54
- capabilitiesChanged: I.current.capabilities !== i,
55
- customizationChanged: I.current.customization !== c
51
+ userChanged: E.current.userId !== (s == null ? void 0 : s.id),
52
+ apiKeyChanged: E.current.apiKey !== l,
53
+ serviceConfigChanged: E.current.serviceConfig !== n,
54
+ capabilitiesChanged: E.current.capabilities !== a,
55
+ customizationChanged: E.current.customization !== c
56
56
  }
57
- }), I.current = {
57
+ }), E.current = {
58
58
  userId: s == null ? void 0 : s.id,
59
- apiKey: o,
59
+ apiKey: l,
60
60
  serviceConfig: n,
61
- capabilities: i,
61
+ capabilities: a,
62
62
  customization: c
63
- }, _(() => {
64
- const w = k.current;
65
- if (l("🔧 SERVICE INIT EFFECT TRIGGERED", {
66
- renderCount: w,
67
- apiKey: !!o,
63
+ }, $(() => {
64
+ const y = P.current;
65
+ if (r("🔧 SERVICE INIT EFFECT TRIGGERED", {
66
+ renderCount: y,
67
+ apiKey: !!l,
68
68
  serviceConfig: !!n,
69
69
  dependencies: {
70
- apiKey: (o == null ? void 0 : o.substring(0, 8)) + "...",
70
+ apiKey: (l == null ? void 0 : l.substring(0, 8)) + "...",
71
71
  serviceConfigRef: n,
72
- serviceConfigStable: I.current.serviceConfig === n,
73
- apiKeyStable: I.current.apiKey === o
72
+ serviceConfigStable: E.current.serviceConfig === n,
73
+ apiKeyStable: E.current.apiKey === l
74
74
  }
75
- }), !o || !n) {
76
- l("⚠️ SERVICE INIT SKIPPED", {
77
- renderCount: w,
75
+ }), !l || !n) {
76
+ r("⚠️ SERVICE INIT SKIPPED", {
77
+ renderCount: y,
78
78
  reason: "Missing apiKey or serviceConfig"
79
79
  });
80
80
  return;
81
81
  }
82
- l("🚀 CREATING NEW SERVICE", {
83
- renderCount: w,
84
- apiKey: (o == null ? void 0 : o.substring(0, 8)) + "...",
85
- serviceConfigChanged: I.current.serviceConfig !== n
82
+ r("🚀 CREATING NEW SERVICE", {
83
+ renderCount: y,
84
+ apiKey: (l == null ? void 0 : l.substring(0, 8)) + "...",
85
+ serviceConfigChanged: E.current.serviceConfig !== n
86
86
  });
87
- const P = new Ie({
87
+ const F = new je({
88
88
  ...n,
89
- apiKey: o,
90
- debug: a
89
+ apiKey: l,
90
+ debug: i
91
91
  });
92
- return b(P), l("✅ SERVICE SET", {
93
- renderCount: w,
94
- serviceInstance: !!P
92
+ return C(F), r("✅ SERVICE SET", {
93
+ renderCount: y,
94
+ serviceInstance: !!F
95
95
  }), () => {
96
- l("🧹 SERVICE CLEANUP", {
97
- renderCount: w,
96
+ r("🧹 SERVICE CLEANUP", {
97
+ renderCount: y,
98
98
  reason: "Effect cleanup"
99
- }), P.disconnectUser().catch(console.error);
99
+ }), F.disconnectUser().catch(console.error);
100
100
  };
101
- }, [o, n, a, l]);
102
- const F = H(null);
103
- _(() => {
104
- var P, U;
105
- if (l("🔗 USER CONNECTION EFFECT TRIGGERED", {
106
- hasService: !!r,
101
+ }, [l, n, i, r]);
102
+ const p = A(null);
103
+ $(() => {
104
+ var F, T;
105
+ if (r("🔗 USER CONNECTION EFFECT TRIGGERED", {
106
+ hasService: !!o,
107
107
  hasUser: !!s,
108
108
  userId: s == null ? void 0 : s.id,
109
- isConnecting: O.current,
110
- isConnected: m,
111
- dependencies: { service: !!r, userId: s == null ? void 0 : s.id }
112
- }), !r || !s) {
113
- l("⚠️ USER CONNECTION SKIPPED", "Missing service or user");
109
+ isConnecting: k.current,
110
+ isConnected: b,
111
+ dependencies: { service: !!o, userId: s == null ? void 0 : s.id }
112
+ }), !o || !s) {
113
+ r("⚠️ USER CONNECTION SKIPPED", "Missing service or user");
114
114
  return;
115
115
  }
116
- if (O.current) {
117
- l("⚠️ USER CONNECTION SKIPPED", "Already connecting");
116
+ if (k.current) {
117
+ r("⚠️ USER CONNECTION SKIPPED", "Already connecting");
118
118
  return;
119
119
  }
120
- if (((P = F.current) == null ? void 0 : P.serviceId) === r && ((U = F.current) == null ? void 0 : U.userId) === s.id) {
121
- l(
120
+ if (((F = p.current) == null ? void 0 : F.serviceId) === o && ((T = p.current) == null ? void 0 : T.userId) === s.id) {
121
+ r(
122
122
  "⚠️ USER CONNECTION SKIPPED",
123
123
  "Already connected this user with this service"
124
124
  );
125
125
  return;
126
126
  }
127
127
  (async () => {
128
- l("🚀 STARTING USER CONNECTION", { userId: s.id }), O.current = !0, h(!0), S(null);
128
+ r("🚀 STARTING USER CONNECTION", { userId: s.id }), k.current = !0, m(!0), S(null);
129
129
  try {
130
- l("📞 CALLING SERVICE.CONNECTUSER", { userId: s.id });
131
- const L = await r.connectUser(s);
132
- g(L), y(!0), F.current = { serviceId: r, userId: s.id }, l("✅ USER CONNECTION SUCCESS", {
130
+ r("📞 CALLING SERVICE.CONNECTUSER", { userId: s.id });
131
+ const j = await o.connectUser(s);
132
+ x(j), h(!0), p.current = { serviceId: o, userId: s.id }, r("✅ USER CONNECTION SUCCESS", {
133
133
  userId: s.id,
134
- clientId: L.userID
134
+ clientId: j.userID
135
135
  });
136
- } catch (L) {
137
- const $ = L instanceof Error ? L.message : "Connection failed";
138
- S($), l("❌ USER CONNECTION ERROR", {
136
+ } catch (j) {
137
+ const H = j instanceof Error ? j.message : "Connection failed";
138
+ S(H), r("❌ USER CONNECTION ERROR", {
139
139
  userId: s.id,
140
- error: $
140
+ error: H
141
141
  });
142
142
  } finally {
143
- h(!1), O.current = !1, l("🔄 USER CONNECTION FINISHED", {
143
+ m(!1), k.current = !1, r("🔄 USER CONNECTION FINISHED", {
144
144
  userId: s.id,
145
- isConnected: m
145
+ isConnected: b
146
146
  });
147
147
  }
148
148
  })();
149
- }, [r, s, l, m]), _(() => (l("🔌 CLEANUP EFFECT REGISTERED", {
150
- hasService: !!r,
151
- isConnected: m
149
+ }, [o, s, r, b]), $(() => (r("🔌 CLEANUP EFFECT REGISTERED", {
150
+ hasService: !!o,
151
+ isConnected: b
152
152
  }), () => {
153
- r && m ? (l(
153
+ o && b ? (r(
154
154
  "🧹 CLEANUP EFFECT TRIGGERED",
155
155
  "Cleaning up connection on unmount"
156
- ), F.current = null, r.disconnectUser().catch(console.error)) : l("🔇 CLEANUP EFFECT SKIPPED", {
157
- hasService: !!r,
158
- isConnected: m
156
+ ), p.current = null, o.disconnectUser().catch(console.error)) : r("🔇 CLEANUP EFFECT SKIPPED", {
157
+ hasService: !!o,
158
+ isConnected: b
159
159
  });
160
- }), [r, m, l]);
161
- const f = M(async () => {
162
- if (l("🔄 REFRESH CONNECTION CALLED", {
163
- hasService: !!r,
160
+ }), [o, b, r]);
161
+ const g = M(async () => {
162
+ if (r("🔄 REFRESH CONNECTION CALLED", {
163
+ hasService: !!o,
164
164
  hasUser: !!s
165
- }), !r || !s) {
166
- l("⚠️ REFRESH CONNECTION SKIPPED", "Missing service or user");
165
+ }), !o || !s) {
166
+ r("⚠️ REFRESH CONNECTION SKIPPED", "Missing service or user");
167
167
  return;
168
168
  }
169
- l("🚀 STARTING CONNECTION REFRESH", { userId: s.id }), h(!0);
169
+ r("🚀 STARTING CONNECTION REFRESH", { userId: s.id }), m(!0);
170
170
  try {
171
- l("🔌 DISCONNECTING FOR REFRESH"), await r.disconnectUser(), l("📞 RECONNECTING FOR REFRESH");
172
- const w = await r.connectUser(s);
173
- g(w), y(!0), S(null), l("✅ CONNECTION REFRESH SUCCESS", { userId: s.id });
174
- } catch (w) {
175
- const P = w instanceof Error ? w.message : "Refresh failed";
176
- S(P), l("❌ CONNECTION REFRESH ERROR", {
171
+ r("🔌 DISCONNECTING FOR REFRESH"), await o.disconnectUser(), r("📞 RECONNECTING FOR REFRESH");
172
+ const y = await o.connectUser(s);
173
+ x(y), h(!0), S(null), r("✅ CONNECTION REFRESH SUCCESS", { userId: s.id });
174
+ } catch (y) {
175
+ const F = y instanceof Error ? y.message : "Refresh failed";
176
+ S(F), r("❌ CONNECTION REFRESH ERROR", {
177
177
  userId: s.id,
178
- error: P
178
+ error: F
179
179
  });
180
180
  } finally {
181
- h(!1), l("🔄 CONNECTION REFRESH FINISHED", { userId: s.id });
181
+ m(!1), r("🔄 CONNECTION REFRESH FINISHED", { userId: s.id });
182
182
  }
183
- }, [r, s, l]), x = X.useMemo(() => (l("💫 CONTEXT VALUE MEMOIZATION", {
184
- hasService: !!r,
183
+ }, [o, s, r]), v = G.useMemo(() => (r("💫 CONTEXT VALUE MEMOIZATION", {
184
+ hasService: !!o,
185
185
  hasClient: !!u,
186
- isConnected: m,
187
- isLoading: N,
188
- hasError: !!v,
189
- capabilitiesKeys: Object.keys(i),
186
+ isConnected: b,
187
+ isLoading: f,
188
+ hasError: !!N,
189
+ capabilitiesKeys: Object.keys(a),
190
190
  customizationKeys: Object.keys(c)
191
191
  }), {
192
- service: r,
192
+ service: o,
193
193
  client: u,
194
- isConnected: m,
195
- isLoading: N,
196
- error: v,
197
- capabilities: i,
194
+ isConnected: b,
195
+ isLoading: f,
196
+ error: N,
197
+ capabilities: a,
198
198
  customization: c,
199
- refreshConnection: f,
200
- debug: a
199
+ refreshConnection: g,
200
+ debug: i
201
201
  }), [
202
- r,
202
+ o,
203
203
  u,
204
- m,
205
- N,
206
- v,
207
- i,
208
- c,
204
+ b,
209
205
  f,
206
+ N,
210
207
  a,
211
- l
208
+ c,
209
+ g,
210
+ i,
211
+ r
212
212
  ]);
213
- return l("🔄 RENDER END", {
214
- renderCount: k.current,
215
- willRenderChat: !!(u && m),
216
- contextValueReady: !!x
217
- }), /* @__PURE__ */ e(fe.Provider, { value: x, children: u && m ? /* @__PURE__ */ e(Se, { client: u, children: t }) : t });
218
- }, Ae = () => se();
219
- function ne({ label: t, className: s, children: n, ...o }) {
213
+ return r("🔄 RENDER END", {
214
+ renderCount: P.current,
215
+ willRenderChat: !!(u && b),
216
+ contextValueReady: !!v
217
+ }), /* @__PURE__ */ e(Ie.Provider, { value: v, children: u && b ? /* @__PURE__ */ e(Ue, { client: u, children: t }) : t });
218
+ }, Ze = () => le();
219
+ function Se(t) {
220
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
221
+ }
222
+ var K = {}, Q = {}, ee = {}, he;
223
+ function Je() {
224
+ return he || (he = 1, (function(t) {
225
+ var s = ee && ee.__importDefault || function(c) {
226
+ return c && c.__esModule ? c : { default: c };
227
+ };
228
+ Object.defineProperty(t, "__esModule", { value: !0 }), t.baseStyleClasses = void 0;
229
+ const n = s(G), l = s(_);
230
+ t.baseStyleClasses = (0, l.default)("text-sm", "h-2xl", "block", "p-md", "w-full", "rounded-sm", "bg-chalk", "text-black", "transition", "duration-75", "ease-out", "!outline-none");
231
+ const a = ({ className: c, onChange: i, onChangeValue: r, appearance: o = "default", ...C }, u) => {
232
+ const x = o === "none" ? "appearance-none" : t.baseStyleClasses, b = ({ target: { value: h, checked: f } }) => C.type === "checkbox" ? r == null ? void 0 : r(f) : r == null ? void 0 : r(h);
233
+ return n.default.createElement("input", {
234
+ ...C,
235
+ className: (0, l.default)(c, x),
236
+ onChange: i || r && b,
237
+ ref: u
238
+ });
239
+ };
240
+ t.default = n.default.forwardRef(a);
241
+ })(ee)), ee;
242
+ }
243
+ var ge;
244
+ function Ye() {
245
+ if (ge) return Q;
246
+ ge = 1;
247
+ var t = Q && Q.__importDefault || function(i) {
248
+ return i && i.__esModule ? i : { default: i };
249
+ };
250
+ Object.defineProperty(Q, "__esModule", { value: !0 });
251
+ const s = we, n = t(G), l = t(_), a = t(Je()), c = ({ id: i, name: r, label: o, className: C = "", checked: u, defaultChecked: x, inactive: b, value: h, tabIndex: f, icon: m, ...N }, S) => {
252
+ const k = u || x, E = b || (N == null ? void 0 : N.disabled), P = ({ key: p, code: g }) => {
253
+ var v;
254
+ N.onChangeValue && (p === "Enter" || g === "Space") && ((v = N.onChangeValue) == null || v.call(N, h));
255
+ };
256
+ return (0, s.jsx)("div", { className: (0, l.default)("inline-flex", "first:ml-xs", "max-w-full"), children: (0, s.jsxs)("label", { htmlFor: i, tabIndex: f, className: (0, l.default)("w-fit", "h-10", "px-md", "rounded-lg", "inline-flex", "justify-center", "border", "hover:ring-1", "hover:ring-sand", "relative", "transition duration-75 ease-out", "max-w-full", C, {
257
+ "pointer-events-none": E,
258
+ "cursor-pointer": !E,
259
+ // Selected
260
+ "border-black": k,
261
+ "bg-black": k,
262
+ // Not selected
263
+ "bg-white": !k,
264
+ "border-sand": !k,
265
+ "hover:border-sand": !k
266
+ }), children: [(0, s.jsx)(a.default, { type: "checkbox", id: i, name: r, value: h, checked: u, defaultChecked: x, appearance: "none", className: (0, l.default)("cursor-pointer", "outline-none", "focus-visible:ring-2", "focus-visible:ring-black", "absolute", "-top-[3px]", "left-4px", "w-[calc(100%+6px)]", "h-[calc(100%+6px)]", "rounded-[48px]", "transition duration-75 ease-out"), disabled: E, onKeyDown: P, ref: S, ...N }), (0, s.jsxs)("span", { className: (0, l.default)("pointer-events-none", "select-none", "self-center", "text-sm", "flex", "mt-[1px]", "truncate", {
267
+ "text-pebble": E,
268
+ "text-white": k,
269
+ "text-black": !k && !E
270
+ }), children: [m && (0, s.jsx)("div", { className: "icon mr-xs self-center", children: m }), (0, s.jsx)("span", { className: "label", children: o || r })] })] }) });
271
+ };
272
+ return Q.default = n.default.forwardRef(c), Q;
273
+ }
274
+ var Z = {}, xe;
275
+ function ke() {
276
+ if (xe) return Z;
277
+ xe = 1;
278
+ var t = Z && Z.__importDefault || function(a) {
279
+ return a && a.__esModule ? a : { default: a };
280
+ };
281
+ Object.defineProperty(Z, "__esModule", { value: !0 });
282
+ const s = we, n = t(G), l = ({ children: a, label: c, className: i = "" }, r) => (0, s.jsxs)("fieldset", { className: `${i} -ml-xs space-x-xs space-y-xs`, ref: r, children: [c && (0, s.jsx)("legend", { className: "mb-sm ml-sm text-sm font-semibold", children: c }), a] });
283
+ return Z.default = n.default.forwardRef(l), Z;
284
+ }
285
+ var be;
286
+ function Ke() {
287
+ return be || (be = 1, (function(t) {
288
+ var s = K && K.__importDefault || function(a) {
289
+ return a && a.__esModule ? a : { default: a };
290
+ };
291
+ Object.defineProperty(t, "__esModule", { value: !0 }), t.InputSelectPillGroup = t.default = void 0;
292
+ var n = Ye();
293
+ Object.defineProperty(t, "default", { enumerable: !0, get: function() {
294
+ return s(n).default;
295
+ } });
296
+ var l = ke();
297
+ Object.defineProperty(t, "InputSelectPillGroup", { enumerable: !0, get: function() {
298
+ return s(l).default;
299
+ } });
300
+ })(K)), K;
301
+ }
302
+ var es = Ke();
303
+ const Ne = /* @__PURE__ */ Se(es);
304
+ var ss = ke();
305
+ const ts = /* @__PURE__ */ Se(ss);
306
+ function oe({ label: t, className: s, children: n, ...l }) {
220
307
  return /* @__PURE__ */ d(
221
308
  "button",
222
309
  {
223
310
  type: "button",
224
- className: D(
311
+ className: _(
225
312
  "rounded-full p-2 transition-colors focus-ring",
226
313
  {
227
- "cursor-not-allowed opacity-50": o.disabled,
228
- "hover:bg-sand": !o.disabled
314
+ "cursor-not-allowed opacity-50": l.disabled,
315
+ "hover:bg-sand": !l.disabled
229
316
  },
230
317
  s
231
318
  ),
232
- ...o,
319
+ ...l,
233
320
  children: [
234
321
  /* @__PURE__ */ e("span", { className: "sr-only", children: t }),
235
322
  n
@@ -237,7 +324,7 @@ function ne({ label: t, className: s, children: n, ...o }) {
237
324
  }
238
325
  );
239
326
  }
240
- const de = [
327
+ const ve = [
241
328
  "🍎",
242
329
  // Apple
243
330
  "🍌",
@@ -265,31 +352,31 @@ const de = [
265
352
  "🍈"
266
353
  // Melon
267
354
  ];
268
- function Be(t) {
355
+ function ns(t) {
269
356
  let s = 0;
270
357
  for (let n = 0; n < t.length; n++) {
271
- const o = t.charCodeAt(n);
272
- s = (s << 5) - s + o, s = s & s;
358
+ const l = t.charCodeAt(n);
359
+ s = (s << 5) - s + l, s = s & s;
273
360
  }
274
361
  return Math.abs(s);
275
362
  }
276
- function He(t) {
277
- const n = Be(t) % de.length;
278
- return de[n];
363
+ function rs(t) {
364
+ const n = ns(t) % ve.length;
365
+ return ve[n];
279
366
  }
280
- const J = ({
367
+ const se = ({
281
368
  id: t,
282
369
  image: s,
283
370
  size: n = 40,
284
- className: o
371
+ className: l
285
372
  }) => {
286
- const i = He(t), c = "#FBFAF9", l = n < 32 ? "text-xs" : n < 56 ? "text-sm" : "text-lg";
373
+ const a = rs(t), c = "#FBFAF9", r = n < 32 ? "text-xs" : n < 56 ? "text-sm" : "text-lg";
287
374
  return /* @__PURE__ */ e(
288
375
  "div",
289
376
  {
290
- className: D(
377
+ className: _(
291
378
  "flex-shrink-0 overflow-hidden rounded-lg",
292
- o
379
+ l
293
380
  ),
294
381
  style: { width: `${n}px`, height: `${n}px` },
295
382
  children: s ? /* @__PURE__ */ e(
@@ -303,44 +390,44 @@ const J = ({
303
390
  "div",
304
391
  {
305
392
  "aria-hidden": "true",
306
- className: D(
393
+ className: _(
307
394
  "flex h-full w-full items-center justify-center font-semibold rounded-sm",
308
- l
395
+ r
309
396
  ),
310
397
  style: {
311
398
  color: c,
312
399
  backgroundColor: `color-mix(in srgb, ${c} 60%, solid)`
313
400
  },
314
- children: i
401
+ children: a
315
402
  }
316
403
  )
317
404
  }
318
405
  );
319
- }, _e = ({ channel: t, selectedChannel: s, onChannelSelect: n, debug: o = !1, unread: i }) => {
320
- var h, v, S, O, I, k;
321
- const c = (s == null ? void 0 : s.id) === (t == null ? void 0 : t.id), a = () => {
406
+ }, ls = ({ channel: t, selectedChannel: s, onChannelSelect: n, debug: l = !1, unread: a }) => {
407
+ var m, N, S, k, E, P;
408
+ const c = (s == null ? void 0 : s.id) === (t == null ? void 0 : t.id), i = () => {
322
409
  t && n(t);
323
- }, r = Object.values(((h = t == null ? void 0 : t.state) == null ? void 0 : h.members) || {}).find(
324
- (F) => {
325
- var f, x;
326
- return ((f = F.user) == null ? void 0 : f.id) && F.user.id !== ((x = t == null ? void 0 : t._client) == null ? void 0 : x.userID);
410
+ }, o = Object.values(((m = t == null ? void 0 : t.state) == null ? void 0 : m.members) || {}).find(
411
+ (p) => {
412
+ var g, v;
413
+ return ((g = p.user) == null ? void 0 : g.id) && p.user.id !== ((v = t == null ? void 0 : t._client) == null ? void 0 : v.userID);
327
414
  }
328
- ), b = ((v = r == null ? void 0 : r.user) == null ? void 0 : v.name) || "Conversation", u = (S = r == null ? void 0 : r.user) == null ? void 0 : S.image, g = (I = (O = t == null ? void 0 : t.state) == null ? void 0 : O.messages) == null ? void 0 : I[t.state.messages.length - 1], m = (g == null ? void 0 : g.text) || "No messages yet", y = g != null && g.created_at ? new Date(g.created_at).toLocaleTimeString([], {
415
+ ), C = ((N = o == null ? void 0 : o.user) == null ? void 0 : N.name) || "Conversation", u = (S = o == null ? void 0 : o.user) == null ? void 0 : S.image, x = (E = (k = t == null ? void 0 : t.state) == null ? void 0 : k.messages) == null ? void 0 : E[t.state.messages.length - 1], b = (x == null ? void 0 : x.text) || "No messages yet", h = x != null && x.created_at ? new Date(x.created_at).toLocaleTimeString([], {
329
416
  hour: "2-digit",
330
417
  minute: "2-digit"
331
- }) : "", N = i ?? 0;
332
- return o && console.log("📺 [ChannelList] 📋 CHANNEL PREVIEW RENDER", {
418
+ }) : "", f = a ?? 0;
419
+ return l && console.log("📺 [ChannelList] 📋 CHANNEL PREVIEW RENDER", {
333
420
  channelId: t == null ? void 0 : t.id,
334
421
  isSelected: c,
335
- participantName: b,
336
- unreadCount: N,
337
- hasTimestamp: !!y
422
+ participantName: C,
423
+ unreadCount: f,
424
+ hasTimestamp: !!h
338
425
  }), /* @__PURE__ */ e(
339
426
  "button",
340
427
  {
341
428
  type: "button",
342
- onClick: a,
343
- className: D(
429
+ onClick: i,
430
+ className: _(
344
431
  "w-full px-4 py-3 transition-colors border-b border-sand text-left max-w-full overflow-hidden focus-ring",
345
432
  {
346
433
  "bg-primary-alt/10 border-l-4 border-l-primary": c,
@@ -349,10 +436,10 @@ const J = ({
349
436
  ),
350
437
  children: /* @__PURE__ */ d("div", { className: "flex items-start gap-3", children: [
351
438
  /* @__PURE__ */ e(
352
- J,
439
+ se,
353
440
  {
354
- id: ((k = r == null ? void 0 : r.user) == null ? void 0 : k.id) || t.id || "unknown",
355
- name: b,
441
+ id: ((P = o == null ? void 0 : o.user) == null ? void 0 : P.id) || t.id || "unknown",
442
+ name: C,
356
443
  image: u,
357
444
  size: 44
358
445
  }
@@ -362,105 +449,137 @@ const J = ({
362
449
  /* @__PURE__ */ e(
363
450
  "h3",
364
451
  {
365
- className: D(
452
+ className: _(
366
453
  "text-sm font-medium truncate",
367
454
  c ? "text-primary" : "text-charcoal"
368
455
  ),
369
- children: b
456
+ children: C
370
457
  }
371
458
  ),
372
- y && /* @__PURE__ */ e("span", { className: "text-xs text-stone flex-shrink-0", children: y })
459
+ h && /* @__PURE__ */ e("span", { className: "text-xs text-stone flex-shrink-0", children: h })
373
460
  ] }),
374
461
  /* @__PURE__ */ d("div", { className: "flex items-center justify-between gap-2 min-w-0", children: [
375
- /* @__PURE__ */ e("p", { className: "text-xs text-stone mr-2 flex-1 line-clamp-2", children: m }),
376
- N > 0 && /* @__PURE__ */ e("span", { className: "bg-primary text-white text-xs px-2 py-0.5 rounded-full min-w-[20px] text-center flex-shrink-0", children: N > 99 ? "99+" : N })
462
+ /* @__PURE__ */ e("p", { className: "text-xs text-stone mr-2 flex-1 line-clamp-2", children: b }),
463
+ f > 0 && /* @__PURE__ */ e("span", { className: "bg-primary text-white text-xs px-2 py-0.5 rounded-full min-w-[20px] text-center flex-shrink-0", children: f > 99 ? "99+" : f })
377
464
  ] })
378
465
  ] })
379
466
  ] })
380
467
  }
381
468
  );
382
- }, $e = ({
469
+ }, os = ({
383
470
  onChannelSelect: t,
384
471
  selectedChannel: s,
385
472
  showStartConversation: n = !1,
386
- onStartConversation: o,
387
- participantLabel: i = "participants",
473
+ onStartConversation: l,
474
+ participantLabel: a = "participants",
388
475
  className: c
389
476
  }) => {
390
- var u;
391
- const a = X.useRef(0);
392
- a.current++;
393
- const { debug: l = !1 } = se();
394
- l && console.log("📺 [ChannelList] 🔄 RENDER START", {
395
- renderCount: a.current,
477
+ var b;
478
+ const i = G.useRef(0);
479
+ i.current++;
480
+ const { debug: r = !1 } = le();
481
+ r && console.log("📺 [ChannelList] 🔄 RENDER START", {
482
+ renderCount: i.current,
396
483
  selectedChannelId: s == null ? void 0 : s.id,
397
484
  showStartConversation: n,
398
- participantLabel: i
485
+ participantLabel: a
399
486
  });
400
- const { client: r } = Re();
401
- l && console.log("📺 [ChannelList] 📡 CHAT CONTEXT", {
402
- renderCount: a.current,
403
- hasClient: !!r,
404
- clientUserId: r == null ? void 0 : r.userID,
405
- clientConnected: (u = r == null ? void 0 : r.wsConnection) == null ? void 0 : u.isHealthy
487
+ const { client: o } = Le();
488
+ r && console.log("📺 [ChannelList] 📡 CHAT CONTEXT", {
489
+ renderCount: i.current,
490
+ hasClient: !!o,
491
+ clientUserId: o == null ? void 0 : o.userID,
492
+ clientConnected: (b = o == null ? void 0 : o.wsConnection) == null ? void 0 : b.isHealthy
406
493
  });
407
- const b = X.useMemo(() => {
408
- const g = r.userID, m = g ? {
409
- type: "messaging",
410
- members: { $in: [g] },
411
- hidden: !1,
412
- last_message_at: { $exists: !0 }
413
- } : { type: "messaging", last_message_at: { $exists: !0 } };
414
- return l && console.log("📺 [ChannelList] 🔍 FILTERS MEMOIZED", {
415
- renderCount: a.current,
416
- userId: g,
417
- filters: m
418
- }), m;
419
- }, [r.userID, l]);
494
+ const [C, u] = I({
495
+ type: "messaging",
496
+ last_message_at: { $exists: !0 },
497
+ has_unread: void 0
498
+ }), x = G.useMemo(() => {
499
+ const h = o.userID, f = {
500
+ ...C,
501
+ ...h && {
502
+ members: { $in: [h] },
503
+ hidden: !1
504
+ }
505
+ };
506
+ return r && console.log("📺 [ChannelList] 🔍 FILTERS MEMOIZED", {
507
+ renderCount: i.current,
508
+ userId: h,
509
+ filters: f
510
+ }), f;
511
+ }, [o.userID, r, C]);
420
512
  return /* @__PURE__ */ d(
421
513
  "div",
422
514
  {
423
- className: D(
515
+ className: _(
424
516
  "messaging-channel-list h-full flex flex-col min-w-0 overflow-hidden",
425
517
  c
426
518
  ),
427
519
  children: [
428
520
  /* @__PURE__ */ e("div", { className: "px-4 py-4 border-b border-sand bg-chalk", children: /* @__PURE__ */ d("div", { className: "flex items-center justify-between gap-3 min-h-10 min-w-0", children: [
429
- /* @__PURE__ */ e("h2", { className: "text-lg font-semibold text-charcoal", children: "Conversations" }),
430
- /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: n && o && /* @__PURE__ */ e(
431
- ne,
521
+ /* @__PURE__ */ d("div", { children: [
522
+ /* @__PURE__ */ e("h2", { className: "text-lg font-semibold text-charcoal", children: "Conversations" }),
523
+ /* @__PURE__ */ d(ts, { children: [
524
+ /* @__PURE__ */ e(
525
+ Ne,
526
+ {
527
+ checked: !x.has_unread,
528
+ name: "All",
529
+ onChange: () => u((h) => ({
530
+ ...h,
531
+ has_unread: void 0
532
+ })),
533
+ value: 0
534
+ /* All */
535
+ }
536
+ ),
537
+ /* @__PURE__ */ e(
538
+ Ne,
539
+ {
540
+ checked: x.has_unread,
541
+ name: "Unread",
542
+ onChange: () => u((h) => ({ ...h, has_unread: !0 })),
543
+ value: 1
544
+ /* Unread */
545
+ }
546
+ )
547
+ ] })
548
+ ] }),
549
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: n && l && /* @__PURE__ */ e(
550
+ oe,
432
551
  {
433
552
  label: "Start a new conversation",
434
- onClick: o,
553
+ onClick: l,
435
554
  className: "inline-flex size-10 items-center justify-center",
436
- children: /* @__PURE__ */ e(Oe, { className: "h-5 w-5" })
555
+ children: /* @__PURE__ */ e(qe, { className: "h-5 w-5" })
437
556
  }
438
557
  ) })
439
558
  ] }) }),
440
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-hidden min-w-0", children: (l && console.log("📺 [ChannelList] 🎬 RENDERING STREAM CHANNEL LIST", {
441
- renderCount: a.current,
442
- filters: b,
443
- hasClient: !!r,
444
- clientUserId: r == null ? void 0 : r.userID
559
+ /* @__PURE__ */ e("div", { className: "flex-1 overflow-hidden min-w-0", children: (r && console.log("📺 [ChannelList] 🎬 RENDERING STREAM CHANNEL LIST", {
560
+ renderCount: i.current,
561
+ filters: x,
562
+ hasClient: !!o,
563
+ clientUserId: o == null ? void 0 : o.userID
445
564
  }), /* @__PURE__ */ e(
446
- ke,
565
+ Be,
447
566
  {
448
- filters: b,
567
+ filters: x,
449
568
  sort: { last_message_at: -1 },
450
569
  options: { limit: 30 },
451
- Preview: (g) => {
452
- var m, y;
453
- return l && console.log("📺 [ChannelList] 📋 CHANNEL PREVIEW RENDER", {
454
- channelId: (m = g.channel) == null ? void 0 : m.id,
570
+ Preview: (h) => {
571
+ var f, m;
572
+ return r && console.log("📺 [ChannelList] 📋 CHANNEL PREVIEW RENDER", {
573
+ channelId: (f = h.channel) == null ? void 0 : f.id,
455
574
  selectedChannelId: s == null ? void 0 : s.id,
456
- isSelected: (s == null ? void 0 : s.id) === ((y = g.channel) == null ? void 0 : y.id)
575
+ isSelected: (s == null ? void 0 : s.id) === ((m = h.channel) == null ? void 0 : m.id)
457
576
  }), /* @__PURE__ */ e(
458
- _e,
577
+ ls,
459
578
  {
460
- ...g,
579
+ ...h,
461
580
  selectedChannel: s,
462
581
  onChannelSelect: t,
463
- debug: l
582
+ debug: r
464
583
  }
465
584
  );
466
585
  }
@@ -469,41 +588,41 @@ const J = ({
469
588
  ]
470
589
  }
471
590
  );
472
- }, K = ({
591
+ }, ne = ({
473
592
  variant: t = "default",
474
593
  className: s,
475
594
  children: n,
476
- ...o
595
+ ...l
477
596
  }) => /* @__PURE__ */ e(
478
597
  "button",
479
598
  {
480
599
  type: "button",
481
- className: D(
600
+ className: _(
482
601
  "flex w-full items-center gap-3 rounded-lg px-4 py-3 text-left text-sm transition-colors focus-ring disabled:cursor-not-allowed disabled:opacity-60",
483
602
  t === "danger" ? "text-danger hover:bg-danger/50" : "text-charcoal hover:bg-sand",
484
603
  s
485
604
  ),
486
- ...o,
605
+ ...l,
487
606
  children: n
488
607
  }
489
608
  );
490
- function ge({ onClick: t }) {
491
- return /* @__PURE__ */ e(ne, { label: "Close", onClick: t, className: "p-1", children: /* @__PURE__ */ e(he, { className: "h-5 w-5 text-stone", weight: "bold" }) });
609
+ function Re({ onClick: t }) {
610
+ return /* @__PURE__ */ e(oe, { label: "Close", onClick: t, className: "p-1", children: /* @__PURE__ */ e(Ee, { className: "h-5 w-5 text-stone", weight: "bold" }) });
492
611
  }
493
- const xe = () => /* @__PURE__ */ e("div", { className: "messaging-channel-empty-state flex items-center justify-center h-full p-8 text-balance", children: /* @__PURE__ */ d("div", { className: "text-center max-w-sm", children: [
612
+ const Pe = () => /* @__PURE__ */ e("div", { className: "messaging-channel-empty-state flex items-center justify-center h-full p-8 text-balance", children: /* @__PURE__ */ d("div", { className: "text-center max-w-sm", children: [
494
613
  /* @__PURE__ */ e("h2", { className: "font-semibold text-charcoal mb-2", children: "No messages yet 👀" }),
495
614
  /* @__PURE__ */ e("p", { className: "text-stone text-xs", children: "Share to social media to generate more conversations" })
496
- ] }) }), Ge = ({ renderActions: t }) => /* @__PURE__ */ d("div", { className: "message-input flex items-center gap-2 p-4", children: [
615
+ ] }) }), as = ({ renderActions: t }) => /* @__PURE__ */ d("div", { className: "message-input flex items-center gap-2 p-4", children: [
497
616
  t && t(),
498
- /* @__PURE__ */ e("div", { className: "flex-1", children: /* @__PURE__ */ e(Pe, { focus: !0, maxRows: 4 }) })
499
- ] }), Ve = ({ onBack: t, showBackButton: s, onShowInfo: n, canShowInfo: o }) => {
500
- var r, b, u, g;
501
- const { channel: i } = me(), c = X.useMemo(() => Object.values(i.state.members || {}).find(
502
- (y) => {
503
- var N;
504
- return ((N = y.user) == null ? void 0 : N.id) && y.user.id !== i._client.userID;
617
+ /* @__PURE__ */ e("div", { className: "flex-1", children: /* @__PURE__ */ e(He, { focus: !0, maxRows: 4 }) })
618
+ ] }), is = ({ onBack: t, showBackButton: s, onShowInfo: n, canShowInfo: l }) => {
619
+ var o, C, u, x;
620
+ const { channel: a } = ye(), c = G.useMemo(() => Object.values(a.state.members || {}).find(
621
+ (h) => {
622
+ var f;
623
+ return ((f = h.user) == null ? void 0 : f.id) && h.user.id !== a._client.userID;
505
624
  }
506
- ), [i._client.userID, i.state.members]), a = ((r = c == null ? void 0 : c.user) == null ? void 0 : r.name) || ((b = c == null ? void 0 : c.user) == null ? void 0 : b.id) || "Unknown member", l = (u = c == null ? void 0 : c.user) == null ? void 0 : u.image;
625
+ ), [a._client.userID, a.state.members]), i = ((o = c == null ? void 0 : c.user) == null ? void 0 : o.name) || ((C = c == null ? void 0 : c.user) == null ? void 0 : C.id) || "Unknown member", r = (u = c == null ? void 0 : c.user) == null ? void 0 : u.image;
507
626
  return /* @__PURE__ */ d("div", { className: "flex items-center justify-between gap-3 min-h-12", children: [
508
627
  /* @__PURE__ */ d("div", { className: "flex items-center gap-3 min-w-0", children: [
509
628
  s && t && /* @__PURE__ */ e(
@@ -513,96 +632,96 @@ const xe = () => /* @__PURE__ */ e("div", { className: "messaging-channel-empty-
513
632
  onClick: t,
514
633
  className: "inline-flex items-center justify-center w-8 h-8 rounded-lg hover:bg-sand focus:outline-none focus:ring-2 focus:ring-primary transition-colors lg:hidden",
515
634
  "aria-label": "Back to conversations",
516
- children: /* @__PURE__ */ e(Me, { className: "h-5 w-5 text-stone", weight: "bold" })
635
+ children: /* @__PURE__ */ e(We, { className: "h-5 w-5 text-stone", weight: "bold" })
517
636
  }
518
637
  ),
519
638
  /* @__PURE__ */ e(
520
- J,
639
+ se,
521
640
  {
522
- id: ((g = c == null ? void 0 : c.user) == null ? void 0 : g.id) || i.id || "unknown",
523
- name: a,
524
- image: l,
641
+ id: ((x = c == null ? void 0 : c.user) == null ? void 0 : x.id) || a.id || "unknown",
642
+ name: i,
643
+ image: r,
525
644
  size: 40
526
645
  }
527
646
  ),
528
- /* @__PURE__ */ e("div", { className: "min-w-0", children: /* @__PURE__ */ e("h1", { className: "text-lg font-semibold text-charcoal truncate", children: a }) })
647
+ /* @__PURE__ */ e("div", { className: "min-w-0", children: /* @__PURE__ */ e("h1", { className: "text-lg font-semibold text-charcoal truncate", children: i }) })
529
648
  ] }),
530
- o && n && /* @__PURE__ */ e(ne, { label: "Chat info", onClick: n, children: /* @__PURE__ */ e(pe, { className: "h-6 w-6 text-charcoal", weight: "bold" }) })
649
+ l && n && /* @__PURE__ */ e(oe, { label: "Chat info", onClick: n, children: /* @__PURE__ */ e(ze, { className: "h-6 w-6 text-charcoal", weight: "bold" }) })
531
650
  ] });
532
- }, We = ({
651
+ }, cs = ({
533
652
  isOpen: t,
534
653
  onClose: s,
535
654
  participant: n,
536
- channel: o,
537
- followerStatusLabel: i,
655
+ channel: l,
656
+ followerStatusLabel: a,
538
657
  onLeaveConversation: c,
539
- onBlockParticipant: a
658
+ onBlockParticipant: i
540
659
  }) => {
541
- var L, $, G, V, Q, W, z;
542
- const { service: l, debug: r } = se(), b = H(null), [u, g] = E(!1), [m, y] = E(!1), [N, h] = E(!1);
543
- _(() => {
544
- const R = b.current;
660
+ var j, H, q, W, J, z, V;
661
+ const { service: r, debug: o } = le(), C = A(null), [u, x] = I(!1), [b, h] = I(!1), [f, m] = I(!1);
662
+ $(() => {
663
+ const R = C.current;
545
664
  R && (t ? R.showModal() : R.close());
546
665
  }, [t]);
547
- const v = M(async () => {
666
+ const N = M(async () => {
548
667
  var R;
549
- if (!(!l || !((R = n == null ? void 0 : n.user) != null && R.id)))
668
+ if (!(!r || !((R = n == null ? void 0 : n.user) != null && R.id)))
550
669
  try {
551
- const A = (await l.getBlockedUsers()).some(
552
- (q) => {
553
- var Z;
554
- return q.blocked_user_id === ((Z = n == null ? void 0 : n.user) == null ? void 0 : Z.id);
670
+ const L = (await r.getBlockedUsers()).some(
671
+ (X) => {
672
+ var Y;
673
+ return X.blocked_user_id === ((Y = n == null ? void 0 : n.user) == null ? void 0 : Y.id);
555
674
  }
556
675
  );
557
- g(A);
558
- } catch (T) {
676
+ x(L);
677
+ } catch (D) {
559
678
  console.error(
560
679
  "[ChannelInfoDialog] Failed to check blocked status:",
561
- T
680
+ D
562
681
  );
563
682
  }
564
- }, [l, (L = n == null ? void 0 : n.user) == null ? void 0 : L.id]);
565
- _(() => {
566
- t && v();
567
- }, [t, v]);
683
+ }, [r, (j = n == null ? void 0 : n.user) == null ? void 0 : j.id]);
684
+ $(() => {
685
+ t && N();
686
+ }, [t, N]);
568
687
  const S = async () => {
569
688
  var R;
570
- if (!m) {
571
- r && console.log("[ChannelInfoDialog] Leave conversation", o.cid), y(!0);
689
+ if (!b) {
690
+ o && console.log("[ChannelInfoDialog] Leave conversation", l.cid), h(!0);
572
691
  try {
573
- const T = ((R = o._client) == null ? void 0 : R.userID) ?? null;
574
- await o.hide(T, !1), c && await c(o), s();
575
- } catch (T) {
576
- console.error("[ChannelInfoDialog] Failed to leave conversation", T);
692
+ const D = ((R = l._client) == null ? void 0 : R.userID) ?? null;
693
+ await l.hide(D, !1), c && await c(l), s();
694
+ } catch (D) {
695
+ console.error("[ChannelInfoDialog] Failed to leave conversation", D);
577
696
  } finally {
578
- y(!1);
697
+ h(!1);
579
698
  }
580
699
  }
581
- }, O = async () => {
582
- var R, T, A;
583
- if (!(N || !l)) {
584
- r && console.log("[ChannelInfoDialog] Block member", (R = n == null ? void 0 : n.user) == null ? void 0 : R.id), h(!0);
700
+ }, k = async () => {
701
+ var R, D, L;
702
+ if (!(f || !r)) {
703
+ o && console.log("[ChannelInfoDialog] Block member", (R = n == null ? void 0 : n.user) == null ? void 0 : R.id), m(!0);
585
704
  try {
586
- await l.blockUser((T = n == null ? void 0 : n.user) == null ? void 0 : T.id), a && await a((A = n == null ? void 0 : n.user) == null ? void 0 : A.id), s();
587
- } catch (q) {
588
- console.error("[ChannelInfoDialog] Failed to block member", q);
705
+ await r.blockUser((D = n == null ? void 0 : n.user) == null ? void 0 : D.id), i && await i((L = n == null ? void 0 : n.user) == null ? void 0 : L.id), s();
706
+ } catch (X) {
707
+ console.error("[ChannelInfoDialog] Failed to block member", X);
589
708
  } finally {
590
- h(!1);
709
+ m(!1);
591
710
  }
592
711
  }
593
- }, I = async () => {
594
- var R, T, A;
595
- if (!(N || !l)) {
596
- r && console.log("[ChannelInfoDialog] Unblock member", (R = n == null ? void 0 : n.user) == null ? void 0 : R.id), h(!0);
712
+ }, E = async () => {
713
+ var R, D, L;
714
+ if (!(f || !r)) {
715
+ o && console.log("[ChannelInfoDialog] Unblock member", (R = n == null ? void 0 : n.user) == null ? void 0 : R.id), m(!0);
597
716
  try {
598
- await l.unBlockUser((T = n == null ? void 0 : n.user) == null ? void 0 : T.id), a && await a((A = n == null ? void 0 : n.user) == null ? void 0 : A.id), s();
599
- } catch (q) {
600
- console.error("[ChannelInfoDialog] Failed to unblock member", q);
717
+ await r.unBlockUser((D = n == null ? void 0 : n.user) == null ? void 0 : D.id), i && await i((L = n == null ? void 0 : n.user) == null ? void 0 : L.id), s();
718
+ } catch (X) {
719
+ console.error("[ChannelInfoDialog] Failed to unblock member", X);
601
720
  } finally {
602
- h(!1);
721
+ m(!1);
603
722
  }
604
723
  }
605
- }, k = () => {
724
+ }, P = () => {
606
725
  s(), window.open(
607
726
  "https://linktr.ee/s/about/trust-center/report",
608
727
  "_blank",
@@ -610,92 +729,92 @@ const xe = () => /* @__PURE__ */ e("div", { className: "messaging-channel-empty-
610
729
  );
611
730
  };
612
731
  if (!n) return null;
613
- const F = (($ = n.user) == null ? void 0 : $.name) || ((G = n.user) == null ? void 0 : G.id) || "Unknown member", f = (V = n.user) == null ? void 0 : V.image, x = (Q = n.user) == null ? void 0 : Q.email, w = (W = n.user) == null ? void 0 : W.username, P = x || (w ? `linktr.ee/${w}` : void 0), U = ((z = n.user) == null ? void 0 : z.id) || "unknown";
732
+ const p = ((H = n.user) == null ? void 0 : H.name) || ((q = n.user) == null ? void 0 : q.id) || "Unknown member", g = (W = n.user) == null ? void 0 : W.image, v = (J = n.user) == null ? void 0 : J.email, y = (z = n.user) == null ? void 0 : z.username, F = v || (y ? `linktr.ee/${y}` : void 0), T = ((V = n.user) == null ? void 0 : V.id) || "unknown";
614
733
  return (
615
734
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
616
735
  /* @__PURE__ */ e(
617
736
  "dialog",
618
737
  {
619
- ref: b,
738
+ ref: C,
620
739
  className: "mes-dialog",
621
740
  onClose: s,
622
741
  onClick: (R) => {
623
- R.target === b.current && s();
742
+ R.target === C.current && s();
624
743
  },
625
744
  children: /* @__PURE__ */ d("div", { className: "ml-auto flex h-full w-full flex-col bg-white shadow-max-elevation-light", children: [
626
745
  /* @__PURE__ */ d("div", { className: "flex items-center justify-between border-b border-sand px-4 py-3", children: [
627
746
  /* @__PURE__ */ e("h2", { className: "text-base font-semibold text-charcoal", children: "Chat info" }),
628
- /* @__PURE__ */ e(ge, { onClick: s })
747
+ /* @__PURE__ */ e(Re, { onClick: s })
629
748
  ] }),
630
749
  /* @__PURE__ */ d("div", { className: "flex-1 px-2 overflow-y-auto w-full", children: [
631
750
  /* @__PURE__ */ e("div", { className: "flex flex-col items-center gap-3 self-stretch px-4 py-2 mt-6 rounded-lg border border-black/[0.04]", style: { backgroundColor: "#FBFAF9" }, children: /* @__PURE__ */ d("div", { className: "flex items-center gap-3 w-full", children: [
632
751
  /* @__PURE__ */ e(
633
- J,
752
+ se,
634
753
  {
635
- id: U,
636
- name: F,
637
- image: f,
754
+ id: T,
755
+ name: p,
756
+ image: g,
638
757
  size: 88,
639
758
  className: "!rounded-full"
640
759
  }
641
760
  ),
642
761
  /* @__PURE__ */ d("div", { className: "flex flex-col min-w-0 flex-1", children: [
643
- /* @__PURE__ */ e("p", { className: "truncate text-base font-semibold text-charcoal", children: F }),
644
- P && /* @__PURE__ */ e("p", { className: "truncate text-sm text-[#00000055]", children: P }),
645
- i && /* @__PURE__ */ e(
762
+ /* @__PURE__ */ e("p", { className: "truncate text-base font-semibold text-charcoal", children: p }),
763
+ F && /* @__PURE__ */ e("p", { className: "truncate text-sm text-[#00000055]", children: F }),
764
+ a && /* @__PURE__ */ e(
646
765
  "span",
647
766
  {
648
767
  className: "mt-1 rounded-full text-xs font-normal w-fit",
649
768
  style: {
650
769
  padding: "4px 8px",
651
- backgroundColor: i === "Subscribed to you" ? "#DCFCE7" : "#F5F5F4",
652
- color: i === "Subscribed to you" ? "#008236" : "#78716C",
770
+ backgroundColor: a === "Subscribed to you" ? "#DCFCE7" : "#F5F5F4",
771
+ color: a === "Subscribed to you" ? "#008236" : "#78716C",
653
772
  lineHeight: "133.333%",
654
773
  letterSpacing: "0.21px"
655
774
  },
656
- children: i
775
+ children: a
657
776
  }
658
777
  )
659
778
  ] })
660
779
  ] }) }),
661
780
  /* @__PURE__ */ d("ul", { className: "flex flex-col gap-2 mt-2", children: [
662
781
  /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(
663
- K,
782
+ ne,
664
783
  {
665
784
  onClick: S,
666
- disabled: m,
667
- "aria-busy": m,
785
+ disabled: b,
786
+ "aria-busy": b,
668
787
  children: [
669
- m ? /* @__PURE__ */ e(ee, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ e(Ue, { className: "h-5 w-5" }),
788
+ b ? /* @__PURE__ */ e(re, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ e(Ve, { className: "h-5 w-5" }),
670
789
  /* @__PURE__ */ e("span", { children: "Leave Conversation" })
671
790
  ]
672
791
  }
673
792
  ) }),
674
793
  /* @__PURE__ */ e("li", { children: u ? /* @__PURE__ */ d(
675
- K,
794
+ ne,
676
795
  {
677
- onClick: I,
678
- disabled: N,
679
- "aria-busy": N,
796
+ onClick: E,
797
+ disabled: f,
798
+ "aria-busy": f,
680
799
  children: [
681
- N ? /* @__PURE__ */ e(ee, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ e(ie, { className: "h-5 w-5" }),
800
+ f ? /* @__PURE__ */ e(re, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ e(fe, { className: "h-5 w-5" }),
682
801
  /* @__PURE__ */ e("span", { children: "Unblock" })
683
802
  ]
684
803
  }
685
804
  ) : /* @__PURE__ */ d(
686
- K,
805
+ ne,
687
806
  {
688
- onClick: O,
689
- disabled: N,
690
- "aria-busy": N,
807
+ onClick: k,
808
+ disabled: f,
809
+ "aria-busy": f,
691
810
  children: [
692
- N ? /* @__PURE__ */ e(ee, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ e(ie, { className: "h-5 w-5" }),
811
+ f ? /* @__PURE__ */ e(re, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ e(fe, { className: "h-5 w-5" }),
693
812
  /* @__PURE__ */ e("span", { children: "Block" })
694
813
  ]
695
814
  }
696
815
  ) }),
697
- /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(K, { variant: "danger", onClick: k, children: [
698
- /* @__PURE__ */ e(Le, { className: "h-5 w-5" }),
816
+ /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(ne, { variant: "danger", onClick: P, children: [
817
+ /* @__PURE__ */ e(Xe, { className: "h-5 w-5" }),
699
818
  /* @__PURE__ */ e("span", { children: "Report" })
700
819
  ] }) })
701
820
  ] })
@@ -704,100 +823,100 @@ const xe = () => /* @__PURE__ */ e("div", { className: "messaging-channel-empty-
704
823
  }
705
824
  )
706
825
  );
707
- }, ze = ({
826
+ }, ds = ({
708
827
  onBack: t,
709
828
  showBackButton: s,
710
829
  renderMessageInputActions: n,
711
- onLeaveConversation: o,
712
- onBlockParticipant: i,
713
- CustomChannelEmptyState: c = xe
830
+ onLeaveConversation: l,
831
+ onBlockParticipant: a,
832
+ CustomChannelEmptyState: c = Pe
714
833
  }) => {
715
- var m, y;
716
- const { channel: a } = me(), [l, r] = E(!1), b = (((y = (m = a == null ? void 0 : a.state) == null ? void 0 : m.messages) == null ? void 0 : y.length) ?? 0) > 0, u = X.useMemo(() => Object.values(a.state.members || {}).find(
717
- (h) => {
718
- var v;
719
- return ((v = h.user) == null ? void 0 : v.id) && h.user.id !== a._client.userID;
834
+ var b, h;
835
+ const { channel: i } = ye(), [r, o] = I(!1), C = (((h = (b = i == null ? void 0 : i.state) == null ? void 0 : b.messages) == null ? void 0 : h.length) ?? 0) > 0, u = G.useMemo(() => Object.values(i.state.members || {}).find(
836
+ (m) => {
837
+ var N;
838
+ return ((N = m.user) == null ? void 0 : N.id) && m.user.id !== i._client.userID;
720
839
  }
721
- ), [a._client.userID, a.state.members]), g = X.useMemo(() => {
722
- const N = a.data ?? {};
723
- if (N.followerStatus)
724
- return String(N.followerStatus);
725
- if (N.isFollower !== void 0)
726
- return N.isFollower ? "Subscribed to you" : "Not subscribed";
727
- }, [a.data]);
728
- return /* @__PURE__ */ d(oe, { children: [
729
- /* @__PURE__ */ d(Te, { children: [
840
+ ), [i._client.userID, i.state.members]), x = G.useMemo(() => {
841
+ const f = i.data ?? {};
842
+ if (f.followerStatus)
843
+ return String(f.followerStatus);
844
+ if (f.isFollower !== void 0)
845
+ return f.isFollower ? "Subscribed to you" : "Not subscribed";
846
+ }, [i.data]);
847
+ return /* @__PURE__ */ d(de, { children: [
848
+ /* @__PURE__ */ d($e, { children: [
730
849
  /* @__PURE__ */ e("div", { className: "border-b border-sand bg-white px-4 py-3", children: /* @__PURE__ */ e(
731
- Ve,
850
+ is,
732
851
  {
733
852
  onBack: t,
734
853
  showBackButton: s,
735
- onShowInfo: () => r(!0),
854
+ onShowInfo: () => o(!0),
736
855
  canShowInfo: !!u
737
856
  }
738
857
  ) }),
739
858
  /* @__PURE__ */ d("div", { className: "flex-1 overflow-hidden relative", children: [
740
- /* @__PURE__ */ e(De, { hideDeletedMessages: !0, hideNewMessageSeparator: !1 }),
741
- !b && c && /* @__PURE__ */ e("div", { className: "absolute inset-0 w-full h-full bg-white", children: /* @__PURE__ */ e(c, {}) })
859
+ /* @__PURE__ */ e(Ge, { hideDeletedMessages: !0, hideNewMessageSeparator: !1 }),
860
+ !C && c && /* @__PURE__ */ e("div", { className: "absolute inset-0 w-full h-full bg-white", children: /* @__PURE__ */ e(c, {}) })
742
861
  ] }),
743
862
  /* @__PURE__ */ e(
744
- Ge,
863
+ as,
745
864
  {
746
- renderActions: () => n == null ? void 0 : n(a)
865
+ renderActions: () => n == null ? void 0 : n(i)
747
866
  }
748
867
  )
749
868
  ] }),
750
869
  /* @__PURE__ */ e(
751
- We,
870
+ cs,
752
871
  {
753
- isOpen: l,
754
- onClose: () => r(!1),
872
+ isOpen: r,
873
+ onClose: () => o(!1),
755
874
  participant: u,
756
- channel: a,
757
- followerStatusLabel: g,
758
- onLeaveConversation: o,
759
- onBlockParticipant: i
875
+ channel: i,
876
+ followerStatusLabel: x,
877
+ onLeaveConversation: l,
878
+ onBlockParticipant: a
760
879
  }
761
880
  )
762
881
  ] });
763
- }, qe = ({
882
+ }, us = ({
764
883
  channel: t,
765
884
  onBack: s,
766
885
  showBackButton: n = !1,
767
- renderMessageInputActions: o,
768
- onLeaveConversation: i,
886
+ renderMessageInputActions: l,
887
+ onLeaveConversation: a,
769
888
  onBlockParticipant: c,
770
- className: a,
771
- CustomChannelEmptyState: l = xe
889
+ className: i,
890
+ CustomChannelEmptyState: r = Pe
772
891
  }) => /* @__PURE__ */ e(
773
892
  "div",
774
893
  {
775
- className: D(
894
+ className: _(
776
895
  "messaging-channel-view h-full flex flex-col",
777
- a
896
+ i
778
897
  ),
779
- children: /* @__PURE__ */ e(Fe, { channel: t, children: /* @__PURE__ */ e(
780
- ze,
898
+ children: /* @__PURE__ */ e(Ae, { channel: t, children: /* @__PURE__ */ e(
899
+ ds,
781
900
  {
782
901
  onBack: s,
783
902
  showBackButton: n,
784
- renderMessageInputActions: o,
785
- onLeaveConversation: i,
903
+ renderMessageInputActions: l,
904
+ onLeaveConversation: a,
786
905
  onBlockParticipant: c,
787
- CustomChannelEmptyState: l
906
+ CustomChannelEmptyState: r
788
907
  }
789
908
  ) })
790
909
  }
791
910
  );
792
- function Xe({
911
+ function fs({
793
912
  searchQuery: t,
794
913
  setSearchQuery: s,
795
914
  placeholder: n
796
915
  }) {
797
- const o = H(null);
916
+ const l = A(null);
798
917
  return /* @__PURE__ */ d("div", { className: "relative", children: [
799
918
  /* @__PURE__ */ e(
800
- je,
919
+ Qe,
801
920
  {
802
921
  className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-stone",
803
922
  weight: "bold"
@@ -806,185 +925,185 @@ function Xe({
806
925
  /* @__PURE__ */ e(
807
926
  "input",
808
927
  {
809
- ref: o,
928
+ ref: l,
810
929
  type: "text",
811
930
  placeholder: n,
812
931
  value: t,
813
- onChange: (i) => s(i.target.value),
932
+ onChange: (a) => s(a.target.value),
814
933
  className: "w-full pl-10 pr-10 py-3 text-sm border border-sand rounded-xl focus:outline-none focus:ring-2 focus:ring-black focus:border-transparent"
815
934
  }
816
935
  ),
817
936
  t && /* @__PURE__ */ e(
818
- ne,
937
+ oe,
819
938
  {
820
939
  label: "Clear search",
821
940
  onClick: () => {
822
- var i;
823
- s(""), (i = o.current) == null || i.focus();
941
+ var a;
942
+ s(""), (a = l.current) == null || a.focus();
824
943
  },
825
944
  className: "absolute right-3 top-1/2 -translate-y-1/2 p-1 text-stone hover:text-charcoal",
826
- children: /* @__PURE__ */ e(he, { className: "h-4 w-4", weight: "bold" })
945
+ children: /* @__PURE__ */ e(Ee, { className: "h-4 w-4", weight: "bold" })
827
946
  }
828
947
  )
829
948
  ] });
830
949
  }
831
- const Qe = ({
950
+ const ms = ({
832
951
  participantSource: t,
833
952
  onSelectParticipant: s,
834
953
  onClose: n,
835
- existingParticipantIds: o = /* @__PURE__ */ new Set(),
836
- participantLabel: i = "participants",
954
+ existingParticipantIds: l = /* @__PURE__ */ new Set(),
955
+ participantLabel: a = "participants",
837
956
  searchPlaceholder: c = "Search participants...",
838
- className: a
957
+ className: i
839
958
  }) => {
840
- const { debug: l } = se(), [r, b] = E(""), [u, g] = E([]), [m, y] = E(!1), [N, h] = E(null), [v, S] = E(
959
+ const { debug: r } = le(), [o, C] = I(""), [u, x] = I([]), [b, h] = I(!1), [f, m] = I(null), [N, S] = I(
841
960
  null
842
- ), O = H(!1);
843
- _(() => {
961
+ ), k = A(!1);
962
+ $(() => {
844
963
  if (t.loading) {
845
- l && console.log(
964
+ r && console.log(
846
965
  "[ParticipantPicker] Waiting for participant source to finish loading..."
847
966
  );
848
967
  return;
849
968
  }
850
- if (O.current) return;
969
+ if (k.current) return;
851
970
  (async () => {
852
- l && console.log("[ParticipantPicker] Loading initial participants..."), y(!0), h(null);
971
+ r && console.log("[ParticipantPicker] Loading initial participants..."), h(!0), m(null);
853
972
  try {
854
- const x = await t.loadParticipants({
973
+ const v = await t.loadParticipants({
855
974
  search: "",
856
975
  // Load all participants initially
857
976
  limit: 100
858
977
  });
859
- g(x.participants), O.current = !0, l && console.log(
978
+ x(v.participants), k.current = !0, r && console.log(
860
979
  "[ParticipantPicker] Participants loaded successfully:",
861
- x.participants.length
980
+ v.participants.length
862
981
  );
863
- } catch (x) {
864
- const w = x instanceof Error ? x.message : "Failed to load participants";
865
- h(w), console.error("[ParticipantPicker] Failed to load participants:", x);
982
+ } catch (v) {
983
+ const y = v instanceof Error ? v.message : "Failed to load participants";
984
+ m(y), console.error("[ParticipantPicker] Failed to load participants:", v);
866
985
  } finally {
867
- y(!1);
986
+ h(!1);
868
987
  }
869
988
  })();
870
- }, [t.loading, l]);
871
- const I = u.filter((f) => !o.has(f.id)).filter((f) => {
872
- var w;
873
- if (!r) return !0;
874
- const x = r.toLowerCase();
875
- return f.name.toLowerCase().includes(x) || ((w = f.email) == null ? void 0 : w.toLowerCase().includes(x)) || !1;
876
- }), k = M(
877
- async (f) => {
878
- if (!v) {
879
- S(f.id);
989
+ }, [t.loading, r]);
990
+ const E = u.filter((g) => !l.has(g.id)).filter((g) => {
991
+ var y;
992
+ if (!o) return !0;
993
+ const v = o.toLowerCase();
994
+ return g.name.toLowerCase().includes(v) || ((y = g.email) == null ? void 0 : y.toLowerCase().includes(v)) || !1;
995
+ }), P = M(
996
+ async (g) => {
997
+ if (!N) {
998
+ S(g.id);
880
999
  try {
881
- await s(f);
882
- } catch (x) {
883
- console.error("[ParticipantPicker] Failed to start chat:", x), S(null);
1000
+ await s(g);
1001
+ } catch (v) {
1002
+ console.error("[ParticipantPicker] Failed to start chat:", v), S(null);
884
1003
  }
885
1004
  }
886
1005
  },
887
- [s, v]
888
- ), F = (f, x) => {
889
- (f.key === "Enter" || f.key === " ") && (f.preventDefault(), k(x));
1006
+ [s, N]
1007
+ ), p = (g, v) => {
1008
+ (g.key === "Enter" || g.key === " ") && (g.preventDefault(), P(v));
890
1009
  };
891
- return /* @__PURE__ */ d("div", { className: D("flex flex-col h-full", a), children: [
1010
+ return /* @__PURE__ */ d("div", { className: _("flex flex-col h-full", i), children: [
892
1011
  /* @__PURE__ */ d("div", { className: "px-4 py-4 border-b border-sand bg-chalk", children: [
893
1012
  /* @__PURE__ */ d("div", { className: "flex items-center justify-between mb-3", children: [
894
1013
  /* @__PURE__ */ e("h2", { className: "text-lg font-semibold text-charcoal", children: "Start a new Conversation" }),
895
- /* @__PURE__ */ e(ge, { onClick: n })
1014
+ /* @__PURE__ */ e(Re, { onClick: n })
896
1015
  ] }),
897
1016
  /* @__PURE__ */ d("p", { className: "text-xs text-stone mb-3", children: [
898
1017
  "Select a ",
899
- i.slice(0, -1),
1018
+ a.slice(0, -1),
900
1019
  " to start messaging (",
901
- I.length,
1020
+ E.length,
902
1021
  " available)",
903
- t.totalCount !== void 0 && ` • ${t.totalCount} ${i} total`
1022
+ t.totalCount !== void 0 && ` • ${t.totalCount} ${a} total`
904
1023
  ] }),
905
1024
  /* @__PURE__ */ e(
906
- Xe,
1025
+ fs,
907
1026
  {
908
- searchQuery: r,
909
- setSearchQuery: b,
1027
+ searchQuery: o,
1028
+ setSearchQuery: C,
910
1029
  placeholder: c
911
1030
  }
912
1031
  )
913
1032
  ] }),
914
- N && /* @__PURE__ */ d("div", { className: "p-4 text-sm text-danger bg-danger-alt", children: [
1033
+ f && /* @__PURE__ */ d("div", { className: "p-4 text-sm text-danger bg-danger-alt", children: [
915
1034
  "Error loading ",
916
- i,
1035
+ a,
917
1036
  ": ",
918
- N
1037
+ f
919
1038
  ] }),
920
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-auto", children: m && I.length === 0 ? /* @__PURE__ */ e("div", { className: "h-32 flex items-center justify-center", children: /* @__PURE__ */ d("div", { className: "flex items-center space-x-2", children: [
1039
+ /* @__PURE__ */ e("div", { className: "flex-1 overflow-auto", children: b && E.length === 0 ? /* @__PURE__ */ e("div", { className: "h-32 flex items-center justify-center", children: /* @__PURE__ */ d("div", { className: "flex items-center space-x-2", children: [
921
1040
  /* @__PURE__ */ e("div", { className: "w-4 h-4 animate-spin rounded-full border-2 border-primary border-t-transparent" }),
922
1041
  /* @__PURE__ */ d("span", { className: "text-sm text-stone", children: [
923
1042
  "Loading ",
924
- i,
1043
+ a,
925
1044
  "..."
926
1045
  ] })
927
- ] }) }) : I.length === 0 ? /* @__PURE__ */ d("div", { className: "p-6 text-center", children: [
928
- /* @__PURE__ */ e("div", { className: "mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-sand", children: /* @__PURE__ */ e(ce, { className: "h-8 w-8 text-charcoal" }) }),
929
- /* @__PURE__ */ e("h3", { className: "text-sm font-semibold text-charcoal mb-2", children: r ? `No ${i} found` : u.length > 0 ? `Already chatting with all ${i}` : `No ${i} yet` }),
930
- /* @__PURE__ */ e("p", { className: "text-xs text-stone", children: r ? "Try a different search term" : u.length > 0 ? `You have existing conversations with all your ${i}` : `${i.charAt(0).toUpperCase() + i.slice(1)} will appear here` })
1046
+ ] }) }) : E.length === 0 ? /* @__PURE__ */ d("div", { className: "p-6 text-center", children: [
1047
+ /* @__PURE__ */ e("div", { className: "mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-sand", children: /* @__PURE__ */ e(me, { className: "h-8 w-8 text-charcoal" }) }),
1048
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold text-charcoal mb-2", children: o ? `No ${a} found` : u.length > 0 ? `Already chatting with all ${a}` : `No ${a} yet` }),
1049
+ /* @__PURE__ */ e("p", { className: "text-xs text-stone", children: o ? "Try a different search term" : u.length > 0 ? `You have existing conversations with all your ${a}` : `${a.charAt(0).toUpperCase() + a.slice(1)} will appear here` })
931
1050
  ] }) : /* @__PURE__ */ d("ul", { className: "space-y-0", children: [
932
- I.map((f) => {
933
- const x = f.name || f.email || f.id, w = f.email && f.name ? f.email : f.phone;
1051
+ E.map((g) => {
1052
+ const v = g.name || g.email || g.id, y = g.email && g.name ? g.email : g.phone;
934
1053
  return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
935
1054
  "button",
936
1055
  {
937
1056
  type: "button",
938
- onClick: () => k(f),
939
- onKeyDown: (P) => F(P, f),
1057
+ onClick: () => P(g),
1058
+ onKeyDown: (F) => p(F, g),
940
1059
  className: "w-full px-4 py-3 hover:bg-sand transition-colors border-b border-sand text-left focus:outline-none focus:ring-2 focus:ring-black",
941
1060
  children: /* @__PURE__ */ d("div", { className: "flex items-center justify-between", children: [
942
1061
  /* @__PURE__ */ d("div", { className: "flex items-center space-x-3 flex-1 min-w-0", children: [
943
1062
  /* @__PURE__ */ e(
944
- J,
1063
+ se,
945
1064
  {
946
- id: f.id,
947
- name: x,
948
- image: f.image,
1065
+ id: g.id,
1066
+ name: v,
1067
+ image: g.image,
949
1068
  size: 40
950
1069
  }
951
1070
  ),
952
1071
  /* @__PURE__ */ d("div", { className: "flex-1 min-w-0", children: [
953
- /* @__PURE__ */ e("h4", { className: "text-sm font-medium text-charcoal truncate", children: x }),
954
- w && /* @__PURE__ */ e("p", { className: "text-xs text-stone truncate", children: w })
1072
+ /* @__PURE__ */ e("h4", { className: "text-sm font-medium text-charcoal truncate", children: v }),
1073
+ y && /* @__PURE__ */ e("p", { className: "text-xs text-stone truncate", children: y })
955
1074
  ] })
956
1075
  ] }),
957
- /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: v === f.id ? /* @__PURE__ */ e(ee, { className: "h-5 w-5 text-primary animate-spin" }) : /* @__PURE__ */ e(ce, { className: "h-5 w-5 text-stone" }) })
1076
+ /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: N === g.id ? /* @__PURE__ */ e(re, { className: "h-5 w-5 text-primary animate-spin" }) : /* @__PURE__ */ e(me, { className: "h-5 w-5 text-stone" }) })
958
1077
  ] })
959
1078
  }
960
- ) }, f.id);
1079
+ ) }, g.id);
961
1080
  }),
962
- m && /* @__PURE__ */ e("li", { className: "p-4 flex justify-center", children: /* @__PURE__ */ d("div", { className: "flex items-center space-x-2", children: [
1081
+ b && /* @__PURE__ */ e("li", { className: "p-4 flex justify-center", children: /* @__PURE__ */ d("div", { className: "flex items-center space-x-2", children: [
963
1082
  /* @__PURE__ */ e("div", { className: "w-4 h-4 animate-spin rounded-full border-2 border-primary border-t-transparent" }),
964
1083
  /* @__PURE__ */ e("span", { className: "text-sm text-stone", children: "Loading more..." })
965
1084
  ] }) })
966
1085
  ] }) })
967
1086
  ] });
968
- }, Ze = ({ hasChannels: t, onStartConversation: s, participantLabel: n }) => /* @__PURE__ */ e("div", { className: "messaging-empty-state flex items-center justify-center h-full p-8 text-balance", children: /* @__PURE__ */ d("div", { className: "text-center max-w-sm", children: [
1087
+ }, hs = ({ hasChannels: t, onStartConversation: s, participantLabel: n }) => /* @__PURE__ */ e("div", { className: "messaging-empty-state flex items-center justify-center h-full p-8 text-balance", children: /* @__PURE__ */ d("div", { className: "text-center max-w-sm", children: [
969
1088
  /* @__PURE__ */ e("div", { className: "w-24 h-24 bg-primary-alt/10 rounded-full flex items-center justify-center mx-auto mb-6", children: /* @__PURE__ */ e("span", { className: "text-4xl", children: "💬" }) }),
970
1089
  /* @__PURE__ */ e("h2", { className: "font-semibold text-charcoal", children: "Welcome to Messages" }),
971
- /* @__PURE__ */ e("p", { className: "text-stone text-sm mb-6", children: t ? /* @__PURE__ */ d(oe, { children: [
1090
+ /* @__PURE__ */ e("p", { className: "text-stone text-sm mb-6", children: t ? /* @__PURE__ */ d(de, { children: [
972
1091
  "Choose a conversation from the list or",
973
1092
  " ",
974
- s && /* @__PURE__ */ d(ue, { onClick: s, children: [
1093
+ s && /* @__PURE__ */ d(Ce, { onClick: s, children: [
975
1094
  "start a new conversation with a ",
976
1095
  n.slice(0, -1),
977
1096
  "."
978
1097
  ] })
979
- ] }) : s && /* @__PURE__ */ d(oe, { children: [
980
- /* @__PURE__ */ d(ue, { onClick: s, children: [
1098
+ ] }) : s && /* @__PURE__ */ d(de, { children: [
1099
+ /* @__PURE__ */ d(Ce, { onClick: s, children: [
981
1100
  "Start a new conversation with one of your ",
982
1101
  n
983
1102
  ] }),
984
1103
  " ",
985
1104
  "to begin messaging."
986
1105
  ] }) })
987
- ] }) }), ue = ({
1106
+ ] }) }), Ce = ({
988
1107
  onClick: t,
989
1108
  children: s
990
1109
  }) => /* @__PURE__ */ e(
@@ -995,7 +1114,7 @@ const Qe = ({
995
1114
  className: "inline-flex items-center gap-1 text-sm font-medium text-primary hover:text-primary-alt focus:outline-none focus:ring-2 focus:ring-primary",
996
1115
  children: s
997
1116
  }
998
- ), le = ({ message: t, onBack: s }) => /* @__PURE__ */ e("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: [
1117
+ ), ce = ({ message: t, onBack: s }) => /* @__PURE__ */ e("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: [
999
1118
  /* @__PURE__ */ e("div", { className: "w-24 h-24 bg-danger-alt/20 rounded-full flex items-center justify-center mx-auto mb-6", children: /* @__PURE__ */ e("span", { className: "text-4xl", children: "⚠️" }) }),
1000
1119
  /* @__PURE__ */ e("h2", { className: "font-semibold text-charcoal mb-2", children: "Oops!" }),
1001
1120
  /* @__PURE__ */ e("p", { className: "text-stone text-sm mb-6", children: t }),
@@ -1008,10 +1127,10 @@ const Qe = ({
1008
1127
  children: "Go Back"
1009
1128
  }
1010
1129
  )
1011
- ] }) }), Je = ({ className: t, message: s }) => /* @__PURE__ */ d(
1130
+ ] }) }), gs = ({ className: t, message: s }) => /* @__PURE__ */ d(
1012
1131
  "div",
1013
1132
  {
1014
- className: D("flex items-center justify-center h-full", t),
1133
+ className: _("flex items-center justify-center h-full", t),
1015
1134
  children: [
1016
1135
  /* @__PURE__ */ d("svg", { viewBox: "0 0 100 100", className: "size-8 fill-pebble", stroke: "none", children: [
1017
1136
  /* @__PURE__ */ e("circle", { cx: "6", cy: "50", r: "6", children: /* @__PURE__ */ e(
@@ -1051,101 +1170,101 @@ const Qe = ({
1051
1170
  s && /* @__PURE__ */ e("span", { className: "text-stone", children: s })
1052
1171
  ]
1053
1172
  }
1054
- ), Ye = () => /* @__PURE__ */ e("div", { className: "messaging-loading-state flex items-center justify-center h-full", children: /* @__PURE__ */ d("div", { className: "flex items-center", children: [
1055
- /* @__PURE__ */ e(Je, { className: "w-6 h-6" }),
1173
+ ), xs = () => /* @__PURE__ */ e("div", { className: "messaging-loading-state flex items-center justify-center h-full", children: /* @__PURE__ */ d("div", { className: "flex items-center", children: [
1174
+ /* @__PURE__ */ e(gs, { className: "w-6 h-6" }),
1056
1175
  /* @__PURE__ */ e("span", { className: "text-sm text-stone", children: "Loading messages" })
1057
- ] }) }), as = ({
1176
+ ] }) }), Ss = ({
1058
1177
  capabilities: t = {},
1059
1178
  className: s,
1060
1179
  renderMessageInputActions: n,
1061
- onChannelSelect: o,
1062
- onParticipantSelect: i,
1180
+ onChannelSelect: l,
1181
+ onParticipantSelect: a,
1063
1182
  initialParticipantFilter: c,
1064
- initialParticipantData: a,
1065
- CustomChannelEmptyState: l,
1066
- showChannelList: r = !0
1183
+ initialParticipantData: i,
1184
+ CustomChannelEmptyState: r,
1185
+ showChannelList: o = !0
1067
1186
  }) => {
1068
1187
  const {
1069
- service: b,
1188
+ service: C,
1070
1189
  client: u,
1071
- isConnected: g,
1072
- isLoading: m,
1073
- error: y,
1074
- refreshConnection: N,
1075
- debug: h
1076
- } = Ae(), [v, S] = E(null), [O, I] = E(!1), [k, F] = E(!1), [f, x] = E(/* @__PURE__ */ new Set()), [w, P] = E(0), [U, L] = E(!1), [$, G] = E(null), V = H(null), {
1077
- showStartConversation: Q = !1,
1078
- participantSource: W,
1079
- participantLabel: z = "participants"
1080
- } = t, R = H(null), T = M(async () => {
1081
- if (!u || !g) return;
1082
- const C = u.userID;
1083
- if (C)
1190
+ isConnected: x,
1191
+ isLoading: b,
1192
+ error: h,
1193
+ refreshConnection: f,
1194
+ debug: m
1195
+ } = Ze(), [N, S] = I(null), [k, E] = I(!1), [P, p] = I(!1), [g, v] = I(/* @__PURE__ */ new Set()), [y, F] = I(0), [T, j] = I(!1), [H, q] = I(null), W = A(null), {
1196
+ showStartConversation: J = !1,
1197
+ participantSource: z,
1198
+ participantLabel: V = "participants"
1199
+ } = t, R = A(null), D = M(async () => {
1200
+ if (!u || !x) return;
1201
+ const w = u.userID;
1202
+ if (w)
1084
1203
  try {
1085
- h && console.log("[MessagingShell] Syncing channels for user:", C);
1086
- const j = await u.queryChannels(
1204
+ m && console.log("[MessagingShell] Syncing channels for user:", w);
1205
+ const U = await u.queryChannels(
1087
1206
  {
1088
1207
  type: "messaging",
1089
- members: { $in: [C] }
1208
+ members: { $in: [w] }
1090
1209
  },
1091
1210
  {},
1092
1211
  { limit: 100 }
1093
- ), p = /* @__PURE__ */ new Set();
1094
- j.forEach((B) => {
1095
- const ve = B.state.members;
1096
- Object.values(ve).forEach((we) => {
1097
- var ae;
1098
- const re = (ae = we.user) == null ? void 0 : ae.id;
1099
- re && re !== C && p.add(re);
1212
+ ), O = /* @__PURE__ */ new Set();
1213
+ U.forEach((B) => {
1214
+ const Fe = B.state.members;
1215
+ Object.values(Fe).forEach((Me) => {
1216
+ var ue;
1217
+ const ie = (ue = Me.user) == null ? void 0 : ue.id;
1218
+ ie && ie !== w && O.add(ie);
1100
1219
  });
1101
- }), x(p), I(j.length > 0), R.current = C, h && console.log("[MessagingShell] Channels synced successfully:", {
1102
- channelCount: j.length,
1103
- memberCount: p.size
1220
+ }), v(O), E(U.length > 0), R.current = w, m && console.log("[MessagingShell] Channels synced successfully:", {
1221
+ channelCount: U.length,
1222
+ memberCount: O.size
1104
1223
  });
1105
- } catch (j) {
1106
- console.error("[MessagingShell] Failed to sync channels:", j);
1224
+ } catch (U) {
1225
+ console.error("[MessagingShell] Failed to sync channels:", U);
1107
1226
  }
1108
- }, [u, g, h]);
1109
- _(() => {
1110
- if (!u || !g) return;
1111
- const C = u.userID;
1112
- C && R.current !== C && T();
1113
- }, [u, g, T]), _(() => {
1114
- if (!c || !u || !g) return;
1227
+ }, [u, x, m]);
1228
+ $(() => {
1229
+ if (!u || !x) return;
1230
+ const w = u.userID;
1231
+ w && R.current !== w && D();
1232
+ }, [u, x, D]), $(() => {
1233
+ if (!c || !u || !x) return;
1115
1234
  (async () => {
1116
- const j = u.userID;
1117
- if (j)
1235
+ const U = u.userID;
1236
+ if (U)
1118
1237
  try {
1119
- h && console.log(
1238
+ m && console.log(
1120
1239
  "[MessagingShell] Loading initial conversation with:",
1121
1240
  c
1122
1241
  );
1123
- const p = await u.queryChannels(
1242
+ const O = await u.queryChannels(
1124
1243
  {
1125
1244
  type: "messaging",
1126
- members: { $eq: [j, c] }
1245
+ members: { $eq: [U, c] }
1127
1246
  },
1128
1247
  {},
1129
1248
  { limit: 1 }
1130
1249
  );
1131
- if (p.length > 0)
1132
- S(p[0]), L(!0), G(null), o && o(p[0]), h && console.log(
1250
+ if (O.length > 0)
1251
+ S(O[0]), j(!0), q(null), l && l(O[0]), m && console.log(
1133
1252
  "[MessagingShell] Initial conversation loaded:",
1134
- p[0].id
1253
+ O[0].id
1135
1254
  );
1136
- else if (a && b) {
1137
- h && console.log(
1255
+ else if (i && C) {
1256
+ m && console.log(
1138
1257
  "[MessagingShell] No conversation found, creating one for:",
1139
- a
1258
+ i
1140
1259
  );
1141
1260
  try {
1142
- const B = await b.startChannelWithParticipant({
1143
- id: a.id,
1144
- name: a.name,
1145
- email: a.email,
1146
- phone: a.phone
1261
+ const B = await C.startChannelWithParticipant({
1262
+ id: i.id,
1263
+ name: i.name,
1264
+ email: i.email,
1265
+ phone: i.phone
1147
1266
  });
1148
- S(B), L(!0), G(null), o && o(B), h && console.log(
1267
+ S(B), j(!0), q(null), l && l(B), m && console.log(
1149
1268
  "[MessagingShell] Channel created and loaded:",
1150
1269
  B.id
1151
1270
  );
@@ -1153,91 +1272,91 @@ const Qe = ({
1153
1272
  console.error(
1154
1273
  "[MessagingShell] Failed to create conversation:",
1155
1274
  B
1156
- ), G("Failed to create conversation");
1275
+ ), q("Failed to create conversation");
1157
1276
  }
1158
1277
  } else
1159
- G(
1278
+ q(
1160
1279
  "No conversation found with this account"
1161
- ), h && console.log(
1280
+ ), m && console.log(
1162
1281
  "[MessagingShell] No conversation found for:",
1163
1282
  c
1164
1283
  );
1165
- } catch (p) {
1284
+ } catch (O) {
1166
1285
  console.error(
1167
1286
  "[MessagingShell] Failed to load initial conversation:",
1168
- p
1169
- ), G("Failed to load conversation");
1287
+ O
1288
+ ), q("Failed to load conversation");
1170
1289
  }
1171
1290
  })();
1172
1291
  }, [
1173
1292
  c,
1174
- a,
1293
+ i,
1175
1294
  u,
1176
- g,
1177
- b,
1178
- h,
1179
- o
1295
+ x,
1296
+ C,
1297
+ m,
1298
+ l
1180
1299
  ]);
1181
- const A = M(
1182
- (C) => {
1183
- S(C), o == null || o(C);
1300
+ const L = M(
1301
+ (w) => {
1302
+ S(w), l == null || l(w);
1184
1303
  },
1185
- [o]
1186
- ), q = M(() => {
1187
- U || S(null);
1188
- }, [U]), Z = M(() => {
1189
- var C;
1190
- W && (P((j) => j + 1), F(!0), (C = V.current) == null || C.showModal());
1191
- }, [W]), Ne = M(
1192
- async (C) => {
1193
- var j;
1194
- if (b)
1304
+ [l]
1305
+ ), X = M(() => {
1306
+ T || S(null);
1307
+ }, [T]), Y = M(() => {
1308
+ var w;
1309
+ z && (F((U) => U + 1), p(!0), (w = W.current) == null || w.showModal());
1310
+ }, [z]), pe = M(
1311
+ async (w) => {
1312
+ var U;
1313
+ if (C)
1195
1314
  try {
1196
- h && console.log(
1315
+ m && console.log(
1197
1316
  "[MessagingShell] Starting conversation with:",
1198
- C.id
1317
+ w.id
1199
1318
  );
1200
- const p = await b.startChannelWithParticipant({
1201
- id: C.id,
1202
- name: C.name,
1203
- email: C.email,
1204
- phone: C.phone
1319
+ const O = await C.startChannelWithParticipant({
1320
+ id: w.id,
1321
+ name: w.name,
1322
+ email: w.email,
1323
+ phone: w.phone
1205
1324
  });
1206
1325
  try {
1207
- await p.show();
1326
+ await O.show();
1208
1327
  } catch (B) {
1209
1328
  console.warn("[MessagingShell] Failed to unhide channel:", B);
1210
1329
  }
1211
- S(p), F(!1), (j = V.current) == null || j.close(), i == null || i(C);
1212
- } catch (p) {
1213
- console.error("[MessagingShell] Failed to start conversation:", p);
1330
+ S(O), p(!1), (U = W.current) == null || U.close(), a == null || a(w);
1331
+ } catch (O) {
1332
+ console.error("[MessagingShell] Failed to start conversation:", O);
1214
1333
  }
1215
1334
  },
1216
- [b, i, h]
1217
- ), te = M(() => {
1218
- var C;
1219
- F(!1), (C = V.current) == null || C.close();
1220
- }, []), be = M(
1221
- async (C) => {
1222
- h && console.log("[MessagingShell] Leaving conversation:", C.id), S(null), L(!1), R.current = null, await T();
1335
+ [C, a, m]
1336
+ ), ae = M(() => {
1337
+ var w;
1338
+ p(!1), (w = W.current) == null || w.close();
1339
+ }, []), _e = M(
1340
+ async (w) => {
1341
+ m && console.log("[MessagingShell] Leaving conversation:", w.id), S(null), j(!1), R.current = null, await D();
1223
1342
  },
1224
- [T, h]
1225
- ), Ce = M(
1226
- async (C) => {
1227
- h && console.log("[MessagingShell] Blocking participant:", C), S(null), L(!1), R.current = null, await T();
1343
+ [D, m]
1344
+ ), De = M(
1345
+ async (w) => {
1346
+ m && console.log("[MessagingShell] Blocking participant:", w), S(null), j(!1), R.current = null, await D();
1228
1347
  },
1229
- [T, h]
1230
- ), Y = !!v;
1231
- return m ? /* @__PURE__ */ e("div", { className: D("h-full", s), children: /* @__PURE__ */ e(Ye, {}) }) : y ? /* @__PURE__ */ e("div", { className: D("h-full", s), children: /* @__PURE__ */ e(le, { message: y, onBack: N }) }) : !g || !u ? /* @__PURE__ */ e("div", { className: D("h-full", s), children: /* @__PURE__ */ e(
1232
- le,
1348
+ [D, m]
1349
+ ), te = !!N;
1350
+ return b ? /* @__PURE__ */ e("div", { className: _("h-full", s), children: /* @__PURE__ */ e(xs, {}) }) : h ? /* @__PURE__ */ e("div", { className: _("h-full", s), children: /* @__PURE__ */ e(ce, { message: h, onBack: f }) }) : !x || !u ? /* @__PURE__ */ e("div", { className: _("h-full", s), children: /* @__PURE__ */ e(
1351
+ ce,
1233
1352
  {
1234
1353
  message: "Not connected to messaging service",
1235
- onBack: N
1354
+ onBack: f
1236
1355
  }
1237
- ) }) : $ ? /* @__PURE__ */ e("div", { className: D("h-full", s), children: /* @__PURE__ */ e(le, { message: $ }) }) : /* @__PURE__ */ d(
1356
+ ) }) : H ? /* @__PURE__ */ e("div", { className: _("h-full", s), children: /* @__PURE__ */ e(ce, { message: H }) }) : /* @__PURE__ */ d(
1238
1357
  "div",
1239
1358
  {
1240
- className: D(
1359
+ className: _(
1241
1360
  "messaging-shell h-full bg-white overflow-hidden",
1242
1361
  s
1243
1362
  ),
@@ -1246,25 +1365,25 @@ const Qe = ({
1246
1365
  /* @__PURE__ */ e(
1247
1366
  "div",
1248
1367
  {
1249
- className: D(
1368
+ className: _(
1250
1369
  "messaging-channel-list-sidebar min-h-0 min-w-0 bg-white lg:bg-chalk lg:flex lg:flex-col lg:border-r lg:border-sand",
1251
1370
  {
1252
1371
  // Explicitly hidden via prop or in direct conversation mode
1253
- "!hidden": r === !1 || U,
1372
+ "!hidden": o === !1 || T,
1254
1373
  // Normal mode: hide on mobile when channel selected, show on desktop
1255
- "hidden lg:flex lg:w-80 lg:min-w-[280px] lg:max-w-[360px]": r !== !1 && !U && Y,
1374
+ "hidden lg:flex lg:w-80 lg:min-w-[280px] lg:max-w-[360px]": o !== !1 && !T && te,
1256
1375
  // Normal mode: show when no channel selected
1257
- "flex flex-col w-full lg:flex-1 lg:max-w-2xl": r !== !1 && !U && !Y
1376
+ "flex flex-col w-full lg:flex-1 lg:max-w-2xl": o !== !1 && !T && !te
1258
1377
  }
1259
1378
  ),
1260
1379
  children: /* @__PURE__ */ e(
1261
- $e,
1380
+ os,
1262
1381
  {
1263
- onChannelSelect: A,
1264
- selectedChannel: v || void 0,
1265
- showStartConversation: Q && !!W,
1266
- onStartConversation: Z,
1267
- participantLabel: z
1382
+ onChannelSelect: L,
1383
+ selectedChannel: N || void 0,
1384
+ showStartConversation: J && !!z,
1385
+ onStartConversation: Y,
1386
+ participantLabel: V
1268
1387
  }
1269
1388
  )
1270
1389
  }
@@ -1272,70 +1391,70 @@ const Qe = ({
1272
1391
  /* @__PURE__ */ e(
1273
1392
  "div",
1274
1393
  {
1275
- className: D(
1394
+ className: _(
1276
1395
  "messaging-conversation-view flex-1 flex-col min-w-0 min-h-0",
1277
1396
  {
1278
1397
  // In direct conversation mode, always show (full width)
1279
- flex: U || Y,
1398
+ flex: T || te,
1280
1399
  // Normal mode: hide on mobile when no channel selected
1281
- "hidden lg:flex": !U && !Y
1400
+ "hidden lg:flex": !T && !te
1282
1401
  }
1283
1402
  ),
1284
- children: v ? /* @__PURE__ */ e("div", { className: "flex-1 min-h-0 flex flex-col", children: /* @__PURE__ */ e(
1285
- qe,
1403
+ children: N ? /* @__PURE__ */ e("div", { className: "flex-1 min-h-0 flex flex-col", children: /* @__PURE__ */ e(
1404
+ us,
1286
1405
  {
1287
- channel: v,
1288
- onBack: q,
1289
- showBackButton: !U,
1406
+ channel: N,
1407
+ onBack: X,
1408
+ showBackButton: !T,
1290
1409
  renderMessageInputActions: n,
1291
- onLeaveConversation: be,
1292
- onBlockParticipant: Ce,
1293
- CustomChannelEmptyState: l
1410
+ onLeaveConversation: _e,
1411
+ onBlockParticipant: De,
1412
+ CustomChannelEmptyState: r
1294
1413
  },
1295
- v.id
1414
+ N.id
1296
1415
  ) }) : /* @__PURE__ */ e(
1297
- Ze,
1416
+ hs,
1298
1417
  {
1299
- hasChannels: O,
1300
- onStartConversation: Q ? Z : void 0,
1301
- participantLabel: z
1418
+ hasChannels: k,
1419
+ onStartConversation: J ? Y : void 0,
1420
+ participantLabel: V
1302
1421
  }
1303
1422
  )
1304
1423
  }
1305
1424
  )
1306
1425
  ] }),
1307
- W && // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
1426
+ z && // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
1308
1427
  /* @__PURE__ */ e(
1309
1428
  "dialog",
1310
1429
  {
1311
- ref: V,
1430
+ ref: W,
1312
1431
  className: "mes-dialog",
1313
- onClick: (C) => {
1314
- C.target === V.current && te();
1432
+ onClick: (w) => {
1433
+ w.target === W.current && ae();
1315
1434
  },
1316
- onClose: te,
1435
+ onClose: ae,
1317
1436
  children: /* @__PURE__ */ e("div", { className: "h-full w-full bg-white shadow-max-elevation-light", children: /* @__PURE__ */ e(
1318
- Qe,
1437
+ ms,
1319
1438
  {
1320
- participantSource: W,
1321
- onSelectParticipant: Ne,
1322
- onClose: te,
1323
- existingParticipantIds: f,
1324
- participantLabel: z,
1325
- searchPlaceholder: `Search ${z}...`
1439
+ participantSource: z,
1440
+ onSelectParticipant: pe,
1441
+ onClose: ae,
1442
+ existingParticipantIds: g,
1443
+ participantLabel: V,
1444
+ searchPlaceholder: `Search ${V}...`
1326
1445
  },
1327
- w
1446
+ y
1328
1447
  ) })
1329
1448
  }
1330
1449
  )
1331
1450
  ]
1332
1451
  }
1333
1452
  );
1334
- }, Ke = ({
1453
+ }, bs = ({
1335
1454
  question: t,
1336
1455
  onClick: s,
1337
1456
  loading: n = !1,
1338
- className: o
1457
+ className: l
1339
1458
  }) => /* @__PURE__ */ e(
1340
1459
  "button",
1341
1460
  {
@@ -1343,32 +1462,32 @@ const Qe = ({
1343
1462
  onClick: s,
1344
1463
  disabled: n,
1345
1464
  style: { backgroundColor: "#E6E5E3" },
1346
- className: D(
1465
+ className: _(
1347
1466
  "w-full text-center p-4 rounded-xl text-charcoal font-medium transition-colors",
1348
1467
  {
1349
1468
  "hover:brightness-95 active:brightness-90": !n,
1350
1469
  "opacity-50 cursor-not-allowed": n
1351
1470
  },
1352
- o
1471
+ l
1353
1472
  ),
1354
1473
  children: t
1355
1474
  }
1356
- ), is = ({
1475
+ ), ks = ({
1357
1476
  faqs: t,
1358
1477
  onFaqClick: s,
1359
1478
  loadingFaqId: n,
1360
- headerText: o,
1361
- className: i,
1479
+ headerText: l,
1480
+ className: a,
1362
1481
  avatarImage: c,
1363
- avatarName: a
1482
+ avatarName: i
1364
1483
  }) => {
1365
- const l = t.filter((r) => r.enabled).sort((r, b) => (r.order ?? 0) - (b.order ?? 0));
1366
- return l.length === 0 ? null : /* @__PURE__ */ e("div", { className: D("px-4 py-6", i), children: /* @__PURE__ */ d("div", { className: "flex gap-3 items-end", children: [
1367
- (c || a) && /* @__PURE__ */ e("div", { className: "flex-none", children: /* @__PURE__ */ e(
1368
- J,
1484
+ const r = t.filter((o) => o.enabled).sort((o, C) => (o.order ?? 0) - (C.order ?? 0));
1485
+ return r.length === 0 ? null : /* @__PURE__ */ e("div", { className: _("px-4 py-6", a), children: /* @__PURE__ */ d("div", { className: "flex gap-3 items-end", children: [
1486
+ (c || i) && /* @__PURE__ */ e("div", { className: "flex-none", children: /* @__PURE__ */ e(
1487
+ se,
1369
1488
  {
1370
- id: a || "account",
1371
- name: a || "Account",
1489
+ id: i || "account",
1490
+ name: i || "Account",
1372
1491
  image: c,
1373
1492
  size: 24
1374
1493
  }
@@ -1379,72 +1498,72 @@ const Qe = ({
1379
1498
  className: "flex-1 rounded-lg p-4 space-y-3",
1380
1499
  style: { backgroundColor: "#F1F0EE" },
1381
1500
  children: [
1382
- o && /* @__PURE__ */ e("p", { className: "text-md text-charcoal mb-4", children: o }),
1383
- l.map((r) => /* @__PURE__ */ e(
1384
- Ke,
1501
+ l && /* @__PURE__ */ e("p", { className: "text-md text-charcoal mb-4", children: l }),
1502
+ r.map((o) => /* @__PURE__ */ e(
1503
+ bs,
1385
1504
  {
1386
- question: r.question,
1387
- onClick: () => s(r.id),
1388
- loading: n === r.id
1505
+ question: o.question,
1506
+ onClick: () => s(o.id),
1507
+ loading: n === o.id
1389
1508
  },
1390
- r.id
1509
+ o.id
1391
1510
  ))
1392
1511
  ]
1393
1512
  }
1394
1513
  )
1395
1514
  ] }) });
1396
- }, cs = (t, s = {}) => {
1397
- const { initialSearch: n = "", pageSize: o = 20 } = s, [i, c] = E([]), [a, l] = E(!1), [r, b] = E(null), [u, g] = E(n), [m, y] = E(!0), [N, h] = E(), v = M(async (k = !1, F) => {
1398
- if (a) return;
1399
- const f = F !== void 0 ? F : u;
1400
- l(!0), b(null);
1515
+ }, Rs = (t, s = {}) => {
1516
+ const { initialSearch: n = "", pageSize: l = 20 } = s, [a, c] = I([]), [i, r] = I(!1), [o, C] = I(null), [u, x] = I(n), [b, h] = I(!0), [f, m] = I(), N = M(async (P = !1, p) => {
1517
+ if (i) return;
1518
+ const g = p !== void 0 ? p : u;
1519
+ r(!0), C(null);
1401
1520
  try {
1402
- const x = await t.loadParticipants({
1403
- search: f || void 0,
1404
- limit: o,
1405
- cursor: k ? void 0 : N
1521
+ const v = await t.loadParticipants({
1522
+ search: g || void 0,
1523
+ limit: l,
1524
+ cursor: P ? void 0 : f
1406
1525
  });
1407
1526
  c(
1408
- (w) => k ? x.participants : [...w, ...x.participants]
1409
- ), y(x.hasMore), h(x.nextCursor);
1410
- } catch (x) {
1411
- const w = x instanceof Error ? x.message : "Failed to load participants";
1412
- b(w), console.error("[useParticipants] Load error:", x);
1527
+ (y) => P ? v.participants : [...y, ...v.participants]
1528
+ ), h(v.hasMore), m(v.nextCursor);
1529
+ } catch (v) {
1530
+ const y = v instanceof Error ? v.message : "Failed to load participants";
1531
+ C(y), console.error("[useParticipants] Load error:", v);
1413
1532
  } finally {
1414
- l(!1);
1533
+ r(!1);
1415
1534
  }
1416
- }, [t, u, N, o, a]), S = M(() => {
1417
- m && !a && v(!1);
1418
- }, [m, a, v]), O = M((k) => {
1419
- g(k), h(void 0), v(!0, k);
1420
- }, [v]), I = M(() => {
1421
- h(void 0), v(!0);
1422
- }, [v]);
1423
- return _(() => {
1424
- v(!0);
1535
+ }, [t, u, f, l, i]), S = M(() => {
1536
+ b && !i && N(!1);
1537
+ }, [b, i, N]), k = M((P) => {
1538
+ x(P), m(void 0), N(!0, P);
1539
+ }, [N]), E = M(() => {
1540
+ m(void 0), N(!0);
1541
+ }, [N]);
1542
+ return $(() => {
1543
+ N(!0);
1425
1544
  }, [t.loadParticipants]), {
1426
- participants: i,
1427
- loading: a,
1428
- error: r,
1545
+ participants: a,
1546
+ loading: i,
1547
+ error: o,
1429
1548
  searchQuery: u,
1430
- hasMore: m,
1549
+ hasMore: b,
1431
1550
  totalCount: t.totalCount,
1432
1551
  loadMore: S,
1433
- search: O,
1434
- refresh: I
1552
+ search: k,
1553
+ refresh: E
1435
1554
  };
1436
1555
  };
1437
1556
  export {
1438
- J as Avatar,
1439
- xe as ChannelEmptyState,
1440
- $e as ChannelList,
1441
- qe as ChannelView,
1442
- is as FaqList,
1443
- Ke as FaqListItem,
1444
- os as MessagingProvider,
1445
- as as MessagingShell,
1446
- Qe as ParticipantPicker,
1447
- Ae as useMessaging,
1448
- cs as useParticipants
1557
+ se as Avatar,
1558
+ Pe as ChannelEmptyState,
1559
+ os as ChannelList,
1560
+ us as ChannelView,
1561
+ ks as FaqList,
1562
+ bs as FaqListItem,
1563
+ Is as MessagingProvider,
1564
+ Ss as MessagingShell,
1565
+ ms as ParticipantPicker,
1566
+ Ze as useMessaging,
1567
+ Rs as useParticipants
1449
1568
  };
1450
1569
  //# sourceMappingURL=index.js.map