@burdenoff/microfe-comradecircle 2026.1025.1 → 2026.1025.3

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.
Files changed (51) hide show
  1. package/dist/comradecircle/components/LiveStagePanel.d.ts +10 -0
  2. package/dist/comradecircle/components/LiveStagePanel.d.ts.map +1 -0
  3. package/dist/comradecircle/components/LiveStagePanel.js +263 -0
  4. package/dist/comradecircle/components/LiveStagePanel.js.map +1 -0
  5. package/dist/comradecircle/components/MediaTile.d.ts +16 -0
  6. package/dist/comradecircle/components/MediaTile.d.ts.map +1 -0
  7. package/dist/comradecircle/components/MediaTile.js +74 -0
  8. package/dist/comradecircle/components/MediaTile.js.map +1 -0
  9. package/dist/comradecircle/components/VoiceChannelPanel.d.ts +10 -0
  10. package/dist/comradecircle/components/VoiceChannelPanel.d.ts.map +1 -0
  11. package/dist/comradecircle/components/VoiceChannelPanel.js +123 -0
  12. package/dist/comradecircle/components/VoiceChannelPanel.js.map +1 -0
  13. package/dist/comradecircle/hooks/index.d.ts +3 -0
  14. package/dist/comradecircle/hooks/index.d.ts.map +1 -1
  15. package/dist/comradecircle/hooks/index.js +3 -0
  16. package/dist/comradecircle/hooks/useLiveStage.d.ts +20 -0
  17. package/dist/comradecircle/hooks/useLiveStage.d.ts.map +1 -0
  18. package/dist/comradecircle/hooks/useLiveStage.js +160 -0
  19. package/dist/comradecircle/hooks/useLiveStage.js.map +1 -0
  20. package/dist/comradecircle/hooks/useVoiceApi.d.ts +36 -0
  21. package/dist/comradecircle/hooks/useVoiceApi.d.ts.map +1 -0
  22. package/dist/comradecircle/hooks/useVoiceApi.js +113 -0
  23. package/dist/comradecircle/hooks/useVoiceApi.js.map +1 -0
  24. package/dist/comradecircle/hooks/useVoiceCall.d.ts +21 -0
  25. package/dist/comradecircle/hooks/useVoiceCall.d.ts.map +1 -0
  26. package/dist/comradecircle/hooks/useVoiceCall.js +154 -0
  27. package/dist/comradecircle/hooks/useVoiceCall.js.map +1 -0
  28. package/dist/comradecircle/lib/graphqlStream.d.ts +31 -0
  29. package/dist/comradecircle/lib/graphqlStream.d.ts.map +1 -0
  30. package/dist/comradecircle/lib/graphqlStream.js +112 -0
  31. package/dist/comradecircle/lib/graphqlStream.js.map +1 -0
  32. package/dist/comradecircle/lib/rtc/liveStage.d.ts +37 -0
  33. package/dist/comradecircle/lib/rtc/liveStage.d.ts.map +1 -0
  34. package/dist/comradecircle/lib/rtc/liveStage.js +97 -0
  35. package/dist/comradecircle/lib/rtc/liveStage.js.map +1 -0
  36. package/dist/comradecircle/lib/rtc/peerLink.d.ts +50 -0
  37. package/dist/comradecircle/lib/rtc/peerLink.d.ts.map +1 -0
  38. package/dist/comradecircle/lib/rtc/peerLink.js +110 -0
  39. package/dist/comradecircle/lib/rtc/peerLink.js.map +1 -0
  40. package/dist/comradecircle/lib/rtc/voiceMesh.d.ts +41 -0
  41. package/dist/comradecircle/lib/rtc/voiceMesh.d.ts.map +1 -0
  42. package/dist/comradecircle/lib/rtc/voiceMesh.js +101 -0
  43. package/dist/comradecircle/lib/rtc/voiceMesh.js.map +1 -0
  44. package/dist/comradecircle/pages/circles/CircleDetailPage.d.ts.map +1 -1
  45. package/dist/comradecircle/pages/circles/CircleDetailPage.js +299 -286
  46. package/dist/comradecircle/pages/circles/CircleDetailPage.js.map +1 -1
  47. package/dist/comradecircle/pages/circles/ModerationTab.js +2 -2
  48. package/dist/comradecircle/pages/circles/ModerationTab.js.map +1 -1
  49. package/dist/comradecircle/types/index.d.ts +51 -0
  50. package/dist/comradecircle/types/index.d.ts.map +1 -1
  51. package/package.json +1 -1
@@ -3,105 +3,114 @@ import "../../context/index.js";
3
3
  import { useComCircle as t, useComCreateChannel as n, useComCreatePoll as r, useComEvents as i, useComJoinCircle as a, useComLeaveCircle as o, useComPolls as s, useComPostAddedLive as c, useComPosts as l, useComSetMemberRole as u } from "../../hooks/useComradeCircleApi.js";
4
4
  import { useCursorPager as d } from "../../hooks/useCursorPager.js";
5
5
  import { useTr as f } from "../../hooks/useTr.js";
6
+ import { useComLiveStreams as p } from "../../hooks/useVoiceApi.js";
6
7
  import "../../hooks/index.js";
7
- import { cn as p } from "../../utils/cn.js";
8
- import { PageLayout as m } from "../../components/PageLayout.js";
9
- import { Avatar as h } from "../../components/Avatar.js";
10
- import { MemberIdentity as g } from "../../components/MemberIdentity.js";
11
- import { describeError as _, notify as v } from "../../lib/toast.js";
12
- import { formatDate as y, formatEnumLabel as b, formatNumber as x } from "../../utils/formatters.js";
13
- import { PostCard as S } from "../../components/PostCard.js";
14
- import { EmptyState as C } from "../../components/EmptyState.js";
15
- import { ErrorView as w, LoadingView as T } from "../../components/StateViews.js";
16
- import { Pagination as E } from "../../components/Pagination.js";
17
- import { slugify as D } from "../../utils/slug.js";
18
- import { StatusBadge as O } from "../../components/StatusBadge.js";
8
+ import { cn as m } from "../../utils/cn.js";
9
+ import { PageLayout as h } from "../../components/PageLayout.js";
10
+ import { Avatar as g } from "../../components/Avatar.js";
11
+ import { MemberIdentity as _ } from "../../components/MemberIdentity.js";
12
+ import { describeError as v, notify as y } from "../../lib/toast.js";
13
+ import { formatDate as b, formatEnumLabel as x, formatNumber as S } from "../../utils/formatters.js";
14
+ import { PostCard as C } from "../../components/PostCard.js";
15
+ import { EmptyState as w } from "../../components/EmptyState.js";
16
+ import { ErrorView as T, LoadingView as E } from "../../components/StateViews.js";
17
+ import { Pagination as D } from "../../components/Pagination.js";
18
+ import { slugify as O } from "../../utils/slug.js";
19
+ import { StatusBadge as k } from "../../components/StatusBadge.js";
19
20
  import { Tabs as ee } from "../../components/Tabs.js";
20
21
  import { ModerationTab as te } from "./ModerationTab.js";
21
- import { PostComposer as k } from "../../components/PostComposer.js";
22
- import { DraftsPanel as ne } from "../../components/DraftsPanel.js";
23
- import { EventCard as re } from "../../components/EventCard.js";
24
- import { PollCard as ie } from "../../components/PollCard.js";
25
- import { CreateEventDialog as ae } from "../../components/CreateEventDialog.js";
26
- import { useMemo as A, useState as j } from "react";
27
- import { ArrowLeft as oe, BarChart3 as M, CalendarDays as N, Hash as P, Info as se, Megaphone as F, MessageCircle as ce, MessagesSquare as le, Mic as ue, Plus as I, Search as de, ShieldCheck as fe, Users as L } from "lucide-react";
22
+ import { PostComposer as A } from "../../components/PostComposer.js";
23
+ import { DraftsPanel as j } from "../../components/DraftsPanel.js";
24
+ import { EventCard as M } from "../../components/EventCard.js";
25
+ import { PollCard as N } from "../../components/PollCard.js";
26
+ import { CreateEventDialog as P } from "../../components/CreateEventDialog.js";
27
+ import { VoiceChannelPanel as ne } from "../../components/VoiceChannelPanel.js";
28
+ import { LiveStagePanel as re } from "../../components/LiveStagePanel.js";
29
+ import { useMemo as F, useState as I } from "react";
30
+ import { ArrowLeft as ie, BarChart3 as L, CalendarDays as ae, Hash as R, Info as oe, Megaphone as z, MessageCircle as se, MessagesSquare as ce, Mic as le, Plus as B, Radio as ue, Search as de, ShieldCheck as fe, Users as V } from "lucide-react";
28
31
  import { useParams as pe } from "react-router";
29
- import { Fragment as R, jsx as z, jsxs as B } from "react/jsx-runtime";
30
- import { Button as V, GradientText as me, Input as H, Label as U, ResponsiveDialog as W, ResponsiveDialogContent as G, ResponsiveDialogDescription as K, ResponsiveDialogFooter as he, ResponsiveDialogHeader as ge, ResponsiveDialogTitle as _e, Select as q, SelectContent as J, SelectItem as Y, SelectTrigger as X, SelectValue as Z, Switch as ve, Textarea as ye } from "@burdenoff/fe-libs/ui";
32
+ import { Fragment as H, jsx as U, jsxs as W } from "react/jsx-runtime";
33
+ import { Button as G, GradientText as me, Input as K, Label as q, ResponsiveDialog as he, ResponsiveDialogContent as ge, ResponsiveDialogDescription as _e, ResponsiveDialogFooter as ve, ResponsiveDialogHeader as ye, ResponsiveDialogTitle as be, Select as J, SelectContent as Y, SelectItem as X, SelectTrigger as Z, SelectValue as Q, Switch as xe, Textarea as Se } from "@burdenoff/fe-libs/ui";
31
34
  //#region src/comradecircle/pages/circles/CircleDetailPage.tsx
32
- var be = {
33
- TEXT: P,
34
- FORUM: le,
35
- ANNOUNCEMENT: F,
36
- VOICE: ue
37
- }, xe = ["OWNER", "ADMIN"], Se = [
35
+ var Ce = {
36
+ TEXT: R,
37
+ FORUM: ce,
38
+ ANNOUNCEMENT: z,
39
+ VOICE: le
40
+ }, we = ["OWNER", "ADMIN"], Te = [
38
41
  "OWNER",
39
42
  "ADMIN",
40
43
  "MODERATOR"
41
- ], Q = [
44
+ ], $ = [
42
45
  "OWNER",
43
46
  "ADMIN",
44
47
  "MODERATOR",
45
48
  "MEMBER"
46
- ], Ce = 15;
47
- function we() {
48
- let n = f(), { id: r } = pe(), { currentUser: i, navigateTo: s } = e(), { data: c, isLoading: l, isError: u, refetch: d } = t(r), p = a(), g = o(), [y, b] = j("channels"), S = A(() => c?.memberships?.find((e) => e.memberId === i?.id && e.status === "ACTIVE"), [c, i]), C = !!S, E = S ? xe.includes(S.role) : !1, D = S ? Se.includes(S.role) : !1;
49
- if (l) return /* @__PURE__ */ z(m, {
49
+ ], Ee = 15;
50
+ function De() {
51
+ let n = f(), { id: r } = pe(), { currentUser: i, navigateTo: s } = e(), { data: c, isLoading: l, isError: u, refetch: d } = t(r), _ = a(), b = o(), [x, C] = I("channels"), w = F(() => c?.memberships?.find((e) => e.memberId === i?.id && e.status === "ACTIVE"), [c, i]), D = !!w, O = w ? we.includes(w.role) : !1, A = w ? Te.includes(w.role) : !1, { data: j } = p(D ? r : void 0), M = j?.length ?? 0;
52
+ if (l) return /* @__PURE__ */ U(h, {
50
53
  title: n("comradecircle.pages.circleDetail.title", "Circle"),
51
- children: /* @__PURE__ */ z(T, { label: n("comradecircle.pages.circleDetail.loadingCircle", "Loading circle…") })
54
+ children: /* @__PURE__ */ U(E, { label: n("comradecircle.pages.circleDetail.loadingCircle", "Loading circle…") })
52
55
  });
53
- if (u || !c) return /* @__PURE__ */ z(m, {
56
+ if (u || !c) return /* @__PURE__ */ U(h, {
54
57
  title: n("comradecircle.pages.circleDetail.title", "Circle"),
55
- children: /* @__PURE__ */ z(w, {
58
+ children: /* @__PURE__ */ U(T, {
56
59
  title: n("comradecircle.pages.circleDetail.notFoundTitle", "Circle not found"),
57
60
  message: n("comradecircle.pages.circleDetail.notFoundMessage", "This circle may have been archived or you may not have access."),
58
61
  onRetry: () => d()
59
62
  })
60
63
  });
61
- let k = c.memberships?.filter((e) => e.status === "ACTIVE") ?? [], ne = [
64
+ let N = c.memberships?.filter((e) => e.status === "ACTIVE") ?? [], P = [
62
65
  {
63
66
  value: "channels",
64
67
  label: n("comradecircle.pages.circleDetail.tabChannels", "Channels"),
65
- icon: /* @__PURE__ */ z(P, { className: "h-4 w-4" }),
68
+ icon: /* @__PURE__ */ U(R, { className: "h-4 w-4" }),
66
69
  count: c.channels?.length ?? 0
67
70
  },
71
+ {
72
+ value: "live",
73
+ label: n("comradecircle.pages.circleDetail.tabLive", "Live"),
74
+ icon: /* @__PURE__ */ U(ue, { className: m("h-4 w-4", M > 0 && "text-status-error-text") }),
75
+ ...M > 0 ? { count: M } : {}
76
+ },
68
77
  {
69
78
  value: "members",
70
79
  label: n("comradecircle.pages.circleDetail.tabMembers", "Members"),
71
- icon: /* @__PURE__ */ z(L, { className: "h-4 w-4" }),
72
- count: k.length
80
+ icon: /* @__PURE__ */ U(V, { className: "h-4 w-4" }),
81
+ count: N.length
73
82
  },
74
83
  {
75
84
  value: "events",
76
85
  label: n("comradecircle.pages.circleDetail.tabEvents", "Events"),
77
- icon: /* @__PURE__ */ z(N, { className: "h-4 w-4" })
86
+ icon: /* @__PURE__ */ U(ae, { className: "h-4 w-4" })
78
87
  },
79
88
  {
80
89
  value: "polls",
81
90
  label: n("comradecircle.pages.circleDetail.tabPolls", "Polls"),
82
- icon: /* @__PURE__ */ z(M, { className: "h-4 w-4" })
91
+ icon: /* @__PURE__ */ U(L, { className: "h-4 w-4" })
83
92
  },
84
93
  {
85
94
  value: "about",
86
95
  label: n("comradecircle.pages.circleDetail.tabAbout", "About"),
87
- icon: /* @__PURE__ */ z(se, { className: "h-4 w-4" })
96
+ icon: /* @__PURE__ */ U(oe, { className: "h-4 w-4" })
88
97
  },
89
- ...D ? [{
98
+ ...A ? [{
90
99
  value: "moderation",
91
100
  label: n("comradecircle.pages.circleDetail.tabModeration", "Moderation"),
92
- icon: /* @__PURE__ */ z(fe, { className: "h-4 w-4" })
101
+ icon: /* @__PURE__ */ U(fe, { className: "h-4 w-4" })
93
102
  }] : []
94
103
  ];
95
- return /* @__PURE__ */ B(m, {
96
- title: /* @__PURE__ */ B("span", {
104
+ return /* @__PURE__ */ W(h, {
105
+ title: /* @__PURE__ */ W("span", {
97
106
  className: "flex items-center gap-3",
98
- children: [/* @__PURE__ */ z(h, {
107
+ children: [/* @__PURE__ */ U(g, {
99
108
  name: c.name,
100
109
  size: "lg",
101
110
  fileId: c.avatar?.id,
102
111
  seed: c.id,
103
112
  ring: !0
104
- }), /* @__PURE__ */ z(me, {
113
+ }), /* @__PURE__ */ U(me, {
105
114
  as: "span",
106
115
  className: "text-2xl font-semibold tracking-tight",
107
116
  children: c.name
@@ -109,123 +118,128 @@ function we() {
109
118
  }),
110
119
  description: c.topic ?? void 0,
111
120
  aurora: !0,
112
- actions: /* @__PURE__ */ B("div", {
121
+ actions: /* @__PURE__ */ W("div", {
113
122
  className: "flex items-center gap-2",
114
- children: [/* @__PURE__ */ B(V, {
123
+ children: [/* @__PURE__ */ W(G, {
115
124
  variant: "ghost",
116
125
  size: "sm",
117
126
  onClick: () => s("circles"),
118
127
  children: [
119
- /* @__PURE__ */ z(oe, { className: "mr-1.5 h-4 w-4" }),
128
+ /* @__PURE__ */ U(ie, { className: "mr-1.5 h-4 w-4" }),
120
129
  " ",
121
130
  n("common.back", "Back")
122
131
  ]
123
- }), C ? /* @__PURE__ */ z(V, {
132
+ }), D ? /* @__PURE__ */ U(G, {
124
133
  variant: "outline",
125
- onClick: () => g.mutateAsync(c.id).then(() => v.success(n("comradecircle.pages.circleDetail.left", "Left circle"))).catch((e) => v.error(n("comradecircle.pages.circleDetail.leaveError", "Could not leave"), _(e))),
126
- disabled: g.isPending,
134
+ onClick: () => b.mutateAsync(c.id).then(() => y.success(n("comradecircle.pages.circleDetail.left", "Left circle"))).catch((e) => y.error(n("comradecircle.pages.circleDetail.leaveError", "Could not leave"), v(e))),
135
+ disabled: b.isPending,
127
136
  children: n("comradecircle.pages.circleDetail.leave", "Leave")
128
- }) : c.status === "ACTIVE" ? /* @__PURE__ */ z(V, {
129
- onClick: () => p.mutateAsync(c.id).then(() => v.success(n("comradecircle.pages.circleDetail.joined", "Joined circle"))).catch((e) => v.error(n("comradecircle.pages.circleDetail.joinError", "Could not join"), _(e))),
130
- disabled: p.isPending,
137
+ }) : c.status === "ACTIVE" ? /* @__PURE__ */ U(G, {
138
+ onClick: () => _.mutateAsync(c.id).then(() => y.success(n("comradecircle.pages.circleDetail.joined", "Joined circle"))).catch((e) => y.error(n("comradecircle.pages.circleDetail.joinError", "Could not join"), v(e))),
139
+ disabled: _.isPending,
131
140
  children: n("comradecircle.pages.circleDetail.joinCircle", "Join circle")
132
141
  }) : null]
133
142
  }),
134
143
  children: [
135
- /* @__PURE__ */ B("div", {
144
+ /* @__PURE__ */ W("div", {
136
145
  className: "mb-4 flex flex-wrap items-center gap-2",
137
146
  children: [
138
- /* @__PURE__ */ z(O, { status: c.visibility }),
139
- c.status !== "ACTIVE" && /* @__PURE__ */ z(O, { status: c.status }),
140
- S && /* @__PURE__ */ z(O, { status: S.role }),
141
- /* @__PURE__ */ B("span", {
147
+ /* @__PURE__ */ U(k, { status: c.visibility }),
148
+ c.status !== "ACTIVE" && /* @__PURE__ */ U(k, { status: c.status }),
149
+ w && /* @__PURE__ */ U(k, { status: w.role }),
150
+ /* @__PURE__ */ W("span", {
142
151
  className: "inline-flex items-center gap-1 text-sm text-text-tertiary",
143
152
  children: [
144
- /* @__PURE__ */ z(L, { className: "h-4 w-4" }),
153
+ /* @__PURE__ */ U(V, { className: "h-4 w-4" }),
145
154
  " ",
146
- n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count: x(c.memberCount) })
155
+ n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count: S(c.memberCount) })
147
156
  ]
148
157
  })
149
158
  ]
150
159
  }),
151
- /* @__PURE__ */ z(ee, {
152
- items: ne,
153
- value: y,
154
- onChange: b,
160
+ /* @__PURE__ */ U(ee, {
161
+ items: P,
162
+ value: x,
163
+ onChange: C,
155
164
  className: "mb-5"
156
165
  }),
157
- y === "channels" && /* @__PURE__ */ z(Te, {
166
+ x === "channels" && /* @__PURE__ */ U(Oe, {
158
167
  circle: c,
159
- isMember: C,
160
- canManage: E
168
+ isMember: D,
169
+ canManage: O
170
+ }),
171
+ x === "live" && /* @__PURE__ */ U(re, {
172
+ circleId: c.id,
173
+ isMember: D,
174
+ canManage: O
161
175
  }),
162
- y === "members" && /* @__PURE__ */ z(De, {
176
+ x === "members" && /* @__PURE__ */ U(Ae, {
163
177
  circle: c,
164
- canManage: E
178
+ canManage: O
165
179
  }),
166
- y === "events" && /* @__PURE__ */ z(Oe, {
180
+ x === "events" && /* @__PURE__ */ U(je, {
167
181
  circle: c,
168
- isMember: C
182
+ isMember: D
169
183
  }),
170
- y === "polls" && /* @__PURE__ */ z(ke, {
184
+ x === "polls" && /* @__PURE__ */ U(Me, {
171
185
  circle: c,
172
- isMember: C,
173
- canManage: E
186
+ isMember: D,
187
+ canManage: O
174
188
  }),
175
- y === "about" && /* @__PURE__ */ z(Ae, { circle: c }),
176
- y === "moderation" && D && /* @__PURE__ */ z(te, {
189
+ x === "about" && /* @__PURE__ */ U(Ne, { circle: c }),
190
+ x === "moderation" && A && /* @__PURE__ */ U(te, {
177
191
  circle: c,
178
- canEditRules: E
192
+ canEditRules: O
179
193
  })
180
194
  ]
181
195
  });
182
196
  }
183
- function Te({ circle: e, isMember: t, canManage: n }) {
184
- let r = f(), i = A(() => [...e.channels ?? []].sort((e, t) => e.position - t.position), [e.channels]), [a, o] = j(i[0]?.id), [s, c] = j(!1), l = i.find((e) => e.id === a) ?? i[0];
185
- return i.length === 0 ? /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z(C, {
186
- icon: /* @__PURE__ */ z(P, { className: "h-10 w-10" }),
197
+ function Oe({ circle: e, isMember: t, canManage: n }) {
198
+ let r = f(), i = F(() => [...e.channels ?? []].sort((e, t) => e.position - t.position), [e.channels]), [a, o] = I(i[0]?.id), [s, c] = I(!1), l = i.find((e) => e.id === a) ?? i[0];
199
+ return i.length === 0 ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(w, {
200
+ icon: /* @__PURE__ */ U(R, { className: "h-10 w-10" }),
187
201
  title: r("comradecircle.pages.circleDetail.noChannelsTitle", "No channels yet"),
188
202
  description: n ? r("comradecircle.pages.circleDetail.noChannelsDescriptionManager", "Create the first channel to start conversations in this circle.") : r("comradecircle.pages.circleDetail.noChannelsDescriptionMember", "This circle has no channels yet. Check back soon."),
189
- action: n ? /* @__PURE__ */ B(V, {
203
+ action: n ? /* @__PURE__ */ W(G, {
190
204
  onClick: () => c(!0),
191
205
  children: [
192
- /* @__PURE__ */ z(I, { className: "mr-1.5 h-4 w-4" }),
206
+ /* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
193
207
  " ",
194
208
  r("comradecircle.pages.circleDetail.newChannel", "New channel")
195
209
  ]
196
210
  }) : void 0
197
- }), /* @__PURE__ */ z($, {
211
+ }), /* @__PURE__ */ U(Fe, {
198
212
  circleId: e.id,
199
213
  open: s,
200
214
  onOpenChange: c,
201
215
  onCreated: (e) => o(e.id)
202
- })] }) : /* @__PURE__ */ B("div", {
216
+ })] }) : /* @__PURE__ */ W("div", {
203
217
  className: "grid gap-5 lg:grid-cols-[220px_1fr]",
204
218
  children: [
205
- /* @__PURE__ */ B("aside", {
219
+ /* @__PURE__ */ W("aside", {
206
220
  className: "hidden lg:block",
207
- children: [/* @__PURE__ */ B("div", {
221
+ children: [/* @__PURE__ */ W("div", {
208
222
  className: "mb-2 flex items-center justify-between",
209
- children: [/* @__PURE__ */ z("h3", {
223
+ children: [/* @__PURE__ */ U("h3", {
210
224
  className: "text-xs font-semibold uppercase tracking-wide text-text-tertiary",
211
225
  children: r("comradecircle.pages.circleDetail.tabChannels", "Channels")
212
- }), n && /* @__PURE__ */ z("button", {
226
+ }), n && /* @__PURE__ */ U("button", {
213
227
  type: "button",
214
228
  onClick: () => c(!0),
215
229
  "aria-label": r("comradecircle.pages.circleDetail.newChannel", "New channel"),
216
230
  className: "rounded-md p-1 text-text-tertiary hover:bg-bg-sunken hover:text-text-primary",
217
- children: /* @__PURE__ */ z(I, { className: "h-4 w-4" })
231
+ children: /* @__PURE__ */ U(B, { className: "h-4 w-4" })
218
232
  })]
219
- }), /* @__PURE__ */ z("nav", {
233
+ }), /* @__PURE__ */ U("nav", {
220
234
  className: "flex flex-col gap-0.5",
221
235
  children: i.map((e) => {
222
- let t = be[e.type], n = e.id === l?.id, r = e.type === "ANNOUNCEMENT";
223
- return /* @__PURE__ */ B("button", {
236
+ let t = Ce[e.type], n = e.id === l?.id, r = e.type === "ANNOUNCEMENT";
237
+ return /* @__PURE__ */ W("button", {
224
238
  type: "button",
225
239
  onClick: () => o(e.id),
226
240
  "aria-current": n ? "true" : void 0,
227
- className: p("flex items-center gap-2 rounded-lg border-l-2 px-2.5 py-1.5 text-left text-sm transition-all", n ? "border-[color:var(--color-accent)] bg-[var(--color-accent-soft)] font-medium text-text-primary shadow-sm" : r ? "border-transparent font-medium text-accent hover:bg-bg-sunken motion-safe:hover:translate-x-0.5" : "border-transparent text-text-secondary hover:bg-bg-sunken hover:text-text-primary motion-safe:hover:translate-x-0.5"),
228
- children: [/* @__PURE__ */ z(t, { className: p("h-4 w-4 shrink-0", n || r ? "text-accent" : "text-text-tertiary") }), /* @__PURE__ */ z("span", {
241
+ className: m("flex items-center gap-2 rounded-lg border-l-2 px-2.5 py-1.5 text-left text-sm transition-all", n ? "border-[color:var(--color-accent)] bg-[var(--color-accent-soft)] font-medium text-text-primary shadow-sm" : r ? "border-transparent font-medium text-accent hover:bg-bg-sunken motion-safe:hover:translate-x-0.5" : "border-transparent text-text-secondary hover:bg-bg-sunken hover:text-text-primary motion-safe:hover:translate-x-0.5"),
242
+ children: [/* @__PURE__ */ U(t, { className: m("h-4 w-4 shrink-0", n || r ? "text-accent" : "text-text-tertiary") }), /* @__PURE__ */ U("span", {
229
243
  className: "truncate",
230
244
  children: e.name
231
245
  })]
@@ -233,35 +247,35 @@ function Te({ circle: e, isMember: t, canManage: n }) {
233
247
  })
234
248
  })]
235
249
  }),
236
- /* @__PURE__ */ z("div", {
250
+ /* @__PURE__ */ U("div", {
237
251
  className: "lg:hidden",
238
- children: /* @__PURE__ */ B("div", {
252
+ children: /* @__PURE__ */ W("div", {
239
253
  className: "flex items-center gap-2",
240
- children: [/* @__PURE__ */ B(q, {
254
+ children: [/* @__PURE__ */ W(J, {
241
255
  value: l?.id,
242
256
  onValueChange: o,
243
- children: [/* @__PURE__ */ z(X, { children: /* @__PURE__ */ z(Z, { placeholder: r("comradecircle.pages.circleDetail.selectChannel", "Select a channel") }) }), /* @__PURE__ */ z(J, { children: i.map((e) => /* @__PURE__ */ B(Y, {
257
+ children: [/* @__PURE__ */ U(Z, { children: /* @__PURE__ */ U(Q, { placeholder: r("comradecircle.pages.circleDetail.selectChannel", "Select a channel") }) }), /* @__PURE__ */ U(Y, { children: i.map((e) => /* @__PURE__ */ W(X, {
244
258
  value: e.id,
245
259
  children: ["#", e.name]
246
260
  }, e.id)) })]
247
- }), n && /* @__PURE__ */ z(V, {
261
+ }), n && /* @__PURE__ */ U(G, {
248
262
  variant: "outline",
249
263
  size: "icon",
250
264
  onClick: () => c(!0),
251
265
  "aria-label": r("comradecircle.pages.circleDetail.newChannel", "New channel"),
252
- children: /* @__PURE__ */ z(I, { className: "h-4 w-4" })
266
+ children: /* @__PURE__ */ U(B, { className: "h-4 w-4" })
253
267
  })]
254
268
  })
255
269
  }),
256
- /* @__PURE__ */ z("div", {
270
+ /* @__PURE__ */ U("div", {
257
271
  className: "min-w-0",
258
- children: l && /* @__PURE__ */ z(Ee, {
272
+ children: l && /* @__PURE__ */ U(ke, {
259
273
  channel: l,
260
274
  canPost: t,
261
275
  canManage: n
262
276
  })
263
277
  }),
264
- /* @__PURE__ */ z($, {
278
+ /* @__PURE__ */ U(Fe, {
265
279
  circleId: e.id,
266
280
  open: s,
267
281
  onOpenChange: c,
@@ -270,96 +284,95 @@ function Te({ circle: e, isMember: t, canManage: n }) {
270
284
  ]
271
285
  });
272
286
  }
273
- function Ee({ channel: e, canPost: t, canManage: n }) {
274
- let r = f(), i = d(), [a, o] = j(!1), { data: s, isLoading: u, isError: p, refetch: m } = l({
287
+ function ke({ channel: e, canPost: t, canManage: n }) {
288
+ let r = f(), i = d(), [a, o] = I(!1), { data: s, isLoading: u, isError: p, refetch: m } = l({
275
289
  channelId: e.id,
276
290
  status: "PUBLISHED",
277
291
  pagination: {
278
- limit: Ce,
292
+ limit: Ee,
279
293
  cursor: i.cursor
280
294
  }
281
295
  });
282
296
  c(e.id);
283
297
  let h = s?.items ?? [], g = e.type === "ANNOUNCEMENT", _ = e.type === "VOICE" ? !1 : g ? n : t, v = g && i.page === 0 && h.length > 0 ? h.find((e) => e.isPinned) ?? h[0] : void 0, y = v ? h.filter((e) => e.id !== v.id) : h;
284
- return /* @__PURE__ */ B("div", {
298
+ return /* @__PURE__ */ W("div", {
285
299
  className: "flex flex-col gap-4",
286
300
  children: [
287
- /* @__PURE__ */ B("div", {
301
+ /* @__PURE__ */ W("div", {
288
302
  className: "flex items-center gap-3",
289
303
  children: [(() => {
290
- let t = be[e.type];
291
- return /* @__PURE__ */ z("span", {
304
+ let t = Ce[e.type];
305
+ return /* @__PURE__ */ U("span", {
292
306
  className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-[var(--color-accent-soft)] text-accent",
293
- children: /* @__PURE__ */ z(t, { className: "h-5 w-5" })
307
+ children: /* @__PURE__ */ U(t, { className: "h-5 w-5" })
294
308
  });
295
- })(), /* @__PURE__ */ B("div", {
309
+ })(), /* @__PURE__ */ W("div", {
296
310
  className: "min-w-0",
297
- children: [/* @__PURE__ */ B("div", {
311
+ children: [/* @__PURE__ */ W("div", {
298
312
  className: "flex items-center gap-2",
299
- children: [/* @__PURE__ */ z("h2", {
313
+ children: [/* @__PURE__ */ U("h2", {
300
314
  className: "text-lg font-semibold text-text-primary",
301
315
  children: e.name
302
- }), g && /* @__PURE__ */ B("span", {
316
+ }), g && /* @__PURE__ */ W("span", {
303
317
  className: "inline-flex items-center gap-1 rounded-full bg-[var(--color-accent-soft)] px-2 py-0.5 text-xs font-medium text-accent",
304
318
  children: [
305
- /* @__PURE__ */ z(F, { className: "h-3 w-3" }),
319
+ /* @__PURE__ */ U(z, { className: "h-3 w-3" }),
306
320
  " ",
307
321
  r("comradecircle.pages.circleDetail.broadcastLabel", "Broadcast")
308
322
  ]
309
323
  })]
310
- }), e.description && /* @__PURE__ */ z("p", {
324
+ }), e.description && /* @__PURE__ */ U("p", {
311
325
  className: "text-sm text-text-secondary",
312
326
  children: e.description
313
327
  })]
314
328
  })]
315
329
  }),
316
- _ && /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z(k, {
330
+ _ && /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(A, {
317
331
  channelId: e.id,
318
332
  channelName: e.name,
319
333
  onPosted: () => i.reset(),
320
334
  onDraftSaved: () => o(!0),
321
335
  variant: g ? "announcement" : "default"
322
- }), /* @__PURE__ */ z(ne, {
336
+ }), /* @__PURE__ */ U(j, {
323
337
  channelId: e.id,
324
338
  open: a,
325
339
  onOpenChange: o,
326
340
  variant: g ? "announcement" : "default"
327
341
  })] }),
328
- g && !_ && /* @__PURE__ */ B("div", {
329
- className: "rounded-xl border border-dashed border-border-seam p-6 text-center text-sm text-text-secondary",
330
- children: [/* @__PURE__ */ z(F, { className: "mx-auto mb-2 h-6 w-6 text-text-tertiary" }), r("comradecircle.pages.circleDetail.announcementReadOnly", "Only circle managers can post in announcement channels.")]
331
- }),
332
- e.type === "VOICE" && /* @__PURE__ */ B("div", {
342
+ g && !_ && /* @__PURE__ */ W("div", {
333
343
  className: "rounded-xl border border-dashed border-border-seam p-6 text-center text-sm text-text-secondary",
334
- children: [/* @__PURE__ */ z(ue, { className: "mx-auto mb-2 h-6 w-6 text-text-tertiary" }), r("comradecircle.pages.circleDetail.voiceReadOnly", "Voice channels are for live audio. Text posting is disabled here.")]
344
+ children: [/* @__PURE__ */ U(z, { className: "mx-auto mb-2 h-6 w-6 text-text-tertiary" }), r("comradecircle.pages.circleDetail.announcementReadOnly", "Only circle managers can post in announcement channels.")]
335
345
  }),
336
- u ? /* @__PURE__ */ z(T, { label: r("comradecircle.pages.circleDetail.loadingPosts", "Loading posts…") }) : p ? /* @__PURE__ */ z(w, {
346
+ e.type === "VOICE" ? /* @__PURE__ */ U(ne, {
347
+ channel: e,
348
+ canJoin: t
349
+ }, e.id) : u ? /* @__PURE__ */ U(E, { label: r("comradecircle.pages.circleDetail.loadingPosts", "Loading posts…") }) : p ? /* @__PURE__ */ U(T, {
337
350
  message: r("comradecircle.pages.circleDetail.postsError", "We couldn't load posts."),
338
351
  onRetry: () => m()
339
- }) : h.length === 0 ? /* @__PURE__ */ z(C, {
340
- icon: /* @__PURE__ */ z(ce, { className: "h-9 w-9" }),
352
+ }) : h.length === 0 ? /* @__PURE__ */ U(w, {
353
+ icon: /* @__PURE__ */ U(se, { className: "h-9 w-9" }),
341
354
  title: r("comradecircle.pages.circleDetail.noPostsTitle", "No posts yet"),
342
355
  description: _ ? r("comradecircle.pages.circleDetail.noPostsDescriptionCanWrite", "Be the first to post in this channel.") : r("comradecircle.pages.circleDetail.noPostsDescriptionReadOnly", "Nothing has been posted here yet.")
343
- }) : /* @__PURE__ */ B("div", {
356
+ }) : /* @__PURE__ */ W("div", {
344
357
  className: "flex flex-col gap-4",
345
358
  children: [
346
- v && /* @__PURE__ */ B("div", {
359
+ v && /* @__PURE__ */ W("div", {
347
360
  className: "rounded-2xl border-2 border-[color:var(--color-accent)] bg-[var(--color-accent-soft)] p-1",
348
- children: [/* @__PURE__ */ B("div", {
361
+ children: [/* @__PURE__ */ W("div", {
349
362
  className: "mb-1 flex items-center gap-1.5 px-3 pt-2 text-xs font-semibold uppercase tracking-wide text-accent",
350
- children: [/* @__PURE__ */ z(F, { className: "h-3.5 w-3.5" }), v.isPinned ? r("comradecircle.pages.circleDetail.pinnedAnnouncement", "Pinned announcement") : r("comradecircle.pages.circleDetail.latestAnnouncement", "Latest announcement")]
351
- }), /* @__PURE__ */ z(S, { post: v })]
363
+ children: [/* @__PURE__ */ U(z, { className: "h-3.5 w-3.5" }), v.isPinned ? r("comradecircle.pages.circleDetail.pinnedAnnouncement", "Pinned announcement") : r("comradecircle.pages.circleDetail.latestAnnouncement", "Latest announcement")]
364
+ }), /* @__PURE__ */ U(C, { post: v })]
352
365
  }),
353
- y.length > 0 && /* @__PURE__ */ B("div", {
366
+ y.length > 0 && /* @__PURE__ */ W("div", {
354
367
  className: "flex flex-col gap-4",
355
- children: [v && /* @__PURE__ */ z("p", {
368
+ children: [v && /* @__PURE__ */ U("p", {
356
369
  className: "text-xs font-semibold uppercase tracking-wide text-text-tertiary",
357
370
  children: r("comradecircle.pages.circleDetail.earlierAnnouncements", "Earlier announcements")
358
- }), y.map((e) => /* @__PURE__ */ z(S, { post: e }, e.id))]
371
+ }), y.map((e) => /* @__PURE__ */ U(C, { post: e }, e.id))]
359
372
  }),
360
- /* @__PURE__ */ z(E, {
373
+ /* @__PURE__ */ U(D, {
361
374
  page: i.page,
362
- pageSize: Ce,
375
+ pageSize: Ee,
363
376
  itemCount: h.length,
364
377
  hasMore: s?.pageInfo.hasMore ?? !1,
365
378
  onPageChange: (e) => i.onPageChange(e, s?.pageInfo.cursor)
@@ -369,13 +382,13 @@ function Ee({ channel: e, canPost: t, canManage: n }) {
369
382
  ]
370
383
  });
371
384
  }
372
- function De({ circle: e, canManage: t }) {
373
- let n = f(), r = u(), [i, a] = j(""), o = A(() => [...e.memberships ?? []].sort((e, t) => Q.indexOf(e.role) - Q.indexOf(t.role)), [e.memberships]), s = A(() => {
385
+ function Ae({ circle: e, canManage: t }) {
386
+ let n = f(), r = u(), [i, a] = I(""), o = F(() => [...e.memberships ?? []].sort((e, t) => $.indexOf(e.role) - $.indexOf(t.role)), [e.memberships]), s = F(() => {
374
387
  let e = i.trim().toLowerCase();
375
- return e ? o.filter((t) => b(t.role).toLowerCase().includes(e) || t.role.toLowerCase().includes(e) || b(t.status).toLowerCase().includes(e) || t.status.toLowerCase().includes(e)) : o;
388
+ return e ? o.filter((t) => x(t.role).toLowerCase().includes(e) || t.role.toLowerCase().includes(e) || x(t.status).toLowerCase().includes(e) || t.status.toLowerCase().includes(e)) : o;
376
389
  }, [o, i]);
377
- if (o.length === 0) return /* @__PURE__ */ z(C, {
378
- icon: /* @__PURE__ */ z(L, { className: "h-9 w-9" }),
390
+ if (o.length === 0) return /* @__PURE__ */ U(w, {
391
+ icon: /* @__PURE__ */ U(V, { className: "h-9 w-9" }),
379
392
  title: n("comradecircle.pages.circleDetail.noMembersTitle", "No members yet")
380
393
  });
381
394
  let c = async (t, i) => {
@@ -384,65 +397,65 @@ function De({ circle: e, canManage: t }) {
384
397
  membershipId: t,
385
398
  role: i,
386
399
  circleId: e.id
387
- }), v.success(n("comradecircle.pages.circleDetail.roleUpdated", "Role updated"));
400
+ }), y.success(n("comradecircle.pages.circleDetail.roleUpdated", "Role updated"));
388
401
  } catch (e) {
389
- v.error(n("comradecircle.pages.circleDetail.roleUpdateError", "Could not update role"), _(e));
402
+ y.error(n("comradecircle.pages.circleDetail.roleUpdateError", "Could not update role"), v(e));
390
403
  }
391
404
  }, l = t ? "lg:grid-cols-[minmax(0,1fr)_120px_120px_190px]" : "lg:grid-cols-[minmax(0,1fr)_120px_120px]";
392
- return /* @__PURE__ */ B("div", {
405
+ return /* @__PURE__ */ W("div", {
393
406
  className: "flex flex-col gap-4",
394
- children: [/* @__PURE__ */ B("div", {
407
+ children: [/* @__PURE__ */ W("div", {
395
408
  className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",
396
- children: [/* @__PURE__ */ B("div", {
409
+ children: [/* @__PURE__ */ W("div", {
397
410
  className: "relative w-full sm:max-w-xs",
398
- children: [/* @__PURE__ */ z(de, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-tertiary" }), /* @__PURE__ */ z(H, {
411
+ children: [/* @__PURE__ */ U(de, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-tertiary" }), /* @__PURE__ */ U(K, {
399
412
  value: i,
400
413
  onChange: (e) => a(e.target.value),
401
414
  placeholder: n("comradecircle.pages.circleDetail.filterMembersPlaceholder", "Filter by role or status…"),
402
415
  className: "pl-9",
403
416
  "aria-label": n("comradecircle.pages.circleDetail.filterMembersAriaLabel", "Filter members by role or status")
404
417
  })]
405
- }), /* @__PURE__ */ z("span", {
418
+ }), /* @__PURE__ */ U("span", {
406
419
  className: "text-sm text-text-tertiary",
407
- children: s.length === o.length ? n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count: x(o.length) }) : n("comradecircle.pages.circleDetail.filteredMemberCount", "{{filtered}} of {{total}}", {
408
- filtered: x(s.length),
409
- total: x(o.length)
420
+ children: s.length === o.length ? n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count: S(o.length) }) : n("comradecircle.pages.circleDetail.filteredMemberCount", "{{filtered}} of {{total}}", {
421
+ filtered: S(s.length),
422
+ total: S(o.length)
410
423
  })
411
424
  })]
412
- }), /* @__PURE__ */ B("div", {
425
+ }), /* @__PURE__ */ W("div", {
413
426
  className: "overflow-hidden rounded-2xl border border-border-seam bg-bg-surface",
414
- children: [/* @__PURE__ */ B("div", {
415
- className: p("hidden border-b border-border-seam px-5 py-3 text-xs font-semibold uppercase tracking-wide text-text-tertiary lg:grid lg:items-center lg:gap-4", l),
427
+ children: [/* @__PURE__ */ W("div", {
428
+ className: m("hidden border-b border-border-seam px-5 py-3 text-xs font-semibold uppercase tracking-wide text-text-tertiary lg:grid lg:items-center lg:gap-4", l),
416
429
  children: [
417
- /* @__PURE__ */ z("span", { children: n("comradecircle.pages.circleDetail.memberColumn", "Member") }),
418
- /* @__PURE__ */ z("span", { children: n("comradecircle.pages.circleDetail.statusColumn", "Status") }),
419
- /* @__PURE__ */ z("span", { children: n("comradecircle.pages.circleDetail.roleColumn", "Role") }),
420
- t && /* @__PURE__ */ z("span", { children: n("comradecircle.pages.circleDetail.manageRoleColumn", "Manage role") })
430
+ /* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.memberColumn", "Member") }),
431
+ /* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.statusColumn", "Status") }),
432
+ /* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.roleColumn", "Role") }),
433
+ t && /* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.manageRoleColumn", "Manage role") })
421
434
  ]
422
- }), s.length === 0 ? /* @__PURE__ */ z("div", {
435
+ }), s.length === 0 ? /* @__PURE__ */ U("div", {
423
436
  className: "px-5 py-10 text-center text-sm text-text-secondary",
424
437
  children: n("comradecircle.pages.circleDetail.noFilterMatches", "No members match \"{{query}}\".", { query: i.trim() })
425
- }) : s.map((e) => /* @__PURE__ */ B("div", {
426
- className: p("flex flex-col gap-3 border-b border-border-seam px-5 py-4 last:border-b-0 motion-safe:transition-colors hover:bg-bg-sunken/60 lg:grid lg:items-center lg:gap-4", l),
427
- children: [/* @__PURE__ */ z(g, {
438
+ }) : s.map((e) => /* @__PURE__ */ W("div", {
439
+ className: m("flex flex-col gap-3 border-b border-border-seam px-5 py-4 last:border-b-0 motion-safe:transition-colors hover:bg-bg-sunken/60 lg:grid lg:items-center lg:gap-4", l),
440
+ children: [/* @__PURE__ */ U(_, {
428
441
  memberId: e.memberId,
429
442
  variant: "row",
430
443
  size: "md",
431
444
  showPresence: !0
432
- }), /* @__PURE__ */ B("div", {
445
+ }), /* @__PURE__ */ W("div", {
433
446
  className: "flex flex-wrap items-center gap-2 lg:contents",
434
447
  children: [
435
- /* @__PURE__ */ z("div", { children: /* @__PURE__ */ z(O, { status: e.status }) }),
436
- /* @__PURE__ */ z("div", { children: /* @__PURE__ */ z(O, { status: e.role }) }),
437
- t && /* @__PURE__ */ B(q, {
448
+ /* @__PURE__ */ U("div", { children: /* @__PURE__ */ U(k, { status: e.status }) }),
449
+ /* @__PURE__ */ U("div", { children: /* @__PURE__ */ U(k, { status: e.role }) }),
450
+ t && /* @__PURE__ */ W(J, {
438
451
  value: e.role,
439
452
  onValueChange: (t) => c(e.id, t),
440
- children: [/* @__PURE__ */ z(X, {
453
+ children: [/* @__PURE__ */ U(Z, {
441
454
  className: "h-9 w-40 lg:w-full",
442
- children: /* @__PURE__ */ z(Z, {})
443
- }), /* @__PURE__ */ z(J, { children: Q.map((e) => /* @__PURE__ */ z(Y, {
455
+ children: /* @__PURE__ */ U(Q, {})
456
+ }), /* @__PURE__ */ U(Y, { children: $.map((e) => /* @__PURE__ */ U(X, {
444
457
  value: e,
445
- children: b(e)
458
+ children: x(e)
446
459
  }, e)) })]
447
460
  })
448
461
  ]
@@ -451,144 +464,144 @@ function De({ circle: e, canManage: t }) {
451
464
  })]
452
465
  });
453
466
  }
454
- function Oe({ circle: t, isMember: n }) {
455
- let r = f(), { navigateTo: a } = e(), { data: o, isLoading: s, isError: c, refetch: l } = i({ circleId: t.id }), [u, d] = j(!1), p = o?.items ?? [];
456
- return /* @__PURE__ */ B("div", { children: [
457
- /* @__PURE__ */ z("div", {
467
+ function je({ circle: t, isMember: n }) {
468
+ let r = f(), { navigateTo: a } = e(), { data: o, isLoading: s, isError: c, refetch: l } = i({ circleId: t.id }), [u, d] = I(!1), p = o?.items ?? [];
469
+ return /* @__PURE__ */ W("div", { children: [
470
+ /* @__PURE__ */ U("div", {
458
471
  className: "mb-4 flex items-center justify-end",
459
- children: n && /* @__PURE__ */ B(V, {
472
+ children: n && /* @__PURE__ */ W(G, {
460
473
  onClick: () => d(!0),
461
474
  children: [
462
- /* @__PURE__ */ z(I, { className: "mr-1.5 h-4 w-4" }),
475
+ /* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
463
476
  " ",
464
477
  r("comradecircle.pages.circleDetail.newEvent", "New event")
465
478
  ]
466
479
  })
467
480
  }),
468
- s ? /* @__PURE__ */ z(T, { label: r("comradecircle.pages.circleDetail.loadingEvents", "Loading events…") }) : c ? /* @__PURE__ */ z(w, {
481
+ s ? /* @__PURE__ */ U(E, { label: r("comradecircle.pages.circleDetail.loadingEvents", "Loading events…") }) : c ? /* @__PURE__ */ U(T, {
469
482
  message: r("comradecircle.pages.circleDetail.eventsError", "We couldn't load events."),
470
483
  onRetry: () => l()
471
- }) : p.length === 0 ? /* @__PURE__ */ z(C, {
472
- icon: /* @__PURE__ */ z(N, { className: "h-9 w-9" }),
484
+ }) : p.length === 0 ? /* @__PURE__ */ U(w, {
485
+ icon: /* @__PURE__ */ U(ae, { className: "h-9 w-9" }),
473
486
  title: r("comradecircle.pages.circleDetail.noEventsTitle", "No events scheduled"),
474
487
  description: n ? r("comradecircle.pages.circleDetail.noEventsDescriptionMember", "Schedule the first event for this circle.") : r("comradecircle.pages.circleDetail.noEventsDescriptionNonMember", "No upcoming events."),
475
- action: n ? /* @__PURE__ */ B(V, {
488
+ action: n ? /* @__PURE__ */ W(G, {
476
489
  onClick: () => d(!0),
477
490
  children: [
478
- /* @__PURE__ */ z(I, { className: "mr-1.5 h-4 w-4" }),
491
+ /* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
479
492
  " ",
480
493
  r("comradecircle.pages.circleDetail.newEvent", "New event")
481
494
  ]
482
495
  }) : void 0
483
- }) : /* @__PURE__ */ z("div", {
496
+ }) : /* @__PURE__ */ U("div", {
484
497
  className: "grid gap-4 md:grid-cols-2",
485
- children: p.map((e) => /* @__PURE__ */ z(re, {
498
+ children: p.map((e) => /* @__PURE__ */ U(M, {
486
499
  event: e,
487
500
  onOpen: () => a(`events/${e.id}`)
488
501
  }, e.id))
489
502
  }),
490
- /* @__PURE__ */ z(ae, {
503
+ /* @__PURE__ */ U(P, {
491
504
  circleId: t.id,
492
505
  open: u,
493
506
  onOpenChange: d
494
507
  })
495
508
  ] });
496
509
  }
497
- function ke({ circle: e, isMember: t, canManage: n }) {
498
- let r = f(), { data: i, isLoading: a, isError: o, refetch: c } = s(e.id), [l, u] = j(!1);
499
- return /* @__PURE__ */ B("div", { children: [
500
- /* @__PURE__ */ z("div", {
510
+ function Me({ circle: e, isMember: t, canManage: n }) {
511
+ let r = f(), { data: i, isLoading: a, isError: o, refetch: c } = s(e.id), [l, u] = I(!1);
512
+ return /* @__PURE__ */ W("div", { children: [
513
+ /* @__PURE__ */ U("div", {
501
514
  className: "mb-4 flex items-center justify-end",
502
- children: t && /* @__PURE__ */ B(V, {
515
+ children: t && /* @__PURE__ */ W(G, {
503
516
  onClick: () => u(!0),
504
517
  children: [
505
- /* @__PURE__ */ z(I, { className: "mr-1.5 h-4 w-4" }),
518
+ /* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
506
519
  " ",
507
520
  r("comradecircle.pages.circleDetail.newPoll", "New poll")
508
521
  ]
509
522
  })
510
523
  }),
511
- a ? /* @__PURE__ */ z(T, { label: r("comradecircle.pages.circleDetail.loadingPolls", "Loading polls…") }) : o ? /* @__PURE__ */ z(w, {
524
+ a ? /* @__PURE__ */ U(E, { label: r("comradecircle.pages.circleDetail.loadingPolls", "Loading polls…") }) : o ? /* @__PURE__ */ U(T, {
512
525
  message: r("comradecircle.pages.circleDetail.pollsError", "We couldn't load polls."),
513
526
  onRetry: () => c()
514
- }) : (i ?? []).length === 0 ? /* @__PURE__ */ z(C, {
515
- icon: /* @__PURE__ */ z(M, { className: "h-9 w-9" }),
527
+ }) : (i ?? []).length === 0 ? /* @__PURE__ */ U(w, {
528
+ icon: /* @__PURE__ */ U(L, { className: "h-9 w-9" }),
516
529
  title: r("comradecircle.pages.circleDetail.noPollsTitle", "No polls yet"),
517
530
  description: t ? r("comradecircle.pages.circleDetail.noPollsDescriptionMember", "Ask the circle a question with a poll.") : r("comradecircle.pages.circleDetail.noPollsDescriptionNonMember", "No polls have been created."),
518
- action: t ? /* @__PURE__ */ B(V, {
531
+ action: t ? /* @__PURE__ */ W(G, {
519
532
  onClick: () => u(!0),
520
533
  children: [
521
- /* @__PURE__ */ z(I, { className: "mr-1.5 h-4 w-4" }),
534
+ /* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
522
535
  " ",
523
536
  r("comradecircle.pages.circleDetail.newPoll", "New poll")
524
537
  ]
525
538
  }) : void 0
526
- }) : /* @__PURE__ */ z("div", {
539
+ }) : /* @__PURE__ */ U("div", {
527
540
  className: "mx-auto flex max-w-2xl flex-col gap-4",
528
- children: (i ?? []).map((e) => /* @__PURE__ */ z(ie, {
541
+ children: (i ?? []).map((e) => /* @__PURE__ */ U(N, {
529
542
  poll: e,
530
543
  canManage: n
531
544
  }, e.id))
532
545
  }),
533
- /* @__PURE__ */ z(Me, {
546
+ /* @__PURE__ */ U(Ie, {
534
547
  circleId: e.id,
535
548
  open: l,
536
549
  onOpenChange: u
537
550
  })
538
551
  ] });
539
552
  }
540
- function Ae({ circle: e }) {
553
+ function Ne({ circle: e }) {
541
554
  let t = f();
542
- return /* @__PURE__ */ z("div", {
555
+ return /* @__PURE__ */ U("div", {
543
556
  className: "mx-auto max-w-2xl",
544
- children: /* @__PURE__ */ B("div", {
557
+ children: /* @__PURE__ */ W("div", {
545
558
  className: "rounded-2xl border border-border-seam bg-bg-surface p-6",
546
559
  children: [
547
- /* @__PURE__ */ z("h2", {
560
+ /* @__PURE__ */ U("h2", {
548
561
  className: "text-lg font-semibold text-text-primary",
549
562
  children: t("comradecircle.pages.circleDetail.aboutTitle", "About this circle")
550
563
  }),
551
- /* @__PURE__ */ z("p", {
564
+ /* @__PURE__ */ U("p", {
552
565
  className: "mt-2 whitespace-pre-wrap text-sm text-text-secondary",
553
566
  children: e.description || t("comradecircle.pages.circleDetail.noDescription", "No description provided.")
554
567
  }),
555
- e.tags.length > 0 && /* @__PURE__ */ z("div", {
568
+ e.tags.length > 0 && /* @__PURE__ */ U("div", {
556
569
  className: "mt-4 flex flex-wrap gap-1.5",
557
- children: e.tags.map((e) => /* @__PURE__ */ B("span", {
570
+ children: e.tags.map((e) => /* @__PURE__ */ W("span", {
558
571
  className: "rounded-full bg-bg-sunken px-2.5 py-0.5 text-xs font-medium text-text-secondary",
559
572
  children: ["#", e]
560
573
  }, e))
561
574
  }),
562
- /* @__PURE__ */ B("dl", {
575
+ /* @__PURE__ */ W("dl", {
563
576
  className: "mt-6 grid grid-cols-2 gap-4 text-sm",
564
577
  children: [
565
- /* @__PURE__ */ B("div", { children: [/* @__PURE__ */ z("dt", {
578
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
566
579
  className: "text-text-tertiary",
567
580
  children: t("comradecircle.pages.circleDetail.visibilityLabel", "Visibility")
568
- }), /* @__PURE__ */ z("dd", {
581
+ }), /* @__PURE__ */ U("dd", {
569
582
  className: "mt-1 text-text-primary",
570
- children: b(e.visibility)
583
+ children: x(e.visibility)
571
584
  })] }),
572
- /* @__PURE__ */ B("div", { children: [/* @__PURE__ */ z("dt", {
585
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
573
586
  className: "text-text-tertiary",
574
587
  children: t("comradecircle.pages.circleDetail.statusLabel", "Status")
575
- }), /* @__PURE__ */ z("dd", {
588
+ }), /* @__PURE__ */ U("dd", {
576
589
  className: "mt-1 text-text-primary",
577
- children: b(e.status)
590
+ children: x(e.status)
578
591
  })] }),
579
- /* @__PURE__ */ B("div", { children: [/* @__PURE__ */ z("dt", {
592
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
580
593
  className: "text-text-tertiary",
581
594
  children: t("comradecircle.pages.circleDetail.membersLabel", "Members")
582
- }), /* @__PURE__ */ z("dd", {
595
+ }), /* @__PURE__ */ U("dd", {
583
596
  className: "mt-1 text-text-primary",
584
- children: x(e.memberCount)
597
+ children: S(e.memberCount)
585
598
  })] }),
586
- /* @__PURE__ */ B("div", { children: [/* @__PURE__ */ z("dt", {
599
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
587
600
  className: "text-text-tertiary",
588
601
  children: t("comradecircle.pages.circleDetail.createdLabel", "Created")
589
- }), /* @__PURE__ */ z("dd", {
602
+ }), /* @__PURE__ */ U("dd", {
590
603
  className: "mt-1 text-text-primary",
591
- children: y(e.createdAt)
604
+ children: b(e.createdAt)
592
605
  })] })
593
606
  ]
594
607
  })
@@ -596,70 +609,70 @@ function Ae({ circle: e }) {
596
609
  })
597
610
  });
598
611
  }
599
- var je = [
612
+ var Pe = [
600
613
  "TEXT",
601
614
  "FORUM",
602
615
  "ANNOUNCEMENT",
603
616
  "VOICE"
604
617
  ];
605
- function $({ circleId: e, open: t, onOpenChange: r, onCreated: i }) {
606
- let a = f(), o = n(), [s, c] = j(""), [l, u] = j(""), [d, p] = j("TEXT"), [m, h] = j(null);
607
- return /* @__PURE__ */ z(W, {
618
+ function Fe({ circleId: e, open: t, onOpenChange: r, onCreated: i }) {
619
+ let a = f(), o = n(), [s, c] = I(""), [l, u] = I(""), [d, p] = I("TEXT"), [m, h] = I(null);
620
+ return /* @__PURE__ */ U(he, {
608
621
  open: t,
609
622
  onOpenChange: r,
610
- children: /* @__PURE__ */ B(G, {
623
+ children: /* @__PURE__ */ W(ge, {
611
624
  className: "sm:max-w-md",
612
625
  children: [
613
- /* @__PURE__ */ B(ge, { children: [/* @__PURE__ */ z(_e, { children: a("comradecircle.pages.circleDetail.createChannelTitle", "Create a channel") }), /* @__PURE__ */ z(K, { children: a("comradecircle.pages.circleDetail.createChannelDescription", "Channels organise conversations by topic or format.") })] }),
614
- /* @__PURE__ */ B("div", {
626
+ /* @__PURE__ */ W(ye, { children: [/* @__PURE__ */ U(be, { children: a("comradecircle.pages.circleDetail.createChannelTitle", "Create a channel") }), /* @__PURE__ */ U(_e, { children: a("comradecircle.pages.circleDetail.createChannelDescription", "Channels organise conversations by topic or format.") })] }),
627
+ /* @__PURE__ */ W("div", {
615
628
  className: "flex flex-col gap-4 py-2",
616
629
  children: [
617
- /* @__PURE__ */ B("div", {
630
+ /* @__PURE__ */ W("div", {
618
631
  className: "grid gap-1.5",
619
- children: [/* @__PURE__ */ z(U, {
632
+ children: [/* @__PURE__ */ U(q, {
620
633
  htmlFor: "channel-name",
621
634
  children: a("comradecircle.pages.circleDetail.channelNameLabel", "Name")
622
- }), /* @__PURE__ */ z(H, {
635
+ }), /* @__PURE__ */ U(K, {
623
636
  id: "channel-name",
624
637
  value: s,
625
638
  onChange: (e) => c(e.target.value),
626
639
  placeholder: a("comradecircle.pages.circleDetail.channelNamePlaceholder", "general")
627
640
  })]
628
641
  }),
629
- /* @__PURE__ */ B("div", {
642
+ /* @__PURE__ */ W("div", {
630
643
  className: "grid gap-1.5",
631
- children: [/* @__PURE__ */ z(U, { children: a("comradecircle.pages.circleDetail.channelTypeLabel", "Type") }), /* @__PURE__ */ B(q, {
644
+ children: [/* @__PURE__ */ U(q, { children: a("comradecircle.pages.circleDetail.channelTypeLabel", "Type") }), /* @__PURE__ */ W(J, {
632
645
  value: d,
633
646
  onValueChange: (e) => p(e),
634
- children: [/* @__PURE__ */ z(X, { children: /* @__PURE__ */ z(Z, {}) }), /* @__PURE__ */ z(J, { children: je.map((e) => /* @__PURE__ */ z(Y, {
647
+ children: [/* @__PURE__ */ U(Z, { children: /* @__PURE__ */ U(Q, {}) }), /* @__PURE__ */ U(Y, { children: Pe.map((e) => /* @__PURE__ */ U(X, {
635
648
  value: e,
636
- children: b(e)
649
+ children: x(e)
637
650
  }, e)) })]
638
651
  })]
639
652
  }),
640
- /* @__PURE__ */ B("div", {
653
+ /* @__PURE__ */ W("div", {
641
654
  className: "grid gap-1.5",
642
- children: [/* @__PURE__ */ z(U, {
655
+ children: [/* @__PURE__ */ U(q, {
643
656
  htmlFor: "channel-desc",
644
657
  children: a("comradecircle.pages.circleDetail.channelDescriptionLabel", "Description")
645
- }), /* @__PURE__ */ z(ye, {
658
+ }), /* @__PURE__ */ U(Se, {
646
659
  id: "channel-desc",
647
660
  value: l,
648
661
  onChange: (e) => u(e.target.value),
649
662
  rows: 2
650
663
  })]
651
664
  }),
652
- m && /* @__PURE__ */ z("p", {
665
+ m && /* @__PURE__ */ U("p", {
653
666
  className: "text-sm text-status-error-text",
654
667
  children: m
655
668
  })
656
669
  ]
657
670
  }),
658
- /* @__PURE__ */ B(he, { children: [/* @__PURE__ */ z(V, {
671
+ /* @__PURE__ */ W(ve, { children: [/* @__PURE__ */ U(G, {
659
672
  variant: "outline",
660
673
  onClick: () => r(!1),
661
674
  children: a("common.cancel", "Cancel")
662
- }), /* @__PURE__ */ z(V, {
675
+ }), /* @__PURE__ */ U(G, {
663
676
  onClick: async () => {
664
677
  if (!s.trim()) {
665
678
  h(a("comradecircle.pages.circleDetail.channelNameRequired", "Channel name is required."));
@@ -669,13 +682,13 @@ function $({ circleId: e, open: t, onOpenChange: r, onCreated: i }) {
669
682
  let t = await o.mutateAsync({
670
683
  circleId: e,
671
684
  name: s.trim(),
672
- slug: D(s),
685
+ slug: O(s),
673
686
  description: l.trim() || null,
674
687
  type: d
675
688
  });
676
- v.success(a("comradecircle.pages.circleDetail.channelCreated", "Channel created"), `#${t.name}`), r(!1), c(""), u(""), p("TEXT"), h(null), i?.(t);
689
+ y.success(a("comradecircle.pages.circleDetail.channelCreated", "Channel created"), `#${t.name}`), r(!1), c(""), u(""), p("TEXT"), h(null), i?.(t);
677
690
  } catch (e) {
678
- h(_(e));
691
+ h(v(e));
679
692
  }
680
693
  },
681
694
  disabled: o.isPending,
@@ -685,131 +698,131 @@ function $({ circleId: e, open: t, onOpenChange: r, onCreated: i }) {
685
698
  })
686
699
  });
687
700
  }
688
- function Me({ circleId: e, open: t, onOpenChange: n }) {
689
- let i = f(), a = r(), [o, s] = j(""), [c, l] = j(["", ""]), [u, d] = j(!1), [p, m] = j(!1), [h, g] = j(""), [y, b] = j(null), x = A(() => {
701
+ function Ie({ circleId: e, open: t, onOpenChange: n }) {
702
+ let i = f(), a = r(), [o, s] = I(""), [c, l] = I(["", ""]), [u, d] = I(!1), [p, m] = I(!1), [h, g] = I(""), [_, b] = I(null), x = F(() => {
690
703
  let e = /* @__PURE__ */ new Date();
691
704
  return e.setMinutes(e.getMinutes() - e.getTimezoneOffset()), e.toISOString().slice(0, 16);
692
705
  }, []), S = () => {
693
706
  s(""), l(["", ""]), d(!1), m(!1), g(""), b(null);
694
707
  };
695
- return /* @__PURE__ */ z(W, {
708
+ return /* @__PURE__ */ U(he, {
696
709
  open: t,
697
710
  onOpenChange: n,
698
- children: /* @__PURE__ */ B(G, {
711
+ children: /* @__PURE__ */ W(ge, {
699
712
  className: "sm:max-w-md",
700
713
  children: [
701
- /* @__PURE__ */ B(ge, { children: [/* @__PURE__ */ z(_e, { children: i("comradecircle.pages.circleDetail.createPollTitle", "Create a poll") }), /* @__PURE__ */ z(K, { children: i("comradecircle.pages.circleDetail.createPollDescription", "Gather the circle's opinion.") })] }),
702
- /* @__PURE__ */ B("div", {
714
+ /* @__PURE__ */ W(ye, { children: [/* @__PURE__ */ U(be, { children: i("comradecircle.pages.circleDetail.createPollTitle", "Create a poll") }), /* @__PURE__ */ U(_e, { children: i("comradecircle.pages.circleDetail.createPollDescription", "Gather the circle's opinion.") })] }),
715
+ /* @__PURE__ */ W("div", {
703
716
  className: "flex flex-col gap-4 py-2",
704
717
  children: [
705
- /* @__PURE__ */ B("div", {
718
+ /* @__PURE__ */ W("div", {
706
719
  className: "grid gap-1.5",
707
- children: [/* @__PURE__ */ z(U, {
720
+ children: [/* @__PURE__ */ U(q, {
708
721
  htmlFor: "poll-q",
709
722
  children: i("comradecircle.pages.circleDetail.pollQuestionLabel", "Question")
710
- }), /* @__PURE__ */ z(H, {
723
+ }), /* @__PURE__ */ U(K, {
711
724
  id: "poll-q",
712
725
  value: o,
713
726
  onChange: (e) => s(e.target.value),
714
727
  placeholder: i("comradecircle.pages.circleDetail.pollQuestionPlaceholder", "What should we build next?")
715
728
  })]
716
729
  }),
717
- /* @__PURE__ */ B("div", {
730
+ /* @__PURE__ */ W("div", {
718
731
  className: "grid gap-1.5",
719
- children: [/* @__PURE__ */ z(U, { children: i("comradecircle.pages.circleDetail.pollOptionsLabel", "Options") }), /* @__PURE__ */ B("div", {
732
+ children: [/* @__PURE__ */ U(q, { children: i("comradecircle.pages.circleDetail.pollOptionsLabel", "Options") }), /* @__PURE__ */ W("div", {
720
733
  className: "flex flex-col gap-2",
721
- children: [c.map((e, t) => /* @__PURE__ */ B("div", {
734
+ children: [c.map((e, t) => /* @__PURE__ */ W("div", {
722
735
  className: "flex items-center gap-2",
723
- children: [/* @__PURE__ */ z(H, {
736
+ children: [/* @__PURE__ */ U(K, {
724
737
  value: e,
725
738
  onChange: (e) => l((n) => n.map((n, r) => r === t ? e.target.value : n)),
726
739
  placeholder: i("comradecircle.pages.circleDetail.pollOptionPlaceholder", "Option {{number}}", { number: t + 1 })
727
- }), c.length > 2 && /* @__PURE__ */ z(V, {
740
+ }), c.length > 2 && /* @__PURE__ */ U(G, {
728
741
  variant: "ghost",
729
742
  size: "icon",
730
743
  onClick: () => l((e) => e.filter((e, n) => n !== t)),
731
744
  "aria-label": i("comradecircle.pages.circleDetail.removeOptionAriaLabel", "Remove option {{number}}", { number: t + 1 }),
732
745
  children: "✕"
733
746
  })]
734
- }, t)), c.length < 8 && /* @__PURE__ */ B(V, {
747
+ }, t)), c.length < 8 && /* @__PURE__ */ W(G, {
735
748
  variant: "outline",
736
749
  size: "sm",
737
750
  onClick: () => l((e) => [...e, ""]),
738
751
  children: [
739
- /* @__PURE__ */ z(I, { className: "mr-1.5 h-4 w-4" }),
752
+ /* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
740
753
  " ",
741
754
  i("comradecircle.pages.circleDetail.addOption", "Add option")
742
755
  ]
743
756
  })]
744
757
  })]
745
758
  }),
746
- /* @__PURE__ */ B("div", {
759
+ /* @__PURE__ */ W("div", {
747
760
  className: "grid gap-1.5",
748
761
  children: [
749
- /* @__PURE__ */ z(U, {
762
+ /* @__PURE__ */ U(q, {
750
763
  htmlFor: "poll-closes",
751
764
  children: i("comradecircle.pages.circleDetail.pollClosesLabel", "Closes at")
752
765
  }),
753
- /* @__PURE__ */ z(H, {
766
+ /* @__PURE__ */ U(K, {
754
767
  id: "poll-closes",
755
768
  type: "datetime-local",
756
769
  min: x,
757
770
  value: h,
758
771
  onChange: (e) => g(e.target.value)
759
772
  }),
760
- /* @__PURE__ */ z("p", {
773
+ /* @__PURE__ */ U("p", {
761
774
  className: "text-xs text-text-tertiary",
762
775
  children: i("comradecircle.pages.circleDetail.pollClosesHint", "Optional — leave empty to keep voting open indefinitely.")
763
776
  })
764
777
  ]
765
778
  }),
766
- /* @__PURE__ */ B("div", {
779
+ /* @__PURE__ */ W("div", {
767
780
  className: "flex flex-col divide-y divide-border-seam rounded-xl border border-border-seam",
768
- children: [/* @__PURE__ */ B("div", {
781
+ children: [/* @__PURE__ */ W("div", {
769
782
  className: "flex items-center justify-between gap-4 px-3 py-3",
770
- children: [/* @__PURE__ */ B("div", {
783
+ children: [/* @__PURE__ */ W("div", {
771
784
  className: "min-w-0",
772
- children: [/* @__PURE__ */ z(U, {
785
+ children: [/* @__PURE__ */ U(q, {
773
786
  htmlFor: "poll-multi",
774
787
  children: i("comradecircle.pages.circleDetail.pollMultiLabel", "Allow multiple choices")
775
- }), /* @__PURE__ */ z("p", {
788
+ }), /* @__PURE__ */ U("p", {
776
789
  className: "text-xs text-text-tertiary",
777
790
  children: i("comradecircle.pages.circleDetail.pollMultiHint", "Let voters pick more than one option.")
778
791
  })]
779
- }), /* @__PURE__ */ z(ve, {
792
+ }), /* @__PURE__ */ U(xe, {
780
793
  id: "poll-multi",
781
794
  checked: u,
782
795
  onCheckedChange: d
783
796
  })]
784
- }), /* @__PURE__ */ B("div", {
797
+ }), /* @__PURE__ */ W("div", {
785
798
  className: "flex items-center justify-between gap-4 px-3 py-3",
786
- children: [/* @__PURE__ */ B("div", {
799
+ children: [/* @__PURE__ */ W("div", {
787
800
  className: "min-w-0",
788
- children: [/* @__PURE__ */ z(U, {
801
+ children: [/* @__PURE__ */ U(q, {
789
802
  htmlFor: "poll-anon",
790
803
  children: i("comradecircle.pages.circleDetail.pollAnonymousLabel", "Anonymous voting")
791
- }), /* @__PURE__ */ z("p", {
804
+ }), /* @__PURE__ */ U("p", {
792
805
  className: "text-xs text-text-tertiary",
793
806
  children: i("comradecircle.pages.circleDetail.pollAnonymousHint", "Hide who voted for each option.")
794
807
  })]
795
- }), /* @__PURE__ */ z(ve, {
808
+ }), /* @__PURE__ */ U(xe, {
796
809
  id: "poll-anon",
797
810
  checked: p,
798
811
  onCheckedChange: m
799
812
  })]
800
813
  })]
801
814
  }),
802
- y && /* @__PURE__ */ z("p", {
815
+ _ && /* @__PURE__ */ U("p", {
803
816
  className: "text-sm text-status-error-text",
804
- children: y
817
+ children: _
805
818
  })
806
819
  ]
807
820
  }),
808
- /* @__PURE__ */ B(he, { children: [/* @__PURE__ */ z(V, {
821
+ /* @__PURE__ */ W(ve, { children: [/* @__PURE__ */ U(G, {
809
822
  variant: "outline",
810
823
  onClick: () => n(!1),
811
824
  children: i("common.cancel", "Cancel")
812
- }), /* @__PURE__ */ z(V, {
825
+ }), /* @__PURE__ */ U(G, {
813
826
  onClick: async () => {
814
827
  let t = c.map((e) => e.trim()).filter(Boolean);
815
828
  if (!o.trim()) {
@@ -828,9 +841,9 @@ function Me({ circleId: e, open: t, onOpenChange: n }) {
828
841
  allowMultiple: u,
829
842
  isAnonymous: p,
830
843
  closesAt: h ? new Date(h).toISOString() : null
831
- }), v.success(i("comradecircle.pages.circleDetail.pollCreated", "Poll created")), n(!1), S();
844
+ }), y.success(i("comradecircle.pages.circleDetail.pollCreated", "Poll created")), n(!1), S();
832
845
  } catch (e) {
833
- b(_(e));
846
+ b(v(e));
834
847
  }
835
848
  },
836
849
  disabled: a.isPending,
@@ -841,6 +854,6 @@ function Me({ circleId: e, open: t, onOpenChange: n }) {
841
854
  });
842
855
  }
843
856
  //#endregion
844
- export { we as CircleDetailPage };
857
+ export { De as CircleDetailPage };
845
858
 
846
859
  //# sourceMappingURL=CircleDetailPage.js.map