@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,82 +3,79 @@ import { EntityListSection as i } from "./EntityListSection.js";
3
3
  import { useMemo as a, useState as o } from "react";
4
4
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
5
5
  import { Play as l } from "lucide-react";
6
+ import { Button as u, CTAOverflowMenu as d, EmphasisPanel as f, GradientText as p, Input as m } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/eventfullymanaged/pages/modules/WorkflowsPage.tsx
7
- function u() {
8
- let u = r({
8
+ function h() {
9
+ let h = r({
9
10
  limit: 100,
10
11
  offset: 0
11
- }), d = e({
12
+ }), g = e({
12
13
  limit: 100,
13
14
  offset: 0
14
- }), [f, { loading: p }] = n(), [m, { loading: h }] = t(), [g, _] = o("Post-event follow-up"), v = a(() => u.data?.workflowTemplates.items ?? [], [u.data]), y = a(() => d.data?.automationRules.items ?? [], [d.data]);
15
+ }), [_, { loading: v }] = n(), [y, { loading: b }] = t(), [x, S] = o("Post-event follow-up"), C = a(() => h.data?.workflowTemplates.items ?? [], [h.data]), w = a(() => g.data?.automationRules.items ?? [], [g.data]), T = async () => {
16
+ x.trim() && await _({ variables: { input: {
17
+ name: x,
18
+ title: x,
19
+ status: "active",
20
+ metadata: {}
21
+ } } });
22
+ }, E = async () => {
23
+ await y({ variables: { input: {
24
+ name: `${x} Rule`,
25
+ title: `${x} Rule`,
26
+ status: "active",
27
+ metadata: {}
28
+ } } });
29
+ };
15
30
  return /* @__PURE__ */ c("div", {
16
31
  className: "space-y-6 p-6",
17
32
  children: [
18
- /* @__PURE__ */ c("section", {
19
- className: "rounded-lg border border-border-default bg-bg-surface p-5",
20
- children: [
21
- /* @__PURE__ */ s("h1", {
22
- className: "text-2xl font-bold text-text-primary",
23
- children: "Workflows"
24
- }),
25
- /* @__PURE__ */ s("p", {
26
- className: "mt-1 text-sm text-text-secondary",
27
- children: "Manage event workflow templates and automation rules. Execution is delegated to workflow services."
28
- }),
29
- /* @__PURE__ */ c("div", {
30
- className: "mt-4 flex flex-col gap-3 sm:flex-row",
31
- children: [
32
- /* @__PURE__ */ s("input", {
33
- value: g,
34
- onChange: (e) => _(e.target.value),
35
- className: "flex-1 rounded-md border border-border-default px-3 py-2"
36
- }),
37
- /* @__PURE__ */ c("button", {
38
- type: "button",
39
- onClick: async () => {
40
- g.trim() && await f({ variables: { input: {
41
- name: g,
42
- title: g,
43
- status: "active",
44
- metadata: {}
45
- } } });
46
- },
47
- disabled: p,
48
- 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 disabled:opacity-60",
49
- children: [/* @__PURE__ */ s(l, { className: "mr-2 h-4 w-4" }), p ? "Saving..." : "Add Template"]
50
- }),
51
- /* @__PURE__ */ s("button", {
52
- type: "button",
53
- onClick: async () => {
54
- await m({ variables: { input: {
55
- name: `${g} Rule`,
56
- title: `${g} Rule`,
57
- status: "active",
58
- metadata: {}
59
- } } });
60
- },
61
- disabled: h,
62
- className: "inline-flex items-center rounded-md border border-border-default px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-elevated disabled:opacity-60",
63
- children: h ? "Saving..." : "Add Rule"
64
- })
65
- ]
66
- })
67
- ]
68
- }),
33
+ /* @__PURE__ */ c(f, { children: [
34
+ /* @__PURE__ */ s("h1", {
35
+ className: "text-2xl font-bold text-text-primary",
36
+ children: /* @__PURE__ */ s(p, { children: "Workflows" })
37
+ }),
38
+ /* @__PURE__ */ s("p", {
39
+ className: "mt-1 text-sm text-text-secondary",
40
+ children: "Manage event workflow templates and automation rules. Execution is delegated to workflow services."
41
+ }),
42
+ /* @__PURE__ */ c("div", {
43
+ className: "mt-4 flex flex-col gap-3 sm:flex-row sm:items-center",
44
+ children: [/* @__PURE__ */ s(m, {
45
+ value: x,
46
+ onChange: (e) => S(e.target.value),
47
+ "aria-label": "Workflow template name",
48
+ className: "flex-1"
49
+ }), /* @__PURE__ */ c("div", {
50
+ className: "flex items-center gap-2",
51
+ children: [/* @__PURE__ */ c(u, {
52
+ type: "button",
53
+ onClick: T,
54
+ disabled: v,
55
+ children: [/* @__PURE__ */ s(l, { className: "h-4 w-4" }), v ? "Saving..." : "Add Template"]
56
+ }), /* @__PURE__ */ s(d, { actions: [{
57
+ label: b ? "Saving rule..." : "Add Rule",
58
+ onSelect: () => {
59
+ E();
60
+ },
61
+ disabled: b
62
+ }] })]
63
+ })]
64
+ })
65
+ ] }),
69
66
  /* @__PURE__ */ s(i, {
70
- heading: u.loading ? "Loading templates..." : `Templates (${v.length})`,
67
+ heading: h.loading ? "Loading templates..." : `Templates (${C.length})`,
71
68
  emptyLabel: "No workflow templates configured.",
72
- rows: v.map((e) => ({
69
+ rows: C.map((e) => ({
73
70
  id: e.id,
74
71
  title: e.name ?? e.title ?? `Template ${e.id}`,
75
72
  status: e.status ?? void 0
76
73
  }))
77
74
  }),
78
75
  /* @__PURE__ */ s(i, {
79
- heading: d.loading ? "Loading automation rules..." : `Automation Rules (${y.length})`,
76
+ heading: g.loading ? "Loading automation rules..." : `Automation Rules (${w.length})`,
80
77
  emptyLabel: "No automation rules configured.",
81
- rows: y.map((e) => ({
78
+ rows: w.map((e) => ({
82
79
  id: e.id,
83
80
  title: e.name ?? e.title ?? `Rule ${e.id}`,
84
81
  status: e.status ?? void 0
@@ -88,6 +85,6 @@ function u() {
88
85
  });
89
86
  }
90
87
  //#endregion
91
- export { u as default };
88
+ export { h as default };
92
89
 
93
90
  //# sourceMappingURL=WorkflowsPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/WorkflowsPage.tsx"],"sourcesContent":["import { Play } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport {\n useAutomationRulesQuery,\n useUpsertAutomationRuleMutation,\n useUpsertWorkflowTemplateMutation,\n useWorkflowTemplatesQuery,\n} from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SimpleRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function WorkflowsPage() {\n const templatesQuery = useWorkflowTemplatesQuery({ limit: 100, offset: 0 });\n const rulesQuery = useAutomationRulesQuery({ limit: 100, offset: 0 });\n const [upsertTemplate, { loading: creatingTemplate }] = useUpsertWorkflowTemplateMutation();\n const [upsertRule, { loading: creatingRule }] = useUpsertAutomationRuleMutation();\n const [templateName, setTemplateName] = useState('Post-event follow-up');\n\n const templates = useMemo(\n () => (templatesQuery.data?.workflowTemplates.items ?? []) as SimpleRow[],\n [templatesQuery.data]\n );\n const rules = useMemo(() => (rulesQuery.data?.automationRules.items ?? []) as SimpleRow[], [rulesQuery.data]);\n\n const onCreateTemplate = async () => {\n if (!templateName.trim()) return;\n await upsertTemplate({\n variables: {\n input: {\n name: templateName,\n title: templateName,\n status: 'active',\n metadata: {},\n },\n },\n });\n };\n\n const onCreateRule = async () => {\n await upsertRule({\n variables: {\n input: {\n name: `${templateName} Rule`,\n title: `${templateName} Rule`,\n status: 'active',\n metadata: {},\n },\n },\n });\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\">Workflows</h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n Manage event workflow templates and automation rules. Execution is delegated to workflow services.\n </p>\n <div className=\"mt-4 flex flex-col gap-3 sm:flex-row\">\n <input\n value={templateName}\n onChange={(e) => setTemplateName(e.target.value)}\n className=\"flex-1 rounded-md border border-border-default px-3 py-2\"\n />\n <button\n type=\"button\"\n onClick={onCreateTemplate}\n disabled={creatingTemplate}\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 disabled:opacity-60\"\n >\n <Play className=\"mr-2 h-4 w-4\" />\n {creatingTemplate ? 'Saving...' : 'Add Template'}\n </button>\n <button\n type=\"button\"\n onClick={onCreateRule}\n disabled={creatingRule}\n className=\"inline-flex items-center rounded-md border border-border-default px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-elevated disabled:opacity-60\"\n >\n {creatingRule ? 'Saving...' : 'Add Rule'}\n </button>\n </div>\n </section>\n\n <EntityListSection\n heading={templatesQuery.loading ? 'Loading templates...' : `Templates (${templates.length})`}\n emptyLabel=\"No workflow templates configured.\"\n rows={templates.map((row) => ({\n id: row.id,\n title: row.name ?? row.title ?? `Template ${row.id}`,\n status: row.status ?? undefined,\n }))}\n />\n\n <EntityListSection\n heading={rulesQuery.loading ? 'Loading automation rules...' : `Automation Rules (${rules.length})`}\n emptyLabel=\"No automation rules configured.\"\n rows={rules.map((row) => ({\n id: row.id,\n title: row.name ?? row.title ?? `Rule ${row.id}`,\n status: row.status ?? undefined,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAkBA,SAAwB,IAAgB;CACtC,IAAM,IAAiB,EAA0B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACrE,IAAa,EAAwB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC/D,CAAC,GAAgB,EAAE,SAAS,OAAsB,GAAmC,EACrF,CAAC,GAAY,EAAE,SAAS,OAAkB,GAAiC,EAC3E,CAAC,GAAc,KAAmB,EAAS,uBAAuB,EAElE,IAAY,QACT,EAAe,MAAM,kBAAkB,SAAS,EAAE,EACzD,CAAC,EAAe,KAAK,CACtB,EACK,IAAQ,QAAe,EAAW,MAAM,gBAAgB,SAAS,EAAE,EAAkB,CAAC,EAAW,KAAK,CAAC;AA6B7G,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,WAAD;IAAS,WAAU;cAAnB;KACE,kBAAC,MAAD;MAAI,WAAU;gBAAuC;MAAc,CAAA;KACnE,kBAAC,KAAD;MAAG,WAAU;gBAAmC;MAE5C,CAAA;KACJ,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,SAAD;QACE,OAAO;QACP,WAAW,MAAM,EAAgB,EAAE,OAAO,MAAM;QAChD,WAAU;QACV,CAAA;OACF,kBAAC,UAAD;QACE,MAAK;QACL,SA1Ce,YAAY;AAC9B,WAAa,MAAM,IACxB,MAAM,EAAe,EACnB,WAAW,EACT,OAAO;UACL,MAAM;UACN,OAAO;UACP,QAAQ;UACR,UAAU,EAAE;UACb,EACF,EACF,CAAC;;QAgCM,UAAU;QACV,WAAU;kBAJZ,CAME,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAChC,IAAmB,cAAc,eAC3B;;OACT,kBAAC,UAAD;QACE,MAAK;QACL,SArCW,YAAY;AAC/B,eAAM,EAAW,EACf,WAAW,EACT,OAAO;UACL,MAAM,GAAG,EAAa;UACtB,OAAO,GAAG,EAAa;UACvB,QAAQ;UACR,UAAU,EAAE;UACb,EACF,EACF,CAAC;;QA4BM,UAAU;QACV,WAAU;kBAET,IAAe,cAAc;QACvB,CAAA;OACL;;KACE;;GAEV,kBAAC,GAAD;IACE,SAAS,EAAe,UAAU,yBAAyB,cAAc,EAAU,OAAO;IAC1F,YAAW;IACX,MAAM,EAAU,KAAK,OAAS;KAC5B,IAAI,EAAI;KACR,OAAO,EAAI,QAAQ,EAAI,SAAS,YAAY,EAAI;KAChD,QAAQ,EAAI,UAAU,KAAA;KACvB,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAS,EAAW,UAAU,gCAAgC,qBAAqB,EAAM,OAAO;IAChG,YAAW;IACX,MAAM,EAAM,KAAK,OAAS;KACxB,IAAI,EAAI;KACR,OAAO,EAAI,QAAQ,EAAI,SAAS,QAAQ,EAAI;KAC5C,QAAQ,EAAI,UAAU,KAAA;KACvB,EAAE;IACH,CAAA;GACE"}
1
+ {"version":3,"file":"WorkflowsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/WorkflowsPage.tsx"],"sourcesContent":["import { Play } from 'lucide-react';\nimport { Button, CTAOverflowMenu, EmphasisPanel, GradientText, Input } from '@burdenoff/fe-libs/ui';\nimport { useMemo, useState } from 'react';\n\nimport {\n useAutomationRulesQuery,\n useUpsertAutomationRuleMutation,\n useUpsertWorkflowTemplateMutation,\n useWorkflowTemplatesQuery,\n} from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SimpleRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function WorkflowsPage() {\n const templatesQuery = useWorkflowTemplatesQuery({ limit: 100, offset: 0 });\n const rulesQuery = useAutomationRulesQuery({ limit: 100, offset: 0 });\n const [upsertTemplate, { loading: creatingTemplate }] = useUpsertWorkflowTemplateMutation();\n const [upsertRule, { loading: creatingRule }] = useUpsertAutomationRuleMutation();\n const [templateName, setTemplateName] = useState('Post-event follow-up');\n\n const templates = useMemo(\n () => (templatesQuery.data?.workflowTemplates.items ?? []) as SimpleRow[],\n [templatesQuery.data]\n );\n const rules = useMemo(() => (rulesQuery.data?.automationRules.items ?? []) as SimpleRow[], [rulesQuery.data]);\n\n const onCreateTemplate = async () => {\n if (!templateName.trim()) return;\n await upsertTemplate({\n variables: {\n input: {\n name: templateName,\n title: templateName,\n status: 'active',\n metadata: {},\n },\n },\n });\n };\n\n const onCreateRule = async () => {\n await upsertRule({\n variables: {\n input: {\n name: `${templateName} Rule`,\n title: `${templateName} Rule`,\n status: 'active',\n metadata: {},\n },\n },\n });\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>Workflows</GradientText>\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n Manage event workflow templates and automation rules. Execution is delegated to workflow services.\n </p>\n <div className=\"mt-4 flex flex-col gap-3 sm:flex-row sm:items-center\">\n <Input\n value={templateName}\n onChange={(e) => setTemplateName(e.target.value)}\n aria-label=\"Workflow template name\"\n className=\"flex-1\"\n />\n <div className=\"flex items-center gap-2\">\n <Button type=\"button\" onClick={onCreateTemplate} disabled={creatingTemplate}>\n <Play className=\"h-4 w-4\" />\n {creatingTemplate ? 'Saving...' : 'Add Template'}\n </Button>\n <CTAOverflowMenu\n actions={[\n {\n label: creatingRule ? 'Saving rule...' : 'Add Rule',\n onSelect: () => {\n void onCreateRule();\n },\n disabled: creatingRule,\n },\n ]}\n />\n </div>\n </div>\n </EmphasisPanel>\n\n <EntityListSection\n heading={templatesQuery.loading ? 'Loading templates...' : `Templates (${templates.length})`}\n emptyLabel=\"No workflow templates configured.\"\n rows={templates.map((row) => ({\n id: row.id,\n title: row.name ?? row.title ?? `Template ${row.id}`,\n status: row.status ?? undefined,\n }))}\n />\n\n <EntityListSection\n heading={rulesQuery.loading ? 'Loading automation rules...' : `Automation Rules (${rules.length})`}\n emptyLabel=\"No automation rules configured.\"\n rows={rules.map((row) => ({\n id: row.id,\n title: row.name ?? row.title ?? `Rule ${row.id}`,\n status: row.status ?? undefined,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAmBA,SAAwB,IAAgB;CACtC,IAAM,IAAiB,EAA0B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACrE,IAAa,EAAwB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC/D,CAAC,GAAgB,EAAE,SAAS,OAAsB,GAAmC,EACrF,CAAC,GAAY,EAAE,SAAS,OAAkB,GAAiC,EAC3E,CAAC,GAAc,KAAmB,EAAS,uBAAuB,EAElE,IAAY,QACT,EAAe,MAAM,kBAAkB,SAAS,EAAE,EACzD,CAAC,EAAe,KAAK,CACtB,EACK,IAAQ,QAAe,EAAW,MAAM,gBAAgB,SAAS,EAAE,EAAkB,CAAC,EAAW,KAAK,CAAC,EAEvG,IAAmB,YAAY;AAC9B,IAAa,MAAM,IACxB,MAAM,EAAe,EACnB,WAAW,EACT,OAAO;GACL,MAAM;GACN,OAAO;GACP,QAAQ;GACR,UAAU,EAAE;GACb,EACF,EACF,CAAC;IAGE,IAAe,YAAY;AAC/B,QAAM,EAAW,EACf,WAAW,EACT,OAAO;GACL,MAAM,GAAG,EAAa;GACtB,OAAO,GAAG,EAAa;GACvB,QAAQ;GACR,UAAU,EAAE;GACb,EACF,EACF,CAAC;;AAGJ,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD,EAAA,UAAc,aAAwB,CAAA;KACnC,CAAA;IACL,kBAAC,KAAD;KAAG,WAAU;eAAmC;KAE5C,CAAA;IACJ,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MACE,OAAO;MACP,WAAW,MAAM,EAAgB,EAAE,OAAO,MAAM;MAChD,cAAW;MACX,WAAU;MACV,CAAA,EACF,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD;OAAQ,MAAK;OAAS,SAAS;OAAkB,UAAU;iBAA3D,CACE,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,IAAmB,cAAc,eAC3B;UACT,kBAAC,GAAD,EACE,SAAS,CACP;OACE,OAAO,IAAe,mBAAmB;OACzC,gBAAgB;AACT,WAAc;;OAErB,UAAU;OACX,CACF,EACD,CAAA,CACE;QACF;;IACQ,EAAA,CAAA;GAEhB,kBAAC,GAAD;IACE,SAAS,EAAe,UAAU,yBAAyB,cAAc,EAAU,OAAO;IAC1F,YAAW;IACX,MAAM,EAAU,KAAK,OAAS;KAC5B,IAAI,EAAI;KACR,OAAO,EAAI,QAAQ,EAAI,SAAS,YAAY,EAAI;KAChD,QAAQ,EAAI,UAAU,KAAA;KACvB,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAS,EAAW,UAAU,gCAAgC,qBAAqB,EAAM,OAAO;IAChG,YAAW;IACX,MAAM,EAAM,KAAK,OAAS;KACxB,IAAI,EAAI;KACR,OAAO,EAAI,QAAQ,EAAI,SAAS,QAAQ,EAAI;KAC5C,QAAQ,EAAI,UAAU,KAAA;KACvB,EAAE;IACH,CAAA;GACE"}
@@ -4,8 +4,9 @@ import { useEffect as a, useMemo as o, useState as s } from "react";
4
4
  import { useParams as c } from "react-router-dom";
5
5
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
6
  import { ArrowLeft as d, Save as f } from "lucide-react";
7
+ import { Button as p, GlassCard as m, Input as h } from "@burdenoff/fe-libs/ui";
7
8
  //#region src/eventfullymanaged/pages/sponsors/SponsorFormPage.tsx
8
- var p = {
9
+ var g = {
9
10
  eventId: "",
10
11
  name: "",
11
12
  level: "BRONZE",
@@ -16,242 +17,239 @@ var p = {
16
17
  value: "0",
17
18
  leads: "0"
18
19
  };
19
- function m() {
20
- let { id: m = "" } = c(), h = o(() => !!m, [m]), { navigate: g } = e(), { data: _ } = n({
20
+ function _() {
21
+ let { id: _ = "" } = c(), v = o(() => !!_, [_]), { navigate: y } = e(), { data: b } = n({
21
22
  limit: 100,
22
23
  offset: 0
23
- }), { data: v } = r({
24
+ }), { data: x } = r({
24
25
  limit: 100,
25
26
  offset: 0
26
- }), y = o(() => (v?.sponsors?.items ?? []).find((e) => e.id === m), [m, v]), [b, { loading: x }] = t(), [S, { loading: C }] = i(), [w, T] = s(() => y ? {
27
- eventId: y.eventId ?? "",
28
- name: y.name ?? "",
29
- level: y.level ?? "BRONZE",
30
- website: y.website ?? "",
31
- contactName: y.contactName ?? "",
32
- contactEmail: y.contactEmail ?? "",
33
- contactPhone: y.contactPhone ?? "",
34
- value: String(y.metrics?.value ?? 0),
35
- leads: String(y.metrics?.leads ?? 0)
36
- } : p);
27
+ }), S = o(() => (x?.sponsors?.items ?? []).find((e) => e.id === _), [_, x]), [C, { loading: w }] = t(), [T, { loading: E }] = i(), [D, O] = s(() => S ? {
28
+ eventId: S.eventId ?? "",
29
+ name: S.name ?? "",
30
+ level: S.level ?? "BRONZE",
31
+ website: S.website ?? "",
32
+ contactName: S.contactName ?? "",
33
+ contactEmail: S.contactEmail ?? "",
34
+ contactPhone: S.contactPhone ?? "",
35
+ value: String(S.metrics?.value ?? 0),
36
+ leads: String(S.metrics?.leads ?? 0)
37
+ } : g);
37
38
  a(() => {
38
- y && T({
39
- eventId: y.eventId ?? "",
40
- name: y.name ?? "",
41
- level: y.level ?? "BRONZE",
42
- website: y.website ?? "",
43
- contactName: y.contactName ?? "",
44
- contactEmail: y.contactEmail ?? "",
45
- contactPhone: y.contactPhone ?? "",
46
- value: String(y.metrics?.value ?? 0),
47
- leads: String(y.metrics?.leads ?? 0)
39
+ S && O({
40
+ eventId: S.eventId ?? "",
41
+ name: S.name ?? "",
42
+ level: S.level ?? "BRONZE",
43
+ website: S.website ?? "",
44
+ contactName: S.contactName ?? "",
45
+ contactEmail: S.contactEmail ?? "",
46
+ contactPhone: S.contactPhone ?? "",
47
+ value: String(S.metrics?.value ?? 0),
48
+ leads: String(S.metrics?.leads ?? 0)
48
49
  });
49
- }, [y]);
50
- let E = (e, t) => {
51
- T((n) => ({
50
+ }, [S]);
51
+ let k = (e, t) => {
52
+ O((n) => ({
52
53
  ...n,
53
54
  [e]: t
54
55
  }));
55
- }, D = async (e) => {
56
+ }, A = async (e) => {
56
57
  e.preventDefault();
57
58
  let t = {
58
- eventId: w.eventId,
59
- name: w.name,
60
- level: w.level,
61
- website: w.website,
62
- contactName: w.contactName,
63
- contactEmail: w.contactEmail,
64
- contactPhone: w.contactPhone,
59
+ eventId: D.eventId,
60
+ name: D.name,
61
+ level: D.level,
62
+ website: D.website,
63
+ contactName: D.contactName,
64
+ contactEmail: D.contactEmail,
65
+ contactPhone: D.contactPhone,
65
66
  metrics: {
66
- value: Number(w.value || 0),
67
- leads: Number(w.leads || 0)
67
+ value: Number(D.value || 0),
68
+ leads: Number(D.leads || 0)
68
69
  },
69
70
  metadata: {}
70
71
  };
71
- if (h) {
72
- await S({ variables: {
73
- id: m,
72
+ if (v) {
73
+ await T({ variables: {
74
+ id: _,
74
75
  input: t
75
- } }), g("/sponsors");
76
+ } }), y("/sponsors");
76
77
  return;
77
78
  }
78
- await b({ variables: { input: t } }), g("/sponsors");
79
- }, O = x || C, k = _?.events?.items ?? [];
79
+ await C({ variables: { input: t } }), y("/sponsors");
80
+ }, j = w || E, M = b?.events?.items ?? [], 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)]";
80
81
  return /* @__PURE__ */ u("div", {
81
82
  className: "space-y-6 p-6",
82
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("button", {
83
+ children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u(p, {
83
84
  type: "button",
84
- onClick: () => g("/sponsors"),
85
- className: "inline-flex items-center gap-2 text-sm text-text-secondary hover:text-text-primary",
85
+ variant: "ghost",
86
+ size: "sm",
87
+ onClick: () => y("/sponsors"),
86
88
  children: [/* @__PURE__ */ l(d, { className: "h-4 w-4" }), "Back to Sponsors"]
87
89
  }), /* @__PURE__ */ l("h1", {
88
90
  className: "mt-3 text-2xl font-bold text-text-primary",
89
- children: h ? "Edit Sponsor" : "Create Sponsor"
90
- })] }), /* @__PURE__ */ u("form", {
91
- onSubmit: D,
92
- className: "space-y-4 rounded-lg border border-border-default bg-bg-surface p-5",
93
- children: [
94
- /* @__PURE__ */ u("div", {
95
- className: "grid grid-cols-1 gap-4 md:grid-cols-2",
96
- children: [/* @__PURE__ */ u("label", {
97
- className: "space-y-1 text-sm",
98
- children: [/* @__PURE__ */ l("span", {
99
- className: "font-medium text-text-primary",
100
- children: "Event"
101
- }), /* @__PURE__ */ u("select", {
102
- value: w.eventId,
103
- onChange: (e) => E("eventId", e.target.value),
104
- required: !0,
105
- className: "w-full rounded-md border border-border-default px-3 py-2",
106
- children: [/* @__PURE__ */ l("option", {
107
- value: "",
108
- children: "Select Event"
109
- }), k.map((e) => /* @__PURE__ */ l("option", {
110
- value: e.id,
111
- children: e.name
112
- }, e.id))]
113
- })]
114
- }), /* @__PURE__ */ u("label", {
115
- className: "space-y-1 text-sm",
116
- children: [/* @__PURE__ */ l("span", {
117
- className: "font-medium text-text-primary",
118
- children: "Sponsor Name"
119
- }), /* @__PURE__ */ l("input", {
120
- value: w.name,
121
- onChange: (e) => E("name", e.target.value),
122
- required: !0,
123
- className: "w-full rounded-md border border-border-default px-3 py-2"
124
- })]
125
- })]
126
- }),
127
- /* @__PURE__ */ u("div", {
128
- className: "grid grid-cols-1 gap-4 md:grid-cols-3",
129
- children: [
130
- /* @__PURE__ */ u("label", {
91
+ children: v ? "Edit Sponsor" : "Create Sponsor"
92
+ })] }), /* @__PURE__ */ l(m, {
93
+ treatment: "plain",
94
+ className: "border-border-seam p-5",
95
+ children: /* @__PURE__ */ u("form", {
96
+ onSubmit: A,
97
+ className: "space-y-4",
98
+ children: [
99
+ /* @__PURE__ */ u("div", {
100
+ className: "grid grid-cols-1 gap-4 md:grid-cols-2",
101
+ children: [/* @__PURE__ */ u("label", {
131
102
  className: "space-y-1 text-sm",
132
103
  children: [/* @__PURE__ */ l("span", {
133
104
  className: "font-medium text-text-primary",
134
- children: "Level"
105
+ children: "Event"
135
106
  }), /* @__PURE__ */ u("select", {
136
- value: w.level,
137
- onChange: (e) => E("level", e.target.value),
138
- className: "w-full rounded-md border border-border-default px-3 py-2",
139
- children: [
140
- /* @__PURE__ */ l("option", {
141
- value: "PLATINUM",
142
- children: "Platinum"
143
- }),
144
- /* @__PURE__ */ l("option", {
145
- value: "GOLD",
146
- children: "Gold"
147
- }),
148
- /* @__PURE__ */ l("option", {
149
- value: "SILVER",
150
- children: "Silver"
151
- }),
152
- /* @__PURE__ */ l("option", {
153
- value: "BRONZE",
154
- children: "Bronze"
155
- }),
156
- /* @__PURE__ */ l("option", {
157
- value: "COMMUNITY",
158
- children: "Community"
159
- })
160
- ]
161
- })]
162
- }),
163
- /* @__PURE__ */ u("label", {
164
- className: "space-y-1 text-sm",
165
- children: [/* @__PURE__ */ l("span", {
166
- className: "font-medium text-text-primary",
167
- children: "Value"
168
- }), /* @__PURE__ */ l("input", {
169
- type: "number",
170
- min: "0",
171
- value: w.value,
172
- onChange: (e) => E("value", e.target.value),
173
- className: "w-full rounded-md border border-border-default px-3 py-2"
107
+ value: D.eventId,
108
+ onChange: (e) => k("eventId", e.target.value),
109
+ required: !0,
110
+ className: N,
111
+ children: [/* @__PURE__ */ l("option", {
112
+ value: "",
113
+ children: "Select Event"
114
+ }), M.map((e) => /* @__PURE__ */ l("option", {
115
+ value: e.id,
116
+ children: e.name
117
+ }, e.id))]
174
118
  })]
175
- }),
176
- /* @__PURE__ */ u("label", {
119
+ }), /* @__PURE__ */ u("label", {
177
120
  className: "space-y-1 text-sm",
178
121
  children: [/* @__PURE__ */ l("span", {
179
122
  className: "font-medium text-text-primary",
180
- children: "Leads"
181
- }), /* @__PURE__ */ l("input", {
182
- type: "number",
183
- min: "0",
184
- value: w.leads,
185
- onChange: (e) => E("leads", e.target.value),
186
- className: "w-full rounded-md border border-border-default px-3 py-2"
187
- })]
188
- })
189
- ]
190
- }),
191
- /* @__PURE__ */ u("label", {
192
- className: "block space-y-1 text-sm",
193
- children: [/* @__PURE__ */ l("span", {
194
- className: "font-medium text-text-primary",
195
- children: "Website"
196
- }), /* @__PURE__ */ l("input", {
197
- value: w.website,
198
- onChange: (e) => E("website", e.target.value),
199
- className: "w-full rounded-md border border-border-default px-3 py-2"
200
- })]
201
- }),
202
- /* @__PURE__ */ u("div", {
203
- className: "grid grid-cols-1 gap-4 md:grid-cols-3",
204
- children: [
205
- /* @__PURE__ */ u("label", {
206
- className: "space-y-1 text-sm",
207
- children: [/* @__PURE__ */ l("span", {
208
- className: "font-medium text-text-primary",
209
- children: "Contact Name"
210
- }), /* @__PURE__ */ l("input", {
211
- value: w.contactName,
212
- onChange: (e) => E("contactName", e.target.value),
213
- className: "w-full rounded-md border border-border-default px-3 py-2"
214
- })]
215
- }),
216
- /* @__PURE__ */ u("label", {
217
- className: "space-y-1 text-sm",
218
- children: [/* @__PURE__ */ l("span", {
219
- className: "font-medium text-text-primary",
220
- children: "Contact Email"
221
- }), /* @__PURE__ */ l("input", {
222
- type: "email",
223
- value: w.contactEmail,
224
- onChange: (e) => E("contactEmail", e.target.value),
225
- className: "w-full rounded-md border border-border-default px-3 py-2"
226
- })]
227
- }),
228
- /* @__PURE__ */ u("label", {
229
- className: "space-y-1 text-sm",
230
- children: [/* @__PURE__ */ l("span", {
231
- className: "font-medium text-text-primary",
232
- children: "Contact Phone"
233
- }), /* @__PURE__ */ l("input", {
234
- value: w.contactPhone,
235
- onChange: (e) => E("contactPhone", e.target.value),
236
- className: "w-full rounded-md border border-border-default px-3 py-2"
123
+ children: "Sponsor Name"
124
+ }), /* @__PURE__ */ l(h, {
125
+ value: D.name,
126
+ onChange: (e) => k("name", e.target.value),
127
+ required: !0
237
128
  })]
129
+ })]
130
+ }),
131
+ /* @__PURE__ */ u("div", {
132
+ className: "grid grid-cols-1 gap-4 md:grid-cols-3",
133
+ children: [
134
+ /* @__PURE__ */ u("label", {
135
+ className: "space-y-1 text-sm",
136
+ children: [/* @__PURE__ */ l("span", {
137
+ className: "font-medium text-text-primary",
138
+ children: "Level"
139
+ }), /* @__PURE__ */ u("select", {
140
+ value: D.level,
141
+ onChange: (e) => k("level", e.target.value),
142
+ className: N,
143
+ children: [
144
+ /* @__PURE__ */ l("option", {
145
+ value: "PLATINUM",
146
+ children: "Platinum"
147
+ }),
148
+ /* @__PURE__ */ l("option", {
149
+ value: "GOLD",
150
+ children: "Gold"
151
+ }),
152
+ /* @__PURE__ */ l("option", {
153
+ value: "SILVER",
154
+ children: "Silver"
155
+ }),
156
+ /* @__PURE__ */ l("option", {
157
+ value: "BRONZE",
158
+ children: "Bronze"
159
+ }),
160
+ /* @__PURE__ */ l("option", {
161
+ value: "COMMUNITY",
162
+ children: "Community"
163
+ })
164
+ ]
165
+ })]
166
+ }),
167
+ /* @__PURE__ */ u("label", {
168
+ className: "space-y-1 text-sm",
169
+ children: [/* @__PURE__ */ l("span", {
170
+ className: "font-medium text-text-primary",
171
+ children: "Value"
172
+ }), /* @__PURE__ */ l(h, {
173
+ type: "number",
174
+ min: "0",
175
+ value: D.value,
176
+ onChange: (e) => k("value", e.target.value)
177
+ })]
178
+ }),
179
+ /* @__PURE__ */ u("label", {
180
+ className: "space-y-1 text-sm",
181
+ children: [/* @__PURE__ */ l("span", {
182
+ className: "font-medium text-text-primary",
183
+ children: "Leads"
184
+ }), /* @__PURE__ */ l(h, {
185
+ type: "number",
186
+ min: "0",
187
+ value: D.leads,
188
+ onChange: (e) => k("leads", e.target.value)
189
+ })]
190
+ })
191
+ ]
192
+ }),
193
+ /* @__PURE__ */ u("label", {
194
+ className: "block space-y-1 text-sm",
195
+ children: [/* @__PURE__ */ l("span", {
196
+ className: "font-medium text-text-primary",
197
+ children: "Website"
198
+ }), /* @__PURE__ */ l(h, {
199
+ value: D.website,
200
+ onChange: (e) => k("website", e.target.value)
201
+ })]
202
+ }),
203
+ /* @__PURE__ */ u("div", {
204
+ className: "grid grid-cols-1 gap-4 md:grid-cols-3",
205
+ children: [
206
+ /* @__PURE__ */ u("label", {
207
+ className: "space-y-1 text-sm",
208
+ children: [/* @__PURE__ */ l("span", {
209
+ className: "font-medium text-text-primary",
210
+ children: "Contact Name"
211
+ }), /* @__PURE__ */ l(h, {
212
+ value: D.contactName,
213
+ onChange: (e) => k("contactName", e.target.value)
214
+ })]
215
+ }),
216
+ /* @__PURE__ */ u("label", {
217
+ className: "space-y-1 text-sm",
218
+ children: [/* @__PURE__ */ l("span", {
219
+ className: "font-medium text-text-primary",
220
+ children: "Contact Email"
221
+ }), /* @__PURE__ */ l(h, {
222
+ type: "email",
223
+ value: D.contactEmail,
224
+ onChange: (e) => k("contactEmail", e.target.value)
225
+ })]
226
+ }),
227
+ /* @__PURE__ */ u("label", {
228
+ className: "space-y-1 text-sm",
229
+ children: [/* @__PURE__ */ l("span", {
230
+ className: "font-medium text-text-primary",
231
+ children: "Contact Phone"
232
+ }), /* @__PURE__ */ l(h, {
233
+ value: D.contactPhone,
234
+ onChange: (e) => k("contactPhone", e.target.value)
235
+ })]
236
+ })
237
+ ]
238
+ }),
239
+ /* @__PURE__ */ l("div", {
240
+ className: "flex justify-end",
241
+ children: /* @__PURE__ */ u(p, {
242
+ type: "submit",
243
+ disabled: j,
244
+ children: [/* @__PURE__ */ l(f, { className: "h-4 w-4" }), j ? "Saving..." : "Save Sponsor"]
238
245
  })
239
- ]
240
- }),
241
- /* @__PURE__ */ l("div", {
242
- className: "flex justify-end",
243
- children: /* @__PURE__ */ u("button", {
244
- type: "submit",
245
- disabled: O,
246
- 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 disabled:opacity-60",
247
- children: [/* @__PURE__ */ l(f, { className: "mr-2 h-4 w-4" }), O ? "Saving..." : "Save Sponsor"]
248
246
  })
249
- })
250
- ]
247
+ ]
248
+ })
251
249
  })]
252
250
  });
253
251
  }
254
252
  //#endregion
255
- export { m as default };
253
+ export { _ as default };
256
254
 
257
255
  //# sourceMappingURL=SponsorFormPage.js.map