@riverbankcms/sdk 0.146.0 → 0.147.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/CHANGELOG.md +12 -0
- package/dist/{PreviewEditorSidebar-kg2r2Fyi.mjs → PreviewEditorSidebar-DtpB3_sS.mjs} +51 -33
- package/dist/{PreviewEditorUI-sWMLp5dT.mjs → PreviewEditorUI-DxTLgaHo.mjs} +3 -3
- package/dist/{PreviewQueryProvider-Cg51xq1w.mjs → PreviewQueryProvider-Dd4dxOiU.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-h2ti3Hch.mjs → SdkPreviewModeRuntime-DMMNCngt.mjs} +39 -12
- package/dist/{SiteChromeCustomizeContext-DEACFH9m.mjs → SiteChromeCustomizeContext-DQXZXiqS.mjs} +2499 -1682
- package/dist/_dts/ai/src/contracts/proposals.d.ts +198 -0
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +18 -0
- package/dist/_dts/api/src/accountApi.d.ts +5 -5
- package/dist/_dts/api/src/bookingConfig.d.ts +16 -0
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -13
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -44
- package/dist/_dts/api/src/bookingPeople.d.ts +92 -0
- package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +38 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +11 -49
- package/dist/_dts/api/src/bookingSettingsSections.d.ts +1 -1
- package/dist/_dts/api/src/bookings.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +587 -561
- package/dist/_dts/api/src/eventManagementContracts.d.ts +23 -8
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/index.d.ts +3 -2
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +1 -6
- package/dist/_dts/api/src/mailingListIntegration.d.ts +6 -0
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +1 -1
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +15 -0
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +19 -0
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +48 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +7 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +15 -0
- package/dist/_dts/api/src/sdkCourseBooking.d.ts +4 -4
- package/dist/_dts/api/src/siteLifecycleEndpoints.d.ts +61 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -18
- package/dist/_dts/api/src/siteOnboarding.d.ts +2 -14
- package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -0
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +22 -4
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +19 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-choice.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-note.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-state.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-success.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +2 -4
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingMailingListNote.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/shared/mailingListSignupCopy.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -2
- package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -3
- package/dist/_dts/core/src/index.d.ts +1 -1
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +15 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -0
- package/dist/_dts/core/src/navigation-portal-labels.d.ts +9 -0
- package/dist/_dts/core/src/participants.d.ts +0 -38
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +102 -22
- package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +7 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +4 -3
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +2 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +13 -0
- package/dist/_dts/theme-core/src/footer/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/effectiveNavLinkStyle.d.ts +17 -0
- package/dist/_dts/theme-core/src/header/generateHeaderLogoStyles.d.ts +15 -0
- package/dist/_dts/theme-core/src/header/generateHeaderNavLinkStyles.d.ts +4 -0
- package/dist/_dts/theme-core/src/header/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/openingForegroundProjection.d.ts +7 -0
- package/dist/_dts/theme-core/src/header/rootPaint.d.ts +4 -0
- package/dist/_dts/theme-core/src/navigation/effectPolicy.d.ts +38 -0
- package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +4 -0
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +1 -1
- package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +7 -0
- package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +29 -22
- package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +10 -2
- package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +9 -0
- package/dist/_dts/theme-core/src/utils/cssDeclarations.d.ts +2 -0
- package/dist/_dts/ui/src/badge.d.ts +2 -1
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/_dts/ui/src/combobox-keys.d.ts +23 -0
- package/dist/_dts/ui/src/combobox-rows.d.ts +34 -0
- package/dist/_dts/ui/src/combobox.d.ts +26 -1
- package/dist/_dts/ui/src/date-picker.d.ts +5 -8
- package/dist/_dts/ui/src/editor-item-card.d.ts +1 -0
- package/dist/_dts/ui/src/field-trigger.d.ts +39 -0
- package/dist/_dts/ui/src/fieldControl.d.ts +27 -0
- package/dist/_dts/ui/src/index.d.ts +4 -1
- package/dist/_dts/ui/src/native-select.d.ts +8 -0
- package/dist/_dts/ui/src/popover.d.ts +7 -1
- package/dist/_dts/ui/src/segmented-control.d.ts +4 -0
- package/dist/_dts/ui/src/surface.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-BQKL045f.mjs → BookingMailingListNote-1n4Ch_u_.mjs} +15 -4
- package/dist/client/{CheckboxChoice--W2n6yKs.mjs → CheckboxChoice-B33MqoUo.mjs} +1 -1
- package/dist/client/{DiscountCodeDisclosure-CsOtjFY7.mjs → DiscountCodeDisclosure-CKJtz0mY.mjs} +1 -1
- package/dist/client/{EventCombined.client-BdRjVbhH.mjs → EventCombined.client-C0pgma9y.mjs} +7 -7
- package/dist/client/{EventListing.client-DBxC6xOU.mjs → EventListing.client-4fhLOvHP.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-mHEJKrTs.mjs → LeafletStaticMap-DScC4F3w.mjs} +1 -1
- package/dist/client/{scrollToBlock-BNgaEUpo.mjs → TerminalPanel-B5ZUsYhe.mjs} +77 -77
- package/dist/client/{ThemedButton-CE5KYT6z.mjs → ThemedButton-DoVIV1Ao.mjs} +2 -2
- package/dist/client/{accordion-BEQNSptH.mjs → accordion-CoT5g7zo.mjs} +1 -1
- package/dist/client/{bookingForm-AMr-s5vw.mjs → bookingForm-BWxB46xD.mjs} +226 -106
- package/dist/client/bookings.mjs +367 -188
- package/dist/client/{carousel-Bbt_QgJy.mjs → carousel-DtNYWFd3.mjs} +2 -2
- package/dist/client/{carousel.client-jahpU9Vz.mjs → carousel.client-A2lG-9od.mjs} +1 -1
- package/dist/client/{cart-CnWi30zJ.mjs → cart-z4qZih1Y.mjs} +3 -3
- package/dist/client/{checkout-f3nkWgd4.mjs → checkout-DpL7euFH.mjs} +3 -3
- package/dist/client/{checkoutUrls-CW3-78uu.mjs → checkoutUrls-BEfR7kVu.mjs} +1 -1
- package/dist/client/client.mjs +2125 -1420
- package/dist/client/{colorStyles-CuJBiS-1.mjs → colorStyles-j5U9v5JA.mjs} +5 -1
- package/dist/client/{context-Bc8T6pCe.mjs → context-C8TinPJc.mjs} +1 -1
- package/dist/client/{dates-DUsCEzLb.mjs → dates-vwwxTeB0.mjs} +2 -2
- package/dist/client/{eventCalendar-CKwgXui5.mjs → eventCalendar-DIbHfJXO.mjs} +10 -10
- package/dist/client/{eventCombined-CBAOSTGR.mjs → eventCombined-DoGMJ6cg.mjs} +4 -4
- package/dist/client/{eventDetails-Dh-_WiBD.mjs → eventDetails-BjN9v6a1.mjs} +4 -4
- package/dist/client/{eventListing-CA3frIH5.mjs → eventListing-DajjWgOv.mjs} +4 -4
- package/dist/client/{eventRegistration-BHtsgdcg.mjs → eventRegistration-DMq9gMA-.mjs} +109 -41
- package/dist/client/{form-C2h3YAcg.mjs → form-Qf6qTbos.mjs} +5 -5
- package/dist/client/{headerSection-lwMuMTH9.mjs → headerSection-D7qJrqFX.mjs} +3 -3
- package/dist/client/hooks.mjs +661 -116
- package/dist/client/{locationMap-DJ2bLODV.mjs → locationMap-CCF9-t_0.mjs} +4 -4
- package/dist/client/{FieldValidationMessage-AYanWFb-.mjs → mailingListSignupCopy-DZSHZrm6.mjs} +14 -1
- package/dist/client/{media-BtJ37tzS.mjs → media-CwBGetqC.mjs} +1 -1
- package/dist/client/{newsletterForm-8Pu5K32g.mjs → newsletterForm-DzCLSP4S.mjs} +6 -6
- package/dist/client/{pricing-HHx3IgBz.mjs → pricing-Cgxv2KLC.mjs} +1 -1
- package/dist/client/{productDetail-C_1odnAf.mjs → productDetail-ru9w5GHx.mjs} +3 -3
- package/dist/client/{productList-CtCv-Nmx.mjs → productList-zaapKSl-.mjs} +3 -3
- package/dist/client/{propsDecoder-Dcgsncxb.mjs → propsDecoder-CwvvNOHx.mjs} +52 -6
- package/dist/client/rendering/client.mjs +951 -369
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2153 -1393
- package/dist/client/{routeIslandApiConfig-CWLP7wu3.mjs → routeIslandApiConfig-BwVFo0Y4.mjs} +1 -1
- package/dist/client/{shop-commerce-B88zmWWo.mjs → shop-commerce-De7gEnkA.mjs} +8 -8
- package/dist/client/{shop-commerce-store-DtSfkKuX.mjs → shop-commerce-store-B3MCxIBW.mjs} +1 -1
- package/dist/client/{shop-DQXrQ8kJ.mjs → shop-mktkXvbV.mjs} +7 -7
- package/dist/client/{shopShared-cuaONpkJ.mjs → shopShared-TqExh235.mjs} +5 -5
- package/dist/client/{useEventFilters-Bukew6Gb.mjs → useEventFilters-n_OjkIjX.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +122 -50
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-base.css +53 -2
- package/dist/preview-next/editor-chrome.css +7 -4
- package/dist/preview-next/keepAlive.mjs +122 -50
- package/dist/preview-next/middleware.mjs +122 -50
- package/dist/{previewAuthStore-h5IgbSp4.mjs → previewAuthStore-C_EHQ5XA.mjs} +122 -50
- package/dist/{sdk-runtime-DTc1uIXn.mjs → sdk-runtime-BIkJg5y1.mjs} +2 -2
- package/dist/{separator-BpHS1KZK.mjs → separator-C9qDP95Z.mjs} +1 -1
- package/dist/server/components.mjs +25345 -24942
- package/dist/server/config-validation.mjs +711 -163
- package/dist/server/config.mjs +711 -163
- package/dist/server/data.mjs +709 -162
- package/dist/server/index.mjs +123 -51
- package/dist/server/navigation.mjs +13 -2
- package/dist/server/next.mjs +4538 -4169
- package/dist/server/page-converter.mjs +107 -64
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2509 -2104
- package/dist/server/rendering.mjs +25526 -25104
- package/dist/server/routing.mjs +750 -289
- package/dist/server/server.mjs +671 -148
- package/dist/server/theme-bridge.mjs +66 -17
- package/dist/server/theme.mjs +5 -1
- package/dist/styles/index.css +32 -4
- package/package.json +1 -1
- package/dist/_dts/core/src/participant-identity.d.ts +0 -135
|
@@ -28,6 +28,8 @@ export declare const proofBlockIslandCodecs: {
|
|
|
28
28
|
message: string | null;
|
|
29
29
|
}>;
|
|
30
30
|
hydration: Readonly<{
|
|
31
|
+
mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
|
|
32
|
+
siteName?: string;
|
|
31
33
|
formId: string | null;
|
|
32
34
|
serviceId: string | null;
|
|
33
35
|
resourceId: string | null;
|
|
@@ -116,6 +118,8 @@ export declare const proofBlockIslandCodecs: {
|
|
|
116
118
|
message: string | null;
|
|
117
119
|
}>;
|
|
118
120
|
hydration: Readonly<{
|
|
121
|
+
mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
|
|
122
|
+
siteName?: string;
|
|
119
123
|
formId: string | null;
|
|
120
124
|
serviceId: string | null;
|
|
121
125
|
resourceId: string | null;
|
|
@@ -990,6 +994,8 @@ export declare const runtimeIslandCodecs: {
|
|
|
990
994
|
message: string | null;
|
|
991
995
|
}>;
|
|
992
996
|
hydration: Readonly<{
|
|
997
|
+
mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
|
|
998
|
+
siteName?: string;
|
|
993
999
|
formId: string | null;
|
|
994
1000
|
serviceId: string | null;
|
|
995
1001
|
resourceId: string | null;
|
|
@@ -1078,6 +1084,8 @@ export declare const runtimeIslandCodecs: {
|
|
|
1078
1084
|
message: string | null;
|
|
1079
1085
|
}>;
|
|
1080
1086
|
hydration: Readonly<{
|
|
1087
|
+
mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
|
|
1088
|
+
siteName?: string;
|
|
1081
1089
|
formId: string | null;
|
|
1082
1090
|
serviceId: string | null;
|
|
1083
1091
|
resourceId: string | null;
|
|
@@ -5,7 +5,7 @@ export type { CustomBlockConflictReason, CustomBlockManifestSource, CustomBlockR
|
|
|
5
5
|
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition, PageJoinRenderer, PageJoinSlot, PageRuntimeJoin, RenderedJoin, SdkConfigForRenderer, } from './PageRenderer';
|
|
6
6
|
export { MissingBlockOverrideError } from './pageRenderingMode';
|
|
7
7
|
export { readPublishedBlockPlacement } from './pageRenderAdmission';
|
|
8
|
-
export type { PublishedBlockPlacement } from './pageRenderAdmission';
|
|
8
|
+
export type { EditorPageOutlineWithPlacement, EditorRenderablePageOutline, PublishedBlockPlacement, PublishedBlockPlacementRead } from './pageRenderAdmission';
|
|
9
9
|
export * from './subroutes';
|
|
10
10
|
export * from './structure/schema';
|
|
11
11
|
export { BLOCK_BUTTON_ROLES, BLOCK_BUTTON_ROLE_OPTIONS, blockButtonRoleSchema, isBlockButtonRole, type BlockButtonRole, } from './system/constants/buttonRoles';
|
|
@@ -10,8 +10,13 @@ export type PublishedBlockPlacement = Readonly<{
|
|
|
10
10
|
id: string;
|
|
11
11
|
content: Record<string, unknown>;
|
|
12
12
|
}>;
|
|
13
|
+
export type PublishedBlockPlacementRead = PublishedBlockPlacement | Readonly<{
|
|
14
|
+
kind: 'incomplete';
|
|
15
|
+
id: string | null;
|
|
16
|
+
content: Record<string, unknown> | null;
|
|
17
|
+
}> | null;
|
|
13
18
|
/** Pair a published version with the content it authorises at the render boundary. */
|
|
14
|
-
export declare function readPublishedBlockPlacement(id: string | null | undefined, content: Record<string, unknown> | null | undefined):
|
|
19
|
+
export declare function readPublishedBlockPlacement(id: string | null | undefined, content: Record<string, unknown> | null | undefined): PublishedBlockPlacementRead;
|
|
15
20
|
export type RenderablePageBlock = Readonly<{
|
|
16
21
|
id: Block['id'];
|
|
17
22
|
kind: Block['kind'];
|
|
@@ -19,7 +24,8 @@ export type RenderablePageBlock = Readonly<{
|
|
|
19
24
|
bindings?: Block['bindings'];
|
|
20
25
|
contentVersionId?: string | null;
|
|
21
26
|
draftContentId?: string | null;
|
|
22
|
-
|
|
27
|
+
draftContent?: Record<string, unknown> | null;
|
|
28
|
+
publishedPlacement: PublishedBlockPlacementRead;
|
|
23
29
|
admission: Readonly<{
|
|
24
30
|
kind: 'renderable';
|
|
25
31
|
content: RenderableManifestContent;
|
|
@@ -43,10 +49,22 @@ export type PresentationBlock = Block & Readonly<{
|
|
|
43
49
|
presentationAdmission: PresentationAdmission;
|
|
44
50
|
contentVersionId?: string | null;
|
|
45
51
|
draftContentId?: string | null;
|
|
46
|
-
publishedPlacement
|
|
52
|
+
publishedPlacement: PublishedBlockPlacementRead;
|
|
47
53
|
}>;
|
|
48
54
|
export type PresentationPageOutline = Omit<PageOutline, 'blocks'> & Readonly<{
|
|
49
55
|
blocks: readonly PresentationBlock[];
|
|
50
56
|
}>;
|
|
57
|
+
export type EditorRenderablePageOutline = Omit<PageOutline, 'blocks'> & Readonly<{
|
|
58
|
+
blocks: (Block & Readonly<{
|
|
59
|
+
draftContentId: string | null;
|
|
60
|
+
publishedContentId: string | null;
|
|
61
|
+
publishedContent: Record<string, unknown> | null;
|
|
62
|
+
}>)[];
|
|
63
|
+
}>;
|
|
64
|
+
export type EditorPageOutlineWithPlacement = Omit<PageOutline, 'blocks'> & Readonly<{
|
|
65
|
+
blocks: readonly (Block & Readonly<{
|
|
66
|
+
publishedPlacement: PublishedBlockPlacementRead;
|
|
67
|
+
}>)[];
|
|
68
|
+
}>;
|
|
51
69
|
export declare function toPresentationPage(page: RenderablePageOutline | null): PresentationPageOutline | null;
|
|
52
|
-
export declare function toEditorPresentationPage(page:
|
|
70
|
+
export declare function toEditorPresentationPage(page: EditorPageOutlineWithPlacement | null): PresentationPageOutline | null;
|
|
@@ -137,6 +137,8 @@ export type SdkConfigForRenderer = {
|
|
|
137
137
|
*/
|
|
138
138
|
export type PageRendererDataContext = {
|
|
139
139
|
siteId?: string;
|
|
140
|
+
/** Public business name from sites.title. */
|
|
141
|
+
siteName?: string;
|
|
140
142
|
pageId?: string;
|
|
141
143
|
/** Canonical request pathname used by blocks when resolving same-site destinations. */
|
|
142
144
|
pathname?: string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { SystemBlockDefinition } from "../registry";
|
|
2
|
-
import type { SectionStylesContent } from "../fields/boxStyles";
|
|
2
|
+
import type { ContainerStylesContent, SectionStylesContent } from "../fields/boxStyles";
|
|
3
3
|
import { newsletterFormBlockRuntime } from "../runtime/nodes/newsletter-form.interactive";
|
|
4
4
|
import type { MailingListPlacementTargeting } from '../../../../core/src/index';
|
|
5
5
|
import type { RichTextDoc } from "../manifest/richTextSchema";
|
|
6
6
|
import type { BlockButtonRole } from "../constants/buttonRoles";
|
|
7
|
+
import type { ContentFromManifest } from '../manifest/derivedContent';
|
|
7
8
|
export declare const newsletterSignupManifest: import("..").DefinedBlockManifest<import("..").BlockContentShapeInput<{
|
|
8
9
|
readonly id: "block.newsletter-signup";
|
|
9
10
|
readonly title: "Newsletter Signup";
|
|
@@ -120,10 +121,12 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
|
|
|
120
121
|
export type NewsletterSignupContent = {
|
|
121
122
|
title?: string | null;
|
|
122
123
|
subtitle?: RichTextDoc | null;
|
|
124
|
+
variant?: NonNullable<ContentFromManifest<typeof newsletterSignupManifest>['variant']>;
|
|
123
125
|
targeting: MailingListPlacementTargeting;
|
|
124
126
|
buttonVariant?: BlockButtonRole | null;
|
|
125
127
|
mailingListSource?: 'signed-footer' | null;
|
|
126
128
|
mailingListSourceToken?: string | null;
|
|
129
|
+
_containerStyles?: ContainerStylesContent;
|
|
127
130
|
_sectionStyles?: SectionStylesContent;
|
|
128
131
|
};
|
|
129
132
|
export type NewsletterSignupAuthoringContent = NewsletterSignupContent;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../../core/src/index';
|
|
1
2
|
/**
|
|
2
3
|
* Appointment booking, availability, service and resource types
|
|
3
4
|
*
|
|
@@ -12,6 +13,7 @@ export interface BookingSubmitRequest {
|
|
|
12
13
|
startAt: string;
|
|
13
14
|
endAt: string;
|
|
14
15
|
customFields: Record<string, unknown>;
|
|
16
|
+
mailingListOptIn?: boolean;
|
|
15
17
|
timezone: string;
|
|
16
18
|
discountCode?: string;
|
|
17
19
|
selectedSlidingAmount?: number;
|
|
@@ -43,6 +45,7 @@ export type BookingSubmitResponse = {
|
|
|
43
45
|
orderNumber: string;
|
|
44
46
|
appointment: BookingAppointmentSummary;
|
|
45
47
|
customer: BookingCustomerSummary;
|
|
48
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
46
49
|
} | {
|
|
47
50
|
type: "checkout_redirect";
|
|
48
51
|
orderId: string;
|
|
@@ -51,6 +54,7 @@ export type BookingSubmitResponse = {
|
|
|
51
54
|
sessionId: string;
|
|
52
55
|
appointment: BookingAppointmentSummary;
|
|
53
56
|
customer: BookingCustomerSummary;
|
|
57
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
54
58
|
};
|
|
55
59
|
export type EligibleAppointmentPackage = {
|
|
56
60
|
customerPassId: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../../core/src/index';
|
|
1
2
|
/**
|
|
2
3
|
* Public event, registration, checkout and eligibility types
|
|
3
4
|
*
|
|
@@ -124,6 +125,7 @@ export interface EventRegisterRequest {
|
|
|
124
125
|
notes?: string;
|
|
125
126
|
formData?: Record<string, unknown>;
|
|
126
127
|
consentAccepted?: boolean;
|
|
128
|
+
mailingListOptIn?: boolean;
|
|
127
129
|
altchaSolution?: string | null;
|
|
128
130
|
paymentMethod?: PaymentMethod;
|
|
129
131
|
customerPassId?: string;
|
|
@@ -154,6 +156,7 @@ export type EventRegisterResponse = {
|
|
|
154
156
|
kind: 'bookingComplete';
|
|
155
157
|
reference: EventRegistrationStatusReference;
|
|
156
158
|
summary: EventRegistrationSummary;
|
|
159
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
157
160
|
} | {
|
|
158
161
|
kind: 'paymentDeferred';
|
|
159
162
|
reference: EventRegistrationStatusReference;
|
|
@@ -162,16 +165,20 @@ export type EventRegisterResponse = {
|
|
|
162
165
|
amountCents: number;
|
|
163
166
|
currency: string;
|
|
164
167
|
};
|
|
168
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
165
169
|
} | {
|
|
166
170
|
kind: 'checkoutRequired';
|
|
167
171
|
reference: EventRegistrationStatusReference;
|
|
168
172
|
checkoutUrl: string;
|
|
169
173
|
submissionId: string;
|
|
174
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
170
175
|
} | {
|
|
171
176
|
kind: 'paymentStatusRequired';
|
|
172
177
|
subject: EventRegistrationPaymentSubject;
|
|
178
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
173
179
|
} | {
|
|
174
180
|
kind: 'waitlisted';
|
|
181
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
175
182
|
waitlist: {
|
|
176
183
|
reference: {
|
|
177
184
|
scope: 'occurrence';
|
|
@@ -214,6 +221,7 @@ export type EventCheckoutRequest = EventCheckoutRequestCommon & ({
|
|
|
214
221
|
phone?: string;
|
|
215
222
|
formData?: Record<string, unknown>;
|
|
216
223
|
consentAccepted?: boolean;
|
|
224
|
+
mailingListOptIn?: boolean;
|
|
217
225
|
altchaSolution?: string | null;
|
|
218
226
|
guests?: EventRegisterGuest[];
|
|
219
227
|
claimToken?: string;
|
|
@@ -226,6 +234,7 @@ type OccurrenceCheckoutResponse = Readonly<{
|
|
|
226
234
|
checkoutUrl: string | null;
|
|
227
235
|
sessionId: string | null;
|
|
228
236
|
bypassed: boolean;
|
|
237
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
229
238
|
}>;
|
|
230
239
|
type WholeSeriesCheckoutResponse = Readonly<{
|
|
231
240
|
scope: 'wholeSeries';
|
|
@@ -235,12 +244,14 @@ type WholeSeriesCheckoutResponse = Readonly<{
|
|
|
235
244
|
checkoutUrl: string | null;
|
|
236
245
|
sessionId: string | null;
|
|
237
246
|
bypassed: boolean;
|
|
247
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
238
248
|
}>;
|
|
239
249
|
type WholeSeriesPaymentStatusRequired = Readonly<{
|
|
240
250
|
scope: 'wholeSeries';
|
|
241
251
|
status: 'paymentStatusRequired';
|
|
242
252
|
checkoutAttemptId: string;
|
|
243
253
|
recoverableUntil: string;
|
|
254
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
244
255
|
}>;
|
|
245
256
|
type WholeSeriesWaitlistResponse = Readonly<{
|
|
246
257
|
scope: 'wholeSeries';
|
|
@@ -248,6 +259,7 @@ type WholeSeriesWaitlistResponse = Readonly<{
|
|
|
248
259
|
waitlistEntryId: string;
|
|
249
260
|
waitlistPosition: number | null;
|
|
250
261
|
alreadyRegistered?: boolean;
|
|
262
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
251
263
|
}>;
|
|
252
264
|
export type EventCheckoutResponse = OccurrenceCheckoutResponse | WholeSeriesCheckoutResponse | WholeSeriesPaymentStatusRequired | WholeSeriesWaitlistResponse;
|
|
253
265
|
export interface EligiblePass {
|
|
@@ -1570,6 +1570,8 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
1570
1570
|
siteMemberships?: Readonly<{
|
|
1571
1571
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
1572
1572
|
}> | null;
|
|
1573
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
1574
|
+
siteName?: string;
|
|
1573
1575
|
}>) => Readonly<{
|
|
1574
1576
|
display: import("../nodes/event-registration.interactive").EventRegistrationDisplay;
|
|
1575
1577
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "events" | "buttonText"> & {
|
|
@@ -1606,6 +1608,8 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
1606
1608
|
siteMemberships?: Readonly<{
|
|
1607
1609
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
1608
1610
|
}> | null;
|
|
1611
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
1612
|
+
siteName?: string;
|
|
1609
1613
|
}>) => unknown;
|
|
1610
1614
|
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
1611
1615
|
siteId?: string;
|
|
@@ -1635,6 +1639,8 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
1635
1639
|
siteMemberships?: Readonly<{
|
|
1636
1640
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
1637
1641
|
}> | null;
|
|
1642
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
1643
|
+
siteName?: string;
|
|
1638
1644
|
}>>;
|
|
1639
1645
|
}>;
|
|
1640
1646
|
render: Readonly<{
|
|
@@ -1686,6 +1692,8 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
1686
1692
|
siteMemberships?: Readonly<{
|
|
1687
1693
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
1688
1694
|
}> | null;
|
|
1695
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
1696
|
+
siteName?: string;
|
|
1689
1697
|
}>) => Readonly<{
|
|
1690
1698
|
display: import("../nodes/event-registration.interactive").EventRegistrationDisplay;
|
|
1691
1699
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "events" | "buttonText"> & {
|
|
@@ -1722,6 +1730,8 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
1722
1730
|
siteMemberships?: Readonly<{
|
|
1723
1731
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
1724
1732
|
}> | null;
|
|
1733
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
1734
|
+
siteName?: string;
|
|
1725
1735
|
}>) => unknown;
|
|
1726
1736
|
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
1727
1737
|
siteId?: string;
|
|
@@ -1751,6 +1761,8 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
1751
1761
|
siteMemberships?: Readonly<{
|
|
1752
1762
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
1753
1763
|
}> | null;
|
|
1764
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
1765
|
+
siteName?: string;
|
|
1754
1766
|
}>>;
|
|
1755
1767
|
}>;
|
|
1756
1768
|
render: Readonly<{
|
|
@@ -799,6 +799,8 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
799
799
|
siteMemberships?: Readonly<{
|
|
800
800
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
801
801
|
}> | null;
|
|
802
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
803
|
+
siteName?: string;
|
|
802
804
|
}>) => Readonly<{
|
|
803
805
|
display: import("../nodes/event-registration.interactive").EventRegistrationDisplay;
|
|
804
806
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "events" | "buttonText"> & {
|
|
@@ -835,6 +837,8 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
835
837
|
siteMemberships?: Readonly<{
|
|
836
838
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
837
839
|
}> | null;
|
|
840
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
841
|
+
siteName?: string;
|
|
838
842
|
}>) => unknown;
|
|
839
843
|
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
840
844
|
siteId?: string;
|
|
@@ -864,6 +868,8 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
864
868
|
siteMemberships?: Readonly<{
|
|
865
869
|
memberships: readonly import("../..").PublicMembershipProduct[];
|
|
866
870
|
}> | null;
|
|
871
|
+
mailingList?: import("../../../../../core/src/index").MailingListRuntimeContext;
|
|
872
|
+
siteName?: string;
|
|
867
873
|
}>>;
|
|
868
874
|
}>;
|
|
869
875
|
render: Readonly<{
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import type { MailingListRuntimeContext } from "../../../../../core/src/index";
|
|
2
3
|
import { type BlockApiConfig } from "../api";
|
|
3
4
|
import type { AutoAppliedDiscountPreview } from "../api/types";
|
|
4
5
|
import type { BookingFormConfig, BookingFormData, BookingFormService, BookingFormServiceCategory, BookingSelectedCollectionOptionKind } from "../nodes/booking-form.state";
|
|
@@ -8,6 +9,8 @@ export type { BlockApiConfig };
|
|
|
8
9
|
export type { BookingAppointmentPackagesModel };
|
|
9
10
|
export { createBookingBlockApiConfig };
|
|
10
11
|
export type HeadlessBookingFlowOptions = Readonly<{
|
|
12
|
+
mailingList?: MailingListRuntimeContext;
|
|
13
|
+
siteName?: string;
|
|
11
14
|
siteId: string;
|
|
12
15
|
formId: string;
|
|
13
16
|
form: BookingFormConfig | null;
|
|
@@ -111,6 +114,7 @@ export type BookingFlowActions = Readonly<{
|
|
|
111
114
|
selectDate: (date: string | null) => void;
|
|
112
115
|
selectSlot: (slot: BookingSlotSelection | null) => void;
|
|
113
116
|
updateField: (fieldId: string, value: BookingFieldValue) => void;
|
|
117
|
+
setMailingListOptIn: (checked: boolean) => void;
|
|
114
118
|
markFieldTouched: (fieldId: string) => void;
|
|
115
119
|
selectPaymentOption: (kind: BookingSelectedCollectionOptionKind | null) => void;
|
|
116
120
|
selectAppointmentPackage: (packageId: string | null) => void;
|
|
@@ -131,6 +135,10 @@ export type BookingFlowActions = Readonly<{
|
|
|
131
135
|
clearFeedback: () => void;
|
|
132
136
|
}>;
|
|
133
137
|
export type HeadlessBookingFlow = Readonly<{
|
|
138
|
+
mailingList: Readonly<{
|
|
139
|
+
siteName: string;
|
|
140
|
+
}> | null;
|
|
141
|
+
mailingListOptIn: boolean;
|
|
134
142
|
status: BookingFlowStatus;
|
|
135
143
|
view: BookingFlowView;
|
|
136
144
|
steps: readonly BookingFlowStep[];
|
|
@@ -21,6 +21,8 @@ export type HeadlessEventRegistrationFlowOptions = Readonly<{
|
|
|
21
21
|
events?: readonly NonNullable<EventRegistrationClientProps['events']>[number][];
|
|
22
22
|
maxTickets?: string | number;
|
|
23
23
|
spamProtectionEnabled?: boolean;
|
|
24
|
+
mailingList?: EventRegistrationClientProps['mailingList'];
|
|
25
|
+
siteName?: string;
|
|
24
26
|
}>;
|
|
25
27
|
export type HeadlessEventRegistrationProviderProps = Readonly<{
|
|
26
28
|
config: BlockApiConfig;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../core/src/index';
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { type BookingRedirectState } from "./booking-form.state";
|
|
4
|
+
export declare function BookingFormCompletion({ resourceName, successMessage, redirectState, localNote, }: Readonly<{
|
|
5
|
+
resourceName?: string | null;
|
|
6
|
+
successMessage?: string | null;
|
|
7
|
+
redirectState: BookingRedirectState;
|
|
8
|
+
localNote: BookingSignupNote | null;
|
|
9
|
+
}>): React.ReactElement;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../core/src/index';
|
|
1
2
|
import type { AppointmentResourceId, AppointmentServiceId, Brand, CustomerPassId, FormId, PassId, SiteId } from "../../../../../core/src/index";
|
|
2
3
|
import type { BlockApiConfig, EligibleAppointmentPackage } from "../api/types";
|
|
3
4
|
import type { TimeSlot } from "../api/types";
|
|
@@ -136,12 +137,15 @@ export type BookingSubmitActionResult = Readonly<{
|
|
|
136
137
|
kind: "booked";
|
|
137
138
|
appointmentId: string;
|
|
138
139
|
resourceName: string | null;
|
|
140
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
139
141
|
};
|
|
140
142
|
}> | Readonly<{
|
|
141
143
|
ok: true;
|
|
142
144
|
outcome: {
|
|
143
145
|
kind: "checkout_redirect";
|
|
144
146
|
checkoutUrl: string;
|
|
147
|
+
sessionId: string;
|
|
148
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
145
149
|
};
|
|
146
150
|
}> | Exclude<BookingFlowActionResult, Readonly<{
|
|
147
151
|
ok: true;
|
|
@@ -170,6 +174,7 @@ export type BookingFlowReducerState = Readonly<{
|
|
|
170
174
|
selectedDate?: string;
|
|
171
175
|
selectedSlot: BookingSlotView | null;
|
|
172
176
|
fieldValues: Readonly<Record<string, BookingFieldValue>>;
|
|
177
|
+
mailingListOptIn: boolean;
|
|
173
178
|
touchedFields: Readonly<Record<string, boolean>>;
|
|
174
179
|
/**
|
|
175
180
|
* Steps the user has tried to advance past. Step validation is derived
|
|
@@ -205,6 +210,9 @@ export type BookingFlowEvent = Readonly<{
|
|
|
205
210
|
}> | Readonly<{
|
|
206
211
|
type: "field-touched";
|
|
207
212
|
fieldId: BookingFieldId;
|
|
213
|
+
}> | Readonly<{
|
|
214
|
+
type: "mailing-list-opt-in-set";
|
|
215
|
+
checked: boolean;
|
|
208
216
|
}> | Readonly<{
|
|
209
217
|
type: "step-advance-attempted";
|
|
210
218
|
stepId: BookingFlowStepId;
|
|
@@ -504,6 +512,7 @@ export declare function buildBookingSubmitPlan(input: Readonly<{
|
|
|
504
512
|
redirect: BookingSubmitRedirectMode;
|
|
505
513
|
successUrl?: string;
|
|
506
514
|
cancelUrl?: string;
|
|
515
|
+
mailingListEligible?: boolean;
|
|
507
516
|
}>): BookingSubmitPlan;
|
|
508
517
|
export declare function getAppointmentBookingOverrideInput(props: AppointmentBookingOverridePropsLike): AppointmentBookingOverrideInputResult;
|
|
509
518
|
export declare function createBookingBlockApiConfig(input: Readonly<{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type MailingListRuntimeContext } from "../../../../../core/src/index";
|
|
1
2
|
import { type InteractiveIslandProps } from "../../../contracts/islands";
|
|
2
3
|
import { type BookingFormService, type BookingFormServiceCategory, type BookingFormConfig, type BookingFormServicesSource } from "./booking-form.state";
|
|
3
4
|
import { type BookingFormRebookContext, type BookingFormSourceProps } from "./booking-runtime-sources";
|
|
@@ -12,6 +13,8 @@ export type BookingFormDisplay = Readonly<{
|
|
|
12
13
|
message: string | null;
|
|
13
14
|
}>;
|
|
14
15
|
export type BookingFormHydration = Readonly<{
|
|
16
|
+
mailingList?: MailingListRuntimeContext;
|
|
17
|
+
siteName?: string;
|
|
15
18
|
formId: string | null;
|
|
16
19
|
serviceId: string | null;
|
|
17
20
|
resourceId: string | null;
|
|
@@ -43,6 +46,8 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
43
46
|
siteId?: string;
|
|
44
47
|
apiBaseUrl?: string;
|
|
45
48
|
portalToken?: string | null;
|
|
49
|
+
mailingList?: MailingListRuntimeContext;
|
|
50
|
+
siteName?: string;
|
|
46
51
|
formId?: string;
|
|
47
52
|
serviceId?: string | null;
|
|
48
53
|
resourceId?: string | null;
|
|
@@ -89,6 +94,8 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
89
94
|
message: string | null;
|
|
90
95
|
}>;
|
|
91
96
|
hydration: Readonly<{
|
|
97
|
+
mailingList?: MailingListRuntimeContext;
|
|
98
|
+
siteName?: string;
|
|
92
99
|
formId: string | null;
|
|
93
100
|
serviceId: string | null;
|
|
94
101
|
resourceId: string | null;
|
|
@@ -168,6 +175,8 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
168
175
|
siteId?: string;
|
|
169
176
|
apiBaseUrl?: string;
|
|
170
177
|
portalToken?: string | null;
|
|
178
|
+
mailingList?: MailingListRuntimeContext;
|
|
179
|
+
siteName?: string;
|
|
171
180
|
formId?: string;
|
|
172
181
|
serviceId?: string | null;
|
|
173
182
|
resourceId?: string | null;
|
|
@@ -209,6 +218,8 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
209
218
|
siteId?: string;
|
|
210
219
|
apiBaseUrl?: string;
|
|
211
220
|
portalToken?: string | null;
|
|
221
|
+
mailingList?: MailingListRuntimeContext;
|
|
222
|
+
siteName?: string;
|
|
212
223
|
formId?: string;
|
|
213
224
|
serviceId?: string | null;
|
|
214
225
|
resourceId?: string | null;
|
|
@@ -258,6 +269,8 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
258
269
|
message: string | null;
|
|
259
270
|
}>;
|
|
260
271
|
hydration: Readonly<{
|
|
272
|
+
mailingList?: MailingListRuntimeContext;
|
|
273
|
+
siteName?: string;
|
|
261
274
|
formId: string | null;
|
|
262
275
|
serviceId: string | null;
|
|
263
276
|
resourceId: string | null;
|
|
@@ -341,6 +354,8 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
341
354
|
message: string | null;
|
|
342
355
|
}>;
|
|
343
356
|
hydration: Readonly<{
|
|
357
|
+
mailingList?: MailingListRuntimeContext;
|
|
358
|
+
siteName?: string;
|
|
344
359
|
formId: string | null;
|
|
345
360
|
serviceId: string | null;
|
|
346
361
|
resourceId: string | null;
|
|
@@ -436,6 +451,8 @@ export declare const bookingFormInteractiveIslandPropsCodec: Readonly<{
|
|
|
436
451
|
message: string | null;
|
|
437
452
|
}>;
|
|
438
453
|
hydration: Readonly<{
|
|
454
|
+
mailingList?: MailingListRuntimeContext;
|
|
455
|
+
siteName?: string;
|
|
439
456
|
formId: string | null;
|
|
440
457
|
serviceId: string | null;
|
|
441
458
|
resourceId: string | null;
|
|
@@ -528,6 +545,8 @@ export declare const bookingFormInteractiveIslandPropsCodec: Readonly<{
|
|
|
528
545
|
message: string | null;
|
|
529
546
|
}>;
|
|
530
547
|
hydration: Readonly<{
|
|
548
|
+
mailingList?: MailingListRuntimeContext;
|
|
549
|
+
siteName?: string;
|
|
531
550
|
formId: string | null;
|
|
532
551
|
serviceId: string | null;
|
|
533
552
|
resourceId: string | null;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BookingMailingListNote } from '../../../../../core/src/index';
|
|
2
|
+
export declare function saveAppointmentMailingListNote(sessionId: string, note: BookingMailingListNote | undefined): void;
|
|
3
|
+
export declare function readAppointmentMailingListNote(sessionId: string): BookingMailingListNote | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BookingFormData } from "./booking-form.state";
|
|
2
|
+
import type { BookingFlowReducerState, BookingFlowEvent } from "./booking-form.headless.state";
|
|
3
|
+
export declare function bookingFormDataWithEligibleOptIn(data: BookingFormData, eligible: boolean): BookingFormData;
|
|
4
|
+
type ContactEvent = Extract<BookingFlowEvent, {
|
|
5
|
+
type: "field-updated" | "field-touched" | "mailing-list-opt-in-set";
|
|
6
|
+
}>;
|
|
7
|
+
export declare function isBookingContactEvent(event: BookingFlowEvent): event is ContactEvent;
|
|
8
|
+
export declare function applyBookingContactEvent(state: BookingFlowReducerState, event: ContactEvent): BookingFlowReducerState;
|
|
9
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const APPOINTMENT_BOOKING_BLOCK_ID: "block.appointment-booking";
|
|
2
|
-
export declare const BOOKING_FORM_DATA_RESERVED_KEY_VALUES: readonly ["serviceId", "resourceId", "selectedDate", "selectedSlot", "discountCode", "selectedSlidingAmountInput", "selectedCollectionOptionKind", "selectedAppointmentPackageId"];
|
|
2
|
+
export declare const BOOKING_FORM_DATA_RESERVED_KEY_VALUES: readonly ["serviceId", "resourceId", "selectedDate", "selectedSlot", "discountCode", "selectedSlidingAmountInput", "selectedCollectionOptionKind", "selectedAppointmentPackageId", "mailingListOptIn"];
|
|
3
3
|
export type BookingFormDataReservedKey = (typeof BOOKING_FORM_DATA_RESERVED_KEY_VALUES)[number];
|
|
4
4
|
export type BookingReservedFieldCollision = Readonly<{
|
|
5
5
|
fieldId: BookingFormDataReservedKey;
|
|
@@ -17,5 +17,5 @@ type BookingFormProps = BookingFormSourceProps & Readonly<{
|
|
|
17
17
|
* own `.rb-reg-surface`, and leaves no stale loading state on the mounted form.
|
|
18
18
|
* `event-registration.server.tsx` follows the same shape.
|
|
19
19
|
*/
|
|
20
|
-
export declare function BookingFormSSR({ blockId,
|
|
20
|
+
export declare function BookingFormSSR({ blockId, children, ...sourceProps }: BookingFormProps): React.JSX.Element;
|
|
21
21
|
export default BookingFormSSR;
|
|
@@ -83,6 +83,7 @@ export type BookingFormData<TCustomFieldId extends string = never> = Readonly<{
|
|
|
83
83
|
selectedSlidingAmountInput?: string;
|
|
84
84
|
selectedCollectionOptionKind?: BookingSelectedCollectionOptionKind;
|
|
85
85
|
selectedAppointmentPackageId?: string;
|
|
86
|
+
mailingListOptIn?: boolean;
|
|
86
87
|
}> & BookingCustomFieldData<TCustomFieldId>;
|
|
87
88
|
type RuntimeBookingFormData = BookingFormData<string>;
|
|
88
89
|
type BookingSubmissionCommon = Readonly<{
|
|
@@ -92,6 +93,7 @@ type BookingSubmissionCommon = Readonly<{
|
|
|
92
93
|
startAt: string;
|
|
93
94
|
endAt: string;
|
|
94
95
|
customFields: Readonly<Record<string, unknown>>;
|
|
96
|
+
mailingListOptIn?: boolean;
|
|
95
97
|
timezone: string;
|
|
96
98
|
}>;
|
|
97
99
|
export type BookingSubmissionData = (BookingSubmissionCommon & Readonly<{
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../core/src/index';
|
|
2
|
+
import type { HeadlessBookingFlow } from "../hooks/useHeadlessBookingFlow";
|
|
3
|
+
export declare function createBookingFormSubmitHandler(input: Readonly<{
|
|
4
|
+
booking: HeadlessBookingFlow;
|
|
5
|
+
bookingAnchorId: string;
|
|
6
|
+
isPortalRebook: boolean;
|
|
7
|
+
setLocalMailingListNote: (note: BookingSignupNote | null) => void;
|
|
8
|
+
}>): () => Promise<void>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BookingSubmitResponse } from "../api/types";
|
|
2
|
+
import type { BookingFlowEvent, BookingSubmitActionResult } from "./booking-form.headless.state";
|
|
3
|
+
export declare function completeBookingSubmission(input: Readonly<{
|
|
4
|
+
data: BookingSubmitResponse;
|
|
5
|
+
redirect: "auto" | "manual";
|
|
6
|
+
successMessage?: string | null;
|
|
7
|
+
navigateToCheckout: (url: string) => void;
|
|
8
|
+
dispatch: (event: BookingFlowEvent) => void;
|
|
9
|
+
}>): BookingSubmitActionResult;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import type { MailingListRuntimeContext } from "../../../../../core/src/index";
|
|
2
3
|
import type { PublicEvent } from "../../blocks/events/shared/types";
|
|
3
4
|
import type { StandardBookingFormField, BookingFormService, BookingFormServiceCategory, BookingFormServicesSource, BookingFormSettings, BookingFormSourceRecord } from "./booking-form.state";
|
|
4
5
|
import type { EventRegistrationSourceProps } from "./event-registration.interactive";
|
|
@@ -10,6 +11,8 @@ export type BookingFormSourceProps = Readonly<{
|
|
|
10
11
|
siteId?: string;
|
|
11
12
|
apiBaseUrl?: string;
|
|
12
13
|
portalToken?: string | null;
|
|
14
|
+
mailingList?: MailingListRuntimeContext;
|
|
15
|
+
siteName?: string;
|
|
13
16
|
formId?: string;
|
|
14
17
|
serviceId?: string | null;
|
|
15
18
|
resourceId?: string | null;
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts
CHANGED
|
@@ -24,6 +24,9 @@ type AttendeeDetailsStepProps = {
|
|
|
24
24
|
/** Callback when guest section shake animation ends */
|
|
25
25
|
onGuestShakeEnd?: () => void;
|
|
26
26
|
consent: BlockBookingConsent | null;
|
|
27
|
+
mailingListSignup?: Readonly<{
|
|
28
|
+
siteName: string;
|
|
29
|
+
}> | null;
|
|
27
30
|
};
|
|
28
31
|
/**
|
|
29
32
|
* Attendee Details Step
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../../core/src/index';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
type SuccessStepProps = {
|
|
3
4
|
title?: string;
|
|
4
5
|
message: string;
|
|
5
6
|
variant?: 'success' | 'info';
|
|
7
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
8
|
+
context?: 'booking' | 'waitlist';
|
|
6
9
|
};
|
|
7
10
|
/**
|
|
8
11
|
* Success Step
|
|
@@ -122,6 +122,9 @@ export type EventRegistrationTicketsModel = Readonly<{
|
|
|
122
122
|
export type EventRegistrationAttendeeModel = Readonly<{
|
|
123
123
|
values: FormData;
|
|
124
124
|
errors: Partial<Record<keyof FormData, string>>;
|
|
125
|
+
mailingListSignup: Readonly<{
|
|
126
|
+
siteName: string;
|
|
127
|
+
}> | null;
|
|
125
128
|
}>;
|
|
126
129
|
export type EventRegistrationGuestsModel = Readonly<{
|
|
127
130
|
required: boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BookingMailingListNote as BookingSignupNote } from '../../../../../../core/src/index';
|
|
1
2
|
/**
|
|
2
3
|
* SessionStorage utilities for preserving form state across Stripe redirects.
|
|
3
4
|
*
|
|
@@ -22,6 +23,7 @@ type PendingRegistrationV5 = {
|
|
|
22
23
|
paymentSelection: PaymentSelection & {
|
|
23
24
|
method: Exclude<PaymentSelection['method'], null>;
|
|
24
25
|
};
|
|
26
|
+
mailingListSignupNote?: BookingSignupNote;
|
|
25
27
|
timestamp: number;
|
|
26
28
|
};
|
|
27
29
|
export type PendingRegistration = PendingRegistrationV5;
|