@burdenoff/microfe-eventfullymanaged 2026.608.1 → 2026.625.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +93 -40
  4. package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
  5. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +32 -29
  6. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
  7. package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js +85 -50
  8. package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js.map +1 -1
  9. package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +49 -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 +93 -66
  14. package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
  15. package/dist/eventfullymanaged/pages/modules/KioskPage.js +18 -19
  16. package/dist/eventfullymanaged/pages/modules/KioskPage.js.map +1 -1
  17. package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +60 -30
  18. package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
  19. package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js +146 -108
  20. package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js.map +1 -1
  21. package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +67 -38
  22. package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
  23. package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js +84 -49
  24. package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js.map +1 -1
  25. package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js +57 -28
  26. package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js.map +1 -1
  27. package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js +106 -72
  28. package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js.map +1 -1
  29. package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js +84 -68
  30. package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js.map +1 -1
  31. package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js +202 -204
  32. package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js.map +1 -1
  33. package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js +58 -39
  34. package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js.map +1 -1
  35. package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js +53 -46
  36. package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js.map +1 -1
  37. package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js +109 -63
  38. package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js.map +1 -1
  39. package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +193 -197
  40. package/dist/eventfullymanaged/pages/venues/VenueFormPage.js.map +1 -1
  41. package/dist/eventfullymanaged/pages/venues/VenueListPage.js +65 -36
  42. package/dist/eventfullymanaged/pages/venues/VenueListPage.js.map +1 -1
  43. package/package.json +2 -2
@@ -3,60 +3,86 @@ import { useVenuesQuery as t } from "../../api/eventApi.js";
3
3
  import { useMemo as n, useState as r } from "react";
4
4
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
5
  import { Building2 as o, MapPin as s, Plus as c, Search as l, Users as u } from "lucide-react";
6
+ import { Badge as d, Button as f, EmphasisPanel as p, GlassCard as m, IllustratedEmptyState as h, Input as g, PagePurpose as _ } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/eventfullymanaged/pages/venues/VenueListPage.tsx
7
- function d() {
8
- let { navigate: d } = e(), [f, p] = r(""), { data: m, loading: h } = t({
9
- search: f,
8
+ function v() {
9
+ let { navigate: v } = e(), [y, b] = r(""), { data: x, loading: S } = t({
10
+ search: y,
10
11
  limit: 100,
11
12
  offset: 0
12
- }), g = n(() => m?.venues?.items ?? [], [m]);
13
+ }), C = n(() => x?.venues?.items ?? [], [x]);
13
14
  return /* @__PURE__ */ a("div", {
14
15
  className: "space-y-6 p-6",
15
16
  children: [
16
- /* @__PURE__ */ a("div", {
17
- className: "flex items-center justify-between",
17
+ /* @__PURE__ */ i(_, { children: "Venues are the physical (or virtual) spaces where your events happen. Catalog them once — with capacity, location, amenities and floor plans — and reuse them across events. Start here when you are scouting or onboarding a new space to host an event." }),
18
+ /* @__PURE__ */ a(p, {
19
+ className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
18
20
  children: [/* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h1", {
19
21
  className: "text-2xl font-bold text-text-primary",
20
22
  children: "Venues"
21
23
  }), /* @__PURE__ */ i("p", {
22
24
  className: "mt-1 text-sm text-text-secondary",
23
25
  children: "Browse and manage event venues using live backend data."
24
- })] }), /* @__PURE__ */ a("button", {
26
+ })] }), /* @__PURE__ */ a(f, {
25
27
  type: "button",
26
- onClick: () => d("/venues/create"),
27
- className: "inline-flex items-center rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90",
28
- children: [/* @__PURE__ */ i(c, { className: "mr-2 h-4 w-4" }), "Add Venue"]
28
+ onClick: () => v("/venues/create"),
29
+ children: [/* @__PURE__ */ i(c, { className: "h-4 w-4" }), "Add Venue"]
29
30
  })]
30
31
  }),
31
32
  /* @__PURE__ */ a("div", {
32
33
  className: "relative",
33
- children: [/* @__PURE__ */ i(l, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ i("input", {
34
+ children: [/* @__PURE__ */ i(l, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ i(g, {
34
35
  type: "text",
35
- value: f,
36
- onChange: (e) => p(e.target.value),
36
+ value: y,
37
+ onChange: (e) => b(e.target.value),
37
38
  placeholder: "Search venues by name or location",
38
- className: "w-full rounded-md border border-border-default bg-bg-surface py-2 pl-10 pr-4 text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
39
+ "aria-label": "Search venues by name or location",
40
+ className: "pl-10"
39
41
  })]
40
42
  }),
41
- h ? /* @__PURE__ */ i("div", {
42
- className: "rounded-md border border-border-default bg-bg-surface p-8 text-center text-sm text-text-secondary",
43
+ S ? /* @__PURE__ */ i(m, {
44
+ treatment: "plain",
45
+ className: "border-border-seam p-8 text-center text-sm text-text-secondary",
43
46
  children: "Loading venues..."
44
- }) : /* @__PURE__ */ a("div", {
47
+ }) : C.length === 0 ? /* @__PURE__ */ i(m, {
48
+ treatment: "plain",
49
+ className: "border-border-seam",
50
+ children: /* @__PURE__ */ i(h, {
51
+ illustration: y ? "empty-search" : "empty-data",
52
+ title: y ? "No venues match your search." : "No venues yet.",
53
+ description: y ? "Try a different name or location." : "Add your first venue to start mapping events to spaces.",
54
+ action: y ? void 0 : /* @__PURE__ */ a(f, {
55
+ type: "button",
56
+ onClick: () => v("/venues/create"),
57
+ children: [/* @__PURE__ */ i(c, { className: "h-4 w-4" }), "Add Venue"]
58
+ })
59
+ })
60
+ }) : /* @__PURE__ */ i("div", {
45
61
  className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
46
- children: [g.map((e) => /* @__PURE__ */ a("button", {
47
- type: "button",
48
- onClick: () => d(`/venues/${e.id}`),
49
- className: "rounded-lg border border-border-default bg-bg-surface p-5 text-left transition hover:bg-bg-elevated",
62
+ children: C.map((e) => /* @__PURE__ */ a(m, {
63
+ treatment: "plain",
64
+ role: "button",
65
+ tabIndex: 0,
66
+ "aria-label": `Open ${e.name}`,
67
+ onClick: () => v(`/venues/${e.id}`),
68
+ onKeyDown: (t) => {
69
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), v(`/venues/${e.id}`));
70
+ },
71
+ className: "cursor-pointer border-border-seam p-5 text-left outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
50
72
  children: [/* @__PURE__ */ a("div", {
51
73
  className: "flex items-start justify-between gap-4",
52
- children: [/* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h2", {
53
- className: "text-lg font-semibold text-text-primary",
54
- children: e.name
55
- }), /* @__PURE__ */ i("p", {
56
- className: "mt-1 line-clamp-2 text-sm text-text-secondary",
57
- children: e.description ?? "No description available."
58
- })] }), /* @__PURE__ */ i("span", {
59
- className: "rounded-full bg-gray-100 px-2 py-1 text-xs font-medium uppercase text-text-primary",
74
+ children: [/* @__PURE__ */ a("div", {
75
+ className: "min-w-0",
76
+ children: [/* @__PURE__ */ i("h2", {
77
+ className: "text-lg font-semibold text-text-primary",
78
+ children: e.name
79
+ }), /* @__PURE__ */ i("p", {
80
+ className: "mt-1 line-clamp-2 text-sm text-text-secondary",
81
+ children: e.description ?? "No description available."
82
+ })]
83
+ }), /* @__PURE__ */ i(d, {
84
+ variant: "secondary",
85
+ className: "shrink-0 uppercase",
60
86
  children: e.status
61
87
  })]
62
88
  }), /* @__PURE__ */ a("div", {
@@ -72,23 +98,26 @@ function d() {
72
98
  }),
73
99
  /* @__PURE__ */ a("div", {
74
100
  className: "flex items-center gap-2",
75
- children: [/* @__PURE__ */ i(u, { className: "h-4 w-4" }), /* @__PURE__ */ a("span", { children: [e.capacity ?? 0, " capacity"] })]
101
+ children: [/* @__PURE__ */ i(u, { className: "h-4 w-4" }), /* @__PURE__ */ a("span", {
102
+ className: "tabular-nums",
103
+ children: [e.capacity ?? 0, " capacity"]
104
+ })]
76
105
  }),
77
106
  /* @__PURE__ */ a("div", {
78
107
  className: "flex items-center gap-2",
79
- children: [/* @__PURE__ */ i(o, { className: "h-4 w-4" }), /* @__PURE__ */ a("span", { children: [e.amenities.length, " amenities"] })]
108
+ children: [/* @__PURE__ */ i(o, { className: "h-4 w-4" }), /* @__PURE__ */ a("span", {
109
+ className: "tabular-nums",
110
+ children: [e.amenities.length, " amenities"]
111
+ })]
80
112
  })
81
113
  ]
82
114
  })]
83
- }, e.id)), g.length === 0 && /* @__PURE__ */ i("div", {
84
- className: "rounded-md border border-border-default bg-bg-surface p-8 text-center text-sm text-text-secondary",
85
- children: "No venues found for your search."
86
- })]
115
+ }, e.id))
87
116
  })
88
117
  ]
89
118
  });
90
119
  }
91
120
  //#endregion
92
- export { d as default };
121
+ export { v as default };
93
122
 
94
123
  //# sourceMappingURL=VenueListPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VenueListPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/VenueListPage.tsx"],"sourcesContent":["import { Building2, MapPin, Plus, Search, Users } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport { useVenuesQuery } from '../../api/eventApi';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\n\ntype VenueItem = {\n id: string;\n name: string;\n description?: string | null;\n city?: string | null;\n state?: string | null;\n country?: string | null;\n capacity?: number | null;\n status: string;\n amenities: string[];\n};\n\nexport default function VenueListPage() {\n const { navigate } = useEventfullyManaged();\n const [search, setSearch] = useState('');\n const { data, loading } = useVenuesQuery({ search, limit: 100, offset: 0 });\n\n const venues = useMemo(() => (data?.venues?.items ?? []) as VenueItem[], [data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold text-text-primary\">Venues</h1>\n <p className=\"mt-1 text-sm text-text-secondary\">Browse and manage event venues using live backend data.</p>\n </div>\n <button\n type=\"button\"\n onClick={() => navigate('/venues/create')}\n className=\"inline-flex items-center rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90\"\n >\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Venue\n </button>\n </div>\n\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted\" />\n <input\n type=\"text\"\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n placeholder=\"Search venues by name or location\"\n className=\"w-full rounded-md border border-border-default bg-bg-surface py-2 pl-10 pr-4 text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-action-primary-bg\"\n />\n </div>\n\n {loading ? (\n <div className=\"rounded-md border border-border-default bg-bg-surface p-8 text-center text-sm text-text-secondary\">\n Loading venues...\n </div>\n ) : (\n <div className=\"grid grid-cols-1 gap-4 lg:grid-cols-2\">\n {venues.map((venue) => (\n <button\n key={venue.id}\n type=\"button\"\n onClick={() => navigate(`/venues/${venue.id}`)}\n className=\"rounded-lg border border-border-default bg-bg-surface p-5 text-left transition hover:bg-bg-elevated\"\n >\n <div className=\"flex items-start justify-between gap-4\">\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary\">{venue.name}</h2>\n <p className=\"mt-1 line-clamp-2 text-sm text-text-secondary\">\n {venue.description ?? 'No description available.'}\n </p>\n </div>\n <span className=\"rounded-full bg-gray-100 px-2 py-1 text-xs font-medium uppercase text-text-primary\">\n {venue.status}\n </span>\n </div>\n\n <div className=\"mt-4 grid grid-cols-1 gap-2 text-sm text-text-secondary sm:grid-cols-3\">\n <div className=\"flex items-center gap-2\">\n <MapPin className=\"h-4 w-4\" />\n <span>\n {[venue.city, venue.state, venue.country].filter(Boolean).join(', ') || 'Location not set'}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <Users className=\"h-4 w-4\" />\n <span>{venue.capacity ?? 0} capacity</span>\n </div>\n <div className=\"flex items-center gap-2\">\n <Building2 className=\"h-4 w-4\" />\n <span>{venue.amenities.length} amenities</span>\n </div>\n </div>\n </button>\n ))}\n\n {venues.length === 0 && (\n <div className=\"rounded-md border border-border-default bg-bg-surface p-8 text-center text-sm text-text-secondary\">\n No venues found for your search.\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;AAkBA,SAAwB,IAAgB;CACtC,IAAM,EAAE,gBAAa,GAAsB,EACrC,CAAC,GAAQ,KAAa,EAAS,GAAG,EAClC,EAAE,SAAM,eAAY,EAAe;EAAE;EAAQ,OAAO;EAAK,QAAQ;EAAG,CAAC,EAErE,IAAS,QAAe,GAAM,QAAQ,SAAS,EAAE,EAAkB,CAAC,EAAK,CAAC;AAEhF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAAuC;KAAW,CAAA,EAChE,kBAAC,KAAD;KAAG,WAAU;eAAmC;KAA2D,CAAA,CACvG,EAAA,CAAA,EACN,kBAAC,UAAD;KACE,MAAK;KACL,eAAe,EAAS,iBAAiB;KACzC,WAAU;eAHZ,CAKE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,YAE1B;OACL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,oEAAqE,CAAA,EACvF,kBAAC,SAAD;KACE,MAAK;KACL,OAAO;KACP,WAAW,MAAU,EAAU,EAAM,OAAO,MAAM;KAClD,aAAY;KACZ,WAAU;KACV,CAAA,CACE;;GAEL,IACC,kBAAC,OAAD;IAAK,WAAU;cAAoG;IAE7G,CAAA,GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,EAAO,KAAK,MACX,kBAAC,UAAD;KAEE,MAAK;KACL,eAAe,EAAS,WAAW,EAAM,KAAK;KAC9C,WAAU;eAJZ,CAME,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBAA2C,EAAM;OAAU,CAAA,EACzE,kBAAC,KAAD;OAAG,WAAU;iBACV,EAAM,eAAe;OACpB,CAAA,CACA,EAAA,CAAA,EACN,kBAAC,QAAD;OAAM,WAAU;iBACb,EAAM;OACF,CAAA,CACH;SAEN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA,EAC9B,kBAAC,QAAD,EAAA,UACG;SAAC,EAAM;SAAM,EAAM;SAAO,EAAM;SAAQ,CAAC,OAAO,QAAQ,CAAC,KAAK,KAAK,IAAI,oBACnE,CAAA,CACH;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA,EAC7B,kBAAC,QAAD,EAAA,UAAA,CAAO,EAAM,YAAY,GAAE,YAAgB,EAAA,CAAA,CACvC;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA,EACjC,kBAAC,QAAD,EAAA,UAAA,CAAO,EAAM,UAAU,QAAO,aAAiB,EAAA,CAAA,CAC3C;;OACF;QACC;OAjCF,EAAM,GAiCJ,CACT,EAED,EAAO,WAAW,KACjB,kBAAC,OAAD;KAAK,WAAU;eAAoG;KAE7G,CAAA,CAEJ;;GAEJ"}
1
+ {"version":3,"file":"VenueListPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/VenueListPage.tsx"],"sourcesContent":["import { Building2, MapPin, Plus, Search, Users } from 'lucide-react';\nimport { Badge, Button, EmphasisPanel, GlassCard, IllustratedEmptyState, Input, PagePurpose } from '@burdenoff/fe-libs/ui';\nimport { useMemo, useState } from 'react';\n\nimport { useVenuesQuery } from '../../api/eventApi';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\n\ntype VenueItem = {\n id: string;\n name: string;\n description?: string | null;\n city?: string | null;\n state?: string | null;\n country?: string | null;\n capacity?: number | null;\n status: string;\n amenities: string[];\n};\n\nexport default function VenueListPage() {\n const { navigate } = useEventfullyManaged();\n const [search, setSearch] = useState('');\n const { data, loading } = useVenuesQuery({ search, limit: 100, offset: 0 });\n\n const venues = useMemo(() => (data?.venues?.items ?? []) as VenueItem[], [data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <PagePurpose>\n Venues are the physical (or virtual) spaces where your events happen. Catalog them once — with capacity,\n location, amenities and floor plans — and reuse them across events. Start here when you are scouting or\n onboarding a new space to host an event.\n </PagePurpose>\n\n <EmphasisPanel className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold text-text-primary\">Venues</h1>\n <p className=\"mt-1 text-sm text-text-secondary\">Browse and manage event venues using live backend data.</p>\n </div>\n <Button type=\"button\" onClick={() => navigate('/venues/create')}>\n <Plus className=\"h-4 w-4\" />\n Add Venue\n </Button>\n </EmphasisPanel>\n\n <div className=\"relative\">\n <Search className=\"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted\" />\n <Input\n type=\"text\"\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n placeholder=\"Search venues by name or location\"\n aria-label=\"Search venues by name or location\"\n className=\"pl-10\"\n />\n </div>\n\n {loading ? (\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-8 text-center text-sm text-text-secondary\">\n Loading venues...\n </GlassCard>\n ) : venues.length === 0 ? (\n <GlassCard treatment=\"plain\" className=\"border-border-seam\">\n <IllustratedEmptyState\n illustration={search ? 'empty-search' : 'empty-data'}\n title={search ? 'No venues match your search.' : 'No venues yet.'}\n description={\n search ? 'Try a different name or location.' : 'Add your first venue to start mapping events to spaces.'\n }\n action={\n !search ? (\n <Button type=\"button\" onClick={() => navigate('/venues/create')}>\n <Plus className=\"h-4 w-4\" />\n Add Venue\n </Button>\n ) : undefined\n }\n />\n </GlassCard>\n ) : (\n <div className=\"grid grid-cols-1 gap-4 lg:grid-cols-2\">\n {venues.map((venue) => (\n <GlassCard\n key={venue.id}\n treatment=\"plain\"\n role=\"button\"\n tabIndex={0}\n aria-label={`Open ${venue.name}`}\n onClick={() => navigate(`/venues/${venue.id}`)}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n navigate(`/venues/${venue.id}`);\n }\n }}\n className=\"cursor-pointer border-border-seam p-5 text-left outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]\"\n >\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <h2 className=\"text-lg font-semibold text-text-primary\">{venue.name}</h2>\n <p className=\"mt-1 line-clamp-2 text-sm text-text-secondary\">\n {venue.description ?? 'No description available.'}\n </p>\n </div>\n <Badge variant=\"secondary\" className=\"shrink-0 uppercase\">\n {venue.status}\n </Badge>\n </div>\n\n <div className=\"mt-4 grid grid-cols-1 gap-2 text-sm text-text-secondary sm:grid-cols-3\">\n <div className=\"flex items-center gap-2\">\n <MapPin className=\"h-4 w-4\" />\n <span>\n {[venue.city, venue.state, venue.country].filter(Boolean).join(', ') || 'Location not set'}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <Users className=\"h-4 w-4\" />\n <span className=\"tabular-nums\">{venue.capacity ?? 0} capacity</span>\n </div>\n <div className=\"flex items-center gap-2\">\n <Building2 className=\"h-4 w-4\" />\n <span className=\"tabular-nums\">{venue.amenities.length} amenities</span>\n </div>\n </div>\n </GlassCard>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-eventfullymanaged",
3
- "version": "2026.608.1",
3
+ "version": "2026.625.2",
4
4
  "description": "EventfullyManaged - End-to-end event management platform",
5
5
  "type": "module",
6
6
  "files": [
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@apollo/client": "^4.0.11",
39
- "@burdenoff/fe-libs": "2026.518.7",
39
+ "@burdenoff/fe-libs": "2026.625.5",
40
40
  "date-fns": "^4.1.0",
41
41
  "lucide-react": "^0.468.0",
42
42
  "react": "^19.0.0",