@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.
Files changed (250) hide show
  1. package/README.md +1 -1
  2. package/dist/EventEmbeddedCheckoutStep-D00Kc8Zj.mjs +285 -0
  3. package/dist/{PreviewEditorSidebar-DvEPG3Z2.mjs → PreviewEditorSidebar-7ZhmmnBB.mjs} +103 -66
  4. package/dist/{PreviewEditorUI-D6eb6fkx.mjs → PreviewEditorUI-BIJucTRd.mjs} +3 -6
  5. package/dist/{PreviewQueryProvider-5znTyJuz.mjs → PreviewQueryProvider-C0mndwHB.mjs} +3 -3
  6. package/dist/{SdkPreviewModeRuntime-DJ6utQ_R.mjs → SdkPreviewModeRuntime-tj45gmCX.mjs} +96 -67
  7. package/dist/{SiteChromeCustomizeContext-CFJYh6vo.mjs → SiteChromeCustomizeContext-BFOt0ss-.mjs} +4804 -4161
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +660 -0
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +510 -0
  10. package/dist/_dts/api/src/billing.d.ts +2 -2
  11. package/dist/_dts/api/src/bookingConfig.d.ts +33 -48
  12. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -6
  13. package/dist/_dts/api/src/bookingOperations.d.ts +5 -7
  14. package/dist/_dts/api/src/bookingRecords.d.ts +15 -11
  15. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +5 -5
  16. package/dist/_dts/api/src/clientErrorReporting.d.ts +11 -0
  17. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +0 -2
  18. package/dist/_dts/api/src/common/cancellation.d.ts +23 -0
  19. package/dist/_dts/api/src/contentRuntime.d.ts +5 -1
  20. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +1 -1
  21. package/dist/_dts/api/src/endpoints.d.ts +2 -10
  22. package/dist/_dts/api/src/eventManagementContracts.d.ts +4 -7
  23. package/dist/_dts/api/src/footerCompositionContracts.d.ts +9 -0
  24. package/dist/_dts/api/src/footerSettings.d.ts +3 -3
  25. package/dist/_dts/api/src/index.d.ts +4 -4
  26. package/dist/_dts/api/src/navigation/bookingPortalLink.d.ts +13 -0
  27. package/dist/_dts/api/src/navigation.d.ts +1 -0
  28. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +2 -2
  29. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -29
  30. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +9 -173
  31. package/dist/_dts/api/src/request.d.ts +1 -1
  32. package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
  33. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +1 -1
  34. package/dist/_dts/api/src/sdkThemeWire.d.ts +12 -0
  35. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -3
  36. package/dist/_dts/api/src/siteOperations.d.ts +6 -2
  37. package/dist/_dts/api/src/siteSettings.d.ts +2 -0
  38. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  39. package/dist/_dts/blocks/src/client.d.ts +2 -1
  40. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
  41. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +2 -2
  42. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +38 -10
  43. package/dist/_dts/blocks/src/portal/types.d.ts +9 -6
  44. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  45. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +24 -24
  46. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +84 -160
  48. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  49. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +31 -4
  50. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +30 -3
  51. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +10 -1
  52. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  53. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -2
  54. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +3 -1
  55. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +38 -18
  56. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
  57. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
  58. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingNowIso.d.ts +8 -0
  59. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +1 -1
  60. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +6 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -1
  62. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  63. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +14 -2
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +13 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +15 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +0 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/FullyBookedStep.d.ts +6 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentBlockingPanel.d.ts +3 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +4 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +15 -5
  71. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +4 -2
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +3 -3
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentLocation.d.ts +3 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +72 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +66 -5
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -4
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +13 -5
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +11 -52
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +19 -2
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -42
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +7 -8
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +94 -24
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useGuestRegistrationRecovery.d.ts +30 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +24 -12
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useRegistrationAdmission.d.ts +18 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +6 -1
  87. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +1 -1
  88. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +24 -24
  89. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -6
  90. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +7 -2
  91. package/dist/_dts/blocks/src/system/runtime/shared/stripe/browserStripe.d.ts +8 -0
  92. package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +8 -0
  93. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +54 -0
  94. package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +58 -13
  95. package/dist/_dts/commerce/src/purchase/checkoutCopy.d.ts +10 -0
  96. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
  97. package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +16 -21
  98. package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +23 -40
  99. package/dist/_dts/commerce/src/purchase/checkoutPresentation.d.ts +49 -0
  100. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +6 -6
  101. package/dist/_dts/commerce/src/purchase/checkoutStripeFinalizationPlanning.d.ts +5 -1
  102. package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +5 -4
  103. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +9 -0
  104. package/dist/_dts/commerce/src/purchase/index.d.ts +3 -3
  105. package/dist/_dts/commerce/src/purchase/membershipOrderItemMetadata.d.ts +4 -0
  106. package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +9 -4
  107. package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +13 -1
  108. package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +5 -0
  109. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +4 -1
  110. package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +7 -1
  111. package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +1 -1
  112. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +2 -2
  113. package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +9 -2
  114. package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +6 -0
  115. package/dist/_dts/commerce/src/purchase/types.d.ts +7 -7
  116. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +3 -2
  117. package/dist/_dts/content-editor/src/controller/editLeaseHandover.d.ts +30 -0
  118. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +6 -1
  119. package/dist/_dts/content-editor/src/lib/browserStorage.d.ts +5 -0
  120. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +7 -0
  121. package/dist/_dts/core/src/booking-flexible-balance.d.ts +2 -2
  122. package/dist/_dts/core/src/booking-instalment-deposit.d.ts +20 -0
  123. package/dist/_dts/core/src/booking-live-payment-terms.d.ts +72 -0
  124. package/dist/_dts/core/src/booking-payment-options.d.ts +24 -0
  125. package/dist/_dts/core/src/booking-payment-schemas.d.ts +522 -0
  126. package/dist/_dts/core/src/branded.d.ts +3 -0
  127. package/dist/_dts/core/src/edit-lease.d.ts +5 -0
  128. package/dist/_dts/core/src/index.d.ts +4 -0
  129. package/dist/_dts/core/src/patch/index.d.ts +30 -0
  130. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +326 -36
  131. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +3 -1
  132. package/dist/_dts/media-editor/src/MediaPickerMiniDialog.d.ts +10 -0
  133. package/dist/_dts/media-editor/src/index.d.ts +2 -0
  134. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +0 -1
  135. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
  136. package/dist/_dts/preview-next/src/client/previewAuthStore.d.ts +7 -0
  137. package/dist/_dts/preview-next/src/constants.d.ts +4 -0
  138. package/dist/_dts/preview-next/src/keepAlive.d.ts +1 -0
  139. package/dist/_dts/sdk/src/bookings/index.d.ts +2 -1
  140. package/dist/_dts/sdk/src/bookings/types.d.ts +1 -1
  141. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -12
  142. package/dist/_dts/sdk/src/version.d.ts +1 -1
  143. package/dist/_dts/theme-core/src/blocks/index.d.ts +1 -0
  144. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +147 -0
  145. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +22 -0
  146. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +22 -0
  147. package/dist/_dts/theme-core/src/cards/roles.d.ts +12 -0
  148. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  149. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +198 -0
  150. package/dist/_dts/theme-core/src/palette/utils/index.d.ts +2 -0
  151. package/dist/_dts/theme-core/src/palette/utils/scrimContrast.d.ts +22 -0
  152. package/dist/_dts/theme-core/src/runtime/bridgeColourTokens.d.ts +10 -0
  153. package/dist/_dts/theme-core/src/schema.d.ts +330 -0
  154. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +0 -51
  155. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +0 -51
  156. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +11 -0
  157. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +7 -1
  158. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +7 -1
  159. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +0 -5
  160. package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +12 -6
  161. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +7 -4
  162. package/dist/_dts/theme-core/src/site-styles/sectionSurfaceBackgrounds.d.ts +65 -0
  163. package/dist/_dts/theme-core/src/site-styles/types.d.ts +17 -0
  164. package/dist/_dts/theme-core/src/surfaces/opaqueSurface.d.ts +43 -0
  165. package/dist/_dts/ui/src/color-picker.d.ts +1 -1
  166. package/dist/_dts/ui/src/palette/useHexDraft.d.ts +7 -0
  167. package/dist/client/{BookingMailingListNote-CzRt2dF_.mjs → BookingMailingListNote-CYHOufsI.mjs} +33 -124
  168. package/dist/client/{CheckboxChoice-B33MqoUo.mjs → CheckboxChoice-M-3HycLw.mjs} +1 -1
  169. package/dist/client/{DemoBookingPortalAccess-mxqwap3f.mjs → DemoBookingPortalAccess-Cvr9O_ca.mjs} +2 -2
  170. package/dist/client/{EventCombined.client-CDb11igO.mjs → EventCombined.client-m5UZIobP.mjs} +7 -7
  171. package/dist/client/EventEmbeddedCheckoutStep-DL6zFAkA.mjs +289 -0
  172. package/dist/client/{EventListing.client-EgYhzKPa.mjs → EventListing.client-DeMfCM04.mjs} +2 -2
  173. package/dist/client/{LeafletStaticMap-gtmtaA2b.mjs → LeafletStaticMap-CvZ3gOdD.mjs} +1 -1
  174. package/dist/client/{checkoutUrls-CXhko2Rv.mjs → RichText-BtfNvQV6.mjs} +2 -29
  175. package/dist/client/{TerminalPanel-DvNUP5ot.mjs → TerminalPanel-CUCNEwlH.mjs} +2 -18
  176. package/dist/client/{ThemedButton-C7CeUJjW.mjs → ThemedButton-C7WhXuRl.mjs} +2 -2
  177. package/dist/client/{accordion-kjvt49rA.mjs → accordion-cQm5mjqs.mjs} +1 -1
  178. package/dist/client/{bookingForm-pbRZordh.mjs → bookingForm-BVPJE5RQ.mjs} +15 -11
  179. package/dist/client/bookings.mjs +2860 -1222
  180. package/dist/client/{carousel-f4Zbmicv.mjs → carousel-3vgnY7LC.mjs} +2 -2
  181. package/dist/client/{carousel.client-A2lG-9od.mjs → carousel.client-CISsdZvg.mjs} +1 -1
  182. package/dist/client/{cart-DO20An50.mjs → cart-BGK4oOjm.mjs} +3 -3
  183. package/dist/client/{checkout-Du5amDR_.mjs → checkout-GsBLUNJD.mjs} +3 -3
  184. package/dist/client/checkoutUrls-ChxwaNtO.mjs +28 -0
  185. package/dist/client/client.mjs +3324 -2053
  186. package/dist/client/{colorStyles-j5U9v5JA.mjs → colorStyles-D-32xHZh.mjs} +2 -30
  187. package/dist/client/{context-eW97E945.mjs → context-D_8s12Fp.mjs} +1 -1
  188. package/dist/client/{dates-jPCirRea.mjs → dates-DeJQbQ9T.mjs} +2 -2
  189. package/dist/client/{eventCalendar-C2M-iE4j.mjs → eventCalendar-cmucD4NR.mjs} +10 -10
  190. package/dist/client/{eventCombined-W6ns3LHg.mjs → eventCombined-ku3E9FTl.mjs} +4 -4
  191. package/dist/client/{eventDetails-CR-GT0f0.mjs → eventDetails-CyKZ61sF.mjs} +5 -5
  192. package/dist/client/{eventListing-BK8AfYZz.mjs → eventListing-B7yxGIhX.mjs} +4 -4
  193. package/dist/client/{eventRegistration-BJSd4KUu.mjs → eventRegistration-BoXfSFgZ.mjs} +1455 -1184
  194. package/dist/client/{form-BvpfbQaT.mjs → form-CNQOWhJo.mjs} +5 -5
  195. package/dist/client/{headerSection-I5sUQ8x-.mjs → headerSection-DahaBJGQ.mjs} +3 -3
  196. package/dist/client/hooks.mjs +283 -193
  197. package/dist/client/{locationMap-BLvwf9_f.mjs → locationMap-BoDjqYlW.mjs} +4 -4
  198. package/dist/client/{media-Cl38iOMI.mjs → media-BFY0y2rb.mjs} +2 -1
  199. package/dist/client/{newsletterForm-DrQ2weE8.mjs → newsletterForm-DtzXDklw.mjs} +4 -4
  200. package/dist/client/{pricing-BES87mrR.mjs → pricing-DXEh2Lhh.mjs} +1 -1
  201. package/dist/client/{productDetail-Url9jcc5.mjs → productDetail-D7cPa-00.mjs} +3 -3
  202. package/dist/client/{productList-DE7ngEZJ.mjs → productList-D1XMap66.mjs} +3 -3
  203. package/dist/client/{propsDecoder-D1OtGXDV.mjs → propsDecoder-DiIeBopB.mjs} +913 -322
  204. package/dist/client/rendering/client.mjs +3913 -2260
  205. package/dist/client/rendering/islands.mjs +19 -19
  206. package/dist/client/rendering.mjs +3302 -2013
  207. package/dist/client/result-DRW7JWXz.mjs +30 -0
  208. package/dist/client/{routeIslandApiConfig-BG9Y-SHg.mjs → routeIslandApiConfig-wzR4lKAY.mjs} +1 -1
  209. package/dist/client/scrollToBlock-C86BYkyV.mjs +17 -0
  210. package/dist/client/{shop-CJkuySJ3.mjs → shop-CYT5P-S5.mjs} +13 -14
  211. package/dist/client/{shop-commerce-store-Bxm75Pg6.mjs → shop-commerce-store-wKhsJQxI.mjs} +1 -1
  212. package/dist/client/{shop-commerce-4rKj5n9h.mjs → shop-commerce-ypBu_dx4.mjs} +9 -9
  213. package/dist/client/{shopShared-DpoQDWfz.mjs → shopShared-DFGhYrf2.mjs} +52 -6
  214. package/dist/client/{useEventFilters-D8HliSqR.mjs → useEventFilters-blSbN5o7.mjs} +8 -8
  215. package/dist/preview-next/before-render.mjs +15 -22
  216. package/dist/preview-next/client/runtime.mjs +4 -4
  217. package/dist/preview-next/constants.mjs +5 -1
  218. package/dist/preview-next/index.mjs +5 -1
  219. package/dist/preview-next/keepAlive.mjs +149 -82
  220. package/dist/preview-next/middleware.mjs +15 -22
  221. package/dist/{previewAuthStore-BXXF3hhW.mjs → previewAuthStore-BBmV7UsW.mjs} +49 -29
  222. package/dist/{sdk-runtime-C2a05WjL.mjs → sdk-runtime-2p8uQk1V.mjs} +2 -2
  223. package/dist/{separator-CuNhBAhS.mjs → separator-Cvvzk0Oo.mjs} +1 -1
  224. package/dist/server/components.mjs +4041 -3704
  225. package/dist/server/config-validation.mjs +345 -255
  226. package/dist/server/config.mjs +345 -255
  227. package/dist/server/data.mjs +283 -193
  228. package/dist/server/index.mjs +20 -27
  229. package/dist/server/next.mjs +788 -469
  230. package/dist/server/page-converter.mjs +245 -121
  231. package/dist/server/prebuild.mjs +1 -1
  232. package/dist/server/rendering/server.mjs +4018 -3690
  233. package/dist/server/rendering.mjs +4044 -3707
  234. package/dist/server/routing.mjs +314 -190
  235. package/dist/server/server.mjs +290 -218
  236. package/dist/server/theme-bridge.mjs +1122 -310
  237. package/dist/server/theme.mjs +126 -116
  238. package/dist/spinner-CDo6AkDz.mjs +658 -0
  239. package/dist/styles/index.css +75 -212
  240. package/package.json +1 -1
  241. package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +0 -123
  242. package/dist/_dts/billing/src/checkout/platform.d.ts +0 -77
  243. package/dist/_dts/billing/src/config/env.d.ts +0 -29
  244. package/dist/_dts/billing/src/stripe/client.d.ts +0 -29
  245. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +0 -63
  246. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +0 -9
  247. package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +0 -10
  248. package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +0 -55
  249. package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +0 -24
  250. package/dist/client/urlParams-D71VXFGx.mjs +0 -47
@@ -2029,6 +2029,16 @@ function isRecord$12(value) {
2029
2029
  return typeof value === "object" && value !== null && !Array.isArray(value);
2030
2030
  }
2031
2031
  //#endregion
2032
+ //#region ../core/src/booking-payment-options.ts
2033
+ /** Automatic instalments and a flexible balance cannot share one booking offer. */
2034
+ function validateBookingPaymentOptionKinds(kinds) {
2035
+ if (kinds.length === 0) return err("no_options");
2036
+ const uniqueKinds = new Set(kinds);
2037
+ if (uniqueKinds.size !== kinds.length) return err("duplicate_kind");
2038
+ if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err("incompatible_collection_options");
2039
+ return ok(void 0);
2040
+ }
2041
+ //#endregion
2032
2042
  //#region ../core/src/booking-time-zone.ts
2033
2043
  const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
2034
2044
  const timeZoneValidityCache = /* @__PURE__ */ new Map();
@@ -4118,7 +4128,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
4118
4128
  stack: 8e3,
4119
4129
  digest: 128,
4120
4130
  componentStack: 8e3,
4121
- sourceLocation: 1024
4131
+ sourceLocation: 1024,
4132
+ navigationAgeMs: 6e4
4122
4133
  };
4123
4134
  const clientErrorEventSchema = z.enum([
4124
4135
  "dashboard:route-error",
@@ -4135,7 +4146,17 @@ z.object({
4135
4146
  stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
4136
4147
  digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
4137
4148
  componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
4138
- sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
4149
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
4150
+ navigation: z.object({
4151
+ fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
4152
+ toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
4153
+ type: z.enum([
4154
+ "push",
4155
+ "replace",
4156
+ "traverse"
4157
+ ]),
4158
+ ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
4159
+ }).strict().nullable().optional()
4139
4160
  }).strict();
4140
4161
  ({
4141
4162
  ...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
@@ -4804,6 +4825,68 @@ const paletteValueKeySchema = z.string().transform((value, ctx) => {
4804
4825
  return z.NEVER;
4805
4826
  });
4806
4827
  //#endregion
4828
+ //#region ../theme-core/src/palette/utils/opaqueSurfaceColor.ts
4829
+ /** Resolve an opaque colour, compositing alpha against an explicit underlay. */
4830
+ function resolveOpaqueSurfaceHex(reference, palette, underlayReference) {
4831
+ const opaque = resolveConcreteColorHex(reference, palette);
4832
+ if (opaque) return opaque;
4833
+ if (!underlayReference) return null;
4834
+ const underlayHex = resolveConcreteColorHex(underlayReference, palette);
4835
+ if (!underlayHex) return null;
4836
+ const parts = parseColorTokenParts(reference);
4837
+ if (parts.kind === "token" && parts.opacityPercent !== null) {
4838
+ const foregroundHex = normalizePaletteHex(palette[parts.token] ?? "");
4839
+ return foregroundHex ? compositeHex(foregroundHex, underlayHex, parts.opacityPercent / 100) : null;
4840
+ }
4841
+ const rgba = parseRgba(parts.kind === "raw" ? parts.value : reference);
4842
+ return rgba ? compositeHex(rgbToHex(rgba.r, rgba.g, rgba.b), underlayHex, rgba.alpha) : null;
4843
+ }
4844
+ /** Resolve a colour reference only when it is already fully opaque. */
4845
+ function resolveConcreteColorHex(reference, palette) {
4846
+ const literalHex = normalizePaletteHex(reference);
4847
+ if (literalHex) return literalHex;
4848
+ const parts = parseColorTokenParts(reference);
4849
+ if (parts.kind === "token") {
4850
+ if (parts.opacityPercent !== null) return null;
4851
+ return normalizePaletteHex(palette[parts.token] ?? "");
4852
+ }
4853
+ const literal = parts.kind === "raw" ? parts.value : reference;
4854
+ if (literal.toLowerCase() === "black") return "#000000";
4855
+ if (literal.toLowerCase() === "white") return "#ffffff";
4856
+ return normalizePaletteHex(literal);
4857
+ }
4858
+ function compositeHex(foregroundHex, underlayHex, alpha) {
4859
+ const foreground = hexToRgb(foregroundHex);
4860
+ const underlay = hexToRgb(underlayHex);
4861
+ const channel = (foregroundValue, underlayValue) => Math.round(foregroundValue * alpha + underlayValue * (1 - alpha));
4862
+ return rgbToHex(channel(foreground.r, underlay.r), channel(foreground.g, underlay.g), channel(foreground.b, underlay.b));
4863
+ }
4864
+ function parseRgba(value) {
4865
+ const match = value.trim().match(/^rgba?\(\s*([\d.]+)(?:\s*,\s*|\s+)([\d.]+)(?:\s*,\s*|\s+)([\d.]+)(?:\s*(?:,|\/)\s*([\d.]+%?))?\s*\)$/i);
4866
+ if (!match) return null;
4867
+ const [, rSource, gSource, bSource] = match;
4868
+ if (!rSource || !gSource || !bSource) return null;
4869
+ const r = Number(rSource);
4870
+ const g = Number(gSource);
4871
+ const b = Number(bSource);
4872
+ const alpha = parseAlpha(match[4]);
4873
+ if (alpha === null || !isRgbChannel(r) || !isRgbChannel(g) || !isRgbChannel(b)) return null;
4874
+ return {
4875
+ r,
4876
+ g,
4877
+ b,
4878
+ alpha
4879
+ };
4880
+ }
4881
+ function parseAlpha(source) {
4882
+ if (!source) return 1;
4883
+ const value = source.endsWith("%") ? Number(source.slice(0, -1)) / 100 : Number(source);
4884
+ return Number.isFinite(value) && value >= 0 && value <= 1 ? value : null;
4885
+ }
4886
+ function isRgbChannel(value) {
4887
+ return Number.isFinite(value) && value >= 0 && value <= 255;
4888
+ }
4889
+ //#endregion
4807
4890
  //#region ../theme-core/src/site-styles/styleTags.ts
4808
4891
  /**
4809
4892
  * Descriptive style-axis metadata for button personalities and palette
@@ -7412,68 +7495,6 @@ function interpolateHex(startHex, endHex, position) {
7412
7495
  const channel = (from, to) => Math.round(from + (to - from) * position).toString(16).padStart(2, "0");
7413
7496
  return `#${channel(start.r, end.r)}${channel(start.g, end.g)}${channel(start.b, end.b)}`;
7414
7497
  }
7415
- //#endregion
7416
- //#region ../theme-core/src/palette/utils/opaqueSurfaceColor.ts
7417
- /** Resolve an opaque colour, compositing alpha against an explicit underlay. */
7418
- function resolveOpaqueSurfaceHex(reference, palette, underlayReference) {
7419
- const opaque = resolveConcreteColorHex(reference, palette);
7420
- if (opaque) return opaque;
7421
- if (!underlayReference) return null;
7422
- const underlayHex = resolveConcreteColorHex(underlayReference, palette);
7423
- if (!underlayHex) return null;
7424
- const parts = parseColorTokenParts(reference);
7425
- if (parts.kind === "token" && parts.opacityPercent !== null) {
7426
- const foregroundHex = normalizePaletteHex(palette[parts.token] ?? "");
7427
- return foregroundHex ? compositeHex(foregroundHex, underlayHex, parts.opacityPercent / 100) : null;
7428
- }
7429
- const rgba = parseRgba(parts.kind === "raw" ? parts.value : reference);
7430
- return rgba ? compositeHex(rgbToHex(rgba.r, rgba.g, rgba.b), underlayHex, rgba.alpha) : null;
7431
- }
7432
- /** Resolve a colour reference only when it is already fully opaque. */
7433
- function resolveConcreteColorHex(reference, palette) {
7434
- const literalHex = normalizePaletteHex(reference);
7435
- if (literalHex) return literalHex;
7436
- const parts = parseColorTokenParts(reference);
7437
- if (parts.kind === "token") {
7438
- if (parts.opacityPercent !== null) return null;
7439
- return normalizePaletteHex(palette[parts.token] ?? "");
7440
- }
7441
- const literal = parts.kind === "raw" ? parts.value : reference;
7442
- if (literal.toLowerCase() === "black") return "#000000";
7443
- if (literal.toLowerCase() === "white") return "#ffffff";
7444
- return normalizePaletteHex(literal);
7445
- }
7446
- function compositeHex(foregroundHex, underlayHex, alpha) {
7447
- const foreground = hexToRgb(foregroundHex);
7448
- const underlay = hexToRgb(underlayHex);
7449
- const channel = (foregroundValue, underlayValue) => Math.round(foregroundValue * alpha + underlayValue * (1 - alpha));
7450
- return rgbToHex(channel(foreground.r, underlay.r), channel(foreground.g, underlay.g), channel(foreground.b, underlay.b));
7451
- }
7452
- function parseRgba(value) {
7453
- const match = value.trim().match(/^rgba?\(\s*([\d.]+)(?:\s*,\s*|\s+)([\d.]+)(?:\s*,\s*|\s+)([\d.]+)(?:\s*(?:,|\/)\s*([\d.]+%?))?\s*\)$/i);
7454
- if (!match) return null;
7455
- const [, rSource, gSource, bSource] = match;
7456
- if (!rSource || !gSource || !bSource) return null;
7457
- const r = Number(rSource);
7458
- const g = Number(gSource);
7459
- const b = Number(bSource);
7460
- const alpha = parseAlpha(match[4]);
7461
- if (alpha === null || !isRgbChannel(r) || !isRgbChannel(g) || !isRgbChannel(b)) return null;
7462
- return {
7463
- r,
7464
- g,
7465
- b,
7466
- alpha
7467
- };
7468
- }
7469
- function parseAlpha(source) {
7470
- if (!source) return 1;
7471
- const value = source.endsWith("%") ? Number(source.slice(0, -1)) / 100 : Number(source);
7472
- return Number.isFinite(value) && value >= 0 && value <= 1 ? value : null;
7473
- }
7474
- function isRgbChannel(value) {
7475
- return Number.isFinite(value) && value >= 0 && value <= 255;
7476
- }
7477
7498
  /**
7478
7499
  * Derive the hover foreground that belongs with a resolved resting foreground.
7479
7500
  *
@@ -8039,6 +8060,15 @@ function fallbackBackground(fallbackToken, palette) {
8039
8060
  reason: "unresolvable-colour"
8040
8061
  };
8041
8062
  }
8063
+ /** Every role's contextual styles against one proven solid surface. */
8064
+ function knownSurfaceButtonContextStyles(input) {
8065
+ return Object.fromEntries(VARIANT_ROLES.flatMap((role) => Object.entries(contextualButtonSurfaceStyles(resolveContextualButtonRole({
8066
+ role,
8067
+ buttonSystem: input.buttonSystem,
8068
+ palette: input.palette,
8069
+ surface: input.surface
8070
+ })))));
8071
+ }
8042
8072
  function resolveContextualButtonRole(input) {
8043
8073
  const requested = findVariant(input.buttonSystem, input.role);
8044
8074
  if (!requested) return {
@@ -11038,6 +11068,18 @@ function brandNonEmptyString(value, label) {
11038
11068
  if (value.length === 0) throw new Error(`${label} must be a non-empty string.`);
11039
11069
  return value;
11040
11070
  }
11071
+ /**
11072
+ * What a block's own section background field admits, read from its manifest.
11073
+ * A site style's surface rule may paint a gradient or a photo; a block whose
11074
+ * `_sectionStyles.background` refuses that paint would be dropped at render
11075
+ * admission, so the runtime compiler paints the surface's colour equivalent
11076
+ * instead (see `compileSectionBackground`).
11077
+ */
11078
+ const sectionBackgroundPaintValues = [
11079
+ "color",
11080
+ "gradient",
11081
+ "image"
11082
+ ];
11041
11083
  const plainFrame = { kind: "plain" };
11042
11084
  function panelFrame(treatment) {
11043
11085
  return {
@@ -11122,6 +11164,7 @@ function defineBlockDesignCapability(capability) {
11122
11164
  ...capability,
11123
11165
  kind: "designed",
11124
11166
  looks: capability.looks ?? "not-applicable",
11167
+ sectionBackgroundPaints: admittedSectionBackgroundPaints(capability.sectionBackgroundPaints),
11125
11168
  sectionHeights: capability.sectionHeights ?? ["default"],
11126
11169
  imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
11127
11170
  imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
@@ -11134,6 +11177,10 @@ function defineBlockDesignCapability(capability) {
11134
11177
  ...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
11135
11178
  };
11136
11179
  }
11180
+ /** Absent means the block admits every section background paint. */
11181
+ function admittedSectionBackgroundPaints(paints) {
11182
+ return paints ?? sectionBackgroundPaintValues;
11183
+ }
11137
11184
  //#endregion
11138
11185
  //#region ../theme-core/src/site-styles/logoBranding.ts
11139
11186
  const logoTextConfidenceValues = [
@@ -11412,12 +11459,22 @@ const mediaPresentationSchema = commonSchema.extend({
11412
11459
  const boxBackgroundSchema = z.discriminatedUnion("type", [
11413
11460
  commonSchema.extend({
11414
11461
  type: z.literal("color"),
11415
- color: tokenOrCssColorValueSchema.nullable().optional()
11462
+ color: tokenOrCssColorValueSchema.nullable().optional(),
11463
+ /**
11464
+ * Compiler-owned. The scrim a site-style colour surface lays over media
11465
+ * that replaces it (a Look's band meeting an authored photo), sized so the
11466
+ * surface's foreground stays legible over any pixel. A colour background
11467
+ * never draws it itself; `resolveSectionBackground` moves it onto the
11468
+ * merged media background as its overlay.
11469
+ */
11470
+ mediaScrim: boxBackgroundOverlaySchema.nullable().optional()
11416
11471
  }),
11417
11472
  commonSchema.extend({
11418
11473
  type: z.literal("gradient"),
11419
11474
  gradient: z.string().nullable().optional(),
11420
- gradientPresetId: z.string().min(1).nullable().optional()
11475
+ gradientPresetId: z.string().min(1).nullable().optional(),
11476
+ /** Compiler-owned; see the colour branch. */
11477
+ mediaScrim: boxBackgroundOverlaySchema.nullable().optional()
11421
11478
  }),
11422
11479
  mediaPresentationSchema.extend({
11423
11480
  type: z.literal("image"),
@@ -12215,6 +12272,17 @@ function defineBlockAppearancePreset(preset) {
12215
12272
  * (`defineBlockAppearancePreset` defaults it to `none`) — the block's own
12216
12273
  * composition still governs how its items look. The per-Look rationale for the card-bearing ones lives
12217
12274
  * in `.project/plans/1297-card-role-contract-site-styles-own-card-surfaces/mapping-table.md`.
12275
+ *
12276
+ * A Look asking for the `alternative` or `open` role is offered only where the
12277
+ * site style defines that role (`siteStyleSupportsLookDesign`), so two Looks
12278
+ * that differ only in role are distinct wherever both are offered.
12279
+ *
12280
+ * Retiring a Look is removing its entry. A stored pin to a retired id reads as
12281
+ * an unsupported pin in the page design editor model and renders the block's
12282
+ * auto Look, the same path an unavailable Look takes. Duplicates retired in
12283
+ * the 2026-09 Look audit: `feature-cards-soft-panels`,
12284
+ * `feature-cards-photo-tiles`, `feature-cards-editorial-pathways`,
12285
+ * `testimonials-default-cards`.
12218
12286
  */
12219
12287
  const brandScrimOptionGroups = [{
12220
12288
  id: "image-surface-treatment",
@@ -12599,16 +12667,6 @@ defineBlockAppearancePreset({
12599
12667
  treatment: "framed-programme"
12600
12668
  }
12601
12669
  }
12602
- }), defineBlockAppearancePreset({
12603
- id: "feature-cards-soft-panels",
12604
- target: "feature-cards",
12605
- label: "Soft tinted panels",
12606
- blockKinds: ["block.feature-cards"],
12607
- design: {
12608
- sectionSurface: "base",
12609
- contentFrame: plainFrame,
12610
- cardRole: "alternative"
12611
- }
12612
12670
  }), defineBlockAppearancePreset({
12613
12671
  id: "feature-cards-editorial-diptych",
12614
12672
  target: "feature-cards",
@@ -12620,27 +12678,6 @@ defineBlockAppearancePreset({
12620
12678
  contentFrame: plainFrame,
12621
12679
  cardRole: "default"
12622
12680
  }
12623
- }), defineBlockAppearancePreset({
12624
- id: "feature-cards-editorial-pathways",
12625
- target: "feature-cards",
12626
- label: "Editorial pathways",
12627
- blockKinds: ["block.feature-cards"],
12628
- constraints: { layoutVariantKeys: ["editorial-pathways"] },
12629
- design: {
12630
- sectionSurface: "base",
12631
- contentFrame: plainFrame,
12632
- cardRole: "default"
12633
- }
12634
- }), defineBlockAppearancePreset({
12635
- id: "feature-cards-photo-tiles",
12636
- target: "feature-cards",
12637
- label: "Photo tiles",
12638
- blockKinds: ["block.feature-cards"],
12639
- design: {
12640
- sectionSurface: "base",
12641
- contentFrame: plainFrame,
12642
- cardRole: "default"
12643
- }
12644
12681
  }), defineBlockAppearancePreset({
12645
12682
  id: "events-lined-panel",
12646
12683
  target: "events",
@@ -12729,16 +12766,6 @@ defineBlockAppearancePreset({
12729
12766
  contentFrame: panelFrame("raised"),
12730
12767
  cardRole: "default"
12731
12768
  }
12732
- }), defineBlockAppearancePreset({
12733
- id: "testimonials-default-cards",
12734
- target: "testimonials",
12735
- label: "Default cards",
12736
- blockKinds: ["block.testimonials"],
12737
- design: {
12738
- sectionSurface: "base",
12739
- contentFrame: plainFrame,
12740
- cardRole: "default"
12741
- }
12742
12769
  }), defineBlockAppearancePreset({
12743
12770
  id: "testimonials-statement-cards",
12744
12771
  target: "testimonials",
@@ -16220,9 +16247,7 @@ const curatedSiteStyles = [
16220
16247
  recommendedAppearancePresetIds: [
16221
16248
  "hero-split-editorial",
16222
16249
  "intro-portrait-bio",
16223
- "feature-cards-soft-panels",
16224
- "feature-cards-editorial-columns",
16225
- "feature-cards-photo-tiles",
16250
+ "feature-cards-bold-colors",
16226
16251
  "testimonials-non-carded",
16227
16252
  "faq-contained-help",
16228
16253
  "contact-form-panel"
@@ -16866,8 +16891,7 @@ const curatedSiteStyles = [
16866
16891
  "intro-portrait-bio",
16867
16892
  "feature-cards-editorial-columns",
16868
16893
  "feature-cards-editorial-diptych",
16869
- "feature-cards-editorial-pathways",
16870
- "feature-cards-soft-panels",
16894
+ "feature-cards-bold-colors",
16871
16895
  "events-lined-panel",
16872
16896
  "testimonials-non-carded",
16873
16897
  "faq-base-accordion",
@@ -18673,6 +18697,34 @@ function withLookCapability(declaration) {
18673
18697
  }
18674
18698
  };
18675
18699
  }
18700
+ /**
18701
+ * The section background paints a block's own `_sectionStyles.background`
18702
+ * field admits, read from its manifest so the design capability cannot drift
18703
+ * from what render admission accepts. A block without the field admits none.
18704
+ */
18705
+ function sectionBackgroundPaintsOfFields(fields) {
18706
+ const sectionStyles = fields.find((field) => field.id === "_sectionStyles");
18707
+ if (!sectionStyles || sectionStyles.type !== "modal") return [];
18708
+ const background = sectionStyles.schema.fields.find((field) => field.id === "background");
18709
+ if (!background || background.type !== "tabGroup") return [];
18710
+ const tabIds = new Set(background.tabs.map((tab) => tab.id));
18711
+ return [
18712
+ "color",
18713
+ "gradient",
18714
+ "image"
18715
+ ].filter((paint) => tabIds.has(paint));
18716
+ }
18717
+ /** Pins a designed capability's section background paints to the block's manifest. */
18718
+ function withManifestSectionBackgroundPaints(declaration, fields) {
18719
+ if (declaration.kind !== "capability") return declaration;
18720
+ return {
18721
+ kind: "capability",
18722
+ capability: {
18723
+ ...declaration.capability,
18724
+ sectionBackgroundPaints: sectionBackgroundPaintsOfFields(fields)
18725
+ }
18726
+ };
18727
+ }
18676
18728
  function declareNoBlockDesignCapability(reason) {
18677
18729
  return {
18678
18730
  kind: "none",
@@ -20535,15 +20587,11 @@ function resolveContextualButtonStyles(background, foreground, context, options)
20535
20587
  if (!paletteCache.has(palette)) paletteCache.set(palette, surfaceCache);
20536
20588
  const cached = surfaceCache.get(cacheKey);
20537
20589
  if (cached) return cached;
20538
- const styles = Object.fromEntries(VARIANT_ROLES.flatMap((role) => {
20539
- const resolution = resolveContextualButtonRole({
20540
- role,
20541
- buttonSystem,
20542
- palette,
20543
- surface: surface.surface
20544
- });
20545
- return Object.entries(contextualButtonSurfaceStyles(resolution));
20546
- }));
20590
+ const styles = knownSurfaceButtonContextStyles({
20591
+ surface: surface.surface,
20592
+ palette,
20593
+ buttonSystem
20594
+ });
20547
20595
  surfaceCache.set(cacheKey, styles);
20548
20596
  return styles;
20549
20597
  }
@@ -27231,6 +27279,20 @@ const footerEngagement = stack({
27231
27279
  ...footerSpamProtectionBinding
27232
27280
  }), [], when("module.engagement.kind", { equals: "mailing-list" }))
27233
27281
  ], when("module.kind", { equals: "engagement" }));
27282
+ const platformAttribution = el("div", {
27283
+ className: "rb-caption",
27284
+ "data-site-attribution": "macadamia"
27285
+ }, [
27286
+ text({ as: "span" }, bind("module.lead")),
27287
+ text({
27288
+ as: "span",
27289
+ value: " "
27290
+ }),
27291
+ link({
27292
+ href: { $bind: { from: "module.link.href" } },
27293
+ className: "footer-nav-link rb-caption transition-theme-standard"
27294
+ }, [text({ as: "span" }, bind("module.link.label"))])
27295
+ ], when("module.kind", { equals: "attribution" }));
27234
27296
  const footerGroup = stack({
27235
27297
  gap: "md",
27236
27298
  align: "stretch",
@@ -27260,6 +27322,7 @@ const footerGroup = stack({
27260
27322
  hours,
27261
27323
  socials,
27262
27324
  footerEngagement,
27325
+ platformAttribution,
27263
27326
  stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
27264
27327
  stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
27265
27328
  ], repeat("group.modules", "module"))], repeat("region.groups", "group"));
@@ -29198,68 +29261,115 @@ const RichTextDocSchema = z.object({
29198
29261
  content: z.array(TipTapNodeSchema)
29199
29262
  }).strict();
29200
29263
  //#endregion
29201
- //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
29202
- const bookingDepositRefundPolicySchema$1 = z.enum(["refundable", "non_refundable"]);
29203
- const bookingInstalmentPlanSchema$1 = z.union([
29204
- z.object({
29205
- kind: z.literal("deposit_plus_one_remainder"),
29206
- depositAmountCents: z.number().int().min(0),
29207
- depositRefundability: bookingDepositRefundPolicySchema$1,
29208
- remainderDueCount: z.number().int().positive(),
29209
- intervalUnit: z.enum([
29210
- "day",
29211
- "week",
29212
- "month"
29213
- ])
29214
- }),
29215
- z.object({
29216
- kind: z.literal("deposit_plus_scheduled_instalments"),
29217
- depositAmountCents: z.number().int().min(0),
29218
- depositRefundability: bookingDepositRefundPolicySchema$1,
29219
- instalmentCount: z.number().int().positive(),
29220
- intervalCount: z.number().int().positive(),
29221
- intervalUnit: z.enum([
29222
- "day",
29223
- "week",
29224
- "month"
29225
- ])
29226
- }),
29227
- z.object({
29228
- kind: z.literal("equal_scheduled_instalments"),
29229
- instalmentCount: z.number().int().positive(),
29230
- intervalCount: z.number().int().positive(),
29231
- intervalUnit: z.enum([
29232
- "day",
29233
- "week",
29234
- "month"
29235
- ])
29236
- })
29264
+ //#region ../core/src/booking-payment-schemas.ts
29265
+ const stripObject = (shape) => z.object(shape);
29266
+ const strictObject = (shape) => z.strictObject(shape);
29267
+ const depositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
29268
+ const intervalUnitSchema = z.enum([
29269
+ "day",
29270
+ "week",
29271
+ "month"
29237
29272
  ]);
29238
- const bookingFlexibleBalanceDueDateRuleSchema$1 = z.union([z.object({
29239
- kind: z.literal("relative_to_start_date"),
29240
- daysBeforeStart: z.number().int().positive()
29241
- }), z.object({
29242
- kind: z.literal("fixed_calendar_date"),
29243
- dueAt: z.string().datetime()
29244
- })]);
29245
- const bookingFlexibleBalanceConfigSchema$1 = z.object({
29246
- upfrontAmountCents: z.number().int().min(0),
29247
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
29248
- depositRefundability: bookingDepositRefundPolicySchema$1
29249
- });
29250
- const blockBookingPaymentCollectionOptionSchema = z.union([
29251
- z.object({ kind: z.literal("upfront") }),
29252
- z.object({ kind: z.literal("deferred_manual") }),
29253
- z.object({
29254
- kind: z.literal("instalment_plan"),
29255
- plan: bookingInstalmentPlanSchema$1
29256
- }),
29257
- z.object({
29258
- kind: z.literal("flexible_balance"),
29259
- config: bookingFlexibleBalanceConfigSchema$1
29260
- })
29261
- ]);
29262
- const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
29273
+ const nonNegativeIntegerSchema = z.number().int().nonnegative();
29274
+ const positiveIntegerSchema = z.number().int().positive();
29275
+ function createInstalmentPlanSchema(object) {
29276
+ return z.discriminatedUnion("kind", [
29277
+ object({
29278
+ kind: z.literal("deposit_plus_one_remainder"),
29279
+ depositAmountCents: nonNegativeIntegerSchema,
29280
+ depositRefundability: depositRefundPolicySchema,
29281
+ remainderDueCount: positiveIntegerSchema,
29282
+ intervalUnit: intervalUnitSchema
29283
+ }),
29284
+ object({
29285
+ kind: z.literal("deposit_plus_scheduled_instalments"),
29286
+ depositAmountCents: nonNegativeIntegerSchema,
29287
+ depositRefundability: depositRefundPolicySchema,
29288
+ instalmentCount: positiveIntegerSchema,
29289
+ intervalCount: positiveIntegerSchema,
29290
+ intervalUnit: intervalUnitSchema
29291
+ }),
29292
+ object({
29293
+ kind: z.literal("equal_scheduled_instalments"),
29294
+ instalmentCount: positiveIntegerSchema,
29295
+ intervalCount: positiveIntegerSchema,
29296
+ intervalUnit: intervalUnitSchema
29297
+ })
29298
+ ]);
29299
+ }
29300
+ function createFlexibleBalanceSchemas(object) {
29301
+ const dueDateRule = z.discriminatedUnion("kind", [object({
29302
+ kind: z.literal("relative_to_start_date"),
29303
+ daysBeforeStart: positiveIntegerSchema
29304
+ }), object({
29305
+ kind: z.literal("fixed_calendar_date"),
29306
+ dueAt: z.string().datetime()
29307
+ })]);
29308
+ return {
29309
+ dueDateRule,
29310
+ config: object({
29311
+ upfrontAmountCents: nonNegativeIntegerSchema,
29312
+ dueDateRule,
29313
+ depositRefundability: depositRefundPolicySchema
29314
+ })
29315
+ };
29316
+ }
29317
+ const paymentOptionKindsMessages = {
29318
+ no_options: "Choose at least one way for customers to pay.",
29319
+ duplicate_kind: "Choose each payment option only once.",
29320
+ incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
29321
+ };
29322
+ function buildBookingPaymentOptionSchemas(object) {
29323
+ const instalmentPlan = createInstalmentPlanSchema(object);
29324
+ const flexibleBalance = createFlexibleBalanceSchemas(object);
29325
+ const paymentCollectionOption = z.discriminatedUnion("kind", [
29326
+ object({ kind: z.literal("upfront") }),
29327
+ object({ kind: z.literal("deferred_manual") }),
29328
+ object({
29329
+ kind: z.literal("instalment_plan"),
29330
+ plan: instalmentPlan
29331
+ }),
29332
+ object({
29333
+ kind: z.literal("flexible_balance"),
29334
+ config: flexibleBalance.config
29335
+ })
29336
+ ]);
29337
+ const paymentTerms = object({ allowedOptions: z.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
29338
+ const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
29339
+ if (!result.ok) ctx.addIssue({
29340
+ code: "custom",
29341
+ path: ["allowedOptions"],
29342
+ message: paymentOptionKindsMessages[result.error]
29343
+ });
29344
+ });
29345
+ const paymentOptionsChoice = z.discriminatedUnion("source", [z.strictObject({ source: z.literal("default") }), z.strictObject({
29346
+ source: z.literal("custom"),
29347
+ paymentTerms
29348
+ })]);
29349
+ return {
29350
+ depositRefundPolicy: depositRefundPolicySchema,
29351
+ instalmentPlan,
29352
+ flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
29353
+ flexibleBalanceConfig: flexibleBalance.config,
29354
+ paymentCollectionOption,
29355
+ paymentTerms,
29356
+ paymentOptionsChoice
29357
+ };
29358
+ }
29359
+ function createBookingPaymentOptionSchemas(mode) {
29360
+ return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
29361
+ }
29362
+ const bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
29363
+ bookingPaymentOptionSchemas.depositRefundPolicy;
29364
+ bookingPaymentOptionSchemas.instalmentPlan;
29365
+ bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
29366
+ bookingPaymentOptionSchemas.flexibleBalanceConfig;
29367
+ bookingPaymentOptionSchemas.paymentCollectionOption;
29368
+ const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
29369
+ bookingPaymentOptionSchemas.paymentOptionsChoice;
29370
+ //#endregion
29371
+ //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
29372
+ const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
29263
29373
  //#endregion
29264
29374
  //#region ../blocks/src/system/blocks/shared/bookingConsent.ts
29265
29375
  const blockBookingConsentSchema = z.object({
@@ -29861,7 +29971,7 @@ const publicPassProductCollectionSchema = z.object({ passes: z.array(publicPassP
29861
29971
  /**
29862
29972
  * Public membership product for shop display
29863
29973
  */
29864
- const publicMembershipProductSchema = z.object({
29974
+ const publicMembershipProductFields = {
29865
29975
  id: z.string(),
29866
29976
  name: z.string(),
29867
29977
  description: z.string().nullable(),
@@ -29870,7 +29980,16 @@ const publicMembershipProductSchema = z.object({
29870
29980
  billingInterval: z.enum(["month", "year"]),
29871
29981
  eligibleCategoryIds: z.array(z.string()),
29872
29982
  eligibleCategoryNames: z.array(z.string())
29983
+ };
29984
+ const purchasablePublicMembershipProductSchema = z.object({
29985
+ ...publicMembershipProductFields,
29986
+ purchaseAvailability: z.literal("purchasable")
29873
29987
  });
29988
+ const publicMembershipProductSchema = z.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z.object({
29989
+ ...publicMembershipProductFields,
29990
+ purchaseAvailability: z.literal("display_only"),
29991
+ unavailabilityReason: z.literal("online_payments_unavailable")
29992
+ })]);
29874
29993
  const publicMembershipProductCollectionSchema = z.object({ memberships: z.array(publicMembershipProductSchema) });
29875
29994
  //#endregion
29876
29995
  //#region ../blocks/src/system/blocks/event-registration.shared.ts
@@ -30070,14 +30189,18 @@ const calendarTabViewsSchema = z.enum([
30070
30189
  * @param needsPaymentStep - Whether user must complete payment method selection
30071
30190
  * @returns Array of wizard steps to display
30072
30191
  */
30073
- function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
30192
+ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep, paymentActive = false) {
30074
30193
  const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : [
30075
30194
  "select-event",
30076
30195
  "select-tickets",
30077
30196
  "enter-details"
30078
30197
  ];
30079
30198
  if (!needsPaymentStep) return baseSteps;
30080
- return [...baseSteps, "select-payment"];
30199
+ return paymentActive ? [
30200
+ ...baseSteps,
30201
+ "select-payment",
30202
+ "payment"
30203
+ ] : [...baseSteps, "select-payment"];
30081
30204
  }
30082
30205
  //#endregion
30083
30206
  //#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
@@ -30196,6 +30319,7 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
30196
30319
  "Date",
30197
30320
  "Tickets",
30198
30321
  "Details",
30322
+ "Payment options",
30199
30323
  "Payment"
30200
30324
  ];
30201
30325
  const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
@@ -30338,12 +30462,13 @@ function shellLabelForRegistrationStep(step, events) {
30338
30462
  switch (step) {
30339
30463
  case "select-event": return isDateSelection(events) ? "Date" : "Event";
30340
30464
  case "select-tickets": return "Tickets";
30465
+ case "fully-booked":
30341
30466
  case "enter-details": return "Details";
30342
- case "select-payment": return "Payment";
30467
+ case "select-payment": return "Payment options";
30468
+ case "payment": return "Payment";
30343
30469
  case "error":
30344
30470
  case "success":
30345
30471
  case "submitting":
30346
- case "redirecting":
30347
30472
  case "verifying-payment":
30348
30473
  case "verifying-timeout":
30349
30474
  case "payment-status":
@@ -30355,7 +30480,7 @@ function isDateSelection(events) {
30355
30480
  return Boolean(events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId));
30356
30481
  }
30357
30482
  function buildEventRegistrationShellBodyText(stepLabels) {
30358
- if (stepLabels.includes("Payment")) return "Preparing tickets, details, and payment options.";
30483
+ if (stepLabels.includes("Payment options")) return "Preparing tickets, details, and payment options.";
30359
30484
  if (stepLabels[0] === "Tickets") return "Preparing tickets and booking details.";
30360
30485
  return "Preparing dates, tickets, and booking details.";
30361
30486
  }
@@ -32330,7 +32455,8 @@ const eventCalendarLayout = [styledSection({
32330
32455
  fallback: false
32331
32456
  } },
32332
32457
  banded: { $bind: {
32333
- from: "content.banded",
32458
+ from: "content",
32459
+ transforms: [{ id: "events.calendarBanded" }],
32334
32460
  fallback: false
32335
32461
  } }
32336
32462
  }))]
@@ -35603,7 +35729,7 @@ function buildPassesMembershipsDisplay(options) {
35603
35729
  product: pass
35604
35730
  } : {
35605
35731
  kind: "unavailable",
35606
- label: "Online purchasing coming soon."
35732
+ label: "Online purchasing is unavailable."
35607
35733
  }
35608
35734
  };
35609
35735
  });
@@ -35613,7 +35739,14 @@ function buildPassesMembershipsDisplay(options) {
35613
35739
  description: options.showDescriptions ? membership.description : null,
35614
35740
  priceLabel: formatCommercePrice(membership.price, membership.currency),
35615
35741
  intervalLabel: formatInterval(membership.billingInterval),
35616
- actionLabel: options.membershipActionLabel
35742
+ action: membership.purchaseAvailability === "purchasable" ? {
35743
+ kind: "purchase",
35744
+ label: options.membershipActionLabel,
35745
+ product: membership
35746
+ } : {
35747
+ kind: "unavailable",
35748
+ label: "Online purchasing is unavailable."
35749
+ }
35617
35750
  }));
35618
35751
  return {
35619
35752
  kind: "passes-memberships",
@@ -35833,7 +35966,14 @@ const membershipCardDisplaySchema = z.object({
35833
35966
  description: z.string().nullable(),
35834
35967
  priceLabel: z.string(),
35835
35968
  intervalLabel: z.string(),
35836
- actionLabel: z.string()
35969
+ action: z.discriminatedUnion("kind", [z.object({
35970
+ kind: z.literal("purchase"),
35971
+ label: z.string(),
35972
+ product: purchasablePublicMembershipProductSchema
35973
+ }), z.object({
35974
+ kind: z.literal("unavailable"),
35975
+ label: z.string()
35976
+ })])
35837
35977
  });
35838
35978
  const passesMembershipsDisplaySchema = z.object({
35839
35979
  kind: z.literal("passes-memberships"),
@@ -38471,7 +38611,7 @@ function withDesignCapability(blockKind, definition, designCapability, designMet
38471
38611
  if (definition.manifest.name !== blockKind) throw new Error(`System block kind mismatch: expected ${blockKind}, received ${definition.manifest.name}.`);
38472
38612
  return {
38473
38613
  ...definition,
38474
- designCapability,
38614
+ designCapability: withManifestSectionBackgroundPaints(designCapability, definition.manifest.fields),
38475
38615
  designMetadata,
38476
38616
  manifest: {
38477
38617
  ...definition.manifest,
@@ -39524,6 +39664,16 @@ const builtinTransformDefinitions = [
39524
39664
  return resolveCalendarReadProfile(asPartialObject(value) ?? {});
39525
39665
  }
39526
39666
  },
39667
+ {
39668
+ id: "events.calendarBanded",
39669
+ kind: "formatter",
39670
+ summary: "Paint the week-board band only on a section with no background of its own",
39671
+ run(value) {
39672
+ const content = asPartialObject(value) ?? {};
39673
+ const sectionStyles = asPartialObject(content._sectionStyles);
39674
+ return content.banded === true && parseBackgroundContent(sectionStyles?.background) === null;
39675
+ }
39676
+ },
39527
39677
  ...formattingTransforms,
39528
39678
  ...layoutTransforms,
39529
39679
  ...chromeLogoTransforms,
@@ -40180,6 +40330,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
40180
40330
  "refund_failed"
40181
40331
  ];
40182
40332
  const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
40333
+ "refund_blocked_by_live_payment_terms",
40183
40334
  ...CANONICAL_REFUND_PLANNER_ERROR_CODES,
40184
40335
  "payment_intent_not_found",
40185
40336
  "stripe_error",
@@ -40195,6 +40346,7 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
40195
40346
  //#endregion
40196
40347
  //#region ../api/src/bookingRefundOutcomes.ts
40197
40348
  const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
40349
+ "refund_blocked_by_live_payment_terms",
40198
40350
  "missing_amount",
40199
40351
  "invalid_amount",
40200
40352
  "amount_exceeds_remaining",
@@ -40557,68 +40709,6 @@ function collectText(node) {
40557
40709
  }
40558
40710
  z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
40559
40711
  //#endregion
40560
- //#region ../api/src/bookingPaymentTermSchemas.ts
40561
- const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
40562
- const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
40563
- z.object({
40564
- kind: z.literal("deposit_plus_one_remainder"),
40565
- depositAmountCents: z.number().int().nonnegative(),
40566
- depositRefundability: bookingDepositRefundPolicySchema,
40567
- remainderDueCount: z.number().int().positive(),
40568
- intervalUnit: z.enum([
40569
- "day",
40570
- "week",
40571
- "month"
40572
- ])
40573
- }),
40574
- z.object({
40575
- kind: z.literal("deposit_plus_scheduled_instalments"),
40576
- depositAmountCents: z.number().int().nonnegative(),
40577
- depositRefundability: bookingDepositRefundPolicySchema,
40578
- instalmentCount: z.number().int().positive(),
40579
- intervalCount: z.number().int().positive(),
40580
- intervalUnit: z.enum([
40581
- "day",
40582
- "week",
40583
- "month"
40584
- ])
40585
- }),
40586
- z.object({
40587
- kind: z.literal("equal_scheduled_instalments"),
40588
- instalmentCount: z.number().int().positive(),
40589
- intervalCount: z.number().int().positive(),
40590
- intervalUnit: z.enum([
40591
- "day",
40592
- "week",
40593
- "month"
40594
- ])
40595
- })
40596
- ]);
40597
- const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
40598
- kind: z.literal("relative_to_start_date"),
40599
- daysBeforeStart: z.number().int().positive()
40600
- }), z.object({
40601
- kind: z.literal("fixed_calendar_date"),
40602
- dueAt: z.string().datetime()
40603
- })]);
40604
- const bookingFlexibleBalanceConfigSchema = z.object({
40605
- upfrontAmountCents: z.number().int().nonnegative(),
40606
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
40607
- depositRefundability: bookingDepositRefundPolicySchema
40608
- });
40609
- z.discriminatedUnion("kind", [
40610
- z.object({ kind: z.literal("upfront") }),
40611
- z.object({ kind: z.literal("deferred_manual") }),
40612
- z.object({
40613
- kind: z.literal("instalment_plan"),
40614
- plan: bookingInstalmentPlanSchema
40615
- }),
40616
- z.object({
40617
- kind: z.literal("flexible_balance"),
40618
- config: bookingFlexibleBalanceConfigSchema
40619
- })
40620
- ]);
40621
- //#endregion
40622
40712
  //#region ../api/src/navigationMenuValidation.ts
40623
40713
  function hasChildren(item) {
40624
40714
  return Array.isArray(item.children) && item.children.length > 0;