@burdenoff/microfe-eventfullymanaged 2026.827.1 → 2026.830.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.
- package/dist/eventfullymanaged/EventfullyManagedRoot.d.ts.map +1 -1
- package/dist/eventfullymanaged/EventfullyManagedRoot.js +31 -19
- package/dist/eventfullymanaged/EventfullyManagedRoot.js.map +1 -1
- package/dist/eventfullymanaged/hooks/index.d.ts +1 -0
- package/dist/eventfullymanaged/hooks/index.d.ts.map +1 -1
- package/dist/eventfullymanaged/hooks/index.js +3 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.d.ts +19 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.d.ts.map +1 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.js +16 -0
- package/dist/eventfullymanaged/hooks/useEventDelete.js.map +1 -0
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js +104 -107
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/events/EventDetailPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/events/EventDetailPage.js +263 -250
- package/dist/eventfullymanaged/pages/events/EventDetailPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +77 -77
- package/dist/eventfullymanaged/pages/modules/EventsPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +118 -116
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +56 -56
- package/dist/eventfullymanaged/store/eventfullyManagedStore.js +15 -0
- package/dist/eventfullymanaged/store/eventfullyManagedStore.js.map +1 -0
- package/dist/shared/hooks/index.d.ts +2 -0
- package/dist/shared/hooks/index.d.ts.map +1 -0
- package/dist/shared/hooks/useTr.d.ts +17 -0
- package/dist/shared/hooks/useTr.d.ts.map +1 -0
- package/dist/shared/hooks/useTr.js +14 -0
- package/dist/shared/hooks/useTr.js.map +1 -0
- package/package.json +1 -1
|
@@ -5,16 +5,18 @@ import { notify as r } from "../../lib/toast.js";
|
|
|
5
5
|
import { useDeleteEventSessionMutation as i, useDeleteSpeakerMutation as a, useDeleteTicketTypeMutation as o, useEventQuery as s, useRegistrationsQuery as c, useSpeakersQuery as l, useTicketTypesQuery as u, useVenuesQuery as d } from "../../api/eventApi.js";
|
|
6
6
|
import { CHART_COLORS as f } from "../../components/EventCharts.js";
|
|
7
7
|
import { formatDateTime as p } from "./eventFormUtils.js";
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
8
|
+
import { useEventDelete as m } from "../../hooks/useEventDelete.js";
|
|
9
|
+
import "../../hooks/index.js";
|
|
10
|
+
import { ActionMenu as h } from "../../components/ActionMenu.js";
|
|
11
|
+
import { Pagination as g, usePagination as _ } from "../../components/Pagination.js";
|
|
12
|
+
import { describeValidity as v } from "../../lib/format.js";
|
|
13
|
+
import { useMemo as y, useState as b } from "react";
|
|
14
|
+
import { useParams as x } from "react-router";
|
|
15
|
+
import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
16
|
+
import { ArrowLeft as T, CalendarClock as E, Clock as D, Edit as O, Eye as k, MapPin as A, Mic2 as j, Plus as M, Ticket as N, Users as P, Video as F } from "lucide-react";
|
|
17
|
+
import { Badge as I, Button as L, GlassCard as R, IllustratedEmptyState as z, Skeleton as B, Tabs as V, TabsContent as H, TabsList as U, TabsTrigger as W } from "@burdenoff/fe-libs/ui";
|
|
16
18
|
//#region src/eventfullymanaged/pages/events/EventDetailPage.tsx
|
|
17
|
-
function
|
|
19
|
+
function G(e) {
|
|
18
20
|
let t = e.toLowerCase();
|
|
19
21
|
return [
|
|
20
22
|
"active",
|
|
@@ -36,24 +38,24 @@ function W(e) {
|
|
|
36
38
|
"scheduled"
|
|
37
39
|
].includes(t) ? "info" : "secondary";
|
|
38
40
|
}
|
|
39
|
-
function
|
|
41
|
+
function K(e, t) {
|
|
40
42
|
let n = new Date(e).getTime(), r = new Date(t).getTime();
|
|
41
43
|
if (Number.isNaN(n) || Number.isNaN(r) || r <= n) return "";
|
|
42
44
|
let i = Math.round((r - n) / 6e4), a = Math.floor(i / 60), o = i % 60;
|
|
43
45
|
return a && o ? `${a}h ${o}m` : a ? `${a}h` : `${o}m`;
|
|
44
46
|
}
|
|
45
|
-
function
|
|
47
|
+
function q(e) {
|
|
46
48
|
let t = e < 12 ? "AM" : "PM";
|
|
47
49
|
return `${e % 12 == 0 ? 12 : e % 12}:00 ${t}`;
|
|
48
50
|
}
|
|
49
|
-
function
|
|
51
|
+
function J(e) {
|
|
50
52
|
let t = new Date(e);
|
|
51
53
|
return Number.isNaN(t.getTime()) ? "" : t.toLocaleTimeString(void 0, {
|
|
52
54
|
hour: "numeric",
|
|
53
55
|
minute: "2-digit"
|
|
54
56
|
});
|
|
55
57
|
}
|
|
56
|
-
var
|
|
58
|
+
var Y = t`
|
|
57
59
|
query EventfullymanagedScheduleSessions($eventId: ID, $limit: Int, $offset: Int) {
|
|
58
60
|
eventSessions: eventfullyManagedEventSessions(eventId: $eventId, limit: $limit, offset: $offset) {
|
|
59
61
|
total
|
|
@@ -71,28 +73,28 @@ var J = t`
|
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
|
-
`,
|
|
75
|
-
function
|
|
76
|
+
`, X = "General";
|
|
77
|
+
function Z(e) {
|
|
76
78
|
let t = new Date(e);
|
|
77
79
|
return Number.isNaN(t.getTime()) ? "unknown" : t.toISOString().slice(0, 10);
|
|
78
80
|
}
|
|
79
|
-
function
|
|
80
|
-
let o =
|
|
81
|
-
return /* @__PURE__ */
|
|
81
|
+
function Q({ session: e, color: t, speakerName: n, roomName: r, onEdit: i, onDelete: a }) {
|
|
82
|
+
let o = K(e.startsAt, e.endsAt);
|
|
83
|
+
return /* @__PURE__ */ w("div", {
|
|
82
84
|
className: "relative rounded-card border border-border-subtle p-3 shadow-elevation-1",
|
|
83
85
|
style: {
|
|
84
86
|
borderLeftWidth: "3px",
|
|
85
87
|
borderLeftColor: t,
|
|
86
88
|
background: `color-mix(in srgb, ${t} 8%, var(--color-bg-surface))`
|
|
87
89
|
},
|
|
88
|
-
children: [/* @__PURE__ */
|
|
90
|
+
children: [/* @__PURE__ */ w("div", {
|
|
89
91
|
className: "flex items-start justify-between gap-2",
|
|
90
|
-
children: [/* @__PURE__ */
|
|
92
|
+
children: [/* @__PURE__ */ C("p", {
|
|
91
93
|
className: "min-w-0 pr-1 text-sm font-semibold leading-snug text-text-primary",
|
|
92
94
|
children: e.title
|
|
93
|
-
}), /* @__PURE__ */
|
|
95
|
+
}), /* @__PURE__ */ C("div", {
|
|
94
96
|
className: "-mr-1 -mt-1 shrink-0",
|
|
95
|
-
children: /* @__PURE__ */
|
|
97
|
+
children: /* @__PURE__ */ C(h, {
|
|
96
98
|
ariaLabel: `Session actions for ${e.title}`,
|
|
97
99
|
entityName: e.title,
|
|
98
100
|
deleteLabel: "Delete session",
|
|
@@ -100,33 +102,33 @@ function Z({ session: e, color: t, speakerName: n, roomName: r, onEdit: i, onDel
|
|
|
100
102
|
onDelete: a
|
|
101
103
|
})
|
|
102
104
|
})]
|
|
103
|
-
}), /* @__PURE__ */
|
|
105
|
+
}), /* @__PURE__ */ w("dl", {
|
|
104
106
|
className: "mt-2 space-y-1 text-xs text-text-secondary",
|
|
105
107
|
children: [
|
|
106
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ w("div", {
|
|
107
109
|
className: "flex items-center gap-1.5",
|
|
108
|
-
children: [/* @__PURE__ */
|
|
110
|
+
children: [/* @__PURE__ */ C(j, { className: "h-3.5 w-3.5 shrink-0 text-text-muted" }), /* @__PURE__ */ C("span", {
|
|
109
111
|
className: "truncate",
|
|
110
112
|
children: n ?? "Speaker TBD"
|
|
111
113
|
})]
|
|
112
114
|
}),
|
|
113
|
-
r ? /* @__PURE__ */
|
|
115
|
+
r ? /* @__PURE__ */ w("div", {
|
|
114
116
|
className: "flex items-center gap-1.5",
|
|
115
|
-
children: [/* @__PURE__ */
|
|
117
|
+
children: [/* @__PURE__ */ C(A, { className: "h-3.5 w-3.5 shrink-0 text-text-muted" }), /* @__PURE__ */ C("span", {
|
|
116
118
|
className: "truncate",
|
|
117
119
|
children: r
|
|
118
120
|
})]
|
|
119
121
|
}) : null,
|
|
120
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ w("div", {
|
|
121
123
|
className: "flex items-center gap-1.5",
|
|
122
|
-
children: [/* @__PURE__ */
|
|
124
|
+
children: [/* @__PURE__ */ C(D, { className: "h-3.5 w-3.5 shrink-0 text-text-muted" }), /* @__PURE__ */ w("span", { children: [J(e.startsAt), o ? ` · ${o}` : ""] })]
|
|
123
125
|
})
|
|
124
126
|
]
|
|
125
127
|
})]
|
|
126
128
|
});
|
|
127
129
|
}
|
|
128
|
-
function
|
|
129
|
-
let { navigate: a } = e(), o =
|
|
130
|
+
function ee({ eventId: t }) {
|
|
131
|
+
let { navigate: a } = e(), o = _(), { data: s, loading: c, refetch: u } = n(Y, { variables: {
|
|
130
132
|
eventId: t,
|
|
131
133
|
limit: o.limit,
|
|
132
134
|
offset: o.offset
|
|
@@ -136,29 +138,29 @@ function Q({ eventId: t }) {
|
|
|
136
138
|
}), { data: m } = l({
|
|
137
139
|
limit: 100,
|
|
138
140
|
offset: 0
|
|
139
|
-
}), [
|
|
141
|
+
}), [h] = i(), v = s?.eventSessions?.total ?? 0, b = y(() => s?.eventSessions?.items ?? [], [s]), x = y(() => {
|
|
140
142
|
let e = /* @__PURE__ */ new Map();
|
|
141
143
|
for (let t of p?.venues?.items ?? []) e.set(t.id, t.name);
|
|
142
144
|
return e;
|
|
143
|
-
}, [p]),
|
|
145
|
+
}, [p]), S = y(() => {
|
|
144
146
|
let e = /* @__PURE__ */ new Map();
|
|
145
147
|
for (let t of m?.speakers?.items ?? []) e.set(t.id, t.fullName);
|
|
146
148
|
return e;
|
|
147
|
-
}, [m]), T =
|
|
149
|
+
}, [m]), T = y(() => {
|
|
148
150
|
let e = /* @__PURE__ */ new Map(), t = 0;
|
|
149
151
|
for (let n of b) {
|
|
150
|
-
let r = n.track?.trim() ||
|
|
152
|
+
let r = n.track?.trim() || X;
|
|
151
153
|
e.has(r) || (e.set(r, f[t % f.length]), t += 1);
|
|
152
154
|
}
|
|
153
155
|
return e;
|
|
154
|
-
}, [b]), E =
|
|
156
|
+
}, [b]), E = y(() => {
|
|
155
157
|
let e = /* @__PURE__ */ new Map();
|
|
156
158
|
for (let t of [...b].sort((e, t) => new Date(e.startsAt).getTime() - new Date(t.startsAt).getTime())) {
|
|
157
|
-
let n =
|
|
159
|
+
let n = Z(t.startsAt), r = e.get(n) ?? [];
|
|
158
160
|
r.push(t), e.set(n, r);
|
|
159
161
|
}
|
|
160
162
|
return Array.from(e.entries()).map(([e, t]) => {
|
|
161
|
-
let n = Array.from(new Set(t.map((e) => e.track?.trim() ||
|
|
163
|
+
let n = Array.from(new Set(t.map((e) => e.track?.trim() || X))), r = t.map((e) => new Date(e.startsAt).getHours()).filter((e) => !Number.isNaN(e)), i = r.length ? Math.min(...r) : 9, a = r.length ? Math.max(...r) : 17, o = [];
|
|
162
164
|
for (let e = i; e <= a; e += 1) o.push(e);
|
|
163
165
|
return {
|
|
164
166
|
key: e,
|
|
@@ -168,49 +170,49 @@ function Q({ eventId: t }) {
|
|
|
168
170
|
};
|
|
169
171
|
});
|
|
170
172
|
}, [b]), D = async (e) => {
|
|
171
|
-
let t = await
|
|
173
|
+
let t = await h({ variables: { id: e.id } });
|
|
172
174
|
if (t.error) throw r.error("Could not delete session", t.error.message), t.error;
|
|
173
175
|
if (!t.data?.deleteEventSession) throw r.error("Could not delete session", "The server did not confirm the change."), Error("delete-unconfirmed");
|
|
174
176
|
r.success("Session deleted", e.title), await u();
|
|
175
177
|
}, O = (e) => {
|
|
176
178
|
let t = e.metadata ?? {}, n = typeof t.speakerId == "string" ? t.speakerId : "";
|
|
177
|
-
return n ?
|
|
179
|
+
return n ? S.get(n) : void 0;
|
|
178
180
|
}, k = (e) => e.venueId ? x.get(e.venueId) : void 0;
|
|
179
|
-
return /* @__PURE__ */
|
|
181
|
+
return /* @__PURE__ */ w("div", {
|
|
180
182
|
className: "space-y-5",
|
|
181
183
|
children: [
|
|
182
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ w("div", {
|
|
183
185
|
className: "flex items-center justify-between gap-3",
|
|
184
|
-
children: [/* @__PURE__ */
|
|
186
|
+
children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("h2", {
|
|
185
187
|
className: "text-lg font-semibold text-text-primary",
|
|
186
188
|
children: "Agenda & Sessions"
|
|
187
|
-
}), /* @__PURE__ */
|
|
189
|
+
}), /* @__PURE__ */ C("p", {
|
|
188
190
|
className: "text-sm text-text-secondary",
|
|
189
191
|
children: "A multi-track schedule of everything happening on the day."
|
|
190
|
-
})] }), /* @__PURE__ */
|
|
192
|
+
})] }), /* @__PURE__ */ w(L, {
|
|
191
193
|
type: "button",
|
|
192
194
|
size: "sm",
|
|
193
195
|
onClick: () => a(`/events/${t}/sessions/create`),
|
|
194
|
-
children: [/* @__PURE__ */
|
|
196
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Session"]
|
|
195
197
|
})]
|
|
196
198
|
}),
|
|
197
|
-
c ? /* @__PURE__ */
|
|
199
|
+
c ? /* @__PURE__ */ C(B, { className: "h-64 w-full rounded-card" }) : b.length === 0 ? /* @__PURE__ */ C(z, {
|
|
198
200
|
illustration: "empty-data",
|
|
199
201
|
title: "No sessions yet.",
|
|
200
202
|
description: "Build the agenda by adding your first session.",
|
|
201
|
-
action: /* @__PURE__ */
|
|
203
|
+
action: /* @__PURE__ */ w(L, {
|
|
202
204
|
type: "button",
|
|
203
205
|
size: "sm",
|
|
204
206
|
onClick: () => a(`/events/${t}/sessions/create`),
|
|
205
|
-
children: [/* @__PURE__ */
|
|
207
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Session"]
|
|
206
208
|
}),
|
|
207
209
|
className: "py-10"
|
|
208
|
-
}) : /* @__PURE__ */
|
|
210
|
+
}) : /* @__PURE__ */ C("div", {
|
|
209
211
|
className: "space-y-8",
|
|
210
|
-
children: E.map((e) => /* @__PURE__ */
|
|
212
|
+
children: E.map((e) => /* @__PURE__ */ w("section", {
|
|
211
213
|
className: "space-y-3",
|
|
212
214
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
215
|
+
/* @__PURE__ */ C("h3", {
|
|
214
216
|
className: "text-sm font-semibold text-text-primary",
|
|
215
217
|
children: (/* @__PURE__ */ new Date(`${e.key}T00:00:00`)).toLocaleDateString(void 0, {
|
|
216
218
|
weekday: "long",
|
|
@@ -218,32 +220,32 @@ function Q({ eventId: t }) {
|
|
|
218
220
|
day: "numeric"
|
|
219
221
|
})
|
|
220
222
|
}),
|
|
221
|
-
/* @__PURE__ */
|
|
223
|
+
/* @__PURE__ */ C("div", {
|
|
222
224
|
className: "hidden overflow-x-auto rounded-card border border-border-seam md:block",
|
|
223
|
-
children: /* @__PURE__ */
|
|
225
|
+
children: /* @__PURE__ */ w("div", {
|
|
224
226
|
className: "grid min-w-max",
|
|
225
227
|
style: { gridTemplateColumns: `88px repeat(${e.tracks.length}, minmax(200px, 1fr))` },
|
|
226
228
|
children: [
|
|
227
|
-
/* @__PURE__ */
|
|
228
|
-
e.tracks.map((e) => /* @__PURE__ */
|
|
229
|
+
/* @__PURE__ */ C("div", { className: "sticky left-0 z-10 border-b border-border-seam bg-bg-sunken px-3 py-2.5" }),
|
|
230
|
+
e.tracks.map((e) => /* @__PURE__ */ C("div", {
|
|
229
231
|
className: "border-b border-l border-border-seam bg-bg-sunken px-3 py-2.5 text-center text-sm font-semibold text-text-primary",
|
|
230
|
-
children: /* @__PURE__ */
|
|
232
|
+
children: /* @__PURE__ */ w("span", {
|
|
231
233
|
className: "inline-flex items-center gap-2",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
234
|
+
children: [/* @__PURE__ */ C("span", {
|
|
233
235
|
className: "h-2 w-2 rounded-full",
|
|
234
236
|
style: { background: T.get(e) },
|
|
235
237
|
"aria-hidden": "true"
|
|
236
238
|
}), e]
|
|
237
239
|
})
|
|
238
240
|
}, e)),
|
|
239
|
-
e.hourRange.map((n) => /* @__PURE__ */
|
|
241
|
+
e.hourRange.map((n) => /* @__PURE__ */ w("div", {
|
|
240
242
|
className: "contents",
|
|
241
|
-
children: [/* @__PURE__ */
|
|
243
|
+
children: [/* @__PURE__ */ C("div", {
|
|
242
244
|
className: "sticky left-0 z-10 border-b border-border-subtle bg-bg-surface px-3 py-3 text-xs font-medium text-text-muted",
|
|
243
|
-
children:
|
|
244
|
-
}), e.tracks.map((r) => /* @__PURE__ */
|
|
245
|
+
children: q(n)
|
|
246
|
+
}), e.tracks.map((r) => /* @__PURE__ */ C("div", {
|
|
245
247
|
className: "space-y-2 border-b border-l border-border-subtle p-2 align-top",
|
|
246
|
-
children: e.sessions.filter((e) => (e.track?.trim() ||
|
|
248
|
+
children: e.sessions.filter((e) => (e.track?.trim() || X) === r && new Date(e.startsAt).getHours() === n).map((e) => /* @__PURE__ */ C(Q, {
|
|
247
249
|
session: e,
|
|
248
250
|
color: T.get(r) ?? f[0],
|
|
249
251
|
speakerName: O(e),
|
|
@@ -256,11 +258,11 @@ function Q({ eventId: t }) {
|
|
|
256
258
|
]
|
|
257
259
|
})
|
|
258
260
|
}),
|
|
259
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ C("ul", {
|
|
260
262
|
className: "space-y-2.5 md:hidden",
|
|
261
263
|
children: e.sessions.map((e) => {
|
|
262
|
-
let n = e.track?.trim() ||
|
|
263
|
-
return /* @__PURE__ */
|
|
264
|
+
let n = e.track?.trim() || X;
|
|
265
|
+
return /* @__PURE__ */ C("li", { children: /* @__PURE__ */ C(Q, {
|
|
264
266
|
session: e,
|
|
265
267
|
color: T.get(n) ?? f[0],
|
|
266
268
|
speakerName: O(e),
|
|
@@ -273,11 +275,11 @@ function Q({ eventId: t }) {
|
|
|
273
275
|
]
|
|
274
276
|
}, e.key))
|
|
275
277
|
}),
|
|
276
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ C(g, {
|
|
277
279
|
offset: o.offset,
|
|
278
280
|
limit: o.limit,
|
|
279
281
|
loadedCount: b.length,
|
|
280
|
-
total:
|
|
282
|
+
total: v,
|
|
281
283
|
onPrev: o.prevPage,
|
|
282
284
|
onNext: o.nextPage,
|
|
283
285
|
itemLabel: "sessions",
|
|
@@ -286,8 +288,8 @@ function Q({ eventId: t }) {
|
|
|
286
288
|
]
|
|
287
289
|
});
|
|
288
290
|
}
|
|
289
|
-
function
|
|
290
|
-
let { navigate: t } = e(), n =
|
|
291
|
+
function te() {
|
|
292
|
+
let { navigate: t } = e(), n = _(), { data: i, loading: o, refetch: s } = l({
|
|
291
293
|
limit: n.limit,
|
|
292
294
|
offset: n.offset
|
|
293
295
|
}), [c] = a(), u = i?.speakers?.total ?? 0, d = i?.speakers?.items ?? [], f = async (e) => {
|
|
@@ -296,57 +298,57 @@ function ee() {
|
|
|
296
298
|
if (!t.data?.deleteSpeaker) throw r.error("Could not delete speaker", "The server did not confirm the change."), Error("delete-unconfirmed");
|
|
297
299
|
r.success("Speaker deleted", e.fullName), await s();
|
|
298
300
|
};
|
|
299
|
-
return /* @__PURE__ */
|
|
301
|
+
return /* @__PURE__ */ w("div", {
|
|
300
302
|
className: "space-y-4",
|
|
301
303
|
children: [
|
|
302
|
-
/* @__PURE__ */
|
|
304
|
+
/* @__PURE__ */ w("div", {
|
|
303
305
|
className: "flex items-center justify-between gap-3",
|
|
304
|
-
children: [/* @__PURE__ */
|
|
306
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
305
307
|
className: "text-lg font-semibold text-text-primary",
|
|
306
308
|
children: "Speakers"
|
|
307
|
-
}), /* @__PURE__ */
|
|
309
|
+
}), /* @__PURE__ */ w("div", {
|
|
308
310
|
className: "flex items-center gap-2",
|
|
309
|
-
children: [/* @__PURE__ */
|
|
311
|
+
children: [/* @__PURE__ */ C(L, {
|
|
310
312
|
type: "button",
|
|
311
313
|
variant: "outline",
|
|
312
314
|
size: "sm",
|
|
313
315
|
onClick: () => t("/speakers"),
|
|
314
316
|
children: "Manage speakers"
|
|
315
|
-
}), /* @__PURE__ */
|
|
317
|
+
}), /* @__PURE__ */ w(L, {
|
|
316
318
|
type: "button",
|
|
317
319
|
size: "sm",
|
|
318
320
|
onClick: () => t("/speakers/create"),
|
|
319
|
-
children: [/* @__PURE__ */
|
|
321
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Speaker"]
|
|
320
322
|
})]
|
|
321
323
|
})]
|
|
322
324
|
}),
|
|
323
|
-
o ? /* @__PURE__ */
|
|
325
|
+
o ? /* @__PURE__ */ C(B, { className: "h-40 w-full rounded-card" }) : d.length === 0 ? /* @__PURE__ */ C(z, {
|
|
324
326
|
illustration: "empty-people",
|
|
325
327
|
title: "No speakers yet.",
|
|
326
328
|
description: "Add speakers so you can assign them to sessions.",
|
|
327
329
|
className: "py-8"
|
|
328
|
-
}) : /* @__PURE__ */
|
|
330
|
+
}) : /* @__PURE__ */ C("ul", {
|
|
329
331
|
className: "grid grid-cols-1 gap-2.5 sm:grid-cols-2",
|
|
330
|
-
children: d.map((e) => /* @__PURE__ */
|
|
332
|
+
children: d.map((e) => /* @__PURE__ */ C("li", {
|
|
331
333
|
className: "rounded-card border border-border-seam bg-bg-surface p-3 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1",
|
|
332
|
-
children: /* @__PURE__ */
|
|
334
|
+
children: /* @__PURE__ */ w("div", {
|
|
333
335
|
className: "flex items-center justify-between gap-3",
|
|
334
|
-
children: [/* @__PURE__ */
|
|
336
|
+
children: [/* @__PURE__ */ w("div", {
|
|
335
337
|
className: "flex min-w-0 items-center gap-3",
|
|
336
|
-
children: [/* @__PURE__ */
|
|
338
|
+
children: [/* @__PURE__ */ C("span", {
|
|
337
339
|
className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-accent-wash text-sm font-semibold text-action-primary-bg",
|
|
338
340
|
children: e.fullName.slice(0, 1).toUpperCase()
|
|
339
|
-
}), /* @__PURE__ */
|
|
341
|
+
}), /* @__PURE__ */ w("div", {
|
|
340
342
|
className: "min-w-0",
|
|
341
|
-
children: [/* @__PURE__ */
|
|
343
|
+
children: [/* @__PURE__ */ C("p", {
|
|
342
344
|
className: "truncate font-medium text-text-primary",
|
|
343
345
|
children: e.fullName
|
|
344
|
-
}), /* @__PURE__ */
|
|
346
|
+
}), /* @__PURE__ */ C("p", {
|
|
345
347
|
className: "mt-0.5 truncate text-sm text-text-secondary",
|
|
346
348
|
children: [e.title, e.organization].filter(Boolean).join(" • ") || "Speaker"
|
|
347
349
|
})]
|
|
348
350
|
})]
|
|
349
|
-
}), /* @__PURE__ */
|
|
351
|
+
}), /* @__PURE__ */ C(h, {
|
|
350
352
|
ariaLabel: `Speaker actions for ${e.fullName}`,
|
|
351
353
|
entityName: e.fullName,
|
|
352
354
|
deleteLabel: "Delete speaker",
|
|
@@ -356,7 +358,7 @@ function ee() {
|
|
|
356
358
|
})
|
|
357
359
|
}, e.id))
|
|
358
360
|
}),
|
|
359
|
-
/* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ C(g, {
|
|
360
362
|
offset: n.offset,
|
|
361
363
|
limit: n.limit,
|
|
362
364
|
loadedCount: d.length,
|
|
@@ -369,8 +371,8 @@ function ee() {
|
|
|
369
371
|
]
|
|
370
372
|
});
|
|
371
373
|
}
|
|
372
|
-
function
|
|
373
|
-
let { navigate: n } = e(), i =
|
|
374
|
+
function ne({ eventId: t }) {
|
|
375
|
+
let { navigate: n } = e(), i = _(), { data: a, loading: s, refetch: c } = u({
|
|
374
376
|
eventId: t,
|
|
375
377
|
limit: i.limit,
|
|
376
378
|
offset: i.offset
|
|
@@ -380,42 +382,42 @@ function te({ eventId: t }) {
|
|
|
380
382
|
if (!t.data?.deleteTicketType) throw r.error("Could not delete ticket type", "The server did not confirm the change."), Error("delete-unconfirmed");
|
|
381
383
|
r.success("Ticket type deleted"), await c();
|
|
382
384
|
};
|
|
383
|
-
return /* @__PURE__ */
|
|
385
|
+
return /* @__PURE__ */ w("div", {
|
|
384
386
|
className: "space-y-4",
|
|
385
387
|
children: [
|
|
386
|
-
/* @__PURE__ */
|
|
388
|
+
/* @__PURE__ */ w("div", {
|
|
387
389
|
className: "flex items-center justify-between gap-3",
|
|
388
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
389
391
|
className: "text-lg font-semibold text-text-primary",
|
|
390
392
|
children: "Ticket Types"
|
|
391
|
-
}), /* @__PURE__ */
|
|
393
|
+
}), /* @__PURE__ */ w(L, {
|
|
392
394
|
type: "button",
|
|
393
395
|
size: "sm",
|
|
394
396
|
onClick: () => n(`/events/${t}/tickets/create`),
|
|
395
|
-
children: [/* @__PURE__ */
|
|
397
|
+
children: [/* @__PURE__ */ C(M, { className: "h-4 w-4" }), "New Ticket Type"]
|
|
396
398
|
})]
|
|
397
399
|
}),
|
|
398
|
-
s ? /* @__PURE__ */
|
|
400
|
+
s ? /* @__PURE__ */ C(B, { className: "h-40 w-full rounded-card" }) : f.length === 0 ? /* @__PURE__ */ C(z, {
|
|
399
401
|
illustration: "empty-data",
|
|
400
402
|
title: "No ticket types yet.",
|
|
401
403
|
description: "Add a ticket type so attendees can register.",
|
|
402
404
|
className: "py-8"
|
|
403
|
-
}) : /* @__PURE__ */
|
|
405
|
+
}) : /* @__PURE__ */ C("ul", {
|
|
404
406
|
className: "space-y-3",
|
|
405
407
|
children: f.map((e) => {
|
|
406
408
|
let r = e.capacity != null && e.capacity > 0, i = r ? Math.min(100, Math.round(e.soldCount / e.capacity * 100)) : 0, a = i >= 90;
|
|
407
|
-
return /* @__PURE__ */
|
|
409
|
+
return /* @__PURE__ */ w("li", {
|
|
408
410
|
className: "rounded-card border border-border-seam bg-bg-surface p-4 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1",
|
|
409
|
-
children: [/* @__PURE__ */
|
|
411
|
+
children: [/* @__PURE__ */ w("div", {
|
|
410
412
|
className: "flex items-start justify-between gap-3",
|
|
411
|
-
children: [/* @__PURE__ */
|
|
413
|
+
children: [/* @__PURE__ */ w("div", {
|
|
412
414
|
className: "min-w-0",
|
|
413
415
|
children: [
|
|
414
|
-
/* @__PURE__ */
|
|
416
|
+
/* @__PURE__ */ C("p", {
|
|
415
417
|
className: "truncate font-medium text-text-primary",
|
|
416
418
|
children: e.name
|
|
417
419
|
}),
|
|
418
|
-
/* @__PURE__ */
|
|
420
|
+
/* @__PURE__ */ w("p", {
|
|
419
421
|
className: "mt-0.5 text-sm text-text-secondary",
|
|
420
422
|
children: [
|
|
421
423
|
e.price,
|
|
@@ -423,24 +425,24 @@ function te({ eventId: t }) {
|
|
|
423
425
|
e.currency
|
|
424
426
|
]
|
|
425
427
|
}),
|
|
426
|
-
/* @__PURE__ */
|
|
428
|
+
/* @__PURE__ */ w("p", {
|
|
427
429
|
className: "mt-1 flex items-center gap-1.5 text-xs text-text-muted",
|
|
428
|
-
children: [/* @__PURE__ */
|
|
430
|
+
children: [/* @__PURE__ */ C(E, {
|
|
429
431
|
className: "h-3.5 w-3.5 shrink-0",
|
|
430
432
|
"aria-hidden": "true"
|
|
431
|
-
}), /* @__PURE__ */
|
|
433
|
+
}), /* @__PURE__ */ w("span", {
|
|
432
434
|
className: "truncate",
|
|
433
|
-
children: ["Sales window · ",
|
|
435
|
+
children: ["Sales window · ", v(e.salesStartAt ?? "", e.salesEndAt ?? "")]
|
|
434
436
|
})]
|
|
435
437
|
})
|
|
436
438
|
]
|
|
437
|
-
}), /* @__PURE__ */
|
|
439
|
+
}), /* @__PURE__ */ w("div", {
|
|
438
440
|
className: "flex shrink-0 items-center gap-2",
|
|
439
|
-
children: [/* @__PURE__ */
|
|
441
|
+
children: [/* @__PURE__ */ C(I, {
|
|
440
442
|
variant: e.isActive ? "success" : "warning",
|
|
441
443
|
className: "uppercase",
|
|
442
444
|
children: e.isActive ? "Active" : "Inactive"
|
|
443
|
-
}), /* @__PURE__ */
|
|
445
|
+
}), /* @__PURE__ */ C(h, {
|
|
444
446
|
ariaLabel: `Ticket actions for ${e.name}`,
|
|
445
447
|
entityName: e.name,
|
|
446
448
|
deleteLabel: "Delete ticket type",
|
|
@@ -448,34 +450,34 @@ function te({ eventId: t }) {
|
|
|
448
450
|
onDelete: () => p(e)
|
|
449
451
|
})]
|
|
450
452
|
})]
|
|
451
|
-
}), /* @__PURE__ */
|
|
453
|
+
}), /* @__PURE__ */ w("div", {
|
|
452
454
|
className: "mt-3",
|
|
453
|
-
children: [/* @__PURE__ */
|
|
455
|
+
children: [/* @__PURE__ */ w("div", {
|
|
454
456
|
className: "flex items-center justify-between text-xs text-text-secondary",
|
|
455
|
-
children: [/* @__PURE__ */
|
|
456
|
-
/* @__PURE__ */
|
|
457
|
+
children: [/* @__PURE__ */ w("span", { children: [
|
|
458
|
+
/* @__PURE__ */ C("span", {
|
|
457
459
|
className: "font-medium tabular-nums text-text-primary",
|
|
458
460
|
children: e.soldCount.toLocaleString()
|
|
459
461
|
}),
|
|
460
462
|
" ",
|
|
461
463
|
"sold",
|
|
462
|
-
r ? /* @__PURE__ */
|
|
464
|
+
r ? /* @__PURE__ */ w(S, { children: [
|
|
463
465
|
" / ",
|
|
464
466
|
e.capacity.toLocaleString(),
|
|
465
467
|
" capacity"
|
|
466
468
|
] }) : " • unlimited capacity"
|
|
467
|
-
] }), r ? /* @__PURE__ */
|
|
469
|
+
] }), r ? /* @__PURE__ */ w("span", {
|
|
468
470
|
className: a ? "font-medium text-text-primary" : "",
|
|
469
471
|
children: [i, "%"]
|
|
470
472
|
}) : null]
|
|
471
|
-
}), r ? /* @__PURE__ */
|
|
473
|
+
}), r ? /* @__PURE__ */ C("div", {
|
|
472
474
|
className: "mt-1.5 h-2 overflow-hidden rounded-full bg-bg-sunken",
|
|
473
475
|
role: "progressbar",
|
|
474
476
|
"aria-valuenow": i,
|
|
475
477
|
"aria-valuemin": 0,
|
|
476
478
|
"aria-valuemax": 100,
|
|
477
479
|
"aria-label": `${e.name} sold`,
|
|
478
|
-
children: /* @__PURE__ */
|
|
480
|
+
children: /* @__PURE__ */ C("div", {
|
|
479
481
|
className: "h-full rounded-full transition-[width] duration-500",
|
|
480
482
|
style: {
|
|
481
483
|
width: `${i}%`,
|
|
@@ -487,7 +489,7 @@ function te({ eventId: t }) {
|
|
|
487
489
|
}, e.id);
|
|
488
490
|
})
|
|
489
491
|
}),
|
|
490
|
-
/* @__PURE__ */
|
|
492
|
+
/* @__PURE__ */ C(g, {
|
|
491
493
|
offset: i.offset,
|
|
492
494
|
limit: i.limit,
|
|
493
495
|
loadedCount: f.length,
|
|
@@ -501,27 +503,27 @@ function te({ eventId: t }) {
|
|
|
501
503
|
});
|
|
502
504
|
}
|
|
503
505
|
function $({ label: e, value: t, icon: n }) {
|
|
504
|
-
return /* @__PURE__ */
|
|
506
|
+
return /* @__PURE__ */ w(R, {
|
|
505
507
|
treatment: "metric",
|
|
506
508
|
className: "p-4",
|
|
507
509
|
children: [
|
|
508
|
-
/* @__PURE__ */
|
|
510
|
+
/* @__PURE__ */ C("span", {
|
|
509
511
|
className: "flex h-8 w-8 items-center justify-center rounded-button bg-accent-wash text-action-primary-bg",
|
|
510
|
-
children: /* @__PURE__ */
|
|
512
|
+
children: /* @__PURE__ */ C(n, { className: "h-4 w-4" })
|
|
511
513
|
}),
|
|
512
|
-
/* @__PURE__ */
|
|
514
|
+
/* @__PURE__ */ C("div", {
|
|
513
515
|
className: "mt-2.5 text-xl font-semibold tabular-nums text-text-primary",
|
|
514
516
|
children: t
|
|
515
517
|
}),
|
|
516
|
-
/* @__PURE__ */
|
|
518
|
+
/* @__PURE__ */ C("div", {
|
|
517
519
|
className: "mt-0.5 text-xs text-text-muted",
|
|
518
520
|
children: e
|
|
519
521
|
})
|
|
520
522
|
]
|
|
521
523
|
});
|
|
522
524
|
}
|
|
523
|
-
function
|
|
524
|
-
let { id: t = "" } =
|
|
525
|
+
function re() {
|
|
526
|
+
let { id: t = "" } = x(), { navigate: r } = e(), { data: i, loading: a } = s(t), { data: o } = n(Y, {
|
|
525
527
|
variables: {
|
|
526
528
|
eventId: t,
|
|
527
529
|
limit: 200
|
|
@@ -534,310 +536,321 @@ function ne() {
|
|
|
534
536
|
}), { data: f } = d({
|
|
535
537
|
limit: 100,
|
|
536
538
|
offset: 0
|
|
537
|
-
}), { data:
|
|
539
|
+
}), { data: g } = c({
|
|
538
540
|
eventId: t,
|
|
539
541
|
limit: 1,
|
|
540
542
|
offset: 0
|
|
541
|
-
}), [
|
|
542
|
-
|
|
543
|
+
}), { onDeleteEvent: _ } = m(), [v, S] = b("overview"), D = async () => {
|
|
544
|
+
await _(t, { onSuccess: () => r("/events") });
|
|
545
|
+
}, j = i?.event ?? null, M = y(() => {
|
|
546
|
+
let e = j?.metadata ?? {};
|
|
543
547
|
return typeof e.venueId == "string" ? e.venueId : "";
|
|
544
|
-
}, [
|
|
545
|
-
return a ? /* @__PURE__ */
|
|
548
|
+
}, [j]), K = y(() => M ? f?.venues?.items?.find((e) => e.id === M)?.name : void 0, [M, f]), q = o?.eventSessions?.total ?? 0, J = g?.registrations?.total ?? 0, X = y(() => (l?.ticketTypes?.items ?? []).reduce((e, t) => e + (t.soldCount ?? 0), 0), [l]);
|
|
549
|
+
return a ? /* @__PURE__ */ w("div", {
|
|
546
550
|
className: "space-y-4 p-6",
|
|
547
551
|
children: [
|
|
548
|
-
/* @__PURE__ */
|
|
549
|
-
/* @__PURE__ */
|
|
550
|
-
/* @__PURE__ */
|
|
552
|
+
/* @__PURE__ */ C(B, { className: "h-8 w-40" }),
|
|
553
|
+
/* @__PURE__ */ C(B, { className: "h-24 w-full rounded-card" }),
|
|
554
|
+
/* @__PURE__ */ C(B, { className: "h-64 w-full rounded-card" })
|
|
551
555
|
]
|
|
552
|
-
}) :
|
|
556
|
+
}) : j ? /* @__PURE__ */ w("div", {
|
|
553
557
|
className: "space-y-6 p-6",
|
|
554
558
|
children: [
|
|
555
|
-
/* @__PURE__ */
|
|
559
|
+
/* @__PURE__ */ w("div", {
|
|
556
560
|
className: "flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
|
|
557
|
-
children: [/* @__PURE__ */
|
|
561
|
+
children: [/* @__PURE__ */ w("div", {
|
|
558
562
|
className: "space-y-3",
|
|
559
|
-
children: [/* @__PURE__ */
|
|
563
|
+
children: [/* @__PURE__ */ w(L, {
|
|
560
564
|
type: "button",
|
|
561
565
|
variant: "ghost",
|
|
562
566
|
size: "sm",
|
|
563
567
|
onClick: () => r("/events"),
|
|
564
|
-
children: [/* @__PURE__ */
|
|
565
|
-
}), /* @__PURE__ */
|
|
568
|
+
children: [/* @__PURE__ */ C(T, { className: "h-4 w-4" }), "Back to Events"]
|
|
569
|
+
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w("div", {
|
|
566
570
|
className: "flex flex-wrap items-center gap-3",
|
|
567
|
-
children: [/* @__PURE__ */
|
|
571
|
+
children: [/* @__PURE__ */ C("h1", {
|
|
568
572
|
className: "text-2xl font-bold text-text-primary",
|
|
569
|
-
children:
|
|
570
|
-
}), /* @__PURE__ */
|
|
571
|
-
variant:
|
|
573
|
+
children: j.name
|
|
574
|
+
}), /* @__PURE__ */ C(I, {
|
|
575
|
+
variant: G(j.status),
|
|
572
576
|
className: "uppercase",
|
|
573
|
-
children:
|
|
577
|
+
children: j.status
|
|
574
578
|
})]
|
|
575
|
-
}), /* @__PURE__ */
|
|
579
|
+
}), /* @__PURE__ */ w("p", {
|
|
576
580
|
className: "mt-1 flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary",
|
|
577
|
-
children: [/* @__PURE__ */
|
|
581
|
+
children: [/* @__PURE__ */ w("span", {
|
|
578
582
|
className: "flex items-center gap-1.5",
|
|
579
583
|
children: [
|
|
580
|
-
/* @__PURE__ */
|
|
581
|
-
p(
|
|
584
|
+
/* @__PURE__ */ C(E, { className: "h-4 w-4 text-text-muted" }),
|
|
585
|
+
p(j.startAt),
|
|
582
586
|
" — ",
|
|
583
|
-
p(
|
|
587
|
+
p(j.endAt)
|
|
584
588
|
]
|
|
585
|
-
}),
|
|
589
|
+
}), K ? /* @__PURE__ */ w("span", {
|
|
586
590
|
className: "flex items-center gap-1.5",
|
|
587
|
-
children: [/* @__PURE__ */
|
|
591
|
+
children: [/* @__PURE__ */ C(A, { className: "h-4 w-4 text-text-muted" }), K]
|
|
588
592
|
}) : null]
|
|
589
593
|
})] })]
|
|
590
|
-
}), /* @__PURE__ */
|
|
594
|
+
}), /* @__PURE__ */ w("div", {
|
|
591
595
|
className: "flex flex-wrap gap-2",
|
|
592
|
-
children: [
|
|
593
|
-
type
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
596
|
+
children: [
|
|
597
|
+
j.type === "VIRTUAL" || j.type === "HYBRID" ? /* @__PURE__ */ w(L, {
|
|
598
|
+
type: "button",
|
|
599
|
+
variant: "outline",
|
|
600
|
+
onClick: () => r(`/events/${t}/virtual`),
|
|
601
|
+
children: [/* @__PURE__ */ C(F, { className: "h-4 w-4" }), "Virtual Session"]
|
|
602
|
+
}) : null,
|
|
603
|
+
/* @__PURE__ */ w(L, {
|
|
604
|
+
type: "button",
|
|
605
|
+
onClick: () => r(`/events/${t}/edit`),
|
|
606
|
+
children: [/* @__PURE__ */ C(O, { className: "h-4 w-4" }), "Edit Event"]
|
|
607
|
+
}),
|
|
608
|
+
/* @__PURE__ */ C(h, {
|
|
609
|
+
ariaLabel: "Event actions",
|
|
610
|
+
entityName: j.name,
|
|
611
|
+
deleteLabel: "Delete event",
|
|
612
|
+
onDelete: D
|
|
613
|
+
})
|
|
614
|
+
]
|
|
602
615
|
})]
|
|
603
616
|
}),
|
|
604
|
-
/* @__PURE__ */
|
|
617
|
+
/* @__PURE__ */ w("div", {
|
|
605
618
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
606
619
|
children: [
|
|
607
|
-
/* @__PURE__ */
|
|
620
|
+
/* @__PURE__ */ C($, {
|
|
608
621
|
label: "Capacity",
|
|
609
|
-
value: (
|
|
610
|
-
icon:
|
|
622
|
+
value: (j.capacity ?? 0).toLocaleString(),
|
|
623
|
+
icon: P
|
|
611
624
|
}),
|
|
612
|
-
/* @__PURE__ */
|
|
625
|
+
/* @__PURE__ */ C($, {
|
|
613
626
|
label: "Sessions",
|
|
614
|
-
value:
|
|
615
|
-
icon:
|
|
627
|
+
value: q.toLocaleString(),
|
|
628
|
+
icon: E
|
|
616
629
|
}),
|
|
617
|
-
/* @__PURE__ */
|
|
630
|
+
/* @__PURE__ */ C($, {
|
|
618
631
|
label: "Ticket types",
|
|
619
632
|
value: (l?.ticketTypes?.total ?? 0).toLocaleString(),
|
|
620
|
-
icon:
|
|
633
|
+
icon: N
|
|
621
634
|
}),
|
|
622
|
-
/* @__PURE__ */
|
|
635
|
+
/* @__PURE__ */ C($, {
|
|
623
636
|
label: "Tickets sold",
|
|
624
|
-
value:
|
|
625
|
-
icon:
|
|
637
|
+
value: X.toLocaleString(),
|
|
638
|
+
icon: k
|
|
626
639
|
})
|
|
627
640
|
]
|
|
628
641
|
}),
|
|
629
|
-
/* @__PURE__ */
|
|
630
|
-
value:
|
|
631
|
-
onValueChange:
|
|
642
|
+
/* @__PURE__ */ w(V, {
|
|
643
|
+
value: v,
|
|
644
|
+
onValueChange: S,
|
|
632
645
|
children: [
|
|
633
|
-
/* @__PURE__ */
|
|
634
|
-
/* @__PURE__ */
|
|
646
|
+
/* @__PURE__ */ w(U, { children: [
|
|
647
|
+
/* @__PURE__ */ C(W, {
|
|
635
648
|
value: "overview",
|
|
636
649
|
children: "Overview"
|
|
637
650
|
}),
|
|
638
|
-
/* @__PURE__ */
|
|
651
|
+
/* @__PURE__ */ C(W, {
|
|
639
652
|
value: "sessions",
|
|
640
653
|
children: "Sessions"
|
|
641
654
|
}),
|
|
642
|
-
/* @__PURE__ */
|
|
655
|
+
/* @__PURE__ */ C(W, {
|
|
643
656
|
value: "speakers",
|
|
644
657
|
children: "Speakers"
|
|
645
658
|
}),
|
|
646
|
-
/* @__PURE__ */
|
|
659
|
+
/* @__PURE__ */ C(W, {
|
|
647
660
|
value: "tickets",
|
|
648
661
|
children: "Tickets"
|
|
649
662
|
})
|
|
650
663
|
] }),
|
|
651
|
-
/* @__PURE__ */
|
|
664
|
+
/* @__PURE__ */ C(H, {
|
|
652
665
|
value: "overview",
|
|
653
666
|
className: "mt-4",
|
|
654
|
-
children: /* @__PURE__ */
|
|
667
|
+
children: /* @__PURE__ */ w("div", {
|
|
655
668
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-3",
|
|
656
|
-
children: [/* @__PURE__ */
|
|
669
|
+
children: [/* @__PURE__ */ w(R, {
|
|
657
670
|
treatment: "plain",
|
|
658
671
|
className: "border-border-seam p-5 lg:col-span-2",
|
|
659
672
|
children: [
|
|
660
|
-
/* @__PURE__ */
|
|
673
|
+
/* @__PURE__ */ C("h2", {
|
|
661
674
|
className: "text-lg font-semibold text-text-primary",
|
|
662
675
|
children: "Event Details"
|
|
663
676
|
}),
|
|
664
|
-
/* @__PURE__ */
|
|
677
|
+
/* @__PURE__ */ w("dl", {
|
|
665
678
|
className: "mt-4 space-y-4 text-sm",
|
|
666
679
|
children: [
|
|
667
|
-
/* @__PURE__ */
|
|
680
|
+
/* @__PURE__ */ w("div", {
|
|
668
681
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
669
|
-
children: [/* @__PURE__ */
|
|
682
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
670
683
|
className: "text-text-muted",
|
|
671
684
|
children: "Dates"
|
|
672
|
-
}), /* @__PURE__ */
|
|
685
|
+
}), /* @__PURE__ */ w("dd", {
|
|
673
686
|
className: "text-text-primary",
|
|
674
687
|
children: [
|
|
675
|
-
p(
|
|
688
|
+
p(j.startAt),
|
|
676
689
|
" — ",
|
|
677
|
-
p(
|
|
690
|
+
p(j.endAt)
|
|
678
691
|
]
|
|
679
692
|
})]
|
|
680
693
|
}),
|
|
681
|
-
/* @__PURE__ */
|
|
694
|
+
/* @__PURE__ */ w("div", {
|
|
682
695
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
683
|
-
children: [/* @__PURE__ */
|
|
696
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
684
697
|
className: "text-text-muted",
|
|
685
698
|
children: "Venue"
|
|
686
|
-
}), /* @__PURE__ */
|
|
699
|
+
}), /* @__PURE__ */ C("dd", {
|
|
687
700
|
className: "text-text-primary",
|
|
688
|
-
children:
|
|
701
|
+
children: K ? /* @__PURE__ */ C(L, {
|
|
689
702
|
type: "button",
|
|
690
703
|
variant: "link",
|
|
691
704
|
size: "sm",
|
|
692
705
|
className: "h-auto p-0",
|
|
693
|
-
onClick: () => r(`/venues/${
|
|
694
|
-
children:
|
|
706
|
+
onClick: () => r(`/venues/${M}`),
|
|
707
|
+
children: K
|
|
695
708
|
}) : "No venue assigned"
|
|
696
709
|
})]
|
|
697
710
|
}),
|
|
698
|
-
/* @__PURE__ */
|
|
711
|
+
/* @__PURE__ */ w("div", {
|
|
699
712
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
700
|
-
children: [/* @__PURE__ */
|
|
713
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
701
714
|
className: "text-text-muted",
|
|
702
715
|
children: "Capacity"
|
|
703
|
-
}), /* @__PURE__ */
|
|
716
|
+
}), /* @__PURE__ */ w("dd", {
|
|
704
717
|
className: "text-text-primary",
|
|
705
|
-
children: [(
|
|
718
|
+
children: [(j.capacity ?? 0).toLocaleString(), " attendees"]
|
|
706
719
|
})]
|
|
707
720
|
}),
|
|
708
|
-
/* @__PURE__ */
|
|
721
|
+
/* @__PURE__ */ w("div", {
|
|
709
722
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
710
|
-
children: [/* @__PURE__ */
|
|
723
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
711
724
|
className: "text-text-muted",
|
|
712
725
|
children: "Type"
|
|
713
|
-
}), /* @__PURE__ */
|
|
726
|
+
}), /* @__PURE__ */ C("dd", {
|
|
714
727
|
className: "capitalize text-text-primary",
|
|
715
|
-
children:
|
|
728
|
+
children: j.type.toLowerCase().replace(/_/g, " ")
|
|
716
729
|
})]
|
|
717
730
|
}),
|
|
718
|
-
/* @__PURE__ */
|
|
731
|
+
/* @__PURE__ */ w("div", {
|
|
719
732
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
720
|
-
children: [/* @__PURE__ */
|
|
733
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
721
734
|
className: "text-text-muted",
|
|
722
735
|
children: "Timezone"
|
|
723
|
-
}), /* @__PURE__ */
|
|
736
|
+
}), /* @__PURE__ */ C("dd", {
|
|
724
737
|
className: "text-text-primary",
|
|
725
|
-
children:
|
|
738
|
+
children: j.timezone
|
|
726
739
|
})]
|
|
727
740
|
}),
|
|
728
|
-
/* @__PURE__ */
|
|
741
|
+
/* @__PURE__ */ w("div", {
|
|
729
742
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
730
|
-
children: [/* @__PURE__ */
|
|
743
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
731
744
|
className: "text-text-muted",
|
|
732
745
|
children: "Visibility"
|
|
733
|
-
}), /* @__PURE__ */
|
|
746
|
+
}), /* @__PURE__ */ C("dd", {
|
|
734
747
|
className: "capitalize text-text-primary",
|
|
735
|
-
children:
|
|
748
|
+
children: j.visibility
|
|
736
749
|
})]
|
|
737
750
|
}),
|
|
738
|
-
/* @__PURE__ */
|
|
751
|
+
/* @__PURE__ */ w("div", {
|
|
739
752
|
className: "grid grid-cols-1 gap-1 sm:grid-cols-[140px_1fr]",
|
|
740
|
-
children: [/* @__PURE__ */
|
|
753
|
+
children: [/* @__PURE__ */ C("dt", {
|
|
741
754
|
className: "text-text-muted",
|
|
742
755
|
children: "Description"
|
|
743
|
-
}), /* @__PURE__ */
|
|
756
|
+
}), /* @__PURE__ */ C("dd", {
|
|
744
757
|
className: "text-text-secondary",
|
|
745
|
-
children:
|
|
758
|
+
children: j.description?.trim() ? j.description : "No description provided."
|
|
746
759
|
})]
|
|
747
760
|
})
|
|
748
761
|
]
|
|
749
762
|
}),
|
|
750
|
-
/* @__PURE__ */
|
|
763
|
+
/* @__PURE__ */ C("div", {
|
|
751
764
|
className: "mt-5",
|
|
752
|
-
children: /* @__PURE__ */
|
|
765
|
+
children: /* @__PURE__ */ w(L, {
|
|
753
766
|
type: "button",
|
|
754
767
|
variant: "outline",
|
|
755
768
|
size: "sm",
|
|
756
769
|
onClick: () => r(`/events/${t}/edit`),
|
|
757
|
-
children: [/* @__PURE__ */
|
|
770
|
+
children: [/* @__PURE__ */ C(O, { className: "h-4 w-4" }), "Edit event details"]
|
|
758
771
|
})
|
|
759
772
|
})
|
|
760
773
|
]
|
|
761
|
-
}), /* @__PURE__ */
|
|
774
|
+
}), /* @__PURE__ */ w(R, {
|
|
762
775
|
treatment: "glass",
|
|
763
776
|
glow: !0,
|
|
764
777
|
className: "p-5",
|
|
765
|
-
children: [/* @__PURE__ */
|
|
778
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
766
779
|
className: "text-lg font-semibold text-text-primary",
|
|
767
780
|
children: "Key Metrics"
|
|
768
|
-
}), /* @__PURE__ */
|
|
781
|
+
}), /* @__PURE__ */ w("dl", {
|
|
769
782
|
className: "mt-4 space-y-4",
|
|
770
783
|
children: [
|
|
771
|
-
/* @__PURE__ */
|
|
784
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
772
785
|
className: "text-sm text-text-secondary",
|
|
773
786
|
children: "Registrations"
|
|
774
|
-
}), /* @__PURE__ */
|
|
787
|
+
}), /* @__PURE__ */ C("dd", {
|
|
775
788
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
776
|
-
children:
|
|
789
|
+
children: J.toLocaleString()
|
|
777
790
|
})] }),
|
|
778
|
-
/* @__PURE__ */
|
|
791
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
779
792
|
className: "text-sm text-text-secondary",
|
|
780
793
|
children: "Capacity"
|
|
781
|
-
}), /* @__PURE__ */
|
|
794
|
+
}), /* @__PURE__ */ C("dd", {
|
|
782
795
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
783
|
-
children: (
|
|
796
|
+
children: (j.capacity ?? 0).toLocaleString()
|
|
784
797
|
})] }),
|
|
785
|
-
/* @__PURE__ */
|
|
798
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
786
799
|
className: "text-sm text-text-secondary",
|
|
787
800
|
children: "Sessions"
|
|
788
|
-
}), /* @__PURE__ */
|
|
801
|
+
}), /* @__PURE__ */ C("dd", {
|
|
789
802
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
790
|
-
children:
|
|
803
|
+
children: q.toLocaleString()
|
|
791
804
|
})] }),
|
|
792
|
-
/* @__PURE__ */
|
|
805
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
793
806
|
className: "text-sm text-text-secondary",
|
|
794
807
|
children: "Ticket types"
|
|
795
|
-
}), /* @__PURE__ */
|
|
808
|
+
}), /* @__PURE__ */ C("dd", {
|
|
796
809
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
797
810
|
children: (l?.ticketTypes?.total ?? 0).toLocaleString()
|
|
798
811
|
})] }),
|
|
799
|
-
/* @__PURE__ */
|
|
812
|
+
/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
|
|
800
813
|
className: "text-sm text-text-secondary",
|
|
801
814
|
children: "Tickets sold"
|
|
802
|
-
}), /* @__PURE__ */
|
|
815
|
+
}), /* @__PURE__ */ C("dd", {
|
|
803
816
|
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
804
|
-
children:
|
|
817
|
+
children: X.toLocaleString()
|
|
805
818
|
})] })
|
|
806
819
|
]
|
|
807
820
|
})]
|
|
808
821
|
})]
|
|
809
822
|
})
|
|
810
823
|
}),
|
|
811
|
-
/* @__PURE__ */
|
|
824
|
+
/* @__PURE__ */ C(H, {
|
|
812
825
|
value: "sessions",
|
|
813
826
|
className: "mt-4",
|
|
814
|
-
children: /* @__PURE__ */
|
|
827
|
+
children: /* @__PURE__ */ C(ee, { eventId: t })
|
|
815
828
|
}),
|
|
816
|
-
/* @__PURE__ */
|
|
829
|
+
/* @__PURE__ */ C(H, {
|
|
817
830
|
value: "speakers",
|
|
818
831
|
className: "mt-4",
|
|
819
|
-
children: /* @__PURE__ */
|
|
832
|
+
children: /* @__PURE__ */ C(te, {})
|
|
820
833
|
}),
|
|
821
|
-
/* @__PURE__ */
|
|
834
|
+
/* @__PURE__ */ C(H, {
|
|
822
835
|
value: "tickets",
|
|
823
836
|
className: "mt-4",
|
|
824
|
-
children: /* @__PURE__ */
|
|
837
|
+
children: /* @__PURE__ */ C(ne, { eventId: t })
|
|
825
838
|
})
|
|
826
839
|
]
|
|
827
840
|
})
|
|
828
841
|
]
|
|
829
|
-
}) : /* @__PURE__ */
|
|
842
|
+
}) : /* @__PURE__ */ w("div", {
|
|
830
843
|
className: "space-y-4 p-6",
|
|
831
|
-
children: [/* @__PURE__ */
|
|
844
|
+
children: [/* @__PURE__ */ w(L, {
|
|
832
845
|
type: "button",
|
|
833
846
|
variant: "ghost",
|
|
834
847
|
size: "sm",
|
|
835
848
|
onClick: () => r("/events"),
|
|
836
|
-
children: [/* @__PURE__ */
|
|
837
|
-
}), /* @__PURE__ */
|
|
849
|
+
children: [/* @__PURE__ */ C(T, { className: "h-4 w-4" }), "Back to Events"]
|
|
850
|
+
}), /* @__PURE__ */ C(R, {
|
|
838
851
|
treatment: "plain",
|
|
839
852
|
className: "border-border-seam",
|
|
840
|
-
children: /* @__PURE__ */
|
|
853
|
+
children: /* @__PURE__ */ C(z, {
|
|
841
854
|
illustration: "empty-search",
|
|
842
855
|
title: "Event not found.",
|
|
843
856
|
description: "This event may have been removed or is outside your current scope."
|
|
@@ -846,6 +859,6 @@ function ne() {
|
|
|
846
859
|
});
|
|
847
860
|
}
|
|
848
861
|
//#endregion
|
|
849
|
-
export {
|
|
862
|
+
export { re as default };
|
|
850
863
|
|
|
851
864
|
//# sourceMappingURL=EventDetailPage.js.map
|