@burdenoff/microfe-channel 2026.624.3 → 2026.625.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/channel/modules/channels/pages/ChannelDashboardPage.js +134 -134
- package/dist/channel/modules/channels/pages/ChannelDashboardPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/ChannelDetailsPage.js +287 -277
- package/dist/channel/modules/channels/pages/ChannelDetailsPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/ChannelSettingsPage.js +140 -131
- package/dist/channel/modules/channels/pages/ChannelSettingsPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/ChannelUsersPage.js +169 -169
- package/dist/channel/modules/channels/pages/ChannelUsersPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/ChannelsListPage.js +204 -209
- package/dist/channel/modules/channels/pages/ChannelsListPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js +161 -155
- package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/ConnectionsListPage.js +141 -148
- package/dist/channel/modules/channels/pages/ConnectionsListPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/CreateChannelPage.js +27 -24
- package/dist/channel/modules/channels/pages/CreateChannelPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/CreateConnectionPage.js +161 -156
- package/dist/channel/modules/channels/pages/CreateConnectionPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js +177 -192
- package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/EditChannelPage.js +130 -122
- package/dist/channel/modules/channels/pages/EditChannelPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/EditConnectionPage.js +137 -132
- package/dist/channel/modules/channels/pages/EditConnectionPage.js.map +1 -1
- package/dist/channel/modules/channels/pages/SendMessagePage.js +87 -84
- package/dist/channel/modules/channels/pages/SendMessagePage.js.map +1 -1
- package/dist/channel/modules/channels/pages/WebhookEventsPage.js +185 -183
- package/dist/channel/modules/channels/pages/WebhookEventsPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -12,8 +12,9 @@ import { Activity as oe, AlertCircle as p, AlertTriangle as m, Cable as h, Check
|
|
|
12
12
|
import { useNavigate as me } from "react-router-dom";
|
|
13
13
|
import { usePermissions as he } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
14
14
|
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
15
|
+
import { AuroraBackground as ge, CTAOverflowMenu as _e, GlassCard as E, GradientText as ve, IllustratedEmptyState as ye } from "@burdenoff/fe-libs/ui";
|
|
15
16
|
//#region src/channel/modules/channels/pages/ChannelDashboardPage.tsx
|
|
16
|
-
var
|
|
17
|
+
var D = {
|
|
17
18
|
EMAIL: {
|
|
18
19
|
label: "Email",
|
|
19
20
|
color: "bg-accent-blue-subtle text-accent-blue"
|
|
@@ -54,7 +55,7 @@ var E = {
|
|
|
54
55
|
label: "Webchat",
|
|
55
56
|
color: "bg-accent-teal-subtle text-accent-teal"
|
|
56
57
|
}
|
|
57
|
-
},
|
|
58
|
+
}, O = {
|
|
58
59
|
ACTIVE: {
|
|
59
60
|
label: "Active",
|
|
60
61
|
dotColor: "bg-status-success-bg",
|
|
@@ -85,7 +86,7 @@ var E = {
|
|
|
85
86
|
textColor: "text-text-secondary",
|
|
86
87
|
icon: b
|
|
87
88
|
}
|
|
88
|
-
},
|
|
89
|
+
}, k = {
|
|
89
90
|
HEALTHY: {
|
|
90
91
|
label: "Healthy",
|
|
91
92
|
color: "text-status-success-text",
|
|
@@ -107,7 +108,7 @@ var E = {
|
|
|
107
108
|
icon: _
|
|
108
109
|
}
|
|
109
110
|
};
|
|
110
|
-
function
|
|
111
|
+
function be(e) {
|
|
111
112
|
let t = Date.now() - new Date(e).getTime();
|
|
112
113
|
if (Number.isNaN(t) || t < 0) return "just now";
|
|
113
114
|
let n = Math.floor(t / 1e3);
|
|
@@ -119,13 +120,15 @@ function ge(e) {
|
|
|
119
120
|
let a = Math.floor(i / 24);
|
|
120
121
|
return a < 7 ? `${a}d ago` : a < 30 ? `${Math.floor(a / 7)}w ago` : `${Math.floor(a / 30)}mo ago`;
|
|
121
122
|
}
|
|
122
|
-
function
|
|
123
|
-
return /* @__PURE__ */ T(
|
|
124
|
-
|
|
123
|
+
function A({ icon: e, iconClass: t, value: n, label: r, sub: i, featured: a }) {
|
|
124
|
+
return /* @__PURE__ */ T(E, {
|
|
125
|
+
treatment: a ? "glass" : "metric",
|
|
126
|
+
glow: a,
|
|
127
|
+
className: "p-4 border-border-seam",
|
|
125
128
|
children: [/* @__PURE__ */ T("div", {
|
|
126
129
|
className: "flex items-center gap-3",
|
|
127
130
|
children: [/* @__PURE__ */ w("div", {
|
|
128
|
-
className: "p-2 rounded-lg
|
|
131
|
+
className: "p-2 rounded-lg bg-accent-primary/10",
|
|
129
132
|
children: /* @__PURE__ */ w(e, {
|
|
130
133
|
size: 18,
|
|
131
134
|
className: t
|
|
@@ -138,27 +141,27 @@ function k({ icon: e, iconClass: t, value: n, label: r, sub: i }) {
|
|
|
138
141
|
children: r
|
|
139
142
|
})] })]
|
|
140
143
|
}), i && /* @__PURE__ */ w("p", {
|
|
141
|
-
className: "text-[11px] text-text-
|
|
144
|
+
className: "text-[11px] text-text-muted mt-2 pl-11",
|
|
142
145
|
children: i
|
|
143
146
|
})]
|
|
144
147
|
});
|
|
145
148
|
}
|
|
146
|
-
function
|
|
147
|
-
let m = me(), { hasPermission: g } = he(), _ = g(c.CHANNEL_CREATE), { t: C } = ae(),
|
|
149
|
+
function j() {
|
|
150
|
+
let m = me(), { hasPermission: g } = he(), _ = g(c.CHANNEL_CREATE), { t: C } = ae(), j = (e, t) => {
|
|
148
151
|
let n = C(e);
|
|
149
152
|
return n === e ? t : n;
|
|
150
|
-
}, [
|
|
151
|
-
...
|
|
153
|
+
}, [xe, M] = f(null), [Se, N] = f(null), [P, F] = f(0), I = (e) => ({
|
|
154
|
+
...D[e] ?? {
|
|
152
155
|
label: e,
|
|
153
156
|
color: "bg-bg-sunken text-text-tertiary"
|
|
154
157
|
},
|
|
155
|
-
label: l(e, te,
|
|
158
|
+
label: l(e, te, j)
|
|
156
159
|
}), L = (e) => ({
|
|
157
|
-
...
|
|
158
|
-
label: l(e, ne,
|
|
160
|
+
...O[e] ?? O.INACTIVE,
|
|
161
|
+
label: l(e, ne, j)
|
|
159
162
|
}), R = (e) => ({
|
|
160
|
-
...
|
|
161
|
-
label: l(e, ee,
|
|
163
|
+
...k[e] ?? k.UNKNOWN,
|
|
164
|
+
label: l(e, ee, j)
|
|
162
165
|
}), { 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);
|
|
163
166
|
d(() => {
|
|
164
167
|
Z.current = Y;
|
|
@@ -207,7 +210,7 @@ function A() {
|
|
|
207
210
|
errored: i,
|
|
208
211
|
unhealthy: a
|
|
209
212
|
};
|
|
210
|
-
}, [z]),
|
|
213
|
+
}, [z]), Ce = u(async (e) => {
|
|
211
214
|
t("medium"), N(e);
|
|
212
215
|
try {
|
|
213
216
|
await G(e), n("success"), M(null);
|
|
@@ -216,14 +219,14 @@ function A() {
|
|
|
216
219
|
} finally {
|
|
217
220
|
N(null);
|
|
218
221
|
}
|
|
219
|
-
}, [G]),
|
|
222
|
+
}, [G]), we = u(async (e) => {
|
|
220
223
|
N(e.id);
|
|
221
224
|
try {
|
|
222
225
|
e.status === "ACTIVE" ? await q(e.id) : await K(e.id);
|
|
223
226
|
} finally {
|
|
224
227
|
N(null);
|
|
225
228
|
}
|
|
226
|
-
}, [K, q]),
|
|
229
|
+
}, [K, q]), Te = u(async (e) => {
|
|
227
230
|
N(e);
|
|
228
231
|
try {
|
|
229
232
|
await J(e);
|
|
@@ -237,35 +240,45 @@ function A() {
|
|
|
237
240
|
className: "space-y-5 p-3 sm:p-6",
|
|
238
241
|
children: [
|
|
239
242
|
/* @__PURE__ */ T("div", {
|
|
240
|
-
className: "
|
|
241
|
-
children: [/* @__PURE__ */ T("div", {
|
|
242
|
-
className: "flex items-center
|
|
243
|
-
children: [/* @__PURE__ */
|
|
244
|
-
className: "
|
|
245
|
-
children: /* @__PURE__ */ w(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
children:
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
onClick: () => Y(),
|
|
261
|
-
className: "inline-flex items-center gap-1.5 px-3 py-2 text-sm text-text-secondary hover:text-text-primary border border-border-subtle rounded-lg hover:bg-action-primary-bg/10 transition-colors",
|
|
262
|
-
children: [/* @__PURE__ */ w(S, { size: 14 }), A("channel.refresh", "Refresh")]
|
|
263
|
-
}), _ && /* @__PURE__ */ T("button", {
|
|
264
|
-
type: "button",
|
|
265
|
-
onClick: () => m("/channels/create"),
|
|
266
|
-
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",
|
|
243
|
+
className: "relative overflow-hidden rounded-xl",
|
|
244
|
+
children: [/* @__PURE__ */ w(ge, { intensity: "subtle" }), /* @__PURE__ */ T("div", {
|
|
245
|
+
className: "flex flex-col gap-3 p-2 sm:flex-row sm:items-center sm:justify-between",
|
|
246
|
+
children: [/* @__PURE__ */ T("div", {
|
|
247
|
+
className: "flex items-center gap-3",
|
|
248
|
+
children: [/* @__PURE__ */ w("div", {
|
|
249
|
+
className: "p-2 rounded-lg bg-accent-primary/10",
|
|
250
|
+
children: /* @__PURE__ */ w(ce, {
|
|
251
|
+
size: 20,
|
|
252
|
+
className: "text-accent-primary"
|
|
253
|
+
})
|
|
254
|
+
}), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("h1", {
|
|
255
|
+
className: "text-xl font-bold text-text-primary",
|
|
256
|
+
children: /* @__PURE__ */ w(ve, { children: j("channel.channelDashboard", "Channel Dashboard") })
|
|
257
|
+
}), /* @__PURE__ */ w("p", {
|
|
258
|
+
className: "text-sm text-text-secondary",
|
|
259
|
+
children: j("channel.dashboardSubtitle", "Manage and monitor your communication channels")
|
|
260
|
+
})] })]
|
|
261
|
+
}), /* @__PURE__ */ w("div", {
|
|
262
|
+
className: "flex items-center gap-2",
|
|
267
263
|
"data-tour": "channels-dashboard-create-button",
|
|
268
|
-
children:
|
|
264
|
+
children: /* @__PURE__ */ w(_e, {
|
|
265
|
+
primary: _ ? {
|
|
266
|
+
label: j("channel.createChannel", "Create Channel"),
|
|
267
|
+
icon: /* @__PURE__ */ w(y, {
|
|
268
|
+
size: 16,
|
|
269
|
+
"aria-hidden": "true"
|
|
270
|
+
}),
|
|
271
|
+
onSelect: () => m("/channels/create")
|
|
272
|
+
} : void 0,
|
|
273
|
+
actions: [{
|
|
274
|
+
label: j("channel.refresh", "Refresh"),
|
|
275
|
+
icon: /* @__PURE__ */ w(S, {
|
|
276
|
+
size: 16,
|
|
277
|
+
"aria-hidden": "true"
|
|
278
|
+
}),
|
|
279
|
+
onSelect: () => void Y()
|
|
280
|
+
}]
|
|
281
|
+
})
|
|
269
282
|
})]
|
|
270
283
|
})]
|
|
271
284
|
}),
|
|
@@ -273,32 +286,33 @@ function A() {
|
|
|
273
286
|
"data-tour": "channels-dashboard-kpi-section",
|
|
274
287
|
className: "grid gap-3 grid-cols-2 md:grid-cols-3 lg:grid-cols-4",
|
|
275
288
|
children: [
|
|
276
|
-
/* @__PURE__ */ w(
|
|
289
|
+
/* @__PURE__ */ w(A, {
|
|
290
|
+
featured: !0,
|
|
277
291
|
icon: x,
|
|
278
292
|
iconClass: "text-accent-primary",
|
|
279
293
|
value: H,
|
|
280
|
-
label:
|
|
281
|
-
sub: $.active > 0 ? `${$.active} ${
|
|
294
|
+
label: j("channel.totalChannels", "Total Channels"),
|
|
295
|
+
sub: $.active > 0 ? `${$.active} ${j("channel.status.active", "Active").toLowerCase()}, ${H - $.active} ${j("channel.status.inactive", "Inactive").toLowerCase()}` : void 0
|
|
282
296
|
}),
|
|
283
|
-
/* @__PURE__ */ w(
|
|
297
|
+
/* @__PURE__ */ w(A, {
|
|
284
298
|
icon: fe,
|
|
285
299
|
iconClass: "text-status-success-text",
|
|
286
300
|
value: $.healthy,
|
|
287
|
-
label:
|
|
288
|
-
sub: $.unhealthy > 0 ? `${$.unhealthy} ${
|
|
301
|
+
label: j("channel.healthy", "Healthy"),
|
|
302
|
+
sub: $.unhealthy > 0 ? `${$.unhealthy} ${j("channel.health.unhealthy", "Unhealthy").toLowerCase()}` : H > 0 ? $.healthy === H ? j("channel.allSystemsNominal", "All systems nominal") : `${H - $.healthy} ${j("channel.health.unchecked", "unchecked")}` : void 0
|
|
289
303
|
}),
|
|
290
|
-
/* @__PURE__ */ w(
|
|
304
|
+
/* @__PURE__ */ w(A, {
|
|
291
305
|
icon: h,
|
|
292
306
|
iconClass: "text-accent-blue",
|
|
293
307
|
value: $.connected,
|
|
294
|
-
label:
|
|
295
|
-
sub: H > 0 ? `${H - $.connected} ${
|
|
308
|
+
label: j("channel.connected", "Connected"),
|
|
309
|
+
sub: H > 0 ? `${H - $.connected} ${j("channel.disconnected", "Disconnected").toLowerCase()}` : void 0
|
|
296
310
|
}),
|
|
297
|
-
/* @__PURE__ */ w(
|
|
311
|
+
/* @__PURE__ */ w(A, {
|
|
298
312
|
icon: le,
|
|
299
313
|
iconClass: "text-accent-violet",
|
|
300
314
|
value: $.messages24h.toLocaleString(),
|
|
301
|
-
label:
|
|
315
|
+
label: j("channel.messages24h", "Messages (24h)")
|
|
302
316
|
})
|
|
303
317
|
]
|
|
304
318
|
}),
|
|
@@ -317,14 +331,14 @@ function A() {
|
|
|
317
331
|
children: $.errored
|
|
318
332
|
}),
|
|
319
333
|
" ",
|
|
320
|
-
|
|
334
|
+
j($.errored === 1 ? "channel.errorStateSummarySingle" : "channel.errorStateSummaryMultiple", $.errored === 1 ? "channel in error state" : "channels in error state")
|
|
321
335
|
]
|
|
322
336
|
}),
|
|
323
337
|
/* @__PURE__ */ w("button", {
|
|
324
338
|
type: "button",
|
|
325
339
|
onClick: () => W({ status: "ERROR" }),
|
|
326
340
|
className: "ml-auto text-xs font-medium text-status-error-text hover:text-status-error-text/80 transition-colors",
|
|
327
|
-
children:
|
|
341
|
+
children: j("channel.showErrors", "Show errors")
|
|
328
342
|
})
|
|
329
343
|
]
|
|
330
344
|
}),
|
|
@@ -339,8 +353,8 @@ function A() {
|
|
|
339
353
|
className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
|
|
340
354
|
}), /* @__PURE__ */ w("input", {
|
|
341
355
|
type: "text",
|
|
342
|
-
"aria-label":
|
|
343
|
-
placeholder:
|
|
356
|
+
"aria-label": j("channel.searchChannels", "Search channels..."),
|
|
357
|
+
placeholder: j("channel.searchChannels", "Search channels..."),
|
|
344
358
|
value: U.search || "",
|
|
345
359
|
onChange: (e) => W({ search: e.target.value }),
|
|
346
360
|
className: "w-full pl-9 pr-4 py-2 text-sm bg-surface border border-border-subtle rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500/50 placeholder:text-text-secondary"
|
|
@@ -352,8 +366,8 @@ function A() {
|
|
|
352
366
|
className: "px-3 py-2 text-sm bg-surface border border-border-subtle rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500/50 text-text-primary",
|
|
353
367
|
children: [/* @__PURE__ */ w("option", {
|
|
354
368
|
value: "",
|
|
355
|
-
children:
|
|
356
|
-
}), Object.entries(
|
|
369
|
+
children: j("channel.allPlatforms", "All Platforms")
|
|
370
|
+
}), Object.entries(D).map(([e, t]) => /* @__PURE__ */ w("option", {
|
|
357
371
|
value: e,
|
|
358
372
|
children: t.label
|
|
359
373
|
}, e))]
|
|
@@ -364,8 +378,8 @@ function A() {
|
|
|
364
378
|
className: "px-3 py-2 text-sm bg-surface border border-border-subtle rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500/50 text-text-primary",
|
|
365
379
|
children: [/* @__PURE__ */ w("option", {
|
|
366
380
|
value: "",
|
|
367
|
-
children:
|
|
368
|
-
}), Object.entries(
|
|
381
|
+
children: j("channel.allStatus", "All Status")
|
|
382
|
+
}), Object.entries(O).map(([e, t]) => /* @__PURE__ */ w("option", {
|
|
369
383
|
value: e,
|
|
370
384
|
children: t.label
|
|
371
385
|
}, e))]
|
|
@@ -383,7 +397,7 @@ function A() {
|
|
|
383
397
|
className: "flex-1 min-w-0",
|
|
384
398
|
children: [/* @__PURE__ */ w("p", {
|
|
385
399
|
className: "text-sm font-medium text-status-error-text",
|
|
386
|
-
children:
|
|
400
|
+
children: j("channel.loadFailed", "Failed to load channels")
|
|
387
401
|
}), /* @__PURE__ */ w("p", {
|
|
388
402
|
className: "text-xs text-status-error-text/70 truncate",
|
|
389
403
|
children: V
|
|
@@ -393,7 +407,7 @@ function A() {
|
|
|
393
407
|
type: "button",
|
|
394
408
|
onClick: () => Y(),
|
|
395
409
|
className: "shrink-0 px-3 py-1 text-sm text-status-error-text hover:bg-status-error-bg-subtle rounded transition-colors",
|
|
396
|
-
children:
|
|
410
|
+
children: j("channel.retry", "Retry")
|
|
397
411
|
})
|
|
398
412
|
]
|
|
399
413
|
}),
|
|
@@ -404,34 +418,20 @@ function A() {
|
|
|
404
418
|
className: "animate-spin text-accent-primary"
|
|
405
419
|
})
|
|
406
420
|
}),
|
|
407
|
-
!B && !V && z.length === 0 && /* @__PURE__ */
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
/* @__PURE__ */ w("h3", {
|
|
418
|
-
className: "text-lg font-semibold text-text-primary mb-1",
|
|
419
|
-
children: U.search || U.platform || U.status ? A("channel.noChannelsMatchFilter", "No channels match your filters") : A("channel.noChannels", "No channels yet")
|
|
420
|
-
}),
|
|
421
|
-
/* @__PURE__ */ w("p", {
|
|
422
|
-
className: "text-sm text-text-secondary max-w-sm mb-5",
|
|
423
|
-
children: U.search || U.platform || U.status ? A("channel.adjustFilters", "Try adjusting your search or filters.") : A("channel.createFirstChannel", "Create your first communication channel to start sending messages across Email, SMS, Push, Slack and more.")
|
|
424
|
-
}),
|
|
425
|
-
_ && !(U.search || U.platform || U.status) && /* @__PURE__ */ T("button", {
|
|
426
|
-
type: "button",
|
|
427
|
-
onClick: () => m("/channels/create"),
|
|
428
|
-
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",
|
|
429
|
-
children: [/* @__PURE__ */ w(y, { size: 14 }), A("channel.createChannel", "Create Channel")]
|
|
430
|
-
})
|
|
431
|
-
]
|
|
421
|
+
!B && !V && z.length === 0 && /* @__PURE__ */ w(ye, {
|
|
422
|
+
illustration: U.search || U.platform || U.status ? "empty-search" : "onboarding",
|
|
423
|
+
title: U.search || U.platform || U.status ? j("channel.noChannelsMatchFilter", "No channels match your filters") : j("channel.noChannels", "No channels yet"),
|
|
424
|
+
description: U.search || U.platform || U.status ? j("channel.adjustFilters", "Try adjusting your search or filters.") : j("channel.createFirstChannel", "Create your first communication channel to start sending messages across Email, SMS, Push, Slack and more."),
|
|
425
|
+
action: _ && !(U.search || U.platform || U.status) ? /* @__PURE__ */ T("button", {
|
|
426
|
+
type: "button",
|
|
427
|
+
onClick: () => m("/channels/create"),
|
|
428
|
+
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",
|
|
429
|
+
children: [/* @__PURE__ */ w(y, { size: 14 }), j("channel.createChannel", "Create Channel")]
|
|
430
|
+
}) : void 0
|
|
432
431
|
}),
|
|
433
|
-
z.length > 0 && /* @__PURE__ */ T(
|
|
434
|
-
|
|
432
|
+
z.length > 0 && /* @__PURE__ */ T(E, {
|
|
433
|
+
treatment: "plain",
|
|
434
|
+
className: "border-border-seam rounded-lg overflow-hidden p-0",
|
|
435
435
|
"data-tour": "channels-dashboard-table",
|
|
436
436
|
children: [/* @__PURE__ */ w("div", {
|
|
437
437
|
className: "overflow-x-auto min-w-full",
|
|
@@ -442,41 +442,41 @@ function A() {
|
|
|
442
442
|
children: [
|
|
443
443
|
/* @__PURE__ */ w("th", {
|
|
444
444
|
className: "text-left px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
445
|
-
children:
|
|
445
|
+
children: j("channel.channel", "Channel")
|
|
446
446
|
}),
|
|
447
447
|
/* @__PURE__ */ w("th", {
|
|
448
448
|
className: "text-left px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
449
|
-
children:
|
|
449
|
+
children: j("channel.platform", "Platform")
|
|
450
450
|
}),
|
|
451
451
|
/* @__PURE__ */ w("th", {
|
|
452
452
|
className: "text-left px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
453
|
-
children:
|
|
453
|
+
children: j("channel.status", "Status")
|
|
454
454
|
}),
|
|
455
455
|
/* @__PURE__ */ w("th", {
|
|
456
456
|
className: "text-left px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
457
|
-
children:
|
|
457
|
+
children: j("channel.health", "Health")
|
|
458
458
|
}),
|
|
459
459
|
/* @__PURE__ */ w("th", {
|
|
460
460
|
className: "text-left px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
461
|
-
children:
|
|
461
|
+
children: j("channel.connection", "Connection")
|
|
462
462
|
}),
|
|
463
463
|
/* @__PURE__ */ w("th", {
|
|
464
464
|
className: "text-right px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
465
|
-
children:
|
|
465
|
+
children: j("channel.msgs24h", "Msgs 24h")
|
|
466
466
|
}),
|
|
467
467
|
/* @__PURE__ */ w("th", {
|
|
468
468
|
className: "text-right px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
469
|
-
children:
|
|
469
|
+
children: j("channel.updated", "Updated")
|
|
470
470
|
}),
|
|
471
471
|
/* @__PURE__ */ w("th", {
|
|
472
472
|
className: "text-right px-4 py-3 text-xs font-medium text-text-secondary uppercase tracking-wider",
|
|
473
|
-
children:
|
|
473
|
+
children: j("channel.actions", "Actions")
|
|
474
474
|
})
|
|
475
475
|
]
|
|
476
476
|
}) }), /* @__PURE__ */ w("tbody", {
|
|
477
477
|
className: "divide-y divide-border",
|
|
478
478
|
children: z.map((e) => {
|
|
479
|
-
let t =
|
|
479
|
+
let t = Se === e.id;
|
|
480
480
|
return /* @__PURE__ */ T("tr", {
|
|
481
481
|
className: "bg-surface hover:bg-action-primary-bg/60 transition-colors group",
|
|
482
482
|
children: [
|
|
@@ -509,7 +509,7 @@ function A() {
|
|
|
509
509
|
className: "px-4 py-3",
|
|
510
510
|
children: /* @__PURE__ */ T("span", {
|
|
511
511
|
className: "inline-flex items-center gap-1.5",
|
|
512
|
-
children: [/* @__PURE__ */ w("span", { className: `w-1.5 h-1.5 rounded-full ${L(e.status).dotColor}` }), /* @__PURE__ */ w("span", {
|
|
512
|
+
children: [/* @__PURE__ */ w("span", { className: `w-1.5 h-1.5 rounded-full ${L(e.status).dotColor} ${e.status === "ACTIVE" ? "motion-safe:animate-vc-glow-pulse" : ""}` }), /* @__PURE__ */ w("span", {
|
|
513
513
|
className: `text-xs ${L(e.status).textColor}`,
|
|
514
514
|
children: L(e.status).label
|
|
515
515
|
})]
|
|
@@ -529,7 +529,7 @@ function A() {
|
|
|
529
529
|
className: "px-4 py-3",
|
|
530
530
|
children: /* @__PURE__ */ w("span", {
|
|
531
531
|
className: `text-xs ${e.isConnected ? "text-status-success-text" : "text-text-secondary"}`,
|
|
532
|
-
children: e.isConnected ?
|
|
532
|
+
children: e.isConnected ? j("channel.connected", "Connected") : j("channel.disconnected", "Disconnected")
|
|
533
533
|
})
|
|
534
534
|
}),
|
|
535
535
|
/* @__PURE__ */ w("td", {
|
|
@@ -543,7 +543,7 @@ function A() {
|
|
|
543
543
|
className: "px-4 py-3 text-right",
|
|
544
544
|
children: /* @__PURE__ */ w("span", {
|
|
545
545
|
className: "text-xs text-text-secondary whitespace-nowrap",
|
|
546
|
-
children:
|
|
546
|
+
children: be(e.updatedAt)
|
|
547
547
|
})
|
|
548
548
|
}),
|
|
549
549
|
/* @__PURE__ */ w("td", {
|
|
@@ -555,17 +555,17 @@ function A() {
|
|
|
555
555
|
type: "button",
|
|
556
556
|
onClick: () => m(`/channels/${e.id}`),
|
|
557
557
|
className: "p-1.5 text-text-secondary hover:text-accent-primary hover:bg-accent-primary/10 rounded transition-colors",
|
|
558
|
-
title:
|
|
558
|
+
title: j("channel.view", "View"),
|
|
559
559
|
children: /* @__PURE__ */ w(se, { size: 14 })
|
|
560
560
|
}),
|
|
561
561
|
/* @__PURE__ */ w(s, {
|
|
562
562
|
permission: c.CHANNEL_EXECUTE,
|
|
563
563
|
children: /* @__PURE__ */ w("button", {
|
|
564
564
|
type: "button",
|
|
565
|
-
onClick: () =>
|
|
565
|
+
onClick: () => Te(e.id),
|
|
566
566
|
disabled: t,
|
|
567
567
|
className: "p-1.5 text-text-secondary hover:text-accent-blue hover:bg-accent-blue-subtle rounded transition-colors disabled:opacity-40",
|
|
568
|
-
title:
|
|
568
|
+
title: j("channel.healthCheck", "Health Check"),
|
|
569
569
|
children: t ? /* @__PURE__ */ w(v, {
|
|
570
570
|
size: 14,
|
|
571
571
|
className: "animate-spin"
|
|
@@ -576,26 +576,26 @@ function A() {
|
|
|
576
576
|
permission: c.CHANNEL_UPDATE,
|
|
577
577
|
children: /* @__PURE__ */ w("button", {
|
|
578
578
|
type: "button",
|
|
579
|
-
onClick: () =>
|
|
579
|
+
onClick: () => we(e),
|
|
580
580
|
disabled: t,
|
|
581
581
|
className: `p-1.5 rounded transition-colors disabled:opacity-40 ${e.status === "ACTIVE" ? "text-text-secondary hover:text-status-warning-text hover:bg-status-warning-bg-subtle" : "text-text-secondary hover:text-status-success-text hover:bg-status-success-bg-subtle"}`,
|
|
582
|
-
title: e.status === "ACTIVE" ?
|
|
582
|
+
title: e.status === "ACTIVE" ? j("channel.deactivate", "Deactivate") : j("channel.activate", "Activate"),
|
|
583
583
|
children: e.status === "ACTIVE" ? /* @__PURE__ */ w(b, { size: 14 }) : /* @__PURE__ */ w(ue, { size: 14 })
|
|
584
584
|
})
|
|
585
585
|
}),
|
|
586
|
-
|
|
586
|
+
xe === e.id ? /* @__PURE__ */ T("span", {
|
|
587
587
|
className: "inline-flex items-center gap-1 ml-1",
|
|
588
588
|
children: [/* @__PURE__ */ w("button", {
|
|
589
589
|
type: "button",
|
|
590
|
-
onClick: () =>
|
|
590
|
+
onClick: () => Ce(e.id),
|
|
591
591
|
disabled: t,
|
|
592
592
|
className: "px-1.5 py-0.5 text-[11px] font-medium text-status-error-text hover:bg-status-error-bg-subtle rounded transition-colors",
|
|
593
|
-
children: t ? "..." :
|
|
593
|
+
children: t ? "..." : j("channel.yes", "Yes")
|
|
594
594
|
}), /* @__PURE__ */ w("button", {
|
|
595
595
|
type: "button",
|
|
596
596
|
onClick: () => M(null),
|
|
597
597
|
className: "px-1.5 py-0.5 text-[11px] text-text-secondary hover:bg-action-primary-bg/10 rounded transition-colors",
|
|
598
|
-
children:
|
|
598
|
+
children: j("channel.no", "No")
|
|
599
599
|
})]
|
|
600
600
|
}) : /* @__PURE__ */ w(s, {
|
|
601
601
|
permission: c.CHANNEL_DELETE,
|
|
@@ -603,7 +603,7 @@ function A() {
|
|
|
603
603
|
type: "button",
|
|
604
604
|
onClick: () => M(e.id),
|
|
605
605
|
className: "p-1.5 text-text-secondary hover:text-status-error-text hover:bg-status-error-bg-subtle rounded transition-colors",
|
|
606
|
-
title:
|
|
606
|
+
title: j("channel.delete", "Delete"),
|
|
607
607
|
children: /* @__PURE__ */ w(pe, { size: 14 })
|
|
608
608
|
})
|
|
609
609
|
})
|
|
@@ -620,7 +620,7 @@ function A() {
|
|
|
620
620
|
children: [/* @__PURE__ */ T("p", {
|
|
621
621
|
className: "text-xs text-text-secondary",
|
|
622
622
|
children: [
|
|
623
|
-
|
|
623
|
+
j("channel.showing", "Showing"),
|
|
624
624
|
" ",
|
|
625
625
|
/* @__PURE__ */ T("span", {
|
|
626
626
|
className: "font-medium text-text-primary",
|
|
@@ -631,14 +631,14 @@ function A() {
|
|
|
631
631
|
]
|
|
632
632
|
}),
|
|
633
633
|
" ",
|
|
634
|
-
|
|
634
|
+
j("channel.of", "of"),
|
|
635
635
|
" ",
|
|
636
636
|
/* @__PURE__ */ w("span", {
|
|
637
637
|
className: "font-medium text-text-primary",
|
|
638
638
|
children: H
|
|
639
639
|
}),
|
|
640
640
|
" ",
|
|
641
|
-
|
|
641
|
+
j("channel.channelsLower", "channels")
|
|
642
642
|
]
|
|
643
643
|
}), /* @__PURE__ */ T("div", {
|
|
644
644
|
className: "flex items-center gap-2",
|
|
@@ -648,7 +648,7 @@ function A() {
|
|
|
648
648
|
onClick: () => F((e) => Math.max(0, e - 1)),
|
|
649
649
|
disabled: P === 0,
|
|
650
650
|
className: "px-2.5 py-1 text-xs border border-border-subtle rounded hover:bg-bg-sunken transition-colors disabled:opacity-40 disabled:cursor-not-allowed",
|
|
651
|
-
children:
|
|
651
|
+
children: j("channel.previous", "Prev")
|
|
652
652
|
}),
|
|
653
653
|
/* @__PURE__ */ T("span", {
|
|
654
654
|
className: "text-xs text-text-secondary",
|
|
@@ -663,7 +663,7 @@ function A() {
|
|
|
663
663
|
onClick: () => F((e) => Math.min(X - 1, e + 1)),
|
|
664
664
|
disabled: P >= X - 1,
|
|
665
665
|
className: "px-2.5 py-1 text-xs border border-border-subtle rounded hover:bg-bg-sunken transition-colors disabled:opacity-40 disabled:cursor-not-allowed",
|
|
666
|
-
children:
|
|
666
|
+
children: j("channel.next", "Next")
|
|
667
667
|
})
|
|
668
668
|
]
|
|
669
669
|
})]
|
|
@@ -676,7 +676,7 @@ function A() {
|
|
|
676
676
|
/* @__PURE__ */ T("button", {
|
|
677
677
|
type: "button",
|
|
678
678
|
onClick: () => m("/channels/?tab=all"),
|
|
679
|
-
className: "flex items-center gap-3 p-3 bg-
|
|
679
|
+
className: "flex items-center gap-3 p-3 bg-gloss-card border border-border-seam rounded-lg shadow-[var(--shadow-pop)] hover:bg-action-primary-bg/10 transition-colors text-left",
|
|
680
680
|
children: [/* @__PURE__ */ w(x, {
|
|
681
681
|
size: 16,
|
|
682
682
|
className: "text-accent-primary shrink-0"
|
|
@@ -684,17 +684,17 @@ function A() {
|
|
|
684
684
|
className: "min-w-0",
|
|
685
685
|
children: [/* @__PURE__ */ w("p", {
|
|
686
686
|
className: "text-sm font-medium text-text-primary",
|
|
687
|
-
children:
|
|
687
|
+
children: j("channel.allChannels", "All Channels")
|
|
688
688
|
}), /* @__PURE__ */ w("p", {
|
|
689
689
|
className: "text-xs text-text-secondary truncate",
|
|
690
|
-
children:
|
|
690
|
+
children: j("channel.browseChannels", "Browse and manage channel cards")
|
|
691
691
|
})]
|
|
692
692
|
})]
|
|
693
693
|
}),
|
|
694
694
|
/* @__PURE__ */ T("button", {
|
|
695
695
|
type: "button",
|
|
696
696
|
onClick: () => m("/channels/?tab=connections"),
|
|
697
|
-
className: "flex items-center gap-3 p-3 bg-
|
|
697
|
+
className: "flex items-center gap-3 p-3 bg-gloss-card border border-border-seam rounded-lg shadow-[var(--shadow-pop)] hover:bg-action-primary-bg/10 transition-colors text-left",
|
|
698
698
|
children: [/* @__PURE__ */ w(h, {
|
|
699
699
|
size: 16,
|
|
700
700
|
className: "text-accent-blue shrink-0"
|
|
@@ -702,17 +702,17 @@ function A() {
|
|
|
702
702
|
className: "min-w-0",
|
|
703
703
|
children: [/* @__PURE__ */ w("p", {
|
|
704
704
|
className: "text-sm font-medium text-text-primary",
|
|
705
|
-
children:
|
|
705
|
+
children: j("channel.connections", "Connections")
|
|
706
706
|
}), /* @__PURE__ */ w("p", {
|
|
707
707
|
className: "text-xs text-text-secondary truncate",
|
|
708
|
-
children:
|
|
708
|
+
children: j("channel.connectionsSubtitle", "OAuth, API keys & credentials")
|
|
709
709
|
})]
|
|
710
710
|
})]
|
|
711
711
|
}),
|
|
712
712
|
/* @__PURE__ */ T("button", {
|
|
713
713
|
type: "button",
|
|
714
714
|
onClick: () => m("/channels/?tab=send"),
|
|
715
|
-
className: "flex items-center gap-3 p-3 bg-
|
|
715
|
+
className: "flex items-center gap-3 p-3 bg-gloss-card border border-border-seam rounded-lg shadow-[var(--shadow-pop)] hover:bg-action-primary-bg/10 transition-colors text-left",
|
|
716
716
|
children: [/* @__PURE__ */ w(oe, {
|
|
717
717
|
size: 16,
|
|
718
718
|
className: "text-accent-violet shrink-0"
|
|
@@ -720,10 +720,10 @@ function A() {
|
|
|
720
720
|
className: "min-w-0",
|
|
721
721
|
children: [/* @__PURE__ */ w("p", {
|
|
722
722
|
className: "text-sm font-medium text-text-primary",
|
|
723
|
-
children:
|
|
723
|
+
children: j("channel.sendMessage", "Send Message")
|
|
724
724
|
}), /* @__PURE__ */ w("p", {
|
|
725
725
|
className: "text-xs text-text-secondary truncate",
|
|
726
|
-
children:
|
|
726
|
+
children: j("channel.sendMessageSubtitle", "Send a test or one-off notification")
|
|
727
727
|
})]
|
|
728
728
|
})]
|
|
729
729
|
})
|
|
@@ -734,6 +734,6 @@ function A() {
|
|
|
734
734
|
});
|
|
735
735
|
}
|
|
736
736
|
//#endregion
|
|
737
|
-
export {
|
|
737
|
+
export { j as ChannelDashboardPage };
|
|
738
738
|
|
|
739
739
|
//# sourceMappingURL=ChannelDashboardPage.js.map
|