@burdenoff/microfe-ggnomad 2026.705.2 → 2026.705.4

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.
@@ -1,118 +1,125 @@
1
- import { GGNomadRoutes as e } from "./GGNomadRoutes.js";
2
- import { GGNomadProvider as t } from "./providers/GGNomadProvider.js";
3
- import { joinPath as n } from "./utils/navigation.js";
1
+ import { GGNomadProvider as e } from "./providers/GGNomadProvider.js";
2
+ import { joinPath as t } from "./utils/navigation.js";
3
+ import { GGNomadRoutes as n } from "./GGNomadRoutes.js";
4
4
  import { useEffect as r } from "react";
5
- import { Activity as i, BarChart3 as a, Building as o, CalendarCheck as s, Compass as c, LayoutDashboard as l, MapPinned as u, Search as d, Star as f, Tickets as p } from "lucide-react";
6
- import { useI18n as m } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
- import { jsx as h } from "react/jsx-runtime";
8
- import { FeatureFlagProvider as g } from "@burdenoff/fe-libs/shared/feature-flags";
5
+ import { Activity as i, BarChart3 as a, Building as o, CalendarCheck as s, Compass as c, LayoutDashboard as l, Map as u, MapPinned as d, Search as f, Star as p, Tickets as m } from "lucide-react";
6
+ import { useI18n as h } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
+ import { jsx as g } from "react/jsx-runtime";
8
+ import { FeatureFlagProvider as _ } from "@burdenoff/fe-libs/shared/feature-flags";
9
9
  //#region src/ggnomad/GGNomadRoot.tsx
10
- var _ = (_) => {
11
- let { registerNavItems: v, registerFooterItems: y, basePath: b = "/" } = _, { t: x } = m();
10
+ var v = (v) => {
11
+ let { registerNavItems: y, registerFooterItems: b, basePath: x = "/" } = v, { t: S } = h();
12
12
  return r(() => {
13
- if (v) return v({
13
+ if (y) return y({
14
14
  id: "ggnomad",
15
- label: x("ggnomad.nav.root", "GGNomad"),
16
- path: b,
17
- icon: /* @__PURE__ */ h(l, { size: 18 }),
15
+ label: S("ggnomad.nav.root", "GGNomad"),
16
+ path: x,
17
+ icon: /* @__PURE__ */ g(l, { size: 18 }),
18
18
  order: 80,
19
19
  group: "products",
20
20
  children: [
21
21
  {
22
22
  id: "ggnomad-dashboard",
23
- label: x("ggnomad.nav.dashboard", "Dashboard"),
24
- path: b,
25
- icon: /* @__PURE__ */ h(l, { size: 16 }),
23
+ label: S("ggnomad.nav.dashboard", "Dashboard"),
24
+ path: x,
25
+ icon: /* @__PURE__ */ g(l, { size: 16 }),
26
26
  order: 0
27
27
  },
28
28
  {
29
29
  id: "ggnomad-search",
30
- label: x("ggnomad.nav.search", "Search"),
31
- path: n(b, "search"),
32
- icon: /* @__PURE__ */ h(d, { size: 16 }),
30
+ label: S("ggnomad.nav.search", "Search"),
31
+ path: t(x, "search"),
32
+ icon: /* @__PURE__ */ g(f, { size: 16 }),
33
33
  order: 5
34
34
  },
35
35
  {
36
36
  id: "ggnomad-travel",
37
- label: x("ggnomad.nav.travel", "Travel"),
38
- path: n(b, "travel"),
39
- icon: /* @__PURE__ */ h(c, { size: 16 }),
37
+ label: S("ggnomad.nav.travel", "Travel"),
38
+ path: t(x, "travel"),
39
+ icon: /* @__PURE__ */ g(c, { size: 16 }),
40
40
  order: 10
41
41
  },
42
42
  {
43
43
  id: "ggnomad-hospitality",
44
- label: x("ggnomad.nav.hospitality", "Hospitality"),
45
- path: n(b, "hospitality"),
46
- icon: /* @__PURE__ */ h(o, { size: 16 }),
44
+ label: S("ggnomad.nav.hospitality", "Hospitality"),
45
+ path: t(x, "hospitality"),
46
+ icon: /* @__PURE__ */ g(o, { size: 16 }),
47
47
  order: 20
48
48
  },
49
49
  {
50
50
  id: "ggnomad-tourism",
51
- label: x("ggnomad.nav.tourism", "Tourism"),
52
- path: n(b, "tourism"),
53
- icon: /* @__PURE__ */ h(u, { size: 16 }),
51
+ label: S("ggnomad.nav.tourism", "Tourism"),
52
+ path: t(x, "tourism"),
53
+ icon: /* @__PURE__ */ g(d, { size: 16 }),
54
54
  order: 30
55
55
  },
56
56
  {
57
57
  id: "ggnomad-entertainment",
58
- label: x("ggnomad.nav.entertainment", "Entertainment"),
59
- path: n(b, "entertainment"),
60
- icon: /* @__PURE__ */ h(i, { size: 16 }),
58
+ label: S("ggnomad.nav.entertainment", "Entertainment"),
59
+ path: t(x, "entertainment"),
60
+ icon: /* @__PURE__ */ g(i, { size: 16 }),
61
61
  order: 40
62
62
  },
63
+ {
64
+ id: "ggnomad-trips",
65
+ label: S("ggnomad.nav.trips", "Trips"),
66
+ path: t(x, "trips"),
67
+ icon: /* @__PURE__ */ g(u, { size: 16 }),
68
+ order: 45
69
+ },
63
70
  {
64
71
  id: "ggnomad-bookings",
65
- label: x("ggnomad.nav.bookings", "Bookings"),
66
- path: n(b, "bookings"),
67
- icon: /* @__PURE__ */ h(s, { size: 16 }),
72
+ label: S("ggnomad.nav.bookings", "Bookings"),
73
+ path: t(x, "bookings"),
74
+ icon: /* @__PURE__ */ g(s, { size: 16 }),
68
75
  order: 50
69
76
  },
70
77
  {
71
78
  id: "ggnomad-favorites",
72
- label: x("ggnomad.nav.favorites", "Favorites"),
73
- path: n(b, "favorites"),
74
- icon: /* @__PURE__ */ h(f, { size: 16 }),
79
+ label: S("ggnomad.nav.favorites", "Favorites"),
80
+ path: t(x, "favorites"),
81
+ icon: /* @__PURE__ */ g(p, { size: 16 }),
75
82
  order: 60
76
83
  },
77
84
  {
78
85
  id: "ggnomad-provider",
79
- label: x("ggnomad.nav.providers", "Providers"),
80
- path: n(b, "provider"),
81
- icon: /* @__PURE__ */ h(p, { size: 16 }),
86
+ label: S("ggnomad.nav.providers", "Providers"),
87
+ path: t(x, "provider"),
88
+ icon: /* @__PURE__ */ g(m, { size: 16 }),
82
89
  order: 70
83
90
  },
84
91
  {
85
92
  id: "ggnomad-analytics",
86
- label: x("ggnomad.nav.analytics", "Analytics"),
87
- path: n(b, "analytics"),
88
- icon: /* @__PURE__ */ h(a, { size: 16 }),
93
+ label: S("ggnomad.nav.analytics", "Analytics"),
94
+ path: t(x, "analytics"),
95
+ icon: /* @__PURE__ */ g(a, { size: 16 }),
89
96
  order: 80
90
97
  }
91
98
  ]
92
99
  });
93
100
  }, [
94
- v,
95
- b,
96
- x
101
+ y,
102
+ x,
103
+ S
97
104
  ]), r(() => {
98
- if (y) return y([{
105
+ if (b) return b([{
99
106
  id: "ggnomad-ready",
100
- label: x("ggnomad.footer.ready", "GGNomad Ready"),
107
+ label: S("ggnomad.footer.ready", "GGNomad Ready"),
101
108
  type: "status",
102
109
  section: "left",
103
110
  order: 10
104
111
  }]);
105
- }, [y, x]), /* @__PURE__ */ h(g, {
112
+ }, [b, S]), /* @__PURE__ */ g(_, {
106
113
  workspaceId: null,
107
114
  gateway: "global",
108
115
  defaultEnabled: !0,
109
- children: /* @__PURE__ */ h(t, {
110
- ..._,
111
- children: /* @__PURE__ */ h(e, {})
116
+ children: /* @__PURE__ */ g(e, {
117
+ ...v,
118
+ children: /* @__PURE__ */ g(n, {})
112
119
  })
113
120
  });
114
121
  };
115
122
  //#endregion
116
- export { _ as GGNomadRoot };
123
+ export { v as GGNomadRoot };
117
124
 
118
125
  //# sourceMappingURL=GGNomadRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GGNomadRoot.js","names":[],"sources":["../../src/ggnomad/GGNomadRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport {\n Activity,\n BarChart3,\n Building,\n CalendarCheck,\n Compass,\n LayoutDashboard,\n MapPinned,\n Search,\n Star,\n Tickets,\n} from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport { GGNomadRoutes } from './GGNomadRoutes';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { GGNomadProvider } from './providers/GGNomadProvider';\nimport type { GGNomadRootProps, NavItem } from './types';\nimport { joinPath } from './utils/navigation';\n\nexport const GGNomadRoot: FC<GGNomadRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t } = useI18n();\n\n useEffect(() => {\n if (!registerNavItems) {\n return;\n }\n\n const navItem: NavItem = {\n id: 'ggnomad',\n label: t('ggnomad.nav.root', 'GGNomad'),\n path: basePath,\n icon: <LayoutDashboard size={18} />,\n order: 80,\n group: 'products',\n children: [\n {\n id: 'ggnomad-dashboard',\n label: t('ggnomad.nav.dashboard', 'Dashboard'),\n path: basePath,\n icon: <LayoutDashboard size={16} />,\n order: 0,\n },\n {\n id: 'ggnomad-search',\n label: t('ggnomad.nav.search', 'Search'),\n path: joinPath(basePath, 'search'),\n icon: <Search size={16} />,\n order: 5,\n },\n {\n id: 'ggnomad-travel',\n label: t('ggnomad.nav.travel', 'Travel'),\n path: joinPath(basePath, 'travel'),\n icon: <Compass size={16} />,\n order: 10,\n },\n {\n id: 'ggnomad-hospitality',\n label: t('ggnomad.nav.hospitality', 'Hospitality'),\n path: joinPath(basePath, 'hospitality'),\n icon: <Building size={16} />,\n order: 20,\n },\n {\n id: 'ggnomad-tourism',\n label: t('ggnomad.nav.tourism', 'Tourism'),\n path: joinPath(basePath, 'tourism'),\n icon: <MapPinned size={16} />,\n order: 30,\n },\n {\n id: 'ggnomad-entertainment',\n label: t('ggnomad.nav.entertainment', 'Entertainment'),\n path: joinPath(basePath, 'entertainment'),\n icon: <Activity size={16} />,\n order: 40,\n },\n {\n id: 'ggnomad-bookings',\n label: t('ggnomad.nav.bookings', 'Bookings'),\n path: joinPath(basePath, 'bookings'),\n icon: <CalendarCheck size={16} />,\n order: 50,\n },\n {\n id: 'ggnomad-favorites',\n label: t('ggnomad.nav.favorites', 'Favorites'),\n path: joinPath(basePath, 'favorites'),\n icon: <Star size={16} />,\n order: 60,\n },\n {\n id: 'ggnomad-provider',\n label: t('ggnomad.nav.providers', 'Providers'),\n path: joinPath(basePath, 'provider'),\n icon: <Tickets size={16} />,\n order: 70,\n },\n {\n id: 'ggnomad-analytics',\n label: t('ggnomad.nav.analytics', 'Analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart3 size={16} />,\n order: 80,\n },\n ],\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, t]);\n\n useEffect(() => {\n if (!registerFooterItems) {\n return;\n }\n return registerFooterItems([\n {\n id: 'ggnomad-ready',\n label: t('ggnomad.footer.ready', 'GGNomad Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <GGNomadProvider {...props}>\n <GGNomadRoutes />\n </GGNomadProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":";;;;;;;;;AAsBA,IAAa,KAAqC,MAAU;CAC1D,IAAM,EAAE,qBAAkB,wBAAqB,cAAW,QAAQ,GAC5D,EAAE,SAAM,GAAS;AA0GvB,QAxGA,QAAgB;AACT,QAqFL,QAAO,EAjFkB;GACvB,IAAI;GACJ,OAAO,EAAE,oBAAoB,UAAU;GACvC,MAAM;GACN,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;GACnC,OAAO;GACP,OAAO;GACP,UAAU;IACR;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM;KACN,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;KACnC,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,sBAAsB,SAAS;KACxC,MAAM,EAAS,GAAU,SAAS;KAClC,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;KAC1B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,sBAAsB,SAAS;KACxC,MAAM,EAAS,GAAU,SAAS;KAClC,MAAM,kBAAC,GAAD,EAAS,MAAM,IAAM,CAAA;KAC3B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,2BAA2B,cAAc;KAClD,MAAM,EAAS,GAAU,cAAc;KACvC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC5B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,uBAAuB,UAAU;KAC1C,MAAM,EAAS,GAAU,UAAU;KACnC,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;KAC7B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,6BAA6B,gBAAgB;KACtD,MAAM,EAAS,GAAU,gBAAgB;KACzC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC5B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,wBAAwB,WAAW;KAC5C,MAAM,EAAS,GAAU,WAAW;KACpC,MAAM,kBAAC,GAAD,EAAe,MAAM,IAAM,CAAA;KACjC,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM,EAAS,GAAU,YAAY;KACrC,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;KACxB,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM,EAAS,GAAU,WAAW;KACpC,MAAM,kBAAC,GAAD,EAAS,MAAM,IAAM,CAAA;KAC3B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM,EAAS,GAAU,YAAY;KACrC,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;KAC7B,OAAO;KACR;IACF;GACF,CAE+B;IAC/B;EAAC;EAAkB;EAAU;EAAE,CAAC,EAEnC,QAAgB;AACT,QAGL,QAAO,EAAoB,CACzB;GACE,IAAI;GACJ,OAAO,EAAE,wBAAwB,gBAAgB;GACjD,MAAM;GACN,SAAS;GACT,OAAO;GACR,CACF,CAAC;IACD,CAAC,GAAqB,EAAE,CAAC,EAG1B,kBAAC,GAAD;EAAqB,aAAa;EAAM,SAAQ;EAAS,gBAAgB;YACvE,kBAAC,GAAD;GAAiB,GAAI;aACnB,kBAAC,GAAD,EAAiB,CAAA;GACD,CAAA;EACE,CAAA"}
1
+ {"version":3,"file":"GGNomadRoot.js","names":[],"sources":["../../src/ggnomad/GGNomadRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport {\n Activity,\n BarChart3,\n Building,\n CalendarCheck,\n Compass,\n LayoutDashboard,\n MapPinned,\n Map,\n Search,\n Star,\n Tickets,\n} from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport { GGNomadRoutes } from './GGNomadRoutes';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { GGNomadProvider } from './providers/GGNomadProvider';\nimport type { GGNomadRootProps, NavItem } from './types';\nimport { joinPath } from './utils/navigation';\n\nexport const GGNomadRoot: FC<GGNomadRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t } = useI18n();\n\n useEffect(() => {\n if (!registerNavItems) {\n return;\n }\n\n const navItem: NavItem = {\n id: 'ggnomad',\n label: t('ggnomad.nav.root', 'GGNomad'),\n path: basePath,\n icon: <LayoutDashboard size={18} />,\n order: 80,\n group: 'products',\n children: [\n {\n id: 'ggnomad-dashboard',\n label: t('ggnomad.nav.dashboard', 'Dashboard'),\n path: basePath,\n icon: <LayoutDashboard size={16} />,\n order: 0,\n },\n {\n id: 'ggnomad-search',\n label: t('ggnomad.nav.search', 'Search'),\n path: joinPath(basePath, 'search'),\n icon: <Search size={16} />,\n order: 5,\n },\n {\n id: 'ggnomad-travel',\n label: t('ggnomad.nav.travel', 'Travel'),\n path: joinPath(basePath, 'travel'),\n icon: <Compass size={16} />,\n order: 10,\n },\n {\n id: 'ggnomad-hospitality',\n label: t('ggnomad.nav.hospitality', 'Hospitality'),\n path: joinPath(basePath, 'hospitality'),\n icon: <Building size={16} />,\n order: 20,\n },\n {\n id: 'ggnomad-tourism',\n label: t('ggnomad.nav.tourism', 'Tourism'),\n path: joinPath(basePath, 'tourism'),\n icon: <MapPinned size={16} />,\n order: 30,\n },\n {\n id: 'ggnomad-entertainment',\n label: t('ggnomad.nav.entertainment', 'Entertainment'),\n path: joinPath(basePath, 'entertainment'),\n icon: <Activity size={16} />,\n order: 40,\n },\n {\n id: 'ggnomad-trips',\n label: t('ggnomad.nav.trips', 'Trips'),\n path: joinPath(basePath, 'trips'),\n icon: <Map size={16} />,\n order: 45,\n },\n {\n id: 'ggnomad-bookings',\n label: t('ggnomad.nav.bookings', 'Bookings'),\n path: joinPath(basePath, 'bookings'),\n icon: <CalendarCheck size={16} />,\n order: 50,\n },\n {\n id: 'ggnomad-favorites',\n label: t('ggnomad.nav.favorites', 'Favorites'),\n path: joinPath(basePath, 'favorites'),\n icon: <Star size={16} />,\n order: 60,\n },\n {\n id: 'ggnomad-provider',\n label: t('ggnomad.nav.providers', 'Providers'),\n path: joinPath(basePath, 'provider'),\n icon: <Tickets size={16} />,\n order: 70,\n },\n {\n id: 'ggnomad-analytics',\n label: t('ggnomad.nav.analytics', 'Analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart3 size={16} />,\n order: 80,\n },\n ],\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, t]);\n\n useEffect(() => {\n if (!registerFooterItems) {\n return;\n }\n return registerFooterItems([\n {\n id: 'ggnomad-ready',\n label: t('ggnomad.footer.ready', 'GGNomad Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <GGNomadProvider {...props}>\n <GGNomadRoutes />\n </GGNomadProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":";;;;;;;;;AAuBA,IAAa,KAAqC,MAAU;CAC1D,IAAM,EAAE,qBAAkB,wBAAqB,cAAW,QAAQ,GAC5D,EAAE,SAAM,GAAS;AAiHvB,QA/GA,QAAgB;AACT,QA4FL,QAAO,EAxFkB;GACvB,IAAI;GACJ,OAAO,EAAE,oBAAoB,UAAU;GACvC,MAAM;GACN,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;GACnC,OAAO;GACP,OAAO;GACP,UAAU;IACR;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM;KACN,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;KACnC,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,sBAAsB,SAAS;KACxC,MAAM,EAAS,GAAU,SAAS;KAClC,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;KAC1B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,sBAAsB,SAAS;KACxC,MAAM,EAAS,GAAU,SAAS;KAClC,MAAM,kBAAC,GAAD,EAAS,MAAM,IAAM,CAAA;KAC3B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,2BAA2B,cAAc;KAClD,MAAM,EAAS,GAAU,cAAc;KACvC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC5B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,uBAAuB,UAAU;KAC1C,MAAM,EAAS,GAAU,UAAU;KACnC,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;KAC7B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,6BAA6B,gBAAgB;KACtD,MAAM,EAAS,GAAU,gBAAgB;KACzC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC5B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,qBAAqB,QAAQ;KACtC,MAAM,EAAS,GAAU,QAAQ;KACjC,MAAM,kBAAC,GAAD,EAAK,MAAM,IAAM,CAAA;KACvB,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,wBAAwB,WAAW;KAC5C,MAAM,EAAS,GAAU,WAAW;KACpC,MAAM,kBAAC,GAAD,EAAe,MAAM,IAAM,CAAA;KACjC,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM,EAAS,GAAU,YAAY;KACrC,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;KACxB,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM,EAAS,GAAU,WAAW;KACpC,MAAM,kBAAC,GAAD,EAAS,MAAM,IAAM,CAAA;KAC3B,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAE,yBAAyB,YAAY;KAC9C,MAAM,EAAS,GAAU,YAAY;KACrC,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;KAC7B,OAAO;KACR;IACF;GACF,CAE+B;IAC/B;EAAC;EAAkB;EAAU;EAAE,CAAC,EAEnC,QAAgB;AACT,QAGL,QAAO,EAAoB,CACzB;GACE,IAAI;GACJ,OAAO,EAAE,wBAAwB,gBAAgB;GACjD,MAAM;GACN,SAAS;GACT,OAAO;GACR,CACF,CAAC;IACD,CAAC,GAAqB,EAAE,CAAC,EAG1B,kBAAC,GAAD;EAAqB,aAAa;EAAM,SAAQ;EAAS,gBAAgB;YACvE,kBAAC,GAAD;GAAiB,GAAI;aACnB,kBAAC,GAAD,EAAiB,CAAA;GACD,CAAA;EACE,CAAA"}
@@ -4,16 +4,16 @@ import { Loader2 as r } from "lucide-react";
4
4
  import { Navigate as i, Route as a, Routes as o } from "react-router-dom";
5
5
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
6
  //#region src/ggnomad/GGNomadRoutes.tsx
7
- var l = n(() => import("./pages/SearchPage.js").then((e) => ({ default: e.SearchPage }))), u = n(() => import("./pages/TravelPage.js").then((e) => ({ default: e.TravelPage }))), d = n(() => import("./pages/HospitalityPage.js").then((e) => ({ default: e.HospitalityPage }))), f = n(() => import("./pages/PropertyDetailsPage.js").then((e) => ({ default: e.PropertyDetailsPage }))), p = n(() => import("./pages/TourismPage.js").then((e) => ({ default: e.TourismPage }))), m = n(() => import("./pages/TourDetailsPage.js").then((e) => ({ default: e.TourDetailsPage }))), h = n(() => import("./pages/ActivityDetailsPage.js").then((e) => ({ default: e.ActivityDetailsPage }))), g = n(() => import("./pages/EntertainmentPage.js").then((e) => ({ default: e.EntertainmentPage }))), _ = n(() => import("./pages/EventDetailsPage.js").then((e) => ({ default: e.EventDetailsPage }))), v = n(() => import("./pages/BookingsPage.js").then((e) => ({ default: e.BookingsPage }))), y = n(() => import("./pages/FavoritesPage.js").then((e) => ({ default: e.FavoritesPage }))), b = n(() => import("./pages/ProviderPage.js").then((e) => ({ default: e.ProviderPage }))), x = n(() => import("./pages/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage })));
8
- function S() {
7
+ var l = n(() => import("./pages/SearchPage.js").then((e) => ({ default: e.SearchPage }))), u = n(() => import("./pages/TravelPage.js").then((e) => ({ default: e.TravelPage }))), d = n(() => import("./pages/HospitalityPage.js").then((e) => ({ default: e.HospitalityPage }))), f = n(() => import("./pages/PropertyDetailsPage.js").then((e) => ({ default: e.PropertyDetailsPage }))), p = n(() => import("./pages/TourismPage.js").then((e) => ({ default: e.TourismPage }))), m = n(() => import("./pages/TourDetailsPage.js").then((e) => ({ default: e.TourDetailsPage }))), h = n(() => import("./pages/ActivityDetailsPage.js").then((e) => ({ default: e.ActivityDetailsPage }))), g = n(() => import("./pages/EntertainmentPage.js").then((e) => ({ default: e.EntertainmentPage }))), _ = n(() => import("./pages/EventDetailsPage.js").then((e) => ({ default: e.EventDetailsPage }))), v = n(() => import("./pages/BookingsPage.js").then((e) => ({ default: e.BookingsPage }))), y = n(() => import("./pages/FavoritesPage.js").then((e) => ({ default: e.FavoritesPage }))), b = n(() => import("./pages/ProviderPage.js").then((e) => ({ default: e.ProviderPage }))), x = n(() => import("./pages/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), S = n(() => import("./pages/TripsPage.js").then((e) => ({ default: e.TripsPage }))), C = n(() => import("./pages/TripPlanDetailPage.js").then((e) => ({ default: e.TripPlanDetailPage })));
8
+ function w() {
9
9
  return /* @__PURE__ */ s("div", {
10
10
  className: "flex min-h-[320px] items-center justify-center",
11
11
  children: /* @__PURE__ */ s(r, { className: "h-8 w-8 animate-spin text-primary" })
12
12
  });
13
13
  }
14
- function C() {
14
+ function T() {
15
15
  return /* @__PURE__ */ s(t, {
16
- fallback: /* @__PURE__ */ s(S, {}),
16
+ fallback: /* @__PURE__ */ s(w, {}),
17
17
  children: /* @__PURE__ */ c(o, { children: [
18
18
  /* @__PURE__ */ s(a, {
19
19
  index: !0,
@@ -71,6 +71,14 @@ function C() {
71
71
  path: "analytics",
72
72
  element: /* @__PURE__ */ s(x, {})
73
73
  }),
74
+ /* @__PURE__ */ s(a, {
75
+ path: "trips",
76
+ element: /* @__PURE__ */ s(S, {})
77
+ }),
78
+ /* @__PURE__ */ s(a, {
79
+ path: "trips/:id",
80
+ element: /* @__PURE__ */ s(C, {})
81
+ }),
74
82
  /* @__PURE__ */ s(a, {
75
83
  path: "*",
76
84
  element: /* @__PURE__ */ s(i, {
@@ -82,6 +90,6 @@ function C() {
82
90
  });
83
91
  }
84
92
  //#endregion
85
- export { C as GGNomadRoutes };
93
+ export { T as GGNomadRoutes };
86
94
 
87
95
  //# sourceMappingURL=GGNomadRoutes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GGNomadRoutes.js","names":[],"sources":["../../src/ggnomad/GGNomadRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { Navigate, Route, Routes } from 'react-router-dom';\n\nimport { DashboardPage } from './pages/DashboardPage';\n\nconst SearchPage = lazy(() =>\n import('./pages/SearchPage').then((m) => ({ default: m.SearchPage }))\n);\nconst TravelPage = lazy(() =>\n import('./pages/TravelPage').then((m) => ({ default: m.TravelPage }))\n);\nconst HospitalityPage = lazy(() =>\n import('./pages/HospitalityPage').then((m) => ({ default: m.HospitalityPage }))\n);\nconst PropertyDetailsPage = lazy(() =>\n import('./pages/PropertyDetailsPage').then((m) => ({ default: m.PropertyDetailsPage }))\n);\nconst TourismPage = lazy(() =>\n import('./pages/TourismPage').then((m) => ({ default: m.TourismPage }))\n);\nconst TourDetailsPage = lazy(() =>\n import('./pages/TourDetailsPage').then((m) => ({ default: m.TourDetailsPage }))\n);\nconst ActivityDetailsPage = lazy(() =>\n import('./pages/ActivityDetailsPage').then((m) => ({ default: m.ActivityDetailsPage }))\n);\nconst EntertainmentPage = lazy(() =>\n import('./pages/EntertainmentPage').then((m) => ({ default: m.EntertainmentPage }))\n);\nconst EventDetailsPage = lazy(() =>\n import('./pages/EventDetailsPage').then((m) => ({ default: m.EventDetailsPage }))\n);\nconst BookingsPage = lazy(() =>\n import('./pages/BookingsPage').then((m) => ({ default: m.BookingsPage }))\n);\nconst FavoritesPage = lazy(() =>\n import('./pages/FavoritesPage').then((m) => ({ default: m.FavoritesPage }))\n);\nconst ProviderPage = lazy(() =>\n import('./pages/ProviderPage').then((m) => ({ default: m.ProviderPage }))\n);\nconst AnalyticsPage = lazy(() =>\n import('./pages/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function GGNomadRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardPage />} />\n <Route path=\"search\" element={<SearchPage />} />\n <Route path=\"travel\" element={<TravelPage />} />\n <Route path=\"hospitality\" element={<HospitalityPage />} />\n <Route path=\"hospitality/:id\" element={<PropertyDetailsPage />} />\n <Route path=\"tourism\" element={<TourismPage />} />\n <Route path=\"tourism/tours/:id\" element={<TourDetailsPage />} />\n <Route path=\"tourism/activities/:id\" element={<ActivityDetailsPage />} />\n <Route path=\"entertainment\" element={<EntertainmentPage />} />\n <Route path=\"entertainment/:id\" element={<EventDetailsPage />} />\n <Route path=\"bookings\" element={<BookingsPage />} />\n <Route path=\"favorites\" element={<FavoritesPage />} />\n <Route path=\"provider\" element={<ProviderPage />} />\n <Route path=\"analytics\" element={<AnalyticsPage />} />\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"GGNomadRoutes.js","names":[],"sources":["../../src/ggnomad/GGNomadRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { Navigate, Route, Routes } from 'react-router-dom';\n\nimport { DashboardPage } from './pages/DashboardPage';\n\nconst SearchPage = lazy(() =>\n import('./pages/SearchPage').then((m) => ({ default: m.SearchPage }))\n);\nconst TravelPage = lazy(() =>\n import('./pages/TravelPage').then((m) => ({ default: m.TravelPage }))\n);\nconst HospitalityPage = lazy(() =>\n import('./pages/HospitalityPage').then((m) => ({ default: m.HospitalityPage }))\n);\nconst PropertyDetailsPage = lazy(() =>\n import('./pages/PropertyDetailsPage').then((m) => ({ default: m.PropertyDetailsPage }))\n);\nconst TourismPage = lazy(() =>\n import('./pages/TourismPage').then((m) => ({ default: m.TourismPage }))\n);\nconst TourDetailsPage = lazy(() =>\n import('./pages/TourDetailsPage').then((m) => ({ default: m.TourDetailsPage }))\n);\nconst ActivityDetailsPage = lazy(() =>\n import('./pages/ActivityDetailsPage').then((m) => ({ default: m.ActivityDetailsPage }))\n);\nconst EntertainmentPage = lazy(() =>\n import('./pages/EntertainmentPage').then((m) => ({ default: m.EntertainmentPage }))\n);\nconst EventDetailsPage = lazy(() =>\n import('./pages/EventDetailsPage').then((m) => ({ default: m.EventDetailsPage }))\n);\nconst BookingsPage = lazy(() =>\n import('./pages/BookingsPage').then((m) => ({ default: m.BookingsPage }))\n);\nconst FavoritesPage = lazy(() =>\n import('./pages/FavoritesPage').then((m) => ({ default: m.FavoritesPage }))\n);\nconst ProviderPage = lazy(() =>\n import('./pages/ProviderPage').then((m) => ({ default: m.ProviderPage }))\n);\nconst AnalyticsPage = lazy(() =>\n import('./pages/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst TripsPage = lazy(() =>\n import('./pages/TripsPage').then((m) => ({ default: m.TripsPage }))\n);\nconst TripPlanDetailPage = lazy(() =>\n import('./pages/TripPlanDetailPage').then((m) => ({ default: m.TripPlanDetailPage }))\n);\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function GGNomadRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardPage />} />\n <Route path=\"search\" element={<SearchPage />} />\n <Route path=\"travel\" element={<TravelPage />} />\n <Route path=\"hospitality\" element={<HospitalityPage />} />\n <Route path=\"hospitality/:id\" element={<PropertyDetailsPage />} />\n <Route path=\"tourism\" element={<TourismPage />} />\n <Route path=\"tourism/tours/:id\" element={<TourDetailsPage />} />\n <Route path=\"tourism/activities/:id\" element={<ActivityDetailsPage />} />\n <Route path=\"entertainment\" element={<EntertainmentPage />} />\n <Route path=\"entertainment/:id\" element={<EventDetailsPage />} />\n <Route path=\"bookings\" element={<BookingsPage />} />\n <Route path=\"favorites\" element={<FavoritesPage />} />\n <Route path=\"provider\" element={<ProviderPage />} />\n <Route path=\"analytics\" element={<AnalyticsPage />} />\n <Route path=\"trips\" element={<TripsPage />} />\n <Route path=\"trips/:id\" element={<TripPlanDetailPage />} />\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ import { CREATE_GGNOMAD_BOOKING_MUTATION as e } from "../graphql.js";
2
+ import { cn as t } from "../utils/cn.js";
3
+ import { useGGNomad as n } from "../providers/GGNomadProvider.js";
4
+ import { joinPath as r } from "../utils/navigation.js";
5
+ import { notify as i } from "../utils/notify.js";
6
+ import { useState as a } from "react";
7
+ import { Minus as o, Plus as s } from "lucide-react";
8
+ import { useI18n as c } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
9
+ import { useNavigate as l } from "react-router-dom";
10
+ import { useMutation as u } from "@apollo/client/react";
11
+ import { Button as d, GlassCard as f, Input as p } from "@burdenoff/fe-libs/ui";
12
+ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
13
+ //#region src/ggnomad/components/BookingPanel.tsx
14
+ function _({ bookingType: _, itemId: v, itemName: y, unitPrice: b, currency: x, nights: S, eventDate: C }) {
15
+ let { t: w } = c(), T = l(), { basePath: E = "/" } = n(), [D, O] = a(""), [k, A] = a(""), [j, M] = a(""), [N, P] = a(1), [F, { loading: I }] = u(e), L = b * (_ === "PROPERTY" && S ? S : N), R = L * .1, z = L + R, B = async () => {
16
+ if (_ === "PROPERTY") {
17
+ if (!k || !j) {
18
+ i.warning(w("ggnomad.booking.validation.missingDates", "Missing dates"), w("ggnomad.booking.validation.propertyDatesRequired", "Please select both check-in and check-out dates."));
19
+ return;
20
+ }
21
+ } else if (_ === "EVENT") {
22
+ if (!C) {
23
+ i.warning(w("ggnomad.booking.validation.missingDate", "Missing date"), w("ggnomad.booking.validation.eventDateRequired", "Event date is required for booking."));
24
+ return;
25
+ }
26
+ } else if (!D) {
27
+ i.warning(w("ggnomad.booking.validation.missingDate", "Missing date"), w("ggnomad.booking.validation.dateRequired", "Please select a date for your booking."));
28
+ return;
29
+ }
30
+ try {
31
+ let e = {
32
+ bookingType: _,
33
+ itemId: v,
34
+ itemName: y,
35
+ guestName: w("ggnomad.booking.defaultGuestName", "Demo Guest"),
36
+ guestEmail: "demo@burdenoff.com",
37
+ guests: N,
38
+ totalPrice: Math.round(z * 100) / 100,
39
+ currency: x,
40
+ paymentMethod: "card"
41
+ }, t = await F({ variables: { input: _ === "PROPERTY" ? {
42
+ ...e,
43
+ checkIn: k,
44
+ checkOut: j
45
+ } : _ === "EVENT" ? {
46
+ ...e,
47
+ eventDate: C
48
+ } : {
49
+ ...e,
50
+ eventDate: D
51
+ } } });
52
+ if (t.error) {
53
+ i.error(w("ggnomad.booking.toast.createErrorTitle", "Could not create booking"), t.error.message);
54
+ return;
55
+ }
56
+ let n = t.data?.createGgnomadBooking;
57
+ i.success(w("ggnomad.booking.toast.createSuccessTitle", "Booking confirmed"), n ? w("ggnomad.booking.toast.createSuccessBody", "{{ref}} · {{item}}").replace("{{ref}}", n.referenceCode).replace("{{item}}", n.itemName) : y), T(r(E, "bookings"));
58
+ } catch (e) {
59
+ i.error(w("ggnomad.booking.toast.createErrorTitle", "Could not create booking"), e instanceof Error ? e.message : String(e));
60
+ }
61
+ }, V = "text-sm font-medium text-text-primary", H = "w-full";
62
+ return /* @__PURE__ */ g(f, {
63
+ treatment: "glass",
64
+ glow: !0,
65
+ className: "border-border-seam p-5 sticky top-6",
66
+ children: [
67
+ /* @__PURE__ */ h("h2", {
68
+ className: "mb-4 text-lg font-medium tracking-tight text-text-primary",
69
+ children: _ === "PROPERTY" ? w("ggnomad.booking.title.property", "Book this stay") : _ === "EVENT" ? w("ggnomad.booking.title.event", "Book tickets") : _ === "TOUR" ? w("ggnomad.booking.title.tour", "Book this tour") : w("ggnomad.booking.title.activity", "Book this activity")
70
+ }),
71
+ /* @__PURE__ */ g("div", {
72
+ className: "space-y-4 mb-6",
73
+ children: [_ === "PROPERTY" ? /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
74
+ htmlFor: "check-in",
75
+ className: V,
76
+ children: w("ggnomad.booking.checkIn", "Check-in")
77
+ }), /* @__PURE__ */ h(p, {
78
+ id: "check-in",
79
+ type: "date",
80
+ value: k,
81
+ onChange: (e) => A(e.target.value),
82
+ className: t(H, "mt-2"),
83
+ "aria-label": w("ggnomad.booking.checkIn", "Check-in")
84
+ })] }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
85
+ htmlFor: "check-out",
86
+ className: V,
87
+ children: w("ggnomad.booking.checkOut", "Check-out")
88
+ }), /* @__PURE__ */ h(p, {
89
+ id: "check-out",
90
+ type: "date",
91
+ value: j,
92
+ onChange: (e) => M(e.target.value),
93
+ className: t(H, "mt-2"),
94
+ "aria-label": w("ggnomad.booking.checkOut", "Check-out")
95
+ })] })] }) : _ === "EVENT" ? /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
96
+ htmlFor: "event-date",
97
+ className: V,
98
+ children: w("ggnomad.booking.date", "Date")
99
+ }), /* @__PURE__ */ h(p, {
100
+ id: "event-date",
101
+ type: "date",
102
+ value: C ? C.split("T")[0] : "",
103
+ disabled: !0,
104
+ className: t(H, "mt-2"),
105
+ "aria-label": w("ggnomad.booking.date", "Date")
106
+ })] }) : /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
107
+ htmlFor: "booking-date",
108
+ className: V,
109
+ children: w("ggnomad.booking.date", "Date")
110
+ }), /* @__PURE__ */ h(p, {
111
+ id: "booking-date",
112
+ type: "date",
113
+ value: D,
114
+ onChange: (e) => O(e.target.value),
115
+ className: t(H, "mt-2"),
116
+ "aria-label": w("ggnomad.booking.date", "Date")
117
+ })] }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
118
+ className: V,
119
+ children: _ === "PROPERTY" ? w("ggnomad.booking.guests", "Guests") : _ === "EVENT" ? w("ggnomad.booking.tickets", "Tickets") : w("ggnomad.booking.participants", "Participants")
120
+ }), /* @__PURE__ */ g("div", {
121
+ className: "flex items-center gap-2 mt-2",
122
+ children: [
123
+ /* @__PURE__ */ h(d, {
124
+ variant: "outline",
125
+ size: "sm",
126
+ onClick: () => P(Math.max(1, N - 1)),
127
+ disabled: N <= 1 || I,
128
+ "aria-label": w("ggnomad.booking.decreaseQuantity", "Decrease quantity"),
129
+ className: "flex-shrink-0",
130
+ children: /* @__PURE__ */ h(o, { className: "size-4" })
131
+ }),
132
+ /* @__PURE__ */ h("input", {
133
+ type: "number",
134
+ min: 1,
135
+ value: N,
136
+ onChange: (e) => P(Math.max(1, parseInt(e.target.value) || 1)),
137
+ className: "flex-1 h-9 rounded-input border border-border-default bg-bg-surface px-3 py-1 text-center text-sm text-text-primary",
138
+ "aria-label": _ === "PROPERTY" ? w("ggnomad.booking.guests", "Guests") : _ === "EVENT" ? w("ggnomad.booking.tickets", "Tickets") : w("ggnomad.booking.participants", "Participants")
139
+ }),
140
+ /* @__PURE__ */ h(d, {
141
+ variant: "outline",
142
+ size: "sm",
143
+ onClick: () => P(N + 1),
144
+ disabled: I,
145
+ "aria-label": w("ggnomad.booking.increaseQuantity", "Increase quantity"),
146
+ className: "flex-shrink-0",
147
+ children: /* @__PURE__ */ h(s, { className: "size-4" })
148
+ })
149
+ ]
150
+ })] })]
151
+ }),
152
+ /* @__PURE__ */ g("div", {
153
+ className: "space-y-2 mb-6 p-3 rounded-md bg-bg-sunken",
154
+ children: [
155
+ /* @__PURE__ */ g("div", {
156
+ className: "flex justify-between text-sm",
157
+ children: [/* @__PURE__ */ g("span", {
158
+ className: "text-text-secondary",
159
+ children: [
160
+ x,
161
+ " ",
162
+ b.toFixed(2),
163
+ " ×",
164
+ " ",
165
+ _ === "PROPERTY" ? `${S ?? 1} ${w("ggnomad.booking.nights", "nights")}` : `${N} ${w("ggnomad.booking.item", "item")}`
166
+ ]
167
+ }), /* @__PURE__ */ g("span", {
168
+ className: "text-text-primary font-medium",
169
+ children: [
170
+ x,
171
+ " ",
172
+ L.toFixed(2)
173
+ ]
174
+ })]
175
+ }),
176
+ /* @__PURE__ */ g("div", {
177
+ className: "flex justify-between text-sm",
178
+ children: [/* @__PURE__ */ h("span", {
179
+ className: "text-text-secondary",
180
+ children: w("ggnomad.booking.tax", "Tax (10%)")
181
+ }), /* @__PURE__ */ g("span", {
182
+ className: "text-text-primary",
183
+ children: [
184
+ x,
185
+ " ",
186
+ R.toFixed(2)
187
+ ]
188
+ })]
189
+ }),
190
+ /* @__PURE__ */ g("div", {
191
+ className: "border-t border-border-seam pt-2 flex justify-between",
192
+ children: [/* @__PURE__ */ h("span", {
193
+ className: "font-semibold text-text-primary",
194
+ children: w("ggnomad.booking.total", "Total")
195
+ }), /* @__PURE__ */ g("span", {
196
+ className: "font-bold text-lg text-text-primary",
197
+ children: [
198
+ x,
199
+ " ",
200
+ z.toFixed(2)
201
+ ]
202
+ })]
203
+ })
204
+ ]
205
+ }),
206
+ /* @__PURE__ */ h(d, {
207
+ onClick: () => void B(),
208
+ disabled: I,
209
+ className: "w-full bg-gradient-to-r from-action-primary-bg to-action-success-bg text-white font-semibold",
210
+ size: "lg",
211
+ children: I ? w("ggnomad.booking.button.creating", "Creating booking…") : _ === "PROPERTY" ? w("ggnomad.booking.button.property", "Book this stay") : _ === "EVENT" ? w("ggnomad.booking.button.event", "Book tickets") : _ === "TOUR" ? w("ggnomad.booking.button.tour", "Book this tour") : w("ggnomad.booking.button.activity", "Book this activity")
212
+ })
213
+ ]
214
+ });
215
+ }
216
+ //#endregion
217
+ export { _ as BookingPanel };
218
+
219
+ //# sourceMappingURL=BookingPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BookingPanel.js","names":[],"sources":["../../../src/ggnomad/components/BookingPanel.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useMutation } from '@apollo/client/react';\nimport type { TypedDocumentNode } from '@apollo/client';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useNavigate } from 'react-router-dom';\nimport { Minus, Plus } from 'lucide-react';\nimport { Button, GlassCard, Input } from '@burdenoff/fe-libs/ui';\n\nimport { CREATE_GGNOMAD_BOOKING_MUTATION } from '../graphql';\nimport { useGGNomad } from '../providers/GGNomadProvider';\nimport { joinPath } from '../utils/navigation';\nimport { notify } from '../utils/notify';\nimport { cn } from '../utils/cn';\n\ntype BookingType = 'PROPERTY' | 'TOUR' | 'EVENT' | 'ACTIVITY';\n\ntype BookingPanelProps = {\n bookingType: BookingType;\n itemId: string;\n itemName: string;\n unitPrice: number;\n currency: string;\n /** For PROPERTY bookings, the number of nights to calculate price */\n nights?: number;\n /** For EVENT bookings, the event date (ISO string) */\n eventDate?: string;\n};\n\n/** Frosted glass booking panel with type-specific inputs and real createGgnomadBooking mutation. */\nexport function BookingPanel({\n bookingType,\n itemId,\n itemName,\n unitPrice,\n currency,\n nights,\n eventDate,\n}: BookingPanelProps) {\n const { t } = useI18n();\n const navigate = useNavigate();\n const { basePath = '/' } = useGGNomad();\n\n // For properties: check-in and check-out dates\n // For events/tours/activities: a single date\n const [selectedDate, setSelectedDate] = useState<string>('');\n const [checkInDate, setCheckInDate] = useState<string>('');\n const [checkOutDate, setCheckOutDate] = useState<string>('');\n\n // Quantity: guests (property), participants (tour/activity), tickets (event)\n const [quantity, setQuantity] = useState(1);\n\n type BookingInput = {\n bookingType: BookingType;\n itemId: string;\n itemName: string;\n guestName: string;\n guestEmail: string;\n guests: number;\n totalPrice: number;\n currency: string;\n paymentMethod: string;\n checkIn?: string;\n checkOut?: string;\n eventDate?: string;\n };\n\n const [createBooking, { loading: creating }] = useMutation(\n CREATE_GGNOMAD_BOOKING_MUTATION as TypedDocumentNode<\n { createGgnomadBooking: { id: string; referenceCode: string; itemName: string } },\n { input: BookingInput }\n >\n );\n\n // Calculate total: for properties, multiply by nights; for others, multiply by quantity\n const multiplier = bookingType === 'PROPERTY' && nights ? nights : quantity;\n const subtotal = unitPrice * multiplier;\n const taxAmount = subtotal * 0.1; // 10% tax\n const total = subtotal + taxAmount;\n\n const handleBooking = async () => {\n // Validate required fields\n if (bookingType === 'PROPERTY') {\n if (!checkInDate || !checkOutDate) {\n notify.warning(\n t('ggnomad.booking.validation.missingDates', 'Missing dates'),\n t(\n 'ggnomad.booking.validation.propertyDatesRequired',\n 'Please select both check-in and check-out dates.'\n )\n );\n return;\n }\n } else if (bookingType === 'EVENT') {\n if (!eventDate) {\n notify.warning(\n t('ggnomad.booking.validation.missingDate', 'Missing date'),\n t('ggnomad.booking.validation.eventDateRequired', 'Event date is required for booking.')\n );\n return;\n }\n } else {\n if (!selectedDate) {\n notify.warning(\n t('ggnomad.booking.validation.missingDate', 'Missing date'),\n t('ggnomad.booking.validation.dateRequired', 'Please select a date for your booking.')\n );\n return;\n }\n }\n\n try {\n const baseInput = {\n bookingType,\n itemId,\n itemName,\n guestName: t('ggnomad.booking.defaultGuestName', 'Demo Guest'),\n guestEmail: 'demo@burdenoff.com',\n guests: quantity,\n totalPrice: Math.round(total * 100) / 100,\n currency,\n paymentMethod: 'card',\n };\n\n const input: BookingInput =\n bookingType === 'PROPERTY'\n ? { ...baseInput, checkIn: checkInDate, checkOut: checkOutDate }\n : bookingType === 'EVENT'\n ? { ...baseInput, eventDate: eventDate }\n : { ...baseInput, eventDate: selectedDate };\n\n const result = await createBooking({\n variables: { input },\n });\n\n if (result.error) {\n notify.error(\n t('ggnomad.booking.toast.createErrorTitle', 'Could not create booking'),\n result.error.message\n );\n return;\n }\n\n const created = result.data?.createGgnomadBooking;\n notify.success(\n t('ggnomad.booking.toast.createSuccessTitle', 'Booking confirmed'),\n created\n ? t('ggnomad.booking.toast.createSuccessBody', '{{ref}} · {{item}}')\n .replace('{{ref}}', created.referenceCode)\n .replace('{{item}}', created.itemName)\n : itemName\n );\n\n // Navigate to bookings list\n navigate(joinPath(basePath, 'bookings'));\n } catch (err) {\n notify.error(\n t('ggnomad.booking.toast.createErrorTitle', 'Could not create booking'),\n err instanceof Error ? err.message : String(err)\n );\n }\n };\n\n const labelClass = 'text-sm font-medium text-text-primary';\n const inputClass = 'w-full';\n\n return (\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam p-5 sticky top-6\">\n <h2 className=\"mb-4 text-lg font-medium tracking-tight text-text-primary\">\n {bookingType === 'PROPERTY'\n ? t('ggnomad.booking.title.property', 'Book this stay')\n : bookingType === 'EVENT'\n ? t('ggnomad.booking.title.event', 'Book tickets')\n : bookingType === 'TOUR'\n ? t('ggnomad.booking.title.tour', 'Book this tour')\n : t('ggnomad.booking.title.activity', 'Book this activity')}\n </h2>\n\n <div className=\"space-y-4 mb-6\">\n {/* Dates section */}\n {bookingType === 'PROPERTY' ? (\n <>\n <div>\n <label htmlFor=\"check-in\" className={labelClass}>\n {t('ggnomad.booking.checkIn', 'Check-in')}\n </label>\n <Input\n id=\"check-in\"\n type=\"date\"\n value={checkInDate}\n onChange={(e) => setCheckInDate(e.target.value)}\n className={cn(inputClass, 'mt-2')}\n aria-label={t('ggnomad.booking.checkIn', 'Check-in')}\n />\n </div>\n <div>\n <label htmlFor=\"check-out\" className={labelClass}>\n {t('ggnomad.booking.checkOut', 'Check-out')}\n </label>\n <Input\n id=\"check-out\"\n type=\"date\"\n value={checkOutDate}\n onChange={(e) => setCheckOutDate(e.target.value)}\n className={cn(inputClass, 'mt-2')}\n aria-label={t('ggnomad.booking.checkOut', 'Check-out')}\n />\n </div>\n </>\n ) : bookingType === 'EVENT' ? (\n <div>\n <label htmlFor=\"event-date\" className={labelClass}>\n {t('ggnomad.booking.date', 'Date')}\n </label>\n <Input\n id=\"event-date\"\n type=\"date\"\n value={eventDate ? eventDate.split('T')[0] : ''}\n disabled\n className={cn(inputClass, 'mt-2')}\n aria-label={t('ggnomad.booking.date', 'Date')}\n />\n </div>\n ) : (\n <div>\n <label htmlFor=\"booking-date\" className={labelClass}>\n {t('ggnomad.booking.date', 'Date')}\n </label>\n <Input\n id=\"booking-date\"\n type=\"date\"\n value={selectedDate}\n onChange={(e) => setSelectedDate(e.target.value)}\n className={cn(inputClass, 'mt-2')}\n aria-label={t('ggnomad.booking.date', 'Date')}\n />\n </div>\n )}\n\n {/* Quantity section */}\n <div>\n <label className={labelClass}>\n {bookingType === 'PROPERTY'\n ? t('ggnomad.booking.guests', 'Guests')\n : bookingType === 'EVENT'\n ? t('ggnomad.booking.tickets', 'Tickets')\n : t('ggnomad.booking.participants', 'Participants')}\n </label>\n <div className=\"flex items-center gap-2 mt-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setQuantity(Math.max(1, quantity - 1))}\n disabled={quantity <= 1 || creating}\n aria-label={t('ggnomad.booking.decreaseQuantity', 'Decrease quantity')}\n className=\"flex-shrink-0\"\n >\n <Minus className=\"size-4\" />\n </Button>\n <input\n type=\"number\"\n min={1}\n value={quantity}\n onChange={(e) => setQuantity(Math.max(1, parseInt(e.target.value) || 1))}\n className=\"flex-1 h-9 rounded-input border border-border-default bg-bg-surface px-3 py-1 text-center text-sm text-text-primary\"\n aria-label={\n bookingType === 'PROPERTY'\n ? t('ggnomad.booking.guests', 'Guests')\n : bookingType === 'EVENT'\n ? t('ggnomad.booking.tickets', 'Tickets')\n : t('ggnomad.booking.participants', 'Participants')\n }\n />\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setQuantity(quantity + 1)}\n disabled={creating}\n aria-label={t('ggnomad.booking.increaseQuantity', 'Increase quantity')}\n className=\"flex-shrink-0\"\n >\n <Plus className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n\n {/* Pricing breakdown */}\n <div className=\"space-y-2 mb-6 p-3 rounded-md bg-bg-sunken\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-text-secondary\">\n {currency} {unitPrice.toFixed(2)} ×{' '}\n {bookingType === 'PROPERTY'\n ? `${nights ?? 1} ${t('ggnomad.booking.nights', 'nights')}`\n : `${quantity} ${t('ggnomad.booking.item', 'item')}`}\n </span>\n <span className=\"text-text-primary font-medium\">\n {currency} {subtotal.toFixed(2)}\n </span>\n </div>\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-text-secondary\">{t('ggnomad.booking.tax', 'Tax (10%)')}</span>\n <span className=\"text-text-primary\">\n {currency} {taxAmount.toFixed(2)}\n </span>\n </div>\n <div className=\"border-t border-border-seam pt-2 flex justify-between\">\n <span className=\"font-semibold text-text-primary\">\n {t('ggnomad.booking.total', 'Total')}\n </span>\n <span className=\"font-bold text-lg text-text-primary\">\n {currency} {total.toFixed(2)}\n </span>\n </div>\n </div>\n\n {/* Book button */}\n <Button\n onClick={() => void handleBooking()}\n disabled={creating}\n className=\"w-full bg-gradient-to-r from-action-primary-bg to-action-success-bg text-white font-semibold\"\n size=\"lg\"\n >\n {creating\n ? t('ggnomad.booking.button.creating', 'Creating booking…')\n : bookingType === 'PROPERTY'\n ? t('ggnomad.booking.button.property', 'Book this stay')\n : bookingType === 'EVENT'\n ? t('ggnomad.booking.button.event', 'Book tickets')\n : bookingType === 'TOUR'\n ? t('ggnomad.booking.button.tour', 'Book this tour')\n : t('ggnomad.booking.button.activity', 'Book this activity')}\n </Button>\n </GlassCard>\n );\n}\n"],"mappings":"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"}
@@ -5,3 +5,4 @@ import "./EntityCard.js";
5
5
  import "./DetailRow.js";
6
6
  import "./LoadMoreButton.js";
7
7
  import "./DetailHero.js";
8
+ import "./BookingPanel.js";