@burdenoff/microfe-channel 2026.526.1 → 2026.530.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/channel/ChannelRoutes.js +5 -6
  2. package/dist/channel/ChannelRoutes.js.map +1 -1
  3. package/dist/channel/components/AdapterCredentialsForm.js +14 -2
  4. package/dist/channel/components/AdapterCredentialsForm.js.map +1 -1
  5. package/dist/channel/components/FeatureNotEnabled.js +1 -1
  6. package/dist/channel/components/FeatureNotEnabled.js.map +1 -1
  7. package/dist/channel/components/PermissionGuard.js +1 -1
  8. package/dist/channel/components/PermissionGuard.js.map +1 -1
  9. package/dist/channel/config/adapterCredentials.js +19 -11
  10. package/dist/channel/config/adapterCredentials.js.map +1 -1
  11. package/dist/channel/constants/permissions.js +3 -0
  12. package/dist/channel/constants/permissions.js.map +1 -1
  13. package/dist/channel/hooks/useChannelSubscription.js.map +1 -1
  14. package/dist/channel/modules/channels/pages/ChannelDashboardPage.js +244 -220
  15. package/dist/channel/modules/channels/pages/ChannelDashboardPage.js.map +1 -1
  16. package/dist/channel/modules/channels/pages/ChannelDetailsPage.js +416 -390
  17. package/dist/channel/modules/channels/pages/ChannelDetailsPage.js.map +1 -1
  18. package/dist/channel/modules/channels/pages/ChannelSettingsPage.js +30 -15
  19. package/dist/channel/modules/channels/pages/ChannelSettingsPage.js.map +1 -1
  20. package/dist/channel/modules/channels/pages/ChannelUsersPage.js +8 -2
  21. package/dist/channel/modules/channels/pages/ChannelUsersPage.js.map +1 -1
  22. package/dist/channel/modules/channels/pages/ChannelsListPage.js +241 -213
  23. package/dist/channel/modules/channels/pages/ChannelsListPage.js.map +1 -1
  24. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js +107 -98
  25. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js.map +1 -1
  26. package/dist/channel/modules/channels/pages/ConnectionsListPage.js +160 -140
  27. package/dist/channel/modules/channels/pages/ConnectionsListPage.js.map +1 -1
  28. package/dist/channel/modules/channels/pages/CreateChannelPage.js +47 -50
  29. package/dist/channel/modules/channels/pages/CreateChannelPage.js.map +1 -1
  30. package/dist/channel/modules/channels/pages/CreateConnectionPage.js +16 -5
  31. package/dist/channel/modules/channels/pages/CreateConnectionPage.js.map +1 -1
  32. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js +11 -4
  33. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js.map +1 -1
  34. package/dist/channel/modules/channels/pages/EditChannelPage.js +17 -8
  35. package/dist/channel/modules/channels/pages/EditChannelPage.js.map +1 -1
  36. package/dist/channel/modules/channels/pages/EditConnectionPage.js +11 -6
  37. package/dist/channel/modules/channels/pages/EditConnectionPage.js.map +1 -1
  38. package/dist/channel/modules/channels/pages/SendMessagePage.js +21 -9
  39. package/dist/channel/modules/channels/pages/SendMessagePage.js.map +1 -1
  40. package/dist/channel/modules/channels/pages/WebhookEventsPage.js +8 -1
  41. package/dist/channel/modules/channels/pages/WebhookEventsPage.js.map +1 -1
  42. package/dist/channel/pages/ChannelLandingPage.js +50 -35
  43. package/dist/channel/pages/ChannelLandingPage.js.map +1 -1
  44. package/dist/channel/providers/ChannelProvider.js +1 -1
  45. package/dist/channel/providers/ChannelProvider.js.map +1 -1
  46. package/package.json +2 -2
  47. package/dist/channel/modules/channels/pages/index.js +0 -14
@@ -2,16 +2,17 @@ import { nativeImpact as e, nativeNotify as t } from "../../../../utils/nativeBr
2
2
  import { useChannel as n } from "../../../hooks/useChannels.js";
3
3
  import { PermissionGuard as r } from "../../../components/PermissionGuard.js";
4
4
  import { CHANNEL_PERMISSIONS as i } from "../../../constants/permissions.js";
5
- import { AUTH_TYPE_I18N as a, HEALTH_I18N as ee, PLATFORM_I18N as te, STATUS_I18N as o, translateLabel as s } from "../i18n.js";
6
- import { AdapterCredentialsForm as ne, CredentialValidationStatus as re } from "../../../components/AdapterCredentialsForm.js";
7
- import { useEffect as ie, useState as c } from "react";
8
- import { useI18n as ae } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
9
- import { AlertCircle as l, AlertTriangle as u, ArrowLeft as oe, ArrowRight as d, Cable as f, CheckCircle2 as p, Clock as se, HelpCircle as m, Key as ce, Loader2 as h, Mail as le, MessageSquare as ue, Pencil as g, Phone as de, Play as fe, Plus as pe, Power as me, PowerOff as _, Radio as he, RefreshCw as ge, Save as v, Send as y, Trash2 as _e, Truck as ve, Users as ye, X as b, XCircle as x } from "lucide-react";
10
- import { useLocation as be, useNavigate as xe, useParams as S } from "react-router-dom";
11
- import { jsx as C, jsxs as w } from "react/jsx-runtime";
12
- import { TagBadge as Se } from "@burdenoff/fe-libs/tag";
5
+ import { AUTH_TYPE_I18N as ee, HEALTH_I18N as te, PLATFORM_I18N as ne, STATUS_I18N as re, translateLabel as a } from "../i18n.js";
6
+ import { AdapterCredentialsForm as ie, CredentialValidationStatus as ae } from "../../../components/AdapterCredentialsForm.js";
7
+ import { useEffect as oe, useState as o } from "react";
8
+ import { useI18n as se } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
9
+ import { AlertCircle as s, AlertTriangle as c, ArrowLeft as ce, ArrowRight as l, Cable as u, CheckCircle2 as d, Clock as le, HelpCircle as f, Key as ue, Loader2 as p, Mail as de, MessageSquare as fe, Pencil as m, Phone as pe, Play as me, Plus as he, Power as ge, PowerOff as h, Radio as _e, RefreshCw as ve, Save as ye, Send as g, Trash2 as be, Truck as _, Users as xe, X as v, XCircle as y } from "lucide-react";
10
+ import { useLocation as Se, useNavigate as Ce, useParams as we } from "react-router-dom";
11
+ import { usePermissions as Te } from "@burdenoff/fe-libs/shared/providers/shell";
12
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
13
+ import { TagBadge as Ee } from "@burdenoff/fe-libs/tag";
13
14
  //#region src/channel/modules/channels/pages/ChannelDetailsPage.tsx
14
- var T = {
15
+ var S = {
15
16
  EMAIL: {
16
17
  label: "Email",
17
18
  color: "bg-accent-blue-subtle text-accent-blue"
@@ -52,143 +53,143 @@ var T = {
52
53
  label: "Webchat",
53
54
  color: "bg-accent-teal-subtle text-accent-teal"
54
55
  }
55
- }, E = {
56
+ }, C = {
56
57
  ACTIVE: {
57
58
  label: "Active",
58
59
  color: "text-status-success-text bg-status-success-bg-subtle",
59
- icon: p
60
+ icon: d
60
61
  },
61
62
  INACTIVE: {
62
63
  label: "Inactive",
63
64
  color: "text-muted-foreground bg-muted",
64
- icon: _
65
+ icon: h
65
66
  },
66
67
  ERROR: {
67
68
  label: "Error",
68
69
  color: "text-status-error-text bg-status-error-bg-subtle",
69
- icon: x
70
+ icon: y
70
71
  },
71
72
  SUSPENDED: {
72
73
  label: "Suspended",
73
74
  color: "text-status-warning-text bg-status-warning-bg-subtle",
74
- icon: u
75
+ icon: c
75
76
  },
76
77
  ARCHIVED: {
77
78
  label: "Archived",
78
79
  color: "text-muted-foreground bg-muted",
79
- icon: _
80
+ icon: h
80
81
  }
81
- }, D = {
82
+ }, w = {
82
83
  HEALTHY: {
83
84
  label: "Healthy",
84
85
  color: "text-status-success-text",
85
- icon: p
86
+ icon: d
86
87
  },
87
88
  DEGRADED: {
88
89
  label: "Degraded",
89
90
  color: "text-status-warning-text",
90
- icon: u
91
+ icon: c
91
92
  },
92
93
  UNHEALTHY: {
93
94
  label: "Unhealthy",
94
95
  color: "text-status-error-text",
95
- icon: x
96
+ icon: y
96
97
  },
97
98
  UNKNOWN: {
98
99
  label: "Unknown",
99
100
  color: "text-muted-foreground",
100
- icon: m
101
+ icon: f
101
102
  }
102
103
  };
103
- function O() {
104
- let { channelId: u } = S(), m = xe(), O = be(), { t: k } = ae(), A = (e, t) => {
105
- let n = k(e);
104
+ function T() {
105
+ let { channelId: c } = we(), f = Ce(), T = Se(), { hasPermission: E } = Te(), D = E(i.CHANNEL_UPDATE), De = E(i.CHANNEL_CONNECTION_CREATE), Oe = E(i.CHANNEL_CONNECTION_UPDATE), { t: ke } = se(), O = (e, t) => {
106
+ let n = ke(e);
106
107
  return n === e ? t : n;
107
- }, j = O.state, [M, N] = c(null), [P, F] = c(j?.showCredentialsForm || !1), [I, L] = c(j?.pendingCredentials || {}), [Ce, R] = c(!1), [z, B] = c(null), [we, V] = c(!1), [H, U] = c(""), [W, Te] = c(() => A("channel.testNotificationSubject", "Test Notification")), [G, Ee] = c(() => A("channel.testNotificationBody", "This is a test notification from Burdenoff Channel Service.")), [K, q] = c(null);
108
- ie(() => {
109
- (j?.pendingCredentials || j?.showCredentialsForm) && m(O.pathname, {
108
+ }, k = T.state, [A, j] = o(null), [M, N] = o(k?.showCredentialsForm || !1), [P, F] = o(k?.pendingCredentials || {}), [Ae, I] = o(!1), [L, R] = o(null), [je, z] = o(!1), [B, V] = o(""), [H, Me] = o(() => O("channel.testNotificationSubject", "Test Notification")), [U, Ne] = o(() => O("channel.testNotificationBody", "This is a test notification from Burdenoff Channel Service.")), [W, G] = o(null);
109
+ oe(() => {
110
+ (k?.pendingCredentials || k?.showCredentialsForm) && f(T.pathname, {
110
111
  replace: !0,
111
112
  state: null
112
113
  });
113
114
  }, []);
114
- let { channel: J, isLoading: De, error: Y, updateChannel: Oe, runHealthCheck: ke, createConnection: Ae, updateConnection: je, deleteConnection: Me, testConnection: Ne, sendTestNotification: Pe } = n(u), Fe = async () => {
115
- N("health");
115
+ let { channel: K, isLoading: Pe, error: q, updateChannel: Fe, runHealthCheck: Ie, createConnection: Le, updateConnection: Re, deleteConnection: ze, testConnection: Be, sendTestNotification: Ve } = n(c), He = async () => {
116
+ j("health");
116
117
  try {
117
- await ke();
118
+ await Ie();
118
119
  } catch (e) {
119
120
  console.error("[channel] Failed to run health check", e);
120
121
  } finally {
121
- N(null);
122
+ j(null);
122
123
  }
123
- }, Ie = async () => {
124
- if (J) {
125
- N("status");
124
+ }, Ue = async () => {
125
+ if (K) {
126
+ j("status");
126
127
  try {
127
- await Oe({ status: J.status === "ACTIVE" ? "INACTIVE" : "ACTIVE" });
128
+ await Fe({ status: K.status === "ACTIVE" ? "INACTIVE" : "ACTIVE" });
128
129
  } catch (e) {
129
130
  console.error("[channel] Failed to toggle channel status", e);
130
131
  } finally {
131
- N(null);
132
+ j(null);
132
133
  }
133
134
  }
134
- }, Le = async () => {
135
- if (J) {
136
- N("connection");
135
+ }, We = async () => {
136
+ if (K) {
137
+ j("connection");
137
138
  try {
138
- let e = "API_KEY", t = J.adapterType;
139
- t?.includes("BOT") ? e = "BOT_TOKEN" : t?.includes("WEBHOOK") ? e = "WEBHOOK" : t === "SMTP" && (e = "SMTP_IMAP"), await Ae({
139
+ let e = "API_KEY", t = K.adapterType;
140
+ t?.includes("BOT") ? e = "BOT_TOKEN" : t?.includes("WEBHOOK") ? e = "WEBHOOK" : t === "SMTP" && (e = "SMTP_IMAP"), await Le({
140
141
  authType: e,
141
- credentials: I
142
- }), F(!1), L({}), R(!1);
142
+ credentials: P
143
+ }), N(!1), F({}), I(!1);
143
144
  } catch (e) {
144
145
  console.error("[channel] Failed to create connection", e);
145
146
  } finally {
146
- N(null);
147
+ j(null);
147
148
  }
148
149
  }
149
- }, Re = async (e) => {
150
- N("connection");
150
+ }, Ge = async (e) => {
151
+ j("connection");
151
152
  try {
152
- await je(e, { credentials: I }), F(!1), L({}), R(!1);
153
+ await Re(e, { credentials: P }), N(!1), F({}), I(!1);
153
154
  } catch (e) {
154
155
  console.error("[channel] Failed to update connection", e);
155
156
  } finally {
156
- N(null);
157
+ j(null);
157
158
  }
158
- }, ze = async (n) => {
159
- e("medium"), N("delete-connection");
159
+ }, Ke = async (n) => {
160
+ e("medium"), j("delete-connection");
160
161
  try {
161
- await Me(n), t("success");
162
+ await ze(n), t("success");
162
163
  } catch (e) {
163
164
  t("error"), console.error("[channel] Failed to delete connection", e);
164
165
  } finally {
165
- N(null);
166
+ j(null);
166
167
  }
167
- }, Be = async (e) => {
168
- N("test"), B(null);
168
+ }, qe = async (e) => {
169
+ j("test"), R(null);
169
170
  try {
170
- let t = await Ne(e);
171
- t && B({
171
+ let t = await Be(e);
172
+ t && R({
172
173
  success: t.success,
173
- message: t.message || (t.success ? A("channel.connectionTestSuccess", "Connection successful!") : A("channel.connectionTestFailed", "Connection failed"))
174
+ message: t.message || (t.success ? O("channel.connectionTestSuccess", "Connection successful!") : O("channel.connectionTestFailed", "Connection failed"))
174
175
  });
175
176
  } catch (e) {
176
- console.error("[channel] Failed to test connection", e), B({
177
+ console.error("[channel] Failed to test connection", e), R({
177
178
  success: !1,
178
- message: A("channel.connectionTestRequestFailed", "Failed to test connection")
179
+ message: O("channel.connectionTestRequestFailed", "Failed to test connection")
179
180
  });
180
181
  } finally {
181
- N(null);
182
+ j(null);
182
183
  }
183
- }, Ve = async () => {
184
- if (H.trim()) {
185
- N("send-test"), q(null);
184
+ }, Je = async () => {
185
+ if (B.trim()) {
186
+ j("send-test"), G(null);
186
187
  try {
187
- let e = J?.platform === "EMAIL" ? {
188
- subject: W,
189
- html: `<p>${G}</p>`
190
- } : void 0, t = await Pe(H.trim(), G, e);
191
- t && q({
188
+ let e = K?.platform === "EMAIL" ? {
189
+ subject: H,
190
+ html: `<p>${U}</p>`
191
+ } : void 0, t = await Ve(B.trim(), U, e);
192
+ t && G({
192
193
  success: t.success,
193
194
  messageId: t.messageId,
194
195
  externalId: t.externalId,
@@ -201,8 +202,8 @@ function O() {
201
202
  } : null
202
203
  });
203
204
  } catch (e) {
204
- let t = e instanceof Error ? e.message : A("channel.sendTestNotificationFailed", "Failed to send test notification");
205
- console.error("[channel] Failed to send test notification", e), q({
205
+ let t = e instanceof Error ? e.message : O("channel.sendTestNotificationFailed", "Failed to send test notification");
206
+ console.error("[channel] Failed to send test notification", e), G({
206
207
  success: !1,
207
208
  error: {
208
209
  code: "SEND_FAILED",
@@ -211,378 +212,387 @@ function O() {
211
212
  }
212
213
  });
213
214
  } finally {
214
- N(null);
215
+ j(null);
215
216
  }
216
217
  }
217
- }, He = (e) => {
218
+ }, J = (e) => {
218
219
  switch (e) {
219
- case "EMAIL": return A("channel.recipientPlaceholder.email", "email@example.com");
220
- case "SMS": return A("channel.recipientPlaceholder.phone", "+1234567890");
221
- case "PUSH": return A("channel.recipientPlaceholder.deviceToken", "Device token");
222
- case "SLACK": return A("channel.recipientPlaceholder.slack", "Channel ID or User ID");
223
- case "TEAMS": return A("channel.recipientPlaceholder.channelId", "Channel ID");
224
- case "DISCORD": return A("channel.recipientPlaceholder.channelId", "Channel ID");
225
- case "WHATSAPP": return A("channel.recipientPlaceholder.phone", "+1234567890");
226
- default: return A("channel.recipientPlaceholder.default", "Recipient");
220
+ case "EMAIL": return O("channel.recipientPlaceholder.email", "email@example.com");
221
+ case "SMS": return O("channel.recipientPlaceholder.phone", "+1234567890");
222
+ case "PUSH": return O("channel.recipientPlaceholder.deviceToken", "Device token");
223
+ case "SLACK": return O("channel.recipientPlaceholder.slack", "Channel ID or User ID");
224
+ case "TEAMS": return O("channel.recipientPlaceholder.channelId", "Channel ID");
225
+ case "DISCORD": return O("channel.recipientPlaceholder.channelId", "Channel ID");
226
+ case "WHATSAPP": return O("channel.recipientPlaceholder.phone", "+1234567890");
227
+ default: return O("channel.recipientPlaceholder.default", "Recipient");
227
228
  }
228
- }, Ue = (e) => {
229
+ }, Y = (e) => {
229
230
  switch (e) {
230
- case "EMAIL": return A("channel.recipientLabel.email", "Email Address");
231
+ case "EMAIL": return O("channel.recipientLabel.email", "Email Address");
231
232
  case "SMS":
232
- case "WHATSAPP": return A("channel.recipientLabel.phone", "Phone Number");
233
- case "PUSH": return A("channel.recipientLabel.deviceToken", "Device Token");
233
+ case "WHATSAPP": return O("channel.recipientLabel.phone", "Phone Number");
234
+ case "PUSH": return O("channel.recipientLabel.deviceToken", "Device Token");
234
235
  case "SLACK":
235
236
  case "TEAMS":
236
- case "DISCORD": return A("channel.recipientLabel.channelOrUserId", "Channel/User ID");
237
- default: return A("channel.recipientLabel.default", "Recipient");
237
+ case "DISCORD": return O("channel.recipientLabel.channelOrUserId", "Channel/User ID");
238
+ default: return O("channel.recipientLabel.default", "Recipient");
238
239
  }
239
- }, We = (e) => ({
240
- ...T[e] || {
240
+ }, Ye = (e) => ({
241
+ ...S[e] || {
241
242
  label: e,
242
243
  color: "bg-bg-sunken text-text-secondary"
243
244
  },
244
- label: s(e, te, A)
245
- }), Ge = (e) => ({
246
- ...E[e] || E.INACTIVE,
247
- label: s(e, o, A)
248
- }), Ke = (e) => ({
249
- ...D[e] || D.UNKNOWN,
250
- label: s(e, ee, A)
245
+ label: a(e, ne, O)
246
+ }), Xe = (e) => ({
247
+ ...C[e] || C.INACTIVE,
248
+ label: a(e, re, O)
249
+ }), Ze = (e) => ({
250
+ ...w[e] || w.UNKNOWN,
251
+ label: a(e, te, O)
251
252
  });
252
- if (De) return /* @__PURE__ */ C("div", {
253
+ if (Pe) return /* @__PURE__ */ b("div", {
253
254
  className: "flex items-center justify-center min-h-screen",
254
- children: /* @__PURE__ */ C(h, {
255
+ children: /* @__PURE__ */ b(p, {
255
256
  size: 32,
256
257
  className: "animate-spin text-accent-primary"
257
258
  })
258
259
  });
259
- if (Y || !J) return /* @__PURE__ */ C("div", {
260
+ if (q || !K) return /* @__PURE__ */ b("div", {
260
261
  className: "p-6",
261
- children: /* @__PURE__ */ w("div", {
262
+ children: /* @__PURE__ */ x("div", {
262
263
  className: "flex items-center gap-3 p-4 bg-status-error-bg-subtle border border-status-error-border rounded-lg",
263
264
  children: [
264
- /* @__PURE__ */ C(l, {
265
+ /* @__PURE__ */ b(s, {
265
266
  size: 20,
266
267
  className: "text-status-error-text"
267
268
  }),
268
- /* @__PURE__ */ C("div", { children: /* @__PURE__ */ C("p", {
269
+ /* @__PURE__ */ b("div", { children: /* @__PURE__ */ b("p", {
269
270
  className: "text-sm font-medium text-status-error-text",
270
- children: Y || A("channel.channelNotFound", "Channel not found")
271
+ children: q || O("channel.channelNotFound", "Channel not found")
271
272
  }) }),
272
- /* @__PURE__ */ C("button", {
273
- onClick: () => m(-1),
273
+ /* @__PURE__ */ b("button", {
274
+ type: "button",
275
+ onClick: () => f(-1),
274
276
  className: "ml-auto px-3 py-1 text-sm text-status-error-text hover:bg-status-error-bg-subtle rounded transition-colors",
275
- children: A("channel.goBack", "Go Back")
277
+ children: O("channel.goBack", "Go Back")
276
278
  })
277
279
  ]
278
280
  })
279
281
  });
280
- let X = We(J.platform), Z = Ge(J.status), Q = Ke(J.connectionHealth), qe = Z.icon, Je = Q.icon, $ = J.connection;
281
- return /* @__PURE__ */ C(r, {
282
+ let X = Ye(K.platform), Z = Xe(K.status), Q = Ze(K.connectionHealth), Qe = Z.icon, $e = Q.icon, $ = K.connection;
283
+ return /* @__PURE__ */ b(r, {
282
284
  permission: i.CHANNEL_READ,
283
- children: /* @__PURE__ */ w("div", {
285
+ children: /* @__PURE__ */ x("div", {
284
286
  className: "space-y-6 p-3 sm:p-6",
285
287
  children: [
286
- /* @__PURE__ */ w("div", {
288
+ /* @__PURE__ */ x("div", {
287
289
  className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
288
- children: [/* @__PURE__ */ w("div", {
290
+ children: [/* @__PURE__ */ x("div", {
289
291
  className: "flex items-center gap-3",
290
- children: [/* @__PURE__ */ C("button", {
291
- onClick: () => m(-1),
292
+ children: [/* @__PURE__ */ b("button", {
293
+ type: "button",
294
+ onClick: () => f(-1),
292
295
  className: "p-2 text-muted-foreground hover:text-foreground hover:bg-muted rounded-lg transition-colors",
293
- children: /* @__PURE__ */ C(oe, { size: 20 })
294
- }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w("div", {
296
+ children: /* @__PURE__ */ b(ce, { size: 20 })
297
+ }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
295
298
  className: "flex items-center gap-2",
296
- children: [/* @__PURE__ */ C(he, {
299
+ children: [/* @__PURE__ */ b(_e, {
297
300
  size: 24,
298
301
  className: "text-accent-primary"
299
- }), /* @__PURE__ */ C("h1", {
302
+ }), /* @__PURE__ */ b("h1", {
300
303
  className: "text-xl sm:text-2xl font-bold text-foreground",
301
- children: J.name
304
+ children: K.name
302
305
  })]
303
- }), J.description && /* @__PURE__ */ C("p", {
306
+ }), K.description && /* @__PURE__ */ b("p", {
304
307
  className: "text-sm text-muted-foreground mt-1",
305
- children: J.description
308
+ children: K.description
306
309
  })] })]
307
- }), /* @__PURE__ */ w("div", {
310
+ }), /* @__PURE__ */ x("div", {
308
311
  className: "flex items-center gap-2",
309
312
  children: [
310
- /* @__PURE__ */ C(r, {
313
+ /* @__PURE__ */ b(r, {
311
314
  permission: i.CHANNEL_EXECUTE,
312
- children: /* @__PURE__ */ w("button", {
313
- onClick: Fe,
314
- disabled: M === "health",
315
+ children: /* @__PURE__ */ x("button", {
316
+ type: "button",
317
+ onClick: He,
318
+ disabled: A === "health",
315
319
  className: "flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground hover:text-status-info-text hover:bg-status-info-bg-subtle rounded-lg transition-colors disabled:opacity-50",
316
- children: [M === "health" ? /* @__PURE__ */ C(h, {
320
+ children: [A === "health" ? /* @__PURE__ */ b(p, {
317
321
  size: 16,
318
322
  className: "animate-spin"
319
- }) : /* @__PURE__ */ C(ge, { size: 16 }), A("channel.healthCheck", "Health Check")]
323
+ }) : /* @__PURE__ */ b(ve, { size: 16 }), O("channel.healthCheck", "Health Check")]
320
324
  })
321
325
  }),
322
- /* @__PURE__ */ C(r, {
326
+ /* @__PURE__ */ b(r, {
323
327
  permission: i.CHANNEL_UPDATE,
324
- children: /* @__PURE__ */ w("button", {
325
- onClick: Ie,
326
- disabled: M === "status",
327
- className: `flex items-center gap-2 px-3 py-2 text-sm rounded-lg transition-colors disabled:opacity-50 ${J.status === "ACTIVE" ? "text-status-warning-text hover:bg-status-warning-bg-subtle" : "text-status-success-text hover:bg-status-success-bg-subtle"}`,
328
- children: [M === "status" ? /* @__PURE__ */ C(h, {
328
+ children: /* @__PURE__ */ x("button", {
329
+ type: "button",
330
+ onClick: Ue,
331
+ disabled: A === "status",
332
+ className: `flex items-center gap-2 px-3 py-2 text-sm rounded-lg transition-colors disabled:opacity-50 ${K.status === "ACTIVE" ? "text-status-warning-text hover:bg-status-warning-bg-subtle" : "text-status-success-text hover:bg-status-success-bg-subtle"}`,
333
+ children: [A === "status" ? /* @__PURE__ */ b(p, {
329
334
  size: 16,
330
335
  className: "animate-spin"
331
- }) : J.status === "ACTIVE" ? /* @__PURE__ */ C(_, { size: 16 }) : /* @__PURE__ */ C(me, { size: 16 }), J.status === "ACTIVE" ? A("channel.deactivate", "Deactivate") : A("channel.activate", "Activate")]
336
+ }) : K.status === "ACTIVE" ? /* @__PURE__ */ b(h, { size: 16 }) : /* @__PURE__ */ b(ge, { size: 16 }), K.status === "ACTIVE" ? O("channel.deactivate", "Deactivate") : O("channel.activate", "Activate")]
332
337
  })
333
338
  }),
334
- /* @__PURE__ */ w("button", {
339
+ /* @__PURE__ */ x("button", {
340
+ type: "button",
335
341
  onClick: () => {
336
- V(!0), q(null), U("");
342
+ z(!0), G(null), V("");
337
343
  },
338
- disabled: !J.connection,
344
+ disabled: !K.connection,
339
345
  className: "flex items-center gap-2 px-3 py-2 text-sm text-accent-primary hover:bg-accent-primary/10 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
340
- title: J.connection ? A("channel.sendTestNotification", "Send test notification") : A("channel.configureCredentialsFirst", "Configure credentials first"),
341
- children: [/* @__PURE__ */ C(y, { size: 16 }), A("channel.testChannel", "Test Channel")]
346
+ title: K.connection ? O("channel.sendTestNotification", "Send test notification") : O("channel.configureCredentialsFirst", "Configure credentials first"),
347
+ children: [/* @__PURE__ */ b(g, { size: 16 }), O("channel.testChannel", "Test Channel")]
342
348
  }),
343
- /* @__PURE__ */ w("button", {
344
- onClick: () => m("./edit"),
349
+ D && /* @__PURE__ */ x("button", {
350
+ type: "button",
351
+ onClick: () => f("./edit"),
345
352
  className: "flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-text bg-action-primary-bg hover:bg-action-primary-bg-hover rounded-lg transition-colors shadow-sm",
346
- children: [/* @__PURE__ */ C(g, { size: 16 }), A("channel.edit", "Edit")]
353
+ children: [/* @__PURE__ */ b(m, { size: 16 }), O("channel.edit", "Edit")]
347
354
  })
348
355
  ]
349
356
  })]
350
357
  }),
351
- /* @__PURE__ */ w("div", {
358
+ /* @__PURE__ */ x("div", {
352
359
  className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
353
360
  children: [
354
- /* @__PURE__ */ w("div", {
361
+ /* @__PURE__ */ x("div", {
355
362
  className: "p-4 bg-surface border border-border rounded-lg",
356
- children: [/* @__PURE__ */ C("p", {
363
+ children: [/* @__PURE__ */ b("p", {
357
364
  className: "text-xs text-muted-foreground mb-1",
358
- children: A("channel.platform", "Platform")
359
- }), /* @__PURE__ */ C("span", {
365
+ children: O("channel.platform", "Platform")
366
+ }), /* @__PURE__ */ b("span", {
360
367
  className: `inline-flex px-2 py-1 text-sm font-semibold rounded-full ${X.color}`,
361
368
  children: X.label
362
369
  })]
363
370
  }),
364
- /* @__PURE__ */ w("div", {
371
+ /* @__PURE__ */ x("div", {
365
372
  className: "p-4 bg-surface border border-border rounded-lg",
366
- children: [/* @__PURE__ */ C("p", {
373
+ children: [/* @__PURE__ */ b("p", {
367
374
  className: "text-xs text-muted-foreground mb-1",
368
- children: A("channel.status", "Status")
369
- }), /* @__PURE__ */ w("div", {
375
+ children: O("channel.status", "Status")
376
+ }), /* @__PURE__ */ x("div", {
370
377
  className: "flex items-center gap-2",
371
- children: [/* @__PURE__ */ C(qe, {
378
+ children: [/* @__PURE__ */ b(Qe, {
372
379
  size: 16,
373
380
  className: Z.color.split(" ")[0]
374
- }), /* @__PURE__ */ C("span", {
381
+ }), /* @__PURE__ */ b("span", {
375
382
  className: `px-2 py-1 text-sm font-medium rounded-full ${Z.color}`,
376
383
  children: Z.label
377
384
  })]
378
385
  })]
379
386
  }),
380
- /* @__PURE__ */ w("div", {
387
+ /* @__PURE__ */ x("div", {
381
388
  className: "p-4 bg-surface border border-border rounded-lg",
382
389
  children: [
383
- /* @__PURE__ */ C("p", {
390
+ /* @__PURE__ */ b("p", {
384
391
  className: "text-xs text-muted-foreground mb-1",
385
- children: A("channel.connectionHealth", "Connection Health")
392
+ children: O("channel.connectionHealth", "Connection Health")
386
393
  }),
387
- /* @__PURE__ */ w("div", {
394
+ /* @__PURE__ */ x("div", {
388
395
  className: "flex items-center gap-2",
389
- children: [/* @__PURE__ */ C(Je, {
396
+ children: [/* @__PURE__ */ b($e, {
390
397
  size: 16,
391
398
  className: Q.color
392
- }), /* @__PURE__ */ C("span", {
399
+ }), /* @__PURE__ */ b("span", {
393
400
  className: `text-sm font-medium ${Q.color}`,
394
401
  children: Q.label
395
402
  })]
396
403
  }),
397
- J.lastHealthCheckAt && /* @__PURE__ */ w("p", {
404
+ K.lastHealthCheckAt && /* @__PURE__ */ x("p", {
398
405
  className: "text-xs text-muted-foreground mt-1",
399
406
  children: [
400
- A("channel.lastCheck", "Last check"),
407
+ O("channel.lastCheck", "Last check"),
401
408
  ":",
402
409
  " ",
403
- new Date(J.lastHealthCheckAt).toLocaleString()
410
+ new Date(K.lastHealthCheckAt).toLocaleString()
404
411
  ]
405
412
  })
406
413
  ]
407
414
  }),
408
- /* @__PURE__ */ w("div", {
415
+ /* @__PURE__ */ x("div", {
409
416
  className: "p-4 bg-surface border border-border rounded-lg",
410
- children: [/* @__PURE__ */ C("p", {
417
+ children: [/* @__PURE__ */ b("p", {
411
418
  className: "text-xs text-muted-foreground mb-1",
412
- children: A("channel.connection", "Connection")
413
- }), /* @__PURE__ */ w("div", {
419
+ children: O("channel.connection", "Connection")
420
+ }), /* @__PURE__ */ x("div", {
414
421
  className: "flex items-center gap-2",
415
- children: [/* @__PURE__ */ C(f, {
422
+ children: [/* @__PURE__ */ b(u, {
416
423
  size: 16,
417
- className: J.isConnected ? "text-status-success-text" : "text-muted-foreground"
418
- }), /* @__PURE__ */ C("span", {
419
- className: `text-sm font-medium ${J.isConnected ? "text-status-success-text" : "text-muted-foreground"}`,
420
- children: J.isConnected ? A("channel.connected", "Connected") : A("channel.notConnected", "Not Connected")
424
+ className: K.isConnected ? "text-status-success-text" : "text-muted-foreground"
425
+ }), /* @__PURE__ */ b("span", {
426
+ className: `text-sm font-medium ${K.isConnected ? "text-status-success-text" : "text-muted-foreground"}`,
427
+ children: K.isConnected ? O("channel.connected", "Connected") : O("channel.notConnected", "Not Connected")
421
428
  })]
422
429
  })]
423
430
  })
424
431
  ]
425
432
  }),
426
- /* @__PURE__ */ w("div", {
433
+ /* @__PURE__ */ x("div", {
427
434
  className: "p-4 bg-surface border border-border rounded-lg",
428
435
  children: [
429
- /* @__PURE__ */ C("h2", {
436
+ /* @__PURE__ */ b("h2", {
430
437
  className: "text-lg font-semibold text-foreground mb-4",
431
- children: A("channel.channelDetails", "Channel Details")
438
+ children: O("channel.channelDetails", "Channel Details")
432
439
  }),
433
- /* @__PURE__ */ w("div", {
440
+ /* @__PURE__ */ x("div", {
434
441
  className: "grid gap-4 sm:grid-cols-2",
435
442
  children: [
436
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
443
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
437
444
  className: "text-xs text-muted-foreground",
438
- children: A("channel.adapterType", "Adapter Type")
439
- }), /* @__PURE__ */ C("p", {
445
+ children: O("channel.adapterType", "Adapter Type")
446
+ }), /* @__PURE__ */ b("p", {
440
447
  className: "text-sm font-medium text-foreground",
441
- children: J.adapterType?.replace(/_/g, " ") || A("channel.notConfigured", "Not configured")
448
+ children: K.adapterType?.replace(/_/g, " ") || O("channel.notConfigured", "Not configured")
442
449
  })] }),
443
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
450
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
444
451
  className: "text-xs text-muted-foreground",
445
- children: A("channel.priority", "Priority")
446
- }), /* @__PURE__ */ C("p", {
452
+ children: O("channel.priority", "Priority")
453
+ }), /* @__PURE__ */ b("p", {
447
454
  className: "text-sm font-medium text-foreground",
448
- children: J.priority
455
+ children: K.priority
449
456
  })] }),
450
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
457
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
451
458
  className: "text-xs text-muted-foreground",
452
- children: A("channel.consecutiveFailures", "Consecutive Failures")
453
- }), /* @__PURE__ */ C("p", {
459
+ children: O("channel.consecutiveFailures", "Consecutive Failures")
460
+ }), /* @__PURE__ */ b("p", {
454
461
  className: "text-sm font-medium text-foreground",
455
- children: J.consecutiveFailures
462
+ children: K.consecutiveFailures
456
463
  })] }),
457
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
464
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
458
465
  className: "text-xs text-muted-foreground",
459
- children: A("channel.messages24h", "Messages (24h)")
460
- }), /* @__PURE__ */ C("p", {
466
+ children: O("channel.messages24h", "Messages (24h)")
467
+ }), /* @__PURE__ */ b("p", {
461
468
  className: "text-sm font-medium text-foreground",
462
- children: J.messageCount24h
469
+ children: K.messageCount24h
463
470
  })] }),
464
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
471
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
465
472
  className: "text-xs text-muted-foreground",
466
- children: A("channel.createdAt", "Created At")
467
- }), /* @__PURE__ */ C("p", {
473
+ children: O("channel.createdAt", "Created At")
474
+ }), /* @__PURE__ */ b("p", {
468
475
  className: "text-sm font-medium text-foreground",
469
- children: new Date(J.createdAt).toLocaleString()
476
+ children: new Date(K.createdAt).toLocaleString()
470
477
  })] }),
471
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
478
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
472
479
  className: "text-xs text-muted-foreground",
473
- children: A("channel.updatedAt", "Updated At")
474
- }), /* @__PURE__ */ C("p", {
480
+ children: O("channel.updatedAt", "Updated At")
481
+ }), /* @__PURE__ */ b("p", {
475
482
  className: "text-sm font-medium text-foreground",
476
- children: new Date(J.updatedAt).toLocaleString()
483
+ children: new Date(K.updatedAt).toLocaleString()
477
484
  })] })
478
485
  ]
479
486
  }),
480
- J.tagAssignments && J.tagAssignments.length > 0 && /* @__PURE__ */ w("div", {
487
+ K.tagAssignments && K.tagAssignments.length > 0 && /* @__PURE__ */ x("div", {
481
488
  className: "mt-4",
482
- children: [/* @__PURE__ */ C("p", {
489
+ children: [/* @__PURE__ */ b("p", {
483
490
  className: "text-xs text-muted-foreground mb-1.5",
484
- children: A("channel.tags", "Tags")
485
- }), /* @__PURE__ */ C("div", {
491
+ children: O("channel.tags", "Tags")
492
+ }), /* @__PURE__ */ b("div", {
486
493
  className: "flex flex-wrap gap-1.5",
487
494
  "aria-label": "Channel tags",
488
- children: J.tagAssignments.map((e) => /* @__PURE__ */ C(Se, {
495
+ children: K.tagAssignments.map((e) => /* @__PURE__ */ b(Ee, {
489
496
  id: e.tagId,
490
497
  label: e.tagId,
491
498
  size: "md"
492
499
  }, e.id))
493
500
  })]
494
501
  }),
495
- J.healthCheckError && /* @__PURE__ */ w("div", {
502
+ K.healthCheckError && /* @__PURE__ */ x("div", {
496
503
  className: "mt-4 p-3 bg-status-error-bg-subtle border border-status-error-border rounded-lg",
497
- children: [/* @__PURE__ */ C("p", {
504
+ children: [/* @__PURE__ */ b("p", {
498
505
  className: "text-xs text-status-error-text font-medium",
499
- children: A("channel.lastHealthCheckError", "Last Health Check Error")
500
- }), /* @__PURE__ */ C("p", {
506
+ children: O("channel.lastHealthCheckError", "Last Health Check Error")
507
+ }), /* @__PURE__ */ b("p", {
501
508
  className: "text-sm text-status-error-text",
502
- children: J.healthCheckError
509
+ children: K.healthCheckError
503
510
  })]
504
511
  })
505
512
  ]
506
513
  }),
507
- /* @__PURE__ */ w("div", {
514
+ /* @__PURE__ */ x("div", {
508
515
  className: "grid gap-3 sm:grid-cols-3",
509
516
  children: [
510
- /* @__PURE__ */ w("button", {
511
- onClick: () => m("./deliveries"),
517
+ /* @__PURE__ */ x("button", {
518
+ type: "button",
519
+ onClick: () => f("./deliveries"),
512
520
  className: "flex items-center gap-3 p-3 bg-surface border border-border rounded-lg hover:bg-action-primary-bg/10 transition-colors text-left",
513
521
  children: [
514
- /* @__PURE__ */ C("div", {
522
+ /* @__PURE__ */ b("div", {
515
523
  className: "p-2 bg-accent-orange/10 rounded-lg",
516
- children: /* @__PURE__ */ C(ve, {
524
+ children: /* @__PURE__ */ b(_, {
517
525
  size: 18,
518
526
  className: "text-accent-orange"
519
527
  })
520
528
  }),
521
- /* @__PURE__ */ w("div", {
529
+ /* @__PURE__ */ x("div", {
522
530
  className: "flex-1 min-w-0",
523
- children: [/* @__PURE__ */ C("p", {
531
+ children: [/* @__PURE__ */ b("p", {
524
532
  className: "text-sm font-medium text-foreground",
525
- children: A("channel.deliveryHistory", "Delivery History")
526
- }), /* @__PURE__ */ C("p", {
533
+ children: O("channel.deliveryHistory", "Delivery History")
534
+ }), /* @__PURE__ */ b("p", {
527
535
  className: "text-xs text-muted-foreground truncate",
528
- children: A("channel.viewMessageDeliveries", "View message deliveries")
536
+ children: O("channel.viewMessageDeliveries", "View message deliveries")
529
537
  })]
530
538
  }),
531
- /* @__PURE__ */ C(d, {
539
+ /* @__PURE__ */ b(l, {
532
540
  size: 16,
533
541
  className: "text-muted-foreground shrink-0"
534
542
  })
535
543
  ]
536
544
  }),
537
- /* @__PURE__ */ w("button", {
538
- onClick: () => m("./webhooks"),
545
+ /* @__PURE__ */ x("button", {
546
+ type: "button",
547
+ onClick: () => f("./webhooks"),
539
548
  className: "flex items-center gap-3 p-3 bg-surface border border-border rounded-lg hover:bg-action-primary-bg/10 transition-colors text-left",
540
549
  children: [
541
- /* @__PURE__ */ C("div", {
550
+ /* @__PURE__ */ b("div", {
542
551
  className: "p-2 bg-accent-purple/10 rounded-lg",
543
- children: /* @__PURE__ */ C(se, {
552
+ children: /* @__PURE__ */ b(le, {
544
553
  size: 18,
545
554
  className: "text-accent-purple"
546
555
  })
547
556
  }),
548
- /* @__PURE__ */ w("div", {
557
+ /* @__PURE__ */ x("div", {
549
558
  className: "flex-1 min-w-0",
550
- children: [/* @__PURE__ */ C("p", {
559
+ children: [/* @__PURE__ */ b("p", {
551
560
  className: "text-sm font-medium text-foreground",
552
- children: A("channel.webhookEvents", "Webhook Events")
553
- }), /* @__PURE__ */ C("p", {
561
+ children: O("channel.webhookEvents", "Webhook Events")
562
+ }), /* @__PURE__ */ b("p", {
554
563
  className: "text-xs text-muted-foreground truncate",
555
- children: A("channel.viewIncomingWebhooks", "View incoming webhooks")
564
+ children: O("channel.viewIncomingWebhooks", "View incoming webhooks")
556
565
  })]
557
566
  }),
558
- /* @__PURE__ */ C(d, {
567
+ /* @__PURE__ */ b(l, {
559
568
  size: 16,
560
569
  className: "text-muted-foreground shrink-0"
561
570
  })
562
571
  ]
563
572
  }),
564
- /* @__PURE__ */ w("button", {
565
- onClick: () => m("./users"),
573
+ /* @__PURE__ */ x("button", {
574
+ type: "button",
575
+ onClick: () => f("./users"),
566
576
  className: "flex items-center gap-3 p-3 bg-surface border border-border rounded-lg hover:bg-action-primary-bg/10 transition-colors text-left",
567
577
  children: [
568
- /* @__PURE__ */ C("div", {
578
+ /* @__PURE__ */ b("div", {
569
579
  className: "p-2 bg-accent-blue/10 rounded-lg",
570
- children: /* @__PURE__ */ C(ye, {
580
+ children: /* @__PURE__ */ b(xe, {
571
581
  size: 18,
572
582
  className: "text-accent-blue"
573
583
  })
574
584
  }),
575
- /* @__PURE__ */ w("div", {
585
+ /* @__PURE__ */ x("div", {
576
586
  className: "flex-1 min-w-0",
577
- children: [/* @__PURE__ */ C("p", {
587
+ children: [/* @__PURE__ */ b("p", {
578
588
  className: "text-sm font-medium text-foreground",
579
- children: A("channel.channelUsers", "Channel Users")
580
- }), /* @__PURE__ */ C("p", {
589
+ children: O("channel.channelUsers", "Channel Users")
590
+ }), /* @__PURE__ */ b("p", {
581
591
  className: "text-xs text-muted-foreground truncate",
582
- children: A("channel.viewConnectedUsers", "View connected users")
592
+ children: O("channel.viewConnectedUsers", "View connected users")
583
593
  })]
584
594
  }),
585
- /* @__PURE__ */ C(d, {
595
+ /* @__PURE__ */ b(l, {
586
596
  size: 16,
587
597
  className: "text-muted-foreground shrink-0"
588
598
  })
@@ -590,349 +600,365 @@ function O() {
590
600
  })
591
601
  ]
592
602
  }),
593
- /* @__PURE__ */ w("div", {
603
+ /* @__PURE__ */ x("div", {
594
604
  className: "p-4 bg-surface border border-border rounded-lg",
595
605
  children: [
596
- /* @__PURE__ */ w("div", {
606
+ /* @__PURE__ */ x("div", {
597
607
  className: "flex items-center justify-between mb-4",
598
- children: [/* @__PURE__ */ w("div", {
608
+ children: [/* @__PURE__ */ x("div", {
599
609
  className: "flex items-center gap-2",
600
- children: [/* @__PURE__ */ C(ce, {
610
+ children: [/* @__PURE__ */ b(ue, {
601
611
  size: 20,
602
612
  className: "text-accent-primary"
603
- }), /* @__PURE__ */ C("h2", {
613
+ }), /* @__PURE__ */ b("h2", {
604
614
  className: "text-lg font-semibold text-foreground",
605
- children: A("channel.connectionAndCredentials", "Connection & Credentials")
615
+ children: O("channel.connectionAndCredentials", "Connection & Credentials")
606
616
  })]
607
- }), !$ && !P && /* @__PURE__ */ w("button", {
608
- onClick: () => F(!0),
617
+ }), De && !$ && !M && /* @__PURE__ */ x("button", {
618
+ type: "button",
619
+ onClick: () => N(!0),
609
620
  className: "flex items-center gap-2 px-3 py-2 text-sm font-medium text-action-primary-text bg-action-primary-bg hover:bg-action-primary-bg-hover rounded-lg transition-colors",
610
- children: [/* @__PURE__ */ C(pe, { size: 16 }), A("channel.addCredentials", "Add Credentials")]
621
+ children: [/* @__PURE__ */ b(he, { size: 16 }), O("channel.addCredentials", "Add Credentials")]
611
622
  })]
612
623
  }),
613
- $ && !P && /* @__PURE__ */ w("div", {
624
+ $ && !M && /* @__PURE__ */ x("div", {
614
625
  className: "space-y-4",
615
626
  children: [
616
- /* @__PURE__ */ w("div", {
627
+ /* @__PURE__ */ x("div", {
617
628
  className: "grid gap-4 sm:grid-cols-2",
618
629
  children: [
619
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
630
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
620
631
  className: "text-xs text-muted-foreground",
621
- children: A("channel.authType", "Auth Type")
622
- }), /* @__PURE__ */ C("p", {
632
+ children: O("channel.authType", "Auth Type")
633
+ }), /* @__PURE__ */ b("p", {
623
634
  className: "text-sm font-medium text-foreground",
624
- children: s($.authType, a, A)
635
+ children: a($.authType, ee, O)
625
636
  })] }),
626
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
637
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
627
638
  className: "text-xs text-muted-foreground",
628
- children: A("channel.status", "Status")
629
- }), /* @__PURE__ */ w("div", {
639
+ children: O("channel.status", "Status")
640
+ }), /* @__PURE__ */ x("div", {
630
641
  className: "flex items-center gap-2",
631
- children: [$.isHealthy ? /* @__PURE__ */ C(p, {
642
+ children: [$.isHealthy ? /* @__PURE__ */ b(d, {
632
643
  size: 14,
633
644
  className: "text-status-success-text"
634
- }) : /* @__PURE__ */ C(x, {
645
+ }) : /* @__PURE__ */ b(y, {
635
646
  size: 14,
636
647
  className: "text-status-error-text"
637
- }), /* @__PURE__ */ C("span", {
648
+ }), /* @__PURE__ */ b("span", {
638
649
  className: `text-sm font-medium ${$.isHealthy ? "text-status-success-text" : "text-status-error-text"}`,
639
- children: $.isHealthy ? A("channel.healthy", "Healthy") : A("channel.unhealthy", "Unhealthy")
650
+ children: $.isHealthy ? O("channel.healthy", "Healthy") : O("channel.unhealthy", "Unhealthy")
640
651
  })]
641
652
  })] }),
642
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
653
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
643
654
  className: "text-xs text-muted-foreground",
644
- children: A("channel.lastTested", "Last Tested")
645
- }), /* @__PURE__ */ C("p", {
655
+ children: O("channel.lastTested", "Last Tested")
656
+ }), /* @__PURE__ */ b("p", {
646
657
  className: "text-sm font-medium text-foreground",
647
- children: $.lastTestedAt ? new Date($.lastTestedAt).toLocaleString() : A("channel.never", "Never")
658
+ children: $.lastTestedAt ? new Date($.lastTestedAt).toLocaleString() : O("channel.never", "Never")
648
659
  })] }),
649
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
660
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
650
661
  className: "text-xs text-muted-foreground",
651
- children: A("channel.testStatus", "Test Status")
652
- }), /* @__PURE__ */ C("p", {
662
+ children: O("channel.testStatus", "Test Status")
663
+ }), /* @__PURE__ */ b("p", {
653
664
  className: "text-sm font-medium text-foreground",
654
- children: $.testStatus || A("channel.notTested", "Not tested")
665
+ children: $.testStatus || O("channel.notTested", "Not tested")
655
666
  })] }),
656
- $.tokenExpiresAt && /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
667
+ $.tokenExpiresAt && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
657
668
  className: "text-xs text-muted-foreground",
658
- children: A("channel.tokenExpires", "Token Expires")
659
- }), /* @__PURE__ */ w("p", {
669
+ children: O("channel.tokenExpires", "Token Expires")
670
+ }), /* @__PURE__ */ x("p", {
660
671
  className: `text-sm font-medium ${$.needsTokenRefresh ? "text-status-warning-text" : "text-foreground"}`,
661
- children: [new Date($.tokenExpiresAt).toLocaleString(), $.daysUntilExpiry !== void 0 && /* @__PURE__ */ w("span", {
672
+ children: [new Date($.tokenExpiresAt).toLocaleString(), $.daysUntilExpiry !== void 0 && /* @__PURE__ */ x("span", {
662
673
  className: "text-xs text-muted-foreground ml-1",
663
674
  children: [
664
675
  "(",
665
676
  $.daysUntilExpiry,
666
677
  " ",
667
- A("channel.days", "days"),
678
+ O("channel.days", "days"),
668
679
  ")"
669
680
  ]
670
681
  })]
671
682
  })] })
672
683
  ]
673
684
  }),
674
- z && /* @__PURE__ */ C("div", {
675
- className: `p-3 rounded-lg ${z.success ? "bg-status-success-bg-subtle border border-status-success-border" : "bg-status-error-bg-subtle border border-status-error-border"}`,
676
- children: /* @__PURE__ */ w("div", {
685
+ L && /* @__PURE__ */ b("div", {
686
+ className: `p-3 rounded-lg ${L.success ? "bg-status-success-bg-subtle border border-status-success-border" : "bg-status-error-bg-subtle border border-status-error-border"}`,
687
+ children: /* @__PURE__ */ x("div", {
677
688
  className: "flex items-center gap-2",
678
- children: [z.success ? /* @__PURE__ */ C(p, {
689
+ children: [L.success ? /* @__PURE__ */ b(d, {
679
690
  size: 16,
680
691
  className: "text-status-success-text"
681
- }) : /* @__PURE__ */ C(x, {
692
+ }) : /* @__PURE__ */ b(y, {
682
693
  size: 16,
683
694
  className: "text-status-error-text"
684
- }), /* @__PURE__ */ C("p", {
685
- className: `text-sm font-medium ${z.success ? "text-status-success-text" : "text-status-error-text"}`,
686
- children: z.message
695
+ }), /* @__PURE__ */ b("p", {
696
+ className: `text-sm font-medium ${L.success ? "text-status-success-text" : "text-status-error-text"}`,
697
+ children: L.message
687
698
  })]
688
699
  })
689
700
  }),
690
- /* @__PURE__ */ w("div", {
701
+ /* @__PURE__ */ x("div", {
691
702
  className: "flex items-center gap-2 pt-2",
692
703
  children: [
693
- /* @__PURE__ */ C(r, {
704
+ /* @__PURE__ */ b(r, {
694
705
  permission: i.CHANNEL_CONNECTION_UPDATE,
695
- children: /* @__PURE__ */ w("button", {
696
- onClick: () => Be($.id),
697
- disabled: M === "test",
706
+ children: /* @__PURE__ */ x("button", {
707
+ type: "button",
708
+ onClick: () => qe($.id),
709
+ disabled: A === "test",
698
710
  className: "flex items-center gap-2 px-3 py-2 text-sm text-status-info-text hover:bg-status-info-bg-subtle rounded-lg transition-colors disabled:opacity-50",
699
- children: [M === "test" ? /* @__PURE__ */ C(h, {
711
+ children: [A === "test" ? /* @__PURE__ */ b(p, {
700
712
  size: 16,
701
713
  className: "animate-spin"
702
- }) : /* @__PURE__ */ C(fe, { size: 16 }), A("channel.testConnection", "Test Connection")]
714
+ }) : /* @__PURE__ */ b(me, { size: 16 }), O("channel.testConnection", "Test Connection")]
703
715
  })
704
716
  }),
705
- /* @__PURE__ */ w("button", {
717
+ Oe && /* @__PURE__ */ x("button", {
718
+ type: "button",
706
719
  onClick: () => {
707
- F(!0), L($?.platformMetadata ?? {});
720
+ N(!0), F($?.platformMetadata ?? {});
708
721
  },
709
722
  className: "flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground hover:text-accent-primary hover:bg-accent-primary/10 rounded-lg transition-colors",
710
- children: [/* @__PURE__ */ C(g, { size: 16 }), A("channel.updateCredentials", "Update Credentials")]
723
+ children: [/* @__PURE__ */ b(m, { size: 16 }), O("channel.updateCredentials", "Update Credentials")]
711
724
  }),
712
- /* @__PURE__ */ C(r, {
725
+ /* @__PURE__ */ b(r, {
713
726
  permission: i.CHANNEL_CONNECTION_DELETE,
714
- children: /* @__PURE__ */ w("button", {
715
- onClick: () => ze($.id),
716
- disabled: M === "delete-connection",
727
+ children: /* @__PURE__ */ x("button", {
728
+ type: "button",
729
+ onClick: () => Ke($.id),
730
+ disabled: A === "delete-connection",
717
731
  className: "flex items-center gap-2 px-3 py-2 text-sm text-status-error-text hover:bg-status-error-bg-subtle rounded-lg transition-colors disabled:opacity-50",
718
- children: [M === "delete-connection" ? /* @__PURE__ */ C(h, {
732
+ children: [A === "delete-connection" ? /* @__PURE__ */ b(p, {
719
733
  size: 16,
720
734
  className: "animate-spin"
721
- }) : /* @__PURE__ */ C(_e, { size: 16 }), A("channel.remove", "Remove")]
735
+ }) : /* @__PURE__ */ b(be, { size: 16 }), O("channel.remove", "Remove")]
722
736
  })
723
737
  })
724
738
  ]
725
739
  })
726
740
  ]
727
741
  }),
728
- !$ && !P && /* @__PURE__ */ w("div", {
742
+ !$ && !M && /* @__PURE__ */ x("div", {
729
743
  className: "text-center py-8",
730
744
  children: [
731
- /* @__PURE__ */ C(f, {
745
+ /* @__PURE__ */ b(u, {
732
746
  size: 32,
733
747
  className: "mx-auto text-muted-foreground mb-3"
734
748
  }),
735
- /* @__PURE__ */ C("p", {
749
+ /* @__PURE__ */ b("p", {
736
750
  className: "text-sm text-muted-foreground mb-2",
737
- children: A("channel.noCredentialsConfigured", "No credentials configured for this channel")
751
+ children: O("channel.noCredentialsConfigured", "No credentials configured for this channel")
738
752
  }),
739
- /* @__PURE__ */ C("p", {
753
+ /* @__PURE__ */ b("p", {
740
754
  className: "text-xs text-muted-foreground",
741
- children: A("channel.addCredentialsHint", "Add credentials to enable message delivery through this channel")
755
+ children: O("channel.addCredentialsHint", "Add credentials to enable message delivery through this channel")
742
756
  })
743
757
  ]
744
758
  }),
745
- P && /* @__PURE__ */ w("div", {
759
+ M && /* @__PURE__ */ x("div", {
746
760
  className: "space-y-4",
747
761
  children: [
748
- !J.adapterType && /* @__PURE__ */ C("div", {
762
+ !K.adapterType && /* @__PURE__ */ b("div", {
749
763
  className: "p-3 bg-accent-orange/10 border border-accent-orange/30 rounded-lg",
750
- children: /* @__PURE__ */ w("div", {
764
+ children: /* @__PURE__ */ x("div", {
751
765
  className: "flex items-start gap-2",
752
- children: [/* @__PURE__ */ C(l, {
766
+ children: [/* @__PURE__ */ b(s, {
753
767
  size: 16,
754
768
  className: "text-accent-orange mt-0.5"
755
- }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
769
+ }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
756
770
  className: "text-sm font-medium text-accent-orange",
757
- children: A("channel.noAdapterTypeConfigured", "No adapter type configured")
758
- }), /* @__PURE__ */ C("p", {
771
+ children: O("channel.noAdapterTypeConfigured", "No adapter type configured")
772
+ }), /* @__PURE__ */ b("p", {
759
773
  className: "text-xs text-muted-foreground mt-1",
760
- children: A("channel.noAdapterTypeConfiguredHint", "You can still add credentials below. The system will attempt to validate them when the channel is configured with an adapter type.")
774
+ children: O("channel.noAdapterTypeConfiguredHint", "You can still add credentials below. The system will attempt to validate them when the channel is configured with an adapter type.")
761
775
  })] })]
762
776
  })
763
777
  }),
764
- /* @__PURE__ */ C(ne, {
765
- adapterType: J.adapterType ?? void 0,
766
- credentials: I,
767
- onChange: L,
768
- onValidationChange: (e) => R(e),
769
- disabled: M === "connection"
778
+ /* @__PURE__ */ b(ie, {
779
+ adapterType: K.adapterType ?? void 0,
780
+ credentials: P,
781
+ onChange: F,
782
+ onValidationChange: (e) => I(e),
783
+ disabled: A === "connection"
770
784
  }),
771
- J.adapterType && /* @__PURE__ */ C("div", {
785
+ K.adapterType && /* @__PURE__ */ b("div", {
772
786
  className: "pt-2",
773
- children: /* @__PURE__ */ C(re, {
774
- adapterType: J.adapterType,
775
- credentials: I
787
+ children: /* @__PURE__ */ b(ae, {
788
+ adapterType: K.adapterType,
789
+ credentials: P
776
790
  })
777
791
  }),
778
- /* @__PURE__ */ w("div", {
792
+ /* @__PURE__ */ x("div", {
779
793
  className: "flex items-center gap-2 pt-2 border-t border-border",
780
- children: [/* @__PURE__ */ C(r, {
794
+ children: [/* @__PURE__ */ b(r, {
781
795
  permission: i.CHANNEL_CONNECTION_UPDATE,
782
- children: /* @__PURE__ */ w("button", {
796
+ children: /* @__PURE__ */ x("button", {
797
+ type: "button",
783
798
  onClick: () => {
784
- $ ? Re($.id) : Le();
799
+ $ ? Ge($.id) : We();
785
800
  },
786
- disabled: M === "connection" || !Ce && !!J.adapterType,
801
+ disabled: A === "connection" || !Ae && !!K.adapterType,
787
802
  className: "flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-text bg-action-primary-bg hover:bg-action-primary-bg-hover rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
788
- children: [M === "connection" ? /* @__PURE__ */ C(h, {
803
+ children: [A === "connection" ? /* @__PURE__ */ b(p, {
789
804
  size: 16,
790
805
  className: "animate-spin"
791
- }) : /* @__PURE__ */ C(v, { size: 16 }), $ ? A("channel.updateCredentials", "Update Credentials") : A("channel.saveCredentials", "Save Credentials")]
806
+ }) : /* @__PURE__ */ b(ye, { size: 16 }), $ ? O("channel.updateCredentials", "Update Credentials") : O("channel.saveCredentials", "Save Credentials")]
792
807
  })
793
- }), /* @__PURE__ */ w("button", {
808
+ }), /* @__PURE__ */ x("button", {
809
+ type: "button",
794
810
  onClick: () => {
795
- F(!1), L({}), R(!1);
811
+ N(!1), F({}), I(!1);
796
812
  },
797
813
  className: "flex items-center gap-2 px-4 py-2 text-sm text-muted-foreground hover:bg-muted rounded-lg transition-colors",
798
- children: [/* @__PURE__ */ C(b, { size: 16 }), A("channel.cancel", "Cancel")]
814
+ children: [/* @__PURE__ */ b(v, { size: 16 }), O("channel.cancel", "Cancel")]
799
815
  })]
800
816
  })
801
817
  ]
802
818
  })
803
819
  ]
804
820
  }),
805
- we && /* @__PURE__ */ C("div", {
821
+ je && /* @__PURE__ */ b("div", {
806
822
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50",
807
- children: /* @__PURE__ */ w("div", {
823
+ children: /* @__PURE__ */ x("div", {
808
824
  className: "w-full max-w-md mx-4 p-6 bg-surface border border-border rounded-lg shadow-xl",
809
- children: [/* @__PURE__ */ w("div", {
825
+ children: [/* @__PURE__ */ x("div", {
810
826
  className: "flex items-center justify-between mb-4",
811
- children: [/* @__PURE__ */ w("div", {
827
+ children: [/* @__PURE__ */ x("div", {
812
828
  className: "flex items-center gap-2",
813
- children: [/* @__PURE__ */ C(y, {
829
+ children: [/* @__PURE__ */ b(g, {
814
830
  size: 20,
815
831
  className: "text-accent-primary"
816
- }), /* @__PURE__ */ w("h3", {
832
+ }), /* @__PURE__ */ x("h3", {
817
833
  className: "text-lg font-semibold text-foreground",
818
834
  children: [
819
835
  "Test ",
820
- T[J.platform]?.label || J.platform,
836
+ S[K.platform]?.label || K.platform,
821
837
  " Channel"
822
838
  ]
823
839
  })]
824
- }), /* @__PURE__ */ C("button", {
825
- onClick: () => V(!1),
840
+ }), /* @__PURE__ */ b("button", {
841
+ type: "button",
842
+ onClick: () => z(!1),
826
843
  className: "p-1 text-muted-foreground hover:text-foreground rounded",
827
- children: /* @__PURE__ */ C(b, { size: 20 })
844
+ children: /* @__PURE__ */ b(v, { size: 20 })
828
845
  })]
829
- }), /* @__PURE__ */ w("div", {
846
+ }), /* @__PURE__ */ x("div", {
830
847
  className: "space-y-4",
831
848
  children: [
832
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w("label", {
849
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("label", {
833
850
  className: "block text-sm font-medium text-foreground mb-1.5",
834
851
  children: [
835
- Ue(J.platform),
852
+ Y(K.platform),
836
853
  " ",
837
- /* @__PURE__ */ C("span", {
854
+ /* @__PURE__ */ b("span", {
838
855
  className: "text-status-error-text",
839
856
  children: "*"
840
857
  })
841
858
  ]
842
- }), /* @__PURE__ */ w("div", {
859
+ }), /* @__PURE__ */ x("div", {
843
860
  className: "relative",
844
- children: [/* @__PURE__ */ C("input", {
861
+ children: [/* @__PURE__ */ b("input", {
862
+ "aria-label": J(K.platform),
845
863
  type: "text",
846
- value: H,
847
- onChange: (e) => U(e.target.value),
848
- placeholder: He(J.platform),
864
+ value: B,
865
+ onChange: (e) => V(e.target.value),
866
+ placeholder: J(K.platform),
849
867
  className: "w-full pl-9 pr-3 py-2 text-sm bg-surface border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
850
- }), /* @__PURE__ */ C("div", {
868
+ }), /* @__PURE__ */ b("div", {
851
869
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground",
852
- children: J.platform === "EMAIL" ? /* @__PURE__ */ C(le, { size: 16 }) : J.platform === "SMS" || J.platform === "WHATSAPP" ? /* @__PURE__ */ C(de, { size: 16 }) : /* @__PURE__ */ C(ue, { size: 16 })
870
+ children: K.platform === "EMAIL" ? /* @__PURE__ */ b(de, { size: 16 }) : K.platform === "SMS" || K.platform === "WHATSAPP" ? /* @__PURE__ */ b(pe, { size: 16 }) : /* @__PURE__ */ b(fe, { size: 16 })
853
871
  })]
854
872
  })] }),
855
- J.platform === "EMAIL" && /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
873
+ K.platform === "EMAIL" && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
874
+ htmlFor: "channel-details-test-subject",
856
875
  className: "block text-sm font-medium text-foreground mb-1.5",
857
876
  children: "Subject"
858
- }), /* @__PURE__ */ C("input", {
877
+ }), /* @__PURE__ */ b("input", {
878
+ id: "channel-details-test-subject",
879
+ "aria-label": "Email subject",
859
880
  type: "text",
860
- value: W,
861
- onChange: (e) => Te(e.target.value),
881
+ value: H,
882
+ onChange: (e) => Me(e.target.value),
862
883
  placeholder: "Email subject",
863
884
  className: "w-full px-3 py-2 text-sm bg-surface border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
864
885
  })] }),
865
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
886
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
887
+ htmlFor: "channel-details-test-message",
866
888
  className: "block text-sm font-medium text-foreground mb-1.5",
867
889
  children: "Message"
868
- }), /* @__PURE__ */ C("textarea", {
869
- value: G,
870
- onChange: (e) => Ee(e.target.value),
890
+ }), /* @__PURE__ */ b("textarea", {
891
+ id: "channel-details-test-message",
892
+ "aria-label": "Test message content",
893
+ value: U,
894
+ onChange: (e) => Ne(e.target.value),
871
895
  placeholder: "Test message content",
872
896
  rows: 3,
873
897
  className: "w-full px-3 py-2 text-sm bg-surface border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-action-primary-bg resize-none"
874
898
  })] }),
875
- K && /* @__PURE__ */ C("div", {
876
- className: `p-3 rounded-lg ${K.success ? "bg-status-success-bg-subtle border border-status-success-border" : "bg-status-error-bg-subtle border border-status-error-border"}`,
877
- children: /* @__PURE__ */ w("div", {
899
+ W && /* @__PURE__ */ b("div", {
900
+ className: `p-3 rounded-lg ${W.success ? "bg-status-success-bg-subtle border border-status-success-border" : "bg-status-error-bg-subtle border border-status-error-border"}`,
901
+ children: /* @__PURE__ */ x("div", {
878
902
  className: "flex items-start gap-2",
879
- children: [K.success ? /* @__PURE__ */ C(p, {
903
+ children: [W.success ? /* @__PURE__ */ b(d, {
880
904
  size: 16,
881
905
  className: "text-status-success-text mt-0.5"
882
- }) : /* @__PURE__ */ C(x, {
906
+ }) : /* @__PURE__ */ b(y, {
883
907
  size: 16,
884
908
  className: "text-status-error-text mt-0.5"
885
- }), /* @__PURE__ */ w("div", {
909
+ }), /* @__PURE__ */ x("div", {
886
910
  className: "flex-1",
887
911
  children: [
888
- /* @__PURE__ */ C("p", {
889
- className: `text-sm font-medium ${K.success ? "text-status-success-text" : "text-status-error-text"}`,
890
- children: K.success ? A("channel.messageSentSuccess", "Message sent successfully!") : A("channel.messageSendFailed", "Failed to send message")
912
+ /* @__PURE__ */ b("p", {
913
+ className: `text-sm font-medium ${W.success ? "text-status-success-text" : "text-status-error-text"}`,
914
+ children: W.success ? O("channel.messageSentSuccess", "Message sent successfully!") : O("channel.messageSendFailed", "Failed to send message")
891
915
  }),
892
- K.messageId && /* @__PURE__ */ w("p", {
916
+ W.messageId && /* @__PURE__ */ x("p", {
893
917
  className: "text-xs text-success-600 mt-1",
894
- children: ["Message ID: ", K.messageId]
918
+ children: ["Message ID: ", W.messageId]
895
919
  }),
896
- K.externalId && /* @__PURE__ */ w("p", {
920
+ W.externalId && /* @__PURE__ */ x("p", {
897
921
  className: "text-xs text-muted-foreground mt-1",
898
- children: ["External ID: ", K.externalId]
922
+ children: ["External ID: ", W.externalId]
899
923
  }),
900
- K.status && /* @__PURE__ */ w("p", {
924
+ W.status && /* @__PURE__ */ x("p", {
901
925
  className: "text-xs text-muted-foreground mt-1",
902
- children: ["Status: ", K.status]
926
+ children: ["Status: ", W.status]
903
927
  }),
904
- K.error && /* @__PURE__ */ w("p", {
928
+ W.error && /* @__PURE__ */ x("p", {
905
929
  className: "text-xs text-status-error-text mt-1",
906
- children: [K.error.message, K.error.retryable && /* @__PURE__ */ C("span", {
930
+ children: [W.error.message, W.error.retryable && /* @__PURE__ */ b("span", {
907
931
  className: "text-warning-600 ml-1",
908
932
  children: "(will retry)"
909
933
  })]
910
934
  }),
911
- K.sentAt && /* @__PURE__ */ w("p", {
935
+ W.sentAt && /* @__PURE__ */ x("p", {
912
936
  className: "text-xs text-muted-foreground mt-1",
913
- children: ["Sent at: ", new Date(K.sentAt).toLocaleString()]
937
+ children: ["Sent at: ", new Date(W.sentAt).toLocaleString()]
914
938
  })
915
939
  ]
916
940
  })]
917
941
  })
918
942
  }),
919
- /* @__PURE__ */ w("div", {
943
+ /* @__PURE__ */ x("div", {
920
944
  className: "flex items-center gap-2 pt-2",
921
- children: [/* @__PURE__ */ C(r, {
945
+ children: [/* @__PURE__ */ b(r, {
922
946
  permission: i.CHANNEL_DELIVERY_SEND,
923
- children: /* @__PURE__ */ w("button", {
924
- onClick: Ve,
925
- disabled: M === "send-test" || !H.trim(),
947
+ children: /* @__PURE__ */ x("button", {
948
+ type: "button",
949
+ onClick: Je,
950
+ disabled: A === "send-test" || !B.trim(),
926
951
  className: "flex-1 flex items-center justify-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-text bg-action-primary-bg hover:bg-action-primary-bg-hover rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
927
- children: [M === "send-test" ? /* @__PURE__ */ C(h, {
952
+ children: [A === "send-test" ? /* @__PURE__ */ b(p, {
928
953
  size: 16,
929
954
  className: "animate-spin"
930
- }) : /* @__PURE__ */ C(y, { size: 16 }), A("channel.sendTest", "Send Test")]
955
+ }) : /* @__PURE__ */ b(g, { size: 16 }), O("channel.sendTest", "Send Test")]
931
956
  })
932
- }), /* @__PURE__ */ C("button", {
933
- onClick: () => V(!1),
957
+ }), /* @__PURE__ */ b("button", {
958
+ type: "button",
959
+ onClick: () => z(!1),
934
960
  className: "px-4 py-2 text-sm text-muted-foreground hover:bg-muted rounded-lg transition-colors",
935
- children: A("channel.close", "Close")
961
+ children: O("channel.close", "Close")
936
962
  })]
937
963
  })
938
964
  ]
@@ -944,6 +970,6 @@ function O() {
944
970
  });
945
971
  }
946
972
  //#endregion
947
- export { O as ChannelDetailsPage };
973
+ export { T as ChannelDetailsPage };
948
974
 
949
975
  //# sourceMappingURL=ChannelDetailsPage.js.map