@riverbankcms/sdk 0.151.0 → 0.153.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 (316) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/{EventEmbeddedCheckoutStep-BBHbM22D.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +10 -9
  3. package/dist/{PreviewEditorSidebar-BHplI9HE.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -3
  4. package/dist/{PreviewEditorUI-DuyN8nsD.mjs → PreviewEditorUI-ORkVZhfu.mjs} +5 -4
  5. package/dist/{SdkPreviewModeRuntime-CR5ypwxJ.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +341 -164
  6. package/dist/{SiteChromeCustomizeContext-D5t6joF_.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +27124 -39230
  7. package/dist/ThemedButton-X2UxhW6F.mjs +16525 -0
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
  10. package/dist/_dts/api/src/bookingOperations.d.ts +5 -3
  11. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +4 -0
  12. package/dist/_dts/api/src/communications.d.ts +19 -5
  13. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  14. package/dist/_dts/api/src/index.d.ts +1 -1
  15. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  16. package/dist/_dts/api/src/navigation/types.d.ts +7 -0
  17. package/dist/_dts/api/src/navigation.d.ts +1 -1
  18. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +10 -1
  19. package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
  20. package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
  21. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  22. package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
  23. package/dist/_dts/api/src/teamMembers.d.ts +2 -27
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  27. package/dist/_dts/blocks/src/index.d.ts +2 -0
  28. package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
  29. package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
  30. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +1 -0
  31. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
  32. package/dist/_dts/blocks/src/primitives/content/utils/sanitizeHref.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +4 -4
  34. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
  35. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +212 -804
  36. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +7 -2
  37. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
  39. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
  41. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
  43. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
  44. package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/helpers/normalizeMailingListBlockContent.d.ts +2 -0
  46. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
  47. package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
  48. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
  49. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
  50. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
  51. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  52. package/dist/_dts/blocks/src/system/registry.d.ts +14 -2
  53. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -5
  54. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +2 -0
  55. package/dist/_dts/blocks/src/system/runtime/api/schemas/events.d.ts +971 -0
  56. package/dist/_dts/blocks/src/system/runtime/api/schemas/waitlist-claims.d.ts +42 -0
  57. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +10 -2
  58. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +10 -136
  59. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
  60. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
  61. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSubmission.state.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +5 -1
  64. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  65. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
  68. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +51 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +6 -2
  70. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.hooks.d.ts +6 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.state.d.ts +7 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.d.ts +42 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +4 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +19 -9
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +4 -2
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -9
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +4 -2
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +5 -4
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.d.ts +1 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +2 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SingleTicketEntitlementNote.d.ts +11 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +2 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.d.ts +31 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingEntry.d.ts +154 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingFocus.d.ts +12 -0
  90. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -2
  91. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +9 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/finishedBooking.d.ts +77 -0
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +0 -1
  95. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/offeringNoun.d.ts +12 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +2 -1
  97. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +33 -1
  98. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +11 -0
  99. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDisplay.d.ts +31 -0
  100. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDraft.state.d.ts +60 -0
  101. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  102. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +58 -10
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +17 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +23 -7
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useBookingBarFacts.d.ts +12 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationRecoveryRequest.d.ts +3 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +4 -0
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +4 -11
  110. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +1563 -31
  111. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +2 -12
  112. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +147 -4
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +50 -2
  114. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +6 -5
  115. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +85 -15
  116. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +53 -8
  117. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
  118. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/MonthLookView.d.ts +10 -3
  119. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +290 -882
  120. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
  121. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
  122. package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
  123. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +5 -1
  124. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +37 -1
  125. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +9 -2
  126. package/dist/_dts/blocks/src/system/runtime/shared/components/PaymentChoiceRows.d.ts +28 -0
  127. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +6 -8
  128. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -2
  129. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  130. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +9 -12
  131. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +15 -0
  132. package/dist/_dts/blocks/src/system/runtime/shared/utils/themePortalRoot.d.ts +10 -15
  133. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -0
  134. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +2 -0
  135. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +2 -0
  136. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +6 -0
  137. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +14 -14
  138. package/dist/_dts/commerce/src/purchase/confirmationPayment.d.ts +65 -0
  139. package/dist/_dts/commerce/src/purchase/confirmationPaymentSchema.d.ts +66 -0
  140. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  141. package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +8 -0
  142. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  143. package/dist/_dts/content-model/src/templates/defaults.d.ts +2 -2
  144. package/dist/_dts/core/src/appointment-booking-terms.d.ts +20 -0
  145. package/dist/_dts/core/src/booking-payment-schemas.d.ts +70 -0
  146. package/dist/_dts/core/src/branded.d.ts +0 -2
  147. package/dist/_dts/core/src/demo-claim-access.d.ts +1 -1
  148. package/dist/_dts/core/src/demo-claim-readiness.d.ts +18 -0
  149. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +1 -1
  150. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +1 -1
  151. package/dist/_dts/core/src/index.d.ts +4 -0
  152. package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
  153. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
  154. package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
  155. package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
  156. package/dist/_dts/core/src/mailing-list-targeting-availability.d.ts +68 -0
  157. package/dist/_dts/core/src/mailing-list-targeting.d.ts +11 -1
  158. package/dist/_dts/core/src/ticket-quantity.d.ts +13 -0
  159. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +106 -36
  160. package/dist/_dts/editor/src/chrome/chromeLayers.d.ts +7 -0
  161. package/dist/_dts/editor/src/index.d.ts +1 -0
  162. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  163. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  164. package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
  165. package/dist/_dts/editor-blocks/src/widgets/link/LinkAddressInput.d.ts +8 -0
  166. package/dist/_dts/editor-blocks/src/widgets/link/LinkContentList.d.ts +12 -0
  167. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +5 -1
  168. package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +3 -3
  169. package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +8 -2
  170. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +4 -3
  171. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
  172. package/dist/_dts/editor-blocks/src/widgets/link/draft.d.ts +44 -0
  173. package/dist/_dts/editor-blocks/src/widgets/link/presentation.d.ts +13 -0
  174. package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +14 -0
  175. package/dist/_dts/editor-blocks/src/widgets/link/useRoutableContent.d.ts +2 -0
  176. package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +5 -4
  177. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +1 -1
  178. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +13 -8
  179. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
  180. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
  181. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -3
  182. package/dist/_dts/media-core/src/index.d.ts +5 -0
  183. package/dist/_dts/media-core/src/media.d.ts +406 -0
  184. package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
  185. package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
  186. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
  187. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  188. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
  189. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
  190. package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
  191. package/dist/_dts/media-core/src/storageObjectKey.d.ts +12 -0
  192. package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
  193. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  194. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
  195. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
  196. package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
  197. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
  198. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
  199. package/dist/_dts/media-editor/src/types.d.ts +1 -1
  200. package/dist/_dts/media-editor/src/utils.d.ts +0 -1
  201. package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
  202. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
  203. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
  204. package/dist/_dts/media-react/src/hooks/useSupabaseMediaUploader.d.ts +1 -1
  205. package/dist/_dts/media-react/src/internal/supabaseResumableUpload.d.ts +13 -0
  206. package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
  207. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
  208. package/dist/_dts/preview-next/src/client/preview/previewModeRootAttribute.d.ts +11 -0
  209. package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
  210. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  211. package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
  212. package/dist/_dts/sdk/src/index.d.ts +1 -0
  213. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +0 -1
  214. package/dist/_dts/sdk/src/rendering/image.d.ts +14 -4
  215. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -2
  216. package/dist/_dts/sdk/src/rendering/link.d.ts +5 -0
  217. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
  218. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  219. package/dist/_dts/sdk/src/version.d.ts +1 -1
  220. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  221. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +3 -3
  222. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
  223. package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
  224. package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
  225. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  226. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  227. package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
  228. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
  229. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
  230. package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
  231. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  232. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
  233. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  234. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  235. package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
  236. package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
  237. package/dist/client/BookingMailingListNote-DrchYW1m.mjs +386 -0
  238. package/dist/client/{CardListItem-ZDLYh6dL.mjs → CardListItem-CC_GVmF6.mjs} +5 -5
  239. package/dist/client/CheckIcon-CpyXr-Kg.mjs +35 -0
  240. package/dist/client/{CheckboxChoice-M-3HycLw.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
  241. package/dist/client/{DemoBookingPortalAccess-BMtvPTWE.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +85 -85
  242. package/dist/client/{EventCombined.client-DUm_DOxW.mjs → EventCombined.client-DyN0v0Xk.mjs} +7 -9
  243. package/dist/client/{EventEmbeddedCheckoutStep-DsNNzgRm.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +11 -10
  244. package/dist/client/{EventListing.client-DjNYGUVm.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
  245. package/dist/client/{LeafletStaticMap-DuFiOHq_.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
  246. package/dist/client/{ModalShell-CqkBvBIC.mjs → ModalShell-BXzucfR6.mjs} +83 -12
  247. package/dist/client/{RichText-LjPCUGGi.mjs → RichText-C1fIXBzA.mjs} +50 -34
  248. package/dist/client/{ThemedButton-DZKjtaDD.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
  249. package/dist/client/{accordion-Qe--SILD.mjs → accordion-DCDVWSye.mjs} +1 -1
  250. package/dist/client/{bookingForm-3BCl4g_f.mjs → bookingForm-BJ3C4GlM.mjs} +321 -154
  251. package/dist/client/bookings.mjs +118607 -22429
  252. package/dist/client/{carousel-h2YjKOS2.mjs → carousel-BSCBhfHY.mjs} +2 -2
  253. package/dist/client/{carousel.client-BLrd4hmY.mjs → carousel.client-GEtOGsxo.mjs} +46 -41
  254. package/dist/client/{cart-5NeiigVd.mjs → cart-Yv-aAtck.mjs} +3 -3
  255. package/dist/client/{checkout-G4UWjOEw.mjs → checkout-B9xDkl30.mjs} +3 -3
  256. package/dist/client/client.mjs +37511 -33793
  257. package/dist/client/{context-GK4-AVAh.mjs → context-BOGe3rIA.mjs} +275 -10
  258. package/dist/client/{eventCalendar-Prw3Yo_L.mjs → eventCalendar-D6M0T9hs.mjs} +18 -17
  259. package/dist/client/{eventCombined-BUugi6__.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
  260. package/dist/client/{eventDetails-CBHUda-R.mjs → eventDetails-f_FhV4O8.mjs} +3 -4
  261. package/dist/client/{eventListing-CQeG45Dg.mjs → eventListing-WLkfAROh.mjs} +4 -4
  262. package/dist/client/{eventRegistration-Dif3p3oJ.mjs → eventRegistration-D3ejfLvW.mjs} +2209 -2144
  263. package/dist/client/{form-Cf0WMtfG.mjs → form-D5Or2Jyu.mjs} +5 -6
  264. package/dist/client/{headerSection-Bqdr3JWp.mjs → headerSection-hWgnv27V.mjs} +9 -9
  265. package/dist/client/hooks.mjs +17278 -16106
  266. package/dist/client/{locationMap-BVvPou4O.mjs → locationMap-Di1K0O2S.mjs} +3 -4
  267. package/dist/client/{media-47fcnhzD.mjs → media-D29-F1u_.mjs} +183 -362
  268. package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
  269. package/dist/client/{newsletterForm-Cx-1dnic.mjs → newsletterForm-CwxcwTNO.mjs} +5 -5
  270. package/dist/client/{productDetail-DaUMaJYk.mjs → productDetail-BLSnhPdA.mjs} +3 -3
  271. package/dist/client/{productList-BKQlWEKE.mjs → productList-oGytONOX.mjs} +3 -3
  272. package/dist/client/{propsDecoder-DO5iXphQ.mjs → propsDecoder-lf_dTeZS.mjs} +18659 -14473
  273. package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
  274. package/dist/client/rendering/client.mjs +58971 -55722
  275. package/dist/client/rendering/islands.mjs +20 -23
  276. package/dist/client/rendering.mjs +41610 -37917
  277. package/dist/client/{routeIslandApiConfig-BNm0Z3-g.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
  278. package/dist/client/{shop-D7ytcFBC.mjs → shop-BQ3bR7fA.mjs} +16 -14
  279. package/dist/client/{shop-commerce-D68-hHy2.mjs → shop-commerce-DDPll6ZC.mjs} +9 -9
  280. package/dist/client/{shop-commerce-store-Cu7X2lyu.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
  281. package/dist/client/{shopShared-D12rxE69.mjs → shopShared-BylM9jh1.mjs} +5 -5
  282. package/dist/client/themePortalRoot-DS92SRVZ.mjs +47 -0
  283. package/dist/client/{TerminalPanel-DOTSUCO0.mjs → useDiscountCodeUi-B1Puub2v.mjs} +60 -77
  284. package/dist/client/{useEventPagination-jgKa67KV.mjs → useEventPagination-BBhkmQaT.mjs} +6 -8
  285. package/dist/preview-next/before-render.mjs +96 -4
  286. package/dist/preview-next/client/runtime.mjs +3 -3
  287. package/dist/preview-next/keepAlive.mjs +7 -0
  288. package/dist/preview-next/middleware.mjs +7 -0
  289. package/dist/{sdk-runtime-4cCWO_3i.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
  290. package/dist/server/components.mjs +21820 -19902
  291. package/dist/server/config-validation.mjs +1786 -642
  292. package/dist/server/config.mjs +1786 -642
  293. package/dist/server/data.mjs +17220 -16076
  294. package/dist/server/index.mjs +234 -2
  295. package/dist/server/next.mjs +22505 -20528
  296. package/dist/server/page-converter.mjs +7587 -6572
  297. package/dist/server/prebuild.mjs +1 -1
  298. package/dist/server/rendering/server.mjs +20487 -19044
  299. package/dist/server/rendering.mjs +21844 -19901
  300. package/dist/server/routing.mjs +19186 -17961
  301. package/dist/server/server.mjs +1874 -695
  302. package/dist/server/theme-bridge.mjs +1371 -914
  303. package/dist/server/theme.mjs +154 -37
  304. package/dist/{spinner-tSdG9YvG.mjs → spinner-BYM-Y81w.mjs} +1 -1
  305. package/dist/styles/index.css +1088 -721
  306. package/package.json +1 -1
  307. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +0 -15
  308. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +0 -22
  309. package/dist/_dts/blocks/src/system/runtime/shared/components/SelectableOptionCard.d.ts +0 -30
  310. package/dist/client/BookingMailingListNote-DlDSs5Vm.mjs +0 -567
  311. package/dist/client/colorStyles-DTunOThj.mjs +0 -1316
  312. package/dist/client/pricing-CMD0kADd.mjs +0 -314
  313. package/dist/client/result-DRW7JWXz.mjs +0 -30
  314. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
  315. package/dist/client/themePortalRoot-AGs4cE7t.mjs +0 -30
  316. package/dist/spinner-BL3kW9Uh.mjs +0 -803
@@ -1,803 +0,0 @@
1
- "use client";
2
- import "react";
3
- import { jsx, jsxs } from "react/jsx-runtime";
4
- import { z } from "zod";
5
- //#region \0rolldown/runtime.js
6
- var __create = Object.create;
7
- var __defProp = Object.defineProperty;
8
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
- var __getOwnPropNames = Object.getOwnPropertyNames;
10
- var __getProtoOf = Object.getPrototypeOf;
11
- var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
13
- var __exportAll = (all, no_symbols) => {
14
- let target = {};
15
- for (var name in all) __defProp(target, name, {
16
- get: all[name],
17
- enumerable: true
18
- });
19
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
20
- return target;
21
- };
22
- var __copyProps = (to, from, except, desc) => {
23
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
24
- key = keys[i];
25
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
26
- get: ((k) => from[k]).bind(null, key),
27
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
28
- });
29
- }
30
- return to;
31
- };
32
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
33
- value: mod,
34
- enumerable: true
35
- }) : target, mod));
36
- //#endregion
37
- //#region ../core/src/result.ts
38
- function ok(value) {
39
- return {
40
- ok: true,
41
- value
42
- };
43
- }
44
- function err(error) {
45
- return {
46
- ok: false,
47
- error
48
- };
49
- }
50
- //#endregion
51
- //#region ../core/src/date-math.ts
52
- function addDaysToDate(date, dayCount) {
53
- const next = new Date(date);
54
- next.setUTCDate(next.getUTCDate() + dayCount);
55
- return next;
56
- }
57
- function addDaysToIso(isoString, dayCount) {
58
- const date = new Date(isoString);
59
- if (!Number.isFinite(date.getTime())) return isoString;
60
- return addDaysToDate(date, dayCount).toISOString();
61
- }
62
- function subtractDaysFromIso(isoString, dayCount) {
63
- return addDaysToIso(isoString, -dayCount);
64
- }
65
- //#endregion
66
- //#region ../core/src/currency-format.ts
67
- const CURRENCY_CODE_INPUT_PATTERN = /^[A-Za-z]{3}$/;
68
- /** Parse + normalize a currency code, or return null if it isn't a 3-letter code. */
69
- function parseCurrencyCode(value) {
70
- return CURRENCY_CODE_INPUT_PATTERN.test(value) ? value.toUpperCase() : null;
71
- }
72
- const CURRENCY_LOCALE_BY_CODE = {
73
- USD: "en-US",
74
- GBP: "en-GB",
75
- EUR: "de-DE",
76
- AUD: "en-AU",
77
- CAD: "en-CA",
78
- NZD: "en-NZ",
79
- JPY: "ja-JP",
80
- CNY: "zh-CN",
81
- CHF: "de-CH"
82
- };
83
- function resolveCurrencyLocale(currencyCode, override) {
84
- return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
85
- }
86
- function fractionDigitsFor(decimals, exactFormatter) {
87
- switch (decimals) {
88
- case "exact": return {};
89
- case "auto": return {
90
- minimumFractionDigits: 0,
91
- maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
92
- };
93
- case "whole": return {
94
- minimumFractionDigits: 0,
95
- maximumFractionDigits: 0
96
- };
97
- }
98
- }
99
- /**
100
- * The single currency-amount formatter for the product: minor units in,
101
- * localized string out.
102
- *
103
- * The locale is derived from the currency by default, so output is deterministic
104
- * across server and client (no SSR/hydration mismatch). All other money
105
- * formatters in the codebase should delegate here rather than constructing their
106
- * own `Intl.NumberFormat`.
107
- */
108
- function formatCurrencyAmount(amountCents, currency, options) {
109
- return formatCurrencyMajorUnits(amountCents / 100, currency, options);
110
- }
111
- /**
112
- * `formatCurrencyAmount` for an amount already in MAJOR units (29.99 = £29.99),
113
- * such as a registrar price. Prefer minor units everywhere else.
114
- */
115
- function formatCurrencyMajorUnits(amount, currency, options) {
116
- const currencyCode = currency.toUpperCase();
117
- const locale = resolveCurrencyLocale(currencyCode, options?.locale);
118
- try {
119
- const exactFormatter = new Intl.NumberFormat(locale, {
120
- style: "currency",
121
- currency: currencyCode
122
- });
123
- return new Intl.NumberFormat(locale, {
124
- style: "currency",
125
- currency: currencyCode,
126
- ...fractionDigitsFor(options?.decimals ?? "exact", exactFormatter)
127
- }).format(amount);
128
- } catch {
129
- return `${amount.toFixed(2)} ${currencyCode}`;
130
- }
131
- }
132
- //#endregion
133
- //#region ../core/src/money-input.ts
134
- function unsafeAsNonNegativeCents(value) {
135
- return value;
136
- }
137
- /**
138
- * Normalizes a derived amount to non-negative whole cents. This intentionally
139
- * clamps negatives to zero; use parseNonNegativeCents for validation.
140
- */
141
- function toNonNegativeCents(value) {
142
- return unsafeAsNonNegativeCents(Math.max(0, Math.trunc(value)));
143
- }
144
- //#endregion
145
- //#region ../core/src/booking-flexible-balance.ts
146
- function clampFlexibleBalanceConfiguredAmount(amountCents, totalAmountCents) {
147
- return Math.max(0, Math.min(amountCents, totalAmountCents));
148
- }
149
- function resolveFlexibleBalanceInitialPaymentCents(input) {
150
- return clampFlexibleBalanceConfiguredAmount(input.config.upfrontAmountCents, input.totalAmountCents);
151
- }
152
- function resolveFlexibleBalanceDueAt(input) {
153
- switch (input.dueDateRule.kind) {
154
- case "relative_to_start_date": return subtractDaysFromIso(input.bookingStartAt, input.dueDateRule.daysBeforeStart);
155
- case "fixed_calendar_date": return input.dueDateRule.dueAt;
156
- default: return assertNever$2(input.dueDateRule);
157
- }
158
- }
159
- function assertNever$2(value) {
160
- throw new Error(`Unexpected value: ${String(value)}`);
161
- }
162
- //#endregion
163
- //#region ../core/src/booking-instalments.ts
164
- function isDepositBearingBookingInstalmentPlan(plan) {
165
- switch (plan.kind) {
166
- case "deposit_plus_one_remainder":
167
- case "deposit_plus_scheduled_instalments": return true;
168
- case "equal_scheduled_instalments": return false;
169
- default: return assertNever$1(plan);
170
- }
171
- }
172
- function getBookingInstalmentDepositRefundability(plan) {
173
- return isDepositBearingBookingInstalmentPlan(plan) ? plan.depositRefundability : null;
174
- }
175
- function clampConfiguredAmount(amountCents, totalAmountCents) {
176
- return Math.max(0, Math.min(amountCents, totalAmountCents));
177
- }
178
- function splitAmountWithRemainderInFirst(totalAmountCents, partCount) {
179
- if (partCount <= 0) return [];
180
- const baseAmountCents = Math.floor(totalAmountCents / partCount);
181
- const remainderCents = totalAmountCents - baseAmountCents * partCount;
182
- return Array.from({ length: partCount }, (_, index) => index === 0 ? baseAmountCents + remainderCents : baseAmountCents);
183
- }
184
- function addIntervalPreservingMonthAnchor(isoString, intervalCount, intervalUnit) {
185
- const date = new Date(isoString);
186
- if (!Number.isFinite(date.getTime())) return isoString;
187
- switch (intervalUnit) {
188
- case "day":
189
- date.setUTCDate(date.getUTCDate() + intervalCount);
190
- return date.toISOString();
191
- case "week":
192
- date.setUTCDate(date.getUTCDate() + intervalCount * 7);
193
- return date.toISOString();
194
- case "month": return addMonthsPreservingAnchorDay(date, intervalCount).toISOString();
195
- default: return assertNever$1(intervalUnit);
196
- }
197
- }
198
- function getBookingInstalmentPlanIntervalCount(plan) {
199
- switch (plan.kind) {
200
- case "deposit_plus_one_remainder": return plan.remainderDueCount;
201
- case "deposit_plus_scheduled_instalments":
202
- case "equal_scheduled_instalments": return plan.intervalCount;
203
- default: return assertNever$1(plan);
204
- }
205
- }
206
- function omitZeroAmountFutureRows(rows) {
207
- if (rows.length <= 1) return rows;
208
- const firstRow = rows[0];
209
- if (firstRow === void 0) return [];
210
- return [firstRow, ...rows.slice(1).filter((row) => row.amountCents > 0)];
211
- }
212
- function addMonthsPreservingAnchorDay(date, intervalCount) {
213
- const anchorDay = date.getUTCDate();
214
- const nextMonth = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + intervalCount, 1, date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds()));
215
- const lastDayOfTargetMonth = new Date(Date.UTC(nextMonth.getUTCFullYear(), nextMonth.getUTCMonth() + 1, 0)).getUTCDate();
216
- nextMonth.setUTCDate(Math.min(anchorDay, lastDayOfTargetMonth));
217
- return nextMonth;
218
- }
219
- function assertNever$1(value) {
220
- throw new Error(`Unexpected value: ${String(value)}`);
221
- }
222
- //#endregion
223
- //#region ../core/src/booking-payment-options.ts
224
- /** Automatic instalments and a flexible balance cannot share one booking offer. */
225
- function validateBookingPaymentOptionKinds(kinds) {
226
- if (kinds.length === 0) return err("no_options");
227
- const uniqueKinds = new Set(kinds);
228
- if (uniqueKinds.size !== kinds.length) return err("duplicate_kind");
229
- if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err("incompatible_collection_options");
230
- return ok(void 0);
231
- }
232
- //#endregion
233
- //#region ../commerce/src/utils/assertNever.ts
234
- function assertNever(value, message) {
235
- if (message) throw new Error(message);
236
- throw new Error(`Unexpected value: ${String(value)}`);
237
- }
238
- //#endregion
239
- //#region ../commerce/src/purchase/bookingInstalmentSchedule.ts
240
- function resolveBookingInitialInstalmentAmountCents(input) {
241
- const totalAmountCents = Math.max(0, input.totalAmountCents);
242
- switch (input.plan.kind) {
243
- case "deposit_plus_one_remainder":
244
- case "deposit_plus_scheduled_instalments": return clampConfiguredAmount(input.plan.depositAmountCents, totalAmountCents);
245
- case "equal_scheduled_instalments": return splitAmountWithRemainderInFirst(totalAmountCents, input.plan.instalmentCount)[0] ?? 0;
246
- default: return assertNever(input.plan);
247
- }
248
- }
249
- function buildBookingInstalmentSchedule(input) {
250
- const totalAmountCents = Math.max(0, input.totalAmountCents);
251
- switch (input.plan.kind) {
252
- case "deposit_plus_one_remainder": {
253
- const depositAmountCents = resolveBookingInitialInstalmentAmountCents(input);
254
- const remainderAmountCents = Math.max(0, totalAmountCents - depositAmountCents);
255
- return omitZeroAmountFutureRows([createScheduleRow({
256
- sequence: 1,
257
- stateAtBooking: "paid_today",
258
- dueAt: input.anchorAt,
259
- amountCents: depositAmountCents
260
- }), createScheduleRow({
261
- sequence: 2,
262
- stateAtBooking: "scheduled",
263
- dueAt: addIntervalPreservingMonthAnchor(input.anchorAt, input.plan.remainderDueCount, input.plan.intervalUnit),
264
- amountCents: remainderAmountCents
265
- })]);
266
- }
267
- case "deposit_plus_scheduled_instalments": {
268
- const plan = input.plan;
269
- const depositAmountCents = resolveBookingInitialInstalmentAmountCents(input);
270
- const instalmentAmounts = splitAmountWithRemainderInFirst(Math.max(0, totalAmountCents - depositAmountCents), plan.instalmentCount);
271
- return omitZeroAmountFutureRows([createScheduleRow({
272
- sequence: 1,
273
- stateAtBooking: "paid_today",
274
- dueAt: input.anchorAt,
275
- amountCents: depositAmountCents
276
- }), ...instalmentAmounts.map((amountCents, index) => createScheduleRow({
277
- sequence: index + 2,
278
- stateAtBooking: "scheduled",
279
- dueAt: addIntervalPreservingMonthAnchor(input.anchorAt, plan.intervalCount * (index + 1), plan.intervalUnit),
280
- amountCents
281
- }))]);
282
- }
283
- case "equal_scheduled_instalments": {
284
- const plan = input.plan;
285
- return omitZeroAmountFutureRows(splitAmountWithRemainderInFirst(totalAmountCents, plan.instalmentCount).map((amountCents, index) => createScheduleRow({
286
- sequence: index + 1,
287
- stateAtBooking: index === 0 ? "paid_today" : "scheduled",
288
- dueAt: index === 0 ? input.anchorAt : addIntervalPreservingMonthAnchor(input.anchorAt, plan.intervalCount * index, plan.intervalUnit),
289
- amountCents
290
- })));
291
- }
292
- default: return assertNever(input.plan);
293
- }
294
- }
295
- function createScheduleRow(input) {
296
- return {
297
- id: `payment-${input.sequence}`,
298
- sequence: input.sequence,
299
- stateAtBooking: input.stateAtBooking,
300
- dueAt: input.dueAt,
301
- amountCents: input.amountCents
302
- };
303
- }
304
- /** Resolve real rows first: zero future payments do not extend the deadline. */
305
- function canInstalmentPlanCompleteBefore(input) {
306
- const deadline = Date.parse(input.deadline);
307
- if (!Number.isFinite(Date.parse(input.now)) || !Number.isFinite(deadline)) return false;
308
- return input.schedule.every((row) => Date.parse(row.dueAt) < deadline);
309
- }
310
- //#endregion
311
- //#region ../commerce/src/purchase/bookingPaymentSelection.ts
312
- /** Identity is decided against the authoritative quote, before display repricing. */
313
- function resolveAvailableBookingCollectionOptions(input) {
314
- const configured = input.paymentTerms.allowedOptions;
315
- if (!validateBookingPaymentOptionKinds(configured.map((option) => option.kind)).ok) return [];
316
- const available = configured.filter((option) => option.kind !== "instalment_plan" || Number.isFinite(Date.parse(input.now))).map((option) => resolveBookingCollectionOptionFacts({
317
- option,
318
- totalCents: input.totalCents,
319
- anchorAt: input.now,
320
- bookingStartAt: input.bookingStartAt
321
- })).filter((option) => option.kind !== "instalment_plan" || input.bookingStartAt !== null && canInstalmentPlanCompleteBefore({
322
- now: input.now,
323
- deadline: input.bookingStartAt,
324
- schedule: option.schedule
325
- }));
326
- const upfront = resolveBookingCollectionOptionFacts({
327
- option: { kind: "upfront" },
328
- totalCents: input.totalCents,
329
- anchorAt: input.now,
330
- bookingStartAt: input.bookingStartAt
331
- });
332
- const collapsed = available.map((option) => isBookingCollectionEquivalentToUpfront(option) ? upfront : option);
333
- const unique = collapsed.filter((option, index) => collapsed.findIndex((other) => other.kind === option.kind) === index);
334
- return unique.length > 0 ? unique : [upfront];
335
- }
336
- function isBookingCollectionEquivalentToUpfront(option) {
337
- switch (option.kind) {
338
- case "upfront": return true;
339
- case "deferred_manual": return false;
340
- case "flexible_balance": return option.config.depositRefundability === "refundable" && option.dueNowCents === option.totalCents;
341
- case "instalment_plan": return option.depositRefundability !== "non_refundable" && option.schedule.length === 1;
342
- default: return assertNever(option);
343
- }
344
- }
345
- function resolveBookingCollectionOptionFacts(input) {
346
- const money = {
347
- totalCents: input.totalCents,
348
- anchorAt: input.anchorAt,
349
- bookingStartAt: input.bookingStartAt
350
- };
351
- switch (input.option.kind) {
352
- case "upfront": return {
353
- ...money,
354
- kind: "upfront",
355
- dueNowCents: input.totalCents
356
- };
357
- case "deferred_manual": return {
358
- ...money,
359
- kind: "deferred_manual",
360
- dueNowCents: 0
361
- };
362
- case "instalment_plan": {
363
- const schedule = buildBookingInstalmentSchedule({
364
- anchorAt: input.anchorAt,
365
- totalAmountCents: input.totalCents,
366
- plan: input.option.plan
367
- });
368
- return {
369
- ...money,
370
- kind: "instalment_plan",
371
- plan: input.option.plan,
372
- schedule,
373
- dueNowCents: schedule[0]?.amountCents ?? 0,
374
- depositRefundability: getBookingInstalmentDepositRefundability(input.option.plan)
375
- };
376
- }
377
- case "flexible_balance": {
378
- const dueNowCents = resolveFlexibleBalanceInitialPaymentCents({
379
- totalAmountCents: input.totalCents,
380
- config: input.option.config
381
- });
382
- return {
383
- ...money,
384
- kind: "flexible_balance",
385
- config: input.option.config,
386
- dueNowCents,
387
- remainingBalanceCents: Math.max(0, input.totalCents - dueNowCents),
388
- balanceDueAt: resolveFlexibleBalanceDueAt({
389
- bookingStartAt: input.bookingStartAt ?? input.anchorAt,
390
- dueDateRule: input.option.config.dueDateRule
391
- })
392
- };
393
- }
394
- default: return assertNever(input.option);
395
- }
396
- }
397
- /** Discounts change preview money, never an already admitted collection identity. */
398
- function repriceBookingCollectionOptions(input) {
399
- return input.options.map((option) => option.totalCents === input.totalCents ? option : resolveBookingCollectionOptionFacts({
400
- option,
401
- totalCents: input.totalCents,
402
- anchorAt: option.anchorAt,
403
- bookingStartAt: option.bookingStartAt
404
- }));
405
- }
406
- //#endregion
407
- //#region ../commerce/src/purchase/checkoutPaymentFlow.ts
408
- function planCheckoutPaymentFlow(options) {
409
- const amountDueCents = toNonNegativeCents(options.amountDueCents);
410
- const discountCents = toNonNegativeCents(options.discountCents);
411
- const availableCreditCents = toNonNegativeCents(options.availableCreditCents);
412
- const minimumStripeChargeCents = toNonNegativeCents(options.minimumStripeChargeCents ?? 0);
413
- if (amountDueCents <= 0) return {
414
- kind: "bypass",
415
- bypassReason: discountCents > 0 ? "discount_free" : "free",
416
- reserveCreditCents: 0
417
- };
418
- if (!options.creditCurrencyMatches || availableCreditCents <= 0) return {
419
- kind: "stripe",
420
- reserveCreditCents: toNonNegativeCents(0)
421
- };
422
- if (availableCreditCents >= amountDueCents) return {
423
- kind: "store_credit_only",
424
- reserveCreditCents: amountDueCents
425
- };
426
- return {
427
- kind: "stripe",
428
- reserveCreditCents: planMixedPaymentCreditReservation({
429
- amountDueCents,
430
- availableCreditCents,
431
- minimumStripeChargeCents
432
- })
433
- };
434
- }
435
- function planMixedPaymentCreditReservation(input) {
436
- const chargeAfterFullCredit = input.amountDueCents - input.availableCreditCents;
437
- if (input.minimumStripeChargeCents <= 0 || chargeAfterFullCredit <= 0 || chargeAfterFullCredit >= input.minimumStripeChargeCents) return input.availableCreditCents;
438
- if (input.amountDueCents < input.minimumStripeChargeCents) return toNonNegativeCents(0);
439
- return toNonNegativeCents(input.amountDueCents - input.minimumStripeChargeCents);
440
- }
441
- /**
442
- * Apply site credit to a flexible-balance booking before card payment.
443
- *
444
- * Credit first reduces the configured payment due now. Once that payment is
445
- * covered, any remaining credit reduces the later balance. If a partial credit
446
- * application would leave a positive card charge below Stripe's minimum, less
447
- * credit is used so the configured payment can still be collected.
448
- */
449
- function planFlexibleBalanceCreditFirst(input) {
450
- const totalCents = toNonNegativeCents(input.totalAfterDiscountCents);
451
- const configuredDueNowCents = toNonNegativeCents(Math.min(input.configuredPaymentDueNowCents, totalCents));
452
- const availableCreditCents = toNonNegativeCents(input.creditCurrencyMatches ? input.availableCreditCents : 0);
453
- const minimumStripeChargeCents = toNonNegativeCents(input.minimumStripeChargeCents ?? 0);
454
- if (availableCreditCents >= totalCents && totalCents > 0) return {
455
- kind: "credit_only",
456
- reserveCreditCents: totalCents,
457
- cardDueNowCents: toNonNegativeCents(0),
458
- laterBalanceCents: toNonNegativeCents(0)
459
- };
460
- let reserveCreditCents = toNonNegativeCents(Math.min(availableCreditCents, totalCents));
461
- if (reserveCreditCents >= configuredDueNowCents) return {
462
- kind: "flexible_balance",
463
- reserveCreditCents,
464
- cardDueNowCents: toNonNegativeCents(0),
465
- laterBalanceCents: toNonNegativeCents(totalCents - reserveCreditCents)
466
- };
467
- const plannedCardDueNowCents = toNonNegativeCents(configuredDueNowCents - reserveCreditCents);
468
- if (plannedCardDueNowCents > 0 && plannedCardDueNowCents < minimumStripeChargeCents) {
469
- if (configuredDueNowCents < minimumStripeChargeCents) return {
470
- kind: "card_below_minimum",
471
- reserveCreditCents: toNonNegativeCents(0),
472
- cardDueNowCents: configuredDueNowCents,
473
- laterBalanceCents: toNonNegativeCents(totalCents - configuredDueNowCents)
474
- };
475
- reserveCreditCents = toNonNegativeCents(configuredDueNowCents - minimumStripeChargeCents);
476
- }
477
- const cardDueNowCents = toNonNegativeCents(configuredDueNowCents - reserveCreditCents);
478
- return {
479
- kind: "flexible_balance",
480
- reserveCreditCents,
481
- cardDueNowCents,
482
- laterBalanceCents: toNonNegativeCents(totalCents - reserveCreditCents - cardDueNowCents)
483
- };
484
- }
485
- //#endregion
486
- //#region ../commerce/src/purchase/settlement.ts
487
- function normalizeCurrencyCode(raw) {
488
- const normalized = raw.trim().toUpperCase();
489
- if (!/^[A-Z]{3}$/.test(normalized)) throw new Error(`Invalid currency code: ${raw}`);
490
- return normalized;
491
- }
492
- //#endregion
493
- //#region ../commerce/src/purchase/checkoutSessionMetadata.ts
494
- const datedOfferingSharedEngineMetadataShape = {
495
- datedOfferingEngineContractVersion: z.literal("shared_v1"),
496
- datedOfferingEngineRouteKind: z.literal("shared_whole_series_registration"),
497
- datedOfferingCapacityHoldId: z.string().uuid(),
498
- datedOfferingCapacityHoldAuditRef: z.string().uuid(),
499
- customerId: z.string().uuid(),
500
- eventSeriesId: z.string().uuid()
501
- };
502
- z.object(datedOfferingSharedEngineMetadataShape);
503
- const orderCheckoutSessionMetadataBaseShape = {
504
- type: z.literal("order"),
505
- site_id: z.string().uuid(),
506
- order_id: z.string().uuid().optional(),
507
- customer_email: z.string().email().optional(),
508
- customer_name: z.string().optional(),
509
- product_id: z.string().uuid().optional(),
510
- attendee_id: z.string().uuid().optional(),
511
- occurrence_id: z.string().uuid().optional(),
512
- tickets_count: z.string().optional(),
513
- notes: z.string().optional(),
514
- discount_redemption_id: z.string().uuid().optional(),
515
- discount_code_id: z.string().uuid().optional(),
516
- discount_code: z.string().optional(),
517
- discount_public_label: z.string().optional(),
518
- credit_reservation_id: z.string().uuid().optional(),
519
- credit_reserved_cents: z.string().optional(),
520
- discount_code_amount_cents: z.string().optional(),
521
- order_payment_reason: z.enum([
522
- "instalment_payoff",
523
- "flexible_balance_initial",
524
- "flexible_balance_paydown"
525
- ]).optional(),
526
- order_payment_plan_id: z.string().uuid().optional(),
527
- order_flexible_balance_contract_id: z.string().uuid().optional()
528
- };
529
- const absentDatedOfferingSharedEngineMetadataShape = {
530
- datedOfferingEngineContractVersion: z.never().optional(),
531
- datedOfferingEngineRouteKind: z.never().optional(),
532
- datedOfferingCapacityHoldId: z.never().optional(),
533
- datedOfferingCapacityHoldAuditRef: z.never().optional(),
534
- customerId: z.never().optional(),
535
- eventSeriesId: z.never().optional()
536
- };
537
- const LegacyOrderCheckoutSessionMetadataSchema = z.object({
538
- ...orderCheckoutSessionMetadataBaseShape,
539
- ...absentDatedOfferingSharedEngineMetadataShape
540
- });
541
- const SharedDatedOfferingOrderCheckoutSessionMetadataSchema = z.object({
542
- ...orderCheckoutSessionMetadataBaseShape,
543
- ...datedOfferingSharedEngineMetadataShape
544
- });
545
- z.union([SharedDatedOfferingOrderCheckoutSessionMetadataSchema, LegacyOrderCheckoutSessionMetadataSchema]);
546
- //#endregion
547
- //#region ../commerce/src/purchase/stripeCommissionMetadata.ts
548
- /** Reasons are payment evidence, not an independent pricing policy. */
549
- const STRIPE_COMMISSION_FREE_REASONS = [
550
- "managed_billing",
551
- "no_commission_plan",
552
- "billing_evidence_invalid",
553
- "fee_rounds_to_zero",
554
- "payment_not_stripe"
555
- ];
556
- const historicalContext = {
557
- currency: z.string().refine((value) => parseCurrencyCode(value) !== null).optional(),
558
- sourcePlanId: z.string().trim().min(1).optional()
559
- };
560
- const percentSchema = z.number().finite().min(0).max(100);
561
- z.discriminatedUnion("kind", [
562
- z.object({
563
- kind: z.literal("commission_free"),
564
- reason: z.enum(STRIPE_COMMISSION_FREE_REASONS),
565
- ...historicalContext
566
- }),
567
- z.object({
568
- kind: z.literal("application_fee_amount"),
569
- amountCents: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
570
- percent: percentSchema,
571
- ...historicalContext
572
- }),
573
- z.object({
574
- kind: z.literal("application_fee_percent"),
575
- percent: percentSchema,
576
- ...historicalContext
577
- })
578
- ]);
579
- toNonNegativeCents(0);
580
- //#endregion
581
- //#region ../commerce/src/purchase/stripeMinimumCharge.ts
582
- const STRIPE_MINIMUM_CHARGE_CENTS_BY_CURRENCY = {
583
- GBP: 30,
584
- USD: 50,
585
- EUR: 50,
586
- AED: 200,
587
- AUD: 50,
588
- BGN: 100,
589
- BRL: 50,
590
- CAD: 50,
591
- CHF: 50,
592
- CZK: 1500,
593
- DKK: 250,
594
- HKD: 400,
595
- HUF: 17500,
596
- JPY: 50,
597
- MXN: 1e3,
598
- MYR: 200,
599
- NOK: 300,
600
- NZD: 50,
601
- PLN: 200,
602
- RON: 200,
603
- SEK: 300,
604
- SGD: 50,
605
- THB: 1e3
606
- };
607
- function isStripeMinimumChargeCurrency(currency) {
608
- return currency in STRIPE_MINIMUM_CHARGE_CENTS_BY_CURRENCY;
609
- }
610
- function getStripeMinimumChargeRequirement(rawCurrency) {
611
- let currency;
612
- try {
613
- currency = normalizeCurrencyCode(rawCurrency);
614
- } catch {
615
- return null;
616
- }
617
- const currencyKey = currency;
618
- if (!isStripeMinimumChargeCurrency(currencyKey)) return null;
619
- return {
620
- currency,
621
- minimumAmountCents: STRIPE_MINIMUM_CHARGE_CENTS_BY_CURRENCY[currencyKey]
622
- };
623
- }
624
- //#endregion
625
- //#region ../commerce/src/purchase/checkoutCopy.ts
626
- /**
627
- * Customer copy shared by checkout surfaces, so one approved wording reaches
628
- * every place that shows it.
629
- */
630
- const checkoutCopy = {
631
- /** A payment is still being confirmed; checking again is safe. */
632
- checkoutStillConfirming: "We’re still confirming your payment. This can take a minute – you can check again, and you won’t be charged twice.",
633
- /** A previous attempt can't be confirmed automatically; the business needs to check it. */
634
- checkoutAssistanceRequired: "We can’t confirm your last payment attempt yet. Please don’t pay again – contact the business so they can check it."
635
- };
636
- //#endregion
637
- //#region ../commerce/src/purchase/event-registration-errors.ts
638
- const eventRegistrationErrors = {
639
- registrationClosed: {
640
- message: "Booking is currently closed for this event. Please contact the organiser if you’d like to find out more.",
641
- action: "none"
642
- },
643
- paymentInvestigationRequired: {
644
- message: "We still can’t confirm your payment. Please don’t make another payment. Contact the organiser so they can check your booking.",
645
- action: "none"
646
- },
647
- paymentProviderUnavailable: {
648
- message: "We couldn’t reach the payment provider. Please try again in a minute.",
649
- action: "retry"
650
- },
651
- paymentHostUnavailable: {
652
- message: "Card payments aren’t available on this web address yet. Please contact the organiser to book.",
653
- action: "none"
654
- },
655
- checkoutTemporarilyUnavailable: {
656
- message: "Event payments are temporarily unavailable while we make an update. Please try again later.",
657
- action: "retry"
658
- },
659
- paymentPageUnavailable: {
660
- message: "We couldn’t open the payment page. Please refresh this page and try again. If this keeps happening, contact the organiser for help.",
661
- action: "retry"
662
- },
663
- paymentUnavailable: {
664
- message: "Online payment is not available for this event right now. Please contact the organiser for help with booking.",
665
- action: "none"
666
- },
667
- capacityChanged: {
668
- message: "Sorry, there aren’t enough places left for your selection. Please check the available places and choose again.",
669
- action: "places"
670
- },
671
- selectionChanged: {
672
- message: "The booking options for this event have changed. Please check the latest options and choose your places again.",
673
- action: "places"
674
- },
675
- registrationPreparationChanged: {
676
- message: "The booking options for this event have changed. Please check the latest options and choose your places again.",
677
- action: "places"
678
- },
679
- registrationAlreadyExists: {
680
- message: "You already have a booking for this event. Please check your bookings to see its status. If you need help, contact the organiser.",
681
- action: "portal"
682
- },
683
- holdExpired: {
684
- message: "Your reservation has timed out. Please check availability and choose your places again.",
685
- action: "start"
686
- },
687
- waitlistUnavailable: {
688
- message: "Sorry, the waiting list place offered in this invitation is no longer available. Please check the event for available places or contact the organiser for help.",
689
- action: "event"
690
- },
691
- paymentContextMismatch: {
692
- message: "The payment options for this event have changed. Please check the latest options before continuing.",
693
- action: "payment-options"
694
- },
695
- verificationFailed: {
696
- message: "We couldn’t confirm this request came from a person. Please refresh the page and try again.",
697
- action: "none"
698
- },
699
- idempotencyConflict: {
700
- message: "You’ve already started booking this event. Please finish in the other tab if it’s still open, or check your booking status before starting again.",
701
- action: "portal"
702
- },
703
- invalidCommitInput: {
704
- message: "We couldn’t accept your booking details. Please check the information you entered and try again. If this keeps happening, contact the organiser for help.",
705
- action: "details"
706
- }
707
- };
708
- function parseEventRegistrationErrorReason(value) {
709
- return typeof value === "string" && Object.prototype.hasOwnProperty.call(eventRegistrationErrors, value) ? value : null;
710
- }
711
- //#endregion
712
- //#region ../commerce/src/purchase/checkoutPresentation.ts
713
- function publishableKeyMode(publishableKey) {
714
- if (publishableKey.startsWith("pk_live_")) return "live";
715
- if (publishableKey.startsWith("pk_test_")) return "test";
716
- return null;
717
- }
718
- function checkBrowserStripeKey(publishableKey, livemode) {
719
- const key = publishableKey?.trim();
720
- if (!key) return {
721
- tag: "unavailable",
722
- reason: "missing_key"
723
- };
724
- const mode = publishableKeyMode(key);
725
- if (mode === null) return {
726
- tag: "unavailable",
727
- reason: "invalid_key"
728
- };
729
- return mode === (livemode ? "live" : "test") ? {
730
- tag: "ready",
731
- publishableKey: key
732
- } : {
733
- tag: "unavailable",
734
- reason: "mode_mismatch"
735
- };
736
- }
737
- //#endregion
738
- //#region ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
739
- function r(e) {
740
- var t, f, n = "";
741
- if ("string" == typeof e || "number" == typeof e) n += e;
742
- else if ("object" == typeof e) if (Array.isArray(e)) {
743
- var o = e.length;
744
- for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
745
- } else for (f in e) e[f] && (n && (n += " "), n += f);
746
- return n;
747
- }
748
- function clsx() {
749
- for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
750
- return n;
751
- }
752
- //#endregion
753
- //#region ../blocks/src/system/runtime/nodes/spinner.tsx
754
- function resolveColorStyle(color) {
755
- switch (color) {
756
- case void 0: return;
757
- case "inherit": return { color: "inherit" };
758
- case "foreground": return { color: "rgb(var(--tb-foreground))" };
759
- case "text": return { color: "rgb(var(--tb-text))" };
760
- default: return;
761
- }
762
- }
763
- function SpinnerNode({ className, size = "md", color, strokeWidth = 3, srLabel, style, ...rest }) {
764
- const hasExplicitAriaLabel = typeof rest["aria-label"] === "string" && rest["aria-label"].trim().length > 0;
765
- const accessibilityProps = srLabel ? {
766
- role: "status",
767
- "aria-live": "polite"
768
- } : hasExplicitAriaLabel ? {} : { "aria-hidden": true };
769
- const trackStroke = color === "inherit" ? "currentColor" : "var(--rb-spinner-track-color)";
770
- const trackOpacity = color === "inherit" ? .25 : 1;
771
- return /* @__PURE__ */ jsxs("span", {
772
- ...accessibilityProps,
773
- className: clsx("rb-spinner", size ? `rb-spinner--${size}` : null, color === "inherit" ? "rb-spinner--inherit" : null, className),
774
- style: {
775
- ...resolveColorStyle(color),
776
- ...style ?? {}
777
- },
778
- ...rest,
779
- children: [/* @__PURE__ */ jsxs("svg", {
780
- viewBox: "0 0 24 24",
781
- fill: "none",
782
- "aria-hidden": "true",
783
- children: [/* @__PURE__ */ jsx("circle", {
784
- cx: "12",
785
- cy: "12",
786
- r: "10",
787
- stroke: trackStroke,
788
- strokeWidth,
789
- opacity: trackOpacity
790
- }), /* @__PURE__ */ jsx("path", {
791
- d: "M12 2a10 10 0 0 1 10 10",
792
- stroke: "currentColor",
793
- strokeWidth,
794
- strokeLinecap: "round"
795
- })]
796
- }), srLabel ? /* @__PURE__ */ jsx("span", {
797
- className: "rb-sr-only",
798
- children: srLabel
799
- }) : null]
800
- });
801
- }
802
- //#endregion
803
- export { ok as _, parseEventRegistrationErrorReason as a, __toESM as b, planCheckoutPaymentFlow as c, repriceBookingCollectionOptions as d, resolveAvailableBookingCollectionOptions as f, err as g, formatCurrencyAmount as h, eventRegistrationErrors as i, planFlexibleBalanceCreditFirst as l, getBookingInstalmentPlanIntervalCount as m, clsx as n, checkoutCopy as o, validateBookingPaymentOptionKinds as p, checkBrowserStripeKey as r, getStripeMinimumChargeRequirement as s, SpinnerNode as t, isBookingCollectionEquivalentToUpfront as u, __commonJSMin as v, __exportAll as y };