@riverbankcms/sdk 0.141.0 → 0.142.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 (98) hide show
  1. package/dist/{PreviewEditorSidebar-Q-fy9GYw.mjs → PreviewEditorSidebar-Dk6Dt11f.mjs} +24 -15
  2. package/dist/{PreviewEditorUI-LYGzgk85.mjs → PreviewEditorUI-D6EQTsCA.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-CN0ewic5.mjs → PreviewQueryProvider-CC-EPkyQ.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-CoPYI5Jq.mjs → SdkPreviewModeRuntime-DH1n4ytY.mjs} +16 -11
  5. package/dist/{SiteChromeCustomizeContext-D8LePX8x.mjs → SiteChromeCustomizeContext-DunIzY0K.mjs} +117 -21
  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 +0 -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/sdkConfig/layout.d.ts +13 -0
  13. package/dist/_dts/api/src/sdkContracts.d.ts +3 -8
  14. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -31
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
  16. package/dist/_dts/billing/src/site-arrangements.d.ts +9 -5
  17. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +56 -0
  18. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +8 -0
  19. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +56 -0
  20. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +1 -2
  21. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3099 -3122
  22. package/dist/_dts/editor-blocks/src/block-editor/ColourFieldOptionsProvider.d.ts +7 -0
  23. package/dist/_dts/editor-blocks/src/block-editor/colourFieldVisibility.d.ts +7 -0
  24. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +2 -0
  25. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  26. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -2
  27. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +3 -6
  28. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -2
  29. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -2
  30. package/dist/_dts/preview-next/src/client/preview/footerInspection.d.ts +16 -0
  31. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +6 -0
  32. package/dist/_dts/sdk/src/config/types.d.ts +2 -18
  33. package/dist/_dts/sdk/src/config/validation.d.ts +6 -0
  34. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -0
  35. package/dist/_dts/sdk/src/version.d.ts +1 -1
  36. package/dist/_dts/theme-core/src/footer/mode.d.ts +10 -1
  37. package/dist/_dts/theme-core/src/schema.d.ts +1 -7
  38. package/dist/_dts/theme-core/src/site-styles/effectivePageDesign.d.ts +32 -0
  39. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  40. package/dist/client/{BookingConsentAgreement-xJeYNdnb.mjs → BookingConsentAgreement-CnJeq3_r.mjs} +2 -2
  41. package/dist/client/{DiscountCodeDisclosure-DdT6uzl9.mjs → DiscountCodeDisclosure-BINEO6J9.mjs} +1 -1
  42. package/dist/client/{EventCombined.client-Cp28uYuM.mjs → EventCombined.client-srxNQ6sZ.mjs} +5 -5
  43. package/dist/client/{EventListing.client-CD6AJsMr.mjs → EventListing.client-DbyVyGkX.mjs} +2 -2
  44. package/dist/client/{LeafletStaticMap-DBsAi9-e.mjs → LeafletStaticMap-B-wpijzL.mjs} +1 -1
  45. package/dist/client/{accordion-6dwbOKYR.mjs → accordion-B-iUXU7n.mjs} +1 -1
  46. package/dist/client/{bookingForm-CZE9_qPQ.mjs → bookingForm-BXYPke5q.mjs} +5 -5
  47. package/dist/client/bookings.mjs +19 -9
  48. package/dist/client/{carousel-7VHGQARz.mjs → carousel-Cr4aj63H.mjs} +1 -1
  49. package/dist/client/{cart-Qg_mvQhh.mjs → cart-DibP9WWa.mjs} +3 -3
  50. package/dist/client/{checkout-D84rpgdr.mjs → checkout-CrSBVnL8.mjs} +3 -3
  51. package/dist/client/client.mjs +42 -54
  52. package/dist/client/{context-Ctp3T0Wr.mjs → context-Ces-AgdR.mjs} +1 -1
  53. package/dist/client/{dates-DJKFcI_N.mjs → dates-BXyNeNhB.mjs} +2 -2
  54. package/dist/client/{eventCalendar-CK31z3vs.mjs → eventCalendar-HwpPeqrH.mjs} +7 -7
  55. package/dist/client/{eventCombined-DiXd-ewn.mjs → eventCombined-BpFUkuEI.mjs} +3 -3
  56. package/dist/client/{eventDetails-CTRgt2DK.mjs → eventDetails-DK_agiWy.mjs} +4 -4
  57. package/dist/client/{eventListing-Dy9vi_j_.mjs → eventListing-DhzHqP1c.mjs} +3 -3
  58. package/dist/client/{eventRegistration-CnalYMr2.mjs → eventRegistration-BdQ_Dn2d.mjs} +6 -7
  59. package/dist/client/{form-eUiMveTT.mjs → form-B1frcuzy.mjs} +2 -2
  60. package/dist/client/{headerSection-Dy9kQpB1.mjs → headerSection-CT5z460s.mjs} +2 -2
  61. package/dist/client/hooks.mjs +27 -13
  62. package/dist/client/{locationMap-DalCmWU0.mjs → locationMap-CIQXB9i2.mjs} +2 -2
  63. package/dist/client/{newsletterForm-SDDPvhS0.mjs → newsletterForm-BYNYZSes.mjs} +2 -2
  64. package/dist/client/{pricing-OcMz4SnX.mjs → pricing-CbTlAsmt.mjs} +1 -1
  65. package/dist/client/{productDetail-BQrgHElM.mjs → productDetail-CR7Z3yjS.mjs} +3 -3
  66. package/dist/client/{productList-OnPn_UJj.mjs → productList-DXj00vzR.mjs} +3 -3
  67. package/dist/client/{propsDecoder-zBdsnS-N.mjs → propsDecoder-DiLiBdek.mjs} +19 -8
  68. package/dist/client/rendering/client.mjs +30 -11
  69. package/dist/client/rendering/islands.mjs +17 -17
  70. package/dist/client/rendering.mjs +85 -57
  71. package/dist/client/{scrollToBlock-BNM4Ob2Y.mjs → scrollToBlock-CrcbBf0h.mjs} +1 -1
  72. package/dist/client/{shop-Bv1fPTwQ.mjs → shop-DgqiB_1b.mjs} +6 -6
  73. package/dist/client/{shop-commerce-D4KNGaW8.mjs → shop-commerce-D_J781in.mjs} +5 -5
  74. package/dist/client/{shop-commerce-store-2N5EV0Rc.mjs → shop-commerce-store-PGUbDwqe.mjs} +1 -1
  75. package/dist/client/{shopShared-DvJGdHTV.mjs → shopShared-C_Bb2zwG.mjs} +3 -3
  76. package/dist/client/{useEventFilters-BBBvGDHQ.mjs → useEventFilters-CM17Xpr1.mjs} +5 -5
  77. package/dist/preview-next/before-render.mjs +0 -37
  78. package/dist/preview-next/client/runtime.mjs +4 -4
  79. package/dist/preview-next/keepAlive.mjs +0 -37
  80. package/dist/preview-next/middleware.mjs +0 -37
  81. package/dist/{previewAuthStore-Gjb6r6vz.mjs → previewAuthStore-oVttoRDO.mjs} +0 -37
  82. package/dist/{sdk-runtime-Defnbfzw.mjs → sdk-runtime-DhmuRhIX.mjs} +2 -2
  83. package/dist/{separator-CZXO3Sb0.mjs → separator-C3hlg9LH.mjs} +1 -1
  84. package/dist/server/components.mjs +68 -49
  85. package/dist/server/config-validation.mjs +31 -14
  86. package/dist/server/config.mjs +31 -14
  87. package/dist/server/data.mjs +27 -13
  88. package/dist/server/index.mjs +1 -38
  89. package/dist/server/next.mjs +28 -51
  90. package/dist/server/page-converter.mjs +19 -8
  91. package/dist/server/prebuild.mjs +1 -1
  92. package/dist/server/rendering/server.mjs +68 -51
  93. package/dist/server/rendering.mjs +68 -49
  94. package/dist/server/routing.mjs +40 -17
  95. package/dist/server/server.mjs +28 -51
  96. package/dist/server/theme-bridge.mjs +10 -8
  97. package/dist/server/theme.mjs +10 -8
  98. package/package.json +1 -1
@@ -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()),
@@ -58238,43 +58289,6 @@ const MemoBlockSection = React$1.memo(function MemoBlockSection({ themeResources
58238
58289
  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
58290
  });
58240
58291
  //#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
58292
  //#region ../theme-core/src/generated/containerResponsiveThemeCss.ts
58279
58293
  /**
58280
58294
  * Auto-generated by scripts/generate-container-responsive-css.ts
@@ -73214,7 +73228,7 @@ async function Layout(props) {
73214
73228
  if (footer === true) {
73215
73229
  const footerPlan = resolveFooterRenderPlan({
73216
73230
  isSdkSite: Boolean(site.is_sdk_site),
73217
- mode: theme.footer?.mode
73231
+ mode: resolveSdkFooterMode(siteData.sdkConfig)
73218
73232
  });
73219
73233
  const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */ jsx(PageRenderer, {
73220
73234
  theme,
@@ -75639,11 +75653,14 @@ const sdkSiteStyleConfigSchema = z.object({
75639
75653
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
75640
75654
  containerOptions: sdkContainerOptionsConfigSchema.optional()
75641
75655
  });
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() });
75656
+ const sdkSiteLayoutConfigSchema = z.object({
75657
+ footerMode: footerModeSchema.optional(),
75658
+ footerBlocks: z.array(z.object({
75659
+ id: z.string().min(1).optional(),
75660
+ kind: z.string().min(1),
75661
+ content: z.record(z.string(), z.unknown()).optional()
75662
+ })).optional()
75663
+ });
75647
75664
  const sdkFieldSelectOptionSchema = z.object({
75648
75665
  value: z.string(),
75649
75666
  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()),
@@ -72718,41 +72769,6 @@ function ThemeScope$1({ theme, children, themeId = "theme-default", responsiveMo
72718
72769
  children
72719
72770
  });
72720
72771
  }
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
72772
  //#endregion
72757
72773
  //#region ../theme-core/src/ResponsiveScope.tsx
72758
72774
  /**
@@ -75445,7 +75461,7 @@ async function Layout(props) {
75445
75461
  if (footer === true) {
75446
75462
  const footerPlan = resolveFooterRenderPlan({
75447
75463
  isSdkSite: Boolean(site.is_sdk_site),
75448
- mode: theme.footer?.mode
75464
+ mode: resolveSdkFooterMode(siteData.sdkConfig)
75449
75465
  });
75450
75466
  const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */ jsx(PageRenderer, {
75451
75467
  theme,
@@ -78066,11 +78082,14 @@ const sdkSiteStyleConfigSchema = z$1.object({
78066
78082
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
78067
78083
  containerOptions: sdkContainerOptionsConfigSchema.optional()
78068
78084
  });
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() });
78085
+ const sdkSiteLayoutConfigSchema = z$1.object({
78086
+ footerMode: footerModeSchema.optional(),
78087
+ footerBlocks: z$1.array(z$1.object({
78088
+ id: z$1.string().min(1).optional(),
78089
+ kind: z$1.string().min(1),
78090
+ content: z$1.record(z$1.string(), z$1.unknown()).optional()
78091
+ })).optional()
78092
+ });
78074
78093
  const sdkFieldSelectOptionSchema = z$1.object({
78075
78094
  value: z$1.string(),
78076
78095
  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()),
@@ -19319,6 +19334,12 @@ var init_headerOpeningForeground = __esmMin((() => {
19319
19334
  init_tokens();
19320
19335
  }));
19321
19336
  //#endregion
19337
+ //#region ../theme-core/src/site-styles/effectivePageDesign.ts
19338
+ var init_effectivePageDesign = __esmMin((() => {
19339
+ init_pageDesignIntent();
19340
+ init_siteStyleBlockPolicies();
19341
+ }));
19342
+ //#endregion
19322
19343
  //#region ../theme-core/src/site-styles/pageDesignAuthority.ts
19323
19344
  function validateBlockSequence(snapshots, ctx) {
19324
19345
  for (const issue of collectBlockSequenceIssues(snapshots)) ctx.addIssue(issue);
@@ -19522,6 +19543,7 @@ var init_site_styles = __esmMin((() => {
19522
19543
  init_lookResolution();
19523
19544
  init_lookOptionGroups();
19524
19545
  init_logoBranding();
19546
+ init_effectivePageDesign();
19525
19547
  init_pageDesignAuthority();
19526
19548
  init_pageDesignEditorErrors();
19527
19549
  init_pageDesignEditorCapabilities();
@@ -19549,9 +19571,6 @@ var init_site_styles = __esmMin((() => {
19549
19571
  init_types$7();
19550
19572
  }));
19551
19573
  //#endregion
19552
- //#region ../theme-core/src/footer/mode.ts
19553
- var init_mode = __esmMin((() => {}));
19554
- //#endregion
19555
19574
  //#region ../theme-core/src/styles/shadow.ts
19556
19575
  var init_shadow = __esmMin((() => {
19557
19576
  init_colorStyles();
@@ -45997,6 +46016,7 @@ function unsafeRetypeZodSchema(schema) {
45997
46016
  }
45998
46017
  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
46018
  var init_contracts = __esmMin((() => {
46019
+ init_mode();
46000
46020
  init_src$2();
46001
46021
  init_src$4();
46002
46022
  navIdListSchema = z.preprocess((value) => {
@@ -46139,11 +46159,14 @@ var init_contracts = __esmMin((() => {
46139
46159
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
46140
46160
  containerOptions: sdkContainerOptionsConfigSchema.optional()
46141
46161
  });
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() });
46162
+ sdkSiteLayoutConfigSchema = z.object({
46163
+ footerMode: footerModeSchema.optional(),
46164
+ footerBlocks: z.array(z.object({
46165
+ id: z.string().min(1).optional(),
46166
+ kind: z.string().min(1),
46167
+ content: z.record(z.string(), z.unknown()).optional()
46168
+ })).optional()
46169
+ });
46147
46170
  sdkFieldSelectOptionSchema = z.object({
46148
46171
  value: z.string(),
46149
46172
  label: z.string()
@@ -8098,13 +8098,6 @@ const API_ENDPOINTS$1 = {
8098
8098
  auth: "service",
8099
8099
  responseKind: "json"
8100
8100
  },
8101
- sdkCatalogTheme: {
8102
- path: "/sdk/{siteId}/catalog/theme",
8103
- method: "GET",
8104
- errors: ["server:internal_error"],
8105
- auth: "service",
8106
- responseKind: "json"
8107
- },
8108
8101
  sdkCatalogBlocks: {
8109
8102
  path: "/sdk/{siteId}/catalog/blocks",
8110
8103
  method: "GET",
@@ -8165,12 +8158,6 @@ const API_ENDPOINTS$1 = {
8165
8158
  auth: "service",
8166
8159
  responseKind: "json"
8167
8160
  },
8168
- sdkPullTheme: {
8169
- path: "/sdk/{siteId}/pull/theme",
8170
- method: "GET",
8171
- auth: "service",
8172
- responseKind: "json"
8173
- },
8174
8161
  sdkPullFooter: {
8175
8162
  path: "/sdk/{siteId}/pull/footer",
8176
8163
  method: "GET",
@@ -8277,30 +8264,6 @@ const API_ENDPOINTS$1 = {
8277
8264
  auth: "service",
8278
8265
  responseKind: "json"
8279
8266
  },
8280
- sdkUpsertTheme: {
8281
- path: "/sdk/{siteId}/theme",
8282
- method: "POST",
8283
- auth: "service",
8284
- responseKind: "json",
8285
- errors: [
8286
- "validation:invalid_input",
8287
- "resource:not_found",
8288
- "resource:conflict",
8289
- "server:internal_error"
8290
- ]
8291
- },
8292
- sdkApplySiteStyleSelection: {
8293
- path: "/sdk/{siteId}/theme/style-selection/apply",
8294
- method: "POST",
8295
- auth: "service",
8296
- responseKind: "json",
8297
- errors: [
8298
- "validation:invalid_input",
8299
- "resource:not_found",
8300
- "resource:conflict",
8301
- "server:internal_error"
8302
- ]
8303
- },
8304
8267
  sdkUpsertFooter: {
8305
8268
  path: "/sdk/{siteId}/footer",
8306
8269
  method: "POST",
@@ -9565,7 +9528,7 @@ var SimpleCache = class {
9565
9528
  * 1. This constant
9566
9529
  * 2. The "version" field in package.json
9567
9530
  */
9568
- const SDK_VERSION = "0.141.0";
9531
+ const SDK_VERSION = "0.142.0";
9569
9532
  //#endregion
9570
9533
  //#region src/client/error.ts
9571
9534
  let _Symbol$for;
@@ -9814,6 +9777,14 @@ function formatKeyAsLabel(key) {
9814
9777
  return key.replace(/([A-Z])/g, " $1").replace(/[-_]/g, " ").trim().split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
9815
9778
  }
9816
9779
  //#endregion
9780
+ //#region ../theme-core/src/footer/mode.ts
9781
+ const footerModeSchema = z.enum([
9782
+ "default",
9783
+ "blocks",
9784
+ "default+blocks",
9785
+ "none"
9786
+ ]);
9787
+ //#endregion
9817
9788
  //#region ../theme-core/src/lib/media.ts
9818
9789
  const hotspotSchema = z.object({
9819
9790
  x: z.number().min(0).max(1),
@@ -15856,12 +15827,6 @@ const footerVariant = z.enum([
15856
15827
  "split"
15857
15828
  ]);
15858
15829
  const footerMaxWidth = z.enum(["container", "full"]);
15859
- const footerMode = z.enum([
15860
- "default",
15861
- "blocks",
15862
- "default+blocks",
15863
- "none"
15864
- ]);
15865
15830
  const footerNavLayoutMode = z.enum([
15866
15831
  "stack",
15867
15832
  "inline",
@@ -15950,9 +15915,9 @@ const footerSchema = z.object({
15950
15915
  /**
15951
15916
  * SDK-only footer rendering mode.
15952
15917
  *
15953
- * Backwards compatible: missing/undefined behaves as 'default'.
15918
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
15954
15919
  */
15955
- mode: footerMode.optional(),
15920
+ mode: footerModeSchema.optional(),
15956
15921
  variant: footerVariant,
15957
15922
  maxWidth: footerMaxWidth,
15958
15923
  showLogoText: z.boolean().optional(),
@@ -35946,6 +35911,15 @@ const publicEventBaseSchema = z.object({
35946
35911
  timeZone: z.string(),
35947
35912
  pricing: publicEventPricingSchema,
35948
35913
  paymentTerms: blockBookingPaymentTermsSchema,
35914
+ cancellationPolicy: z.object({ refunds: z.object({
35915
+ mode: z.enum([
35916
+ "never",
35917
+ "always",
35918
+ "cutoff"
35919
+ ]),
35920
+ cutoffHours: z.number(),
35921
+ method: z.enum(["original_payment_method", "site_credit"])
35922
+ }) }),
35949
35923
  consent: blockBookingConsentSchema.nullable(),
35950
35924
  accessRestriction: accessRestrictionSchema,
35951
35925
  allowedCategoryIds: z.array(z.string()),
@@ -49226,11 +49200,14 @@ const sdkSiteStyleConfigSchema = z.object({
49226
49200
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
49227
49201
  containerOptions: sdkContainerOptionsConfigSchema.optional()
49228
49202
  });
49229
- const sdkSiteLayoutConfigSchema = z.object({ footerBlocks: z.array(z.object({
49230
- id: z.string().min(1).optional(),
49231
- kind: z.string().min(1),
49232
- content: z.record(z.string(), z.unknown()).optional()
49233
- })).optional() });
49203
+ const sdkSiteLayoutConfigSchema = z.object({
49204
+ footerMode: footerModeSchema.optional(),
49205
+ footerBlocks: z.array(z.object({
49206
+ id: z.string().min(1).optional(),
49207
+ kind: z.string().min(1),
49208
+ content: z.record(z.string(), z.unknown()).optional()
49209
+ })).optional()
49210
+ });
49234
49211
  const sdkFieldSelectOptionSchema = z.object({
49235
49212
  value: z.string(),
49236
49213
  label: z.string()
@@ -1,6 +1,14 @@
1
1
  import * as React from "react";
2
2
  import { z } from "zod";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region ../theme-core/src/footer/mode.ts
5
+ const footerModeSchema = z.enum([
6
+ "default",
7
+ "blocks",
8
+ "default+blocks",
9
+ "none"
10
+ ]);
11
+ //#endregion
4
12
  //#region ../theme-core/src/lib/media.ts
5
13
  const hotspotSchema = z.object({
6
14
  x: z.number().min(0).max(1),
@@ -5644,12 +5652,6 @@ const footerVariant = z.enum([
5644
5652
  "split"
5645
5653
  ]);
5646
5654
  const footerMaxWidth = z.enum(["container", "full"]);
5647
- const footerMode = z.enum([
5648
- "default",
5649
- "blocks",
5650
- "default+blocks",
5651
- "none"
5652
- ]);
5653
5655
  const footerNavLayoutMode = z.enum([
5654
5656
  "stack",
5655
5657
  "inline",
@@ -5738,9 +5740,9 @@ const footerSchema = z.object({
5738
5740
  /**
5739
5741
  * SDK-only footer rendering mode.
5740
5742
  *
5741
- * Backwards compatible: missing/undefined behaves as 'default'.
5743
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
5742
5744
  */
5743
- mode: footerMode.optional(),
5745
+ mode: footerModeSchema.optional(),
5744
5746
  variant: footerVariant,
5745
5747
  maxWidth: footerMaxWidth,
5746
5748
  showLogoText: z.boolean().optional(),
@@ -636,6 +636,14 @@ z.string().transform((value, ctx) => {
636
636
  return z.NEVER;
637
637
  });
638
638
  //#endregion
639
+ //#region ../theme-core/src/footer/mode.ts
640
+ const footerModeSchema = z.enum([
641
+ "default",
642
+ "blocks",
643
+ "default+blocks",
644
+ "none"
645
+ ]);
646
+ //#endregion
639
647
  //#region ../theme-core/src/lib/media.ts
640
648
  const hotspotSchema = z.object({
641
649
  x: z.number().min(0).max(1),
@@ -5435,12 +5443,6 @@ const footerVariant = z.enum([
5435
5443
  "split"
5436
5444
  ]);
5437
5445
  const footerMaxWidth = z.enum(["container", "full"]);
5438
- const footerMode = z.enum([
5439
- "default",
5440
- "blocks",
5441
- "default+blocks",
5442
- "none"
5443
- ]);
5444
5446
  const footerNavLayoutMode = z.enum([
5445
5447
  "stack",
5446
5448
  "inline",
@@ -5529,9 +5531,9 @@ const footerSchema = z.object({
5529
5531
  /**
5530
5532
  * SDK-only footer rendering mode.
5531
5533
  *
5532
- * Backwards compatible: missing/undefined behaves as 'default'.
5534
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
5533
5535
  */
5534
- mode: footerMode.optional(),
5536
+ mode: footerModeSchema.optional(),
5535
5537
  variant: footerVariant,
5536
5538
  maxWidth: footerMaxWidth,
5537
5539
  showLogoText: z.boolean().optional(),