@burdenoff/microfe-eventfullymanaged 2026.716.1 → 2026.719.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/README.md +15 -0
  2. package/dist/eventfullymanaged/api/eventApi.d.ts +40 -0
  3. package/dist/eventfullymanaged/api/eventApi.d.ts.map +1 -1
  4. package/dist/eventfullymanaged/api/eventApi.js +147 -117
  5. package/dist/eventfullymanaged/api/eventApi.js.map +1 -1
  6. package/dist/eventfullymanaged/pages/events/SessionFormPage.d.ts.map +1 -1
  7. package/dist/eventfullymanaged/pages/events/SessionFormPage.js +152 -135
  8. package/dist/eventfullymanaged/pages/events/SessionFormPage.js.map +1 -1
  9. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.d.ts.map +1 -1
  10. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +154 -117
  11. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
  12. package/dist/eventfullymanaged/pages/modules/CommunicationPage.d.ts.map +1 -1
  13. package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +228 -187
  14. package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
  15. package/dist/eventfullymanaged/pages/modules/EventsPage.d.ts.map +1 -1
  16. package/dist/eventfullymanaged/pages/modules/EventsPage.js +233 -122
  17. package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
  18. package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.d.ts.map +1 -1
  19. package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js +255 -254
  20. package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js.map +1 -1
  21. package/dist/eventfullymanaged/types/index.d.ts.map +1 -1
  22. package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -1
  23. package/dist/services/createSandboxAssistantTransport.js.map +1 -1
  24. package/dist/test/setup.d.ts +11 -0
  25. package/dist/test/setup.d.ts.map +1 -0
  26. package/package.json +11 -3
@@ -7,11 +7,11 @@ import { ActionMenu as s } from "../../components/ActionMenu.js";
7
7
  import { Pagination as c, usePagination as l } from "../../components/Pagination.js";
8
8
  import { useMemo as u, useState as d } from "react";
9
9
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
- import { Award as m, CalendarClock as h, CalendarDays as g, CalendarPlus as _, MapPin as v, Search as ee, Ticket as y, UserCheck as b, Users as x } from "lucide-react";
11
- import { useI18n as S } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
12
- import { Badge as C, Button as w, EmphasisPanel as T, GlassCard as E, GradientText as D, IllustratedEmptyState as O, Input as k, NextSteps as te, PagePurpose as ne, Skeleton as A, Tabs as re, TabsList as ie, TabsTrigger as j } from "@burdenoff/fe-libs/ui";
10
+ import { Award as ee, CalendarClock as te, CalendarDays as ne, CalendarPlus as m, LayoutGrid as h, MapPin as g, Rows3 as re, Search as _, Ticket as v, UserCheck as y, Users as b } from "lucide-react";
11
+ import { useI18n as ie } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
12
+ import { Badge as x, Button as S, EmphasisPanel as ae, GlassCard as C, GradientText as oe, IllustratedEmptyState as se, Input as ce, NextSteps as le, PagePurpose as ue, Skeleton as w, Table as T, TableBody as E, TableCell as D, TableHead as O, TableHeader as de, TableRow as k, Tabs as A, TabsList as fe, TabsTrigger as j } from "@burdenoff/fe-libs/ui";
13
13
  //#region src/eventfullymanaged/pages/modules/EventsPage.tsx
14
- var M = t`
14
+ var pe = t`
15
15
  query EventfullymanagedEventsRegistrations($limit: Int) {
16
16
  registrations: eventfullyManagedRegistrations(limit: $limit, offset: 0) {
17
17
  total
@@ -23,7 +23,7 @@ var M = t`
23
23
  }
24
24
  }
25
25
  `;
26
- function N(e) {
26
+ function M(e) {
27
27
  let t = e.toLowerCase();
28
28
  return [
29
29
  "active",
@@ -45,16 +45,16 @@ function N(e) {
45
45
  "scheduled"
46
46
  ].includes(t) ? "info" : "secondary";
47
47
  }
48
- function P(e, t) {
48
+ function N(e, t) {
49
49
  let n = e ? o(e) : "", r = t ? o(t) : "";
50
50
  return n && r ? `${n} — ${r}` : n || r || "No schedule set";
51
51
  }
52
- function F(e, t) {
52
+ function P(e, t) {
53
53
  let n = Date.now(), r = e ? new Date(e).getTime() : NaN, i = t ? new Date(t).getTime() : NaN, a = !Number.isNaN(r), o = !Number.isNaN(i);
54
54
  return !a && !o ? null : a && n < r ? "upcoming" : o && n > i ? "past" : a ? "live" : "upcoming";
55
55
  }
56
- function I({ icon: e, label: t, value: n, loading: r }) {
57
- return /* @__PURE__ */ f(E, {
56
+ function F({ icon: e, label: t, value: n, loading: r }) {
57
+ return /* @__PURE__ */ f(C, {
58
58
  treatment: "plain",
59
59
  className: "border-border-seam p-4",
60
60
  children: /* @__PURE__ */ p("div", {
@@ -64,7 +64,7 @@ function I({ icon: e, label: t, value: n, loading: r }) {
64
64
  children: /* @__PURE__ */ f(e, { className: "h-4 w-4" })
65
65
  }), /* @__PURE__ */ p("div", {
66
66
  className: "min-w-0",
67
- children: [r ? /* @__PURE__ */ f(A, { className: "h-6 w-12" }) : /* @__PURE__ */ f("p", {
67
+ children: [r ? /* @__PURE__ */ f(w, { className: "h-6 w-12" }) : /* @__PURE__ */ f("p", {
68
68
  className: "truncate text-xl font-bold tabular-nums text-text-primary",
69
69
  children: n
70
70
  }), /* @__PURE__ */ f("p", {
@@ -75,7 +75,7 @@ function I({ icon: e, label: t, value: n, loading: r }) {
75
75
  })
76
76
  });
77
77
  }
78
- function L({ icon: e, label: t, value: n }) {
78
+ function I({ icon: e, label: t, value: n }) {
79
79
  return /* @__PURE__ */ p("div", {
80
80
  className: "flex items-center gap-1.5",
81
81
  children: [
@@ -91,27 +91,27 @@ function L({ icon: e, label: t, value: n }) {
91
91
  ]
92
92
  });
93
93
  }
94
- function R() {
95
- let { t } = S(), o = (e, n) => {
94
+ function L() {
95
+ let { t } = ie(), o = (e, n) => {
96
96
  let r = t(e);
97
97
  return r === e ? n : r;
98
- }, { navigate: R } = e(), [z, B] = d(""), [V, H] = d("all"), U = l({ resetKey: z }), { data: W, loading: G } = r({
99
- search: z,
98
+ }, { navigate: L } = e(), [R, z] = d(""), [B, me] = d("all"), [V, H] = d("table"), U = l({ resetKey: R }), { data: W, loading: G } = r({
99
+ search: R,
100
100
  limit: U.limit,
101
101
  offset: U.offset
102
- }), { data: K, loading: q } = a({
102
+ }), { data: K, loading: he } = a({
103
103
  limit: 100,
104
104
  offset: 0
105
- }), { data: J, loading: ae } = i({
105
+ }), { data: q, loading: ge } = i({
106
106
  limit: 1,
107
107
  offset: 0
108
- }), { data: Y, loading: oe } = n(M, { variables: { limit: 500 } }), X = W?.events?.total ?? 0, Z = u(() => W?.events?.items ?? [], [W]), se = Y?.registrations?.total ?? 0, Q = K?.venues?.total ?? 0, ce = J?.sponsors?.total ?? 0, $ = u(() => V === "all" ? Z : Z.filter((e) => F(e.startAt, e.endAt) === V), [Z, V]), le = u(() => {
108
+ }), { data: J, loading: _e } = n(pe, { variables: { limit: 500 } }), Y = W?.events?.total ?? 0, X = u(() => W?.events?.items ?? [], [W]), ve = J?.registrations?.total ?? 0, ye = K?.venues?.total ?? 0, be = q?.sponsors?.total ?? 0, Z = u(() => B === "all" ? X : X.filter((e) => P(e.startAt, e.endAt) === B), [X, B]), Q = u(() => {
109
109
  let e = /* @__PURE__ */ new Map();
110
110
  for (let t of K?.venues?.items ?? []) e.set(t.id, t.name);
111
111
  return e;
112
- }, [K]), ue = u(() => {
112
+ }, [K]), $ = u(() => {
113
113
  let e = /* @__PURE__ */ new Map();
114
- for (let t of Y?.registrations?.items ?? []) {
114
+ for (let t of J?.registrations?.items ?? []) {
115
115
  let n = e.get(t.eventId) ?? {
116
116
  registrations: 0,
117
117
  checkedIn: 0
@@ -119,127 +119,238 @@ function R() {
119
119
  n.registrations += 1, t.checkedInAt && (n.checkedIn += 1), e.set(t.eventId, n);
120
120
  }
121
121
  return e;
122
- }, [Y]);
122
+ }, [J]);
123
123
  return /* @__PURE__ */ p("div", {
124
124
  className: "space-y-6 p-6",
125
125
  children: [
126
- /* @__PURE__ */ f(ne, { children: o("eventfullymanaged.events.purpose", "Events are the heart of the platform — each one is a happening you sell tickets for, register attendees to, and run on the day. Create an event, open it to reveal its agenda, speakers and ticket types, then publish it when it is ready.") }),
127
- /* @__PURE__ */ f(T, { children: /* @__PURE__ */ p("div", {
126
+ /* @__PURE__ */ f(ue, { children: o("eventfullymanaged.events.purpose", "Events are the heart of the platform — each one is a happening you sell tickets for, register attendees to, and run on the day. Create an event, open it to reveal its agenda, speakers and ticket types, then publish it when it is ready.") }),
127
+ /* @__PURE__ */ f(ae, { children: /* @__PURE__ */ p("div", {
128
128
  className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
129
129
  children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h1", {
130
130
  className: "text-2xl font-bold text-text-primary",
131
- children: /* @__PURE__ */ f(D, { children: o("eventfullymanaged.events.title", "Events") })
131
+ children: /* @__PURE__ */ f(oe, { children: o("eventfullymanaged.events.title", "Events") })
132
132
  }), /* @__PURE__ */ f("p", {
133
133
  className: "mt-1 text-sm text-text-secondary",
134
134
  children: o("eventfullymanaged.events.description", "Create and manage live events from the workspace graph.")
135
- })] }), /* @__PURE__ */ p(w, {
135
+ })] }), /* @__PURE__ */ p(S, {
136
136
  type: "button",
137
- onClick: () => R("/events/create"),
138
- children: [/* @__PURE__ */ f(_, { className: "h-4 w-4" }), o("eventfullymanaged.events.actions.create", "Create Event")]
137
+ onClick: () => L("/events/create"),
138
+ children: [/* @__PURE__ */ f(m, { className: "h-4 w-4" }), o("eventfullymanaged.events.actions.create", "Create Event")]
139
139
  })]
140
140
  }) }),
141
141
  /* @__PURE__ */ p("div", {
142
142
  className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
143
143
  children: [
144
- /* @__PURE__ */ f(I, {
145
- icon: g,
144
+ /* @__PURE__ */ f(F, {
145
+ icon: ne,
146
146
  label: o("eventfullymanaged.events.portfolio.events", "Events"),
147
- value: X.toLocaleString(),
148
- loading: G && X === 0
147
+ value: Y.toLocaleString(),
148
+ loading: G && Y === 0
149
149
  }),
150
- /* @__PURE__ */ f(I, {
151
- icon: x,
150
+ /* @__PURE__ */ f(F, {
151
+ icon: b,
152
152
  label: o("eventfullymanaged.events.portfolio.registrations", "Registrations"),
153
- value: se.toLocaleString(),
154
- loading: oe && !Y
153
+ value: ve.toLocaleString(),
154
+ loading: _e && !J
155
155
  }),
156
- /* @__PURE__ */ f(I, {
157
- icon: v,
156
+ /* @__PURE__ */ f(F, {
157
+ icon: g,
158
158
  label: o("eventfullymanaged.events.portfolio.venues", "Venues"),
159
- value: Q.toLocaleString(),
160
- loading: q && !K
159
+ value: ye.toLocaleString(),
160
+ loading: he && !K
161
161
  }),
162
- /* @__PURE__ */ f(I, {
163
- icon: m,
162
+ /* @__PURE__ */ f(F, {
163
+ icon: ee,
164
164
  label: o("eventfullymanaged.events.portfolio.sponsors", "Sponsors"),
165
- value: ce.toLocaleString(),
166
- loading: ae && !J
165
+ value: be.toLocaleString(),
166
+ loading: ge && !q
167
167
  })
168
168
  ]
169
169
  }),
170
170
  /* @__PURE__ */ p("div", {
171
171
  className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
172
- children: [/* @__PURE__ */ p("div", {
173
- className: "relative flex-1",
174
- children: [/* @__PURE__ */ f(ee, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ f(k, {
175
- type: "text",
176
- value: z,
177
- onChange: (e) => B(e.target.value),
178
- placeholder: o("eventfullymanaged.events.searchPlaceholder", "Search events"),
179
- "aria-label": o("eventfullymanaged.events.searchPlaceholder", "Search events"),
180
- className: "pl-10"
181
- })]
182
- }), /* @__PURE__ */ f(re, {
183
- value: V,
184
- onValueChange: (e) => H(e),
185
- className: "w-full sm:w-auto",
186
- children: /* @__PURE__ */ p(ie, {
187
- className: "w-full overflow-x-auto sm:w-auto",
188
- children: [
189
- /* @__PURE__ */ f(j, {
190
- value: "all",
191
- children: o("eventfullymanaged.events.filters.all", "All")
192
- }),
193
- /* @__PURE__ */ f(j, {
194
- value: "upcoming",
195
- children: o("eventfullymanaged.events.filters.upcoming", "Upcoming")
196
- }),
197
- /* @__PURE__ */ f(j, {
198
- value: "live",
199
- children: o("eventfullymanaged.events.filters.live", "Live")
200
- }),
201
- /* @__PURE__ */ f(j, {
202
- value: "past",
203
- children: o("eventfullymanaged.events.filters.past", "Past")
204
- })
205
- ]
172
+ children: [
173
+ /* @__PURE__ */ p("div", {
174
+ className: "relative flex-1",
175
+ children: [/* @__PURE__ */ f(_, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ f(ce, {
176
+ type: "text",
177
+ value: R,
178
+ onChange: (e) => z(e.target.value),
179
+ placeholder: o("eventfullymanaged.events.searchPlaceholder", "Search events"),
180
+ "aria-label": o("eventfullymanaged.events.searchPlaceholder", "Search events"),
181
+ className: "pl-10"
182
+ })]
183
+ }),
184
+ /* @__PURE__ */ f(A, {
185
+ value: B,
186
+ onValueChange: (e) => me(e),
187
+ className: "w-full sm:w-auto",
188
+ children: /* @__PURE__ */ p(fe, {
189
+ className: "w-full overflow-x-auto sm:w-auto",
190
+ children: [
191
+ /* @__PURE__ */ f(j, {
192
+ value: "all",
193
+ children: o("eventfullymanaged.events.filters.all", "All")
194
+ }),
195
+ /* @__PURE__ */ f(j, {
196
+ value: "upcoming",
197
+ children: o("eventfullymanaged.events.filters.upcoming", "Upcoming")
198
+ }),
199
+ /* @__PURE__ */ f(j, {
200
+ value: "live",
201
+ children: o("eventfullymanaged.events.filters.live", "Live")
202
+ }),
203
+ /* @__PURE__ */ f(j, {
204
+ value: "past",
205
+ children: o("eventfullymanaged.events.filters.past", "Past")
206
+ })
207
+ ]
208
+ })
209
+ }),
210
+ /* @__PURE__ */ p("div", {
211
+ className: "flex shrink-0 items-center gap-1 self-start rounded-button border border-border-seam p-1 sm:self-auto",
212
+ children: [/* @__PURE__ */ f(S, {
213
+ type: "button",
214
+ variant: V === "table" ? "default" : "ghost",
215
+ size: "sm",
216
+ "aria-pressed": V === "table",
217
+ "aria-label": o("eventfullymanaged.events.view.table", "Table view"),
218
+ onClick: () => H("table"),
219
+ children: /* @__PURE__ */ f(re, { className: "h-4 w-4" })
220
+ }), /* @__PURE__ */ f(S, {
221
+ type: "button",
222
+ variant: V === "cards" ? "default" : "ghost",
223
+ size: "sm",
224
+ "aria-pressed": V === "cards",
225
+ "aria-label": o("eventfullymanaged.events.view.cards", "Card view"),
226
+ onClick: () => H("cards"),
227
+ children: /* @__PURE__ */ f(h, { className: "h-4 w-4" })
228
+ })]
206
229
  })
207
- })]
230
+ ]
208
231
  }),
209
232
  G ? /* @__PURE__ */ p("div", {
210
233
  className: "space-y-3",
211
234
  children: [
212
- /* @__PURE__ */ f(A, { className: "h-28 w-full rounded-card" }),
213
- /* @__PURE__ */ f(A, { className: "h-28 w-full rounded-card" }),
214
- /* @__PURE__ */ f(A, { className: "h-28 w-full rounded-card" })
235
+ /* @__PURE__ */ f(w, { className: "h-28 w-full rounded-card" }),
236
+ /* @__PURE__ */ f(w, { className: "h-28 w-full rounded-card" }),
237
+ /* @__PURE__ */ f(w, { className: "h-28 w-full rounded-card" })
215
238
  ]
216
- }) : Z.length === 0 ? /* @__PURE__ */ f(E, {
239
+ }) : X.length === 0 ? /* @__PURE__ */ f(C, {
217
240
  treatment: "plain",
218
241
  className: "border-border-seam",
219
- children: /* @__PURE__ */ f(O, {
220
- illustration: z ? "empty-search" : "empty-data",
221
- title: z ? o("eventfullymanaged.events.list.emptySearch", "No events match your search.") : o("eventfullymanaged.events.list.empty", "No events yet."),
222
- description: z ? o("eventfullymanaged.events.list.emptySearchHint", "Try a different name.") : o("eventfullymanaged.events.list.emptyHint", "Create your first event to get started."),
223
- action: z ? void 0 : /* @__PURE__ */ p(w, {
242
+ children: /* @__PURE__ */ f(se, {
243
+ illustration: R ? "empty-search" : "empty-data",
244
+ title: R ? o("eventfullymanaged.events.list.emptySearch", "No events match your search.") : o("eventfullymanaged.events.list.empty", "No events yet."),
245
+ description: R ? o("eventfullymanaged.events.list.emptySearchHint", "Try a different name.") : o("eventfullymanaged.events.list.emptyHint", "Create your first event to get started."),
246
+ action: R ? void 0 : /* @__PURE__ */ p(S, {
224
247
  type: "button",
225
- onClick: () => R("/events/create"),
226
- children: [/* @__PURE__ */ f(_, { className: "h-4 w-4" }), o("eventfullymanaged.events.actions.create", "Create Event")]
248
+ onClick: () => L("/events/create"),
249
+ children: [/* @__PURE__ */ f(m, { className: "h-4 w-4" }), o("eventfullymanaged.events.actions.create", "Create Event")]
227
250
  })
228
251
  })
229
- }) : $.length === 0 ? /* @__PURE__ */ p("div", {
252
+ }) : Z.length === 0 ? /* @__PURE__ */ p("div", {
230
253
  className: "space-y-3",
231
- children: [/* @__PURE__ */ f(E, {
254
+ children: [/* @__PURE__ */ f(C, {
232
255
  treatment: "plain",
233
256
  className: "border-border-seam",
234
257
  children: /* @__PURE__ */ f("p", {
235
258
  className: "px-2 py-8 text-center text-sm text-text-secondary",
236
- children: o("eventfullymanaged.events.filters.empty", `No ${V} events on this page. Switch tabs or move to another page.`)
259
+ children: o("eventfullymanaged.events.filters.empty", `No ${B} events on this page. Switch tabs or move to another page.`)
237
260
  })
238
261
  }), /* @__PURE__ */ f(c, {
239
262
  offset: U.offset,
240
263
  limit: U.limit,
241
- loadedCount: Z.length,
242
- total: X,
264
+ loadedCount: X.length,
265
+ total: Y,
266
+ onPrev: U.prevPage,
267
+ onNext: U.nextPage,
268
+ itemLabel: "events",
269
+ loading: G
270
+ })]
271
+ }) : V === "table" ? /* @__PURE__ */ p("div", {
272
+ className: "space-y-3",
273
+ children: [/* @__PURE__ */ f("div", {
274
+ className: "overflow-hidden rounded-card border border-border-seam",
275
+ children: /* @__PURE__ */ p(T, { children: [/* @__PURE__ */ f(de, { children: /* @__PURE__ */ p(k, { children: [
276
+ /* @__PURE__ */ f(O, { children: o("eventfullymanaged.events.table.name", "Event") }),
277
+ /* @__PURE__ */ f(O, { children: o("eventfullymanaged.events.table.date", "Date") }),
278
+ /* @__PURE__ */ f(O, { children: o("eventfullymanaged.events.table.venue", "Venue") }),
279
+ /* @__PURE__ */ f(O, { children: o("eventfullymanaged.events.table.status", "Status") }),
280
+ /* @__PURE__ */ f(O, {
281
+ className: "text-right",
282
+ children: o("eventfullymanaged.events.table.attendees", "Attendees")
283
+ }),
284
+ /* @__PURE__ */ f(O, {
285
+ className: "w-10",
286
+ "aria-label": o("eventfullymanaged.events.table.actions", "Actions")
287
+ })
288
+ ] }) }), /* @__PURE__ */ f(E, { children: Z.map((e) => {
289
+ let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? Q.get(n) : void 0, i = $.get(e.id), a = i?.registrations ?? 0, c = a > 0 ? Math.round((i?.checkedIn ?? 0) / a * 100) : 0;
290
+ return /* @__PURE__ */ p(k, {
291
+ className: "cursor-pointer",
292
+ tabIndex: 0,
293
+ "aria-label": e.name,
294
+ onClick: () => L(`/events/${e.id}`),
295
+ onKeyDown: (t) => {
296
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), L(`/events/${e.id}`));
297
+ },
298
+ children: [
299
+ /* @__PURE__ */ f(D, {
300
+ className: "max-w-[18rem]",
301
+ children: /* @__PURE__ */ p("div", {
302
+ className: "flex flex-wrap items-center gap-2",
303
+ children: [/* @__PURE__ */ f("span", {
304
+ className: "truncate font-medium text-text-primary",
305
+ children: e.name
306
+ }), e.type ? /* @__PURE__ */ f(x, {
307
+ variant: "secondary",
308
+ className: "shrink-0 capitalize",
309
+ children: e.type.toLowerCase().replace(/_/g, " ")
310
+ }) : null]
311
+ })
312
+ }),
313
+ /* @__PURE__ */ f(D, {
314
+ className: "whitespace-nowrap text-text-secondary",
315
+ children: N(e.startAt, e.endAt)
316
+ }),
317
+ /* @__PURE__ */ f(D, {
318
+ className: "text-text-secondary",
319
+ children: r ?? o("eventfullymanaged.events.card.noVenue", "No venue")
320
+ }),
321
+ /* @__PURE__ */ f(D, { children: e.status ? /* @__PURE__ */ f(x, {
322
+ variant: M(e.status),
323
+ className: "uppercase",
324
+ children: e.status
325
+ }) : "—" }),
326
+ /* @__PURE__ */ p(D, {
327
+ className: "whitespace-nowrap text-right tabular-nums text-text-primary",
328
+ children: [a.toLocaleString(), /* @__PURE__ */ p("span", {
329
+ className: "ml-1 text-xs text-text-muted",
330
+ children: [
331
+ "(",
332
+ c,
333
+ "%)"
334
+ ]
335
+ })]
336
+ }),
337
+ /* @__PURE__ */ f(D, {
338
+ onClick: (e) => e.stopPropagation(),
339
+ onKeyDown: (e) => e.stopPropagation(),
340
+ children: /* @__PURE__ */ f(s, {
341
+ ariaLabel: `Event actions for ${e.name}`,
342
+ onView: () => L(`/events/${e.id}`),
343
+ onEdit: () => L(`/events/${e.id}/edit`)
344
+ })
345
+ })
346
+ ]
347
+ }, e.id);
348
+ }) })] })
349
+ }), /* @__PURE__ */ f(c, {
350
+ offset: U.offset,
351
+ limit: U.limit,
352
+ loadedCount: X.length,
353
+ total: Y,
243
354
  onPrev: U.prevPage,
244
355
  onNext: U.nextPage,
245
356
  itemLabel: "events",
@@ -247,17 +358,17 @@ function R() {
247
358
  })]
248
359
  }) : /* @__PURE__ */ p("div", {
249
360
  className: "space-y-3",
250
- children: [$.map((e) => {
251
- let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? le.get(n) : void 0, i = ue.get(e.id), a = i?.registrations ?? 0, c = a > 0 ? Math.round((i?.checkedIn ?? 0) / a * 100) : 0;
252
- return /* @__PURE__ */ p(E, {
361
+ children: [Z.map((e) => {
362
+ let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? Q.get(n) : void 0, i = $.get(e.id), a = i?.registrations ?? 0, c = a > 0 ? Math.round((i?.checkedIn ?? 0) / a * 100) : 0;
363
+ return /* @__PURE__ */ p(C, {
253
364
  treatment: "plain",
254
365
  role: "button",
255
366
  tabIndex: 0,
256
367
  "aria-label": e.name,
257
368
  className: "group relative cursor-pointer overflow-hidden border-border-seam p-0 outline-none transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1 focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
258
- onClick: () => R(`/events/${e.id}`),
369
+ onClick: () => L(`/events/${e.id}`),
259
370
  onKeyDown: (t) => {
260
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), R(`/events/${e.id}`));
371
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), L(`/events/${e.id}`));
261
372
  },
262
373
  children: [/* @__PURE__ */ f("span", {
263
374
  "aria-hidden": "true",
@@ -274,12 +385,12 @@ function R() {
274
385
  className: "truncate text-lg font-semibold text-text-primary",
275
386
  children: e.name
276
387
  }),
277
- e.status ? /* @__PURE__ */ f(C, {
278
- variant: N(e.status),
388
+ e.status ? /* @__PURE__ */ f(x, {
389
+ variant: M(e.status),
279
390
  className: "uppercase",
280
391
  children: e.status
281
392
  }) : null,
282
- e.type ? /* @__PURE__ */ f(C, {
393
+ e.type ? /* @__PURE__ */ f(x, {
283
394
  variant: "secondary",
284
395
  className: "capitalize",
285
396
  children: e.type.toLowerCase().replace(/_/g, " ")
@@ -290,27 +401,27 @@ function R() {
290
401
  className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary",
291
402
  children: [/* @__PURE__ */ p("span", {
292
403
  className: "flex items-center gap-1.5",
293
- children: [/* @__PURE__ */ f(h, { className: "h-4 w-4 shrink-0 text-text-muted" }), P(e.startAt, e.endAt)]
404
+ children: [/* @__PURE__ */ f(te, { className: "h-4 w-4 shrink-0 text-text-muted" }), N(e.startAt, e.endAt)]
294
405
  }), /* @__PURE__ */ p("span", {
295
406
  className: "flex items-center gap-1.5",
296
- children: [/* @__PURE__ */ f(v, { className: "h-4 w-4 shrink-0 text-text-muted" }), r ?? o("eventfullymanaged.events.card.noVenue", "No venue")]
407
+ children: [/* @__PURE__ */ f(g, { className: "h-4 w-4 shrink-0 text-text-muted" }), r ?? o("eventfullymanaged.events.card.noVenue", "No venue")]
297
408
  })]
298
409
  }),
299
410
  /* @__PURE__ */ p("div", {
300
411
  className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",
301
412
  children: [
302
- /* @__PURE__ */ f(L, {
303
- icon: b,
413
+ /* @__PURE__ */ f(I, {
414
+ icon: y,
304
415
  label: o("eventfullymanaged.events.card.registered", "registered"),
305
416
  value: a.toLocaleString()
306
417
  }),
307
- /* @__PURE__ */ f(L, {
308
- icon: b,
418
+ /* @__PURE__ */ f(I, {
419
+ icon: y,
309
420
  label: o("eventfullymanaged.events.card.checkedIn", "checked in"),
310
421
  value: `${c}%`
311
422
  }),
312
- /* @__PURE__ */ f(L, {
313
- icon: x,
423
+ /* @__PURE__ */ f(I, {
424
+ icon: b,
314
425
  label: o("eventfullymanaged.events.card.capacity", "capacity"),
315
426
  value: e.capacity == null ? "—" : e.capacity.toLocaleString()
316
427
  })
@@ -324,8 +435,8 @@ function R() {
324
435
  role: "presentation",
325
436
  children: /* @__PURE__ */ f(s, {
326
437
  ariaLabel: `Event actions for ${e.name}`,
327
- onView: () => R(`/events/${e.id}`),
328
- onEdit: () => R(`/events/${e.id}/edit`)
438
+ onView: () => L(`/events/${e.id}`),
439
+ onEdit: () => L(`/events/${e.id}/edit`)
329
440
  })
330
441
  })]
331
442
  })]
@@ -333,15 +444,15 @@ function R() {
333
444
  }), /* @__PURE__ */ f(c, {
334
445
  offset: U.offset,
335
446
  limit: U.limit,
336
- loadedCount: Z.length,
337
- total: X,
447
+ loadedCount: X.length,
448
+ total: Y,
338
449
  onPrev: U.prevPage,
339
450
  onNext: U.nextPage,
340
451
  itemLabel: "events",
341
452
  loading: G
342
453
  })]
343
454
  }),
344
- /* @__PURE__ */ f(te, {
455
+ /* @__PURE__ */ f(le, {
345
456
  storageKey: "eventfullymanaged-events",
346
457
  title: o("eventfullymanaged.events.nextSteps.title", "Finish setting up your event"),
347
458
  steps: [
@@ -349,22 +460,22 @@ function R() {
349
460
  id: "configure-registration",
350
461
  label: o("eventfullymanaged.events.nextSteps.registration", "Configure registration & tickets"),
351
462
  description: o("eventfullymanaged.events.nextSteps.registrationDesc", "Open an event and define ticket types so people can register."),
352
- icon: /* @__PURE__ */ f(y, { className: "h-4 w-4" }),
353
- onClick: () => R("/registration")
463
+ icon: /* @__PURE__ */ f(v, { className: "h-4 w-4" }),
464
+ onClick: () => L("/registration")
354
465
  },
355
466
  {
356
467
  id: "plan-networking",
357
468
  label: o("eventfullymanaged.events.nextSteps.networking", "Plan networking & sessions"),
358
469
  description: o("eventfullymanaged.events.nextSteps.networkingDesc", "Set up attendee matchmaking and meeting schedules."),
359
- icon: /* @__PURE__ */ f(x, { className: "h-4 w-4" }),
360
- onClick: () => R("/networking")
470
+ icon: /* @__PURE__ */ f(b, { className: "h-4 w-4" }),
471
+ onClick: () => L("/networking")
361
472
  },
362
473
  {
363
474
  id: "announce",
364
475
  label: o("eventfullymanaged.events.nextSteps.announce", "Announce to attendees"),
365
476
  description: o("eventfullymanaged.events.nextSteps.announceDesc", "Send announcements and run communication campaigns."),
366
- icon: /* @__PURE__ */ f(_, { className: "h-4 w-4" }),
367
- onClick: () => R("/communication")
477
+ icon: /* @__PURE__ */ f(m, { className: "h-4 w-4" }),
478
+ onClick: () => L("/communication")
368
479
  }
369
480
  ]
370
481
  })
@@ -372,6 +483,6 @@ function R() {
372
483
  });
373
484
  }
374
485
  //#endregion
375
- export { R as default };
486
+ export { L as default };
376
487
 
377
488
  //# sourceMappingURL=EventsPage.js.map