@voyant-travel/bookings-react 0.151.5 → 0.153.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/dist/admin/booking-detail-host.d.ts +12 -12
- package/dist/admin/booking-detail-host.d.ts.map +1 -1
- package/dist/admin/booking-detail-host.js +12 -5
- package/dist/admin/index.d.ts +5 -26
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +11 -25
- package/dist/admin/pages/booking-detail-page.d.ts +3 -5
- package/dist/admin/pages/booking-detail-page.d.ts.map +1 -1
- package/dist/admin/pages/booking-detail-page.js +3 -5
- package/dist/admin/pages/bookings-index-page.d.ts +2 -12
- package/dist/admin/pages/bookings-index-page.d.ts.map +1 -1
- package/dist/admin/pages/bookings-index-page.js +4 -3
- package/dist/admin/slots.d.ts +7 -0
- package/dist/admin/slots.d.ts.map +1 -1
- package/dist/admin/slots.js +7 -0
- package/dist/hooks/use-public-booking-session-flow-mutation.d.ts +1 -1
- package/dist/hooks/use-public-booking-session.d.ts +1 -1
- package/dist/query-options.d.ts +4 -4
- package/dist/storefront/index.d.ts +4 -0
- package/dist/storefront/index.d.ts.map +1 -0
- package/dist/storefront/index.js +3 -0
- package/dist/storefront/resolve-contract-variables.d.ts +131 -0
- package/dist/storefront/resolve-contract-variables.d.ts.map +1 -0
- package/dist/storefront/resolve-contract-variables.js +492 -0
- package/dist/storefront/storefront-booking-errors.d.ts +13 -0
- package/dist/storefront/storefront-booking-errors.d.ts.map +1 -0
- package/dist/storefront/storefront-booking-errors.js +50 -0
- package/dist/storefront/storefront-booking-journey.d.ts +72 -0
- package/dist/storefront/storefront-booking-journey.d.ts.map +1 -0
- package/dist/storefront/storefront-booking-journey.js +380 -0
- package/dist/storefront/storefront-booking-page.d.ts +36 -0
- package/dist/storefront/storefront-booking-page.d.ts.map +1 -0
- package/dist/storefront/storefront-booking-page.js +213 -0
- package/package.json +59 -24
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ components and page-level compositions (formerly `@voyant-travel/bookings-ui`).
|
|
|
5
5
|
|
|
6
6
|
Headless consumers (storefronts, portals) import from the root, `./hooks`,
|
|
7
7
|
`./client`, or `./query-keys` — these pull no styling peers. Styled surfaces
|
|
8
|
-
live under `./ui`, `./components/*`, `./journey`, `./admin`, `./i18n`, and
|
|
8
|
+
live under `./ui`, `./components/*`, `./journey`, `./storefront`, `./admin`, `./i18n`, and
|
|
9
9
|
`./styles.css`, whose heavier peers (`@voyant-travel/ui`, `@voyant-travel/admin`,
|
|
10
10
|
`@tanstack/react-table`, `lucide-react`, the other modules' `*-react`/`*-ui`
|
|
11
11
|
packages) are optional and only needed when you import those subpaths.
|
|
@@ -23,6 +23,11 @@ It now includes public storefront flow helpers alongside the admin hooks:
|
|
|
23
23
|
Those helpers target the public booking session contract for wizard-state
|
|
24
24
|
storage and room-selection repricing.
|
|
25
25
|
|
|
26
|
+
The `./storefront` subpath owns the reusable customer booking journey. Apps
|
|
27
|
+
provide route navigation, localized customer copy, and selected market scope;
|
|
28
|
+
the package owns public booking and checkout, contract preview, payment-policy
|
|
29
|
+
resolution, and contract-variable mapping.
|
|
30
|
+
|
|
26
31
|
## UI components
|
|
27
32
|
|
|
28
33
|
Importable React UI components for Voyant bookings. Bundler-consumed (Vite, Next.js, webpack, etc.).
|
|
@@ -23,15 +23,20 @@ export interface BookingDetailHostSlotContext {
|
|
|
23
23
|
/** Open an invoice in the host's side sheet (stays on the booking page). */
|
|
24
24
|
openInvoiceSheet: (invoiceId: string) => void;
|
|
25
25
|
/**
|
|
26
|
-
* Opens the
|
|
27
|
-
* owns — `@voyant-travel/finance-react/checkout-ui` depends on this package, so the host
|
|
28
|
-
* cannot import it without a cycle). Forwarded from
|
|
29
|
-
* {@link BookingDetailHostProps.onGenerateLink}; `undefined` when the app
|
|
30
|
-
* didn't wire one, in which case payment-link widgets hide the button.
|
|
26
|
+
* Opens the selected Finance package's Generate payment link flow.
|
|
31
27
|
*/
|
|
32
28
|
onGenerateLink: (() => void) | undefined;
|
|
33
29
|
}
|
|
34
30
|
export type BookingDetailHostSlot = (context: BookingDetailHostSlotContext) => ReactNode;
|
|
31
|
+
export interface BookingDetailPaymentActions {
|
|
32
|
+
onEditPayment?: (row: BookingPaymentsSummaryRow) => void;
|
|
33
|
+
onGenerateLink?: () => void;
|
|
34
|
+
onRecordPayment?: () => void;
|
|
35
|
+
}
|
|
36
|
+
export interface BookingDetailPaymentControllerSlotContext {
|
|
37
|
+
bookingId: string;
|
|
38
|
+
onActionsChange: (actions: BookingDetailPaymentActions) => void;
|
|
39
|
+
}
|
|
35
40
|
/**
|
|
36
41
|
* App-supplied extension points. The host owns everything package-clean
|
|
37
42
|
* (the Documents tab, the action-ledger timeline merge, the finance-tab
|
|
@@ -62,18 +67,13 @@ export interface BookingDetailHostProps {
|
|
|
62
67
|
activeTab?: BookingDetailTabValue;
|
|
63
68
|
onTabChange?: (tab: BookingDetailTabValue) => void;
|
|
64
69
|
/**
|
|
65
|
-
*
|
|
66
|
-
* the payment dialogs live app-side because `@voyant-travel/finance-react/ui`
|
|
67
|
-
* depends on this package, so importing it here would be a cycle).
|
|
70
|
+
* Overrides the selected Finance package's record-payment action.
|
|
68
71
|
*/
|
|
69
72
|
onRecordPayment?: () => void;
|
|
70
73
|
/** Opens the app's record-payment flow pre-filled with the row. */
|
|
71
74
|
onEditPayment?: (row: BookingPaymentsSummaryRow) => void;
|
|
72
75
|
/**
|
|
73
|
-
*
|
|
74
|
-
* host app — `@voyant-travel/finance-react/checkout-ui` depends on this package, so
|
|
75
|
-
* importing it here would be a cycle). Forwarded to slot/widget
|
|
76
|
-
* contributions via {@link BookingDetailHostSlotContext.onGenerateLink}.
|
|
76
|
+
* Overrides the selected Finance package's Generate payment link action.
|
|
77
77
|
*/
|
|
78
78
|
onGenerateLink?: () => void;
|
|
79
79
|
slots?: BookingDetailHostSlots;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking-detail-host.d.ts","sourceRoot":"","sources":["../../src/admin/booking-detail-host.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"booking-detail-host.d.ts","sourceRoot":"","sources":["../../src/admin/booking-detail-host.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAA;AAC7D,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAA;AAC1F,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,aAAa,CAAA;AAG5D,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAE7B,MAAM,YAAY,CAAA;AAOnB,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,CAAA;AAEnG;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,aAAa,CAAA;IACtB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;;;;OAIG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,4EAA4E;IAC5E,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C;;OAEG;IACH,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;CACzC;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,4BAA4B,KAAK,SAAS,CAAA;AAExF,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,IAAI,CAAA;IACxD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,yCAAyC;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAA;CAChE;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,sEAAsE;IACtE,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,qBAAqB,CAAA;KAAE,CAAA;IAChE,mFAAmF;IACnF,SAAS,CAAC,EAAE,qBAAqB,CAAA;IACjC;+DAC2D;IAC3D,mBAAmB,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC,CAAA;IACnE;+BAC2B;IAC3B,sBAAsB,CAAC,EAAE,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,oEAAoE;IACpE,SAAS,CAAC,EAAE,qBAAqB,CAAA;IACjC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;IAClD;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,mEAAmE;IACnE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,IAAI,CAAA;IACxD;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,SAAS,EACT,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,EACd,KAAK,GACN,EAAE,sBAAsB,+BA4LxB"}
|
|
@@ -3,12 +3,12 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
import { AdminWidgetSlotRenderer, resolveAdminWidgets, useAdminBreadcrumbs, useAdminExtensions, useAdminHref, useAdminNavigate, useLocale, useOperatorAdminMessages, } from "@voyant-travel/admin";
|
|
4
4
|
import { useAdminBookingPayments, useInvoices, usePaymentMutation, } from "@voyant-travel/finance-react";
|
|
5
5
|
import { Sheet, SheetContent } from "@voyant-travel/ui/components/sheet";
|
|
6
|
-
import { useState } from "react";
|
|
6
|
+
import { useCallback, useState } from "react";
|
|
7
7
|
import { BookingDetailPage, } from "../components/booking-detail-page.js";
|
|
8
8
|
import { useBooking } from "../index.js";
|
|
9
9
|
import { BookingDocumentsTable } from "./booking-documents-table.js";
|
|
10
10
|
import { BookingInvoiceSheet } from "./booking-invoice-sheet.js";
|
|
11
|
-
import { bookingDetailFinanceEndSlot, bookingDetailFinanceStartSlot, bookingDetailInvoicesTabSlot, } from "./slots.js";
|
|
11
|
+
import { bookingDetailFinanceEndSlot, bookingDetailFinanceStartSlot, bookingDetailInvoicesTabSlot, bookingDetailPaymentControllerSlot, } from "./slots.js";
|
|
12
12
|
import { useBookingActionLedgerEvents } from "./use-booking-action-ledger-events.js";
|
|
13
13
|
// The slot ids live in `./slots.js` — a lean, component-free module — so
|
|
14
14
|
// other domains' admin extension factories (evaluated with workspace chrome)
|
|
@@ -48,6 +48,13 @@ export function BookingDetailHost({ id, activeTab, onTabChange, onRecordPayment,
|
|
|
48
48
|
const hasInvoicesTabWidgets = resolveAdminWidgets({ slot: bookingDetailInvoicesTabSlot, extensions: adminExtensions })
|
|
49
49
|
.length > 0;
|
|
50
50
|
const [viewingInvoiceId, setViewingInvoiceId] = useState(null);
|
|
51
|
+
const [contributedPaymentActions, setContributedPaymentActions] = useState({});
|
|
52
|
+
const onPaymentActionsChange = useCallback((actions) => {
|
|
53
|
+
setContributedPaymentActions(actions);
|
|
54
|
+
}, []);
|
|
55
|
+
const effectiveRecordPayment = onRecordPayment ?? contributedPaymentActions.onRecordPayment;
|
|
56
|
+
const effectiveEditPayment = onEditPayment ?? contributedPaymentActions.onEditPayment;
|
|
57
|
+
const effectiveGenerateLink = onGenerateLink ?? contributedPaymentActions.onGenerateLink;
|
|
51
58
|
const { remove: removePayment } = usePaymentMutation();
|
|
52
59
|
// Mirror the booking fetch so the admin chrome can render breadcrumbs
|
|
53
60
|
// without prop-drilling through the canonical page. TanStack Query
|
|
@@ -85,7 +92,7 @@ export function BookingDetailHost({ id, activeTab, onTabChange, onRecordPayment,
|
|
|
85
92
|
paidAmountCents,
|
|
86
93
|
fullyPaidReason,
|
|
87
94
|
openInvoiceSheet: setViewingInvoiceId,
|
|
88
|
-
onGenerateLink,
|
|
95
|
+
onGenerateLink: effectiveGenerateLink,
|
|
89
96
|
});
|
|
90
97
|
// Central action-ledger entries merged into the Activity timeline —
|
|
91
98
|
// package-owned since the feed ships from `@voyant-travel/bookings-react`.
|
|
@@ -93,7 +100,7 @@ export function BookingDetailHost({ id, activeTab, onTabChange, onRecordPayment,
|
|
|
93
100
|
const activityExtraEvents = slots?.activityExtraEvents
|
|
94
101
|
? [...actionLedgerEvents, ...slots.activityExtraEvents]
|
|
95
102
|
: actionLedgerEvents;
|
|
96
|
-
return (_jsxs(_Fragment, { children: [_jsx(BookingDetailPage, { id: id, locale: resolvedLocale, hideBreadcrumb: true, activeTab: activeTab, onTabChange: onTabChange, onBack: () => navigateTo("booking.list", {}), onPersonOpen: (personId) => navigateTo("person.detail", { personId }), onOrganizationOpen: (organizationId) => navigateTo("organization.detail", { organizationId }), onRecordPayment:
|
|
103
|
+
return (_jsxs(_Fragment, { children: [_jsx(AdminWidgetSlotRenderer, { slot: bookingDetailPaymentControllerSlot, props: { bookingId: id, onActionsChange: onPaymentActionsChange } }), _jsx(BookingDetailPage, { id: id, locale: resolvedLocale, hideBreadcrumb: true, activeTab: activeTab, onTabChange: onTabChange, onBack: () => navigateTo("booking.list", {}), onPersonOpen: (personId) => navigateTo("person.detail", { personId }), onOrganizationOpen: (organizationId) => navigateTo("organization.detail", { organizationId }), onRecordPayment: effectiveRecordPayment ? () => effectiveRecordPayment() : undefined, recordPaymentDisabledReason: fullyPaidReason, addScheduleDisabledReason: fullyPaidReason, paidAmountCents: paidAmountCents, hasRecordedPayment: hasRecordedPayment, onItemResourceOpen: (kind, resourceId) => {
|
|
97
104
|
if (kind === "product") {
|
|
98
105
|
navigateTo("product.detail", { productId: resourceId });
|
|
99
106
|
return;
|
|
@@ -101,7 +108,7 @@ export function BookingDetailHost({ id, activeTab, onTabChange, onRecordPayment,
|
|
|
101
108
|
if (kind === "availabilitySlot") {
|
|
102
109
|
navigateTo("availabilitySlot.detail", { slotId: resourceId });
|
|
103
110
|
}
|
|
104
|
-
}, onInvoiceOpen: (invoiceId) => setViewingInvoiceId(invoiceId), onViewPayment: (row) => navigateTo("payment.detail", { paymentId: row.id }), onEditPayment:
|
|
111
|
+
}, onInvoiceOpen: (invoiceId) => setViewingInvoiceId(invoiceId), onViewPayment: (row) => navigateTo("payment.detail", { paymentId: row.id }), onEditPayment: effectiveEditPayment, onDeletePayment: async (row) => {
|
|
105
112
|
await removePayment.mutateAsync(row.id);
|
|
106
113
|
}, slots: {
|
|
107
114
|
header: (b) => (_jsx(AdminWidgetSlotRenderer, { slot: "booking.details.header", props: { booking: b } })),
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { type AdminExtension } from "@voyant-travel/admin";
|
|
2
|
-
import type { ComponentType, ReactNode } from "react";
|
|
1
|
+
import { type AdminExtension, type SelectedAdminExtensionFactoryContext } from "@voyant-travel/admin";
|
|
3
2
|
import { z } from "zod";
|
|
4
3
|
import type { BookingDetailTabValue } from "../components/booking-detail-page.js";
|
|
5
4
|
import type { BookingListFiltersState } from "../components/booking-list.js";
|
|
@@ -75,7 +74,7 @@ declare module "@voyant-travel/admin" {
|
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
export type { BookingContractDialogProps } from "./booking-contract-dialog.js";
|
|
78
|
-
export type { BookingDetailHostProps, BookingDetailHostSlot, BookingDetailHostSlotContext, BookingDetailHostSlots, } from "./booking-detail-host.js";
|
|
77
|
+
export type { BookingDetailHostProps, BookingDetailHostSlot, BookingDetailHostSlotContext, BookingDetailHostSlots, BookingDetailPaymentActions, BookingDetailPaymentControllerSlotContext, } from "./booking-detail-host.js";
|
|
79
78
|
export { BookingDetailSkeleton } from "./booking-detail-skeleton.js";
|
|
80
79
|
export type { BookingDocumentsTableProps } from "./booking-documents-table.js";
|
|
81
80
|
export type { BookingInvoiceSheetProps } from "./booking-invoice-sheet.js";
|
|
@@ -83,7 +82,7 @@ export type { BookingJourneyHostProps } from "./booking-journey-host.js";
|
|
|
83
82
|
export type { BookingsHostProps } from "./bookings-host.js";
|
|
84
83
|
export { BookingsListSkeleton } from "./bookings-list-skeleton.js";
|
|
85
84
|
export type { PersonBookingsWidgetProps } from "./person-bookings-widget.js";
|
|
86
|
-
export { bookingDetailFinanceEndSlot, bookingDetailFinanceStartSlot, bookingDetailInvoicesTabSlot, } from "./slots.js";
|
|
85
|
+
export { bookingDetailFinanceEndSlot, bookingDetailFinanceStartSlot, bookingDetailInvoicesTabSlot, bookingDetailPaymentControllerSlot, bookingsListHeaderActionsSlot, } from "./slots.js";
|
|
87
86
|
/**
|
|
88
87
|
* Search contract for the bookings list page: the URL projection of
|
|
89
88
|
* `BookingListFiltersState` (filters, sort, paging). Package-owned so the
|
|
@@ -195,9 +194,7 @@ export type BookingJourneySearchParams = z.infer<typeof bookingJourneySearchSche
|
|
|
195
194
|
* Props contract of the booking detail PAGE component the "bookings-detail"
|
|
196
195
|
* contribution mounts — the route-state subset of `BookingDetailHostProps`.
|
|
197
196
|
* The packaged default wraps {@link BookingDetailHost} with exactly these;
|
|
198
|
-
*
|
|
199
|
-
* {@link CreateBookingsAdminExtensionOptions.detailPageComponent} when they
|
|
200
|
-
* need to compose app-owned flows around the host (e.g. payment dialogs).
|
|
197
|
+
* selected packages attach cross-domain behavior through stable widget slots.
|
|
201
198
|
*/
|
|
202
199
|
export interface BookingDetailPageComponentProps {
|
|
203
200
|
id: string;
|
|
@@ -211,25 +208,6 @@ export interface CreateBookingsAdminExtensionOptions {
|
|
|
211
208
|
labels?: {
|
|
212
209
|
bookings?: string;
|
|
213
210
|
};
|
|
214
|
-
/**
|
|
215
|
-
* App-owned extra header action(s) rendered alongside the bookings list's
|
|
216
|
-
* primary "New booking" button (e.g. the operator's "Compose trip" link).
|
|
217
|
-
* Forwarded to {@link BookingsHost}'s `headerActions` by the index page so
|
|
218
|
-
* the packaged page doesn't hardcode other domains.
|
|
219
|
-
*/
|
|
220
|
-
indexHeaderActions?: ReactNode;
|
|
221
|
-
/**
|
|
222
|
-
* Substitute implementation for the booking detail page, loaded lazily so
|
|
223
|
-
* it stays in its own chunk. Defaults to the packaged page wrapping
|
|
224
|
-
* {@link BookingDetailHost}. The operator overrides this to compose the
|
|
225
|
-
* app-owned payment/payment-link dialogs around the host — those dialogs
|
|
226
|
-
* live app-side because `@voyant-travel/finance-react/ui` and
|
|
227
|
-
* `@voyant-travel/finance-react/checkout-ui` depend on this package, so importing them
|
|
228
|
-
* here would be a cycle.
|
|
229
|
-
*/
|
|
230
|
-
detailPageComponent?: () => Promise<{
|
|
231
|
-
default: ComponentType<BookingDetailPageComponentProps>;
|
|
232
|
-
}>;
|
|
233
211
|
}
|
|
234
212
|
/**
|
|
235
213
|
* The bookings admin contribution (packaged-admin RFC Phase 3,
|
|
@@ -270,4 +248,5 @@ export interface CreateBookingsAdminExtensionOptions {
|
|
|
270
248
|
* (`PersonDetailBookingsTabContext`) as props.
|
|
271
249
|
*/
|
|
272
250
|
export declare function createBookingsAdminExtension(options?: CreateBookingsAdminExtensionOptions): AdminExtension;
|
|
251
|
+
export declare function createSelectedBookingsAdminExtension({ navMessages, }: SelectedAdminExtensionFactoryContext): AdminExtension;
|
|
273
252
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/admin/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// agent-quality: file-size exception -- owner: bookings-react; existing UI surface stays co-located until a dedicated split preserves behavior and tests.
|
|
3
|
-
import { defineAdminExtension, } from "@voyant-travel/admin";
|
|
3
|
+
import { defineAdminExtension, withAdminRouteMessagesProvider, } from "@voyant-travel/admin";
|
|
4
4
|
// Importing the slot id also binds the crm-ui `AdminDestinations`
|
|
5
5
|
// augmentation (`person.list`, `organization.list`, ...) into this program;
|
|
6
6
|
// this package already peer-depends on `@voyant-travel/relationships-react/ui`.
|
|
@@ -17,7 +17,7 @@ import { BookingDetailSkeleton } from "./booking-detail-skeleton.js";
|
|
|
17
17
|
import { BookingsListSkeleton } from "./bookings-list-skeleton.js";
|
|
18
18
|
export { BookingDetailSkeleton } from "./booking-detail-skeleton.js";
|
|
19
19
|
export { BookingsListSkeleton } from "./bookings-list-skeleton.js";
|
|
20
|
-
export { bookingDetailFinanceEndSlot, bookingDetailFinanceStartSlot, bookingDetailInvoicesTabSlot, } from "./slots.js";
|
|
20
|
+
export { bookingDetailFinanceEndSlot, bookingDetailFinanceStartSlot, bookingDetailInvoicesTabSlot, bookingDetailPaymentControllerSlot, bookingsListHeaderActionsSlot, } from "./slots.js";
|
|
21
21
|
const bookingsListSortBySchema = z.enum([
|
|
22
22
|
"bookingNumber",
|
|
23
23
|
"status",
|
|
@@ -169,12 +169,6 @@ const LazyPersonBookingsWidget = React.lazy(() => import("./person-bookings-widg
|
|
|
169
169
|
function PersonBookingsWidgetLoader(props) {
|
|
170
170
|
return (_jsx(React.Suspense, { fallback: null, children: _jsx(LazyPersonBookingsWidget, { ...props }) }));
|
|
171
171
|
}
|
|
172
|
-
function adminWidgetComponent(Widget) {
|
|
173
|
-
return function AdminWidgetComponent(props) {
|
|
174
|
-
return _jsx(Widget, { ...props });
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
const PersonBookingsWidgetContribution = adminWidgetComponent(PersonBookingsWidgetLoader);
|
|
178
172
|
/**
|
|
179
173
|
* The bookings admin contribution (packaged-admin RFC Phase 3,
|
|
180
174
|
* `@voyant-travel/<domain>-ui/admin` convention).
|
|
@@ -214,7 +208,7 @@ const PersonBookingsWidgetContribution = adminWidgetComponent(PersonBookingsWidg
|
|
|
214
208
|
* (`PersonDetailBookingsTabContext`) as props.
|
|
215
209
|
*/
|
|
216
210
|
export function createBookingsAdminExtension(options = {}) {
|
|
217
|
-
const { basePath = "/bookings", labels = {}
|
|
211
|
+
const { basePath = "/bookings", labels = {} } = options;
|
|
218
212
|
const { bookings = "Bookings" } = labels;
|
|
219
213
|
return defineAdminExtension({
|
|
220
214
|
id: "bookings",
|
|
@@ -240,15 +234,7 @@ export function createBookingsAdminExtension(options = {}) {
|
|
|
240
234
|
const { getBookingsQueryOptions } = await import("../query-options.js");
|
|
241
235
|
return queryClient.ensureQueryData(getBookingsQueryOptions(loaderClient(runtime)));
|
|
242
236
|
},
|
|
243
|
-
page:
|
|
244
|
-
const module = await import("./pages/bookings-index-page.js");
|
|
245
|
-
const Page = module.default;
|
|
246
|
-
// Tiny wrapper only — the heavy page stays in its own chunk; this
|
|
247
|
-
// closure just threads the app-owned header actions through.
|
|
248
|
-
return {
|
|
249
|
-
default: (props) => (_jsx(Page, { ...props, headerActions: indexHeaderActions })),
|
|
250
|
-
};
|
|
251
|
-
},
|
|
237
|
+
page: () => import("./pages/bookings-index-page.js"),
|
|
252
238
|
},
|
|
253
239
|
{
|
|
254
240
|
id: "bookings-detail",
|
|
@@ -277,9 +263,7 @@ export function createBookingsAdminExtension(options = {}) {
|
|
|
277
263
|
void queryClient.prefetchQuery(getBookingNotesQueryOptions(client, id));
|
|
278
264
|
},
|
|
279
265
|
page: async () => {
|
|
280
|
-
const module = await (
|
|
281
|
-
? detailPageComponent()
|
|
282
|
-
: import("./pages/booking-detail-page.js"));
|
|
266
|
+
const module = await import("./pages/booking-detail-page.js");
|
|
283
267
|
const Page = module.default;
|
|
284
268
|
return {
|
|
285
269
|
default: ({ params, search, updateSearch }) => (_jsx(Page, { id: params.id ?? "", activeTab: search.tab, onTabChange: (tab) => updateSearch((prev) => ({ ...prev, tab }), { replace: true }) })),
|
|
@@ -324,11 +308,13 @@ export function createBookingsAdminExtension(options = {}) {
|
|
|
324
308
|
{
|
|
325
309
|
id: "bookings-person-bookings",
|
|
326
310
|
slot: personDetailBookingsTabSlot,
|
|
327
|
-
|
|
328
|
-
// the typed contract is `PersonDetailBookingsTabContext`, which
|
|
329
|
-
// crm-ui's person detail host passes verbatim to this slot's widgets.
|
|
330
|
-
component: PersonBookingsWidgetContribution,
|
|
311
|
+
component: PersonBookingsWidgetLoader,
|
|
331
312
|
},
|
|
332
313
|
],
|
|
333
314
|
});
|
|
334
315
|
}
|
|
316
|
+
export function createSelectedBookingsAdminExtension({ navMessages, }) {
|
|
317
|
+
return withAdminRouteMessagesProvider(createBookingsAdminExtension({ labels: { bookings: navMessages.bookings } }), () => import("../i18n/index.js").then((module) => ({
|
|
318
|
+
default: module.BookingsUiMessagesProvider,
|
|
319
|
+
})));
|
|
320
|
+
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import type { BookingDetailPageComponentProps } from "../index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Default packaged booking detail page (packaged-admin RFC §4.8):
|
|
4
|
-
* {@link BookingDetailHost} with
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* package) substitute their own wrapper via
|
|
8
|
-
* `CreateBookingsAdminExtensionOptions.detailPageComponent`.
|
|
4
|
+
* {@link BookingDetailHost} with selected-package behavior supplied through
|
|
5
|
+
* its stable widget slots. Finance owns payment dialogs without replacing
|
|
6
|
+
* this route page.
|
|
9
7
|
*/
|
|
10
8
|
export default function BookingDetailDefaultPage({ id, activeTab, onTabChange, }: BookingDetailPageComponentProps): import("react").JSX.Element;
|
|
11
9
|
//# sourceMappingURL=booking-detail-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking-detail-page.d.ts","sourceRoot":"","sources":["../../../src/admin/pages/booking-detail-page.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAA;AAElE
|
|
1
|
+
{"version":3,"file":"booking-detail-page.d.ts","sourceRoot":"","sources":["../../../src/admin/pages/booking-detail-page.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAA;AAElE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAC/C,EAAE,EACF,SAAS,EACT,WAAW,GACZ,EAAE,+BAA+B,+BAEjC"}
|
|
@@ -3,11 +3,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { BookingDetailHost } from "../booking-detail-host.js";
|
|
4
4
|
/**
|
|
5
5
|
* Default packaged booking detail page (packaged-admin RFC §4.8):
|
|
6
|
-
* {@link BookingDetailHost} with
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* package) substitute their own wrapper via
|
|
10
|
-
* `CreateBookingsAdminExtensionOptions.detailPageComponent`.
|
|
6
|
+
* {@link BookingDetailHost} with selected-package behavior supplied through
|
|
7
|
+
* its stable widget slots. Finance owns payment dialogs without replacing
|
|
8
|
+
* this route page.
|
|
11
9
|
*/
|
|
12
10
|
export default function BookingDetailDefaultPage({ id, activeTab, onTabChange, }) {
|
|
13
11
|
return _jsx(BookingDetailHost, { id: id, activeTab: activeTab, onTabChange: onTabChange });
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { ReactNode } from "react";
|
|
3
|
-
export interface BookingsIndexPageProps extends AdminRoutePageProps {
|
|
4
|
-
/**
|
|
5
|
-
* App-owned extra header action(s) rendered alongside the primary
|
|
6
|
-
* "New booking" button — wired through
|
|
7
|
-
* `CreateBookingsAdminExtensionOptions.indexHeaderActions` by the
|
|
8
|
-
* extension factory's tiny page wrapper.
|
|
9
|
-
*/
|
|
10
|
-
headerActions?: ReactNode;
|
|
11
|
-
}
|
|
1
|
+
import { type AdminRoutePageProps } from "@voyant-travel/admin";
|
|
12
2
|
/**
|
|
13
3
|
* Packaged bookings list page (packaged-admin RFC §4.8): binds the route's
|
|
14
4
|
* URL search state onto {@link BookingsHost}'s filter props. The search shape
|
|
@@ -16,5 +6,5 @@ export interface BookingsIndexPageProps extends AdminRoutePageProps {
|
|
|
16
6
|
* (`bookingsIndexSearchSchema`), so the cast below narrows to a shape the
|
|
17
7
|
* router already validated.
|
|
18
8
|
*/
|
|
19
|
-
export default function BookingsIndexPage({ search, updateSearch
|
|
9
|
+
export default function BookingsIndexPage({ search, updateSearch }: AdminRoutePageProps): import("react").JSX.Element;
|
|
20
10
|
//# sourceMappingURL=bookings-index-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookings-index-page.d.ts","sourceRoot":"","sources":["../../../src/admin/pages/bookings-index-page.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bookings-index-page.d.ts","sourceRoot":"","sources":["../../../src/admin/pages/bookings-index-page.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAA2B,MAAM,sBAAsB,CAAA;AAUxF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,mBAAmB,+BAatF"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { AdminWidgetSlotRenderer } from "@voyant-travel/admin";
|
|
3
4
|
import { BookingsHost } from "../bookings-host.js";
|
|
4
|
-
import { bookingsFiltersToSearch, bookingsSearchToFilters, } from "../index.js";
|
|
5
|
+
import { bookingsFiltersToSearch, bookingsListHeaderActionsSlot, bookingsSearchToFilters, } from "../index.js";
|
|
5
6
|
/**
|
|
6
7
|
* Packaged bookings list page (packaged-admin RFC §4.8): binds the route's
|
|
7
8
|
* URL search state onto {@link BookingsHost}'s filter props. The search shape
|
|
@@ -9,8 +10,8 @@ import { bookingsFiltersToSearch, bookingsSearchToFilters, } from "../index.js";
|
|
|
9
10
|
* (`bookingsIndexSearchSchema`), so the cast below narrows to a shape the
|
|
10
11
|
* router already validated.
|
|
11
12
|
*/
|
|
12
|
-
export default function BookingsIndexPage({ search, updateSearch
|
|
13
|
-
return (_jsx(BookingsHost, { headerActions:
|
|
13
|
+
export default function BookingsIndexPage({ search, updateSearch }) {
|
|
14
|
+
return (_jsx(BookingsHost, { headerActions: _jsx(AdminWidgetSlotRenderer, { slot: bookingsListHeaderActionsSlot }), initialFilters: bookingsSearchToFilters(search), onFiltersChange: (filters) =>
|
|
14
15
|
// Full search replace on purpose: the projection re-derives the WHOLE
|
|
15
16
|
// search state from the filter snapshot, so the updater ignores
|
|
16
17
|
// `prev` instead of merging stale params back in.
|
package/dist/admin/slots.d.ts
CHANGED
|
@@ -28,4 +28,11 @@ export declare const bookingDetailFinanceStartSlot = "booking.details.finance-st
|
|
|
28
28
|
* here. Widgets receive `BookingDetailHostSlotContext` as props.
|
|
29
29
|
*/
|
|
30
30
|
export declare const bookingDetailFinanceEndSlot = "booking.details.finance-end";
|
|
31
|
+
/** Widget slot rendered beside the primary action on the bookings list. */
|
|
32
|
+
export declare const bookingsListHeaderActionsSlot = "bookings.list.header-actions";
|
|
33
|
+
/**
|
|
34
|
+
* Controller slot for selected finance packages to provide payment-dialog
|
|
35
|
+
* callbacks without replacing the package-owned booking detail route.
|
|
36
|
+
*/
|
|
37
|
+
export declare const bookingDetailPaymentControllerSlot = "booking.details.payment-controller";
|
|
31
38
|
//# sourceMappingURL=slots.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/admin/slots.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,kCAAkC,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/admin/slots.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,kCAAkC,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AAExE,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,iCAAiC,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,kCAAkC,uCAAuC,CAAA"}
|
package/dist/admin/slots.js
CHANGED
|
@@ -28,3 +28,10 @@ export const bookingDetailFinanceStartSlot = "booking.details.finance-start";
|
|
|
28
28
|
* here. Widgets receive `BookingDetailHostSlotContext` as props.
|
|
29
29
|
*/
|
|
30
30
|
export const bookingDetailFinanceEndSlot = "booking.details.finance-end";
|
|
31
|
+
/** Widget slot rendered beside the primary action on the bookings list. */
|
|
32
|
+
export const bookingsListHeaderActionsSlot = "bookings.list.header-actions";
|
|
33
|
+
/**
|
|
34
|
+
* Controller slot for selected finance packages to provide payment-dialog
|
|
35
|
+
* callbacks without replacing the package-owned booking detail route.
|
|
36
|
+
*/
|
|
37
|
+
export const bookingDetailPaymentControllerSlot = "booking.details.payment-controller";
|
|
@@ -105,7 +105,7 @@ export declare function usePublicBookingSessionFlowMutation(sessionId: string):
|
|
|
105
105
|
availabilitySlotId: string | null;
|
|
106
106
|
quantity: number;
|
|
107
107
|
allocationType: "resource" | "unit" | "pickup";
|
|
108
|
-
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "
|
|
108
|
+
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "released" | "held";
|
|
109
109
|
holdExpiresAt: string | null;
|
|
110
110
|
confirmedAt: string | null;
|
|
111
111
|
releasedAt: string | null;
|
|
@@ -69,7 +69,7 @@ export declare function usePublicBookingSession(sessionId: string | null | undef
|
|
|
69
69
|
availabilitySlotId: string | null;
|
|
70
70
|
quantity: number;
|
|
71
71
|
allocationType: "resource" | "unit" | "pickup";
|
|
72
|
-
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "
|
|
72
|
+
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "released" | "held";
|
|
73
73
|
holdExpiresAt: string | null;
|
|
74
74
|
confirmedAt: string | null;
|
|
75
75
|
releasedAt: string | null;
|
package/dist/query-options.d.ts
CHANGED
|
@@ -1739,7 +1739,7 @@ export declare function getPublicBookingSessionQueryOptions(client: FetchWithVal
|
|
|
1739
1739
|
availabilitySlotId: string | null;
|
|
1740
1740
|
quantity: number;
|
|
1741
1741
|
allocationType: "resource" | "unit" | "pickup";
|
|
1742
|
-
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "
|
|
1742
|
+
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "released" | "held";
|
|
1743
1743
|
holdExpiresAt: string | null;
|
|
1744
1744
|
confirmedAt: string | null;
|
|
1745
1745
|
releasedAt: string | null;
|
|
@@ -1835,7 +1835,7 @@ export declare function getPublicBookingSessionQueryOptions(client: FetchWithVal
|
|
|
1835
1835
|
availabilitySlotId: string | null;
|
|
1836
1836
|
quantity: number;
|
|
1837
1837
|
allocationType: "resource" | "unit" | "pickup";
|
|
1838
|
-
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "
|
|
1838
|
+
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "released" | "held";
|
|
1839
1839
|
holdExpiresAt: string | null;
|
|
1840
1840
|
confirmedAt: string | null;
|
|
1841
1841
|
releasedAt: string | null;
|
|
@@ -1932,7 +1932,7 @@ export declare function getPublicBookingSessionQueryOptions(client: FetchWithVal
|
|
|
1932
1932
|
availabilitySlotId: string | null;
|
|
1933
1933
|
quantity: number;
|
|
1934
1934
|
allocationType: "resource" | "unit" | "pickup";
|
|
1935
|
-
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "
|
|
1935
|
+
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "released" | "held";
|
|
1936
1936
|
holdExpiresAt: string | null;
|
|
1937
1937
|
confirmedAt: string | null;
|
|
1938
1938
|
releasedAt: string | null;
|
|
@@ -2031,7 +2031,7 @@ export declare function getPublicBookingSessionQueryOptions(client: FetchWithVal
|
|
|
2031
2031
|
availabilitySlotId: string | null;
|
|
2032
2032
|
quantity: number;
|
|
2033
2033
|
allocationType: "resource" | "unit" | "pickup";
|
|
2034
|
-
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "
|
|
2034
|
+
status: "cancelled" | "fulfilled" | "confirmed" | "expired" | "released" | "held";
|
|
2035
2035
|
holdExpiresAt: string | null;
|
|
2036
2036
|
confirmedAt: string | null;
|
|
2037
2037
|
releasedAt: string | null;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { type ContractSourceContext, type OperatorInfoVariables, type ResolveContractVariablesContext, resolveContractVariables, } from "./resolve-contract-variables.js";
|
|
2
|
+
export { buildStorefrontCommitParty, StorefrontBookingJourney, type StorefrontBookingJourneyMessages, type StorefrontBookingJourneyProps, type StorefrontBookingJourneyScope, type StorefrontCheckoutConfirmationKind, } from "./storefront-booking-journey.js";
|
|
3
|
+
export { StorefrontBookingPage, type StorefrontBookingPageExtensions, type StorefrontBookingPageMessages, type StorefrontBookingPageProps, type StorefrontBookingSearch, storefrontBookingSearchSchema, } from "./storefront-booking-page.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storefront/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,wBAAwB,GACzB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,kCAAkC,GACxC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,6BAA6B,GAC9B,MAAM,8BAA8B,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { resolveContractVariables, } from "./resolve-contract-variables.js";
|
|
2
|
+
export { buildStorefrontCommitParty, StorefrontBookingJourney, } from "./storefront-booking-journey.js";
|
|
3
|
+
export { StorefrontBookingPage, storefrontBookingSearchSchema, } from "./storefront-booking-page.js";
|