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