@riverbankcms/sdk 0.149.0 → 0.150.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/dist/EventEmbeddedCheckoutStep-D00Kc8Zj.mjs +285 -0
- package/dist/{PreviewEditorSidebar-DBKln68M.mjs → PreviewEditorSidebar-7ZhmmnBB.mjs} +3 -3
- package/dist/{PreviewEditorUI-DpRX4Mum.mjs → PreviewEditorUI-BIJucTRd.mjs} +2 -2
- package/dist/{SdkPreviewModeRuntime-DJPmPY-r.mjs → SdkPreviewModeRuntime-tj45gmCX.mjs} +4 -3
- package/dist/{SiteChromeCustomizeContext-JYA0cJ_Z.mjs → SiteChromeCustomizeContext-BFOt0ss-.mjs} +4454 -4059
- package/dist/_dts/ai/src/contracts/proposals.d.ts +660 -0
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +510 -0
- package/dist/_dts/api/src/billing.d.ts +2 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +5 -1
- package/dist/_dts/api/src/footerCompositionContracts.d.ts +9 -0
- package/dist/_dts/api/src/footerSettings.d.ts +3 -3
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/navigation/bookingPortalLink.d.ts +13 -0
- package/dist/_dts/api/src/navigation.d.ts +1 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +9 -173
- package/dist/_dts/api/src/sdkThemeWire.d.ts +12 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -3
- package/dist/_dts/api/src/siteSettings.d.ts +2 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +2 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +30 -3
- package/dist/_dts/blocks/src/system/designCapabilities.d.ts +10 -1
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +38 -18
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/FullyBookedStep.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentBlockingPanel.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +15 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentLocation.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +72 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +66 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +13 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +11 -52
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +19 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -42
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +7 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +90 -24
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useGuestRegistrationRecovery.d.ts +30 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +24 -12
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useRegistrationAdmission.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/stripe/browserStripe.d.ts +8 -0
- package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +8 -0
- package/dist/_dts/commerce/src/purchase/checkoutCopy.d.ts +10 -0
- package/dist/_dts/commerce/src/purchase/checkoutPresentation.d.ts +49 -0
- package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +4 -4
- package/dist/_dts/commerce/src/purchase/checkoutStripeFinalizationPlanning.d.ts +5 -1
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +9 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +9 -2
- package/dist/_dts/commerce/src/purchase/types.d.ts +5 -6
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +3 -2
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +6 -1
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +7 -0
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/patch/index.d.ts +30 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +30 -1
- package/dist/_dts/sdk/src/bookings/index.d.ts +2 -1
- package/dist/_dts/sdk/src/bookings/types.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +147 -0
- package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +22 -0
- package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +22 -0
- package/dist/_dts/theme-core/src/cards/roles.d.ts +12 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +198 -0
- package/dist/_dts/theme-core/src/palette/utils/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/palette/utils/scrimContrast.d.ts +22 -0
- package/dist/_dts/theme-core/src/runtime/bridgeColourTokens.d.ts +10 -0
- package/dist/_dts/theme-core/src/schema.d.ts +330 -0
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +0 -51
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +0 -51
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +11 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +7 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +7 -1
- package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +12 -6
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +7 -4
- package/dist/_dts/theme-core/src/site-styles/sectionSurfaceBackgrounds.d.ts +65 -0
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +17 -0
- package/dist/_dts/theme-core/src/surfaces/opaqueSurface.d.ts +43 -0
- package/dist/client/{BookingMailingListNote-Cr3EeTP5.mjs → BookingMailingListNote-CYHOufsI.mjs} +10 -440
- package/dist/client/{CheckboxChoice-B33MqoUo.mjs → CheckboxChoice-M-3HycLw.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-BFGB1Fay.mjs → DemoBookingPortalAccess-Cvr9O_ca.mjs} +2 -2
- package/dist/client/{EventCombined.client-DKYV0_ft.mjs → EventCombined.client-m5UZIobP.mjs} +7 -7
- package/dist/client/EventEmbeddedCheckoutStep-DL6zFAkA.mjs +289 -0
- package/dist/client/{EventListing.client-B9UIcEYc.mjs → EventListing.client-DeMfCM04.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CFLPkP0K.mjs → LeafletStaticMap-CvZ3gOdD.mjs} +1 -1
- package/dist/client/{checkoutUrls-CXhko2Rv.mjs → RichText-BtfNvQV6.mjs} +2 -29
- package/dist/client/{TerminalPanel-JjmgxEsR.mjs → TerminalPanel-CUCNEwlH.mjs} +2 -18
- package/dist/client/{ThemedButton-CKV1Jh2m.mjs → ThemedButton-C7WhXuRl.mjs} +2 -2
- package/dist/client/{accordion-DXWIfT3T.mjs → accordion-cQm5mjqs.mjs} +1 -1
- package/dist/client/{bookingForm-CjZgHNvv.mjs → bookingForm-BVPJE5RQ.mjs} +11 -10
- package/dist/client/bookings.mjs +2668 -1134
- package/dist/client/{carousel-DSLikmvZ.mjs → carousel-3vgnY7LC.mjs} +2 -2
- package/dist/client/{carousel.client-A2lG-9od.mjs → carousel.client-CISsdZvg.mjs} +1 -1
- package/dist/client/{cart-HDjWReFt.mjs → cart-BGK4oOjm.mjs} +3 -3
- package/dist/client/{checkout-CUvRZA3W.mjs → checkout-GsBLUNJD.mjs} +3 -3
- package/dist/client/checkoutUrls-ChxwaNtO.mjs +28 -0
- package/dist/client/client.mjs +3042 -1868
- package/dist/client/{colorStyles-j5U9v5JA.mjs → colorStyles-D-32xHZh.mjs} +2 -30
- package/dist/client/{context-DFmaZa-Q.mjs → context-D_8s12Fp.mjs} +1 -1
- package/dist/client/{dates-BBep1JnF.mjs → dates-DeJQbQ9T.mjs} +2 -2
- package/dist/client/{eventCalendar-zEobhxo4.mjs → eventCalendar-cmucD4NR.mjs} +10 -10
- package/dist/client/{eventCombined-Dp7bz5k-.mjs → eventCombined-ku3E9FTl.mjs} +4 -4
- package/dist/client/{eventDetails-FE-zqTt7.mjs → eventDetails-CyKZ61sF.mjs} +5 -5
- package/dist/client/{eventListing-BMt5snal.mjs → eventListing-B7yxGIhX.mjs} +4 -4
- package/dist/client/{eventRegistration-O6ZxHfOb.mjs → eventRegistration-BoXfSFgZ.mjs} +1403 -857
- package/dist/client/{form-DFa1D8vt.mjs → form-CNQOWhJo.mjs} +5 -5
- package/dist/client/{headerSection-CmjHLR-N.mjs → headerSection-DahaBJGQ.mjs} +3 -3
- package/dist/client/hooks.mjs +123 -64
- package/dist/client/{locationMap-BXKP_lGh.mjs → locationMap-BoDjqYlW.mjs} +4 -4
- package/dist/client/{media-Cl38iOMI.mjs → media-BFY0y2rb.mjs} +2 -1
- package/dist/client/{newsletterForm-CU-HmxGx.mjs → newsletterForm-DtzXDklw.mjs} +4 -4
- package/dist/client/{pricing-KEAEsibq.mjs → pricing-DXEh2Lhh.mjs} +1 -1
- package/dist/client/{productDetail-Ckp7MGnt.mjs → productDetail-D7cPa-00.mjs} +3 -3
- package/dist/client/{productList-D91V0sYa.mjs → productList-D1XMap66.mjs} +3 -3
- package/dist/client/{propsDecoder-DZd6RJeA.mjs → propsDecoder-DiIeBopB.mjs} +758 -245
- package/dist/client/rendering/client.mjs +4381 -2892
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +3026 -1852
- package/dist/client/result-DRW7JWXz.mjs +30 -0
- package/dist/client/{routeIslandApiConfig-E1EkhhYY.mjs → routeIslandApiConfig-wzR4lKAY.mjs} +1 -1
- package/dist/client/scrollToBlock-C86BYkyV.mjs +17 -0
- package/dist/client/{shop-4F2jLQPI.mjs → shop-CYT5P-S5.mjs} +8 -8
- package/dist/client/{shop-commerce-store-vicweP2K.mjs → shop-commerce-store-wKhsJQxI.mjs} +1 -1
- package/dist/client/{shop-commerce-BbfCJjB3.mjs → shop-commerce-ypBu_dx4.mjs} +9 -9
- package/dist/client/{shopShared-DlONJt0T.mjs → shopShared-DFGhYrf2.mjs} +52 -6
- package/dist/client/{useEventFilters-COYyL3m7.mjs → useEventFilters-blSbN5o7.mjs} +8 -8
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-CwvFFjB-.mjs → sdk-runtime-2p8uQk1V.mjs} +1 -1
- package/dist/{separator-ByL72zUT.mjs → separator-Cvvzk0Oo.mjs} +1 -1
- package/dist/server/components.mjs +4066 -3765
- package/dist/server/config-validation.mjs +185 -126
- package/dist/server/config.mjs +185 -126
- package/dist/server/data.mjs +123 -64
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +615 -314
- package/dist/server/page-converter.mjs +100 -56
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4041 -3751
- package/dist/server/rendering.mjs +4069 -3768
- package/dist/server/routing.mjs +149 -72
- package/dist/server/server.mjs +124 -65
- package/dist/server/theme-bridge.mjs +1122 -310
- package/dist/server/theme.mjs +126 -116
- package/dist/spinner-CDo6AkDz.mjs +658 -0
- package/dist/styles/index.css +75 -212
- package/package.json +1 -1
- package/dist/_dts/billing/src/checkout/platform.d.ts +0 -77
- package/dist/_dts/billing/src/config/env.d.ts +0 -29
- package/dist/_dts/billing/src/stripe/client.d.ts +0 -29
- package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +0 -63
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +0 -9
- package/dist/client/urlParams-D71VXFGx.mjs +0 -47
|
@@ -26,7 +26,7 @@ export type GuestErrors = Record<number, {
|
|
|
26
26
|
/** Error message for name field */
|
|
27
27
|
name?: string;
|
|
28
28
|
}>;
|
|
29
|
-
export type RegistrationStep = 'select-event' | 'select-tickets' | 'enter-details' | 'select-payment' | 'submitting' | '
|
|
29
|
+
export type RegistrationStep = 'select-event' | 'select-tickets' | 'fully-booked' | 'enter-details' | 'select-payment' | 'submitting' | 'payment' | 'verifying-payment' | 'verifying-timeout' | 'payment-status' | 'payment-failed' | 'success' | 'error';
|
|
30
30
|
export type RegistrationResult = {
|
|
31
31
|
status: 'confirmed' | 'waitlist';
|
|
32
32
|
/**
|
|
@@ -46,7 +46,7 @@ export type PaymentStatusRecoveryState = Readonly<{
|
|
|
46
46
|
kind: 'ready' | 'checking' | 'processing' | 'temporarilyUnavailable' | 'retryAvailable' | 'assistanceRequired';
|
|
47
47
|
}> | Readonly<{
|
|
48
48
|
kind: 'paymentAvailable';
|
|
49
|
-
|
|
49
|
+
checkout: import('../../api/types').EventEmbeddedCheckout;
|
|
50
50
|
}>);
|
|
51
51
|
export type RegistrationAttendanceMode = 'in_person' | 'online';
|
|
52
52
|
export type EventTicketSelectionLine = Readonly<{
|
|
@@ -197,3 +197,20 @@ export type EventRegistrationClientProps = {
|
|
|
197
197
|
mailingList?: MailingListRuntimeContext;
|
|
198
198
|
siteName?: string;
|
|
199
199
|
};
|
|
200
|
+
export type EventPaymentState = Readonly<{
|
|
201
|
+
kind: 'idle';
|
|
202
|
+
}> | Readonly<{
|
|
203
|
+
kind: 'payment';
|
|
204
|
+
checkout: import('../../api/types').EventEmbeddedCheckout;
|
|
205
|
+
subject: import('../../api/types').EventRegistrationPaymentSubject;
|
|
206
|
+
}> | Readonly<{
|
|
207
|
+
kind: 'verifying';
|
|
208
|
+
request: import('../../api/types').EventCheckoutReturnRequest;
|
|
209
|
+
resumePayment: boolean;
|
|
210
|
+
}> | Readonly<{
|
|
211
|
+
kind: 'abandoning';
|
|
212
|
+
subject: import('../../api/types').EventRegistrationPaymentSubject;
|
|
213
|
+
}> | Readonly<{
|
|
214
|
+
kind: 'recovery';
|
|
215
|
+
state: PaymentStatusRecoveryState;
|
|
216
|
+
}>;
|
|
@@ -1,42 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
api: BlockApiClient;
|
|
9
|
-
events: RegistrationEvent[];
|
|
10
|
-
registrationSubject: RegistrationSubject | null;
|
|
11
|
-
step: RegistrationStep;
|
|
12
|
-
pendingRegistrationReference: EventRegistrationStatusReference | null;
|
|
13
|
-
setFormData: (data: FormData) => void;
|
|
14
|
-
setTicketsCount: (count: number) => void;
|
|
15
|
-
setTicketSelections: (lines: readonly EventTicketSelectionLine[]) => void;
|
|
16
|
-
setSelectedEvent: (event: RegistrationEvent | null) => void;
|
|
17
|
-
setSelectedAttendanceMode: (attendanceMode: 'in_person' | 'online' | null) => void;
|
|
18
|
-
setPaymentSelection: (selection: PaymentSelection) => void;
|
|
19
|
-
setPendingRegistrationReference: (reference: EventRegistrationStatusReference | null) => void;
|
|
20
|
-
setStep: (step: RegistrationStep) => void;
|
|
21
|
-
setRegistrationResult: (result: RegistrationResult) => void;
|
|
22
|
-
setErrorMessage: (message: string) => void;
|
|
23
|
-
};
|
|
24
|
-
export type EventRegistrationStripeReturnDeps = Readonly<{
|
|
25
|
-
usePaymentVerification: typeof usePaymentVerification;
|
|
26
|
-
readReturnParams: () => Readonly<{
|
|
27
|
-
registration: string | null;
|
|
28
|
-
registration_attempt: string | null;
|
|
29
|
-
session_id: string | null;
|
|
30
|
-
}>;
|
|
31
|
-
clearReturnParams: () => void;
|
|
32
|
-
scrollToBlock: typeof scrollToBlock;
|
|
33
|
-
cleanupStaleRegistrations: typeof cleanupStaleRegistrations;
|
|
34
|
-
clearPendingRegistration: typeof clearPendingRegistration;
|
|
35
|
-
getPendingRegistration: typeof getPendingRegistration;
|
|
36
|
-
}>;
|
|
37
|
-
export type EventRegistrationStripeReturnResult = ReturnType<typeof usePaymentVerification> & Readonly<{
|
|
38
|
-
retryReturn?: () => void;
|
|
39
|
-
}>;
|
|
40
|
-
export declare function useEventRegistrationStripeReturn(options: EventRegistrationStripeReturnOptions): EventRegistrationStripeReturnResult;
|
|
41
|
-
export declare function useEventRegistrationStripeReturnWithDeps(options: EventRegistrationStripeReturnOptions, deps: EventRegistrationStripeReturnDeps): EventRegistrationStripeReturnResult;
|
|
42
|
-
export {};
|
|
1
|
+
import type { EventCheckoutReturnRequest } from '../../api/types';
|
|
2
|
+
import type { PendingRegistration } from './sessionStorage';
|
|
3
|
+
export declare function useEventRegistrationStripeReturn(options: Readonly<{
|
|
4
|
+
siteId: string | undefined;
|
|
5
|
+
restore: (pending: PendingRegistration) => void;
|
|
6
|
+
verify: (request: EventCheckoutReturnRequest) => void;
|
|
7
|
+
}>): void;
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../../core/src/index';
|
|
1
2
|
import { generateUuidV4 } from '../../../../../../core/src/index';
|
|
2
3
|
import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
|
|
3
4
|
import type { BlockApiClient } from '../../api';
|
|
4
|
-
import type {
|
|
5
|
+
import type { EventEmbeddedCheckout, EventRegistrationPaymentSubject, PaymentMethod } from '../../api/types';
|
|
5
6
|
import { type RegistrationTarget } from './registrationDerivations';
|
|
6
7
|
import { savePendingRegistration } from './sessionStorage';
|
|
7
8
|
import type { EventTicketSelectionLine, FormData, Guest, PaymentSelection, PaymentStatusRecoveryState, RegistrationResult, RegistrationStep } from './types';
|
|
8
|
-
export type EventRegistrationSubmitOptions = Readonly<{
|
|
9
|
-
redirect?: 'auto' | 'manual';
|
|
10
|
-
}>;
|
|
11
9
|
export type EventRegistrationSubmitResult = Readonly<{
|
|
12
10
|
ok: true;
|
|
13
11
|
outcome: {
|
|
@@ -21,16 +19,18 @@ export type EventRegistrationSubmitResult = Readonly<{
|
|
|
21
19
|
}> | Readonly<{
|
|
22
20
|
ok: true;
|
|
23
21
|
outcome: {
|
|
24
|
-
kind: '
|
|
25
|
-
|
|
22
|
+
kind: 'checkout_ready';
|
|
23
|
+
checkout: EventEmbeddedCheckout;
|
|
24
|
+
subject: EventRegistrationPaymentSubject;
|
|
26
25
|
};
|
|
27
26
|
}> | Readonly<{
|
|
28
27
|
ok: false;
|
|
29
28
|
reason: 'blocked' | 'missing-target' | 'submission-failed';
|
|
30
29
|
message: string;
|
|
31
30
|
}>;
|
|
32
|
-
export type EventRegistrationSubmit = (method: PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection
|
|
31
|
+
export type EventRegistrationSubmit = (method: PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection) => Promise<EventRegistrationSubmitResult>;
|
|
33
32
|
export type UseEventRegistrationSubmitInput = {
|
|
33
|
+
openPayment: (checkout: EventEmbeddedCheckout, subject: EventRegistrationPaymentSubject, note?: BookingSignupNote) => void;
|
|
34
34
|
commandRef: EventRegistrationCommandRef;
|
|
35
35
|
api: BlockApiClient;
|
|
36
36
|
registrationTarget: RegistrationTarget | null;
|
|
@@ -47,7 +47,6 @@ export type UseEventRegistrationSubmitInput = {
|
|
|
47
47
|
discountCode: string;
|
|
48
48
|
claimToken: string | null;
|
|
49
49
|
waitlistEntryId?: string | null;
|
|
50
|
-
setPendingRegistrationReference: (reference: EventRegistrationStatusReference) => void;
|
|
51
50
|
setStep: (step: RegistrationStep) => void;
|
|
52
51
|
setErrorAction?: (action: EventRegistrationErrorAction) => void;
|
|
53
52
|
setRegistrationResult: (result: RegistrationResult) => void;
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts
CHANGED
|
@@ -57,13 +57,16 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
57
57
|
preSelectedEvent: RegistrationEvent | null;
|
|
58
58
|
hasPreSelectedContext: boolean;
|
|
59
59
|
step: RegistrationStep;
|
|
60
|
-
setStep: (
|
|
60
|
+
setStep: (next: RegistrationStep) => void;
|
|
61
|
+
admission: import("./registrationCompletion").RegistrationAdmission;
|
|
62
|
+
ticketContinuation: import("./registrationCompletion").RegistrationTicketContinuation;
|
|
63
|
+
handleTicketsComplete: () => import("./event-registration.headless.contract").EventRegistrationFlowActionResult;
|
|
61
64
|
selectedEvent: RegistrationEvent | null;
|
|
62
|
-
setSelectedEvent: import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null
|
|
65
|
+
setSelectedEvent: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>>[0]) => void;
|
|
63
66
|
ticketsCount: number;
|
|
64
|
-
setTicketsCount: (nextTicketsCount: number) => void;
|
|
67
|
+
setTicketsCount: (value: Parameters<(nextTicketsCount: number) => void>[0]) => void;
|
|
65
68
|
selectedAttendanceMode: "in_person" | "online" | null;
|
|
66
|
-
setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null
|
|
69
|
+
setSelectedAttendanceMode: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>>[0]) => void;
|
|
67
70
|
ticketSelections: Readonly<{
|
|
68
71
|
pricingOptionId: string | null;
|
|
69
72
|
quantity: number;
|
|
@@ -74,7 +77,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
74
77
|
}>[];
|
|
75
78
|
setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
|
|
76
79
|
selectedSlidingAmountInput: string;
|
|
77
|
-
setSelectedSlidingAmountInput: import("react").Dispatch<import("react").SetStateAction<string
|
|
80
|
+
setSelectedSlidingAmountInput: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<string>>>[0]) => void;
|
|
78
81
|
selectedSlidingAmount: number | null;
|
|
79
82
|
selectedEventSlidingScale: Readonly<{
|
|
80
83
|
minAmount: number;
|
|
@@ -99,10 +102,10 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
99
102
|
mailingListSignup: Readonly<{
|
|
100
103
|
siteName: string;
|
|
101
104
|
}> | null;
|
|
102
|
-
setFormData: import("react").Dispatch<import("react").SetStateAction<FormData
|
|
105
|
+
setFormData: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<FormData>>>[0]) => void;
|
|
103
106
|
errors: Partial<Record<keyof FormData, string>>;
|
|
104
107
|
guests: Guest[];
|
|
105
|
-
setGuests: import("react").Dispatch<import("react").SetStateAction<Guest[]
|
|
108
|
+
setGuests: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<Guest[]>>>[0]) => void;
|
|
106
109
|
guestErrors: GuestErrors;
|
|
107
110
|
guestSectionShake: boolean;
|
|
108
111
|
handleGuestShakeEnd: () => void;
|
|
@@ -119,7 +122,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
119
122
|
handleLogout: () => void;
|
|
120
123
|
paymentStepState: PaymentStepState;
|
|
121
124
|
handlePaymentStepStateChange: (state: PaymentStepState) => void;
|
|
122
|
-
handlePaymentSelectionChange: (selection: PaymentSelection) => void;
|
|
125
|
+
handlePaymentSelectionChange: (value: Parameters<(selection: PaymentSelection) => void>[0]) => void;
|
|
123
126
|
paymentSelection: PaymentSelection;
|
|
124
127
|
isMembershipFastTrack: boolean;
|
|
125
128
|
waitlistClaim: import("../../shared/useWaitlistClaim").UseWaitlistClaimResult;
|
|
@@ -143,7 +146,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
143
146
|
hasMembershipEligibility: boolean;
|
|
144
147
|
requireGuestDetails: boolean;
|
|
145
148
|
discountCode: string;
|
|
146
|
-
setDiscountCode: (
|
|
149
|
+
setDiscountCode: (value: string) => void;
|
|
147
150
|
discountUiOpen: boolean;
|
|
148
151
|
setDiscountUiOpen: (isOpen: boolean) => void;
|
|
149
152
|
discountsAvailable: boolean;
|
|
@@ -152,18 +155,48 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
152
155
|
discountsAvailableLoading: boolean;
|
|
153
156
|
discountContext: import("../../api").DiscountContext | null;
|
|
154
157
|
shouldShowDiscountToggle: boolean;
|
|
155
|
-
verification:
|
|
158
|
+
verification: {
|
|
159
|
+
retry: () => void;
|
|
160
|
+
retryReturn: () => void;
|
|
161
|
+
status: "idle" | "polling" | "completed" | "failed" | "timeout";
|
|
162
|
+
result: import("../../api").EventCheckoutReturnResponse | null;
|
|
163
|
+
error: Error | null;
|
|
164
|
+
};
|
|
165
|
+
paymentController: {
|
|
166
|
+
backToBooking: () => Promise<void>;
|
|
167
|
+
continuePayment: () => void;
|
|
168
|
+
returnToPayment: () => void;
|
|
169
|
+
returnToBooking: () => void;
|
|
170
|
+
check: () => void;
|
|
171
|
+
retryPaymentLoad: () => void;
|
|
172
|
+
verification: {
|
|
173
|
+
retry: () => void;
|
|
174
|
+
retryReturn: () => void;
|
|
175
|
+
status: "idle" | "polling" | "completed" | "failed" | "timeout";
|
|
176
|
+
result: import("../../api").EventCheckoutReturnResponse | null;
|
|
177
|
+
error: Error | null;
|
|
178
|
+
};
|
|
179
|
+
state: import("./types").EventPaymentState;
|
|
180
|
+
recovery: import("./types").PaymentStatusRecoveryState | null;
|
|
181
|
+
showRecovery: (next: import("./types").PaymentStatusRecoveryState | null) => void;
|
|
182
|
+
restoreMailingListNote: (value: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
|
|
183
|
+
openPayment: (checkout: import("../../api/types").EventEmbeddedCheckout, subject: import("../../api/types").EventRegistrationPaymentSubject, mailingListSignupNote?: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
|
|
184
|
+
verify: (request: import("../../api").EventCheckoutReturnRequest, resumePayment?: boolean) => void;
|
|
185
|
+
};
|
|
156
186
|
paymentStatusRecovery: import("./types").PaymentStatusRecoveryState | null;
|
|
157
187
|
handleCheckPaymentStatus: () => void;
|
|
158
188
|
handleContinueExistingPayment: () => void;
|
|
159
189
|
handleReturnToPayment: () => void;
|
|
160
190
|
handleReturnToBooking: () => void;
|
|
191
|
+
recoveryMessage: string | null;
|
|
192
|
+
checkingNextStep: boolean;
|
|
193
|
+
handleRecoveryEmail: () => Promise<import("./event-registration.headless.contract").EventRegistrationFlowActionResult>;
|
|
161
194
|
handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
|
|
162
195
|
handlePaymentSelect: () => Promise<void>;
|
|
163
196
|
handleUseCardInsteadOfPass: () => void;
|
|
164
197
|
handleBookForSomeoneElse: () => void;
|
|
165
|
-
handleSubmit: import("./useEventRegistrationSubmit").EventRegistrationSubmit
|
|
166
|
-
handleEventSelect: (event: RegistrationEvent) => void;
|
|
198
|
+
handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string | undefined, membershipId?: string | undefined, selection?: PaymentSelection | undefined) => ReturnType<import("./useEventRegistrationSubmit").EventRegistrationSubmit>;
|
|
199
|
+
handleEventSelect: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
|
|
167
200
|
handleRetry: () => void;
|
|
168
201
|
};
|
|
169
202
|
export declare function useEventRegistrationWizardWithDeps(options: UseEventRegistrationWizardOptions, deps: EventRegistrationWizardDeps): {
|
|
@@ -190,13 +223,16 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
190
223
|
preSelectedEvent: RegistrationEvent | null;
|
|
191
224
|
hasPreSelectedContext: boolean;
|
|
192
225
|
step: RegistrationStep;
|
|
193
|
-
setStep: (
|
|
226
|
+
setStep: (next: RegistrationStep) => void;
|
|
227
|
+
admission: import("./registrationCompletion").RegistrationAdmission;
|
|
228
|
+
ticketContinuation: import("./registrationCompletion").RegistrationTicketContinuation;
|
|
229
|
+
handleTicketsComplete: () => import("./event-registration.headless.contract").EventRegistrationFlowActionResult;
|
|
194
230
|
selectedEvent: RegistrationEvent | null;
|
|
195
|
-
setSelectedEvent: import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null
|
|
231
|
+
setSelectedEvent: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>>[0]) => void;
|
|
196
232
|
ticketsCount: number;
|
|
197
|
-
setTicketsCount: (nextTicketsCount: number) => void;
|
|
233
|
+
setTicketsCount: (value: Parameters<(nextTicketsCount: number) => void>[0]) => void;
|
|
198
234
|
selectedAttendanceMode: "in_person" | "online" | null;
|
|
199
|
-
setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null
|
|
235
|
+
setSelectedAttendanceMode: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>>[0]) => void;
|
|
200
236
|
ticketSelections: Readonly<{
|
|
201
237
|
pricingOptionId: string | null;
|
|
202
238
|
quantity: number;
|
|
@@ -207,7 +243,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
207
243
|
}>[];
|
|
208
244
|
setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
|
|
209
245
|
selectedSlidingAmountInput: string;
|
|
210
|
-
setSelectedSlidingAmountInput: import("react").Dispatch<import("react").SetStateAction<string
|
|
246
|
+
setSelectedSlidingAmountInput: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<string>>>[0]) => void;
|
|
211
247
|
selectedSlidingAmount: number | null;
|
|
212
248
|
selectedEventSlidingScale: Readonly<{
|
|
213
249
|
minAmount: number;
|
|
@@ -232,10 +268,10 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
232
268
|
mailingListSignup: Readonly<{
|
|
233
269
|
siteName: string;
|
|
234
270
|
}> | null;
|
|
235
|
-
setFormData: import("react").Dispatch<import("react").SetStateAction<FormData
|
|
271
|
+
setFormData: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<FormData>>>[0]) => void;
|
|
236
272
|
errors: Partial<Record<keyof FormData, string>>;
|
|
237
273
|
guests: Guest[];
|
|
238
|
-
setGuests: import("react").Dispatch<import("react").SetStateAction<Guest[]
|
|
274
|
+
setGuests: (value: Parameters<import("react").Dispatch<import("react").SetStateAction<Guest[]>>>[0]) => void;
|
|
239
275
|
guestErrors: GuestErrors;
|
|
240
276
|
guestSectionShake: boolean;
|
|
241
277
|
handleGuestShakeEnd: () => void;
|
|
@@ -252,7 +288,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
252
288
|
handleLogout: () => void;
|
|
253
289
|
paymentStepState: PaymentStepState;
|
|
254
290
|
handlePaymentStepStateChange: (state: PaymentStepState) => void;
|
|
255
|
-
handlePaymentSelectionChange: (selection: PaymentSelection) => void;
|
|
291
|
+
handlePaymentSelectionChange: (value: Parameters<(selection: PaymentSelection) => void>[0]) => void;
|
|
256
292
|
paymentSelection: PaymentSelection;
|
|
257
293
|
isMembershipFastTrack: boolean;
|
|
258
294
|
waitlistClaim: import("../../shared/useWaitlistClaim").UseWaitlistClaimResult;
|
|
@@ -276,7 +312,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
276
312
|
hasMembershipEligibility: boolean;
|
|
277
313
|
requireGuestDetails: boolean;
|
|
278
314
|
discountCode: string;
|
|
279
|
-
setDiscountCode: (
|
|
315
|
+
setDiscountCode: (value: string) => void;
|
|
280
316
|
discountUiOpen: boolean;
|
|
281
317
|
setDiscountUiOpen: (isOpen: boolean) => void;
|
|
282
318
|
discountsAvailable: boolean;
|
|
@@ -285,18 +321,48 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
285
321
|
discountsAvailableLoading: boolean;
|
|
286
322
|
discountContext: import("../../api").DiscountContext | null;
|
|
287
323
|
shouldShowDiscountToggle: boolean;
|
|
288
|
-
verification:
|
|
324
|
+
verification: {
|
|
325
|
+
retry: () => void;
|
|
326
|
+
retryReturn: () => void;
|
|
327
|
+
status: "idle" | "polling" | "completed" | "failed" | "timeout";
|
|
328
|
+
result: import("../../api").EventCheckoutReturnResponse | null;
|
|
329
|
+
error: Error | null;
|
|
330
|
+
};
|
|
331
|
+
paymentController: {
|
|
332
|
+
backToBooking: () => Promise<void>;
|
|
333
|
+
continuePayment: () => void;
|
|
334
|
+
returnToPayment: () => void;
|
|
335
|
+
returnToBooking: () => void;
|
|
336
|
+
check: () => void;
|
|
337
|
+
retryPaymentLoad: () => void;
|
|
338
|
+
verification: {
|
|
339
|
+
retry: () => void;
|
|
340
|
+
retryReturn: () => void;
|
|
341
|
+
status: "idle" | "polling" | "completed" | "failed" | "timeout";
|
|
342
|
+
result: import("../../api").EventCheckoutReturnResponse | null;
|
|
343
|
+
error: Error | null;
|
|
344
|
+
};
|
|
345
|
+
state: import("./types").EventPaymentState;
|
|
346
|
+
recovery: import("./types").PaymentStatusRecoveryState | null;
|
|
347
|
+
showRecovery: (next: import("./types").PaymentStatusRecoveryState | null) => void;
|
|
348
|
+
restoreMailingListNote: (value: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
|
|
349
|
+
openPayment: (checkout: import("../../api/types").EventEmbeddedCheckout, subject: import("../../api/types").EventRegistrationPaymentSubject, mailingListSignupNote?: import("./types").PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
|
|
350
|
+
verify: (request: import("../../api").EventCheckoutReturnRequest, resumePayment?: boolean) => void;
|
|
351
|
+
};
|
|
289
352
|
paymentStatusRecovery: import("./types").PaymentStatusRecoveryState | null;
|
|
290
353
|
handleCheckPaymentStatus: () => void;
|
|
291
354
|
handleContinueExistingPayment: () => void;
|
|
292
355
|
handleReturnToPayment: () => void;
|
|
293
356
|
handleReturnToBooking: () => void;
|
|
357
|
+
recoveryMessage: string | null;
|
|
358
|
+
checkingNextStep: boolean;
|
|
359
|
+
handleRecoveryEmail: () => Promise<import("./event-registration.headless.contract").EventRegistrationFlowActionResult>;
|
|
294
360
|
handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
|
|
295
361
|
handlePaymentSelect: () => Promise<void>;
|
|
296
362
|
handleUseCardInsteadOfPass: () => void;
|
|
297
363
|
handleBookForSomeoneElse: () => void;
|
|
298
|
-
handleSubmit: import("./useEventRegistrationSubmit").EventRegistrationSubmit
|
|
299
|
-
handleEventSelect: (event: RegistrationEvent) => void;
|
|
364
|
+
handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string | undefined, membershipId?: string | undefined, selection?: PaymentSelection | undefined) => ReturnType<import("./useEventRegistrationSubmit").EventRegistrationSubmit>;
|
|
365
|
+
handleEventSelect: (value: Parameters<(event: RegistrationEvent) => void>[0]) => void;
|
|
300
366
|
handleRetry: () => void;
|
|
301
367
|
};
|
|
302
368
|
export type UseEventRegistrationWizardResult = ReturnType<typeof useEventRegistrationWizard>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { EventRegistrationNextStepResponse } from '../../api/types';
|
|
2
|
+
import type { BoundBlockApiClient } from '../../api';
|
|
3
|
+
import type { FormData, RegistrationStep, EventTicketSelectionLine, RegistrationAttendanceMode } from './types';
|
|
4
|
+
import type { EventRegistrationFlowActionResult } from './event-registration.headless.contract';
|
|
5
|
+
import { type RegistrationAdmission } from './registrationCompletion';
|
|
6
|
+
import { type resolveRegistrationTarget } from './registrationDerivations';
|
|
7
|
+
import type { PortalAuthState } from './hooks';
|
|
8
|
+
type Input = Readonly<{
|
|
9
|
+
api: Pick<BoundBlockApiClient, 'checkRegistrationNextStep'>;
|
|
10
|
+
formData: FormData;
|
|
11
|
+
onRecoveryChecked: (outcome: EventRegistrationNextStepResponse) => void;
|
|
12
|
+
registrationTarget: ReturnType<typeof resolveRegistrationTarget>;
|
|
13
|
+
selectedAttendanceMode: RegistrationAttendanceMode | null;
|
|
14
|
+
ticketSelections: readonly EventTicketSelectionLine[];
|
|
15
|
+
selectedSlidingAmount: number | null;
|
|
16
|
+
altchaSolution: string | null;
|
|
17
|
+
step: RegistrationStep;
|
|
18
|
+
portalAuthState: PortalAuthState;
|
|
19
|
+
admission: RegistrationAdmission;
|
|
20
|
+
setErrors: (errors: Partial<Record<keyof FormData, string>>) => void;
|
|
21
|
+
}>;
|
|
22
|
+
/** Guest email is navigation permission only. Discard checks when the visitor
|
|
23
|
+
* changes identity or selection before the response arrives. */
|
|
24
|
+
export declare function useGuestRegistrationRecovery(input: Input): {
|
|
25
|
+
checkingNextStep: boolean;
|
|
26
|
+
recoveryMessage: string | null;
|
|
27
|
+
checkDetailsNextStep: () => Promise<EventRegistrationNextStepResponse>;
|
|
28
|
+
handleRecoveryEmail: () => Promise<EventRegistrationFlowActionResult>;
|
|
29
|
+
};
|
|
30
|
+
export {};
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts
CHANGED
|
@@ -1,23 +1,35 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
2
|
import type { BlockApiClient } from '../../api/client';
|
|
3
|
-
import type {
|
|
4
|
-
import type { PaymentStatusRecoveryState, RegistrationResult, RegistrationStep } from './types';
|
|
5
|
-
type
|
|
6
|
-
|
|
3
|
+
import type { EventCheckoutReturnRequest, EventCheckoutReturnResponse, EventEmbeddedCheckout, EventRegistrationPaymentSubject } from '../../api/types';
|
|
4
|
+
import type { EventPaymentState, PaymentStatusRecoveryState, RegistrationResult, RegistrationStep } from './types';
|
|
5
|
+
type Options = Readonly<{
|
|
6
|
+
api: BlockApiClient;
|
|
7
|
+
beginNewSubmission: () => void;
|
|
7
8
|
setRegistrationResult: Dispatch<SetStateAction<RegistrationResult | null>>;
|
|
8
9
|
setOptionsRefreshKey: Dispatch<SetStateAction<number>>;
|
|
9
10
|
setStep: (step: RegistrationStep) => void;
|
|
11
|
+
/** Whether this page still holds the booker's details; a restored page after a reload does not. */
|
|
12
|
+
detailsInPage: () => boolean;
|
|
10
13
|
}>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
beginNewSubmission: () => void;
|
|
14
|
-
}>;
|
|
15
|
-
export declare function usePaymentStatusRecovery(options: UsePaymentStatusRecoveryOptions): {
|
|
16
|
-
recovery: PaymentStatusRecoveryState | null;
|
|
17
|
-
showRecovery: (next: PaymentStatusRecoveryState | null) => void;
|
|
18
|
-
check: () => void;
|
|
14
|
+
export declare function usePaymentStatusRecovery(options: Options): {
|
|
15
|
+
backToBooking: () => Promise<void>;
|
|
19
16
|
continuePayment: () => void;
|
|
20
17
|
returnToPayment: () => void;
|
|
21
18
|
returnToBooking: () => void;
|
|
19
|
+
check: () => void;
|
|
20
|
+
retryPaymentLoad: () => void;
|
|
21
|
+
verification: {
|
|
22
|
+
retry: () => void;
|
|
23
|
+
retryReturn: () => void;
|
|
24
|
+
status: "idle" | "polling" | "completed" | "failed" | "timeout";
|
|
25
|
+
result: EventCheckoutReturnResponse | null;
|
|
26
|
+
error: Error | null;
|
|
27
|
+
};
|
|
28
|
+
state: EventPaymentState;
|
|
29
|
+
recovery: PaymentStatusRecoveryState | null;
|
|
30
|
+
showRecovery: (next: PaymentStatusRecoveryState | null) => void;
|
|
31
|
+
restoreMailingListNote: (value: PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
|
|
32
|
+
openPayment: (checkout: EventEmbeddedCheckout, subject: EventRegistrationPaymentSubject, mailingListSignupNote?: PaymentStatusRecoveryState["mailingListSignupNote"]) => void;
|
|
33
|
+
verify: (request: EventCheckoutReturnRequest, resumePayment?: boolean) => void;
|
|
22
34
|
};
|
|
23
35
|
export {};
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useRegistrationAdmission.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Dispatch } from 'react';
|
|
2
|
+
import { resolveRegistrationAdmission } from './registrationCompletion';
|
|
3
|
+
import type { RegistrationFlowAction } from './registrationStateMachine';
|
|
4
|
+
import type { EventRegistrationFlowActionResult } from './event-registration.headless.contract';
|
|
5
|
+
/** Owns admission and its navigation commands; renderers receive decisions. */
|
|
6
|
+
export declare function useRegistrationAdmission(input: Parameters<typeof resolveRegistrationAdmission>[0] & Readonly<{
|
|
7
|
+
existingRegistrationLoading: boolean;
|
|
8
|
+
ticketSelectionRequired: boolean;
|
|
9
|
+
hasValidTicketSelection: boolean;
|
|
10
|
+
dispatchFlow: Dispatch<RegistrationFlowAction>;
|
|
11
|
+
}>): {
|
|
12
|
+
admission: import("./registrationCompletion").RegistrationAdmission;
|
|
13
|
+
ticketContinuation: import("./registrationCompletion").RegistrationTicketContinuation;
|
|
14
|
+
handleTicketsComplete: () => EventRegistrationFlowActionResult;
|
|
15
|
+
onRecoveryChecked: (outcome: Extract<RegistrationFlowAction, {
|
|
16
|
+
type: "recovery-checked";
|
|
17
|
+
}>["outcome"]) => void;
|
|
18
|
+
};
|
|
@@ -3,6 +3,11 @@ import type { RegistrationStep } from './types';
|
|
|
3
3
|
* Steps that are part of the main wizard and should show the step indicator
|
|
4
4
|
*/
|
|
5
5
|
export declare const WIZARD_STEPS: RegistrationStep[];
|
|
6
|
+
/** Recovery uses the form surface without adding a progress step. */
|
|
7
|
+
export declare function getRegistrationStepPresentation(step: RegistrationStep, progressSteps: readonly RegistrationStep[]): Readonly<{
|
|
8
|
+
isWizardStep: boolean;
|
|
9
|
+
totalSteps: number;
|
|
10
|
+
}>;
|
|
6
11
|
/**
|
|
7
12
|
* Determine which wizard steps to show based on context and payment requirements.
|
|
8
13
|
*
|
|
@@ -10,7 +15,7 @@ export declare const WIZARD_STEPS: RegistrationStep[];
|
|
|
10
15
|
* @param needsPaymentStep - Whether user must complete payment method selection
|
|
11
16
|
* @returns Array of wizard steps to display
|
|
12
17
|
*/
|
|
13
|
-
export declare function getWizardStepsForContext(hasPreSelectedContext: boolean, needsPaymentStep: boolean): readonly RegistrationStep[];
|
|
18
|
+
export declare function getWizardStepsForContext(hasPreSelectedContext: boolean, needsPaymentStep: boolean, paymentActive?: boolean): readonly RegistrationStep[];
|
|
14
19
|
/**
|
|
15
20
|
* Map wizard step to step number based on the active wizard steps
|
|
16
21
|
*/
|
|
@@ -9,7 +9,7 @@ import { type EventRegistrationPageSurfaceSubject } from './event-registration/e
|
|
|
9
9
|
import { type InteractiveIslandProps } from '../../../contracts/islands';
|
|
10
10
|
import { type EventRegistrationEventSource } from './event-registration/eventSourceRecovery';
|
|
11
11
|
export declare const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS: readonly ["Date", "Tickets", "Details"];
|
|
12
|
-
declare const EVENT_REGISTRATION_SHELL_STEP_LABELS: readonly ["Event", "Date", "Tickets", "Details", "Payment"];
|
|
12
|
+
declare const EVENT_REGISTRATION_SHELL_STEP_LABELS: readonly ["Event", "Date", "Tickets", "Details", "Payment options", "Payment"];
|
|
13
13
|
export type EventRegistrationGenericShellStepLabels = typeof EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
14
14
|
type EventRegistrationShellStepLabel = (typeof EVENT_REGISTRATION_SHELL_STEP_LABELS)[number];
|
|
15
15
|
export type EventRegistrationSourceProps = Readonly<{
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Stripe } from '@stripe/stripe-js';
|
|
2
|
+
import type { EmbeddedCheckoutBrowserContext } from '../../../../../../commerce/src/purchase/index';
|
|
3
|
+
import type { BrowserStripeKey } from '../../../../../../commerce/src/purchase/index';
|
|
4
|
+
export { checkBrowserStripeKey, type BrowserStripeKey } from '../../../../../../commerce/src/purchase/index';
|
|
5
|
+
/** Pure entry loading stays inert until a payment surface calls this function. */
|
|
6
|
+
export declare function loadBrowserStripe(context: EmbeddedCheckoutBrowserContext | Extract<BrowserStripeKey, {
|
|
7
|
+
tag: 'ready';
|
|
8
|
+
}>): Promise<Stripe | null>;
|
|
@@ -20,4 +20,12 @@ declare const readJobSchema: z.ZodObject<{
|
|
|
20
20
|
}, z.core.$strip>;
|
|
21
21
|
export declare const eventCalendarReadProfile: TransformDefinition;
|
|
22
22
|
export declare const eventCalendarReadEnabled: TransformDefinition<z.infer<typeof readJobSchema>>;
|
|
23
|
+
/**
|
|
24
|
+
* The week board's authored band paints `surfaceAlt` across the whole
|
|
25
|
+
* section, under whatever foreground the section resolved. That foreground is
|
|
26
|
+
* the page's only when the section paints nothing itself, so the band is
|
|
27
|
+
* honoured on a plain section and dropped when a Look or override already
|
|
28
|
+
* paints one (light band text on a pale board band otherwise).
|
|
29
|
+
*/
|
|
30
|
+
export declare const eventCalendarBanded: TransformDefinition;
|
|
23
31
|
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Customer copy shared by checkout surfaces, so one approved wording reaches
|
|
3
|
+
* every place that shows it.
|
|
4
|
+
*/
|
|
5
|
+
export declare const checkoutCopy: {
|
|
6
|
+
/** A payment is still being confirmed; checking again is safe. */
|
|
7
|
+
readonly checkoutStillConfirming: "We’re still confirming your payment. This can take a minute – you can check again, and you won’t be charged twice.";
|
|
8
|
+
/** A previous attempt can't be confirmed automatically; the business needs to check it. */
|
|
9
|
+
readonly checkoutAssistanceRequired: "We can’t confirm your last payment attempt yet. Please don’t pay again – contact the business so they can check it.";
|
|
10
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Browser-safe Checkout contracts shared by payment owners. */
|
|
2
|
+
type CheckoutPresentationFields = {
|
|
3
|
+
hosted: Readonly<{
|
|
4
|
+
successUrl: string;
|
|
5
|
+
cancelUrl: string;
|
|
6
|
+
}>;
|
|
7
|
+
embedded: Readonly<{
|
|
8
|
+
returnUrl: string;
|
|
9
|
+
redirectOnCompletion: 'always' | 'if_required';
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
12
|
+
type CheckoutSessionFields = {
|
|
13
|
+
hosted: Readonly<{
|
|
14
|
+
checkoutUrl: string;
|
|
15
|
+
}>;
|
|
16
|
+
embedded: Readonly<{
|
|
17
|
+
clientSecret: string;
|
|
18
|
+
livemode: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
export type CheckoutMode = keyof CheckoutPresentationFields;
|
|
22
|
+
export type CheckoutPresentation<M extends CheckoutMode = CheckoutMode> = {
|
|
23
|
+
[K in CheckoutMode]: Readonly<{
|
|
24
|
+
mode: K;
|
|
25
|
+
}> & CheckoutPresentationFields[K];
|
|
26
|
+
}[M];
|
|
27
|
+
export type CheckoutSessionHandle<M extends CheckoutMode = CheckoutMode> = {
|
|
28
|
+
[K in CheckoutMode]: Readonly<{
|
|
29
|
+
kind: K;
|
|
30
|
+
sessionId: string;
|
|
31
|
+
}> & CheckoutSessionFields[K];
|
|
32
|
+
}[M];
|
|
33
|
+
export type EmbeddedCheckoutBrowserContext = Readonly<{
|
|
34
|
+
kind: 'connect';
|
|
35
|
+
publishableKey: string;
|
|
36
|
+
accountId: string;
|
|
37
|
+
}> | Readonly<{
|
|
38
|
+
kind: 'direct';
|
|
39
|
+
publishableKey: string;
|
|
40
|
+
}>;
|
|
41
|
+
export type BrowserStripeKey = Readonly<{
|
|
42
|
+
tag: 'ready';
|
|
43
|
+
publishableKey: string;
|
|
44
|
+
}> | Readonly<{
|
|
45
|
+
tag: 'unavailable';
|
|
46
|
+
reason: 'missing_key' | 'invalid_key' | 'mode_mismatch';
|
|
47
|
+
}>;
|
|
48
|
+
export declare function checkBrowserStripeKey(publishableKey: string | undefined, livemode: boolean): BrowserStripeKey;
|
|
49
|
+
export {};
|
|
@@ -32,9 +32,9 @@ export declare const OrderCheckoutSessionMetadataSchema: z.ZodUnion<readonly [z.
|
|
|
32
32
|
credit_reserved_cents: z.ZodOptional<z.ZodString>;
|
|
33
33
|
discount_code_amount_cents: z.ZodOptional<z.ZodString>;
|
|
34
34
|
order_payment_reason: z.ZodOptional<z.ZodEnum<{
|
|
35
|
-
flexible_balance_paydown: "flexible_balance_paydown";
|
|
36
|
-
instalment_payoff: "instalment_payoff";
|
|
37
35
|
flexible_balance_initial: "flexible_balance_initial";
|
|
36
|
+
instalment_payoff: "instalment_payoff";
|
|
37
|
+
flexible_balance_paydown: "flexible_balance_paydown";
|
|
38
38
|
}>>;
|
|
39
39
|
order_payment_plan_id: z.ZodOptional<z.ZodString>;
|
|
40
40
|
order_flexible_balance_contract_id: z.ZodOptional<z.ZodString>;
|
|
@@ -63,9 +63,9 @@ export declare const OrderCheckoutSessionMetadataSchema: z.ZodUnion<readonly [z.
|
|
|
63
63
|
credit_reserved_cents: z.ZodOptional<z.ZodString>;
|
|
64
64
|
discount_code_amount_cents: z.ZodOptional<z.ZodString>;
|
|
65
65
|
order_payment_reason: z.ZodOptional<z.ZodEnum<{
|
|
66
|
-
flexible_balance_paydown: "flexible_balance_paydown";
|
|
67
|
-
instalment_payoff: "instalment_payoff";
|
|
68
66
|
flexible_balance_initial: "flexible_balance_initial";
|
|
67
|
+
instalment_payoff: "instalment_payoff";
|
|
68
|
+
flexible_balance_paydown: "flexible_balance_paydown";
|
|
69
69
|
}>>;
|
|
70
70
|
order_payment_plan_id: z.ZodOptional<z.ZodString>;
|
|
71
71
|
order_flexible_balance_contract_id: z.ZodOptional<z.ZodString>;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export type CheckoutStripeFinalizationPaymentPlanKind = 'stripe' | 'instalment_plan' | 'flexible_balance';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The records besides the order that follow a newly created Stripe session.
|
|
4
|
+
* The order's own session is bound by the initial-session binder, never here.
|
|
5
|
+
*/
|
|
6
|
+
export type CheckoutStripeSessionRecordUpdateTarget = 'order_payment_plan' | 'flexible_balance_contract';
|
|
3
7
|
export type CheckoutStripeSessionRecordUpdatePlan = Readonly<{
|
|
4
8
|
target: CheckoutStripeSessionRecordUpdateTarget;
|
|
5
9
|
orderId: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type EventRegistrationErrorAction = 'none' | 'retry' | 'places' | 'start' | 'details' | 'payment-options' | 'portal' | 'event';
|
|
2
|
+
export declare const unfinishedBookingAssistanceMessage = "We couldn\u2019t safely find your unfinished booking. Please contact the organiser before trying to book again.";
|
|
2
3
|
export declare const eventRegistrationErrors: {
|
|
3
4
|
readonly registrationClosed: {
|
|
4
5
|
readonly message: "Booking is currently closed for this event. Please contact the organiser if you’d like to find out more.";
|
|
@@ -12,6 +13,14 @@ export declare const eventRegistrationErrors: {
|
|
|
12
13
|
readonly message: "We couldn’t reach the payment provider. Please try again in a minute.";
|
|
13
14
|
readonly action: "retry";
|
|
14
15
|
};
|
|
16
|
+
readonly paymentHostUnavailable: {
|
|
17
|
+
readonly message: "Card payments aren’t available on this web address yet. Please contact the organiser to book.";
|
|
18
|
+
readonly action: "none";
|
|
19
|
+
};
|
|
20
|
+
readonly checkoutTemporarilyUnavailable: {
|
|
21
|
+
readonly message: "Event payments are temporarily unavailable while we make an update. Please try again later.";
|
|
22
|
+
readonly action: "retry";
|
|
23
|
+
};
|
|
15
24
|
readonly paymentPageUnavailable: {
|
|
16
25
|
readonly message: "We couldn’t open the payment page. Please refresh this page and try again. If this keeps happening, contact the organiser for help.";
|
|
17
26
|
readonly action: "retry";
|