@riverbankcms/sdk 0.141.0 → 0.143.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 (123) hide show
  1. package/dist/{PreviewEditorSidebar-Q-fy9GYw.mjs → PreviewEditorSidebar-DROGfMKi.mjs} +24 -15
  2. package/dist/{PreviewEditorUI-LYGzgk85.mjs → PreviewEditorUI-BaRjhFu-.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-CN0ewic5.mjs → PreviewQueryProvider-BCYICImX.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-CoPYI5Jq.mjs → SdkPreviewModeRuntime-OIABYLES.mjs} +16 -11
  5. package/dist/{SiteChromeCustomizeContext-D8LePX8x.mjs → SiteChromeCustomizeContext-ohjTvZbc.mjs} +607 -545
  6. package/dist/_dts/api/src/billing.d.ts +6 -1
  7. package/dist/_dts/api/src/bookingConfig.d.ts +1 -1
  8. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  9. package/dist/_dts/api/src/endpoints.d.ts +7 -27
  10. package/dist/_dts/api/src/index.d.ts +1 -1
  11. package/dist/_dts/api/src/publicBookingService.d.ts +1 -0
  12. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  13. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +48 -41
  14. package/dist/_dts/api/src/sdkConfig/layout.d.ts +13 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +3 -8
  16. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -31
  17. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
  18. package/dist/_dts/billing/src/site-arrangements.d.ts +9 -5
  19. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +56 -0
  20. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +8 -0
  21. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  22. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  23. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +95 -35
  24. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +10 -0
  25. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +0 -2
  26. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +12 -1
  27. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +1 -4
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +12 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +4 -5
  33. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +9 -11
  34. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +56 -2
  35. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +10 -4
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +23 -0
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +56 -0
  39. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -4
  40. package/dist/_dts/commerce/src/purchase/eventCheckoutRecoveryWindow.d.ts +8 -0
  41. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -1
  42. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +1 -13
  43. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +1 -2
  44. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +58 -45
  45. package/dist/_dts/editor-blocks/src/block-editor/ColourFieldOptionsProvider.d.ts +7 -0
  46. package/dist/_dts/editor-blocks/src/block-editor/colourFieldVisibility.d.ts +7 -0
  47. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +2 -0
  48. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  49. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -2
  50. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +3 -6
  51. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -2
  52. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -2
  53. package/dist/_dts/preview-next/src/client/preview/footerInspection.d.ts +16 -0
  54. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +6 -0
  55. package/dist/_dts/sdk/src/config/types.d.ts +2 -18
  56. package/dist/_dts/sdk/src/config/validation.d.ts +6 -0
  57. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -0
  58. package/dist/_dts/sdk/src/version.d.ts +1 -1
  59. package/dist/_dts/theme-core/src/footer/mode.d.ts +10 -1
  60. package/dist/_dts/theme-core/src/schema.d.ts +1 -7
  61. package/dist/_dts/theme-core/src/site-styles/effectivePageDesign.d.ts +32 -0
  62. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  63. package/dist/client/{BookingConsentAgreement-xJeYNdnb.mjs → BookingConsentAgreement-BoCtvzzu.mjs} +2 -2
  64. package/dist/client/{DiscountCodeDisclosure-DdT6uzl9.mjs → DiscountCodeDisclosure-B5S30nZk.mjs} +1 -1
  65. package/dist/client/{EventCombined.client-Cp28uYuM.mjs → EventCombined.client-CeZ2-zSt.mjs} +5 -5
  66. package/dist/client/{EventListing.client-CD6AJsMr.mjs → EventListing.client-DJN3j8B3.mjs} +2 -2
  67. package/dist/client/{LeafletStaticMap-DBsAi9-e.mjs → LeafletStaticMap-RjtGzDQT.mjs} +1 -1
  68. package/dist/client/{accordion-6dwbOKYR.mjs → accordion-DOmnDoyg.mjs} +1 -1
  69. package/dist/client/{bookingForm-CZE9_qPQ.mjs → bookingForm-C0vk7pgS.mjs} +5 -5
  70. package/dist/client/bookings.mjs +468 -534
  71. package/dist/client/{carousel-7VHGQARz.mjs → carousel-BZJ7pno3.mjs} +1 -1
  72. package/dist/client/{cart-Qg_mvQhh.mjs → cart-CaeVAHJl.mjs} +3 -3
  73. package/dist/client/{checkout-D84rpgdr.mjs → checkout-7wmoNDtG.mjs} +3 -3
  74. package/dist/client/client.mjs +559 -593
  75. package/dist/client/{context-Ctp3T0Wr.mjs → context-BOimxE3U.mjs} +12 -1
  76. package/dist/client/{dates-DJKFcI_N.mjs → dates-BnzVksi4.mjs} +2 -2
  77. package/dist/client/{eventCalendar-CK31z3vs.mjs → eventCalendar-l-fpaslC.mjs} +7 -7
  78. package/dist/client/{eventCombined-DiXd-ewn.mjs → eventCombined-DGGvssK6.mjs} +3 -3
  79. package/dist/client/{eventDetails-CTRgt2DK.mjs → eventDetails-DRiCm_hL.mjs} +4 -4
  80. package/dist/client/{eventListing-Dy9vi_j_.mjs → eventListing-dph8loYX.mjs} +3 -3
  81. package/dist/client/{eventRegistration-CnalYMr2.mjs → eventRegistration-ClBohmbY.mjs} +472 -531
  82. package/dist/client/{form-eUiMveTT.mjs → form-BLVVAnd3.mjs} +2 -2
  83. package/dist/client/{headerSection-Dy9kQpB1.mjs → headerSection-DHy4C8Ix.mjs} +2 -2
  84. package/dist/client/hooks.mjs +39 -13
  85. package/dist/client/{locationMap-DalCmWU0.mjs → locationMap-6HuS28ck.mjs} +2 -2
  86. package/dist/client/{newsletterForm-SDDPvhS0.mjs → newsletterForm-xOdcOhZP.mjs} +2 -2
  87. package/dist/client/{pricing-OcMz4SnX.mjs → pricing-ChinRYFt.mjs} +1 -1
  88. package/dist/client/{productDetail-BQrgHElM.mjs → productDetail-0chA5gbK.mjs} +3 -3
  89. package/dist/client/{productList-OnPn_UJj.mjs → productList-OoINA0h1.mjs} +3 -3
  90. package/dist/client/{propsDecoder-zBdsnS-N.mjs → propsDecoder-CIZ-hbIG.mjs} +33 -9
  91. package/dist/client/rendering/client.mjs +536 -550
  92. package/dist/client/rendering/islands.mjs +17 -17
  93. package/dist/client/rendering.mjs +602 -596
  94. package/dist/client/{scrollToBlock-BNM4Ob2Y.mjs → scrollToBlock-BPZl0gPZ.mjs} +1 -1
  95. package/dist/client/{shop-Bv1fPTwQ.mjs → shop-CLJFqNIq.mjs} +6 -6
  96. package/dist/client/{shop-commerce-D4KNGaW8.mjs → shop-commerce-PpANg5wB.mjs} +5 -5
  97. package/dist/client/{shop-commerce-store-2N5EV0Rc.mjs → shop-commerce-store-TA_Kz2ku.mjs} +1 -1
  98. package/dist/client/{shopShared-DvJGdHTV.mjs → shopShared-DzcFcA5g.mjs} +3 -3
  99. package/dist/client/{useEventFilters-BBBvGDHQ.mjs → useEventFilters-CFU21QZo.mjs} +5 -5
  100. package/dist/preview-next/before-render.mjs +11 -37
  101. package/dist/preview-next/client/runtime.mjs +4 -4
  102. package/dist/preview-next/keepAlive.mjs +11 -37
  103. package/dist/preview-next/middleware.mjs +11 -37
  104. package/dist/{previewAuthStore-Gjb6r6vz.mjs → previewAuthStore-JA6-I_sL.mjs} +11 -37
  105. package/dist/{sdk-runtime-Defnbfzw.mjs → sdk-runtime-CDKl0Fr7.mjs} +2 -2
  106. package/dist/{separator-CZXO3Sb0.mjs → separator-BTp96X32.mjs} +1 -1
  107. package/dist/server/components.mjs +80 -51
  108. package/dist/server/config-validation.mjs +43 -14
  109. package/dist/server/config.mjs +43 -14
  110. package/dist/server/data.mjs +39 -13
  111. package/dist/server/index.mjs +12 -38
  112. package/dist/server/next.mjs +40 -53
  113. package/dist/server/page-converter.mjs +20 -8
  114. package/dist/server/prebuild.mjs +1 -1
  115. package/dist/server/rendering/server.mjs +80 -51
  116. package/dist/server/rendering.mjs +80 -51
  117. package/dist/server/routing.mjs +52 -17
  118. package/dist/server/server.mjs +40 -51
  119. package/dist/server/theme-bridge.mjs +10 -8
  120. package/dist/server/theme.mjs +10 -8
  121. package/package.json +1 -1
  122. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +0 -14
  123. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +0 -8
@@ -12137,6 +12137,54 @@ function defaultTypographyForRecipe(recipe) {
12137
12137
  }
12138
12138
  }
12139
12139
  //#endregion
12140
+ //#region ../theme-core/src/footer/mode.ts
12141
+ const footerModeSchema = z.enum([
12142
+ "default",
12143
+ "blocks",
12144
+ "default+blocks",
12145
+ "none"
12146
+ ]);
12147
+ /** Reads only SDK footer intent; unrelated config and theme fields are not authorities. */
12148
+ function resolveSdkFooterMode(config) {
12149
+ const parsed = z.object({ layout: z.object({ footerMode: footerModeSchema.optional() }).optional() }).safeParse(config);
12150
+ return parsed.success ? parsed.data.layout?.footerMode ?? "default" : "default";
12151
+ }
12152
+ /**
12153
+ * Resolve what to render for the footer given the current mode and whether the
12154
+ * site is SDK-managed.
12155
+ *
12156
+ * Backwards compatible: missing/undefined mode is treated as 'default'.
12157
+ */
12158
+ function resolveFooterRenderPlan(params) {
12159
+ if (!params.isSdkSite) return {
12160
+ mode: "default",
12161
+ renderDefaultFooter: true,
12162
+ renderFooterBlocks: false
12163
+ };
12164
+ switch (params.mode ?? "default") {
12165
+ case "blocks": return {
12166
+ mode: "blocks",
12167
+ renderDefaultFooter: false,
12168
+ renderFooterBlocks: true
12169
+ };
12170
+ case "default+blocks": return {
12171
+ mode: "default+blocks",
12172
+ renderDefaultFooter: true,
12173
+ renderFooterBlocks: true
12174
+ };
12175
+ case "none": return {
12176
+ mode: "none",
12177
+ renderDefaultFooter: false,
12178
+ renderFooterBlocks: false
12179
+ };
12180
+ default: return {
12181
+ mode: "default",
12182
+ renderDefaultFooter: true,
12183
+ renderFooterBlocks: false
12184
+ };
12185
+ }
12186
+ }
12187
+ //#endregion
12140
12188
  //#region ../theme-core/src/lib/media.ts
12141
12189
  const hotspotSchema = z.object({
12142
12190
  x: z.number().min(0).max(1),
@@ -17256,12 +17304,6 @@ const footerVariant = z.enum([
17256
17304
  "split"
17257
17305
  ]);
17258
17306
  const footerMaxWidth = z.enum(["container", "full"]);
17259
- const footerMode = z.enum([
17260
- "default",
17261
- "blocks",
17262
- "default+blocks",
17263
- "none"
17264
- ]);
17265
17307
  const footerNavLayoutMode = z.enum([
17266
17308
  "stack",
17267
17309
  "inline",
@@ -17350,9 +17392,9 @@ const footerSchema = z.object({
17350
17392
  /**
17351
17393
  * SDK-only footer rendering mode.
17352
17394
  *
17353
- * Backwards compatible: missing/undefined behaves as 'default'.
17395
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
17354
17396
  */
17355
- mode: footerMode.optional(),
17397
+ mode: footerModeSchema.optional(),
17356
17398
  variant: footerVariant,
17357
17399
  maxWidth: footerMaxWidth,
17358
17400
  showLogoText: z.boolean().optional(),
@@ -27234,6 +27276,15 @@ const publicEventBaseSchema = z.object({
27234
27276
  timeZone: z.string(),
27235
27277
  pricing: publicEventPricingSchema,
27236
27278
  paymentTerms: blockBookingPaymentTermsSchema,
27279
+ cancellationPolicy: z.object({ refunds: z.object({
27280
+ mode: z.enum([
27281
+ "never",
27282
+ "always",
27283
+ "cutoff"
27284
+ ]),
27285
+ cutoffHours: z.number(),
27286
+ method: z.enum(["original_payment_method", "site_credit"])
27287
+ }) }),
27237
27288
  consent: blockBookingConsentSchema.nullable(),
27238
27289
  accessRestriction: accessRestrictionSchema,
27239
27290
  allowedCategoryIds: z.array(z.string()),
@@ -37330,6 +37381,7 @@ function shellLabelForRegistrationStep(step, events) {
37330
37381
  case "redirecting":
37331
37382
  case "verifying-payment":
37332
37383
  case "verifying-timeout":
37384
+ case "payment-status":
37333
37385
  case "payment-failed": return "Details";
37334
37386
  }
37335
37387
  }
@@ -58238,43 +58290,6 @@ const MemoBlockSection = React$1.memo(function MemoBlockSection({ themeResources
58238
58290
  return prev.entry === next.entry && prev.audience === next.audience && prev.registry === next.registry && prev.dataContext === next.dataContext && prev.themeResources === next.themeResources && prev.routeMap === next.routeMap && prev.wrapBlock === next.wrapBlock && prev.imageResolveContext === next.imageResolveContext && prev.previewAuthoring === next.previewAuthoring;
58239
58291
  });
58240
58292
  //#endregion
58241
- //#region ../theme-core/src/footer/mode.ts
58242
- /**
58243
- * Resolve what to render for the footer given the current mode and whether the
58244
- * site is SDK-managed.
58245
- *
58246
- * Backwards compatible: missing/undefined mode is treated as 'default'.
58247
- */
58248
- function resolveFooterRenderPlan(params) {
58249
- if (!params.isSdkSite) return {
58250
- mode: "default",
58251
- renderDefaultFooter: true,
58252
- renderFooterBlocks: false
58253
- };
58254
- switch (params.mode ?? "default") {
58255
- case "blocks": return {
58256
- mode: "blocks",
58257
- renderDefaultFooter: false,
58258
- renderFooterBlocks: true
58259
- };
58260
- case "default+blocks": return {
58261
- mode: "default+blocks",
58262
- renderDefaultFooter: true,
58263
- renderFooterBlocks: true
58264
- };
58265
- case "none": return {
58266
- mode: "none",
58267
- renderDefaultFooter: false,
58268
- renderFooterBlocks: false
58269
- };
58270
- default: return {
58271
- mode: "default",
58272
- renderDefaultFooter: true,
58273
- renderFooterBlocks: false
58274
- };
58275
- }
58276
- }
58277
- //#endregion
58278
58293
  //#region ../theme-core/src/generated/containerResponsiveThemeCss.ts
58279
58294
  /**
58280
58295
  * Auto-generated by scripts/generate-container-responsive-css.ts
@@ -73214,7 +73229,7 @@ async function Layout(props) {
73214
73229
  if (footer === true) {
73215
73230
  const footerPlan = resolveFooterRenderPlan({
73216
73231
  isSdkSite: Boolean(site.is_sdk_site),
73217
- mode: theme.footer?.mode
73232
+ mode: resolveSdkFooterMode(siteData.sdkConfig)
73218
73233
  });
73219
73234
  const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */ jsx(PageRenderer, {
73220
73235
  theme,
@@ -74543,6 +74558,17 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
74543
74558
  //#endregion
74544
74559
  //#region ../api/src/publicEventEndpointDefinitions.ts
74545
74560
  const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
74561
+ checkPublicEventRegistrationNextStep: {
74562
+ path: "/public/sites/{siteId}/events/registration-next-step",
74563
+ method: "POST",
74564
+ auth: "public",
74565
+ responseKind: "json",
74566
+ errors: [
74567
+ "validation:invalid_input",
74568
+ "auth:forbidden",
74569
+ "server:internal_error"
74570
+ ]
74571
+ },
74546
74572
  listPublicEventCalendarWindow: {
74547
74573
  path: "/public/sites/{siteId}/events/calendar-window",
74548
74574
  method: "GET",
@@ -75639,11 +75665,14 @@ const sdkSiteStyleConfigSchema = z.object({
75639
75665
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
75640
75666
  containerOptions: sdkContainerOptionsConfigSchema.optional()
75641
75667
  });
75642
- const sdkSiteLayoutConfigSchema = z.object({ footerBlocks: z.array(z.object({
75643
- id: z.string().min(1).optional(),
75644
- kind: z.string().min(1),
75645
- content: z.record(z.string(), z.unknown()).optional()
75646
- })).optional() });
75668
+ const sdkSiteLayoutConfigSchema = z.object({
75669
+ footerMode: footerModeSchema.optional(),
75670
+ footerBlocks: z.array(z.object({
75671
+ id: z.string().min(1).optional(),
75672
+ kind: z.string().min(1),
75673
+ content: z.record(z.string(), z.unknown()).optional()
75674
+ })).optional()
75675
+ });
75647
75676
  const sdkFieldSelectOptionSchema = z.object({
75648
75677
  value: z.string(),
75649
75678
  label: z.string()
@@ -12662,6 +12662,54 @@ function defaultTypographyForRecipe(recipe) {
12662
12662
  case "classic-serif": return classicSerifTypography;
12663
12663
  }
12664
12664
  }
12665
+ //#endregion
12666
+ //#region ../theme-core/src/footer/mode.ts
12667
+ const footerModeSchema = z$1.enum([
12668
+ "default",
12669
+ "blocks",
12670
+ "default+blocks",
12671
+ "none"
12672
+ ]);
12673
+ /** Reads only SDK footer intent; unrelated config and theme fields are not authorities. */
12674
+ function resolveSdkFooterMode(config) {
12675
+ const parsed = z$1.object({ layout: z$1.object({ footerMode: footerModeSchema.optional() }).optional() }).safeParse(config);
12676
+ return parsed.success ? parsed.data.layout?.footerMode ?? "default" : "default";
12677
+ }
12678
+ /**
12679
+ * Resolve what to render for the footer given the current mode and whether the
12680
+ * site is SDK-managed.
12681
+ *
12682
+ * Backwards compatible: missing/undefined mode is treated as 'default'.
12683
+ */
12684
+ function resolveFooterRenderPlan(params) {
12685
+ if (!params.isSdkSite) return {
12686
+ mode: "default",
12687
+ renderDefaultFooter: true,
12688
+ renderFooterBlocks: false
12689
+ };
12690
+ switch (params.mode ?? "default") {
12691
+ case "blocks": return {
12692
+ mode: "blocks",
12693
+ renderDefaultFooter: false,
12694
+ renderFooterBlocks: true
12695
+ };
12696
+ case "default+blocks": return {
12697
+ mode: "default+blocks",
12698
+ renderDefaultFooter: true,
12699
+ renderFooterBlocks: true
12700
+ };
12701
+ case "none": return {
12702
+ mode: "none",
12703
+ renderDefaultFooter: false,
12704
+ renderFooterBlocks: false
12705
+ };
12706
+ default: return {
12707
+ mode: "default",
12708
+ renderDefaultFooter: true,
12709
+ renderFooterBlocks: false
12710
+ };
12711
+ }
12712
+ }
12665
12713
  const hotspotSchema = z$1.object({
12666
12714
  x: z$1.number().min(0).max(1),
12667
12715
  y: z$1.number().min(0).max(1),
@@ -17780,12 +17828,6 @@ const footerVariant = z$1.enum([
17780
17828
  "split"
17781
17829
  ]);
17782
17830
  const footerMaxWidth = z$1.enum(["container", "full"]);
17783
- const footerMode = z$1.enum([
17784
- "default",
17785
- "blocks",
17786
- "default+blocks",
17787
- "none"
17788
- ]);
17789
17831
  const footerNavLayoutMode = z$1.enum([
17790
17832
  "stack",
17791
17833
  "inline",
@@ -17874,9 +17916,9 @@ const footerSchema = z$1.object({
17874
17916
  /**
17875
17917
  * SDK-only footer rendering mode.
17876
17918
  *
17877
- * Backwards compatible: missing/undefined behaves as 'default'.
17919
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
17878
17920
  */
17879
- mode: footerMode.optional(),
17921
+ mode: footerModeSchema.optional(),
17880
17922
  variant: footerVariant,
17881
17923
  maxWidth: footerMaxWidth,
17882
17924
  showLogoText: z$1.boolean().optional(),
@@ -28110,6 +28152,15 @@ const publicEventBaseSchema = z$1.object({
28110
28152
  timeZone: z$1.string(),
28111
28153
  pricing: publicEventPricingSchema,
28112
28154
  paymentTerms: blockBookingPaymentTermsSchema,
28155
+ cancellationPolicy: z$1.object({ refunds: z$1.object({
28156
+ mode: z$1.enum([
28157
+ "never",
28158
+ "always",
28159
+ "cutoff"
28160
+ ]),
28161
+ cutoffHours: z$1.number(),
28162
+ method: z$1.enum(["original_payment_method", "site_credit"])
28163
+ }) }),
28113
28164
  consent: blockBookingConsentSchema.nullable(),
28114
28165
  accessRestriction: accessRestrictionSchema,
28115
28166
  allowedCategoryIds: z$1.array(z$1.string()),
@@ -37980,8 +38031,6 @@ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
37980
38031
  if (!needsPaymentStep) return baseSteps;
37981
38032
  return [...baseSteps, "select-payment"];
37982
38033
  }
37983
- //#endregion
37984
- //#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
37985
38034
  function eventMatchesOccurrenceId(event, occurrenceId) {
37986
38035
  return event.registrationSubject.kind === "occurrence" && (event.registrationSubject.occurrenceId === occurrenceId || event.selectionId === occurrenceId);
37987
38036
  }
@@ -38238,6 +38287,7 @@ function shellLabelForRegistrationStep(step, events) {
38238
38287
  case "redirecting":
38239
38288
  case "verifying-payment":
38240
38289
  case "verifying-timeout":
38290
+ case "payment-status":
38241
38291
  case "payment-failed": return "Details";
38242
38292
  }
38243
38293
  }
@@ -72718,41 +72768,6 @@ function ThemeScope$1({ theme, children, themeId = "theme-default", responsiveMo
72718
72768
  children
72719
72769
  });
72720
72770
  }
72721
- /**
72722
- * Resolve what to render for the footer given the current mode and whether the
72723
- * site is SDK-managed.
72724
- *
72725
- * Backwards compatible: missing/undefined mode is treated as 'default'.
72726
- */
72727
- function resolveFooterRenderPlan(params) {
72728
- if (!params.isSdkSite) return {
72729
- mode: "default",
72730
- renderDefaultFooter: true,
72731
- renderFooterBlocks: false
72732
- };
72733
- switch (params.mode ?? "default") {
72734
- case "blocks": return {
72735
- mode: "blocks",
72736
- renderDefaultFooter: false,
72737
- renderFooterBlocks: true
72738
- };
72739
- case "default+blocks": return {
72740
- mode: "default+blocks",
72741
- renderDefaultFooter: true,
72742
- renderFooterBlocks: true
72743
- };
72744
- case "none": return {
72745
- mode: "none",
72746
- renderDefaultFooter: false,
72747
- renderFooterBlocks: false
72748
- };
72749
- default: return {
72750
- mode: "default",
72751
- renderDefaultFooter: true,
72752
- renderFooterBlocks: false
72753
- };
72754
- }
72755
- }
72756
72771
  //#endregion
72757
72772
  //#region ../theme-core/src/ResponsiveScope.tsx
72758
72773
  /**
@@ -75445,7 +75460,7 @@ async function Layout(props) {
75445
75460
  if (footer === true) {
75446
75461
  const footerPlan = resolveFooterRenderPlan({
75447
75462
  isSdkSite: Boolean(site.is_sdk_site),
75448
- mode: theme.footer?.mode
75463
+ mode: resolveSdkFooterMode(siteData.sdkConfig)
75449
75464
  });
75450
75465
  const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */ jsx(PageRenderer, {
75451
75466
  theme,
@@ -76841,6 +76856,17 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
76841
76856
  //#endregion
76842
76857
  //#region ../api/src/publicEventEndpointDefinitions.ts
76843
76858
  const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
76859
+ checkPublicEventRegistrationNextStep: {
76860
+ path: "/public/sites/{siteId}/events/registration-next-step",
76861
+ method: "POST",
76862
+ auth: "public",
76863
+ responseKind: "json",
76864
+ errors: [
76865
+ "validation:invalid_input",
76866
+ "auth:forbidden",
76867
+ "server:internal_error"
76868
+ ]
76869
+ },
76844
76870
  listPublicEventCalendarWindow: {
76845
76871
  path: "/public/sites/{siteId}/events/calendar-window",
76846
76872
  method: "GET",
@@ -78066,11 +78092,14 @@ const sdkSiteStyleConfigSchema = z$1.object({
78066
78092
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
78067
78093
  containerOptions: sdkContainerOptionsConfigSchema.optional()
78068
78094
  });
78069
- const sdkSiteLayoutConfigSchema = z$1.object({ footerBlocks: z$1.array(z$1.object({
78070
- id: z$1.string().min(1).optional(),
78071
- kind: z$1.string().min(1),
78072
- content: z$1.record(z$1.string(), z$1.unknown()).optional()
78073
- })).optional() });
78095
+ const sdkSiteLayoutConfigSchema = z$1.object({
78096
+ footerMode: footerModeSchema.optional(),
78097
+ footerBlocks: z$1.array(z$1.object({
78098
+ id: z$1.string().min(1).optional(),
78099
+ kind: z$1.string().min(1),
78100
+ content: z$1.record(z$1.string(), z$1.unknown()).optional()
78101
+ })).optional()
78102
+ });
78074
78103
  const sdkFieldSelectOptionSchema = z$1.object({
78075
78104
  value: z$1.string(),
78076
78105
  label: z$1.string()
@@ -2535,6 +2535,17 @@ var init_src$3 = __esmMin((() => {
2535
2535
  init_contentMediaAudit();
2536
2536
  init_contentMediaAuditFieldAdapter();
2537
2537
  init_contentMediaSnapshotAudit();
2538
+ }));
2539
+ //#endregion
2540
+ //#region ../theme-core/src/footer/mode.ts
2541
+ var footerModeSchema;
2542
+ var init_mode = __esmMin((() => {
2543
+ footerModeSchema = z.enum([
2544
+ "default",
2545
+ "blocks",
2546
+ "default+blocks",
2547
+ "none"
2548
+ ]);
2538
2549
  })), hotspotSchema, rotationSchema, rectSchema, aspectCropSchema, transformSchema, mediaPosterSchema, mediaBaseSchema, mediaIdentifierSchema, imageMediaSchema, videoMediaSchema, audioMediaSchema, documentMediaSchema, spreadsheetMediaSchema, archiveMediaSchema, mediaSchema, persistableMediaBaseSchema;
2539
2550
  var init_media$4 = __esmMin((() => {
2540
2551
  hotspotSchema = z.object({
@@ -8165,8 +8176,9 @@ var init_boxBackgroundSchema = __esmMin((() => {
8165
8176
  showVideoOnMobile: z.boolean().nullable().optional()
8166
8177
  })
8167
8178
  ]);
8168
- })), axesSchema, typographyStyleSchema, bodyTypographyStyleSchema, headingSizeSchema, headingTypographyOverridesSchema, headingTypographyStyleSchema, proseLinkUnderlineStyleSchema, proseLinkUnderlineThicknessSchema, proseLinkUnderlineOffsetSchema, proseLinkStyleSchema, semanticSpacingSchema, boxRoundedSchema, noHeadingDecorationSchema, visibleHeadingDecorationSchema, headingDecorationSchema, headingDecorationOverrideSchema, accordionIconTreatmentSchema, sectionStylesOverrideSchema, containerStylesOverrideSchema, cardBorderOverrideSchema, cardStylesOverrideSchema, blockStyleOverridesSchema, blockThemeOverrideSchema, typographyScaleSchema, eyebrowTypographyStyleSchema, typographySchema, spaceSchema, corners, shadow, border, motion, inputStyle, headerPositioningValues, headerPositioning, headerNavStyle, navFontWeight, headerMaxWidth, headerBorderSchema, logoStyleSchema, headerLogoTextSchema, dropdownStyleSchema, headerCtaGapSchema, headerCtaTreatmentSchema, navContainerSchema, headerBackgroundSchema, headerSchema, footerVariant, footerMaxWidth, footerMode, footerNavLayoutMode, footerNavLayoutAlign, footerSpacing, footerLogoPlacement, footerLogoSize, footerLogoMaxHeight, footerBottomTextLinkStyleSchema, footerBottomBarSchema, footerNavLayoutSchema, footerLogoSchema, footerSchema, containerPaddingPresetSchema, layoutSchema, heroTypographySizeSchema, heroTypographyLineHeightSchema, heroResponsiveTypographySchema, heroTypographySchema, heroSchema, bodyTextIntroTypographySizeSchema, bodyTextSchema, testimonialQuoteTreatmentSchema, themeSchema;
8179
+ })), axesSchema, typographyStyleSchema, bodyTypographyStyleSchema, headingSizeSchema, headingTypographyOverridesSchema, headingTypographyStyleSchema, proseLinkUnderlineStyleSchema, proseLinkUnderlineThicknessSchema, proseLinkUnderlineOffsetSchema, proseLinkStyleSchema, semanticSpacingSchema, boxRoundedSchema, noHeadingDecorationSchema, visibleHeadingDecorationSchema, headingDecorationSchema, headingDecorationOverrideSchema, accordionIconTreatmentSchema, sectionStylesOverrideSchema, containerStylesOverrideSchema, cardBorderOverrideSchema, cardStylesOverrideSchema, blockStyleOverridesSchema, blockThemeOverrideSchema, typographyScaleSchema, eyebrowTypographyStyleSchema, typographySchema, spaceSchema, corners, shadow, border, motion, inputStyle, headerPositioningValues, headerPositioning, headerNavStyle, navFontWeight, headerMaxWidth, headerBorderSchema, logoStyleSchema, headerLogoTextSchema, dropdownStyleSchema, headerCtaGapSchema, headerCtaTreatmentSchema, navContainerSchema, headerBackgroundSchema, headerSchema, footerVariant, footerMaxWidth, footerNavLayoutMode, footerNavLayoutAlign, footerSpacing, footerLogoPlacement, footerLogoSize, footerLogoMaxHeight, footerBottomTextLinkStyleSchema, footerBottomBarSchema, footerNavLayoutSchema, footerLogoSchema, footerSchema, containerPaddingPresetSchema, layoutSchema, heroTypographySizeSchema, heroTypographyLineHeightSchema, heroResponsiveTypographySchema, heroTypographySchema, heroSchema, bodyTextIntroTypographySizeSchema, bodyTextSchema, testimonialQuoteTreatmentSchema, themeSchema;
8169
8180
  var init_schema$3 = __esmMin((() => {
8181
+ init_mode();
8170
8182
  init_media$4();
8171
8183
  init_schema$4();
8172
8184
  init_buttons();
@@ -8665,12 +8677,6 @@ var init_schema$3 = __esmMin((() => {
8665
8677
  "split"
8666
8678
  ]);
8667
8679
  footerMaxWidth = z.enum(["container", "full"]);
8668
- footerMode = z.enum([
8669
- "default",
8670
- "blocks",
8671
- "default+blocks",
8672
- "none"
8673
- ]);
8674
8680
  footerNavLayoutMode = z.enum([
8675
8681
  "stack",
8676
8682
  "inline",
@@ -8759,9 +8765,9 @@ var init_schema$3 = __esmMin((() => {
8759
8765
  /**
8760
8766
  * SDK-only footer rendering mode.
8761
8767
  *
8762
- * Backwards compatible: missing/undefined behaves as 'default'.
8768
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
8763
8769
  */
8764
- mode: footerMode.optional(),
8770
+ mode: footerModeSchema.optional(),
8765
8771
  variant: footerVariant,
8766
8772
  maxWidth: footerMaxWidth,
8767
8773
  showLogoText: z.boolean().optional(),
@@ -9332,6 +9338,15 @@ var init_schemas = __esmMin((() => {
9332
9338
  timeZone: z.string(),
9333
9339
  pricing: publicEventPricingSchema,
9334
9340
  paymentTerms: blockBookingPaymentTermsSchema,
9341
+ cancellationPolicy: z.object({ refunds: z.object({
9342
+ mode: z.enum([
9343
+ "never",
9344
+ "always",
9345
+ "cutoff"
9346
+ ]),
9347
+ cutoffHours: z.number(),
9348
+ method: z.enum(["original_payment_method", "site_credit"])
9349
+ }) }),
9335
9350
  consent: blockBookingConsentSchema.nullable(),
9336
9351
  accessRestriction: accessRestrictionSchema,
9337
9352
  allowedCategoryIds: z.array(z.string()),
@@ -10886,6 +10901,17 @@ var init_publicEventEndpointDefinitions = __esmMin((() => {
10886
10901
  init_src$4();
10887
10902
  init_defineEndpointDefinitions();
10888
10903
  PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10904
+ checkPublicEventRegistrationNextStep: {
10905
+ path: "/public/sites/{siteId}/events/registration-next-step",
10906
+ method: "POST",
10907
+ auth: "public",
10908
+ responseKind: "json",
10909
+ errors: [
10910
+ "validation:invalid_input",
10911
+ "auth:forbidden",
10912
+ "server:internal_error"
10913
+ ]
10914
+ },
10889
10915
  listPublicEventCalendarWindow: {
10890
10916
  path: "/public/sites/{siteId}/events/calendar-window",
10891
10917
  method: "GET",
@@ -19319,6 +19345,12 @@ var init_headerOpeningForeground = __esmMin((() => {
19319
19345
  init_tokens();
19320
19346
  }));
19321
19347
  //#endregion
19348
+ //#region ../theme-core/src/site-styles/effectivePageDesign.ts
19349
+ var init_effectivePageDesign = __esmMin((() => {
19350
+ init_pageDesignIntent();
19351
+ init_siteStyleBlockPolicies();
19352
+ }));
19353
+ //#endregion
19322
19354
  //#region ../theme-core/src/site-styles/pageDesignAuthority.ts
19323
19355
  function validateBlockSequence(snapshots, ctx) {
19324
19356
  for (const issue of collectBlockSequenceIssues(snapshots)) ctx.addIssue(issue);
@@ -19522,6 +19554,7 @@ var init_site_styles = __esmMin((() => {
19522
19554
  init_lookResolution();
19523
19555
  init_lookOptionGroups();
19524
19556
  init_logoBranding();
19557
+ init_effectivePageDesign();
19525
19558
  init_pageDesignAuthority();
19526
19559
  init_pageDesignEditorErrors();
19527
19560
  init_pageDesignEditorCapabilities();
@@ -19549,9 +19582,6 @@ var init_site_styles = __esmMin((() => {
19549
19582
  init_types$7();
19550
19583
  }));
19551
19584
  //#endregion
19552
- //#region ../theme-core/src/footer/mode.ts
19553
- var init_mode = __esmMin((() => {}));
19554
- //#endregion
19555
19585
  //#region ../theme-core/src/styles/shadow.ts
19556
19586
  var init_shadow = __esmMin((() => {
19557
19587
  init_colorStyles();
@@ -35356,6 +35386,7 @@ function shellLabelForRegistrationStep(step, events) {
35356
35386
  case "redirecting":
35357
35387
  case "verifying-payment":
35358
35388
  case "verifying-timeout":
35389
+ case "payment-status":
35359
35390
  case "payment-failed": return "Details";
35360
35391
  }
35361
35392
  }
@@ -45997,6 +46028,7 @@ function unsafeRetypeZodSchema(schema) {
45997
46028
  }
45998
46029
  var navIdListSchema, dashboardNavVisibilityBaseSchema, dashboardNavVisibilityRolesSchema, dashboardNavVisibilitySchema, dashboardNavigationConfigSchema, dashboardConfigSchema, fieldDefinitionInputSchema, sdkLoaderEndpointSchema, loaderFallbackScalarSchema, loaderParamBindingSchema, loaderParamValueSchema, sdkConfigLoaderSchema, sdkDataLoadersSchema, sdkCustomBlockIdSchema, sdkCustomBlockInputSchema, sdkBlockFieldExtensionInputSchema, sdkBlockFieldExtensionsInputSchema, sdkThemePaletteSchema, sdkThemeConfigSchema, sdkSectionBackgroundSchema, sdkSectionOptionsConfigSchema, sdkContainerOptionsConfigSchema, sdkSiteStyleConfigSchema, sdkSiteLayoutConfigSchema, sdkFieldSelectOptionSchema, sdkBlockFieldConfigSchema, sdkBlockFieldOptionsMapSchema, sdkContentTypeTemplateConfigSchema, sdkContentTypeOrderingConfigSchema, sdkContentTypeConfigSchema, sdkContentConfigSchema, SDK_WORKFLOW_ID_PATTERN, SDK_WORKFLOW_ENDPOINT_PATTERN, sdkWorkflowIdSchema, sdkWorkflowEndpointSchema, sdkWorkflowManualTriggerSchema, sdkWorkflowTriggerFieldSchema, sdkWorkflowFieldChangedConditionSchema, sdkWorkflowFieldEmptyConditionSchema, sdkWorkflowEntryDraftUpdatedTriggerSchema, sdkWorkflowTriggerSchema, sdkWorkflowConfirmationSchema, sdkWorkflowConfigSchema, sdkWorkflowsSchema, riverbankSiteConfigInputSchema;
45999
46030
  var init_contracts = __esmMin((() => {
46031
+ init_mode();
46000
46032
  init_src$2();
46001
46033
  init_src$4();
46002
46034
  navIdListSchema = z.preprocess((value) => {
@@ -46139,11 +46171,14 @@ var init_contracts = __esmMin((() => {
46139
46171
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
46140
46172
  containerOptions: sdkContainerOptionsConfigSchema.optional()
46141
46173
  });
46142
- sdkSiteLayoutConfigSchema = z.object({ footerBlocks: z.array(z.object({
46143
- id: z.string().min(1).optional(),
46144
- kind: z.string().min(1),
46145
- content: z.record(z.string(), z.unknown()).optional()
46146
- })).optional() });
46174
+ sdkSiteLayoutConfigSchema = z.object({
46175
+ footerMode: footerModeSchema.optional(),
46176
+ footerBlocks: z.array(z.object({
46177
+ id: z.string().min(1).optional(),
46178
+ kind: z.string().min(1),
46179
+ content: z.record(z.string(), z.unknown()).optional()
46180
+ })).optional()
46181
+ });
46147
46182
  sdkFieldSelectOptionSchema = z.object({
46148
46183
  value: z.string(),
46149
46184
  label: z.string()