@burdenoff/microfe-channel 2026.520.1 → 2026.525.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 (105) hide show
  1. package/dist/channel/modules/channels/pages/ChannelDashboardPage.js +226 -224
  2. package/dist/channel/modules/channels/pages/ChannelDashboardPage.js.map +1 -1
  3. package/dist/channel/modules/channels/pages/ChannelDetailsPage.js +4 -4
  4. package/dist/channel/modules/channels/pages/ChannelDetailsPage.js.map +1 -1
  5. package/dist/channel/modules/channels/pages/ChannelSettingsPage.js +2 -2
  6. package/dist/channel/modules/channels/pages/ChannelSettingsPage.js.map +1 -1
  7. package/dist/channel/modules/channels/pages/ChannelUsersPage.js +65 -57
  8. package/dist/channel/modules/channels/pages/ChannelUsersPage.js.map +1 -1
  9. package/dist/channel/modules/channels/pages/ChannelsListPage.js +43 -41
  10. package/dist/channel/modules/channels/pages/ChannelsListPage.js.map +1 -1
  11. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js +1 -1
  12. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js.map +1 -1
  13. package/dist/channel/modules/channels/pages/ConnectionsListPage.js +1 -1
  14. package/dist/channel/modules/channels/pages/ConnectionsListPage.js.map +1 -1
  15. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js +183 -179
  16. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js.map +1 -1
  17. package/dist/channel/modules/channels/pages/EditChannelPage.js +2 -2
  18. package/dist/channel/modules/channels/pages/EditChannelPage.js.map +1 -1
  19. package/dist/channel/modules/channels/pages/WebhookEventsPage.js +165 -159
  20. package/dist/channel/modules/channels/pages/WebhookEventsPage.js.map +1 -1
  21. package/package.json +1 -1
  22. package/dist/channel/ChannelRoot.d.ts +0 -32
  23. package/dist/channel/ChannelRoot.d.ts.map +0 -1
  24. package/dist/channel/ChannelRoutes.d.ts +0 -10
  25. package/dist/channel/ChannelRoutes.d.ts.map +0 -1
  26. package/dist/channel/components/AdapterCredentialsForm.d.ts +0 -20
  27. package/dist/channel/components/AdapterCredentialsForm.d.ts.map +0 -1
  28. package/dist/channel/components/FeatureNotEnabled.d.ts +0 -13
  29. package/dist/channel/components/FeatureNotEnabled.d.ts.map +0 -1
  30. package/dist/channel/components/PermissionGuard.d.ts +0 -15
  31. package/dist/channel/components/PermissionGuard.d.ts.map +0 -1
  32. package/dist/channel/config/adapterCredentials.d.ts +0 -44
  33. package/dist/channel/config/adapterCredentials.d.ts.map +0 -1
  34. package/dist/channel/constants/permissions.d.ts +0 -32
  35. package/dist/channel/constants/permissions.d.ts.map +0 -1
  36. package/dist/channel/graphql/global-client.d.ts +0 -11
  37. package/dist/channel/graphql/global-client.d.ts.map +0 -1
  38. package/dist/channel/hooks/useChannelOrgSettings.d.ts +0 -22
  39. package/dist/channel/hooks/useChannelOrgSettings.d.ts.map +0 -1
  40. package/dist/channel/hooks/useChannelSubscription.d.ts +0 -36
  41. package/dist/channel/hooks/useChannelSubscription.d.ts.map +0 -1
  42. package/dist/channel/hooks/useChannels.d.ts +0 -228
  43. package/dist/channel/hooks/useChannels.d.ts.map +0 -1
  44. package/dist/channel/index.d.ts +0 -12
  45. package/dist/channel/index.d.ts.map +0 -1
  46. package/dist/channel/modules/channels/hooks/useExport.d.ts +0 -45
  47. package/dist/channel/modules/channels/hooks/useExport.d.ts.map +0 -1
  48. package/dist/channel/modules/channels/i18n.d.ts +0 -14
  49. package/dist/channel/modules/channels/i18n.d.ts.map +0 -1
  50. package/dist/channel/modules/channels/pages/ChannelDashboardPage.d.ts +0 -14
  51. package/dist/channel/modules/channels/pages/ChannelDashboardPage.d.ts.map +0 -1
  52. package/dist/channel/modules/channels/pages/ChannelDetailsPage.d.ts +0 -7
  53. package/dist/channel/modules/channels/pages/ChannelDetailsPage.d.ts.map +0 -1
  54. package/dist/channel/modules/channels/pages/ChannelSettingsPage.d.ts +0 -7
  55. package/dist/channel/modules/channels/pages/ChannelSettingsPage.d.ts.map +0 -1
  56. package/dist/channel/modules/channels/pages/ChannelUsersPage.d.ts +0 -7
  57. package/dist/channel/modules/channels/pages/ChannelUsersPage.d.ts.map +0 -1
  58. package/dist/channel/modules/channels/pages/ChannelsListPage.d.ts +0 -7
  59. package/dist/channel/modules/channels/pages/ChannelsListPage.d.ts.map +0 -1
  60. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.d.ts +0 -7
  61. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.d.ts.map +0 -1
  62. package/dist/channel/modules/channels/pages/ConnectionsListPage.d.ts +0 -7
  63. package/dist/channel/modules/channels/pages/ConnectionsListPage.d.ts.map +0 -1
  64. package/dist/channel/modules/channels/pages/CreateChannelPage.d.ts +0 -12
  65. package/dist/channel/modules/channels/pages/CreateChannelPage.d.ts.map +0 -1
  66. package/dist/channel/modules/channels/pages/CreateConnectionPage.d.ts +0 -11
  67. package/dist/channel/modules/channels/pages/CreateConnectionPage.d.ts.map +0 -1
  68. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.d.ts +0 -7
  69. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.d.ts.map +0 -1
  70. package/dist/channel/modules/channels/pages/EditChannelPage.d.ts +0 -8
  71. package/dist/channel/modules/channels/pages/EditChannelPage.d.ts.map +0 -1
  72. package/dist/channel/modules/channels/pages/EditConnectionPage.d.ts +0 -10
  73. package/dist/channel/modules/channels/pages/EditConnectionPage.d.ts.map +0 -1
  74. package/dist/channel/modules/channels/pages/SendMessagePage.d.ts +0 -8
  75. package/dist/channel/modules/channels/pages/SendMessagePage.d.ts.map +0 -1
  76. package/dist/channel/modules/channels/pages/WebhookEventsPage.d.ts +0 -7
  77. package/dist/channel/modules/channels/pages/WebhookEventsPage.d.ts.map +0 -1
  78. package/dist/channel/modules/channels/pages/index.d.ts +0 -18
  79. package/dist/channel/modules/channels/pages/index.d.ts.map +0 -1
  80. package/dist/channel/pages/ChannelLandingPage.d.ts +0 -9
  81. package/dist/channel/pages/ChannelLandingPage.d.ts.map +0 -1
  82. package/dist/channel/providers/ChannelProvider.d.ts +0 -16
  83. package/dist/channel/providers/ChannelProvider.d.ts.map +0 -1
  84. package/dist/channel/types/index.d.ts +0 -89
  85. package/dist/channel/types/index.d.ts.map +0 -1
  86. package/dist/channel/utils/shellBridge.d.ts +0 -59
  87. package/dist/channel/utils/shellBridge.d.ts.map +0 -1
  88. package/dist/dev/App.d.ts +0 -6
  89. package/dist/dev/App.d.ts.map +0 -1
  90. package/dist/dev/main.d.ts +0 -2
  91. package/dist/dev/main.d.ts.map +0 -1
  92. package/dist/generated/global-operations.d.ts +0 -1549
  93. package/dist/generated/global-operations.d.ts.map +0 -1
  94. package/dist/generated/global-types.d.ts +0 -23527
  95. package/dist/generated/global-types.d.ts.map +0 -1
  96. package/dist/generated/wspace-operations.d.ts +0 -2
  97. package/dist/generated/wspace-operations.d.ts.map +0 -1
  98. package/dist/generated/wspace-types.d.ts +0 -57851
  99. package/dist/generated/wspace-types.d.ts.map +0 -1
  100. package/dist/index.d.ts +0 -5
  101. package/dist/index.d.ts.map +0 -1
  102. package/dist/translations/en.d.ts +0 -260
  103. package/dist/translations/en.d.ts.map +0 -1
  104. package/dist/utils/nativeBridge.d.ts +0 -3
  105. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -6,13 +6,13 @@ import { useChannels as o } from "../../../hooks/useChannels.js";
6
6
  import { PermissionGuard as s } from "../../../components/PermissionGuard.js";
7
7
  import { CHANNEL_PERMISSIONS as c } from "../../../constants/permissions.js";
8
8
  import { HEALTH_I18N as ee, PLATFORM_I18N as te, STATUS_I18N as ne, translateLabel as l } from "../i18n.js";
9
- import { useCallback as u, useEffect as d, useMemo as re, useState as f } from "react";
10
- import { useI18n as ie } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
- import { Activity as p, AlertCircle as m, AlertTriangle as h, Cable as g, CheckCircle2 as _, Eye as ae, HelpCircle as v, LayoutDashboard as y, Loader2 as b, MessageSquare as oe, Plus as x, Power as S, PowerOff as C, Radio as w, RefreshCw as T, Search as se, ShieldCheck as ce, Trash2 as le, XCircle as E } from "lucide-react";
12
- import { useNavigate as ue } from "react-router-dom";
13
- import { jsx as D, jsxs as O } from "react/jsx-runtime";
9
+ import { useCallback as u, useEffect as d, useMemo as re, useRef as ie, useState as f } from "react";
10
+ import { useI18n as ae } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
+ import { Activity as p, AlertCircle as m, AlertTriangle as h, Cable as g, CheckCircle2 as _, Eye as oe, HelpCircle as v, LayoutDashboard as se, Loader2 as y, MessageSquare as b, Plus as x, Power as ce, PowerOff as S, Radio as C, RefreshCw as w, Search as le, ShieldCheck as ue, Trash2 as de, XCircle as T } from "lucide-react";
12
+ import { useNavigate as fe } from "react-router-dom";
13
+ import { jsx as E, jsxs as D } from "react/jsx-runtime";
14
14
  //#region src/channel/modules/channels/pages/ChannelDashboardPage.tsx
15
- var k = {
15
+ var O = {
16
16
  EMAIL: {
17
17
  label: "Email",
18
18
  color: "bg-accent-blue-subtle text-accent-blue"
@@ -53,10 +53,10 @@ var k = {
53
53
  label: "Webchat",
54
54
  color: "bg-accent-teal-subtle text-accent-teal"
55
55
  }
56
- }, A = {
56
+ }, k = {
57
57
  ACTIVE: {
58
58
  label: "Active",
59
- dotColor: "bg-success-500",
59
+ dotColor: "bg-status-success-bg",
60
60
  textColor: "text-status-success-text",
61
61
  icon: _
62
62
  },
@@ -64,17 +64,17 @@ var k = {
64
64
  label: "Inactive",
65
65
  dotColor: "bg-text-tertiary",
66
66
  textColor: "text-muted-foreground",
67
- icon: C
67
+ icon: S
68
68
  },
69
69
  ERROR: {
70
70
  label: "Error",
71
71
  dotColor: "bg-status-error-bg-subtle",
72
72
  textColor: "text-status-error-text",
73
- icon: E
73
+ icon: T
74
74
  },
75
75
  SUSPENDED: {
76
76
  label: "Suspended",
77
- dotColor: "bg-warning-500",
77
+ dotColor: "bg-status-warning-bg",
78
78
  textColor: "text-status-warning-text",
79
79
  icon: h
80
80
  },
@@ -82,9 +82,9 @@ var k = {
82
82
  label: "Archived",
83
83
  dotColor: "bg-text-tertiary",
84
84
  textColor: "text-muted-foreground",
85
- icon: C
85
+ icon: S
86
86
  }
87
- }, j = {
87
+ }, A = {
88
88
  HEALTHY: {
89
89
  label: "Healthy",
90
90
  color: "text-status-success-text",
@@ -98,7 +98,7 @@ var k = {
98
98
  UNHEALTHY: {
99
99
  label: "Unhealthy",
100
100
  color: "text-status-error-text",
101
- icon: E
101
+ icon: T
102
102
  },
103
103
  UNKNOWN: {
104
104
  label: "Unknown",
@@ -106,7 +106,7 @@ var k = {
106
106
  icon: v
107
107
  }
108
108
  };
109
- function de(e) {
109
+ function pe(e) {
110
110
  let t = Date.now() - new Date(e).getTime();
111
111
  if (Number.isNaN(t) || t < 0) return "just now";
112
112
  let n = Math.floor(t / 1e3);
@@ -118,58 +118,60 @@ function de(e) {
118
118
  let a = Math.floor(i / 24);
119
119
  return a < 7 ? `${a}d ago` : a < 30 ? `${Math.floor(a / 7)}w ago` : `${Math.floor(a / 30)}mo ago`;
120
120
  }
121
- function M({ icon: e, iconClass: t, value: n, label: r, sub: i }) {
122
- return /* @__PURE__ */ O("div", {
121
+ function j({ icon: e, iconClass: t, value: n, label: r, sub: i }) {
122
+ return /* @__PURE__ */ D("div", {
123
123
  className: "p-4 bg-surface border border-border rounded-lg",
124
- children: [/* @__PURE__ */ O("div", {
124
+ children: [/* @__PURE__ */ D("div", {
125
125
  className: "flex items-center gap-3",
126
- children: [/* @__PURE__ */ D("div", {
126
+ children: [/* @__PURE__ */ E("div", {
127
127
  className: "p-2 rounded-lg hover:bg-action-primary-bg/10",
128
- children: /* @__PURE__ */ D(e, {
128
+ children: /* @__PURE__ */ E(e, {
129
129
  size: 18,
130
130
  className: t
131
131
  })
132
- }), /* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("p", {
132
+ }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
133
133
  className: "text-2xl font-bold text-foreground leading-tight",
134
134
  children: n
135
- }), /* @__PURE__ */ D("p", {
135
+ }), /* @__PURE__ */ E("p", {
136
136
  className: "text-xs text-muted-foreground",
137
137
  children: r
138
138
  })] })]
139
- }), i && /* @__PURE__ */ D("p", {
139
+ }), i && /* @__PURE__ */ E("p", {
140
140
  className: "text-[11px] text-muted-foreground mt-2 pl-11",
141
141
  children: i
142
142
  })]
143
143
  });
144
144
  }
145
- function N() {
146
- let h = ue(), { t: _ } = ie(), v = (e, t) => {
145
+ function M() {
146
+ let h = fe(), { t: _ } = ae(), v = (e, t) => {
147
147
  let n = _(e);
148
148
  return n === e ? t : n;
149
- }, [E, N] = f(null), [fe, P] = f(null), [F, I] = f(0), L = (e) => ({
150
- ...k[e] ?? {
149
+ }, [T, M] = f(null), [me, N] = f(null), [P, F] = f(0), I = (e) => ({
150
+ ...O[e] ?? {
151
151
  label: e,
152
152
  color: "bg-bg-sunken text-text-tertiary"
153
153
  },
154
154
  label: l(e, te, v)
155
- }), R = (e) => ({
156
- ...A[e] ?? A.INACTIVE,
155
+ }), L = (e) => ({
156
+ ...k[e] ?? k.INACTIVE,
157
157
  label: l(e, ne, v)
158
- }), z = (e) => ({
159
- ...j[e] ?? j.UNKNOWN,
158
+ }), R = (e) => ({
159
+ ...A[e] ?? A.UNKNOWN,
160
160
  label: l(e, ee, v)
161
- }), { channels: B, isLoading: V, error: H, total: U, filter: W, updateFilter: G, deleteChannel: K, activateChannel: q, deactivateChannel: J, runHealthCheck: Y, refetch: X } = o(), Z = Math.max(1, Math.ceil(U / 10));
161
+ }), { channels: z, isLoading: B, error: V, total: H, filter: U, updateFilter: W, deleteChannel: G, activateChannel: K, deactivateChannel: q, runHealthCheck: J, refetch: Y } = o(), X = Math.max(1, Math.ceil(H / 10)), Z = ie(Y);
162
162
  d(() => {
163
- X({
164
- offset: F * 10,
163
+ Z.current = Y;
164
+ }), d(() => {
165
+ Z.current({
166
+ offset: P * 10,
165
167
  limit: 10
166
168
  });
167
- }, [F]), d(() => {
168
- Promise.resolve().then(() => I(0));
169
+ }, [P, 10]), d(() => {
170
+ Promise.resolve().then(() => F(0));
169
171
  }, [
170
- W.search,
171
- W.platform,
172
- W.status
172
+ U.search,
173
+ U.platform,
174
+ U.status
173
175
  ]);
174
176
  let { organizationId: Q } = e();
175
177
  a({
@@ -177,8 +179,8 @@ function N() {
177
179
  variables: { organizationId: Q },
178
180
  operationName: "ChannelHealthChanged",
179
181
  enabled: !!Q,
180
- onData: () => void X(),
181
- pollFn: X,
182
+ onData: () => void Y(),
183
+ pollFn: Y,
182
184
  pollIntervalMs: 6e4
183
185
  }), d(() => {
184
186
  let e = [
@@ -190,12 +192,12 @@ function N() {
190
192
  "connection.deleted",
191
193
  "delivery.completed",
192
194
  "webhook.received"
193
- ].map((e) => r(e, () => void X()));
195
+ ].map((e) => r(e, () => void Y()));
194
196
  return () => e.forEach((e) => e());
195
- }, [X]);
197
+ }, [Y]);
196
198
  let $ = re(() => {
197
199
  let e = 0, t = 0, n = 0, r = 0, i = 0, a = 0;
198
- for (let o of B) o.status === "ACTIVE" && e++, o.status === "ERROR" && i++, o.connectionHealth === "HEALTHY" && t++, o.connectionHealth === "UNHEALTHY" && a++, o.isConnected && n++, r += o.messageCount24h ?? 0;
200
+ for (let o of z) o.status === "ACTIVE" && e++, o.status === "ERROR" && i++, o.connectionHealth === "HEALTHY" && t++, o.connectionHealth === "UNHEALTHY" && a++, o.isConnected && n++, r += o.messageCount24h ?? 0;
199
201
  return {
200
202
  active: e,
201
203
  healthy: t,
@@ -204,108 +206,108 @@ function N() {
204
206
  errored: i,
205
207
  unhealthy: a
206
208
  };
207
- }, [B]), pe = u(async (e) => {
208
- t("medium"), P(e);
209
+ }, [z]), he = u(async (e) => {
210
+ t("medium"), N(e);
209
211
  try {
210
- await K(e), n("success"), N(null);
212
+ await G(e), n("success"), M(null);
211
213
  } catch (e) {
212
214
  throw n("error"), e;
213
215
  } finally {
214
- P(null);
216
+ N(null);
215
217
  }
216
- }, [K]), me = u(async (e) => {
217
- P(e.id);
218
+ }, [G]), ge = u(async (e) => {
219
+ N(e.id);
218
220
  try {
219
- e.status === "ACTIVE" ? await J(e.id) : await q(e.id);
221
+ e.status === "ACTIVE" ? await q(e.id) : await K(e.id);
220
222
  } finally {
221
- P(null);
223
+ N(null);
222
224
  }
223
- }, [q, J]), he = u(async (e) => {
224
- P(e);
225
+ }, [K, q]), _e = u(async (e) => {
226
+ N(e);
225
227
  try {
226
- await Y(e);
228
+ await J(e);
227
229
  } finally {
228
- P(null);
230
+ N(null);
229
231
  }
230
- }, [Y]);
231
- return /* @__PURE__ */ D(s, {
232
+ }, [J]);
233
+ return /* @__PURE__ */ E(s, {
232
234
  permission: c.CHANNEL_READ,
233
- children: /* @__PURE__ */ O("div", {
235
+ children: /* @__PURE__ */ D("div", {
234
236
  className: "space-y-5 p-3 sm:p-6",
235
237
  children: [
236
- /* @__PURE__ */ O("div", {
238
+ /* @__PURE__ */ D("div", {
237
239
  className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
238
- children: [/* @__PURE__ */ O("div", {
240
+ children: [/* @__PURE__ */ D("div", {
239
241
  className: "flex items-center gap-3",
240
- children: [/* @__PURE__ */ D("div", {
242
+ children: [/* @__PURE__ */ E("div", {
241
243
  className: "p-2 rounded-lg bg-accent-primary/10",
242
- children: /* @__PURE__ */ D(y, {
244
+ children: /* @__PURE__ */ E(se, {
243
245
  size: 20,
244
246
  className: "text-accent-primary"
245
247
  })
246
- }), /* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("h1", {
248
+ }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("h1", {
247
249
  className: "text-xl font-bold text-foreground",
248
250
  children: v("channel.channelDashboard", "Channel Dashboard")
249
- }), /* @__PURE__ */ D("p", {
251
+ }), /* @__PURE__ */ E("p", {
250
252
  className: "text-sm text-muted-foreground",
251
253
  children: v("channel.dashboardSubtitle", "Manage and monitor your communication channels")
252
254
  })] })]
253
- }), /* @__PURE__ */ O("div", {
255
+ }), /* @__PURE__ */ D("div", {
254
256
  className: "flex items-center gap-2",
255
- children: [/* @__PURE__ */ O("button", {
256
- onClick: () => X(),
257
+ children: [/* @__PURE__ */ D("button", {
258
+ onClick: () => Y(),
257
259
  className: "inline-flex items-center gap-1.5 px-3 py-2 text-sm text-muted-foreground hover:text-foreground border border-border rounded-lg hover:hover:bg-action-primary-bg/10 transition-colors",
258
- children: [/* @__PURE__ */ D(T, { size: 14 }), v("channel.refresh", "Refresh")]
259
- }), /* @__PURE__ */ O("button", {
260
+ children: [/* @__PURE__ */ E(w, { size: 14 }), v("channel.refresh", "Refresh")]
261
+ }), /* @__PURE__ */ D("button", {
260
262
  onClick: () => h("/channels/create"),
261
263
  className: "inline-flex items-center gap-1.5 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",
262
- children: [/* @__PURE__ */ D(x, { size: 14 }), v("channel.createChannel", "Create Channel")]
264
+ children: [/* @__PURE__ */ E(x, { size: 14 }), v("channel.createChannel", "Create Channel")]
263
265
  })]
264
266
  })]
265
267
  }),
266
- /* @__PURE__ */ O("div", {
268
+ /* @__PURE__ */ D("div", {
267
269
  className: "grid gap-3 grid-cols-2 md:grid-cols-3 lg:grid-cols-4",
268
270
  children: [
269
- /* @__PURE__ */ D(M, {
270
- icon: w,
271
+ /* @__PURE__ */ E(j, {
272
+ icon: C,
271
273
  iconClass: "text-accent-primary",
272
- value: U,
274
+ value: H,
273
275
  label: v("channel.totalChannels", "Total Channels"),
274
- sub: $.active > 0 ? `${$.active} ${v("channel.status.active", "Active").toLowerCase()}, ${U - $.active} ${v("channel.status.inactive", "Inactive").toLowerCase()}` : void 0
276
+ sub: $.active > 0 ? `${$.active} ${v("channel.status.active", "Active").toLowerCase()}, ${H - $.active} ${v("channel.status.inactive", "Inactive").toLowerCase()}` : void 0
275
277
  }),
276
- /* @__PURE__ */ D(M, {
277
- icon: ce,
278
+ /* @__PURE__ */ E(j, {
279
+ icon: ue,
278
280
  iconClass: "text-status-success-text",
279
281
  value: $.healthy,
280
282
  label: v("channel.healthy", "Healthy"),
281
- sub: $.unhealthy > 0 ? `${$.unhealthy} ${v("channel.health.unhealthy", "Unhealthy").toLowerCase()}` : U > 0 ? v("channel.allSystemsNominal", "All systems nominal") : void 0
283
+ sub: $.unhealthy > 0 ? `${$.unhealthy} ${v("channel.health.unhealthy", "Unhealthy").toLowerCase()}` : H > 0 ? v("channel.allSystemsNominal", "All systems nominal") : void 0
282
284
  }),
283
- /* @__PURE__ */ D(M, {
285
+ /* @__PURE__ */ E(j, {
284
286
  icon: g,
285
287
  iconClass: "text-accent-blue",
286
288
  value: $.connected,
287
289
  label: v("channel.connected", "Connected"),
288
- sub: U > 0 ? `${U - $.connected} ${v("channel.disconnected", "Disconnected").toLowerCase()}` : void 0
290
+ sub: H > 0 ? `${H - $.connected} ${v("channel.disconnected", "Disconnected").toLowerCase()}` : void 0
289
291
  }),
290
- /* @__PURE__ */ D(M, {
291
- icon: oe,
292
+ /* @__PURE__ */ E(j, {
293
+ icon: b,
292
294
  iconClass: "text-accent-violet",
293
295
  value: $.messages24h.toLocaleString(),
294
296
  label: v("channel.messages24h", "Messages (24h)")
295
297
  })
296
298
  ]
297
299
  }),
298
- $.errored > 0 && /* @__PURE__ */ O("div", {
300
+ $.errored > 0 && /* @__PURE__ */ D("div", {
299
301
  className: "flex items-center gap-3 p-3 border border-status-error-border/30 bg-status-error-bg-subtle rounded-lg",
300
302
  children: [
301
- /* @__PURE__ */ D(m, {
303
+ /* @__PURE__ */ E(m, {
302
304
  size: 16,
303
305
  className: "text-status-error-text shrink-0"
304
306
  }),
305
- /* @__PURE__ */ O("p", {
307
+ /* @__PURE__ */ D("p", {
306
308
  className: "text-sm text-status-error-text",
307
309
  children: [
308
- /* @__PURE__ */ D("span", {
310
+ /* @__PURE__ */ E("span", {
309
311
  className: "font-semibold",
310
312
  children: $.errored
311
313
  }),
@@ -313,278 +315,278 @@ function N() {
313
315
  v($.errored === 1 ? "channel.errorStateSummarySingle" : "channel.errorStateSummaryMultiple", $.errored === 1 ? "channel in error state" : "channels in error state")
314
316
  ]
315
317
  }),
316
- /* @__PURE__ */ D("button", {
317
- onClick: () => G({ status: "ERROR" }),
318
+ /* @__PURE__ */ E("button", {
319
+ onClick: () => W({ status: "ERROR" }),
318
320
  className: "ml-auto text-xs font-medium text-status-error-text hover:text-status-error-text/80 transition-colors",
319
321
  children: v("channel.showErrors", "Show errors")
320
322
  })
321
323
  ]
322
324
  }),
323
- /* @__PURE__ */ O("div", {
325
+ /* @__PURE__ */ D("div", {
324
326
  className: "flex flex-col gap-3 sm:flex-row sm:items-center",
325
327
  children: [
326
- /* @__PURE__ */ O("div", {
328
+ /* @__PURE__ */ D("div", {
327
329
  className: "relative flex-1",
328
- children: [/* @__PURE__ */ D(se, {
330
+ children: [/* @__PURE__ */ E(le, {
329
331
  size: 14,
330
332
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"
331
- }), /* @__PURE__ */ D("input", {
333
+ }), /* @__PURE__ */ E("input", {
332
334
  type: "text",
333
335
  placeholder: v("channel.searchChannels", "Search channels..."),
334
- value: W.search || "",
335
- onChange: (e) => G({ search: e.target.value }),
336
+ value: U.search || "",
337
+ onChange: (e) => W({ search: e.target.value }),
336
338
  className: "w-full pl-9 pr-4 py-2 text-sm bg-surface border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500/50 placeholder:text-muted-foreground"
337
339
  })]
338
340
  }),
339
- /* @__PURE__ */ O("select", {
340
- value: W.platform || "",
341
- onChange: (e) => G({ platform: e.target.value || void 0 }),
341
+ /* @__PURE__ */ D("select", {
342
+ value: U.platform || "",
343
+ onChange: (e) => W({ platform: e.target.value || void 0 }),
342
344
  className: "px-3 py-2 text-sm bg-surface border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500/50 text-foreground",
343
- children: [/* @__PURE__ */ D("option", {
345
+ children: [/* @__PURE__ */ E("option", {
344
346
  value: "",
345
347
  children: v("channel.allPlatforms", "All Platforms")
346
- }), Object.entries(k).map(([e, t]) => /* @__PURE__ */ D("option", {
348
+ }), Object.entries(O).map(([e, t]) => /* @__PURE__ */ E("option", {
347
349
  value: e,
348
350
  children: t.label
349
351
  }, e))]
350
352
  }),
351
- /* @__PURE__ */ O("select", {
352
- value: W.status || "",
353
- onChange: (e) => G({ status: e.target.value || void 0 }),
353
+ /* @__PURE__ */ D("select", {
354
+ value: U.status || "",
355
+ onChange: (e) => W({ status: e.target.value || void 0 }),
354
356
  className: "px-3 py-2 text-sm bg-surface border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500/50 text-foreground",
355
- children: [/* @__PURE__ */ D("option", {
357
+ children: [/* @__PURE__ */ E("option", {
356
358
  value: "",
357
359
  children: v("channel.allStatus", "All Status")
358
- }), Object.entries(A).map(([e, t]) => /* @__PURE__ */ D("option", {
360
+ }), Object.entries(k).map(([e, t]) => /* @__PURE__ */ E("option", {
359
361
  value: e,
360
362
  children: t.label
361
363
  }, e))]
362
364
  })
363
365
  ]
364
366
  }),
365
- H && /* @__PURE__ */ O("div", {
367
+ V && /* @__PURE__ */ D("div", {
366
368
  className: "flex items-center gap-3 p-4 bg-status-error-bg-subtle border border-status-error-border/30 rounded-lg",
367
369
  children: [
368
- /* @__PURE__ */ D(m, {
370
+ /* @__PURE__ */ E(m, {
369
371
  size: 18,
370
372
  className: "text-status-error-text shrink-0"
371
373
  }),
372
- /* @__PURE__ */ O("div", {
374
+ /* @__PURE__ */ D("div", {
373
375
  className: "flex-1 min-w-0",
374
- children: [/* @__PURE__ */ D("p", {
376
+ children: [/* @__PURE__ */ E("p", {
375
377
  className: "text-sm font-medium text-status-error-text",
376
378
  children: v("channel.loadFailed", "Failed to load channels")
377
- }), /* @__PURE__ */ D("p", {
379
+ }), /* @__PURE__ */ E("p", {
378
380
  className: "text-xs text-status-error-text/70 truncate",
379
- children: H
381
+ children: V
380
382
  })]
381
383
  }),
382
- /* @__PURE__ */ D("button", {
383
- onClick: () => X(),
384
+ /* @__PURE__ */ E("button", {
385
+ onClick: () => Y(),
384
386
  className: "shrink-0 px-3 py-1 text-sm text-status-error-text hover:bg-status-error-bg-subtle rounded transition-colors",
385
387
  children: v("channel.retry", "Retry")
386
388
  })
387
389
  ]
388
390
  }),
389
- V && B.length === 0 && /* @__PURE__ */ D("div", {
391
+ B && z.length === 0 && /* @__PURE__ */ E("div", {
390
392
  className: "flex items-center justify-center py-16",
391
- children: /* @__PURE__ */ D(b, {
393
+ children: /* @__PURE__ */ E(y, {
392
394
  size: 28,
393
395
  className: "animate-spin text-accent-primary"
394
396
  })
395
397
  }),
396
- !V && !H && B.length === 0 && /* @__PURE__ */ O("div", {
398
+ !B && !V && z.length === 0 && /* @__PURE__ */ D("div", {
397
399
  className: "flex flex-col items-center justify-center py-16 text-center",
398
400
  children: [
399
- /* @__PURE__ */ D("div", {
401
+ /* @__PURE__ */ E("div", {
400
402
  className: "p-3 rounded-full bg-accent-primary/10 mb-4",
401
- children: /* @__PURE__ */ D(w, {
403
+ children: /* @__PURE__ */ E(C, {
402
404
  size: 36,
403
405
  className: "text-accent-primary"
404
406
  })
405
407
  }),
406
- /* @__PURE__ */ D("h3", {
408
+ /* @__PURE__ */ E("h3", {
407
409
  className: "text-lg font-semibold text-foreground mb-1",
408
- children: W.search || W.platform || W.status ? v("channel.noChannelsMatchFilter", "No channels match your filters") : v("channel.noChannels", "No channels yet")
410
+ children: U.search || U.platform || U.status ? v("channel.noChannelsMatchFilter", "No channels match your filters") : v("channel.noChannels", "No channels yet")
409
411
  }),
410
- /* @__PURE__ */ D("p", {
412
+ /* @__PURE__ */ E("p", {
411
413
  className: "text-sm text-muted-foreground max-w-sm mb-5",
412
- children: W.search || W.platform || W.status ? v("channel.adjustFilters", "Try adjusting your search or filters.") : v("channel.createFirstChannel", "Create your first communication channel to start sending messages across Email, SMS, Push, Slack and more.")
414
+ children: U.search || U.platform || U.status ? v("channel.adjustFilters", "Try adjusting your search or filters.") : v("channel.createFirstChannel", "Create your first communication channel to start sending messages across Email, SMS, Push, Slack and more.")
413
415
  }),
414
- !(W.search || W.platform || W.status) && /* @__PURE__ */ O("button", {
416
+ !(U.search || U.platform || U.status) && /* @__PURE__ */ D("button", {
415
417
  onClick: () => h("/channels/create"),
416
418
  className: "inline-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",
417
- children: [/* @__PURE__ */ D(x, { size: 14 }), v("channel.createChannel", "Create Channel")]
419
+ children: [/* @__PURE__ */ E(x, { size: 14 }), v("channel.createChannel", "Create Channel")]
418
420
  })
419
421
  ]
420
422
  }),
421
- B.length > 0 && /* @__PURE__ */ O("div", {
423
+ z.length > 0 && /* @__PURE__ */ D("div", {
422
424
  className: "border border-border rounded-lg overflow-hidden",
423
- children: [/* @__PURE__ */ D("div", {
425
+ children: [/* @__PURE__ */ E("div", {
424
426
  className: "overflow-x-auto min-w-full",
425
- children: /* @__PURE__ */ O("table", {
427
+ children: /* @__PURE__ */ D("table", {
426
428
  className: "w-full text-sm min-w-[800px]",
427
- children: [/* @__PURE__ */ D("thead", { children: /* @__PURE__ */ O("tr", {
429
+ children: [/* @__PURE__ */ E("thead", { children: /* @__PURE__ */ D("tr", {
428
430
  className: "hover:bg-action-primary-bg/10/50 border-b border-border",
429
431
  children: [
430
- /* @__PURE__ */ D("th", {
432
+ /* @__PURE__ */ E("th", {
431
433
  className: "text-left px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
432
434
  children: v("channel.channel", "Channel")
433
435
  }),
434
- /* @__PURE__ */ D("th", {
436
+ /* @__PURE__ */ E("th", {
435
437
  className: "text-left px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
436
438
  children: v("channel.platform", "Platform")
437
439
  }),
438
- /* @__PURE__ */ D("th", {
440
+ /* @__PURE__ */ E("th", {
439
441
  className: "text-left px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
440
442
  children: v("channel.status", "Status")
441
443
  }),
442
- /* @__PURE__ */ D("th", {
444
+ /* @__PURE__ */ E("th", {
443
445
  className: "text-left px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
444
446
  children: v("channel.health", "Health")
445
447
  }),
446
- /* @__PURE__ */ D("th", {
448
+ /* @__PURE__ */ E("th", {
447
449
  className: "text-left px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
448
450
  children: v("channel.connection", "Connection")
449
451
  }),
450
- /* @__PURE__ */ D("th", {
452
+ /* @__PURE__ */ E("th", {
451
453
  className: "text-right px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
452
454
  children: v("channel.msgs24h", "Msgs 24h")
453
455
  }),
454
- /* @__PURE__ */ D("th", {
456
+ /* @__PURE__ */ E("th", {
455
457
  className: "text-right px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
456
458
  children: v("channel.updated", "Updated")
457
459
  }),
458
- /* @__PURE__ */ D("th", {
460
+ /* @__PURE__ */ E("th", {
459
461
  className: "text-right px-4 py-3 text-xs font-medium text-muted-foreground uppercase tracking-wider",
460
462
  children: v("channel.actions", "Actions")
461
463
  })
462
464
  ]
463
- }) }), /* @__PURE__ */ D("tbody", {
465
+ }) }), /* @__PURE__ */ E("tbody", {
464
466
  className: "divide-y divide-border",
465
- children: B.map((e) => {
466
- let t = fe === e.id;
467
- return /* @__PURE__ */ O("tr", {
467
+ children: z.map((e) => {
468
+ let t = me === e.id;
469
+ return /* @__PURE__ */ D("tr", {
468
470
  className: "bg-surface hover:hover:bg-action-primary-bg/10/60 transition-colors group",
469
471
  children: [
470
- /* @__PURE__ */ D("td", {
472
+ /* @__PURE__ */ E("td", {
471
473
  className: "px-4 py-3",
472
- children: /* @__PURE__ */ O("button", {
474
+ children: /* @__PURE__ */ D("button", {
473
475
  onClick: () => h(`/channels/${e.id}`),
474
476
  className: "text-left group/name",
475
- children: [/* @__PURE__ */ D("p", {
477
+ children: [/* @__PURE__ */ E("p", {
476
478
  className: "font-medium text-foreground group-hover/name:text-accent-primary transition-colors truncate max-w-[200px]",
477
479
  children: e.name
478
- }), e.description && /* @__PURE__ */ D("p", {
480
+ }), e.description && /* @__PURE__ */ E("p", {
479
481
  className: "text-xs text-muted-foreground truncate max-w-[200px]",
480
482
  children: e.description
481
483
  })]
482
484
  })
483
485
  }),
484
- /* @__PURE__ */ O("td", {
486
+ /* @__PURE__ */ D("td", {
485
487
  className: "px-4 py-3",
486
- children: [/* @__PURE__ */ D("span", {
487
- className: `inline-flex items-center px-2 py-0.5 text-[11px] font-semibold rounded-full ${L(e.platform).color}`,
488
- children: L(e.platform).label
489
- }), e.adapterType && /* @__PURE__ */ D("p", {
488
+ children: [/* @__PURE__ */ E("span", {
489
+ className: `inline-flex items-center px-2 py-0.5 text-[11px] font-semibold rounded-full ${I(e.platform).color}`,
490
+ children: I(e.platform).label
491
+ }), e.adapterType && /* @__PURE__ */ E("p", {
490
492
  className: "text-[10px] text-muted-foreground mt-0.5 font-mono",
491
493
  children: e.adapterType.replace(/_/g, " ")
492
494
  })]
493
495
  }),
494
- /* @__PURE__ */ D("td", {
496
+ /* @__PURE__ */ E("td", {
495
497
  className: "px-4 py-3",
496
- children: /* @__PURE__ */ O("span", {
498
+ children: /* @__PURE__ */ D("span", {
497
499
  className: "inline-flex items-center gap-1.5",
498
- children: [/* @__PURE__ */ D("span", { className: `w-1.5 h-1.5 rounded-full ${R(e.status).dotColor}` }), /* @__PURE__ */ D("span", {
499
- className: `text-xs ${R(e.status).textColor}`,
500
- children: R(e.status).label
500
+ children: [/* @__PURE__ */ E("span", { className: `w-1.5 h-1.5 rounded-full ${L(e.status).dotColor}` }), /* @__PURE__ */ E("span", {
501
+ className: `text-xs ${L(e.status).textColor}`,
502
+ children: L(e.status).label
501
503
  })]
502
504
  })
503
505
  }),
504
- /* @__PURE__ */ D("td", {
506
+ /* @__PURE__ */ E("td", {
505
507
  className: "px-4 py-3",
506
- children: /* @__PURE__ */ O("span", {
507
- className: `inline-flex items-center gap-1 text-xs ${z(e.connectionHealth).color}`,
508
+ children: /* @__PURE__ */ D("span", {
509
+ className: `inline-flex items-center gap-1 text-xs ${R(e.connectionHealth).color}`,
508
510
  children: [(() => {
509
- let t = z(e.connectionHealth).icon;
510
- return /* @__PURE__ */ D(t, { size: 12 });
511
- })(), z(e.connectionHealth).label]
511
+ let t = R(e.connectionHealth).icon;
512
+ return /* @__PURE__ */ E(t, { size: 12 });
513
+ })(), R(e.connectionHealth).label]
512
514
  })
513
515
  }),
514
- /* @__PURE__ */ D("td", {
516
+ /* @__PURE__ */ E("td", {
515
517
  className: "px-4 py-3",
516
- children: /* @__PURE__ */ D("span", {
518
+ children: /* @__PURE__ */ E("span", {
517
519
  className: `text-xs ${e.isConnected ? "text-status-success-text" : "text-muted-foreground"}`,
518
520
  children: e.isConnected ? v("channel.connected", "Connected") : v("channel.disconnected", "Disconnected")
519
521
  })
520
522
  }),
521
- /* @__PURE__ */ D("td", {
523
+ /* @__PURE__ */ E("td", {
522
524
  className: "px-4 py-3 text-right",
523
- children: /* @__PURE__ */ D("span", {
525
+ children: /* @__PURE__ */ E("span", {
524
526
  className: "text-xs text-foreground tabular-nums",
525
527
  children: (e.messageCount24h ?? 0).toLocaleString()
526
528
  })
527
529
  }),
528
- /* @__PURE__ */ D("td", {
530
+ /* @__PURE__ */ E("td", {
529
531
  className: "px-4 py-3 text-right",
530
- children: /* @__PURE__ */ D("span", {
532
+ children: /* @__PURE__ */ E("span", {
531
533
  className: "text-xs text-muted-foreground whitespace-nowrap",
532
- children: de(e.updatedAt)
534
+ children: pe(e.updatedAt)
533
535
  })
534
536
  }),
535
- /* @__PURE__ */ D("td", {
537
+ /* @__PURE__ */ E("td", {
536
538
  className: "px-4 py-3",
537
- children: /* @__PURE__ */ O("div", {
539
+ children: /* @__PURE__ */ D("div", {
538
540
  className: "flex items-center justify-end gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity",
539
541
  children: [
540
- /* @__PURE__ */ D("button", {
542
+ /* @__PURE__ */ E("button", {
541
543
  onClick: () => h(`/channels/${e.id}`),
542
544
  className: "p-1.5 text-muted-foreground hover:text-accent-primary hover:bg-accent-primary/10 rounded transition-colors",
543
545
  title: v("channel.view", "View"),
544
- children: /* @__PURE__ */ D(ae, { size: 14 })
546
+ children: /* @__PURE__ */ E(oe, { size: 14 })
545
547
  }),
546
- /* @__PURE__ */ D(s, {
548
+ /* @__PURE__ */ E(s, {
547
549
  permission: c.CHANNEL_EXECUTE,
548
- children: /* @__PURE__ */ D("button", {
549
- onClick: () => he(e.id),
550
+ children: /* @__PURE__ */ E("button", {
551
+ onClick: () => _e(e.id),
550
552
  disabled: t,
551
553
  className: "p-1.5 text-muted-foreground hover:text-accent-blue hover:bg-accent-blue-subtle rounded transition-colors disabled:opacity-40",
552
554
  title: v("channel.healthCheck", "Health Check"),
553
- children: t ? /* @__PURE__ */ D(b, {
555
+ children: t ? /* @__PURE__ */ E(y, {
554
556
  size: 14,
555
557
  className: "animate-spin"
556
- }) : /* @__PURE__ */ D(T, { size: 14 })
558
+ }) : /* @__PURE__ */ E(w, { size: 14 })
557
559
  })
558
560
  }),
559
- /* @__PURE__ */ D(s, {
561
+ /* @__PURE__ */ E(s, {
560
562
  permission: c.CHANNEL_UPDATE,
561
- children: /* @__PURE__ */ D("button", {
562
- onClick: () => me(e),
563
+ children: /* @__PURE__ */ E("button", {
564
+ onClick: () => ge(e),
563
565
  disabled: t,
564
- className: `p-1.5 rounded transition-colors disabled:opacity-40 ${e.status === "ACTIVE" ? "text-muted-foreground hover:text-status-warning-text hover:bg-warning-500/10" : "text-muted-foreground hover:text-status-success-text hover:bg-success-500/10"}`,
566
+ className: `p-1.5 rounded transition-colors disabled:opacity-40 ${e.status === "ACTIVE" ? "text-muted-foreground hover:text-status-warning-text hover:bg-status-warning-bg-subtle" : "text-muted-foreground hover:text-status-success-text hover:bg-status-success-bg-subtle"}`,
565
567
  title: e.status === "ACTIVE" ? v("channel.deactivate", "Deactivate") : v("channel.activate", "Activate"),
566
- children: e.status === "ACTIVE" ? /* @__PURE__ */ D(C, { size: 14 }) : /* @__PURE__ */ D(S, { size: 14 })
568
+ children: e.status === "ACTIVE" ? /* @__PURE__ */ E(S, { size: 14 }) : /* @__PURE__ */ E(ce, { size: 14 })
567
569
  })
568
570
  }),
569
- E === e.id ? /* @__PURE__ */ O("span", {
571
+ T === e.id ? /* @__PURE__ */ D("span", {
570
572
  className: "inline-flex items-center gap-1 ml-1",
571
- children: [/* @__PURE__ */ D("button", {
572
- onClick: () => pe(e.id),
573
+ children: [/* @__PURE__ */ E("button", {
574
+ onClick: () => he(e.id),
573
575
  disabled: t,
574
576
  className: "px-1.5 py-0.5 text-[11px] font-medium text-status-error-text hover:bg-status-error-bg-subtle rounded transition-colors",
575
577
  children: t ? "..." : v("channel.yes", "Yes")
576
- }), /* @__PURE__ */ D("button", {
577
- onClick: () => N(null),
578
+ }), /* @__PURE__ */ E("button", {
579
+ onClick: () => M(null),
578
580
  className: "px-1.5 py-0.5 text-[11px] text-muted-foreground hover:hover:bg-action-primary-bg/10 rounded transition-colors",
579
581
  children: v("channel.no", "No")
580
582
  })]
581
- }) : /* @__PURE__ */ D(s, {
583
+ }) : /* @__PURE__ */ E(s, {
582
584
  permission: c.CHANNEL_DELETE,
583
- children: /* @__PURE__ */ D("button", {
584
- onClick: () => N(e.id),
585
+ children: /* @__PURE__ */ E("button", {
586
+ onClick: () => M(e.id),
585
587
  className: "p-1.5 text-muted-foreground hover:text-status-error-text hover:bg-status-error-bg-subtle rounded transition-colors",
586
588
  title: v("channel.delete", "Delete"),
587
- children: /* @__PURE__ */ D(le, { size: 14 })
589
+ children: /* @__PURE__ */ E(de, { size: 14 })
588
590
  })
589
591
  })
590
592
  ]
@@ -595,51 +597,51 @@ function N() {
595
597
  })
596
598
  })]
597
599
  })
598
- }), /* @__PURE__ */ O("div", {
600
+ }), /* @__PURE__ */ D("div", {
599
601
  className: "px-4 py-2.5 border-t border-border flex items-center justify-between",
600
- children: [/* @__PURE__ */ O("p", {
602
+ children: [/* @__PURE__ */ D("p", {
601
603
  className: "text-xs text-muted-foreground",
602
604
  children: [
603
605
  v("channel.showing", "Showing"),
604
606
  " ",
605
- /* @__PURE__ */ O("span", {
607
+ /* @__PURE__ */ D("span", {
606
608
  className: "font-medium text-foreground",
607
609
  children: [
608
- U === 0 ? 0 : F * 10 + 1,
610
+ H === 0 ? 0 : P * 10 + 1,
609
611
  "–",
610
- Math.min((F + 1) * 10, U)
612
+ Math.min((P + 1) * 10, H)
611
613
  ]
612
614
  }),
613
615
  " ",
614
616
  v("channel.of", "of"),
615
617
  " ",
616
- /* @__PURE__ */ D("span", {
618
+ /* @__PURE__ */ E("span", {
617
619
  className: "font-medium text-foreground",
618
- children: U
620
+ children: H
619
621
  }),
620
622
  " ",
621
623
  v("channel.channelsLower", "channels")
622
624
  ]
623
- }), /* @__PURE__ */ O("div", {
625
+ }), /* @__PURE__ */ D("div", {
624
626
  className: "flex items-center gap-2",
625
627
  children: [
626
- /* @__PURE__ */ D("button", {
627
- onClick: () => I((e) => Math.max(0, e - 1)),
628
- disabled: F === 0,
628
+ /* @__PURE__ */ E("button", {
629
+ onClick: () => F((e) => Math.max(0, e - 1)),
630
+ disabled: P === 0,
629
631
  className: "px-2.5 py-1 text-xs border border-border rounded hover:bg-muted transition-colors disabled:opacity-40 disabled:cursor-not-allowed",
630
632
  children: v("channel.previous", "Prev")
631
633
  }),
632
- /* @__PURE__ */ O("span", {
634
+ /* @__PURE__ */ D("span", {
633
635
  className: "text-xs text-muted-foreground",
634
636
  children: [
635
- F + 1,
637
+ P + 1,
636
638
  " / ",
637
- Z
639
+ X
638
640
  ]
639
641
  }),
640
- /* @__PURE__ */ D("button", {
641
- onClick: () => I((e) => Math.min(Z - 1, e + 1)),
642
- disabled: F >= Z - 1,
642
+ /* @__PURE__ */ E("button", {
643
+ onClick: () => F((e) => Math.min(X - 1, e + 1)),
644
+ disabled: P >= X - 1,
643
645
  className: "px-2.5 py-1 text-xs border border-border rounded hover:bg-muted transition-colors disabled:opacity-40 disabled:cursor-not-allowed",
644
646
  children: v("channel.next", "Next")
645
647
  })
@@ -647,55 +649,55 @@ function N() {
647
649
  })]
648
650
  })]
649
651
  }),
650
- B.length > 0 && /* @__PURE__ */ O("div", {
652
+ z.length > 0 && /* @__PURE__ */ D("div", {
651
653
  className: "grid gap-3 sm:grid-cols-3",
652
654
  children: [
653
- /* @__PURE__ */ O("button", {
655
+ /* @__PURE__ */ D("button", {
654
656
  onClick: () => h("/channels/?tab=all"),
655
657
  className: "flex items-center gap-3 p-3 bg-surface border border-border rounded-lg hover:hover:bg-action-primary-bg/10 transition-colors text-left",
656
- children: [/* @__PURE__ */ D(w, {
658
+ children: [/* @__PURE__ */ E(C, {
657
659
  size: 16,
658
660
  className: "text-accent-primary shrink-0"
659
- }), /* @__PURE__ */ O("div", {
661
+ }), /* @__PURE__ */ D("div", {
660
662
  className: "min-w-0",
661
- children: [/* @__PURE__ */ D("p", {
663
+ children: [/* @__PURE__ */ E("p", {
662
664
  className: "text-sm font-medium text-foreground",
663
665
  children: v("channel.allChannels", "All Channels")
664
- }), /* @__PURE__ */ D("p", {
666
+ }), /* @__PURE__ */ E("p", {
665
667
  className: "text-xs text-muted-foreground truncate",
666
668
  children: v("channel.browseChannels", "Browse and manage channel cards")
667
669
  })]
668
670
  })]
669
671
  }),
670
- /* @__PURE__ */ O("button", {
672
+ /* @__PURE__ */ D("button", {
671
673
  onClick: () => h("/channels/?tab=connections"),
672
674
  className: "flex items-center gap-3 p-3 bg-surface border border-border rounded-lg hover:hover:bg-action-primary-bg/10 transition-colors text-left",
673
- children: [/* @__PURE__ */ D(g, {
675
+ children: [/* @__PURE__ */ E(g, {
674
676
  size: 16,
675
677
  className: "text-accent-blue shrink-0"
676
- }), /* @__PURE__ */ O("div", {
678
+ }), /* @__PURE__ */ D("div", {
677
679
  className: "min-w-0",
678
- children: [/* @__PURE__ */ D("p", {
680
+ children: [/* @__PURE__ */ E("p", {
679
681
  className: "text-sm font-medium text-foreground",
680
682
  children: v("channel.connections", "Connections")
681
- }), /* @__PURE__ */ D("p", {
683
+ }), /* @__PURE__ */ E("p", {
682
684
  className: "text-xs text-muted-foreground truncate",
683
685
  children: v("channel.connectionsSubtitle", "OAuth, API keys & credentials")
684
686
  })]
685
687
  })]
686
688
  }),
687
- /* @__PURE__ */ O("button", {
689
+ /* @__PURE__ */ D("button", {
688
690
  onClick: () => h("/channels/?tab=send"),
689
691
  className: "flex items-center gap-3 p-3 bg-surface border border-border rounded-lg hover:hover:bg-action-primary-bg/10 transition-colors text-left",
690
- children: [/* @__PURE__ */ D(p, {
692
+ children: [/* @__PURE__ */ E(p, {
691
693
  size: 16,
692
694
  className: "text-accent-violet shrink-0"
693
- }), /* @__PURE__ */ O("div", {
695
+ }), /* @__PURE__ */ D("div", {
694
696
  className: "min-w-0",
695
- children: [/* @__PURE__ */ D("p", {
697
+ children: [/* @__PURE__ */ E("p", {
696
698
  className: "text-sm font-medium text-foreground",
697
699
  children: v("channel.sendMessage", "Send Message")
698
- }), /* @__PURE__ */ D("p", {
700
+ }), /* @__PURE__ */ E("p", {
699
701
  className: "text-xs text-muted-foreground truncate",
700
702
  children: v("channel.sendMessageSubtitle", "Send a test or one-off notification")
701
703
  })]
@@ -708,6 +710,6 @@ function N() {
708
710
  });
709
711
  }
710
712
  //#endregion
711
- export { N as ChannelDashboardPage };
713
+ export { M as ChannelDashboardPage };
712
714
 
713
715
  //# sourceMappingURL=ChannelDashboardPage.js.map