@riverbankcms/sdk 0.147.0 → 0.148.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 +16 -0
- package/dist/{PreviewEditorSidebar-DtpB3_sS.mjs → PreviewEditorSidebar-DvEPG3Z2.mjs} +202 -143
- package/dist/{PreviewEditorUI-DxTLgaHo.mjs → PreviewEditorUI-D6eb6fkx.mjs} +68 -60
- package/dist/{PreviewQueryProvider-Dd4dxOiU.mjs → PreviewQueryProvider-5znTyJuz.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DMMNCngt.mjs → SdkPreviewModeRuntime-DJ6utQ_R.mjs} +1191 -513
- package/dist/{SiteChromeCustomizeContext-DQXZXiqS.mjs → SiteChromeCustomizeContext-CFJYh6vo.mjs} +201798 -197304
- package/dist/_dts/ai/src/contracts/proposals.d.ts +0 -33
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +0 -3
- package/dist/_dts/api/src/accessAdmin.d.ts +0 -4
- package/dist/_dts/api/src/accountApi.d.ts +1 -1
- package/dist/_dts/api/src/admin.d.ts +22 -22
- package/dist/_dts/api/src/aiPatch.d.ts +2 -2
- package/dist/_dts/api/src/aiPlayground.d.ts +1 -0
- package/dist/_dts/api/src/analytics.d.ts +2 -2
- package/dist/_dts/api/src/apiEndpointTypes.d.ts +2 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
- package/dist/_dts/api/src/auth.d.ts +10 -10
- package/dist/_dts/api/src/availability.d.ts +6 -6
- package/dist/_dts/api/src/billing.d.ts +42 -15
- package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +8 -0
- package/dist/_dts/api/src/billingEndpointTypes.d.ts +15 -6
- package/dist/_dts/api/src/blocks.d.ts +15 -14
- package/dist/_dts/api/src/blocksKeys.d.ts +2 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +0 -2
- package/dist/_dts/api/src/bookingOperations.d.ts +4 -4
- package/dist/_dts/api/src/bookingRecords.d.ts +1 -0
- package/dist/_dts/api/src/bookings.d.ts +7 -7
- package/dist/_dts/api/src/calendar.d.ts +9 -9
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -6
- package/dist/_dts/api/src/common/envelope.d.ts +2 -2
- package/dist/_dts/api/src/content-editor.d.ts +2 -2
- package/dist/_dts/api/src/contentEntries.d.ts +17 -48
- package/dist/_dts/api/src/contentRuntime.d.ts +51 -37
- package/dist/_dts/api/src/contentTypes.d.ts +11 -11
- package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +6 -6
- package/dist/_dts/api/src/documentLifecycle.d.ts +67 -0
- package/dist/_dts/api/src/domains.d.ts +16 -16
- package/dist/_dts/api/src/editLeaseEndpoints.d.ts +72 -0
- package/dist/_dts/api/src/emailSettings.d.ts +4 -4
- package/dist/_dts/api/src/endpoints.d.ts +133 -41
- package/dist/_dts/api/src/eventEmailTemplates.d.ts +2 -2
- package/dist/_dts/api/src/eventManagementContracts.d.ts +25 -0
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +0 -8
- package/dist/_dts/api/src/eventPageWords.d.ts +7 -12
- package/dist/_dts/api/src/footerSettings.d.ts +6 -6
- package/dist/_dts/api/src/index.d.ts +6 -5
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/navigation.d.ts +5 -5
- package/dist/_dts/api/src/pageSurfaceEditorEndpoints.d.ts +55 -0
- package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +28 -7
- package/dist/_dts/api/src/pages.d.ts +7 -7
- package/dist/_dts/api/src/performance.d.ts +1 -1
- package/dist/_dts/api/src/public/index.d.ts +1 -1
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +2 -0
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/redirects.d.ts +3 -3
- package/dist/_dts/api/src/request.d.ts +10 -1
- package/dist/_dts/api/src/resources.d.ts +4 -4
- package/dist/_dts/api/src/routes.d.ts +8 -3
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +0 -1
- package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +21 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +5 -28
- package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/sdkEventOccurrenceRequestContracts.d.ts +43 -0
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +4 -2
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +8 -1
- package/dist/_dts/api/src/seo.d.ts +4 -4
- package/dist/_dts/api/src/services.d.ts +4 -4
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +15 -8
- package/dist/_dts/api/src/siteMembers.d.ts +10 -10
- package/dist/_dts/api/src/siteOnboarding.d.ts +14 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -3
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +5 -12
- package/dist/_dts/api/src/siteRuntimeEntry.d.ts +31 -0
- package/dist/_dts/billing/src/checkout/platform.d.ts +77 -0
- package/dist/_dts/billing/src/components/index.d.ts +25 -40
- package/dist/_dts/billing/src/membership/index.d.ts +1 -3
- package/dist/_dts/billing/src/plans/entitlements.d.ts +80 -0
- package/dist/_dts/billing/src/plans/registry.d.ts +16 -16
- package/dist/_dts/billing/src/plans/standing.d.ts +9 -2
- package/dist/_dts/billing/src/plans/types.d.ts +5 -15
- package/dist/_dts/billing/src/site-arrangements.d.ts +2 -2
- package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +2 -4
- package/dist/_dts/billing/src/subscriptions/store.d.ts +17 -11
- package/dist/_dts/block-form/src/backend/store-backend.d.ts +6 -7
- package/dist/_dts/block-form/src/backend/types.d.ts +7 -0
- package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +3 -1
- package/dist/_dts/blocks/src/client/events.d.ts +3 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +16 -4
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +4 -13
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
- package/dist/_dts/blocks/src/portal/types.d.ts +0 -2
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/usePolling.d.ts +7 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.checkout-return-context.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.payment-confirmation.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +15 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-actions.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +9 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +37 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +16 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCardPresentations.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -14
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DemoBookingPortalAccess.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DemoPortalSignInLink.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/shared/utils/demoBookingPassStorage.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/shared/utils/demoPortalMagicLink.d.ts +29 -0
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
- package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -7
- package/dist/_dts/content-editor/src/controller/EditLeaseController.d.ts +39 -0
- package/dist/_dts/content-editor/src/controller/EditorWriteGate.d.ts +38 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +25 -61
- package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseBanner.d.ts +7 -0
- package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseControllers.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/deriveEditorUnpublishedState.d.ts +6 -0
- package/dist/_dts/content-editor/src/controller/documentValueBaseline.d.ts +25 -0
- package/dist/_dts/content-editor/src/controller/editLeaseLossSignal.d.ts +6 -0
- package/dist/_dts/content-editor/src/controller/editLeaseNotice.d.ts +28 -0
- package/dist/_dts/content-editor/src/controller/editorClientId.d.ts +2 -0
- package/dist/_dts/content-editor/src/controller/editorEditability.d.ts +38 -0
- package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +34 -0
- package/dist/_dts/content-editor/src/controller/normalizedMetadataBaseline.d.ts +29 -0
- package/dist/_dts/content-editor/src/controller/pageSurfaceDocumentBaselines.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/pageSurfaceLifecycle.d.ts +11 -0
- package/dist/_dts/content-editor/src/controller/planDocumentBaselineRefresh.d.ts +19 -0
- package/dist/_dts/content-editor/src/controller/readDocumentLeaseBaselines.d.ts +19 -0
- package/dist/_dts/content-editor/src/controller/refreshDocumentLeaseBaseline.d.ts +12 -0
- package/dist/_dts/content-editor/src/controller/refreshLinkedEntry.d.ts +17 -0
- package/dist/_dts/content-editor/src/controller/replayRestoredEditorEffects.d.ts +2 -3
- package/dist/_dts/content-editor/src/controller/routeWrites.d.ts +26 -0
- package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +16 -17
- package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +6 -2
- package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +3 -3
- package/dist/_dts/content-editor/src/controller/useEntryValueAutosaves.d.ts +21 -0
- package/dist/_dts/content-editor/src/controller/useInitialEditorUiStore.d.ts +24 -0
- package/dist/_dts/content-editor/src/controller/useServerBaselineReconciliation.d.ts +17 -0
- package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +5 -1
- package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +8 -47
- package/dist/_dts/content-editor/src/hooks/editLeaseMachine.d.ts +120 -0
- package/dist/_dts/content-editor/src/hooks/publishability.d.ts +6 -10
- package/dist/_dts/content-editor/src/hooks/useAutosaveStatus.d.ts +3 -0
- package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +5 -15
- package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +7 -5
- package/dist/_dts/content-editor/src/hooks/useEditLease.d.ts +28 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +25 -39
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +17 -19
- package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +5 -8
- package/dist/_dts/content-editor/src/hooks/useValueAutosave.d.ts +64 -0
- package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +0 -7
- package/dist/_dts/content-editor/src/index.d.ts +26 -7
- package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +12 -0
- package/dist/_dts/content-editor/src/linkedEntries/owner.d.ts +9 -0
- package/dist/_dts/content-editor/src/liveDrafts/draftProjection.d.ts +66 -0
- package/dist/_dts/content-editor/src/liveDrafts/linkedSaveHandovers.d.ts +37 -0
- package/dist/_dts/content-editor/src/liveDrafts/remoteDraftOverlay.d.ts +113 -0
- package/dist/_dts/content-editor/src/liveDrafts/useLiveDrafts.d.ts +32 -0
- package/dist/_dts/content-editor/src/liveDrafts/useRetentionTicks.d.ts +7 -0
- package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +6 -0
- package/dist/_dts/content-editor/src/primitives/shared/storeBinding.d.ts +1 -0
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +96 -19
- package/dist/_dts/content-editor/src/services/editorApiClient.d.ts +13 -0
- package/dist/_dts/content-editor/src/services/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/services/pageSurfaceEditorServices.d.ts +23 -0
- package/dist/_dts/content-editor/src/sync/flushValues.d.ts +13 -0
- package/dist/_dts/content-editor/src/sync/lifecycleFailure.d.ts +51 -0
- package/dist/_dts/content-editor/src/sync/runLifecycle.d.ts +64 -0
- package/dist/_dts/content-editor/src/sync/schedulerValues.d.ts +27 -0
- package/dist/_dts/content-editor/src/sync/sendPlanning.d.ts +104 -0
- package/dist/_dts/content-editor/src/sync/valueSync.d.ts +114 -0
- package/dist/_dts/content-editor/src/ui/blockCollection.d.ts +8 -0
- package/dist/_dts/content-editor/src/ui/documentLifecycle.d.ts +18 -0
- package/dist/_dts/content-editor/src/ui/editorLeaseUiState.d.ts +7 -0
- package/dist/_dts/content-editor/src/ui/editorRefresh.d.ts +82 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +102 -127
- package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +126 -72
- package/dist/_dts/content-editor/src/ui/editorValueSnapshot.d.ts +18 -0
- package/dist/_dts/content-editor/src/ui/serverBlockAdmission.d.ts +26 -0
- package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +16 -27
- package/dist/_dts/content-editor/src/ui/stores/blockVersionsStore.d.ts +24 -0
- package/dist/_dts/content-editor/src/ui/stores/linkedEntryLeaseStore.d.ts +54 -0
- package/dist/_dts/content-editor/src/ui/stores/linkedSaveHandoversStore.d.ts +11 -0
- package/dist/_dts/content-editor/src/ui/stores/remoteDraftsStore.d.ts +10 -0
- package/dist/_dts/content-editor/src/ui/stores/types.d.ts +63 -3
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +2 -2
- package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -4
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -4
- package/dist/_dts/content-model/src/definitions/shared.d.ts +11 -2
- package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
- package/dist/_dts/content-model/src/entry-slots/serializeAllowedBlocks.d.ts +2 -0
- package/dist/_dts/content-model/src/metadataConfig.d.ts +10 -38
- package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -1
- package/dist/_dts/content-model/src/types.d.ts +0 -1
- package/dist/_dts/core/src/block-content-identity.d.ts +49 -1
- package/dist/_dts/core/src/branded.d.ts +12 -0
- package/dist/_dts/core/src/currency-format.d.ts +8 -2
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +2 -2
- package/dist/_dts/core/src/demo-warm-pool-target.d.ts +8 -0
- package/dist/_dts/core/src/edit-lease.d.ts +55 -0
- package/dist/_dts/core/src/editor-state.d.ts +38 -13
- package/dist/_dts/core/src/editor-value-sync.d.ts +79 -0
- package/dist/_dts/core/src/html-entities.d.ts +6 -0
- package/dist/_dts/core/src/index.d.ts +4 -0
- package/dist/_dts/core/src/uuid.d.ts +7 -5
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +159 -153
- package/dist/_dts/editor/src/EditorProvider.d.ts +5 -0
- package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +14 -0
- package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +1 -0
- package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +0 -1
- package/dist/_dts/editor/src/index.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +10 -9
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardFrame.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/applyExtendedFieldDefaults.d.ts +3 -4
- package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +4 -8
- package/dist/_dts/editor-blocks/src/block-editor/editorBlockItem.d.ts +23 -0
- package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +2 -7
- package/dist/_dts/editor-blocks/src/block-editor/hooks/applyBlockStructureChange.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/buildInsertBlockHistoryCommand.d.ts +14 -5
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +21 -19
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -10
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +8 -16
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +6 -16
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +37 -9
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +3 -2
- package/dist/_dts/media-core/src/fileStorage.d.ts +4 -0
- package/dist/_dts/media-editor/src/context.d.ts +1 -1
- package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -2
- package/dist/_dts/media-editor/src/provider.d.ts +3 -2
- package/dist/_dts/media-react/src/hooks/internal/classification.d.ts +1 -1
- package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +3 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +8 -3
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +6 -3
- package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +22 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/entryFieldRebinding.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +11 -1
- package/dist/_dts/preview-next/src/client/blocks/renderPrecedence.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/blocks/useLinkedSaveHandoverRetention.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewAccessBanners.d.ts +7 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +24 -14
- package/dist/_dts/preview-next/src/client/preview/PreviewLeaseEditingMode.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +9 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeAutosave.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +3 -4
- package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/usePreviewCustomizeWorkflowState.d.ts +4 -0
- package/dist/_dts/realtime/src/client.d.ts +3 -0
- package/dist/_dts/realtime/src/draftChannel.d.ts +91 -0
- package/dist/_dts/realtime/src/drafts.d.ts +210 -0
- package/dist/_dts/realtime/src/index.d.ts +3 -0
- package/dist/_dts/realtime/src/leaseChangeSubscriptions.d.ts +8 -0
- package/dist/_dts/realtime/src/types.d.ts +113 -0
- package/dist/_dts/realtime/src/useDraftChannel.d.ts +34 -0
- package/dist/_dts/realtime/src/useSiteRealtimeReload.d.ts +27 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -55
- 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/pageRuntimeSupport.d.ts +2 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/client/{BookingMailingListNote-1n4Ch_u_.mjs → BookingMailingListNote-CzRt2dF_.mjs} +98 -96
- package/dist/client/DemoBookingPortalAccess-mxqwap3f.mjs +344 -0
- package/dist/client/{EventCombined.client-C0pgma9y.mjs → EventCombined.client-CDb11igO.mjs} +6 -6
- package/dist/client/{EventListing.client-4fhLOvHP.mjs → EventListing.client-EgYhzKPa.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DScC4F3w.mjs → LeafletStaticMap-gtmtaA2b.mjs} +1 -1
- package/dist/client/{TerminalPanel-B5ZUsYhe.mjs → TerminalPanel-DvNUP5ot.mjs} +1 -1
- package/dist/client/{ThemedButton-DoVIV1Ao.mjs → ThemedButton-C7CeUJjW.mjs} +1 -1
- package/dist/client/{accordion-CoT5g7zo.mjs → accordion-kjvt49rA.mjs} +1 -1
- package/dist/client/{bookingForm-BWxB46xD.mjs → bookingForm-pbRZordh.mjs} +212 -62
- package/dist/client/bookings.mjs +616 -225
- package/dist/client/{carousel-DtNYWFd3.mjs → carousel-f4Zbmicv.mjs} +1 -1
- package/dist/client/{cart-z4qZih1Y.mjs → cart-DO20An50.mjs} +3 -3
- package/dist/client/{checkout-DpL7euFH.mjs → checkout-Du5amDR_.mjs} +3 -3
- package/dist/client/{checkoutUrls-BEfR7kVu.mjs → checkoutUrls-CXhko2Rv.mjs} +1 -1
- package/dist/client/client.mjs +1753 -823
- package/dist/client/{context-C8TinPJc.mjs → context-eW97E945.mjs} +4 -3
- package/dist/client/{dates-vwwxTeB0.mjs → dates-jPCirRea.mjs} +56 -11
- package/dist/client/{eventCalendar-DIbHfJXO.mjs → eventCalendar-C2M-iE4j.mjs} +9 -9
- package/dist/client/{eventCombined-DoGMJ6cg.mjs → eventCombined-W6ns3LHg.mjs} +4 -4
- package/dist/client/{eventDetails-BjN9v6a1.mjs → eventDetails-CR-GT0f0.mjs} +4 -4
- package/dist/client/{eventListing-DajjWgOv.mjs → eventListing-BK8AfYZz.mjs} +4 -4
- package/dist/client/{eventRegistration-DMq9gMA-.mjs → eventRegistration-BJSd4KUu.mjs} +369 -242
- package/dist/client/{form-Qf6qTbos.mjs → form-BvpfbQaT.mjs} +3 -3
- package/dist/client/{headerSection-D7qJrqFX.mjs → headerSection-I5sUQ8x-.mjs} +3 -3
- package/dist/client/hooks.mjs +254 -53
- package/dist/client/{locationMap-CCF9-t_0.mjs → locationMap-BLvwf9_f.mjs} +3 -3
- package/dist/client/{media-CwBGetqC.mjs → media-Cl38iOMI.mjs} +10 -3
- package/dist/client/{newsletterForm-DzCLSP4S.mjs → newsletterForm-DrQ2weE8.mjs} +3 -3
- package/dist/client/{pricing-Cgxv2KLC.mjs → pricing-BES87mrR.mjs} +1 -1
- package/dist/client/{productDetail-ru9w5GHx.mjs → productDetail-Url9jcc5.mjs} +3 -3
- package/dist/client/{productList-zaapKSl-.mjs → productList-DE7ngEZJ.mjs} +3 -3
- package/dist/client/{propsDecoder-CwvvNOHx.mjs → propsDecoder-D1OtGXDV.mjs} +89 -17
- package/dist/client/rendering/client.mjs +1445 -658
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +2478 -1515
- package/dist/client/{routeIslandApiConfig-BwVFo0Y4.mjs → routeIslandApiConfig-BG9Y-SHg.mjs} +1 -1
- package/dist/client/{shop-mktkXvbV.mjs → shop-CJkuySJ3.mjs} +126 -79
- package/dist/client/{shop-commerce-De7gEnkA.mjs → shop-commerce-4rKj5n9h.mjs} +25 -13
- package/dist/client/{shop-commerce-store-B3MCxIBW.mjs → shop-commerce-store-Bxm75Pg6.mjs} +1 -1
- package/dist/client/{shopShared-TqExh235.mjs → shopShared-DpoQDWfz.mjs} +4 -4
- package/dist/client/{useEventFilters-n_OjkIjX.mjs → useEventFilters-D8HliSqR.mjs} +32 -17
- package/dist/preview-next/before-render.mjs +192 -83
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +192 -83
- package/dist/preview-next/middleware.mjs +192 -83
- package/dist/{previewAuthStore-C_EHQ5XA.mjs → previewAuthStore-BXXF3hhW.mjs} +194 -83
- package/dist/{sdk-runtime-BIkJg5y1.mjs → sdk-runtime-C2a05WjL.mjs} +2 -2
- package/dist/{separator-C9qDP95Z.mjs → separator-CuNhBAhS.mjs} +1 -1
- package/dist/server/components.mjs +1720 -1392
- package/dist/server/config-validation.mjs +221 -37
- package/dist/server/config.mjs +221 -37
- package/dist/server/data.mjs +221 -37
- package/dist/server/index.mjs +195 -84
- package/dist/server/next.mjs +490 -196
- package/dist/server/page-converter.mjs +53 -14
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1427 -1098
- package/dist/server/rendering.mjs +2693 -2365
- package/dist/server/routing.mjs +291 -55
- package/dist/server/server.mjs +281 -114
- package/package.json +1 -1
- package/dist/_dts/billing/src/plans/display.d.ts +0 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-note.d.ts +0 -3
- package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +0 -4
- package/dist/_dts/content-editor/src/controller/buildPublishSuccessTransition.d.ts +0 -16
- package/dist/_dts/content-editor/src/controller/driver.d.ts +0 -14
- package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +0 -7
- package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +0 -29
- package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +0 -26
- package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +0 -64
- package/dist/_dts/content-editor/src/hooks/useStoreAutosave.d.ts +0 -48
- package/dist/_dts/content-editor/src/types.d.ts +0 -44
- package/dist/client/DiscountCodeDisclosure-CKJtz0mY.mjs +0 -137
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { C as unsafeAsPassId, b as unsafeAsCustomerPassId, v as unsafeAsAppointmentResourceId, x as unsafeAsFormId, y as unsafeAsAppointmentServiceId } from "./colorStyles-j5U9v5JA.mjs";
|
|
3
|
-
import { a as buildBookingPaymentSelectionViewModel, i as usePolling, n as BookingConsentAgreement, r as StepIndicator, t as BookingMailingListNote } from "./BookingMailingListNote-
|
|
4
|
-
import { At as
|
|
5
|
-
import { n as useBlockApi, t as BlockApiProvider } from "./context-
|
|
3
|
+
import { a as buildBookingPaymentSelectionViewModel, i as usePolling, n as BookingConsentAgreement, r as StepIndicator, t as BookingMailingListNote } from "./BookingMailingListNote-CzRt2dF_.mjs";
|
|
4
|
+
import { At as isBookingServiceSlidingAmountInRange, Bt as BOOKING_FORM_DATA_RESERVED_KEYS, Cn as formatCurrencyAmount, Ct as formatBookingSubmissionPreparationError, Dt as getBookingSuccessCopy, Et as getBookingServiceSlidingScale, Ft as resolveBookingSiteId, Gt as clearWorkflowFeedback, It as resolveDefaultBookingServiceId, Jt as okWith, Kt as err, Lt as toSelectedCollectionOptionKind, Mt as prepareBookingSubmission, Nt as resolveAppointmentCheckoutVerificationState, Pt as resolveBookingPaymentStep, Rt as projectSelectedAppointmentConsentIntoForm, St as formatBookingCentsAsCurrencyInput, Tt as getBookingServicePaymentSelectionMode, Vt as isBookingRequirementConsentFieldId, Wt as assertNever, Xt as reportWorkflowSuccess, Yt as reportWorkflowError, an as formatBookingInstant, bt as logger, dn as resolveBookingTimeZoneId, en as resolveBookingSignupOffer, jt as parseBookingCurrencyInputToCents, sn as formatLocalScheduleDate, t as defineIslandPropsDecoder, tn as addLocalScheduleDays, un as parseBookingLocalDate, wt as getBookingRedirectStateFromLocation, xt as deriveBookingFormViewState, zt as resolveSelectedAppointmentConsent } from "./propsDecoder-D1OtGXDV.mjs";
|
|
5
|
+
import { n as useBlockApi, t as BlockApiProvider } from "./context-eW97E945.mjs";
|
|
6
6
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import { a as useDiscountCodeUi, i as CheckIcon, n as StateIcon, r as scrollToBlock, t as TerminalPanel } from "./TerminalPanel-
|
|
9
|
-
import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-
|
|
7
|
+
import { o as DiscountCodeDisclosure, p as storeDemoBookingPassIfAvailable, t as BookingConfirmation } from "./DemoBookingPortalAccess-mxqwap3f.mjs";
|
|
8
|
+
import { a as useDiscountCodeUi, i as CheckIcon, n as StateIcon, r as scrollToBlock, t as TerminalPanel } from "./TerminalPanel-DvNUP5ot.mjs";
|
|
9
|
+
import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-C7CeUJjW.mjs";
|
|
10
10
|
import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
|
|
11
11
|
import { i as getFieldValidationControlProps, r as FieldValidationMessage } from "./mailingListSignupCopy-DZSHZrm6.mjs";
|
|
12
|
-
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-
|
|
12
|
+
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-CXhko2Rv.mjs";
|
|
13
13
|
import { t as CheckboxChoice } from "./CheckboxChoice-B33MqoUo.mjs";
|
|
14
14
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
15
|
-
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-
|
|
15
|
+
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-BG9Y-SHg.mjs";
|
|
16
16
|
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
|
|
17
17
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
18
18
|
//#region ../core/src/appointment-service-categories.ts
|
|
@@ -55,6 +55,32 @@ function layoutServicesByCategory(categories, services, options) {
|
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
//#endregion
|
|
58
|
+
//#region ../blocks/src/system/runtime/nodes/booking-form.payment-confirmation.ts
|
|
59
|
+
function bookingServiceRequiresPaymentBeforeBooking(input) {
|
|
60
|
+
switch (getBookingServicePaymentSelectionMode(input.service)) {
|
|
61
|
+
case "implicit_upfront":
|
|
62
|
+
case "implicit_instalment_plan":
|
|
63
|
+
case "implicit_flexible_balance": return true;
|
|
64
|
+
case "choice_required": return input.selectedCollectionOptionKind !== void 0 && input.selectedCollectionOptionKind !== "deferred_manual";
|
|
65
|
+
case "implicit_deferred_manual":
|
|
66
|
+
case "pending_stripe_setup":
|
|
67
|
+
case "unsupported": return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function resolveBookingPaymentConfirmationSummary(input) {
|
|
71
|
+
const service = input.service;
|
|
72
|
+
if (!service || input.hasSelectedAppointmentPackage || !Number.isFinite(input.priceAmount) || input.priceAmount <= 0 || !service.durationMinutes || !bookingServiceRequiresPaymentBeforeBooking({
|
|
73
|
+
service,
|
|
74
|
+
selectedCollectionOptionKind: input.selectedCollectionOptionKind
|
|
75
|
+
})) return null;
|
|
76
|
+
return {
|
|
77
|
+
serviceTitle: service.title,
|
|
78
|
+
durationMinutes: service.durationMinutes,
|
|
79
|
+
priceAmount: input.priceAmount,
|
|
80
|
+
priceCurrency: service.priceCurrency ?? service.pricing?.currency ?? "USD"
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
58
84
|
//#region ../blocks/src/system/runtime/hooks/useSelectedAppointmentConsentForm.ts
|
|
59
85
|
function useSelectedAppointmentConsentForm(form, selectedService) {
|
|
60
86
|
return useMemo(() => projectSelectedAppointmentConsentIntoForm(form, resolveSelectedAppointmentConsent(selectedService)), [form, selectedService]);
|
|
@@ -638,6 +664,7 @@ function useBookingSubmission(_siteId) {
|
|
|
638
664
|
successUrl: data.successUrl,
|
|
639
665
|
cancelUrl: data.cancelUrl
|
|
640
666
|
});
|
|
667
|
+
storeDemoBookingPassIfAvailable(response.customer.email, response.demoBookingPass);
|
|
641
668
|
dispatch({
|
|
642
669
|
type: "submission-succeeded",
|
|
643
670
|
message: response.type === "checkout_redirect" ? "Redirecting to secure checkout..." : "Booking submitted successfully."
|
|
@@ -676,15 +703,18 @@ function completeBookingSubmission(input) {
|
|
|
676
703
|
kind: "checkout_redirect",
|
|
677
704
|
checkoutUrl: data.checkoutUrl,
|
|
678
705
|
sessionId: data.sessionId,
|
|
706
|
+
customerEmail: data.customer.email,
|
|
707
|
+
...data.demoBookingPass ? { demoBookingPass: data.demoBookingPass } : {},
|
|
679
708
|
...data.mailingListSignupNote ? { mailingListSignupNote: data.mailingListSignupNote } : {}
|
|
680
709
|
}
|
|
681
710
|
};
|
|
682
711
|
}
|
|
712
|
+
const successCopy = getBookingSuccessCopy(input.successMessage);
|
|
683
713
|
input.dispatch({
|
|
684
714
|
type: "feedback-set",
|
|
685
715
|
feedback: {
|
|
686
716
|
kind: "success",
|
|
687
|
-
message:
|
|
717
|
+
message: successCopy.defaultEmailSentence ? `${successCopy.message} ${successCopy.defaultEmailSentence}`.trim() : successCopy.message,
|
|
688
718
|
resourceName: data.appointment.resourceName
|
|
689
719
|
}
|
|
690
720
|
});
|
|
@@ -694,6 +724,8 @@ function completeBookingSubmission(input) {
|
|
|
694
724
|
kind: "booked",
|
|
695
725
|
appointmentId: data.appointment.id,
|
|
696
726
|
resourceName: data.appointment.resourceName,
|
|
727
|
+
customerEmail: data.customer.email,
|
|
728
|
+
...data.demoBookingPass ? { demoBookingPass: data.demoBookingPass } : {},
|
|
697
729
|
...data.mailingListSignupNote ? { mailingListSignupNote: data.mailingListSignupNote } : {}
|
|
698
730
|
}
|
|
699
731
|
};
|
|
@@ -1908,6 +1940,12 @@ function useHeadlessBookingFlow(options) {
|
|
|
1908
1940
|
selectedService,
|
|
1909
1941
|
state.selectedSlot?.startAt
|
|
1910
1942
|
]);
|
|
1943
|
+
const paymentConfirmationSummary = resolveBookingPaymentConfirmationSummary({
|
|
1944
|
+
service: selectedService,
|
|
1945
|
+
priceAmount: selectedAppointmentPriceAmount,
|
|
1946
|
+
selectedCollectionOptionKind: state.selectedCollectionOptionKind,
|
|
1947
|
+
hasSelectedAppointmentPackage: Boolean(state.selectedAppointmentPackageId)
|
|
1948
|
+
});
|
|
1911
1949
|
const appointmentPackageItems = appointmentPackages.tag === "loaded" ? appointmentPackages.value : [];
|
|
1912
1950
|
const selectedAppointmentPackage = appointmentPackageItems.find((appointmentPackage) => appointmentPackage.customerPassId === state.selectedAppointmentPackageId) ?? null;
|
|
1913
1951
|
const spamProtectionEnabled = options.spamProtectionEnabled ?? isSpamProtectionEnabled();
|
|
@@ -1937,7 +1975,8 @@ function useHeadlessBookingFlow(options) {
|
|
|
1937
1975
|
selectedSlidingAmount,
|
|
1938
1976
|
slidingScale: selectedServiceSlidingScale,
|
|
1939
1977
|
appointmentPackages: appointmentPackagesModel,
|
|
1940
|
-
errorMessage: paymentResolution.errorMessage ?? "This service cannot be booked right now."
|
|
1978
|
+
errorMessage: paymentResolution.errorMessage ?? "This service cannot be booked right now.",
|
|
1979
|
+
confirmationSummary: null
|
|
1941
1980
|
} : {
|
|
1942
1981
|
kind: "ok",
|
|
1943
1982
|
mode: paymentResolution.mode,
|
|
@@ -1947,7 +1986,8 @@ function useHeadlessBookingFlow(options) {
|
|
|
1947
1986
|
selectedSlidingAmountInput: state.selectedSlidingAmountInput,
|
|
1948
1987
|
selectedSlidingAmount,
|
|
1949
1988
|
slidingScale: selectedServiceSlidingScale,
|
|
1950
|
-
appointmentPackages: appointmentPackagesModel
|
|
1989
|
+
appointmentPackages: appointmentPackagesModel,
|
|
1990
|
+
confirmationSummary: paymentConfirmationSummary
|
|
1951
1991
|
};
|
|
1952
1992
|
return {
|
|
1953
1993
|
mailingList,
|
|
@@ -2043,6 +2083,10 @@ function useLatestRef(value) {
|
|
|
2043
2083
|
}
|
|
2044
2084
|
//#endregion
|
|
2045
2085
|
//#region ../blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.ts
|
|
2086
|
+
const APPOINTMENT_CHECKOUT_MAX_ATTEMPTS = 12;
|
|
2087
|
+
function resolveAppointmentCheckoutPollInterval(attempt) {
|
|
2088
|
+
return Math.min(1e3 * 2 ** (attempt - 1), 4e3);
|
|
2089
|
+
}
|
|
2046
2090
|
const appointmentCheckoutVerificationDeps = {
|
|
2047
2091
|
useBlockApi,
|
|
2048
2092
|
usePolling
|
|
@@ -2052,16 +2096,25 @@ function useAppointmentCheckoutVerification(config) {
|
|
|
2052
2096
|
}
|
|
2053
2097
|
function useAppointmentCheckoutVerificationWithDeps(config, deps) {
|
|
2054
2098
|
const api = deps.useBlockApi();
|
|
2099
|
+
const sessionId = config?.sessionId ?? null;
|
|
2100
|
+
const maxAttempts = config?.maxAttempts;
|
|
2101
|
+
const pollInterval = config?.pollInterval;
|
|
2055
2102
|
const pollingConfig = useMemo(() => {
|
|
2056
|
-
if (
|
|
2103
|
+
if (sessionId === null) return null;
|
|
2057
2104
|
return {
|
|
2058
|
-
|
|
2105
|
+
restartKey: sessionId,
|
|
2106
|
+
pollFn: () => api.getAppointmentBookingStatus({ sessionId }),
|
|
2059
2107
|
isComplete: (result) => (result.paymentStatus === "completed" || result.paymentStatus === "not_required") && result.appointmentStatus === "confirmed",
|
|
2060
2108
|
isFailed: (result) => result.paymentStatus === "failed" || result.paymentStatus === "cancelled" || result.paymentStatus === "refunded" || result.appointmentStatus === "cancelled",
|
|
2061
|
-
maxAttempts:
|
|
2062
|
-
interval:
|
|
2109
|
+
maxAttempts: maxAttempts ?? APPOINTMENT_CHECKOUT_MAX_ATTEMPTS,
|
|
2110
|
+
interval: pollInterval ?? resolveAppointmentCheckoutPollInterval
|
|
2063
2111
|
};
|
|
2064
|
-
}, [
|
|
2112
|
+
}, [
|
|
2113
|
+
api,
|
|
2114
|
+
sessionId,
|
|
2115
|
+
maxAttempts,
|
|
2116
|
+
pollInterval
|
|
2117
|
+
]);
|
|
2065
2118
|
const polling = deps.usePolling(pollingConfig);
|
|
2066
2119
|
return {
|
|
2067
2120
|
state: resolveAppointmentCheckoutVerificationState({
|
|
@@ -2358,6 +2411,72 @@ function ServiceChoiceGrid({ booking, choices }) {
|
|
|
2358
2411
|
});
|
|
2359
2412
|
}
|
|
2360
2413
|
//#endregion
|
|
2414
|
+
//#region ../blocks/src/system/runtime/nodes/booking-form.submit-actions.tsx
|
|
2415
|
+
function resolvePrimaryActionLabel(isLastStep, requiresPayment) {
|
|
2416
|
+
if (!isLastStep) return "Continue";
|
|
2417
|
+
return requiresPayment ? "Continue to payment" : "Complete";
|
|
2418
|
+
}
|
|
2419
|
+
function formatBookingConfirmationDateTime(booking) {
|
|
2420
|
+
const startAt = booking.currentStep?.id === "datetime-selection" ? booking.availability.selectedSlot?.startAt : void 0;
|
|
2421
|
+
return startAt ? new Intl.DateTimeFormat(void 0, {
|
|
2422
|
+
dateStyle: "medium",
|
|
2423
|
+
timeStyle: "short",
|
|
2424
|
+
timeZone: booking.availability.timezone
|
|
2425
|
+
}).format(new Date(startAt)) : null;
|
|
2426
|
+
}
|
|
2427
|
+
function BookingPaymentConfirmationText({ booking, summary }) {
|
|
2428
|
+
if (!summary) return null;
|
|
2429
|
+
const dateTime = formatBookingConfirmationDateTime(booking);
|
|
2430
|
+
return /* @__PURE__ */ jsxs("p", {
|
|
2431
|
+
className: "ab-text rb-on-surface--muted",
|
|
2432
|
+
children: [
|
|
2433
|
+
summary.serviceTitle,
|
|
2434
|
+
" · ",
|
|
2435
|
+
summary.durationMinutes,
|
|
2436
|
+
" min ·",
|
|
2437
|
+
" ",
|
|
2438
|
+
formatCurrencyAmount(summary.priceAmount, summary.priceCurrency, { decimals: "auto" }),
|
|
2439
|
+
dateTime ? ` · ${dateTime}` : ""
|
|
2440
|
+
]
|
|
2441
|
+
});
|
|
2442
|
+
}
|
|
2443
|
+
function BookingFormSubmitActions({ booking, onSubmit }) {
|
|
2444
|
+
const currentStepIndex = booking.currentStep?.visibleIndex ?? 0;
|
|
2445
|
+
const isFirstStep = currentStepIndex === 0;
|
|
2446
|
+
const isLastStep = currentStepIndex === booking.steps.length - 1;
|
|
2447
|
+
const isSubmitting = booking.status.tag === "submitting";
|
|
2448
|
+
const paymentSummary = isLastStep && booking.payment.kind === "ok" ? booking.payment.confirmationSummary : null;
|
|
2449
|
+
const handlePrimaryAction = async () => {
|
|
2450
|
+
if ((await booking.actions.next()).ok && isLastStep) await onSubmit();
|
|
2451
|
+
};
|
|
2452
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(BookingPaymentConfirmationText, {
|
|
2453
|
+
booking,
|
|
2454
|
+
summary: paymentSummary
|
|
2455
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
2456
|
+
className: "rb-wizard-actions",
|
|
2457
|
+
children: [!isFirstStep ? /* @__PURE__ */ jsx(ThemedButton, {
|
|
2458
|
+
type: "button",
|
|
2459
|
+
onClick: booking.actions.back,
|
|
2460
|
+
variant: "outline",
|
|
2461
|
+
size: "md",
|
|
2462
|
+
label: "Back"
|
|
2463
|
+
}) : null, /* @__PURE__ */ jsx(ThemedButton, {
|
|
2464
|
+
type: "button",
|
|
2465
|
+
onClick: () => {
|
|
2466
|
+
handlePrimaryAction();
|
|
2467
|
+
},
|
|
2468
|
+
disabled: isSubmitting,
|
|
2469
|
+
variant: "primary",
|
|
2470
|
+
size: "md",
|
|
2471
|
+
label: resolvePrimaryActionLabel(isLastStep, Boolean(paymentSummary)),
|
|
2472
|
+
pending: isSubmitting ? {
|
|
2473
|
+
label: "Submitting...",
|
|
2474
|
+
srLabel: "Submitting"
|
|
2475
|
+
} : void 0
|
|
2476
|
+
})]
|
|
2477
|
+
})] });
|
|
2478
|
+
}
|
|
2479
|
+
//#endregion
|
|
2361
2480
|
//#region ../blocks/src/system/runtime/nodes/booking-form.default-ui.tsx
|
|
2362
2481
|
function formatBookingAmount(amount, currency) {
|
|
2363
2482
|
return formatCurrencyAmount(amount, currency, { decimals: "auto" });
|
|
@@ -2366,13 +2485,6 @@ function HeadlessBookingDefaultForm({ booking, onSubmit }) {
|
|
|
2366
2485
|
const currentStep = booking.currentStep;
|
|
2367
2486
|
const errorSummaryId = React.useId();
|
|
2368
2487
|
const currentStepIndex = currentStep?.visibleIndex ?? 0;
|
|
2369
|
-
const isFirstStep = currentStepIndex === 0;
|
|
2370
|
-
const isLastStep = currentStepIndex === booking.steps.length - 1;
|
|
2371
|
-
const isSubmitting = booking.status.tag === "submitting";
|
|
2372
|
-
const handlePrimaryAction = async () => {
|
|
2373
|
-
if (!(await booking.actions.next()).ok) return;
|
|
2374
|
-
if (isLastStep) await onSubmit();
|
|
2375
|
-
};
|
|
2376
2488
|
if (!currentStep) return /* @__PURE__ */ jsx("div", {
|
|
2377
2489
|
className: "rb-text-center rb-py-12",
|
|
2378
2490
|
children: /* @__PURE__ */ jsx("p", {
|
|
@@ -2400,28 +2512,9 @@ function HeadlessBookingDefaultForm({ booking, onSubmit }) {
|
|
|
2400
2512
|
errors: currentStep.errors,
|
|
2401
2513
|
id: errorSummaryId
|
|
2402
2514
|
}),
|
|
2403
|
-
/* @__PURE__ */
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
type: "button",
|
|
2407
|
-
onClick: booking.actions.back,
|
|
2408
|
-
variant: "outline",
|
|
2409
|
-
size: "md",
|
|
2410
|
-
label: "Back"
|
|
2411
|
-
}) : null, /* @__PURE__ */ jsx(ThemedButton, {
|
|
2412
|
-
type: "button",
|
|
2413
|
-
onClick: () => {
|
|
2414
|
-
handlePrimaryAction();
|
|
2415
|
-
},
|
|
2416
|
-
disabled: isSubmitting,
|
|
2417
|
-
variant: "primary",
|
|
2418
|
-
size: "md",
|
|
2419
|
-
label: isLastStep ? "Complete" : "Continue",
|
|
2420
|
-
pending: isSubmitting ? {
|
|
2421
|
-
label: "Submitting...",
|
|
2422
|
-
srLabel: "Submitting"
|
|
2423
|
-
} : void 0
|
|
2424
|
-
})]
|
|
2515
|
+
/* @__PURE__ */ jsx(BookingFormSubmitActions, {
|
|
2516
|
+
booking,
|
|
2517
|
+
onSubmit
|
|
2425
2518
|
}),
|
|
2426
2519
|
/* @__PURE__ */ jsx(DefaultBookingDiscount, { booking }),
|
|
2427
2520
|
/* @__PURE__ */ jsx(DefaultBookingFeedback, { booking }),
|
|
@@ -3029,7 +3122,7 @@ function DefaultBookingErrorSummary({ errors, id }) {
|
|
|
3029
3122
|
}
|
|
3030
3123
|
//#endregion
|
|
3031
3124
|
//#region ../blocks/src/system/runtime/components/booking/SuccessMessage.tsx
|
|
3032
|
-
const SuccessMessage = ({
|
|
3125
|
+
const SuccessMessage = ({ copy, resourceName, className, demoEmailSuppressed = false, customerEmail = null }) => {
|
|
3033
3126
|
return /* @__PURE__ */ jsx(TerminalPanel, {
|
|
3034
3127
|
tone: "success",
|
|
3035
3128
|
title: "Booking confirmed",
|
|
@@ -3037,9 +3130,15 @@ const SuccessMessage = ({ message, resourceName, className }) => {
|
|
|
3037
3130
|
variant: "success",
|
|
3038
3131
|
children: /* @__PURE__ */ jsx(CheckIcon, { strokeWidth: 3 })
|
|
3039
3132
|
}),
|
|
3040
|
-
body: /* @__PURE__ */ jsx(
|
|
3041
|
-
|
|
3042
|
-
|
|
3133
|
+
body: /* @__PURE__ */ jsx(BookingConfirmation, {
|
|
3134
|
+
demoEmailSuppressed,
|
|
3135
|
+
email: customerEmail,
|
|
3136
|
+
copy,
|
|
3137
|
+
messagePresentation: {
|
|
3138
|
+
kind: "paragraph",
|
|
3139
|
+
className: "ab-text"
|
|
3140
|
+
},
|
|
3141
|
+
noteClassName: "ab-text"
|
|
3043
3142
|
}),
|
|
3044
3143
|
secondaryBody: resourceName ? /* @__PURE__ */ jsxs("p", {
|
|
3045
3144
|
className: "ab-text rb-on-surface--muted",
|
|
@@ -3052,31 +3151,54 @@ const SuccessMessage = ({ message, resourceName, className }) => {
|
|
|
3052
3151
|
});
|
|
3053
3152
|
};
|
|
3054
3153
|
//#endregion
|
|
3055
|
-
//#region ../blocks/src/system/runtime/nodes/booking-form.
|
|
3154
|
+
//#region ../blocks/src/system/runtime/nodes/booking-form.checkout-return-context.ts
|
|
3056
3155
|
function storageKey(sessionId) {
|
|
3057
3156
|
return `riverbank:booking:mailing-list:${sessionId}`;
|
|
3058
3157
|
}
|
|
3059
|
-
function
|
|
3060
|
-
if (!
|
|
3158
|
+
function saveAppointmentCheckoutReturnContext(sessionId, context) {
|
|
3159
|
+
if (!context.customerEmail && !context.mailingListNote) return;
|
|
3061
3160
|
try {
|
|
3062
|
-
window.sessionStorage.setItem(storageKey(sessionId),
|
|
3161
|
+
window.sessionStorage.setItem(storageKey(sessionId), JSON.stringify(context));
|
|
3063
3162
|
} catch {}
|
|
3064
3163
|
}
|
|
3065
|
-
function
|
|
3164
|
+
function readAppointmentCheckoutReturnContext(sessionId) {
|
|
3066
3165
|
try {
|
|
3067
3166
|
const stored = window.sessionStorage.getItem(storageKey(sessionId));
|
|
3068
|
-
|
|
3167
|
+
if (!stored) return null;
|
|
3168
|
+
return parseContext(stored);
|
|
3069
3169
|
} catch {
|
|
3070
3170
|
return null;
|
|
3071
3171
|
}
|
|
3072
3172
|
}
|
|
3173
|
+
function parseContext(value) {
|
|
3174
|
+
try {
|
|
3175
|
+
const parsed = JSON.parse(value);
|
|
3176
|
+
return isContext(parsed) ? parsed : null;
|
|
3177
|
+
} catch {
|
|
3178
|
+
return value === "confirmation_required" || value === "not_confirmed" ? {
|
|
3179
|
+
customerEmail: null,
|
|
3180
|
+
mailingListNote: value
|
|
3181
|
+
} : null;
|
|
3182
|
+
}
|
|
3183
|
+
}
|
|
3184
|
+
function isContext(value) {
|
|
3185
|
+
if (!isRecord(value)) return false;
|
|
3186
|
+
return (typeof value.customerEmail === "string" || value.customerEmail === null) && (value.mailingListNote === null || value.mailingListNote === "confirmation_required" || value.mailingListNote === "not_confirmed");
|
|
3187
|
+
}
|
|
3188
|
+
function isRecord(value) {
|
|
3189
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3190
|
+
}
|
|
3073
3191
|
//#endregion
|
|
3074
3192
|
//#region ../blocks/src/system/runtime/nodes/booking-form.completion.tsx
|
|
3075
|
-
function BookingFormCompletion({ resourceName, successMessage, redirectState, localNote }) {
|
|
3076
|
-
const
|
|
3193
|
+
function BookingFormCompletion({ resourceName, successMessage, redirectState, localNote, customerEmail, demoEmailSuppressed = false }) {
|
|
3194
|
+
const returnContext = redirectState.kind === "success" ? readAppointmentCheckoutReturnContext(redirectState.sessionId) : null;
|
|
3195
|
+
const note = redirectState.kind === "success" ? returnContext?.mailingListNote ?? null : localNote;
|
|
3196
|
+
const confirmedEmail = returnContext?.customerEmail ?? customerEmail;
|
|
3077
3197
|
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SuccessMessage, {
|
|
3078
|
-
|
|
3079
|
-
resourceName
|
|
3198
|
+
copy: getBookingSuccessCopy(successMessage),
|
|
3199
|
+
resourceName,
|
|
3200
|
+
demoEmailSuppressed,
|
|
3201
|
+
customerEmail: confirmedEmail
|
|
3080
3202
|
}), note ? /* @__PURE__ */ jsx(BookingMailingListNote, {
|
|
3081
3203
|
note,
|
|
3082
3204
|
context: "booking",
|
|
@@ -3100,12 +3222,17 @@ function createBookingFormSubmitHandler(input) {
|
|
|
3100
3222
|
cancelUrl: appendRebookFlag(cancelUrl, input.isPortalRebook)
|
|
3101
3223
|
});
|
|
3102
3224
|
if (!result.ok) return;
|
|
3225
|
+
storeDemoBookingPassIfAvailable(result.outcome.customerEmail, result.outcome.demoBookingPass);
|
|
3103
3226
|
if (result.outcome.kind === "checkout_redirect") {
|
|
3104
|
-
|
|
3227
|
+
saveAppointmentCheckoutReturnContext(result.outcome.sessionId, {
|
|
3228
|
+
customerEmail: result.outcome.customerEmail,
|
|
3229
|
+
mailingListNote: result.outcome.mailingListSignupNote ?? null
|
|
3230
|
+
});
|
|
3105
3231
|
window.location.href = result.outcome.checkoutUrl;
|
|
3106
3232
|
return;
|
|
3107
3233
|
}
|
|
3108
3234
|
input.setLocalMailingListNote(result.outcome.mailingListSignupNote ?? null);
|
|
3235
|
+
input.setLocalCustomerEmail(result.outcome.customerEmail);
|
|
3109
3236
|
};
|
|
3110
3237
|
}
|
|
3111
3238
|
//#endregion
|
|
@@ -3145,6 +3272,7 @@ const BookingFormClient = ({ siteId: siteIdProp, render }) => {
|
|
|
3145
3272
|
const hasLoggedRebookCompletionRef = useRef(false);
|
|
3146
3273
|
const [redirectState] = useState(() => getBookingRedirectStateFromLocation(getBookingRedirectLocationSnapshot()));
|
|
3147
3274
|
const [localMailingListNote, setLocalMailingListNote] = useState(null);
|
|
3275
|
+
const [localCustomerEmail, setLocalCustomerEmail] = useState(null);
|
|
3148
3276
|
const showSpamProtection = render.hydration.spamProtectionEnabled ?? isSpamProtectionEnabled();
|
|
3149
3277
|
const api = useBlockApi();
|
|
3150
3278
|
const hasPortalAuth = api.config.auth.type === "bearer" || api.config.authOverrides?.portal?.type === "bearer";
|
|
@@ -3227,7 +3355,8 @@ const BookingFormClient = ({ siteId: siteIdProp, render }) => {
|
|
|
3227
3355
|
booking,
|
|
3228
3356
|
bookingAnchorId,
|
|
3229
3357
|
isPortalRebook,
|
|
3230
|
-
setLocalMailingListNote
|
|
3358
|
+
setLocalMailingListNote,
|
|
3359
|
+
setLocalCustomerEmail
|
|
3231
3360
|
});
|
|
3232
3361
|
if (viewState.kind === "success") return /* @__PURE__ */ jsx(BookingSurface, {
|
|
3233
3362
|
id: bookingAnchorId,
|
|
@@ -3236,7 +3365,9 @@ const BookingFormClient = ({ siteId: siteIdProp, render }) => {
|
|
|
3236
3365
|
successMessage: render.display.successMessage,
|
|
3237
3366
|
resourceName: viewState.resourceName,
|
|
3238
3367
|
redirectState,
|
|
3239
|
-
localNote: localMailingListNote
|
|
3368
|
+
localNote: localMailingListNote,
|
|
3369
|
+
customerEmail: localCustomerEmail,
|
|
3370
|
+
demoEmailSuppressed: render.hydration.demoEmailSuppressed
|
|
3240
3371
|
})
|
|
3241
3372
|
});
|
|
3242
3373
|
if (viewState.kind === "verifying") return /* @__PURE__ */ jsx(BookingSurface, {
|
|
@@ -3252,6 +3383,25 @@ const BookingFormClient = ({ siteId: siteIdProp, render }) => {
|
|
|
3252
3383
|
})
|
|
3253
3384
|
})
|
|
3254
3385
|
});
|
|
3386
|
+
if (viewState.kind === "timeout") return /* @__PURE__ */ jsxs(BookingSurface, {
|
|
3387
|
+
id: bookingAnchorId,
|
|
3388
|
+
className: render.display.className,
|
|
3389
|
+
children: [/* @__PURE__ */ jsx(FeedbackMessage, {
|
|
3390
|
+
tone: "info",
|
|
3391
|
+
className: "alert alert-info",
|
|
3392
|
+
role: "status",
|
|
3393
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
3394
|
+
className: "ab-text",
|
|
3395
|
+
children: viewState.message
|
|
3396
|
+
})
|
|
3397
|
+
}), /* @__PURE__ */ jsx(ThemedButton, {
|
|
3398
|
+
type: "button",
|
|
3399
|
+
variant: "primary",
|
|
3400
|
+
size: "md",
|
|
3401
|
+
label: "Check again",
|
|
3402
|
+
onClick: verification.retry
|
|
3403
|
+
})]
|
|
3404
|
+
});
|
|
3255
3405
|
return /* @__PURE__ */ jsxs(BookingSurface, {
|
|
3256
3406
|
id: bookingAnchorId,
|
|
3257
3407
|
className: render.display.className,
|