@riverbankcms/sdk 0.96.0 → 0.99.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 (208) hide show
  1. package/README.md +20 -1
  2. package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
  6. package/dist/_dts/api/src/billing.d.ts +2 -0
  7. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  8. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  9. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  11. package/dist/_dts/api/src/endpoints.d.ts +88 -0
  12. package/dist/_dts/api/src/index.d.ts +3 -2
  13. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  14. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  16. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  17. package/dist/_dts/api/src/siteOperations.d.ts +65 -1
  18. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  19. package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
  20. package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
  21. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
  22. package/dist/_dts/blocks/src/PageRenderer.d.ts +8 -1
  23. package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
  24. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  27. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  28. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  30. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  31. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  32. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  34. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  37. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  38. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  39. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  42. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  43. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  44. package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
  46. package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
  47. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  48. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  58. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  63. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
  65. package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
  66. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
  67. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  68. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  70. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +18 -2
  71. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
  72. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  73. package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
  74. package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
  75. package/dist/_dts/core/src/branded.d.ts +8 -0
  76. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +767 -20
  77. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  78. package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
  79. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  80. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
  81. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
  82. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  83. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  84. package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
  85. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  86. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  87. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  88. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  89. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
  90. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  91. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  92. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  93. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
  94. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
  95. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
  96. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
  97. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
  98. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
  99. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
  100. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
  101. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  102. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  103. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  104. package/dist/_dts/sdk/src/client/index.d.ts +6 -0
  105. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  106. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  107. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  108. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  109. package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
  110. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
  111. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
  112. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  113. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  114. package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
  115. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  116. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  117. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  118. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
  119. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
  120. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +58 -1
  121. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
  122. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  123. package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
  124. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  125. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  126. package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
  127. package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
  128. package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
  129. package/dist/_dts/sdk/src/test/env.d.ts +4 -0
  130. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  131. package/dist/_dts/sdk/src/version.d.ts +1 -1
  132. package/dist/_dts/site-commands/src/commands.d.ts +3 -3
  133. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  134. package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
  135. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
  136. package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
  137. package/dist/{chunk-VHIMXQ7Z.mjs → chunk-4HXF2QLH.mjs} +2 -2
  138. package/dist/{chunk-VTPPVAOL.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
  139. package/dist/{chunk-4TLTV7OB.mjs → chunk-PM7HGDHM.mjs} +2 -2
  140. package/dist/{chunk-XMATDBXO.mjs → chunk-XO34WBBP.mjs} +2139 -1348
  141. package/dist/{chunk-EL55VV6Q.mjs → chunk-YGTTEVUM.mjs} +31 -10
  142. package/dist/{chunk-7ED5UNHL.mjs → chunk-YWTCCOSF.mjs} +117 -0
  143. package/dist/cli/index.mjs +2690 -1503
  144. package/dist/cli/init-docs/content/cli-reference.md +29 -1
  145. package/dist/cli/init-docs/content/getting-started.md +8 -0
  146. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  147. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  148. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  149. package/dist/client/{accordion-GUNXIIZR.mjs → accordion-QSUEYL4L.mjs} +2 -2
  150. package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-QYGAHPDP.mjs} +376 -302
  151. package/dist/client/bookings.mjs +795 -429
  152. package/dist/client/{carousel-4QSX2JPC.mjs → carousel-SM2LEWAU.mjs} +3 -3
  153. package/dist/client/{cart-JKN6C4ZB.mjs → cart-3N3SFKNQ.mjs} +7 -7
  154. package/dist/client/{checkout-YY6YMITW.mjs → checkout-YFAYPKPZ.mjs} +7 -7
  155. package/dist/client/{chunk-SY543WZ3.mjs → chunk-5DLGREUB.mjs} +1 -1
  156. package/dist/client/{chunk-A3YN7M3G.mjs → chunk-CLZ7NBSP.mjs} +147 -75
  157. package/dist/client/{chunk-GWCRCJLB.mjs → chunk-CYJ3MUFP.mjs} +18 -6
  158. package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
  159. package/dist/client/{chunk-CPKMJVBD.mjs → chunk-HPEQ4YWW.mjs} +83 -109
  160. package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
  161. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-IOAHWAQG.mjs} +18 -0
  162. package/dist/client/{chunk-6H27K6AA.mjs → chunk-JTKBF3W2.mjs} +10 -4
  163. package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
  164. package/dist/client/{chunk-BFCJZODD.mjs → chunk-R32M5HFS.mjs} +6 -6
  165. package/dist/client/{chunk-VJROUYOQ.mjs → chunk-WEVT46PX.mjs} +3 -3
  166. package/dist/client/{chunk-H7A6PUGM.mjs → chunk-ZU65LTI3.mjs} +1 -1
  167. package/dist/client/client.mjs +5052 -4083
  168. package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
  169. package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
  170. package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
  171. package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
  172. package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-TB623B6R.mjs} +9 -9
  173. package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
  174. package/dist/client/{form-VKRTFUNQ.mjs → form-Y4U4IAXE.mjs} +3 -3
  175. package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-QSOVV5P7.mjs} +3 -3
  176. package/dist/client/hooks.mjs +1776 -1355
  177. package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-QYCAHH7H.mjs} +3 -3
  178. package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
  179. package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-FYDMU2CE.mjs} +7 -7
  180. package/dist/client/{productList-RX6ZJ7BL.mjs → productList-D76CGACQ.mjs} +7 -7
  181. package/dist/client/rendering/client.mjs +2990 -2470
  182. package/dist/client/rendering/islands.mjs +19 -19
  183. package/dist/client/rendering.mjs +3236 -2236
  184. package/dist/client/{shop-BHN5AKY6.mjs → shop-SOUACT5N.mjs} +7 -7
  185. package/dist/preview-next/before-render.mjs +117 -0
  186. package/dist/preview-next/client/runtime.mjs +5 -5
  187. package/dist/preview-next/middleware.mjs +117 -0
  188. package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
  189. package/dist/server/components.mjs +3115 -2484
  190. package/dist/server/config-template-validation.mjs +6 -2
  191. package/dist/server/config-validation.mjs +1961 -1580
  192. package/dist/server/config.mjs +1961 -1580
  193. package/dist/server/data.mjs +1762 -1352
  194. package/dist/server/index.mjs +266 -33
  195. package/dist/server/next/middleware.mjs +2 -2
  196. package/dist/server/next.mjs +3399 -2504
  197. package/dist/server/page-converter.mjs +1553 -1295
  198. package/dist/server/prebuild-loader.mjs +42 -23
  199. package/dist/server/prebuild.mjs +1 -1
  200. package/dist/server/rendering/server.mjs +3151 -2489
  201. package/dist/server/rendering.mjs +3363 -2555
  202. package/dist/server/routing.mjs +1877 -1388
  203. package/dist/server/server.mjs +2057 -1402
  204. package/dist/server/theme-bridge.mjs +597 -505
  205. package/dist/server/theme.mjs +5 -4
  206. package/dist/styles/index.css +499 -490
  207. package/package.json +6 -4
  208. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
@@ -1092,6 +1092,94 @@ var ENDPOINT_DEFINITIONS = {
1092
1092
  responseKind: "json",
1093
1093
  errors: ["resource:not_found", "server:internal_error"]
1094
1094
  },
1095
+ listAppointmentReservations: {
1096
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1097
+ method: "GET",
1098
+ auth: "user",
1099
+ responseKind: "json",
1100
+ errors: []
1101
+ },
1102
+ createAppointmentReservation: {
1103
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1104
+ method: "POST",
1105
+ auth: "user",
1106
+ responseKind: "json",
1107
+ errors: [
1108
+ "validation:invalid_input",
1109
+ "resource:not_found",
1110
+ "resource:conflict",
1111
+ "server:internal_error"
1112
+ ]
1113
+ },
1114
+ getAppointmentReservation: {
1115
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1116
+ method: "GET",
1117
+ auth: "user",
1118
+ responseKind: "json",
1119
+ errors: ["resource:not_found", "server:internal_error"]
1120
+ },
1121
+ updateAppointmentReservation: {
1122
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1123
+ method: "PUT",
1124
+ auth: "user",
1125
+ responseKind: "json",
1126
+ errors: [
1127
+ "validation:invalid_input",
1128
+ "resource:not_found",
1129
+ "resource:conflict",
1130
+ "server:internal_error"
1131
+ ]
1132
+ },
1133
+ pauseAppointmentReservation: {
1134
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1135
+ method: "POST",
1136
+ auth: "user",
1137
+ responseKind: "json",
1138
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1139
+ },
1140
+ resumeAppointmentReservation: {
1141
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1142
+ method: "POST",
1143
+ auth: "user",
1144
+ responseKind: "json",
1145
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1146
+ },
1147
+ endAppointmentReservation: {
1148
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1149
+ method: "POST",
1150
+ auth: "user",
1151
+ responseKind: "json",
1152
+ errors: [
1153
+ "validation:invalid_input",
1154
+ "resource:not_found",
1155
+ "resource:conflict",
1156
+ "server:internal_error"
1157
+ ]
1158
+ },
1159
+ previewAppointmentReservationRun: {
1160
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1161
+ method: "POST",
1162
+ auth: "user",
1163
+ responseKind: "json",
1164
+ errors: [
1165
+ "validation:invalid_input",
1166
+ "resource:not_found",
1167
+ "resource:conflict",
1168
+ "server:internal_error"
1169
+ ]
1170
+ },
1171
+ createAppointmentReservationRun: {
1172
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1173
+ method: "POST",
1174
+ auth: "user",
1175
+ responseKind: "json",
1176
+ errors: [
1177
+ "validation:invalid_input",
1178
+ "resource:not_found",
1179
+ "resource:conflict",
1180
+ "server:internal_error"
1181
+ ]
1182
+ },
1095
1183
  createTeamMemberProfile: {
1096
1184
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1097
1185
  method: "POST",
@@ -3548,6 +3636,18 @@ var ENDPOINT_DEFINITIONS = {
3548
3636
  responseKind: "json",
3549
3637
  errors: ["validation:invalid_input", "server:internal_error"]
3550
3638
  },
3639
+ resolveRouteDecision: {
3640
+ path: "/sites/{siteId}/route-decision",
3641
+ method: "GET",
3642
+ tags: [
3643
+ TAG_TEMPLATES.siteRoutableContent,
3644
+ TAG_TEMPLATES.siteRedirects,
3645
+ TAG_TEMPLATES.siteRouteOutcomes
3646
+ ],
3647
+ auth: "public",
3648
+ responseKind: "json",
3649
+ errors: ["validation:invalid_input", "server:internal_error"]
3650
+ },
3551
3651
  getPageByPath: {
3552
3652
  path: "/sites/{siteId}/pages",
3553
3653
  method: "GET",
@@ -3686,6 +3786,15 @@ var ENDPOINT_DEFINITIONS = {
3686
3786
  auth: "public",
3687
3787
  responseKind: "json"
3688
3788
  },
3789
+ getPublicWeeklySlotAvailability: {
3790
+ path: "/public/bookings/weekly-slot-availability",
3791
+ method: "GET",
3792
+ revalidate: 60,
3793
+ tags: ["site-{siteId}"],
3794
+ auth: "public",
3795
+ responseKind: "json",
3796
+ errors: []
3797
+ },
3689
3798
  createPublicBookingAppointment: {
3690
3799
  path: "/public/bookings/appointments",
3691
3800
  method: "POST",
@@ -5596,6 +5705,14 @@ var ENDPOINT_DEFINITIONS = {
5596
5705
  responseKind: "json",
5597
5706
  errors: []
5598
5707
  },
5708
+ adminResolveSiteBillingManualReview: {
5709
+ path: "/admin/sites/{siteId}/billing/manual-reviews/{reviewId}/resolve",
5710
+ method: "POST",
5711
+ tags: ["admin", "site-{siteId}", "billing"],
5712
+ auth: "admin",
5713
+ responseKind: "json",
5714
+ errors: []
5715
+ },
5599
5716
  // Admin GSC/SEO endpoints
5600
5717
  adminGscVerifyStart: {
5601
5718
  path: "/admin/seo/gsc/properties/verify/start",
@@ -7184,7 +7301,7 @@ var SimpleCache = class {
7184
7301
  };
7185
7302
 
7186
7303
  // src/version.ts
7187
- var SDK_VERSION = "0.96.0";
7304
+ var SDK_VERSION = "0.99.0";
7188
7305
 
7189
7306
  // src/client/error.ts
7190
7307
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -7346,11 +7463,13 @@ var PUBLIC_ENDPOINT_NAMES2 = [
7346
7463
  "getSite",
7347
7464
  "getContentByPath",
7348
7465
  "resolveRouteOutcome",
7466
+ "resolveRouteDecision",
7349
7467
  "listPublishedEntries",
7350
7468
  "getPublishedEntryPreview",
7351
7469
  "getPublicFormById",
7352
7470
  "listPublicForms",
7353
7471
  "getPublicBookingServices",
7472
+ "getPublicWeeklySlotAvailability",
7354
7473
  "getPublicChallenge",
7355
7474
  "listPublicEvents",
7356
7475
  "batchBlockLoaders",
@@ -7393,6 +7512,17 @@ var API_ENDPOINTS2 = Object.freeze({
7393
7512
  auth: "public",
7394
7513
  responseKind: "json"
7395
7514
  },
7515
+ resolveRouteDecision: {
7516
+ path: "/sites/{siteId}/route-decision",
7517
+ method: "GET",
7518
+ tags: [
7519
+ "riverbank:site:{siteId}:routable-content",
7520
+ "riverbank:site:{siteId}:redirects",
7521
+ "riverbank:site:{siteId}:route-outcomes"
7522
+ ],
7523
+ auth: "public",
7524
+ responseKind: "json"
7525
+ },
7396
7526
  listPublishedEntries: {
7397
7527
  path: "/public/content/{siteId}/{type}/entries",
7398
7528
  method: "GET",
@@ -7433,6 +7563,14 @@ var API_ENDPOINTS2 = Object.freeze({
7433
7563
  auth: "public",
7434
7564
  responseKind: "json"
7435
7565
  },
7566
+ getPublicWeeklySlotAvailability: {
7567
+ path: "/public/bookings/weekly-slot-availability",
7568
+ method: "GET",
7569
+ revalidate: 60,
7570
+ tags: ["site-{siteId}"],
7571
+ auth: "public",
7572
+ responseKind: "json"
7573
+ },
7436
7574
  getPublicChallenge: {
7437
7575
  path: "/public/challenge",
7438
7576
  method: "GET",
@@ -7560,6 +7698,10 @@ var RUNTIME_CACHE_DURABILITY_OVERRIDES = {
7560
7698
  kind: "memory-only",
7561
7699
  reason: "durable_rollout_pending"
7562
7700
  },
7701
+ resolveRouteDecision: {
7702
+ kind: "memory-only",
7703
+ reason: "durable_rollout_pending"
7704
+ },
7563
7705
  listPublishedEntries: {
7564
7706
  kind: "memory-only",
7565
7707
  reason: "durable_rollout_pending"
@@ -7580,6 +7722,10 @@ var RUNTIME_CACHE_DURABILITY_OVERRIDES = {
7580
7722
  kind: "live-only",
7581
7723
  reason: "safety_sensitive_booking"
7582
7724
  },
7725
+ getPublicWeeklySlotAvailability: {
7726
+ kind: "live-only",
7727
+ reason: "safety_sensitive_booking"
7728
+ },
7583
7729
  getPublicChallenge: {
7584
7730
  kind: "live-only",
7585
7731
  reason: "challenge_endpoint"
@@ -7794,7 +7940,8 @@ function deriveGetContentByPathKey(params) {
7794
7940
  }
7795
7941
  const normalizedParams = {
7796
7942
  siteId: normalizeScalar(siteId),
7797
- path: normalizeRuntimePublicPath(params.path)
7943
+ path: normalizeRuntimePublicPath(params.path),
7944
+ ...params.contentContract === "native" ? { contentContract: "native" } : {}
7798
7945
  };
7799
7946
  return {
7800
7947
  ok: true,
@@ -8355,7 +8502,14 @@ function resolveAuth(config) {
8355
8502
  'Authentication configuration is required. Provide either `auth` (recommended) or `apiKey` (deprecated). For public endpoints without auth, use: { auth: { type: "none" } }'
8356
8503
  );
8357
8504
  }
8505
+ var defaultRiverbankClientDeps = {
8506
+ createBearerAPIClient,
8507
+ createInternalAPIClient
8508
+ };
8358
8509
  function createRiverbankClient(config) {
8510
+ return createRiverbankClientWithDeps(defaultRiverbankClientDeps, config);
8511
+ }
8512
+ function createRiverbankClientWithDeps(deps, config) {
8359
8513
  if (!config.baseUrl) {
8360
8514
  throw new Error(
8361
8515
  "baseUrl is required when creating a Riverbank client. Expected format: https://dashboard.example.com/api (must include /api path)"
@@ -8398,7 +8552,7 @@ function createRiverbankClient(config) {
8398
8552
  keyType = "preview";
8399
8553
  break;
8400
8554
  }
8401
- const baseApiClient = authConfig.type === "none" ? createInternalAPIClient(config.baseUrl) : authConfig.type === "api-key" ? createBearerAPIClient(authConfig.key, config.baseUrl) : createBearerAPIClient(authConfig.token, config.baseUrl);
8555
+ const baseApiClient = authConfig.type === "none" ? deps.createInternalAPIClient(config.baseUrl) : authConfig.type === "api-key" ? deps.createBearerAPIClient(authConfig.key, config.baseUrl) : deps.createBearerAPIClient(authConfig.token, config.baseUrl);
8402
8556
  const apiClient = withDefaultHeaders(baseApiClient, config.defaultHeaders);
8403
8557
  const cache = new SimpleCache({
8404
8558
  maxSize: cacheMaxSize,
@@ -8763,19 +8917,30 @@ function createRiverbankClient(config) {
8763
8917
  );
8764
8918
  }
8765
8919
  async function getPageWithResilienceInternal(params) {
8766
- const { siteId, path, preview = false, signal } = params;
8920
+ const {
8921
+ siteId,
8922
+ path,
8923
+ preview = false,
8924
+ signal,
8925
+ contentContract = "compat"
8926
+ } = params;
8767
8927
  const publishedRuntimeCache = planPublishedRuntimeCache({
8768
8928
  endpoint: "getContentByPath",
8769
- params: { siteId, path, preview },
8929
+ params: { siteId, path, preview, contentContract },
8770
8930
  siteId
8771
8931
  });
8772
- const cacheKey = publishedRuntimeCache?.cacheKey ?? `page:${siteId}:${path}:${preview}`;
8932
+ const cacheKey = publishedRuntimeCache?.cacheKey ?? `page:${siteId}:${path}:${preview}:${contentContract}`;
8773
8933
  return resilientFetch(
8774
8934
  cacheKey,
8775
8935
  async (sig) => {
8776
8936
  return await apiClient({
8777
8937
  endpoint: "getContentByPath",
8778
- params: { siteId, path, preview: String(preview) },
8938
+ params: {
8939
+ siteId,
8940
+ path,
8941
+ preview: String(preview),
8942
+ ...contentContract === "native" ? { contentContract } : {}
8943
+ },
8779
8944
  options: { signal: sig }
8780
8945
  });
8781
8946
  },
@@ -8784,7 +8949,7 @@ function createRiverbankClient(config) {
8784
8949
  signal,
8785
8950
  publishedRuntimeCache,
8786
8951
  // Prebuild fallback only for published pages (not preview)
8787
- prebuildFallback: prebuildLoader && !preview ? () => prebuildLoader.loadPage(siteId, path) : void 0
8952
+ prebuildFallback: prebuildLoader && !preview && contentContract !== "native" ? () => prebuildLoader.loadPage(siteId, path) : void 0
8788
8953
  }
8789
8954
  );
8790
8955
  }
@@ -8973,6 +9138,38 @@ function createRiverbankClient(config) {
8973
9138
  { signal }
8974
9139
  );
8975
9140
  },
9141
+ async getPublicWeeklySlotAvailability(params) {
9142
+ const { siteId, serviceId, resourceId, horizonWeeks, timezone, signal } = params;
9143
+ if (!siteId || !serviceId) {
9144
+ throw new Error("getPublicWeeklySlotAvailability() requires siteId and serviceId");
9145
+ }
9146
+ const cacheKey = [
9147
+ "public-weekly-slot-availability",
9148
+ siteId,
9149
+ serviceId,
9150
+ resourceId ?? "",
9151
+ horizonWeeks ?? "",
9152
+ timezone ?? ""
9153
+ ].join(":");
9154
+ return resilientFetchData(
9155
+ cacheKey,
9156
+ async (sig) => {
9157
+ const apiParams = {
9158
+ siteId,
9159
+ serviceId,
9160
+ ...resourceId && { resourceId },
9161
+ ...horizonWeeks !== void 0 && { horizonWeeks: String(horizonWeeks) },
9162
+ ...timezone && { timezone }
9163
+ };
9164
+ return await apiClient({
9165
+ endpoint: "getPublicWeeklySlotAvailability",
9166
+ params: apiParams,
9167
+ options: { signal: sig }
9168
+ });
9169
+ },
9170
+ { signal }
9171
+ );
9172
+ },
8976
9173
  async listPublicEvents(params) {
8977
9174
  const {
8978
9175
  siteId,
@@ -9274,6 +9471,19 @@ function createRiverbankClient(config) {
9274
9471
  })
9275
9472
  );
9276
9473
  },
9474
+ async resolveRouteDecision(params) {
9475
+ const { siteId, path, preview = false, signal } = params;
9476
+ if (!siteId || !path) {
9477
+ throw new Error("resolveRouteDecision() requires siteId and path");
9478
+ }
9479
+ return unwrapResponse(
9480
+ await apiClient({
9481
+ endpoint: "resolveRouteDecision",
9482
+ params: { siteId, path, preview: String(preview) },
9483
+ options: { signal }
9484
+ })
9485
+ );
9486
+ },
9277
9487
  async getAllPublishedRoutes(params) {
9278
9488
  const { siteId, signal } = params;
9279
9489
  if (!siteId) {
@@ -9669,7 +9879,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
9669
9879
  );
9670
9880
 
9671
9881
  // ../api/src/sdkConfig/contracts.ts
9672
- import { z as z64 } from "zod";
9882
+ import { z as z65 } from "zod";
9673
9883
 
9674
9884
  // ../blocks/src/system/manifest/augmentManifest.ts
9675
9885
  function augmentManifest(manifest) {
@@ -9838,10 +10048,20 @@ var repeatSchema = z3.object({
9838
10048
  direction: z3.enum(["asc", "desc"]).default("asc")
9839
10049
  }).optional()
9840
10050
  });
10051
+ var conditionalAuthoringPresenceSchema = z3.discriminatedUnion("kind", [
10052
+ z3.object({ kind: z3.literal("visitor-only") }),
10053
+ z3.object({
10054
+ kind: z3.literal("recover-empty-when-active"),
10055
+ placeholder: z3.string().min(1).optional()
10056
+ })
10057
+ ]);
9841
10058
  var conditionSchema = z3.object({
9842
10059
  when: bindingSchema,
9843
10060
  equals: z3.unknown().optional(),
9844
- not: z3.boolean().default(false)
10061
+ not: z3.boolean().default(false),
10062
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
10063
+ kind: "visitor-only"
10064
+ })
9845
10065
  });
9846
10066
  var dataScopeSchema = z3.object({
9847
10067
  name: z3.string().min(1),
@@ -13869,15 +14089,16 @@ var joyStamp = defineButtonPersonality({
13869
14089
  // 700, matching the mockup's chunky button labels.
13870
14090
  typography: "heading",
13871
14091
  fontWeight: 700,
14092
+ fontSize: "text-lg",
13872
14093
  borderWidth: 2,
13873
14094
  hoverTransform: "none",
13874
14095
  hoverColor: "none"
13875
14096
  },
13876
14097
  sizes: {
13877
- sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
13878
- md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
13879
- lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
13880
- xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
14098
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
14099
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
14100
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
14101
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
13881
14102
  },
13882
14103
  variants: [
13883
14104
  {
@@ -20994,7 +21215,8 @@ function when(path, options) {
20994
21215
  $when: {
20995
21216
  when: { from: path },
20996
21217
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
20997
- ...options?.not ? { not: true } : {}
21218
+ ...options?.not ? { not: true } : {},
21219
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
20998
21220
  }
20999
21221
  });
21000
21222
  }
@@ -30835,77 +31057,247 @@ var appointmentBookingBlockDefinition = {
30835
31057
  }
30836
31058
  };
30837
31059
 
31060
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
31061
+ import { z as z40 } from "zod";
31062
+ var weeklySlotAvailabilityManifest = createBlockManifest({
31063
+ id: "block.weekly-slot-availability",
31064
+ version: "1.0.0",
31065
+ title: "Weekly Slot Availability",
31066
+ titleSource: "heading",
31067
+ description: "Shows available recurring appointment slot patterns",
31068
+ skipSectionStyles: true,
31069
+ additionalFields: [
31070
+ {
31071
+ id: "serviceId",
31072
+ type: "reference",
31073
+ label: "Appointment service",
31074
+ description: "Choose which appointment service to show availability for",
31075
+ required: true,
31076
+ referenceKind: "appointmentService",
31077
+ allowManualEntry: false,
31078
+ ui: { intent: "behavior" }
31079
+ },
31080
+ {
31081
+ id: "resourceId",
31082
+ type: "reference",
31083
+ label: "Appointment resource",
31084
+ description: "Optionally narrow the availability to one practitioner or room",
31085
+ required: false,
31086
+ referenceKind: "appointmentResource",
31087
+ allowManualEntry: false,
31088
+ ui: { intent: "behavior" }
31089
+ },
31090
+ {
31091
+ id: "horizonWeeks",
31092
+ type: "select",
31093
+ label: "Look ahead",
31094
+ required: false,
31095
+ multiple: false,
31096
+ defaultValue: "4",
31097
+ options: [
31098
+ { value: "1", label: "1 week" },
31099
+ { value: "2", label: "2 weeks" },
31100
+ { value: "4", label: "4 weeks" }
31101
+ ],
31102
+ ui: { intent: "behavior" }
31103
+ },
31104
+ {
31105
+ id: "timezone",
31106
+ type: "text",
31107
+ label: "Timezone",
31108
+ description: "Leave blank to use the visitor timezone when the block loads",
31109
+ required: false,
31110
+ multiline: false,
31111
+ defaultValue: "",
31112
+ maxLength: 64,
31113
+ ui: { intent: "behavior" }
31114
+ },
31115
+ {
31116
+ id: "heading",
31117
+ type: "text",
31118
+ label: "Heading",
31119
+ required: false,
31120
+ multiline: false,
31121
+ defaultValue: "Weekly availability"
31122
+ },
31123
+ {
31124
+ id: "description",
31125
+ type: "richText",
31126
+ label: "Description",
31127
+ required: false
31128
+ },
31129
+ {
31130
+ id: "emptyMessage",
31131
+ type: "text",
31132
+ label: "Empty message",
31133
+ required: false,
31134
+ multiline: true,
31135
+ defaultValue: "No regular weekly openings are currently available.",
31136
+ maxLength: 180
31137
+ },
31138
+ {
31139
+ id: "ctaText",
31140
+ type: "text",
31141
+ label: "Enquiry button text",
31142
+ required: false,
31143
+ multiline: false,
31144
+ defaultValue: "Enquire about this slot",
31145
+ maxLength: 60
31146
+ },
31147
+ {
31148
+ id: "ctaUrl",
31149
+ type: "url",
31150
+ label: "Enquiry URL",
31151
+ required: false,
31152
+ ui: { intent: "behavior" }
31153
+ },
31154
+ sectionStylesField({
31155
+ id: "_sectionStyles",
31156
+ label: "Section styles"
31157
+ })
31158
+ ],
31159
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
31160
+ behaviours: {
31161
+ supportsThemeSwitching: true,
31162
+ inlineEditing: false,
31163
+ animation: false,
31164
+ paletteHidden: false
31165
+ },
31166
+ category: "interactive",
31167
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
31168
+ icon: "CalendarDays",
31169
+ layout: [
31170
+ styledSection({
31171
+ children: sectionContainer([
31172
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
31173
+ richText({}, bind("content.description"), when("content.description")),
31174
+ el(
31175
+ "weekly-slot-availability",
31176
+ withApiBindings({
31177
+ serviceId: { $bind: { from: "content.serviceId" } },
31178
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
31179
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
31180
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
31181
+ availability: { $bind: { from: "data.availability", fallback: null } },
31182
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
31183
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
31184
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
31185
+ })
31186
+ )
31187
+ ], {
31188
+ gap: "lg"
31189
+ }),
31190
+ baseClass: "",
31191
+ spacing: "spacious"
31192
+ })
31193
+ ]
31194
+ });
31195
+ var weeklySlotAvailabilityOptionSchema = z40.object({
31196
+ id: z40.string(),
31197
+ resourceId: z40.string(),
31198
+ weekday: z40.number(),
31199
+ weekdayLabel: z40.string(),
31200
+ startTime: z40.string(),
31201
+ endTime: z40.string(),
31202
+ nextDate: z40.string(),
31203
+ availableWeeks: z40.number()
31204
+ });
31205
+ var weeklySlotAvailabilityDataSchema = z40.object({
31206
+ slots: z40.array(weeklySlotAvailabilityOptionSchema),
31207
+ horizonWeeks: z40.number(),
31208
+ timezone: z40.string(),
31209
+ startDate: z40.string(),
31210
+ endDate: z40.string()
31211
+ });
31212
+ var weeklySlotAvailabilityBlockDefinition = {
31213
+ manifest: weeklySlotAvailabilityManifest,
31214
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
31215
+ dataLoaders: {
31216
+ availability: {
31217
+ endpoint: "getPublicWeeklySlotAvailability",
31218
+ params: {
31219
+ siteId: { $bind: { from: "$root.siteId" } },
31220
+ serviceId: { $bind: { from: "content.serviceId" } },
31221
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
31222
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
31223
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
31224
+ },
31225
+ mode: "server"
31226
+ }
31227
+ }
31228
+ };
31229
+
30838
31230
  // ../blocks/src/system/blocks/events/shared/schemas.ts
30839
- import { z as z44 } from "zod";
31231
+ import { z as z45 } from "zod";
30840
31232
 
30841
31233
  // ../blocks/src/lib/media.ts
30842
- import z40 from "zod";
31234
+ import z41 from "zod";
30843
31235
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
30844
31236
  "document",
30845
31237
  "spreadsheet",
30846
31238
  "archive",
30847
31239
  "audio"
30848
31240
  ];
30849
- var hotspotSchema2 = z40.object({
30850
- x: z40.number().min(0).max(1),
30851
- y: z40.number().min(0).max(1),
30852
- radius: z40.number().optional()
30853
- });
30854
- var rotationSchema2 = z40.union([z40.literal(0), z40.literal(90), z40.literal(180), z40.literal(270)]);
30855
- var rectSchema2 = z40.tuple([z40.number(), z40.number(), z40.number(), z40.number()]);
30856
- var aspectCropSchema2 = z40.object({
30857
- aspect: z40.preprocess((value) => value == null ? void 0 : value, z40.string().optional()),
30858
- rect: z40.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
30859
- hotspot: z40.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
30860
- rotation: z40.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
30861
- });
30862
- var transformSchema2 = z40.object({
30863
- aspectCrops: z40.preprocess((value) => {
31241
+ var hotspotSchema2 = z41.object({
31242
+ x: z41.number().min(0).max(1),
31243
+ y: z41.number().min(0).max(1),
31244
+ radius: z41.number().optional()
31245
+ });
31246
+ var rotationSchema2 = z41.union([z41.literal(0), z41.literal(90), z41.literal(180), z41.literal(270)]);
31247
+ var rectSchema2 = z41.tuple([z41.number(), z41.number(), z41.number(), z41.number()]);
31248
+ var aspectCropSchema2 = z41.object({
31249
+ aspect: z41.preprocess((value) => value == null ? void 0 : value, z41.string().optional()),
31250
+ rect: z41.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
31251
+ hotspot: z41.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
31252
+ rotation: z41.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
31253
+ });
31254
+ var transformSchema2 = z41.object({
31255
+ aspectCrops: z41.preprocess((value) => {
30864
31256
  if (!value || typeof value !== "object" || Array.isArray(value)) {
30865
31257
  return void 0;
30866
31258
  }
30867
31259
  return value;
30868
- }, z40.record(z40.string(), aspectCropSchema2.catch({}))).optional(),
31260
+ }, z41.record(z41.string(), aspectCropSchema2.catch({}))).optional(),
30869
31261
  rect: rectSchema2.optional(),
30870
31262
  hotspot: hotspotSchema2.optional(),
30871
31263
  rotation: rotationSchema2.optional()
30872
31264
  });
30873
- var mediaPosterSchema = z40.discriminatedUnion("tag", [
30874
- z40.object({
30875
- tag: z40.literal("storage"),
30876
- assetId: z40.string().optional(),
30877
- storageBucket: z40.string().min(1),
30878
- storagePath: z40.string().min(1)
31265
+ var mediaPosterSchema = z41.discriminatedUnion("tag", [
31266
+ z41.object({
31267
+ tag: z41.literal("storage"),
31268
+ assetId: z41.string().optional(),
31269
+ storageBucket: z41.string().min(1),
31270
+ storagePath: z41.string().min(1)
30879
31271
  }),
30880
- z40.object({
30881
- tag: z40.literal("external-src"),
30882
- assetId: z40.string().optional(),
30883
- src: z40.string().url()
31272
+ z41.object({
31273
+ tag: z41.literal("external-src"),
31274
+ assetId: z41.string().optional(),
31275
+ src: z41.string().url()
30884
31276
  })
30885
31277
  ]);
30886
- var mediaBaseSchema = z40.object({
30887
- purpose: z40.string().optional(),
30888
- placeholder: z40.boolean().default(true).optional(),
30889
- assetId: z40.string().optional(),
30890
- identifier: z40.string().optional(),
30891
- src: z40.string().optional(),
30892
- alt: z40.string().optional(),
30893
- filename: z40.string().optional(),
30894
- mimeType: z40.string().optional(),
30895
- width: z40.number().optional(),
30896
- height: z40.number().optional(),
30897
- storageBucket: z40.string().optional(),
30898
- storagePath: z40.string().optional(),
31278
+ var mediaBaseSchema = z41.object({
31279
+ purpose: z41.string().optional(),
31280
+ placeholder: z41.boolean().default(true).optional(),
31281
+ assetId: z41.string().optional(),
31282
+ identifier: z41.string().optional(),
31283
+ src: z41.string().optional(),
31284
+ alt: z41.string().optional(),
31285
+ filename: z41.string().optional(),
31286
+ mimeType: z41.string().optional(),
31287
+ width: z41.number().optional(),
31288
+ height: z41.number().optional(),
31289
+ storageBucket: z41.string().optional(),
31290
+ storagePath: z41.string().optional(),
30899
31291
  poster: mediaPosterSchema.optional(),
30900
31292
  transform: transformSchema2.optional()
30901
31293
  });
30902
- var imageMediaSchema = mediaBaseSchema.extend({ type: z40.literal("image") });
30903
- var videoMediaSchema = mediaBaseSchema.extend({ type: z40.literal("video") });
30904
- var audioMediaSchema = mediaBaseSchema.extend({ type: z40.literal("audio") });
30905
- var documentMediaSchema = mediaBaseSchema.extend({ type: z40.literal("document") });
30906
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z40.literal("spreadsheet") });
30907
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z40.literal("archive") });
30908
- var mediaSchema2 = z40.discriminatedUnion("type", [
31294
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z41.literal("image") });
31295
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z41.literal("video") });
31296
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z41.literal("audio") });
31297
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z41.literal("document") });
31298
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z41.literal("spreadsheet") });
31299
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z41.literal("archive") });
31300
+ var mediaSchema2 = z41.discriminatedUnion("type", [
30909
31301
  imageMediaSchema,
30910
31302
  videoMediaSchema,
30911
31303
  audioMediaSchema,
@@ -30915,31 +31307,31 @@ var mediaSchema2 = z40.discriminatedUnion("type", [
30915
31307
  ]);
30916
31308
 
30917
31309
  // ../blocks/src/system/manifest/richTextSchema.ts
30918
- import { z as z41 } from "zod";
30919
- var TipTapMarkSchema = z41.object({
30920
- type: z41.string(),
30921
- attrs: z41.record(z41.string(), z41.unknown()).optional()
30922
- });
30923
- var TipTapNodeSchema = z41.lazy(
30924
- () => z41.object({
30925
- type: z41.string(),
30926
- content: z41.array(TipTapNodeSchema).optional(),
30927
- text: z41.string().optional(),
30928
- attrs: z41.record(z41.string(), z41.unknown()).optional(),
30929
- marks: z41.array(TipTapMarkSchema).optional()
31310
+ import { z as z42 } from "zod";
31311
+ var TipTapMarkSchema = z42.object({
31312
+ type: z42.string(),
31313
+ attrs: z42.record(z42.string(), z42.unknown()).optional()
31314
+ });
31315
+ var TipTapNodeSchema = z42.lazy(
31316
+ () => z42.object({
31317
+ type: z42.string(),
31318
+ content: z42.array(TipTapNodeSchema).optional(),
31319
+ text: z42.string().optional(),
31320
+ attrs: z42.record(z42.string(), z42.unknown()).optional(),
31321
+ marks: z42.array(TipTapMarkSchema).optional()
30930
31322
  })
30931
31323
  );
30932
- var RichTextValueSchema = z41.union([
31324
+ var RichTextValueSchema = z42.union([
30933
31325
  // Canonical: TipTap document directly
30934
31326
  TipTapNodeSchema,
30935
31327
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
30936
- z41.object({
31328
+ z42.object({
30937
31329
  doc: TipTapNodeSchema
30938
31330
  })
30939
31331
  ]);
30940
- var RichTextDocSchema = z41.object({
30941
- type: z41.literal("doc"),
30942
- content: z41.array(TipTapNodeSchema)
31332
+ var RichTextDocSchema = z42.object({
31333
+ type: z42.literal("doc"),
31334
+ content: z42.array(TipTapNodeSchema)
30943
31335
  });
30944
31336
  function unwrapRichTextRoot(value) {
30945
31337
  if (!isRecord3(value)) return value;
@@ -30950,344 +31342,344 @@ function unwrapRichTextRoot(value) {
30950
31342
  }
30951
31343
 
30952
31344
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
30953
- import { z as z42 } from "zod";
30954
- var bookingDepositRefundPolicySchema = z42.enum([
31345
+ import { z as z43 } from "zod";
31346
+ var bookingDepositRefundPolicySchema = z43.enum([
30955
31347
  "refundable",
30956
31348
  "non_refundable"
30957
31349
  ]);
30958
- var bookingInstalmentPlanSchema = z42.union([
30959
- z42.object({
30960
- kind: z42.literal("deposit_plus_one_remainder"),
30961
- depositAmountCents: z42.number().int().min(0),
31350
+ var bookingInstalmentPlanSchema = z43.union([
31351
+ z43.object({
31352
+ kind: z43.literal("deposit_plus_one_remainder"),
31353
+ depositAmountCents: z43.number().int().min(0),
30962
31354
  depositRefundability: bookingDepositRefundPolicySchema,
30963
- remainderDueCount: z42.number().int().positive(),
30964
- intervalUnit: z42.enum(["day", "week", "month"])
31355
+ remainderDueCount: z43.number().int().positive(),
31356
+ intervalUnit: z43.enum(["day", "week", "month"])
30965
31357
  }),
30966
- z42.object({
30967
- kind: z42.literal("deposit_plus_scheduled_instalments"),
30968
- depositAmountCents: z42.number().int().min(0),
31358
+ z43.object({
31359
+ kind: z43.literal("deposit_plus_scheduled_instalments"),
31360
+ depositAmountCents: z43.number().int().min(0),
30969
31361
  depositRefundability: bookingDepositRefundPolicySchema,
30970
- instalmentCount: z42.number().int().positive(),
30971
- intervalCount: z42.number().int().positive(),
30972
- intervalUnit: z42.enum(["day", "week", "month"])
31362
+ instalmentCount: z43.number().int().positive(),
31363
+ intervalCount: z43.number().int().positive(),
31364
+ intervalUnit: z43.enum(["day", "week", "month"])
30973
31365
  }),
30974
- z42.object({
30975
- kind: z42.literal("equal_scheduled_instalments"),
30976
- instalmentCount: z42.number().int().positive(),
30977
- intervalCount: z42.number().int().positive(),
30978
- intervalUnit: z42.enum(["day", "week", "month"])
31366
+ z43.object({
31367
+ kind: z43.literal("equal_scheduled_instalments"),
31368
+ instalmentCount: z43.number().int().positive(),
31369
+ intervalCount: z43.number().int().positive(),
31370
+ intervalUnit: z43.enum(["day", "week", "month"])
30979
31371
  })
30980
31372
  ]);
30981
- var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
30982
- z42.object({
30983
- kind: z42.literal("relative_to_start_date"),
30984
- daysBeforeStart: z42.number().int().positive()
31373
+ var bookingFlexibleBalanceDueDateRuleSchema = z43.union([
31374
+ z43.object({
31375
+ kind: z43.literal("relative_to_start_date"),
31376
+ daysBeforeStart: z43.number().int().positive()
30985
31377
  }),
30986
- z42.object({
30987
- kind: z42.literal("fixed_calendar_date"),
30988
- dueAt: z42.string().datetime()
31378
+ z43.object({
31379
+ kind: z43.literal("fixed_calendar_date"),
31380
+ dueAt: z43.string().datetime()
30989
31381
  })
30990
31382
  ]);
30991
- var bookingFlexibleBalanceConfigSchema = z42.object({
30992
- upfrontAmountCents: z42.number().int().min(0),
31383
+ var bookingFlexibleBalanceConfigSchema = z43.object({
31384
+ upfrontAmountCents: z43.number().int().min(0),
30993
31385
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
30994
31386
  depositRefundability: bookingDepositRefundPolicySchema
30995
31387
  });
30996
- var blockBookingPaymentCollectionOptionSchema = z42.union([
30997
- z42.object({
30998
- kind: z42.literal("upfront")
31388
+ var blockBookingPaymentCollectionOptionSchema = z43.union([
31389
+ z43.object({
31390
+ kind: z43.literal("upfront")
30999
31391
  }),
31000
- z42.object({
31001
- kind: z42.literal("deferred_manual")
31392
+ z43.object({
31393
+ kind: z43.literal("deferred_manual")
31002
31394
  }),
31003
- z42.object({
31004
- kind: z42.literal("instalment_plan"),
31395
+ z43.object({
31396
+ kind: z43.literal("instalment_plan"),
31005
31397
  plan: bookingInstalmentPlanSchema
31006
31398
  }),
31007
- z42.object({
31008
- kind: z42.literal("flexible_balance"),
31399
+ z43.object({
31400
+ kind: z43.literal("flexible_balance"),
31009
31401
  config: bookingFlexibleBalanceConfigSchema
31010
31402
  })
31011
31403
  ]);
31012
- var blockBookingPaymentTermsSchema = z42.object({
31013
- allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
31404
+ var blockBookingPaymentTermsSchema = z43.object({
31405
+ allowedOptions: z43.array(blockBookingPaymentCollectionOptionSchema).min(1)
31014
31406
  });
31015
31407
 
31016
31408
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
31017
- import { z as z43 } from "zod";
31018
- var courseVenueSchema = z43.object({
31019
- id: z43.string(),
31020
- name: z43.string(),
31021
- address: z43.string().nullable()
31022
- });
31023
- var courseSessionSchema = z43.object({
31024
- id: z43.string(),
31025
- startsAt: z43.string(),
31026
- endsAt: z43.string(),
31027
- timeZone: z43.string(),
31028
- capacityOverride: z43.number().nullable().optional(),
31029
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
31030
- });
31031
- var courseTeamMemberSummarySchema = z43.object({
31032
- id: z43.string(),
31033
- name: z43.string(),
31034
- roleLabel: z43.string().nullable(),
31035
- summary: z43.string().nullable(),
31036
- profilePath: z43.string().nullable()
31037
- });
31038
- var coursePricingOptionSchema = z43.object({
31039
- id: z43.string(),
31040
- name: z43.string(),
31041
- description: z43.string().nullable(),
31042
- priceAmount: z43.number(),
31043
- isActive: z43.boolean(),
31044
- sortOrder: z43.number(),
31045
- capacityLimit: z43.number().nullable(),
31046
- saleStartsAt: z43.string().nullable(),
31047
- saleEndsAt: z43.string().nullable(),
31048
- attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
31049
- });
31050
- var coursePricingSchema = z43.object({
31051
- bookingRequirement: z43.enum(["none", "required"]),
31052
- pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
31053
- currency: z43.string(),
31054
- singlePriceAmount: z43.number().nullable(),
31055
- slidingMinAmount: z43.number().nullable().optional(),
31056
- slidingMaxAmount: z43.number().nullable().optional(),
31057
- slidingSuggestedAmount: z43.number().nullable().optional(),
31409
+ import { z as z44 } from "zod";
31410
+ var courseVenueSchema = z44.object({
31411
+ id: z44.string(),
31412
+ name: z44.string(),
31413
+ address: z44.string().nullable()
31414
+ });
31415
+ var courseSessionSchema = z44.object({
31416
+ id: z44.string(),
31417
+ startsAt: z44.string(),
31418
+ endsAt: z44.string(),
31419
+ timeZone: z44.string(),
31420
+ capacityOverride: z44.number().nullable().optional(),
31421
+ overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
31422
+ });
31423
+ var courseTeamMemberSummarySchema = z44.object({
31424
+ id: z44.string(),
31425
+ name: z44.string(),
31426
+ roleLabel: z44.string().nullable(),
31427
+ summary: z44.string().nullable(),
31428
+ profilePath: z44.string().nullable()
31429
+ });
31430
+ var coursePricingOptionSchema = z44.object({
31431
+ id: z44.string(),
31432
+ name: z44.string(),
31433
+ description: z44.string().nullable(),
31434
+ priceAmount: z44.number(),
31435
+ isActive: z44.boolean(),
31436
+ sortOrder: z44.number(),
31437
+ capacityLimit: z44.number().nullable(),
31438
+ saleStartsAt: z44.string().nullable(),
31439
+ saleEndsAt: z44.string().nullable(),
31440
+ attendanceScope: z44.enum(["in_person", "online", "both"]).nullable().optional()
31441
+ });
31442
+ var coursePricingSchema = z44.object({
31443
+ bookingRequirement: z44.enum(["none", "required"]),
31444
+ pricingStrategy: z44.enum(["free", "single", "tiered", "sliding_scale"]),
31445
+ currency: z44.string(),
31446
+ singlePriceAmount: z44.number().nullable(),
31447
+ slidingMinAmount: z44.number().nullable().optional(),
31448
+ slidingMaxAmount: z44.number().nullable().optional(),
31449
+ slidingSuggestedAmount: z44.number().nullable().optional(),
31058
31450
  paymentTerms: blockBookingPaymentTermsSchema,
31059
- options: z43.array(coursePricingOptionSchema)
31060
- });
31061
- var publicCourseSchema = z43.object({
31062
- id: z43.string(),
31063
- title: z43.string(),
31064
- slug: z43.string(),
31065
- description: z43.unknown().nullable(),
31066
- teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
31067
- enrollmentOpen: z43.boolean(),
31451
+ options: z44.array(coursePricingOptionSchema)
31452
+ });
31453
+ var publicCourseSchema = z44.object({
31454
+ id: z44.string(),
31455
+ title: z44.string(),
31456
+ slug: z44.string(),
31457
+ description: z44.unknown().nullable(),
31458
+ teamMembers: z44.array(courseTeamMemberSummarySchema).optional(),
31459
+ enrollmentOpen: z44.boolean(),
31068
31460
  pricing: coursePricingSchema.optional(),
31069
- priceCents: z43.number().nullable(),
31070
- currency: z43.string(),
31461
+ priceCents: z44.number().nullable(),
31462
+ currency: z44.string(),
31071
31463
  paymentTerms: blockBookingPaymentTermsSchema,
31072
- enrollmentCapacity: z43.number().nullable(),
31073
- acceptsMemberships: z43.boolean(),
31074
- status: z43.enum(["active", "draft", "cancelled"]),
31075
- sessionsCount: z43.number(),
31076
- enrolledCount: z43.number(),
31077
- availableSpots: z43.number().nullable(),
31078
- sessions: z43.array(courseSessionSchema),
31464
+ enrollmentCapacity: z44.number().nullable(),
31465
+ acceptsMemberships: z44.boolean(),
31466
+ status: z44.enum(["active", "draft", "cancelled"]),
31467
+ sessionsCount: z44.number(),
31468
+ enrolledCount: z44.number(),
31469
+ availableSpots: z44.number().nullable(),
31470
+ sessions: z44.array(courseSessionSchema),
31079
31471
  venue: courseVenueSchema.nullable(),
31080
- contentEntryId: z43.string().nullable()
31472
+ contentEntryId: z44.string().nullable()
31081
31473
  });
31082
- var publicCoursesArraySchema = z43.array(publicCourseSchema);
31474
+ var publicCoursesArraySchema = z44.array(publicCourseSchema);
31083
31475
 
31084
31476
  // ../blocks/src/system/blocks/events/shared/schemas.ts
31085
- var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
31086
- var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
31087
- var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
31088
- var publicEventDestinationSchema = z44.discriminatedUnion("kind", [
31089
- z44.object({
31090
- kind: z44.literal("native"),
31477
+ var eventPresetSchema = z45.enum(["event", "class", "workshop", "retreat", "performance"]);
31478
+ var eventScheduleScopeSchema = z45.enum(["recurring", "oneOff"]);
31479
+ var eventDestinationModeSchema = z45.enum(["cms-managed", "system-managed"]);
31480
+ var publicEventDestinationSchema = z45.discriminatedUnion("kind", [
31481
+ z45.object({
31482
+ kind: z45.literal("native"),
31091
31483
  mode: eventDestinationModeSchema,
31092
- path: z44.string()
31484
+ path: z45.string()
31093
31485
  }),
31094
- z44.object({
31095
- kind: z44.literal("external"),
31096
- url: z44.string(),
31097
- label: z44.string()
31486
+ z45.object({
31487
+ kind: z45.literal("external"),
31488
+ url: z45.string(),
31489
+ label: z45.string()
31098
31490
  })
31099
31491
  ]);
31100
- var eventVenueSchema = z44.object({
31101
- id: z44.string(),
31102
- name: z44.string(),
31103
- address: z44.string().nullable(),
31104
- location: z44.object({
31105
- lat: z44.number(),
31106
- lng: z44.number()
31492
+ var eventVenueSchema = z45.object({
31493
+ id: z45.string(),
31494
+ name: z45.string(),
31495
+ address: z45.string().nullable(),
31496
+ location: z45.object({
31497
+ lat: z45.number(),
31498
+ lng: z45.number()
31107
31499
  }).nullable()
31108
31500
  });
31109
- var eventCategorySchema = z44.object({
31110
- id: z44.string(),
31111
- name: z44.string(),
31112
- color: z44.string().nullable()
31113
- });
31114
- var pricingTypeSchema = z44.enum(["free", "paid", "external"]);
31115
- var accessRestrictionSchema = z44.enum(["none", "category"]);
31116
- var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
31117
- var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
31118
- z44.object({ kind: z44.literal("free"), currency: z44.string() }),
31119
- z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
31120
- z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
31121
- z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
31501
+ var eventCategorySchema = z45.object({
31502
+ id: z45.string(),
31503
+ name: z45.string(),
31504
+ color: z45.string().nullable()
31505
+ });
31506
+ var pricingTypeSchema = z45.enum(["free", "paid", "external"]);
31507
+ var accessRestrictionSchema = z45.enum(["none", "category"]);
31508
+ var eventPricingModeSchema = z45.enum(["single", "ticket_types"]);
31509
+ var publicCoursePriceDisplaySchema = z45.discriminatedUnion("kind", [
31510
+ z45.object({ kind: z45.literal("free"), currency: z45.string() }),
31511
+ z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
31512
+ z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
31513
+ z45.object({ kind: z45.literal("unavailable"), currency: z45.string() })
31122
31514
  ]);
31123
- var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
31124
- z44.object({ kind: z44.literal("free"), currency: z44.string() }),
31125
- z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
31126
- z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
31127
- z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
31128
- z44.object({
31129
- kind: z44.literal("mixed"),
31130
- paidFromAmount: z44.number(),
31131
- paidToAmount: z44.number(),
31132
- currency: z44.string()
31515
+ var publicEventPriceDisplaySchema = z45.discriminatedUnion("kind", [
31516
+ z45.object({ kind: z45.literal("free"), currency: z45.string() }),
31517
+ z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
31518
+ z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
31519
+ z45.object({ kind: z45.literal("range"), minAmount: z45.number(), maxAmount: z45.number(), currency: z45.string() }),
31520
+ z45.object({
31521
+ kind: z45.literal("mixed"),
31522
+ paidFromAmount: z45.number(),
31523
+ paidToAmount: z45.number(),
31524
+ currency: z45.string()
31133
31525
  }),
31134
- z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
31135
- z44.object({ kind: z44.literal("external"), label: z44.string() }),
31136
- z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
31526
+ z45.object({ kind: z45.literal("unavailable"), currency: z45.string() }),
31527
+ z45.object({ kind: z45.literal("external"), label: z45.string() }),
31528
+ z45.object({ kind: z45.literal("course"), display: publicCoursePriceDisplaySchema })
31137
31529
  ]);
31138
- var publicEventTicketTypePriceDisplaySchema = z44.union([
31139
- z44.object({ kind: z44.literal("free"), currency: z44.string() }),
31140
- z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
31141
- z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
31142
- z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
31143
- z44.object({
31144
- kind: z44.literal("mixed"),
31145
- paidFromAmount: z44.number(),
31146
- paidToAmount: z44.number(),
31147
- currency: z44.string()
31530
+ var publicEventTicketTypePriceDisplaySchema = z45.union([
31531
+ z45.object({ kind: z45.literal("free"), currency: z45.string() }),
31532
+ z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
31533
+ z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
31534
+ z45.object({ kind: z45.literal("range"), minAmount: z45.number(), maxAmount: z45.number(), currency: z45.string() }),
31535
+ z45.object({
31536
+ kind: z45.literal("mixed"),
31537
+ paidFromAmount: z45.number(),
31538
+ paidToAmount: z45.number(),
31539
+ currency: z45.string()
31148
31540
  }),
31149
- z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
31541
+ z45.object({ kind: z45.literal("unavailable"), currency: z45.string() })
31150
31542
  ]);
31151
- var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
31152
- var publicEventAttendanceModeAvailabilitySchema = z44.object({
31543
+ var publicEventAttendanceModeSchema = z45.enum(["in_person", "online"]);
31544
+ var publicEventAttendanceModeAvailabilitySchema = z45.object({
31153
31545
  mode: publicEventAttendanceModeSchema,
31154
- capacity: z44.number().nullable(),
31155
- registeredCount: z44.number(),
31156
- availableSpots: z44.number().nullable(),
31157
- waitlistEnabled: z44.boolean()
31158
- });
31159
- var publicEventTicketTypeAvailabilitySchema = z44.union([
31160
- z44.object({
31161
- kind: z44.literal("available"),
31162
- remainingCapacity: z44.number().nullable()
31546
+ capacity: z45.number().nullable(),
31547
+ registeredCount: z45.number(),
31548
+ availableSpots: z45.number().nullable(),
31549
+ waitlistEnabled: z45.boolean()
31550
+ });
31551
+ var publicEventTicketTypeAvailabilitySchema = z45.union([
31552
+ z45.object({
31553
+ kind: z45.literal("available"),
31554
+ remainingCapacity: z45.number().nullable()
31163
31555
  }),
31164
- z44.object({
31165
- kind: z44.literal("unavailable"),
31166
- reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
31167
- remainingCapacity: z44.number().nullable()
31556
+ z45.object({
31557
+ kind: z45.literal("unavailable"),
31558
+ reason: z45.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
31559
+ remainingCapacity: z45.number().nullable()
31168
31560
  })
31169
31561
  ]);
31170
- var publicEventTicketTypeSchema = z44.object({
31171
- id: z44.string(),
31172
- siteId: z44.string(),
31173
- eventSeriesId: z44.string(),
31174
- name: z44.string(),
31175
- description: z44.string().nullable(),
31176
- priceAmount: z44.number(),
31177
- isActive: z44.boolean(),
31178
- sortOrder: z44.number(),
31179
- capacityMode: z44.enum(["limited", "unlimited"]),
31180
- capacityLimit: z44.number().nullable(),
31181
- attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
31182
- saleStartsAt: z44.string().nullable(),
31183
- saleEndsAt: z44.string().nullable(),
31562
+ var publicEventTicketTypeSchema = z45.object({
31563
+ id: z45.string(),
31564
+ siteId: z45.string(),
31565
+ eventSeriesId: z45.string(),
31566
+ name: z45.string(),
31567
+ description: z45.string().nullable(),
31568
+ priceAmount: z45.number(),
31569
+ isActive: z45.boolean(),
31570
+ sortOrder: z45.number(),
31571
+ capacityMode: z45.enum(["limited", "unlimited"]),
31572
+ capacityLimit: z45.number().nullable(),
31573
+ attendanceScope: z45.enum(["in_person", "online", "both"]).optional(),
31574
+ saleStartsAt: z45.string().nullable(),
31575
+ saleEndsAt: z45.string().nullable(),
31184
31576
  availability: publicEventTicketTypeAvailabilitySchema,
31185
- createdAt: z44.string(),
31186
- updatedAt: z44.string()
31187
- });
31188
- var publicEventPricingSchema = z44.discriminatedUnion("kind", [
31189
- z44.object({
31190
- kind: z44.literal("drop_in"),
31191
- currency: z44.string(),
31192
- display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
31577
+ createdAt: z45.string(),
31578
+ updatedAt: z45.string()
31579
+ });
31580
+ var publicEventPricingSchema = z45.discriminatedUnion("kind", [
31581
+ z45.object({
31582
+ kind: z45.literal("drop_in"),
31583
+ currency: z45.string(),
31584
+ display: z45.object({ kind: z45.literal("free"), currency: z45.string() })
31193
31585
  }),
31194
- z44.object({
31195
- kind: z44.literal("free_registration"),
31196
- currency: z44.string(),
31197
- display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
31586
+ z45.object({
31587
+ kind: z45.literal("free_registration"),
31588
+ currency: z45.string(),
31589
+ display: z45.object({ kind: z45.literal("free"), currency: z45.string() })
31198
31590
  }),
31199
- z44.object({
31200
- kind: z44.literal("single_paid"),
31201
- amount: z44.number(),
31202
- currency: z44.string(),
31203
- display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
31591
+ z45.object({
31592
+ kind: z45.literal("single_paid"),
31593
+ amount: z45.number(),
31594
+ currency: z45.string(),
31595
+ display: z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() })
31204
31596
  }),
31205
- z44.object({
31206
- kind: z44.literal("ticket_types"),
31207
- currency: z44.string(),
31208
- ticketTypes: z44.array(publicEventTicketTypeSchema),
31597
+ z45.object({
31598
+ kind: z45.literal("ticket_types"),
31599
+ currency: z45.string(),
31600
+ ticketTypes: z45.array(publicEventTicketTypeSchema),
31209
31601
  display: publicEventTicketTypePriceDisplaySchema
31210
31602
  }),
31211
- z44.object({
31212
- kind: z44.literal("sliding_scale"),
31213
- minAmount: z44.number(),
31214
- maxAmount: z44.number(),
31215
- suggestedAmount: z44.number().nullable(),
31216
- currency: z44.string(),
31217
- display: z44.object({
31218
- kind: z44.literal("range"),
31219
- minAmount: z44.number(),
31220
- maxAmount: z44.number(),
31221
- currency: z44.string()
31603
+ z45.object({
31604
+ kind: z45.literal("sliding_scale"),
31605
+ minAmount: z45.number(),
31606
+ maxAmount: z45.number(),
31607
+ suggestedAmount: z45.number().nullable(),
31608
+ currency: z45.string(),
31609
+ display: z45.object({
31610
+ kind: z45.literal("range"),
31611
+ minAmount: z45.number(),
31612
+ maxAmount: z45.number(),
31613
+ currency: z45.string()
31222
31614
  })
31223
31615
  }),
31224
- z44.object({
31225
- kind: z44.literal("course"),
31226
- display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
31616
+ z45.object({
31617
+ kind: z45.literal("course"),
31618
+ display: z45.object({ kind: z45.literal("course"), display: publicCoursePriceDisplaySchema })
31227
31619
  }),
31228
- z44.object({
31229
- kind: z44.literal("external"),
31230
- display: z44.object({ kind: z44.literal("external"), label: z44.string() })
31620
+ z45.object({
31621
+ kind: z45.literal("external"),
31622
+ display: z45.object({ kind: z45.literal("external"), label: z45.string() })
31231
31623
  })
31232
31624
  ]);
31233
- var publicTeamMemberSummarySchema = z44.object({
31234
- id: z44.string(),
31235
- name: z44.string(),
31236
- roleLabel: z44.string().nullable(),
31237
- summary: z44.string().nullable(),
31238
- profilePath: z44.string().nullable()
31625
+ var publicTeamMemberSummarySchema = z45.object({
31626
+ id: z45.string(),
31627
+ name: z45.string(),
31628
+ roleLabel: z45.string().nullable(),
31629
+ summary: z45.string().nullable(),
31630
+ profilePath: z45.string().nullable()
31239
31631
  });
31240
- var publicEventSchema = z44.object({
31241
- kind: z44.enum(["event", "course_session"]).optional(),
31632
+ var publicEventSchema = z45.object({
31633
+ kind: z45.enum(["event", "course_session"]).optional(),
31242
31634
  eventPreset: eventPresetSchema.optional(),
31243
31635
  eventDestinationMode: eventDestinationModeSchema.optional(),
31244
31636
  scheduleScope: eventScheduleScopeSchema.optional(),
31245
- id: z44.string(),
31246
- occurrenceId: z44.string(),
31247
- seriesId: z44.string(),
31248
- title: z44.string(),
31249
- description: z44.string().nullable(),
31250
- content: z44.object({
31637
+ id: z45.string(),
31638
+ occurrenceId: z45.string(),
31639
+ seriesId: z45.string(),
31640
+ title: z45.string(),
31641
+ description: z45.string().nullable(),
31642
+ content: z45.object({
31251
31643
  body: RichTextDocSchema.nullable().optional()
31252
31644
  }).optional(),
31253
- presentation: z44.object({
31254
- cardTitleOverride: z44.string().nullable().optional(),
31255
- summary: z44.string().nullable().optional(),
31645
+ presentation: z45.object({
31646
+ cardTitleOverride: z45.string().nullable().optional(),
31647
+ summary: z45.string().nullable().optional(),
31256
31648
  image: mediaSchema2.nullable().optional()
31257
31649
  }).optional(),
31258
- slug: z44.string(),
31259
- path: z44.string().nullable(),
31650
+ slug: z45.string(),
31651
+ path: z45.string().nullable(),
31260
31652
  destination: publicEventDestinationSchema,
31261
- requiresRegistration: z44.boolean(),
31262
- deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
31263
- attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
31264
- startsAt: z44.string(),
31265
- endsAt: z44.string(),
31266
- capacity: z44.number().nullable(),
31267
- registeredCount: z44.number(),
31268
- availableSpots: z44.number().nullable(),
31269
- waitlistEnabled: z44.boolean(),
31653
+ requiresRegistration: z45.boolean(),
31654
+ deliveryMode: z45.enum(["in_person", "online", "hybrid"]),
31655
+ attendanceModes: z45.array(publicEventAttendanceModeAvailabilitySchema),
31656
+ startsAt: z45.string(),
31657
+ endsAt: z45.string(),
31658
+ capacity: z45.number().nullable(),
31659
+ registeredCount: z45.number(),
31660
+ availableSpots: z45.number().nullable(),
31661
+ waitlistEnabled: z45.boolean(),
31270
31662
  venue: eventVenueSchema.nullable(),
31271
31663
  eventCategory: eventCategorySchema.nullable(),
31272
- teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
31273
- status: z44.enum(["active", "draft", "archived"]).optional(),
31274
- timeZone: z44.string(),
31664
+ teamMembers: z45.array(publicTeamMemberSummarySchema).optional(),
31665
+ status: z45.enum(["active", "draft", "archived"]).optional(),
31666
+ timeZone: z45.string(),
31275
31667
  pricing: publicEventPricingSchema,
31276
31668
  paymentTerms: blockBookingPaymentTermsSchema,
31277
31669
  accessRestriction: accessRestrictionSchema,
31278
- allowedCategoryIds: z44.array(z44.string()),
31279
- requireGuestDetails: z44.boolean().optional(),
31280
- acceptsPasses: z44.boolean().optional(),
31281
- acceptsMemberships: z44.boolean().optional(),
31282
- course: z44.object({
31283
- id: z44.string(),
31670
+ allowedCategoryIds: z45.array(z45.string()),
31671
+ requireGuestDetails: z45.boolean().optional(),
31672
+ acceptsPasses: z45.boolean().optional(),
31673
+ acceptsMemberships: z45.boolean().optional(),
31674
+ course: z45.object({
31675
+ id: z45.string(),
31284
31676
  pricing: coursePricingSchema.optional(),
31285
- priceCents: z44.number().nullable(),
31286
- currency: z44.string(),
31287
- enrollmentOpen: z44.boolean()
31677
+ priceCents: z45.number().nullable(),
31678
+ currency: z45.string(),
31679
+ enrollmentOpen: z45.boolean()
31288
31680
  }).nullable().optional()
31289
31681
  });
31290
- var publicEventsArraySchema = z44.array(publicEventSchema);
31682
+ var publicEventsArraySchema = z45.array(publicEventSchema);
31291
31683
 
31292
31684
  // ../blocks/src/system/blocks/events/shared/fields.ts
31293
31685
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -31490,52 +31882,80 @@ function normalizeEventStaffMemberId(value) {
31490
31882
  return trimmed ? trimmed : null;
31491
31883
  }
31492
31884
 
31885
+ // ../blocks/src/system/blocks/events/shared/layout.ts
31886
+ var recoverEmptyHeadingWhenActive = {
31887
+ kind: "recover-empty-when-active",
31888
+ placeholder: "Add heading"
31889
+ };
31890
+ var recoverEmptyDescriptionWhenActive = {
31891
+ kind: "recover-empty-when-active",
31892
+ placeholder: "Add description"
31893
+ };
31894
+ function eventSectionHeaderLayoutNodes() {
31895
+ return [
31896
+ text(
31897
+ { as: "h2" },
31898
+ bind("content.heading"),
31899
+ when("content.heading", {
31900
+ authoringPresence: recoverEmptyHeadingWhenActive
31901
+ })
31902
+ ),
31903
+ richText(
31904
+ { className: "rb-prose rb-max-w-none" },
31905
+ bind("content.description"),
31906
+ when("content.description", {
31907
+ authoringPresence: recoverEmptyDescriptionWhenActive
31908
+ })
31909
+ )
31910
+ ];
31911
+ }
31912
+
31493
31913
  // ../blocks/src/system/blocks/shop.shared.ts
31494
- import { z as z45 } from "zod";
31495
- var publicPassProductSchema = z45.object({
31496
- id: z45.string(),
31497
- productUseCase: z45.enum(["event_pass", "appointment_package"]).default("event_pass"),
31498
- name: z45.string(),
31499
- description: z45.string().nullable(),
31500
- price: z45.number(),
31501
- currency: z45.string(),
31502
- creditsTotal: z45.number(),
31503
- pricePerCredit: z45.number(),
31504
- validDays: z45.number().nullable(),
31505
- eligibleCategoryIds: z45.array(z45.string()),
31506
- eligibleCategoryNames: z45.array(z45.string())
31507
- });
31508
- var publicPassProductCollectionSchema = z45.object({
31509
- passes: z45.array(publicPassProductSchema)
31510
- });
31511
- var publicMembershipProductSchema = z45.object({
31512
- id: z45.string(),
31513
- name: z45.string(),
31514
- description: z45.string().nullable(),
31515
- price: z45.number(),
31516
- currency: z45.string(),
31517
- billingInterval: z45.enum(["month", "year"]),
31518
- eligibleCategoryIds: z45.array(z45.string()),
31519
- eligibleCategoryNames: z45.array(z45.string())
31914
+ import { z as z46 } from "zod";
31915
+ var publicPassProductSchema = z46.object({
31916
+ id: z46.string(),
31917
+ productUseCase: z46.enum(["event_pass", "appointment_package"]).default("event_pass"),
31918
+ name: z46.string(),
31919
+ description: z46.string().nullable(),
31920
+ price: z46.number(),
31921
+ currency: z46.string(),
31922
+ creditsTotal: z46.number(),
31923
+ pricePerCredit: z46.number(),
31924
+ validDays: z46.number().nullable(),
31925
+ eligibleCategoryIds: z46.array(z46.string()),
31926
+ eligibleCategoryNames: z46.array(z46.string())
31927
+ });
31928
+ var publicPassProductCollectionSchema = z46.object({
31929
+ passes: z46.array(publicPassProductSchema)
31930
+ });
31931
+ var publicMembershipProductSchema = z46.object({
31932
+ id: z46.string(),
31933
+ name: z46.string(),
31934
+ description: z46.string().nullable(),
31935
+ price: z46.number(),
31936
+ currency: z46.string(),
31937
+ billingInterval: z46.enum(["month", "year"]),
31938
+ eligibleCategoryIds: z46.array(z46.string()),
31939
+ eligibleCategoryNames: z46.array(z46.string())
31520
31940
  });
31521
- var publicMembershipProductCollectionSchema = z45.object({
31522
- memberships: z45.array(publicMembershipProductSchema)
31941
+ var publicMembershipProductCollectionSchema = z46.object({
31942
+ memberships: z46.array(publicMembershipProductSchema)
31523
31943
  });
31524
31944
 
31525
31945
  // ../blocks/src/system/blocks/event-registration.shared.ts
31526
- import { z as z46 } from "zod";
31527
- var occurrenceContextSchema = z46.object({
31528
- id: z46.string(),
31529
- seriesId: z46.string(),
31530
- startsAt: z46.string(),
31531
- endsAt: z46.string(),
31532
- timeZone: z46.string(),
31533
- capacityOverride: z46.number().nullable().optional(),
31534
- overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
31946
+ import { z as z47 } from "zod";
31947
+ var occurrenceContextSchema = z47.object({
31948
+ id: z47.string(),
31949
+ seriesId: z47.string(),
31950
+ startsAt: z47.string(),
31951
+ endsAt: z47.string(),
31952
+ timeZone: z47.string(),
31953
+ capacityOverride: z47.number().nullable().optional(),
31954
+ overrides: z47.record(z47.string(), z47.unknown()).nullable().optional()
31535
31955
  }).nullable();
31536
31956
 
31537
31957
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
31538
- import { z as z48 } from "zod";
31958
+ import { z as z49 } from "zod";
31539
31959
 
31540
31960
  // ../blocks/src/system/constants/events.ts
31541
31961
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -31722,17 +32142,17 @@ function readAmount(value) {
31722
32142
  }
31723
32143
 
31724
32144
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
31725
- import { z as z47 } from "zod";
31726
- var previewStageSchema = z47.enum(["preview", "published"]);
31727
- var registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
31728
- var eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
31729
- var eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
31730
- var eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
31731
- var eventCalendarDefaultViewSchema = z47.enum(eventCalendarDefaultViewValues);
31732
- var columnOptionSchema = z47.enum(["2", "3", "4"]);
31733
- var weekStartSchema = z47.enum(["sunday", "monday"]);
31734
- var filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
31735
- var calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
32145
+ import { z as z48 } from "zod";
32146
+ var previewStageSchema = z48.enum(["preview", "published"]);
32147
+ var registrationButtonVariantSchema = z48.enum(["primary", "secondary", "outline"]);
32148
+ var eventButtonVariantSchema = z48.enum(["primary", "secondary", "outline", "link"]);
32149
+ var eventLayoutSchema = z48.enum(eventCalendarListLayoutValues);
32150
+ var eventCalendarDisplayModeSchema = z48.enum(eventCalendarDisplayModeValues);
32151
+ var eventCalendarDefaultViewSchema = z48.enum(eventCalendarDefaultViewValues);
32152
+ var columnOptionSchema = z48.enum(["2", "3", "4"]);
32153
+ var weekStartSchema = z48.enum(["sunday", "monday"]);
32154
+ var filterAutoShowSchema = z48.enum(["auto", "always", "never"]);
32155
+ var calendarTabViewsSchema = z48.enum(["both", "month", "week"]);
31736
32156
 
31737
32157
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
31738
32158
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -31792,72 +32212,72 @@ function toRegistrationEvents(events) {
31792
32212
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
31793
32213
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
31794
32214
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
31795
- var contentEntrySchema = z48.object({
31796
- id: z48.string(),
31797
- slug: z48.string(),
31798
- contentTypeSlug: z48.string()
32215
+ var contentEntrySchema = z49.object({
32216
+ id: z49.string(),
32217
+ slug: z49.string(),
32218
+ contentTypeSlug: z49.string()
31799
32219
  });
31800
- var eventRegistrationPublicEventSchema = z48.preprocess(
32220
+ var eventRegistrationPublicEventSchema = z49.preprocess(
31801
32221
  normalizeEventRegistrationEventInput,
31802
32222
  publicEventSchema
31803
32223
  );
31804
- var eventRegistrationSourceSchema = z48.object({
31805
- siteId: z48.string().optional(),
31806
- apiBaseUrl: z48.string().optional(),
31807
- portalToken: z48.string().nullable().optional(),
31808
- previewToken: z48.string().nullable().optional(),
32224
+ var eventRegistrationSourceSchema = z49.object({
32225
+ siteId: z49.string().optional(),
32226
+ apiBaseUrl: z49.string().optional(),
32227
+ portalToken: z49.string().nullable().optional(),
32228
+ previewToken: z49.string().nullable().optional(),
31809
32229
  occurrenceContext: occurrenceContextSchema.optional(),
31810
32230
  contentEntry: contentEntrySchema.nullable().optional(),
31811
- events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
31812
- className: z48.string().nullable().optional(),
31813
- buttonText: z48.string().nullable().optional(),
31814
- maxTickets: z48.string().nullable().optional(),
31815
- showVenue: z48.boolean().optional(),
31816
- showCapacity: z48.boolean().optional(),
31817
- successMessage: z48.string().optional(),
31818
- waitlistMessage: z48.string().optional(),
32231
+ events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
32232
+ className: z49.string().nullable().optional(),
32233
+ buttonText: z49.string().nullable().optional(),
32234
+ maxTickets: z49.string().nullable().optional(),
32235
+ showVenue: z49.boolean().optional(),
32236
+ showCapacity: z49.boolean().optional(),
32237
+ successMessage: z49.string().optional(),
32238
+ waitlistMessage: z49.string().optional(),
31819
32239
  buttonVariant: registrationButtonVariantSchema.optional(),
31820
- overlayEnabled: z48.boolean().optional(),
31821
- spamProtectionEnabled: z48.boolean().optional(),
32240
+ overlayEnabled: z49.boolean().optional(),
32241
+ spamProtectionEnabled: z49.boolean().optional(),
31822
32242
  stage: previewStageSchema.optional(),
31823
- supportEmail: z48.string().optional(),
32243
+ supportEmail: z49.string().optional(),
31824
32244
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
31825
32245
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
31826
32246
  });
31827
- var eventRegistrationDisplaySchema = z48.object({
31828
- kind: z48.literal("event-registration"),
31829
- state: z48.literal("generic-shell"),
31830
- className: z48.string().nullable(),
31831
- titleText: z48.string(),
31832
- bodyText: z48.string(),
31833
- stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
31834
- summaryButtonText: z48.string()
32247
+ var eventRegistrationDisplaySchema = z49.object({
32248
+ kind: z49.literal("event-registration"),
32249
+ state: z49.literal("generic-shell"),
32250
+ className: z49.string().nullable(),
32251
+ titleText: z49.string(),
32252
+ bodyText: z49.string(),
32253
+ stepLabels: z49.array(z49.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
32254
+ summaryButtonText: z49.string()
31835
32255
  });
31836
- var eventRegistrationHydrationSchema = z48.object({
32256
+ var eventRegistrationHydrationSchema = z49.object({
31837
32257
  occurrenceContext: occurrenceContextSchema.optional(),
31838
32258
  contentEntry: contentEntrySchema.nullable().optional(),
31839
- events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
31840
- maxTickets: z48.string().optional(),
31841
- showVenue: z48.boolean().optional(),
31842
- showCapacity: z48.boolean().optional(),
31843
- successMessage: z48.string().optional(),
31844
- waitlistMessage: z48.string().optional(),
32259
+ events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
32260
+ maxTickets: z49.string().optional(),
32261
+ showVenue: z49.boolean().optional(),
32262
+ showCapacity: z49.boolean().optional(),
32263
+ successMessage: z49.string().optional(),
32264
+ waitlistMessage: z49.string().optional(),
31845
32265
  buttonVariant: registrationButtonVariantSchema.optional(),
31846
- overlayEnabled: z48.boolean().optional(),
31847
- spamProtectionEnabled: z48.boolean().optional(),
31848
- supportEmail: z48.string().optional(),
32266
+ overlayEnabled: z49.boolean().optional(),
32267
+ spamProtectionEnabled: z49.boolean().optional(),
32268
+ supportEmail: z49.string().optional(),
31849
32269
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
31850
32270
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
31851
32271
  });
31852
- var eventRegistrationRenderSchema = z48.object({
32272
+ var eventRegistrationRenderSchema = z49.object({
31853
32273
  display: eventRegistrationDisplaySchema,
31854
32274
  hydration: eventRegistrationHydrationSchema
31855
32275
  });
31856
- var eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
31857
- siteId: z48.string().optional(),
31858
- apiBaseUrl: z48.string().optional(),
31859
- portalToken: z48.string().nullable().optional(),
31860
- previewToken: z48.string().nullable().optional(),
32276
+ var eventRegistrationIslandMetaCodec = createZodCodec(z49.object({
32277
+ siteId: z49.string().optional(),
32278
+ apiBaseUrl: z49.string().optional(),
32279
+ portalToken: z49.string().nullable().optional(),
32280
+ previewToken: z49.string().nullable().optional(),
31861
32281
  stage: previewStageSchema.optional()
31862
32282
  }));
31863
32283
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -32208,73 +32628,73 @@ var eventRegistrationBlockDefinition = {
32208
32628
  };
32209
32629
 
32210
32630
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
32211
- import { z as z49 } from "zod";
32212
- var contentEntrySchema2 = z49.object({
32213
- id: z49.string(),
32214
- slug: z49.string(),
32215
- contentTypeSlug: z49.string()
32216
- });
32217
- var courseEntrySubrouteContextSchema = z49.union([
32218
- z49.object({
32219
- kind: z49.literal("course-run"),
32220
- run: z49.object({
32221
- courseId: z49.string(),
32222
- seriesId: z49.string(),
32223
- runSlug: z49.string(),
32224
- runName: z49.string().nullable()
32631
+ import { z as z50 } from "zod";
32632
+ var contentEntrySchema2 = z50.object({
32633
+ id: z50.string(),
32634
+ slug: z50.string(),
32635
+ contentTypeSlug: z50.string()
32636
+ });
32637
+ var courseEntrySubrouteContextSchema = z50.union([
32638
+ z50.object({
32639
+ kind: z50.literal("course-run"),
32640
+ run: z50.object({
32641
+ courseId: z50.string(),
32642
+ seriesId: z50.string(),
32643
+ runSlug: z50.string(),
32644
+ runName: z50.string().nullable()
32225
32645
  })
32226
32646
  }),
32227
- z49.object({
32228
- kind: z49.literal("event-occurrence"),
32647
+ z50.object({
32648
+ kind: z50.literal("event-occurrence"),
32229
32649
  occurrence: occurrenceContextSchema
32230
32650
  })
32231
32651
  ]);
32232
- var courseRegistrationSourceSchema = z49.object({
32233
- siteId: z49.string().optional(),
32234
- apiBaseUrl: z49.string().optional(),
32235
- portalToken: z49.string().nullable().optional(),
32652
+ var courseRegistrationSourceSchema = z50.object({
32653
+ siteId: z50.string().optional(),
32654
+ apiBaseUrl: z50.string().optional(),
32655
+ portalToken: z50.string().nullable().optional(),
32236
32656
  contentEntry: contentEntrySchema2.nullable().optional(),
32237
32657
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
32238
- courses: z49.array(publicCourseSchema).nullable().optional(),
32239
- className: z49.string().nullable().optional(),
32240
- showSessions: z49.boolean().optional(),
32241
- showPrice: z49.boolean().optional(),
32242
- showCapacity: z49.boolean().optional(),
32243
- showVenue: z49.boolean().optional(),
32244
- successMessage: z49.string().optional(),
32245
- waitlistMessage: z49.string().optional(),
32246
- membershipMessage: z49.string().optional(),
32247
- buttonText: z49.string().nullable().optional(),
32658
+ courses: z50.array(publicCourseSchema).nullable().optional(),
32659
+ className: z50.string().nullable().optional(),
32660
+ showSessions: z50.boolean().optional(),
32661
+ showPrice: z50.boolean().optional(),
32662
+ showCapacity: z50.boolean().optional(),
32663
+ showVenue: z50.boolean().optional(),
32664
+ successMessage: z50.string().optional(),
32665
+ waitlistMessage: z50.string().optional(),
32666
+ membershipMessage: z50.string().optional(),
32667
+ buttonText: z50.string().nullable().optional(),
32248
32668
  buttonVariant: registrationButtonVariantSchema.optional(),
32249
32669
  stage: previewStageSchema.optional()
32250
32670
  });
32251
- var courseRegistrationDisplaySchema = z49.object({
32252
- kind: z49.literal("course-registration"),
32253
- state: z49.literal("shell"),
32254
- className: z49.string().nullable(),
32255
- summaryButtonText: z49.string()
32671
+ var courseRegistrationDisplaySchema = z50.object({
32672
+ kind: z50.literal("course-registration"),
32673
+ state: z50.literal("shell"),
32674
+ className: z50.string().nullable(),
32675
+ summaryButtonText: z50.string()
32256
32676
  });
32257
- var courseRegistrationHydrationSchema = z49.object({
32677
+ var courseRegistrationHydrationSchema = z50.object({
32258
32678
  contentEntry: contentEntrySchema2.nullable().optional(),
32259
32679
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
32260
- courses: z49.array(publicCourseSchema).nullable().optional(),
32261
- showSessions: z49.boolean().optional(),
32262
- showPrice: z49.boolean().optional(),
32263
- showCapacity: z49.boolean().optional(),
32264
- showVenue: z49.boolean().optional(),
32265
- successMessage: z49.string().optional(),
32266
- waitlistMessage: z49.string().optional(),
32267
- membershipMessage: z49.string().optional(),
32680
+ courses: z50.array(publicCourseSchema).nullable().optional(),
32681
+ showSessions: z50.boolean().optional(),
32682
+ showPrice: z50.boolean().optional(),
32683
+ showCapacity: z50.boolean().optional(),
32684
+ showVenue: z50.boolean().optional(),
32685
+ successMessage: z50.string().optional(),
32686
+ waitlistMessage: z50.string().optional(),
32687
+ membershipMessage: z50.string().optional(),
32268
32688
  buttonVariant: registrationButtonVariantSchema.optional()
32269
32689
  });
32270
- var courseRegistrationRenderSchema = z49.object({
32690
+ var courseRegistrationRenderSchema = z50.object({
32271
32691
  display: courseRegistrationDisplaySchema,
32272
32692
  hydration: courseRegistrationHydrationSchema
32273
32693
  });
32274
- var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
32275
- siteId: z49.string().optional(),
32276
- apiBaseUrl: z49.string().optional(),
32277
- portalToken: z49.string().nullable().optional(),
32694
+ var courseRegistrationIslandMetaCodec = createZodCodec(z50.object({
32695
+ siteId: z50.string().optional(),
32696
+ apiBaseUrl: z50.string().optional(),
32697
+ portalToken: z50.string().nullable().optional(),
32278
32698
  stage: previewStageSchema.optional()
32279
32699
  }));
32280
32700
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -32534,7 +32954,7 @@ var courseRegistrationBlockDefinition = {
32534
32954
  };
32535
32955
 
32536
32956
  // ../blocks/src/system/blocks/event-details.ts
32537
- import { z as z50 } from "zod";
32957
+ import { z as z51 } from "zod";
32538
32958
  var eventDetailsManifest = createBlockManifest({
32539
32959
  id: "block.event-details",
32540
32960
  version: "1.0.0",
@@ -32666,37 +33086,37 @@ var eventDetailsManifest = createBlockManifest({
32666
33086
  })
32667
33087
  ]
32668
33088
  });
32669
- var occurrenceContextSchema2 = z50.object({
32670
- id: z50.string(),
32671
- seriesId: z50.string(),
32672
- startsAt: z50.string(),
32673
- endsAt: z50.string(),
32674
- timeZone: z50.string(),
32675
- capacityOverride: z50.number().nullable().optional(),
32676
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
33089
+ var occurrenceContextSchema2 = z51.object({
33090
+ id: z51.string(),
33091
+ seriesId: z51.string(),
33092
+ startsAt: z51.string(),
33093
+ endsAt: z51.string(),
33094
+ timeZone: z51.string(),
33095
+ capacityOverride: z51.number().nullable().optional(),
33096
+ overrides: z51.record(z51.string(), z51.unknown()).nullable().optional()
32677
33097
  }).nullable();
32678
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
32679
- id: z50.string(),
32680
- publicLabel: z50.string(),
32681
- description: z50.string().nullable(),
32682
- minTicketsRequired: z50.number().nullable()
33098
+ var eventAutoApplyDiscountPreviewBaseSchema = z51.object({
33099
+ id: z51.string(),
33100
+ publicLabel: z51.string(),
33101
+ description: z51.string().nullable(),
33102
+ minTicketsRequired: z51.number().nullable()
32683
33103
  });
32684
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
33104
+ var eventAutoApplyDiscountPreviewSchema = z51.discriminatedUnion("discountType", [
32685
33105
  eventAutoApplyDiscountPreviewBaseSchema.extend({
32686
- discountType: z50.literal("percent"),
32687
- discountPercent: z50.number(),
32688
- discountAmountCents: z50.null()
33106
+ discountType: z51.literal("percent"),
33107
+ discountPercent: z51.number(),
33108
+ discountAmountCents: z51.null()
32689
33109
  }),
32690
33110
  eventAutoApplyDiscountPreviewBaseSchema.extend({
32691
- discountType: z50.literal("fixed"),
32692
- discountPercent: z50.null(),
32693
- discountAmountCents: z50.number()
33111
+ discountType: z51.literal("fixed"),
33112
+ discountPercent: z51.null(),
33113
+ discountAmountCents: z51.number()
32694
33114
  })
32695
33115
  ]);
32696
33116
  var eventDetailsBlockDefinition = {
32697
33117
  manifest: eventDetailsManifest,
32698
33118
  dataSchemas: {
32699
- eventDetailsData: z50.object({
33119
+ eventDetailsData: z51.object({
32700
33120
  events: publicEventsArraySchema,
32701
33121
  sitePasses: publicPassProductCollectionSchema,
32702
33122
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -32951,18 +33371,7 @@ var eventSpotlightFields = [
32951
33371
  var eventSpotlightLayout = [
32952
33372
  styledSection({
32953
33373
  children: sectionContainer([
32954
- // Optional heading
32955
- text(
32956
- { as: "h2" },
32957
- bind("content.heading"),
32958
- when("content.heading")
32959
- ),
32960
- // Optional description
32961
- richText(
32962
- { className: "rb-prose rb-max-w-none" },
32963
- bind("content.description"),
32964
- when("content.description")
32965
- ),
33374
+ ...eventSectionHeaderLayoutNodes(),
32966
33375
  // Event spotlight component
32967
33376
  el("event-spotlight", {
32968
33377
  events: { $bind: { from: "data.events" } },
@@ -33023,7 +33432,7 @@ var eventSpotlightBlockDefinition = {
33023
33432
  };
33024
33433
 
33025
33434
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
33026
- import { z as z52 } from "zod";
33435
+ import { z as z53 } from "zod";
33027
33436
 
33028
33437
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
33029
33438
  var COLUMN_CLASSES = {
@@ -33131,16 +33540,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
33131
33540
  }
33132
33541
 
33133
33542
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
33134
- import { z as z51 } from "zod";
33543
+ import { z as z52 } from "zod";
33135
33544
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
33136
- var eventPageSizeSchema = z51.union([
33137
- z51.literal(3),
33138
- z51.literal(6),
33139
- z51.literal(10),
33140
- z51.literal(12),
33141
- z51.literal(20),
33142
- z51.literal(24),
33143
- z51.literal(30)
33545
+ var eventPageSizeSchema = z52.union([
33546
+ z52.literal(3),
33547
+ z52.literal(6),
33548
+ z52.literal(10),
33549
+ z52.literal(12),
33550
+ z52.literal(20),
33551
+ z52.literal(24),
33552
+ z52.literal(30)
33144
33553
  ]);
33145
33554
  var eventPageSizeSet = new Set(eventPageSizeValues);
33146
33555
  function resolveEventPageSize(value, fallback = 12) {
@@ -33150,15 +33559,15 @@ function resolveEventPageSize(value, fallback = 12) {
33150
33559
  function resolveEventCalendarListPageSize(input) {
33151
33560
  return resolveEventPageSize(input.eventsPerPage);
33152
33561
  }
33153
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
33154
- z51.object({
33155
- kind: z51.literal("loadMore"),
33156
- label: z51.string()
33562
+ var eventListPaginationActionSchema = z52.discriminatedUnion("kind", [
33563
+ z52.object({
33564
+ kind: z52.literal("loadMore"),
33565
+ label: z52.string()
33157
33566
  }),
33158
- z51.object({
33159
- kind: z51.literal("seeAllLink"),
33160
- label: z51.string(),
33161
- href: z51.string()
33567
+ z52.object({
33568
+ kind: z52.literal("seeAllLink"),
33569
+ label: z52.string(),
33570
+ href: z52.string()
33162
33571
  })
33163
33572
  ]);
33164
33573
  function resolveEventListPaginationAction(input) {
@@ -33171,89 +33580,89 @@ function resolveEventListPaginationAction(input) {
33171
33580
  }
33172
33581
 
33173
33582
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
33174
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
33175
- var eventCardVariantInputSchema = z52.union([
33583
+ var legacyEventCardVariantSchema = z53.enum(["variant1", "variant2"]);
33584
+ var eventCardVariantInputSchema = z53.union([
33176
33585
  cardVariantRoleSchema,
33177
33586
  legacyEventCardVariantSchema
33178
33587
  ]);
33179
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
33180
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
33181
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
33182
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
33183
- var eventListingSourceSchema = z52.object({
33184
- events: z52.array(publicEventSchema).nullable().optional(),
33185
- siteId: z52.string(),
33186
- apiBaseUrl: z52.string().optional(),
33588
+ var cardOrientationSchema = z53.enum(["vertical", "horizontal"]);
33589
+ var eventBlockKindSchema = z53.enum(eventBlockKindValues);
33590
+ var eventSurfaceScopeSchema = z53.enum(eventSurfaceScopeValues);
33591
+ var eventScheduleScopeSchema2 = z53.enum(eventScheduleScopeValues);
33592
+ var eventListingSourceSchema = z53.object({
33593
+ events: z53.array(publicEventSchema).nullable().optional(),
33594
+ siteId: z53.string(),
33595
+ apiBaseUrl: z53.string().optional(),
33187
33596
  stage: previewStageSchema.optional(),
33188
33597
  layout: eventLayoutSchema.optional(),
33189
33598
  columns: columnOptionSchema.optional(),
33190
- eventsPerPage: z52.string().optional(),
33191
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
33192
- seeAllUrl: z52.string().optional(),
33193
- loadMoreText: z52.string().optional(),
33599
+ eventsPerPage: z53.string().optional(),
33600
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
33601
+ seeAllUrl: z53.string().optional(),
33602
+ loadMoreText: z53.string().optional(),
33194
33603
  cardVariant: eventCardVariantInputSchema.optional(),
33195
33604
  buttonVariant: eventButtonVariantSchema.optional(),
33196
- buttonText: z52.string().optional(),
33197
- showVenue: z52.boolean().optional(),
33198
- showMap: z52.boolean().optional(),
33199
- showCapacity: z52.boolean().optional(),
33200
- emptyMessage: z52.string().optional(),
33201
- className: z52.string().optional(),
33202
- showFilters: z52.boolean().nullable().optional(),
33605
+ buttonText: z53.string().optional(),
33606
+ showVenue: z53.boolean().optional(),
33607
+ showMap: z53.boolean().optional(),
33608
+ showCapacity: z53.boolean().optional(),
33609
+ emptyMessage: z53.string().optional(),
33610
+ className: z53.string().optional(),
33611
+ showFilters: z53.boolean().nullable().optional(),
33203
33612
  showCategoryFilter: filterAutoShowSchema.optional(),
33204
- showVenueFilter: z52.boolean().nullable().optional(),
33205
- showStaffFilter: z52.boolean().nullable().optional(),
33613
+ showVenueFilter: z53.boolean().nullable().optional(),
33614
+ showStaffFilter: z53.boolean().nullable().optional(),
33206
33615
  eventKind: eventBlockKindSchema.nullable().optional(),
33207
33616
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
33208
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
33617
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
33209
33618
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
33210
- filterCategoryIds: z52.string().nullable().optional(),
33211
- filterStaffMemberId: z52.string().nullable().optional(),
33212
- filterVenueId: z52.string().nullable().optional()
33619
+ filterCategoryIds: z53.string().nullable().optional(),
33620
+ filterStaffMemberId: z53.string().nullable().optional(),
33621
+ filterVenueId: z53.string().nullable().optional()
33213
33622
  });
33214
- var eventListingDisplaySchema = z52.object({
33215
- kind: z52.literal("event-listing"),
33216
- state: z52.enum(["loading", "empty", "ready"]),
33623
+ var eventListingDisplaySchema = z53.object({
33624
+ kind: z53.literal("event-listing"),
33625
+ state: z53.enum(["loading", "empty", "ready"]),
33217
33626
  listLayout: eventLayoutSchema,
33218
- className: z52.string().nullable(),
33219
- emptyMessage: z52.string(),
33220
- loadingMessage: z52.string(),
33221
- containerClass: z52.string(),
33627
+ className: z53.string().nullable(),
33628
+ emptyMessage: z53.string(),
33629
+ loadingMessage: z53.string(),
33630
+ containerClass: z53.string(),
33222
33631
  cardVariant: cardVariantRoleSchema,
33223
33632
  buttonVariant: eventButtonVariantSchema,
33224
- buttonText: z52.string(),
33225
- showVenue: z52.boolean(),
33226
- showMap: z52.boolean(),
33227
- showCapacity: z52.boolean(),
33633
+ buttonText: z53.string(),
33634
+ showVenue: z53.boolean(),
33635
+ showMap: z53.boolean(),
33636
+ showCapacity: z53.boolean(),
33228
33637
  orientation: cardOrientationSchema,
33229
- events: z52.array(publicEventSchema)
33638
+ events: z53.array(publicEventSchema)
33230
33639
  });
33231
- var eventListingHydrationSchema = z52.object({
33232
- siteId: z52.string(),
33640
+ var eventListingHydrationSchema = z53.object({
33641
+ siteId: z53.string(),
33233
33642
  stage: previewStageSchema.optional(),
33234
33643
  eventsPerPage: eventPageSizeSchema,
33235
33644
  paginationAction: eventListPaginationActionSchema,
33236
- showFilters: z52.boolean(),
33645
+ showFilters: z53.boolean(),
33237
33646
  showCategoryFilter: filterAutoShowSchema,
33238
- showVenueFilter: z52.boolean(),
33239
- showStaffFilter: z52.boolean(),
33647
+ showVenueFilter: z53.boolean(),
33648
+ showStaffFilter: z53.boolean(),
33240
33649
  eventKind: eventBlockKindSchema,
33241
33650
  eventSurface: eventSurfaceScopeSchema,
33242
- filterEventPresets: z52.string().nullable(),
33651
+ filterEventPresets: z53.string().nullable(),
33243
33652
  scheduleScope: eventScheduleScopeSchema2,
33244
- filterCategoryIds: z52.string().nullable().optional(),
33245
- filterStaffMemberId: z52.string().nullable().optional(),
33246
- filterVenueId: z52.string().nullable().optional(),
33247
- fetchInitialEventsOnMount: z52.boolean()
33653
+ filterCategoryIds: z53.string().nullable().optional(),
33654
+ filterStaffMemberId: z53.string().nullable().optional(),
33655
+ filterVenueId: z53.string().nullable().optional(),
33656
+ fetchInitialEventsOnMount: z53.boolean()
33248
33657
  });
33249
- var eventListingRenderSchema = z52.object({
33658
+ var eventListingRenderSchema = z53.object({
33250
33659
  display: eventListingDisplaySchema,
33251
33660
  hydration: eventListingHydrationSchema
33252
33661
  });
33253
33662
  var eventListingIslandMetaCodec = createZodCodec(
33254
- z52.object({
33255
- siteId: z52.string(),
33256
- apiBaseUrl: z52.string().optional(),
33663
+ z53.object({
33664
+ siteId: z53.string(),
33665
+ apiBaseUrl: z53.string().optional(),
33257
33666
  stage: previewStageSchema.optional()
33258
33667
  })
33259
33668
  );
@@ -33493,18 +33902,7 @@ var eventListingAdditionalFields = [
33493
33902
  var eventListingLayout = [
33494
33903
  styledSection({
33495
33904
  children: sectionContainer([
33496
- // Optional heading
33497
- text(
33498
- { as: "h2" },
33499
- bind("content.heading"),
33500
- when("content.heading")
33501
- ),
33502
- // Optional description
33503
- richText(
33504
- { className: "rb-prose rb-max-w-none" },
33505
- bind("content.description"),
33506
- when("content.description")
33507
- ),
33905
+ ...eventSectionHeaderLayoutNodes(),
33508
33906
  // Event listing component with pagination
33509
33907
  el("event-listing", withApiBindings({
33510
33908
  events: { $bind: { from: "data.events" } },
@@ -33620,15 +34018,15 @@ var eventListingBlockDefinition = {
33620
34018
  };
33621
34019
 
33622
34020
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
33623
- import { z as z53 } from "zod";
33624
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
33625
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
33626
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
33627
- var eventCalendarSourceSchema = z53.object(
34021
+ import { z as z54 } from "zod";
34022
+ var eventBlockKindSchema2 = z54.enum(eventBlockKindValues);
34023
+ var eventSurfaceScopeSchema2 = z54.enum(eventSurfaceScopeValues);
34024
+ var eventScheduleScopeSchema3 = z54.enum(eventScheduleScopeValues);
34025
+ var eventCalendarSourceSchema = z54.object(
33628
34026
  {
33629
- events: z53.array(publicEventSchema).nullable().optional(),
33630
- siteId: z53.string(),
33631
- apiBaseUrl: z53.string().optional(),
34027
+ events: z54.array(publicEventSchema).nullable().optional(),
34028
+ siteId: z54.string(),
34029
+ apiBaseUrl: z54.string().optional(),
33632
34030
  stage: previewStageSchema.optional(),
33633
34031
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
33634
34032
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -33636,38 +34034,38 @@ var eventCalendarSourceSchema = z53.object(
33636
34034
  listColumns: columnOptionSchema.optional(),
33637
34035
  layout: eventLayoutSchema.optional(),
33638
34036
  columns: columnOptionSchema.optional(),
33639
- eventsPerPage: z53.string().optional(),
33640
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
33641
- seeAllUrl: z53.string().optional(),
33642
- loadMoreText: z53.string().optional(),
34037
+ eventsPerPage: z54.string().optional(),
34038
+ paginationMode: z54.enum(["loadMore", "seeAllLink"]).optional(),
34039
+ seeAllUrl: z54.string().optional(),
34040
+ loadMoreText: z54.string().optional(),
33643
34041
  startOfWeek: weekStartSchema.optional(),
33644
34042
  calendarTabViews: calendarTabViewsSchema.optional(),
33645
34043
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
33646
- showFilters: z53.boolean().nullable().optional(),
34044
+ showFilters: z54.boolean().nullable().optional(),
33647
34045
  showCategoryFilter: filterAutoShowSchema.optional(),
33648
- showVenueFilter: z53.boolean().nullable().optional(),
33649
- showStaffFilter: z53.boolean().nullable().optional(),
34046
+ showVenueFilter: z54.boolean().nullable().optional(),
34047
+ showStaffFilter: z54.boolean().nullable().optional(),
33650
34048
  kind: eventBlockKindSchema2.nullable().optional(),
33651
34049
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
33652
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
34050
+ filterEventPresets: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
33653
34051
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
33654
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
33655
- filterStaffMemberId: z53.string().nullable().optional(),
33656
- filterVenueId: z53.string().nullable().optional(),
34052
+ filterCategoryIds: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
34053
+ filterStaffMemberId: z54.string().nullable().optional(),
34054
+ filterVenueId: z54.string().nullable().optional(),
33657
34055
  buttonVariant: eventButtonVariantSchema.optional(),
33658
- buttonText: z53.string().optional(),
33659
- showVenue: z53.boolean().nullable().optional(),
33660
- showMap: z53.boolean().nullable().optional(),
33661
- showCapacity: z53.boolean().nullable().optional(),
33662
- emptyMessage: z53.string().optional(),
33663
- className: z53.string().optional()
34056
+ buttonText: z54.string().optional(),
34057
+ showVenue: z54.boolean().nullable().optional(),
34058
+ showMap: z54.boolean().nullable().optional(),
34059
+ showCapacity: z54.boolean().nullable().optional(),
34060
+ emptyMessage: z54.string().optional(),
34061
+ className: z54.string().optional()
33664
34062
  }
33665
34063
  );
33666
- var eventCalendarDisplaySchema = z53.object({
33667
- kind: z53.literal("event-calendar"),
34064
+ var eventCalendarDisplaySchema = z54.object({
34065
+ kind: z54.literal("event-calendar"),
33668
34066
  displayMode: eventCalendarDisplayModeSchema,
33669
- className: z53.string().nullable(),
33670
- events: z53.array(publicEventSchema),
34067
+ className: z54.string().nullable(),
34068
+ events: z54.array(publicEventSchema),
33671
34069
  listLayout: eventLayoutSchema,
33672
34070
  listColumns: columnOptionSchema,
33673
34071
  eventsPerPage: eventPageSizeSchema,
@@ -33675,41 +34073,41 @@ var eventCalendarDisplaySchema = z53.object({
33675
34073
  startOfWeek: weekStartSchema,
33676
34074
  calendarTabViews: calendarTabViewsSchema,
33677
34075
  defaultCalendarView: eventCalendarDefaultViewSchema,
33678
- showFilters: z53.boolean(),
34076
+ showFilters: z54.boolean(),
33679
34077
  showCategoryFilter: filterAutoShowSchema,
33680
- showVenueFilter: z53.boolean(),
33681
- showStaffFilter: z53.boolean(),
34078
+ showVenueFilter: z54.boolean(),
34079
+ showStaffFilter: z54.boolean(),
33682
34080
  eventKind: eventBlockKindSchema2,
33683
34081
  eventSurface: eventSurfaceScopeSchema2,
33684
- filterEventPresets: z53.string().nullable(),
34082
+ filterEventPresets: z54.string().nullable(),
33685
34083
  scheduleScope: eventScheduleScopeSchema3,
33686
- filterCategoryIds: z53.string().nullable(),
33687
- filterStaffMemberId: z53.string().nullable(),
33688
- filterVenueId: z53.string().nullable(),
34084
+ filterCategoryIds: z54.string().nullable(),
34085
+ filterStaffMemberId: z54.string().nullable(),
34086
+ filterVenueId: z54.string().nullable(),
33689
34087
  buttonVariant: eventButtonVariantSchema,
33690
- buttonText: z53.string(),
33691
- showVenue: z53.boolean(),
33692
- showMap: z53.boolean(),
33693
- showCapacity: z53.boolean(),
33694
- emptyMessage: z53.string()
33695
- });
33696
- var eventCalendarHydrationSchema = z53.object({
33697
- siteId: z53.string(),
34088
+ buttonText: z54.string(),
34089
+ showVenue: z54.boolean(),
34090
+ showMap: z54.boolean(),
34091
+ showCapacity: z54.boolean(),
34092
+ emptyMessage: z54.string()
34093
+ });
34094
+ var eventCalendarHydrationSchema = z54.object({
34095
+ siteId: z54.string(),
33698
34096
  stage: previewStageSchema.optional(),
33699
- prefetchedEvents: z53.boolean(),
34097
+ prefetchedEvents: z54.boolean(),
33700
34098
  eventKind: eventBlockKindSchema2,
33701
34099
  eventSurface: eventSurfaceScopeSchema2,
33702
- filterEventPresets: z53.string().nullable(),
34100
+ filterEventPresets: z54.string().nullable(),
33703
34101
  scheduleScope: eventScheduleScopeSchema3
33704
34102
  });
33705
- var eventCalendarRenderSchema = z53.object({
34103
+ var eventCalendarRenderSchema = z54.object({
33706
34104
  display: eventCalendarDisplaySchema,
33707
34105
  hydration: eventCalendarHydrationSchema
33708
34106
  });
33709
34107
  var eventCalendarIslandMetaCodec = createZodCodec(
33710
- z53.object({
33711
- siteId: z53.string(),
33712
- apiBaseUrl: z53.string().optional(),
34108
+ z54.object({
34109
+ siteId: z54.string(),
34110
+ apiBaseUrl: z54.string().optional(),
33713
34111
  stage: previewStageSchema.optional()
33714
34112
  })
33715
34113
  );
@@ -33829,14 +34227,7 @@ var eventCalendarLayout = [
33829
34227
  styledSection({
33830
34228
  children: sectionContainer(
33831
34229
  [
33832
- // Optional heading
33833
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
33834
- // Optional description
33835
- richText(
33836
- { className: "rb-prose rb-max-w-none" },
33837
- bind("content.description"),
33838
- when("content.description")
33839
- ),
34230
+ ...eventSectionHeaderLayoutNodes(),
33840
34231
  // Event calendar component (handles all display modes)
33841
34232
  el(
33842
34233
  "event-calendar",
@@ -34481,7 +34872,7 @@ var eventCalendarBlockDefinition = {
34481
34872
  };
34482
34873
 
34483
34874
  // ../blocks/src/system/blocks/offerings-preview/index.ts
34484
- import { z as z54 } from "zod";
34875
+ import { z as z55 } from "zod";
34485
34876
 
34486
34877
  // ../blocks/src/system/blocks/offerings-preview/model.ts
34487
34878
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -34573,13 +34964,13 @@ function isRecord7(value) {
34573
34964
  }
34574
34965
 
34575
34966
  // ../blocks/src/system/blocks/offerings-preview/index.ts
34576
- var publicRouteCandidatesSchema = z54.object({
34577
- routes: z54.array(z54.object({
34578
- entityId: z54.string(),
34579
- path: z54.string(),
34580
- title: z54.string(),
34581
- kind: z54.enum(["page", "content"]),
34582
- contentTypeKey: z54.string().nullable().optional()
34967
+ var publicRouteCandidatesSchema = z55.object({
34968
+ routes: z55.array(z55.object({
34969
+ entityId: z55.string(),
34970
+ path: z55.string(),
34971
+ title: z55.string(),
34972
+ kind: z55.enum(["page", "content"]),
34973
+ contentTypeKey: z55.string().nullable().optional()
34583
34974
  }))
34584
34975
  });
34585
34976
  var groupOverrideFields = [
@@ -34977,7 +35368,7 @@ function isRecord8(value) {
34977
35368
  }
34978
35369
 
34979
35370
  // ../blocks/src/system/blocks/embed.ts
34980
- import { z as z55 } from "zod";
35371
+ import { z as z56 } from "zod";
34981
35372
  var embedFields = [
34982
35373
  // Section heading
34983
35374
  parseFieldDefinition({
@@ -35208,18 +35599,18 @@ var embedManifest = createBlockManifest({
35208
35599
  spacing: "lg"
35209
35600
  }
35210
35601
  });
35211
- var embedEntrySchema = z55.object({
35212
- id: z55.string(),
35213
- identifier: z55.string(),
35214
- title: z55.string(),
35215
- slug: z55.string().nullable().optional(),
35216
- content: z55.record(z55.string(), z55.unknown()).optional(),
35217
- publishedAt: z55.string().nullable().optional()
35602
+ var embedEntrySchema = z56.object({
35603
+ id: z56.string(),
35604
+ identifier: z56.string(),
35605
+ title: z56.string(),
35606
+ slug: z56.string().nullable().optional(),
35607
+ content: z56.record(z56.string(), z56.unknown()).optional(),
35608
+ publishedAt: z56.string().nullable().optional()
35218
35609
  });
35219
35610
  var embedBlockDefinition = {
35220
35611
  manifest: embedManifest,
35221
35612
  dataSchemas: {
35222
- entries: z55.array(embedEntrySchema).optional()
35613
+ entries: z56.array(embedEntrySchema).optional()
35223
35614
  },
35224
35615
  dataLoaders: {
35225
35616
  entries: {
@@ -36403,49 +36794,49 @@ var fileDownloadBlockDefinition = {
36403
36794
  };
36404
36795
 
36405
36796
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
36406
- import { z as z58 } from "zod";
36797
+ import { z as z59 } from "zod";
36407
36798
 
36408
36799
  // ../blocks/src/system/blocks/products/shared.ts
36409
- import { z as z56 } from "zod";
36410
- var publicProductVariantSchema = z56.object({
36411
- id: z56.string(),
36412
- title: z56.string(),
36413
- sku: z56.string().nullable(),
36414
- priceCents: z56.number(),
36415
- stockQuantity: z56.number().nullable(),
36416
- soldOut: z56.boolean()
36417
- });
36418
- var publicProductSchema = z56.object({
36419
- id: z56.string(),
36420
- contentEntryId: z56.string().nullable(),
36421
- title: z56.string(),
36422
- slug: z56.string(),
36423
- path: z56.string().nullable(),
36424
- status: z56.enum(["draft", "active"]),
36425
- priceCents: z56.number(),
36426
- currency: z56.string(),
36427
- productType: z56.enum(["physical", "digital"]),
36428
- requiresShipping: z56.boolean(),
36429
- hasVariants: z56.boolean(),
36430
- trackInventory: z56.boolean(),
36431
- soldOut: z56.boolean(),
36432
- category: z56.object({
36433
- id: z56.string(),
36434
- name: z56.string(),
36435
- slug: z56.string()
36800
+ import { z as z57 } from "zod";
36801
+ var publicProductVariantSchema = z57.object({
36802
+ id: z57.string(),
36803
+ title: z57.string(),
36804
+ sku: z57.string().nullable(),
36805
+ priceCents: z57.number(),
36806
+ stockQuantity: z57.number().nullable(),
36807
+ soldOut: z57.boolean()
36808
+ });
36809
+ var publicProductSchema = z57.object({
36810
+ id: z57.string(),
36811
+ contentEntryId: z57.string().nullable(),
36812
+ title: z57.string(),
36813
+ slug: z57.string(),
36814
+ path: z57.string().nullable(),
36815
+ status: z57.enum(["draft", "active"]),
36816
+ priceCents: z57.number(),
36817
+ currency: z57.string(),
36818
+ productType: z57.enum(["physical", "digital"]),
36819
+ requiresShipping: z57.boolean(),
36820
+ hasVariants: z57.boolean(),
36821
+ trackInventory: z57.boolean(),
36822
+ soldOut: z57.boolean(),
36823
+ category: z57.object({
36824
+ id: z57.string(),
36825
+ name: z57.string(),
36826
+ slug: z57.string()
36436
36827
  }).nullable(),
36437
- summary: z56.string().nullable(),
36438
- body: z56.unknown().nullable(),
36439
- gallery: z56.array(
36440
- z56.object({
36441
- url: z56.string(),
36442
- alt: z56.string().nullable()
36828
+ summary: z57.string().nullable(),
36829
+ body: z57.unknown().nullable(),
36830
+ gallery: z57.array(
36831
+ z57.object({
36832
+ url: z57.string(),
36833
+ alt: z57.string().nullable()
36443
36834
  })
36444
36835
  ),
36445
- variants: z56.array(publicProductVariantSchema)
36836
+ variants: z57.array(publicProductVariantSchema)
36446
36837
  });
36447
- var publicProductsResponseSchema = z56.object({
36448
- products: z56.array(publicProductSchema)
36838
+ var publicProductsResponseSchema = z57.object({
36839
+ products: z57.array(publicProductSchema)
36449
36840
  });
36450
36841
 
36451
36842
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -36509,27 +36900,27 @@ function deriveCreditProductLabels(products, options = {}) {
36509
36900
  }
36510
36901
 
36511
36902
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
36512
- import { z as z57 } from "zod";
36513
- var storedProductCartItemSchema = z57.object({
36514
- kind: z57.literal("product"),
36515
- productId: z57.string().min(1),
36516
- productCategoryId: z57.string().min(1).optional().nullable(),
36517
- variantId: z57.string().min(1).optional().nullable(),
36518
- title: z57.string().min(1),
36519
- variantTitle: z57.string().optional().nullable(),
36520
- quantity: z57.number().finite(),
36521
- unitPriceCents: z57.number().finite(),
36522
- currency: z57.string().min(1),
36523
- imageUrl: z57.string().optional().nullable(),
36524
- soldOut: z57.boolean().optional()
36525
- });
36526
- var storedPassCartItemSchema = z57.object({
36527
- kind: z57.literal("pass"),
36528
- passId: z57.string().min(1),
36529
- title: z57.string().min(1),
36530
- quantity: z57.number().finite().optional(),
36531
- unitPriceCents: z57.number().finite(),
36532
- currency: z57.string().min(1)
36903
+ import { z as z58 } from "zod";
36904
+ var storedProductCartItemSchema = z58.object({
36905
+ kind: z58.literal("product"),
36906
+ productId: z58.string().min(1),
36907
+ productCategoryId: z58.string().min(1).optional().nullable(),
36908
+ variantId: z58.string().min(1).optional().nullable(),
36909
+ title: z58.string().min(1),
36910
+ variantTitle: z58.string().optional().nullable(),
36911
+ quantity: z58.number().finite(),
36912
+ unitPriceCents: z58.number().finite(),
36913
+ currency: z58.string().min(1),
36914
+ imageUrl: z58.string().optional().nullable(),
36915
+ soldOut: z58.boolean().optional()
36916
+ });
36917
+ var storedPassCartItemSchema = z58.object({
36918
+ kind: z58.literal("pass"),
36919
+ passId: z58.string().min(1),
36920
+ title: z58.string().min(1),
36921
+ quantity: z58.number().finite().optional(),
36922
+ unitPriceCents: z58.number().finite(),
36923
+ currency: z58.string().min(1)
36533
36924
  });
36534
36925
  function deriveCommerceCheckoutState(state) {
36535
36926
  if (state.items.length === 0) {
@@ -36763,214 +37154,214 @@ function formatValidity(days) {
36763
37154
  }
36764
37155
 
36765
37156
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
36766
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
36767
- var contentEntrySchema3 = z58.object({
36768
- id: z58.string().nullable().optional(),
36769
- slug: z58.string().nullable().optional()
37157
+ var shopModeSchema = z59.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
37158
+ var contentEntrySchema3 = z59.object({
37159
+ id: z59.string().nullable().optional(),
37160
+ slug: z59.string().nullable().optional()
36770
37161
  }).nullable();
36771
- var shopSourceSchema = z58.object({
36772
- className: z58.string().nullable().optional(),
37162
+ var shopSourceSchema = z59.object({
37163
+ className: z59.string().nullable().optional(),
36773
37164
  mode: shopModeSchema.optional(),
36774
- heading: z58.string().nullable().optional(),
36775
- productSlug: z58.string().nullable().optional(),
36776
- showPasses: z58.boolean().optional(),
36777
- showMemberships: z58.boolean().optional(),
36778
- layout: z58.enum(["grid", "list"]).optional(),
36779
- columns: z58.string().optional(),
36780
- showDescriptions: z58.boolean().optional(),
36781
- showSummary: z58.boolean().optional(),
36782
- showBody: z58.boolean().optional(),
36783
- showPrices: z58.boolean().optional(),
36784
- showValidityPeriod: z58.boolean().optional(),
36785
- showPricePerCredit: z58.boolean().nullable().optional(),
36786
- passesHeading: z58.string().optional(),
36787
- membershipsHeading: z58.string().optional(),
36788
- buyButtonText: z58.string().optional(),
36789
- addButtonText: z58.string().optional(),
36790
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
36791
- subscribeButtonText: z58.string().optional(),
36792
- emptyStateText: z58.string().optional(),
36793
- checkoutButtonText: z58.string().optional(),
36794
- clearButtonText: z58.string().optional(),
36795
- submitButtonText: z58.string().optional(),
37165
+ heading: z59.string().nullable().optional(),
37166
+ productSlug: z59.string().nullable().optional(),
37167
+ showPasses: z59.boolean().optional(),
37168
+ showMemberships: z59.boolean().optional(),
37169
+ layout: z59.enum(["grid", "list"]).optional(),
37170
+ columns: z59.string().optional(),
37171
+ showDescriptions: z59.boolean().optional(),
37172
+ showSummary: z59.boolean().optional(),
37173
+ showBody: z59.boolean().optional(),
37174
+ showPrices: z59.boolean().optional(),
37175
+ showValidityPeriod: z59.boolean().optional(),
37176
+ showPricePerCredit: z59.boolean().nullable().optional(),
37177
+ passesHeading: z59.string().optional(),
37178
+ membershipsHeading: z59.string().optional(),
37179
+ buyButtonText: z59.string().optional(),
37180
+ addButtonText: z59.string().optional(),
37181
+ passPurchaseMode: z59.enum(["add_to_cart", "buy_now"]).optional(),
37182
+ subscribeButtonText: z59.string().optional(),
37183
+ emptyStateText: z59.string().optional(),
37184
+ checkoutButtonText: z59.string().optional(),
37185
+ clearButtonText: z59.string().optional(),
37186
+ submitButtonText: z59.string().optional(),
36796
37187
  contentEntry: contentEntrySchema3.optional(),
36797
- passes: z58.array(publicPassProductSchema).nullable().optional(),
36798
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
36799
- products: z58.array(publicProductSchema).nullable().optional(),
36800
- siteId: z58.string().optional(),
36801
- apiBaseUrl: z58.string().optional(),
37188
+ passes: z59.array(publicPassProductSchema).nullable().optional(),
37189
+ memberships: z59.array(publicMembershipProductSchema).nullable().optional(),
37190
+ products: z59.array(publicProductSchema).nullable().optional(),
37191
+ siteId: z59.string().optional(),
37192
+ apiBaseUrl: z59.string().optional(),
36802
37193
  stage: previewStageSchema.optional()
36803
37194
  });
36804
- var productVariantOptionDisplaySchema = z58.object({
36805
- id: z58.string(),
36806
- label: z58.string(),
36807
- soldOut: z58.boolean()
36808
- });
36809
- var productCardDisplaySchema = z58.object({
36810
- productId: z58.string(),
36811
- title: z58.string(),
36812
- path: z58.string().nullable(),
36813
- summary: z58.string().nullable(),
36814
- priceLabel: z58.string().nullable(),
36815
- image: z58.object({
36816
- url: z58.string(),
36817
- alt: z58.string().nullable()
37195
+ var productVariantOptionDisplaySchema = z59.object({
37196
+ id: z59.string(),
37197
+ label: z59.string(),
37198
+ soldOut: z59.boolean()
37199
+ });
37200
+ var productCardDisplaySchema = z59.object({
37201
+ productId: z59.string(),
37202
+ title: z59.string(),
37203
+ path: z59.string().nullable(),
37204
+ summary: z59.string().nullable(),
37205
+ priceLabel: z59.string().nullable(),
37206
+ image: z59.object({
37207
+ url: z59.string(),
37208
+ alt: z59.string().nullable()
36818
37209
  }).nullable(),
36819
- variantOptions: z58.array(productVariantOptionDisplaySchema),
36820
- selectedVariantId: z58.string().nullable(),
36821
- selectionLabel: z58.string(),
36822
- actionLabel: z58.string(),
36823
- soldOut: z58.boolean()
36824
- });
36825
- var productListDisplaySchema = z58.object({
36826
- kind: z58.literal("product-list"),
36827
- state: z58.enum(["empty", "ready"]),
36828
- heading: z58.string().nullable(),
36829
- className: z58.string().nullable(),
36830
- layout: z58.enum(["grid", "list"]),
36831
- columns: z58.string(),
36832
- emptyMessage: z58.string(),
36833
- cards: z58.array(productCardDisplaySchema)
36834
- });
36835
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
36836
- z58.object({
36837
- kind: z58.literal("product-detail"),
36838
- state: z58.literal("empty"),
36839
- heading: z58.string().nullable(),
36840
- className: z58.string().nullable(),
36841
- emptyMessage: z58.string()
37210
+ variantOptions: z59.array(productVariantOptionDisplaySchema),
37211
+ selectedVariantId: z59.string().nullable(),
37212
+ selectionLabel: z59.string(),
37213
+ actionLabel: z59.string(),
37214
+ soldOut: z59.boolean()
37215
+ });
37216
+ var productListDisplaySchema = z59.object({
37217
+ kind: z59.literal("product-list"),
37218
+ state: z59.enum(["empty", "ready"]),
37219
+ heading: z59.string().nullable(),
37220
+ className: z59.string().nullable(),
37221
+ layout: z59.enum(["grid", "list"]),
37222
+ columns: z59.string(),
37223
+ emptyMessage: z59.string(),
37224
+ cards: z59.array(productCardDisplaySchema)
37225
+ });
37226
+ var productDetailDisplaySchema = z59.discriminatedUnion("state", [
37227
+ z59.object({
37228
+ kind: z59.literal("product-detail"),
37229
+ state: z59.literal("empty"),
37230
+ heading: z59.string().nullable(),
37231
+ className: z59.string().nullable(),
37232
+ emptyMessage: z59.string()
36842
37233
  }),
36843
- z58.object({
36844
- kind: z58.literal("product-detail"),
36845
- state: z58.literal("ready"),
36846
- heading: z58.string().nullable(),
36847
- className: z58.string().nullable(),
36848
- title: z58.string(),
36849
- priceLabel: z58.string(),
36850
- summary: z58.string().nullable(),
36851
- categoryLabel: z58.string().nullable(),
36852
- gallery: z58.array(z58.object({
36853
- url: z58.string(),
36854
- alt: z58.string().nullable()
37234
+ z59.object({
37235
+ kind: z59.literal("product-detail"),
37236
+ state: z59.literal("ready"),
37237
+ heading: z59.string().nullable(),
37238
+ className: z59.string().nullable(),
37239
+ title: z59.string(),
37240
+ priceLabel: z59.string(),
37241
+ summary: z59.string().nullable(),
37242
+ categoryLabel: z59.string().nullable(),
37243
+ gallery: z59.array(z59.object({
37244
+ url: z59.string(),
37245
+ alt: z59.string().nullable()
36855
37246
  })),
36856
- variantOptions: z58.array(productVariantOptionDisplaySchema),
36857
- selectedVariantId: z58.string().nullable(),
36858
- selectionLabel: z58.string(),
36859
- actionLabel: z58.string(),
36860
- soldOut: z58.boolean(),
36861
- body: z58.unknown().nullable()
37247
+ variantOptions: z59.array(productVariantOptionDisplaySchema),
37248
+ selectedVariantId: z59.string().nullable(),
37249
+ selectionLabel: z59.string(),
37250
+ actionLabel: z59.string(),
37251
+ soldOut: z59.boolean(),
37252
+ body: z59.unknown().nullable()
36862
37253
  })
36863
37254
  ]);
36864
- var passCardDisplaySchema = z58.object({
36865
- id: z58.string(),
36866
- title: z58.string(),
36867
- description: z58.string().nullable(),
36868
- priceLabel: z58.string(),
36869
- creditsLabel: z58.string(),
36870
- perCreditLabel: z58.string().nullable(),
36871
- validityLabel: z58.string().nullable(),
36872
- actionLabel: z58.string()
36873
- });
36874
- var membershipCardDisplaySchema = z58.object({
36875
- id: z58.string(),
36876
- title: z58.string(),
36877
- description: z58.string().nullable(),
36878
- priceLabel: z58.string(),
36879
- intervalLabel: z58.string(),
36880
- actionLabel: z58.string()
36881
- });
36882
- var passesMembershipsDisplaySchema = z58.object({
36883
- kind: z58.literal("passes-memberships"),
36884
- state: z58.enum(["empty", "ready"]),
36885
- className: z58.string().nullable(),
36886
- layout: z58.enum(["grid", "list"]),
36887
- columns: z58.string(),
36888
- emptyMessage: z58.string(),
36889
- passesHeading: z58.string(),
36890
- membershipsHeading: z58.string(),
36891
- passes: z58.array(passCardDisplaySchema),
36892
- memberships: z58.array(membershipCardDisplaySchema)
36893
- });
36894
- var cartLineDisplaySchema = z58.object({
36895
- key: z58.string(),
36896
- title: z58.string(),
36897
- priceLabel: z58.string(),
36898
- quantity: z58.number(),
36899
- quantityEditable: z58.boolean()
36900
- });
36901
- var cartDisplaySchema = z58.object({
36902
- kind: z58.literal("cart"),
36903
- state: z58.enum(["empty", "ready"]),
36904
- heading: z58.string().nullable(),
36905
- className: z58.string().nullable(),
36906
- emptyMessage: z58.string(),
36907
- supportText: z58.string().nullable(),
36908
- items: z58.array(cartLineDisplaySchema),
36909
- subtotalLabel: z58.string().nullable(),
36910
- checkoutButtonText: z58.string(),
36911
- clearButtonText: z58.string()
36912
- });
36913
- var checkoutDisplaySchema = z58.object({
36914
- kind: z58.literal("checkout"),
36915
- state: z58.enum(["empty", "blocked", "ready"]),
36916
- heading: z58.string().nullable(),
36917
- className: z58.string().nullable(),
36918
- message: z58.string().nullable(),
36919
- submitButtonText: z58.string()
36920
- });
36921
- var passesMembershipsHydrationSchema = z58.object({
36922
- passes: z58.array(publicPassProductSchema),
36923
- memberships: z58.array(publicMembershipProductSchema),
36924
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
36925
- });
36926
- var productListHydrationSchema = z58.object({
36927
- products: z58.array(publicProductSchema),
36928
- showSummary: z58.boolean(),
36929
- showPrices: z58.boolean(),
36930
- addButtonText: z58.string()
36931
- });
36932
- var productDetailHydrationSchema = z58.object({
36933
- products: z58.array(publicProductSchema),
36934
- productId: z58.string().nullable(),
36935
- showSummary: z58.boolean(),
36936
- showBody: z58.boolean(),
36937
- addButtonText: z58.string()
36938
- });
36939
- var cartHydrationSchema = z58.object({
36940
- emptyStateText: z58.string(),
36941
- checkoutButtonText: z58.string(),
36942
- clearButtonText: z58.string()
36943
- });
36944
- var checkoutHydrationSchema = z58.object({
36945
- emptyStateText: z58.string(),
36946
- submitButtonText: z58.string()
36947
- });
36948
- var passesMembershipsRenderSchema = z58.object({
37255
+ var passCardDisplaySchema = z59.object({
37256
+ id: z59.string(),
37257
+ title: z59.string(),
37258
+ description: z59.string().nullable(),
37259
+ priceLabel: z59.string(),
37260
+ creditsLabel: z59.string(),
37261
+ perCreditLabel: z59.string().nullable(),
37262
+ validityLabel: z59.string().nullable(),
37263
+ actionLabel: z59.string()
37264
+ });
37265
+ var membershipCardDisplaySchema = z59.object({
37266
+ id: z59.string(),
37267
+ title: z59.string(),
37268
+ description: z59.string().nullable(),
37269
+ priceLabel: z59.string(),
37270
+ intervalLabel: z59.string(),
37271
+ actionLabel: z59.string()
37272
+ });
37273
+ var passesMembershipsDisplaySchema = z59.object({
37274
+ kind: z59.literal("passes-memberships"),
37275
+ state: z59.enum(["empty", "ready"]),
37276
+ className: z59.string().nullable(),
37277
+ layout: z59.enum(["grid", "list"]),
37278
+ columns: z59.string(),
37279
+ emptyMessage: z59.string(),
37280
+ passesHeading: z59.string(),
37281
+ membershipsHeading: z59.string(),
37282
+ passes: z59.array(passCardDisplaySchema),
37283
+ memberships: z59.array(membershipCardDisplaySchema)
37284
+ });
37285
+ var cartLineDisplaySchema = z59.object({
37286
+ key: z59.string(),
37287
+ title: z59.string(),
37288
+ priceLabel: z59.string(),
37289
+ quantity: z59.number(),
37290
+ quantityEditable: z59.boolean()
37291
+ });
37292
+ var cartDisplaySchema = z59.object({
37293
+ kind: z59.literal("cart"),
37294
+ state: z59.enum(["empty", "ready"]),
37295
+ heading: z59.string().nullable(),
37296
+ className: z59.string().nullable(),
37297
+ emptyMessage: z59.string(),
37298
+ supportText: z59.string().nullable(),
37299
+ items: z59.array(cartLineDisplaySchema),
37300
+ subtotalLabel: z59.string().nullable(),
37301
+ checkoutButtonText: z59.string(),
37302
+ clearButtonText: z59.string()
37303
+ });
37304
+ var checkoutDisplaySchema = z59.object({
37305
+ kind: z59.literal("checkout"),
37306
+ state: z59.enum(["empty", "blocked", "ready"]),
37307
+ heading: z59.string().nullable(),
37308
+ className: z59.string().nullable(),
37309
+ message: z59.string().nullable(),
37310
+ submitButtonText: z59.string()
37311
+ });
37312
+ var passesMembershipsHydrationSchema = z59.object({
37313
+ passes: z59.array(publicPassProductSchema),
37314
+ memberships: z59.array(publicMembershipProductSchema),
37315
+ passPurchaseMode: z59.enum(["add_to_cart", "buy_now"])
37316
+ });
37317
+ var productListHydrationSchema = z59.object({
37318
+ products: z59.array(publicProductSchema),
37319
+ showSummary: z59.boolean(),
37320
+ showPrices: z59.boolean(),
37321
+ addButtonText: z59.string()
37322
+ });
37323
+ var productDetailHydrationSchema = z59.object({
37324
+ products: z59.array(publicProductSchema),
37325
+ productId: z59.string().nullable(),
37326
+ showSummary: z59.boolean(),
37327
+ showBody: z59.boolean(),
37328
+ addButtonText: z59.string()
37329
+ });
37330
+ var cartHydrationSchema = z59.object({
37331
+ emptyStateText: z59.string(),
37332
+ checkoutButtonText: z59.string(),
37333
+ clearButtonText: z59.string()
37334
+ });
37335
+ var checkoutHydrationSchema = z59.object({
37336
+ emptyStateText: z59.string(),
37337
+ submitButtonText: z59.string()
37338
+ });
37339
+ var passesMembershipsRenderSchema = z59.object({
36949
37340
  display: passesMembershipsDisplaySchema,
36950
37341
  hydration: passesMembershipsHydrationSchema
36951
37342
  });
36952
- var productListRenderSchema = z58.object({
37343
+ var productListRenderSchema = z59.object({
36953
37344
  display: productListDisplaySchema,
36954
37345
  hydration: productListHydrationSchema
36955
37346
  });
36956
- var productDetailRenderSchema = z58.object({
37347
+ var productDetailRenderSchema = z59.object({
36957
37348
  display: productDetailDisplaySchema,
36958
37349
  hydration: productDetailHydrationSchema
36959
37350
  });
36960
- var cartRenderSchema = z58.object({
37351
+ var cartRenderSchema = z59.object({
36961
37352
  display: cartDisplaySchema,
36962
37353
  hydration: cartHydrationSchema
36963
37354
  });
36964
- var checkoutRenderSchema = z58.object({
37355
+ var checkoutRenderSchema = z59.object({
36965
37356
  display: checkoutDisplaySchema,
36966
37357
  hydration: checkoutHydrationSchema
36967
37358
  });
36968
37359
  function resolveShowPricePerCredit(source) {
36969
37360
  return source.showPricePerCredit ?? true;
36970
37361
  }
36971
- var shopIslandMetaCodec = createZodCodec(z58.object({
36972
- siteId: z58.string().optional(),
36973
- apiBaseUrl: z58.string().optional(),
37362
+ var shopIslandMetaCodec = createZodCodec(z59.object({
37363
+ siteId: z59.string().optional(),
37364
+ apiBaseUrl: z59.string().optional(),
36974
37365
  stage: previewStageSchema.optional()
36975
37366
  }));
36976
37367
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -37373,7 +37764,7 @@ var shopBlockDefinition = {
37373
37764
  };
37374
37765
 
37375
37766
  // ../blocks/src/system/blocks/product-list.ts
37376
- import { z as z59 } from "zod";
37767
+ import { z as z60 } from "zod";
37377
37768
  var productListManifest = createBlockManifest({
37378
37769
  id: "block.product-list",
37379
37770
  version: "1.0.0",
@@ -37506,7 +37897,7 @@ var productListBlockDefinition = {
37506
37897
  }
37507
37898
  }
37508
37899
  };
37509
- var productListDataSchema = z59.object({
37900
+ var productListDataSchema = z60.object({
37510
37901
  products: publicProductsResponseSchema.optional()
37511
37902
  });
37512
37903
 
@@ -37767,72 +38158,72 @@ var checkoutBlockDefinition = {
37767
38158
  };
37768
38159
 
37769
38160
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
37770
- import { z as z60 } from "zod";
37771
- var publicGiftCardOfferSchema = z60.object({
37772
- id: z60.string(),
37773
- kind: z60.literal("gift_card"),
37774
- title: z60.string(),
37775
- description: z60.string().nullable(),
37776
- sortOrder: z60.number().int(),
37777
- giftCard: z60.object({
37778
- fixedDenominations: z60.array(z60.number().int().positive()),
37779
- customAmountEnabled: z60.boolean(),
37780
- customAmountMinCents: z60.number().int().positive(),
37781
- customAmountMaxCents: z60.number().int().positive()
38161
+ import { z as z61 } from "zod";
38162
+ var publicGiftCardOfferSchema = z61.object({
38163
+ id: z61.string(),
38164
+ kind: z61.literal("gift_card"),
38165
+ title: z61.string(),
38166
+ description: z61.string().nullable(),
38167
+ sortOrder: z61.number().int(),
38168
+ giftCard: z61.object({
38169
+ fixedDenominations: z61.array(z61.number().int().positive()),
38170
+ customAmountEnabled: z61.boolean(),
38171
+ customAmountMinCents: z61.number().int().positive(),
38172
+ customAmountMaxCents: z61.number().int().positive()
37782
38173
  }),
37783
- voucher: z60.null()
37784
- });
37785
- var publicVoucherOfferSchema = z60.object({
37786
- id: z60.string(),
37787
- kind: z60.literal("voucher"),
37788
- title: z60.string(),
37789
- description: z60.string().nullable(),
37790
- sortOrder: z60.number().int(),
37791
- giftCard: z60.null(),
37792
- voucher: z60.object({
37793
- purchaseAmountCents: z60.number().int().positive()
38174
+ voucher: z61.null()
38175
+ });
38176
+ var publicVoucherOfferSchema = z61.object({
38177
+ id: z61.string(),
38178
+ kind: z61.literal("voucher"),
38179
+ title: z61.string(),
38180
+ description: z61.string().nullable(),
38181
+ sortOrder: z61.number().int(),
38182
+ giftCard: z61.null(),
38183
+ voucher: z61.object({
38184
+ purchaseAmountCents: z61.number().int().positive()
37794
38185
  })
37795
38186
  });
37796
- var publicGiftingOffersResponseSchema = z60.object({
37797
- currency: z60.string(),
37798
- giftCards: z60.array(publicGiftCardOfferSchema),
37799
- vouchers: z60.array(publicVoucherOfferSchema)
38187
+ var publicGiftingOffersResponseSchema = z61.object({
38188
+ currency: z61.string(),
38189
+ giftCards: z61.array(publicGiftCardOfferSchema),
38190
+ vouchers: z61.array(publicVoucherOfferSchema)
37800
38191
  });
37801
- var giftingSourceSchema = z60.object({
37802
- siteId: z60.string().optional(),
37803
- apiBaseUrl: z60.string().optional(),
38192
+ var giftingSourceSchema = z61.object({
38193
+ siteId: z61.string().optional(),
38194
+ apiBaseUrl: z61.string().optional(),
37804
38195
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
37805
- className: z60.string().nullable().optional(),
37806
- heading: z60.string().nullable().optional(),
37807
- intro: z60.string().nullable().optional(),
37808
- giftCardsHeading: z60.string().nullable().optional(),
37809
- vouchersHeading: z60.string().nullable().optional(),
37810
- emptyStateText: z60.string().nullable().optional(),
37811
- checkoutButtonText: z60.string().nullable().optional(),
37812
- successMessage: z60.string().nullable().optional()
37813
- });
37814
- var giftingDisplaySchema = z60.object({
37815
- kind: z60.literal("gifting"),
37816
- state: z60.literal("ready"),
37817
- className: z60.string().nullable(),
37818
- heading: z60.string(),
37819
- intro: z60.string().nullable(),
37820
- giftCardsHeading: z60.string(),
37821
- vouchersHeading: z60.string(),
37822
- emptyStateText: z60.string()
37823
- });
37824
- var giftingHydrationSchema = z60.object({
38196
+ className: z61.string().nullable().optional(),
38197
+ heading: z61.string().nullable().optional(),
38198
+ intro: z61.string().nullable().optional(),
38199
+ giftCardsHeading: z61.string().nullable().optional(),
38200
+ vouchersHeading: z61.string().nullable().optional(),
38201
+ emptyStateText: z61.string().nullable().optional(),
38202
+ checkoutButtonText: z61.string().nullable().optional(),
38203
+ successMessage: z61.string().nullable().optional()
38204
+ });
38205
+ var giftingDisplaySchema = z61.object({
38206
+ kind: z61.literal("gifting"),
38207
+ state: z61.literal("ready"),
38208
+ className: z61.string().nullable(),
38209
+ heading: z61.string(),
38210
+ intro: z61.string().nullable(),
38211
+ giftCardsHeading: z61.string(),
38212
+ vouchersHeading: z61.string(),
38213
+ emptyStateText: z61.string()
38214
+ });
38215
+ var giftingHydrationSchema = z61.object({
37825
38216
  offers: publicGiftingOffersResponseSchema.nullable(),
37826
- checkoutButtonText: z60.string(),
37827
- successMessage: z60.string()
38217
+ checkoutButtonText: z61.string(),
38218
+ successMessage: z61.string()
37828
38219
  });
37829
- var giftingRenderSchema = z60.object({
38220
+ var giftingRenderSchema = z61.object({
37830
38221
  display: giftingDisplaySchema,
37831
38222
  hydration: giftingHydrationSchema
37832
38223
  });
37833
- var giftingIslandMetaCodec = createZodCodec(z60.object({
37834
- siteId: z60.string().optional(),
37835
- apiBaseUrl: z60.string().optional()
38224
+ var giftingIslandMetaCodec = createZodCodec(z61.object({
38225
+ siteId: z61.string().optional(),
38226
+ apiBaseUrl: z61.string().optional()
37836
38227
  }));
37837
38228
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
37838
38229
  "siteId",
@@ -38003,7 +38394,7 @@ var giftingBlockDefinition = {
38003
38394
  };
38004
38395
 
38005
38396
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
38006
- import { z as z61 } from "zod";
38397
+ import { z as z62 } from "zod";
38007
38398
 
38008
38399
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
38009
38400
  function parseNewsletterSignupBlockId(value) {
@@ -38138,65 +38529,65 @@ function withOptionalPhone(fields3, includePhone) {
38138
38529
  }
38139
38530
 
38140
38531
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
38141
- var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
38142
- var newsletterDestinationProviderSchema = z61.enum(["riverbank", "mailchimp"]);
38143
- var newsletterFieldSchema = z61.object({
38144
- id: z61.string(),
38145
- type: z61.enum(["email", "text"]),
38146
- label: z61.string(),
38147
- required: z61.boolean(),
38148
- placeholder: z61.string().optional()
38149
- });
38150
- var newsletterSignupBlockIdSchema = z61.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
38151
- var signedNewsletterDestinationRefSchema = z61.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
38152
- var newsletterPublicDestinationRefSchema = z61.discriminatedUnion("tag", [
38153
- z61.object({
38154
- tag: z61.literal("block_ref"),
38532
+ var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
38533
+ var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
38534
+ var newsletterFieldSchema = z62.object({
38535
+ id: z62.string(),
38536
+ type: z62.enum(["email", "text"]),
38537
+ label: z62.string(),
38538
+ required: z62.boolean(),
38539
+ placeholder: z62.string().optional()
38540
+ });
38541
+ var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
38542
+ var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
38543
+ var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
38544
+ z62.object({
38545
+ tag: z62.literal("block_ref"),
38155
38546
  blockId: newsletterSignupBlockIdSchema
38156
38547
  }),
38157
- z61.object({
38158
- tag: z61.literal("signed_destination_ref"),
38548
+ z62.object({
38549
+ tag: z62.literal("signed_destination_ref"),
38159
38550
  token: signedNewsletterDestinationRefSchema
38160
38551
  })
38161
38552
  ]);
38162
- var newsletterSourceSchema = z61.object({
38163
- blockId: z61.string().nullable().optional(),
38164
- siteId: z61.string().optional(),
38165
- apiBaseUrl: z61.string().optional(),
38166
- listId: z61.string().nullable().optional(),
38553
+ var newsletterSourceSchema = z62.object({
38554
+ blockId: z62.string().nullable().optional(),
38555
+ siteId: z62.string().optional(),
38556
+ apiBaseUrl: z62.string().optional(),
38557
+ listId: z62.string().nullable().optional(),
38167
38558
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
38168
38559
  preset: newsletterPresetSchema.optional(),
38169
- includePhone: z61.boolean().optional(),
38170
- buttonLabel: z61.string().nullable().optional(),
38171
- successMessage: z61.string().nullable().optional(),
38172
- privacyNote: z61.string().nullable().optional(),
38173
- tags: z61.string().nullable().optional(),
38174
- spamProtectionEnabled: z61.boolean().optional(),
38175
- className: z61.string().nullable().optional()
38176
- });
38177
- var newsletterDisplaySchema = z61.object({
38178
- kind: z61.literal("newsletter-form"),
38179
- className: z61.string().nullable(),
38180
- buttonLabel: z61.string(),
38181
- successMessage: z61.string().nullable(),
38182
- privacyNote: z61.string().nullable(),
38183
- fields: z61.array(newsletterFieldSchema)
38184
- });
38185
- var newsletterHydrationSchema = z61.object({
38560
+ includePhone: z62.boolean().optional(),
38561
+ buttonLabel: z62.string().nullable().optional(),
38562
+ successMessage: z62.string().nullable().optional(),
38563
+ privacyNote: z62.string().nullable().optional(),
38564
+ tags: z62.string().nullable().optional(),
38565
+ spamProtectionEnabled: z62.boolean().optional(),
38566
+ className: z62.string().nullable().optional()
38567
+ });
38568
+ var newsletterDisplaySchema = z62.object({
38569
+ kind: z62.literal("newsletter-form"),
38570
+ className: z62.string().nullable(),
38571
+ buttonLabel: z62.string(),
38572
+ successMessage: z62.string().nullable(),
38573
+ privacyNote: z62.string().nullable(),
38574
+ fields: z62.array(newsletterFieldSchema)
38575
+ });
38576
+ var newsletterHydrationSchema = z62.object({
38186
38577
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
38187
- listId: z61.string().nullable().optional(),
38578
+ listId: z62.string().nullable().optional(),
38188
38579
  preset: newsletterPresetSchema,
38189
- includePhone: z61.boolean(),
38190
- tags: z61.string().nullable().optional(),
38191
- spamProtectionEnabled: z61.boolean().optional()
38580
+ includePhone: z62.boolean(),
38581
+ tags: z62.string().nullable().optional(),
38582
+ spamProtectionEnabled: z62.boolean().optional()
38192
38583
  });
38193
- var newsletterRenderSchema = z61.object({
38584
+ var newsletterRenderSchema = z62.object({
38194
38585
  display: newsletterDisplaySchema,
38195
38586
  hydration: newsletterHydrationSchema
38196
38587
  });
38197
- var newsletterIslandMetaCodec = createZodCodec(z61.object({
38198
- siteId: z61.string().optional(),
38199
- apiBaseUrl: z61.string().optional()
38588
+ var newsletterIslandMetaCodec = createZodCodec(z62.object({
38589
+ siteId: z62.string().optional(),
38590
+ apiBaseUrl: z62.string().optional()
38200
38591
  }));
38201
38592
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
38202
38593
  function buildNewsletterDisplay(source) {
@@ -38335,23 +38726,23 @@ var newsletterSignupBlockDefinition = {
38335
38726
  };
38336
38727
 
38337
38728
  // ../blocks/src/system/blocks/team-members.ts
38338
- import { z as z62 } from "zod";
38729
+ import { z as z63 } from "zod";
38339
38730
  var ITEM_NAME2 = "member";
38340
38731
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
38341
38732
  message: "Team member photos must be image media"
38342
38733
  }).nullable();
38343
- var teamMemberDataSchema = z62.object({
38344
- _type: z62.literal("teamMember"),
38345
- id: z62.string(),
38346
- name: z62.string(),
38347
- role: z62.string().nullable(),
38348
- roleLabel: z62.string().nullable(),
38349
- bio: z62.string().nullable(),
38350
- summary: z62.string().nullable(),
38734
+ var teamMemberDataSchema = z63.object({
38735
+ _type: z63.literal("teamMember"),
38736
+ id: z63.string(),
38737
+ name: z63.string(),
38738
+ role: z63.string().nullable(),
38739
+ roleLabel: z63.string().nullable(),
38740
+ bio: z63.string().nullable(),
38741
+ summary: z63.string().nullable(),
38351
38742
  photo: teamMemberPhotoSchema,
38352
- profilePath: z62.string().nullable()
38743
+ profilePath: z63.string().nullable()
38353
38744
  });
38354
- var teamMembersDataSchema = z62.array(teamMemberDataSchema);
38745
+ var teamMembersDataSchema = z63.array(teamMemberDataSchema);
38355
38746
  var dynamicSourceWhen = { equals: "site_staff" };
38356
38747
  var manualSourceWhen = { equals: "site_staff", not: true };
38357
38748
  var headingNode = text(
@@ -39457,6 +39848,10 @@ var systemBlockDefinitionsRaw = [
39457
39848
  flow: conversionFlow,
39458
39849
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
39459
39850
  })),
39851
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
39852
+ flow: offeringsFlow,
39853
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
39854
+ })),
39460
39855
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
39461
39856
  flow: conversionFlow,
39462
39857
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -40637,6 +41032,34 @@ ${root} {
40637
41032
  /* Order summary */
40638
41033
  --er-summary-bg: rgba(var(--tb-primary), 0.1);
40639
41034
  --er-summary-border: rgb(var(--tb-border));
41035
+
41036
+ /* Shared registration-surface mappings (issue 1174).
41037
+ Route the shared --rb-reg-* contract through this block's documented
41038
+ Tier 3 vars so existing --er-* overrides keep working unchanged. */
41039
+ --rb-reg-radius: var(--er-radius);
41040
+ --rb-reg-border: var(--er-border);
41041
+ --rb-reg-border-hover: var(--er-border-hover);
41042
+ --rb-reg-border-selected: var(--er-border-selected);
41043
+ --rb-reg-bg-selected: var(--er-payment-bg-selected);
41044
+ --rb-reg-option-bg: var(--er-control-bg);
41045
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
41046
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
41047
+ --rb-reg-on-surface: var(--er-on-surface);
41048
+ --rb-reg-on-surface-muted: var(--er-on-surface-muted);
41049
+ --rb-reg-on-surface-subtle: var(--er-on-surface-subtle);
41050
+ --rb-reg-on-surface-faint: var(--er-on-surface-faint);
41051
+ --rb-reg-check-bg: var(--er-check-bg);
41052
+ --rb-reg-check-text: var(--er-check-text);
41053
+ --rb-reg-step-active: var(--er-step-active);
41054
+ --rb-reg-step-completed: var(--er-step-completed);
41055
+ --rb-reg-step-inactive: var(--er-step-inactive);
41056
+ --rb-reg-step-text: var(--er-step-text);
41057
+ --rb-reg-step-text-active: var(--er-step-text-active);
41058
+ --rb-reg-step-connector: var(--er-step-connector);
41059
+ --rb-reg-summary-bg: var(--er-surface-muted);
41060
+ --rb-reg-summary-border: var(--er-border);
41061
+ --rb-reg-focus-ring: var(--er-focus-ring);
41062
+ --rb-reg-shell-line: var(--er-shell-line);
40640
41063
  }
40641
41064
  `;
40642
41065
  }
@@ -40769,25 +41192,40 @@ ${root} {
40769
41192
  --ab-info-bg: rgba(var(--tb-info), 0.1);
40770
41193
  --ab-info-text: rgb(var(--tb-info));
40771
41194
 
40772
- /* Loading/muted states */
41195
+ /* Muted summary state */
40773
41196
  --ab-muted-bg: rgba(var(--tb-text), 0.05);
40774
- --ab-muted-text: rgba(var(--tb-text), 0.6);
40775
- --ab-spinner-color: rgb(var(--tb-primary));
40776
41197
 
40777
- /* Form elements */
40778
- --ab-input-border: rgb(var(--tb-border));
41198
+ /* Focus ring used by shared registration-surface controls */
40779
41199
  --ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
40780
41200
 
40781
- /* Buttons */
40782
- --ab-btn-primary-bg: rgb(var(--tb-primary));
40783
- --ab-btn-primary-text: rgb(var(--tb-background));
40784
- --ab-btn-primary-hover: rgba(var(--tb-primary), 0.9);
40785
- --ab-btn-secondary-border: rgb(var(--tb-border));
40786
- --ab-btn-secondary-hover: rgba(var(--tb-text), 0.05);
40787
-
40788
- /* Text opacity levels */
40789
- --ab-text-muted-opacity: 0.6;
40790
- --ab-text-faint-opacity: 0.4;
41201
+ /* Shared registration-surface mappings (issue 1174).
41202
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
41203
+ (palette tokens where no --ab-* var exists) so --ab-* overrides keep
41204
+ working as the block adopts the shared classes. */
41205
+ --rb-reg-radius: var(--ab-card-radius, var(--rb-block-radius));
41206
+ --rb-reg-border: var(--ab-card-border);
41207
+ --rb-reg-border-hover: var(--ab-card-border-hover);
41208
+ --rb-reg-border-selected: var(--ab-card-border-selected);
41209
+ --rb-reg-bg-selected: var(--ab-card-bg-selected);
41210
+ --rb-reg-option-bg: transparent;
41211
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
41212
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
41213
+ --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
41214
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
41215
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
41216
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
41217
+ --rb-reg-check-bg: var(--ab-check-bg);
41218
+ --rb-reg-check-text: var(--ab-check-text);
41219
+ --rb-reg-step-active: rgb(var(--tb-primary));
41220
+ --rb-reg-step-completed: rgb(var(--tb-success));
41221
+ --rb-reg-step-inactive: rgb(var(--tb-mutedText));
41222
+ --rb-reg-step-text: rgb(255 255 255);
41223
+ --rb-reg-step-text-active: rgb(var(--tb-primaryText, 255 255 255));
41224
+ --rb-reg-step-connector: rgba(var(--tb-border), 0.5);
41225
+ --rb-reg-summary-bg: var(--ab-muted-bg);
41226
+ --rb-reg-summary-border: var(--ab-card-border);
41227
+ --rb-reg-focus-ring: var(--ab-input-focus-ring);
41228
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
40791
41229
  }
40792
41230
  `;
40793
41231
  }
@@ -41078,6 +41516,35 @@ ${root} {
41078
41516
  /* Summary */
41079
41517
  --cr-summary-bg: rgba(var(--tb-primary), 0.1);
41080
41518
  --cr-summary-border: rgb(var(--tb-border));
41519
+
41520
+ /* Shared registration-surface mappings (issue 1174).
41521
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
41522
+ (palette tokens where no --cr-* var exists) so existing --cr-* overrides
41523
+ keep working unchanged. */
41524
+ --rb-reg-radius: var(--rb-block-radius);
41525
+ --rb-reg-border: var(--cr-border);
41526
+ --rb-reg-border-hover: var(--cr-border-hover);
41527
+ --rb-reg-border-selected: var(--cr-border-selected);
41528
+ --rb-reg-bg-selected: var(--cr-payment-bg-selected);
41529
+ --rb-reg-option-bg: rgb(var(--tb-background));
41530
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
41531
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
41532
+ --rb-reg-on-surface: var(--cr-on-surface);
41533
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
41534
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
41535
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
41536
+ --rb-reg-check-bg: var(--cr-check-bg);
41537
+ --rb-reg-check-text: var(--cr-check-text);
41538
+ --rb-reg-step-active: var(--cr-step-active);
41539
+ --rb-reg-step-completed: var(--cr-step-completed);
41540
+ --rb-reg-step-inactive: var(--cr-step-inactive);
41541
+ --rb-reg-step-text: var(--cr-step-text);
41542
+ --rb-reg-step-text-active: var(--cr-step-text-active);
41543
+ --rb-reg-step-connector: var(--cr-step-connector);
41544
+ --rb-reg-summary-bg: var(--cr-summary-bg);
41545
+ --rb-reg-summary-border: var(--cr-summary-border);
41546
+ --rb-reg-focus-ring: var(--cr-focus-ring);
41547
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
41081
41548
  }
41082
41549
  `;
41083
41550
  }
@@ -41140,34 +41607,34 @@ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
41140
41607
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
41141
41608
 
41142
41609
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
41143
- import { z as z63 } from "zod";
41144
- var themeBridgeConfigSchema = z63.object({
41145
- tokens: z63.record(z63.string(), z63.string()),
41146
- typography: z63.object({
41147
- headingFamily: z63.string().optional(),
41148
- bodyFamily: z63.string().optional(),
41149
- headingWeight: z63.number().optional(),
41150
- bodyWeight: z63.number().optional()
41610
+ import { z as z64 } from "zod";
41611
+ var themeBridgeConfigSchema = z64.object({
41612
+ tokens: z64.record(z64.string(), z64.string()),
41613
+ typography: z64.object({
41614
+ headingFamily: z64.string().optional(),
41615
+ bodyFamily: z64.string().optional(),
41616
+ headingWeight: z64.number().optional(),
41617
+ bodyWeight: z64.number().optional()
41151
41618
  }).optional(),
41152
- spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
41153
- corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
41154
- shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
41155
- components: z63.object({
41156
- buttons: z63.union([
41157
- z63.boolean(),
41158
- z63.object({
41159
- variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
41619
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
41620
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
41621
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
41622
+ components: z64.object({
41623
+ buttons: z64.union([
41624
+ z64.boolean(),
41625
+ z64.object({
41626
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
41160
41627
  })
41161
41628
  ]).optional(),
41162
- cards: z63.union([
41163
- z63.boolean(),
41164
- z63.object({
41165
- variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
41629
+ cards: z64.union([
41630
+ z64.boolean(),
41631
+ z64.object({
41632
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
41166
41633
  })
41167
41634
  ]).optional(),
41168
- inputs: z63.boolean().optional()
41635
+ inputs: z64.boolean().optional()
41169
41636
  }).optional(),
41170
- overrides: z63.record(z63.string(), z63.string()).optional()
41637
+ overrides: z64.record(z64.string(), z64.string()).optional()
41171
41638
  }).passthrough();
41172
41639
 
41173
41640
  // ../theme-core/src/siteChrome.tsx
@@ -41385,14 +41852,21 @@ function coercePayload(payload) {
41385
41852
 
41386
41853
  // ../blocks/src/system/data/prefetchBlockData.ts
41387
41854
  async function prefetchBlockData(page, context, options) {
41388
- const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders } = options;
41855
+ const {
41856
+ apiClient,
41857
+ isValidEndpoint,
41858
+ onError,
41859
+ getCustomBlockLoaders,
41860
+ getBlockDefinition: getBlockDefinition2 = getBlockDefinition,
41861
+ resolveParamsBindings: resolveParamsBindings2 = resolveParamsBindings
41862
+ } = options;
41389
41863
  const results = {};
41390
41864
  const tasks = [];
41391
41865
  for (const block of page.blocks) {
41392
41866
  const blockId = block.id;
41393
41867
  if (!blockId) continue;
41394
41868
  let loaders;
41395
- const def = getBlockDefinition(block.kind);
41869
+ const def = getBlockDefinition2(block.kind);
41396
41870
  if (def) {
41397
41871
  loaders = normalizeDataLoaders(def);
41398
41872
  } else if (getCustomBlockLoaders) {
@@ -41415,14 +41889,14 @@ async function prefetchBlockData(page, context, options) {
41415
41889
  continue;
41416
41890
  }
41417
41891
  if (typeof loader.when !== "undefined") {
41418
- const resolvedWhen = resolveParamsBindings(loader.when, vm, {
41892
+ const resolvedWhen = resolveParamsBindings2(loader.when, vm, {
41419
41893
  blockKind: block.kind
41420
41894
  });
41421
41895
  if (resolvedWhen !== true) {
41422
41896
  continue;
41423
41897
  }
41424
41898
  }
41425
- const rawParams = resolveParamsBindings(loader.params, vm, {
41899
+ const rawParams = resolveParamsBindings2(loader.params, vm, {
41426
41900
  blockKind: block.kind
41427
41901
  });
41428
41902
  const params = normalizeParams(rawParams);
@@ -41465,7 +41939,8 @@ var SUPPORTED_LOADER_ENDPOINTS = [
41465
41939
  "listPublicPasses",
41466
41940
  "listPublicMemberships",
41467
41941
  "getPublicFormById",
41468
- "getPublicBookingServices"
41942
+ "getPublicBookingServices",
41943
+ "getPublicWeeklySlotAvailability"
41469
41944
  ];
41470
41945
 
41471
41946
  // ../blocks/src/system/data/normalizeLoaderParams.ts
@@ -41504,6 +41979,10 @@ function normalizeLoaderParams(endpoint, params, context) {
41504
41979
  ensureSiteId(out, context);
41505
41980
  return out;
41506
41981
  }
41982
+ if (endpoint === "getPublicWeeklySlotAvailability") {
41983
+ ensureSiteId(out, context);
41984
+ return out;
41985
+ }
41507
41986
  if (endpoint === "listPublicEvents") {
41508
41987
  ensureSiteId(out, context);
41509
41988
  return out;
@@ -41536,17 +42015,17 @@ function normalizeLoaderParams(endpoint, params, context) {
41536
42015
  function unsafeRetypeZodSchema(schema) {
41537
42016
  return schema;
41538
42017
  }
41539
- var navIdListSchema = z64.preprocess((value) => {
42018
+ var navIdListSchema = z65.preprocess((value) => {
41540
42019
  if (!Array.isArray(value)) return void 0;
41541
42020
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
41542
42021
  return filtered.length > 0 ? filtered : void 0;
41543
- }, z64.array(z64.string()).max(200).optional());
41544
- var dashboardNavVisibilityBaseSchema = z64.object({
41545
- mode: z64.enum(["augment", "restrict"]).optional(),
42022
+ }, z65.array(z65.string()).max(200).optional());
42023
+ var dashboardNavVisibilityBaseSchema = z65.object({
42024
+ mode: z65.enum(["augment", "restrict"]).optional(),
41546
42025
  allowIds: navIdListSchema,
41547
42026
  denyIds: navIdListSchema
41548
42027
  }).strip();
41549
- var dashboardNavVisibilityRolesSchema = z64.object({
42028
+ var dashboardNavVisibilityRolesSchema = z65.object({
41550
42029
  administrator: dashboardNavVisibilityBaseSchema.optional(),
41551
42030
  editor: dashboardNavVisibilityBaseSchema.optional(),
41552
42031
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -41554,63 +42033,63 @@ var dashboardNavVisibilityRolesSchema = z64.object({
41554
42033
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
41555
42034
  roles: dashboardNavVisibilityRolesSchema
41556
42035
  }).strip();
41557
- var dashboardNavigationConfigSchema = z64.object({
42036
+ var dashboardNavigationConfigSchema = z65.object({
41558
42037
  siteNav: dashboardNavVisibilitySchema.optional(),
41559
42038
  settingsNav: dashboardNavVisibilitySchema.optional()
41560
42039
  }).strip();
41561
- var dashboardConfigSchema = z64.object({
41562
- previewEditingEnabled: z64.boolean().optional(),
42040
+ var dashboardConfigSchema = z65.object({
42041
+ previewEditingEnabled: z65.boolean().optional(),
41563
42042
  navigation: dashboardNavigationConfigSchema.optional()
41564
42043
  }).strip();
41565
42044
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
41566
42045
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
41567
- var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
41568
- var loaderFallbackScalarSchema = z64.union([
41569
- z64.string(),
41570
- z64.number(),
41571
- z64.boolean(),
41572
- z64.null()
42046
+ var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
42047
+ var loaderFallbackScalarSchema = z65.union([
42048
+ z65.string(),
42049
+ z65.number(),
42050
+ z65.boolean(),
42051
+ z65.null()
41573
42052
  ]);
41574
- var loaderParamBindingSchema = z64.object({
41575
- $bind: z64.object({
41576
- from: z64.string().min(1, "Binding path is required"),
42053
+ var loaderParamBindingSchema = z65.object({
42054
+ $bind: z65.object({
42055
+ from: z65.string().min(1, "Binding path is required"),
41577
42056
  fallback: loaderFallbackScalarSchema.optional()
41578
42057
  })
41579
42058
  });
41580
- var loaderParamValueSchema = z64.union([
41581
- z64.string(),
41582
- z64.number(),
41583
- z64.boolean(),
42059
+ var loaderParamValueSchema = z65.union([
42060
+ z65.string(),
42061
+ z65.number(),
42062
+ z65.boolean(),
41584
42063
  loaderParamBindingSchema
41585
42064
  ]);
41586
- var sdkConfigLoaderSchema = z64.object({
42065
+ var sdkConfigLoaderSchema = z65.object({
41587
42066
  endpoint: sdkLoaderEndpointSchema,
41588
- params: z64.record(z64.string(), loaderParamValueSchema),
41589
- mode: z64.enum(["server", "client"]).default("server")
42067
+ params: z65.record(z65.string(), loaderParamValueSchema),
42068
+ mode: z65.enum(["server", "client"]).default("server")
41590
42069
  });
41591
- var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
41592
- var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
42070
+ var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
42071
+ var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
41593
42072
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
41594
42073
  }).transform((value) => value);
41595
- var sdkCustomBlockInputSchema = z64.object({
42074
+ var sdkCustomBlockInputSchema = z65.object({
41596
42075
  id: sdkCustomBlockIdSchema,
41597
- title: z64.string().min(1),
41598
- titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
41599
- description: z64.string().optional(),
42076
+ title: z65.string().min(1),
42077
+ titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
42078
+ description: z65.string().optional(),
41600
42079
  category: blockCategoryEnum,
41601
- icon: z64.string().optional(),
41602
- tags: z64.array(z64.string()).optional(),
42080
+ icon: z65.string().optional(),
42081
+ tags: z65.array(z65.string()).optional(),
41603
42082
  fields: fieldDefinitionInputSchema.array().min(1),
41604
42083
  dataLoaders: sdkDataLoadersSchema,
41605
42084
  layout: NodeSchema.optional(),
41606
- variants: z64.record(z64.string().min(1), NodeSchema).optional(),
41607
- defaultVariant: z64.string().min(1).optional(),
41608
- variantOptions: z64.record(
41609
- z64.string().min(1),
41610
- z64.object({
41611
- label: z64.string().min(1).optional(),
41612
- description: z64.string().min(1).optional(),
41613
- icon: z64.string().min(1).optional()
42085
+ variants: z65.record(z65.string().min(1), NodeSchema).optional(),
42086
+ defaultVariant: z65.string().min(1).optional(),
42087
+ variantOptions: z65.record(
42088
+ z65.string().min(1),
42089
+ z65.object({
42090
+ label: z65.string().min(1).optional(),
42091
+ description: z65.string().min(1).optional(),
42092
+ icon: z65.string().min(1).optional()
41614
42093
  })
41615
42094
  ).optional(),
41616
42095
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -41621,7 +42100,7 @@ var sdkCustomBlockInputSchema = z64.object({
41621
42100
  const exists = data.fields.some((field) => field.id === source);
41622
42101
  if (!exists) {
41623
42102
  ctx.addIssue({
41624
- code: z64.ZodIssueCode.custom,
42103
+ code: z65.ZodIssueCode.custom,
41625
42104
  message: `titleSource must reference a valid field ID (got "${source}")`,
41626
42105
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
41627
42106
  });
@@ -41630,7 +42109,7 @@ var sdkCustomBlockInputSchema = z64.object({
41630
42109
  }
41631
42110
  if (data.layout && data.variants) {
41632
42111
  ctx.addIssue({
41633
- code: z64.ZodIssueCode.custom,
42112
+ code: z65.ZodIssueCode.custom,
41634
42113
  message: "Custom block must define either `layout` or `variants`, not both",
41635
42114
  path: ["variants"]
41636
42115
  });
@@ -41639,14 +42118,14 @@ var sdkCustomBlockInputSchema = z64.object({
41639
42118
  const keys = Object.keys(data.variants);
41640
42119
  if (keys.length === 0) {
41641
42120
  ctx.addIssue({
41642
- code: z64.ZodIssueCode.custom,
42121
+ code: z65.ZodIssueCode.custom,
41643
42122
  message: "`variants` must contain at least one variant key",
41644
42123
  path: ["variants"]
41645
42124
  });
41646
42125
  }
41647
42126
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
41648
42127
  ctx.addIssue({
41649
- code: z64.ZodIssueCode.custom,
42128
+ code: z65.ZodIssueCode.custom,
41650
42129
  message: "`defaultVariant` must be a key present in `variants`",
41651
42130
  path: ["defaultVariant"]
41652
42131
  });
@@ -41655,7 +42134,7 @@ var sdkCustomBlockInputSchema = z64.object({
41655
42134
  for (const key of Object.keys(data.variantOptions)) {
41656
42135
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
41657
42136
  ctx.addIssue({
41658
- code: z64.ZodIssueCode.custom,
42137
+ code: z65.ZodIssueCode.custom,
41659
42138
  message: "`variantOptions` key must exist in `variants`",
41660
42139
  path: ["variantOptions", key]
41661
42140
  });
@@ -41664,78 +42143,78 @@ var sdkCustomBlockInputSchema = z64.object({
41664
42143
  }
41665
42144
  }
41666
42145
  });
41667
- var sdkBlockFieldExtensionInputSchema = z64.object({
42146
+ var sdkBlockFieldExtensionInputSchema = z65.object({
41668
42147
  fields: fieldDefinitionInputSchema.array().min(1)
41669
42148
  });
41670
- var sdkBlockFieldExtensionsInputSchema = z64.record(
41671
- z64.string().min(1),
42149
+ var sdkBlockFieldExtensionsInputSchema = z65.record(
42150
+ z65.string().min(1),
41672
42151
  sdkBlockFieldExtensionInputSchema
41673
42152
  );
41674
- var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
41675
- var sdkThemeConfigSchema = z64.object({
42153
+ var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
42154
+ var sdkThemeConfigSchema = z65.object({
41676
42155
  palette: sdkThemePaletteSchema
41677
42156
  });
41678
- var sdkSectionBackgroundSchema = z64.object({
41679
- id: z64.string().min(1),
41680
- label: z64.string().min(1),
41681
- token: z64.string().min(1)
42157
+ var sdkSectionBackgroundSchema = z65.object({
42158
+ id: z65.string().min(1),
42159
+ label: z65.string().min(1),
42160
+ token: z65.string().min(1)
41682
42161
  });
41683
- var sdkSectionOptionsConfigSchema = z64.object({
41684
- backgroundColor: z64.boolean().optional(),
41685
- backgroundImage: z64.boolean().optional(),
41686
- backgroundGradient: z64.boolean().optional(),
41687
- spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
41688
- textColor: z64.boolean().optional()
42162
+ var sdkSectionOptionsConfigSchema = z65.object({
42163
+ backgroundColor: z65.boolean().optional(),
42164
+ backgroundImage: z65.boolean().optional(),
42165
+ backgroundGradient: z65.boolean().optional(),
42166
+ spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
42167
+ textColor: z65.boolean().optional()
41689
42168
  });
41690
- var sdkContainerOptionsConfigSchema = z64.object({
41691
- maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
41692
- alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
42169
+ var sdkContainerOptionsConfigSchema = z65.object({
42170
+ maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
42171
+ alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
41693
42172
  });
41694
- var sdkSiteStyleConfigSchema = z64.object({
41695
- sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
42173
+ var sdkSiteStyleConfigSchema = z65.object({
42174
+ sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
41696
42175
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
41697
42176
  containerOptions: sdkContainerOptionsConfigSchema.optional()
41698
42177
  });
41699
- var sdkSiteLayoutConfigSchema = z64.object({
41700
- footerBlocks: z64.array(
41701
- z64.object({
41702
- id: z64.string().min(1).optional(),
41703
- kind: z64.string().min(1),
41704
- content: z64.record(z64.string(), z64.unknown()).optional()
42178
+ var sdkSiteLayoutConfigSchema = z65.object({
42179
+ footerBlocks: z65.array(
42180
+ z65.object({
42181
+ id: z65.string().min(1).optional(),
42182
+ kind: z65.string().min(1),
42183
+ content: z65.record(z65.string(), z65.unknown()).optional()
41705
42184
  })
41706
42185
  ).optional()
41707
42186
  });
41708
- var sdkFieldSelectOptionSchema = z64.object({
41709
- value: z64.string(),
41710
- label: z64.string()
42187
+ var sdkFieldSelectOptionSchema = z65.object({
42188
+ value: z65.string(),
42189
+ label: z65.string()
41711
42190
  });
41712
- var sdkBlockFieldConfigSchema = z64.object({
41713
- options: z64.array(sdkFieldSelectOptionSchema).optional()
42191
+ var sdkBlockFieldConfigSchema = z65.object({
42192
+ options: z65.array(sdkFieldSelectOptionSchema).optional()
41714
42193
  });
41715
- var sdkBlockFieldOptionsMapSchema = z64.record(
41716
- z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
42194
+ var sdkBlockFieldOptionsMapSchema = z65.record(
42195
+ z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
41717
42196
  message: "Block ID must be 'block.*' or 'custom.*' format"
41718
42197
  }),
41719
- z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
42198
+ z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
41720
42199
  ).optional();
41721
- var sdkContentTypeTemplateConfigSchema = z64.object({
41722
- blocks: z64.array(z64.unknown())
42200
+ var sdkContentTypeTemplateConfigSchema = z65.object({
42201
+ blocks: z65.array(z65.unknown())
41723
42202
  }).passthrough();
41724
- var sdkContentTypeOrderingConfigSchema = z64.object({
41725
- mode: z64.enum(["default", "manual"]).optional()
42203
+ var sdkContentTypeOrderingConfigSchema = z65.object({
42204
+ mode: z65.enum(["default", "manual"]).optional()
41726
42205
  }).optional();
41727
- var sdkContentTypeConfigSchema = z64.object({
41728
- key: z64.string().min(1),
41729
- fields: z64.array(z64.unknown()),
42206
+ var sdkContentTypeConfigSchema = z65.object({
42207
+ key: z65.string().min(1),
42208
+ fields: z65.array(z65.unknown()),
41730
42209
  ordering: sdkContentTypeOrderingConfigSchema,
41731
42210
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
41732
42211
  }).passthrough();
41733
- var sdkContentConfigSchema = z64.object({
41734
- contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
41735
- pages: z64.array(z64.unknown()).optional(),
41736
- entries: z64.array(z64.unknown()).optional(),
41737
- navigationMenus: z64.array(z64.unknown()).optional(),
41738
- settings: z64.unknown().optional()
42212
+ var sdkContentConfigSchema = z65.object({
42213
+ contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
42214
+ pages: z65.array(z65.unknown()).optional(),
42215
+ entries: z65.array(z65.unknown()).optional(),
42216
+ navigationMenus: z65.array(z65.unknown()).optional(),
42217
+ settings: z65.unknown().optional()
41739
42218
  }).passthrough();
41740
42219
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
41741
42220
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -41750,62 +42229,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
41750
42229
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
41751
42230
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
41752
42231
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
41753
- var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
42232
+ var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
41754
42233
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
41755
42234
  });
41756
- var sdkWorkflowEndpointSchema = z64.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
41757
- var sdkWorkflowManualTriggerSchema = z64.object({
41758
- type: z64.literal("manual")
42235
+ var sdkWorkflowEndpointSchema = z65.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
42236
+ var sdkWorkflowManualTriggerSchema = z65.object({
42237
+ type: z65.literal("manual")
41759
42238
  }).strict();
41760
- var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
42239
+ var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
41761
42240
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
41762
42241
  });
41763
- var sdkWorkflowFieldChangedConditionSchema = z64.object({
42242
+ var sdkWorkflowFieldChangedConditionSchema = z65.object({
41764
42243
  field: sdkWorkflowTriggerFieldSchema,
41765
- changed: z64.literal(true)
42244
+ changed: z65.literal(true)
41766
42245
  }).strict();
41767
- var sdkWorkflowFieldEmptyConditionSchema = z64.object({
42246
+ var sdkWorkflowFieldEmptyConditionSchema = z65.object({
41768
42247
  field: sdkWorkflowTriggerFieldSchema,
41769
- isEmpty: z64.boolean()
42248
+ isEmpty: z65.boolean()
41770
42249
  }).strict();
41771
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
41772
- type: z64.literal("entry.draft.updated"),
41773
- when: z64.array(
41774
- z64.union([
42250
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
42251
+ type: z65.literal("entry.draft.updated"),
42252
+ when: z65.array(
42253
+ z65.union([
41775
42254
  sdkWorkflowFieldChangedConditionSchema,
41776
42255
  sdkWorkflowFieldEmptyConditionSchema
41777
42256
  ])
41778
42257
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
41779
42258
  }).strict();
41780
- var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
42259
+ var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
41781
42260
  sdkWorkflowManualTriggerSchema,
41782
42261
  sdkWorkflowEntryDraftUpdatedTriggerSchema
41783
42262
  ]);
41784
- var sdkWorkflowConfirmationSchema = z64.object({
41785
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
41786
- body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
42263
+ var sdkWorkflowConfirmationSchema = z65.object({
42264
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
42265
+ body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
41787
42266
  }).strict();
41788
- var sdkWorkflowConfigSchema = z64.object({
42267
+ var sdkWorkflowConfigSchema = z65.object({
41789
42268
  id: sdkWorkflowIdSchema,
41790
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
41791
- description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
41792
- contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
42269
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
42270
+ description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
42271
+ contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
41793
42272
  endpoint: sdkWorkflowEndpointSchema,
41794
- triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
42273
+ triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
41795
42274
  confirmation: sdkWorkflowConfirmationSchema.optional()
41796
42275
  }).strict();
41797
- var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
42276
+ var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
41798
42277
  const ids = workflows.map((workflow) => workflow.id);
41799
42278
  return ids.length === new Set(ids).size;
41800
42279
  }, { message: "Workflow IDs must be unique" }).optional();
41801
- var riverbankSiteConfigInputSchema = z64.object({
41802
- siteId: z64.string().uuid(),
41803
- previewUrl: z64.string().url().optional(),
41804
- liveUrl: z64.string().url().optional(),
42280
+ var riverbankSiteConfigInputSchema = z65.object({
42281
+ siteId: z65.string().uuid(),
42282
+ previewUrl: z65.string().url().optional(),
42283
+ liveUrl: z65.string().url().optional(),
41805
42284
  theme: sdkThemeConfigSchema.optional(),
41806
42285
  styles: sdkSiteStyleConfigSchema.optional(),
41807
42286
  layout: sdkSiteLayoutConfigSchema.optional(),
41808
- customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
42287
+ customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
41809
42288
  const ids = blocks.map((b) => b.id);
41810
42289
  return ids.length === new Set(ids).size;
41811
42290
  }, { message: "Block IDs must be unique" }).optional(),
@@ -41813,50 +42292,51 @@ var riverbankSiteConfigInputSchema = z64.object({
41813
42292
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
41814
42293
  workflows: sdkWorkflowsSchema,
41815
42294
  content: sdkContentConfigSchema.optional(),
41816
- contentDir: z64.string().optional(),
41817
- sync: z64.object({
41818
- existingEntries: z64.enum(["skip", "update"]).optional()
42295
+ contentDir: z65.string().optional(),
42296
+ sync: z65.object({
42297
+ existingEntries: z65.enum(["skip", "update"]).optional()
41819
42298
  }).optional(),
41820
- deploy: z64.object({
41821
- verifyCommand: z64.string().optional(),
41822
- prebuildOutput: z64.string().optional()
42299
+ deploy: z65.object({
42300
+ verifyCommand: z65.string().optional(),
42301
+ prebuildOutput: z65.string().optional()
41823
42302
  }).optional(),
41824
- themeSource: z64.enum(["local", "cms"]).optional(),
41825
- activeTheme: z64.string().optional(),
41826
- enablePortal: z64.boolean().optional(),
42303
+ themeSource: z65.enum(["local", "cms"]).optional(),
42304
+ activeTheme: z65.string().optional(),
42305
+ enablePortal: z65.boolean().optional(),
41827
42306
  dashboard: dashboardConfigSchema.optional()
41828
42307
  }).strict();
41829
- var pushSdkConfigBodySchema = z64.object({
42308
+ var pushSdkConfigBodySchema = z65.object({
41830
42309
  config: riverbankSiteConfigInputSchema,
41831
- forceContentTypes: z64.boolean().optional()
42310
+ forceContentTypes: z65.boolean().optional(),
42311
+ mode: z65.enum(["apply", "preview"]).optional()
41832
42312
  }).strict();
41833
42313
 
41834
42314
  // ../api/src/siteOnboarding.ts
41835
- import { z as z65 } from "zod";
42315
+ import { z as z66 } from "zod";
41836
42316
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
41837
42317
  configure_appointments: {
41838
42318
  requirementId: "configure_appointments",
41839
42319
  reason: "launch_anyway"
41840
42320
  }
41841
42321
  };
41842
- var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
42322
+ var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
41843
42323
  "requirementId",
41844
42324
  [
41845
- z65.object({
41846
- requirementId: z65.literal("review_generated_site")
42325
+ z66.object({
42326
+ requirementId: z66.literal("review_generated_site")
41847
42327
  }),
41848
- z65.object({
41849
- requirementId: z65.literal(
42328
+ z66.object({
42329
+ requirementId: z66.literal(
41850
42330
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
41851
42331
  ),
41852
- overrideReason: z65.literal(
42332
+ overrideReason: z66.literal(
41853
42333
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
41854
42334
  )
41855
42335
  })
41856
42336
  ]
41857
42337
  );
41858
- var goLiveSiteRequestSchema = z65.object({
41859
- acceptExtraSiteCharge: z65.boolean().optional()
42338
+ var goLiveSiteRequestSchema = z66.object({
42339
+ acceptExtraSiteCharge: z66.boolean().optional()
41860
42340
  });
41861
42341
 
41862
42342
  // ../api/src/customerMembershipOutcomes.ts
@@ -41936,7 +42416,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
41936
42416
  ];
41937
42417
 
41938
42418
  // ../api/src/bookingVerticals.ts
41939
- import { z as z66 } from "zod";
42419
+ import { z as z67 } from "zod";
41940
42420
  var VERTICAL_IDS = [
41941
42421
  "yoga_wellness",
41942
42422
  "fitness_pt",
@@ -42101,39 +42581,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
42101
42581
  }
42102
42582
  return [...issues];
42103
42583
  }
42104
- var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
42584
+ var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
42105
42585
  const parsed = parseVerticalId(value);
42106
42586
  if (!parsed) {
42107
42587
  ctx.addIssue({
42108
- code: z66.ZodIssueCode.custom,
42588
+ code: z67.ZodIssueCode.custom,
42109
42589
  message: "Unknown booking vertical"
42110
42590
  });
42111
- return z66.NEVER;
42591
+ return z67.NEVER;
42112
42592
  }
42113
42593
  return parsed;
42114
42594
  });
42115
- var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
42595
+ var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
42116
42596
  const parsed = parseVerticalPresetId(value);
42117
42597
  if (!parsed) {
42118
42598
  ctx.addIssue({
42119
- code: z66.ZodIssueCode.custom,
42599
+ code: z67.ZodIssueCode.custom,
42120
42600
  message: "Unknown booking preset"
42121
42601
  });
42122
- return z66.NEVER;
42602
+ return z67.NEVER;
42123
42603
  }
42124
42604
  return parsed;
42125
42605
  });
42126
- var BookingVerticalConfigSchema = z66.object({
42606
+ var BookingVerticalConfigSchema = z67.object({
42127
42607
  verticalId: VerticalIdSchema.nullable(),
42128
- selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
42608
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
42129
42609
  }).transform((value, ctx) => {
42130
42610
  const resolved = resolveSiteVerticalBookingConfig(value);
42131
42611
  if (resolved.kind === "invalid") {
42132
42612
  ctx.addIssue({
42133
- code: z66.ZodIssueCode.custom,
42613
+ code: z67.ZodIssueCode.custom,
42134
42614
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
42135
42615
  });
42136
- return z66.NEVER;
42616
+ return z67.NEVER;
42137
42617
  }
42138
42618
  return resolved.config;
42139
42619
  });
@@ -42160,51 +42640,51 @@ function isRecord11(value) {
42160
42640
  }
42161
42641
 
42162
42642
  // ../api/src/appointmentSetup.ts
42163
- import { z as z67 } from "zod";
42643
+ import { z as z68 } from "zod";
42164
42644
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
42165
- var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
42166
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
42167
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
42645
+ var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
42646
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
42647
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
42168
42648
  ]);
42169
- var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
42170
- z67.object({ kind: z67.literal("none") }),
42171
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
42172
- z67.object({
42173
- kind: z67.literal("create"),
42174
- draftId: z67.string().min(1),
42175
- title: z67.string().trim().min(1),
42176
- description: z67.string().nullable(),
42177
- timezone: z67.string().trim().min(1).nullable(),
42178
- addressJson: z67.record(z67.string(), z67.unknown()),
42179
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
42649
+ var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
42650
+ z68.object({ kind: z68.literal("none") }),
42651
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
42652
+ z68.object({
42653
+ kind: z68.literal("create"),
42654
+ draftId: z68.string().min(1),
42655
+ title: z68.string().trim().min(1),
42656
+ description: z68.string().nullable(),
42657
+ timezone: z68.string().trim().min(1).nullable(),
42658
+ addressJson: z68.record(z68.string(), z68.unknown()),
42659
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
42180
42660
  })
42181
42661
  ]);
42182
- var appointmentSetupPaymentDraftSchema = z67.object({
42183
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
42184
- });
42185
- var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
42186
- z67.object({ kind: z67.literal("all_practitioners") }),
42187
- z67.object({
42188
- kind: z67.literal("selected_practitioners"),
42189
- resourceRefs: z67.array(appointmentSetupRefSchema)
42662
+ var appointmentSetupPaymentDraftSchema = z68.object({
42663
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
42664
+ });
42665
+ var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
42666
+ z68.object({ kind: z68.literal("all_practitioners") }),
42667
+ z68.object({
42668
+ kind: z68.literal("selected_practitioners"),
42669
+ resourceRefs: z68.array(appointmentSetupRefSchema)
42190
42670
  })
42191
42671
  ]);
42192
- var appointmentSetupServiceDraftSchema = z67.object({
42672
+ var appointmentSetupServiceDraftSchema = z68.object({
42193
42673
  ref: appointmentSetupRefSchema,
42194
- title: z67.string().trim().min(1),
42195
- description: z67.string().nullable(),
42196
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
42197
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42198
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42199
- priceAmount: z67.number().int().nonnegative().nullable(),
42200
- isActive: z67.boolean(),
42201
- locationType: z67.union([
42202
- z67.literal("virtual"),
42203
- z67.literal("in_person"),
42204
- z67.literal("hybrid")
42674
+ title: z68.string().trim().min(1),
42675
+ description: z68.string().nullable(),
42676
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
42677
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42678
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42679
+ priceAmount: z68.number().int().nonnegative().nullable(),
42680
+ isActive: z68.boolean(),
42681
+ locationType: z68.union([
42682
+ z68.literal("virtual"),
42683
+ z68.literal("in_person"),
42684
+ z68.literal("hybrid")
42205
42685
  ]),
42206
42686
  venue: appointmentSetupVenueChoiceSchema,
42207
- timezone: z67.string().trim().min(1).nullable(),
42687
+ timezone: z68.string().trim().min(1).nullable(),
42208
42688
  payment: appointmentSetupPaymentDraftSchema,
42209
42689
  assignment: appointmentSetupServiceAssignmentDraftSchema
42210
42690
  }).superRefine((service, ctx) => {
@@ -42223,49 +42703,49 @@ var appointmentSetupServiceDraftSchema = z67.object({
42223
42703
  });
42224
42704
  }
42225
42705
  });
42226
- var appointmentSetupPractitionerDraftSchema = z67.object({
42706
+ var appointmentSetupPractitionerDraftSchema = z68.object({
42227
42707
  ref: appointmentSetupRefSchema,
42228
- displayName: z67.string().trim().min(1),
42229
- bio: z67.string().nullable(),
42230
- timezone: z67.string().trim().min(1),
42231
- colorHex: z67.string().nullable()
42232
- });
42233
- var appointmentSetupWeeklyWindowDraftSchema = z67.object({
42234
- weekday: z67.number().int().min(0).max(6),
42235
- startTime: z67.string(),
42236
- endTime: z67.string()
42237
- });
42238
- var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
42239
- z67.object({ kind: z67.literal("automatic_spacing") }),
42240
- z67.object({
42241
- kind: z67.literal("regular_interval"),
42242
- intervalMinutes: z67.union([
42243
- z67.literal(10),
42244
- z67.literal(15),
42245
- z67.literal(20),
42246
- z67.literal(30),
42247
- z67.literal(45),
42248
- z67.literal(60)
42708
+ displayName: z68.string().trim().min(1),
42709
+ bio: z68.string().nullable(),
42710
+ timezone: z68.string().trim().min(1),
42711
+ colorHex: z68.string().nullable()
42712
+ });
42713
+ var appointmentSetupWeeklyWindowDraftSchema = z68.object({
42714
+ weekday: z68.number().int().min(0).max(6),
42715
+ startTime: z68.string(),
42716
+ endTime: z68.string()
42717
+ });
42718
+ var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
42719
+ z68.object({ kind: z68.literal("automatic_spacing") }),
42720
+ z68.object({
42721
+ kind: z68.literal("regular_interval"),
42722
+ intervalMinutes: z68.union([
42723
+ z68.literal(10),
42724
+ z68.literal(15),
42725
+ z68.literal(20),
42726
+ z68.literal(30),
42727
+ z68.literal(45),
42728
+ z68.literal(60)
42249
42729
  ])
42250
42730
  })
42251
42731
  ]);
42252
- var appointmentSetupAvailabilityDraftSchema = z67.object({
42253
- kind: z67.literal("weekly_windows"),
42732
+ var appointmentSetupAvailabilityDraftSchema = z68.object({
42733
+ kind: z68.literal("weekly_windows"),
42254
42734
  resourceRef: appointmentSetupRefSchema,
42255
42735
  serviceRef: appointmentSetupRefSchema.nullable(),
42256
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
42736
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
42257
42737
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
42258
42738
  });
42259
42739
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
42260
42740
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
42261
- var appointmentSetupBookingNoticeSchema = z67.object({
42262
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
42263
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
42264
- });
42265
- var applyAppointmentSetupRequestSchema = z67.object({
42266
- services: z67.array(appointmentSetupServiceDraftSchema),
42267
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
42268
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
42741
+ var appointmentSetupBookingNoticeSchema = z68.object({
42742
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
42743
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
42744
+ });
42745
+ var applyAppointmentSetupRequestSchema = z68.object({
42746
+ services: z68.array(appointmentSetupServiceDraftSchema),
42747
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
42748
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
42269
42749
  bookingNotice: appointmentSetupBookingNoticeSchema
42270
42750
  });
42271
42751
 
@@ -42298,24 +42778,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
42298
42778
  ];
42299
42779
 
42300
42780
  // ../api/src/siteBanner.ts
42301
- import { z as z68 } from "zod";
42781
+ import { z as z69 } from "zod";
42302
42782
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
42303
42783
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
42304
42784
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
42305
42785
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
42306
- var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
42307
- var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
42308
- var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
42309
- var siteBannerCtaSchema = z68.object({
42310
- label: z68.string().trim().min(1),
42786
+ var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
42787
+ var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
42788
+ var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
42789
+ var siteBannerCtaSchema = z69.object({
42790
+ label: z69.string().trim().min(1),
42311
42791
  link: linkPayloadSchema
42312
42792
  });
42313
- var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
42314
- z68.object({
42315
- enabled: z68.literal(false)
42793
+ var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
42794
+ z69.object({
42795
+ enabled: z69.literal(false)
42316
42796
  }),
42317
- z68.object({
42318
- enabled: z68.literal(true),
42797
+ z69.object({
42798
+ enabled: z69.literal(true),
42319
42799
  scope: siteBannerScopeSchema,
42320
42800
  tone: siteBannerToneSchema,
42321
42801
  body: siteBannerBodySchema,
@@ -42329,7 +42809,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
42329
42809
  const analysis = analyzeSiteBannerBody(value.body);
42330
42810
  for (const issue of analysis.issues) {
42331
42811
  ctx.addIssue({
42332
- code: z68.ZodIssueCode.custom,
42812
+ code: z69.ZodIssueCode.custom,
42333
42813
  path: ["body"],
42334
42814
  message: siteBannerBodyIssueMessage(issue)
42335
42815
  });
@@ -42556,77 +43036,81 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
42556
43036
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
42557
43037
 
42558
43038
  // ../api/src/aiPlayground.ts
42559
- import { z as z69 } from "zod";
42560
- var Rfc6902PatchOp = z69.discriminatedUnion("op", [
43039
+ import { z as z70 } from "zod";
43040
+ var Rfc6902PatchOp = z70.discriminatedUnion("op", [
42561
43041
  // Standard RFC-6902 operations
42562
- z69.object({
42563
- op: z69.literal("add"),
42564
- path: z69.string(),
42565
- value: z69.unknown()
43042
+ z70.object({
43043
+ op: z70.literal("add"),
43044
+ path: z70.string(),
43045
+ value: z70.unknown()
42566
43046
  }),
42567
- z69.object({
42568
- op: z69.literal("remove"),
42569
- path: z69.string()
43047
+ z70.object({
43048
+ op: z70.literal("remove"),
43049
+ path: z70.string()
42570
43050
  }),
42571
- z69.object({
42572
- op: z69.literal("replace"),
42573
- path: z69.string(),
42574
- value: z69.unknown()
43051
+ z70.object({
43052
+ op: z70.literal("replace"),
43053
+ path: z70.string(),
43054
+ value: z70.unknown()
42575
43055
  }),
42576
- z69.object({
42577
- op: z69.literal("move"),
42578
- from: z69.string(),
42579
- path: z69.string()
43056
+ z70.object({
43057
+ op: z70.literal("move"),
43058
+ from: z70.string(),
43059
+ path: z70.string()
42580
43060
  }),
42581
- z69.object({
42582
- op: z69.literal("copy"),
42583
- from: z69.string(),
42584
- path: z69.string()
43061
+ z70.object({
43062
+ op: z70.literal("copy"),
43063
+ from: z70.string(),
43064
+ path: z70.string()
42585
43065
  }),
42586
43066
  // Block-level operations (Phase 2)
42587
- z69.object({
42588
- op: z69.literal("add_block"),
42589
- blockKind: z69.string(),
42590
- afterBlockId: z69.string().nullable(),
42591
- content: z69.record(z69.string(), z69.unknown()),
42592
- rationale: z69.string()
43067
+ z70.object({
43068
+ op: z70.literal("add_block"),
43069
+ blockKind: z70.string(),
43070
+ afterBlockId: z70.string().nullable(),
43071
+ content: z70.record(z70.string(), z70.unknown()),
43072
+ rationale: z70.string()
42593
43073
  }),
42594
- z69.object({
42595
- op: z69.literal("delete_block"),
42596
- blockId: z69.string(),
42597
- rationale: z69.string()
43074
+ z70.object({
43075
+ op: z70.literal("delete_block"),
43076
+ blockId: z70.string(),
43077
+ rationale: z70.string()
42598
43078
  }),
42599
- z69.object({
42600
- op: z69.literal("reorder_block"),
42601
- blockId: z69.string(),
42602
- afterBlockId: z69.string().nullable(),
42603
- rationale: z69.string()
43079
+ z70.object({
43080
+ op: z70.literal("reorder_block"),
43081
+ blockId: z70.string(),
43082
+ afterBlockId: z70.string().nullable(),
43083
+ rationale: z70.string()
42604
43084
  })
42605
43085
  ]);
42606
- var PlaygroundProposeRequest = z69.object({
42607
- request: z69.string().min(1).max(2e3)
43086
+ var PlaygroundProposeRequest = z70.object({
43087
+ request: z70.string().min(1).max(2e3)
42608
43088
  });
42609
- var MultiPagePatchEnvelope = z69.object({
42610
- pageId: z69.string(),
42611
- blockId: z69.string().optional(),
43089
+ var MultiPagePatchEnvelope = z70.object({
43090
+ pageId: z70.string(),
43091
+ blockId: z70.string().optional(),
42612
43092
  // Not present for page-level ops
42613
- blockKind: z69.string().optional(),
42614
- blockPurpose: z69.string().optional().nullable(),
42615
- ops: z69.array(Rfc6902PatchOp),
42616
- rationale: z69.string(),
42617
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
43093
+ blockKind: z70.string().optional(),
43094
+ blockPurpose: z70.string().optional().nullable(),
43095
+ ops: z70.array(Rfc6902PatchOp),
43096
+ rationale: z70.string(),
43097
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
42618
43098
  });
42619
- var MultiPageUpdateResponse = z69.object({
42620
- patches: z69.array(MultiPagePatchEnvelope),
42621
- assistantMessage: z69.string(),
42622
- pagesModified: z69.number(),
42623
- toolCallsUsed: z69.number()
43099
+ var MultiPageUpdateResponse = z70.object({
43100
+ patches: z70.array(MultiPagePatchEnvelope),
43101
+ assistantMessage: z70.string(),
43102
+ pagesModified: z70.number(),
43103
+ toolCallsUsed: z70.number()
42624
43104
  });
42625
43105
 
42626
43106
  // src/data/prefetchBlockData.ts
42627
43107
  function isSupportedLoaderEndpoint2(endpoint) {
42628
43108
  return SUPPORTED_LOADER_ENDPOINTS.includes(endpoint);
42629
43109
  }
43110
+ var defaultPrefetchBlockDataDeps = {
43111
+ prefetchBlockDataCore: prefetchBlockData,
43112
+ normalizeLoaderParams
43113
+ };
42630
43114
  var ENTRY_REF_KEYS = [
42631
43115
  "identifier",
42632
43116
  "entryIdentifier",
@@ -42702,7 +43186,8 @@ var loaderAdapters = {
42702
43186
  listPublicPasses,
42703
43187
  listPublicMemberships,
42704
43188
  getPublicFormById,
42705
- getPublicBookingServices
43189
+ getPublicBookingServices,
43190
+ getPublicWeeklySlotAvailability
42706
43191
  };
42707
43192
  function readStringParam(params, key) {
42708
43193
  const value = params[key];
@@ -42878,19 +43363,37 @@ async function getPublicBookingServices({ client, params }) {
42878
43363
  ids: readStringParam(params, "ids")
42879
43364
  });
42880
43365
  }
43366
+ async function getPublicWeeklySlotAvailability({ client, params }) {
43367
+ return await client.getPublicWeeklySlotAvailability({
43368
+ siteId: requireStringParam(params, "siteId", "getPublicWeeklySlotAvailability"),
43369
+ serviceId: requireStringParam(params, "serviceId", "getPublicWeeklySlotAvailability"),
43370
+ resourceId: readStringParam(params, "resourceId"),
43371
+ horizonWeeks: parsePositiveIntegerParam(params, "horizonWeeks"),
43372
+ timezone: readStringParam(params, "timezone")
43373
+ });
43374
+ }
42881
43375
  async function prefetchBlockData2(page, context, client, options) {
43376
+ return prefetchBlockDataWithDeps(
43377
+ defaultPrefetchBlockDataDeps,
43378
+ page,
43379
+ context,
43380
+ client,
43381
+ options
43382
+ );
43383
+ }
43384
+ async function prefetchBlockDataWithDeps(deps, page, context, client, options) {
42882
43385
  const { customBlocks } = options ?? {};
42883
43386
  const customBlockMap = new Map(
42884
43387
  (customBlocks ?? []).map((block) => [block.id, block])
42885
43388
  );
42886
- return prefetchBlockData(page, context, {
43389
+ return deps.prefetchBlockDataCore(page, context, {
42887
43390
  apiClient: async ({ endpoint, params }) => {
42888
43391
  if (!isSupportedLoaderEndpoint2(endpoint)) {
42889
43392
  throw new Error(
42890
43393
  `Unsupported loader endpoint: ${endpoint}. SDK only supports: ${SUPPORTED_LOADER_ENDPOINTS.join(", ")}`
42891
43394
  );
42892
43395
  }
42893
- const resolvedParams = normalizeLoaderParams(endpoint, params, context);
43396
+ const resolvedParams = deps.normalizeLoaderParams(endpoint, params, context);
42894
43397
  return await loaderAdapters[endpoint]({ client, params: resolvedParams });
42895
43398
  },
42896
43399
  isValidEndpoint: isSupportedLoaderEndpoint2,
@@ -43050,8 +43553,25 @@ function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
43050
43553
  }
43051
43554
 
43052
43555
  // src/rendering/helpers/loadPage.ts
43556
+ var defaultLoadPageDeps = {
43557
+ prefetchBlockData: prefetchBlockData2,
43558
+ executeCodeLoaders,
43559
+ mergeLoaderResults
43560
+ };
43053
43561
  async function loadPage(params) {
43054
- const { client, siteId, path, pageId, preview = false, dataLoaderOverrides, searchParams, forceSite } = params;
43562
+ return loadPageWithDeps(defaultLoadPageDeps, params);
43563
+ }
43564
+ async function loadPageWithDeps(deps, params) {
43565
+ const {
43566
+ client,
43567
+ siteId,
43568
+ path,
43569
+ pageId,
43570
+ preview = false,
43571
+ dataLoaderOverrides,
43572
+ searchParams,
43573
+ forceSite
43574
+ } = params;
43055
43575
  const [site, pageResponse] = await Promise.all([
43056
43576
  client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
43057
43577
  client.getPage({ siteId, path, preview })
@@ -43061,6 +43581,11 @@ async function loadPage(params) {
43061
43581
  "This path resolves to a content entry, not a page. Use loadContent() instead, which handles both pages and entries. For entries, loadContent() returns the raw entry data for custom rendering."
43062
43582
  );
43063
43583
  }
43584
+ if ("pageSurface" in pageResponse) {
43585
+ throw new Error(
43586
+ "This path resolves to a page surface, not a page. Use loadContent() instead, which handles pages, entries, and page surfaces."
43587
+ );
43588
+ }
43064
43589
  const { page: pageData } = pageResponse;
43065
43590
  const support = buildSiteRenderSupport(
43066
43591
  site,
@@ -43079,7 +43604,7 @@ async function loadPage(params) {
43079
43604
  previewStage: preview ? "preview" : "published",
43080
43605
  searchParams
43081
43606
  };
43082
- const configData = await prefetchBlockData2(
43607
+ const configData = await deps.prefetchBlockData(
43083
43608
  pageOutline,
43084
43609
  prefetchContext,
43085
43610
  client,
@@ -43090,8 +43615,12 @@ async function loadPage(params) {
43090
43615
  );
43091
43616
  let resolvedData = configData;
43092
43617
  if (dataLoaderOverrides && Object.keys(dataLoaderOverrides).length > 0) {
43093
- const codeData = await executeCodeLoaders(pageOutline, prefetchContext, dataLoaderOverrides);
43094
- resolvedData = mergeLoaderResults(configData, codeData);
43618
+ const codeData = await deps.executeCodeLoaders(
43619
+ pageOutline,
43620
+ prefetchContext,
43621
+ dataLoaderOverrides
43622
+ );
43623
+ resolvedData = deps.mergeLoaderResults(configData, codeData);
43095
43624
  }
43096
43625
  return {
43097
43626
  page: pageOutline,
@@ -43110,13 +43639,17 @@ async function loadPage(params) {
43110
43639
  };
43111
43640
  }
43112
43641
 
43113
- // ../blocks/src/bindings/types.ts
43114
- var TRANSFORMS = {
43642
+ // ../field-primitives/src/bindings/index.ts
43643
+ var BINDING_TRANSFORMS = {
43115
43644
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
43116
43645
  DATE_FORMAT_SHORT: "date.formatShort",
43117
43646
  DATE_FORMAT_LONG: "date.formatLong",
43118
43647
  TEXT_INLINE_TEXT: "text.inlineText"
43119
43648
  };
43649
+ var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
43650
+
43651
+ // ../blocks/src/bindings/types.ts
43652
+ var TRANSFORMS = BINDING_TRANSFORMS;
43120
43653
  var BINDING_SOURCES = ["field", "meta", "literal", "transform", "fallback"];
43121
43654
 
43122
43655
  // ../blocks/src/bindings/index.ts
@@ -43332,7 +43865,12 @@ function isDocWrapper(value) {
43332
43865
  return isRecord3(doc) && typeof doc.type === "string" && doc.type === "doc";
43333
43866
  }
43334
43867
 
43868
+ // src/contracts/bindings.ts
43869
+ var BINDING_TRANSFORM_VALUES2 = BINDING_TRANSFORM_VALUES;
43870
+ var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES2.join(", ");
43871
+
43335
43872
  // src/rendering/helpers/bindings.ts
43873
+ var isRecord14 = isRecord3;
43336
43874
  var normalizeBindingOutput2 = normalizeBindingOutput;
43337
43875
  var applyBindingsToContent2 = applyBindingsToContent;
43338
43876
 
@@ -43362,6 +43900,9 @@ function selectBlocksForDeclaredEntrySlot(input) {
43362
43900
  }
43363
43901
 
43364
43902
  // src/rendering/helpers/loadContent.ts
43903
+ var defaultLoadContentDeps = {
43904
+ prefetchBlockData: prefetchBlockData2
43905
+ };
43365
43906
  function isPageContent(result) {
43366
43907
  return result.type === "page";
43367
43908
  }
@@ -43378,19 +43919,38 @@ function getRejectedReason(result) {
43378
43919
  return result.reason;
43379
43920
  }
43380
43921
  async function loadContent(params) {
43381
- const { client, siteId, path, preview = false, forceSite } = params;
43922
+ return loadContentWithDeps(defaultLoadContentDeps, params);
43923
+ }
43924
+ async function loadContentWithDeps(deps, params) {
43925
+ const {
43926
+ client,
43927
+ siteId,
43928
+ path,
43929
+ preview = false,
43930
+ forceSite,
43931
+ contentContract = "compat"
43932
+ } = params;
43382
43933
  const [siteResult, contentResult] = await Promise.allSettled([
43383
43934
  client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
43384
- client.getPage({ siteId, path, preview })
43935
+ client.getPage({
43936
+ siteId,
43937
+ path,
43938
+ preview,
43939
+ ...contentContract === "native" ? { contentContract } : {}
43940
+ })
43385
43941
  ]);
43386
43942
  if (siteResult.status === "rejected" || contentResult.status === "rejected") {
43387
- const failures = [siteResult, contentResult].filter((result) => result.status === "rejected").map(getRejectedReason);
43388
- const upstreamFailure = failures.find((error) => !isContentLoadNotFoundError(error));
43943
+ const failures = [siteResult, contentResult].filter(
43944
+ (result) => result.status === "rejected"
43945
+ ).map(getRejectedReason);
43946
+ const upstreamFailure = failures.find(
43947
+ (error) => !isContentLoadNotFoundError(error)
43948
+ );
43389
43949
  throw upstreamFailure ?? failures[0];
43390
43950
  }
43391
43951
  const site = siteResult.value;
43392
43952
  const contentResponse = contentResult.value;
43393
- return loadContentFromContentResponse({
43953
+ return loadContentFromContentResponseWithDeps(deps, {
43394
43954
  client,
43395
43955
  siteId,
43396
43956
  site,
@@ -43398,7 +43958,7 @@ async function loadContent(params) {
43398
43958
  preview
43399
43959
  });
43400
43960
  }
43401
- async function loadContentFromContentResponse(params) {
43961
+ async function loadContentFromContentResponseWithDeps(deps, params) {
43402
43962
  const {
43403
43963
  client,
43404
43964
  siteId,
@@ -43435,6 +43995,7 @@ async function loadContentFromContentResponse(params) {
43435
43995
  entry,
43436
43996
  { siteId, preview },
43437
43997
  client,
43998
+ deps,
43438
43999
  { customBlocks: support.customBlocks }
43439
44000
  );
43440
44001
  return {
@@ -43466,6 +44027,78 @@ async function loadContentFromContentResponse(params) {
43466
44027
  ...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {}
43467
44028
  };
43468
44029
  }
44030
+ if (isPageSurfaceResponse(contentResponse)) {
44031
+ const pageSurfaceData = contentResponse.pageSurface;
44032
+ const pageSurface = {
44033
+ id: pageSurfaceData.id,
44034
+ routeId: pageSurfaceData.routeId,
44035
+ readinessState: pageSurfaceData.readinessState,
44036
+ subject: pageSurfaceData.subject,
44037
+ title: pageSurfaceData.title,
44038
+ slug: pageSurfaceData.slug,
44039
+ path: pageSurfaceData.path,
44040
+ status: pageSurfaceData.status,
44041
+ publishAt: pageSurfaceData.publishAt,
44042
+ content: pageSurfaceData.content,
44043
+ metaTitle: preview ? pageSurfaceData.draftMetaTitle ?? pageSurfaceData.metaTitle : pageSurfaceData.metaTitle,
44044
+ metaDescription: preview ? pageSurfaceData.draftMetaDescription ?? pageSurfaceData.metaDescription : pageSurfaceData.metaDescription,
44045
+ createdAt: pageSurfaceData.createdAt,
44046
+ updatedAt: pageSurfaceData.updatedAt,
44047
+ contentSource: pageSurfaceData.contentSource
44048
+ };
44049
+ const { templatePage, resolvedData: resolvedData2 } = await processTemplatePage({
44050
+ templates: contentResponse.templates,
44051
+ slotContent: contentResponse.surfaceSlots,
44052
+ bindingContext: {
44053
+ fields: pageSurface.content && typeof pageSurface.content === "object" ? pageSurface.content : {},
44054
+ meta: {
44055
+ id: pageSurface.id,
44056
+ title: pageSurface.title,
44057
+ slug: pageSurface.slug,
44058
+ path: pageSurface.path,
44059
+ publishAt: pageSurface.publishAt,
44060
+ status: pageSurface.status,
44061
+ createdAt: pageSurface.createdAt,
44062
+ updatedAt: pageSurface.updatedAt
44063
+ }
44064
+ },
44065
+ pageName: pageSurface.title || "Page Surface Template",
44066
+ pagePath: pageSurface.path || "/",
44067
+ pagePurpose: "page-surface-template",
44068
+ context: { siteId, preview },
44069
+ client,
44070
+ deps,
44071
+ options: { customBlocks: support.customBlocks }
44072
+ });
44073
+ return {
44074
+ type: "pageSurface",
44075
+ pageSurface,
44076
+ templatePage,
44077
+ resolvedData: resolvedData2,
44078
+ bookingOfferingPresets: support.bookingOfferingPresets,
44079
+ dataContext: {
44080
+ pageSurface: {
44081
+ ...pageSurface.content ?? {},
44082
+ id: pageSurface.id,
44083
+ slug: pageSurface.slug,
44084
+ subject: pageSurface.subject,
44085
+ _pageSurfaceId: pageSurface.id,
44086
+ _pageSurfaceSlug: pageSurface.slug
44087
+ },
44088
+ subject: pageSurface.subject
44089
+ },
44090
+ theme: support.theme,
44091
+ siteId,
44092
+ ...support.customBlocks ? { customBlocks: support.customBlocks } : {},
44093
+ site: support.site,
44094
+ sdkConfig: support.sdkConfig,
44095
+ supabaseUrl: support.supabaseUrl,
44096
+ routeMap: support.routeMap,
44097
+ pagesByIdentifier: support.pagesByIdentifier,
44098
+ entriesByIdentifier: support.entriesByIdentifier,
44099
+ ...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {}
44100
+ };
44101
+ }
43469
44102
  const { page: pageData } = contentResponse;
43470
44103
  const pageRecord = pageData;
43471
44104
  const canonicalPagePath = pageData.path ?? pageRecord.path ?? "/";
@@ -43477,7 +44110,7 @@ async function loadContentFromContentResponse(params) {
43477
44110
  purpose: pageData.purpose,
43478
44111
  blocks: pageData.blocks
43479
44112
  });
43480
- const resolvedData = await prefetchBlockData2(
44113
+ const resolvedData = await deps.prefetchBlockData(
43481
44114
  pageOutline,
43482
44115
  {
43483
44116
  siteId,
@@ -43523,45 +44156,61 @@ async function loadContentFromContentResponse(params) {
43523
44156
  function isEntryResponse(response) {
43524
44157
  return "entry" in response;
43525
44158
  }
43526
- async function processEntryTemplate(templates, entrySlots, entry, context, client, options) {
43527
- const template = templates?.[0];
44159
+ function isPageSurfaceResponse(response) {
44160
+ return response.type === "pageSurface";
44161
+ }
44162
+ async function processEntryTemplate(templates, entrySlots, entry, context, client, deps, options) {
44163
+ return processTemplatePage({
44164
+ templates,
44165
+ slotContent: entrySlots,
44166
+ bindingContext: {
44167
+ fields: entry.content && typeof entry.content === "object" ? entry.content : {},
44168
+ meta: {
44169
+ id: entry.id,
44170
+ title: entry.title,
44171
+ slug: entry.slug,
44172
+ path: entry.path,
44173
+ publishAt: entry.publishAt,
44174
+ status: entry.status,
44175
+ createdAt: entry.createdAt,
44176
+ updatedAt: entry.updatedAt
44177
+ }
44178
+ },
44179
+ pageName: "Entry Template",
44180
+ pagePath: entry.path || "/",
44181
+ pagePurpose: "entry-template",
44182
+ context,
44183
+ client,
44184
+ deps,
44185
+ options
44186
+ });
44187
+ }
44188
+ async function processTemplatePage(input) {
44189
+ const template = input.templates?.[0];
43528
44190
  if (!template || !template.blocks?.length) {
43529
44191
  return { templatePage: null, resolvedData: {} };
43530
44192
  }
43531
- const bindingContext = {
43532
- fields: entry.content && typeof entry.content === "object" ? entry.content : {},
43533
- meta: {
43534
- id: entry.id,
43535
- title: entry.title,
43536
- slug: entry.slug,
43537
- path: entry.path,
43538
- publishAt: entry.publishAt,
43539
- status: entry.status,
43540
- createdAt: entry.createdAt,
43541
- updatedAt: entry.updatedAt
43542
- }
43543
- };
43544
44193
  const blocks = template.blocks.flatMap(
43545
- (block) => resolveTemplateBlockSequence(block, bindingContext, entrySlots)
44194
+ (block) => resolveTemplateBlockSequence(block, input.bindingContext, input.slotContent)
43546
44195
  );
43547
44196
  if (blocks.length === 0) {
43548
44197
  return { templatePage: null, resolvedData: {} };
43549
44198
  }
43550
44199
  const templatePage = {
43551
- name: template.name || "Entry Template",
43552
- path: entry.path || "/",
43553
- purpose: "entry-template",
44200
+ name: template.name || input.pageName,
44201
+ path: input.pagePath,
44202
+ purpose: input.pagePurpose,
43554
44203
  blocks
43555
44204
  };
43556
- const resolvedData = await prefetchBlockData2(
44205
+ const resolvedData = await input.deps.prefetchBlockData(
43557
44206
  templatePage,
43558
44207
  {
43559
- siteId: context.siteId,
44208
+ siteId: input.context.siteId,
43560
44209
  pageId: template.id,
43561
- previewStage: context.preview ? "preview" : "published"
44210
+ previewStage: input.context.preview ? "preview" : "published"
43562
44211
  },
43563
- client,
43564
- { customBlocks: options?.customBlocks }
44212
+ input.client,
44213
+ { customBlocks: input.options?.customBlocks }
43565
44214
  );
43566
44215
  return { templatePage, resolvedData };
43567
44216
  }
@@ -43581,7 +44230,9 @@ function resolveTemplateBlock(block, bindingContext) {
43581
44230
  }
43582
44231
  const bindings = block.bindings ?? {};
43583
44232
  const hasBindings = typeof bindings === "object" && Object.keys(bindings).length > 0;
43584
- const resolvedContent = hasBindings ? normalizeBindingOutput2(applyBindingsToContent2(baseContent, bindings, bindingContext)) : baseContent;
44233
+ const resolvedContent = hasBindings ? normalizeBindingOutput2(
44234
+ applyBindingsToContent2(baseContent, bindings, bindingContext)
44235
+ ) : baseContent;
43585
44236
  return {
43586
44237
  id: block.id,
43587
44238
  kind: block.blockKind,
@@ -43589,12 +44240,12 @@ function resolveTemplateBlock(block, bindingContext) {
43589
44240
  content: resolvedContent
43590
44241
  };
43591
44242
  }
43592
- function resolveTemplateBlockSequence(block, bindingContext, entrySlots) {
44243
+ function resolveTemplateBlockSequence(block, bindingContext, slotContent) {
43593
44244
  const slotKey = readEntrySlotKey(block);
43594
44245
  if (slotKey) {
43595
44246
  return selectBlocksForDeclaredEntrySlot({
43596
44247
  declaredSlotKey: slotKey,
43597
- entrySlots: entrySlots ?? []
44248
+ entrySlots: slotContent ?? []
43598
44249
  }).map(mapEntrySlotBlock);
43599
44250
  }
43600
44251
  if (block.blockKind === SYSTEM_ENTRY_SLOT_BLOCK_KIND) {
@@ -43616,7 +44267,7 @@ function mapEntrySlotBlock(block) {
43616
44267
  kind: block.kind,
43617
44268
  purpose: block.purpose,
43618
44269
  orderIndex: block.orderIndex ?? null,
43619
- content: normalizeBindingOutput2(block.content ?? {}),
44270
+ content: normalizeEntrySlotBlockContent(block.content),
43620
44271
  draftContent: normalizeNullableEntrySlotContent(block.draftContent),
43621
44272
  publishedContent: normalizeNullableEntrySlotContent(block.publishedContent)
43622
44273
  };
@@ -43629,7 +44280,11 @@ function mapEntrySlotBlock(block) {
43629
44280
  };
43630
44281
  }
43631
44282
  function normalizeNullableEntrySlotContent(content) {
43632
- return content == null ? null : normalizeBindingOutput2(content);
44283
+ return content == null ? null : normalizeEntrySlotBlockContent(content);
44284
+ }
44285
+ function normalizeEntrySlotBlockContent(content) {
44286
+ const normalized = normalizeBindingOutput2(content ?? {});
44287
+ return isRecord14(normalized) ? normalized : {};
43633
44288
  }
43634
44289
  export {
43635
44290
  createRiverbankClient,