@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
@@ -1064,6 +1064,94 @@ var init_endpoints = __esm({
1064
1064
  responseKind: "json",
1065
1065
  errors: ["resource:not_found", "server:internal_error"]
1066
1066
  },
1067
+ listAppointmentReservations: {
1068
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1069
+ method: "GET",
1070
+ auth: "user",
1071
+ responseKind: "json",
1072
+ errors: []
1073
+ },
1074
+ createAppointmentReservation: {
1075
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1076
+ method: "POST",
1077
+ auth: "user",
1078
+ responseKind: "json",
1079
+ errors: [
1080
+ "validation:invalid_input",
1081
+ "resource:not_found",
1082
+ "resource:conflict",
1083
+ "server:internal_error"
1084
+ ]
1085
+ },
1086
+ getAppointmentReservation: {
1087
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1088
+ method: "GET",
1089
+ auth: "user",
1090
+ responseKind: "json",
1091
+ errors: ["resource:not_found", "server:internal_error"]
1092
+ },
1093
+ updateAppointmentReservation: {
1094
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1095
+ method: "PUT",
1096
+ auth: "user",
1097
+ responseKind: "json",
1098
+ errors: [
1099
+ "validation:invalid_input",
1100
+ "resource:not_found",
1101
+ "resource:conflict",
1102
+ "server:internal_error"
1103
+ ]
1104
+ },
1105
+ pauseAppointmentReservation: {
1106
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1107
+ method: "POST",
1108
+ auth: "user",
1109
+ responseKind: "json",
1110
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1111
+ },
1112
+ resumeAppointmentReservation: {
1113
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1114
+ method: "POST",
1115
+ auth: "user",
1116
+ responseKind: "json",
1117
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1118
+ },
1119
+ endAppointmentReservation: {
1120
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1121
+ method: "POST",
1122
+ auth: "user",
1123
+ responseKind: "json",
1124
+ errors: [
1125
+ "validation:invalid_input",
1126
+ "resource:not_found",
1127
+ "resource:conflict",
1128
+ "server:internal_error"
1129
+ ]
1130
+ },
1131
+ previewAppointmentReservationRun: {
1132
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1133
+ method: "POST",
1134
+ auth: "user",
1135
+ responseKind: "json",
1136
+ errors: [
1137
+ "validation:invalid_input",
1138
+ "resource:not_found",
1139
+ "resource:conflict",
1140
+ "server:internal_error"
1141
+ ]
1142
+ },
1143
+ createAppointmentReservationRun: {
1144
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1145
+ method: "POST",
1146
+ auth: "user",
1147
+ responseKind: "json",
1148
+ errors: [
1149
+ "validation:invalid_input",
1150
+ "resource:not_found",
1151
+ "resource:conflict",
1152
+ "server:internal_error"
1153
+ ]
1154
+ },
1067
1155
  createTeamMemberProfile: {
1068
1156
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1069
1157
  method: "POST",
@@ -3520,6 +3608,18 @@ var init_endpoints = __esm({
3520
3608
  responseKind: "json",
3521
3609
  errors: ["validation:invalid_input", "server:internal_error"]
3522
3610
  },
3611
+ resolveRouteDecision: {
3612
+ path: "/sites/{siteId}/route-decision",
3613
+ method: "GET",
3614
+ tags: [
3615
+ TAG_TEMPLATES.siteRoutableContent,
3616
+ TAG_TEMPLATES.siteRedirects,
3617
+ TAG_TEMPLATES.siteRouteOutcomes
3618
+ ],
3619
+ auth: "public",
3620
+ responseKind: "json",
3621
+ errors: ["validation:invalid_input", "server:internal_error"]
3622
+ },
3523
3623
  getPageByPath: {
3524
3624
  path: "/sites/{siteId}/pages",
3525
3625
  method: "GET",
@@ -3658,6 +3758,15 @@ var init_endpoints = __esm({
3658
3758
  auth: "public",
3659
3759
  responseKind: "json"
3660
3760
  },
3761
+ getPublicWeeklySlotAvailability: {
3762
+ path: "/public/bookings/weekly-slot-availability",
3763
+ method: "GET",
3764
+ revalidate: 60,
3765
+ tags: ["site-{siteId}"],
3766
+ auth: "public",
3767
+ responseKind: "json",
3768
+ errors: []
3769
+ },
3661
3770
  createPublicBookingAppointment: {
3662
3771
  path: "/public/bookings/appointments",
3663
3772
  method: "POST",
@@ -5568,6 +5677,14 @@ var init_endpoints = __esm({
5568
5677
  responseKind: "json",
5569
5678
  errors: []
5570
5679
  },
5680
+ adminResolveSiteBillingManualReview: {
5681
+ path: "/admin/sites/{siteId}/billing/manual-reviews/{reviewId}/resolve",
5682
+ method: "POST",
5683
+ tags: ["admin", "site-{siteId}", "billing"],
5684
+ auth: "admin",
5685
+ responseKind: "json",
5686
+ errors: []
5687
+ },
5571
5688
  // Admin GSC/SEO endpoints
5572
5689
  adminGscVerifyStart: {
5573
5690
  path: "/admin/seo/gsc/properties/verify/start",
@@ -7835,7 +7952,7 @@ var init_link = __esm({
7835
7952
 
7836
7953
  // ../blocks/src/system/node/schema.ts
7837
7954
  import { z as z4 } from "zod";
7838
- var transformStepSchema, bindingPathSchema, bindingSchema, repeatSchema, conditionSchema, dataScopeSchema, nodePropsSchema, nodeSchema, nodeTreeSchema, NodeSchema, NodeTreeSchema;
7955
+ var transformStepSchema, bindingPathSchema, bindingSchema, repeatSchema, conditionalAuthoringPresenceSchema, conditionSchema, dataScopeSchema, nodePropsSchema, nodeSchema, nodeTreeSchema, NodeSchema, NodeTreeSchema;
7839
7956
  var init_schema = __esm({
7840
7957
  "../blocks/src/system/node/schema.ts"() {
7841
7958
  "use strict";
@@ -7861,10 +7978,20 @@ var init_schema = __esm({
7861
7978
  direction: z4.enum(["asc", "desc"]).default("asc")
7862
7979
  }).optional()
7863
7980
  });
7981
+ conditionalAuthoringPresenceSchema = z4.discriminatedUnion("kind", [
7982
+ z4.object({ kind: z4.literal("visitor-only") }),
7983
+ z4.object({
7984
+ kind: z4.literal("recover-empty-when-active"),
7985
+ placeholder: z4.string().min(1).optional()
7986
+ })
7987
+ ]);
7864
7988
  conditionSchema = z4.object({
7865
7989
  when: bindingSchema,
7866
7990
  equals: z4.unknown().optional(),
7867
- not: z4.boolean().default(false)
7991
+ not: z4.boolean().default(false),
7992
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
7993
+ kind: "visitor-only"
7994
+ })
7868
7995
  });
7869
7996
  dataScopeSchema = z4.object({
7870
7997
  name: z4.string().min(1),
@@ -7936,6 +8063,7 @@ var init_validation_constants = __esm({
7936
8063
  // Forms
7937
8064
  "form",
7938
8065
  "booking-form",
8066
+ "weekly-slot-availability",
7939
8067
  // Events
7940
8068
  "event-registration",
7941
8069
  "event-spotlight",
@@ -12701,6 +12829,13 @@ var init_resolver = __esm({
12701
12829
  }
12702
12830
  });
12703
12831
 
12832
+ // ../theme-core/src/interactive/generateBaseCSS.ts
12833
+ var init_generateBaseCSS = __esm({
12834
+ "../theme-core/src/interactive/generateBaseCSS.ts"() {
12835
+ "use strict";
12836
+ }
12837
+ });
12838
+
12704
12839
  // ../theme-core/src/buttons/effects/presets/background.ts
12705
12840
  var init_background = __esm({
12706
12841
  "../theme-core/src/buttons/effects/presets/background.ts"() {
@@ -12836,6 +12971,7 @@ var init_generateButtonCss = __esm({
12836
12971
  init_types4();
12837
12972
  init_classNames();
12838
12973
  init_resolver();
12974
+ init_generateBaseCSS();
12839
12975
  init_generateEffectsCSS();
12840
12976
  init_constants();
12841
12977
  init_generateDefaultButtonSystem();
@@ -13382,15 +13518,16 @@ var init_joy_stamp = __esm({
13382
13518
  // 700, matching the mockup's chunky button labels.
13383
13519
  typography: "heading",
13384
13520
  fontWeight: 700,
13521
+ fontSize: "text-lg",
13385
13522
  borderWidth: 2,
13386
13523
  hoverTransform: "none",
13387
13524
  hoverColor: "none"
13388
13525
  },
13389
13526
  sizes: {
13390
- sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
13391
- md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
13392
- lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
13393
- xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
13527
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
13528
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
13529
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
13530
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
13394
13531
  },
13395
13532
  variants: [
13396
13533
  {
@@ -13982,6 +14119,13 @@ var init_generateDefaultCardSystem = __esm({
13982
14119
  }
13983
14120
  });
13984
14121
 
14122
+ // ../theme-core/src/status/contextualColors.ts
14123
+ var init_contextualColors = __esm({
14124
+ "../theme-core/src/status/contextualColors.ts"() {
14125
+ "use strict";
14126
+ }
14127
+ });
14128
+
13985
14129
  // ../theme-core/src/cards/generateCardCss.ts
13986
14130
  var init_generateCardCss = __esm({
13987
14131
  "../theme-core/src/cards/generateCardCss.ts"() {
@@ -13989,6 +14133,7 @@ var init_generateCardCss = __esm({
13989
14133
  init_resolver();
13990
14134
  init_constants2();
13991
14135
  init_generateDefaultCardSystem();
14136
+ init_contextualColors();
13992
14137
  }
13993
14138
  });
13994
14139
 
@@ -21238,7 +21383,8 @@ function when(path, options) {
21238
21383
  $when: {
21239
21384
  when: { from: path },
21240
21385
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
21241
- ...options?.not ? { not: true } : {}
21386
+ ...options?.not ? { not: true } : {},
21387
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
21242
21388
  }
21243
21389
  });
21244
21390
  }
@@ -32276,6 +32422,189 @@ var init_appointment_booking = __esm({
32276
32422
  }
32277
32423
  });
32278
32424
 
32425
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
32426
+ import { z as z42 } from "zod";
32427
+ var weeklySlotAvailabilityManifest, weeklySlotAvailabilityOptionSchema, weeklySlotAvailabilityDataSchema, weeklySlotAvailabilityBlockDefinition;
32428
+ var init_weekly_slot_availability = __esm({
32429
+ "../blocks/src/system/blocks/weekly-slot-availability.ts"() {
32430
+ "use strict";
32431
+ init_builder2();
32432
+ init_builder2();
32433
+ init_styledSection();
32434
+ init_fragments();
32435
+ init_boxStyles();
32436
+ init_defineBlock();
32437
+ init_api_bindings();
32438
+ weeklySlotAvailabilityManifest = createBlockManifest({
32439
+ id: "block.weekly-slot-availability",
32440
+ version: "1.0.0",
32441
+ title: "Weekly Slot Availability",
32442
+ titleSource: "heading",
32443
+ description: "Shows available recurring appointment slot patterns",
32444
+ skipSectionStyles: true,
32445
+ additionalFields: [
32446
+ {
32447
+ id: "serviceId",
32448
+ type: "reference",
32449
+ label: "Appointment service",
32450
+ description: "Choose which appointment service to show availability for",
32451
+ required: true,
32452
+ referenceKind: "appointmentService",
32453
+ allowManualEntry: false,
32454
+ ui: { intent: "behavior" }
32455
+ },
32456
+ {
32457
+ id: "resourceId",
32458
+ type: "reference",
32459
+ label: "Appointment resource",
32460
+ description: "Optionally narrow the availability to one practitioner or room",
32461
+ required: false,
32462
+ referenceKind: "appointmentResource",
32463
+ allowManualEntry: false,
32464
+ ui: { intent: "behavior" }
32465
+ },
32466
+ {
32467
+ id: "horizonWeeks",
32468
+ type: "select",
32469
+ label: "Look ahead",
32470
+ required: false,
32471
+ multiple: false,
32472
+ defaultValue: "4",
32473
+ options: [
32474
+ { value: "1", label: "1 week" },
32475
+ { value: "2", label: "2 weeks" },
32476
+ { value: "4", label: "4 weeks" }
32477
+ ],
32478
+ ui: { intent: "behavior" }
32479
+ },
32480
+ {
32481
+ id: "timezone",
32482
+ type: "text",
32483
+ label: "Timezone",
32484
+ description: "Leave blank to use the visitor timezone when the block loads",
32485
+ required: false,
32486
+ multiline: false,
32487
+ defaultValue: "",
32488
+ maxLength: 64,
32489
+ ui: { intent: "behavior" }
32490
+ },
32491
+ {
32492
+ id: "heading",
32493
+ type: "text",
32494
+ label: "Heading",
32495
+ required: false,
32496
+ multiline: false,
32497
+ defaultValue: "Weekly availability"
32498
+ },
32499
+ {
32500
+ id: "description",
32501
+ type: "richText",
32502
+ label: "Description",
32503
+ required: false
32504
+ },
32505
+ {
32506
+ id: "emptyMessage",
32507
+ type: "text",
32508
+ label: "Empty message",
32509
+ required: false,
32510
+ multiline: true,
32511
+ defaultValue: "No regular weekly openings are currently available.",
32512
+ maxLength: 180
32513
+ },
32514
+ {
32515
+ id: "ctaText",
32516
+ type: "text",
32517
+ label: "Enquiry button text",
32518
+ required: false,
32519
+ multiline: false,
32520
+ defaultValue: "Enquire about this slot",
32521
+ maxLength: 60
32522
+ },
32523
+ {
32524
+ id: "ctaUrl",
32525
+ type: "url",
32526
+ label: "Enquiry URL",
32527
+ required: false,
32528
+ ui: { intent: "behavior" }
32529
+ },
32530
+ sectionStylesField({
32531
+ id: "_sectionStyles",
32532
+ label: "Section styles"
32533
+ })
32534
+ ],
32535
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
32536
+ behaviours: {
32537
+ supportsThemeSwitching: true,
32538
+ inlineEditing: false,
32539
+ animation: false,
32540
+ paletteHidden: false
32541
+ },
32542
+ category: "interactive",
32543
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
32544
+ icon: "CalendarDays",
32545
+ layout: [
32546
+ styledSection({
32547
+ children: sectionContainer([
32548
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
32549
+ richText({}, bind("content.description"), when("content.description")),
32550
+ el(
32551
+ "weekly-slot-availability",
32552
+ withApiBindings({
32553
+ serviceId: { $bind: { from: "content.serviceId" } },
32554
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
32555
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
32556
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
32557
+ availability: { $bind: { from: "data.availability", fallback: null } },
32558
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
32559
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
32560
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
32561
+ })
32562
+ )
32563
+ ], {
32564
+ gap: "lg"
32565
+ }),
32566
+ baseClass: "",
32567
+ spacing: "spacious"
32568
+ })
32569
+ ]
32570
+ });
32571
+ weeklySlotAvailabilityOptionSchema = z42.object({
32572
+ id: z42.string(),
32573
+ resourceId: z42.string(),
32574
+ weekday: z42.number(),
32575
+ weekdayLabel: z42.string(),
32576
+ startTime: z42.string(),
32577
+ endTime: z42.string(),
32578
+ nextDate: z42.string(),
32579
+ availableWeeks: z42.number()
32580
+ });
32581
+ weeklySlotAvailabilityDataSchema = z42.object({
32582
+ slots: z42.array(weeklySlotAvailabilityOptionSchema),
32583
+ horizonWeeks: z42.number(),
32584
+ timezone: z42.string(),
32585
+ startDate: z42.string(),
32586
+ endDate: z42.string()
32587
+ });
32588
+ weeklySlotAvailabilityBlockDefinition = {
32589
+ manifest: weeklySlotAvailabilityManifest,
32590
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
32591
+ dataLoaders: {
32592
+ availability: {
32593
+ endpoint: "getPublicWeeklySlotAvailability",
32594
+ params: {
32595
+ siteId: { $bind: { from: "$root.siteId" } },
32596
+ serviceId: { $bind: { from: "content.serviceId" } },
32597
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
32598
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
32599
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
32600
+ },
32601
+ mode: "server"
32602
+ }
32603
+ }
32604
+ };
32605
+ }
32606
+ });
32607
+
32279
32608
  // ../blocks/src/system/blocks/events/shared/types.ts
32280
32609
  var init_types15 = __esm({
32281
32610
  "../blocks/src/system/blocks/events/shared/types.ts"() {
@@ -32284,7 +32613,7 @@ var init_types15 = __esm({
32284
32613
  });
32285
32614
 
32286
32615
  // ../blocks/src/lib/media.ts
32287
- import z42 from "zod";
32616
+ import z43 from "zod";
32288
32617
  var PUBLIC_DOWNLOAD_MEDIA_TYPES, hotspotSchema2, rotationSchema2, rectSchema2, aspectCropSchema2, transformSchema2, mediaPosterSchema, mediaBaseSchema, imageMediaSchema, videoMediaSchema, audioMediaSchema, documentMediaSchema, spreadsheetMediaSchema, archiveMediaSchema, mediaSchema2;
32289
32618
  var init_media4 = __esm({
32290
32619
  "../blocks/src/lib/media.ts"() {
@@ -32295,66 +32624,66 @@ var init_media4 = __esm({
32295
32624
  "archive",
32296
32625
  "audio"
32297
32626
  ];
32298
- hotspotSchema2 = z42.object({
32299
- x: z42.number().min(0).max(1),
32300
- y: z42.number().min(0).max(1),
32301
- radius: z42.number().optional()
32302
- });
32303
- rotationSchema2 = z42.union([z42.literal(0), z42.literal(90), z42.literal(180), z42.literal(270)]);
32304
- rectSchema2 = z42.tuple([z42.number(), z42.number(), z42.number(), z42.number()]);
32305
- aspectCropSchema2 = z42.object({
32306
- aspect: z42.preprocess((value) => value == null ? void 0 : value, z42.string().optional()),
32307
- rect: z42.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
32308
- hotspot: z42.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
32309
- rotation: z42.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
32310
- });
32311
- transformSchema2 = z42.object({
32312
- aspectCrops: z42.preprocess((value) => {
32627
+ hotspotSchema2 = z43.object({
32628
+ x: z43.number().min(0).max(1),
32629
+ y: z43.number().min(0).max(1),
32630
+ radius: z43.number().optional()
32631
+ });
32632
+ rotationSchema2 = z43.union([z43.literal(0), z43.literal(90), z43.literal(180), z43.literal(270)]);
32633
+ rectSchema2 = z43.tuple([z43.number(), z43.number(), z43.number(), z43.number()]);
32634
+ aspectCropSchema2 = z43.object({
32635
+ aspect: z43.preprocess((value) => value == null ? void 0 : value, z43.string().optional()),
32636
+ rect: z43.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
32637
+ hotspot: z43.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
32638
+ rotation: z43.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
32639
+ });
32640
+ transformSchema2 = z43.object({
32641
+ aspectCrops: z43.preprocess((value) => {
32313
32642
  if (!value || typeof value !== "object" || Array.isArray(value)) {
32314
32643
  return void 0;
32315
32644
  }
32316
32645
  return value;
32317
- }, z42.record(z42.string(), aspectCropSchema2.catch({}))).optional(),
32646
+ }, z43.record(z43.string(), aspectCropSchema2.catch({}))).optional(),
32318
32647
  rect: rectSchema2.optional(),
32319
32648
  hotspot: hotspotSchema2.optional(),
32320
32649
  rotation: rotationSchema2.optional()
32321
32650
  });
32322
- mediaPosterSchema = z42.discriminatedUnion("tag", [
32323
- z42.object({
32324
- tag: z42.literal("storage"),
32325
- assetId: z42.string().optional(),
32326
- storageBucket: z42.string().min(1),
32327
- storagePath: z42.string().min(1)
32651
+ mediaPosterSchema = z43.discriminatedUnion("tag", [
32652
+ z43.object({
32653
+ tag: z43.literal("storage"),
32654
+ assetId: z43.string().optional(),
32655
+ storageBucket: z43.string().min(1),
32656
+ storagePath: z43.string().min(1)
32328
32657
  }),
32329
- z42.object({
32330
- tag: z42.literal("external-src"),
32331
- assetId: z42.string().optional(),
32332
- src: z42.string().url()
32658
+ z43.object({
32659
+ tag: z43.literal("external-src"),
32660
+ assetId: z43.string().optional(),
32661
+ src: z43.string().url()
32333
32662
  })
32334
32663
  ]);
32335
- mediaBaseSchema = z42.object({
32336
- purpose: z42.string().optional(),
32337
- placeholder: z42.boolean().default(true).optional(),
32338
- assetId: z42.string().optional(),
32339
- identifier: z42.string().optional(),
32340
- src: z42.string().optional(),
32341
- alt: z42.string().optional(),
32342
- filename: z42.string().optional(),
32343
- mimeType: z42.string().optional(),
32344
- width: z42.number().optional(),
32345
- height: z42.number().optional(),
32346
- storageBucket: z42.string().optional(),
32347
- storagePath: z42.string().optional(),
32664
+ mediaBaseSchema = z43.object({
32665
+ purpose: z43.string().optional(),
32666
+ placeholder: z43.boolean().default(true).optional(),
32667
+ assetId: z43.string().optional(),
32668
+ identifier: z43.string().optional(),
32669
+ src: z43.string().optional(),
32670
+ alt: z43.string().optional(),
32671
+ filename: z43.string().optional(),
32672
+ mimeType: z43.string().optional(),
32673
+ width: z43.number().optional(),
32674
+ height: z43.number().optional(),
32675
+ storageBucket: z43.string().optional(),
32676
+ storagePath: z43.string().optional(),
32348
32677
  poster: mediaPosterSchema.optional(),
32349
32678
  transform: transformSchema2.optional()
32350
32679
  });
32351
- imageMediaSchema = mediaBaseSchema.extend({ type: z42.literal("image") });
32352
- videoMediaSchema = mediaBaseSchema.extend({ type: z42.literal("video") });
32353
- audioMediaSchema = mediaBaseSchema.extend({ type: z42.literal("audio") });
32354
- documentMediaSchema = mediaBaseSchema.extend({ type: z42.literal("document") });
32355
- spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z42.literal("spreadsheet") });
32356
- archiveMediaSchema = mediaBaseSchema.extend({ type: z42.literal("archive") });
32357
- mediaSchema2 = z42.discriminatedUnion("type", [
32680
+ imageMediaSchema = mediaBaseSchema.extend({ type: z43.literal("image") });
32681
+ videoMediaSchema = mediaBaseSchema.extend({ type: z43.literal("video") });
32682
+ audioMediaSchema = mediaBaseSchema.extend({ type: z43.literal("audio") });
32683
+ documentMediaSchema = mediaBaseSchema.extend({ type: z43.literal("document") });
32684
+ spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z43.literal("spreadsheet") });
32685
+ archiveMediaSchema = mediaBaseSchema.extend({ type: z43.literal("archive") });
32686
+ mediaSchema2 = z43.discriminatedUnion("type", [
32358
32687
  imageMediaSchema,
32359
32688
  videoMediaSchema,
32360
32689
  audioMediaSchema,
@@ -32366,186 +32695,186 @@ var init_media4 = __esm({
32366
32695
  });
32367
32696
 
32368
32697
  // ../blocks/src/system/manifest/richTextSchema.ts
32369
- import { z as z43 } from "zod";
32698
+ import { z as z44 } from "zod";
32370
32699
  var TipTapMarkSchema, TipTapNodeSchema, RichTextValueSchema, RichTextDocSchema;
32371
32700
  var init_richTextSchema = __esm({
32372
32701
  "../blocks/src/system/manifest/richTextSchema.ts"() {
32373
32702
  "use strict";
32374
- TipTapMarkSchema = z43.object({
32375
- type: z43.string(),
32376
- attrs: z43.record(z43.string(), z43.unknown()).optional()
32377
- });
32378
- TipTapNodeSchema = z43.lazy(
32379
- () => z43.object({
32380
- type: z43.string(),
32381
- content: z43.array(TipTapNodeSchema).optional(),
32382
- text: z43.string().optional(),
32383
- attrs: z43.record(z43.string(), z43.unknown()).optional(),
32384
- marks: z43.array(TipTapMarkSchema).optional()
32703
+ TipTapMarkSchema = z44.object({
32704
+ type: z44.string(),
32705
+ attrs: z44.record(z44.string(), z44.unknown()).optional()
32706
+ });
32707
+ TipTapNodeSchema = z44.lazy(
32708
+ () => z44.object({
32709
+ type: z44.string(),
32710
+ content: z44.array(TipTapNodeSchema).optional(),
32711
+ text: z44.string().optional(),
32712
+ attrs: z44.record(z44.string(), z44.unknown()).optional(),
32713
+ marks: z44.array(TipTapMarkSchema).optional()
32385
32714
  })
32386
32715
  );
32387
- RichTextValueSchema = z43.union([
32716
+ RichTextValueSchema = z44.union([
32388
32717
  // Canonical: TipTap document directly
32389
32718
  TipTapNodeSchema,
32390
32719
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
32391
- z43.object({
32720
+ z44.object({
32392
32721
  doc: TipTapNodeSchema
32393
32722
  })
32394
32723
  ]);
32395
- RichTextDocSchema = z43.object({
32396
- type: z43.literal("doc"),
32397
- content: z43.array(TipTapNodeSchema)
32724
+ RichTextDocSchema = z44.object({
32725
+ type: z44.literal("doc"),
32726
+ content: z44.array(TipTapNodeSchema)
32398
32727
  });
32399
32728
  }
32400
32729
  });
32401
32730
 
32402
32731
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
32403
- import { z as z44 } from "zod";
32732
+ import { z as z45 } from "zod";
32404
32733
  var bookingDepositRefundPolicySchema, bookingInstalmentPlanSchema, bookingFlexibleBalanceDueDateRuleSchema, bookingFlexibleBalanceConfigSchema, blockBookingPaymentCollectionOptionSchema, blockBookingPaymentTermsSchema;
32405
32734
  var init_bookingPaymentTerms = __esm({
32406
32735
  "../blocks/src/system/blocks/shared/bookingPaymentTerms.ts"() {
32407
32736
  "use strict";
32408
- bookingDepositRefundPolicySchema = z44.enum([
32737
+ bookingDepositRefundPolicySchema = z45.enum([
32409
32738
  "refundable",
32410
32739
  "non_refundable"
32411
32740
  ]);
32412
- bookingInstalmentPlanSchema = z44.union([
32413
- z44.object({
32414
- kind: z44.literal("deposit_plus_one_remainder"),
32415
- depositAmountCents: z44.number().int().min(0),
32741
+ bookingInstalmentPlanSchema = z45.union([
32742
+ z45.object({
32743
+ kind: z45.literal("deposit_plus_one_remainder"),
32744
+ depositAmountCents: z45.number().int().min(0),
32416
32745
  depositRefundability: bookingDepositRefundPolicySchema,
32417
- remainderDueCount: z44.number().int().positive(),
32418
- intervalUnit: z44.enum(["day", "week", "month"])
32746
+ remainderDueCount: z45.number().int().positive(),
32747
+ intervalUnit: z45.enum(["day", "week", "month"])
32419
32748
  }),
32420
- z44.object({
32421
- kind: z44.literal("deposit_plus_scheduled_instalments"),
32422
- depositAmountCents: z44.number().int().min(0),
32749
+ z45.object({
32750
+ kind: z45.literal("deposit_plus_scheduled_instalments"),
32751
+ depositAmountCents: z45.number().int().min(0),
32423
32752
  depositRefundability: bookingDepositRefundPolicySchema,
32424
- instalmentCount: z44.number().int().positive(),
32425
- intervalCount: z44.number().int().positive(),
32426
- intervalUnit: z44.enum(["day", "week", "month"])
32753
+ instalmentCount: z45.number().int().positive(),
32754
+ intervalCount: z45.number().int().positive(),
32755
+ intervalUnit: z45.enum(["day", "week", "month"])
32427
32756
  }),
32428
- z44.object({
32429
- kind: z44.literal("equal_scheduled_instalments"),
32430
- instalmentCount: z44.number().int().positive(),
32431
- intervalCount: z44.number().int().positive(),
32432
- intervalUnit: z44.enum(["day", "week", "month"])
32757
+ z45.object({
32758
+ kind: z45.literal("equal_scheduled_instalments"),
32759
+ instalmentCount: z45.number().int().positive(),
32760
+ intervalCount: z45.number().int().positive(),
32761
+ intervalUnit: z45.enum(["day", "week", "month"])
32433
32762
  })
32434
32763
  ]);
32435
- bookingFlexibleBalanceDueDateRuleSchema = z44.union([
32436
- z44.object({
32437
- kind: z44.literal("relative_to_start_date"),
32438
- daysBeforeStart: z44.number().int().positive()
32764
+ bookingFlexibleBalanceDueDateRuleSchema = z45.union([
32765
+ z45.object({
32766
+ kind: z45.literal("relative_to_start_date"),
32767
+ daysBeforeStart: z45.number().int().positive()
32439
32768
  }),
32440
- z44.object({
32441
- kind: z44.literal("fixed_calendar_date"),
32442
- dueAt: z44.string().datetime()
32769
+ z45.object({
32770
+ kind: z45.literal("fixed_calendar_date"),
32771
+ dueAt: z45.string().datetime()
32443
32772
  })
32444
32773
  ]);
32445
- bookingFlexibleBalanceConfigSchema = z44.object({
32446
- upfrontAmountCents: z44.number().int().min(0),
32774
+ bookingFlexibleBalanceConfigSchema = z45.object({
32775
+ upfrontAmountCents: z45.number().int().min(0),
32447
32776
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
32448
32777
  depositRefundability: bookingDepositRefundPolicySchema
32449
32778
  });
32450
- blockBookingPaymentCollectionOptionSchema = z44.union([
32451
- z44.object({
32452
- kind: z44.literal("upfront")
32779
+ blockBookingPaymentCollectionOptionSchema = z45.union([
32780
+ z45.object({
32781
+ kind: z45.literal("upfront")
32453
32782
  }),
32454
- z44.object({
32455
- kind: z44.literal("deferred_manual")
32783
+ z45.object({
32784
+ kind: z45.literal("deferred_manual")
32456
32785
  }),
32457
- z44.object({
32458
- kind: z44.literal("instalment_plan"),
32786
+ z45.object({
32787
+ kind: z45.literal("instalment_plan"),
32459
32788
  plan: bookingInstalmentPlanSchema
32460
32789
  }),
32461
- z44.object({
32462
- kind: z44.literal("flexible_balance"),
32790
+ z45.object({
32791
+ kind: z45.literal("flexible_balance"),
32463
32792
  config: bookingFlexibleBalanceConfigSchema
32464
32793
  })
32465
32794
  ]);
32466
- blockBookingPaymentTermsSchema = z44.object({
32467
- allowedOptions: z44.array(blockBookingPaymentCollectionOptionSchema).min(1)
32795
+ blockBookingPaymentTermsSchema = z45.object({
32796
+ allowedOptions: z45.array(blockBookingPaymentCollectionOptionSchema).min(1)
32468
32797
  });
32469
32798
  }
32470
32799
  });
32471
32800
 
32472
32801
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
32473
- import { z as z45 } from "zod";
32802
+ import { z as z46 } from "zod";
32474
32803
  var courseVenueSchema, courseSessionSchema, courseTeamMemberSummarySchema, coursePricingOptionSchema, coursePricingSchema, publicCourseSchema, publicCoursesArraySchema;
32475
32804
  var init_schemas = __esm({
32476
32805
  "../blocks/src/system/blocks/courses/shared/schemas.ts"() {
32477
32806
  "use strict";
32478
32807
  init_bookingPaymentTerms();
32479
- courseVenueSchema = z45.object({
32480
- id: z45.string(),
32481
- name: z45.string(),
32482
- address: z45.string().nullable()
32483
- });
32484
- courseSessionSchema = z45.object({
32485
- id: z45.string(),
32486
- startsAt: z45.string(),
32487
- endsAt: z45.string(),
32488
- timeZone: z45.string(),
32489
- capacityOverride: z45.number().nullable().optional(),
32490
- overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
32491
- });
32492
- courseTeamMemberSummarySchema = z45.object({
32493
- id: z45.string(),
32494
- name: z45.string(),
32495
- roleLabel: z45.string().nullable(),
32496
- summary: z45.string().nullable(),
32497
- profilePath: z45.string().nullable()
32498
- });
32499
- coursePricingOptionSchema = z45.object({
32500
- id: z45.string(),
32501
- name: z45.string(),
32502
- description: z45.string().nullable(),
32503
- priceAmount: z45.number(),
32504
- isActive: z45.boolean(),
32505
- sortOrder: z45.number(),
32506
- capacityLimit: z45.number().nullable(),
32507
- saleStartsAt: z45.string().nullable(),
32508
- saleEndsAt: z45.string().nullable(),
32509
- attendanceScope: z45.enum(["in_person", "online", "both"]).nullable().optional()
32510
- });
32511
- coursePricingSchema = z45.object({
32512
- bookingRequirement: z45.enum(["none", "required"]),
32513
- pricingStrategy: z45.enum(["free", "single", "tiered", "sliding_scale"]),
32514
- currency: z45.string(),
32515
- singlePriceAmount: z45.number().nullable(),
32516
- slidingMinAmount: z45.number().nullable().optional(),
32517
- slidingMaxAmount: z45.number().nullable().optional(),
32518
- slidingSuggestedAmount: z45.number().nullable().optional(),
32808
+ courseVenueSchema = z46.object({
32809
+ id: z46.string(),
32810
+ name: z46.string(),
32811
+ address: z46.string().nullable()
32812
+ });
32813
+ courseSessionSchema = z46.object({
32814
+ id: z46.string(),
32815
+ startsAt: z46.string(),
32816
+ endsAt: z46.string(),
32817
+ timeZone: z46.string(),
32818
+ capacityOverride: z46.number().nullable().optional(),
32819
+ overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
32820
+ });
32821
+ courseTeamMemberSummarySchema = z46.object({
32822
+ id: z46.string(),
32823
+ name: z46.string(),
32824
+ roleLabel: z46.string().nullable(),
32825
+ summary: z46.string().nullable(),
32826
+ profilePath: z46.string().nullable()
32827
+ });
32828
+ coursePricingOptionSchema = z46.object({
32829
+ id: z46.string(),
32830
+ name: z46.string(),
32831
+ description: z46.string().nullable(),
32832
+ priceAmount: z46.number(),
32833
+ isActive: z46.boolean(),
32834
+ sortOrder: z46.number(),
32835
+ capacityLimit: z46.number().nullable(),
32836
+ saleStartsAt: z46.string().nullable(),
32837
+ saleEndsAt: z46.string().nullable(),
32838
+ attendanceScope: z46.enum(["in_person", "online", "both"]).nullable().optional()
32839
+ });
32840
+ coursePricingSchema = z46.object({
32841
+ bookingRequirement: z46.enum(["none", "required"]),
32842
+ pricingStrategy: z46.enum(["free", "single", "tiered", "sliding_scale"]),
32843
+ currency: z46.string(),
32844
+ singlePriceAmount: z46.number().nullable(),
32845
+ slidingMinAmount: z46.number().nullable().optional(),
32846
+ slidingMaxAmount: z46.number().nullable().optional(),
32847
+ slidingSuggestedAmount: z46.number().nullable().optional(),
32519
32848
  paymentTerms: blockBookingPaymentTermsSchema,
32520
- options: z45.array(coursePricingOptionSchema)
32521
- });
32522
- publicCourseSchema = z45.object({
32523
- id: z45.string(),
32524
- title: z45.string(),
32525
- slug: z45.string(),
32526
- description: z45.unknown().nullable(),
32527
- teamMembers: z45.array(courseTeamMemberSummarySchema).optional(),
32528
- enrollmentOpen: z45.boolean(),
32849
+ options: z46.array(coursePricingOptionSchema)
32850
+ });
32851
+ publicCourseSchema = z46.object({
32852
+ id: z46.string(),
32853
+ title: z46.string(),
32854
+ slug: z46.string(),
32855
+ description: z46.unknown().nullable(),
32856
+ teamMembers: z46.array(courseTeamMemberSummarySchema).optional(),
32857
+ enrollmentOpen: z46.boolean(),
32529
32858
  pricing: coursePricingSchema.optional(),
32530
- priceCents: z45.number().nullable(),
32531
- currency: z45.string(),
32859
+ priceCents: z46.number().nullable(),
32860
+ currency: z46.string(),
32532
32861
  paymentTerms: blockBookingPaymentTermsSchema,
32533
- enrollmentCapacity: z45.number().nullable(),
32534
- acceptsMemberships: z45.boolean(),
32535
- status: z45.enum(["active", "draft", "cancelled"]),
32536
- sessionsCount: z45.number(),
32537
- enrolledCount: z45.number(),
32538
- availableSpots: z45.number().nullable(),
32539
- sessions: z45.array(courseSessionSchema),
32862
+ enrollmentCapacity: z46.number().nullable(),
32863
+ acceptsMemberships: z46.boolean(),
32864
+ status: z46.enum(["active", "draft", "cancelled"]),
32865
+ sessionsCount: z46.number(),
32866
+ enrolledCount: z46.number(),
32867
+ availableSpots: z46.number().nullable(),
32868
+ sessions: z46.array(courseSessionSchema),
32540
32869
  venue: courseVenueSchema.nullable(),
32541
- contentEntryId: z45.string().nullable()
32870
+ contentEntryId: z46.string().nullable()
32542
32871
  });
32543
- publicCoursesArraySchema = z45.array(publicCourseSchema);
32872
+ publicCoursesArraySchema = z46.array(publicCourseSchema);
32544
32873
  }
32545
32874
  });
32546
32875
 
32547
32876
  // ../blocks/src/system/blocks/events/shared/schemas.ts
32548
- import { z as z46 } from "zod";
32877
+ import { z as z47 } from "zod";
32549
32878
  var eventPresetSchema, eventScheduleScopeSchema, eventDestinationModeSchema, publicEventDestinationSchema, eventVenueSchema, eventCategorySchema, pricingTypeSchema, accessRestrictionSchema, eventPricingModeSchema, publicCoursePriceDisplaySchema, publicEventPriceDisplaySchema, publicEventTicketTypePriceDisplaySchema, publicEventAttendanceModeSchema, publicEventAttendanceModeAvailabilitySchema, publicEventTicketTypeAvailabilitySchema, publicEventTicketTypeSchema, publicEventPricingSchema, publicTeamMemberSummarySchema, publicEventSchema, publicEventsArraySchema;
32550
32879
  var init_schemas2 = __esm({
32551
32880
  "../blocks/src/system/blocks/events/shared/schemas.ts"() {
@@ -32554,212 +32883,212 @@ var init_schemas2 = __esm({
32554
32883
  init_richTextSchema();
32555
32884
  init_bookingPaymentTerms();
32556
32885
  init_schemas();
32557
- eventPresetSchema = z46.enum(["event", "class", "workshop", "retreat", "performance"]);
32558
- eventScheduleScopeSchema = z46.enum(["recurring", "oneOff"]);
32559
- eventDestinationModeSchema = z46.enum(["cms-managed", "system-managed"]);
32560
- publicEventDestinationSchema = z46.discriminatedUnion("kind", [
32561
- z46.object({
32562
- kind: z46.literal("native"),
32886
+ eventPresetSchema = z47.enum(["event", "class", "workshop", "retreat", "performance"]);
32887
+ eventScheduleScopeSchema = z47.enum(["recurring", "oneOff"]);
32888
+ eventDestinationModeSchema = z47.enum(["cms-managed", "system-managed"]);
32889
+ publicEventDestinationSchema = z47.discriminatedUnion("kind", [
32890
+ z47.object({
32891
+ kind: z47.literal("native"),
32563
32892
  mode: eventDestinationModeSchema,
32564
- path: z46.string()
32893
+ path: z47.string()
32565
32894
  }),
32566
- z46.object({
32567
- kind: z46.literal("external"),
32568
- url: z46.string(),
32569
- label: z46.string()
32895
+ z47.object({
32896
+ kind: z47.literal("external"),
32897
+ url: z47.string(),
32898
+ label: z47.string()
32570
32899
  })
32571
32900
  ]);
32572
- eventVenueSchema = z46.object({
32573
- id: z46.string(),
32574
- name: z46.string(),
32575
- address: z46.string().nullable(),
32576
- location: z46.object({
32577
- lat: z46.number(),
32578
- lng: z46.number()
32901
+ eventVenueSchema = z47.object({
32902
+ id: z47.string(),
32903
+ name: z47.string(),
32904
+ address: z47.string().nullable(),
32905
+ location: z47.object({
32906
+ lat: z47.number(),
32907
+ lng: z47.number()
32579
32908
  }).nullable()
32580
32909
  });
32581
- eventCategorySchema = z46.object({
32582
- id: z46.string(),
32583
- name: z46.string(),
32584
- color: z46.string().nullable()
32585
- });
32586
- pricingTypeSchema = z46.enum(["free", "paid", "external"]);
32587
- accessRestrictionSchema = z46.enum(["none", "category"]);
32588
- eventPricingModeSchema = z46.enum(["single", "ticket_types"]);
32589
- publicCoursePriceDisplaySchema = z46.discriminatedUnion("kind", [
32590
- z46.object({ kind: z46.literal("free"), currency: z46.string() }),
32591
- z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() }),
32592
- z46.object({ kind: z46.literal("from"), amount: z46.number(), currency: z46.string() }),
32593
- z46.object({ kind: z46.literal("unavailable"), currency: z46.string() })
32910
+ eventCategorySchema = z47.object({
32911
+ id: z47.string(),
32912
+ name: z47.string(),
32913
+ color: z47.string().nullable()
32914
+ });
32915
+ pricingTypeSchema = z47.enum(["free", "paid", "external"]);
32916
+ accessRestrictionSchema = z47.enum(["none", "category"]);
32917
+ eventPricingModeSchema = z47.enum(["single", "ticket_types"]);
32918
+ publicCoursePriceDisplaySchema = z47.discriminatedUnion("kind", [
32919
+ z47.object({ kind: z47.literal("free"), currency: z47.string() }),
32920
+ z47.object({ kind: z47.literal("exact"), amount: z47.number(), currency: z47.string() }),
32921
+ z47.object({ kind: z47.literal("from"), amount: z47.number(), currency: z47.string() }),
32922
+ z47.object({ kind: z47.literal("unavailable"), currency: z47.string() })
32594
32923
  ]);
32595
- publicEventPriceDisplaySchema = z46.discriminatedUnion("kind", [
32596
- z46.object({ kind: z46.literal("free"), currency: z46.string() }),
32597
- z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() }),
32598
- z46.object({ kind: z46.literal("from"), amount: z46.number(), currency: z46.string() }),
32599
- z46.object({ kind: z46.literal("range"), minAmount: z46.number(), maxAmount: z46.number(), currency: z46.string() }),
32600
- z46.object({
32601
- kind: z46.literal("mixed"),
32602
- paidFromAmount: z46.number(),
32603
- paidToAmount: z46.number(),
32604
- currency: z46.string()
32924
+ publicEventPriceDisplaySchema = z47.discriminatedUnion("kind", [
32925
+ z47.object({ kind: z47.literal("free"), currency: z47.string() }),
32926
+ z47.object({ kind: z47.literal("exact"), amount: z47.number(), currency: z47.string() }),
32927
+ z47.object({ kind: z47.literal("from"), amount: z47.number(), currency: z47.string() }),
32928
+ z47.object({ kind: z47.literal("range"), minAmount: z47.number(), maxAmount: z47.number(), currency: z47.string() }),
32929
+ z47.object({
32930
+ kind: z47.literal("mixed"),
32931
+ paidFromAmount: z47.number(),
32932
+ paidToAmount: z47.number(),
32933
+ currency: z47.string()
32605
32934
  }),
32606
- z46.object({ kind: z46.literal("unavailable"), currency: z46.string() }),
32607
- z46.object({ kind: z46.literal("external"), label: z46.string() }),
32608
- z46.object({ kind: z46.literal("course"), display: publicCoursePriceDisplaySchema })
32935
+ z47.object({ kind: z47.literal("unavailable"), currency: z47.string() }),
32936
+ z47.object({ kind: z47.literal("external"), label: z47.string() }),
32937
+ z47.object({ kind: z47.literal("course"), display: publicCoursePriceDisplaySchema })
32609
32938
  ]);
32610
- publicEventTicketTypePriceDisplaySchema = z46.union([
32611
- z46.object({ kind: z46.literal("free"), currency: z46.string() }),
32612
- z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() }),
32613
- z46.object({ kind: z46.literal("from"), amount: z46.number(), currency: z46.string() }),
32614
- z46.object({ kind: z46.literal("range"), minAmount: z46.number(), maxAmount: z46.number(), currency: z46.string() }),
32615
- z46.object({
32616
- kind: z46.literal("mixed"),
32617
- paidFromAmount: z46.number(),
32618
- paidToAmount: z46.number(),
32619
- currency: z46.string()
32939
+ publicEventTicketTypePriceDisplaySchema = z47.union([
32940
+ z47.object({ kind: z47.literal("free"), currency: z47.string() }),
32941
+ z47.object({ kind: z47.literal("exact"), amount: z47.number(), currency: z47.string() }),
32942
+ z47.object({ kind: z47.literal("from"), amount: z47.number(), currency: z47.string() }),
32943
+ z47.object({ kind: z47.literal("range"), minAmount: z47.number(), maxAmount: z47.number(), currency: z47.string() }),
32944
+ z47.object({
32945
+ kind: z47.literal("mixed"),
32946
+ paidFromAmount: z47.number(),
32947
+ paidToAmount: z47.number(),
32948
+ currency: z47.string()
32620
32949
  }),
32621
- z46.object({ kind: z46.literal("unavailable"), currency: z46.string() })
32950
+ z47.object({ kind: z47.literal("unavailable"), currency: z47.string() })
32622
32951
  ]);
32623
- publicEventAttendanceModeSchema = z46.enum(["in_person", "online"]);
32624
- publicEventAttendanceModeAvailabilitySchema = z46.object({
32952
+ publicEventAttendanceModeSchema = z47.enum(["in_person", "online"]);
32953
+ publicEventAttendanceModeAvailabilitySchema = z47.object({
32625
32954
  mode: publicEventAttendanceModeSchema,
32626
- capacity: z46.number().nullable(),
32627
- registeredCount: z46.number(),
32628
- availableSpots: z46.number().nullable(),
32629
- waitlistEnabled: z46.boolean()
32630
- });
32631
- publicEventTicketTypeAvailabilitySchema = z46.union([
32632
- z46.object({
32633
- kind: z46.literal("available"),
32634
- remainingCapacity: z46.number().nullable()
32955
+ capacity: z47.number().nullable(),
32956
+ registeredCount: z47.number(),
32957
+ availableSpots: z47.number().nullable(),
32958
+ waitlistEnabled: z47.boolean()
32959
+ });
32960
+ publicEventTicketTypeAvailabilitySchema = z47.union([
32961
+ z47.object({
32962
+ kind: z47.literal("available"),
32963
+ remainingCapacity: z47.number().nullable()
32635
32964
  }),
32636
- z46.object({
32637
- kind: z46.literal("unavailable"),
32638
- reason: z46.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
32639
- remainingCapacity: z46.number().nullable()
32965
+ z47.object({
32966
+ kind: z47.literal("unavailable"),
32967
+ reason: z47.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
32968
+ remainingCapacity: z47.number().nullable()
32640
32969
  })
32641
32970
  ]);
32642
- publicEventTicketTypeSchema = z46.object({
32643
- id: z46.string(),
32644
- siteId: z46.string(),
32645
- eventSeriesId: z46.string(),
32646
- name: z46.string(),
32647
- description: z46.string().nullable(),
32648
- priceAmount: z46.number(),
32649
- isActive: z46.boolean(),
32650
- sortOrder: z46.number(),
32651
- capacityMode: z46.enum(["limited", "unlimited"]),
32652
- capacityLimit: z46.number().nullable(),
32653
- attendanceScope: z46.enum(["in_person", "online", "both"]).optional(),
32654
- saleStartsAt: z46.string().nullable(),
32655
- saleEndsAt: z46.string().nullable(),
32971
+ publicEventTicketTypeSchema = z47.object({
32972
+ id: z47.string(),
32973
+ siteId: z47.string(),
32974
+ eventSeriesId: z47.string(),
32975
+ name: z47.string(),
32976
+ description: z47.string().nullable(),
32977
+ priceAmount: z47.number(),
32978
+ isActive: z47.boolean(),
32979
+ sortOrder: z47.number(),
32980
+ capacityMode: z47.enum(["limited", "unlimited"]),
32981
+ capacityLimit: z47.number().nullable(),
32982
+ attendanceScope: z47.enum(["in_person", "online", "both"]).optional(),
32983
+ saleStartsAt: z47.string().nullable(),
32984
+ saleEndsAt: z47.string().nullable(),
32656
32985
  availability: publicEventTicketTypeAvailabilitySchema,
32657
- createdAt: z46.string(),
32658
- updatedAt: z46.string()
32659
- });
32660
- publicEventPricingSchema = z46.discriminatedUnion("kind", [
32661
- z46.object({
32662
- kind: z46.literal("drop_in"),
32663
- currency: z46.string(),
32664
- display: z46.object({ kind: z46.literal("free"), currency: z46.string() })
32986
+ createdAt: z47.string(),
32987
+ updatedAt: z47.string()
32988
+ });
32989
+ publicEventPricingSchema = z47.discriminatedUnion("kind", [
32990
+ z47.object({
32991
+ kind: z47.literal("drop_in"),
32992
+ currency: z47.string(),
32993
+ display: z47.object({ kind: z47.literal("free"), currency: z47.string() })
32665
32994
  }),
32666
- z46.object({
32667
- kind: z46.literal("free_registration"),
32668
- currency: z46.string(),
32669
- display: z46.object({ kind: z46.literal("free"), currency: z46.string() })
32995
+ z47.object({
32996
+ kind: z47.literal("free_registration"),
32997
+ currency: z47.string(),
32998
+ display: z47.object({ kind: z47.literal("free"), currency: z47.string() })
32670
32999
  }),
32671
- z46.object({
32672
- kind: z46.literal("single_paid"),
32673
- amount: z46.number(),
32674
- currency: z46.string(),
32675
- display: z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() })
33000
+ z47.object({
33001
+ kind: z47.literal("single_paid"),
33002
+ amount: z47.number(),
33003
+ currency: z47.string(),
33004
+ display: z47.object({ kind: z47.literal("exact"), amount: z47.number(), currency: z47.string() })
32676
33005
  }),
32677
- z46.object({
32678
- kind: z46.literal("ticket_types"),
32679
- currency: z46.string(),
32680
- ticketTypes: z46.array(publicEventTicketTypeSchema),
33006
+ z47.object({
33007
+ kind: z47.literal("ticket_types"),
33008
+ currency: z47.string(),
33009
+ ticketTypes: z47.array(publicEventTicketTypeSchema),
32681
33010
  display: publicEventTicketTypePriceDisplaySchema
32682
33011
  }),
32683
- z46.object({
32684
- kind: z46.literal("sliding_scale"),
32685
- minAmount: z46.number(),
32686
- maxAmount: z46.number(),
32687
- suggestedAmount: z46.number().nullable(),
32688
- currency: z46.string(),
32689
- display: z46.object({
32690
- kind: z46.literal("range"),
32691
- minAmount: z46.number(),
32692
- maxAmount: z46.number(),
32693
- currency: z46.string()
33012
+ z47.object({
33013
+ kind: z47.literal("sliding_scale"),
33014
+ minAmount: z47.number(),
33015
+ maxAmount: z47.number(),
33016
+ suggestedAmount: z47.number().nullable(),
33017
+ currency: z47.string(),
33018
+ display: z47.object({
33019
+ kind: z47.literal("range"),
33020
+ minAmount: z47.number(),
33021
+ maxAmount: z47.number(),
33022
+ currency: z47.string()
32694
33023
  })
32695
33024
  }),
32696
- z46.object({
32697
- kind: z46.literal("course"),
32698
- display: z46.object({ kind: z46.literal("course"), display: publicCoursePriceDisplaySchema })
33025
+ z47.object({
33026
+ kind: z47.literal("course"),
33027
+ display: z47.object({ kind: z47.literal("course"), display: publicCoursePriceDisplaySchema })
32699
33028
  }),
32700
- z46.object({
32701
- kind: z46.literal("external"),
32702
- display: z46.object({ kind: z46.literal("external"), label: z46.string() })
33029
+ z47.object({
33030
+ kind: z47.literal("external"),
33031
+ display: z47.object({ kind: z47.literal("external"), label: z47.string() })
32703
33032
  })
32704
33033
  ]);
32705
- publicTeamMemberSummarySchema = z46.object({
32706
- id: z46.string(),
32707
- name: z46.string(),
32708
- roleLabel: z46.string().nullable(),
32709
- summary: z46.string().nullable(),
32710
- profilePath: z46.string().nullable()
33034
+ publicTeamMemberSummarySchema = z47.object({
33035
+ id: z47.string(),
33036
+ name: z47.string(),
33037
+ roleLabel: z47.string().nullable(),
33038
+ summary: z47.string().nullable(),
33039
+ profilePath: z47.string().nullable()
32711
33040
  });
32712
- publicEventSchema = z46.object({
32713
- kind: z46.enum(["event", "course_session"]).optional(),
33041
+ publicEventSchema = z47.object({
33042
+ kind: z47.enum(["event", "course_session"]).optional(),
32714
33043
  eventPreset: eventPresetSchema.optional(),
32715
33044
  eventDestinationMode: eventDestinationModeSchema.optional(),
32716
33045
  scheduleScope: eventScheduleScopeSchema.optional(),
32717
- id: z46.string(),
32718
- occurrenceId: z46.string(),
32719
- seriesId: z46.string(),
32720
- title: z46.string(),
32721
- description: z46.string().nullable(),
32722
- content: z46.object({
33046
+ id: z47.string(),
33047
+ occurrenceId: z47.string(),
33048
+ seriesId: z47.string(),
33049
+ title: z47.string(),
33050
+ description: z47.string().nullable(),
33051
+ content: z47.object({
32723
33052
  body: RichTextDocSchema.nullable().optional()
32724
33053
  }).optional(),
32725
- presentation: z46.object({
32726
- cardTitleOverride: z46.string().nullable().optional(),
32727
- summary: z46.string().nullable().optional(),
33054
+ presentation: z47.object({
33055
+ cardTitleOverride: z47.string().nullable().optional(),
33056
+ summary: z47.string().nullable().optional(),
32728
33057
  image: mediaSchema2.nullable().optional()
32729
33058
  }).optional(),
32730
- slug: z46.string(),
32731
- path: z46.string().nullable(),
33059
+ slug: z47.string(),
33060
+ path: z47.string().nullable(),
32732
33061
  destination: publicEventDestinationSchema,
32733
- requiresRegistration: z46.boolean(),
32734
- deliveryMode: z46.enum(["in_person", "online", "hybrid"]),
32735
- attendanceModes: z46.array(publicEventAttendanceModeAvailabilitySchema),
32736
- startsAt: z46.string(),
32737
- endsAt: z46.string(),
32738
- capacity: z46.number().nullable(),
32739
- registeredCount: z46.number(),
32740
- availableSpots: z46.number().nullable(),
32741
- waitlistEnabled: z46.boolean(),
33062
+ requiresRegistration: z47.boolean(),
33063
+ deliveryMode: z47.enum(["in_person", "online", "hybrid"]),
33064
+ attendanceModes: z47.array(publicEventAttendanceModeAvailabilitySchema),
33065
+ startsAt: z47.string(),
33066
+ endsAt: z47.string(),
33067
+ capacity: z47.number().nullable(),
33068
+ registeredCount: z47.number(),
33069
+ availableSpots: z47.number().nullable(),
33070
+ waitlistEnabled: z47.boolean(),
32742
33071
  venue: eventVenueSchema.nullable(),
32743
33072
  eventCategory: eventCategorySchema.nullable(),
32744
- teamMembers: z46.array(publicTeamMemberSummarySchema).optional(),
32745
- status: z46.enum(["active", "draft", "archived"]).optional(),
32746
- timeZone: z46.string(),
33073
+ teamMembers: z47.array(publicTeamMemberSummarySchema).optional(),
33074
+ status: z47.enum(["active", "draft", "archived"]).optional(),
33075
+ timeZone: z47.string(),
32747
33076
  pricing: publicEventPricingSchema,
32748
33077
  paymentTerms: blockBookingPaymentTermsSchema,
32749
33078
  accessRestriction: accessRestrictionSchema,
32750
- allowedCategoryIds: z46.array(z46.string()),
32751
- requireGuestDetails: z46.boolean().optional(),
32752
- acceptsPasses: z46.boolean().optional(),
32753
- acceptsMemberships: z46.boolean().optional(),
32754
- course: z46.object({
32755
- id: z46.string(),
33079
+ allowedCategoryIds: z47.array(z47.string()),
33080
+ requireGuestDetails: z47.boolean().optional(),
33081
+ acceptsPasses: z47.boolean().optional(),
33082
+ acceptsMemberships: z47.boolean().optional(),
33083
+ course: z47.object({
33084
+ id: z47.string(),
32756
33085
  pricing: coursePricingSchema.optional(),
32757
- priceCents: z46.number().nullable(),
32758
- currency: z46.string(),
32759
- enrollmentOpen: z46.boolean()
33086
+ priceCents: z47.number().nullable(),
33087
+ currency: z47.string(),
33088
+ enrollmentOpen: z47.boolean()
32760
33089
  }).nullable().optional()
32761
33090
  });
32762
- publicEventsArraySchema = z46.array(publicEventSchema);
33091
+ publicEventsArraySchema = z47.array(publicEventSchema);
32763
33092
  }
32764
33093
  });
32765
33094
 
@@ -32984,6 +33313,41 @@ var init_filtering = __esm({
32984
33313
  }
32985
33314
  });
32986
33315
 
33316
+ // ../blocks/src/system/blocks/events/shared/layout.ts
33317
+ function eventSectionHeaderLayoutNodes() {
33318
+ return [
33319
+ text(
33320
+ { as: "h2" },
33321
+ bind("content.heading"),
33322
+ when("content.heading", {
33323
+ authoringPresence: recoverEmptyHeadingWhenActive
33324
+ })
33325
+ ),
33326
+ richText(
33327
+ { className: "rb-prose rb-max-w-none" },
33328
+ bind("content.description"),
33329
+ when("content.description", {
33330
+ authoringPresence: recoverEmptyDescriptionWhenActive
33331
+ })
33332
+ )
33333
+ ];
33334
+ }
33335
+ var recoverEmptyHeadingWhenActive, recoverEmptyDescriptionWhenActive;
33336
+ var init_layout2 = __esm({
33337
+ "../blocks/src/system/blocks/events/shared/layout.ts"() {
33338
+ "use strict";
33339
+ init_builder2();
33340
+ recoverEmptyHeadingWhenActive = {
33341
+ kind: "recover-empty-when-active",
33342
+ placeholder: "Add heading"
33343
+ };
33344
+ recoverEmptyDescriptionWhenActive = {
33345
+ kind: "recover-empty-when-active",
33346
+ placeholder: "Add description"
33347
+ };
33348
+ }
33349
+ });
33350
+
32987
33351
  // ../blocks/src/system/blocks/events/shared/index.ts
32988
33352
  var init_shared3 = __esm({
32989
33353
  "../blocks/src/system/blocks/events/shared/index.ts"() {
@@ -32992,61 +33356,62 @@ var init_shared3 = __esm({
32992
33356
  init_schemas2();
32993
33357
  init_fields();
32994
33358
  init_filtering();
33359
+ init_layout2();
32995
33360
  }
32996
33361
  });
32997
33362
 
32998
33363
  // ../blocks/src/system/blocks/shop.shared.ts
32999
- import { z as z47 } from "zod";
33364
+ import { z as z48 } from "zod";
33000
33365
  var publicPassProductSchema, publicPassProductCollectionSchema, publicMembershipProductSchema, publicMembershipProductCollectionSchema;
33001
33366
  var init_shop_shared = __esm({
33002
33367
  "../blocks/src/system/blocks/shop.shared.ts"() {
33003
33368
  "use strict";
33004
- publicPassProductSchema = z47.object({
33005
- id: z47.string(),
33006
- productUseCase: z47.enum(["event_pass", "appointment_package"]).default("event_pass"),
33007
- name: z47.string(),
33008
- description: z47.string().nullable(),
33009
- price: z47.number(),
33010
- currency: z47.string(),
33011
- creditsTotal: z47.number(),
33012
- pricePerCredit: z47.number(),
33013
- validDays: z47.number().nullable(),
33014
- eligibleCategoryIds: z47.array(z47.string()),
33015
- eligibleCategoryNames: z47.array(z47.string())
33016
- });
33017
- publicPassProductCollectionSchema = z47.object({
33018
- passes: z47.array(publicPassProductSchema)
33019
- });
33020
- publicMembershipProductSchema = z47.object({
33021
- id: z47.string(),
33022
- name: z47.string(),
33023
- description: z47.string().nullable(),
33024
- price: z47.number(),
33025
- currency: z47.string(),
33026
- billingInterval: z47.enum(["month", "year"]),
33027
- eligibleCategoryIds: z47.array(z47.string()),
33028
- eligibleCategoryNames: z47.array(z47.string())
33369
+ publicPassProductSchema = z48.object({
33370
+ id: z48.string(),
33371
+ productUseCase: z48.enum(["event_pass", "appointment_package"]).default("event_pass"),
33372
+ name: z48.string(),
33373
+ description: z48.string().nullable(),
33374
+ price: z48.number(),
33375
+ currency: z48.string(),
33376
+ creditsTotal: z48.number(),
33377
+ pricePerCredit: z48.number(),
33378
+ validDays: z48.number().nullable(),
33379
+ eligibleCategoryIds: z48.array(z48.string()),
33380
+ eligibleCategoryNames: z48.array(z48.string())
33381
+ });
33382
+ publicPassProductCollectionSchema = z48.object({
33383
+ passes: z48.array(publicPassProductSchema)
33384
+ });
33385
+ publicMembershipProductSchema = z48.object({
33386
+ id: z48.string(),
33387
+ name: z48.string(),
33388
+ description: z48.string().nullable(),
33389
+ price: z48.number(),
33390
+ currency: z48.string(),
33391
+ billingInterval: z48.enum(["month", "year"]),
33392
+ eligibleCategoryIds: z48.array(z48.string()),
33393
+ eligibleCategoryNames: z48.array(z48.string())
33029
33394
  });
33030
- publicMembershipProductCollectionSchema = z47.object({
33031
- memberships: z47.array(publicMembershipProductSchema)
33395
+ publicMembershipProductCollectionSchema = z48.object({
33396
+ memberships: z48.array(publicMembershipProductSchema)
33032
33397
  });
33033
33398
  }
33034
33399
  });
33035
33400
 
33036
33401
  // ../blocks/src/system/blocks/event-registration.shared.ts
33037
- import { z as z48 } from "zod";
33402
+ import { z as z49 } from "zod";
33038
33403
  var occurrenceContextSchema;
33039
33404
  var init_event_registration_shared = __esm({
33040
33405
  "../blocks/src/system/blocks/event-registration.shared.ts"() {
33041
33406
  "use strict";
33042
- occurrenceContextSchema = z48.object({
33043
- id: z48.string(),
33044
- seriesId: z48.string(),
33045
- startsAt: z48.string(),
33046
- endsAt: z48.string(),
33047
- timeZone: z48.string(),
33048
- capacityOverride: z48.number().nullable().optional(),
33049
- overrides: z48.record(z48.string(), z48.unknown()).nullable().optional()
33407
+ occurrenceContextSchema = z49.object({
33408
+ id: z49.string(),
33409
+ seriesId: z49.string(),
33410
+ startsAt: z49.string(),
33411
+ endsAt: z49.string(),
33412
+ timeZone: z49.string(),
33413
+ capacityOverride: z49.number().nullable().optional(),
33414
+ overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
33050
33415
  }).nullable();
33051
33416
  }
33052
33417
  });
@@ -33254,22 +33619,22 @@ var init_pricing = __esm({
33254
33619
  });
33255
33620
 
33256
33621
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
33257
- import { z as z49 } from "zod";
33622
+ import { z as z50 } from "zod";
33258
33623
  var previewStageSchema, registrationButtonVariantSchema, eventButtonVariantSchema, eventLayoutSchema, eventCalendarDisplayModeSchema, eventCalendarDefaultViewSchema, columnOptionSchema, weekStartSchema, filterAutoShowSchema, calendarTabViewsSchema;
33259
33624
  var init_contract_schemas = __esm({
33260
33625
  "../blocks/src/system/runtime/nodes/shared/contract-schemas.ts"() {
33261
33626
  "use strict";
33262
33627
  init_events();
33263
- previewStageSchema = z49.enum(["preview", "published"]);
33264
- registrationButtonVariantSchema = z49.enum(["primary", "secondary", "outline"]);
33265
- eventButtonVariantSchema = z49.enum(["primary", "secondary", "outline", "link"]);
33266
- eventLayoutSchema = z49.enum(eventCalendarListLayoutValues);
33267
- eventCalendarDisplayModeSchema = z49.enum(eventCalendarDisplayModeValues);
33268
- eventCalendarDefaultViewSchema = z49.enum(eventCalendarDefaultViewValues);
33269
- columnOptionSchema = z49.enum(["2", "3", "4"]);
33270
- weekStartSchema = z49.enum(["sunday", "monday"]);
33271
- filterAutoShowSchema = z49.enum(["auto", "always", "never"]);
33272
- calendarTabViewsSchema = z49.enum(["both", "month", "week"]);
33628
+ previewStageSchema = z50.enum(["preview", "published"]);
33629
+ registrationButtonVariantSchema = z50.enum(["primary", "secondary", "outline"]);
33630
+ eventButtonVariantSchema = z50.enum(["primary", "secondary", "outline", "link"]);
33631
+ eventLayoutSchema = z50.enum(eventCalendarListLayoutValues);
33632
+ eventCalendarDisplayModeSchema = z50.enum(eventCalendarDisplayModeValues);
33633
+ eventCalendarDefaultViewSchema = z50.enum(eventCalendarDefaultViewValues);
33634
+ columnOptionSchema = z50.enum(["2", "3", "4"]);
33635
+ weekStartSchema = z50.enum(["sunday", "monday"]);
33636
+ filterAutoShowSchema = z50.enum(["auto", "always", "never"]);
33637
+ calendarTabViewsSchema = z50.enum(["both", "month", "week"]);
33273
33638
  }
33274
33639
  });
33275
33640
 
@@ -33347,7 +33712,7 @@ var init_registrationEventAdapter = __esm({
33347
33712
  });
33348
33713
 
33349
33714
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
33350
- import { z as z50 } from "zod";
33715
+ import { z as z51 } from "zod";
33351
33716
  function buildEventRegistrationDisplay(source) {
33352
33717
  const stepLabels = buildEventRegistrationShellStepLabels(source);
33353
33718
  return {
@@ -33455,72 +33820,72 @@ var init_event_registration_interactive = __esm({
33455
33820
  init_registrationEventAdapter();
33456
33821
  EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
33457
33822
  EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
33458
- contentEntrySchema = z50.object({
33459
- id: z50.string(),
33460
- slug: z50.string(),
33461
- contentTypeSlug: z50.string()
33823
+ contentEntrySchema = z51.object({
33824
+ id: z51.string(),
33825
+ slug: z51.string(),
33826
+ contentTypeSlug: z51.string()
33462
33827
  });
33463
- eventRegistrationPublicEventSchema = z50.preprocess(
33828
+ eventRegistrationPublicEventSchema = z51.preprocess(
33464
33829
  normalizeEventRegistrationEventInput,
33465
33830
  publicEventSchema
33466
33831
  );
33467
- eventRegistrationSourceSchema = z50.object({
33468
- siteId: z50.string().optional(),
33469
- apiBaseUrl: z50.string().optional(),
33470
- portalToken: z50.string().nullable().optional(),
33471
- previewToken: z50.string().nullable().optional(),
33832
+ eventRegistrationSourceSchema = z51.object({
33833
+ siteId: z51.string().optional(),
33834
+ apiBaseUrl: z51.string().optional(),
33835
+ portalToken: z51.string().nullable().optional(),
33836
+ previewToken: z51.string().nullable().optional(),
33472
33837
  occurrenceContext: occurrenceContextSchema.optional(),
33473
33838
  contentEntry: contentEntrySchema.nullable().optional(),
33474
- events: z50.array(eventRegistrationPublicEventSchema).nullable().optional(),
33475
- className: z50.string().nullable().optional(),
33476
- buttonText: z50.string().nullable().optional(),
33477
- maxTickets: z50.string().nullable().optional(),
33478
- showVenue: z50.boolean().optional(),
33479
- showCapacity: z50.boolean().optional(),
33480
- successMessage: z50.string().optional(),
33481
- waitlistMessage: z50.string().optional(),
33839
+ events: z51.array(eventRegistrationPublicEventSchema).nullable().optional(),
33840
+ className: z51.string().nullable().optional(),
33841
+ buttonText: z51.string().nullable().optional(),
33842
+ maxTickets: z51.string().nullable().optional(),
33843
+ showVenue: z51.boolean().optional(),
33844
+ showCapacity: z51.boolean().optional(),
33845
+ successMessage: z51.string().optional(),
33846
+ waitlistMessage: z51.string().optional(),
33482
33847
  buttonVariant: registrationButtonVariantSchema.optional(),
33483
- overlayEnabled: z50.boolean().optional(),
33484
- spamProtectionEnabled: z50.boolean().optional(),
33848
+ overlayEnabled: z51.boolean().optional(),
33849
+ spamProtectionEnabled: z51.boolean().optional(),
33485
33850
  stage: previewStageSchema.optional(),
33486
- supportEmail: z50.string().optional(),
33851
+ supportEmail: z51.string().optional(),
33487
33852
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
33488
33853
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
33489
33854
  });
33490
- eventRegistrationDisplaySchema = z50.object({
33491
- kind: z50.literal("event-registration"),
33492
- state: z50.literal("generic-shell"),
33493
- className: z50.string().nullable(),
33494
- titleText: z50.string(),
33495
- bodyText: z50.string(),
33496
- stepLabels: z50.array(z50.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
33497
- summaryButtonText: z50.string()
33855
+ eventRegistrationDisplaySchema = z51.object({
33856
+ kind: z51.literal("event-registration"),
33857
+ state: z51.literal("generic-shell"),
33858
+ className: z51.string().nullable(),
33859
+ titleText: z51.string(),
33860
+ bodyText: z51.string(),
33861
+ stepLabels: z51.array(z51.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
33862
+ summaryButtonText: z51.string()
33498
33863
  });
33499
- eventRegistrationHydrationSchema = z50.object({
33864
+ eventRegistrationHydrationSchema = z51.object({
33500
33865
  occurrenceContext: occurrenceContextSchema.optional(),
33501
33866
  contentEntry: contentEntrySchema.nullable().optional(),
33502
- events: z50.array(eventRegistrationPublicEventSchema).nullable().optional(),
33503
- maxTickets: z50.string().optional(),
33504
- showVenue: z50.boolean().optional(),
33505
- showCapacity: z50.boolean().optional(),
33506
- successMessage: z50.string().optional(),
33507
- waitlistMessage: z50.string().optional(),
33867
+ events: z51.array(eventRegistrationPublicEventSchema).nullable().optional(),
33868
+ maxTickets: z51.string().optional(),
33869
+ showVenue: z51.boolean().optional(),
33870
+ showCapacity: z51.boolean().optional(),
33871
+ successMessage: z51.string().optional(),
33872
+ waitlistMessage: z51.string().optional(),
33508
33873
  buttonVariant: registrationButtonVariantSchema.optional(),
33509
- overlayEnabled: z50.boolean().optional(),
33510
- spamProtectionEnabled: z50.boolean().optional(),
33511
- supportEmail: z50.string().optional(),
33874
+ overlayEnabled: z51.boolean().optional(),
33875
+ spamProtectionEnabled: z51.boolean().optional(),
33876
+ supportEmail: z51.string().optional(),
33512
33877
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
33513
33878
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
33514
33879
  });
33515
- eventRegistrationRenderSchema = z50.object({
33880
+ eventRegistrationRenderSchema = z51.object({
33516
33881
  display: eventRegistrationDisplaySchema,
33517
33882
  hydration: eventRegistrationHydrationSchema
33518
33883
  });
33519
- eventRegistrationIslandMetaCodec = createZodCodec(z50.object({
33520
- siteId: z50.string().optional(),
33521
- apiBaseUrl: z50.string().optional(),
33522
- portalToken: z50.string().nullable().optional(),
33523
- previewToken: z50.string().nullable().optional(),
33884
+ eventRegistrationIslandMetaCodec = createZodCodec(z51.object({
33885
+ siteId: z51.string().optional(),
33886
+ apiBaseUrl: z51.string().optional(),
33887
+ portalToken: z51.string().nullable().optional(),
33888
+ previewToken: z51.string().nullable().optional(),
33524
33889
  stage: previewStageSchema.optional()
33525
33890
  }));
33526
33891
  eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -33824,7 +34189,7 @@ var init_shared4 = __esm({
33824
34189
  });
33825
34190
 
33826
34191
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
33827
- import { z as z51 } from "zod";
34192
+ import { z as z52 } from "zod";
33828
34193
  function buildCourseRegistrationDisplay(source) {
33829
34194
  return {
33830
34195
  kind: "course-registration",
@@ -33842,72 +34207,72 @@ var init_course_registration_interactive = __esm({
33842
34207
  init_islands();
33843
34208
  init_runtime();
33844
34209
  init_contract_schemas();
33845
- contentEntrySchema2 = z51.object({
33846
- id: z51.string(),
33847
- slug: z51.string(),
33848
- contentTypeSlug: z51.string()
33849
- });
33850
- courseEntrySubrouteContextSchema = z51.union([
33851
- z51.object({
33852
- kind: z51.literal("course-run"),
33853
- run: z51.object({
33854
- courseId: z51.string(),
33855
- seriesId: z51.string(),
33856
- runSlug: z51.string(),
33857
- runName: z51.string().nullable()
34210
+ contentEntrySchema2 = z52.object({
34211
+ id: z52.string(),
34212
+ slug: z52.string(),
34213
+ contentTypeSlug: z52.string()
34214
+ });
34215
+ courseEntrySubrouteContextSchema = z52.union([
34216
+ z52.object({
34217
+ kind: z52.literal("course-run"),
34218
+ run: z52.object({
34219
+ courseId: z52.string(),
34220
+ seriesId: z52.string(),
34221
+ runSlug: z52.string(),
34222
+ runName: z52.string().nullable()
33858
34223
  })
33859
34224
  }),
33860
- z51.object({
33861
- kind: z51.literal("event-occurrence"),
34225
+ z52.object({
34226
+ kind: z52.literal("event-occurrence"),
33862
34227
  occurrence: occurrenceContextSchema
33863
34228
  })
33864
34229
  ]);
33865
- courseRegistrationSourceSchema = z51.object({
33866
- siteId: z51.string().optional(),
33867
- apiBaseUrl: z51.string().optional(),
33868
- portalToken: z51.string().nullable().optional(),
34230
+ courseRegistrationSourceSchema = z52.object({
34231
+ siteId: z52.string().optional(),
34232
+ apiBaseUrl: z52.string().optional(),
34233
+ portalToken: z52.string().nullable().optional(),
33869
34234
  contentEntry: contentEntrySchema2.nullable().optional(),
33870
34235
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
33871
- courses: z51.array(publicCourseSchema).nullable().optional(),
33872
- className: z51.string().nullable().optional(),
33873
- showSessions: z51.boolean().optional(),
33874
- showPrice: z51.boolean().optional(),
33875
- showCapacity: z51.boolean().optional(),
33876
- showVenue: z51.boolean().optional(),
33877
- successMessage: z51.string().optional(),
33878
- waitlistMessage: z51.string().optional(),
33879
- membershipMessage: z51.string().optional(),
33880
- buttonText: z51.string().nullable().optional(),
34236
+ courses: z52.array(publicCourseSchema).nullable().optional(),
34237
+ className: z52.string().nullable().optional(),
34238
+ showSessions: z52.boolean().optional(),
34239
+ showPrice: z52.boolean().optional(),
34240
+ showCapacity: z52.boolean().optional(),
34241
+ showVenue: z52.boolean().optional(),
34242
+ successMessage: z52.string().optional(),
34243
+ waitlistMessage: z52.string().optional(),
34244
+ membershipMessage: z52.string().optional(),
34245
+ buttonText: z52.string().nullable().optional(),
33881
34246
  buttonVariant: registrationButtonVariantSchema.optional(),
33882
34247
  stage: previewStageSchema.optional()
33883
34248
  });
33884
- courseRegistrationDisplaySchema = z51.object({
33885
- kind: z51.literal("course-registration"),
33886
- state: z51.literal("shell"),
33887
- className: z51.string().nullable(),
33888
- summaryButtonText: z51.string()
34249
+ courseRegistrationDisplaySchema = z52.object({
34250
+ kind: z52.literal("course-registration"),
34251
+ state: z52.literal("shell"),
34252
+ className: z52.string().nullable(),
34253
+ summaryButtonText: z52.string()
33889
34254
  });
33890
- courseRegistrationHydrationSchema = z51.object({
34255
+ courseRegistrationHydrationSchema = z52.object({
33891
34256
  contentEntry: contentEntrySchema2.nullable().optional(),
33892
34257
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
33893
- courses: z51.array(publicCourseSchema).nullable().optional(),
33894
- showSessions: z51.boolean().optional(),
33895
- showPrice: z51.boolean().optional(),
33896
- showCapacity: z51.boolean().optional(),
33897
- showVenue: z51.boolean().optional(),
33898
- successMessage: z51.string().optional(),
33899
- waitlistMessage: z51.string().optional(),
33900
- membershipMessage: z51.string().optional(),
34258
+ courses: z52.array(publicCourseSchema).nullable().optional(),
34259
+ showSessions: z52.boolean().optional(),
34260
+ showPrice: z52.boolean().optional(),
34261
+ showCapacity: z52.boolean().optional(),
34262
+ showVenue: z52.boolean().optional(),
34263
+ successMessage: z52.string().optional(),
34264
+ waitlistMessage: z52.string().optional(),
34265
+ membershipMessage: z52.string().optional(),
33901
34266
  buttonVariant: registrationButtonVariantSchema.optional()
33902
34267
  });
33903
- courseRegistrationRenderSchema = z51.object({
34268
+ courseRegistrationRenderSchema = z52.object({
33904
34269
  display: courseRegistrationDisplaySchema,
33905
34270
  hydration: courseRegistrationHydrationSchema
33906
34271
  });
33907
- courseRegistrationIslandMetaCodec = createZodCodec(z51.object({
33908
- siteId: z51.string().optional(),
33909
- apiBaseUrl: z51.string().optional(),
33910
- portalToken: z51.string().nullable().optional(),
34272
+ courseRegistrationIslandMetaCodec = createZodCodec(z52.object({
34273
+ siteId: z52.string().optional(),
34274
+ apiBaseUrl: z52.string().optional(),
34275
+ portalToken: z52.string().nullable().optional(),
33911
34276
  stage: previewStageSchema.optional()
33912
34277
  }));
33913
34278
  courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -34175,7 +34540,7 @@ var init_course_registration = __esm({
34175
34540
  });
34176
34541
 
34177
34542
  // ../blocks/src/system/blocks/event-details.ts
34178
- import { z as z52 } from "zod";
34543
+ import { z as z53 } from "zod";
34179
34544
  var eventDetailsManifest, occurrenceContextSchema2, eventAutoApplyDiscountPreviewBaseSchema, eventAutoApplyDiscountPreviewSchema, eventDetailsBlockDefinition;
34180
34545
  var init_event_details = __esm({
34181
34546
  "../blocks/src/system/blocks/event-details.ts"() {
@@ -34318,37 +34683,37 @@ var init_event_details = __esm({
34318
34683
  })
34319
34684
  ]
34320
34685
  });
34321
- occurrenceContextSchema2 = z52.object({
34322
- id: z52.string(),
34323
- seriesId: z52.string(),
34324
- startsAt: z52.string(),
34325
- endsAt: z52.string(),
34326
- timeZone: z52.string(),
34327
- capacityOverride: z52.number().nullable().optional(),
34328
- overrides: z52.record(z52.string(), z52.unknown()).nullable().optional()
34686
+ occurrenceContextSchema2 = z53.object({
34687
+ id: z53.string(),
34688
+ seriesId: z53.string(),
34689
+ startsAt: z53.string(),
34690
+ endsAt: z53.string(),
34691
+ timeZone: z53.string(),
34692
+ capacityOverride: z53.number().nullable().optional(),
34693
+ overrides: z53.record(z53.string(), z53.unknown()).nullable().optional()
34329
34694
  }).nullable();
34330
- eventAutoApplyDiscountPreviewBaseSchema = z52.object({
34331
- id: z52.string(),
34332
- publicLabel: z52.string(),
34333
- description: z52.string().nullable(),
34334
- minTicketsRequired: z52.number().nullable()
34695
+ eventAutoApplyDiscountPreviewBaseSchema = z53.object({
34696
+ id: z53.string(),
34697
+ publicLabel: z53.string(),
34698
+ description: z53.string().nullable(),
34699
+ minTicketsRequired: z53.number().nullable()
34335
34700
  });
34336
- eventAutoApplyDiscountPreviewSchema = z52.discriminatedUnion("discountType", [
34701
+ eventAutoApplyDiscountPreviewSchema = z53.discriminatedUnion("discountType", [
34337
34702
  eventAutoApplyDiscountPreviewBaseSchema.extend({
34338
- discountType: z52.literal("percent"),
34339
- discountPercent: z52.number(),
34340
- discountAmountCents: z52.null()
34703
+ discountType: z53.literal("percent"),
34704
+ discountPercent: z53.number(),
34705
+ discountAmountCents: z53.null()
34341
34706
  }),
34342
34707
  eventAutoApplyDiscountPreviewBaseSchema.extend({
34343
- discountType: z52.literal("fixed"),
34344
- discountPercent: z52.null(),
34345
- discountAmountCents: z52.number()
34708
+ discountType: z53.literal("fixed"),
34709
+ discountPercent: z53.null(),
34710
+ discountAmountCents: z53.number()
34346
34711
  })
34347
34712
  ]);
34348
34713
  eventDetailsBlockDefinition = {
34349
34714
  manifest: eventDetailsManifest,
34350
34715
  dataSchemas: {
34351
- eventDetailsData: z52.object({
34716
+ eventDetailsData: z53.object({
34352
34717
  events: publicEventsArraySchema,
34353
34718
  sitePasses: publicPassProductCollectionSchema,
34354
34719
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -34571,7 +34936,6 @@ var init_event_spotlight = __esm({
34571
34936
  "../blocks/src/system/blocks/events/event-spotlight.ts"() {
34572
34937
  "use strict";
34573
34938
  init_builder2();
34574
- init_builder2();
34575
34939
  init_styledSection();
34576
34940
  init_fragments();
34577
34941
  init_boxStyles();
@@ -34627,18 +34991,7 @@ var init_event_spotlight = __esm({
34627
34991
  eventSpotlightLayout = [
34628
34992
  styledSection({
34629
34993
  children: sectionContainer([
34630
- // Optional heading
34631
- text(
34632
- { as: "h2" },
34633
- bind("content.heading"),
34634
- when("content.heading")
34635
- ),
34636
- // Optional description
34637
- richText(
34638
- { className: "rb-prose rb-max-w-none" },
34639
- bind("content.description"),
34640
- when("content.description")
34641
- ),
34994
+ ...eventSectionHeaderLayoutNodes(),
34642
34995
  // Event spotlight component
34643
34996
  el("event-spotlight", {
34644
34997
  events: { $bind: { from: "data.events" } },
@@ -34835,7 +35188,7 @@ var init_shared5 = __esm({
34835
35188
  });
34836
35189
 
34837
35190
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
34838
- import { z as z53 } from "zod";
35191
+ import { z as z54 } from "zod";
34839
35192
  function resolveEventPageSize(value, fallback = 12) {
34840
35193
  const candidate = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value.trim()) : null;
34841
35194
  return candidate != null && Number.isInteger(candidate) && eventPageSizeSet.has(candidate) ? candidate : fallback;
@@ -34856,32 +35209,32 @@ var init_listOptions = __esm({
34856
35209
  "../blocks/src/system/runtime/nodes/events/shared/listOptions.ts"() {
34857
35210
  "use strict";
34858
35211
  eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
34859
- eventPageSizeSchema = z53.union([
34860
- z53.literal(3),
34861
- z53.literal(6),
34862
- z53.literal(10),
34863
- z53.literal(12),
34864
- z53.literal(20),
34865
- z53.literal(24),
34866
- z53.literal(30)
35212
+ eventPageSizeSchema = z54.union([
35213
+ z54.literal(3),
35214
+ z54.literal(6),
35215
+ z54.literal(10),
35216
+ z54.literal(12),
35217
+ z54.literal(20),
35218
+ z54.literal(24),
35219
+ z54.literal(30)
34867
35220
  ]);
34868
35221
  eventPageSizeSet = new Set(eventPageSizeValues);
34869
- eventListPaginationActionSchema = z53.discriminatedUnion("kind", [
34870
- z53.object({
34871
- kind: z53.literal("loadMore"),
34872
- label: z53.string()
35222
+ eventListPaginationActionSchema = z54.discriminatedUnion("kind", [
35223
+ z54.object({
35224
+ kind: z54.literal("loadMore"),
35225
+ label: z54.string()
34873
35226
  }),
34874
- z53.object({
34875
- kind: z53.literal("seeAllLink"),
34876
- label: z53.string(),
34877
- href: z53.string()
35227
+ z54.object({
35228
+ kind: z54.literal("seeAllLink"),
35229
+ label: z54.string(),
35230
+ href: z54.string()
34878
35231
  })
34879
35232
  ]);
34880
35233
  }
34881
35234
  });
34882
35235
 
34883
35236
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
34884
- import { z as z54 } from "zod";
35237
+ import { z as z55 } from "zod";
34885
35238
  var legacyEventCardVariantSchema, eventCardVariantInputSchema, cardOrientationSchema, eventBlockKindSchema, eventSurfaceScopeSchema, eventScheduleScopeSchema2, eventListingSourceSchema, eventListingDisplaySchema, eventListingHydrationSchema, eventListingRenderSchema, eventListingIslandMetaCodec, eventListingBlockRuntime, eventListingIslandMetaKeys, eventListingInteractiveIslandPropsCodec;
34886
35239
  var init_EventListing_interactive = __esm({
34887
35240
  "../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts"() {
@@ -34894,89 +35247,89 @@ var init_EventListing_interactive = __esm({
34894
35247
  init_shared5();
34895
35248
  init_contract_schemas();
34896
35249
  init_listOptions();
34897
- legacyEventCardVariantSchema = z54.enum(["variant1", "variant2"]);
34898
- eventCardVariantInputSchema = z54.union([
35250
+ legacyEventCardVariantSchema = z55.enum(["variant1", "variant2"]);
35251
+ eventCardVariantInputSchema = z55.union([
34899
35252
  cardVariantRoleSchema,
34900
35253
  legacyEventCardVariantSchema
34901
35254
  ]);
34902
- cardOrientationSchema = z54.enum(["vertical", "horizontal"]);
34903
- eventBlockKindSchema = z54.enum(eventBlockKindValues);
34904
- eventSurfaceScopeSchema = z54.enum(eventSurfaceScopeValues);
34905
- eventScheduleScopeSchema2 = z54.enum(eventScheduleScopeValues);
34906
- eventListingSourceSchema = z54.object({
34907
- events: z54.array(publicEventSchema).nullable().optional(),
34908
- siteId: z54.string(),
34909
- apiBaseUrl: z54.string().optional(),
35255
+ cardOrientationSchema = z55.enum(["vertical", "horizontal"]);
35256
+ eventBlockKindSchema = z55.enum(eventBlockKindValues);
35257
+ eventSurfaceScopeSchema = z55.enum(eventSurfaceScopeValues);
35258
+ eventScheduleScopeSchema2 = z55.enum(eventScheduleScopeValues);
35259
+ eventListingSourceSchema = z55.object({
35260
+ events: z55.array(publicEventSchema).nullable().optional(),
35261
+ siteId: z55.string(),
35262
+ apiBaseUrl: z55.string().optional(),
34910
35263
  stage: previewStageSchema.optional(),
34911
35264
  layout: eventLayoutSchema.optional(),
34912
35265
  columns: columnOptionSchema.optional(),
34913
- eventsPerPage: z54.string().optional(),
34914
- paginationMode: z54.enum(["loadMore", "seeAllLink"]).optional(),
34915
- seeAllUrl: z54.string().optional(),
34916
- loadMoreText: z54.string().optional(),
35266
+ eventsPerPage: z55.string().optional(),
35267
+ paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
35268
+ seeAllUrl: z55.string().optional(),
35269
+ loadMoreText: z55.string().optional(),
34917
35270
  cardVariant: eventCardVariantInputSchema.optional(),
34918
35271
  buttonVariant: eventButtonVariantSchema.optional(),
34919
- buttonText: z54.string().optional(),
34920
- showVenue: z54.boolean().optional(),
34921
- showMap: z54.boolean().optional(),
34922
- showCapacity: z54.boolean().optional(),
34923
- emptyMessage: z54.string().optional(),
34924
- className: z54.string().optional(),
34925
- showFilters: z54.boolean().nullable().optional(),
35272
+ buttonText: z55.string().optional(),
35273
+ showVenue: z55.boolean().optional(),
35274
+ showMap: z55.boolean().optional(),
35275
+ showCapacity: z55.boolean().optional(),
35276
+ emptyMessage: z55.string().optional(),
35277
+ className: z55.string().optional(),
35278
+ showFilters: z55.boolean().nullable().optional(),
34926
35279
  showCategoryFilter: filterAutoShowSchema.optional(),
34927
- showVenueFilter: z54.boolean().nullable().optional(),
34928
- showStaffFilter: z54.boolean().nullable().optional(),
35280
+ showVenueFilter: z55.boolean().nullable().optional(),
35281
+ showStaffFilter: z55.boolean().nullable().optional(),
34929
35282
  eventKind: eventBlockKindSchema.nullable().optional(),
34930
35283
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
34931
- filterEventPresets: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
35284
+ filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
34932
35285
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
34933
- filterCategoryIds: z54.string().nullable().optional(),
34934
- filterStaffMemberId: z54.string().nullable().optional(),
34935
- filterVenueId: z54.string().nullable().optional()
35286
+ filterCategoryIds: z55.string().nullable().optional(),
35287
+ filterStaffMemberId: z55.string().nullable().optional(),
35288
+ filterVenueId: z55.string().nullable().optional()
34936
35289
  });
34937
- eventListingDisplaySchema = z54.object({
34938
- kind: z54.literal("event-listing"),
34939
- state: z54.enum(["loading", "empty", "ready"]),
35290
+ eventListingDisplaySchema = z55.object({
35291
+ kind: z55.literal("event-listing"),
35292
+ state: z55.enum(["loading", "empty", "ready"]),
34940
35293
  listLayout: eventLayoutSchema,
34941
- className: z54.string().nullable(),
34942
- emptyMessage: z54.string(),
34943
- loadingMessage: z54.string(),
34944
- containerClass: z54.string(),
35294
+ className: z55.string().nullable(),
35295
+ emptyMessage: z55.string(),
35296
+ loadingMessage: z55.string(),
35297
+ containerClass: z55.string(),
34945
35298
  cardVariant: cardVariantRoleSchema,
34946
35299
  buttonVariant: eventButtonVariantSchema,
34947
- buttonText: z54.string(),
34948
- showVenue: z54.boolean(),
34949
- showMap: z54.boolean(),
34950
- showCapacity: z54.boolean(),
35300
+ buttonText: z55.string(),
35301
+ showVenue: z55.boolean(),
35302
+ showMap: z55.boolean(),
35303
+ showCapacity: z55.boolean(),
34951
35304
  orientation: cardOrientationSchema,
34952
- events: z54.array(publicEventSchema)
35305
+ events: z55.array(publicEventSchema)
34953
35306
  });
34954
- eventListingHydrationSchema = z54.object({
34955
- siteId: z54.string(),
35307
+ eventListingHydrationSchema = z55.object({
35308
+ siteId: z55.string(),
34956
35309
  stage: previewStageSchema.optional(),
34957
35310
  eventsPerPage: eventPageSizeSchema,
34958
35311
  paginationAction: eventListPaginationActionSchema,
34959
- showFilters: z54.boolean(),
35312
+ showFilters: z55.boolean(),
34960
35313
  showCategoryFilter: filterAutoShowSchema,
34961
- showVenueFilter: z54.boolean(),
34962
- showStaffFilter: z54.boolean(),
35314
+ showVenueFilter: z55.boolean(),
35315
+ showStaffFilter: z55.boolean(),
34963
35316
  eventKind: eventBlockKindSchema,
34964
35317
  eventSurface: eventSurfaceScopeSchema,
34965
- filterEventPresets: z54.string().nullable(),
35318
+ filterEventPresets: z55.string().nullable(),
34966
35319
  scheduleScope: eventScheduleScopeSchema2,
34967
- filterCategoryIds: z54.string().nullable().optional(),
34968
- filterStaffMemberId: z54.string().nullable().optional(),
34969
- filterVenueId: z54.string().nullable().optional(),
34970
- fetchInitialEventsOnMount: z54.boolean()
35320
+ filterCategoryIds: z55.string().nullable().optional(),
35321
+ filterStaffMemberId: z55.string().nullable().optional(),
35322
+ filterVenueId: z55.string().nullable().optional(),
35323
+ fetchInitialEventsOnMount: z55.boolean()
34971
35324
  });
34972
- eventListingRenderSchema = z54.object({
35325
+ eventListingRenderSchema = z55.object({
34973
35326
  display: eventListingDisplaySchema,
34974
35327
  hydration: eventListingHydrationSchema
34975
35328
  });
34976
35329
  eventListingIslandMetaCodec = createZodCodec(
34977
- z54.object({
34978
- siteId: z54.string(),
34979
- apiBaseUrl: z54.string().optional(),
35330
+ z55.object({
35331
+ siteId: z55.string(),
35332
+ apiBaseUrl: z55.string().optional(),
34980
35333
  stage: previewStageSchema.optional()
34981
35334
  })
34982
35335
  );
@@ -35066,7 +35419,6 @@ var init_event_listing = __esm({
35066
35419
  "../blocks/src/system/blocks/events/event-listing.ts"() {
35067
35420
  "use strict";
35068
35421
  init_builder2();
35069
- init_builder2();
35070
35422
  init_styledSection();
35071
35423
  init_fragments();
35072
35424
  init_boxStyles();
@@ -35231,18 +35583,7 @@ var init_event_listing = __esm({
35231
35583
  eventListingLayout = [
35232
35584
  styledSection({
35233
35585
  children: sectionContainer([
35234
- // Optional heading
35235
- text(
35236
- { as: "h2" },
35237
- bind("content.heading"),
35238
- when("content.heading")
35239
- ),
35240
- // Optional description
35241
- richText(
35242
- { className: "rb-prose rb-max-w-none" },
35243
- bind("content.description"),
35244
- when("content.description")
35245
- ),
35586
+ ...eventSectionHeaderLayoutNodes(),
35246
35587
  // Event listing component with pagination
35247
35588
  el("event-listing", withApiBindings({
35248
35589
  events: { $bind: { from: "data.events" } },
@@ -35360,7 +35701,7 @@ var init_event_listing = __esm({
35360
35701
  });
35361
35702
 
35362
35703
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
35363
- import { z as z55 } from "zod";
35704
+ import { z as z56 } from "zod";
35364
35705
  function buildEventCalendarDisplay(source) {
35365
35706
  const listLayout = source.listLayout ?? source.layout ?? "stack";
35366
35707
  return {
@@ -35414,14 +35755,14 @@ var init_EventCalendar_interactive = __esm({
35414
35755
  init_runtime();
35415
35756
  init_contract_schemas();
35416
35757
  init_listOptions();
35417
- eventBlockKindSchema2 = z55.enum(eventBlockKindValues);
35418
- eventSurfaceScopeSchema2 = z55.enum(eventSurfaceScopeValues);
35419
- eventScheduleScopeSchema3 = z55.enum(eventScheduleScopeValues);
35420
- eventCalendarSourceSchema = z55.object(
35758
+ eventBlockKindSchema2 = z56.enum(eventBlockKindValues);
35759
+ eventSurfaceScopeSchema2 = z56.enum(eventSurfaceScopeValues);
35760
+ eventScheduleScopeSchema3 = z56.enum(eventScheduleScopeValues);
35761
+ eventCalendarSourceSchema = z56.object(
35421
35762
  {
35422
- events: z55.array(publicEventSchema).nullable().optional(),
35423
- siteId: z55.string(),
35424
- apiBaseUrl: z55.string().optional(),
35763
+ events: z56.array(publicEventSchema).nullable().optional(),
35764
+ siteId: z56.string(),
35765
+ apiBaseUrl: z56.string().optional(),
35425
35766
  stage: previewStageSchema.optional(),
35426
35767
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
35427
35768
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -35429,38 +35770,38 @@ var init_EventCalendar_interactive = __esm({
35429
35770
  listColumns: columnOptionSchema.optional(),
35430
35771
  layout: eventLayoutSchema.optional(),
35431
35772
  columns: columnOptionSchema.optional(),
35432
- eventsPerPage: z55.string().optional(),
35433
- paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
35434
- seeAllUrl: z55.string().optional(),
35435
- loadMoreText: z55.string().optional(),
35773
+ eventsPerPage: z56.string().optional(),
35774
+ paginationMode: z56.enum(["loadMore", "seeAllLink"]).optional(),
35775
+ seeAllUrl: z56.string().optional(),
35776
+ loadMoreText: z56.string().optional(),
35436
35777
  startOfWeek: weekStartSchema.optional(),
35437
35778
  calendarTabViews: calendarTabViewsSchema.optional(),
35438
35779
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
35439
- showFilters: z55.boolean().nullable().optional(),
35780
+ showFilters: z56.boolean().nullable().optional(),
35440
35781
  showCategoryFilter: filterAutoShowSchema.optional(),
35441
- showVenueFilter: z55.boolean().nullable().optional(),
35442
- showStaffFilter: z55.boolean().nullable().optional(),
35782
+ showVenueFilter: z56.boolean().nullable().optional(),
35783
+ showStaffFilter: z56.boolean().nullable().optional(),
35443
35784
  kind: eventBlockKindSchema2.nullable().optional(),
35444
35785
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
35445
- filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
35786
+ filterEventPresets: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
35446
35787
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
35447
- filterCategoryIds: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
35448
- filterStaffMemberId: z55.string().nullable().optional(),
35449
- filterVenueId: z55.string().nullable().optional(),
35788
+ filterCategoryIds: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
35789
+ filterStaffMemberId: z56.string().nullable().optional(),
35790
+ filterVenueId: z56.string().nullable().optional(),
35450
35791
  buttonVariant: eventButtonVariantSchema.optional(),
35451
- buttonText: z55.string().optional(),
35452
- showVenue: z55.boolean().nullable().optional(),
35453
- showMap: z55.boolean().nullable().optional(),
35454
- showCapacity: z55.boolean().nullable().optional(),
35455
- emptyMessage: z55.string().optional(),
35456
- className: z55.string().optional()
35792
+ buttonText: z56.string().optional(),
35793
+ showVenue: z56.boolean().nullable().optional(),
35794
+ showMap: z56.boolean().nullable().optional(),
35795
+ showCapacity: z56.boolean().nullable().optional(),
35796
+ emptyMessage: z56.string().optional(),
35797
+ className: z56.string().optional()
35457
35798
  }
35458
35799
  );
35459
- eventCalendarDisplaySchema = z55.object({
35460
- kind: z55.literal("event-calendar"),
35800
+ eventCalendarDisplaySchema = z56.object({
35801
+ kind: z56.literal("event-calendar"),
35461
35802
  displayMode: eventCalendarDisplayModeSchema,
35462
- className: z55.string().nullable(),
35463
- events: z55.array(publicEventSchema),
35803
+ className: z56.string().nullable(),
35804
+ events: z56.array(publicEventSchema),
35464
35805
  listLayout: eventLayoutSchema,
35465
35806
  listColumns: columnOptionSchema,
35466
35807
  eventsPerPage: eventPageSizeSchema,
@@ -35468,41 +35809,41 @@ var init_EventCalendar_interactive = __esm({
35468
35809
  startOfWeek: weekStartSchema,
35469
35810
  calendarTabViews: calendarTabViewsSchema,
35470
35811
  defaultCalendarView: eventCalendarDefaultViewSchema,
35471
- showFilters: z55.boolean(),
35812
+ showFilters: z56.boolean(),
35472
35813
  showCategoryFilter: filterAutoShowSchema,
35473
- showVenueFilter: z55.boolean(),
35474
- showStaffFilter: z55.boolean(),
35814
+ showVenueFilter: z56.boolean(),
35815
+ showStaffFilter: z56.boolean(),
35475
35816
  eventKind: eventBlockKindSchema2,
35476
35817
  eventSurface: eventSurfaceScopeSchema2,
35477
- filterEventPresets: z55.string().nullable(),
35818
+ filterEventPresets: z56.string().nullable(),
35478
35819
  scheduleScope: eventScheduleScopeSchema3,
35479
- filterCategoryIds: z55.string().nullable(),
35480
- filterStaffMemberId: z55.string().nullable(),
35481
- filterVenueId: z55.string().nullable(),
35820
+ filterCategoryIds: z56.string().nullable(),
35821
+ filterStaffMemberId: z56.string().nullable(),
35822
+ filterVenueId: z56.string().nullable(),
35482
35823
  buttonVariant: eventButtonVariantSchema,
35483
- buttonText: z55.string(),
35484
- showVenue: z55.boolean(),
35485
- showMap: z55.boolean(),
35486
- showCapacity: z55.boolean(),
35487
- emptyMessage: z55.string()
35488
- });
35489
- eventCalendarHydrationSchema = z55.object({
35490
- siteId: z55.string(),
35824
+ buttonText: z56.string(),
35825
+ showVenue: z56.boolean(),
35826
+ showMap: z56.boolean(),
35827
+ showCapacity: z56.boolean(),
35828
+ emptyMessage: z56.string()
35829
+ });
35830
+ eventCalendarHydrationSchema = z56.object({
35831
+ siteId: z56.string(),
35491
35832
  stage: previewStageSchema.optional(),
35492
- prefetchedEvents: z55.boolean(),
35833
+ prefetchedEvents: z56.boolean(),
35493
35834
  eventKind: eventBlockKindSchema2,
35494
35835
  eventSurface: eventSurfaceScopeSchema2,
35495
- filterEventPresets: z55.string().nullable(),
35836
+ filterEventPresets: z56.string().nullable(),
35496
35837
  scheduleScope: eventScheduleScopeSchema3
35497
35838
  });
35498
- eventCalendarRenderSchema = z55.object({
35839
+ eventCalendarRenderSchema = z56.object({
35499
35840
  display: eventCalendarDisplaySchema,
35500
35841
  hydration: eventCalendarHydrationSchema
35501
35842
  });
35502
35843
  eventCalendarIslandMetaCodec = createZodCodec(
35503
- z55.object({
35504
- siteId: z55.string(),
35505
- apiBaseUrl: z55.string().optional(),
35844
+ z56.object({
35845
+ siteId: z56.string(),
35846
+ apiBaseUrl: z56.string().optional(),
35506
35847
  stage: previewStageSchema.optional()
35507
35848
  })
35508
35849
  );
@@ -35583,7 +35924,6 @@ var init_event_calendar = __esm({
35583
35924
  "use strict";
35584
35925
  init_schema2();
35585
35926
  init_builder2();
35586
- init_builder2();
35587
35927
  init_styledSection();
35588
35928
  init_fragments();
35589
35929
  init_boxStyles();
@@ -35596,14 +35936,7 @@ var init_event_calendar = __esm({
35596
35936
  styledSection({
35597
35937
  children: sectionContainer(
35598
35938
  [
35599
- // Optional heading
35600
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
35601
- // Optional description
35602
- richText(
35603
- { className: "rb-prose rb-max-w-none" },
35604
- bind("content.description"),
35605
- when("content.description")
35606
- ),
35939
+ ...eventSectionHeaderLayoutNodes(),
35607
35940
  // Event calendar component (handles all display modes)
35608
35941
  el(
35609
35942
  "event-calendar",
@@ -36356,7 +36689,7 @@ var init_model = __esm({
36356
36689
  });
36357
36690
 
36358
36691
  // ../blocks/src/system/blocks/offerings-preview/index.ts
36359
- import { z as z56 } from "zod";
36692
+ import { z as z57 } from "zod";
36360
36693
  function eventPresetLoader(preset2) {
36361
36694
  return {
36362
36695
  endpoint: "listPublicEvents",
@@ -36479,13 +36812,13 @@ var init_offerings_preview = __esm({
36479
36812
  init_shared3();
36480
36813
  init_shared4();
36481
36814
  init_model();
36482
- publicRouteCandidatesSchema = z56.object({
36483
- routes: z56.array(z56.object({
36484
- entityId: z56.string(),
36485
- path: z56.string(),
36486
- title: z56.string(),
36487
- kind: z56.enum(["page", "content"]),
36488
- contentTypeKey: z56.string().nullable().optional()
36815
+ publicRouteCandidatesSchema = z57.object({
36816
+ routes: z57.array(z57.object({
36817
+ entityId: z57.string(),
36818
+ path: z57.string(),
36819
+ title: z57.string(),
36820
+ kind: z57.enum(["page", "content"]),
36821
+ contentTypeKey: z57.string().nullable().optional()
36489
36822
  }))
36490
36823
  });
36491
36824
  groupOverrideFields = [
@@ -36775,7 +37108,7 @@ var init_offerings_preview = __esm({
36775
37108
  });
36776
37109
 
36777
37110
  // ../blocks/src/system/blocks/embed.ts
36778
- import { z as z57 } from "zod";
37111
+ import { z as z58 } from "zod";
36779
37112
  var embedFields, embedLayout2, embedManifest, embedEntrySchema, embedBlockDefinition;
36780
37113
  var init_embed = __esm({
36781
37114
  "../blocks/src/system/blocks/embed.ts"() {
@@ -37015,18 +37348,18 @@ var init_embed = __esm({
37015
37348
  spacing: "lg"
37016
37349
  }
37017
37350
  });
37018
- embedEntrySchema = z57.object({
37019
- id: z57.string(),
37020
- identifier: z57.string(),
37021
- title: z57.string(),
37022
- slug: z57.string().nullable().optional(),
37023
- content: z57.record(z57.string(), z57.unknown()).optional(),
37024
- publishedAt: z57.string().nullable().optional()
37351
+ embedEntrySchema = z58.object({
37352
+ id: z58.string(),
37353
+ identifier: z58.string(),
37354
+ title: z58.string(),
37355
+ slug: z58.string().nullable().optional(),
37356
+ content: z58.record(z58.string(), z58.unknown()).optional(),
37357
+ publishedAt: z58.string().nullable().optional()
37025
37358
  });
37026
37359
  embedBlockDefinition = {
37027
37360
  manifest: embedManifest,
37028
37361
  dataSchemas: {
37029
- entries: z57.array(embedEntrySchema).optional()
37362
+ entries: z58.array(embedEntrySchema).optional()
37030
37363
  },
37031
37364
  dataLoaders: {
37032
37365
  entries: {
@@ -38256,50 +38589,50 @@ var init_file_download = __esm({
38256
38589
  });
38257
38590
 
38258
38591
  // ../blocks/src/system/blocks/products/shared.ts
38259
- import { z as z58 } from "zod";
38592
+ import { z as z59 } from "zod";
38260
38593
  var publicProductVariantSchema, publicProductSchema, publicProductsResponseSchema;
38261
38594
  var init_shared6 = __esm({
38262
38595
  "../blocks/src/system/blocks/products/shared.ts"() {
38263
38596
  "use strict";
38264
- publicProductVariantSchema = z58.object({
38265
- id: z58.string(),
38266
- title: z58.string(),
38267
- sku: z58.string().nullable(),
38268
- priceCents: z58.number(),
38269
- stockQuantity: z58.number().nullable(),
38270
- soldOut: z58.boolean()
38271
- });
38272
- publicProductSchema = z58.object({
38273
- id: z58.string(),
38274
- contentEntryId: z58.string().nullable(),
38275
- title: z58.string(),
38276
- slug: z58.string(),
38277
- path: z58.string().nullable(),
38278
- status: z58.enum(["draft", "active"]),
38279
- priceCents: z58.number(),
38280
- currency: z58.string(),
38281
- productType: z58.enum(["physical", "digital"]),
38282
- requiresShipping: z58.boolean(),
38283
- hasVariants: z58.boolean(),
38284
- trackInventory: z58.boolean(),
38285
- soldOut: z58.boolean(),
38286
- category: z58.object({
38287
- id: z58.string(),
38288
- name: z58.string(),
38289
- slug: z58.string()
38597
+ publicProductVariantSchema = z59.object({
38598
+ id: z59.string(),
38599
+ title: z59.string(),
38600
+ sku: z59.string().nullable(),
38601
+ priceCents: z59.number(),
38602
+ stockQuantity: z59.number().nullable(),
38603
+ soldOut: z59.boolean()
38604
+ });
38605
+ publicProductSchema = z59.object({
38606
+ id: z59.string(),
38607
+ contentEntryId: z59.string().nullable(),
38608
+ title: z59.string(),
38609
+ slug: z59.string(),
38610
+ path: z59.string().nullable(),
38611
+ status: z59.enum(["draft", "active"]),
38612
+ priceCents: z59.number(),
38613
+ currency: z59.string(),
38614
+ productType: z59.enum(["physical", "digital"]),
38615
+ requiresShipping: z59.boolean(),
38616
+ hasVariants: z59.boolean(),
38617
+ trackInventory: z59.boolean(),
38618
+ soldOut: z59.boolean(),
38619
+ category: z59.object({
38620
+ id: z59.string(),
38621
+ name: z59.string(),
38622
+ slug: z59.string()
38290
38623
  }).nullable(),
38291
- summary: z58.string().nullable(),
38292
- body: z58.unknown().nullable(),
38293
- gallery: z58.array(
38294
- z58.object({
38295
- url: z58.string(),
38296
- alt: z58.string().nullable()
38624
+ summary: z59.string().nullable(),
38625
+ body: z59.unknown().nullable(),
38626
+ gallery: z59.array(
38627
+ z59.object({
38628
+ url: z59.string(),
38629
+ alt: z59.string().nullable()
38297
38630
  })
38298
38631
  ),
38299
- variants: z58.array(publicProductVariantSchema)
38632
+ variants: z59.array(publicProductVariantSchema)
38300
38633
  });
38301
- publicProductsResponseSchema = z58.object({
38302
- products: z58.array(publicProductSchema)
38634
+ publicProductsResponseSchema = z59.object({
38635
+ products: z59.array(publicProductSchema)
38303
38636
  });
38304
38637
  }
38305
38638
  });
@@ -38370,7 +38703,7 @@ var init_creditProducts = __esm({
38370
38703
  });
38371
38704
 
38372
38705
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
38373
- import { z as z59 } from "zod";
38706
+ import { z as z60 } from "zod";
38374
38707
  function deriveCommerceCheckoutState(state) {
38375
38708
  if (state.items.length === 0) {
38376
38709
  return { kind: "empty" };
@@ -38409,26 +38742,26 @@ var storedProductCartItemSchema, storedPassCartItemSchema;
38409
38742
  var init_shop_commerce_shared = __esm({
38410
38743
  "../blocks/src/system/runtime/nodes/shop-commerce.shared.ts"() {
38411
38744
  "use strict";
38412
- storedProductCartItemSchema = z59.object({
38413
- kind: z59.literal("product"),
38414
- productId: z59.string().min(1),
38415
- productCategoryId: z59.string().min(1).optional().nullable(),
38416
- variantId: z59.string().min(1).optional().nullable(),
38417
- title: z59.string().min(1),
38418
- variantTitle: z59.string().optional().nullable(),
38419
- quantity: z59.number().finite(),
38420
- unitPriceCents: z59.number().finite(),
38421
- currency: z59.string().min(1),
38422
- imageUrl: z59.string().optional().nullable(),
38423
- soldOut: z59.boolean().optional()
38745
+ storedProductCartItemSchema = z60.object({
38746
+ kind: z60.literal("product"),
38747
+ productId: z60.string().min(1),
38748
+ productCategoryId: z60.string().min(1).optional().nullable(),
38749
+ variantId: z60.string().min(1).optional().nullable(),
38750
+ title: z60.string().min(1),
38751
+ variantTitle: z60.string().optional().nullable(),
38752
+ quantity: z60.number().finite(),
38753
+ unitPriceCents: z60.number().finite(),
38754
+ currency: z60.string().min(1),
38755
+ imageUrl: z60.string().optional().nullable(),
38756
+ soldOut: z60.boolean().optional()
38424
38757
  });
38425
- storedPassCartItemSchema = z59.object({
38426
- kind: z59.literal("pass"),
38427
- passId: z59.string().min(1),
38428
- title: z59.string().min(1),
38429
- quantity: z59.number().finite().optional(),
38430
- unitPriceCents: z59.number().finite(),
38431
- currency: z59.string().min(1)
38758
+ storedPassCartItemSchema = z60.object({
38759
+ kind: z60.literal("pass"),
38760
+ passId: z60.string().min(1),
38761
+ title: z60.string().min(1),
38762
+ quantity: z60.number().finite().optional(),
38763
+ unitPriceCents: z60.number().finite(),
38764
+ currency: z60.string().min(1)
38432
38765
  });
38433
38766
  }
38434
38767
  });
@@ -38638,7 +38971,7 @@ var init_display = __esm({
38638
38971
  });
38639
38972
 
38640
38973
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
38641
- import { z as z60 } from "zod";
38974
+ import { z as z61 } from "zod";
38642
38975
  function resolveShowPricePerCredit(source) {
38643
38976
  return source.showPricePerCredit ?? true;
38644
38977
  }
@@ -38666,211 +38999,211 @@ var init_shop_interactive = __esm({
38666
38999
  init_islands();
38667
39000
  init_runtime();
38668
39001
  init_contract_schemas();
38669
- shopModeSchema = z60.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
38670
- contentEntrySchema3 = z60.object({
38671
- id: z60.string().nullable().optional(),
38672
- slug: z60.string().nullable().optional()
39002
+ shopModeSchema = z61.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
39003
+ contentEntrySchema3 = z61.object({
39004
+ id: z61.string().nullable().optional(),
39005
+ slug: z61.string().nullable().optional()
38673
39006
  }).nullable();
38674
- shopSourceSchema = z60.object({
38675
- className: z60.string().nullable().optional(),
39007
+ shopSourceSchema = z61.object({
39008
+ className: z61.string().nullable().optional(),
38676
39009
  mode: shopModeSchema.optional(),
38677
- heading: z60.string().nullable().optional(),
38678
- productSlug: z60.string().nullable().optional(),
38679
- showPasses: z60.boolean().optional(),
38680
- showMemberships: z60.boolean().optional(),
38681
- layout: z60.enum(["grid", "list"]).optional(),
38682
- columns: z60.string().optional(),
38683
- showDescriptions: z60.boolean().optional(),
38684
- showSummary: z60.boolean().optional(),
38685
- showBody: z60.boolean().optional(),
38686
- showPrices: z60.boolean().optional(),
38687
- showValidityPeriod: z60.boolean().optional(),
38688
- showPricePerCredit: z60.boolean().nullable().optional(),
38689
- passesHeading: z60.string().optional(),
38690
- membershipsHeading: z60.string().optional(),
38691
- buyButtonText: z60.string().optional(),
38692
- addButtonText: z60.string().optional(),
38693
- passPurchaseMode: z60.enum(["add_to_cart", "buy_now"]).optional(),
38694
- subscribeButtonText: z60.string().optional(),
38695
- emptyStateText: z60.string().optional(),
38696
- checkoutButtonText: z60.string().optional(),
38697
- clearButtonText: z60.string().optional(),
38698
- submitButtonText: z60.string().optional(),
39010
+ heading: z61.string().nullable().optional(),
39011
+ productSlug: z61.string().nullable().optional(),
39012
+ showPasses: z61.boolean().optional(),
39013
+ showMemberships: z61.boolean().optional(),
39014
+ layout: z61.enum(["grid", "list"]).optional(),
39015
+ columns: z61.string().optional(),
39016
+ showDescriptions: z61.boolean().optional(),
39017
+ showSummary: z61.boolean().optional(),
39018
+ showBody: z61.boolean().optional(),
39019
+ showPrices: z61.boolean().optional(),
39020
+ showValidityPeriod: z61.boolean().optional(),
39021
+ showPricePerCredit: z61.boolean().nullable().optional(),
39022
+ passesHeading: z61.string().optional(),
39023
+ membershipsHeading: z61.string().optional(),
39024
+ buyButtonText: z61.string().optional(),
39025
+ addButtonText: z61.string().optional(),
39026
+ passPurchaseMode: z61.enum(["add_to_cart", "buy_now"]).optional(),
39027
+ subscribeButtonText: z61.string().optional(),
39028
+ emptyStateText: z61.string().optional(),
39029
+ checkoutButtonText: z61.string().optional(),
39030
+ clearButtonText: z61.string().optional(),
39031
+ submitButtonText: z61.string().optional(),
38699
39032
  contentEntry: contentEntrySchema3.optional(),
38700
- passes: z60.array(publicPassProductSchema).nullable().optional(),
38701
- memberships: z60.array(publicMembershipProductSchema).nullable().optional(),
38702
- products: z60.array(publicProductSchema).nullable().optional(),
38703
- siteId: z60.string().optional(),
38704
- apiBaseUrl: z60.string().optional(),
39033
+ passes: z61.array(publicPassProductSchema).nullable().optional(),
39034
+ memberships: z61.array(publicMembershipProductSchema).nullable().optional(),
39035
+ products: z61.array(publicProductSchema).nullable().optional(),
39036
+ siteId: z61.string().optional(),
39037
+ apiBaseUrl: z61.string().optional(),
38705
39038
  stage: previewStageSchema.optional()
38706
39039
  });
38707
- productVariantOptionDisplaySchema = z60.object({
38708
- id: z60.string(),
38709
- label: z60.string(),
38710
- soldOut: z60.boolean()
38711
- });
38712
- productCardDisplaySchema = z60.object({
38713
- productId: z60.string(),
38714
- title: z60.string(),
38715
- path: z60.string().nullable(),
38716
- summary: z60.string().nullable(),
38717
- priceLabel: z60.string().nullable(),
38718
- image: z60.object({
38719
- url: z60.string(),
38720
- alt: z60.string().nullable()
39040
+ productVariantOptionDisplaySchema = z61.object({
39041
+ id: z61.string(),
39042
+ label: z61.string(),
39043
+ soldOut: z61.boolean()
39044
+ });
39045
+ productCardDisplaySchema = z61.object({
39046
+ productId: z61.string(),
39047
+ title: z61.string(),
39048
+ path: z61.string().nullable(),
39049
+ summary: z61.string().nullable(),
39050
+ priceLabel: z61.string().nullable(),
39051
+ image: z61.object({
39052
+ url: z61.string(),
39053
+ alt: z61.string().nullable()
38721
39054
  }).nullable(),
38722
- variantOptions: z60.array(productVariantOptionDisplaySchema),
38723
- selectedVariantId: z60.string().nullable(),
38724
- selectionLabel: z60.string(),
38725
- actionLabel: z60.string(),
38726
- soldOut: z60.boolean()
38727
- });
38728
- productListDisplaySchema = z60.object({
38729
- kind: z60.literal("product-list"),
38730
- state: z60.enum(["empty", "ready"]),
38731
- heading: z60.string().nullable(),
38732
- className: z60.string().nullable(),
38733
- layout: z60.enum(["grid", "list"]),
38734
- columns: z60.string(),
38735
- emptyMessage: z60.string(),
38736
- cards: z60.array(productCardDisplaySchema)
38737
- });
38738
- productDetailDisplaySchema = z60.discriminatedUnion("state", [
38739
- z60.object({
38740
- kind: z60.literal("product-detail"),
38741
- state: z60.literal("empty"),
38742
- heading: z60.string().nullable(),
38743
- className: z60.string().nullable(),
38744
- emptyMessage: z60.string()
39055
+ variantOptions: z61.array(productVariantOptionDisplaySchema),
39056
+ selectedVariantId: z61.string().nullable(),
39057
+ selectionLabel: z61.string(),
39058
+ actionLabel: z61.string(),
39059
+ soldOut: z61.boolean()
39060
+ });
39061
+ productListDisplaySchema = z61.object({
39062
+ kind: z61.literal("product-list"),
39063
+ state: z61.enum(["empty", "ready"]),
39064
+ heading: z61.string().nullable(),
39065
+ className: z61.string().nullable(),
39066
+ layout: z61.enum(["grid", "list"]),
39067
+ columns: z61.string(),
39068
+ emptyMessage: z61.string(),
39069
+ cards: z61.array(productCardDisplaySchema)
39070
+ });
39071
+ productDetailDisplaySchema = z61.discriminatedUnion("state", [
39072
+ z61.object({
39073
+ kind: z61.literal("product-detail"),
39074
+ state: z61.literal("empty"),
39075
+ heading: z61.string().nullable(),
39076
+ className: z61.string().nullable(),
39077
+ emptyMessage: z61.string()
38745
39078
  }),
38746
- z60.object({
38747
- kind: z60.literal("product-detail"),
38748
- state: z60.literal("ready"),
38749
- heading: z60.string().nullable(),
38750
- className: z60.string().nullable(),
38751
- title: z60.string(),
38752
- priceLabel: z60.string(),
38753
- summary: z60.string().nullable(),
38754
- categoryLabel: z60.string().nullable(),
38755
- gallery: z60.array(z60.object({
38756
- url: z60.string(),
38757
- alt: z60.string().nullable()
39079
+ z61.object({
39080
+ kind: z61.literal("product-detail"),
39081
+ state: z61.literal("ready"),
39082
+ heading: z61.string().nullable(),
39083
+ className: z61.string().nullable(),
39084
+ title: z61.string(),
39085
+ priceLabel: z61.string(),
39086
+ summary: z61.string().nullable(),
39087
+ categoryLabel: z61.string().nullable(),
39088
+ gallery: z61.array(z61.object({
39089
+ url: z61.string(),
39090
+ alt: z61.string().nullable()
38758
39091
  })),
38759
- variantOptions: z60.array(productVariantOptionDisplaySchema),
38760
- selectedVariantId: z60.string().nullable(),
38761
- selectionLabel: z60.string(),
38762
- actionLabel: z60.string(),
38763
- soldOut: z60.boolean(),
38764
- body: z60.unknown().nullable()
39092
+ variantOptions: z61.array(productVariantOptionDisplaySchema),
39093
+ selectedVariantId: z61.string().nullable(),
39094
+ selectionLabel: z61.string(),
39095
+ actionLabel: z61.string(),
39096
+ soldOut: z61.boolean(),
39097
+ body: z61.unknown().nullable()
38765
39098
  })
38766
39099
  ]);
38767
- passCardDisplaySchema = z60.object({
38768
- id: z60.string(),
38769
- title: z60.string(),
38770
- description: z60.string().nullable(),
38771
- priceLabel: z60.string(),
38772
- creditsLabel: z60.string(),
38773
- perCreditLabel: z60.string().nullable(),
38774
- validityLabel: z60.string().nullable(),
38775
- actionLabel: z60.string()
38776
- });
38777
- membershipCardDisplaySchema = z60.object({
38778
- id: z60.string(),
38779
- title: z60.string(),
38780
- description: z60.string().nullable(),
38781
- priceLabel: z60.string(),
38782
- intervalLabel: z60.string(),
38783
- actionLabel: z60.string()
38784
- });
38785
- passesMembershipsDisplaySchema = z60.object({
38786
- kind: z60.literal("passes-memberships"),
38787
- state: z60.enum(["empty", "ready"]),
38788
- className: z60.string().nullable(),
38789
- layout: z60.enum(["grid", "list"]),
38790
- columns: z60.string(),
38791
- emptyMessage: z60.string(),
38792
- passesHeading: z60.string(),
38793
- membershipsHeading: z60.string(),
38794
- passes: z60.array(passCardDisplaySchema),
38795
- memberships: z60.array(membershipCardDisplaySchema)
38796
- });
38797
- cartLineDisplaySchema = z60.object({
38798
- key: z60.string(),
38799
- title: z60.string(),
38800
- priceLabel: z60.string(),
38801
- quantity: z60.number(),
38802
- quantityEditable: z60.boolean()
38803
- });
38804
- cartDisplaySchema = z60.object({
38805
- kind: z60.literal("cart"),
38806
- state: z60.enum(["empty", "ready"]),
38807
- heading: z60.string().nullable(),
38808
- className: z60.string().nullable(),
38809
- emptyMessage: z60.string(),
38810
- supportText: z60.string().nullable(),
38811
- items: z60.array(cartLineDisplaySchema),
38812
- subtotalLabel: z60.string().nullable(),
38813
- checkoutButtonText: z60.string(),
38814
- clearButtonText: z60.string()
38815
- });
38816
- checkoutDisplaySchema = z60.object({
38817
- kind: z60.literal("checkout"),
38818
- state: z60.enum(["empty", "blocked", "ready"]),
38819
- heading: z60.string().nullable(),
38820
- className: z60.string().nullable(),
38821
- message: z60.string().nullable(),
38822
- submitButtonText: z60.string()
38823
- });
38824
- passesMembershipsHydrationSchema = z60.object({
38825
- passes: z60.array(publicPassProductSchema),
38826
- memberships: z60.array(publicMembershipProductSchema),
38827
- passPurchaseMode: z60.enum(["add_to_cart", "buy_now"])
38828
- });
38829
- productListHydrationSchema = z60.object({
38830
- products: z60.array(publicProductSchema),
38831
- showSummary: z60.boolean(),
38832
- showPrices: z60.boolean(),
38833
- addButtonText: z60.string()
38834
- });
38835
- productDetailHydrationSchema = z60.object({
38836
- products: z60.array(publicProductSchema),
38837
- productId: z60.string().nullable(),
38838
- showSummary: z60.boolean(),
38839
- showBody: z60.boolean(),
38840
- addButtonText: z60.string()
38841
- });
38842
- cartHydrationSchema = z60.object({
38843
- emptyStateText: z60.string(),
38844
- checkoutButtonText: z60.string(),
38845
- clearButtonText: z60.string()
38846
- });
38847
- checkoutHydrationSchema = z60.object({
38848
- emptyStateText: z60.string(),
38849
- submitButtonText: z60.string()
38850
- });
38851
- passesMembershipsRenderSchema = z60.object({
39100
+ passCardDisplaySchema = z61.object({
39101
+ id: z61.string(),
39102
+ title: z61.string(),
39103
+ description: z61.string().nullable(),
39104
+ priceLabel: z61.string(),
39105
+ creditsLabel: z61.string(),
39106
+ perCreditLabel: z61.string().nullable(),
39107
+ validityLabel: z61.string().nullable(),
39108
+ actionLabel: z61.string()
39109
+ });
39110
+ membershipCardDisplaySchema = z61.object({
39111
+ id: z61.string(),
39112
+ title: z61.string(),
39113
+ description: z61.string().nullable(),
39114
+ priceLabel: z61.string(),
39115
+ intervalLabel: z61.string(),
39116
+ actionLabel: z61.string()
39117
+ });
39118
+ passesMembershipsDisplaySchema = z61.object({
39119
+ kind: z61.literal("passes-memberships"),
39120
+ state: z61.enum(["empty", "ready"]),
39121
+ className: z61.string().nullable(),
39122
+ layout: z61.enum(["grid", "list"]),
39123
+ columns: z61.string(),
39124
+ emptyMessage: z61.string(),
39125
+ passesHeading: z61.string(),
39126
+ membershipsHeading: z61.string(),
39127
+ passes: z61.array(passCardDisplaySchema),
39128
+ memberships: z61.array(membershipCardDisplaySchema)
39129
+ });
39130
+ cartLineDisplaySchema = z61.object({
39131
+ key: z61.string(),
39132
+ title: z61.string(),
39133
+ priceLabel: z61.string(),
39134
+ quantity: z61.number(),
39135
+ quantityEditable: z61.boolean()
39136
+ });
39137
+ cartDisplaySchema = z61.object({
39138
+ kind: z61.literal("cart"),
39139
+ state: z61.enum(["empty", "ready"]),
39140
+ heading: z61.string().nullable(),
39141
+ className: z61.string().nullable(),
39142
+ emptyMessage: z61.string(),
39143
+ supportText: z61.string().nullable(),
39144
+ items: z61.array(cartLineDisplaySchema),
39145
+ subtotalLabel: z61.string().nullable(),
39146
+ checkoutButtonText: z61.string(),
39147
+ clearButtonText: z61.string()
39148
+ });
39149
+ checkoutDisplaySchema = z61.object({
39150
+ kind: z61.literal("checkout"),
39151
+ state: z61.enum(["empty", "blocked", "ready"]),
39152
+ heading: z61.string().nullable(),
39153
+ className: z61.string().nullable(),
39154
+ message: z61.string().nullable(),
39155
+ submitButtonText: z61.string()
39156
+ });
39157
+ passesMembershipsHydrationSchema = z61.object({
39158
+ passes: z61.array(publicPassProductSchema),
39159
+ memberships: z61.array(publicMembershipProductSchema),
39160
+ passPurchaseMode: z61.enum(["add_to_cart", "buy_now"])
39161
+ });
39162
+ productListHydrationSchema = z61.object({
39163
+ products: z61.array(publicProductSchema),
39164
+ showSummary: z61.boolean(),
39165
+ showPrices: z61.boolean(),
39166
+ addButtonText: z61.string()
39167
+ });
39168
+ productDetailHydrationSchema = z61.object({
39169
+ products: z61.array(publicProductSchema),
39170
+ productId: z61.string().nullable(),
39171
+ showSummary: z61.boolean(),
39172
+ showBody: z61.boolean(),
39173
+ addButtonText: z61.string()
39174
+ });
39175
+ cartHydrationSchema = z61.object({
39176
+ emptyStateText: z61.string(),
39177
+ checkoutButtonText: z61.string(),
39178
+ clearButtonText: z61.string()
39179
+ });
39180
+ checkoutHydrationSchema = z61.object({
39181
+ emptyStateText: z61.string(),
39182
+ submitButtonText: z61.string()
39183
+ });
39184
+ passesMembershipsRenderSchema = z61.object({
38852
39185
  display: passesMembershipsDisplaySchema,
38853
39186
  hydration: passesMembershipsHydrationSchema
38854
39187
  });
38855
- productListRenderSchema = z60.object({
39188
+ productListRenderSchema = z61.object({
38856
39189
  display: productListDisplaySchema,
38857
39190
  hydration: productListHydrationSchema
38858
39191
  });
38859
- productDetailRenderSchema = z60.object({
39192
+ productDetailRenderSchema = z61.object({
38860
39193
  display: productDetailDisplaySchema,
38861
39194
  hydration: productDetailHydrationSchema
38862
39195
  });
38863
- cartRenderSchema = z60.object({
39196
+ cartRenderSchema = z61.object({
38864
39197
  display: cartDisplaySchema,
38865
39198
  hydration: cartHydrationSchema
38866
39199
  });
38867
- checkoutRenderSchema = z60.object({
39200
+ checkoutRenderSchema = z61.object({
38868
39201
  display: checkoutDisplaySchema,
38869
39202
  hydration: checkoutHydrationSchema
38870
39203
  });
38871
- shopIslandMetaCodec = createZodCodec(z60.object({
38872
- siteId: z60.string().optional(),
38873
- apiBaseUrl: z60.string().optional(),
39204
+ shopIslandMetaCodec = createZodCodec(z61.object({
39205
+ siteId: z61.string().optional(),
39206
+ apiBaseUrl: z61.string().optional(),
38874
39207
  stage: previewStageSchema.optional()
38875
39208
  }));
38876
39209
  shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -39276,7 +39609,7 @@ var init_shop = __esm({
39276
39609
  });
39277
39610
 
39278
39611
  // ../blocks/src/system/blocks/product-list.ts
39279
- import { z as z61 } from "zod";
39612
+ import { z as z62 } from "zod";
39280
39613
  var productListManifest, productListBlockDefinition, productListDataSchema;
39281
39614
  var init_product_list = __esm({
39282
39615
  "../blocks/src/system/blocks/product-list.ts"() {
@@ -39421,7 +39754,7 @@ var init_product_list = __esm({
39421
39754
  }
39422
39755
  }
39423
39756
  };
39424
- productListDataSchema = z61.object({
39757
+ productListDataSchema = z62.object({
39425
39758
  products: publicProductsResponseSchema.optional()
39426
39759
  });
39427
39760
  }
@@ -39724,7 +40057,7 @@ var init_checkout = __esm({
39724
40057
  });
39725
40058
 
39726
40059
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
39727
- import { z as z62 } from "zod";
40060
+ import { z as z63 } from "zod";
39728
40061
  function buildGiftingDisplay(source) {
39729
40062
  return {
39730
40063
  kind: "gifting",
@@ -39743,71 +40076,71 @@ var init_gifting_interactive = __esm({
39743
40076
  "use strict";
39744
40077
  init_islands();
39745
40078
  init_runtime();
39746
- publicGiftCardOfferSchema = z62.object({
39747
- id: z62.string(),
39748
- kind: z62.literal("gift_card"),
39749
- title: z62.string(),
39750
- description: z62.string().nullable(),
39751
- sortOrder: z62.number().int(),
39752
- giftCard: z62.object({
39753
- fixedDenominations: z62.array(z62.number().int().positive()),
39754
- customAmountEnabled: z62.boolean(),
39755
- customAmountMinCents: z62.number().int().positive(),
39756
- customAmountMaxCents: z62.number().int().positive()
40079
+ publicGiftCardOfferSchema = z63.object({
40080
+ id: z63.string(),
40081
+ kind: z63.literal("gift_card"),
40082
+ title: z63.string(),
40083
+ description: z63.string().nullable(),
40084
+ sortOrder: z63.number().int(),
40085
+ giftCard: z63.object({
40086
+ fixedDenominations: z63.array(z63.number().int().positive()),
40087
+ customAmountEnabled: z63.boolean(),
40088
+ customAmountMinCents: z63.number().int().positive(),
40089
+ customAmountMaxCents: z63.number().int().positive()
39757
40090
  }),
39758
- voucher: z62.null()
39759
- });
39760
- publicVoucherOfferSchema = z62.object({
39761
- id: z62.string(),
39762
- kind: z62.literal("voucher"),
39763
- title: z62.string(),
39764
- description: z62.string().nullable(),
39765
- sortOrder: z62.number().int(),
39766
- giftCard: z62.null(),
39767
- voucher: z62.object({
39768
- purchaseAmountCents: z62.number().int().positive()
40091
+ voucher: z63.null()
40092
+ });
40093
+ publicVoucherOfferSchema = z63.object({
40094
+ id: z63.string(),
40095
+ kind: z63.literal("voucher"),
40096
+ title: z63.string(),
40097
+ description: z63.string().nullable(),
40098
+ sortOrder: z63.number().int(),
40099
+ giftCard: z63.null(),
40100
+ voucher: z63.object({
40101
+ purchaseAmountCents: z63.number().int().positive()
39769
40102
  })
39770
40103
  });
39771
- publicGiftingOffersResponseSchema = z62.object({
39772
- currency: z62.string(),
39773
- giftCards: z62.array(publicGiftCardOfferSchema),
39774
- vouchers: z62.array(publicVoucherOfferSchema)
40104
+ publicGiftingOffersResponseSchema = z63.object({
40105
+ currency: z63.string(),
40106
+ giftCards: z63.array(publicGiftCardOfferSchema),
40107
+ vouchers: z63.array(publicVoucherOfferSchema)
39775
40108
  });
39776
- giftingSourceSchema = z62.object({
39777
- siteId: z62.string().optional(),
39778
- apiBaseUrl: z62.string().optional(),
40109
+ giftingSourceSchema = z63.object({
40110
+ siteId: z63.string().optional(),
40111
+ apiBaseUrl: z63.string().optional(),
39779
40112
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
39780
- className: z62.string().nullable().optional(),
39781
- heading: z62.string().nullable().optional(),
39782
- intro: z62.string().nullable().optional(),
39783
- giftCardsHeading: z62.string().nullable().optional(),
39784
- vouchersHeading: z62.string().nullable().optional(),
39785
- emptyStateText: z62.string().nullable().optional(),
39786
- checkoutButtonText: z62.string().nullable().optional(),
39787
- successMessage: z62.string().nullable().optional()
39788
- });
39789
- giftingDisplaySchema = z62.object({
39790
- kind: z62.literal("gifting"),
39791
- state: z62.literal("ready"),
39792
- className: z62.string().nullable(),
39793
- heading: z62.string(),
39794
- intro: z62.string().nullable(),
39795
- giftCardsHeading: z62.string(),
39796
- vouchersHeading: z62.string(),
39797
- emptyStateText: z62.string()
39798
- });
39799
- giftingHydrationSchema = z62.object({
40113
+ className: z63.string().nullable().optional(),
40114
+ heading: z63.string().nullable().optional(),
40115
+ intro: z63.string().nullable().optional(),
40116
+ giftCardsHeading: z63.string().nullable().optional(),
40117
+ vouchersHeading: z63.string().nullable().optional(),
40118
+ emptyStateText: z63.string().nullable().optional(),
40119
+ checkoutButtonText: z63.string().nullable().optional(),
40120
+ successMessage: z63.string().nullable().optional()
40121
+ });
40122
+ giftingDisplaySchema = z63.object({
40123
+ kind: z63.literal("gifting"),
40124
+ state: z63.literal("ready"),
40125
+ className: z63.string().nullable(),
40126
+ heading: z63.string(),
40127
+ intro: z63.string().nullable(),
40128
+ giftCardsHeading: z63.string(),
40129
+ vouchersHeading: z63.string(),
40130
+ emptyStateText: z63.string()
40131
+ });
40132
+ giftingHydrationSchema = z63.object({
39800
40133
  offers: publicGiftingOffersResponseSchema.nullable(),
39801
- checkoutButtonText: z62.string(),
39802
- successMessage: z62.string()
40134
+ checkoutButtonText: z63.string(),
40135
+ successMessage: z63.string()
39803
40136
  });
39804
- giftingRenderSchema = z62.object({
40137
+ giftingRenderSchema = z63.object({
39805
40138
  display: giftingDisplaySchema,
39806
40139
  hydration: giftingHydrationSchema
39807
40140
  });
39808
- giftingIslandMetaCodec = createZodCodec(z62.object({
39809
- siteId: z62.string().optional(),
39810
- apiBaseUrl: z62.string().optional()
40141
+ giftingIslandMetaCodec = createZodCodec(z63.object({
40142
+ siteId: z63.string().optional(),
40143
+ apiBaseUrl: z63.string().optional()
39811
40144
  }));
39812
40145
  giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
39813
40146
  "siteId",
@@ -40124,7 +40457,7 @@ var init_newsletter_form_types = __esm({
40124
40457
  });
40125
40458
 
40126
40459
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
40127
- import { z as z63 } from "zod";
40460
+ import { z as z64 } from "zod";
40128
40461
  function buildNewsletterDisplay(source) {
40129
40462
  const preset2 = source.preset ?? "emailOnly";
40130
40463
  const includePhone = source.includePhone ?? false;
@@ -40159,65 +40492,65 @@ var init_newsletter_form_interactive = __esm({
40159
40492
  init_runtime();
40160
40493
  init_newsletter_signup_destination();
40161
40494
  init_newsletter_form_types();
40162
- newsletterPresetSchema = z63.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
40163
- newsletterDestinationProviderSchema = z63.enum(["riverbank", "mailchimp"]);
40164
- newsletterFieldSchema = z63.object({
40165
- id: z63.string(),
40166
- type: z63.enum(["email", "text"]),
40167
- label: z63.string(),
40168
- required: z63.boolean(),
40169
- placeholder: z63.string().optional()
40170
- });
40171
- newsletterSignupBlockIdSchema = z63.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
40172
- signedNewsletterDestinationRefSchema = z63.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
40173
- newsletterPublicDestinationRefSchema = z63.discriminatedUnion("tag", [
40174
- z63.object({
40175
- tag: z63.literal("block_ref"),
40495
+ newsletterPresetSchema = z64.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
40496
+ newsletterDestinationProviderSchema = z64.enum(["riverbank", "mailchimp"]);
40497
+ newsletterFieldSchema = z64.object({
40498
+ id: z64.string(),
40499
+ type: z64.enum(["email", "text"]),
40500
+ label: z64.string(),
40501
+ required: z64.boolean(),
40502
+ placeholder: z64.string().optional()
40503
+ });
40504
+ newsletterSignupBlockIdSchema = z64.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
40505
+ signedNewsletterDestinationRefSchema = z64.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
40506
+ newsletterPublicDestinationRefSchema = z64.discriminatedUnion("tag", [
40507
+ z64.object({
40508
+ tag: z64.literal("block_ref"),
40176
40509
  blockId: newsletterSignupBlockIdSchema
40177
40510
  }),
40178
- z63.object({
40179
- tag: z63.literal("signed_destination_ref"),
40511
+ z64.object({
40512
+ tag: z64.literal("signed_destination_ref"),
40180
40513
  token: signedNewsletterDestinationRefSchema
40181
40514
  })
40182
40515
  ]);
40183
- newsletterSourceSchema = z63.object({
40184
- blockId: z63.string().nullable().optional(),
40185
- siteId: z63.string().optional(),
40186
- apiBaseUrl: z63.string().optional(),
40187
- listId: z63.string().nullable().optional(),
40516
+ newsletterSourceSchema = z64.object({
40517
+ blockId: z64.string().nullable().optional(),
40518
+ siteId: z64.string().optional(),
40519
+ apiBaseUrl: z64.string().optional(),
40520
+ listId: z64.string().nullable().optional(),
40188
40521
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
40189
40522
  preset: newsletterPresetSchema.optional(),
40190
- includePhone: z63.boolean().optional(),
40191
- buttonLabel: z63.string().nullable().optional(),
40192
- successMessage: z63.string().nullable().optional(),
40193
- privacyNote: z63.string().nullable().optional(),
40194
- tags: z63.string().nullable().optional(),
40195
- spamProtectionEnabled: z63.boolean().optional(),
40196
- className: z63.string().nullable().optional()
40197
- });
40198
- newsletterDisplaySchema = z63.object({
40199
- kind: z63.literal("newsletter-form"),
40200
- className: z63.string().nullable(),
40201
- buttonLabel: z63.string(),
40202
- successMessage: z63.string().nullable(),
40203
- privacyNote: z63.string().nullable(),
40204
- fields: z63.array(newsletterFieldSchema)
40205
- });
40206
- newsletterHydrationSchema = z63.object({
40523
+ includePhone: z64.boolean().optional(),
40524
+ buttonLabel: z64.string().nullable().optional(),
40525
+ successMessage: z64.string().nullable().optional(),
40526
+ privacyNote: z64.string().nullable().optional(),
40527
+ tags: z64.string().nullable().optional(),
40528
+ spamProtectionEnabled: z64.boolean().optional(),
40529
+ className: z64.string().nullable().optional()
40530
+ });
40531
+ newsletterDisplaySchema = z64.object({
40532
+ kind: z64.literal("newsletter-form"),
40533
+ className: z64.string().nullable(),
40534
+ buttonLabel: z64.string(),
40535
+ successMessage: z64.string().nullable(),
40536
+ privacyNote: z64.string().nullable(),
40537
+ fields: z64.array(newsletterFieldSchema)
40538
+ });
40539
+ newsletterHydrationSchema = z64.object({
40207
40540
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
40208
- listId: z63.string().nullable().optional(),
40541
+ listId: z64.string().nullable().optional(),
40209
40542
  preset: newsletterPresetSchema,
40210
- includePhone: z63.boolean(),
40211
- tags: z63.string().nullable().optional(),
40212
- spamProtectionEnabled: z63.boolean().optional()
40543
+ includePhone: z64.boolean(),
40544
+ tags: z64.string().nullable().optional(),
40545
+ spamProtectionEnabled: z64.boolean().optional()
40213
40546
  });
40214
- newsletterRenderSchema = z63.object({
40547
+ newsletterRenderSchema = z64.object({
40215
40548
  display: newsletterDisplaySchema,
40216
40549
  hydration: newsletterHydrationSchema
40217
40550
  });
40218
- newsletterIslandMetaCodec = createZodCodec(z63.object({
40219
- siteId: z63.string().optional(),
40220
- apiBaseUrl: z63.string().optional()
40551
+ newsletterIslandMetaCodec = createZodCodec(z64.object({
40552
+ siteId: z64.string().optional(),
40553
+ apiBaseUrl: z64.string().optional()
40221
40554
  }));
40222
40555
  newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
40223
40556
  newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
@@ -40344,7 +40677,7 @@ var init_newsletter_signup = __esm({
40344
40677
  });
40345
40678
 
40346
40679
  // ../blocks/src/system/blocks/team-members.ts
40347
- import { z as z64 } from "zod";
40680
+ import { z as z65 } from "zod";
40348
40681
  var ITEM_NAME2, teamMemberPhotoSchema, teamMemberDataSchema, teamMembersDataSchema, dynamicSourceWhen, manualSourceWhen, headingNode, wrapVariant3, teamMemberStackLayout, manualGridMembersNode, dynamicGridMembersNode, gridVariant, manualStackMembersNode, dynamicStackMembersNode, stackVariant, teamMembersManifest, teamMembersBlockDefinition;
40349
40682
  var init_team_members = __esm({
40350
40683
  "../blocks/src/system/blocks/team-members.ts"() {
@@ -40361,18 +40694,18 @@ var init_team_members = __esm({
40361
40694
  teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
40362
40695
  message: "Team member photos must be image media"
40363
40696
  }).nullable();
40364
- teamMemberDataSchema = z64.object({
40365
- _type: z64.literal("teamMember"),
40366
- id: z64.string(),
40367
- name: z64.string(),
40368
- role: z64.string().nullable(),
40369
- roleLabel: z64.string().nullable(),
40370
- bio: z64.string().nullable(),
40371
- summary: z64.string().nullable(),
40697
+ teamMemberDataSchema = z65.object({
40698
+ _type: z65.literal("teamMember"),
40699
+ id: z65.string(),
40700
+ name: z65.string(),
40701
+ role: z65.string().nullable(),
40702
+ roleLabel: z65.string().nullable(),
40703
+ bio: z65.string().nullable(),
40704
+ summary: z65.string().nullable(),
40372
40705
  photo: teamMemberPhotoSchema,
40373
- profilePath: z64.string().nullable()
40706
+ profilePath: z65.string().nullable()
40374
40707
  });
40375
- teamMembersDataSchema = z64.array(teamMemberDataSchema);
40708
+ teamMembersDataSchema = z65.array(teamMemberDataSchema);
40376
40709
  dynamicSourceWhen = { equals: "site_staff" };
40377
40710
  manualSourceWhen = { equals: "site_staff", not: true };
40378
40711
  headingNode = text(
@@ -41180,6 +41513,7 @@ var init_blocks = __esm({
41180
41513
  init_feature_cards();
41181
41514
  init_media_text();
41182
41515
  init_appointment_booking();
41516
+ init_weekly_slot_availability();
41183
41517
  init_event_registration();
41184
41518
  init_course_registration();
41185
41519
  init_event_details();
@@ -41220,6 +41554,7 @@ var init_blocks = __esm({
41220
41554
  init_feature_card_icons();
41221
41555
  init_media_text();
41222
41556
  init_appointment_booking();
41557
+ init_weekly_slot_availability();
41223
41558
  init_event_registration();
41224
41559
  init_event_details();
41225
41560
  init_course_registration();
@@ -41590,6 +41925,10 @@ var init_blocks = __esm({
41590
41925
  flow: conversionFlow,
41591
41926
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
41592
41927
  })),
41928
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
41929
+ flow: offeringsFlow,
41930
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
41931
+ })),
41593
41932
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
41594
41933
  flow: conversionFlow,
41595
41934
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -42757,7 +43096,7 @@ var init_componentFactory = __esm({
42757
43096
  });
42758
43097
 
42759
43098
  // ../blocks/src/system/layout/index.ts
42760
- var init_layout2 = __esm({
43099
+ var init_layout3 = __esm({
42761
43100
  "../blocks/src/system/layout/index.ts"() {
42762
43101
  "use strict";
42763
43102
  init_repeaterGrid();
@@ -42817,7 +43156,7 @@ var init_system = __esm({
42817
43156
  init_designCapabilities();
42818
43157
  init_fragments2();
42819
43158
  init_icons();
42820
- init_layout2();
43159
+ init_layout3();
42821
43160
  init_defineBlock();
42822
43161
  init_ai();
42823
43162
  init_link();
@@ -42889,13 +43228,6 @@ var init_defaults2 = __esm({
42889
43228
  }
42890
43229
  });
42891
43230
 
42892
- // ../theme-core/src/interactive/generateBaseCSS.ts
42893
- var init_generateBaseCSS = __esm({
42894
- "../theme-core/src/interactive/generateBaseCSS.ts"() {
42895
- "use strict";
42896
- }
42897
- });
42898
-
42899
43231
  // ../theme-core/src/navigation/generateNavLinkCSS.ts
42900
43232
  var init_generateNavLinkCSS = __esm({
42901
43233
  "../theme-core/src/navigation/generateNavLinkCSS.ts"() {
@@ -43144,7 +43476,7 @@ var init_generateLayoutCss = __esm({
43144
43476
  });
43145
43477
 
43146
43478
  // ../theme-core/src/layout/index.ts
43147
- var init_layout3 = __esm({
43479
+ var init_layout4 = __esm({
43148
43480
  "../theme-core/src/layout/index.ts"() {
43149
43481
  "use strict";
43150
43482
  init_generateLayoutCss();
@@ -43155,6 +43487,7 @@ var init_layout3 = __esm({
43155
43487
  var init_generateStatusCss = __esm({
43156
43488
  "../theme-core/src/status/generateStatusCss.ts"() {
43157
43489
  "use strict";
43490
+ init_contextualColors();
43158
43491
  }
43159
43492
  });
43160
43493
 
@@ -43163,6 +43496,7 @@ var init_status = __esm({
43163
43496
  "../theme-core/src/status/index.ts"() {
43164
43497
  "use strict";
43165
43498
  init_generateStatusCss();
43499
+ init_contextualColors();
43166
43500
  }
43167
43501
  });
43168
43502
 
@@ -43283,6 +43617,34 @@ ${root} {
43283
43617
  /* Order summary */
43284
43618
  --er-summary-bg: rgba(var(--tb-primary), 0.1);
43285
43619
  --er-summary-border: rgb(var(--tb-border));
43620
+
43621
+ /* Shared registration-surface mappings (issue 1174).
43622
+ Route the shared --rb-reg-* contract through this block's documented
43623
+ Tier 3 vars so existing --er-* overrides keep working unchanged. */
43624
+ --rb-reg-radius: var(--er-radius);
43625
+ --rb-reg-border: var(--er-border);
43626
+ --rb-reg-border-hover: var(--er-border-hover);
43627
+ --rb-reg-border-selected: var(--er-border-selected);
43628
+ --rb-reg-bg-selected: var(--er-payment-bg-selected);
43629
+ --rb-reg-option-bg: var(--er-control-bg);
43630
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
43631
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
43632
+ --rb-reg-on-surface: var(--er-on-surface);
43633
+ --rb-reg-on-surface-muted: var(--er-on-surface-muted);
43634
+ --rb-reg-on-surface-subtle: var(--er-on-surface-subtle);
43635
+ --rb-reg-on-surface-faint: var(--er-on-surface-faint);
43636
+ --rb-reg-check-bg: var(--er-check-bg);
43637
+ --rb-reg-check-text: var(--er-check-text);
43638
+ --rb-reg-step-active: var(--er-step-active);
43639
+ --rb-reg-step-completed: var(--er-step-completed);
43640
+ --rb-reg-step-inactive: var(--er-step-inactive);
43641
+ --rb-reg-step-text: var(--er-step-text);
43642
+ --rb-reg-step-text-active: var(--er-step-text-active);
43643
+ --rb-reg-step-connector: var(--er-step-connector);
43644
+ --rb-reg-summary-bg: var(--er-surface-muted);
43645
+ --rb-reg-summary-border: var(--er-border);
43646
+ --rb-reg-focus-ring: var(--er-focus-ring);
43647
+ --rb-reg-shell-line: var(--er-shell-line);
43286
43648
  }
43287
43649
  `;
43288
43650
  }
@@ -43437,25 +43799,40 @@ ${root} {
43437
43799
  --ab-info-bg: rgba(var(--tb-info), 0.1);
43438
43800
  --ab-info-text: rgb(var(--tb-info));
43439
43801
 
43440
- /* Loading/muted states */
43802
+ /* Muted summary state */
43441
43803
  --ab-muted-bg: rgba(var(--tb-text), 0.05);
43442
- --ab-muted-text: rgba(var(--tb-text), 0.6);
43443
- --ab-spinner-color: rgb(var(--tb-primary));
43444
43804
 
43445
- /* Form elements */
43446
- --ab-input-border: rgb(var(--tb-border));
43805
+ /* Focus ring used by shared registration-surface controls */
43447
43806
  --ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
43448
43807
 
43449
- /* Buttons */
43450
- --ab-btn-primary-bg: rgb(var(--tb-primary));
43451
- --ab-btn-primary-text: rgb(var(--tb-background));
43452
- --ab-btn-primary-hover: rgba(var(--tb-primary), 0.9);
43453
- --ab-btn-secondary-border: rgb(var(--tb-border));
43454
- --ab-btn-secondary-hover: rgba(var(--tb-text), 0.05);
43455
-
43456
- /* Text opacity levels */
43457
- --ab-text-muted-opacity: 0.6;
43458
- --ab-text-faint-opacity: 0.4;
43808
+ /* Shared registration-surface mappings (issue 1174).
43809
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
43810
+ (palette tokens where no --ab-* var exists) so --ab-* overrides keep
43811
+ working as the block adopts the shared classes. */
43812
+ --rb-reg-radius: var(--ab-card-radius, var(--rb-block-radius));
43813
+ --rb-reg-border: var(--ab-card-border);
43814
+ --rb-reg-border-hover: var(--ab-card-border-hover);
43815
+ --rb-reg-border-selected: var(--ab-card-border-selected);
43816
+ --rb-reg-bg-selected: var(--ab-card-bg-selected);
43817
+ --rb-reg-option-bg: transparent;
43818
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
43819
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
43820
+ --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
43821
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
43822
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
43823
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
43824
+ --rb-reg-check-bg: var(--ab-check-bg);
43825
+ --rb-reg-check-text: var(--ab-check-text);
43826
+ --rb-reg-step-active: rgb(var(--tb-primary));
43827
+ --rb-reg-step-completed: rgb(var(--tb-success));
43828
+ --rb-reg-step-inactive: rgb(var(--tb-mutedText));
43829
+ --rb-reg-step-text: rgb(255 255 255);
43830
+ --rb-reg-step-text-active: rgb(var(--tb-primaryText, 255 255 255));
43831
+ --rb-reg-step-connector: rgba(var(--tb-border), 0.5);
43832
+ --rb-reg-summary-bg: var(--ab-muted-bg);
43833
+ --rb-reg-summary-border: var(--ab-card-border);
43834
+ --rb-reg-focus-ring: var(--ab-input-focus-ring);
43835
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
43459
43836
  }
43460
43837
  `;
43461
43838
  }
@@ -43780,6 +44157,35 @@ ${root} {
43780
44157
  /* Summary */
43781
44158
  --cr-summary-bg: rgba(var(--tb-primary), 0.1);
43782
44159
  --cr-summary-border: rgb(var(--tb-border));
44160
+
44161
+ /* Shared registration-surface mappings (issue 1174).
44162
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
44163
+ (palette tokens where no --cr-* var exists) so existing --cr-* overrides
44164
+ keep working unchanged. */
44165
+ --rb-reg-radius: var(--rb-block-radius);
44166
+ --rb-reg-border: var(--cr-border);
44167
+ --rb-reg-border-hover: var(--cr-border-hover);
44168
+ --rb-reg-border-selected: var(--cr-border-selected);
44169
+ --rb-reg-bg-selected: var(--cr-payment-bg-selected);
44170
+ --rb-reg-option-bg: rgb(var(--tb-background));
44171
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
44172
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
44173
+ --rb-reg-on-surface: var(--cr-on-surface);
44174
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
44175
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
44176
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
44177
+ --rb-reg-check-bg: var(--cr-check-bg);
44178
+ --rb-reg-check-text: var(--cr-check-text);
44179
+ --rb-reg-step-active: var(--cr-step-active);
44180
+ --rb-reg-step-completed: var(--cr-step-completed);
44181
+ --rb-reg-step-inactive: var(--cr-step-inactive);
44182
+ --rb-reg-step-text: var(--cr-step-text);
44183
+ --rb-reg-step-text-active: var(--cr-step-text-active);
44184
+ --rb-reg-step-connector: var(--cr-step-connector);
44185
+ --rb-reg-summary-bg: var(--cr-summary-bg);
44186
+ --rb-reg-summary-border: var(--cr-summary-border);
44187
+ --rb-reg-focus-ring: var(--cr-focus-ring);
44188
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
43783
44189
  }
43784
44190
  `;
43785
44191
  }
@@ -43943,7 +44349,7 @@ var init_buildThemeRuntime = __esm({
43943
44349
  init_defaults2();
43944
44350
  init_header();
43945
44351
  init_footer();
43946
- init_layout3();
44352
+ init_layout4();
43947
44353
  init_status();
43948
44354
  init_progress();
43949
44355
  init_typography2();
@@ -44406,30 +44812,30 @@ var init_Button = __esm({
44406
44812
  });
44407
44813
 
44408
44814
  // ../blocks/src/structure/schema.ts
44409
- import z65 from "zod";
44815
+ import z66 from "zod";
44410
44816
  var BlockKind, blockSchema, pagePath, pageOutlineSchema;
44411
44817
  var init_schema4 = __esm({
44412
44818
  "../blocks/src/structure/schema.ts"() {
44413
44819
  "use strict";
44414
- BlockKind = z65.string();
44415
- blockSchema = z65.object({
44416
- id: z65.string().nullable(),
44820
+ BlockKind = z66.string();
44821
+ blockSchema = z66.object({
44822
+ id: z66.string().nullable(),
44417
44823
  // optional ID for reference in toggle ops
44418
44824
  kind: BlockKind,
44419
- purpose: z65.string().min(1),
44825
+ purpose: z66.string().min(1),
44420
44826
  // Optional content fields used by PageRenderer / block runtime.
44421
- content: z65.record(z65.string(), z65.unknown()).optional(),
44827
+ content: z66.record(z66.string(), z66.unknown()).optional(),
44422
44828
  // Nullable because some persisted sources store "no draft" as null.
44423
- draftContent: z65.record(z65.string(), z65.unknown()).nullable().optional(),
44829
+ draftContent: z66.record(z66.string(), z66.unknown()).nullable().optional(),
44424
44830
  // Optional template bindings for reverse field mapping (entry editing)
44425
- bindings: z65.record(z65.string(), z65.unknown()).optional()
44831
+ bindings: z66.record(z66.string(), z66.unknown()).optional()
44426
44832
  }).passthrough();
44427
- pagePath = z65.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
44428
- pageOutlineSchema = z65.object({
44429
- name: z65.string().min(1),
44833
+ pagePath = z66.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
44834
+ pageOutlineSchema = z66.object({
44835
+ name: z66.string().min(1),
44430
44836
  path: pagePath,
44431
- purpose: z65.string().min(1),
44432
- blocks: z65.array(blockSchema).min(1)
44837
+ purpose: z66.string().min(1),
44838
+ blocks: z66.array(blockSchema).min(1)
44433
44839
  });
44434
44840
  }
44435
44841
  });
@@ -44552,7 +44958,7 @@ var init_fonts = __esm({
44552
44958
  });
44553
44959
 
44554
44960
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
44555
- import { z as z66 } from "zod";
44961
+ import { z as z67 } from "zod";
44556
44962
  var themeBridgeConfigSchema;
44557
44963
  var init_buildThemeRuntimeFromBridge = __esm({
44558
44964
  "../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts"() {
@@ -44567,33 +44973,33 @@ var init_buildThemeRuntimeFromBridge = __esm({
44567
44973
  init_progress();
44568
44974
  init_blocks2();
44569
44975
  init_themeCssVarNames();
44570
- themeBridgeConfigSchema = z66.object({
44571
- tokens: z66.record(z66.string(), z66.string()),
44572
- typography: z66.object({
44573
- headingFamily: z66.string().optional(),
44574
- bodyFamily: z66.string().optional(),
44575
- headingWeight: z66.number().optional(),
44576
- bodyWeight: z66.number().optional()
44976
+ themeBridgeConfigSchema = z67.object({
44977
+ tokens: z67.record(z67.string(), z67.string()),
44978
+ typography: z67.object({
44979
+ headingFamily: z67.string().optional(),
44980
+ bodyFamily: z67.string().optional(),
44981
+ headingWeight: z67.number().optional(),
44982
+ bodyWeight: z67.number().optional()
44577
44983
  }).optional(),
44578
- spacing: z66.enum(["comfortable", "standard", "dense"]).optional(),
44579
- corners: z66.enum(["square", "soft", "rounded", "pill"]).optional(),
44580
- shadows: z66.enum(["none", "low", "medium", "high"]).optional(),
44581
- components: z66.object({
44582
- buttons: z66.union([
44583
- z66.boolean(),
44584
- z66.object({
44585
- variants: z66.array(z66.enum(["primary", "secondary", "outline", "ghost"])).optional()
44984
+ spacing: z67.enum(["comfortable", "standard", "dense"]).optional(),
44985
+ corners: z67.enum(["square", "soft", "rounded", "pill"]).optional(),
44986
+ shadows: z67.enum(["none", "low", "medium", "high"]).optional(),
44987
+ components: z67.object({
44988
+ buttons: z67.union([
44989
+ z67.boolean(),
44990
+ z67.object({
44991
+ variants: z67.array(z67.enum(["primary", "secondary", "outline", "ghost"])).optional()
44586
44992
  })
44587
44993
  ]).optional(),
44588
- cards: z66.union([
44589
- z66.boolean(),
44590
- z66.object({
44591
- variants: z66.array(z66.enum(["default", "elevated", "outlined"])).optional()
44994
+ cards: z67.union([
44995
+ z67.boolean(),
44996
+ z67.object({
44997
+ variants: z67.array(z67.enum(["default", "elevated", "outlined"])).optional()
44592
44998
  })
44593
44999
  ]).optional(),
44594
- inputs: z66.boolean().optional()
45000
+ inputs: z67.boolean().optional()
44595
45001
  }).optional(),
44596
- overrides: z66.record(z66.string(), z66.string()).optional()
45002
+ overrides: z67.record(z67.string(), z67.string()).optional()
44597
45003
  }).passthrough();
44598
45004
  }
44599
45005
  });
@@ -44847,14 +45253,21 @@ var init_utils5 = __esm({
44847
45253
 
44848
45254
  // ../blocks/src/system/data/prefetchBlockData.ts
44849
45255
  async function prefetchBlockData(page, context, options) {
44850
- const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders } = options;
45256
+ const {
45257
+ apiClient,
45258
+ isValidEndpoint,
45259
+ onError,
45260
+ getCustomBlockLoaders,
45261
+ getBlockDefinition: getBlockDefinition2 = getBlockDefinition,
45262
+ resolveParamsBindings: resolveParamsBindings2 = resolveParamsBindings
45263
+ } = options;
44851
45264
  const results = {};
44852
45265
  const tasks = [];
44853
45266
  for (const block of page.blocks) {
44854
45267
  const blockId = block.id;
44855
45268
  if (!blockId) continue;
44856
45269
  let loaders;
44857
- const def = getBlockDefinition(block.kind);
45270
+ const def = getBlockDefinition2(block.kind);
44858
45271
  if (def) {
44859
45272
  loaders = normalizeDataLoaders(def);
44860
45273
  } else if (getCustomBlockLoaders) {
@@ -44877,14 +45290,14 @@ async function prefetchBlockData(page, context, options) {
44877
45290
  continue;
44878
45291
  }
44879
45292
  if (typeof loader.when !== "undefined") {
44880
- const resolvedWhen = resolveParamsBindings(loader.when, vm, {
45293
+ const resolvedWhen = resolveParamsBindings2(loader.when, vm, {
44881
45294
  blockKind: block.kind
44882
45295
  });
44883
45296
  if (resolvedWhen !== true) {
44884
45297
  continue;
44885
45298
  }
44886
45299
  }
44887
- const rawParams = resolveParamsBindings(loader.params, vm, {
45300
+ const rawParams = resolveParamsBindings2(loader.params, vm, {
44888
45301
  blockKind: block.kind
44889
45302
  });
44890
45303
  const params = normalizeParams(rawParams);
@@ -44939,7 +45352,8 @@ var init_loaderEndpoints = __esm({
44939
45352
  "listPublicPasses",
44940
45353
  "listPublicMemberships",
44941
45354
  "getPublicFormById",
44942
- "getPublicBookingServices"
45355
+ "getPublicBookingServices",
45356
+ "getPublicWeeklySlotAvailability"
44943
45357
  ];
44944
45358
  }
44945
45359
  });
@@ -44980,6 +45394,10 @@ function normalizeLoaderParams(endpoint, params, context) {
44980
45394
  ensureSiteId(out, context);
44981
45395
  return out;
44982
45396
  }
45397
+ if (endpoint === "getPublicWeeklySlotAvailability") {
45398
+ ensureSiteId(out, context);
45399
+ return out;
45400
+ }
44983
45401
  if (endpoint === "listPublicEvents") {
44984
45402
  ensureSiteId(out, context);
44985
45403
  return out;
@@ -45064,7 +45482,7 @@ var init_src3 = __esm({
45064
45482
  });
45065
45483
 
45066
45484
  // ../api/src/sdkConfig/contracts.ts
45067
- import { z as z67 } from "zod";
45485
+ import { z as z68 } from "zod";
45068
45486
  function unsafeRetypeZodSchema(schema) {
45069
45487
  return schema;
45070
45488
  }
@@ -45073,17 +45491,17 @@ var init_contracts2 = __esm({
45073
45491
  "../api/src/sdkConfig/contracts.ts"() {
45074
45492
  "use strict";
45075
45493
  init_src3();
45076
- navIdListSchema = z67.preprocess((value) => {
45494
+ navIdListSchema = z68.preprocess((value) => {
45077
45495
  if (!Array.isArray(value)) return void 0;
45078
45496
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
45079
45497
  return filtered.length > 0 ? filtered : void 0;
45080
- }, z67.array(z67.string()).max(200).optional());
45081
- dashboardNavVisibilityBaseSchema = z67.object({
45082
- mode: z67.enum(["augment", "restrict"]).optional(),
45498
+ }, z68.array(z68.string()).max(200).optional());
45499
+ dashboardNavVisibilityBaseSchema = z68.object({
45500
+ mode: z68.enum(["augment", "restrict"]).optional(),
45083
45501
  allowIds: navIdListSchema,
45084
45502
  denyIds: navIdListSchema
45085
45503
  }).strip();
45086
- dashboardNavVisibilityRolesSchema = z67.object({
45504
+ dashboardNavVisibilityRolesSchema = z68.object({
45087
45505
  administrator: dashboardNavVisibilityBaseSchema.optional(),
45088
45506
  editor: dashboardNavVisibilityBaseSchema.optional(),
45089
45507
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -45091,63 +45509,63 @@ var init_contracts2 = __esm({
45091
45509
  dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
45092
45510
  roles: dashboardNavVisibilityRolesSchema
45093
45511
  }).strip();
45094
- dashboardNavigationConfigSchema = z67.object({
45512
+ dashboardNavigationConfigSchema = z68.object({
45095
45513
  siteNav: dashboardNavVisibilitySchema.optional(),
45096
45514
  settingsNav: dashboardNavVisibilitySchema.optional()
45097
45515
  }).strip();
45098
- dashboardConfigSchema = z67.object({
45099
- previewEditingEnabled: z67.boolean().optional(),
45516
+ dashboardConfigSchema = z68.object({
45517
+ previewEditingEnabled: z68.boolean().optional(),
45100
45518
  navigation: dashboardNavigationConfigSchema.optional()
45101
45519
  }).strip();
45102
45520
  fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
45103
45521
  nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
45104
- sdkLoaderEndpointSchema = z67.enum(SUPPORTED_LOADER_ENDPOINTS);
45105
- loaderFallbackScalarSchema = z67.union([
45106
- z67.string(),
45107
- z67.number(),
45108
- z67.boolean(),
45109
- z67.null()
45522
+ sdkLoaderEndpointSchema = z68.enum(SUPPORTED_LOADER_ENDPOINTS);
45523
+ loaderFallbackScalarSchema = z68.union([
45524
+ z68.string(),
45525
+ z68.number(),
45526
+ z68.boolean(),
45527
+ z68.null()
45110
45528
  ]);
45111
- loaderParamBindingSchema = z67.object({
45112
- $bind: z67.object({
45113
- from: z67.string().min(1, "Binding path is required"),
45529
+ loaderParamBindingSchema = z68.object({
45530
+ $bind: z68.object({
45531
+ from: z68.string().min(1, "Binding path is required"),
45114
45532
  fallback: loaderFallbackScalarSchema.optional()
45115
45533
  })
45116
45534
  });
45117
- loaderParamValueSchema = z67.union([
45118
- z67.string(),
45119
- z67.number(),
45120
- z67.boolean(),
45535
+ loaderParamValueSchema = z68.union([
45536
+ z68.string(),
45537
+ z68.number(),
45538
+ z68.boolean(),
45121
45539
  loaderParamBindingSchema
45122
45540
  ]);
45123
- sdkConfigLoaderSchema = z67.object({
45541
+ sdkConfigLoaderSchema = z68.object({
45124
45542
  endpoint: sdkLoaderEndpointSchema,
45125
- params: z67.record(z67.string(), loaderParamValueSchema),
45126
- mode: z67.enum(["server", "client"]).default("server")
45543
+ params: z68.record(z68.string(), loaderParamValueSchema),
45544
+ mode: z68.enum(["server", "client"]).default("server")
45127
45545
  });
45128
- sdkDataLoadersSchema = z67.record(z67.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
45129
- sdkCustomBlockIdSchema = z67.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
45546
+ sdkDataLoadersSchema = z68.record(z68.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
45547
+ sdkCustomBlockIdSchema = z68.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
45130
45548
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
45131
45549
  }).transform((value) => value);
45132
- sdkCustomBlockInputSchema = z67.object({
45550
+ sdkCustomBlockInputSchema = z68.object({
45133
45551
  id: sdkCustomBlockIdSchema,
45134
- title: z67.string().min(1),
45135
- titleSource: z67.union([z67.string().min(1), z67.array(z67.string().min(1)).min(1)]).optional(),
45136
- description: z67.string().optional(),
45552
+ title: z68.string().min(1),
45553
+ titleSource: z68.union([z68.string().min(1), z68.array(z68.string().min(1)).min(1)]).optional(),
45554
+ description: z68.string().optional(),
45137
45555
  category: blockCategoryEnum,
45138
- icon: z67.string().optional(),
45139
- tags: z67.array(z67.string()).optional(),
45556
+ icon: z68.string().optional(),
45557
+ tags: z68.array(z68.string()).optional(),
45140
45558
  fields: fieldDefinitionInputSchema.array().min(1),
45141
45559
  dataLoaders: sdkDataLoadersSchema,
45142
45560
  layout: NodeSchema.optional(),
45143
- variants: z67.record(z67.string().min(1), NodeSchema).optional(),
45144
- defaultVariant: z67.string().min(1).optional(),
45145
- variantOptions: z67.record(
45146
- z67.string().min(1),
45147
- z67.object({
45148
- label: z67.string().min(1).optional(),
45149
- description: z67.string().min(1).optional(),
45150
- icon: z67.string().min(1).optional()
45561
+ variants: z68.record(z68.string().min(1), NodeSchema).optional(),
45562
+ defaultVariant: z68.string().min(1).optional(),
45563
+ variantOptions: z68.record(
45564
+ z68.string().min(1),
45565
+ z68.object({
45566
+ label: z68.string().min(1).optional(),
45567
+ description: z68.string().min(1).optional(),
45568
+ icon: z68.string().min(1).optional()
45151
45569
  })
45152
45570
  ).optional(),
45153
45571
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -45158,7 +45576,7 @@ var init_contracts2 = __esm({
45158
45576
  const exists = data.fields.some((field) => field.id === source);
45159
45577
  if (!exists) {
45160
45578
  ctx.addIssue({
45161
- code: z67.ZodIssueCode.custom,
45579
+ code: z68.ZodIssueCode.custom,
45162
45580
  message: `titleSource must reference a valid field ID (got "${source}")`,
45163
45581
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
45164
45582
  });
@@ -45167,7 +45585,7 @@ var init_contracts2 = __esm({
45167
45585
  }
45168
45586
  if (data.layout && data.variants) {
45169
45587
  ctx.addIssue({
45170
- code: z67.ZodIssueCode.custom,
45588
+ code: z68.ZodIssueCode.custom,
45171
45589
  message: "Custom block must define either `layout` or `variants`, not both",
45172
45590
  path: ["variants"]
45173
45591
  });
@@ -45176,14 +45594,14 @@ var init_contracts2 = __esm({
45176
45594
  const keys = Object.keys(data.variants);
45177
45595
  if (keys.length === 0) {
45178
45596
  ctx.addIssue({
45179
- code: z67.ZodIssueCode.custom,
45597
+ code: z68.ZodIssueCode.custom,
45180
45598
  message: "`variants` must contain at least one variant key",
45181
45599
  path: ["variants"]
45182
45600
  });
45183
45601
  }
45184
45602
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
45185
45603
  ctx.addIssue({
45186
- code: z67.ZodIssueCode.custom,
45604
+ code: z68.ZodIssueCode.custom,
45187
45605
  message: "`defaultVariant` must be a key present in `variants`",
45188
45606
  path: ["defaultVariant"]
45189
45607
  });
@@ -45192,7 +45610,7 @@ var init_contracts2 = __esm({
45192
45610
  for (const key of Object.keys(data.variantOptions)) {
45193
45611
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
45194
45612
  ctx.addIssue({
45195
- code: z67.ZodIssueCode.custom,
45613
+ code: z68.ZodIssueCode.custom,
45196
45614
  message: "`variantOptions` key must exist in `variants`",
45197
45615
  path: ["variantOptions", key]
45198
45616
  });
@@ -45201,78 +45619,78 @@ var init_contracts2 = __esm({
45201
45619
  }
45202
45620
  }
45203
45621
  });
45204
- sdkBlockFieldExtensionInputSchema = z67.object({
45622
+ sdkBlockFieldExtensionInputSchema = z68.object({
45205
45623
  fields: fieldDefinitionInputSchema.array().min(1)
45206
45624
  });
45207
- sdkBlockFieldExtensionsInputSchema = z67.record(
45208
- z67.string().min(1),
45625
+ sdkBlockFieldExtensionsInputSchema = z68.record(
45626
+ z68.string().min(1),
45209
45627
  sdkBlockFieldExtensionInputSchema
45210
45628
  );
45211
- sdkThemePaletteSchema = z67.record(z67.string(), z67.string());
45212
- sdkThemeConfigSchema = z67.object({
45629
+ sdkThemePaletteSchema = z68.record(z68.string(), z68.string());
45630
+ sdkThemeConfigSchema = z68.object({
45213
45631
  palette: sdkThemePaletteSchema
45214
45632
  });
45215
- sdkSectionBackgroundSchema = z67.object({
45216
- id: z67.string().min(1),
45217
- label: z67.string().min(1),
45218
- token: z67.string().min(1)
45633
+ sdkSectionBackgroundSchema = z68.object({
45634
+ id: z68.string().min(1),
45635
+ label: z68.string().min(1),
45636
+ token: z68.string().min(1)
45219
45637
  });
45220
- sdkSectionOptionsConfigSchema = z67.object({
45221
- backgroundColor: z67.boolean().optional(),
45222
- backgroundImage: z67.boolean().optional(),
45223
- backgroundGradient: z67.boolean().optional(),
45224
- spacing: z67.union([z67.array(z67.enum(["compact", "default", "spacious"])), z67.boolean()]).optional(),
45225
- textColor: z67.boolean().optional()
45638
+ sdkSectionOptionsConfigSchema = z68.object({
45639
+ backgroundColor: z68.boolean().optional(),
45640
+ backgroundImage: z68.boolean().optional(),
45641
+ backgroundGradient: z68.boolean().optional(),
45642
+ spacing: z68.union([z68.array(z68.enum(["compact", "default", "spacious"])), z68.boolean()]).optional(),
45643
+ textColor: z68.boolean().optional()
45226
45644
  });
45227
- sdkContainerOptionsConfigSchema = z67.object({
45228
- maxWidth: z67.union([z67.array(z67.enum(["narrow", "default", "wide", "full"])), z67.boolean()]).optional(),
45229
- alignment: z67.union([z67.array(z67.enum(["left", "center", "right"])), z67.boolean()]).optional()
45645
+ sdkContainerOptionsConfigSchema = z68.object({
45646
+ maxWidth: z68.union([z68.array(z68.enum(["narrow", "default", "wide", "full"])), z68.boolean()]).optional(),
45647
+ alignment: z68.union([z68.array(z68.enum(["left", "center", "right"])), z68.boolean()]).optional()
45230
45648
  });
45231
- sdkSiteStyleConfigSchema = z67.object({
45232
- sectionBackgrounds: z67.array(sdkSectionBackgroundSchema).optional(),
45649
+ sdkSiteStyleConfigSchema = z68.object({
45650
+ sectionBackgrounds: z68.array(sdkSectionBackgroundSchema).optional(),
45233
45651
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
45234
45652
  containerOptions: sdkContainerOptionsConfigSchema.optional()
45235
45653
  });
45236
- sdkSiteLayoutConfigSchema = z67.object({
45237
- footerBlocks: z67.array(
45238
- z67.object({
45239
- id: z67.string().min(1).optional(),
45240
- kind: z67.string().min(1),
45241
- content: z67.record(z67.string(), z67.unknown()).optional()
45654
+ sdkSiteLayoutConfigSchema = z68.object({
45655
+ footerBlocks: z68.array(
45656
+ z68.object({
45657
+ id: z68.string().min(1).optional(),
45658
+ kind: z68.string().min(1),
45659
+ content: z68.record(z68.string(), z68.unknown()).optional()
45242
45660
  })
45243
45661
  ).optional()
45244
45662
  });
45245
- sdkFieldSelectOptionSchema = z67.object({
45246
- value: z67.string(),
45247
- label: z67.string()
45663
+ sdkFieldSelectOptionSchema = z68.object({
45664
+ value: z68.string(),
45665
+ label: z68.string()
45248
45666
  });
45249
- sdkBlockFieldConfigSchema = z67.object({
45250
- options: z67.array(sdkFieldSelectOptionSchema).optional()
45667
+ sdkBlockFieldConfigSchema = z68.object({
45668
+ options: z68.array(sdkFieldSelectOptionSchema).optional()
45251
45669
  });
45252
- sdkBlockFieldOptionsMapSchema = z67.record(
45253
- z67.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
45670
+ sdkBlockFieldOptionsMapSchema = z68.record(
45671
+ z68.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
45254
45672
  message: "Block ID must be 'block.*' or 'custom.*' format"
45255
45673
  }),
45256
- z67.record(z67.string().min(1), sdkBlockFieldConfigSchema)
45674
+ z68.record(z68.string().min(1), sdkBlockFieldConfigSchema)
45257
45675
  ).optional();
45258
- sdkContentTypeTemplateConfigSchema = z67.object({
45259
- blocks: z67.array(z67.unknown())
45676
+ sdkContentTypeTemplateConfigSchema = z68.object({
45677
+ blocks: z68.array(z68.unknown())
45260
45678
  }).passthrough();
45261
- sdkContentTypeOrderingConfigSchema = z67.object({
45262
- mode: z67.enum(["default", "manual"]).optional()
45679
+ sdkContentTypeOrderingConfigSchema = z68.object({
45680
+ mode: z68.enum(["default", "manual"]).optional()
45263
45681
  }).optional();
45264
- sdkContentTypeConfigSchema = z67.object({
45265
- key: z67.string().min(1),
45266
- fields: z67.array(z67.unknown()),
45682
+ sdkContentTypeConfigSchema = z68.object({
45683
+ key: z68.string().min(1),
45684
+ fields: z68.array(z68.unknown()),
45267
45685
  ordering: sdkContentTypeOrderingConfigSchema,
45268
45686
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
45269
45687
  }).passthrough();
45270
- sdkContentConfigSchema = z67.object({
45271
- contentTypes: z67.array(sdkContentTypeConfigSchema).optional(),
45272
- pages: z67.array(z67.unknown()).optional(),
45273
- entries: z67.array(z67.unknown()).optional(),
45274
- navigationMenus: z67.array(z67.unknown()).optional(),
45275
- settings: z67.unknown().optional()
45688
+ sdkContentConfigSchema = z68.object({
45689
+ contentTypes: z68.array(sdkContentTypeConfigSchema).optional(),
45690
+ pages: z68.array(z68.unknown()).optional(),
45691
+ entries: z68.array(z68.unknown()).optional(),
45692
+ navigationMenus: z68.array(z68.unknown()).optional(),
45693
+ settings: z68.unknown().optional()
45276
45694
  }).passthrough();
45277
45695
  SDK_WORKFLOW_ID_MAX_LENGTH = 120;
45278
45696
  SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -45287,62 +45705,62 @@ var init_contracts2 = __esm({
45287
45705
  SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
45288
45706
  SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
45289
45707
  SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
45290
- sdkWorkflowIdSchema = z67.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
45708
+ sdkWorkflowIdSchema = z68.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
45291
45709
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
45292
45710
  });
45293
- sdkWorkflowEndpointSchema = z67.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 "/"' });
45294
- sdkWorkflowManualTriggerSchema = z67.object({
45295
- type: z67.literal("manual")
45711
+ sdkWorkflowEndpointSchema = z68.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 "/"' });
45712
+ sdkWorkflowManualTriggerSchema = z68.object({
45713
+ type: z68.literal("manual")
45296
45714
  }).strict();
45297
- sdkWorkflowTriggerFieldSchema = z67.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
45715
+ sdkWorkflowTriggerFieldSchema = z68.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
45298
45716
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
45299
45717
  });
45300
- sdkWorkflowFieldChangedConditionSchema = z67.object({
45718
+ sdkWorkflowFieldChangedConditionSchema = z68.object({
45301
45719
  field: sdkWorkflowTriggerFieldSchema,
45302
- changed: z67.literal(true)
45720
+ changed: z68.literal(true)
45303
45721
  }).strict();
45304
- sdkWorkflowFieldEmptyConditionSchema = z67.object({
45722
+ sdkWorkflowFieldEmptyConditionSchema = z68.object({
45305
45723
  field: sdkWorkflowTriggerFieldSchema,
45306
- isEmpty: z67.boolean()
45724
+ isEmpty: z68.boolean()
45307
45725
  }).strict();
45308
- sdkWorkflowEntryDraftUpdatedTriggerSchema = z67.object({
45309
- type: z67.literal("entry.draft.updated"),
45310
- when: z67.array(
45311
- z67.union([
45726
+ sdkWorkflowEntryDraftUpdatedTriggerSchema = z68.object({
45727
+ type: z68.literal("entry.draft.updated"),
45728
+ when: z68.array(
45729
+ z68.union([
45312
45730
  sdkWorkflowFieldChangedConditionSchema,
45313
45731
  sdkWorkflowFieldEmptyConditionSchema
45314
45732
  ])
45315
45733
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
45316
45734
  }).strict();
45317
- sdkWorkflowTriggerSchema = z67.discriminatedUnion("type", [
45735
+ sdkWorkflowTriggerSchema = z68.discriminatedUnion("type", [
45318
45736
  sdkWorkflowManualTriggerSchema,
45319
45737
  sdkWorkflowEntryDraftUpdatedTriggerSchema
45320
45738
  ]);
45321
- sdkWorkflowConfirmationSchema = z67.object({
45322
- title: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
45323
- body: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
45739
+ sdkWorkflowConfirmationSchema = z68.object({
45740
+ title: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
45741
+ body: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
45324
45742
  }).strict();
45325
- sdkWorkflowConfigSchema = z67.object({
45743
+ sdkWorkflowConfigSchema = z68.object({
45326
45744
  id: sdkWorkflowIdSchema,
45327
- title: z67.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
45328
- description: z67.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
45329
- contentType: z67.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
45745
+ title: z68.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
45746
+ description: z68.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
45747
+ contentType: z68.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
45330
45748
  endpoint: sdkWorkflowEndpointSchema,
45331
- triggers: z67.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
45749
+ triggers: z68.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
45332
45750
  confirmation: sdkWorkflowConfirmationSchema.optional()
45333
45751
  }).strict();
45334
- sdkWorkflowsSchema = z67.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
45752
+ sdkWorkflowsSchema = z68.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
45335
45753
  const ids = workflows.map((workflow) => workflow.id);
45336
45754
  return ids.length === new Set(ids).size;
45337
45755
  }, { message: "Workflow IDs must be unique" }).optional();
45338
- riverbankSiteConfigInputSchema = z67.object({
45339
- siteId: z67.string().uuid(),
45340
- previewUrl: z67.string().url().optional(),
45341
- liveUrl: z67.string().url().optional(),
45756
+ riverbankSiteConfigInputSchema = z68.object({
45757
+ siteId: z68.string().uuid(),
45758
+ previewUrl: z68.string().url().optional(),
45759
+ liveUrl: z68.string().url().optional(),
45342
45760
  theme: sdkThemeConfigSchema.optional(),
45343
45761
  styles: sdkSiteStyleConfigSchema.optional(),
45344
45762
  layout: sdkSiteLayoutConfigSchema.optional(),
45345
- customBlocks: z67.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
45763
+ customBlocks: z68.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
45346
45764
  const ids = blocks.map((b) => b.id);
45347
45765
  return ids.length === new Set(ids).size;
45348
45766
  }, { message: "Block IDs must be unique" }).optional(),
@@ -45350,22 +45768,23 @@ var init_contracts2 = __esm({
45350
45768
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
45351
45769
  workflows: sdkWorkflowsSchema,
45352
45770
  content: sdkContentConfigSchema.optional(),
45353
- contentDir: z67.string().optional(),
45354
- sync: z67.object({
45355
- existingEntries: z67.enum(["skip", "update"]).optional()
45771
+ contentDir: z68.string().optional(),
45772
+ sync: z68.object({
45773
+ existingEntries: z68.enum(["skip", "update"]).optional()
45356
45774
  }).optional(),
45357
- deploy: z67.object({
45358
- verifyCommand: z67.string().optional(),
45359
- prebuildOutput: z67.string().optional()
45775
+ deploy: z68.object({
45776
+ verifyCommand: z68.string().optional(),
45777
+ prebuildOutput: z68.string().optional()
45360
45778
  }).optional(),
45361
- themeSource: z67.enum(["local", "cms"]).optional(),
45362
- activeTheme: z67.string().optional(),
45363
- enablePortal: z67.boolean().optional(),
45779
+ themeSource: z68.enum(["local", "cms"]).optional(),
45780
+ activeTheme: z68.string().optional(),
45781
+ enablePortal: z68.boolean().optional(),
45364
45782
  dashboard: dashboardConfigSchema.optional()
45365
45783
  }).strict();
45366
- pushSdkConfigBodySchema = z67.object({
45784
+ pushSdkConfigBodySchema = z68.object({
45367
45785
  config: riverbankSiteConfigInputSchema,
45368
- forceContentTypes: z67.boolean().optional()
45786
+ forceContentTypes: z68.boolean().optional(),
45787
+ mode: z68.enum(["apply", "preview"]).optional()
45369
45788
  }).strict();
45370
45789
  }
45371
45790
  });
@@ -45384,6 +45803,13 @@ var init_incrementalJson = __esm({
45384
45803
  }
45385
45804
  });
45386
45805
 
45806
+ // ../api/src/publicExperienceEndpoints.ts
45807
+ var init_publicExperienceEndpoints = __esm({
45808
+ "../api/src/publicExperienceEndpoints.ts"() {
45809
+ "use strict";
45810
+ }
45811
+ });
45812
+
45387
45813
  // ../api/src/mailchimpIntegration.ts
45388
45814
  var init_mailchimpIntegration = __esm({
45389
45815
  "../api/src/mailchimpIntegration.ts"() {
@@ -45392,7 +45818,7 @@ var init_mailchimpIntegration = __esm({
45392
45818
  });
45393
45819
 
45394
45820
  // ../api/src/siteOnboarding.ts
45395
- import { z as z68 } from "zod";
45821
+ import { z as z69 } from "zod";
45396
45822
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS, acknowledgeLaunchRequirementRequestSchema, goLiveSiteRequestSchema;
45397
45823
  var init_siteOnboarding = __esm({
45398
45824
  "../api/src/siteOnboarding.ts"() {
@@ -45403,24 +45829,24 @@ var init_siteOnboarding = __esm({
45403
45829
  reason: "launch_anyway"
45404
45830
  }
45405
45831
  };
45406
- acknowledgeLaunchRequirementRequestSchema = z68.discriminatedUnion(
45832
+ acknowledgeLaunchRequirementRequestSchema = z69.discriminatedUnion(
45407
45833
  "requirementId",
45408
45834
  [
45409
- z68.object({
45410
- requirementId: z68.literal("review_generated_site")
45835
+ z69.object({
45836
+ requirementId: z69.literal("review_generated_site")
45411
45837
  }),
45412
- z68.object({
45413
- requirementId: z68.literal(
45838
+ z69.object({
45839
+ requirementId: z69.literal(
45414
45840
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
45415
45841
  ),
45416
- overrideReason: z68.literal(
45842
+ overrideReason: z69.literal(
45417
45843
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
45418
45844
  )
45419
45845
  })
45420
45846
  ]
45421
45847
  );
45422
- goLiveSiteRequestSchema = z68.object({
45423
- acceptExtraSiteCharge: z68.boolean().optional()
45848
+ goLiveSiteRequestSchema = z69.object({
45849
+ acceptExtraSiteCharge: z69.boolean().optional()
45424
45850
  });
45425
45851
  }
45426
45852
  });
@@ -45609,7 +46035,7 @@ var init_bookingRefundOutcomes = __esm({
45609
46035
  });
45610
46036
 
45611
46037
  // ../api/src/bookingVerticals.ts
45612
- import { z as z69 } from "zod";
46038
+ import { z as z70 } from "zod";
45613
46039
  function parseVerticalId(value) {
45614
46040
  return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
45615
46041
  }
@@ -45790,39 +46216,39 @@ var init_bookingVerticals = __esm({
45790
46216
  VERTICAL_PRESET_ID_SET = new Set(
45791
46217
  VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
45792
46218
  );
45793
- VerticalIdSchema = z69.string().trim().transform((value, ctx) => {
46219
+ VerticalIdSchema = z70.string().trim().transform((value, ctx) => {
45794
46220
  const parsed = parseVerticalId(value);
45795
46221
  if (!parsed) {
45796
46222
  ctx.addIssue({
45797
- code: z69.ZodIssueCode.custom,
46223
+ code: z70.ZodIssueCode.custom,
45798
46224
  message: "Unknown booking vertical"
45799
46225
  });
45800
- return z69.NEVER;
46226
+ return z70.NEVER;
45801
46227
  }
45802
46228
  return parsed;
45803
46229
  });
45804
- VerticalPresetIdSchema = z69.string().trim().transform((value, ctx) => {
46230
+ VerticalPresetIdSchema = z70.string().trim().transform((value, ctx) => {
45805
46231
  const parsed = parseVerticalPresetId(value);
45806
46232
  if (!parsed) {
45807
46233
  ctx.addIssue({
45808
- code: z69.ZodIssueCode.custom,
46234
+ code: z70.ZodIssueCode.custom,
45809
46235
  message: "Unknown booking preset"
45810
46236
  });
45811
- return z69.NEVER;
46237
+ return z70.NEVER;
45812
46238
  }
45813
46239
  return parsed;
45814
46240
  });
45815
- BookingVerticalConfigSchema = z69.object({
46241
+ BookingVerticalConfigSchema = z70.object({
45816
46242
  verticalId: VerticalIdSchema.nullable(),
45817
- selectedPresetIds: z69.array(VerticalPresetIdSchema).max(20)
46243
+ selectedPresetIds: z70.array(VerticalPresetIdSchema).max(20)
45818
46244
  }).transform((value, ctx) => {
45819
46245
  const resolved = resolveSiteVerticalBookingConfig(value);
45820
46246
  if (resolved.kind === "invalid") {
45821
46247
  ctx.addIssue({
45822
- code: z69.ZodIssueCode.custom,
46248
+ code: z70.ZodIssueCode.custom,
45823
46249
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
45824
46250
  });
45825
- return z69.NEVER;
46251
+ return z70.NEVER;
45826
46252
  }
45827
46253
  return resolved.config;
45828
46254
  });
@@ -45867,7 +46293,7 @@ var init_error_propagation = __esm({
45867
46293
  });
45868
46294
 
45869
46295
  // ../api/src/appointmentSetup.ts
45870
- import { z as z70 } from "zod";
46296
+ import { z as z71 } from "zod";
45871
46297
  var APPOINTMENT_SETUP_MAX_MINUTES, appointmentSetupRefSchema, appointmentSetupVenueChoiceSchema, appointmentSetupPaymentDraftSchema, appointmentSetupServiceAssignmentDraftSchema, appointmentSetupServiceDraftSchema, appointmentSetupPractitionerDraftSchema, appointmentSetupWeeklyWindowDraftSchema, appointmentSetupStartTimePolicyDraftSchema, appointmentSetupAvailabilityDraftSchema, APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX, APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX, appointmentSetupBookingNoticeSchema, applyAppointmentSetupRequestSchema;
45872
46298
  var init_appointmentSetup = __esm({
45873
46299
  "../api/src/appointmentSetup.ts"() {
@@ -45875,49 +46301,49 @@ var init_appointmentSetup = __esm({
45875
46301
  init_envelope();
45876
46302
  init_error_propagation();
45877
46303
  APPOINTMENT_SETUP_MAX_MINUTES = 1440;
45878
- appointmentSetupRefSchema = z70.discriminatedUnion("kind", [
45879
- z70.object({ kind: z70.literal("existing"), id: z70.string().min(1) }),
45880
- z70.object({ kind: z70.literal("new"), draftId: z70.string().min(1) })
46304
+ appointmentSetupRefSchema = z71.discriminatedUnion("kind", [
46305
+ z71.object({ kind: z71.literal("existing"), id: z71.string().min(1) }),
46306
+ z71.object({ kind: z71.literal("new"), draftId: z71.string().min(1) })
45881
46307
  ]);
45882
- appointmentSetupVenueChoiceSchema = z70.discriminatedUnion("kind", [
45883
- z70.object({ kind: z70.literal("none") }),
45884
- z70.object({ kind: z70.literal("existing"), venueId: z70.string().min(1) }),
45885
- z70.object({
45886
- kind: z70.literal("create"),
45887
- draftId: z70.string().min(1),
45888
- title: z70.string().trim().min(1),
45889
- description: z70.string().nullable(),
45890
- timezone: z70.string().trim().min(1).nullable(),
45891
- addressJson: z70.record(z70.string(), z70.unknown()),
45892
- locationJson: z70.object({ lat: z70.number(), lng: z70.number() }).nullable()
46308
+ appointmentSetupVenueChoiceSchema = z71.discriminatedUnion("kind", [
46309
+ z71.object({ kind: z71.literal("none") }),
46310
+ z71.object({ kind: z71.literal("existing"), venueId: z71.string().min(1) }),
46311
+ z71.object({
46312
+ kind: z71.literal("create"),
46313
+ draftId: z71.string().min(1),
46314
+ title: z71.string().trim().min(1),
46315
+ description: z71.string().nullable(),
46316
+ timezone: z71.string().trim().min(1).nullable(),
46317
+ addressJson: z71.record(z71.string(), z71.unknown()),
46318
+ locationJson: z71.object({ lat: z71.number(), lng: z71.number() }).nullable()
45893
46319
  })
45894
46320
  ]);
45895
- appointmentSetupPaymentDraftSchema = z70.object({
45896
- priceType: z70.union([z70.literal("free"), z70.literal("paid")])
45897
- });
45898
- appointmentSetupServiceAssignmentDraftSchema = z70.discriminatedUnion("kind", [
45899
- z70.object({ kind: z70.literal("all_practitioners") }),
45900
- z70.object({
45901
- kind: z70.literal("selected_practitioners"),
45902
- resourceRefs: z70.array(appointmentSetupRefSchema)
46321
+ appointmentSetupPaymentDraftSchema = z71.object({
46322
+ priceType: z71.union([z71.literal("free"), z71.literal("paid")])
46323
+ });
46324
+ appointmentSetupServiceAssignmentDraftSchema = z71.discriminatedUnion("kind", [
46325
+ z71.object({ kind: z71.literal("all_practitioners") }),
46326
+ z71.object({
46327
+ kind: z71.literal("selected_practitioners"),
46328
+ resourceRefs: z71.array(appointmentSetupRefSchema)
45903
46329
  })
45904
46330
  ]);
45905
- appointmentSetupServiceDraftSchema = z70.object({
46331
+ appointmentSetupServiceDraftSchema = z71.object({
45906
46332
  ref: appointmentSetupRefSchema,
45907
- title: z70.string().trim().min(1),
45908
- description: z70.string().nullable(),
45909
- durationMinutes: z70.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
45910
- prepMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45911
- cleanupMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45912
- priceAmount: z70.number().int().nonnegative().nullable(),
45913
- isActive: z70.boolean(),
45914
- locationType: z70.union([
45915
- z70.literal("virtual"),
45916
- z70.literal("in_person"),
45917
- z70.literal("hybrid")
46333
+ title: z71.string().trim().min(1),
46334
+ description: z71.string().nullable(),
46335
+ durationMinutes: z71.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
46336
+ prepMinutes: z71.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
46337
+ cleanupMinutes: z71.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
46338
+ priceAmount: z71.number().int().nonnegative().nullable(),
46339
+ isActive: z71.boolean(),
46340
+ locationType: z71.union([
46341
+ z71.literal("virtual"),
46342
+ z71.literal("in_person"),
46343
+ z71.literal("hybrid")
45918
46344
  ]),
45919
46345
  venue: appointmentSetupVenueChoiceSchema,
45920
- timezone: z70.string().trim().min(1).nullable(),
46346
+ timezone: z71.string().trim().min(1).nullable(),
45921
46347
  payment: appointmentSetupPaymentDraftSchema,
45922
46348
  assignment: appointmentSetupServiceAssignmentDraftSchema
45923
46349
  }).superRefine((service, ctx) => {
@@ -45936,49 +46362,49 @@ var init_appointmentSetup = __esm({
45936
46362
  });
45937
46363
  }
45938
46364
  });
45939
- appointmentSetupPractitionerDraftSchema = z70.object({
46365
+ appointmentSetupPractitionerDraftSchema = z71.object({
45940
46366
  ref: appointmentSetupRefSchema,
45941
- displayName: z70.string().trim().min(1),
45942
- bio: z70.string().nullable(),
45943
- timezone: z70.string().trim().min(1),
45944
- colorHex: z70.string().nullable()
45945
- });
45946
- appointmentSetupWeeklyWindowDraftSchema = z70.object({
45947
- weekday: z70.number().int().min(0).max(6),
45948
- startTime: z70.string(),
45949
- endTime: z70.string()
45950
- });
45951
- appointmentSetupStartTimePolicyDraftSchema = z70.discriminatedUnion("kind", [
45952
- z70.object({ kind: z70.literal("automatic_spacing") }),
45953
- z70.object({
45954
- kind: z70.literal("regular_interval"),
45955
- intervalMinutes: z70.union([
45956
- z70.literal(10),
45957
- z70.literal(15),
45958
- z70.literal(20),
45959
- z70.literal(30),
45960
- z70.literal(45),
45961
- z70.literal(60)
46367
+ displayName: z71.string().trim().min(1),
46368
+ bio: z71.string().nullable(),
46369
+ timezone: z71.string().trim().min(1),
46370
+ colorHex: z71.string().nullable()
46371
+ });
46372
+ appointmentSetupWeeklyWindowDraftSchema = z71.object({
46373
+ weekday: z71.number().int().min(0).max(6),
46374
+ startTime: z71.string(),
46375
+ endTime: z71.string()
46376
+ });
46377
+ appointmentSetupStartTimePolicyDraftSchema = z71.discriminatedUnion("kind", [
46378
+ z71.object({ kind: z71.literal("automatic_spacing") }),
46379
+ z71.object({
46380
+ kind: z71.literal("regular_interval"),
46381
+ intervalMinutes: z71.union([
46382
+ z71.literal(10),
46383
+ z71.literal(15),
46384
+ z71.literal(20),
46385
+ z71.literal(30),
46386
+ z71.literal(45),
46387
+ z71.literal(60)
45962
46388
  ])
45963
46389
  })
45964
46390
  ]);
45965
- appointmentSetupAvailabilityDraftSchema = z70.object({
45966
- kind: z70.literal("weekly_windows"),
46391
+ appointmentSetupAvailabilityDraftSchema = z71.object({
46392
+ kind: z71.literal("weekly_windows"),
45967
46393
  resourceRef: appointmentSetupRefSchema,
45968
46394
  serviceRef: appointmentSetupRefSchema.nullable(),
45969
- windows: z70.array(appointmentSetupWeeklyWindowDraftSchema),
46395
+ windows: z71.array(appointmentSetupWeeklyWindowDraftSchema),
45970
46396
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
45971
46397
  });
45972
46398
  APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
45973
46399
  APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
45974
- appointmentSetupBookingNoticeSchema = z70.object({
45975
- minLeadMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
45976
- maxBookingNoticeMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
45977
- });
45978
- applyAppointmentSetupRequestSchema = z70.object({
45979
- services: z70.array(appointmentSetupServiceDraftSchema),
45980
- practitioners: z70.array(appointmentSetupPractitionerDraftSchema),
45981
- availability: z70.array(appointmentSetupAvailabilityDraftSchema),
46400
+ appointmentSetupBookingNoticeSchema = z71.object({
46401
+ minLeadMinutes: z71.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
46402
+ maxBookingNoticeMinutes: z71.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
46403
+ });
46404
+ applyAppointmentSetupRequestSchema = z71.object({
46405
+ services: z71.array(appointmentSetupServiceDraftSchema),
46406
+ practitioners: z71.array(appointmentSetupPractitionerDraftSchema),
46407
+ availability: z71.array(appointmentSetupAvailabilityDraftSchema),
45982
46408
  bookingNotice: appointmentSetupBookingNoticeSchema
45983
46409
  });
45984
46410
  }
@@ -46102,7 +46528,7 @@ var init_eventAttendanceLabels = __esm({
46102
46528
  });
46103
46529
 
46104
46530
  // ../api/src/siteBanner.ts
46105
- import { z as z71 } from "zod";
46531
+ import { z as z72 } from "zod";
46106
46532
  function analyzeSiteBannerBody(body) {
46107
46533
  const sanitizedBody = sanitizeSiteBannerBodyInternal(body, { limitParagraphs: false });
46108
46534
  const paragraphs = collectParagraphs(sanitizedBody);
@@ -46285,19 +46711,19 @@ var init_siteBanner = __esm({
46285
46711
  SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
46286
46712
  SITE_BANNER_MAX_TEXT_LENGTH = 320;
46287
46713
  SITE_BANNER_MAX_PARAGRAPHS = 2;
46288
- siteBannerScopeSchema = z71.enum(SITE_BANNER_SCOPE_VALUES);
46289
- siteBannerToneSchema = z71.enum(SITE_BANNER_TONE_VALUES);
46290
- siteBannerBodySchema = z71.unknown().transform(unwrapRichTextValue);
46291
- siteBannerCtaSchema = z71.object({
46292
- label: z71.string().trim().min(1),
46714
+ siteBannerScopeSchema = z72.enum(SITE_BANNER_SCOPE_VALUES);
46715
+ siteBannerToneSchema = z72.enum(SITE_BANNER_TONE_VALUES);
46716
+ siteBannerBodySchema = z72.unknown().transform(unwrapRichTextValue);
46717
+ siteBannerCtaSchema = z72.object({
46718
+ label: z72.string().trim().min(1),
46293
46719
  link: linkPayloadSchema
46294
46720
  });
46295
- siteBannerSettingsSchema = z71.discriminatedUnion("enabled", [
46296
- z71.object({
46297
- enabled: z71.literal(false)
46721
+ siteBannerSettingsSchema = z72.discriminatedUnion("enabled", [
46722
+ z72.object({
46723
+ enabled: z72.literal(false)
46298
46724
  }),
46299
- z71.object({
46300
- enabled: z71.literal(true),
46725
+ z72.object({
46726
+ enabled: z72.literal(true),
46301
46727
  scope: siteBannerScopeSchema,
46302
46728
  tone: siteBannerToneSchema,
46303
46729
  body: siteBannerBodySchema,
@@ -46311,7 +46737,7 @@ var init_siteBanner = __esm({
46311
46737
  const analysis = analyzeSiteBannerBody(value.body);
46312
46738
  for (const issue of analysis.issues) {
46313
46739
  ctx.addIssue({
46314
- code: z71.ZodIssueCode.custom,
46740
+ code: z72.ZodIssueCode.custom,
46315
46741
  path: ["body"],
46316
46742
  message: siteBannerBodyIssueMessage(issue)
46317
46743
  });
@@ -46711,75 +47137,75 @@ var init_aiPatch = __esm({
46711
47137
  });
46712
47138
 
46713
47139
  // ../api/src/aiPlayground.ts
46714
- import { z as z72 } from "zod";
47140
+ import { z as z73 } from "zod";
46715
47141
  var Rfc6902PatchOp, PlaygroundProposeRequest, MultiPagePatchEnvelope, MultiPageUpdateResponse;
46716
47142
  var init_aiPlayground = __esm({
46717
47143
  "../api/src/aiPlayground.ts"() {
46718
47144
  "use strict";
46719
- Rfc6902PatchOp = z72.discriminatedUnion("op", [
47145
+ Rfc6902PatchOp = z73.discriminatedUnion("op", [
46720
47146
  // Standard RFC-6902 operations
46721
- z72.object({
46722
- op: z72.literal("add"),
46723
- path: z72.string(),
46724
- value: z72.unknown()
47147
+ z73.object({
47148
+ op: z73.literal("add"),
47149
+ path: z73.string(),
47150
+ value: z73.unknown()
46725
47151
  }),
46726
- z72.object({
46727
- op: z72.literal("remove"),
46728
- path: z72.string()
47152
+ z73.object({
47153
+ op: z73.literal("remove"),
47154
+ path: z73.string()
46729
47155
  }),
46730
- z72.object({
46731
- op: z72.literal("replace"),
46732
- path: z72.string(),
46733
- value: z72.unknown()
47156
+ z73.object({
47157
+ op: z73.literal("replace"),
47158
+ path: z73.string(),
47159
+ value: z73.unknown()
46734
47160
  }),
46735
- z72.object({
46736
- op: z72.literal("move"),
46737
- from: z72.string(),
46738
- path: z72.string()
47161
+ z73.object({
47162
+ op: z73.literal("move"),
47163
+ from: z73.string(),
47164
+ path: z73.string()
46739
47165
  }),
46740
- z72.object({
46741
- op: z72.literal("copy"),
46742
- from: z72.string(),
46743
- path: z72.string()
47166
+ z73.object({
47167
+ op: z73.literal("copy"),
47168
+ from: z73.string(),
47169
+ path: z73.string()
46744
47170
  }),
46745
47171
  // Block-level operations (Phase 2)
46746
- z72.object({
46747
- op: z72.literal("add_block"),
46748
- blockKind: z72.string(),
46749
- afterBlockId: z72.string().nullable(),
46750
- content: z72.record(z72.string(), z72.unknown()),
46751
- rationale: z72.string()
47172
+ z73.object({
47173
+ op: z73.literal("add_block"),
47174
+ blockKind: z73.string(),
47175
+ afterBlockId: z73.string().nullable(),
47176
+ content: z73.record(z73.string(), z73.unknown()),
47177
+ rationale: z73.string()
46752
47178
  }),
46753
- z72.object({
46754
- op: z72.literal("delete_block"),
46755
- blockId: z72.string(),
46756
- rationale: z72.string()
47179
+ z73.object({
47180
+ op: z73.literal("delete_block"),
47181
+ blockId: z73.string(),
47182
+ rationale: z73.string()
46757
47183
  }),
46758
- z72.object({
46759
- op: z72.literal("reorder_block"),
46760
- blockId: z72.string(),
46761
- afterBlockId: z72.string().nullable(),
46762
- rationale: z72.string()
47184
+ z73.object({
47185
+ op: z73.literal("reorder_block"),
47186
+ blockId: z73.string(),
47187
+ afterBlockId: z73.string().nullable(),
47188
+ rationale: z73.string()
46763
47189
  })
46764
47190
  ]);
46765
- PlaygroundProposeRequest = z72.object({
46766
- request: z72.string().min(1).max(2e3)
47191
+ PlaygroundProposeRequest = z73.object({
47192
+ request: z73.string().min(1).max(2e3)
46767
47193
  });
46768
- MultiPagePatchEnvelope = z72.object({
46769
- pageId: z72.string(),
46770
- blockId: z72.string().optional(),
47194
+ MultiPagePatchEnvelope = z73.object({
47195
+ pageId: z73.string(),
47196
+ blockId: z73.string().optional(),
46771
47197
  // Not present for page-level ops
46772
- blockKind: z72.string().optional(),
46773
- blockPurpose: z72.string().optional().nullable(),
46774
- ops: z72.array(Rfc6902PatchOp),
46775
- rationale: z72.string(),
46776
- currentContent: z72.record(z72.string(), z72.unknown()).optional()
47198
+ blockKind: z73.string().optional(),
47199
+ blockPurpose: z73.string().optional().nullable(),
47200
+ ops: z73.array(Rfc6902PatchOp),
47201
+ rationale: z73.string(),
47202
+ currentContent: z73.record(z73.string(), z73.unknown()).optional()
46777
47203
  });
46778
- MultiPageUpdateResponse = z72.object({
46779
- patches: z72.array(MultiPagePatchEnvelope),
46780
- assistantMessage: z72.string(),
46781
- pagesModified: z72.number(),
46782
- toolCallsUsed: z72.number()
47204
+ MultiPageUpdateResponse = z73.object({
47205
+ patches: z73.array(MultiPagePatchEnvelope),
47206
+ assistantMessage: z73.string(),
47207
+ pagesModified: z73.number(),
47208
+ toolCallsUsed: z73.number()
46783
47209
  });
46784
47210
  }
46785
47211
  });
@@ -46850,6 +47276,7 @@ var init_src5 = __esm({
46850
47276
  init_contracts2();
46851
47277
  init_sdkContracts();
46852
47278
  init_incrementalJson();
47279
+ init_publicExperienceEndpoints();
46853
47280
  init_mailchimpIntegration();
46854
47281
  init_launchReadiness();
46855
47282
  init_url();
@@ -47154,19 +47581,37 @@ async function getPublicBookingServices({ client, params }) {
47154
47581
  ids: readStringParam(params, "ids")
47155
47582
  });
47156
47583
  }
47584
+ async function getPublicWeeklySlotAvailability({ client, params }) {
47585
+ return await client.getPublicWeeklySlotAvailability({
47586
+ siteId: requireStringParam(params, "siteId", "getPublicWeeklySlotAvailability"),
47587
+ serviceId: requireStringParam(params, "serviceId", "getPublicWeeklySlotAvailability"),
47588
+ resourceId: readStringParam(params, "resourceId"),
47589
+ horizonWeeks: parsePositiveIntegerParam(params, "horizonWeeks"),
47590
+ timezone: readStringParam(params, "timezone")
47591
+ });
47592
+ }
47157
47593
  async function prefetchBlockData2(page, context, client, options) {
47594
+ return prefetchBlockDataWithDeps(
47595
+ defaultPrefetchBlockDataDeps,
47596
+ page,
47597
+ context,
47598
+ client,
47599
+ options
47600
+ );
47601
+ }
47602
+ async function prefetchBlockDataWithDeps(deps, page, context, client, options) {
47158
47603
  const { customBlocks } = options ?? {};
47159
47604
  const customBlockMap = new Map(
47160
47605
  (customBlocks ?? []).map((block) => [block.id, block])
47161
47606
  );
47162
- return prefetchBlockData(page, context, {
47607
+ return deps.prefetchBlockDataCore(page, context, {
47163
47608
  apiClient: async ({ endpoint, params }) => {
47164
47609
  if (!isSupportedLoaderEndpoint2(endpoint)) {
47165
47610
  throw new Error(
47166
47611
  `Unsupported loader endpoint: ${endpoint}. SDK only supports: ${SUPPORTED_LOADER_ENDPOINTS.join(", ")}`
47167
47612
  );
47168
47613
  }
47169
- const resolvedParams = normalizeLoaderParams(endpoint, params, context);
47614
+ const resolvedParams = deps.normalizeLoaderParams(endpoint, params, context);
47170
47615
  return await loaderAdapters[endpoint]({ client, params: resolvedParams });
47171
47616
  },
47172
47617
  isValidEndpoint: isSupportedLoaderEndpoint2,
@@ -47194,12 +47639,16 @@ async function prefetchBlockData2(page, context, client, options) {
47194
47639
  }
47195
47640
  });
47196
47641
  }
47197
- var ENTRY_REF_KEYS, loaderAdapters;
47642
+ var defaultPrefetchBlockDataDeps, ENTRY_REF_KEYS, loaderAdapters;
47198
47643
  var init_prefetchBlockData2 = __esm({
47199
47644
  "src/data/prefetchBlockData.ts"() {
47200
47645
  "use strict";
47201
47646
  init_src5();
47202
47647
  init_data();
47648
+ defaultPrefetchBlockDataDeps = {
47649
+ prefetchBlockDataCore: prefetchBlockData,
47650
+ normalizeLoaderParams
47651
+ };
47203
47652
  ENTRY_REF_KEYS = [
47204
47653
  "identifier",
47205
47654
  "entryIdentifier",
@@ -47219,7 +47668,8 @@ var init_prefetchBlockData2 = __esm({
47219
47668
  listPublicPasses,
47220
47669
  listPublicMemberships,
47221
47670
  getPublicFormById,
47222
- getPublicBookingServices
47671
+ getPublicBookingServices,
47672
+ getPublicWeeklySlotAvailability
47223
47673
  };
47224
47674
  }
47225
47675
  });
@@ -47374,10 +47824,23 @@ var init_pageRuntimeSupport = __esm({
47374
47824
  // src/rendering/helpers/loadPage.ts
47375
47825
  var loadPage_exports = {};
47376
47826
  __export(loadPage_exports, {
47377
- loadPage: () => loadPage
47827
+ loadPage: () => loadPage,
47828
+ loadPageWithDeps: () => loadPageWithDeps
47378
47829
  });
47379
47830
  async function loadPage(params) {
47380
- const { client, siteId, path, pageId, preview = false, dataLoaderOverrides, searchParams, forceSite } = params;
47831
+ return loadPageWithDeps(defaultLoadPageDeps, params);
47832
+ }
47833
+ async function loadPageWithDeps(deps, params) {
47834
+ const {
47835
+ client,
47836
+ siteId,
47837
+ path,
47838
+ pageId,
47839
+ preview = false,
47840
+ dataLoaderOverrides,
47841
+ searchParams,
47842
+ forceSite
47843
+ } = params;
47381
47844
  const [site, pageResponse] = await Promise.all([
47382
47845
  client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
47383
47846
  client.getPage({ siteId, path, preview })
@@ -47387,6 +47850,11 @@ async function loadPage(params) {
47387
47850
  "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."
47388
47851
  );
47389
47852
  }
47853
+ if ("pageSurface" in pageResponse) {
47854
+ throw new Error(
47855
+ "This path resolves to a page surface, not a page. Use loadContent() instead, which handles pages, entries, and page surfaces."
47856
+ );
47857
+ }
47390
47858
  const { page: pageData } = pageResponse;
47391
47859
  const support = buildSiteRenderSupport(
47392
47860
  site,
@@ -47405,7 +47873,7 @@ async function loadPage(params) {
47405
47873
  previewStage: preview ? "preview" : "published",
47406
47874
  searchParams
47407
47875
  };
47408
- const configData = await prefetchBlockData2(
47876
+ const configData = await deps.prefetchBlockData(
47409
47877
  pageOutline,
47410
47878
  prefetchContext,
47411
47879
  client,
@@ -47416,8 +47884,12 @@ async function loadPage(params) {
47416
47884
  );
47417
47885
  let resolvedData = configData;
47418
47886
  if (dataLoaderOverrides && Object.keys(dataLoaderOverrides).length > 0) {
47419
- const codeData = await executeCodeLoaders(pageOutline, prefetchContext, dataLoaderOverrides);
47420
- resolvedData = mergeLoaderResults(configData, codeData);
47887
+ const codeData = await deps.executeCodeLoaders(
47888
+ pageOutline,
47889
+ prefetchContext,
47890
+ dataLoaderOverrides
47891
+ );
47892
+ resolvedData = deps.mergeLoaderResults(configData, codeData);
47421
47893
  }
47422
47894
  return {
47423
47895
  page: pageOutline,
@@ -47435,12 +47907,18 @@ async function loadPage(params) {
47435
47907
  entriesByIdentifier: support.entriesByIdentifier
47436
47908
  };
47437
47909
  }
47910
+ var defaultLoadPageDeps;
47438
47911
  var init_loadPage = __esm({
47439
47912
  "src/rendering/helpers/loadPage.ts"() {
47440
47913
  "use strict";
47441
47914
  init_prefetchBlockData2();
47442
47915
  init_executeCodeLoaders();
47443
47916
  init_pageRuntimeSupport();
47917
+ defaultLoadPageDeps = {
47918
+ prefetchBlockData: prefetchBlockData2,
47919
+ executeCodeLoaders,
47920
+ mergeLoaderResults
47921
+ };
47444
47922
  }
47445
47923
  });
47446
47924
 
@@ -47474,7 +47952,16 @@ async function checkRedirectForPath(params) {
47474
47952
  }
47475
47953
 
47476
47954
  // src/routing/resolveRoute.ts
47955
+ var defaultResolveRouteDeps = {
47956
+ loadPage: async (params) => {
47957
+ const { loadPage: loadPage2 } = await Promise.resolve().then(() => (init_loadPage(), loadPage_exports));
47958
+ return loadPage2(params);
47959
+ }
47960
+ };
47477
47961
  async function resolveRoute(params) {
47962
+ return resolveRouteWithDeps(defaultResolveRouteDeps, params);
47963
+ }
47964
+ async function resolveRouteWithDeps(deps, params) {
47478
47965
  const { client, siteId, path, preview = false } = params;
47479
47966
  try {
47480
47967
  const pageResponse = await client.getPage({
@@ -47483,8 +47970,7 @@ async function resolveRoute(params) {
47483
47970
  preview
47484
47971
  });
47485
47972
  if (pageResponse) {
47486
- const { loadPage: loadPage2 } = await Promise.resolve().then(() => (init_loadPage(), loadPage_exports));
47487
- const pageData = await loadPage2({
47973
+ const pageData = await deps.loadPage({
47488
47974
  client,
47489
47975
  siteId,
47490
47976
  path,
@@ -47530,10 +48016,13 @@ async function resolveRoute(params) {
47530
48016
  };
47531
48017
  }
47532
48018
  async function resolveRoutes(params) {
48019
+ return resolveRoutesWithDeps(defaultResolveRouteDeps, params);
48020
+ }
48021
+ async function resolveRoutesWithDeps(paramsDeps, params) {
47533
48022
  const { client, siteId, paths, preview } = params;
47534
48023
  const resolutions = await Promise.all(
47535
48024
  paths.map(async (path) => {
47536
- const resolution = await resolveRoute({
48025
+ const resolution = await resolveRouteWithDeps(paramsDeps, {
47537
48026
  client,
47538
48027
  siteId,
47539
48028
  path,