@burdenoff/microfe-ggnomad 2026.705.6 → 2026.710.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 (113) hide show
  1. package/dist/dev/main.d.ts +2 -0
  2. package/dist/dev/main.d.ts.map +1 -0
  3. package/dist/generated/global-operations.d.ts +2 -0
  4. package/dist/generated/global-operations.d.ts.map +1 -0
  5. package/dist/generated/global-types.d.ts +23527 -0
  6. package/dist/generated/global-types.d.ts.map +1 -0
  7. package/dist/generated/wspace-operations.d.ts +2 -0
  8. package/dist/generated/wspace-operations.d.ts.map +1 -0
  9. package/dist/generated/wspace-types.d.ts +57851 -0
  10. package/dist/generated/wspace-types.d.ts.map +1 -0
  11. package/dist/ggnomad/GGNomadRoot.d.ts +5 -0
  12. package/dist/ggnomad/GGNomadRoot.d.ts.map +1 -0
  13. package/dist/ggnomad/GGNomadRoutes.d.ts +2 -0
  14. package/dist/ggnomad/GGNomadRoutes.d.ts.map +1 -0
  15. package/dist/ggnomad/GGNomadRoutes.js.map +1 -1
  16. package/dist/ggnomad/components/BookingPanel.d.ts +16 -0
  17. package/dist/ggnomad/components/BookingPanel.d.ts.map +1 -0
  18. package/dist/ggnomad/components/DetailHero.d.ts +13 -0
  19. package/dist/ggnomad/components/DetailHero.d.ts.map +1 -0
  20. package/dist/ggnomad/components/DetailRow.d.ts +8 -0
  21. package/dist/ggnomad/components/DetailRow.d.ts.map +1 -0
  22. package/dist/ggnomad/components/EntityCard.d.ts +27 -0
  23. package/dist/ggnomad/components/EntityCard.d.ts.map +1 -0
  24. package/dist/ggnomad/components/ListingEditDialog.d.ts +20 -0
  25. package/dist/ggnomad/components/ListingEditDialog.d.ts.map +1 -0
  26. package/dist/ggnomad/components/ListingEditDialog.js +151 -0
  27. package/dist/ggnomad/components/ListingEditDialog.js.map +1 -0
  28. package/dist/ggnomad/components/LoadMoreButton.d.ts +13 -0
  29. package/dist/ggnomad/components/LoadMoreButton.d.ts.map +1 -0
  30. package/dist/ggnomad/components/ReviewsSection.d.ts +12 -0
  31. package/dist/ggnomad/components/ReviewsSection.d.ts.map +1 -0
  32. package/dist/ggnomad/components/SectionCard.d.ts +12 -0
  33. package/dist/ggnomad/components/SectionCard.d.ts.map +1 -0
  34. package/dist/ggnomad/components/StatCard.d.ts +17 -0
  35. package/dist/ggnomad/components/StatCard.d.ts.map +1 -0
  36. package/dist/ggnomad/components/StatusBadge.d.ts +12 -0
  37. package/dist/ggnomad/components/StatusBadge.d.ts.map +1 -0
  38. package/dist/ggnomad/components/index.d.ts +11 -0
  39. package/dist/ggnomad/components/index.d.ts.map +1 -0
  40. package/dist/ggnomad/components/index.js +1 -0
  41. package/dist/ggnomad/graphql.d.ts +47 -0
  42. package/dist/ggnomad/graphql.d.ts.map +1 -0
  43. package/dist/ggnomad/graphql.js +46 -1
  44. package/dist/ggnomad/graphql.js.map +1 -1
  45. package/dist/ggnomad/index.d.ts +4 -0
  46. package/dist/ggnomad/index.d.ts.map +1 -0
  47. package/dist/ggnomad/pages/ActivityDetailsPage.d.ts +2 -0
  48. package/dist/ggnomad/pages/ActivityDetailsPage.d.ts.map +1 -0
  49. package/dist/ggnomad/pages/ActivityDetailsPage.js +86 -61
  50. package/dist/ggnomad/pages/ActivityDetailsPage.js.map +1 -1
  51. package/dist/ggnomad/pages/AnalyticsPage.d.ts +2 -0
  52. package/dist/ggnomad/pages/AnalyticsPage.d.ts.map +1 -0
  53. package/dist/ggnomad/pages/BookingsPage.d.ts +2 -0
  54. package/dist/ggnomad/pages/BookingsPage.d.ts.map +1 -0
  55. package/dist/ggnomad/pages/DashboardPage.d.ts +2 -0
  56. package/dist/ggnomad/pages/DashboardPage.d.ts.map +1 -0
  57. package/dist/ggnomad/pages/EntertainmentPage.d.ts +2 -0
  58. package/dist/ggnomad/pages/EntertainmentPage.d.ts.map +1 -0
  59. package/dist/ggnomad/pages/EventDetailsPage.d.ts +2 -0
  60. package/dist/ggnomad/pages/EventDetailsPage.d.ts.map +1 -0
  61. package/dist/ggnomad/pages/EventDetailsPage.js +87 -62
  62. package/dist/ggnomad/pages/EventDetailsPage.js.map +1 -1
  63. package/dist/ggnomad/pages/FavoritesPage.d.ts +2 -0
  64. package/dist/ggnomad/pages/FavoritesPage.d.ts.map +1 -0
  65. package/dist/ggnomad/pages/HospitalityPage.d.ts +2 -0
  66. package/dist/ggnomad/pages/HospitalityPage.d.ts.map +1 -0
  67. package/dist/ggnomad/pages/PageShell.d.ts +23 -0
  68. package/dist/ggnomad/pages/PageShell.d.ts.map +1 -0
  69. package/dist/ggnomad/pages/PropertyDetailsPage.d.ts +2 -0
  70. package/dist/ggnomad/pages/PropertyDetailsPage.d.ts.map +1 -0
  71. package/dist/ggnomad/pages/PropertyDetailsPage.js +91 -66
  72. package/dist/ggnomad/pages/PropertyDetailsPage.js.map +1 -1
  73. package/dist/ggnomad/pages/ProviderPage.d.ts +2 -0
  74. package/dist/ggnomad/pages/ProviderPage.d.ts.map +1 -0
  75. package/dist/ggnomad/pages/SearchPage.d.ts +2 -0
  76. package/dist/ggnomad/pages/SearchPage.d.ts.map +1 -0
  77. package/dist/ggnomad/pages/TourDetailsPage.d.ts +2 -0
  78. package/dist/ggnomad/pages/TourDetailsPage.d.ts.map +1 -0
  79. package/dist/ggnomad/pages/TourDetailsPage.js +86 -61
  80. package/dist/ggnomad/pages/TourDetailsPage.js.map +1 -1
  81. package/dist/ggnomad/pages/TourismPage.d.ts +2 -0
  82. package/dist/ggnomad/pages/TourismPage.d.ts.map +1 -0
  83. package/dist/ggnomad/pages/TravelPage.d.ts +2 -0
  84. package/dist/ggnomad/pages/TravelPage.d.ts.map +1 -0
  85. package/dist/ggnomad/pages/TripPlanDetailPage.d.ts +2 -0
  86. package/dist/ggnomad/pages/TripPlanDetailPage.d.ts.map +1 -0
  87. package/dist/ggnomad/pages/TripPlanDetailPage.js +23 -3
  88. package/dist/ggnomad/pages/TripPlanDetailPage.js.map +1 -1
  89. package/dist/ggnomad/pages/TripsPage.d.ts +2 -0
  90. package/dist/ggnomad/pages/TripsPage.d.ts.map +1 -0
  91. package/dist/ggnomad/pages/TripsPage.js.map +1 -1
  92. package/dist/ggnomad/providers/GGNomadProvider.d.ts +6 -0
  93. package/dist/ggnomad/providers/GGNomadProvider.d.ts.map +1 -0
  94. package/dist/ggnomad/types/index.d.ts +58 -0
  95. package/dist/ggnomad/types/index.d.ts.map +1 -0
  96. package/dist/ggnomad/utils/cn.d.ts +4 -0
  97. package/dist/ggnomad/utils/cn.d.ts.map +1 -0
  98. package/dist/ggnomad/utils/navigation.d.ts +2 -0
  99. package/dist/ggnomad/utils/navigation.d.ts.map +1 -0
  100. package/dist/ggnomad/utils/notify.d.ts +22 -0
  101. package/dist/ggnomad/utils/notify.d.ts.map +1 -0
  102. package/dist/index.d.ts +3 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +2 -1
  105. package/dist/services/createSandboxAssistantTransport.d.ts +44 -0
  106. package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -0
  107. package/dist/services/createSandboxAssistantTransport.js +338 -0
  108. package/dist/services/createSandboxAssistantTransport.js.map +1 -0
  109. package/dist/utils/pageContext.d.ts +28 -0
  110. package/dist/utils/pageContext.d.ts.map +1 -0
  111. package/dist/utils/pageContext.js +50 -0
  112. package/dist/utils/pageContext.js.map +1 -0
  113. package/package.json +5 -1
@@ -0,0 +1,2 @@
1
+ export declare function FavoritesPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=FavoritesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FavoritesPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/FavoritesPage.tsx"],"names":[],"mappings":"AAyBA,wBAAgB,aAAa,gCAoL5B"}
@@ -0,0 +1,2 @@
1
+ export declare function HospitalityPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=HospitalityPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HospitalityPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/HospitalityPage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,eAAe,gCAkF9B"}
@@ -0,0 +1,23 @@
1
+ import { PropsWithChildren, ReactNode } from 'react';
2
+
3
+ type PageShellProps = PropsWithChildren<{
4
+ title: string;
5
+ subtitle: string;
6
+ /** Highlighted key noun rendered as a GradientText accent inside the H1. */
7
+ titleAccent?: string;
8
+ /** Single primary action / overflow menu cluster rendered at the header end. */
9
+ actions?: ReactNode;
10
+ /**
11
+ * When true, the header becomes the MFE hero zone with a subtle aurora
12
+ * backdrop. Use on exactly one page per MFE (the Dashboard).
13
+ */
14
+ hero?: boolean;
15
+ }>;
16
+ /**
17
+ * Boff UI 2.0 page scaffold. The header is a seamless glass band; an optional
18
+ * aurora backdrop turns it into the MFE hero. Content keeps its existing
19
+ * vertical rhythm. The accent noun in the H1 is rendered via GradientText.
20
+ */
21
+ export declare function PageShell({ title, subtitle, titleAccent, actions, hero, children, }: PageShellProps): import("react").JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=PageShell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageShell.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/PageShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1D,KAAK,cAAc,GAAG,iBAAiB,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,EACP,IAAY,EACZ,QAAQ,GACT,EAAE,cAAc,+BAsChB"}
@@ -0,0 +1,2 @@
1
+ export declare function PropertyDetailsPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=PropertyDetailsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyDetailsPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/PropertyDetailsPage.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,mBAAmB,gCAoJlC"}
@@ -7,118 +7,143 @@ import { useGGNomad as a } from "../providers/GGNomadProvider.js";
7
7
  import { joinPath as o } from "../utils/navigation.js";
8
8
  import { BookingPanel as s } from "../components/BookingPanel.js";
9
9
  import { ReviewsSection as c } from "../components/ReviewsSection.js";
10
+ import { ListingEditDialog as l } from "../components/ListingEditDialog.js";
10
11
  import "../components/index.js";
11
- import { Hotel as l } from "lucide-react";
12
- import { useI18n as u } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
13
- import { useNavigate as d, useParams as f } from "react-router-dom";
14
- import { useQuery as p } from "@apollo/client/react";
15
- import { GlassCard as m, IllustratedEmptyState as h, NextSteps as g, PagePurpose as _ } from "@burdenoff/fe-libs/ui";
16
- import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
12
+ import { useState as u } from "react";
13
+ import { Hotel as d, Pencil as f } from "lucide-react";
14
+ import { useI18n as p } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
15
+ import { useNavigate as m, useParams as h } from "react-router-dom";
16
+ import { useQuery as g } from "@apollo/client/react";
17
+ import { GlassCard as _, IllustratedEmptyState as v, NextSteps as y, PagePurpose as b } from "@burdenoff/fe-libs/ui";
18
+ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
17
19
  //#region src/ggnomad/pages/PropertyDetailsPage.tsx
18
- function x() {
19
- let { t: x } = u(), S = d(), { basePath: C = "/" } = a(), { id: w = "" } = f(), { data: T } = p(e, {
20
- variables: { id: w },
21
- skip: !w
22
- }), E = T?.ggnomadProperty;
23
- return /* @__PURE__ */ y(t, {
24
- title: E?.name ?? x("ggnomad.property.fallbackTitle", "Property details"),
25
- subtitle: x("ggnomad.property.subtitle", "Detailed hospitality listing view"),
26
- children: E ? /* @__PURE__ */ b(v, { children: [
27
- /* @__PURE__ */ y(i, {
28
- image: E.images?.[0],
29
- alt: E.name
20
+ function w() {
21
+ let { t: w } = p(), T = m(), { basePath: E = "/" } = a(), { id: D = "" } = h(), [O, k] = u(!1), { data: A, refetch: j } = g(e, {
22
+ variables: { id: D },
23
+ skip: !D
24
+ }), M = A?.ggnomadProperty;
25
+ return /* @__PURE__ */ S(t, {
26
+ title: M?.name ?? w("ggnomad.property.fallbackTitle", "Property details"),
27
+ subtitle: w("ggnomad.property.subtitle", "Detailed hospitality listing view"),
28
+ children: M ? /* @__PURE__ */ C(x, { children: [
29
+ /* @__PURE__ */ S(i, {
30
+ image: M.images?.[0],
31
+ alt: M.name
30
32
  }),
31
- /* @__PURE__ */ y(_, {
32
- icon: /* @__PURE__ */ y(l, { className: "size-4" }),
33
- children: x("ggnomad.property.purpose", "Everything you need to decide on this stay — its type, description, nightly price, guest capacity, rating and the provider behind it — before you reserve it.")
33
+ /* @__PURE__ */ S(b, {
34
+ icon: /* @__PURE__ */ S(d, { className: "size-4" }),
35
+ children: w("ggnomad.property.purpose", "Everything you need to decide on this stay — its type, description, nightly price, guest capacity, rating and the provider behind it — before you reserve it.")
34
36
  }),
35
- /* @__PURE__ */ y(g, {
37
+ /* @__PURE__ */ S(y, {
36
38
  storageKey: "ggnomad-property-detail",
37
39
  steps: [{
38
40
  id: "browse",
39
- label: x("ggnomad.property.next.browse", "Compare other stays"),
40
- description: x("ggnomad.property.next.browseDesc", "Go back to hospitality listings to compare options."),
41
- icon: /* @__PURE__ */ y(l, { className: "size-4" }),
42
- onClick: () => S(o(C, "hospitality"))
41
+ label: w("ggnomad.property.next.browse", "Compare other stays"),
42
+ description: w("ggnomad.property.next.browseDesc", "Go back to hospitality listings to compare options."),
43
+ icon: /* @__PURE__ */ S(d, { className: "size-4" }),
44
+ onClick: () => T(o(E, "hospitality"))
43
45
  }]
44
46
  }),
45
- /* @__PURE__ */ b("div", {
47
+ /* @__PURE__ */ C("div", {
46
48
  className: "grid gap-4 lg:grid-cols-3",
47
- children: [/* @__PURE__ */ b("div", {
49
+ children: [/* @__PURE__ */ C("div", {
48
50
  className: "lg:col-span-2 space-y-4",
49
51
  children: [
50
- /* @__PURE__ */ b(n, {
51
- title: x("ggnomad.property.about", "About"),
52
+ /* @__PURE__ */ C(n, {
53
+ title: w("ggnomad.property.about", "About"),
52
54
  children: [
53
- /* @__PURE__ */ y("p", {
55
+ /* @__PURE__ */ S("p", {
54
56
  className: "text-sm text-text-secondary",
55
- children: x("ggnomad.property.type", "Type")
57
+ children: w("ggnomad.property.type", "Type")
56
58
  }),
57
- /* @__PURE__ */ y("p", {
59
+ /* @__PURE__ */ S("p", {
58
60
  className: "text-text-primary",
59
- children: E.type
61
+ children: M.type
60
62
  }),
61
- /* @__PURE__ */ y("p", {
63
+ /* @__PURE__ */ S("p", {
62
64
  className: "mt-3 text-sm text-text-secondary",
63
- children: x("ggnomad.property.description", "Description")
65
+ children: w("ggnomad.property.description", "Description")
64
66
  }),
65
- /* @__PURE__ */ y("p", {
67
+ /* @__PURE__ */ S("p", {
66
68
  className: "text-text-primary",
67
- children: E.description ?? x("ggnomad.property.noDescription", "No description")
69
+ children: M.description ?? w("ggnomad.property.noDescription", "No description")
68
70
  })
69
71
  ]
70
72
  }),
71
- /* @__PURE__ */ b(m, {
73
+ /* @__PURE__ */ C(_, {
72
74
  treatment: "glass",
73
75
  glow: !0,
74
76
  className: "border-border-seam p-5",
75
- children: [/* @__PURE__ */ y("h2", {
76
- className: "mb-4 text-lg font-medium tracking-tight text-text-primary",
77
- children: x("ggnomad.property.details", "Details")
78
- }), /* @__PURE__ */ b("dl", {
77
+ children: [/* @__PURE__ */ C("div", {
78
+ className: "mb-4 flex items-center justify-between gap-3",
79
+ children: [/* @__PURE__ */ S("h2", {
80
+ className: "text-lg font-medium tracking-tight text-text-primary",
81
+ children: w("ggnomad.property.details", "Details")
82
+ }), /* @__PURE__ */ S("button", {
83
+ onClick: () => k(!0),
84
+ className: "rounded-md p-2 text-text-secondary hover:bg-action-primary-bg hover:text-action-primary-text",
85
+ "aria-label": w("ggnomad.property.editListing", "Edit listing"),
86
+ title: w("ggnomad.property.editListing", "Edit listing"),
87
+ children: /* @__PURE__ */ S(f, { className: "size-4" })
88
+ })]
89
+ }), /* @__PURE__ */ C("dl", {
79
90
  className: "space-y-2 text-sm",
80
91
  children: [
81
- /* @__PURE__ */ y(r, {
82
- label: x("ggnomad.property.price", "Price"),
83
- value: `${E.currency} ${Number(E.pricePerNight).toFixed(2)}`
92
+ /* @__PURE__ */ S(r, {
93
+ label: w("ggnomad.property.price", "Price"),
94
+ value: `${M.currency} ${Number(M.pricePerNight).toFixed(2)}`
84
95
  }),
85
- /* @__PURE__ */ y(r, {
86
- label: x("ggnomad.property.guests", "Guests"),
87
- value: String(E.maxGuests)
96
+ /* @__PURE__ */ S(r, {
97
+ label: w("ggnomad.property.guests", "Guests"),
98
+ value: String(M.maxGuests)
88
99
  }),
89
- /* @__PURE__ */ y(r, {
90
- label: x("ggnomad.property.rating", "Rating"),
91
- value: String(E.rating ?? x("ggnomad.property.noRating", "N/A"))
100
+ /* @__PURE__ */ S(r, {
101
+ label: w("ggnomad.property.rating", "Rating"),
102
+ value: String(M.rating ?? w("ggnomad.property.noRating", "N/A"))
92
103
  }),
93
- /* @__PURE__ */ y(r, {
94
- label: x("ggnomad.property.provider", "Provider"),
95
- value: E.provider?.name ?? x("ggnomad.property.unassigned", "Unassigned")
104
+ /* @__PURE__ */ S(r, {
105
+ label: w("ggnomad.property.provider", "Provider"),
106
+ value: M.provider?.name ?? w("ggnomad.property.unassigned", "Unassigned")
96
107
  })
97
108
  ]
98
109
  })]
99
110
  }),
100
- /* @__PURE__ */ y(c, {
111
+ /* @__PURE__ */ S(c, {
101
112
  targetType: "PROPERTY",
102
- targetId: E.id ?? w
113
+ targetId: M.id ?? D
103
114
  })
104
115
  ]
105
- }), /* @__PURE__ */ y("div", { children: /* @__PURE__ */ y(s, {
116
+ }), /* @__PURE__ */ S("div", { children: /* @__PURE__ */ S(s, {
106
117
  bookingType: "PROPERTY",
107
- itemId: E.id ?? w,
108
- itemName: E.name,
109
- unitPrice: E.pricePerNight ?? 0,
110
- currency: E.currency ?? "USD",
118
+ itemId: M.id ?? D,
119
+ itemName: M.name,
120
+ unitPrice: M.pricePerNight ?? 0,
121
+ currency: M.currency ?? "USD",
111
122
  nights: 1
112
123
  }) })]
124
+ }),
125
+ /* @__PURE__ */ S(l, {
126
+ open: O,
127
+ onOpenChange: k,
128
+ targetType: "PROPERTY",
129
+ id: M.id ?? D,
130
+ initial: {
131
+ name: M.name,
132
+ description: M.description,
133
+ pricePerNight: M.pricePerNight,
134
+ status: M.status,
135
+ images: M.images
136
+ },
137
+ onSaved: () => j()
113
138
  })
114
- ] }) : /* @__PURE__ */ y(h, {
139
+ ] }) : /* @__PURE__ */ S(v, {
115
140
  illustration: "empty-data",
116
- title: x("ggnomad.property.notFoundTitle", "No property found"),
117
- description: x("ggnomad.property.notFoundDescription", "This property is unavailable or may have been removed.")
141
+ title: w("ggnomad.property.notFoundTitle", "No property found"),
142
+ description: w("ggnomad.property.notFoundDescription", "This property is unavailable or may have been removed.")
118
143
  })
119
144
  });
120
145
  }
121
146
  //#endregion
122
- export { x as PropertyDetailsPage };
147
+ export { w as PropertyDetailsPage };
123
148
 
124
149
  //# sourceMappingURL=PropertyDetailsPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyDetailsPage.js","names":[],"sources":["../../../src/ggnomad/pages/PropertyDetailsPage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport type { TypedDocumentNode } from '@apollo/client';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { Hotel } from 'lucide-react';\nimport { GlassCard, IllustratedEmptyState, NextSteps, PagePurpose } from '@burdenoff/fe-libs/ui';\n\nimport { GGNOMAD_PROPERTY_QUERY } from '../graphql';\nimport { useGGNomad } from '../providers/GGNomadProvider';\nimport { joinPath } from '../utils/navigation';\nimport { PageShell } from './PageShell';\nimport { DetailRow, SectionCard, DetailHero, BookingPanel, ReviewsSection } from '../components';\n\nexport function PropertyDetailsPage() {\n const { t } = useI18n();\n const navigate = useNavigate();\n const { basePath = '/' } = useGGNomad();\n const { id = '' } = useParams();\n const { data } = useQuery(\n GGNOMAD_PROPERTY_QUERY as TypedDocumentNode<\n {\n ggnomadProperty: {\n id: string;\n name: string;\n type: string;\n description?: string;\n currency: string;\n pricePerNight: number;\n maxGuests: number;\n rating?: number;\n provider?: { name: string };\n images?: string[];\n } | null;\n },\n { id: string }\n >,\n { variables: { id }, skip: !id }\n );\n const property = data?.ggnomadProperty;\n\n return (\n <PageShell\n title={property?.name ?? t('ggnomad.property.fallbackTitle', 'Property details')}\n subtitle={t('ggnomad.property.subtitle', 'Detailed hospitality listing view')}\n >\n {!property ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('ggnomad.property.notFoundTitle', 'No property found')}\n description={t(\n 'ggnomad.property.notFoundDescription',\n 'This property is unavailable or may have been removed.'\n )}\n />\n ) : (\n <>\n <DetailHero image={property.images?.[0]} alt={property.name} />\n <PagePurpose icon={<Hotel className=\"size-4\" />}>\n {t(\n 'ggnomad.property.purpose',\n 'Everything you need to decide on this stay — its type, description, nightly price, guest capacity, rating and the provider behind it — before you reserve it.'\n )}\n </PagePurpose>\n\n <NextSteps\n storageKey=\"ggnomad-property-detail\"\n steps={[\n {\n id: 'browse',\n label: t('ggnomad.property.next.browse', 'Compare other stays'),\n description: t(\n 'ggnomad.property.next.browseDesc',\n 'Go back to hospitality listings to compare options.'\n ),\n icon: <Hotel className=\"size-4\" />,\n onClick: () => navigate(joinPath(basePath, 'hospitality')),\n },\n ]}\n />\n\n <div className=\"grid gap-4 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-4\">\n <SectionCard title={t('ggnomad.property.about', 'About')}>\n <p className=\"text-sm text-text-secondary\">{t('ggnomad.property.type', 'Type')}</p>\n <p className=\"text-text-primary\">{property.type}</p>\n <p className=\"mt-3 text-sm text-text-secondary\">\n {t('ggnomad.property.description', 'Description')}\n </p>\n <p className=\"text-text-primary\">\n {property.description ?? t('ggnomad.property.noDescription', 'No description')}\n </p>\n </SectionCard>\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam p-5\">\n <h2 className=\"mb-4 text-lg font-medium tracking-tight text-text-primary\">\n {t('ggnomad.property.details', 'Details')}\n </h2>\n <dl className=\"space-y-2 text-sm\">\n <DetailRow\n label={t('ggnomad.property.price', 'Price')}\n value={`${property.currency} ${Number(property.pricePerNight).toFixed(2)}`}\n />\n <DetailRow\n label={t('ggnomad.property.guests', 'Guests')}\n value={String(property.maxGuests)}\n />\n <DetailRow\n label={t('ggnomad.property.rating', 'Rating')}\n value={String(property.rating ?? t('ggnomad.property.noRating', 'N/A'))}\n />\n <DetailRow\n label={t('ggnomad.property.provider', 'Provider')}\n value={\n property.provider?.name ?? t('ggnomad.property.unassigned', 'Unassigned')\n }\n />\n </dl>\n </GlassCard>\n <ReviewsSection targetType=\"PROPERTY\" targetId={property.id ?? id} />\n </div>\n <div>\n <BookingPanel\n bookingType=\"PROPERTY\"\n itemId={property.id ?? id}\n itemName={property.name}\n unitPrice={property.pricePerNight ?? 0}\n currency={property.currency ?? 'USD'}\n nights={1}\n />\n </div>\n </div>\n </>\n )}\n </PageShell>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAaA,SAAgB,IAAsB;CACpC,IAAM,EAAE,SAAM,GAAS,EACjB,IAAW,GAAa,EACxB,EAAE,cAAW,QAAQ,GAAY,EACjC,EAAE,QAAK,OAAO,GAAW,EACzB,EAAE,YAAS,EACf,GAiBA;EAAE,WAAW,EAAE,OAAI;EAAE,MAAM,CAAC;EAAI,CACjC,EACK,IAAW,GAAM;AAEvB,QACE,kBAAC,GAAD;EACE,OAAO,GAAU,QAAQ,EAAE,kCAAkC,mBAAmB;EAChF,UAAU,EAAE,6BAA6B,oCAAoC;YAE3E,IAUA,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IAAY,OAAO,EAAS,SAAS;IAAI,KAAK,EAAS;IAAQ,CAAA;GAC/D,kBAAC,GAAD;IAAa,MAAM,kBAAC,GAAD,EAAO,WAAU,UAAW,CAAA;cAC5C,EACC,4BACA,gKACD;IACW,CAAA;GAEd,kBAAC,GAAD;IACE,YAAW;IACX,OAAO,CACL;KACE,IAAI;KACJ,OAAO,EAAE,gCAAgC,sBAAsB;KAC/D,aAAa,EACX,oCACA,sDACD;KACD,MAAM,kBAAC,GAAD,EAAO,WAAU,UAAW,CAAA;KAClC,eAAe,EAAS,EAAS,GAAU,cAAc,CAAC;KAC3D,CACF;IACD,CAAA;GAEF,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,GAAD;OAAa,OAAO,EAAE,0BAA0B,QAAQ;iBAAxD;QACE,kBAAC,KAAD;SAAG,WAAU;mBAA+B,EAAE,yBAAyB,OAAO;SAAK,CAAA;QACnF,kBAAC,KAAD;SAAG,WAAU;mBAAqB,EAAS;SAAS,CAAA;QACpD,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAE,gCAAgC,cAAc;SAC/C,CAAA;QACJ,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAS,eAAe,EAAE,kCAAkC,iBAAiB;SAC5E,CAAA;QACQ;;MACd,kBAAC,GAAD;OAAW,WAAU;OAAQ,MAAA;OAAK,WAAU;iBAA5C,CACE,kBAAC,MAAD;QAAI,WAAU;kBACX,EAAE,4BAA4B,UAAU;QACtC,CAAA,EACL,kBAAC,MAAD;QAAI,WAAU;kBAAd;SACE,kBAAC,GAAD;UACE,OAAO,EAAE,0BAA0B,QAAQ;UAC3C,OAAO,GAAG,EAAS,SAAS,GAAG,OAAO,EAAS,cAAc,CAAC,QAAQ,EAAE;UACxE,CAAA;SACF,kBAAC,GAAD;UACE,OAAO,EAAE,2BAA2B,SAAS;UAC7C,OAAO,OAAO,EAAS,UAAU;UACjC,CAAA;SACF,kBAAC,GAAD;UACE,OAAO,EAAE,2BAA2B,SAAS;UAC7C,OAAO,OAAO,EAAS,UAAU,EAAE,6BAA6B,MAAM,CAAC;UACvE,CAAA;SACF,kBAAC,GAAD;UACE,OAAO,EAAE,6BAA6B,WAAW;UACjD,OACE,EAAS,UAAU,QAAQ,EAAE,+BAA+B,aAAa;UAE3E,CAAA;SACC;UACK;;MACZ,kBAAC,GAAD;OAAgB,YAAW;OAAW,UAAU,EAAS,MAAM;OAAM,CAAA;MACjE;QACN,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;KACE,aAAY;KACZ,QAAQ,EAAS,MAAM;KACvB,UAAU,EAAS;KACnB,WAAW,EAAS,iBAAiB;KACrC,UAAU,EAAS,YAAY;KAC/B,QAAQ;KACR,CAAA,EACE,CAAA,CACF;;GACL,EAAA,CAAA,GApFH,kBAAC,GAAD;GACE,cAAa;GACb,OAAO,EAAE,kCAAkC,oBAAoB;GAC/D,aAAa,EACX,wCACA,yDACD;GACD,CAAA;EA+EM,CAAA"}
1
+ {"version":3,"file":"PropertyDetailsPage.js","names":[],"sources":["../../../src/ggnomad/pages/PropertyDetailsPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useQuery } from '@apollo/client/react';\nimport type { TypedDocumentNode } from '@apollo/client';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { Hotel, Pencil } from 'lucide-react';\nimport { GlassCard, IllustratedEmptyState, NextSteps, PagePurpose } from '@burdenoff/fe-libs/ui';\n\nimport { GGNOMAD_PROPERTY_QUERY } from '../graphql';\nimport { useGGNomad } from '../providers/GGNomadProvider';\nimport { joinPath } from '../utils/navigation';\nimport { PageShell } from './PageShell';\nimport {\n DetailRow,\n SectionCard,\n DetailHero,\n BookingPanel,\n ReviewsSection,\n ListingEditDialog,\n} from '../components';\n\nexport function PropertyDetailsPage() {\n const { t } = useI18n();\n const navigate = useNavigate();\n const { basePath = '/' } = useGGNomad();\n const { id = '' } = useParams();\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const { data, refetch } = useQuery(\n GGNOMAD_PROPERTY_QUERY as TypedDocumentNode<\n {\n ggnomadProperty: {\n id: string;\n name: string;\n type: string;\n description?: string;\n currency: string;\n pricePerNight: number;\n status?: string;\n maxGuests: number;\n rating?: number;\n provider?: { name: string };\n images?: string[];\n } | null;\n },\n { id: string }\n >,\n { variables: { id }, skip: !id }\n );\n const property = data?.ggnomadProperty;\n\n return (\n <PageShell\n title={property?.name ?? t('ggnomad.property.fallbackTitle', 'Property details')}\n subtitle={t('ggnomad.property.subtitle', 'Detailed hospitality listing view')}\n >\n {!property ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('ggnomad.property.notFoundTitle', 'No property found')}\n description={t(\n 'ggnomad.property.notFoundDescription',\n 'This property is unavailable or may have been removed.'\n )}\n />\n ) : (\n <>\n <DetailHero image={property.images?.[0]} alt={property.name} />\n <PagePurpose icon={<Hotel className=\"size-4\" />}>\n {t(\n 'ggnomad.property.purpose',\n 'Everything you need to decide on this stay — its type, description, nightly price, guest capacity, rating and the provider behind it — before you reserve it.'\n )}\n </PagePurpose>\n\n <NextSteps\n storageKey=\"ggnomad-property-detail\"\n steps={[\n {\n id: 'browse',\n label: t('ggnomad.property.next.browse', 'Compare other stays'),\n description: t(\n 'ggnomad.property.next.browseDesc',\n 'Go back to hospitality listings to compare options.'\n ),\n icon: <Hotel className=\"size-4\" />,\n onClick: () => navigate(joinPath(basePath, 'hospitality')),\n },\n ]}\n />\n\n <div className=\"grid gap-4 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-4\">\n <SectionCard title={t('ggnomad.property.about', 'About')}>\n <p className=\"text-sm text-text-secondary\">{t('ggnomad.property.type', 'Type')}</p>\n <p className=\"text-text-primary\">{property.type}</p>\n <p className=\"mt-3 text-sm text-text-secondary\">\n {t('ggnomad.property.description', 'Description')}\n </p>\n <p className=\"text-text-primary\">\n {property.description ?? t('ggnomad.property.noDescription', 'No description')}\n </p>\n </SectionCard>\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam p-5\">\n <div className=\"mb-4 flex items-center justify-between gap-3\">\n <h2 className=\"text-lg font-medium tracking-tight text-text-primary\">\n {t('ggnomad.property.details', 'Details')}\n </h2>\n <button\n onClick={() => setEditDialogOpen(true)}\n className=\"rounded-md p-2 text-text-secondary hover:bg-action-primary-bg hover:text-action-primary-text\"\n aria-label={t('ggnomad.property.editListing', 'Edit listing')}\n title={t('ggnomad.property.editListing', 'Edit listing')}\n >\n <Pencil className=\"size-4\" />\n </button>\n </div>\n <dl className=\"space-y-2 text-sm\">\n <DetailRow\n label={t('ggnomad.property.price', 'Price')}\n value={`${property.currency} ${Number(property.pricePerNight).toFixed(2)}`}\n />\n <DetailRow\n label={t('ggnomad.property.guests', 'Guests')}\n value={String(property.maxGuests)}\n />\n <DetailRow\n label={t('ggnomad.property.rating', 'Rating')}\n value={String(property.rating ?? t('ggnomad.property.noRating', 'N/A'))}\n />\n <DetailRow\n label={t('ggnomad.property.provider', 'Provider')}\n value={\n property.provider?.name ?? t('ggnomad.property.unassigned', 'Unassigned')\n }\n />\n </dl>\n </GlassCard>\n <ReviewsSection targetType=\"PROPERTY\" targetId={property.id ?? id} />\n </div>\n <div>\n <BookingPanel\n bookingType=\"PROPERTY\"\n itemId={property.id ?? id}\n itemName={property.name}\n unitPrice={property.pricePerNight ?? 0}\n currency={property.currency ?? 'USD'}\n nights={1}\n />\n </div>\n </div>\n\n <ListingEditDialog\n open={editDialogOpen}\n onOpenChange={setEditDialogOpen}\n targetType=\"PROPERTY\"\n id={property.id ?? id}\n initial={{\n name: property.name,\n description: property.description,\n pricePerNight: property.pricePerNight,\n status: property.status,\n images: property.images,\n }}\n onSaved={() => refetch()}\n />\n </>\n )}\n </PageShell>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ProviderPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=ProviderPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/ProviderPage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,YAAY,gCA+F3B"}
@@ -0,0 +1,2 @@
1
+ export declare function SearchPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=SearchPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/SearchPage.tsx"],"names":[],"mappings":"AAeA,wBAAgB,UAAU,gCA0GzB"}
@@ -0,0 +1,2 @@
1
+ export declare function TourDetailsPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=TourDetailsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TourDetailsPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/TourDetailsPage.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,eAAe,gCAiJ9B"}
@@ -7,109 +7,134 @@ import { useGGNomad as a } from "../providers/GGNomadProvider.js";
7
7
  import { joinPath as o } from "../utils/navigation.js";
8
8
  import { BookingPanel as s } from "../components/BookingPanel.js";
9
9
  import { ReviewsSection as c } from "../components/ReviewsSection.js";
10
+ import { ListingEditDialog as l } from "../components/ListingEditDialog.js";
10
11
  import "../components/index.js";
11
- import { CheckCircle2 as l, Compass as u } from "lucide-react";
12
- import { useI18n as d } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
13
- import { useNavigate as f, useParams as p } from "react-router-dom";
14
- import { useQuery as m } from "@apollo/client/react";
15
- import { GlassCard as h, IllustratedEmptyState as g, NextSteps as _, PagePurpose as v } from "@burdenoff/fe-libs/ui";
16
- import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
12
+ import { useState as u } from "react";
13
+ import { CheckCircle2 as d, Compass as f, Pencil as p } from "lucide-react";
14
+ import { useI18n as m } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
15
+ import { useNavigate as h, useParams as g } from "react-router-dom";
16
+ import { useQuery as _ } from "@apollo/client/react";
17
+ import { GlassCard as v, IllustratedEmptyState as y, NextSteps as b, PagePurpose as x } from "@burdenoff/fe-libs/ui";
18
+ import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
17
19
  //#region src/ggnomad/pages/TourDetailsPage.tsx
18
- function S() {
19
- let { t: S } = d(), C = f(), { basePath: w = "/" } = a(), { id: T = "" } = p(), { data: E } = m(e, {
20
- variables: { id: T },
21
- skip: !T
22
- }), D = E?.ggnomadTour;
23
- return /* @__PURE__ */ b(t, {
24
- title: D?.name ?? S("ggnomad.tour.fallbackTitle", "Tour details"),
25
- subtitle: S("ggnomad.tour.subtitle", "Tour package details and booking context"),
26
- children: D ? /* @__PURE__ */ x(y, { children: [
27
- /* @__PURE__ */ b(i, {
28
- image: D.images?.[0],
29
- alt: D.name
20
+ function T() {
21
+ let { t: T } = m(), E = h(), { basePath: D = "/" } = a(), { id: O = "" } = g(), [k, A] = u(!1), { data: j, refetch: M } = _(e, {
22
+ variables: { id: O },
23
+ skip: !O
24
+ }), N = j?.ggnomadTour;
25
+ return /* @__PURE__ */ C(t, {
26
+ title: N?.name ?? T("ggnomad.tour.fallbackTitle", "Tour details"),
27
+ subtitle: T("ggnomad.tour.subtitle", "Tour package details and booking context"),
28
+ children: N ? /* @__PURE__ */ w(S, { children: [
29
+ /* @__PURE__ */ C(i, {
30
+ image: N.images?.[0],
31
+ alt: N.name
30
32
  }),
31
- /* @__PURE__ */ b(v, {
32
- icon: /* @__PURE__ */ b(u, { className: "size-4" }),
33
- children: S("ggnomad.tour.purpose", "See exactly what this tour involves — duration, difficulty, your guide, price and the highlights you’ll experience — so you can confirm it fits your trip before booking.")
33
+ /* @__PURE__ */ C(x, {
34
+ icon: /* @__PURE__ */ C(f, { className: "size-4" }),
35
+ children: T("ggnomad.tour.purpose", "See exactly what this tour involves — duration, difficulty, your guide, price and the highlights you’ll experience — so you can confirm it fits your trip before booking.")
34
36
  }),
35
- /* @__PURE__ */ b(_, {
37
+ /* @__PURE__ */ C(b, {
36
38
  storageKey: "ggnomad-tour-detail",
37
39
  steps: [{
38
40
  id: "browse",
39
- label: S("ggnomad.tour.next.browse", "Explore more experiences"),
40
- description: S("ggnomad.tour.next.browseDesc", "Return to Tourism to compare tours and activities."),
41
- icon: /* @__PURE__ */ b(u, { className: "size-4" }),
42
- onClick: () => C(o(w, "tourism"))
41
+ label: T("ggnomad.tour.next.browse", "Explore more experiences"),
42
+ description: T("ggnomad.tour.next.browseDesc", "Return to Tourism to compare tours and activities."),
43
+ icon: /* @__PURE__ */ C(f, { className: "size-4" }),
44
+ onClick: () => E(o(D, "tourism"))
43
45
  }]
44
46
  }),
45
- /* @__PURE__ */ x("div", {
47
+ /* @__PURE__ */ w("div", {
46
48
  className: "grid gap-4 lg:grid-cols-3",
47
- children: [/* @__PURE__ */ x("div", {
49
+ children: [/* @__PURE__ */ w("div", {
48
50
  className: "lg:col-span-2 space-y-4",
49
51
  children: [
50
- /* @__PURE__ */ x(h, {
52
+ /* @__PURE__ */ w(v, {
51
53
  treatment: "glass",
52
54
  glow: !0,
53
55
  className: "border-border-seam p-5",
54
- children: [/* @__PURE__ */ b("h2", {
55
- className: "mb-4 text-lg font-medium tracking-tight text-text-primary",
56
- children: S("ggnomad.tour.details", "Details")
57
- }), /* @__PURE__ */ x("dl", {
56
+ children: [/* @__PURE__ */ w("div", {
57
+ className: "mb-4 flex items-center justify-between gap-3",
58
+ children: [/* @__PURE__ */ C("h2", {
59
+ className: "text-lg font-medium tracking-tight text-text-primary",
60
+ children: T("ggnomad.tour.details", "Details")
61
+ }), /* @__PURE__ */ C("button", {
62
+ onClick: () => A(!0),
63
+ className: "rounded-md p-2 text-text-secondary hover:bg-action-primary-bg hover:text-action-primary-text",
64
+ "aria-label": T("ggnomad.tour.editListing", "Edit listing"),
65
+ title: T("ggnomad.tour.editListing", "Edit listing"),
66
+ children: /* @__PURE__ */ C(p, { className: "size-4" })
67
+ })]
68
+ }), /* @__PURE__ */ w("dl", {
58
69
  className: "space-y-2 text-sm",
59
70
  children: [
60
- /* @__PURE__ */ b(r, {
61
- label: S("ggnomad.tour.duration", "Duration"),
62
- value: D.duration
71
+ /* @__PURE__ */ C(r, {
72
+ label: T("ggnomad.tour.duration", "Duration"),
73
+ value: N.duration
63
74
  }),
64
- /* @__PURE__ */ b(r, {
65
- label: S("ggnomad.tour.difficulty", "Difficulty"),
66
- value: D.difficulty ?? S("ggnomad.tour.na", "N/A")
75
+ /* @__PURE__ */ C(r, {
76
+ label: T("ggnomad.tour.difficulty", "Difficulty"),
77
+ value: N.difficulty ?? T("ggnomad.tour.na", "N/A")
67
78
  }),
68
- /* @__PURE__ */ b(r, {
69
- label: S("ggnomad.tour.guide", "Guide"),
70
- value: D.guideName ?? S("ggnomad.tour.na", "N/A")
79
+ /* @__PURE__ */ C(r, {
80
+ label: T("ggnomad.tour.guide", "Guide"),
81
+ value: N.guideName ?? T("ggnomad.tour.na", "N/A")
71
82
  }),
72
- /* @__PURE__ */ b(r, {
73
- label: S("ggnomad.tour.price", "Price"),
74
- value: `${D.currency} ${Number(D.price).toFixed(2)}`
83
+ /* @__PURE__ */ C(r, {
84
+ label: T("ggnomad.tour.price", "Price"),
85
+ value: `${N.currency} ${Number(N.price).toFixed(2)}`
75
86
  })
76
87
  ]
77
88
  })]
78
89
  }),
79
- /* @__PURE__ */ b(n, {
80
- title: S("ggnomad.tour.highlights", "Highlights"),
81
- children: /* @__PURE__ */ b("ul", {
90
+ /* @__PURE__ */ C(n, {
91
+ title: T("ggnomad.tour.highlights", "Highlights"),
92
+ children: /* @__PURE__ */ C("ul", {
82
93
  className: "space-y-2 text-sm",
83
- children: (D.highlights ?? []).map((e) => /* @__PURE__ */ x("li", {
94
+ children: (N.highlights ?? []).map((e) => /* @__PURE__ */ w("li", {
84
95
  className: "flex items-start gap-2 text-text-primary",
85
- children: [/* @__PURE__ */ b(l, {
96
+ children: [/* @__PURE__ */ C(d, {
86
97
  className: "mt-0.5 size-4 flex-shrink-0 text-status-success-text",
87
98
  "aria-hidden": "true"
88
99
  }), e]
89
100
  }, e))
90
101
  })
91
102
  }),
92
- /* @__PURE__ */ b(c, {
103
+ /* @__PURE__ */ C(c, {
93
104
  targetType: "TOUR",
94
- targetId: D.id ?? T
105
+ targetId: N.id ?? O
95
106
  })
96
107
  ]
97
- }), /* @__PURE__ */ b("div", { children: /* @__PURE__ */ b(s, {
108
+ }), /* @__PURE__ */ C("div", { children: /* @__PURE__ */ C(s, {
98
109
  bookingType: "TOUR",
99
- itemId: D.id ?? T,
100
- itemName: D.name,
101
- unitPrice: D.price ?? 0,
102
- currency: D.currency ?? "USD"
110
+ itemId: N.id ?? O,
111
+ itemName: N.name,
112
+ unitPrice: N.price ?? 0,
113
+ currency: N.currency ?? "USD"
103
114
  }) })]
115
+ }),
116
+ /* @__PURE__ */ C(l, {
117
+ open: k,
118
+ onOpenChange: A,
119
+ targetType: "TOUR",
120
+ id: N.id ?? O,
121
+ initial: {
122
+ name: N.name,
123
+ description: N.description,
124
+ price: N.price,
125
+ status: N.status,
126
+ images: N.images
127
+ },
128
+ onSaved: () => M()
104
129
  })
105
- ] }) : /* @__PURE__ */ b(g, {
130
+ ] }) : /* @__PURE__ */ C(y, {
106
131
  illustration: "empty-data",
107
- title: S("ggnomad.tour.notFoundTitle", "No tour found"),
108
- description: S("ggnomad.tour.notFoundDescription", "This tour is unavailable or may have been removed.")
132
+ title: T("ggnomad.tour.notFoundTitle", "No tour found"),
133
+ description: T("ggnomad.tour.notFoundDescription", "This tour is unavailable or may have been removed.")
109
134
  })
110
135
  });
111
136
  }
112
137
  //#endregion
113
- export { S as TourDetailsPage };
138
+ export { T as TourDetailsPage };
114
139
 
115
140
  //# sourceMappingURL=TourDetailsPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TourDetailsPage.js","names":[],"sources":["../../../src/ggnomad/pages/TourDetailsPage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport type { TypedDocumentNode } from '@apollo/client';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { CheckCircle2, Compass } from 'lucide-react';\nimport { GlassCard, IllustratedEmptyState, NextSteps, PagePurpose } from '@burdenoff/fe-libs/ui';\n\nimport { GGNOMAD_TOUR_QUERY } from '../graphql';\nimport { useGGNomad } from '../providers/GGNomadProvider';\nimport { joinPath } from '../utils/navigation';\nimport { PageShell } from './PageShell';\nimport { DetailRow, SectionCard, DetailHero, BookingPanel, ReviewsSection } from '../components';\n\nexport function TourDetailsPage() {\n const { t } = useI18n();\n const navigate = useNavigate();\n const { basePath = '/' } = useGGNomad();\n const { id = '' } = useParams();\n const { data } = useQuery(\n GGNOMAD_TOUR_QUERY as TypedDocumentNode<\n {\n ggnomadTour: {\n id: string;\n name: string;\n duration: string;\n difficulty?: string;\n guideName?: string;\n currency: string;\n price: number;\n highlights: string[];\n images?: string[];\n } | null;\n },\n { id: string }\n >,\n { variables: { id }, skip: !id }\n );\n const tour = data?.ggnomadTour;\n\n return (\n <PageShell\n title={tour?.name ?? t('ggnomad.tour.fallbackTitle', 'Tour details')}\n subtitle={t('ggnomad.tour.subtitle', 'Tour package details and booking context')}\n >\n {!tour ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('ggnomad.tour.notFoundTitle', 'No tour found')}\n description={t(\n 'ggnomad.tour.notFoundDescription',\n 'This tour is unavailable or may have been removed.'\n )}\n />\n ) : (\n <>\n <DetailHero image={tour.images?.[0]} alt={tour.name} />\n <PagePurpose icon={<Compass className=\"size-4\" />}>\n {t(\n 'ggnomad.tour.purpose',\n 'See exactly what this tour involves — duration, difficulty, your guide, price and the highlights you’ll experience — so you can confirm it fits your trip before booking.'\n )}\n </PagePurpose>\n\n <NextSteps\n storageKey=\"ggnomad-tour-detail\"\n steps={[\n {\n id: 'browse',\n label: t('ggnomad.tour.next.browse', 'Explore more experiences'),\n description: t(\n 'ggnomad.tour.next.browseDesc',\n 'Return to Tourism to compare tours and activities.'\n ),\n icon: <Compass className=\"size-4\" />,\n onClick: () => navigate(joinPath(basePath, 'tourism')),\n },\n ]}\n />\n\n <div className=\"grid gap-4 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-4\">\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam p-5\">\n <h2 className=\"mb-4 text-lg font-medium tracking-tight text-text-primary\">\n {t('ggnomad.tour.details', 'Details')}\n </h2>\n <dl className=\"space-y-2 text-sm\">\n <DetailRow label={t('ggnomad.tour.duration', 'Duration')} value={tour.duration} />\n <DetailRow\n label={t('ggnomad.tour.difficulty', 'Difficulty')}\n value={tour.difficulty ?? t('ggnomad.tour.na', 'N/A')}\n />\n <DetailRow\n label={t('ggnomad.tour.guide', 'Guide')}\n value={tour.guideName ?? t('ggnomad.tour.na', 'N/A')}\n />\n <DetailRow\n label={t('ggnomad.tour.price', 'Price')}\n value={`${tour.currency} ${Number(tour.price).toFixed(2)}`}\n />\n </dl>\n </GlassCard>\n <SectionCard title={t('ggnomad.tour.highlights', 'Highlights')}>\n <ul className=\"space-y-2 text-sm\">\n {(tour.highlights ?? []).map((highlight) => (\n <li key={highlight} className=\"flex items-start gap-2 text-text-primary\">\n <CheckCircle2\n className=\"mt-0.5 size-4 flex-shrink-0 text-status-success-text\"\n aria-hidden=\"true\"\n />\n {highlight}\n </li>\n ))}\n </ul>\n </SectionCard>\n <ReviewsSection targetType=\"TOUR\" targetId={tour.id ?? id} />\n </div>\n <div>\n <BookingPanel\n bookingType=\"TOUR\"\n itemId={tour.id ?? id}\n itemName={tour.name}\n unitPrice={tour.price ?? 0}\n currency={tour.currency ?? 'USD'}\n />\n </div>\n </div>\n </>\n )}\n </PageShell>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAaA,SAAgB,IAAkB;CAChC,IAAM,EAAE,SAAM,GAAS,EACjB,IAAW,GAAa,EACxB,EAAE,cAAW,QAAQ,GAAY,EACjC,EAAE,QAAK,OAAO,GAAW,EACzB,EAAE,YAAS,EACf,GAgBA;EAAE,WAAW,EAAE,OAAI;EAAE,MAAM,CAAC;EAAI,CACjC,EACK,IAAO,GAAM;AAEnB,QACE,kBAAC,GAAD;EACE,OAAO,GAAM,QAAQ,EAAE,8BAA8B,eAAe;EACpE,UAAU,EAAE,yBAAyB,2CAA2C;YAE9E,IAUA,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IAAY,OAAO,EAAK,SAAS;IAAI,KAAK,EAAK;IAAQ,CAAA;GACvD,kBAAC,GAAD;IAAa,MAAM,kBAAC,GAAD,EAAS,WAAU,UAAW,CAAA;cAC9C,EACC,wBACA,4KACD;IACW,CAAA;GAEd,kBAAC,GAAD;IACE,YAAW;IACX,OAAO,CACL;KACE,IAAI;KACJ,OAAO,EAAE,4BAA4B,2BAA2B;KAChE,aAAa,EACX,gCACA,qDACD;KACD,MAAM,kBAAC,GAAD,EAAS,WAAU,UAAW,CAAA;KACpC,eAAe,EAAS,EAAS,GAAU,UAAU,CAAC;KACvD,CACF;IACD,CAAA;GAEF,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,GAAD;OAAW,WAAU;OAAQ,MAAA;OAAK,WAAU;iBAA5C,CACE,kBAAC,MAAD;QAAI,WAAU;kBACX,EAAE,wBAAwB,UAAU;QAClC,CAAA,EACL,kBAAC,MAAD;QAAI,WAAU;kBAAd;SACE,kBAAC,GAAD;UAAW,OAAO,EAAE,yBAAyB,WAAW;UAAE,OAAO,EAAK;UAAY,CAAA;SAClF,kBAAC,GAAD;UACE,OAAO,EAAE,2BAA2B,aAAa;UACjD,OAAO,EAAK,cAAc,EAAE,mBAAmB,MAAM;UACrD,CAAA;SACF,kBAAC,GAAD;UACE,OAAO,EAAE,sBAAsB,QAAQ;UACvC,OAAO,EAAK,aAAa,EAAE,mBAAmB,MAAM;UACpD,CAAA;SACF,kBAAC,GAAD;UACE,OAAO,EAAE,sBAAsB,QAAQ;UACvC,OAAO,GAAG,EAAK,SAAS,GAAG,OAAO,EAAK,MAAM,CAAC,QAAQ,EAAE;UACxD,CAAA;SACC;UACK;;MACZ,kBAAC,GAAD;OAAa,OAAO,EAAE,2BAA2B,aAAa;iBAC5D,kBAAC,MAAD;QAAI,WAAU;mBACV,EAAK,cAAc,EAAE,EAAE,KAAK,MAC5B,kBAAC,MAAD;SAAoB,WAAU;mBAA9B,CACE,kBAAC,GAAD;UACE,WAAU;UACV,eAAY;UACZ,CAAA,EACD,EACE;WANI,EAMJ,CACL;QACC,CAAA;OACO,CAAA;MACd,kBAAC,GAAD;OAAgB,YAAW;OAAO,UAAU,EAAK,MAAM;OAAM,CAAA;MACzD;QACN,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;KACE,aAAY;KACZ,QAAQ,EAAK,MAAM;KACnB,UAAU,EAAK;KACf,WAAW,EAAK,SAAS;KACzB,UAAU,EAAK,YAAY;KAC3B,CAAA,EACE,CAAA,CACF;;GACL,EAAA,CAAA,GAjFH,kBAAC,GAAD;GACE,cAAa;GACb,OAAO,EAAE,8BAA8B,gBAAgB;GACvD,aAAa,EACX,oCACA,qDACD;GACD,CAAA;EA4EM,CAAA"}
1
+ {"version":3,"file":"TourDetailsPage.js","names":[],"sources":["../../../src/ggnomad/pages/TourDetailsPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useQuery } from '@apollo/client/react';\nimport type { TypedDocumentNode } from '@apollo/client';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { CheckCircle2, Compass, Pencil } from 'lucide-react';\nimport { GlassCard, IllustratedEmptyState, NextSteps, PagePurpose } from '@burdenoff/fe-libs/ui';\n\nimport { GGNOMAD_TOUR_QUERY } from '../graphql';\nimport { useGGNomad } from '../providers/GGNomadProvider';\nimport { joinPath } from '../utils/navigation';\nimport { PageShell } from './PageShell';\nimport {\n DetailRow,\n SectionCard,\n DetailHero,\n BookingPanel,\n ReviewsSection,\n ListingEditDialog,\n} from '../components';\n\nexport function TourDetailsPage() {\n const { t } = useI18n();\n const navigate = useNavigate();\n const { basePath = '/' } = useGGNomad();\n const { id = '' } = useParams();\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const { data, refetch } = useQuery(\n GGNOMAD_TOUR_QUERY as TypedDocumentNode<\n {\n ggnomadTour: {\n id: string;\n name: string;\n description?: string;\n duration: string;\n difficulty?: string;\n guideName?: string;\n currency: string;\n price: number;\n status?: string;\n highlights: string[];\n images?: string[];\n } | null;\n },\n { id: string }\n >,\n { variables: { id }, skip: !id }\n );\n const tour = data?.ggnomadTour;\n\n return (\n <PageShell\n title={tour?.name ?? t('ggnomad.tour.fallbackTitle', 'Tour details')}\n subtitle={t('ggnomad.tour.subtitle', 'Tour package details and booking context')}\n >\n {!tour ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('ggnomad.tour.notFoundTitle', 'No tour found')}\n description={t(\n 'ggnomad.tour.notFoundDescription',\n 'This tour is unavailable or may have been removed.'\n )}\n />\n ) : (\n <>\n <DetailHero image={tour.images?.[0]} alt={tour.name} />\n <PagePurpose icon={<Compass className=\"size-4\" />}>\n {t(\n 'ggnomad.tour.purpose',\n 'See exactly what this tour involves — duration, difficulty, your guide, price and the highlights you’ll experience — so you can confirm it fits your trip before booking.'\n )}\n </PagePurpose>\n\n <NextSteps\n storageKey=\"ggnomad-tour-detail\"\n steps={[\n {\n id: 'browse',\n label: t('ggnomad.tour.next.browse', 'Explore more experiences'),\n description: t(\n 'ggnomad.tour.next.browseDesc',\n 'Return to Tourism to compare tours and activities.'\n ),\n icon: <Compass className=\"size-4\" />,\n onClick: () => navigate(joinPath(basePath, 'tourism')),\n },\n ]}\n />\n\n <div className=\"grid gap-4 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-4\">\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam p-5\">\n <div className=\"mb-4 flex items-center justify-between gap-3\">\n <h2 className=\"text-lg font-medium tracking-tight text-text-primary\">\n {t('ggnomad.tour.details', 'Details')}\n </h2>\n <button\n onClick={() => setEditDialogOpen(true)}\n className=\"rounded-md p-2 text-text-secondary hover:bg-action-primary-bg hover:text-action-primary-text\"\n aria-label={t('ggnomad.tour.editListing', 'Edit listing')}\n title={t('ggnomad.tour.editListing', 'Edit listing')}\n >\n <Pencil className=\"size-4\" />\n </button>\n </div>\n <dl className=\"space-y-2 text-sm\">\n <DetailRow label={t('ggnomad.tour.duration', 'Duration')} value={tour.duration} />\n <DetailRow\n label={t('ggnomad.tour.difficulty', 'Difficulty')}\n value={tour.difficulty ?? t('ggnomad.tour.na', 'N/A')}\n />\n <DetailRow\n label={t('ggnomad.tour.guide', 'Guide')}\n value={tour.guideName ?? t('ggnomad.tour.na', 'N/A')}\n />\n <DetailRow\n label={t('ggnomad.tour.price', 'Price')}\n value={`${tour.currency} ${Number(tour.price).toFixed(2)}`}\n />\n </dl>\n </GlassCard>\n <SectionCard title={t('ggnomad.tour.highlights', 'Highlights')}>\n <ul className=\"space-y-2 text-sm\">\n {(tour.highlights ?? []).map((highlight) => (\n <li key={highlight} className=\"flex items-start gap-2 text-text-primary\">\n <CheckCircle2\n className=\"mt-0.5 size-4 flex-shrink-0 text-status-success-text\"\n aria-hidden=\"true\"\n />\n {highlight}\n </li>\n ))}\n </ul>\n </SectionCard>\n <ReviewsSection targetType=\"TOUR\" targetId={tour.id ?? id} />\n </div>\n <div>\n <BookingPanel\n bookingType=\"TOUR\"\n itemId={tour.id ?? id}\n itemName={tour.name}\n unitPrice={tour.price ?? 0}\n currency={tour.currency ?? 'USD'}\n />\n </div>\n </div>\n\n <ListingEditDialog\n open={editDialogOpen}\n onOpenChange={setEditDialogOpen}\n targetType=\"TOUR\"\n id={tour.id ?? id}\n initial={{\n name: tour.name,\n description: tour.description,\n price: tour.price,\n status: tour.status,\n images: tour.images,\n }}\n onSaved={() => refetch()}\n />\n </>\n )}\n </PageShell>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function TourismPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=TourismPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TourismPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/TourismPage.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,WAAW,gCAiH1B"}
@@ -0,0 +1,2 @@
1
+ export declare function TravelPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=TravelPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TravelPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/TravelPage.tsx"],"names":[],"mappings":"AAUA,wBAAgB,UAAU,gCAgEzB"}
@@ -0,0 +1,2 @@
1
+ export declare function TripPlanDetailPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=TripPlanDetailPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TripPlanDetailPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/TripPlanDetailPage.tsx"],"names":[],"mappings":"AA6DA,wBAAgB,kBAAkB,gCAo2BjC"}