@burdenoff/microfe-eventfullymanaged 2026.625.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.
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js +88 -47
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +49 -45
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js +111 -78
- package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +29 -28
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +71 -42
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/KioskPage.js +11 -10
- package/dist/eventfullymanaged/pages/modules/KioskPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +54 -24
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js +135 -105
- package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +63 -33
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js +110 -77
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js +54 -23
- package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js +67 -37
- package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js +61 -42
- package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js +85 -85
- package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js +22 -21
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js +37 -40
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js +67 -38
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +99 -99
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js +23 -22
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,9 +5,9 @@ import { useParams as s } from "react-router-dom";
|
|
|
5
5
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
6
6
|
import { ArrowLeft as u, Save as d } from "lucide-react";
|
|
7
7
|
import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
8
|
-
import { Button as p,
|
|
8
|
+
import { Button as p, EmphasisPanel as m, Input as h, PagePurpose as g, Textarea as _ } from "@burdenoff/fe-libs/ui";
|
|
9
9
|
//#region src/eventfullymanaged/pages/venues/VenueFormPage.tsx
|
|
10
|
-
var
|
|
10
|
+
var v = {
|
|
11
11
|
name: "",
|
|
12
12
|
description: "",
|
|
13
13
|
addressLine1: "",
|
|
@@ -19,80 +19,80 @@ var _ = {
|
|
|
19
19
|
amenities: "",
|
|
20
20
|
status: "ACTIVE"
|
|
21
21
|
};
|
|
22
|
-
function
|
|
23
|
-
let { t:
|
|
24
|
-
let n =
|
|
22
|
+
function y() {
|
|
23
|
+
let { t: y } = f(), b = (e, t) => {
|
|
24
|
+
let n = y(e);
|
|
25
25
|
return n === e ? t : n;
|
|
26
|
-
}, { id:
|
|
26
|
+
}, { id: x = "" } = s(), S = a(() => !!x, [x]), { navigate: C } = e(), { data: w } = r(x), [T, { loading: E }] = t(), [D, { loading: O }] = n(), [k, A] = o(v);
|
|
27
27
|
i(() => {
|
|
28
|
-
!
|
|
29
|
-
name:
|
|
30
|
-
description:
|
|
31
|
-
addressLine1:
|
|
32
|
-
city:
|
|
33
|
-
state:
|
|
34
|
-
country:
|
|
35
|
-
postalCode:
|
|
36
|
-
capacity:
|
|
37
|
-
amenities: (
|
|
38
|
-
status:
|
|
28
|
+
!S || !w?.venue || A({
|
|
29
|
+
name: w.venue.name ?? "",
|
|
30
|
+
description: w.venue.description ?? "",
|
|
31
|
+
addressLine1: w.venue.addressLine1 ?? "",
|
|
32
|
+
city: w.venue.city ?? "",
|
|
33
|
+
state: w.venue.state ?? "",
|
|
34
|
+
country: w.venue.country ?? "India",
|
|
35
|
+
postalCode: w.venue.postalCode ?? "",
|
|
36
|
+
capacity: w.venue.capacity ? String(w.venue.capacity) : "",
|
|
37
|
+
amenities: (w.venue.amenities ?? []).join(", "),
|
|
38
|
+
status: w.venue.status ?? "ACTIVE"
|
|
39
39
|
});
|
|
40
|
-
}, [
|
|
41
|
-
let
|
|
42
|
-
|
|
40
|
+
}, [w, S]);
|
|
41
|
+
let j = (e, t) => {
|
|
42
|
+
A((n) => ({
|
|
43
43
|
...n,
|
|
44
44
|
[e]: t
|
|
45
45
|
}));
|
|
46
|
-
},
|
|
46
|
+
}, M = async (e) => {
|
|
47
47
|
e.preventDefault();
|
|
48
48
|
let t = {
|
|
49
|
-
name:
|
|
50
|
-
description:
|
|
51
|
-
addressLine1:
|
|
52
|
-
city:
|
|
53
|
-
state:
|
|
54
|
-
country:
|
|
55
|
-
postalCode:
|
|
56
|
-
capacity:
|
|
57
|
-
amenities:
|
|
58
|
-
status:
|
|
49
|
+
name: k.name,
|
|
50
|
+
description: k.description,
|
|
51
|
+
addressLine1: k.addressLine1,
|
|
52
|
+
city: k.city,
|
|
53
|
+
state: k.state,
|
|
54
|
+
country: k.country,
|
|
55
|
+
postalCode: k.postalCode,
|
|
56
|
+
capacity: k.capacity ? Number(k.capacity) : null,
|
|
57
|
+
amenities: k.amenities.split(",").map((e) => e.trim()).filter(Boolean),
|
|
58
|
+
status: k.status,
|
|
59
59
|
pricing: {},
|
|
60
60
|
openingHours: {},
|
|
61
61
|
metadata: {}
|
|
62
62
|
};
|
|
63
|
-
if (
|
|
64
|
-
await
|
|
65
|
-
id:
|
|
63
|
+
if (S) {
|
|
64
|
+
await D({ variables: {
|
|
65
|
+
id: x,
|
|
66
66
|
input: t
|
|
67
|
-
} }),
|
|
67
|
+
} }), C(`/venues/${x}`);
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
let n = (await
|
|
71
|
-
|
|
72
|
-
},
|
|
70
|
+
let n = (await T({ variables: { input: t } })).data?.createVenue?.id;
|
|
71
|
+
C(n ? `/venues/${n}` : "/venues");
|
|
72
|
+
}, N = E || O;
|
|
73
73
|
return /* @__PURE__ */ l("div", {
|
|
74
74
|
className: "space-y-6 p-6",
|
|
75
|
-
children: [
|
|
76
|
-
/* @__PURE__ */ l(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
children: /* @__PURE__ */ l("form", {
|
|
95
|
-
onSubmit:
|
|
75
|
+
children: [
|
|
76
|
+
/* @__PURE__ */ l("div", { children: [
|
|
77
|
+
/* @__PURE__ */ l(p, {
|
|
78
|
+
type: "button",
|
|
79
|
+
variant: "ghost",
|
|
80
|
+
size: "sm",
|
|
81
|
+
onClick: () => C("/venues"),
|
|
82
|
+
children: [/* @__PURE__ */ c(u, { className: "h-4 w-4" }), b("eventfullymanaged.venues.form.backToVenues", "Back to Venues")]
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ c("h1", {
|
|
85
|
+
className: "mt-3 text-2xl font-bold text-text-primary",
|
|
86
|
+
children: S ? b("eventfullymanaged.venues.form.editTitle", "Edit Venue") : b("eventfullymanaged.venues.form.createTitle", "Create Venue")
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ c("p", {
|
|
89
|
+
className: "mt-1 text-sm text-text-secondary",
|
|
90
|
+
children: b("eventfullymanaged.venues.form.description", "Manage venue details with live backend persistence.")
|
|
91
|
+
})
|
|
92
|
+
] }),
|
|
93
|
+
/* @__PURE__ */ c(g, { children: b("eventfullymanaged.venues.form.purpose", "Describe a space so you can reuse it across events. Capacity drives how many attendees you can register, the address helps people find it, and amenities tell organizers what is already provided. Fill this in once and every future event can simply point at this venue.") }),
|
|
94
|
+
/* @__PURE__ */ c(m, { children: /* @__PURE__ */ l("form", {
|
|
95
|
+
onSubmit: M,
|
|
96
96
|
className: "space-y-4",
|
|
97
97
|
children: [
|
|
98
98
|
/* @__PURE__ */ l("div", {
|
|
@@ -101,20 +101,20 @@ function v() {
|
|
|
101
101
|
className: "space-y-1 text-sm",
|
|
102
102
|
children: [/* @__PURE__ */ c("span", {
|
|
103
103
|
className: "font-medium text-text-primary",
|
|
104
|
-
children:
|
|
104
|
+
children: b("eventfullymanaged.venues.form.fields.name", "Name")
|
|
105
105
|
}), /* @__PURE__ */ c(h, {
|
|
106
|
-
value:
|
|
107
|
-
onChange: (e) =>
|
|
106
|
+
value: k.name,
|
|
107
|
+
onChange: (e) => j("name", e.target.value),
|
|
108
108
|
required: !0
|
|
109
109
|
})]
|
|
110
110
|
}), /* @__PURE__ */ l("label", {
|
|
111
111
|
className: "space-y-1 text-sm",
|
|
112
112
|
children: [/* @__PURE__ */ c("span", {
|
|
113
113
|
className: "font-medium text-text-primary",
|
|
114
|
-
children:
|
|
114
|
+
children: b("eventfullymanaged.venues.form.fields.capacity", "Capacity")
|
|
115
115
|
}), /* @__PURE__ */ c(h, {
|
|
116
|
-
value:
|
|
117
|
-
onChange: (e) =>
|
|
116
|
+
value: k.capacity,
|
|
117
|
+
onChange: (e) => j("capacity", e.target.value),
|
|
118
118
|
type: "number",
|
|
119
119
|
min: "0"
|
|
120
120
|
})]
|
|
@@ -124,10 +124,10 @@ function v() {
|
|
|
124
124
|
className: "block space-y-1 text-sm",
|
|
125
125
|
children: [/* @__PURE__ */ c("span", {
|
|
126
126
|
className: "font-medium text-text-primary",
|
|
127
|
-
children:
|
|
128
|
-
}), /* @__PURE__ */ c(
|
|
129
|
-
value:
|
|
130
|
-
onChange: (e) =>
|
|
127
|
+
children: b("eventfullymanaged.venues.form.fields.description", "Description")
|
|
128
|
+
}), /* @__PURE__ */ c(_, {
|
|
129
|
+
value: k.description,
|
|
130
|
+
onChange: (e) => j("description", e.target.value),
|
|
131
131
|
rows: 3
|
|
132
132
|
})]
|
|
133
133
|
}),
|
|
@@ -138,30 +138,30 @@ function v() {
|
|
|
138
138
|
className: "space-y-1 text-sm md:col-span-2",
|
|
139
139
|
children: [/* @__PURE__ */ c("span", {
|
|
140
140
|
className: "font-medium text-text-primary",
|
|
141
|
-
children:
|
|
141
|
+
children: b("eventfullymanaged.venues.form.fields.address", "Address")
|
|
142
142
|
}), /* @__PURE__ */ c(h, {
|
|
143
|
-
value:
|
|
144
|
-
onChange: (e) =>
|
|
143
|
+
value: k.addressLine1,
|
|
144
|
+
onChange: (e) => j("addressLine1", e.target.value)
|
|
145
145
|
})]
|
|
146
146
|
}),
|
|
147
147
|
/* @__PURE__ */ l("label", {
|
|
148
148
|
className: "space-y-1 text-sm",
|
|
149
149
|
children: [/* @__PURE__ */ c("span", {
|
|
150
150
|
className: "font-medium text-text-primary",
|
|
151
|
-
children:
|
|
151
|
+
children: b("eventfullymanaged.venues.form.fields.city", "City")
|
|
152
152
|
}), /* @__PURE__ */ c(h, {
|
|
153
|
-
value:
|
|
154
|
-
onChange: (e) =>
|
|
153
|
+
value: k.city,
|
|
154
|
+
onChange: (e) => j("city", e.target.value)
|
|
155
155
|
})]
|
|
156
156
|
}),
|
|
157
157
|
/* @__PURE__ */ l("label", {
|
|
158
158
|
className: "space-y-1 text-sm",
|
|
159
159
|
children: [/* @__PURE__ */ c("span", {
|
|
160
160
|
className: "font-medium text-text-primary",
|
|
161
|
-
children:
|
|
161
|
+
children: b("eventfullymanaged.venues.form.fields.state", "State")
|
|
162
162
|
}), /* @__PURE__ */ c(h, {
|
|
163
|
-
value:
|
|
164
|
-
onChange: (e) =>
|
|
163
|
+
value: k.state,
|
|
164
|
+
onChange: (e) => j("state", e.target.value)
|
|
165
165
|
})]
|
|
166
166
|
})
|
|
167
167
|
]
|
|
@@ -173,43 +173,43 @@ function v() {
|
|
|
173
173
|
className: "space-y-1 text-sm",
|
|
174
174
|
children: [/* @__PURE__ */ c("span", {
|
|
175
175
|
className: "font-medium text-text-primary",
|
|
176
|
-
children:
|
|
176
|
+
children: b("eventfullymanaged.venues.form.fields.country", "Country")
|
|
177
177
|
}), /* @__PURE__ */ c(h, {
|
|
178
|
-
value:
|
|
179
|
-
onChange: (e) =>
|
|
178
|
+
value: k.country,
|
|
179
|
+
onChange: (e) => j("country", e.target.value)
|
|
180
180
|
})]
|
|
181
181
|
}),
|
|
182
182
|
/* @__PURE__ */ l("label", {
|
|
183
183
|
className: "space-y-1 text-sm",
|
|
184
184
|
children: [/* @__PURE__ */ c("span", {
|
|
185
185
|
className: "font-medium text-text-primary",
|
|
186
|
-
children:
|
|
186
|
+
children: b("eventfullymanaged.venues.form.fields.postalCode", "Postal Code")
|
|
187
187
|
}), /* @__PURE__ */ c(h, {
|
|
188
|
-
value:
|
|
189
|
-
onChange: (e) =>
|
|
188
|
+
value: k.postalCode,
|
|
189
|
+
onChange: (e) => j("postalCode", e.target.value)
|
|
190
190
|
})]
|
|
191
191
|
}),
|
|
192
192
|
/* @__PURE__ */ l("label", {
|
|
193
193
|
className: "space-y-1 text-sm",
|
|
194
194
|
children: [/* @__PURE__ */ c("span", {
|
|
195
195
|
className: "font-medium text-text-primary",
|
|
196
|
-
children:
|
|
196
|
+
children: b("eventfullymanaged.venues.form.fields.status", "Status")
|
|
197
197
|
}), /* @__PURE__ */ l("select", {
|
|
198
|
-
value:
|
|
199
|
-
onChange: (e) =>
|
|
198
|
+
value: k.status,
|
|
199
|
+
onChange: (e) => j("status", e.target.value),
|
|
200
200
|
className: "w-full rounded-input border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary transition-colors focus-visible:border-border-focus focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus)] focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
|
|
201
201
|
children: [
|
|
202
202
|
/* @__PURE__ */ c("option", {
|
|
203
203
|
value: "ACTIVE",
|
|
204
|
-
children:
|
|
204
|
+
children: b("eventfullymanaged.venues.form.statusOptions.active", "Active")
|
|
205
205
|
}),
|
|
206
206
|
/* @__PURE__ */ c("option", {
|
|
207
207
|
value: "INACTIVE",
|
|
208
|
-
children:
|
|
208
|
+
children: b("eventfullymanaged.venues.form.statusOptions.inactive", "Inactive")
|
|
209
209
|
}),
|
|
210
210
|
/* @__PURE__ */ c("option", {
|
|
211
211
|
value: "MAINTENANCE",
|
|
212
|
-
children:
|
|
212
|
+
children: b("eventfullymanaged.venues.form.statusOptions.maintenance", "Maintenance")
|
|
213
213
|
})
|
|
214
214
|
]
|
|
215
215
|
})]
|
|
@@ -220,27 +220,27 @@ function v() {
|
|
|
220
220
|
className: "block space-y-1 text-sm",
|
|
221
221
|
children: [/* @__PURE__ */ c("span", {
|
|
222
222
|
className: "font-medium text-text-primary",
|
|
223
|
-
children:
|
|
223
|
+
children: b("eventfullymanaged.venues.form.fields.amenities", "Amenities (comma separated)")
|
|
224
224
|
}), /* @__PURE__ */ c(h, {
|
|
225
|
-
value:
|
|
226
|
-
onChange: (e) =>
|
|
227
|
-
placeholder:
|
|
225
|
+
value: k.amenities,
|
|
226
|
+
onChange: (e) => j("amenities", e.target.value),
|
|
227
|
+
placeholder: b("eventfullymanaged.venues.form.amenitiesPlaceholder", "wifi, parking, catering")
|
|
228
228
|
})]
|
|
229
229
|
}),
|
|
230
230
|
/* @__PURE__ */ c("div", {
|
|
231
231
|
className: "flex justify-end",
|
|
232
232
|
children: /* @__PURE__ */ l(p, {
|
|
233
233
|
type: "submit",
|
|
234
|
-
disabled:
|
|
235
|
-
children: [/* @__PURE__ */ c(d, { className: "h-4 w-4" }),
|
|
234
|
+
disabled: N,
|
|
235
|
+
children: [/* @__PURE__ */ c(d, { className: "h-4 w-4" }), N ? b("eventfullymanaged.venues.form.actions.saving", "Saving...") : b("eventfullymanaged.venues.form.actions.save", "Save Venue")]
|
|
236
236
|
})
|
|
237
237
|
})
|
|
238
238
|
]
|
|
239
|
-
})
|
|
240
|
-
|
|
239
|
+
}) })
|
|
240
|
+
]
|
|
241
241
|
});
|
|
242
242
|
}
|
|
243
243
|
//#endregion
|
|
244
|
-
export {
|
|
244
|
+
export { y as default };
|
|
245
245
|
|
|
246
246
|
//# sourceMappingURL=VenueFormPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VenueFormPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/VenueFormPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/set-state-in-effect */\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { ArrowLeft, Save } from 'lucide-react';\nimport { Button, GlassCard, Input, Textarea } from '@burdenoff/fe-libs/ui';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCreateVenueMutation, useUpdateVenueMutation, useVenueQuery } from '../../api/eventApi';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\n\ntype VenueFormState = {\n name: string;\n description: string;\n addressLine1: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n capacity: string;\n amenities: string;\n status: string;\n};\n\nconst initialState: VenueFormState = {\n name: '',\n description: '',\n addressLine1: '',\n city: '',\n state: '',\n country: 'India',\n postalCode: '',\n capacity: '',\n amenities: '',\n status: 'ACTIVE',\n};\n\nexport default function VenueFormPage() {\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 { id = '' } = useParams<{ id: string }>();\n const isEdit = useMemo(() => Boolean(id), [id]);\n const { navigate } = useEventfullyManaged();\n const { data } = useVenueQuery(id);\n const [createVenue, { loading: creating }] = useCreateVenueMutation();\n const [updateVenue, { loading: updating }] = useUpdateVenueMutation();\n const [form, setForm] = useState<VenueFormState>(initialState);\n\n useEffect(() => {\n if (!isEdit || !data?.venue) {\n return;\n }\n setForm({\n name: data.venue.name ?? '',\n description: data.venue.description ?? '',\n addressLine1: data.venue.addressLine1 ?? '',\n city: data.venue.city ?? '',\n state: data.venue.state ?? '',\n country: data.venue.country ?? 'India',\n postalCode: data.venue.postalCode ?? '',\n capacity: data.venue.capacity ? String(data.venue.capacity) : '',\n amenities: (data.venue.amenities ?? []).join(', '),\n status: data.venue.status ?? 'ACTIVE',\n });\n }, [data, isEdit]);\n\n const onChange = (field: keyof VenueFormState, value: string) => {\n setForm((prev) => ({ ...prev, [field]: value }));\n };\n\n const onSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const payload = {\n name: form.name,\n description: form.description,\n addressLine1: form.addressLine1,\n city: form.city,\n state: form.state,\n country: form.country,\n postalCode: form.postalCode,\n capacity: form.capacity ? Number(form.capacity) : null,\n amenities: form.amenities\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean),\n status: form.status,\n pricing: {},\n openingHours: {},\n metadata: {},\n };\n\n if (isEdit) {\n await updateVenue({ variables: { id, input: payload } });\n navigate(`/venues/${id}`);\n return;\n }\n\n const response = await createVenue({ variables: { input: payload } });\n const createdId = response.data?.createVenue?.id;\n navigate(createdId ? `/venues/${createdId}` : '/venues');\n };\n\n const isSaving = creating || updating;\n const selectClass =\n 'w-full rounded-input border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary transition-colors focus-visible:border-border-focus focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus)] focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]';\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => navigate('/venues')}>\n <ArrowLeft className=\"h-4 w-4\" />\n {t('eventfullymanaged.venues.form.backToVenues', 'Back to Venues')}\n </Button>\n <h1 className=\"mt-3 text-2xl font-bold text-text-primary\">\n {isEdit\n ? t('eventfullymanaged.venues.form.editTitle', 'Edit Venue')\n : t('eventfullymanaged.venues.form.createTitle', 'Create Venue')}\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t('eventfullymanaged.venues.form.description', 'Manage venue details with live backend persistence.')}\n </p>\n </div>\n\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <form onSubmit={onSubmit} className=\"space-y-4\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.name', 'Name')}\n </span>\n <Input value={form.name} onChange={(e) => onChange('name', e.target.value)} required />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.capacity', 'Capacity')}\n </span>\n <Input\n value={form.capacity}\n onChange={(e) => onChange('capacity', e.target.value)}\n type=\"number\"\n min=\"0\"\n />\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.description', 'Description')}\n </span>\n <Textarea value={form.description} onChange={(e) => onChange('description', e.target.value)} rows={3} />\n </label>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-4\">\n <label className=\"space-y-1 text-sm md:col-span-2\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.address', 'Address')}\n </span>\n <Input value={form.addressLine1} onChange={(e) => onChange('addressLine1', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.city', 'City')}\n </span>\n <Input value={form.city} onChange={(e) => onChange('city', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.state', 'State')}\n </span>\n <Input value={form.state} onChange={(e) => onChange('state', e.target.value)} />\n </label>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-3\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.country', 'Country')}\n </span>\n <Input value={form.country} onChange={(e) => onChange('country', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.postalCode', 'Postal Code')}\n </span>\n <Input value={form.postalCode} onChange={(e) => onChange('postalCode', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.status', 'Status')}\n </span>\n <select value={form.status} onChange={(e) => onChange('status', e.target.value)} className={selectClass}>\n <option value=\"ACTIVE\">{t('eventfullymanaged.venues.form.statusOptions.active', 'Active')}</option>\n <option value=\"INACTIVE\">\n {t('eventfullymanaged.venues.form.statusOptions.inactive', 'Inactive')}\n </option>\n <option value=\"MAINTENANCE\">\n {t('eventfullymanaged.venues.form.statusOptions.maintenance', 'Maintenance')}\n </option>\n </select>\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.amenities', 'Amenities (comma separated)')}\n </span>\n <Input\n value={form.amenities}\n onChange={(e) => onChange('amenities', e.target.value)}\n placeholder={t('eventfullymanaged.venues.form.amenitiesPlaceholder', 'wifi, parking, catering')}\n />\n </label>\n\n <div className=\"flex justify-end\">\n <Button type=\"submit\" disabled={isSaving}>\n <Save className=\"h-4 w-4\" />\n {isSaving\n ? t('eventfullymanaged.venues.form.actions.saving', 'Saving...')\n : t('eventfullymanaged.venues.form.actions.save', 'Save Venue')}\n </Button>\n </div>\n </form>\n </GlassCard>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VenueFormPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/VenueFormPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/set-state-in-effect */\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { ArrowLeft, Save } from 'lucide-react';\nimport { Button, EmphasisPanel, Input, PagePurpose, Textarea } from '@burdenoff/fe-libs/ui';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCreateVenueMutation, useUpdateVenueMutation, useVenueQuery } from '../../api/eventApi';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\n\ntype VenueFormState = {\n name: string;\n description: string;\n addressLine1: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n capacity: string;\n amenities: string;\n status: string;\n};\n\nconst initialState: VenueFormState = {\n name: '',\n description: '',\n addressLine1: '',\n city: '',\n state: '',\n country: 'India',\n postalCode: '',\n capacity: '',\n amenities: '',\n status: 'ACTIVE',\n};\n\nexport default function VenueFormPage() {\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 { id = '' } = useParams<{ id: string }>();\n const isEdit = useMemo(() => Boolean(id), [id]);\n const { navigate } = useEventfullyManaged();\n const { data } = useVenueQuery(id);\n const [createVenue, { loading: creating }] = useCreateVenueMutation();\n const [updateVenue, { loading: updating }] = useUpdateVenueMutation();\n const [form, setForm] = useState<VenueFormState>(initialState);\n\n useEffect(() => {\n if (!isEdit || !data?.venue) {\n return;\n }\n setForm({\n name: data.venue.name ?? '',\n description: data.venue.description ?? '',\n addressLine1: data.venue.addressLine1 ?? '',\n city: data.venue.city ?? '',\n state: data.venue.state ?? '',\n country: data.venue.country ?? 'India',\n postalCode: data.venue.postalCode ?? '',\n capacity: data.venue.capacity ? String(data.venue.capacity) : '',\n amenities: (data.venue.amenities ?? []).join(', '),\n status: data.venue.status ?? 'ACTIVE',\n });\n }, [data, isEdit]);\n\n const onChange = (field: keyof VenueFormState, value: string) => {\n setForm((prev) => ({ ...prev, [field]: value }));\n };\n\n const onSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const payload = {\n name: form.name,\n description: form.description,\n addressLine1: form.addressLine1,\n city: form.city,\n state: form.state,\n country: form.country,\n postalCode: form.postalCode,\n capacity: form.capacity ? Number(form.capacity) : null,\n amenities: form.amenities\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean),\n status: form.status,\n pricing: {},\n openingHours: {},\n metadata: {},\n };\n\n if (isEdit) {\n await updateVenue({ variables: { id, input: payload } });\n navigate(`/venues/${id}`);\n return;\n }\n\n const response = await createVenue({ variables: { input: payload } });\n const createdId = response.data?.createVenue?.id;\n navigate(createdId ? `/venues/${createdId}` : '/venues');\n };\n\n const isSaving = creating || updating;\n const selectClass =\n 'w-full rounded-input border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary transition-colors focus-visible:border-border-focus focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus)] focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]';\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => navigate('/venues')}>\n <ArrowLeft className=\"h-4 w-4\" />\n {t('eventfullymanaged.venues.form.backToVenues', 'Back to Venues')}\n </Button>\n <h1 className=\"mt-3 text-2xl font-bold text-text-primary\">\n {isEdit\n ? t('eventfullymanaged.venues.form.editTitle', 'Edit Venue')\n : t('eventfullymanaged.venues.form.createTitle', 'Create Venue')}\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t('eventfullymanaged.venues.form.description', 'Manage venue details with live backend persistence.')}\n </p>\n </div>\n\n <PagePurpose>\n {t(\n 'eventfullymanaged.venues.form.purpose',\n 'Describe a space so you can reuse it across events. Capacity drives how many attendees you can register, the address helps people find it, and amenities tell organizers what is already provided. Fill this in once and every future event can simply point at this venue.'\n )}\n </PagePurpose>\n\n <EmphasisPanel>\n <form onSubmit={onSubmit} className=\"space-y-4\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.name', 'Name')}\n </span>\n <Input value={form.name} onChange={(e) => onChange('name', e.target.value)} required />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.capacity', 'Capacity')}\n </span>\n <Input\n value={form.capacity}\n onChange={(e) => onChange('capacity', e.target.value)}\n type=\"number\"\n min=\"0\"\n />\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.description', 'Description')}\n </span>\n <Textarea value={form.description} onChange={(e) => onChange('description', e.target.value)} rows={3} />\n </label>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-4\">\n <label className=\"space-y-1 text-sm md:col-span-2\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.address', 'Address')}\n </span>\n <Input value={form.addressLine1} onChange={(e) => onChange('addressLine1', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.city', 'City')}\n </span>\n <Input value={form.city} onChange={(e) => onChange('city', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.state', 'State')}\n </span>\n <Input value={form.state} onChange={(e) => onChange('state', e.target.value)} />\n </label>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-3\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.country', 'Country')}\n </span>\n <Input value={form.country} onChange={(e) => onChange('country', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.postalCode', 'Postal Code')}\n </span>\n <Input value={form.postalCode} onChange={(e) => onChange('postalCode', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.status', 'Status')}\n </span>\n <select value={form.status} onChange={(e) => onChange('status', e.target.value)} className={selectClass}>\n <option value=\"ACTIVE\">{t('eventfullymanaged.venues.form.statusOptions.active', 'Active')}</option>\n <option value=\"INACTIVE\">\n {t('eventfullymanaged.venues.form.statusOptions.inactive', 'Inactive')}\n </option>\n <option value=\"MAINTENANCE\">\n {t('eventfullymanaged.venues.form.statusOptions.maintenance', 'Maintenance')}\n </option>\n </select>\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.amenities', 'Amenities (comma separated)')}\n </span>\n <Input\n value={form.amenities}\n onChange={(e) => onChange('amenities', e.target.value)}\n placeholder={t('eventfullymanaged.venues.form.amenitiesPlaceholder', 'wifi, parking, catering')}\n />\n </label>\n\n <div className=\"flex justify-end\">\n <Button type=\"submit\" disabled={isSaving}>\n <Save className=\"h-4 w-4\" />\n {isSaving\n ? t('eventfullymanaged.venues.form.actions.saving', 'Saving...')\n : t('eventfullymanaged.venues.form.actions.save', 'Save Venue')}\n </Button>\n </div>\n </form>\n </EmphasisPanel>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -3,18 +3,19 @@ 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,
|
|
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";
|
|
7
7
|
//#region src/eventfullymanaged/pages/venues/VenueListPage.tsx
|
|
8
|
-
function
|
|
9
|
-
let { navigate:
|
|
10
|
-
search:
|
|
8
|
+
function v() {
|
|
9
|
+
let { navigate: v } = e(), [y, b] = r(""), { data: x, loading: S } = t({
|
|
10
|
+
search: y,
|
|
11
11
|
limit: 100,
|
|
12
12
|
offset: 0
|
|
13
|
-
}),
|
|
13
|
+
}), C = n(() => x?.venues?.items ?? [], [x]);
|
|
14
14
|
return /* @__PURE__ */ a("div", {
|
|
15
15
|
className: "space-y-6 p-6",
|
|
16
16
|
children: [
|
|
17
|
-
/* @__PURE__ */
|
|
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, {
|
|
18
19
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
19
20
|
children: [/* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h1", {
|
|
20
21
|
className: "text-2xl font-bold text-text-primary",
|
|
@@ -24,48 +25,48 @@ function g() {
|
|
|
24
25
|
children: "Browse and manage event venues using live backend data."
|
|
25
26
|
})] }), /* @__PURE__ */ a(f, {
|
|
26
27
|
type: "button",
|
|
27
|
-
onClick: () =>
|
|
28
|
+
onClick: () => v("/venues/create"),
|
|
28
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: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ i(
|
|
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:
|
|
36
|
-
onChange: (e) =>
|
|
36
|
+
value: y,
|
|
37
|
+
onChange: (e) => b(e.target.value),
|
|
37
38
|
placeholder: "Search venues by name or location",
|
|
38
39
|
"aria-label": "Search venues by name or location",
|
|
39
40
|
className: "pl-10"
|
|
40
41
|
})]
|
|
41
42
|
}),
|
|
42
|
-
|
|
43
|
+
S ? /* @__PURE__ */ i(m, {
|
|
43
44
|
treatment: "plain",
|
|
44
45
|
className: "border-border-seam p-8 text-center text-sm text-text-secondary",
|
|
45
46
|
children: "Loading venues..."
|
|
46
|
-
}) :
|
|
47
|
+
}) : C.length === 0 ? /* @__PURE__ */ i(m, {
|
|
47
48
|
treatment: "plain",
|
|
48
49
|
className: "border-border-seam",
|
|
49
|
-
children: /* @__PURE__ */ i(
|
|
50
|
-
illustration:
|
|
51
|
-
title:
|
|
52
|
-
description:
|
|
53
|
-
action:
|
|
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, {
|
|
54
55
|
type: "button",
|
|
55
|
-
onClick: () =>
|
|
56
|
+
onClick: () => v("/venues/create"),
|
|
56
57
|
children: [/* @__PURE__ */ i(c, { className: "h-4 w-4" }), "Add Venue"]
|
|
57
58
|
})
|
|
58
59
|
})
|
|
59
60
|
}) : /* @__PURE__ */ i("div", {
|
|
60
61
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
61
|
-
children:
|
|
62
|
+
children: C.map((e) => /* @__PURE__ */ a(m, {
|
|
62
63
|
treatment: "plain",
|
|
63
64
|
role: "button",
|
|
64
65
|
tabIndex: 0,
|
|
65
66
|
"aria-label": `Open ${e.name}`,
|
|
66
|
-
onClick: () =>
|
|
67
|
+
onClick: () => v(`/venues/${e.id}`),
|
|
67
68
|
onKeyDown: (t) => {
|
|
68
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(),
|
|
69
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), v(`/venues/${e.id}`));
|
|
69
70
|
},
|
|
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)]",
|
|
71
72
|
children: [/* @__PURE__ */ a("div", {
|
|
@@ -117,6 +118,6 @@ function g() {
|
|
|
117
118
|
});
|
|
118
119
|
}
|
|
119
120
|
//#endregion
|
|
120
|
-
export {
|
|
121
|
+
export { v as default };
|
|
121
122
|
|
|
122
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 { Badge, Button, GlassCard, IllustratedEmptyState, Input } 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 <
|
|
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.625.
|
|
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.625.
|
|
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",
|