@riverbankcms/sdk 0.148.0 → 0.150.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/EventEmbeddedCheckoutStep-D00Kc8Zj.mjs +285 -0
- package/dist/{PreviewEditorSidebar-DvEPG3Z2.mjs → PreviewEditorSidebar-7ZhmmnBB.mjs} +103 -66
- package/dist/{PreviewEditorUI-D6eb6fkx.mjs → PreviewEditorUI-BIJucTRd.mjs} +3 -6
- package/dist/{PreviewQueryProvider-5znTyJuz.mjs → PreviewQueryProvider-C0mndwHB.mjs} +3 -3
- package/dist/{SdkPreviewModeRuntime-DJ6utQ_R.mjs → SdkPreviewModeRuntime-tj45gmCX.mjs} +96 -67
- package/dist/{SiteChromeCustomizeContext-CFJYh6vo.mjs → SiteChromeCustomizeContext-BFOt0ss-.mjs} +4804 -4161
- package/dist/_dts/ai/src/contracts/proposals.d.ts +660 -0
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +510 -0
- package/dist/_dts/api/src/billing.d.ts +2 -2
- package/dist/_dts/api/src/bookingConfig.d.ts +33 -48
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -6
- package/dist/_dts/api/src/bookingOperations.d.ts +5 -7
- package/dist/_dts/api/src/bookingRecords.d.ts +15 -11
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +5 -5
- package/dist/_dts/api/src/clientErrorReporting.d.ts +11 -0
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +0 -2
- package/dist/_dts/api/src/common/cancellation.d.ts +23 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +5 -1
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +1 -1
- package/dist/_dts/api/src/endpoints.d.ts +2 -10
- package/dist/_dts/api/src/eventManagementContracts.d.ts +4 -7
- package/dist/_dts/api/src/footerCompositionContracts.d.ts +9 -0
- package/dist/_dts/api/src/footerSettings.d.ts +3 -3
- package/dist/_dts/api/src/index.d.ts +4 -4
- package/dist/_dts/api/src/navigation/bookingPortalLink.d.ts +13 -0
- package/dist/_dts/api/src/navigation.d.ts +1 -0
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +2 -2
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -29
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +9 -173
- package/dist/_dts/api/src/request.d.ts +1 -1
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +1 -1
- package/dist/_dts/api/src/sdkThemeWire.d.ts +12 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -3
- package/dist/_dts/api/src/siteOperations.d.ts +6 -2
- package/dist/_dts/api/src/siteSettings.d.ts +2 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +2 -1
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +2 -2
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +38 -10
- package/dist/_dts/blocks/src/portal/types.d.ts +9 -6
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +24 -24
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +84 -160
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +31 -4
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +30 -3
- package/dist/_dts/blocks/src/system/designCapabilities.d.ts +10 -1
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +38 -18
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingNowIso.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +14 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/FullyBookedStep.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentBlockingPanel.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +15 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentLocation.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +72 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +66 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +13 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +11 -52
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +19 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -42
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +7 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +94 -24
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useGuestRegistrationRecovery.d.ts +30 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +24 -12
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useRegistrationAdmission.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +24 -24
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -6
- package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +7 -2
- package/dist/_dts/blocks/src/system/runtime/shared/stripe/browserStripe.d.ts +8 -0
- package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +8 -0
- package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +54 -0
- package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +58 -13
- package/dist/_dts/commerce/src/purchase/checkoutCopy.d.ts +10 -0
- package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +16 -21
- package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +23 -40
- package/dist/_dts/commerce/src/purchase/checkoutPresentation.d.ts +49 -0
- package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +6 -6
- package/dist/_dts/commerce/src/purchase/checkoutStripeFinalizationPlanning.d.ts +5 -1
- package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +5 -4
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +9 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +3 -3
- package/dist/_dts/commerce/src/purchase/membershipOrderItemMetadata.d.ts +4 -0
- package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +9 -4
- package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +13 -1
- package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +5 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +4 -1
- package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +7 -1
- package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +2 -2
- package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +9 -2
- package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +6 -0
- package/dist/_dts/commerce/src/purchase/types.d.ts +7 -7
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +3 -2
- package/dist/_dts/content-editor/src/controller/editLeaseHandover.d.ts +30 -0
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +6 -1
- package/dist/_dts/content-editor/src/lib/browserStorage.d.ts +5 -0
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +7 -0
- package/dist/_dts/core/src/booking-flexible-balance.d.ts +2 -2
- package/dist/_dts/core/src/booking-instalment-deposit.d.ts +20 -0
- package/dist/_dts/core/src/booking-live-payment-terms.d.ts +72 -0
- package/dist/_dts/core/src/booking-payment-options.d.ts +24 -0
- package/dist/_dts/core/src/booking-payment-schemas.d.ts +522 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/edit-lease.d.ts +5 -0
- package/dist/_dts/core/src/index.d.ts +4 -0
- package/dist/_dts/core/src/patch/index.d.ts +30 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +326 -36
- package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +3 -1
- package/dist/_dts/media-editor/src/MediaPickerMiniDialog.d.ts +10 -0
- package/dist/_dts/media-editor/src/index.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +0 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/previewAuthStore.d.ts +7 -0
- package/dist/_dts/preview-next/src/constants.d.ts +4 -0
- package/dist/_dts/preview-next/src/keepAlive.d.ts +1 -0
- package/dist/_dts/sdk/src/bookings/index.d.ts +2 -1
- package/dist/_dts/sdk/src/bookings/types.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -12
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +147 -0
- package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +22 -0
- package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +22 -0
- package/dist/_dts/theme-core/src/cards/roles.d.ts +12 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +198 -0
- package/dist/_dts/theme-core/src/palette/utils/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/palette/utils/scrimContrast.d.ts +22 -0
- package/dist/_dts/theme-core/src/runtime/bridgeColourTokens.d.ts +10 -0
- package/dist/_dts/theme-core/src/schema.d.ts +330 -0
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +0 -51
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +0 -51
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +11 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +7 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +7 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +0 -5
- package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +12 -6
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +7 -4
- package/dist/_dts/theme-core/src/site-styles/sectionSurfaceBackgrounds.d.ts +65 -0
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +17 -0
- package/dist/_dts/theme-core/src/surfaces/opaqueSurface.d.ts +43 -0
- package/dist/_dts/ui/src/color-picker.d.ts +1 -1
- package/dist/_dts/ui/src/palette/useHexDraft.d.ts +7 -0
- package/dist/client/{BookingMailingListNote-CzRt2dF_.mjs → BookingMailingListNote-CYHOufsI.mjs} +33 -124
- package/dist/client/{CheckboxChoice-B33MqoUo.mjs → CheckboxChoice-M-3HycLw.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-mxqwap3f.mjs → DemoBookingPortalAccess-Cvr9O_ca.mjs} +2 -2
- package/dist/client/{EventCombined.client-CDb11igO.mjs → EventCombined.client-m5UZIobP.mjs} +7 -7
- package/dist/client/EventEmbeddedCheckoutStep-DL6zFAkA.mjs +289 -0
- package/dist/client/{EventListing.client-EgYhzKPa.mjs → EventListing.client-DeMfCM04.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-gtmtaA2b.mjs → LeafletStaticMap-CvZ3gOdD.mjs} +1 -1
- package/dist/client/{checkoutUrls-CXhko2Rv.mjs → RichText-BtfNvQV6.mjs} +2 -29
- package/dist/client/{TerminalPanel-DvNUP5ot.mjs → TerminalPanel-CUCNEwlH.mjs} +2 -18
- package/dist/client/{ThemedButton-C7CeUJjW.mjs → ThemedButton-C7WhXuRl.mjs} +2 -2
- package/dist/client/{accordion-kjvt49rA.mjs → accordion-cQm5mjqs.mjs} +1 -1
- package/dist/client/{bookingForm-pbRZordh.mjs → bookingForm-BVPJE5RQ.mjs} +15 -11
- package/dist/client/bookings.mjs +2860 -1222
- package/dist/client/{carousel-f4Zbmicv.mjs → carousel-3vgnY7LC.mjs} +2 -2
- package/dist/client/{carousel.client-A2lG-9od.mjs → carousel.client-CISsdZvg.mjs} +1 -1
- package/dist/client/{cart-DO20An50.mjs → cart-BGK4oOjm.mjs} +3 -3
- package/dist/client/{checkout-Du5amDR_.mjs → checkout-GsBLUNJD.mjs} +3 -3
- package/dist/client/checkoutUrls-ChxwaNtO.mjs +28 -0
- package/dist/client/client.mjs +3324 -2053
- package/dist/client/{colorStyles-j5U9v5JA.mjs → colorStyles-D-32xHZh.mjs} +2 -30
- package/dist/client/{context-eW97E945.mjs → context-D_8s12Fp.mjs} +1 -1
- package/dist/client/{dates-jPCirRea.mjs → dates-DeJQbQ9T.mjs} +2 -2
- package/dist/client/{eventCalendar-C2M-iE4j.mjs → eventCalendar-cmucD4NR.mjs} +10 -10
- package/dist/client/{eventCombined-W6ns3LHg.mjs → eventCombined-ku3E9FTl.mjs} +4 -4
- package/dist/client/{eventDetails-CR-GT0f0.mjs → eventDetails-CyKZ61sF.mjs} +5 -5
- package/dist/client/{eventListing-BK8AfYZz.mjs → eventListing-B7yxGIhX.mjs} +4 -4
- package/dist/client/{eventRegistration-BJSd4KUu.mjs → eventRegistration-BoXfSFgZ.mjs} +1455 -1184
- package/dist/client/{form-BvpfbQaT.mjs → form-CNQOWhJo.mjs} +5 -5
- package/dist/client/{headerSection-I5sUQ8x-.mjs → headerSection-DahaBJGQ.mjs} +3 -3
- package/dist/client/hooks.mjs +283 -193
- package/dist/client/{locationMap-BLvwf9_f.mjs → locationMap-BoDjqYlW.mjs} +4 -4
- package/dist/client/{media-Cl38iOMI.mjs → media-BFY0y2rb.mjs} +2 -1
- package/dist/client/{newsletterForm-DrQ2weE8.mjs → newsletterForm-DtzXDklw.mjs} +4 -4
- package/dist/client/{pricing-BES87mrR.mjs → pricing-DXEh2Lhh.mjs} +1 -1
- package/dist/client/{productDetail-Url9jcc5.mjs → productDetail-D7cPa-00.mjs} +3 -3
- package/dist/client/{productList-DE7ngEZJ.mjs → productList-D1XMap66.mjs} +3 -3
- package/dist/client/{propsDecoder-D1OtGXDV.mjs → propsDecoder-DiIeBopB.mjs} +913 -322
- package/dist/client/rendering/client.mjs +3913 -2260
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +3302 -2013
- package/dist/client/result-DRW7JWXz.mjs +30 -0
- package/dist/client/{routeIslandApiConfig-BG9Y-SHg.mjs → routeIslandApiConfig-wzR4lKAY.mjs} +1 -1
- package/dist/client/scrollToBlock-C86BYkyV.mjs +17 -0
- package/dist/client/{shop-CJkuySJ3.mjs → shop-CYT5P-S5.mjs} +13 -14
- package/dist/client/{shop-commerce-store-Bxm75Pg6.mjs → shop-commerce-store-wKhsJQxI.mjs} +1 -1
- package/dist/client/{shop-commerce-4rKj5n9h.mjs → shop-commerce-ypBu_dx4.mjs} +9 -9
- package/dist/client/{shopShared-DpoQDWfz.mjs → shopShared-DFGhYrf2.mjs} +52 -6
- package/dist/client/{useEventFilters-D8HliSqR.mjs → useEventFilters-blSbN5o7.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +15 -22
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/constants.mjs +5 -1
- package/dist/preview-next/index.mjs +5 -1
- package/dist/preview-next/keepAlive.mjs +149 -82
- package/dist/preview-next/middleware.mjs +15 -22
- package/dist/{previewAuthStore-BXXF3hhW.mjs → previewAuthStore-BBmV7UsW.mjs} +49 -29
- package/dist/{sdk-runtime-C2a05WjL.mjs → sdk-runtime-2p8uQk1V.mjs} +2 -2
- package/dist/{separator-CuNhBAhS.mjs → separator-Cvvzk0Oo.mjs} +1 -1
- package/dist/server/components.mjs +4041 -3704
- package/dist/server/config-validation.mjs +345 -255
- package/dist/server/config.mjs +345 -255
- package/dist/server/data.mjs +283 -193
- package/dist/server/index.mjs +20 -27
- package/dist/server/next.mjs +788 -469
- package/dist/server/page-converter.mjs +245 -121
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4018 -3690
- package/dist/server/rendering.mjs +4044 -3707
- package/dist/server/routing.mjs +314 -190
- package/dist/server/server.mjs +290 -218
- package/dist/server/theme-bridge.mjs +1122 -310
- package/dist/server/theme.mjs +126 -116
- package/dist/spinner-CDo6AkDz.mjs +658 -0
- package/dist/styles/index.css +75 -212
- package/package.json +1 -1
- package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +0 -123
- package/dist/_dts/billing/src/checkout/platform.d.ts +0 -77
- package/dist/_dts/billing/src/config/env.d.ts +0 -29
- package/dist/_dts/billing/src/stripe/client.d.ts +0 -29
- package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +0 -63
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +0 -9
- package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +0 -10
- package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +0 -55
- package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +0 -24
- package/dist/client/urlParams-D71VXFGx.mjs +0 -47
package/dist/server/data.mjs
CHANGED
|
@@ -343,6 +343,16 @@ function isRecord$13(value) {
|
|
|
343
343
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
344
344
|
}
|
|
345
345
|
//#endregion
|
|
346
|
+
//#region ../core/src/booking-payment-options.ts
|
|
347
|
+
/** Automatic instalments and a flexible balance cannot share one booking offer. */
|
|
348
|
+
function validateBookingPaymentOptionKinds(kinds) {
|
|
349
|
+
if (kinds.length === 0) return err("no_options");
|
|
350
|
+
const uniqueKinds = new Set(kinds);
|
|
351
|
+
if (uniqueKinds.size !== kinds.length) return err("duplicate_kind");
|
|
352
|
+
if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err("incompatible_collection_options");
|
|
353
|
+
return ok(void 0);
|
|
354
|
+
}
|
|
355
|
+
//#endregion
|
|
346
356
|
//#region ../core/src/booking-time-zone.ts
|
|
347
357
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
348
358
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -3867,6 +3877,15 @@ function fallbackBackground(fallbackToken, palette) {
|
|
|
3867
3877
|
reason: "unresolvable-colour"
|
|
3868
3878
|
};
|
|
3869
3879
|
}
|
|
3880
|
+
/** Every role's contextual styles against one proven solid surface. */
|
|
3881
|
+
function knownSurfaceButtonContextStyles(input) {
|
|
3882
|
+
return Object.fromEntries(VARIANT_ROLES.flatMap((role) => Object.entries(contextualButtonSurfaceStyles(resolveContextualButtonRole({
|
|
3883
|
+
role,
|
|
3884
|
+
buttonSystem: input.buttonSystem,
|
|
3885
|
+
palette: input.palette,
|
|
3886
|
+
surface: input.surface
|
|
3887
|
+
})))));
|
|
3888
|
+
}
|
|
3870
3889
|
function resolveContextualButtonRole(input) {
|
|
3871
3890
|
const requested = findVariant(input.buttonSystem, input.role);
|
|
3872
3891
|
if (!requested) return {
|
|
@@ -6866,6 +6885,18 @@ function brandNonEmptyString(value, label) {
|
|
|
6866
6885
|
if (value.length === 0) throw new Error(`${label} must be a non-empty string.`);
|
|
6867
6886
|
return value;
|
|
6868
6887
|
}
|
|
6888
|
+
/**
|
|
6889
|
+
* What a block's own section background field admits, read from its manifest.
|
|
6890
|
+
* A site style's surface rule may paint a gradient or a photo; a block whose
|
|
6891
|
+
* `_sectionStyles.background` refuses that paint would be dropped at render
|
|
6892
|
+
* admission, so the runtime compiler paints the surface's colour equivalent
|
|
6893
|
+
* instead (see `compileSectionBackground`).
|
|
6894
|
+
*/
|
|
6895
|
+
const sectionBackgroundPaintValues = [
|
|
6896
|
+
"color",
|
|
6897
|
+
"gradient",
|
|
6898
|
+
"image"
|
|
6899
|
+
];
|
|
6869
6900
|
const plainFrame = { kind: "plain" };
|
|
6870
6901
|
function panelFrame(treatment) {
|
|
6871
6902
|
return {
|
|
@@ -6950,6 +6981,7 @@ function defineBlockDesignCapability(capability) {
|
|
|
6950
6981
|
...capability,
|
|
6951
6982
|
kind: "designed",
|
|
6952
6983
|
looks: capability.looks ?? "not-applicable",
|
|
6984
|
+
sectionBackgroundPaints: admittedSectionBackgroundPaints(capability.sectionBackgroundPaints),
|
|
6953
6985
|
sectionHeights: capability.sectionHeights ?? ["default"],
|
|
6954
6986
|
imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
|
|
6955
6987
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
@@ -6962,6 +6994,10 @@ function defineBlockDesignCapability(capability) {
|
|
|
6962
6994
|
...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
|
|
6963
6995
|
};
|
|
6964
6996
|
}
|
|
6997
|
+
/** Absent means the block admits every section background paint. */
|
|
6998
|
+
function admittedSectionBackgroundPaints(paints) {
|
|
6999
|
+
return paints ?? sectionBackgroundPaintValues;
|
|
7000
|
+
}
|
|
6965
7001
|
//#endregion
|
|
6966
7002
|
//#region ../theme-core/src/site-styles/logoBranding.ts
|
|
6967
7003
|
const logoTextConfidenceValues = [
|
|
@@ -7240,12 +7276,22 @@ const mediaPresentationSchema = commonSchema.extend({
|
|
|
7240
7276
|
const boxBackgroundSchema = z.discriminatedUnion("type", [
|
|
7241
7277
|
commonSchema.extend({
|
|
7242
7278
|
type: z.literal("color"),
|
|
7243
|
-
color: tokenOrCssColorValueSchema.nullable().optional()
|
|
7279
|
+
color: tokenOrCssColorValueSchema.nullable().optional(),
|
|
7280
|
+
/**
|
|
7281
|
+
* Compiler-owned. The scrim a site-style colour surface lays over media
|
|
7282
|
+
* that replaces it (a Look's band meeting an authored photo), sized so the
|
|
7283
|
+
* surface's foreground stays legible over any pixel. A colour background
|
|
7284
|
+
* never draws it itself; `resolveSectionBackground` moves it onto the
|
|
7285
|
+
* merged media background as its overlay.
|
|
7286
|
+
*/
|
|
7287
|
+
mediaScrim: boxBackgroundOverlaySchema.nullable().optional()
|
|
7244
7288
|
}),
|
|
7245
7289
|
commonSchema.extend({
|
|
7246
7290
|
type: z.literal("gradient"),
|
|
7247
7291
|
gradient: z.string().nullable().optional(),
|
|
7248
|
-
gradientPresetId: z.string().min(1).nullable().optional()
|
|
7292
|
+
gradientPresetId: z.string().min(1).nullable().optional(),
|
|
7293
|
+
/** Compiler-owned; see the colour branch. */
|
|
7294
|
+
mediaScrim: boxBackgroundOverlaySchema.nullable().optional()
|
|
7249
7295
|
}),
|
|
7250
7296
|
mediaPresentationSchema.extend({
|
|
7251
7297
|
type: z.literal("image"),
|
|
@@ -8095,68 +8141,115 @@ const RichTextDocSchema = z.object({
|
|
|
8095
8141
|
content: z.array(TipTapNodeSchema)
|
|
8096
8142
|
}).strict();
|
|
8097
8143
|
//#endregion
|
|
8098
|
-
//#region ../
|
|
8099
|
-
const
|
|
8100
|
-
const
|
|
8101
|
-
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
intervalUnit: z.enum([
|
|
8107
|
-
"day",
|
|
8108
|
-
"week",
|
|
8109
|
-
"month"
|
|
8110
|
-
])
|
|
8111
|
-
}),
|
|
8112
|
-
z.object({
|
|
8113
|
-
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
8114
|
-
depositAmountCents: z.number().int().min(0),
|
|
8115
|
-
depositRefundability: bookingDepositRefundPolicySchema$1,
|
|
8116
|
-
instalmentCount: z.number().int().positive(),
|
|
8117
|
-
intervalCount: z.number().int().positive(),
|
|
8118
|
-
intervalUnit: z.enum([
|
|
8119
|
-
"day",
|
|
8120
|
-
"week",
|
|
8121
|
-
"month"
|
|
8122
|
-
])
|
|
8123
|
-
}),
|
|
8124
|
-
z.object({
|
|
8125
|
-
kind: z.literal("equal_scheduled_instalments"),
|
|
8126
|
-
instalmentCount: z.number().int().positive(),
|
|
8127
|
-
intervalCount: z.number().int().positive(),
|
|
8128
|
-
intervalUnit: z.enum([
|
|
8129
|
-
"day",
|
|
8130
|
-
"week",
|
|
8131
|
-
"month"
|
|
8132
|
-
])
|
|
8133
|
-
})
|
|
8134
|
-
]);
|
|
8135
|
-
const bookingFlexibleBalanceDueDateRuleSchema$1 = z.union([z.object({
|
|
8136
|
-
kind: z.literal("relative_to_start_date"),
|
|
8137
|
-
daysBeforeStart: z.number().int().positive()
|
|
8138
|
-
}), z.object({
|
|
8139
|
-
kind: z.literal("fixed_calendar_date"),
|
|
8140
|
-
dueAt: z.string().datetime()
|
|
8141
|
-
})]);
|
|
8142
|
-
const bookingFlexibleBalanceConfigSchema$1 = z.object({
|
|
8143
|
-
upfrontAmountCents: z.number().int().min(0),
|
|
8144
|
-
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
|
|
8145
|
-
depositRefundability: bookingDepositRefundPolicySchema$1
|
|
8146
|
-
});
|
|
8147
|
-
const blockBookingPaymentCollectionOptionSchema = z.union([
|
|
8148
|
-
z.object({ kind: z.literal("upfront") }),
|
|
8149
|
-
z.object({ kind: z.literal("deferred_manual") }),
|
|
8150
|
-
z.object({
|
|
8151
|
-
kind: z.literal("instalment_plan"),
|
|
8152
|
-
plan: bookingInstalmentPlanSchema$1
|
|
8153
|
-
}),
|
|
8154
|
-
z.object({
|
|
8155
|
-
kind: z.literal("flexible_balance"),
|
|
8156
|
-
config: bookingFlexibleBalanceConfigSchema$1
|
|
8157
|
-
})
|
|
8144
|
+
//#region ../core/src/booking-payment-schemas.ts
|
|
8145
|
+
const stripObject = (shape) => z.object(shape);
|
|
8146
|
+
const strictObject = (shape) => z.strictObject(shape);
|
|
8147
|
+
const depositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
8148
|
+
const intervalUnitSchema = z.enum([
|
|
8149
|
+
"day",
|
|
8150
|
+
"week",
|
|
8151
|
+
"month"
|
|
8158
8152
|
]);
|
|
8159
|
-
const
|
|
8153
|
+
const nonNegativeIntegerSchema = z.number().int().nonnegative();
|
|
8154
|
+
const positiveIntegerSchema = z.number().int().positive();
|
|
8155
|
+
function createInstalmentPlanSchema(object) {
|
|
8156
|
+
return z.discriminatedUnion("kind", [
|
|
8157
|
+
object({
|
|
8158
|
+
kind: z.literal("deposit_plus_one_remainder"),
|
|
8159
|
+
depositAmountCents: nonNegativeIntegerSchema,
|
|
8160
|
+
depositRefundability: depositRefundPolicySchema,
|
|
8161
|
+
remainderDueCount: positiveIntegerSchema,
|
|
8162
|
+
intervalUnit: intervalUnitSchema
|
|
8163
|
+
}),
|
|
8164
|
+
object({
|
|
8165
|
+
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
8166
|
+
depositAmountCents: nonNegativeIntegerSchema,
|
|
8167
|
+
depositRefundability: depositRefundPolicySchema,
|
|
8168
|
+
instalmentCount: positiveIntegerSchema,
|
|
8169
|
+
intervalCount: positiveIntegerSchema,
|
|
8170
|
+
intervalUnit: intervalUnitSchema
|
|
8171
|
+
}),
|
|
8172
|
+
object({
|
|
8173
|
+
kind: z.literal("equal_scheduled_instalments"),
|
|
8174
|
+
instalmentCount: positiveIntegerSchema,
|
|
8175
|
+
intervalCount: positiveIntegerSchema,
|
|
8176
|
+
intervalUnit: intervalUnitSchema
|
|
8177
|
+
})
|
|
8178
|
+
]);
|
|
8179
|
+
}
|
|
8180
|
+
function createFlexibleBalanceSchemas(object) {
|
|
8181
|
+
const dueDateRule = z.discriminatedUnion("kind", [object({
|
|
8182
|
+
kind: z.literal("relative_to_start_date"),
|
|
8183
|
+
daysBeforeStart: positiveIntegerSchema
|
|
8184
|
+
}), object({
|
|
8185
|
+
kind: z.literal("fixed_calendar_date"),
|
|
8186
|
+
dueAt: z.string().datetime()
|
|
8187
|
+
})]);
|
|
8188
|
+
return {
|
|
8189
|
+
dueDateRule,
|
|
8190
|
+
config: object({
|
|
8191
|
+
upfrontAmountCents: nonNegativeIntegerSchema,
|
|
8192
|
+
dueDateRule,
|
|
8193
|
+
depositRefundability: depositRefundPolicySchema
|
|
8194
|
+
})
|
|
8195
|
+
};
|
|
8196
|
+
}
|
|
8197
|
+
const paymentOptionKindsMessages = {
|
|
8198
|
+
no_options: "Choose at least one way for customers to pay.",
|
|
8199
|
+
duplicate_kind: "Choose each payment option only once.",
|
|
8200
|
+
incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
|
|
8201
|
+
};
|
|
8202
|
+
function buildBookingPaymentOptionSchemas(object) {
|
|
8203
|
+
const instalmentPlan = createInstalmentPlanSchema(object);
|
|
8204
|
+
const flexibleBalance = createFlexibleBalanceSchemas(object);
|
|
8205
|
+
const paymentCollectionOption = z.discriminatedUnion("kind", [
|
|
8206
|
+
object({ kind: z.literal("upfront") }),
|
|
8207
|
+
object({ kind: z.literal("deferred_manual") }),
|
|
8208
|
+
object({
|
|
8209
|
+
kind: z.literal("instalment_plan"),
|
|
8210
|
+
plan: instalmentPlan
|
|
8211
|
+
}),
|
|
8212
|
+
object({
|
|
8213
|
+
kind: z.literal("flexible_balance"),
|
|
8214
|
+
config: flexibleBalance.config
|
|
8215
|
+
})
|
|
8216
|
+
]);
|
|
8217
|
+
const paymentTerms = object({ allowedOptions: z.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
|
|
8218
|
+
const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
|
|
8219
|
+
if (!result.ok) ctx.addIssue({
|
|
8220
|
+
code: "custom",
|
|
8221
|
+
path: ["allowedOptions"],
|
|
8222
|
+
message: paymentOptionKindsMessages[result.error]
|
|
8223
|
+
});
|
|
8224
|
+
});
|
|
8225
|
+
const paymentOptionsChoice = z.discriminatedUnion("source", [z.strictObject({ source: z.literal("default") }), z.strictObject({
|
|
8226
|
+
source: z.literal("custom"),
|
|
8227
|
+
paymentTerms
|
|
8228
|
+
})]);
|
|
8229
|
+
return {
|
|
8230
|
+
depositRefundPolicy: depositRefundPolicySchema,
|
|
8231
|
+
instalmentPlan,
|
|
8232
|
+
flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
|
|
8233
|
+
flexibleBalanceConfig: flexibleBalance.config,
|
|
8234
|
+
paymentCollectionOption,
|
|
8235
|
+
paymentTerms,
|
|
8236
|
+
paymentOptionsChoice
|
|
8237
|
+
};
|
|
8238
|
+
}
|
|
8239
|
+
function createBookingPaymentOptionSchemas(mode) {
|
|
8240
|
+
return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
|
|
8241
|
+
}
|
|
8242
|
+
const bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
|
|
8243
|
+
bookingPaymentOptionSchemas.depositRefundPolicy;
|
|
8244
|
+
bookingPaymentOptionSchemas.instalmentPlan;
|
|
8245
|
+
bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
|
|
8246
|
+
bookingPaymentOptionSchemas.flexibleBalanceConfig;
|
|
8247
|
+
bookingPaymentOptionSchemas.paymentCollectionOption;
|
|
8248
|
+
const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
|
|
8249
|
+
bookingPaymentOptionSchemas.paymentOptionsChoice;
|
|
8250
|
+
//#endregion
|
|
8251
|
+
//#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
|
|
8252
|
+
const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
|
|
8160
8253
|
//#endregion
|
|
8161
8254
|
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
8162
8255
|
const blockBookingConsentSchema = z.object({
|
|
@@ -11392,7 +11485,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
|
|
|
11392
11485
|
stack: 8e3,
|
|
11393
11486
|
digest: 128,
|
|
11394
11487
|
componentStack: 8e3,
|
|
11395
|
-
sourceLocation: 1024
|
|
11488
|
+
sourceLocation: 1024,
|
|
11489
|
+
navigationAgeMs: 6e4
|
|
11396
11490
|
};
|
|
11397
11491
|
const clientErrorEventSchema = z.enum([
|
|
11398
11492
|
"dashboard:route-error",
|
|
@@ -11409,7 +11503,17 @@ z.object({
|
|
|
11409
11503
|
stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
|
|
11410
11504
|
digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
|
|
11411
11505
|
componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
|
|
11412
|
-
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
11506
|
+
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
|
|
11507
|
+
navigation: z.object({
|
|
11508
|
+
fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
11509
|
+
toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
11510
|
+
type: z.enum([
|
|
11511
|
+
"push",
|
|
11512
|
+
"replace",
|
|
11513
|
+
"traverse"
|
|
11514
|
+
]),
|
|
11515
|
+
ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
|
|
11516
|
+
}).strict().nullable().optional()
|
|
11413
11517
|
}).strict();
|
|
11414
11518
|
({
|
|
11415
11519
|
...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
|
|
@@ -13026,6 +13130,17 @@ function defineBlockAppearancePreset(preset) {
|
|
|
13026
13130
|
* (`defineBlockAppearancePreset` defaults it to `none`) — the block's own
|
|
13027
13131
|
* composition still governs how its items look. The per-Look rationale for the card-bearing ones lives
|
|
13028
13132
|
* in `.project/plans/1297-card-role-contract-site-styles-own-card-surfaces/mapping-table.md`.
|
|
13133
|
+
*
|
|
13134
|
+
* A Look asking for the `alternative` or `open` role is offered only where the
|
|
13135
|
+
* site style defines that role (`siteStyleSupportsLookDesign`), so two Looks
|
|
13136
|
+
* that differ only in role are distinct wherever both are offered.
|
|
13137
|
+
*
|
|
13138
|
+
* Retiring a Look is removing its entry. A stored pin to a retired id reads as
|
|
13139
|
+
* an unsupported pin in the page design editor model and renders the block's
|
|
13140
|
+
* auto Look, the same path an unavailable Look takes. Duplicates retired in
|
|
13141
|
+
* the 2026-09 Look audit: `feature-cards-soft-panels`,
|
|
13142
|
+
* `feature-cards-photo-tiles`, `feature-cards-editorial-pathways`,
|
|
13143
|
+
* `testimonials-default-cards`.
|
|
13029
13144
|
*/
|
|
13030
13145
|
const brandScrimOptionGroups = [{
|
|
13031
13146
|
id: "image-surface-treatment",
|
|
@@ -13410,16 +13525,6 @@ defineBlockAppearancePreset({
|
|
|
13410
13525
|
treatment: "framed-programme"
|
|
13411
13526
|
}
|
|
13412
13527
|
}
|
|
13413
|
-
}), defineBlockAppearancePreset({
|
|
13414
|
-
id: "feature-cards-soft-panels",
|
|
13415
|
-
target: "feature-cards",
|
|
13416
|
-
label: "Soft tinted panels",
|
|
13417
|
-
blockKinds: ["block.feature-cards"],
|
|
13418
|
-
design: {
|
|
13419
|
-
sectionSurface: "base",
|
|
13420
|
-
contentFrame: plainFrame,
|
|
13421
|
-
cardRole: "alternative"
|
|
13422
|
-
}
|
|
13423
13528
|
}), defineBlockAppearancePreset({
|
|
13424
13529
|
id: "feature-cards-editorial-diptych",
|
|
13425
13530
|
target: "feature-cards",
|
|
@@ -13431,27 +13536,6 @@ defineBlockAppearancePreset({
|
|
|
13431
13536
|
contentFrame: plainFrame,
|
|
13432
13537
|
cardRole: "default"
|
|
13433
13538
|
}
|
|
13434
|
-
}), defineBlockAppearancePreset({
|
|
13435
|
-
id: "feature-cards-editorial-pathways",
|
|
13436
|
-
target: "feature-cards",
|
|
13437
|
-
label: "Editorial pathways",
|
|
13438
|
-
blockKinds: ["block.feature-cards"],
|
|
13439
|
-
constraints: { layoutVariantKeys: ["editorial-pathways"] },
|
|
13440
|
-
design: {
|
|
13441
|
-
sectionSurface: "base",
|
|
13442
|
-
contentFrame: plainFrame,
|
|
13443
|
-
cardRole: "default"
|
|
13444
|
-
}
|
|
13445
|
-
}), defineBlockAppearancePreset({
|
|
13446
|
-
id: "feature-cards-photo-tiles",
|
|
13447
|
-
target: "feature-cards",
|
|
13448
|
-
label: "Photo tiles",
|
|
13449
|
-
blockKinds: ["block.feature-cards"],
|
|
13450
|
-
design: {
|
|
13451
|
-
sectionSurface: "base",
|
|
13452
|
-
contentFrame: plainFrame,
|
|
13453
|
-
cardRole: "default"
|
|
13454
|
-
}
|
|
13455
13539
|
}), defineBlockAppearancePreset({
|
|
13456
13540
|
id: "events-lined-panel",
|
|
13457
13541
|
target: "events",
|
|
@@ -13540,16 +13624,6 @@ defineBlockAppearancePreset({
|
|
|
13540
13624
|
contentFrame: panelFrame("raised"),
|
|
13541
13625
|
cardRole: "default"
|
|
13542
13626
|
}
|
|
13543
|
-
}), defineBlockAppearancePreset({
|
|
13544
|
-
id: "testimonials-default-cards",
|
|
13545
|
-
target: "testimonials",
|
|
13546
|
-
label: "Default cards",
|
|
13547
|
-
blockKinds: ["block.testimonials"],
|
|
13548
|
-
design: {
|
|
13549
|
-
sectionSurface: "base",
|
|
13550
|
-
contentFrame: plainFrame,
|
|
13551
|
-
cardRole: "default"
|
|
13552
|
-
}
|
|
13553
13627
|
}), defineBlockAppearancePreset({
|
|
13554
13628
|
id: "testimonials-statement-cards",
|
|
13555
13629
|
target: "testimonials",
|
|
@@ -17031,9 +17105,7 @@ const curatedSiteStyles = [
|
|
|
17031
17105
|
recommendedAppearancePresetIds: [
|
|
17032
17106
|
"hero-split-editorial",
|
|
17033
17107
|
"intro-portrait-bio",
|
|
17034
|
-
"feature-cards-
|
|
17035
|
-
"feature-cards-editorial-columns",
|
|
17036
|
-
"feature-cards-photo-tiles",
|
|
17108
|
+
"feature-cards-bold-colors",
|
|
17037
17109
|
"testimonials-non-carded",
|
|
17038
17110
|
"faq-contained-help",
|
|
17039
17111
|
"contact-form-panel"
|
|
@@ -17677,8 +17749,7 @@ const curatedSiteStyles = [
|
|
|
17677
17749
|
"intro-portrait-bio",
|
|
17678
17750
|
"feature-cards-editorial-columns",
|
|
17679
17751
|
"feature-cards-editorial-diptych",
|
|
17680
|
-
"feature-cards-
|
|
17681
|
-
"feature-cards-soft-panels",
|
|
17752
|
+
"feature-cards-bold-colors",
|
|
17682
17753
|
"events-lined-panel",
|
|
17683
17754
|
"testimonials-non-carded",
|
|
17684
17755
|
"faq-base-accordion",
|
|
@@ -19275,6 +19346,34 @@ function withLookCapability(declaration) {
|
|
|
19275
19346
|
}
|
|
19276
19347
|
};
|
|
19277
19348
|
}
|
|
19349
|
+
/**
|
|
19350
|
+
* The section background paints a block's own `_sectionStyles.background`
|
|
19351
|
+
* field admits, read from its manifest so the design capability cannot drift
|
|
19352
|
+
* from what render admission accepts. A block without the field admits none.
|
|
19353
|
+
*/
|
|
19354
|
+
function sectionBackgroundPaintsOfFields(fields) {
|
|
19355
|
+
const sectionStyles = fields.find((field) => field.id === "_sectionStyles");
|
|
19356
|
+
if (!sectionStyles || sectionStyles.type !== "modal") return [];
|
|
19357
|
+
const background = sectionStyles.schema.fields.find((field) => field.id === "background");
|
|
19358
|
+
if (!background || background.type !== "tabGroup") return [];
|
|
19359
|
+
const tabIds = new Set(background.tabs.map((tab) => tab.id));
|
|
19360
|
+
return [
|
|
19361
|
+
"color",
|
|
19362
|
+
"gradient",
|
|
19363
|
+
"image"
|
|
19364
|
+
].filter((paint) => tabIds.has(paint));
|
|
19365
|
+
}
|
|
19366
|
+
/** Pins a designed capability's section background paints to the block's manifest. */
|
|
19367
|
+
function withManifestSectionBackgroundPaints(declaration, fields) {
|
|
19368
|
+
if (declaration.kind !== "capability") return declaration;
|
|
19369
|
+
return {
|
|
19370
|
+
kind: "capability",
|
|
19371
|
+
capability: {
|
|
19372
|
+
...declaration.capability,
|
|
19373
|
+
sectionBackgroundPaints: sectionBackgroundPaintsOfFields(fields)
|
|
19374
|
+
}
|
|
19375
|
+
};
|
|
19376
|
+
}
|
|
19278
19377
|
function declareNoBlockDesignCapability(reason) {
|
|
19279
19378
|
return {
|
|
19280
19379
|
kind: "none",
|
|
@@ -21146,15 +21245,11 @@ function resolveContextualButtonStyles(background, foreground, context, options)
|
|
|
21146
21245
|
if (!paletteCache.has(palette)) paletteCache.set(palette, surfaceCache);
|
|
21147
21246
|
const cached = surfaceCache.get(cacheKey);
|
|
21148
21247
|
if (cached) return cached;
|
|
21149
|
-
const styles =
|
|
21150
|
-
|
|
21151
|
-
|
|
21152
|
-
|
|
21153
|
-
|
|
21154
|
-
surface: surface.surface
|
|
21155
|
-
});
|
|
21156
|
-
return Object.entries(contextualButtonSurfaceStyles(resolution));
|
|
21157
|
-
}));
|
|
21248
|
+
const styles = knownSurfaceButtonContextStyles({
|
|
21249
|
+
surface: surface.surface,
|
|
21250
|
+
palette,
|
|
21251
|
+
buttonSystem
|
|
21252
|
+
});
|
|
21158
21253
|
surfaceCache.set(cacheKey, styles);
|
|
21159
21254
|
return styles;
|
|
21160
21255
|
}
|
|
@@ -27834,6 +27929,20 @@ const footerEngagement = stack({
|
|
|
27834
27929
|
...footerSpamProtectionBinding
|
|
27835
27930
|
}), [], when("module.engagement.kind", { equals: "mailing-list" }))
|
|
27836
27931
|
], when("module.kind", { equals: "engagement" }));
|
|
27932
|
+
const platformAttribution = el("div", {
|
|
27933
|
+
className: "rb-caption",
|
|
27934
|
+
"data-site-attribution": "macadamia"
|
|
27935
|
+
}, [
|
|
27936
|
+
text({ as: "span" }, bind("module.lead")),
|
|
27937
|
+
text({
|
|
27938
|
+
as: "span",
|
|
27939
|
+
value: " "
|
|
27940
|
+
}),
|
|
27941
|
+
link({
|
|
27942
|
+
href: { $bind: { from: "module.link.href" } },
|
|
27943
|
+
className: "footer-nav-link rb-caption transition-theme-standard"
|
|
27944
|
+
}, [text({ as: "span" }, bind("module.link.label"))])
|
|
27945
|
+
], when("module.kind", { equals: "attribution" }));
|
|
27837
27946
|
const footerGroup = stack({
|
|
27838
27947
|
gap: "md",
|
|
27839
27948
|
align: "stretch",
|
|
@@ -27863,6 +27972,7 @@ const footerGroup = stack({
|
|
|
27863
27972
|
hours,
|
|
27864
27973
|
socials,
|
|
27865
27974
|
footerEngagement,
|
|
27975
|
+
platformAttribution,
|
|
27866
27976
|
stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
|
|
27867
27977
|
stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
|
|
27868
27978
|
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
@@ -29947,7 +30057,7 @@ const publicPassProductCollectionSchema = z.object({ passes: z.array(publicPassP
|
|
|
29947
30057
|
/**
|
|
29948
30058
|
* Public membership product for shop display
|
|
29949
30059
|
*/
|
|
29950
|
-
const
|
|
30060
|
+
const publicMembershipProductFields = {
|
|
29951
30061
|
id: z.string(),
|
|
29952
30062
|
name: z.string(),
|
|
29953
30063
|
description: z.string().nullable(),
|
|
@@ -29956,7 +30066,16 @@ const publicMembershipProductSchema = z.object({
|
|
|
29956
30066
|
billingInterval: z.enum(["month", "year"]),
|
|
29957
30067
|
eligibleCategoryIds: z.array(z.string()),
|
|
29958
30068
|
eligibleCategoryNames: z.array(z.string())
|
|
30069
|
+
};
|
|
30070
|
+
const purchasablePublicMembershipProductSchema = z.object({
|
|
30071
|
+
...publicMembershipProductFields,
|
|
30072
|
+
purchaseAvailability: z.literal("purchasable")
|
|
29959
30073
|
});
|
|
30074
|
+
const publicMembershipProductSchema = z.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z.object({
|
|
30075
|
+
...publicMembershipProductFields,
|
|
30076
|
+
purchaseAvailability: z.literal("display_only"),
|
|
30077
|
+
unavailabilityReason: z.literal("online_payments_unavailable")
|
|
30078
|
+
})]);
|
|
29960
30079
|
const publicMembershipProductCollectionSchema = z.object({ memberships: z.array(publicMembershipProductSchema) });
|
|
29961
30080
|
//#endregion
|
|
29962
30081
|
//#region ../blocks/src/system/blocks/event-registration.shared.ts
|
|
@@ -30087,14 +30206,18 @@ const calendarTabViewsSchema = z.enum([
|
|
|
30087
30206
|
* @param needsPaymentStep - Whether user must complete payment method selection
|
|
30088
30207
|
* @returns Array of wizard steps to display
|
|
30089
30208
|
*/
|
|
30090
|
-
function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
30209
|
+
function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep, paymentActive = false) {
|
|
30091
30210
|
const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : [
|
|
30092
30211
|
"select-event",
|
|
30093
30212
|
"select-tickets",
|
|
30094
30213
|
"enter-details"
|
|
30095
30214
|
];
|
|
30096
30215
|
if (!needsPaymentStep) return baseSteps;
|
|
30097
|
-
return [
|
|
30216
|
+
return paymentActive ? [
|
|
30217
|
+
...baseSteps,
|
|
30218
|
+
"select-payment",
|
|
30219
|
+
"payment"
|
|
30220
|
+
] : [...baseSteps, "select-payment"];
|
|
30098
30221
|
}
|
|
30099
30222
|
//#endregion
|
|
30100
30223
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
@@ -30213,6 +30336,7 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
|
|
|
30213
30336
|
"Date",
|
|
30214
30337
|
"Tickets",
|
|
30215
30338
|
"Details",
|
|
30339
|
+
"Payment options",
|
|
30216
30340
|
"Payment"
|
|
30217
30341
|
];
|
|
30218
30342
|
const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
|
|
@@ -30355,12 +30479,13 @@ function shellLabelForRegistrationStep(step, events) {
|
|
|
30355
30479
|
switch (step) {
|
|
30356
30480
|
case "select-event": return isDateSelection(events) ? "Date" : "Event";
|
|
30357
30481
|
case "select-tickets": return "Tickets";
|
|
30482
|
+
case "fully-booked":
|
|
30358
30483
|
case "enter-details": return "Details";
|
|
30359
|
-
case "select-payment": return "Payment";
|
|
30484
|
+
case "select-payment": return "Payment options";
|
|
30485
|
+
case "payment": return "Payment";
|
|
30360
30486
|
case "error":
|
|
30361
30487
|
case "success":
|
|
30362
30488
|
case "submitting":
|
|
30363
|
-
case "redirecting":
|
|
30364
30489
|
case "verifying-payment":
|
|
30365
30490
|
case "verifying-timeout":
|
|
30366
30491
|
case "payment-status":
|
|
@@ -30372,7 +30497,7 @@ function isDateSelection(events) {
|
|
|
30372
30497
|
return Boolean(events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId));
|
|
30373
30498
|
}
|
|
30374
30499
|
function buildEventRegistrationShellBodyText(stepLabels) {
|
|
30375
|
-
if (stepLabels.includes("Payment")) return "Preparing tickets, details, and payment options.";
|
|
30500
|
+
if (stepLabels.includes("Payment options")) return "Preparing tickets, details, and payment options.";
|
|
30376
30501
|
if (stepLabels[0] === "Tickets") return "Preparing tickets and booking details.";
|
|
30377
30502
|
return "Preparing dates, tickets, and booking details.";
|
|
30378
30503
|
}
|
|
@@ -32256,7 +32381,8 @@ const eventCalendarLayout = [styledSection({
|
|
|
32256
32381
|
fallback: false
|
|
32257
32382
|
} },
|
|
32258
32383
|
banded: { $bind: {
|
|
32259
|
-
from: "content
|
|
32384
|
+
from: "content",
|
|
32385
|
+
transforms: [{ id: "events.calendarBanded" }],
|
|
32260
32386
|
fallback: false
|
|
32261
32387
|
} }
|
|
32262
32388
|
}))]
|
|
@@ -35753,7 +35879,7 @@ function buildPassesMembershipsDisplay(options) {
|
|
|
35753
35879
|
product: pass
|
|
35754
35880
|
} : {
|
|
35755
35881
|
kind: "unavailable",
|
|
35756
|
-
label: "Online purchasing
|
|
35882
|
+
label: "Online purchasing is unavailable."
|
|
35757
35883
|
}
|
|
35758
35884
|
};
|
|
35759
35885
|
});
|
|
@@ -35763,7 +35889,14 @@ function buildPassesMembershipsDisplay(options) {
|
|
|
35763
35889
|
description: options.showDescriptions ? membership.description : null,
|
|
35764
35890
|
priceLabel: formatCommercePrice(membership.price, membership.currency),
|
|
35765
35891
|
intervalLabel: formatInterval(membership.billingInterval),
|
|
35766
|
-
|
|
35892
|
+
action: membership.purchaseAvailability === "purchasable" ? {
|
|
35893
|
+
kind: "purchase",
|
|
35894
|
+
label: options.membershipActionLabel,
|
|
35895
|
+
product: membership
|
|
35896
|
+
} : {
|
|
35897
|
+
kind: "unavailable",
|
|
35898
|
+
label: "Online purchasing is unavailable."
|
|
35899
|
+
}
|
|
35767
35900
|
}));
|
|
35768
35901
|
return {
|
|
35769
35902
|
kind: "passes-memberships",
|
|
@@ -35983,7 +36116,14 @@ const membershipCardDisplaySchema = z.object({
|
|
|
35983
36116
|
description: z.string().nullable(),
|
|
35984
36117
|
priceLabel: z.string(),
|
|
35985
36118
|
intervalLabel: z.string(),
|
|
35986
|
-
|
|
36119
|
+
action: z.discriminatedUnion("kind", [z.object({
|
|
36120
|
+
kind: z.literal("purchase"),
|
|
36121
|
+
label: z.string(),
|
|
36122
|
+
product: purchasablePublicMembershipProductSchema
|
|
36123
|
+
}), z.object({
|
|
36124
|
+
kind: z.literal("unavailable"),
|
|
36125
|
+
label: z.string()
|
|
36126
|
+
})])
|
|
35987
36127
|
});
|
|
35988
36128
|
const passesMembershipsDisplaySchema = z.object({
|
|
35989
36129
|
kind: z.literal("passes-memberships"),
|
|
@@ -38621,7 +38761,7 @@ function withDesignCapability(blockKind, definition, designCapability, designMet
|
|
|
38621
38761
|
if (definition.manifest.name !== blockKind) throw new Error(`System block kind mismatch: expected ${blockKind}, received ${definition.manifest.name}.`);
|
|
38622
38762
|
return {
|
|
38623
38763
|
...definition,
|
|
38624
|
-
designCapability,
|
|
38764
|
+
designCapability: withManifestSectionBackgroundPaints(designCapability, definition.manifest.fields),
|
|
38625
38765
|
designMetadata,
|
|
38626
38766
|
manifest: {
|
|
38627
38767
|
...definition.manifest,
|
|
@@ -39672,6 +39812,16 @@ const defaultTransforms = createTransformRegistry([
|
|
|
39672
39812
|
return resolveCalendarReadProfile(asPartialObject(value) ?? {});
|
|
39673
39813
|
}
|
|
39674
39814
|
},
|
|
39815
|
+
{
|
|
39816
|
+
id: "events.calendarBanded",
|
|
39817
|
+
kind: "formatter",
|
|
39818
|
+
summary: "Paint the week-board band only on a section with no background of its own",
|
|
39819
|
+
run(value) {
|
|
39820
|
+
const content = asPartialObject(value) ?? {};
|
|
39821
|
+
const sectionStyles = asPartialObject(content._sectionStyles);
|
|
39822
|
+
return content.banded === true && parseBackgroundContent(sectionStyles?.background) === null;
|
|
39823
|
+
}
|
|
39824
|
+
},
|
|
39675
39825
|
...formattingTransforms,
|
|
39676
39826
|
...layoutTransforms,
|
|
39677
39827
|
...chromeLogoTransforms,
|
|
@@ -40818,6 +40968,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
|
40818
40968
|
"refund_failed"
|
|
40819
40969
|
];
|
|
40820
40970
|
const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
40971
|
+
"refund_blocked_by_live_payment_terms",
|
|
40821
40972
|
...CANONICAL_REFUND_PLANNER_ERROR_CODES,
|
|
40822
40973
|
"payment_intent_not_found",
|
|
40823
40974
|
"stripe_error",
|
|
@@ -40833,6 +40984,7 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
|
40833
40984
|
//#endregion
|
|
40834
40985
|
//#region ../api/src/bookingRefundOutcomes.ts
|
|
40835
40986
|
const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
40987
|
+
"refund_blocked_by_live_payment_terms",
|
|
40836
40988
|
"missing_amount",
|
|
40837
40989
|
"invalid_amount",
|
|
40838
40990
|
"amount_exceeds_remaining",
|
|
@@ -41222,68 +41374,6 @@ function parsePublicProductCategorySelector(value) {
|
|
|
41222
41374
|
}
|
|
41223
41375
|
z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
|
|
41224
41376
|
//#endregion
|
|
41225
|
-
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
41226
|
-
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
41227
|
-
const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
|
|
41228
|
-
z.object({
|
|
41229
|
-
kind: z.literal("deposit_plus_one_remainder"),
|
|
41230
|
-
depositAmountCents: z.number().int().nonnegative(),
|
|
41231
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
41232
|
-
remainderDueCount: z.number().int().positive(),
|
|
41233
|
-
intervalUnit: z.enum([
|
|
41234
|
-
"day",
|
|
41235
|
-
"week",
|
|
41236
|
-
"month"
|
|
41237
|
-
])
|
|
41238
|
-
}),
|
|
41239
|
-
z.object({
|
|
41240
|
-
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
41241
|
-
depositAmountCents: z.number().int().nonnegative(),
|
|
41242
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
41243
|
-
instalmentCount: z.number().int().positive(),
|
|
41244
|
-
intervalCount: z.number().int().positive(),
|
|
41245
|
-
intervalUnit: z.enum([
|
|
41246
|
-
"day",
|
|
41247
|
-
"week",
|
|
41248
|
-
"month"
|
|
41249
|
-
])
|
|
41250
|
-
}),
|
|
41251
|
-
z.object({
|
|
41252
|
-
kind: z.literal("equal_scheduled_instalments"),
|
|
41253
|
-
instalmentCount: z.number().int().positive(),
|
|
41254
|
-
intervalCount: z.number().int().positive(),
|
|
41255
|
-
intervalUnit: z.enum([
|
|
41256
|
-
"day",
|
|
41257
|
-
"week",
|
|
41258
|
-
"month"
|
|
41259
|
-
])
|
|
41260
|
-
})
|
|
41261
|
-
]);
|
|
41262
|
-
const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
|
|
41263
|
-
kind: z.literal("relative_to_start_date"),
|
|
41264
|
-
daysBeforeStart: z.number().int().positive()
|
|
41265
|
-
}), z.object({
|
|
41266
|
-
kind: z.literal("fixed_calendar_date"),
|
|
41267
|
-
dueAt: z.string().datetime()
|
|
41268
|
-
})]);
|
|
41269
|
-
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
41270
|
-
upfrontAmountCents: z.number().int().nonnegative(),
|
|
41271
|
-
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
41272
|
-
depositRefundability: bookingDepositRefundPolicySchema
|
|
41273
|
-
});
|
|
41274
|
-
z.discriminatedUnion("kind", [
|
|
41275
|
-
z.object({ kind: z.literal("upfront") }),
|
|
41276
|
-
z.object({ kind: z.literal("deferred_manual") }),
|
|
41277
|
-
z.object({
|
|
41278
|
-
kind: z.literal("instalment_plan"),
|
|
41279
|
-
plan: bookingInstalmentPlanSchema
|
|
41280
|
-
}),
|
|
41281
|
-
z.object({
|
|
41282
|
-
kind: z.literal("flexible_balance"),
|
|
41283
|
-
config: bookingFlexibleBalanceConfigSchema
|
|
41284
|
-
})
|
|
41285
|
-
]);
|
|
41286
|
-
//#endregion
|
|
41287
41377
|
//#region ../api/src/aiPlayground.ts
|
|
41288
41378
|
/**
|
|
41289
41379
|
* RFC-6902 JSON Patch Operations
|