@burdenoff/microfe-eventfullymanaged 2026.529.1 → 2026.625.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/eventfullymanaged/components/PageLayout.js +44 -38
  2. package/dist/eventfullymanaged/components/PageLayout.js.map +1 -1
  3. package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js +39 -27
  4. package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
  5. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +40 -41
  6. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
  7. package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js +67 -65
  8. package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js.map +1 -1
  9. package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +48 -50
  10. package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
  11. package/dist/eventfullymanaged/pages/modules/EntityListSection.js +57 -25
  12. package/dist/eventfullymanaged/pages/modules/EntityListSection.js.map +1 -1
  13. package/dist/eventfullymanaged/pages/modules/EventsPage.js +55 -57
  14. package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
  15. package/dist/eventfullymanaged/pages/modules/KioskPage.js +17 -19
  16. package/dist/eventfullymanaged/pages/modules/KioskPage.js.map +1 -1
  17. package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +22 -22
  18. package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
  19. package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js +90 -82
  20. package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js.map +1 -1
  21. package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +28 -29
  22. package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
  23. package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js +67 -65
  24. package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js.map +1 -1
  25. package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js +18 -20
  26. package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js.map +1 -1
  27. package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js +68 -64
  28. package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js.map +1 -1
  29. package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js +57 -60
  30. package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js.map +1 -1
  31. package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js +197 -199
  32. package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js.map +1 -1
  33. package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js +57 -39
  34. package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js.map +1 -1
  35. package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js +41 -31
  36. package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js.map +1 -1
  37. package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js +79 -62
  38. package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js.map +1 -1
  39. package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +185 -189
  40. package/dist/eventfullymanaged/pages/venues/VenueFormPage.js.map +1 -1
  41. package/dist/eventfullymanaged/pages/venues/VenueListPage.js +63 -35
  42. package/dist/eventfullymanaged/pages/venues/VenueListPage.js.map +1 -1
  43. package/package.json +2 -2
@@ -3,48 +3,47 @@ import { EntityListSection as r } from "./EntityListSection.js";
3
3
  import { useMemo as i } from "react";
4
4
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
5
  import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
+ import { EmphasisPanel as c, GradientText as l } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/eventfullymanaged/pages/modules/RegistrationPage.tsx
7
- function c() {
8
- let { t: c } = s(), l = (e, t) => {
9
- let n = c(e);
8
+ function u() {
9
+ let { t: u } = s(), d = (e, t) => {
10
+ let n = u(e);
10
11
  return n === e ? t : n;
11
- }, u = n({
12
+ }, f = n({
12
13
  limit: 100,
13
14
  offset: 0
14
- }), d = e({
15
+ }), p = e({
15
16
  limit: 100,
16
17
  offset: 0
17
- }), f = t({
18
+ }), m = t({
18
19
  limit: 100,
19
20
  offset: 0
20
- }), p = i(() => u.data?.registrations.items ?? [], [u.data]), m = i(() => d.data?.attendees.items ?? [], [d.data]), h = i(() => f.data?.promoCodes.items ?? [], [f.data]);
21
+ }), h = i(() => f.data?.registrations.items ?? [], [f.data]), g = i(() => p.data?.attendees.items ?? [], [p.data]), _ = i(() => m.data?.promoCodes.items ?? [], [m.data]);
21
22
  return /* @__PURE__ */ o("div", {
22
23
  className: "space-y-6 p-6",
23
24
  children: [
24
- /* @__PURE__ */ o("section", {
25
- className: "rounded-lg border border-border-default bg-bg-surface p-5",
26
- children: [/* @__PURE__ */ a("h1", {
27
- className: "text-2xl font-bold text-text-primary",
28
- children: l("eventfullymanaged.registration.title", "Registration")
29
- }), /* @__PURE__ */ a("p", {
30
- className: "mt-1 text-sm text-text-secondary",
31
- children: l("eventfullymanaged.registration.description", "Track registrations and attendee profiles via backend GraphQL APIs.")
32
- })]
33
- }),
25
+ /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("h1", {
26
+ className: "text-2xl font-bold text-text-primary",
27
+ children: /* @__PURE__ */ a(l, { children: d("eventfullymanaged.registration.title", "Registration") })
28
+ }), /* @__PURE__ */ a("p", {
29
+ className: "mt-1 text-sm text-text-secondary",
30
+ children: d("eventfullymanaged.registration.description", "Track registrations and attendee profiles via backend GraphQL APIs.")
31
+ })] }),
34
32
  /* @__PURE__ */ a(r, {
35
- heading: u.loading ? l("eventfullymanaged.registration.registrations.loading", "Loading registrations...") : `${l("eventfullymanaged.registration.registrations.heading", "Registrations")} (${p.length})`,
36
- emptyLabel: l("eventfullymanaged.registration.registrations.empty", "No registrations found."),
37
- rows: p.map((e) => ({
33
+ heading: f.loading ? d("eventfullymanaged.registration.registrations.loading", "Loading registrations...") : `${d("eventfullymanaged.registration.registrations.heading", "Registrations")} (${h.length})`,
34
+ emptyLabel: d("eventfullymanaged.registration.registrations.empty", "No registrations found."),
35
+ rows: h.map((e) => ({
38
36
  id: e.id,
39
- title: e.attendeeId ? `${l("eventfullymanaged.registration.registrations.attendeePrefix", "Attendee")} ${e.attendeeId}` : `${l("eventfullymanaged.registration.registrations.itemPrefix", "Registration")} ${e.id}`,
40
- subtitle: [e.quantity ? `${l("eventfullymanaged.registration.registrations.quantityPrefix", "Qty")} ${e.quantity}` : void 0, e.totalAmount ? `${e.totalAmount} ${e.currency ?? ""}` : void 0].filter(Boolean).join(" • "),
37
+ title: e.attendeeId ? `${d("eventfullymanaged.registration.registrations.attendeePrefix", "Attendee")} ${e.attendeeId}` : `${d("eventfullymanaged.registration.registrations.itemPrefix", "Registration")} ${e.id}`,
38
+ subtitle: [e.quantity ? `${d("eventfullymanaged.registration.registrations.quantityPrefix", "Qty")} ${e.quantity}` : void 0, e.totalAmount ? `${e.totalAmount} ${e.currency ?? ""}` : void 0].filter(Boolean).join(" • "),
41
39
  status: e.status
42
40
  }))
43
41
  }),
44
42
  /* @__PURE__ */ a(r, {
45
- heading: d.loading ? l("eventfullymanaged.registration.attendees.loading", "Loading attendees...") : `${l("eventfullymanaged.registration.attendees.heading", "Attendees")} (${m.length})`,
46
- emptyLabel: l("eventfullymanaged.registration.attendees.empty", "No attendees found."),
47
- rows: m.map((e) => ({
43
+ heading: p.loading ? d("eventfullymanaged.registration.attendees.loading", "Loading attendees...") : `${d("eventfullymanaged.registration.attendees.heading", "Attendees")} (${g.length})`,
44
+ emptyLabel: d("eventfullymanaged.registration.attendees.empty", "No attendees found."),
45
+ emptyIllustration: "empty-people",
46
+ rows: g.map((e) => ({
48
47
  id: e.id,
49
48
  title: e.fullName ?? e.id,
50
49
  subtitle: [
@@ -55,9 +54,9 @@ function c() {
55
54
  }))
56
55
  }),
57
56
  /* @__PURE__ */ a(r, {
58
- heading: f.loading ? l("eventfullymanaged.registration.promoCodes.loading", "Loading promo codes...") : `${l("eventfullymanaged.registration.promoCodes.heading", "Promo Codes")} (${h.length})`,
59
- emptyLabel: l("eventfullymanaged.registration.promoCodes.empty", "No promo codes configured."),
60
- rows: h.map((e) => ({
57
+ heading: m.loading ? d("eventfullymanaged.registration.promoCodes.loading", "Loading promo codes...") : `${d("eventfullymanaged.registration.promoCodes.heading", "Promo Codes")} (${_.length})`,
58
+ emptyLabel: d("eventfullymanaged.registration.promoCodes.empty", "No promo codes configured."),
59
+ rows: _.map((e) => ({
61
60
  id: e.id,
62
61
  title: e.code,
63
62
  subtitle: `${e.discountType} ${e.discountValue}`,
@@ -68,6 +67,6 @@ function c() {
68
67
  });
69
68
  }
70
69
  //#endregion
71
- export { c as default };
70
+ export { u as default };
72
71
 
73
72
  //# sourceMappingURL=RegistrationPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/RegistrationPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useMemo } from 'react';\n\nimport { useAttendeesQuery, usePromoCodesQuery, useRegistrationsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype RegistrationRow = {\n id: string;\n attendeeId?: string;\n status?: string;\n quantity?: number;\n currency?: string;\n totalAmount?: string;\n};\n\ntype AttendeeRow = {\n id: string;\n fullName?: string;\n email?: string;\n company?: string;\n role?: string;\n};\n\nexport default function RegistrationPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const registrationsQuery = useRegistrationsQuery({ limit: 100, offset: 0 });\n const attendeesQuery = useAttendeesQuery({ limit: 100, offset: 0 });\n const promoCodesQuery = usePromoCodesQuery({ limit: 100, offset: 0 });\n\n const registrations = useMemo(\n () => (registrationsQuery.data?.registrations.items ?? []) as RegistrationRow[],\n [registrationsQuery.data]\n );\n const attendees = useMemo(() => (attendeesQuery.data?.attendees.items ?? []) as AttendeeRow[], [attendeesQuery.data]);\n const promoCodes = useMemo(() => promoCodesQuery.data?.promoCodes.items ?? [], [promoCodesQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <section className=\"rounded-lg border border-border-default bg-bg-surface p-5\">\n <h1 className=\"text-2xl font-bold text-text-primary\">\n {t('eventfullymanaged.registration.title', 'Registration')}\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t(\n 'eventfullymanaged.registration.description',\n 'Track registrations and attendee profiles via backend GraphQL APIs.'\n )}\n </p>\n </section>\n\n <EntityListSection\n heading={\n registrationsQuery.loading\n ? t('eventfullymanaged.registration.registrations.loading', 'Loading registrations...')\n : `${t('eventfullymanaged.registration.registrations.heading', 'Registrations')} (${registrations.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.registrations.empty', 'No registrations found.')}\n rows={registrations.map((row) => ({\n id: row.id,\n title: row.attendeeId\n ? `${t('eventfullymanaged.registration.registrations.attendeePrefix', 'Attendee')} ${row.attendeeId}`\n : `${t('eventfullymanaged.registration.registrations.itemPrefix', 'Registration')} ${row.id}`,\n subtitle: [\n row.quantity\n ? `${t('eventfullymanaged.registration.registrations.quantityPrefix', 'Qty')} ${row.quantity}`\n : undefined,\n row.totalAmount ? `${row.totalAmount} ${row.currency ?? ''}` : undefined,\n ]\n .filter(Boolean)\n .join(' • '),\n status: row.status,\n }))}\n />\n\n <EntityListSection\n heading={\n attendeesQuery.loading\n ? t('eventfullymanaged.registration.attendees.loading', 'Loading attendees...')\n : `${t('eventfullymanaged.registration.attendees.heading', 'Attendees')} (${attendees.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.attendees.empty', 'No attendees found.')}\n rows={attendees.map((row) => ({\n id: row.id,\n title: row.fullName ?? row.id,\n subtitle: [row.email, row.company, row.role].filter(Boolean).join(' • '),\n }))}\n />\n\n <EntityListSection\n heading={\n promoCodesQuery.loading\n ? t('eventfullymanaged.registration.promoCodes.loading', 'Loading promo codes...')\n : `${t('eventfullymanaged.registration.promoCodes.heading', 'Promo Codes')} (${promoCodes.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.promoCodes.empty', 'No promo codes configured.')}\n rows={promoCodes.map((row) => ({\n id: row.id,\n title: row.code,\n subtitle: `${row.discountType} ${row.discountValue}`,\n status: row.isActive ? 'active' : 'inactive',\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAuBA,SAAwB,IAAmB;CACzC,IAAM,EAAE,GAAG,MAAc,GAAS,EAC5B,KAAK,GAAa,MAAqB;EAC3C,IAAM,IAAQ,EAAU,EAAI;AAC5B,SAAO,MAAU,IAAM,IAAW;IAE9B,IAAqB,EAAsB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACrE,IAAiB,EAAkB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC7D,IAAkB,EAAmB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE/D,IAAgB,QACb,EAAmB,MAAM,cAAc,SAAS,EAAE,EACzD,CAAC,EAAmB,KAAK,CAC1B,EACK,IAAY,QAAe,EAAe,MAAM,UAAU,SAAS,EAAE,EAAoB,CAAC,EAAe,KAAK,CAAC,EAC/G,IAAa,QAAc,EAAgB,MAAM,WAAW,SAAS,EAAE,EAAE,CAAC,EAAgB,KAAK,CAAC;AAEtG,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,WAAD;IAAS,WAAU;cAAnB,CACE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAE,wCAAwC,eAAe;KACvD,CAAA,EACL,kBAAC,KAAD;KAAG,WAAU;eACV,EACC,8CACA,sEACD;KACC,CAAA,CACI;;GAEV,kBAAC,GAAD;IACE,SACE,EAAmB,UACf,EAAE,wDAAwD,2BAA2B,GACrF,GAAG,EAAE,wDAAwD,gBAAgB,CAAC,IAAI,EAAc,OAAO;IAE7G,YAAY,EAAE,sDAAsD,0BAA0B;IAC9F,MAAM,EAAc,KAAK,OAAS;KAChC,IAAI,EAAI;KACR,OAAO,EAAI,aACP,GAAG,EAAE,+DAA+D,WAAW,CAAC,GAAG,EAAI,eACvF,GAAG,EAAE,2DAA2D,eAAe,CAAC,GAAG,EAAI;KAC3F,UAAU,CACR,EAAI,WACA,GAAG,EAAE,+DAA+D,MAAM,CAAC,GAAG,EAAI,aAClF,KAAA,GACJ,EAAI,cAAc,GAAG,EAAI,YAAY,GAAG,EAAI,YAAY,OAAO,KAAA,EAChE,CACE,OAAO,QAAQ,CACf,KAAK,MAAM;KACd,QAAQ,EAAI;KACb,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SACE,EAAe,UACX,EAAE,oDAAoD,uBAAuB,GAC7E,GAAG,EAAE,oDAAoD,YAAY,CAAC,IAAI,EAAU,OAAO;IAEjG,YAAY,EAAE,kDAAkD,sBAAsB;IACtF,MAAM,EAAU,KAAK,OAAS;KAC5B,IAAI,EAAI;KACR,OAAO,EAAI,YAAY,EAAI;KAC3B,UAAU;MAAC,EAAI;MAAO,EAAI;MAAS,EAAI;MAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,MAAM;KACzE,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SACE,EAAgB,UACZ,EAAE,qDAAqD,yBAAyB,GAChF,GAAG,EAAE,qDAAqD,cAAc,CAAC,IAAI,EAAW,OAAO;IAErG,YAAY,EAAE,mDAAmD,6BAA6B;IAC9F,MAAM,EAAW,KAAK,OAAS;KAC7B,IAAI,EAAI;KACR,OAAO,EAAI;KACX,UAAU,GAAG,EAAI,aAAa,GAAG,EAAI;KACrC,QAAQ,EAAI,WAAW,WAAW;KACnC,EAAE;IACH,CAAA;GACE"}
1
+ {"version":3,"file":"RegistrationPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/RegistrationPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { EmphasisPanel, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\n\nimport { useAttendeesQuery, usePromoCodesQuery, useRegistrationsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype RegistrationRow = {\n id: string;\n attendeeId?: string;\n status?: string;\n quantity?: number;\n currency?: string;\n totalAmount?: string;\n};\n\ntype AttendeeRow = {\n id: string;\n fullName?: string;\n email?: string;\n company?: string;\n role?: string;\n};\n\nexport default function RegistrationPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const registrationsQuery = useRegistrationsQuery({ limit: 100, offset: 0 });\n const attendeesQuery = useAttendeesQuery({ limit: 100, offset: 0 });\n const promoCodesQuery = usePromoCodesQuery({ limit: 100, offset: 0 });\n\n const registrations = useMemo(\n () => (registrationsQuery.data?.registrations.items ?? []) as RegistrationRow[],\n [registrationsQuery.data]\n );\n const attendees = useMemo(() => (attendeesQuery.data?.attendees.items ?? []) as AttendeeRow[], [attendeesQuery.data]);\n const promoCodes = useMemo(() => promoCodesQuery.data?.promoCodes.items ?? [], [promoCodesQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>{t('eventfullymanaged.registration.title', 'Registration')}</GradientText>\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t(\n 'eventfullymanaged.registration.description',\n 'Track registrations and attendee profiles via backend GraphQL APIs.'\n )}\n </p>\n </EmphasisPanel>\n\n <EntityListSection\n heading={\n registrationsQuery.loading\n ? t('eventfullymanaged.registration.registrations.loading', 'Loading registrations...')\n : `${t('eventfullymanaged.registration.registrations.heading', 'Registrations')} (${registrations.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.registrations.empty', 'No registrations found.')}\n rows={registrations.map((row) => ({\n id: row.id,\n title: row.attendeeId\n ? `${t('eventfullymanaged.registration.registrations.attendeePrefix', 'Attendee')} ${row.attendeeId}`\n : `${t('eventfullymanaged.registration.registrations.itemPrefix', 'Registration')} ${row.id}`,\n subtitle: [\n row.quantity\n ? `${t('eventfullymanaged.registration.registrations.quantityPrefix', 'Qty')} ${row.quantity}`\n : undefined,\n row.totalAmount ? `${row.totalAmount} ${row.currency ?? ''}` : undefined,\n ]\n .filter(Boolean)\n .join(' • '),\n status: row.status,\n }))}\n />\n\n <EntityListSection\n heading={\n attendeesQuery.loading\n ? t('eventfullymanaged.registration.attendees.loading', 'Loading attendees...')\n : `${t('eventfullymanaged.registration.attendees.heading', 'Attendees')} (${attendees.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.attendees.empty', 'No attendees found.')}\n emptyIllustration=\"empty-people\"\n rows={attendees.map((row) => ({\n id: row.id,\n title: row.fullName ?? row.id,\n subtitle: [row.email, row.company, row.role].filter(Boolean).join(' • '),\n }))}\n />\n\n <EntityListSection\n heading={\n promoCodesQuery.loading\n ? t('eventfullymanaged.registration.promoCodes.loading', 'Loading promo codes...')\n : `${t('eventfullymanaged.registration.promoCodes.heading', 'Promo Codes')} (${promoCodes.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.promoCodes.empty', 'No promo codes configured.')}\n rows={promoCodes.map((row) => ({\n id: row.id,\n title: row.code,\n subtitle: `${row.discountType} ${row.discountValue}`,\n status: row.isActive ? 'active' : 'inactive',\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAwBA,SAAwB,IAAmB;CACzC,IAAM,EAAE,GAAG,MAAc,GAAS,EAC5B,KAAK,GAAa,MAAqB;EAC3C,IAAM,IAAQ,EAAU,EAAI;AAC5B,SAAO,MAAU,IAAM,IAAW;IAE9B,IAAqB,EAAsB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACrE,IAAiB,EAAkB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC7D,IAAkB,EAAmB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE/D,IAAgB,QACb,EAAmB,MAAM,cAAc,SAAS,EAAE,EACzD,CAAC,EAAmB,KAAK,CAC1B,EACK,IAAY,QAAe,EAAe,MAAM,UAAU,SAAS,EAAE,EAAoB,CAAC,EAAe,KAAK,CAAC,EAC/G,IAAa,QAAc,EAAgB,MAAM,WAAW,SAAS,EAAE,EAAE,CAAC,EAAgB,KAAK,CAAC;AAEtG,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cACZ,kBAAC,GAAD,EAAA,UAAe,EAAE,wCAAwC,eAAe,EAAgB,CAAA;IACrF,CAAA,EACL,kBAAC,KAAD;IAAG,WAAU;cACV,EACC,8CACA,sEACD;IACC,CAAA,CACU,EAAA,CAAA;GAEhB,kBAAC,GAAD;IACE,SACE,EAAmB,UACf,EAAE,wDAAwD,2BAA2B,GACrF,GAAG,EAAE,wDAAwD,gBAAgB,CAAC,IAAI,EAAc,OAAO;IAE7G,YAAY,EAAE,sDAAsD,0BAA0B;IAC9F,MAAM,EAAc,KAAK,OAAS;KAChC,IAAI,EAAI;KACR,OAAO,EAAI,aACP,GAAG,EAAE,+DAA+D,WAAW,CAAC,GAAG,EAAI,eACvF,GAAG,EAAE,2DAA2D,eAAe,CAAC,GAAG,EAAI;KAC3F,UAAU,CACR,EAAI,WACA,GAAG,EAAE,+DAA+D,MAAM,CAAC,GAAG,EAAI,aAClF,KAAA,GACJ,EAAI,cAAc,GAAG,EAAI,YAAY,GAAG,EAAI,YAAY,OAAO,KAAA,EAChE,CACE,OAAO,QAAQ,CACf,KAAK,MAAM;KACd,QAAQ,EAAI;KACb,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SACE,EAAe,UACX,EAAE,oDAAoD,uBAAuB,GAC7E,GAAG,EAAE,oDAAoD,YAAY,CAAC,IAAI,EAAU,OAAO;IAEjG,YAAY,EAAE,kDAAkD,sBAAsB;IACtF,mBAAkB;IAClB,MAAM,EAAU,KAAK,OAAS;KAC5B,IAAI,EAAI;KACR,OAAO,EAAI,YAAY,EAAI;KAC3B,UAAU;MAAC,EAAI;MAAO,EAAI;MAAS,EAAI;MAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,MAAM;KACzE,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SACE,EAAgB,UACZ,EAAE,qDAAqD,yBAAyB,GAChF,GAAG,EAAE,qDAAqD,cAAc,CAAC,IAAI,EAAW,OAAO;IAErG,YAAY,EAAE,mDAAmD,6BAA6B;IAC9F,MAAM,EAAW,KAAK,OAAS;KAC7B,IAAI,EAAI;KACR,OAAO,EAAI;KACX,UAAU,GAAG,EAAI,aAAa,GAAG,EAAI;KACrC,QAAQ,EAAI,WAAW,WAAW;KACnC,EAAE;IACH,CAAA;GACE"}
@@ -3,78 +3,80 @@ import { EntityListSection as n } from "./EntityListSection.js";
3
3
  import { useMemo as r } from "react";
4
4
  import { useParams as i } from "react-router-dom";
5
5
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ import { EmphasisPanel as s, GlassCard as c, GradientText as l } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/eventfullymanaged/pages/modules/SponsorDetailsPage.tsx
7
- function s() {
8
- let { id: s = "" } = i(), c = t({
8
+ function u() {
9
+ let { id: u = "" } = i(), d = t({
9
10
  limit: 100,
10
11
  offset: 0
11
- }), l = e({
12
+ }), f = e({
12
13
  limit: 100,
13
14
  offset: 0
14
- }), u = r(() => (c.data?.sponsors.items ?? []).find((e) => e.id === s), [s, c.data]), d = r(() => l.data?.communicationCampaigns.items ?? [], [l.data]);
15
+ }), p = r(() => (d.data?.sponsors.items ?? []).find((e) => e.id === u), [u, d.data]), m = r(() => f.data?.communicationCampaigns.items ?? [], [f.data]);
15
16
  return /* @__PURE__ */ o("div", {
16
17
  className: "space-y-6 p-6",
17
- children: [/* @__PURE__ */ o("section", {
18
- className: "rounded-lg border border-border-default bg-bg-surface p-5",
19
- children: [
20
- /* @__PURE__ */ a("h1", {
21
- className: "text-2xl font-bold text-text-primary",
22
- children: "Sponsor Details"
23
- }),
24
- /* @__PURE__ */ a("p", {
25
- className: "mt-1 text-sm text-text-secondary",
26
- children: c.loading ? "Loading sponsor details..." : u ? `Live sponsor profile for ${u.name}.` : "Sponsor not found in current query scope."
27
- }),
28
- u ? /* @__PURE__ */ o("div", {
29
- className: "mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",
30
- children: [
31
- /* @__PURE__ */ o("div", {
32
- className: "rounded-md border border-border-default p-3",
33
- children: [/* @__PURE__ */ a("p", {
34
- className: "text-xs uppercase tracking-wide text-text-secondary",
35
- children: "Level"
36
- }), /* @__PURE__ */ a("p", {
37
- className: "mt-1 font-medium text-text-primary",
38
- children: u.level
39
- })]
40
- }),
41
- /* @__PURE__ */ o("div", {
42
- className: "rounded-md border border-border-default p-3",
43
- children: [/* @__PURE__ */ a("p", {
44
- className: "text-xs uppercase tracking-wide text-text-secondary",
45
- children: "Contact"
46
- }), /* @__PURE__ */ a("p", {
47
- className: "mt-1 font-medium text-text-primary",
48
- children: u.contactName ?? "Unassigned"
49
- })]
50
- }),
51
- /* @__PURE__ */ o("div", {
52
- className: "rounded-md border border-border-default p-3",
53
- children: [/* @__PURE__ */ a("p", {
54
- className: "text-xs uppercase tracking-wide text-text-secondary",
55
- children: "Email"
56
- }), /* @__PURE__ */ a("p", {
57
- className: "mt-1 font-medium text-text-primary",
58
- children: u.contactEmail ?? "Unavailable"
59
- })]
60
- }),
61
- /* @__PURE__ */ o("div", {
62
- className: "rounded-md border border-border-default p-3",
63
- children: [/* @__PURE__ */ a("p", {
64
- className: "text-xs uppercase tracking-wide text-text-secondary",
65
- children: "Website"
66
- }), /* @__PURE__ */ a("p", {
67
- className: "mt-1 truncate font-medium text-text-primary",
68
- children: u.website ?? "Unavailable"
69
- })]
70
- })
71
- ]
72
- }) : null
73
- ]
74
- }), /* @__PURE__ */ a(n, {
75
- heading: l.loading ? "Loading campaigns..." : `Campaign Activity (${d.length})`,
18
+ children: [/* @__PURE__ */ o(s, { children: [
19
+ /* @__PURE__ */ o("h1", {
20
+ className: "text-2xl font-bold text-text-primary",
21
+ children: [/* @__PURE__ */ a(l, { children: "Sponsor" }), " Details"]
22
+ }),
23
+ /* @__PURE__ */ a("p", {
24
+ className: "mt-1 text-sm text-text-secondary",
25
+ children: d.loading ? "Loading sponsor details..." : p ? `Live sponsor profile for ${p.name}.` : "Sponsor not found in current query scope."
26
+ }),
27
+ p ? /* @__PURE__ */ o("div", {
28
+ className: "mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",
29
+ children: [
30
+ /* @__PURE__ */ o(c, {
31
+ treatment: "metric",
32
+ className: "p-3",
33
+ children: [/* @__PURE__ */ a("p", {
34
+ className: "text-xs uppercase tracking-wide text-text-secondary",
35
+ children: "Level"
36
+ }), /* @__PURE__ */ a("p", {
37
+ className: "mt-1 font-medium text-text-primary",
38
+ children: p.level
39
+ })]
40
+ }),
41
+ /* @__PURE__ */ o(c, {
42
+ treatment: "metric",
43
+ className: "p-3",
44
+ children: [/* @__PURE__ */ a("p", {
45
+ className: "text-xs uppercase tracking-wide text-text-secondary",
46
+ children: "Contact"
47
+ }), /* @__PURE__ */ a("p", {
48
+ className: "mt-1 font-medium text-text-primary",
49
+ children: p.contactName ?? "Unassigned"
50
+ })]
51
+ }),
52
+ /* @__PURE__ */ o(c, {
53
+ treatment: "metric",
54
+ className: "p-3",
55
+ children: [/* @__PURE__ */ a("p", {
56
+ className: "text-xs uppercase tracking-wide text-text-secondary",
57
+ children: "Email"
58
+ }), /* @__PURE__ */ a("p", {
59
+ className: "mt-1 font-medium text-text-primary",
60
+ children: p.contactEmail ?? "Unavailable"
61
+ })]
62
+ }),
63
+ /* @__PURE__ */ o(c, {
64
+ treatment: "metric",
65
+ className: "p-3",
66
+ children: [/* @__PURE__ */ a("p", {
67
+ className: "text-xs uppercase tracking-wide text-text-secondary",
68
+ children: "Website"
69
+ }), /* @__PURE__ */ a("p", {
70
+ className: "mt-1 truncate font-medium text-text-primary",
71
+ children: p.website ?? "Unavailable"
72
+ })]
73
+ })
74
+ ]
75
+ }) : null
76
+ ] }), /* @__PURE__ */ a(n, {
77
+ heading: f.loading ? "Loading campaigns..." : `Campaign Activity (${m.length})`,
76
78
  emptyLabel: "No communication campaigns available for sponsor tracking.",
77
- rows: d.map((e) => ({
79
+ rows: m.map((e) => ({
78
80
  id: e.id,
79
81
  title: e.title ?? e.name ?? `Campaign ${e.id}`,
80
82
  status: e.status
@@ -83,6 +85,6 @@ function s() {
83
85
  });
84
86
  }
85
87
  //#endregion
86
- export { s as default };
88
+ export { u as default };
87
89
 
88
90
  //# sourceMappingURL=SponsorDetailsPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SponsorDetailsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorDetailsPage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCommunicationCampaignsQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n website?: string | null;\n contactName?: string | null;\n contactEmail?: string | null;\n};\n\ntype CampaignRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorDetailsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const campaignsQuery = useCommunicationCampaignsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const campaigns = useMemo(\n () => (campaignsQuery.data?.communicationCampaigns.items ?? []) as CampaignRow[],\n [campaignsQuery.data]\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <section className=\"rounded-lg border border-border-default bg-bg-surface p-5\">\n <h1 className=\"text-2xl font-bold text-text-primary\">Sponsor Details</h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {sponsorsQuery.loading\n ? 'Loading sponsor details...'\n : sponsor\n ? `Live sponsor profile for ${sponsor.name}.`\n : 'Sponsor not found in current query scope.'}\n </p>\n {sponsor ? (\n <div className=\"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Level</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.level}</p>\n </div>\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Contact</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.contactName ?? 'Unassigned'}</p>\n </div>\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Email</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.contactEmail ?? 'Unavailable'}</p>\n </div>\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Website</p>\n <p className=\"mt-1 truncate font-medium text-text-primary\">{sponsor.website ?? 'Unavailable'}</p>\n </div>\n </div>\n ) : null}\n </section>\n\n <EntityListSection\n heading={campaignsQuery.loading ? 'Loading campaigns...' : `Campaign Activity (${campaigns.length})`}\n emptyLabel=\"No communication campaigns available for sponsor tracking.\"\n rows={campaigns.map((campaign) => ({\n id: campaign.id,\n title: campaign.title ?? campaign.name ?? `Campaign ${campaign.id}`,\n status: campaign.status,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAsBA,SAAwB,IAAqB;CAC3C,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC3D,IAAiB,EAA+B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE1E,IAAU,SACN,EAAc,MAAM,SAAS,SAAS,EAAE,EAAmB,MAAM,MAAS,EAAK,OAAO,EAAG,EACjG,CAAC,GAAI,EAAc,KAAK,CACzB,EACK,IAAY,QACT,EAAe,MAAM,uBAAuB,SAAS,EAAE,EAC9D,CAAC,EAAe,KAAK,CACtB;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,WAAD;GAAS,WAAU;aAAnB;IACE,kBAAC,MAAD;KAAI,WAAU;eAAuC;KAAoB,CAAA;IACzE,kBAAC,KAAD;KAAG,WAAU;eACV,EAAc,UACX,+BACA,IACE,4BAA4B,EAAQ,KAAK,KACzC;KACJ,CAAA;IACH,IACC,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAS,CAAA,EAC5E,kBAAC,KAAD;QAAG,WAAU;kBAAsC,EAAQ;QAAU,CAAA,CACjE;;MACN,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAW,CAAA,EAC9E,kBAAC,KAAD;QAAG,WAAU;kBAAsC,EAAQ,eAAe;QAAiB,CAAA,CACvF;;MACN,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAS,CAAA,EAC5E,kBAAC,KAAD;QAAG,WAAU;kBAAsC,EAAQ,gBAAgB;QAAkB,CAAA,CACzF;;MACN,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAW,CAAA,EAC9E,kBAAC,KAAD;QAAG,WAAU;kBAA+C,EAAQ,WAAW;QAAkB,CAAA,CAC7F;;MACF;SACJ;IACI;MAEV,kBAAC,GAAD;GACE,SAAS,EAAe,UAAU,yBAAyB,sBAAsB,EAAU,OAAO;GAClG,YAAW;GACX,MAAM,EAAU,KAAK,OAAc;IACjC,IAAI,EAAS;IACb,OAAO,EAAS,SAAS,EAAS,QAAQ,YAAY,EAAS;IAC/D,QAAQ,EAAS;IAClB,EAAE;GACH,CAAA,CACE"}
1
+ {"version":3,"file":"SponsorDetailsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorDetailsPage.tsx"],"sourcesContent":["import { EmphasisPanel, GlassCard, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCommunicationCampaignsQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n website?: string | null;\n contactName?: string | null;\n contactEmail?: string | null;\n};\n\ntype CampaignRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorDetailsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const campaignsQuery = useCommunicationCampaignsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const campaigns = useMemo(\n () => (campaignsQuery.data?.communicationCampaigns.items ?? []) as CampaignRow[],\n [campaignsQuery.data]\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>Sponsor</GradientText> Details\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {sponsorsQuery.loading\n ? 'Loading sponsor details...'\n : sponsor\n ? `Live sponsor profile for ${sponsor.name}.`\n : 'Sponsor not found in current query scope.'}\n </p>\n {sponsor ? (\n <div className=\"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Level</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.level}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Contact</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.contactName ?? 'Unassigned'}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Email</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.contactEmail ?? 'Unavailable'}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Website</p>\n <p className=\"mt-1 truncate font-medium text-text-primary\">{sponsor.website ?? 'Unavailable'}</p>\n </GlassCard>\n </div>\n ) : null}\n </EmphasisPanel>\n\n <EntityListSection\n heading={campaignsQuery.loading ? 'Loading campaigns...' : `Campaign Activity (${campaigns.length})`}\n emptyLabel=\"No communication campaigns available for sponsor tracking.\"\n rows={campaigns.map((campaign) => ({\n id: campaign.id,\n title: campaign.title ?? campaign.name ?? `Campaign ${campaign.id}`,\n status: campaign.status,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAuBA,SAAwB,IAAqB;CAC3C,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC3D,IAAiB,EAA+B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE1E,IAAU,SACN,EAAc,MAAM,SAAS,SAAS,EAAE,EAAmB,MAAM,MAAS,EAAK,OAAO,EAAG,EACjG,CAAC,GAAI,EAAc,KAAK,CACzB,EACK,IAAY,QACT,EAAe,MAAM,uBAAuB,SAAS,EAAE,EAC9D,CAAC,EAAe,KAAK,CACtB;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAA,UAAA;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAA,UAAc,WAAsB,CAAA,EAAA,WACjC;;GACL,kBAAC,KAAD;IAAG,WAAU;cACV,EAAc,UACX,+BACA,IACE,4BAA4B,EAAQ,KAAK,KACzC;IACJ,CAAA;GACH,IACC,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAS,CAAA,EAC5E,kBAAC,KAAD;OAAG,WAAU;iBAAsC,EAAQ;OAAU,CAAA,CAC3D;;KACZ,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAW,CAAA,EAC9E,kBAAC,KAAD;OAAG,WAAU;iBAAsC,EAAQ,eAAe;OAAiB,CAAA,CACjF;;KACZ,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAS,CAAA,EAC5E,kBAAC,KAAD;OAAG,WAAU;iBAAsC,EAAQ,gBAAgB;OAAkB,CAAA,CACnF;;KACZ,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAW,CAAA,EAC9E,kBAAC,KAAD;OAAG,WAAU;iBAA+C,EAAQ,WAAW;OAAkB,CAAA,CACvF;;KACR;QACJ;GACU,EAAA,CAAA,EAEhB,kBAAC,GAAD;GACE,SAAS,EAAe,UAAU,yBAAyB,sBAAsB,EAAU,OAAO;GAClG,YAAW;GACX,MAAM,EAAU,KAAK,OAAc;IACjC,IAAI,EAAS;IACb,OAAO,EAAS,SAAS,EAAS,QAAQ,YAAY,EAAS;IAC/D,QAAQ,EAAS;IAClB,EAAE;GACH,CAAA,CACE"}
@@ -3,44 +3,42 @@ import { EntityListSection as r } from "./EntityListSection.js";
3
3
  import { useMemo as i } from "react";
4
4
  import { useParams as a } from "react-router-dom";
5
5
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ import { EmphasisPanel as c, GradientText as l } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/eventfullymanaged/pages/modules/SponsorLeadsPage.tsx
7
- function c() {
8
- let { id: c = "" } = a(), l = n({
8
+ function u() {
9
+ let { id: u = "" } = a(), d = n({
9
10
  limit: 100,
10
11
  offset: 0
11
- }), u = t({
12
+ }), f = t({
12
13
  limit: 100,
13
14
  offset: 0
14
- }), d = e({
15
+ }), p = e({
15
16
  limit: 100,
16
17
  offset: 0
17
- }), f = i(() => (l.data?.sponsors.items ?? []).find((e) => e.id === c), [c, l.data]), p = i(() => u.data?.networkingMatches.items ?? [], [u.data]), m = i(() => d.data?.meetings.items ?? [], [d.data]);
18
+ }), m = i(() => (d.data?.sponsors.items ?? []).find((e) => e.id === u), [u, d.data]), h = i(() => f.data?.networkingMatches.items ?? [], [f.data]), g = i(() => p.data?.meetings.items ?? [], [p.data]);
18
19
  return /* @__PURE__ */ s("div", {
19
20
  className: "space-y-6 p-6",
20
21
  children: [
21
- /* @__PURE__ */ s("section", {
22
- className: "rounded-lg border border-border-default bg-bg-surface p-5",
23
- children: [/* @__PURE__ */ o("h1", {
24
- className: "text-2xl font-bold text-text-primary",
25
- children: "Sponsor Leads"
26
- }), /* @__PURE__ */ o("p", {
27
- className: "mt-1 text-sm text-text-secondary",
28
- children: f ? `${f.name} lead funnel sourced from networking and meeting streams.` : "Lead funnel sourced from networking and meeting streams."
29
- })]
30
- }),
22
+ /* @__PURE__ */ s(c, { children: [/* @__PURE__ */ s("h1", {
23
+ className: "text-2xl font-bold text-text-primary",
24
+ children: [/* @__PURE__ */ o(l, { children: "Sponsor" }), " Leads"]
25
+ }), /* @__PURE__ */ o("p", {
26
+ className: "mt-1 text-sm text-text-secondary",
27
+ children: m ? `${m.name} lead funnel sourced from networking and meeting streams.` : "Lead funnel sourced from networking and meeting streams."
28
+ })] }),
31
29
  /* @__PURE__ */ o(r, {
32
- heading: u.loading ? "Loading networking matches..." : `Potential Leads (${p.length})`,
30
+ heading: f.loading ? "Loading networking matches..." : `Potential Leads (${h.length})`,
33
31
  emptyLabel: "No networking leads found.",
34
- rows: p.map((e) => ({
32
+ rows: h.map((e) => ({
35
33
  id: e.id,
36
34
  title: e.title ?? e.name ?? `Lead ${e.id}`,
37
35
  status: e.status
38
36
  }))
39
37
  }),
40
38
  /* @__PURE__ */ o(r, {
41
- heading: d.loading ? "Loading meetings..." : `Sponsor Meetings (${m.length})`,
39
+ heading: p.loading ? "Loading meetings..." : `Sponsor Meetings (${g.length})`,
42
40
  emptyLabel: "No sponsor meetings recorded.",
43
- rows: m.map((e) => ({
41
+ rows: g.map((e) => ({
44
42
  id: e.id,
45
43
  title: e.title ?? e.name ?? `Meeting ${e.id}`,
46
44
  status: e.status
@@ -50,6 +48,6 @@ function c() {
50
48
  });
51
49
  }
52
50
  //#endregion
53
- export { c as default };
51
+ export { u as default };
54
52
 
55
53
  //# sourceMappingURL=SponsorLeadsPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SponsorLeadsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorLeadsPage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useMeetingsQuery, useNetworkingMatchesQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n};\n\ntype SimpleRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorLeadsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const matchesQuery = useNetworkingMatchesQuery({ limit: 100, offset: 0 });\n const meetingsQuery = useMeetingsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const matches = useMemo(() => (matchesQuery.data?.networkingMatches.items ?? []) as SimpleRow[], [matchesQuery.data]);\n const meetings = useMemo(() => (meetingsQuery.data?.meetings.items ?? []) as SimpleRow[], [meetingsQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <section className=\"rounded-lg border border-border-default bg-bg-surface p-5\">\n <h1 className=\"text-2xl font-bold text-text-primary\">Sponsor Leads</h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {sponsor\n ? `${sponsor.name} lead funnel sourced from networking and meeting streams.`\n : 'Lead funnel sourced from networking and meeting streams.'}\n </p>\n </section>\n\n <EntityListSection\n heading={matchesQuery.loading ? 'Loading networking matches...' : `Potential Leads (${matches.length})`}\n emptyLabel=\"No networking leads found.\"\n rows={matches.map((match) => ({\n id: match.id,\n title: match.title ?? match.name ?? `Lead ${match.id}`,\n status: match.status,\n }))}\n />\n\n <EntityListSection\n heading={meetingsQuery.loading ? 'Loading meetings...' : `Sponsor Meetings (${meetings.length})`}\n emptyLabel=\"No sponsor meetings recorded.\"\n rows={meetings.map((meeting) => ({\n id: meeting.id,\n title: meeting.title ?? meeting.name ?? `Meeting ${meeting.id}`,\n status: meeting.status,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAmBA,SAAwB,IAAmB;CACzC,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC3D,IAAe,EAA0B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACnE,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE3D,IAAU,SACN,EAAc,MAAM,SAAS,SAAS,EAAE,EAAmB,MAAM,MAAS,EAAK,OAAO,EAAG,EACjG,CAAC,GAAI,EAAc,KAAK,CACzB,EACK,IAAU,QAAe,EAAa,MAAM,kBAAkB,SAAS,EAAE,EAAkB,CAAC,EAAa,KAAK,CAAC,EAC/G,IAAW,QAAe,EAAc,MAAM,SAAS,SAAS,EAAE,EAAkB,CAAC,EAAc,KAAK,CAAC;AAE/G,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,WAAD;IAAS,WAAU;cAAnB,CACE,kBAAC,MAAD;KAAI,WAAU;eAAuC;KAAkB,CAAA,EACvE,kBAAC,KAAD;KAAG,WAAU;eACV,IACG,GAAG,EAAQ,KAAK,6DAChB;KACF,CAAA,CACI;;GAEV,kBAAC,GAAD;IACE,SAAS,EAAa,UAAU,kCAAkC,oBAAoB,EAAQ,OAAO;IACrG,YAAW;IACX,MAAM,EAAQ,KAAK,OAAW;KAC5B,IAAI,EAAM;KACV,OAAO,EAAM,SAAS,EAAM,QAAQ,QAAQ,EAAM;KAClD,QAAQ,EAAM;KACf,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAS,EAAc,UAAU,wBAAwB,qBAAqB,EAAS,OAAO;IAC9F,YAAW;IACX,MAAM,EAAS,KAAK,OAAa;KAC/B,IAAI,EAAQ;KACZ,OAAO,EAAQ,SAAS,EAAQ,QAAQ,WAAW,EAAQ;KAC3D,QAAQ,EAAQ;KACjB,EAAE;IACH,CAAA;GACE"}
1
+ {"version":3,"file":"SponsorLeadsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorLeadsPage.tsx"],"sourcesContent":["import { EmphasisPanel, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useMeetingsQuery, useNetworkingMatchesQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n};\n\ntype SimpleRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorLeadsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const matchesQuery = useNetworkingMatchesQuery({ limit: 100, offset: 0 });\n const meetingsQuery = useMeetingsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const matches = useMemo(() => (matchesQuery.data?.networkingMatches.items ?? []) as SimpleRow[], [matchesQuery.data]);\n const meetings = useMemo(() => (meetingsQuery.data?.meetings.items ?? []) as SimpleRow[], [meetingsQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>Sponsor</GradientText> Leads\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {sponsor\n ? `${sponsor.name} lead funnel sourced from networking and meeting streams.`\n : 'Lead funnel sourced from networking and meeting streams.'}\n </p>\n </EmphasisPanel>\n\n <EntityListSection\n heading={matchesQuery.loading ? 'Loading networking matches...' : `Potential Leads (${matches.length})`}\n emptyLabel=\"No networking leads found.\"\n rows={matches.map((match) => ({\n id: match.id,\n title: match.title ?? match.name ?? `Lead ${match.id}`,\n status: match.status,\n }))}\n />\n\n <EntityListSection\n heading={meetingsQuery.loading ? 'Loading meetings...' : `Sponsor Meetings (${meetings.length})`}\n emptyLabel=\"No sponsor meetings recorded.\"\n rows={meetings.map((meeting) => ({\n id: meeting.id,\n title: meeting.title ?? meeting.name ?? `Meeting ${meeting.id}`,\n status: meeting.status,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAoBA,SAAwB,IAAmB;CACzC,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC3D,IAAe,EAA0B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACnE,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE3D,IAAU,SACN,EAAc,MAAM,SAAS,SAAS,EAAE,EAAmB,MAAM,MAAS,EAAK,OAAO,EAAG,EACjG,CAAC,GAAI,EAAc,KAAK,CACzB,EACK,IAAU,QAAe,EAAa,MAAM,kBAAkB,SAAS,EAAE,EAAkB,CAAC,EAAa,KAAK,CAAC,EAC/G,IAAW,QAAe,EAAc,MAAM,SAAS,SAAS,EAAE,EAAkB,CAAC,EAAc,KAAK,CAAC;AAE/G,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAA,UAAc,WAAsB,CAAA,EAAA,SACjC;OACL,kBAAC,KAAD;IAAG,WAAU;cACV,IACG,GAAG,EAAQ,KAAK,6DAChB;IACF,CAAA,CACU,EAAA,CAAA;GAEhB,kBAAC,GAAD;IACE,SAAS,EAAa,UAAU,kCAAkC,oBAAoB,EAAQ,OAAO;IACrG,YAAW;IACX,MAAM,EAAQ,KAAK,OAAW;KAC5B,IAAI,EAAM;KACV,OAAO,EAAM,SAAS,EAAM,QAAQ,QAAQ,EAAM;KAClD,QAAQ,EAAM;KACf,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAS,EAAc,UAAU,wBAAwB,qBAAqB,EAAS,OAAO;IAC9F,YAAW;IACX,MAAM,EAAS,KAAK,OAAa;KAC/B,IAAI,EAAQ;KACZ,OAAO,EAAQ,SAAS,EAAQ,QAAQ,WAAW,EAAQ;KAC3D,QAAQ,EAAQ;KACjB,EAAE;IACH,CAAA;GACE"}
@@ -3,74 +3,78 @@ import { EntityListSection as t } from "./EntityListSection.js";
3
3
  import { useMemo as n } from "react";
4
4
  import { useParams as r } from "react-router-dom";
5
5
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ import { EmphasisPanel as o, GlassCard as s, GradientText as c } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/eventfullymanaged/pages/modules/VenueResourcesPage.tsx
7
- function o() {
8
- let { id: o = "" } = r(), s = e(o), c = s.data?.venue, l = n(() => s.data?.floorPlans.items ?? [], [s.data]);
8
+ function l() {
9
+ let { id: l = "" } = r(), u = e(l), d = u.data?.venue, f = n(() => u.data?.floorPlans.items ?? [], [u.data]);
9
10
  return /* @__PURE__ */ a("div", {
10
11
  className: "space-y-6 p-6",
11
12
  children: [
12
- /* @__PURE__ */ a("section", {
13
- className: "rounded-lg border border-border-default bg-bg-surface p-5",
14
- children: [
15
- /* @__PURE__ */ i("h1", {
16
- className: "text-2xl font-bold text-text-primary",
17
- children: "Venue Resources"
18
- }),
19
- /* @__PURE__ */ i("p", {
20
- className: "mt-1 text-sm text-text-secondary",
21
- children: s.loading ? "Loading venue resources..." : `Resource view for ${c?.name ?? "selected venue"} from live backend data.`
22
- }),
23
- /* @__PURE__ */ a("div", {
24
- className: "mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",
25
- children: [
26
- /* @__PURE__ */ a("div", {
27
- className: "rounded-md border border-border-default p-3",
28
- children: [/* @__PURE__ */ i("p", {
29
- className: "text-xs uppercase tracking-wide text-text-secondary",
30
- children: "Status"
31
- }), /* @__PURE__ */ i("p", {
32
- className: "mt-1 font-medium text-text-primary",
33
- children: c?.status ?? "unknown"
34
- })]
35
- }),
36
- /* @__PURE__ */ a("div", {
37
- className: "rounded-md border border-border-default p-3",
38
- children: [/* @__PURE__ */ i("p", {
39
- className: "text-xs uppercase tracking-wide text-text-secondary",
40
- children: "Capacity"
41
- }), /* @__PURE__ */ i("p", {
42
- className: "mt-1 font-medium text-text-primary",
43
- children: c?.capacity?.toLocaleString() ?? 0
44
- })]
45
- }),
46
- /* @__PURE__ */ a("div", {
47
- className: "rounded-md border border-border-default p-3",
48
- children: [/* @__PURE__ */ i("p", {
49
- className: "text-xs uppercase tracking-wide text-text-secondary",
50
- children: "Amenities"
51
- }), /* @__PURE__ */ i("p", {
52
- className: "mt-1 font-medium text-text-primary",
53
- children: c?.amenities.length ?? 0
54
- })]
55
- }),
56
- /* @__PURE__ */ a("div", {
57
- className: "rounded-md border border-border-default p-3",
58
- children: [/* @__PURE__ */ i("p", {
59
- className: "text-xs uppercase tracking-wide text-text-secondary",
60
- children: "Floor Plans"
61
- }), /* @__PURE__ */ i("p", {
62
- className: "mt-1 font-medium text-text-primary",
63
- children: l.length
64
- })]
65
- })
66
- ]
67
- })
68
- ]
69
- }),
13
+ /* @__PURE__ */ a(o, { children: [
14
+ /* @__PURE__ */ a("h1", {
15
+ className: "text-2xl font-bold text-text-primary",
16
+ children: [/* @__PURE__ */ i(c, { children: "Venue" }), " Resources"]
17
+ }),
18
+ /* @__PURE__ */ i("p", {
19
+ className: "mt-1 text-sm text-text-secondary",
20
+ children: u.loading ? "Loading venue resources..." : `Resource view for ${d?.name ?? "selected venue"} from live backend data.`
21
+ }),
22
+ /* @__PURE__ */ a("div", {
23
+ className: "mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",
24
+ children: [
25
+ /* @__PURE__ */ a(s, {
26
+ treatment: "glass",
27
+ glow: !0,
28
+ className: "p-3",
29
+ children: [/* @__PURE__ */ i("p", {
30
+ className: "text-xs uppercase tracking-wide text-text-secondary",
31
+ children: "Status"
32
+ }), /* @__PURE__ */ i("p", {
33
+ className: "mt-1 font-medium text-text-primary",
34
+ children: d?.status ?? "unknown"
35
+ })]
36
+ }),
37
+ /* @__PURE__ */ a(s, {
38
+ treatment: "metric",
39
+ className: "p-3",
40
+ children: [/* @__PURE__ */ i("p", {
41
+ className: "text-xs uppercase tracking-wide text-text-secondary",
42
+ children: "Capacity"
43
+ }), /* @__PURE__ */ i("p", {
44
+ className: "mt-1 font-medium tabular-nums text-text-primary",
45
+ children: d?.capacity?.toLocaleString() ?? 0
46
+ })]
47
+ }),
48
+ /* @__PURE__ */ a(s, {
49
+ treatment: "metric",
50
+ className: "p-3",
51
+ children: [/* @__PURE__ */ i("p", {
52
+ className: "text-xs uppercase tracking-wide text-text-secondary",
53
+ children: "Amenities"
54
+ }), /* @__PURE__ */ i("p", {
55
+ className: "mt-1 font-medium tabular-nums text-text-primary",
56
+ children: d?.amenities.length ?? 0
57
+ })]
58
+ }),
59
+ /* @__PURE__ */ a(s, {
60
+ treatment: "metric",
61
+ className: "p-3",
62
+ children: [/* @__PURE__ */ i("p", {
63
+ className: "text-xs uppercase tracking-wide text-text-secondary",
64
+ children: "Floor Plans"
65
+ }), /* @__PURE__ */ i("p", {
66
+ className: "mt-1 font-medium tabular-nums text-text-primary",
67
+ children: f.length
68
+ })]
69
+ })
70
+ ]
71
+ })
72
+ ] }),
70
73
  /* @__PURE__ */ i(t, {
71
- heading: s.loading ? "Loading floor plans..." : `Floor Plans (${l.length})`,
74
+ heading: u.loading ? "Loading floor plans..." : `Floor Plans (${f.length})`,
72
75
  emptyLabel: "No floor plans configured for this venue.",
73
- rows: l.map((e) => ({
76
+ emptyIllustration: "empty-files",
77
+ rows: f.map((e) => ({
74
78
  id: e.id,
75
79
  title: e.name,
76
80
  subtitle: e.imageUrl ?? void 0
@@ -79,7 +83,7 @@ function o() {
79
83
  /* @__PURE__ */ i(t, {
80
84
  heading: "Amenities",
81
85
  emptyLabel: "No amenities listed.",
82
- rows: (c?.amenities ?? []).map((e) => ({
86
+ rows: (d?.amenities ?? []).map((e) => ({
83
87
  id: e,
84
88
  title: e
85
89
  }))
@@ -88,6 +92,6 @@ function o() {
88
92
  });
89
93
  }
90
94
  //#endregion
91
- export { o as default };
95
+ export { l as default };
92
96
 
93
97
  //# sourceMappingURL=VenueResourcesPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VenueResourcesPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/VenueResourcesPage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useVenueQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype FloorPlanRow = {\n id: string;\n name: string;\n imageUrl?: string | null;\n};\n\nexport default function VenueResourcesPage() {\n const { id = '' } = useParams();\n const venueQuery = useVenueQuery(id);\n const venue = venueQuery.data?.venue;\n const floorPlans = useMemo(() => (venueQuery.data?.floorPlans.items ?? []) as FloorPlanRow[], [venueQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <section className=\"rounded-lg border border-border-default bg-bg-surface p-5\">\n <h1 className=\"text-2xl font-bold text-text-primary\">Venue Resources</h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {venueQuery.loading\n ? 'Loading venue resources...'\n : `Resource view for ${venue?.name ?? 'selected venue'} from live backend data.`}\n </p>\n <div className=\"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Status</p>\n <p className=\"mt-1 font-medium text-text-primary\">{venue?.status ?? 'unknown'}</p>\n </div>\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Capacity</p>\n <p className=\"mt-1 font-medium text-text-primary\">{venue?.capacity?.toLocaleString() ?? 0}</p>\n </div>\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Amenities</p>\n <p className=\"mt-1 font-medium text-text-primary\">{venue?.amenities.length ?? 0}</p>\n </div>\n <div className=\"rounded-md border border-border-default p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Floor Plans</p>\n <p className=\"mt-1 font-medium text-text-primary\">{floorPlans.length}</p>\n </div>\n </div>\n </section>\n\n <EntityListSection\n heading={venueQuery.loading ? 'Loading floor plans...' : `Floor Plans (${floorPlans.length})`}\n emptyLabel=\"No floor plans configured for this venue.\"\n rows={floorPlans.map((floorPlan) => ({\n id: floorPlan.id,\n title: floorPlan.name,\n subtitle: floorPlan.imageUrl ?? undefined,\n }))}\n />\n\n <EntityListSection\n heading=\"Amenities\"\n emptyLabel=\"No amenities listed.\"\n rows={(venue?.amenities ?? []).map((amenity) => ({\n id: amenity,\n title: amenity,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAYA,SAAwB,IAAqB;CAC3C,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAa,EAAc,EAAG,EAC9B,IAAQ,EAAW,MAAM,OACzB,IAAa,QAAe,EAAW,MAAM,WAAW,SAAS,EAAE,EAAqB,CAAC,EAAW,KAAK,CAAC;AAEhH,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,WAAD;IAAS,WAAU;cAAnB;KACE,kBAAC,MAAD;MAAI,WAAU;gBAAuC;MAAoB,CAAA;KACzE,kBAAC,KAAD;MAAG,WAAU;gBACV,EAAW,UACR,+BACA,qBAAqB,GAAO,QAAQ,iBAAiB;MACvD,CAAA;KACJ,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,KAAD;SAAG,WAAU;mBAAsD;SAAU,CAAA,EAC7E,kBAAC,KAAD;SAAG,WAAU;mBAAsC,GAAO,UAAU;SAAc,CAAA,CAC9E;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,KAAD;SAAG,WAAU;mBAAsD;SAAY,CAAA,EAC/E,kBAAC,KAAD;SAAG,WAAU;mBAAsC,GAAO,UAAU,gBAAgB,IAAI;SAAM,CAAA,CAC1F;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,KAAD;SAAG,WAAU;mBAAsD;SAAa,CAAA,EAChF,kBAAC,KAAD;SAAG,WAAU;mBAAsC,GAAO,UAAU,UAAU;SAAM,CAAA,CAChF;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,KAAD;SAAG,WAAU;mBAAsD;SAAe,CAAA,EAClF,kBAAC,KAAD;SAAG,WAAU;mBAAsC,EAAW;SAAW,CAAA,CACrE;;OACF;;KACE;;GAEV,kBAAC,GAAD;IACE,SAAS,EAAW,UAAU,2BAA2B,gBAAgB,EAAW,OAAO;IAC3F,YAAW;IACX,MAAM,EAAW,KAAK,OAAe;KACnC,IAAI,EAAU;KACd,OAAO,EAAU;KACjB,UAAU,EAAU,YAAY,KAAA;KACjC,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAQ;IACR,YAAW;IACX,OAAO,GAAO,aAAa,EAAE,EAAE,KAAK,OAAa;KAC/C,IAAI;KACJ,OAAO;KACR,EAAE;IACH,CAAA;GACE"}
1
+ {"version":3,"file":"VenueResourcesPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/VenueResourcesPage.tsx"],"sourcesContent":["import { EmphasisPanel, GlassCard, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useVenueQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype FloorPlanRow = {\n id: string;\n name: string;\n imageUrl?: string | null;\n};\n\nexport default function VenueResourcesPage() {\n const { id = '' } = useParams();\n const venueQuery = useVenueQuery(id);\n const venue = venueQuery.data?.venue;\n const floorPlans = useMemo(() => (venueQuery.data?.floorPlans.items ?? []) as FloorPlanRow[], [venueQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>Venue</GradientText> Resources\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {venueQuery.loading\n ? 'Loading venue resources...'\n : `Resource view for ${venue?.name ?? 'selected venue'} from live backend data.`}\n </p>\n <div className=\"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n <GlassCard treatment=\"glass\" glow className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Status</p>\n <p className=\"mt-1 font-medium text-text-primary\">{venue?.status ?? 'unknown'}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Capacity</p>\n <p className=\"mt-1 font-medium tabular-nums text-text-primary\">{venue?.capacity?.toLocaleString() ?? 0}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Amenities</p>\n <p className=\"mt-1 font-medium tabular-nums text-text-primary\">{venue?.amenities.length ?? 0}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Floor Plans</p>\n <p className=\"mt-1 font-medium tabular-nums text-text-primary\">{floorPlans.length}</p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n <EntityListSection\n heading={venueQuery.loading ? 'Loading floor plans...' : `Floor Plans (${floorPlans.length})`}\n emptyLabel=\"No floor plans configured for this venue.\"\n emptyIllustration=\"empty-files\"\n rows={floorPlans.map((floorPlan) => ({\n id: floorPlan.id,\n title: floorPlan.name,\n subtitle: floorPlan.imageUrl ?? undefined,\n }))}\n />\n\n <EntityListSection\n heading=\"Amenities\"\n emptyLabel=\"No amenities listed.\"\n rows={(venue?.amenities ?? []).map((amenity) => ({\n id: amenity,\n title: amenity,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAwB,IAAqB;CAC3C,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAa,EAAc,EAAG,EAC9B,IAAQ,EAAW,MAAM,OACzB,IAAa,QAAe,EAAW,MAAM,WAAW,SAAS,EAAE,EAAqB,CAAC,EAAW,KAAK,CAAC;AAEhH,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,MAAD;KAAI,WAAU;eAAd,CACE,kBAAC,GAAD,EAAA,UAAc,SAAoB,CAAA,EAAA,aAC/B;;IACL,kBAAC,KAAD;KAAG,WAAU;eACV,EAAW,UACR,+BACA,qBAAqB,GAAO,QAAQ,iBAAiB;KACvD,CAAA;IACJ,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,GAAD;OAAW,WAAU;OAAQ,MAAA;OAAK,WAAU;iBAA5C,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAU,CAAA,EAC7E,kBAAC,KAAD;QAAG,WAAU;kBAAsC,GAAO,UAAU;QAAc,CAAA,CACxE;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAY,CAAA,EAC/E,kBAAC,KAAD;QAAG,WAAU;kBAAmD,GAAO,UAAU,gBAAgB,IAAI;QAAM,CAAA,CACjG;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAa,CAAA,EAChF,kBAAC,KAAD;QAAG,WAAU;kBAAmD,GAAO,UAAU,UAAU;QAAM,CAAA,CACvF;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAe,CAAA,EAClF,kBAAC,KAAD;QAAG,WAAU;kBAAmD,EAAW;QAAW,CAAA,CAC5E;;MACR;;IACQ,EAAA,CAAA;GAEhB,kBAAC,GAAD;IACE,SAAS,EAAW,UAAU,2BAA2B,gBAAgB,EAAW,OAAO;IAC3F,YAAW;IACX,mBAAkB;IAClB,MAAM,EAAW,KAAK,OAAe;KACnC,IAAI,EAAU;KACd,OAAO,EAAU;KACjB,UAAU,EAAU,YAAY,KAAA;KACjC,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAQ;IACR,YAAW;IACX,OAAO,GAAO,aAAa,EAAE,EAAE,KAAK,OAAa;KAC/C,IAAI;KACJ,OAAO;KACR,EAAE;IACH,CAAA;GACE"}