@burdenoff/microfe-ggnomad 2026.1029.3 → 2026.1030.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/generated/wspace-types.d.ts +102099 -35827
  2. package/dist/generated/wspace-types.d.ts.map +1 -1
  3. package/dist/ggnomad/components/AuditTrailDialog.d.ts +6 -0
  4. package/dist/ggnomad/components/AuditTrailDialog.d.ts.map +1 -1
  5. package/dist/ggnomad/components/AuditTrailDialog.js +47 -42
  6. package/dist/ggnomad/components/AuditTrailDialog.js.map +1 -1
  7. package/dist/ggnomad/components/EntityCard.d.ts +9 -1
  8. package/dist/ggnomad/components/EntityCard.d.ts.map +1 -1
  9. package/dist/ggnomad/components/EntityCard.js +14 -7
  10. package/dist/ggnomad/components/EntityCard.js.map +1 -1
  11. package/dist/ggnomad/graphql.d.ts +6 -0
  12. package/dist/ggnomad/graphql.d.ts.map +1 -1
  13. package/dist/ggnomad/graphql.js +39 -18
  14. package/dist/ggnomad/graphql.js.map +1 -1
  15. package/dist/ggnomad/hooks/useFocusedRecordParam.d.ts +23 -0
  16. package/dist/ggnomad/hooks/useFocusedRecordParam.d.ts.map +1 -0
  17. package/dist/ggnomad/hooks/useFocusedRecordParam.js +15 -0
  18. package/dist/ggnomad/hooks/useFocusedRecordParam.js.map +1 -0
  19. package/dist/ggnomad/pages/BookingsPage.d.ts.map +1 -1
  20. package/dist/ggnomad/pages/BookingsPage.js +149 -142
  21. package/dist/ggnomad/pages/BookingsPage.js.map +1 -1
  22. package/dist/ggnomad/pages/ProviderAnalyticsPage.d.ts.map +1 -1
  23. package/dist/ggnomad/pages/ProviderAnalyticsPage.js +135 -134
  24. package/dist/ggnomad/pages/ProviderAnalyticsPage.js.map +1 -1
  25. package/dist/services/assistantQuota.d.ts +69 -0
  26. package/dist/services/assistantQuota.d.ts.map +1 -0
  27. package/dist/services/assistantQuota.js +52 -0
  28. package/dist/services/assistantQuota.js.map +1 -0
  29. package/dist/services/createSandboxAssistantTransport.d.ts +5 -3
  30. package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -1
  31. package/dist/services/createSandboxAssistantTransport.js +26 -6
  32. package/dist/services/createSandboxAssistantTransport.js.map +1 -1
  33. package/dist/utils/pageContext.d.ts +62 -8
  34. package/dist/utils/pageContext.d.ts.map +1 -1
  35. package/dist/utils/pageContext.js +114 -39
  36. package/dist/utils/pageContext.js.map +1 -1
  37. package/package.json +3 -2
@@ -11,6 +11,12 @@ interface AuditTrailDialogProps {
11
11
  * by GgnomadAuditLog. Every listing-verification and booking-lifecycle
12
12
  * mutation writes one row here; this dialog is the operator-facing view of
13
13
  * that append-only trail.
14
+ *
15
+ * BOFF-10248 — `ggnomadAuditLog` answers only for the people involved in the
16
+ * entity (a booking's traveler or host, a listing's owner). Marketplace
17
+ * operators (`ggnomad:manage`) read any entity's history through
18
+ * `ggnomadWorkspaceAuditLog`, so the dialog picks the field from the caller's
19
+ * workspace permissions. The gateway still enforces both fields.
14
20
  */
15
21
  export declare function AuditTrailDialog({ open, onOpenChange, entityType, entityId, label, }: AuditTrailDialogProps): import("react").JSX.Element;
16
22
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"AuditTrailDialog.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/AuditTrailDialog.tsx"],"names":[],"mappings":"AA2BA,UAAU,qBAAqB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAUD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,KAAK,GACN,EAAE,qBAAqB,+BAuFvB"}
1
+ {"version":3,"file":"AuditTrailDialog.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/AuditTrailDialog.tsx"],"names":[],"mappings":"AAmCA,UAAU,qBAAqB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,KAAK,GACN,EAAE,qBAAqB,+BA2GvB"}
@@ -1,59 +1,64 @@
1
- import { GGNOMAD_AUDIT_LOG_QUERY as e } from "../graphql.js";
2
- import { History as t } from "lucide-react";
3
- import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
- import { useQuery as r } from "@apollo/client/react";
5
- import { AlertDialog as i, AlertDialogCancel as a, AlertDialogContent as o, AlertDialogDescription as s, AlertDialogFooter as c, AlertDialogHeader as l, AlertDialogTitle as u, IllustratedEmptyState as d } from "@burdenoff/fe-libs/ui";
6
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
1
+ import { GGNOMAD_AUDIT_LOG_QUERY as e, GGNOMAD_WORKSPACE_AUDIT_LOG_QUERY as t } from "../graphql.js";
2
+ import { History as n } from "lucide-react";
3
+ import { useI18n as r } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
+ import { useQuery as i } from "@apollo/client/react";
5
+ import { AlertDialog as a, AlertDialogCancel as o, AlertDialogContent as s, AlertDialogDescription as c, AlertDialogFooter as l, AlertDialogHeader as u, AlertDialogTitle as d, IllustratedEmptyState as f } from "@burdenoff/fe-libs/ui";
6
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
7
+ import { useSafePermissions as h } from "@burdenoff/fe-libs/shared/providers/shell";
7
8
  //#region src/ggnomad/components/AuditTrailDialog.tsx
8
- function m(e) {
9
+ function g(e) {
9
10
  return e.toLowerCase().split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ");
10
11
  }
11
- function h({ open: h, onOpenChange: g, entityType: _, entityId: v, label: y }) {
12
- let { t: b } = n(), { data: x, loading: S } = r(e, {
13
- variables: {
14
- entityType: _,
15
- entityId: v,
16
- limit: 50,
17
- offset: 0
18
- },
19
- skip: !h,
12
+ function _({ open: _, onOpenChange: v, entityType: y, entityId: b, label: x }) {
13
+ let { t: S } = r(), C = h(), w = C?.isLoading ?? !1, T = !w && (C?.hasPermission("ggnomad:manage") ?? !1), E = {
14
+ entityType: y,
15
+ entityId: b,
16
+ limit: 50,
17
+ offset: 0
18
+ }, D = i(e, {
19
+ variables: E,
20
+ skip: !_ || w || T,
20
21
  fetchPolicy: "network-only"
21
- }), C = x?.ggnomadAuditLog ?? [];
22
- return /* @__PURE__ */ f(i, {
23
- open: h,
24
- onOpenChange: g,
25
- children: /* @__PURE__ */ p(o, {
22
+ }), O = i(t, {
23
+ variables: E,
24
+ skip: !_ || !T,
25
+ fetchPolicy: "network-only"
26
+ }), k = w || (T ? O.loading : D.loading), A = (T ? O.data?.ggnomadWorkspaceAuditLog : D.data?.ggnomadAuditLog) ?? [];
27
+ return /* @__PURE__ */ p(a, {
28
+ open: _,
29
+ onOpenChange: v,
30
+ children: /* @__PURE__ */ m(s, {
26
31
  className: "max-w-lg",
27
32
  children: [
28
- /* @__PURE__ */ p(l, { children: [/* @__PURE__ */ p(u, {
33
+ /* @__PURE__ */ m(u, { children: [/* @__PURE__ */ m(d, {
29
34
  className: "flex items-center gap-2",
30
- children: [/* @__PURE__ */ f(t, { className: "size-4" }), b("ggnomad.auditTrail.title", "Transition history")]
31
- }), /* @__PURE__ */ f(s, { children: b("ggnomad.auditTrail.description", "Every verification or lifecycle change for {{label}}.").replace("{{label}}", y) })] }),
32
- /* @__PURE__ */ f("div", {
35
+ children: [/* @__PURE__ */ p(n, { className: "size-4" }), S("ggnomad.auditTrail.title", "Transition history")]
36
+ }), /* @__PURE__ */ p(c, { children: S("ggnomad.auditTrail.description", "Every verification or lifecycle change for {{label}}.").replace("{{label}}", x) })] }),
37
+ /* @__PURE__ */ p("div", {
33
38
  className: "max-h-[60vh] space-y-2 overflow-y-auto",
34
- children: S ? /* @__PURE__ */ f("p", {
39
+ children: k ? /* @__PURE__ */ p("p", {
35
40
  className: "py-6 text-center text-sm text-text-secondary",
36
- children: b("ggnomad.auditTrail.loading", "Loading history…")
37
- }) : C.length === 0 ? /* @__PURE__ */ f(d, {
41
+ children: S("ggnomad.auditTrail.loading", "Loading history…")
42
+ }) : A.length === 0 ? /* @__PURE__ */ p(f, {
38
43
  illustration: "empty-data",
39
- title: b("ggnomad.auditTrail.emptyTitle", "No transitions recorded yet"),
40
- description: b("ggnomad.auditTrail.emptyDescription", "Approvals, rejections, check-ins and other lifecycle changes will show up here.")
41
- }) : /* @__PURE__ */ f("ol", {
44
+ title: S("ggnomad.auditTrail.emptyTitle", "No transitions recorded yet"),
45
+ description: S("ggnomad.auditTrail.emptyDescription", "Approvals, rejections, check-ins and other lifecycle changes will show up here.")
46
+ }) : /* @__PURE__ */ p("ol", {
42
47
  className: "space-y-2",
43
- children: C.map((e) => /* @__PURE__ */ p("li", {
48
+ children: A.map((e) => /* @__PURE__ */ m("li", {
44
49
  className: "rounded-lg border border-border-seam bg-bg-surface/40 p-3 text-sm",
45
50
  children: [
46
- /* @__PURE__ */ p("div", {
51
+ /* @__PURE__ */ m("div", {
47
52
  className: "flex items-center justify-between gap-2",
48
- children: [/* @__PURE__ */ f("span", {
53
+ children: [/* @__PURE__ */ p("span", {
49
54
  className: "font-medium text-text-primary",
50
- children: m(e.action)
51
- }), /* @__PURE__ */ f("span", {
55
+ children: g(e.action)
56
+ }), /* @__PURE__ */ p("span", {
52
57
  className: "text-xs tabular-nums text-text-secondary",
53
58
  children: new Date(e.createdAt).toLocaleString()
54
59
  })]
55
60
  }),
56
- e.fromStatus || e.toStatus ? /* @__PURE__ */ p("p", {
61
+ e.fromStatus || e.toStatus ? /* @__PURE__ */ m("p", {
57
62
  className: "mt-1 text-xs text-text-secondary",
58
63
  children: [
59
64
  e.fromStatus ?? "—",
@@ -61,7 +66,7 @@ function h({ open: h, onOpenChange: g, entityType: _, entityId: v, label: y }) {
61
66
  e.toStatus ?? "—"
62
67
  ]
63
68
  }) : null,
64
- e.reason ? /* @__PURE__ */ p("p", {
69
+ e.reason ? /* @__PURE__ */ m("p", {
65
70
  className: "mt-1 text-xs italic text-text-secondary",
66
71
  children: [
67
72
  "“",
@@ -69,20 +74,20 @@ function h({ open: h, onOpenChange: g, entityType: _, entityId: v, label: y }) {
69
74
  "”"
70
75
  ]
71
76
  }) : null,
72
- /* @__PURE__ */ f("p", {
77
+ /* @__PURE__ */ p("p", {
73
78
  className: "mt-1 text-xs text-text-secondary",
74
- children: b("ggnomad.auditTrail.by", "by {{actor}}").replace("{{actor}}", e.actorId)
79
+ children: S("ggnomad.auditTrail.by", "by {{actor}}").replace("{{actor}}", e.actorId)
75
80
  })
76
81
  ]
77
82
  }, e.id))
78
83
  })
79
84
  }),
80
- /* @__PURE__ */ f(c, { children: /* @__PURE__ */ f(a, { children: b("ggnomad.auditTrail.close", "Close") }) })
85
+ /* @__PURE__ */ p(l, { children: /* @__PURE__ */ p(o, { children: S("ggnomad.auditTrail.close", "Close") }) })
81
86
  ]
82
87
  })
83
88
  });
84
89
  }
85
90
  //#endregion
86
- export { h as AuditTrailDialog };
91
+ export { _ as AuditTrailDialog };
87
92
 
88
93
  //# sourceMappingURL=AuditTrailDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuditTrailDialog.js","names":[],"sources":["../../../src/ggnomad/components/AuditTrailDialog.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 { History } from 'lucide-react';\nimport {\n AlertDialog,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\n\nimport { GGNOMAD_AUDIT_LOG_QUERY } from '../graphql';\n\ninterface AuditLogEntry {\n id: string;\n action: string;\n fromStatus: string | null;\n toStatus: string | null;\n reason: string | null;\n actorId: string;\n createdAt: string;\n}\n\ninterface AuditTrailDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n entityType: string;\n entityId: string;\n /** Shown in the dialog title, e.g. a reference code or listing name. */\n label: string;\n}\n\nfunction formatAction(action: string): string {\n return action\n .toLowerCase()\n .split('_')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\n/**\n * BOFF-4388 — read-only transition history for one listing or booking, backed\n * by GgnomadAuditLog. Every listing-verification and booking-lifecycle\n * mutation writes one row here; this dialog is the operator-facing view of\n * that append-only trail.\n */\nexport function AuditTrailDialog({\n open,\n onOpenChange,\n entityType,\n entityId,\n label,\n}: AuditTrailDialogProps) {\n const { t } = useI18n();\n\n const { data, loading } = useQuery(\n GGNOMAD_AUDIT_LOG_QUERY as TypedDocumentNode<\n { ggnomadAuditLog: AuditLogEntry[] },\n { entityType: string; entityId: string; limit?: number; offset?: number }\n >,\n {\n variables: { entityType, entityId, limit: 50, offset: 0 },\n skip: !open,\n fetchPolicy: 'network-only',\n }\n );\n\n const entries = data?.ggnomadAuditLog ?? [];\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"max-w-lg\">\n <AlertDialogHeader>\n <AlertDialogTitle className=\"flex items-center gap-2\">\n <History className=\"size-4\" />\n {t('ggnomad.auditTrail.title', 'Transition history')}\n </AlertDialogTitle>\n <AlertDialogDescription>\n {t(\n 'ggnomad.auditTrail.description',\n 'Every verification or lifecycle change for {{label}}.'\n ).replace('{{label}}', label)}\n </AlertDialogDescription>\n </AlertDialogHeader>\n\n <div className=\"max-h-[60vh] space-y-2 overflow-y-auto\">\n {loading ? (\n <p className=\"py-6 text-center text-sm text-text-secondary\">\n {t('ggnomad.auditTrail.loading', 'Loading history…')}\n </p>\n ) : entries.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('ggnomad.auditTrail.emptyTitle', 'No transitions recorded yet')}\n description={t(\n 'ggnomad.auditTrail.emptyDescription',\n 'Approvals, rejections, check-ins and other lifecycle changes will show up here.'\n )}\n />\n ) : (\n <ol className=\"space-y-2\">\n {entries.map((entry) => (\n <li\n key={entry.id}\n className=\"rounded-lg border border-border-seam bg-bg-surface/40 p-3 text-sm\"\n >\n <div className=\"flex items-center justify-between gap-2\">\n <span className=\"font-medium text-text-primary\">\n {formatAction(entry.action)}\n </span>\n <span className=\"text-xs tabular-nums text-text-secondary\">\n {new Date(entry.createdAt).toLocaleString()}\n </span>\n </div>\n {entry.fromStatus || entry.toStatus ? (\n <p className=\"mt-1 text-xs text-text-secondary\">\n {entry.fromStatus ?? '—'} → {entry.toStatus ?? '—'}\n </p>\n ) : null}\n {entry.reason ? (\n <p className=\"mt-1 text-xs italic text-text-secondary\">\n &ldquo;{entry.reason}&rdquo;\n </p>\n ) : null}\n <p className=\"mt-1 text-xs text-text-secondary\">\n {t('ggnomad.auditTrail.by', 'by {{actor}}').replace('{{actor}}', entry.actorId)}\n </p>\n </li>\n ))}\n </ol>\n )}\n </div>\n\n <AlertDialogFooter>\n <AlertDialogCancel>{t('ggnomad.auditTrail.close', 'Close')}</AlertDialogCancel>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n"],"mappings":";;;;;;;AAoCA,SAAS,EAAa,GAAwB;CAC5C,OAAO,EACJ,YAAY,CAAC,CACb,MAAM,GAAG,CAAC,CACV,KAAK,MAAS,EAAK,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,EAAK,MAAM,CAAC,CAAC,CAAC,CAC3D,KAAK,GAAG;AACb;AAQA,SAAgB,EAAiB,EAC/B,SACA,iBACA,eACA,aACA,YACwB;CACxB,IAAM,EAAE,SAAM,EAAQ,GAEhB,EAAE,SAAM,eAAY,EACxB,GAIA;EACE,WAAW;GAAE;GAAY;GAAU,OAAO;GAAI,QAAQ;EAAE;EACxD,MAAM,CAAC;EACP,aAAa;CACf,CACF,GAEM,IAAU,GAAM,mBAAmB,CAAC;CAE1C,OACE,kBAAC,GAAD;EAAmB;EAAoB;YACrC,kBAAC,GAAD;GAAoB,WAAU;aAA9B;IACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAkB,WAAU;eAA5B,CACE,kBAAC,GAAD,EAAS,WAAU,SAAU,CAAA,GAC5B,EAAE,4BAA4B,oBAAoB,CACnC;QAClB,kBAAC,GAAD,EAAA,UACG,EACC,kCACA,uDACF,CAAC,CAAC,QAAQ,aAAa,CAAK,EACN,CAAA,CACP,EAAA,CAAA;IAEnB,kBAAC,OAAD;KAAK,WAAU;eACZ,IACC,kBAAC,KAAD;MAAG,WAAU;gBACV,EAAE,8BAA8B,kBAAkB;KAClD,CAAA,IACD,EAAQ,WAAW,IACrB,kBAAC,GAAD;MACE,cAAa;MACb,OAAO,EAAE,iCAAiC,6BAA6B;MACvE,aAAa,EACX,uCACA,iFACF;KACD,CAAA,IAED,kBAAC,MAAD;MAAI,WAAU;gBACX,EAAQ,KAAK,MACZ,kBAAC,MAAD;OAEE,WAAU;iBAFZ;QAIE,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,QAAD;UAAM,WAAU;oBACb,EAAa,EAAM,MAAM;SACtB,CAAA,GACN,kBAAC,QAAD;UAAM,WAAU;oBACb,IAAI,KAAK,EAAM,SAAS,CAAC,CAAC,eAAe;SACtC,CAAA,CACH;;QACJ,EAAM,cAAc,EAAM,WACzB,kBAAC,KAAD;SAAG,WAAU;mBAAb;UACG,EAAM,cAAc;UAAI;UAAI,EAAM,YAAY;SAC9C;aACD;QACH,EAAM,SACL,kBAAC,KAAD;SAAG,WAAU;mBAAb;UAAuD;UAC7C,EAAM;UAAO;SACpB;aACD;QACJ,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAE,yBAAyB,cAAc,CAAC,CAAC,QAAQ,aAAa,EAAM,OAAO;QAC7E,CAAA;OACD;SAxBG,EAAM,EAwBT,CACL;KACC,CAAA;IAEH,CAAA;IAEL,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAoB,EAAE,4BAA4B,OAAO,EAAqB,CAAA,EAC7D,CAAA;GACD;;CACT,CAAA;AAEjB"}
1
+ {"version":3,"file":"AuditTrailDialog.js","names":[],"sources":["../../../src/ggnomad/components/AuditTrailDialog.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport type { TypedDocumentNode } from '@apollo/client';\nimport { useSafePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { History } from 'lucide-react';\nimport {\n AlertDialog,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\n\nimport { GGNOMAD_AUDIT_LOG_QUERY, GGNOMAD_WORKSPACE_AUDIT_LOG_QUERY } from '../graphql';\n\ninterface AuditLogEntry {\n id: string;\n action: string;\n fromStatus: string | null;\n toStatus: string | null;\n reason: string | null;\n actorId: string;\n createdAt: string;\n}\n\ninterface AuditLogVariables {\n entityType: string;\n entityId: string;\n limit?: number;\n offset?: number;\n}\n\ninterface AuditTrailDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n entityType: string;\n entityId: string;\n /** Shown in the dialog title, e.g. a reference code or listing name. */\n label: string;\n}\n\nfunction formatAction(action: string): string {\n return action\n .toLowerCase()\n .split('_')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\n/**\n * BOFF-4388 — read-only transition history for one listing or booking, backed\n * by GgnomadAuditLog. Every listing-verification and booking-lifecycle\n * mutation writes one row here; this dialog is the operator-facing view of\n * that append-only trail.\n *\n * BOFF-10248 — `ggnomadAuditLog` answers only for the people involved in the\n * entity (a booking's traveler or host, a listing's owner). Marketplace\n * operators (`ggnomad:manage`) read any entity's history through\n * `ggnomadWorkspaceAuditLog`, so the dialog picks the field from the caller's\n * workspace permissions. The gateway still enforces both fields.\n */\nexport function AuditTrailDialog({\n open,\n onOpenChange,\n entityType,\n entityId,\n label,\n}: AuditTrailDialogProps) {\n const { t } = useI18n();\n const permissions = useSafePermissions();\n const permissionsLoading = permissions?.isLoading ?? false;\n const isOperator = !permissionsLoading && (permissions?.hasPermission('ggnomad:manage') ?? false);\n const variables: AuditLogVariables = { entityType, entityId, limit: 50, offset: 0 };\n\n const actorHistory = useQuery(\n GGNOMAD_AUDIT_LOG_QUERY as TypedDocumentNode<\n { ggnomadAuditLog: AuditLogEntry[] },\n AuditLogVariables\n >,\n {\n variables,\n skip: !open || permissionsLoading || isOperator,\n fetchPolicy: 'network-only',\n }\n );\n const workspaceHistory = useQuery(\n GGNOMAD_WORKSPACE_AUDIT_LOG_QUERY as TypedDocumentNode<\n { ggnomadWorkspaceAuditLog: AuditLogEntry[] },\n AuditLogVariables\n >,\n {\n variables,\n skip: !open || !isOperator,\n fetchPolicy: 'network-only',\n }\n );\n\n const loading =\n permissionsLoading || (isOperator ? workspaceHistory.loading : actorHistory.loading);\n const entries =\n (isOperator\n ? workspaceHistory.data?.ggnomadWorkspaceAuditLog\n : actorHistory.data?.ggnomadAuditLog) ?? [];\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"max-w-lg\">\n <AlertDialogHeader>\n <AlertDialogTitle className=\"flex items-center gap-2\">\n <History className=\"size-4\" />\n {t('ggnomad.auditTrail.title', 'Transition history')}\n </AlertDialogTitle>\n <AlertDialogDescription>\n {t(\n 'ggnomad.auditTrail.description',\n 'Every verification or lifecycle change for {{label}}.'\n ).replace('{{label}}', label)}\n </AlertDialogDescription>\n </AlertDialogHeader>\n\n <div className=\"max-h-[60vh] space-y-2 overflow-y-auto\">\n {loading ? (\n <p className=\"py-6 text-center text-sm text-text-secondary\">\n {t('ggnomad.auditTrail.loading', 'Loading history…')}\n </p>\n ) : entries.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('ggnomad.auditTrail.emptyTitle', 'No transitions recorded yet')}\n description={t(\n 'ggnomad.auditTrail.emptyDescription',\n 'Approvals, rejections, check-ins and other lifecycle changes will show up here.'\n )}\n />\n ) : (\n <ol className=\"space-y-2\">\n {entries.map((entry) => (\n <li\n key={entry.id}\n className=\"rounded-lg border border-border-seam bg-bg-surface/40 p-3 text-sm\"\n >\n <div className=\"flex items-center justify-between gap-2\">\n <span className=\"font-medium text-text-primary\">\n {formatAction(entry.action)}\n </span>\n <span className=\"text-xs tabular-nums text-text-secondary\">\n {new Date(entry.createdAt).toLocaleString()}\n </span>\n </div>\n {entry.fromStatus || entry.toStatus ? (\n <p className=\"mt-1 text-xs text-text-secondary\">\n {entry.fromStatus ?? '—'} → {entry.toStatus ?? '—'}\n </p>\n ) : null}\n {entry.reason ? (\n <p className=\"mt-1 text-xs italic text-text-secondary\">\n &ldquo;{entry.reason}&rdquo;\n </p>\n ) : null}\n <p className=\"mt-1 text-xs text-text-secondary\">\n {t('ggnomad.auditTrail.by', 'by {{actor}}').replace('{{actor}}', entry.actorId)}\n </p>\n </li>\n ))}\n </ol>\n )}\n </div>\n\n <AlertDialogFooter>\n <AlertDialogCancel>{t('ggnomad.auditTrail.close', 'Close')}</AlertDialogCancel>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n"],"mappings":";;;;;;;;AA4CA,SAAS,EAAa,GAAwB;CAC5C,OAAO,EACJ,YAAY,CAAC,CACb,MAAM,GAAG,CAAC,CACV,KAAK,MAAS,EAAK,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,EAAK,MAAM,CAAC,CAAC,CAAC,CAC3D,KAAK,GAAG;AACb;AAcA,SAAgB,EAAiB,EAC/B,SACA,iBACA,eACA,aACA,YACwB;CACxB,IAAM,EAAE,SAAM,EAAQ,GAChB,IAAc,EAAmB,GACjC,IAAqB,GAAa,aAAa,IAC/C,IAAa,CAAC,MAAuB,GAAa,cAAc,gBAAgB,KAAK,KACrF,IAA+B;EAAE;EAAY;EAAU,OAAO;EAAI,QAAQ;CAAE,GAE5E,IAAe,EACnB,GAIA;EACE;EACA,MAAM,CAAC,KAAQ,KAAsB;EACrC,aAAa;CACf,CACF,GACM,IAAmB,EACvB,GAIA;EACE;EACA,MAAM,CAAC,KAAQ,CAAC;EAChB,aAAa;CACf,CACF,GAEM,IACJ,MAAuB,IAAa,EAAiB,UAAU,EAAa,UACxE,KACH,IACG,EAAiB,MAAM,2BACvB,EAAa,MAAM,oBAAoB,CAAC;CAE9C,OACE,kBAAC,GAAD;EAAmB;EAAoB;YACrC,kBAAC,GAAD;GAAoB,WAAU;aAA9B;IACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAkB,WAAU;eAA5B,CACE,kBAAC,GAAD,EAAS,WAAU,SAAU,CAAA,GAC5B,EAAE,4BAA4B,oBAAoB,CACnC;QAClB,kBAAC,GAAD,EAAA,UACG,EACC,kCACA,uDACF,CAAC,CAAC,QAAQ,aAAa,CAAK,EACN,CAAA,CACP,EAAA,CAAA;IAEnB,kBAAC,OAAD;KAAK,WAAU;eACZ,IACC,kBAAC,KAAD;MAAG,WAAU;gBACV,EAAE,8BAA8B,kBAAkB;KAClD,CAAA,IACD,EAAQ,WAAW,IACrB,kBAAC,GAAD;MACE,cAAa;MACb,OAAO,EAAE,iCAAiC,6BAA6B;MACvE,aAAa,EACX,uCACA,iFACF;KACD,CAAA,IAED,kBAAC,MAAD;MAAI,WAAU;gBACX,EAAQ,KAAK,MACZ,kBAAC,MAAD;OAEE,WAAU;iBAFZ;QAIE,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,QAAD;UAAM,WAAU;oBACb,EAAa,EAAM,MAAM;SACtB,CAAA,GACN,kBAAC,QAAD;UAAM,WAAU;oBACb,IAAI,KAAK,EAAM,SAAS,CAAC,CAAC,eAAe;SACtC,CAAA,CACH;;QACJ,EAAM,cAAc,EAAM,WACzB,kBAAC,KAAD;SAAG,WAAU;mBAAb;UACG,EAAM,cAAc;UAAI;UAAI,EAAM,YAAY;SAC9C;aACD;QACH,EAAM,SACL,kBAAC,KAAD;SAAG,WAAU;mBAAb;UAAuD;UAC7C,EAAM;UAAO;SACpB;aACD;QACJ,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAE,yBAAyB,cAAc,CAAC,CAAC,QAAQ,aAAa,EAAM,OAAO;QAC7E,CAAA;OACD;SAxBG,EAAM,EAwBT,CACL;KACC,CAAA;IAEH,CAAA;IAEL,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAoB,EAAE,4BAA4B,OAAO,EAAqB,CAAA,EAC7D,CAAA;GACD;;CACT,CAAA;AAEjB"}
@@ -14,6 +14,14 @@ type EntityCardProps = {
14
14
  imageAlt?: string;
15
15
  /** When provided, the whole card becomes a router Link. */
16
16
  to?: string;
17
+ /**
18
+ * When provided (and `to` is not), the title becomes a toggle button that
19
+ * focuses this record in place — e.g. a booking on the bookings page, which
20
+ * has no detail route. The focused card is ringed.
21
+ */
22
+ onSelect?: () => void;
23
+ /** Whether this record is the focused one (only meaningful with `onSelect`). */
24
+ selected?: boolean;
17
25
  className?: string;
18
26
  };
19
27
  /**
@@ -22,6 +30,6 @@ type EntityCardProps = {
22
30
  * fallback otherwise) above the title / meta / price. Hover lifts the shadow and
23
31
  * gently zooms the photo. When `to` is set the whole surface is one accessible link.
24
32
  */
25
- export declare function EntityCard({ title, meta, price, badge, footer, image, imageAlt, to, className, }: EntityCardProps): import("react").JSX.Element;
33
+ export declare function EntityCard({ title, meta, price, badge, footer, image, imageAlt, to, onSelect, selected, className, }: EntityCardProps): import("react").JSX.Element;
26
34
  export {};
27
35
  //# sourceMappingURL=EntityCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCard.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/EntityCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,EAAE,EACF,SAAS,GACV,EAAE,eAAe,+BA4DjB"}
1
+ {"version":3,"file":"EntityCard.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/EntityCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,QAAgB,EAChB,SAAS,GACV,EAAE,eAAe,+BA4EjB"}
@@ -3,8 +3,8 @@ import { Link as t } from "react-router";
3
3
  import { GlassCard as n } from "@burdenoff/fe-libs/ui";
4
4
  import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
5
5
  //#region src/ggnomad/components/EntityCard.tsx
6
- function o({ title: o, meta: s, price: c, badge: l, footer: u, image: d, imageAlt: f, to: p, className: m }) {
7
- let h = /* @__PURE__ */ a(r, { children: [
6
+ function o({ title: o, meta: s, price: c, badge: l, footer: u, image: d, imageAlt: f, to: p, onSelect: m, selected: h = !1, className: g }) {
7
+ let _ = /* @__PURE__ */ a(r, { children: [
8
8
  /* @__PURE__ */ a("div", {
9
9
  className: "relative -mx-4 -mt-4 mb-3 aspect-[16/10] overflow-hidden",
10
10
  children: [
@@ -27,7 +27,13 @@ function o({ title: o, meta: s, price: c, badge: l, footer: u, image: d, imageAl
27
27
  }),
28
28
  /* @__PURE__ */ a("div", {
29
29
  className: "min-w-0",
30
- children: [/* @__PURE__ */ i("p", {
30
+ children: [m && !p ? /* @__PURE__ */ i("button", {
31
+ type: "button",
32
+ "aria-pressed": h,
33
+ onClick: m,
34
+ className: "block w-full truncate rounded-sm text-left font-medium text-text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus cursor-pointer",
35
+ children: o
36
+ }) : /* @__PURE__ */ i("p", {
31
37
  className: "truncate font-medium text-text-primary",
32
38
  children: o
33
39
  }), s ? /* @__PURE__ */ i("p", {
@@ -49,13 +55,14 @@ function o({ title: o, meta: s, price: c, badge: l, footer: u, image: d, imageAl
49
55
  className: "group block rounded-card focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas",
50
56
  children: /* @__PURE__ */ i(n, {
51
57
  treatment: "plain",
52
- className: e("overflow-hidden border-border-seam p-4", m),
53
- children: h
58
+ className: e("overflow-hidden border-border-seam p-4", g),
59
+ children: _
54
60
  })
55
61
  }) : /* @__PURE__ */ i(n, {
56
62
  treatment: "plain",
57
- className: e("group overflow-hidden border-border-seam p-4", m),
58
- children: h
63
+ "aria-current": m && h ? "true" : void 0,
64
+ className: e("group overflow-hidden border-border-seam p-4", m && h && "ring-2 ring-action-primary-bg", g),
65
+ children: _
59
66
  });
60
67
  }
61
68
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCard.js","names":[],"sources":["../../../src/ggnomad/components/EntityCard.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Link } from 'react-router';\nimport { GlassCard } from '@burdenoff/fe-libs/ui';\nimport { cn } from '../utils/cn';\n\ntype EntityCardProps = {\n title: ReactNode;\n /** Optional secondary line (category / type / duration). */\n meta?: ReactNode;\n /** Right-aligned price or primary figure. */\n price?: ReactNode;\n badge?: ReactNode;\n footer?: ReactNode;\n /** Optional cover photo URL. Falls back to a branded gradient tile. */\n image?: string | null;\n /** Accessible description for the cover photo. */\n imageAlt?: string;\n /** When provided, the whole card becomes a router Link. */\n to?: string;\n className?: string;\n};\n\n/**\n * An inventory tile for a property / tour / event / activity / provider. When an\n * `image` is supplied it renders a 16:10 cover photo (with a branded gradient\n * fallback otherwise) above the title / meta / price. Hover lifts the shadow and\n * gently zooms the photo. When `to` is set the whole surface is one accessible link.\n */\nexport function EntityCard({\n title,\n meta,\n price,\n badge,\n footer,\n image,\n imageAlt,\n to,\n className,\n}: EntityCardProps) {\n const cover = (\n <div className=\"relative -mx-4 -mt-4 mb-3 aspect-[16/10] overflow-hidden\">\n {image ? (\n <img\n src={image}\n alt={imageAlt ?? ''}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"size-full object-cover transition-transform duration-300 group-hover:scale-[1.04]\"\n />\n ) : (\n <div\n aria-hidden=\"true\"\n className=\"size-full bg-gradient-to-br from-action-primary-bg/25 via-bg-sunken to-bg-sunken\"\n />\n )}\n <div className=\"pointer-events-none absolute inset-0 bg-gradient-to-t from-black/45 via-transparent to-transparent\" />\n {badge ? <div className=\"absolute left-2 top-2\">{badge}</div> : null}\n </div>\n );\n\n const body = (\n <>\n {cover}\n <div className=\"min-w-0\">\n <p className=\"truncate font-medium text-text-primary\">{title}</p>\n {meta ? <p className=\"mt-0.5 text-sm text-text-secondary\">{meta}</p> : null}\n </div>\n {price ? (\n <p className=\"mt-2 text-sm font-medium tabular-nums text-text-primary\">{price}</p>\n ) : null}\n {footer ? <div className=\"mt-2 text-sm text-text-secondary\">{footer}</div> : null}\n </>\n );\n\n if (to) {\n return (\n <Link\n to={to}\n className=\"group block rounded-card focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas\"\n >\n <GlassCard\n treatment=\"plain\"\n className={cn('overflow-hidden border-border-seam p-4', className)}\n >\n {body}\n </GlassCard>\n </Link>\n );\n }\n\n return (\n <GlassCard\n treatment=\"plain\"\n className={cn('group overflow-hidden border-border-seam p-4', className)}\n >\n {body}\n </GlassCard>\n );\n}\n"],"mappings":";;;;;AA4BA,SAAgB,EAAW,EACzB,UACA,SACA,UACA,UACA,WACA,UACA,aACA,OACA,gBACkB;CAsBlB,IAAM,IACJ,kBAAA,GAAA,EAAA,UAAA;EArBA,kBAAC,OAAD;GAAK,WAAU;aAAf;IACG,IACC,kBAAC,OAAD;KACE,KAAK;KACL,KAAK,KAAY;KACjB,SAAQ;KACR,UAAS;KACT,WAAU;IACX,CAAA,IAED,kBAAC,OAAD;KACE,eAAY;KACZ,WAAU;IACX,CAAA;IAEH,kBAAC,OAAD,EAAK,WAAU,qGAAsG,CAAA;IACpH,IAAQ,kBAAC,OAAD;KAAK,WAAU;eAAyB;IAAW,CAAA,IAAI;GAC7D;GAKF;EACD,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,KAAD;IAAG,WAAU;cAA0C;GAAS,CAAA,GAC/D,IAAO,kBAAC,KAAD;IAAG,WAAU;cAAsC;GAAQ,CAAA,IAAI,IACpE;;EACJ,IACC,kBAAC,KAAD;GAAG,WAAU;aAA2D;EAAS,CAAA,IAC/E;EACH,IAAS,kBAAC,OAAD;GAAK,WAAU;aAAoC;EAAY,CAAA,IAAI;CAC7E,EAAA,CAAA;CAmBJ,OAhBI,IAEA,kBAAC,GAAD;EACM;EACJ,WAAU;YAEV,kBAAC,GAAD;GACE,WAAU;GACV,WAAW,EAAG,0CAA0C,CAAS;aAEhE;EACQ,CAAA;CACP,CAAA,IAKR,kBAAC,GAAD;EACE,WAAU;EACV,WAAW,EAAG,gDAAgD,CAAS;YAEtE;CACQ,CAAA;AAEf"}
1
+ {"version":3,"file":"EntityCard.js","names":[],"sources":["../../../src/ggnomad/components/EntityCard.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Link } from 'react-router';\nimport { GlassCard } from '@burdenoff/fe-libs/ui';\nimport { cn } from '../utils/cn';\n\ntype EntityCardProps = {\n title: ReactNode;\n /** Optional secondary line (category / type / duration). */\n meta?: ReactNode;\n /** Right-aligned price or primary figure. */\n price?: ReactNode;\n badge?: ReactNode;\n footer?: ReactNode;\n /** Optional cover photo URL. Falls back to a branded gradient tile. */\n image?: string | null;\n /** Accessible description for the cover photo. */\n imageAlt?: string;\n /** When provided, the whole card becomes a router Link. */\n to?: string;\n /**\n * When provided (and `to` is not), the title becomes a toggle button that\n * focuses this record in place — e.g. a booking on the bookings page, which\n * has no detail route. The focused card is ringed.\n */\n onSelect?: () => void;\n /** Whether this record is the focused one (only meaningful with `onSelect`). */\n selected?: boolean;\n className?: string;\n};\n\n/**\n * An inventory tile for a property / tour / event / activity / provider. When an\n * `image` is supplied it renders a 16:10 cover photo (with a branded gradient\n * fallback otherwise) above the title / meta / price. Hover lifts the shadow and\n * gently zooms the photo. When `to` is set the whole surface is one accessible link.\n */\nexport function EntityCard({\n title,\n meta,\n price,\n badge,\n footer,\n image,\n imageAlt,\n to,\n onSelect,\n selected = false,\n className,\n}: EntityCardProps) {\n const cover = (\n <div className=\"relative -mx-4 -mt-4 mb-3 aspect-[16/10] overflow-hidden\">\n {image ? (\n <img\n src={image}\n alt={imageAlt ?? ''}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"size-full object-cover transition-transform duration-300 group-hover:scale-[1.04]\"\n />\n ) : (\n <div\n aria-hidden=\"true\"\n className=\"size-full bg-gradient-to-br from-action-primary-bg/25 via-bg-sunken to-bg-sunken\"\n />\n )}\n <div className=\"pointer-events-none absolute inset-0 bg-gradient-to-t from-black/45 via-transparent to-transparent\" />\n {badge ? <div className=\"absolute left-2 top-2\">{badge}</div> : null}\n </div>\n );\n\n const body = (\n <>\n {cover}\n <div className=\"min-w-0\">\n {onSelect && !to ? (\n <button\n type=\"button\"\n aria-pressed={selected}\n onClick={onSelect}\n className=\"block w-full truncate rounded-sm text-left font-medium text-text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus cursor-pointer\"\n >\n {title}\n </button>\n ) : (\n <p className=\"truncate font-medium text-text-primary\">{title}</p>\n )}\n {meta ? <p className=\"mt-0.5 text-sm text-text-secondary\">{meta}</p> : null}\n </div>\n {price ? (\n <p className=\"mt-2 text-sm font-medium tabular-nums text-text-primary\">{price}</p>\n ) : null}\n {footer ? <div className=\"mt-2 text-sm text-text-secondary\">{footer}</div> : null}\n </>\n );\n\n if (to) {\n return (\n <Link\n to={to}\n className=\"group block rounded-card focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas\"\n >\n <GlassCard\n treatment=\"plain\"\n className={cn('overflow-hidden border-border-seam p-4', className)}\n >\n {body}\n </GlassCard>\n </Link>\n );\n }\n\n return (\n <GlassCard\n treatment=\"plain\"\n aria-current={onSelect && selected ? 'true' : undefined}\n className={cn(\n 'group overflow-hidden border-border-seam p-4',\n onSelect && selected && 'ring-2 ring-action-primary-bg',\n className\n )}\n >\n {body}\n </GlassCard>\n );\n}\n"],"mappings":";;;;;AAoCA,SAAgB,EAAW,EACzB,UACA,SACA,UACA,UACA,WACA,UACA,aACA,OACA,aACA,cAAW,IACX,gBACkB;CAsBlB,IAAM,IACJ,kBAAA,GAAA,EAAA,UAAA;EArBA,kBAAC,OAAD;GAAK,WAAU;aAAf;IACG,IACC,kBAAC,OAAD;KACE,KAAK;KACL,KAAK,KAAY;KACjB,SAAQ;KACR,UAAS;KACT,WAAU;IACX,CAAA,IAED,kBAAC,OAAD;KACE,eAAY;KACZ,WAAU;IACX,CAAA;IAEH,kBAAC,OAAD,EAAK,WAAU,qGAAsG,CAAA;IACpH,IAAQ,kBAAC,OAAD;KAAK,WAAU;eAAyB;IAAW,CAAA,IAAI;GAC7D;GAKF;EACD,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,KAAY,CAAC,IACZ,kBAAC,UAAD;IACE,MAAK;IACL,gBAAc;IACd,SAAS;IACT,WAAU;cAET;GACK,CAAA,IAER,kBAAC,KAAD;IAAG,WAAU;cAA0C;GAAS,CAAA,GAEjE,IAAO,kBAAC,KAAD;IAAG,WAAU;cAAsC;GAAQ,CAAA,IAAI,IACpE;;EACJ,IACC,kBAAC,KAAD;GAAG,WAAU;aAA2D;EAAS,CAAA,IAC/E;EACH,IAAS,kBAAC,OAAD;GAAK,WAAU;aAAoC;EAAY,CAAA,IAAI;CAC7E,EAAA,CAAA;CAmBJ,OAhBI,IAEA,kBAAC,GAAD;EACM;EACJ,WAAU;YAEV,kBAAC,GAAD;GACE,WAAU;GACV,WAAW,EAAG,0CAA0C,CAAS;aAEhE;EACQ,CAAA;CACP,CAAA,IAKR,kBAAC,GAAD;EACE,WAAU;EACV,gBAAc,KAAY,IAAW,SAAS,KAAA;EAC9C,WAAW,EACT,gDACA,KAAY,KAAY,iCACxB,CACF;YAEC;CACQ,CAAA;AAEf"}
@@ -69,6 +69,12 @@ export declare const CHECK_IN_GGNOMAD_BOOKING_MUTATION: import('graphql').Docume
69
69
  export declare const COMPLETE_GGNOMAD_BOOKING_MUTATION: import('graphql').DocumentNode;
70
70
  export declare const MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION: import('graphql').DocumentNode;
71
71
  export declare const GGNOMAD_AUDIT_LOG_QUERY: import('graphql').DocumentNode;
72
+ /**
73
+ * BOFF-10248 — ggnomadAuditLog returns history only to the people involved in
74
+ * an entity (a booking's traveler or host, a listing's owner). Operators
75
+ * (ggnomad:manage) read any entity's history through this field.
76
+ */
77
+ export declare const GGNOMAD_WORKSPACE_AUDIT_LOG_QUERY: import('graphql').DocumentNode;
72
78
  export declare const GGNOMAD_MY_PROVIDERS_QUERY: import('graphql').DocumentNode;
73
79
  export declare const GGNOMAD_MY_PROVIDER_ANALYTICS_QUERY: import('graphql').DocumentNode;
74
80
  export declare const GGNOMAD_OPERATOR_STOREFRONT_QUERY: import('graphql').DocumentNode;
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/ggnomad/graphql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/ggnomad/graphql.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,gCAkBlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,gCA2BzC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,gCAkD1C,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAkBnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,gCAgCpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCAoClC,CAAC;AAGF,eAAO,MAAM,kCAAkC,gCAS9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,gCAiC/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,gCAoC9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,gCAgChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gCAiC/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,gCAmCpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCAoClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gCAyB/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCA0BlC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAInC,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAe3C,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAI5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAO3C,CAAC;AAGF,eAAO,MAAM,qBAAqB,gCAejC,CAAC;AAEF,eAAO,MAAM,6BAA6B,gCAWzC,CAAC;AAEF,eAAO,MAAM,8BAA8B,gCAW1C,CAAC;AAEF,eAAO,MAAM,8BAA8B,gCAS1C,CAAC;AAGF,eAAO,MAAM,wBAAwB,gCAepC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCA2BnC,CAAC;AAGF,eAAO,MAAM,iCAAiC,gCAe7C,CAAC;AAEF,eAAO,MAAM,iCAAiC,gCAe7C,CAAC;AAEF,eAAO,MAAM,iCAAiC,gCAI7C,CAAC;AAEF,eAAO,MAAM,mCAAmC,gCAc/C,CAAC;AAEF,eAAO,MAAM,sCAAsC,gCAIlD,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAkB5C,CAAC;AAGF,eAAO,MAAM,4BAA4B,gCAQxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,gCAwBjC,CAAC;AAGF,eAAO,MAAM,8BAA8B,gCAS1C,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAQ3C,CAAC;AAGF,eAAO,MAAM,gCAAgC,gCAW5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,gCAWxC,CAAC;AAEF,eAAO,MAAM,6BAA6B,gCAWzC,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAW5C,CAAC;AAGF,eAAO,MAAM,6BAA6B,gCAgBzC,CAAC;AAEF,eAAO,MAAM,qCAAqC,gCAejD,CAAC;AAEF,eAAO,MAAM,qCAAqC,gCAOjD,CAAC;AAEF,eAAO,MAAM,qCAAqC,gCAIjD,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAwB3C,CAAC;AAEF,eAAO,MAAM,yCAAyC,gCASrD,CAAC;AAEF,eAAO,MAAM,wCAAwC,gCAUpD,CAAC;AAEF,eAAO,MAAM,2BAA2B,gCAUvC,CAAC;AA4CF,eAAO,MAAM,kCAAkC,gCAM9C,CAAC;AAEF,eAAO,MAAM,0CAA0C,gCAMtD,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAM5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAM3C,CAAC;AAEF,eAAO,MAAM,8BAA8B,gCAM1C,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAM3C,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAM5C,CAAC;AAEF,eAAO,MAAM,2BAA2B,gCAkBvC,CAAC;AAEF,eAAO,MAAM,iCAAiC,gCAO7C,CAAC;AAEF,eAAO,MAAM,iCAAiC,gCAO7C,CAAC;AAEF,eAAO,MAAM,qCAAqC,gCAOjD,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAgBnC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,gCAqB7C,CAAC;AAIF,eAAO,MAAM,0BAA0B,gCAStC,CAAC;AAEF,eAAO,MAAM,mCAAmC,gCAuC/C,CAAC;AAIF,eAAO,MAAM,iCAAiC,gCAc7C,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAiD5C,CAAC;AAEF,eAAO,MAAM,2CAA2C,gCAcvD,CAAC;AAEF,eAAO,MAAM,2CAA2C,gCAiBvD,CAAC;AAEF,eAAO,MAAM,4CAA4C,gCAQxD,CAAC;AAEF,eAAO,MAAM,8CAA8C,gCAQ1D,CAAC;AAIF,eAAO,MAAM,2BAA2B,gCAyBvC,CAAC;AAIF,eAAO,MAAM,8BAA8B,gCAyB1C,CAAC;AAEF,eAAO,MAAM,4BAA4B,gCAaxC,CAAC;AAIF,eAAO,MAAM,4BAA4B,gCAmBxC,CAAC;AAEF,eAAO,MAAM,mCAAmC,gCAgB/C,CAAC;AAEF,eAAO,MAAM,8BAA8B,gCAgB1C,CAAC;AAEF,eAAO,MAAM,kCAAkC,gCAU9C,CAAC;AAEF,eAAO,MAAM,sCAAsC,gCASlD,CAAC;AAEF,eAAO,MAAM,yCAAyC,gCAIrD,CAAC;AAEF,eAAO,MAAM,oCAAoC,gCAShD,CAAC"}
@@ -932,6 +932,27 @@ var Y = e`
932
932
  }
933
933
  }
934
934
  `, te = e`
935
+ query GGNomadWorkspaceAuditLog(
936
+ $entityType: String!
937
+ $entityId: String!
938
+ $limit: Int
939
+ $offset: Int
940
+ ) {
941
+ ggnomadWorkspaceAuditLog(
942
+ entityType: $entityType
943
+ entityId: $entityId
944
+ pagination: { limit: $limit, offset: $offset }
945
+ ) {
946
+ id
947
+ action
948
+ fromStatus
949
+ toStatus
950
+ reason
951
+ actorId
952
+ createdAt
953
+ }
954
+ }
955
+ `, ne = e`
935
956
  query GGNomadMyProviders {
936
957
  myGgnomadProviders {
937
958
  id
@@ -940,7 +961,7 @@ var Y = e`
940
961
  status
941
962
  }
942
963
  }
943
- `, ne = e`
964
+ `, re = e`
944
965
  query GGNomadMyProviderAnalytics(
945
966
  $providerId: ID!
946
967
  $dateFrom: DateTime
@@ -979,7 +1000,7 @@ var Y = e`
979
1000
  }
980
1001
  }
981
1002
  }
982
- `, re = e`
1003
+ `, ie = e`
983
1004
  query GGNomadOperatorStorefront($providerId: ID!) {
984
1005
  ggnomadOperatorStorefront(providerId: $providerId) {
985
1006
  id
@@ -993,7 +1014,7 @@ var Y = e`
993
1014
  publishedAt
994
1015
  }
995
1016
  }
996
- `, ie = e`
1017
+ `, ae = e`
997
1018
  query GGNomadStorefrontBySlug($workspaceId: ID!, $slug: String!) {
998
1019
  ggnomadStorefrontBySlug(workspaceId: $workspaceId, slug: $slug) {
999
1020
  storefront {
@@ -1042,7 +1063,7 @@ var Y = e`
1042
1063
  }
1043
1064
  }
1044
1065
  }
1045
- `, ae = e`
1066
+ `, oe = e`
1046
1067
  mutation CreateGGNomadOperatorStorefront($input: CreateGgnomadOperatorStorefrontInput!) {
1047
1068
  createGgnomadOperatorStorefront(input: $input) {
1048
1069
  id
@@ -1056,7 +1077,7 @@ var Y = e`
1056
1077
  publishedAt
1057
1078
  }
1058
1079
  }
1059
- `, oe = e`
1080
+ `, se = e`
1060
1081
  mutation UpdateGGNomadOperatorStorefront(
1061
1082
  $id: ID!
1062
1083
  $input: UpdateGgnomadOperatorStorefrontInput!
@@ -1073,7 +1094,7 @@ var Y = e`
1073
1094
  publishedAt
1074
1095
  }
1075
1096
  }
1076
- `, se = e`
1097
+ `, ce = e`
1077
1098
  mutation PublishGGNomadOperatorStorefront($id: ID!) {
1078
1099
  publishGgnomadOperatorStorefront(id: $id) {
1079
1100
  id
@@ -1081,7 +1102,7 @@ var Y = e`
1081
1102
  publishedAt
1082
1103
  }
1083
1104
  }
1084
- `, ce = e`
1105
+ `, le = e`
1085
1106
  mutation UnpublishGGNomadOperatorStorefront($id: ID!) {
1086
1107
  unpublishGgnomadOperatorStorefront(id: $id) {
1087
1108
  id
@@ -1089,7 +1110,7 @@ var Y = e`
1089
1110
  publishedAt
1090
1111
  }
1091
1112
  }
1092
- `, le = e`
1113
+ `, ue = e`
1093
1114
  query GGNomadBookingSlots(
1094
1115
  $listingId: ID!
1095
1116
  $listingType: GgnomadListingType!
@@ -1114,7 +1135,7 @@ var Y = e`
1114
1135
  isActive
1115
1136
  }
1116
1137
  }
1117
- `, ue = e`
1138
+ `, de = e`
1118
1139
  query GGNomadTransportSearch($input: SearchGgnomadTransportInput!) {
1119
1140
  searchGgnomadTransport(input: $input) {
1120
1141
  offerId
@@ -1139,7 +1160,7 @@ var Y = e`
1139
1160
  providerName
1140
1161
  }
1141
1162
  }
1142
- `, de = e`
1163
+ `, fe = e`
1143
1164
  mutation CreateGGNomadTrip($input: CreateGgnomadTripInput!) {
1144
1165
  createGgnomadTrip(input: $input) {
1145
1166
  id
@@ -1152,7 +1173,7 @@ var Y = e`
1152
1173
  currency
1153
1174
  }
1154
1175
  }
1155
- `, fe = e`
1176
+ `, pe = e`
1156
1177
  query GGNomadMyGroupTrips {
1157
1178
  myGgnomadGroupTrips {
1158
1179
  id
@@ -1171,7 +1192,7 @@ var Y = e`
1171
1192
  }
1172
1193
  }
1173
1194
  }
1174
- `, pe = e`
1195
+ `, me = e`
1175
1196
  query GGNomadGroupTripCostSplit($groupTripId: ID!) {
1176
1197
  ggnomadGroupTripCostSplit(groupTripId: $groupTripId) {
1177
1198
  currency
@@ -1187,7 +1208,7 @@ var Y = e`
1187
1208
  }
1188
1209
  }
1189
1210
  }
1190
- `, me = e`
1211
+ `, he = e`
1191
1212
  query GGNomadGroupTripVotes($groupTripId: ID!) {
1192
1213
  ggnomadGroupTripVotes(groupTripId: $groupTripId) {
1193
1214
  tripPlanItemId
@@ -1203,7 +1224,7 @@ var Y = e`
1203
1224
  }
1204
1225
  }
1205
1226
  }
1206
- `, he = e`
1227
+ `, ge = e`
1207
1228
  mutation CreateGGNomadGroupTrip($input: CreateGgnomadGroupTripInput!) {
1208
1229
  createGgnomadGroupTrip(input: $input) {
1209
1230
  id
@@ -1213,7 +1234,7 @@ var Y = e`
1213
1234
  currency
1214
1235
  }
1215
1236
  }
1216
- `, ge = e`
1237
+ `, _e = e`
1217
1238
  mutation AddGGNomadGroupTripMember($groupTripId: ID!, $input: AddGgnomadGroupTripMemberInput!) {
1218
1239
  addGgnomadGroupTripMember(groupTripId: $groupTripId, input: $input) {
1219
1240
  id
@@ -1222,11 +1243,11 @@ var Y = e`
1222
1243
  email
1223
1244
  }
1224
1245
  }
1225
- `, _e = e`
1246
+ `, ve = e`
1226
1247
  mutation RemoveGGNomadGroupTripMember($groupTripId: ID!, $memberId: ID!) {
1227
1248
  removeGgnomadGroupTripMember(groupTripId: $groupTripId, memberId: $memberId)
1228
1249
  }
1229
- `, ve = e`
1250
+ `, ye = e`
1230
1251
  mutation VoteGGNomadTripPlanItem($groupTripId: ID!, $input: VoteGgnomadTripPlanItemInput!) {
1231
1252
  voteGgnomadTripPlanItem(groupTripId: $groupTripId, input: $input) {
1232
1253
  id
@@ -1237,6 +1258,6 @@ var Y = e`
1237
1258
  }
1238
1259
  `;
1239
1260
  //#endregion
1240
- export { ge as ADD_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION, E as ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, z as APPROVE_GGNOMAD_BOOKING_APPROVAL_MUTATION, G as APPROVE_GGNOMAD_LISTING_MUTATION, v as CANCEL_GGNOMAD_BOOKING_MUTATION, X as CHECK_IN_GGNOMAD_BOOKING_MUTATION, Z as COMPLETE_GGNOMAD_BOOKING_MUTATION, g as CREATE_GGNOMAD_BOOKING_MUTATION, he as CREATE_GGNOMAD_GROUP_TRIP_MUTATION, ae as CREATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, O as CREATE_GGNOMAD_PROVIDER_MUTATION, j as CREATE_GGNOMAD_REVIEW_MUTATION, L as CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION, de as CREATE_GGNOMAD_TRIP_MUTATION, w as CREATE_GGNOMAD_TRIP_PLAN_MUTATION, R as DELETE_GGNOMAD_TRAVEL_POLICY_MUTATION, d as GGNOMAD_ACTIVITIES_QUERY, f as GGNOMAD_ACTIVITY_QUERY, $ as GGNOMAD_AUDIT_LOG_QUERY, n as GGNOMAD_BOOKABLE_SAMPLE_QUERY, m as GGNOMAD_BOOKINGS_QUERY, ee as GGNOMAD_BOOKING_APPROVALS_QUERY, Y as GGNOMAD_BOOKING_QUEUE_QUERY, le as GGNOMAD_BOOKING_SLOTS_QUERY, l as GGNOMAD_EVENTS_QUERY, u as GGNOMAD_EVENT_QUERY, h as GGNOMAD_FAVORITES_QUERY, r as GGNOMAD_FAVORITE_TARGETS_QUERY, pe as GGNOMAD_GROUP_TRIP_COST_SPLIT_QUERY, me as GGNOMAD_GROUP_TRIP_VOTES_QUERY, U as GGNOMAD_LISTING_REVIEW_QUEUE_QUERY, fe as GGNOMAD_MY_GROUP_TRIPS_QUERY, te as GGNOMAD_MY_PROVIDERS_QUERY, ne as GGNOMAD_MY_PROVIDER_ANALYTICS_QUERY, re as GGNOMAD_OPERATOR_STOREFRONT_QUERY, t as GGNOMAD_OVERVIEW_QUERY, a as GGNOMAD_PROPERTIES_QUERY, o as GGNOMAD_PROPERTY_QUERY, i as GGNOMAD_PROVIDERS_QUERY, A as GGNOMAD_REVIEWS_QUERY, k as GGNOMAD_REVIEW_SUMMARY_QUERY, V as GGNOMAD_SPEND_SUMMARY_QUERY, ie as GGNOMAD_STOREFRONT_BY_SLUG_QUERY, y as GGNOMAD_TICKETS_QUERY, s as GGNOMAD_TOURS_QUERY, c as GGNOMAD_TOUR_QUERY, ue as GGNOMAD_TRANSPORT_SEARCH_QUERY, I as GGNOMAD_TRAVEL_POLICIES_QUERY, p as GGNOMAD_TRIPS_QUERY, S as GGNOMAD_TRIP_PLANS_QUERY, C as GGNOMAD_TRIP_PLAN_QUERY, b as ISSUE_GGNOMAD_TICKET_MUTATION, Q as MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION, q as PAUSE_GGNOMAD_LISTING_MUTATION, se as PUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, x as REDEEM_GGNOMAD_TICKET_MUTATION, B as REJECT_GGNOMAD_BOOKING_APPROVAL_MUTATION, K as REJECT_GGNOMAD_LISTING_MUTATION, _e as REMOVE_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION, D as REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, J as RESUME_GGNOMAD_LISTING_MUTATION, W as SUBMIT_GGNOMAD_LISTING_FOR_REVIEW_MUTATION, _ as TOGGLE_GGNOMAD_FAVORITE_MUTATION, ce as UNPUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, F as UPDATE_GGNOMAD_ACTIVITY_MUTATION, P as UPDATE_GGNOMAD_EVENT_MUTATION, oe as UPDATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, M as UPDATE_GGNOMAD_PROPERTY_MUTATION, N as UPDATE_GGNOMAD_TOUR_MUTATION, T as UPDATE_GGNOMAD_TRIP_PLAN_MUTATION, ve as VOTE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION };
1261
+ export { _e as ADD_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION, E as ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, z as APPROVE_GGNOMAD_BOOKING_APPROVAL_MUTATION, G as APPROVE_GGNOMAD_LISTING_MUTATION, v as CANCEL_GGNOMAD_BOOKING_MUTATION, X as CHECK_IN_GGNOMAD_BOOKING_MUTATION, Z as COMPLETE_GGNOMAD_BOOKING_MUTATION, g as CREATE_GGNOMAD_BOOKING_MUTATION, ge as CREATE_GGNOMAD_GROUP_TRIP_MUTATION, oe as CREATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, O as CREATE_GGNOMAD_PROVIDER_MUTATION, j as CREATE_GGNOMAD_REVIEW_MUTATION, L as CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION, fe as CREATE_GGNOMAD_TRIP_MUTATION, w as CREATE_GGNOMAD_TRIP_PLAN_MUTATION, R as DELETE_GGNOMAD_TRAVEL_POLICY_MUTATION, d as GGNOMAD_ACTIVITIES_QUERY, f as GGNOMAD_ACTIVITY_QUERY, $ as GGNOMAD_AUDIT_LOG_QUERY, n as GGNOMAD_BOOKABLE_SAMPLE_QUERY, m as GGNOMAD_BOOKINGS_QUERY, ee as GGNOMAD_BOOKING_APPROVALS_QUERY, Y as GGNOMAD_BOOKING_QUEUE_QUERY, ue as GGNOMAD_BOOKING_SLOTS_QUERY, l as GGNOMAD_EVENTS_QUERY, u as GGNOMAD_EVENT_QUERY, h as GGNOMAD_FAVORITES_QUERY, r as GGNOMAD_FAVORITE_TARGETS_QUERY, me as GGNOMAD_GROUP_TRIP_COST_SPLIT_QUERY, he as GGNOMAD_GROUP_TRIP_VOTES_QUERY, U as GGNOMAD_LISTING_REVIEW_QUEUE_QUERY, pe as GGNOMAD_MY_GROUP_TRIPS_QUERY, ne as GGNOMAD_MY_PROVIDERS_QUERY, re as GGNOMAD_MY_PROVIDER_ANALYTICS_QUERY, ie as GGNOMAD_OPERATOR_STOREFRONT_QUERY, t as GGNOMAD_OVERVIEW_QUERY, a as GGNOMAD_PROPERTIES_QUERY, o as GGNOMAD_PROPERTY_QUERY, i as GGNOMAD_PROVIDERS_QUERY, A as GGNOMAD_REVIEWS_QUERY, k as GGNOMAD_REVIEW_SUMMARY_QUERY, V as GGNOMAD_SPEND_SUMMARY_QUERY, ae as GGNOMAD_STOREFRONT_BY_SLUG_QUERY, y as GGNOMAD_TICKETS_QUERY, s as GGNOMAD_TOURS_QUERY, c as GGNOMAD_TOUR_QUERY, de as GGNOMAD_TRANSPORT_SEARCH_QUERY, I as GGNOMAD_TRAVEL_POLICIES_QUERY, p as GGNOMAD_TRIPS_QUERY, S as GGNOMAD_TRIP_PLANS_QUERY, C as GGNOMAD_TRIP_PLAN_QUERY, te as GGNOMAD_WORKSPACE_AUDIT_LOG_QUERY, b as ISSUE_GGNOMAD_TICKET_MUTATION, Q as MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION, q as PAUSE_GGNOMAD_LISTING_MUTATION, ce as PUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, x as REDEEM_GGNOMAD_TICKET_MUTATION, B as REJECT_GGNOMAD_BOOKING_APPROVAL_MUTATION, K as REJECT_GGNOMAD_LISTING_MUTATION, ve as REMOVE_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION, D as REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, J as RESUME_GGNOMAD_LISTING_MUTATION, W as SUBMIT_GGNOMAD_LISTING_FOR_REVIEW_MUTATION, _ as TOGGLE_GGNOMAD_FAVORITE_MUTATION, le as UNPUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, F as UPDATE_GGNOMAD_ACTIVITY_MUTATION, P as UPDATE_GGNOMAD_EVENT_MUTATION, se as UPDATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION, M as UPDATE_GGNOMAD_PROPERTY_MUTATION, N as UPDATE_GGNOMAD_TOUR_MUTATION, T as UPDATE_GGNOMAD_TRIP_PLAN_MUTATION, ye as VOTE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION };
1241
1262
 
1242
1263
  //# sourceMappingURL=graphql.js.map