@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,90 +1,8 @@
1
1
  "use client";
2
- import { t as ThemedButton } from "./ThemedButton-DZKjtaDD.mjs";
3
- import { n as useBlockApi, r as BlockApiError } from "./context-GK4-AVAh.mjs";
2
+ import { t as ThemedButton } from "./ThemedButton-B7HFqFBg.mjs";
3
+ import { n as useBlockApi, r as BlockApiError } from "./context-BOGe3rIA.mjs";
4
4
  import React, { useId } from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
- //#region ../blocks/src/system/runtime/shared/utils/demoBookingPassStorage.ts
7
- const STORAGE_KEY = "riverbank:demo-booking-passes:v1";
8
- const CHECKOUT_RETURN_EMAIL_KEY = "riverbank:demo-booking-checkout-email:v1";
9
- const MAX_STORED_PASSES = 10;
10
- function normalizeDemoBookingEmail(email) {
11
- return email.trim().toLowerCase();
12
- }
13
- function storeDemoBookingPass(email, pass) {
14
- try {
15
- const normalizedEmail = normalizeDemoBookingEmail(email);
16
- if (!normalizedEmail || !pass) return;
17
- const current = readStoredDemoBookingPasses();
18
- const updated = [{
19
- email: normalizedEmail,
20
- pass
21
- }, ...current.filter((entry) => entry.email !== normalizedEmail)].slice(0, MAX_STORED_PASSES);
22
- window.localStorage.setItem(STORAGE_KEY, JSON.stringify(updated));
23
- } catch {}
24
- }
25
- function storeDemoBookingPassIfAvailable(email, pass) {
26
- if (email && pass) storeDemoBookingPass(email, pass);
27
- }
28
- function getDemoBookingPass(email) {
29
- try {
30
- const normalizedEmail = normalizeDemoBookingEmail(email);
31
- return readStoredDemoBookingPasses().find((entry) => entry.email === normalizedEmail)?.pass ?? null;
32
- } catch {
33
- return null;
34
- }
35
- }
36
- function storeDemoBookingCheckoutReturn(email, pass) {
37
- const normalizedEmail = normalizeDemoBookingEmail(email);
38
- if (!normalizedEmail) return;
39
- storeDemoBookingPassIfAvailable(normalizedEmail, pass);
40
- try {
41
- window.sessionStorage.setItem(CHECKOUT_RETURN_EMAIL_KEY, normalizedEmail);
42
- } catch {}
43
- }
44
- function readDemoBookingCheckoutReturnEmail() {
45
- try {
46
- const email = window.sessionStorage.getItem(CHECKOUT_RETURN_EMAIL_KEY);
47
- window.sessionStorage.removeItem(CHECKOUT_RETURN_EMAIL_KEY);
48
- return email ? normalizeDemoBookingEmail(email) : null;
49
- } catch {
50
- return null;
51
- }
52
- }
53
- function readStoredDemoBookingPasses() {
54
- try {
55
- const raw = window.localStorage.getItem(STORAGE_KEY);
56
- if (!raw) return [];
57
- const parsed = JSON.parse(raw);
58
- return Array.isArray(parsed) ? parsed.filter(isStoredDemoBookingPass) : [];
59
- } catch {
60
- return [];
61
- }
62
- }
63
- function isStoredDemoBookingPass(value) {
64
- if (!isRecord(value)) return false;
65
- const record = value;
66
- return typeof record.email === "string" && record.email.length > 0 && typeof record.pass === "string" && record.pass.length > 0;
67
- }
68
- function isRecord(value) {
69
- return typeof value === "object" && value !== null && !Array.isArray(value);
70
- }
71
- //#endregion
72
- //#region ../blocks/src/system/runtime/api/types/discounts.ts
73
- function discountAvailabilityHasDiscounts(availability) {
74
- return availability.type !== "none";
75
- }
76
- function discountAvailabilityAllowsManualEntry(availability) {
77
- return "manualCodeEntryAllowed" in availability && availability.manualCodeEntryAllowed;
78
- }
79
- function getAutoAppliedDiscountPreview(availability) {
80
- switch (availability.type) {
81
- case "none":
82
- case "manual": return null;
83
- case "auto":
84
- case "auto_and_manual": return availability.autoAppliedDiscount;
85
- }
86
- }
87
- //#endregion
88
6
  //#region ../blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.tsx
89
7
  const BLOCK_DISCOUNT_CODE_DISCLOSURE_CLASSES = { "event-registration": {
90
8
  root: "er-discount",
@@ -201,6 +119,88 @@ function DiscountCodeDisclosure({ surface, isOpen, code, onOpen, onChange, onRem
201
119
  });
202
120
  }
203
121
  //#endregion
122
+ //#region ../blocks/src/system/runtime/shared/utils/demoBookingPassStorage.ts
123
+ const STORAGE_KEY = "riverbank:demo-booking-passes:v1";
124
+ const CHECKOUT_RETURN_EMAIL_KEY = "riverbank:demo-booking-checkout-email:v1";
125
+ const MAX_STORED_PASSES = 10;
126
+ function normalizeDemoBookingEmail(email) {
127
+ return email.trim().toLowerCase();
128
+ }
129
+ function storeDemoBookingPass(email, pass) {
130
+ try {
131
+ const normalizedEmail = normalizeDemoBookingEmail(email);
132
+ if (!normalizedEmail || !pass) return;
133
+ const current = readStoredDemoBookingPasses();
134
+ const updated = [{
135
+ email: normalizedEmail,
136
+ pass
137
+ }, ...current.filter((entry) => entry.email !== normalizedEmail)].slice(0, MAX_STORED_PASSES);
138
+ window.localStorage.setItem(STORAGE_KEY, JSON.stringify(updated));
139
+ } catch {}
140
+ }
141
+ function storeDemoBookingPassIfAvailable(email, pass) {
142
+ if (email && pass) storeDemoBookingPass(email, pass);
143
+ }
144
+ function getDemoBookingPass(email) {
145
+ try {
146
+ const normalizedEmail = normalizeDemoBookingEmail(email);
147
+ return readStoredDemoBookingPasses().find((entry) => entry.email === normalizedEmail)?.pass ?? null;
148
+ } catch {
149
+ return null;
150
+ }
151
+ }
152
+ function storeDemoBookingCheckoutReturn(email, pass) {
153
+ const normalizedEmail = normalizeDemoBookingEmail(email);
154
+ if (!normalizedEmail) return;
155
+ storeDemoBookingPassIfAvailable(normalizedEmail, pass);
156
+ try {
157
+ window.sessionStorage.setItem(CHECKOUT_RETURN_EMAIL_KEY, normalizedEmail);
158
+ } catch {}
159
+ }
160
+ function readDemoBookingCheckoutReturnEmail() {
161
+ try {
162
+ const email = window.sessionStorage.getItem(CHECKOUT_RETURN_EMAIL_KEY);
163
+ window.sessionStorage.removeItem(CHECKOUT_RETURN_EMAIL_KEY);
164
+ return email ? normalizeDemoBookingEmail(email) : null;
165
+ } catch {
166
+ return null;
167
+ }
168
+ }
169
+ function readStoredDemoBookingPasses() {
170
+ try {
171
+ const raw = window.localStorage.getItem(STORAGE_KEY);
172
+ if (!raw) return [];
173
+ const parsed = JSON.parse(raw);
174
+ return Array.isArray(parsed) ? parsed.filter(isStoredDemoBookingPass) : [];
175
+ } catch {
176
+ return [];
177
+ }
178
+ }
179
+ function isStoredDemoBookingPass(value) {
180
+ if (!isRecord(value)) return false;
181
+ const record = value;
182
+ return typeof record.email === "string" && record.email.length > 0 && typeof record.pass === "string" && record.pass.length > 0;
183
+ }
184
+ function isRecord(value) {
185
+ return typeof value === "object" && value !== null && !Array.isArray(value);
186
+ }
187
+ //#endregion
188
+ //#region ../blocks/src/system/runtime/api/types/discounts.ts
189
+ function discountAvailabilityHasDiscounts(availability) {
190
+ return availability.type !== "none";
191
+ }
192
+ function discountAvailabilityAllowsManualEntry(availability) {
193
+ return "manualCodeEntryAllowed" in availability && availability.manualCodeEntryAllowed;
194
+ }
195
+ function getAutoAppliedDiscountPreview(availability) {
196
+ switch (availability.type) {
197
+ case "none":
198
+ case "manual": return null;
199
+ case "auto":
200
+ case "auto_and_manual": return availability.autoAppliedDiscount;
201
+ }
202
+ }
203
+ //#endregion
204
204
  //#region ../blocks/src/system/runtime/shared/utils/demoPortalMagicLink.ts
205
205
  const CUSTOMER_PORTAL_PATH = "/portal";
206
206
  function buildPortalCallbackUrl(origin, redirectTo) {
@@ -341,4 +341,4 @@ function handlePortalAccessError(error) {
341
341
  };
342
342
  }
343
343
  //#endregion
344
- export { requestDemoPortalMagicLink as a, discountAvailabilityHasDiscounts as c, storeDemoBookingCheckoutReturn as d, storeDemoBookingPass as f, buildPortalCallbackUrl as i, getAutoAppliedDiscountPreview as l, DemoBookingPortalAccess as n, DiscountCodeDisclosure as o, storeDemoBookingPassIfAvailable as p, CUSTOMER_PORTAL_PATH as r, discountAvailabilityAllowsManualEntry as s, BookingConfirmation as t, readDemoBookingCheckoutReturnEmail as u };
344
+ export { requestDemoPortalMagicLink as a, getAutoAppliedDiscountPreview as c, storeDemoBookingPass as d, storeDemoBookingPassIfAvailable as f, buildPortalCallbackUrl as i, readDemoBookingCheckoutReturnEmail as l, DemoBookingPortalAccess as n, discountAvailabilityAllowsManualEntry as o, DiscountCodeDisclosure as p, CUSTOMER_PORTAL_PATH as r, discountAvailabilityHasDiscounts as s, BookingConfirmation as t, storeDemoBookingCheckoutReturn as u };
@@ -1,14 +1,12 @@
1
1
  "use client";
2
- import { r as clsx } from "./result-DRW7JWXz.mjs";
3
- import { B as calendarPageResponseError, Ct as isToday, G as planCalendarMonthRanges, H as calendarWindowBounds, J as getBlockApiReadStage, L as eventListingBlockRuntime, R as calendarMonthDate, St as isSameCalendarDay, U as calendarWindowMonths$1, V as calendarQueryKey, X as getEventRuntimeFiltersKey, Y as buildEventRuntimeFilters, _t as buildCalendarViewport, bt as getOrderedDayNames, dt as resolveEventTimeZone, gt as addMonths, it as formatDate, jn as getLocalScheduleDate, kn as formatLocalScheduleDate, lt as formatTime, mt as MONTH_NAMES, ut as groupEventsByDate, vt as formatDateKey, wt as shiftCalendarAnchorDate, yt as getDayOfWeek, z as calendarMonthKey } from "./propsDecoder-DO5iXphQ.mjs";
2
+ import { En as formatEventPrice, Gn as buildCalendarViewport, Hn as MONTH_NAMES, Jn as getOrderedDayNames, Kn as formatDateKey, Ln as formatTime, Mn as formatDate, Qn as shiftCalendarAnchorDate, Rn as groupEventsByDate, Wn as addMonths, Xn as isSameCalendarDay, Zn as isToday, _i as formatLocalScheduleDate, bn as buildEventRuntimeFilters, cn as eventListingBlockRuntime, dn as calendarPageResponseError, fn as calendarQueryKey, gn as planCalendarMonthRanges, ln as calendarMonthDate, mn as calendarWindowMonths$1, ni as clsx, nr as formatEventRemainingPlaces, pn as calendarWindowBounds, qn as getDayOfWeek, sr as isEventFull, un as calendarMonthKey, xn as getEventRuntimeFiltersKey, yi as getLocalScheduleDate, yn as getBlockApiReadStage, zn as resolveEventTimeZone } from "./propsDecoder-lf_dTeZS.mjs";
4
3
  import { t as formatEventDuration } from "./duration-btE0-px8.mjs";
5
- import { a as toError, i as useEventCollectionFilters, n as EventPaginatedListView, r as EventCardClient, s as formatEventTeacherLine, t as useEventPagination } from "./useEventPagination-jgKa67KV.mjs";
6
- import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-DZKjtaDD.mjs";
7
- import { o as formatEventRemainingPlaces, p as isEventFull, t as formatEventPrice } from "./pricing-CMD0kADd.mjs";
8
- import { a as resolveEventLinkProps, i as resolveEventCta } from "./CardListItem-ZDLYh6dL.mjs";
9
- import { n as useBlockApi } from "./context-GK4-AVAh.mjs";
10
- import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
11
- import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
4
+ import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-B7HFqFBg.mjs";
5
+ import { a as toError, i as useEventCollectionFilters, n as EventPaginatedListView, r as EventCardClient, s as formatEventTeacherLine, t as useEventPagination } from "./useEventPagination-BBhkmQaT.mjs";
6
+ import { a as resolveEventLinkProps, i as resolveEventCta } from "./CardListItem-CC_GVmF6.mjs";
7
+ import { t as createBodyThemePortalRoot } from "./themePortalRoot-DS92SRVZ.mjs";
8
+ import { n as useBlockApi } from "./context-BOGe3rIA.mjs";
9
+ import { t as ModalShell } from "./ModalShell-BXzucfR6.mjs";
12
10
  import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
13
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
12
  //#region ../blocks/src/system/runtime/nodes/events/domain/location.ts
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { un as checkBrowserStripeKey } from "./propsDecoder-DO5iXphQ.mjs";
3
- import { i as SpinnerNode } from "./ThemedButton-DZKjtaDD.mjs";
2
+ import { ri as checkBrowserStripeKey } from "./propsDecoder-lf_dTeZS.mjs";
3
+ import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-B7HFqFBg.mjs";
4
4
  import { useEffect, useRef, useState } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region \0rolldown/runtime.js
@@ -235,21 +235,21 @@ function EventEmbeddedCheckoutStepWithDeps(props) {
235
235
  const heading = useRef(null);
236
236
  const status = useStripeMount(props, container, props.load);
237
237
  useEffect(() => {
238
- heading.current?.focus();
239
- }, []);
238
+ if (props.onBack) heading.current?.focus();
239
+ }, [props.onBack]);
240
240
  return /* @__PURE__ */ jsxs("section", {
241
241
  className: "er-embedded-payment",
242
242
  children: [
243
- /* @__PURE__ */ jsx("button", {
243
+ props.onBack ? /* @__PURE__ */ jsx("button", {
244
244
  type: "button",
245
245
  className: "er-back-btn er-embedded-payment__back",
246
246
  onClick: props.onBack,
247
247
  children: "← Back"
248
- }),
248
+ }) : null,
249
249
  /* @__PURE__ */ jsx("h2", {
250
250
  ref: heading,
251
251
  tabIndex: -1,
252
- className: "er-title er-message",
252
+ className: "rb-sr-only",
253
253
  children: "Payment"
254
254
  }),
255
255
  status === "loading" && /* @__PURE__ */ jsxs("div", {
@@ -270,11 +270,12 @@ function EventEmbeddedCheckoutStepWithDeps(props) {
270
270
  children: [/* @__PURE__ */ jsx("p", {
271
271
  className: "er-text--muted er-message",
272
272
  children: "We couldn’t load the payment form."
273
- }), /* @__PURE__ */ jsx("button", {
273
+ }), /* @__PURE__ */ jsx(ThemedButton, {
274
274
  type: "button",
275
- className: "er-btn er-btn--primary",
275
+ variant: props.buttonVariant,
276
+ size: "md",
276
277
  onClick: props.onRetry,
277
- children: "Try again"
278
+ label: "Try again"
278
279
  })]
279
280
  }),
280
281
  /* @__PURE__ */ jsx("div", {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { Ot as listLookSlot, Y as buildEventRuntimeFilters } from "./propsDecoder-DO5iXphQ.mjs";
3
- import { i as useEventCollectionFilters, n as EventPaginatedListView, t as useEventPagination } from "./useEventPagination-jgKa67KV.mjs";
2
+ import { bn as buildEventRuntimeFilters, fr as listLookSlot } from "./propsDecoder-lf_dTeZS.mjs";
3
+ import { i as useEventCollectionFilters, n as EventPaginatedListView, t as useEventPagination } from "./useEventPagination-BBhkmQaT.mjs";
4
4
  import { useMemo } from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/events/shared/EventListWeekNavigation.tsx
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { nn as isRecord } from "./propsDecoder-DO5iXphQ.mjs";
2
+ import { Ir as isRecord } from "./propsDecoder-lf_dTeZS.mjs";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/nodes/shared/LeafletStaticMap.tsx
@@ -22,32 +22,103 @@ function unlockBodyScroll() {
22
22
  }
23
23
  }
24
24
  /**
25
- * Shared, unopinionated modal shell for interactive runtime flows.
26
- *
27
- * Styling is supplied by the caller via class names, while the shell owns
28
- * focus, escape handling, body-scroll locking, overlay clicks, and optional
29
- * portaling into a themed root.
25
+ * Open shells, innermost last. Escape and the focus trap act only for the
26
+ * innermost one, so a sign-in dialog over the booking panel closes alone.
30
27
  */
31
- function ModalShell({ title, titleId, onClose, children, portalRoot, portal = false, portalWrapperClassName, portalWrapperProps, overlayClassName, modalClassName, renderSrOnlyTitle = false, renderHeader, headerClassName, titleClassName, closeButtonClassName, closeIcon }) {
32
- const closeButtonRef = React$1.useRef(null);
33
- const onCloseRef = React$1.useRef(onClose);
34
- onCloseRef.current = onClose;
28
+ const openShells = /* @__PURE__ */ new Set();
29
+ const shellRenderSequence = { last: 0 };
30
+ /** Shells are ordered by first render: a parent before its child, an earlier dialog before a later one. */
31
+ function isInnermost(order) {
32
+ return Math.max(...openShells) === order;
33
+ }
34
+ const FOCUSABLE = "a[href], button:not([disabled]), input:not([disabled]):not([type=\"hidden\"]), select:not([disabled]), textarea:not([disabled]), iframe, [tabindex]:not([tabindex=\"-1\"])";
35
+ function focusableWithin(root) {
36
+ return [...root.querySelectorAll(FOCUSABLE)].filter((element) => !element.hasAttribute("inert") && element.getClientRects().length > 0);
37
+ }
38
+ /** Keep Tab inside the dialog, wrapping at either end. */
39
+ function trapTab(event, dialog) {
40
+ const focusable = focusableWithin(dialog);
41
+ const first = focusable[0];
42
+ const last = focusable[focusable.length - 1];
43
+ if (!first || !last) {
44
+ event.preventDefault();
45
+ return;
46
+ }
47
+ const active = document.activeElement;
48
+ if (event.shiftKey && (active === first || !dialog.contains(active))) {
49
+ event.preventDefault();
50
+ last.focus();
51
+ } else if (!event.shiftKey && (active === last || !dialog.contains(active))) {
52
+ event.preventDefault();
53
+ first.focus();
54
+ }
55
+ }
56
+ /**
57
+ * Focus, Escape and the focus trap for one open shell; focus goes back to
58
+ * where it was when the shell closes.
59
+ */
60
+ function useModalFocus(dialogRef, closeButtonRef, onCloseRef, returnFocusRef) {
61
+ const [order] = React$1.useState(() => shellRenderSequence.last += 1);
35
62
  React$1.useEffect(() => {
36
- closeButtonRef.current?.focus({ preventScroll: true });
63
+ const shell = order;
64
+ const opener = document.activeElement instanceof HTMLElement ? document.activeElement : null;
65
+ openShells.add(shell);
66
+ if (isInnermost(shell)) closeButtonRef.current?.focus({ preventScroll: true });
37
67
  const onKeyDown = (event) => {
38
- if (event.key === "Escape") onCloseRef.current();
68
+ if (!isInnermost(shell)) return;
69
+ if (event.key === "Escape") {
70
+ onCloseRef.current();
71
+ return;
72
+ }
73
+ if (event.key === "Tab" && dialogRef.current) trapTab(event, dialogRef.current);
74
+ };
75
+ const onFocusIn = (event) => {
76
+ const dialog = dialogRef.current;
77
+ if (!dialog || !isInnermost(shell)) return;
78
+ if (event.target instanceof HTMLIFrameElement) return;
79
+ if (event.target instanceof Node && !dialog.contains(event.target)) focusableWithin(dialog)[0]?.focus({ preventScroll: true });
39
80
  };
40
81
  document.addEventListener("keydown", onKeyDown);
82
+ document.addEventListener("focusin", onFocusIn);
41
83
  lockBodyScroll();
42
84
  return () => {
43
85
  document.removeEventListener("keydown", onKeyDown);
86
+ document.removeEventListener("focusin", onFocusIn);
44
87
  unlockBodyScroll();
88
+ openShells.delete(shell);
89
+ const returnFocus = returnFocusRef.current;
90
+ if (returnFocus) returnFocus(opener);
91
+ else if (opener?.isConnected) opener.focus({ preventScroll: true });
45
92
  };
46
- }, []);
93
+ }, [
94
+ order,
95
+ dialogRef,
96
+ closeButtonRef,
97
+ onCloseRef,
98
+ returnFocusRef
99
+ ]);
100
+ }
101
+ /**
102
+ * Shared, unopinionated modal shell for interactive runtime flows.
103
+ *
104
+ * Styling is supplied by the caller via class names, while the shell owns
105
+ * focus (trapped inside, returned on close), escape handling for the
106
+ * innermost open shell, body-scroll locking, overlay clicks, and optional
107
+ * portaling into a themed root.
108
+ */
109
+ function ModalShell({ title, titleId, onClose, children, portalRoot, portal = false, portalWrapperClassName, portalWrapperProps, overlayClassName, modalClassName, renderSrOnlyTitle = false, renderHeader, headerClassName, titleClassName, closeButtonClassName, closeIcon, returnFocus }) {
110
+ const closeButtonRef = React$1.useRef(null);
111
+ const onCloseRef = React$1.useRef(onClose);
112
+ onCloseRef.current = onClose;
113
+ const returnFocusRef = React$1.useRef(returnFocus);
114
+ returnFocusRef.current = returnFocus;
115
+ const dialogRef = React$1.useRef(null);
116
+ useModalFocus(dialogRef, closeButtonRef, onCloseRef, returnFocusRef);
47
117
  const modal = /* @__PURE__ */ jsx("div", {
48
118
  className: overlayClassName,
49
119
  onClick: onClose,
50
120
  children: /* @__PURE__ */ jsxs("div", {
121
+ ref: dialogRef,
51
122
  className: modalClassName,
52
123
  onClick: (event) => event.stopPropagation(),
53
124
  role: "dialog",
@@ -1,5 +1,7 @@
1
1
  "use client";
2
- import { a as getCurrentResolveImageUrlContext, l as resolveImageUrlWithContext, t as ImagePresets } from "./media-47fcnhzD.mjs";
2
+ import { a as parseCanonicalMediaIdentifier } from "./renderableMediaAssetAdmission-CHkXYDC_.mjs";
3
+ import { s as resolveImageUrlWithContext, t as ImagePresets } from "./media-D29-F1u_.mjs";
4
+ import { n as getCurrentResolveImageUrlContext } from "./mediaContext-CwbbimYB.mjs";
3
5
  import React from "react";
4
6
  import { Fragment, jsx } from "react/jsx-runtime";
5
7
  //#region ../blocks/src/primitives/content/utils/sanitizeHref.ts
@@ -27,16 +29,19 @@ function decodeForSchemeCheck(value) {
27
29
  * - Allow absolute URLs with protocols: http, https, mailto, tel.
28
30
  * - Allow root-relative ("/path") and hash-only ("#section") links.
29
31
  * - Reject protocol-relative URLs ("//example.com"), bare domains ("example.com"),
30
- * executable schemes (javascript/data/vbscript), malformed URLs, and empty values.
32
+ * backslashes, executable schemes (javascript/data/vbscript), malformed URLs, and empty values.
31
33
  * - Preserve percent-encoding from the original normalized input.
32
34
  */
33
35
  function sanitizeHref(raw) {
34
36
  if (typeof raw !== "string") return null;
35
37
  const normalized = normalizeInput(raw);
36
38
  if (!normalized) return null;
37
- if (normalized.startsWith("//")) return null;
39
+ if (normalized.includes("\\") || normalized.startsWith("//")) return null;
38
40
  if (normalized.startsWith("/")) return normalized;
39
41
  if (normalized.startsWith("#")) return normalized;
42
+ return sanitizeAbsoluteHref(normalized);
43
+ }
44
+ function sanitizeAbsoluteHref(normalized) {
40
45
  const schemeMatch = normalizeInput(decodeForSchemeCheck(normalized)).match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);
41
46
  if (!schemeMatch) return null;
42
47
  const rawScheme = schemeMatch[1];
@@ -94,6 +99,47 @@ function renderMarks(text, marks, key, linkTarget) {
94
99
  }
95
100
  }, text);
96
101
  }
102
+ function richTextImageOptions(width, height) {
103
+ if (width) return {
104
+ width,
105
+ resize: "contain",
106
+ quality: 85
107
+ };
108
+ if (height) return {
109
+ height,
110
+ resize: "contain",
111
+ quality: 85
112
+ };
113
+ return ImagePresets.full;
114
+ }
115
+ function resolveRichTextImageSource(attrs, width, height, context) {
116
+ if (attrs.identifier !== void 0 && attrs.identifier !== null) {
117
+ const parsed = parseCanonicalMediaIdentifier(attrs.identifier);
118
+ if (!parsed.ok) return void 0;
119
+ if (context?.mediaAssetIndex) return resolveImageUrlWithContext({
120
+ type: "image",
121
+ identifier: parsed.value
122
+ }, richTextImageOptions(width, height), context);
123
+ return typeof attrs.src === "string" ? attrs.src.trim() || void 0 : void 0;
124
+ }
125
+ return typeof attrs.src === "string" ? attrs.src.trim() || void 0 : void 0;
126
+ }
127
+ function renderRichTextImage(node, key, context) {
128
+ const attrs = node.attrs ?? {};
129
+ const width = parseDimension(attrs.width);
130
+ const height = parseDimension(attrs.height);
131
+ const src = resolveRichTextImageSource(attrs, width, height, context);
132
+ if (!src) return null;
133
+ return /* @__PURE__ */ jsx("img", {
134
+ src,
135
+ alt: typeof attrs.alt === "string" ? attrs.alt : "",
136
+ title: typeof attrs.title === "string" && attrs.title.trim() ? attrs.title : void 0,
137
+ width,
138
+ height,
139
+ loading: "lazy",
140
+ decoding: "async"
141
+ }, key);
142
+ }
97
143
  function renderDoc(node, key, imageResolveContext, linkTarget) {
98
144
  if (!node || !node.type) return null;
99
145
  const children = node.content?.map((child, index) => renderDoc(child, `${key}-${index}`, imageResolveContext, linkTarget));
@@ -112,37 +158,7 @@ function renderDoc(node, key, imageResolveContext, linkTarget) {
112
158
  case "blockquote": return /* @__PURE__ */ jsx("blockquote", { children }, key);
113
159
  case "horizontalRule": return /* @__PURE__ */ jsx("hr", {}, key);
114
160
  case "hardBreak": return /* @__PURE__ */ jsx("br", {}, key);
115
- case "image": {
116
- const attrs = node.attrs ?? {};
117
- const src = typeof attrs.src === "string" ? attrs.src.trim() : "";
118
- const identifier = typeof attrs.identifier === "string" ? attrs.identifier.trim() : "";
119
- const alt = typeof attrs.alt === "string" ? attrs.alt : "";
120
- const title = typeof attrs.title === "string" && attrs.title.trim().length > 0 ? attrs.title : void 0;
121
- const width = parseDimension(attrs.width);
122
- const height = parseDimension(attrs.height);
123
- const resolvedSrc = src || (identifier ? resolveImageUrlWithContext({
124
- type: "image",
125
- identifier
126
- }, width ? {
127
- width,
128
- resize: "contain",
129
- quality: 85
130
- } : height ? {
131
- height,
132
- resize: "contain",
133
- quality: 85
134
- } : ImagePresets.full, imageResolveContext ?? void 0) ?? "" : "");
135
- if (!resolvedSrc) return null;
136
- return /* @__PURE__ */ jsx("img", {
137
- src: resolvedSrc,
138
- alt,
139
- title,
140
- width,
141
- height,
142
- loading: "lazy",
143
- decoding: "async"
144
- }, key);
145
- }
161
+ case "image": return renderRichTextImage(node, key, imageResolveContext);
146
162
  case "text": return renderMarks(node.text ?? "", node.marks, key, linkTarget);
147
163
  default: return null;
148
164
  }
@@ -1,5 +1,4 @@
1
- import { r as clsx } from "./result-DRW7JWXz.mjs";
2
- import { At as themeButtonVariantClassNames, kt as themeButtonSizeClassName } from "./propsDecoder-DO5iXphQ.mjs";
1
+ import { Gr as themeButtonVariantClassNames, Wr as themeButtonSizeClassName, ni as clsx } from "./propsDecoder-lf_dTeZS.mjs";
3
2
  import "react";
4
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
4
  //#region ../blocks/src/system/runtime/nodes/spinner.tsx
@@ -1,4 +1,4 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-DO5iXphQ.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-lf_dTeZS.mjs";
2
2
  //#region src/rendering/islands/enhancers/accordion.ts
3
3
  const decode = defineIslandPropsDecoder("accordion");
4
4
  function parseDefaultValues(value) {