@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
@@ -1,5 +1,5 @@
1
1
  // src/config/validation.ts
2
- import { z as z72 } from "zod";
2
+ import { z as z73 } from "zod";
3
3
 
4
4
  // ../api/src/apiEndpointTypes.ts
5
5
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -1040,6 +1040,94 @@ var ENDPOINT_DEFINITIONS = {
1040
1040
  responseKind: "json",
1041
1041
  errors: ["resource:not_found", "server:internal_error"]
1042
1042
  },
1043
+ listAppointmentReservations: {
1044
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1045
+ method: "GET",
1046
+ auth: "user",
1047
+ responseKind: "json",
1048
+ errors: []
1049
+ },
1050
+ createAppointmentReservation: {
1051
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1052
+ method: "POST",
1053
+ auth: "user",
1054
+ responseKind: "json",
1055
+ errors: [
1056
+ "validation:invalid_input",
1057
+ "resource:not_found",
1058
+ "resource:conflict",
1059
+ "server:internal_error"
1060
+ ]
1061
+ },
1062
+ getAppointmentReservation: {
1063
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1064
+ method: "GET",
1065
+ auth: "user",
1066
+ responseKind: "json",
1067
+ errors: ["resource:not_found", "server:internal_error"]
1068
+ },
1069
+ updateAppointmentReservation: {
1070
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1071
+ method: "PUT",
1072
+ auth: "user",
1073
+ responseKind: "json",
1074
+ errors: [
1075
+ "validation:invalid_input",
1076
+ "resource:not_found",
1077
+ "resource:conflict",
1078
+ "server:internal_error"
1079
+ ]
1080
+ },
1081
+ pauseAppointmentReservation: {
1082
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1083
+ method: "POST",
1084
+ auth: "user",
1085
+ responseKind: "json",
1086
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1087
+ },
1088
+ resumeAppointmentReservation: {
1089
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1090
+ method: "POST",
1091
+ auth: "user",
1092
+ responseKind: "json",
1093
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1094
+ },
1095
+ endAppointmentReservation: {
1096
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1097
+ method: "POST",
1098
+ auth: "user",
1099
+ responseKind: "json",
1100
+ errors: [
1101
+ "validation:invalid_input",
1102
+ "resource:not_found",
1103
+ "resource:conflict",
1104
+ "server:internal_error"
1105
+ ]
1106
+ },
1107
+ previewAppointmentReservationRun: {
1108
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1109
+ method: "POST",
1110
+ auth: "user",
1111
+ responseKind: "json",
1112
+ errors: [
1113
+ "validation:invalid_input",
1114
+ "resource:not_found",
1115
+ "resource:conflict",
1116
+ "server:internal_error"
1117
+ ]
1118
+ },
1119
+ createAppointmentReservationRun: {
1120
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
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
+ },
1043
1131
  createTeamMemberProfile: {
1044
1132
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1045
1133
  method: "POST",
@@ -3496,6 +3584,18 @@ var ENDPOINT_DEFINITIONS = {
3496
3584
  responseKind: "json",
3497
3585
  errors: ["validation:invalid_input", "server:internal_error"]
3498
3586
  },
3587
+ resolveRouteDecision: {
3588
+ path: "/sites/{siteId}/route-decision",
3589
+ method: "GET",
3590
+ tags: [
3591
+ TAG_TEMPLATES.siteRoutableContent,
3592
+ TAG_TEMPLATES.siteRedirects,
3593
+ TAG_TEMPLATES.siteRouteOutcomes
3594
+ ],
3595
+ auth: "public",
3596
+ responseKind: "json",
3597
+ errors: ["validation:invalid_input", "server:internal_error"]
3598
+ },
3499
3599
  getPageByPath: {
3500
3600
  path: "/sites/{siteId}/pages",
3501
3601
  method: "GET",
@@ -3634,6 +3734,15 @@ var ENDPOINT_DEFINITIONS = {
3634
3734
  auth: "public",
3635
3735
  responseKind: "json"
3636
3736
  },
3737
+ getPublicWeeklySlotAvailability: {
3738
+ path: "/public/bookings/weekly-slot-availability",
3739
+ method: "GET",
3740
+ revalidate: 60,
3741
+ tags: ["site-{siteId}"],
3742
+ auth: "public",
3743
+ responseKind: "json",
3744
+ errors: []
3745
+ },
3637
3746
  createPublicBookingAppointment: {
3638
3747
  path: "/public/bookings/appointments",
3639
3748
  method: "POST",
@@ -5544,6 +5653,14 @@ var ENDPOINT_DEFINITIONS = {
5544
5653
  responseKind: "json",
5545
5654
  errors: []
5546
5655
  },
5656
+ adminResolveSiteBillingManualReview: {
5657
+ path: "/admin/sites/{siteId}/billing/manual-reviews/{reviewId}/resolve",
5658
+ method: "POST",
5659
+ tags: ["admin", "site-{siteId}", "billing"],
5660
+ auth: "admin",
5661
+ responseKind: "json",
5662
+ errors: []
5663
+ },
5547
5664
  // Admin GSC/SEO endpoints
5548
5665
  adminGscVerifyStart: {
5549
5666
  path: "/admin/seo/gsc/properties/verify/start",
@@ -6786,7 +6903,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6786
6903
  );
6787
6904
 
6788
6905
  // ../api/src/sdkConfig/contracts.ts
6789
- import { z as z63 } from "zod";
6906
+ import { z as z64 } from "zod";
6790
6907
 
6791
6908
  // ../blocks/src/system/manifest/augmentManifest.ts
6792
6909
  function augmentManifest(manifest) {
@@ -6955,10 +7072,20 @@ var repeatSchema = z3.object({
6955
7072
  direction: z3.enum(["asc", "desc"]).default("asc")
6956
7073
  }).optional()
6957
7074
  });
7075
+ var conditionalAuthoringPresenceSchema = z3.discriminatedUnion("kind", [
7076
+ z3.object({ kind: z3.literal("visitor-only") }),
7077
+ z3.object({
7078
+ kind: z3.literal("recover-empty-when-active"),
7079
+ placeholder: z3.string().min(1).optional()
7080
+ })
7081
+ ]);
6958
7082
  var conditionSchema = z3.object({
6959
7083
  when: bindingSchema,
6960
7084
  equals: z3.unknown().optional(),
6961
- not: z3.boolean().default(false)
7085
+ not: z3.boolean().default(false),
7086
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
7087
+ kind: "visitor-only"
7088
+ })
6962
7089
  });
6963
7090
  var dataScopeSchema = z3.object({
6964
7091
  name: z3.string().min(1),
@@ -7019,6 +7146,7 @@ var ALLOWED_NODE_TYPES = [
7019
7146
  // Forms
7020
7147
  "form",
7021
7148
  "booking-form",
7149
+ "weekly-slot-availability",
7022
7150
  // Events
7023
7151
  "event-registration",
7024
7152
  "event-spotlight",
@@ -11001,15 +11129,16 @@ var joyStamp = defineButtonPersonality({
11001
11129
  // 700, matching the mockup's chunky button labels.
11002
11130
  typography: "heading",
11003
11131
  fontWeight: 700,
11132
+ fontSize: "text-lg",
11004
11133
  borderWidth: 2,
11005
11134
  hoverTransform: "none",
11006
11135
  hoverColor: "none"
11007
11136
  },
11008
11137
  sizes: {
11009
- sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
11010
- md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
11011
- lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
11012
- xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
11138
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
11139
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
11140
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
11141
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
11013
11142
  },
11014
11143
  variants: [
11015
11144
  {
@@ -18056,7 +18185,8 @@ function when(path, options) {
18056
18185
  $when: {
18057
18186
  when: { from: path },
18058
18187
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
18059
- ...options?.not ? { not: true } : {}
18188
+ ...options?.not ? { not: true } : {},
18189
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
18060
18190
  }
18061
18191
  });
18062
18192
  }
@@ -27883,77 +28013,247 @@ var appointmentBookingBlockDefinition = {
27883
28013
  }
27884
28014
  };
27885
28015
 
28016
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
28017
+ import { z as z39 } from "zod";
28018
+ var weeklySlotAvailabilityManifest = createBlockManifest({
28019
+ id: "block.weekly-slot-availability",
28020
+ version: "1.0.0",
28021
+ title: "Weekly Slot Availability",
28022
+ titleSource: "heading",
28023
+ description: "Shows available recurring appointment slot patterns",
28024
+ skipSectionStyles: true,
28025
+ additionalFields: [
28026
+ {
28027
+ id: "serviceId",
28028
+ type: "reference",
28029
+ label: "Appointment service",
28030
+ description: "Choose which appointment service to show availability for",
28031
+ required: true,
28032
+ referenceKind: "appointmentService",
28033
+ allowManualEntry: false,
28034
+ ui: { intent: "behavior" }
28035
+ },
28036
+ {
28037
+ id: "resourceId",
28038
+ type: "reference",
28039
+ label: "Appointment resource",
28040
+ description: "Optionally narrow the availability to one practitioner or room",
28041
+ required: false,
28042
+ referenceKind: "appointmentResource",
28043
+ allowManualEntry: false,
28044
+ ui: { intent: "behavior" }
28045
+ },
28046
+ {
28047
+ id: "horizonWeeks",
28048
+ type: "select",
28049
+ label: "Look ahead",
28050
+ required: false,
28051
+ multiple: false,
28052
+ defaultValue: "4",
28053
+ options: [
28054
+ { value: "1", label: "1 week" },
28055
+ { value: "2", label: "2 weeks" },
28056
+ { value: "4", label: "4 weeks" }
28057
+ ],
28058
+ ui: { intent: "behavior" }
28059
+ },
28060
+ {
28061
+ id: "timezone",
28062
+ type: "text",
28063
+ label: "Timezone",
28064
+ description: "Leave blank to use the visitor timezone when the block loads",
28065
+ required: false,
28066
+ multiline: false,
28067
+ defaultValue: "",
28068
+ maxLength: 64,
28069
+ ui: { intent: "behavior" }
28070
+ },
28071
+ {
28072
+ id: "heading",
28073
+ type: "text",
28074
+ label: "Heading",
28075
+ required: false,
28076
+ multiline: false,
28077
+ defaultValue: "Weekly availability"
28078
+ },
28079
+ {
28080
+ id: "description",
28081
+ type: "richText",
28082
+ label: "Description",
28083
+ required: false
28084
+ },
28085
+ {
28086
+ id: "emptyMessage",
28087
+ type: "text",
28088
+ label: "Empty message",
28089
+ required: false,
28090
+ multiline: true,
28091
+ defaultValue: "No regular weekly openings are currently available.",
28092
+ maxLength: 180
28093
+ },
28094
+ {
28095
+ id: "ctaText",
28096
+ type: "text",
28097
+ label: "Enquiry button text",
28098
+ required: false,
28099
+ multiline: false,
28100
+ defaultValue: "Enquire about this slot",
28101
+ maxLength: 60
28102
+ },
28103
+ {
28104
+ id: "ctaUrl",
28105
+ type: "url",
28106
+ label: "Enquiry URL",
28107
+ required: false,
28108
+ ui: { intent: "behavior" }
28109
+ },
28110
+ sectionStylesField({
28111
+ id: "_sectionStyles",
28112
+ label: "Section styles"
28113
+ })
28114
+ ],
28115
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
28116
+ behaviours: {
28117
+ supportsThemeSwitching: true,
28118
+ inlineEditing: false,
28119
+ animation: false,
28120
+ paletteHidden: false
28121
+ },
28122
+ category: "interactive",
28123
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
28124
+ icon: "CalendarDays",
28125
+ layout: [
28126
+ styledSection({
28127
+ children: sectionContainer([
28128
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
28129
+ richText({}, bind("content.description"), when("content.description")),
28130
+ el(
28131
+ "weekly-slot-availability",
28132
+ withApiBindings({
28133
+ serviceId: { $bind: { from: "content.serviceId" } },
28134
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
28135
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28136
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
28137
+ availability: { $bind: { from: "data.availability", fallback: null } },
28138
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
28139
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
28140
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
28141
+ })
28142
+ )
28143
+ ], {
28144
+ gap: "lg"
28145
+ }),
28146
+ baseClass: "",
28147
+ spacing: "spacious"
28148
+ })
28149
+ ]
28150
+ });
28151
+ var weeklySlotAvailabilityOptionSchema = z39.object({
28152
+ id: z39.string(),
28153
+ resourceId: z39.string(),
28154
+ weekday: z39.number(),
28155
+ weekdayLabel: z39.string(),
28156
+ startTime: z39.string(),
28157
+ endTime: z39.string(),
28158
+ nextDate: z39.string(),
28159
+ availableWeeks: z39.number()
28160
+ });
28161
+ var weeklySlotAvailabilityDataSchema = z39.object({
28162
+ slots: z39.array(weeklySlotAvailabilityOptionSchema),
28163
+ horizonWeeks: z39.number(),
28164
+ timezone: z39.string(),
28165
+ startDate: z39.string(),
28166
+ endDate: z39.string()
28167
+ });
28168
+ var weeklySlotAvailabilityBlockDefinition = {
28169
+ manifest: weeklySlotAvailabilityManifest,
28170
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
28171
+ dataLoaders: {
28172
+ availability: {
28173
+ endpoint: "getPublicWeeklySlotAvailability",
28174
+ params: {
28175
+ siteId: { $bind: { from: "$root.siteId" } },
28176
+ serviceId: { $bind: { from: "content.serviceId" } },
28177
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
28178
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28179
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
28180
+ },
28181
+ mode: "server"
28182
+ }
28183
+ }
28184
+ };
28185
+
27886
28186
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27887
- import { z as z43 } from "zod";
28187
+ import { z as z44 } from "zod";
27888
28188
 
27889
28189
  // ../blocks/src/lib/media.ts
27890
- import z39 from "zod";
28190
+ import z40 from "zod";
27891
28191
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
27892
28192
  "document",
27893
28193
  "spreadsheet",
27894
28194
  "archive",
27895
28195
  "audio"
27896
28196
  ];
27897
- var hotspotSchema2 = z39.object({
27898
- x: z39.number().min(0).max(1),
27899
- y: z39.number().min(0).max(1),
27900
- radius: z39.number().optional()
27901
- });
27902
- var rotationSchema2 = z39.union([z39.literal(0), z39.literal(90), z39.literal(180), z39.literal(270)]);
27903
- var rectSchema2 = z39.tuple([z39.number(), z39.number(), z39.number(), z39.number()]);
27904
- var aspectCropSchema2 = z39.object({
27905
- aspect: z39.preprocess((value) => value == null ? void 0 : value, z39.string().optional()),
27906
- rect: z39.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
27907
- hotspot: z39.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
27908
- rotation: z39.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
27909
- });
27910
- var transformSchema2 = z39.object({
27911
- aspectCrops: z39.preprocess((value) => {
28197
+ var hotspotSchema2 = z40.object({
28198
+ x: z40.number().min(0).max(1),
28199
+ y: z40.number().min(0).max(1),
28200
+ radius: z40.number().optional()
28201
+ });
28202
+ var rotationSchema2 = z40.union([z40.literal(0), z40.literal(90), z40.literal(180), z40.literal(270)]);
28203
+ var rectSchema2 = z40.tuple([z40.number(), z40.number(), z40.number(), z40.number()]);
28204
+ var aspectCropSchema2 = z40.object({
28205
+ aspect: z40.preprocess((value) => value == null ? void 0 : value, z40.string().optional()),
28206
+ rect: z40.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
28207
+ hotspot: z40.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
28208
+ rotation: z40.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
28209
+ });
28210
+ var transformSchema2 = z40.object({
28211
+ aspectCrops: z40.preprocess((value) => {
27912
28212
  if (!value || typeof value !== "object" || Array.isArray(value)) {
27913
28213
  return void 0;
27914
28214
  }
27915
28215
  return value;
27916
- }, z39.record(z39.string(), aspectCropSchema2.catch({}))).optional(),
28216
+ }, z40.record(z40.string(), aspectCropSchema2.catch({}))).optional(),
27917
28217
  rect: rectSchema2.optional(),
27918
28218
  hotspot: hotspotSchema2.optional(),
27919
28219
  rotation: rotationSchema2.optional()
27920
28220
  });
27921
- var mediaPosterSchema = z39.discriminatedUnion("tag", [
27922
- z39.object({
27923
- tag: z39.literal("storage"),
27924
- assetId: z39.string().optional(),
27925
- storageBucket: z39.string().min(1),
27926
- storagePath: z39.string().min(1)
28221
+ var mediaPosterSchema = z40.discriminatedUnion("tag", [
28222
+ z40.object({
28223
+ tag: z40.literal("storage"),
28224
+ assetId: z40.string().optional(),
28225
+ storageBucket: z40.string().min(1),
28226
+ storagePath: z40.string().min(1)
27927
28227
  }),
27928
- z39.object({
27929
- tag: z39.literal("external-src"),
27930
- assetId: z39.string().optional(),
27931
- src: z39.string().url()
28228
+ z40.object({
28229
+ tag: z40.literal("external-src"),
28230
+ assetId: z40.string().optional(),
28231
+ src: z40.string().url()
27932
28232
  })
27933
28233
  ]);
27934
- var mediaBaseSchema = z39.object({
27935
- purpose: z39.string().optional(),
27936
- placeholder: z39.boolean().default(true).optional(),
27937
- assetId: z39.string().optional(),
27938
- identifier: z39.string().optional(),
27939
- src: z39.string().optional(),
27940
- alt: z39.string().optional(),
27941
- filename: z39.string().optional(),
27942
- mimeType: z39.string().optional(),
27943
- width: z39.number().optional(),
27944
- height: z39.number().optional(),
27945
- storageBucket: z39.string().optional(),
27946
- storagePath: z39.string().optional(),
28234
+ var mediaBaseSchema = z40.object({
28235
+ purpose: z40.string().optional(),
28236
+ placeholder: z40.boolean().default(true).optional(),
28237
+ assetId: z40.string().optional(),
28238
+ identifier: z40.string().optional(),
28239
+ src: z40.string().optional(),
28240
+ alt: z40.string().optional(),
28241
+ filename: z40.string().optional(),
28242
+ mimeType: z40.string().optional(),
28243
+ width: z40.number().optional(),
28244
+ height: z40.number().optional(),
28245
+ storageBucket: z40.string().optional(),
28246
+ storagePath: z40.string().optional(),
27947
28247
  poster: mediaPosterSchema.optional(),
27948
28248
  transform: transformSchema2.optional()
27949
28249
  });
27950
- var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
27951
- var videoMediaSchema = mediaBaseSchema.extend({ type: z39.literal("video") });
27952
- var audioMediaSchema = mediaBaseSchema.extend({ type: z39.literal("audio") });
27953
- var documentMediaSchema = mediaBaseSchema.extend({ type: z39.literal("document") });
27954
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z39.literal("spreadsheet") });
27955
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z39.literal("archive") });
27956
- var mediaSchema2 = z39.discriminatedUnion("type", [
28250
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z40.literal("image") });
28251
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z40.literal("video") });
28252
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z40.literal("audio") });
28253
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z40.literal("document") });
28254
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z40.literal("spreadsheet") });
28255
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z40.literal("archive") });
28256
+ var mediaSchema2 = z40.discriminatedUnion("type", [
27957
28257
  imageMediaSchema,
27958
28258
  videoMediaSchema,
27959
28259
  audioMediaSchema,
@@ -27963,372 +28263,372 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27963
28263
  ]);
27964
28264
 
27965
28265
  // ../blocks/src/system/manifest/richTextSchema.ts
27966
- import { z as z40 } from "zod";
27967
- var TipTapMarkSchema = z40.object({
27968
- type: z40.string(),
27969
- attrs: z40.record(z40.string(), z40.unknown()).optional()
27970
- });
27971
- var TipTapNodeSchema = z40.lazy(
27972
- () => z40.object({
27973
- type: z40.string(),
27974
- content: z40.array(TipTapNodeSchema).optional(),
27975
- text: z40.string().optional(),
27976
- attrs: z40.record(z40.string(), z40.unknown()).optional(),
27977
- marks: z40.array(TipTapMarkSchema).optional()
28266
+ import { z as z41 } from "zod";
28267
+ var TipTapMarkSchema = z41.object({
28268
+ type: z41.string(),
28269
+ attrs: z41.record(z41.string(), z41.unknown()).optional()
28270
+ });
28271
+ var TipTapNodeSchema = z41.lazy(
28272
+ () => z41.object({
28273
+ type: z41.string(),
28274
+ content: z41.array(TipTapNodeSchema).optional(),
28275
+ text: z41.string().optional(),
28276
+ attrs: z41.record(z41.string(), z41.unknown()).optional(),
28277
+ marks: z41.array(TipTapMarkSchema).optional()
27978
28278
  })
27979
28279
  );
27980
- var RichTextValueSchema = z40.union([
28280
+ var RichTextValueSchema = z41.union([
27981
28281
  // Canonical: TipTap document directly
27982
28282
  TipTapNodeSchema,
27983
28283
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
27984
- z40.object({
28284
+ z41.object({
27985
28285
  doc: TipTapNodeSchema
27986
28286
  })
27987
28287
  ]);
27988
- var RichTextDocSchema = z40.object({
27989
- type: z40.literal("doc"),
27990
- content: z40.array(TipTapNodeSchema)
28288
+ var RichTextDocSchema = z41.object({
28289
+ type: z41.literal("doc"),
28290
+ content: z41.array(TipTapNodeSchema)
27991
28291
  });
27992
28292
 
27993
28293
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27994
- import { z as z41 } from "zod";
27995
- var bookingDepositRefundPolicySchema = z41.enum([
28294
+ import { z as z42 } from "zod";
28295
+ var bookingDepositRefundPolicySchema = z42.enum([
27996
28296
  "refundable",
27997
28297
  "non_refundable"
27998
28298
  ]);
27999
- var bookingInstalmentPlanSchema = z41.union([
28000
- z41.object({
28001
- kind: z41.literal("deposit_plus_one_remainder"),
28002
- depositAmountCents: z41.number().int().min(0),
28299
+ var bookingInstalmentPlanSchema = z42.union([
28300
+ z42.object({
28301
+ kind: z42.literal("deposit_plus_one_remainder"),
28302
+ depositAmountCents: z42.number().int().min(0),
28003
28303
  depositRefundability: bookingDepositRefundPolicySchema,
28004
- remainderDueCount: z41.number().int().positive(),
28005
- intervalUnit: z41.enum(["day", "week", "month"])
28304
+ remainderDueCount: z42.number().int().positive(),
28305
+ intervalUnit: z42.enum(["day", "week", "month"])
28006
28306
  }),
28007
- z41.object({
28008
- kind: z41.literal("deposit_plus_scheduled_instalments"),
28009
- depositAmountCents: z41.number().int().min(0),
28307
+ z42.object({
28308
+ kind: z42.literal("deposit_plus_scheduled_instalments"),
28309
+ depositAmountCents: z42.number().int().min(0),
28010
28310
  depositRefundability: bookingDepositRefundPolicySchema,
28011
- instalmentCount: z41.number().int().positive(),
28012
- intervalCount: z41.number().int().positive(),
28013
- intervalUnit: z41.enum(["day", "week", "month"])
28311
+ instalmentCount: z42.number().int().positive(),
28312
+ intervalCount: z42.number().int().positive(),
28313
+ intervalUnit: z42.enum(["day", "week", "month"])
28014
28314
  }),
28015
- z41.object({
28016
- kind: z41.literal("equal_scheduled_instalments"),
28017
- instalmentCount: z41.number().int().positive(),
28018
- intervalCount: z41.number().int().positive(),
28019
- intervalUnit: z41.enum(["day", "week", "month"])
28315
+ z42.object({
28316
+ kind: z42.literal("equal_scheduled_instalments"),
28317
+ instalmentCount: z42.number().int().positive(),
28318
+ intervalCount: z42.number().int().positive(),
28319
+ intervalUnit: z42.enum(["day", "week", "month"])
28020
28320
  })
28021
28321
  ]);
28022
- var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28023
- z41.object({
28024
- kind: z41.literal("relative_to_start_date"),
28025
- daysBeforeStart: z41.number().int().positive()
28322
+ var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
28323
+ z42.object({
28324
+ kind: z42.literal("relative_to_start_date"),
28325
+ daysBeforeStart: z42.number().int().positive()
28026
28326
  }),
28027
- z41.object({
28028
- kind: z41.literal("fixed_calendar_date"),
28029
- dueAt: z41.string().datetime()
28327
+ z42.object({
28328
+ kind: z42.literal("fixed_calendar_date"),
28329
+ dueAt: z42.string().datetime()
28030
28330
  })
28031
28331
  ]);
28032
- var bookingFlexibleBalanceConfigSchema = z41.object({
28033
- upfrontAmountCents: z41.number().int().min(0),
28332
+ var bookingFlexibleBalanceConfigSchema = z42.object({
28333
+ upfrontAmountCents: z42.number().int().min(0),
28034
28334
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
28035
28335
  depositRefundability: bookingDepositRefundPolicySchema
28036
28336
  });
28037
- var blockBookingPaymentCollectionOptionSchema = z41.union([
28038
- z41.object({
28039
- kind: z41.literal("upfront")
28337
+ var blockBookingPaymentCollectionOptionSchema = z42.union([
28338
+ z42.object({
28339
+ kind: z42.literal("upfront")
28040
28340
  }),
28041
- z41.object({
28042
- kind: z41.literal("deferred_manual")
28341
+ z42.object({
28342
+ kind: z42.literal("deferred_manual")
28043
28343
  }),
28044
- z41.object({
28045
- kind: z41.literal("instalment_plan"),
28344
+ z42.object({
28345
+ kind: z42.literal("instalment_plan"),
28046
28346
  plan: bookingInstalmentPlanSchema
28047
28347
  }),
28048
- z41.object({
28049
- kind: z41.literal("flexible_balance"),
28348
+ z42.object({
28349
+ kind: z42.literal("flexible_balance"),
28050
28350
  config: bookingFlexibleBalanceConfigSchema
28051
28351
  })
28052
28352
  ]);
28053
- var blockBookingPaymentTermsSchema = z41.object({
28054
- allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
28353
+ var blockBookingPaymentTermsSchema = z42.object({
28354
+ allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
28055
28355
  });
28056
28356
 
28057
28357
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
28058
- import { z as z42 } from "zod";
28059
- var courseVenueSchema = z42.object({
28060
- id: z42.string(),
28061
- name: z42.string(),
28062
- address: z42.string().nullable()
28063
- });
28064
- var courseSessionSchema = z42.object({
28065
- id: z42.string(),
28066
- startsAt: z42.string(),
28067
- endsAt: z42.string(),
28068
- timeZone: z42.string(),
28069
- capacityOverride: z42.number().nullable().optional(),
28070
- overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28071
- });
28072
- var courseTeamMemberSummarySchema = z42.object({
28073
- id: z42.string(),
28074
- name: z42.string(),
28075
- roleLabel: z42.string().nullable(),
28076
- summary: z42.string().nullable(),
28077
- profilePath: z42.string().nullable()
28078
- });
28079
- var coursePricingOptionSchema = z42.object({
28080
- id: z42.string(),
28081
- name: z42.string(),
28082
- description: z42.string().nullable(),
28083
- priceAmount: z42.number(),
28084
- isActive: z42.boolean(),
28085
- sortOrder: z42.number(),
28086
- capacityLimit: z42.number().nullable(),
28087
- saleStartsAt: z42.string().nullable(),
28088
- saleEndsAt: z42.string().nullable(),
28089
- attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28090
- });
28091
- var coursePricingSchema = z42.object({
28092
- bookingRequirement: z42.enum(["none", "required"]),
28093
- pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
28094
- currency: z42.string(),
28095
- singlePriceAmount: z42.number().nullable(),
28096
- slidingMinAmount: z42.number().nullable().optional(),
28097
- slidingMaxAmount: z42.number().nullable().optional(),
28098
- slidingSuggestedAmount: z42.number().nullable().optional(),
28358
+ import { z as z43 } from "zod";
28359
+ var courseVenueSchema = z43.object({
28360
+ id: z43.string(),
28361
+ name: z43.string(),
28362
+ address: z43.string().nullable()
28363
+ });
28364
+ var courseSessionSchema = z43.object({
28365
+ id: z43.string(),
28366
+ startsAt: z43.string(),
28367
+ endsAt: z43.string(),
28368
+ timeZone: z43.string(),
28369
+ capacityOverride: z43.number().nullable().optional(),
28370
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28371
+ });
28372
+ var courseTeamMemberSummarySchema = z43.object({
28373
+ id: z43.string(),
28374
+ name: z43.string(),
28375
+ roleLabel: z43.string().nullable(),
28376
+ summary: z43.string().nullable(),
28377
+ profilePath: z43.string().nullable()
28378
+ });
28379
+ var coursePricingOptionSchema = z43.object({
28380
+ id: z43.string(),
28381
+ name: z43.string(),
28382
+ description: z43.string().nullable(),
28383
+ priceAmount: z43.number(),
28384
+ isActive: z43.boolean(),
28385
+ sortOrder: z43.number(),
28386
+ capacityLimit: z43.number().nullable(),
28387
+ saleStartsAt: z43.string().nullable(),
28388
+ saleEndsAt: z43.string().nullable(),
28389
+ attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
28390
+ });
28391
+ var coursePricingSchema = z43.object({
28392
+ bookingRequirement: z43.enum(["none", "required"]),
28393
+ pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
28394
+ currency: z43.string(),
28395
+ singlePriceAmount: z43.number().nullable(),
28396
+ slidingMinAmount: z43.number().nullable().optional(),
28397
+ slidingMaxAmount: z43.number().nullable().optional(),
28398
+ slidingSuggestedAmount: z43.number().nullable().optional(),
28099
28399
  paymentTerms: blockBookingPaymentTermsSchema,
28100
- options: z42.array(coursePricingOptionSchema)
28101
- });
28102
- var publicCourseSchema = z42.object({
28103
- id: z42.string(),
28104
- title: z42.string(),
28105
- slug: z42.string(),
28106
- description: z42.unknown().nullable(),
28107
- teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28108
- enrollmentOpen: z42.boolean(),
28400
+ options: z43.array(coursePricingOptionSchema)
28401
+ });
28402
+ var publicCourseSchema = z43.object({
28403
+ id: z43.string(),
28404
+ title: z43.string(),
28405
+ slug: z43.string(),
28406
+ description: z43.unknown().nullable(),
28407
+ teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
28408
+ enrollmentOpen: z43.boolean(),
28109
28409
  pricing: coursePricingSchema.optional(),
28110
- priceCents: z42.number().nullable(),
28111
- currency: z42.string(),
28410
+ priceCents: z43.number().nullable(),
28411
+ currency: z43.string(),
28112
28412
  paymentTerms: blockBookingPaymentTermsSchema,
28113
- enrollmentCapacity: z42.number().nullable(),
28114
- acceptsMemberships: z42.boolean(),
28115
- status: z42.enum(["active", "draft", "cancelled"]),
28116
- sessionsCount: z42.number(),
28117
- enrolledCount: z42.number(),
28118
- availableSpots: z42.number().nullable(),
28119
- sessions: z42.array(courseSessionSchema),
28413
+ enrollmentCapacity: z43.number().nullable(),
28414
+ acceptsMemberships: z43.boolean(),
28415
+ status: z43.enum(["active", "draft", "cancelled"]),
28416
+ sessionsCount: z43.number(),
28417
+ enrolledCount: z43.number(),
28418
+ availableSpots: z43.number().nullable(),
28419
+ sessions: z43.array(courseSessionSchema),
28120
28420
  venue: courseVenueSchema.nullable(),
28121
- contentEntryId: z42.string().nullable()
28421
+ contentEntryId: z43.string().nullable()
28122
28422
  });
28123
- var publicCoursesArraySchema = z42.array(publicCourseSchema);
28423
+ var publicCoursesArraySchema = z43.array(publicCourseSchema);
28124
28424
 
28125
28425
  // ../blocks/src/system/blocks/events/shared/schemas.ts
28126
- var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28127
- var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28128
- var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28129
- var publicEventDestinationSchema = z43.discriminatedUnion("kind", [
28130
- z43.object({
28131
- kind: z43.literal("native"),
28426
+ var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
28427
+ var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
28428
+ var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
28429
+ var publicEventDestinationSchema = z44.discriminatedUnion("kind", [
28430
+ z44.object({
28431
+ kind: z44.literal("native"),
28132
28432
  mode: eventDestinationModeSchema,
28133
- path: z43.string()
28433
+ path: z44.string()
28134
28434
  }),
28135
- z43.object({
28136
- kind: z43.literal("external"),
28137
- url: z43.string(),
28138
- label: z43.string()
28435
+ z44.object({
28436
+ kind: z44.literal("external"),
28437
+ url: z44.string(),
28438
+ label: z44.string()
28139
28439
  })
28140
28440
  ]);
28141
- var eventVenueSchema = z43.object({
28142
- id: z43.string(),
28143
- name: z43.string(),
28144
- address: z43.string().nullable(),
28145
- location: z43.object({
28146
- lat: z43.number(),
28147
- lng: z43.number()
28441
+ var eventVenueSchema = z44.object({
28442
+ id: z44.string(),
28443
+ name: z44.string(),
28444
+ address: z44.string().nullable(),
28445
+ location: z44.object({
28446
+ lat: z44.number(),
28447
+ lng: z44.number()
28148
28448
  }).nullable()
28149
28449
  });
28150
- var eventCategorySchema = z43.object({
28151
- id: z43.string(),
28152
- name: z43.string(),
28153
- color: z43.string().nullable()
28154
- });
28155
- var pricingTypeSchema = z43.enum(["free", "paid", "external"]);
28156
- var accessRestrictionSchema = z43.enum(["none", "category"]);
28157
- var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28158
- var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28159
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28160
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28161
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28162
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28450
+ var eventCategorySchema = z44.object({
28451
+ id: z44.string(),
28452
+ name: z44.string(),
28453
+ color: z44.string().nullable()
28454
+ });
28455
+ var pricingTypeSchema = z44.enum(["free", "paid", "external"]);
28456
+ var accessRestrictionSchema = z44.enum(["none", "category"]);
28457
+ var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
28458
+ var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
28459
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28460
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28461
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28462
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28163
28463
  ]);
28164
- var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28165
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28166
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28167
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28168
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28169
- z43.object({
28170
- kind: z43.literal("mixed"),
28171
- paidFromAmount: z43.number(),
28172
- paidToAmount: z43.number(),
28173
- currency: z43.string()
28464
+ var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
28465
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28466
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28467
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28468
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28469
+ z44.object({
28470
+ kind: z44.literal("mixed"),
28471
+ paidFromAmount: z44.number(),
28472
+ paidToAmount: z44.number(),
28473
+ currency: z44.string()
28174
28474
  }),
28175
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28176
- z43.object({ kind: z43.literal("external"), label: z43.string() }),
28177
- z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28475
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
28476
+ z44.object({ kind: z44.literal("external"), label: z44.string() }),
28477
+ z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28178
28478
  ]);
28179
- var publicEventTicketTypePriceDisplaySchema = z43.union([
28180
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28181
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28182
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28183
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28184
- z43.object({
28185
- kind: z43.literal("mixed"),
28186
- paidFromAmount: z43.number(),
28187
- paidToAmount: z43.number(),
28188
- currency: z43.string()
28479
+ var publicEventTicketTypePriceDisplaySchema = z44.union([
28480
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28481
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28482
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28483
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28484
+ z44.object({
28485
+ kind: z44.literal("mixed"),
28486
+ paidFromAmount: z44.number(),
28487
+ paidToAmount: z44.number(),
28488
+ currency: z44.string()
28189
28489
  }),
28190
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28490
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28191
28491
  ]);
28192
- var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28193
- var publicEventAttendanceModeAvailabilitySchema = z43.object({
28492
+ var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
28493
+ var publicEventAttendanceModeAvailabilitySchema = z44.object({
28194
28494
  mode: publicEventAttendanceModeSchema,
28195
- capacity: z43.number().nullable(),
28196
- registeredCount: z43.number(),
28197
- availableSpots: z43.number().nullable(),
28198
- waitlistEnabled: z43.boolean()
28199
- });
28200
- var publicEventTicketTypeAvailabilitySchema = z43.union([
28201
- z43.object({
28202
- kind: z43.literal("available"),
28203
- remainingCapacity: z43.number().nullable()
28495
+ capacity: z44.number().nullable(),
28496
+ registeredCount: z44.number(),
28497
+ availableSpots: z44.number().nullable(),
28498
+ waitlistEnabled: z44.boolean()
28499
+ });
28500
+ var publicEventTicketTypeAvailabilitySchema = z44.union([
28501
+ z44.object({
28502
+ kind: z44.literal("available"),
28503
+ remainingCapacity: z44.number().nullable()
28204
28504
  }),
28205
- z43.object({
28206
- kind: z43.literal("unavailable"),
28207
- reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28208
- remainingCapacity: z43.number().nullable()
28505
+ z44.object({
28506
+ kind: z44.literal("unavailable"),
28507
+ reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28508
+ remainingCapacity: z44.number().nullable()
28209
28509
  })
28210
28510
  ]);
28211
- var publicEventTicketTypeSchema = z43.object({
28212
- id: z43.string(),
28213
- siteId: z43.string(),
28214
- eventSeriesId: z43.string(),
28215
- name: z43.string(),
28216
- description: z43.string().nullable(),
28217
- priceAmount: z43.number(),
28218
- isActive: z43.boolean(),
28219
- sortOrder: z43.number(),
28220
- capacityMode: z43.enum(["limited", "unlimited"]),
28221
- capacityLimit: z43.number().nullable(),
28222
- attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28223
- saleStartsAt: z43.string().nullable(),
28224
- saleEndsAt: z43.string().nullable(),
28511
+ var publicEventTicketTypeSchema = z44.object({
28512
+ id: z44.string(),
28513
+ siteId: z44.string(),
28514
+ eventSeriesId: z44.string(),
28515
+ name: z44.string(),
28516
+ description: z44.string().nullable(),
28517
+ priceAmount: z44.number(),
28518
+ isActive: z44.boolean(),
28519
+ sortOrder: z44.number(),
28520
+ capacityMode: z44.enum(["limited", "unlimited"]),
28521
+ capacityLimit: z44.number().nullable(),
28522
+ attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
28523
+ saleStartsAt: z44.string().nullable(),
28524
+ saleEndsAt: z44.string().nullable(),
28225
28525
  availability: publicEventTicketTypeAvailabilitySchema,
28226
- createdAt: z43.string(),
28227
- updatedAt: z43.string()
28228
- });
28229
- var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28230
- z43.object({
28231
- kind: z43.literal("drop_in"),
28232
- currency: z43.string(),
28233
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28526
+ createdAt: z44.string(),
28527
+ updatedAt: z44.string()
28528
+ });
28529
+ var publicEventPricingSchema = z44.discriminatedUnion("kind", [
28530
+ z44.object({
28531
+ kind: z44.literal("drop_in"),
28532
+ currency: z44.string(),
28533
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28234
28534
  }),
28235
- z43.object({
28236
- kind: z43.literal("free_registration"),
28237
- currency: z43.string(),
28238
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28535
+ z44.object({
28536
+ kind: z44.literal("free_registration"),
28537
+ currency: z44.string(),
28538
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28239
28539
  }),
28240
- z43.object({
28241
- kind: z43.literal("single_paid"),
28242
- amount: z43.number(),
28243
- currency: z43.string(),
28244
- display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28540
+ z44.object({
28541
+ kind: z44.literal("single_paid"),
28542
+ amount: z44.number(),
28543
+ currency: z44.string(),
28544
+ display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
28245
28545
  }),
28246
- z43.object({
28247
- kind: z43.literal("ticket_types"),
28248
- currency: z43.string(),
28249
- ticketTypes: z43.array(publicEventTicketTypeSchema),
28546
+ z44.object({
28547
+ kind: z44.literal("ticket_types"),
28548
+ currency: z44.string(),
28549
+ ticketTypes: z44.array(publicEventTicketTypeSchema),
28250
28550
  display: publicEventTicketTypePriceDisplaySchema
28251
28551
  }),
28252
- z43.object({
28253
- kind: z43.literal("sliding_scale"),
28254
- minAmount: z43.number(),
28255
- maxAmount: z43.number(),
28256
- suggestedAmount: z43.number().nullable(),
28257
- currency: z43.string(),
28258
- display: z43.object({
28259
- kind: z43.literal("range"),
28260
- minAmount: z43.number(),
28261
- maxAmount: z43.number(),
28262
- currency: z43.string()
28552
+ z44.object({
28553
+ kind: z44.literal("sliding_scale"),
28554
+ minAmount: z44.number(),
28555
+ maxAmount: z44.number(),
28556
+ suggestedAmount: z44.number().nullable(),
28557
+ currency: z44.string(),
28558
+ display: z44.object({
28559
+ kind: z44.literal("range"),
28560
+ minAmount: z44.number(),
28561
+ maxAmount: z44.number(),
28562
+ currency: z44.string()
28263
28563
  })
28264
28564
  }),
28265
- z43.object({
28266
- kind: z43.literal("course"),
28267
- display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28565
+ z44.object({
28566
+ kind: z44.literal("course"),
28567
+ display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28268
28568
  }),
28269
- z43.object({
28270
- kind: z43.literal("external"),
28271
- display: z43.object({ kind: z43.literal("external"), label: z43.string() })
28569
+ z44.object({
28570
+ kind: z44.literal("external"),
28571
+ display: z44.object({ kind: z44.literal("external"), label: z44.string() })
28272
28572
  })
28273
28573
  ]);
28274
- var publicTeamMemberSummarySchema = z43.object({
28275
- id: z43.string(),
28276
- name: z43.string(),
28277
- roleLabel: z43.string().nullable(),
28278
- summary: z43.string().nullable(),
28279
- profilePath: z43.string().nullable()
28574
+ var publicTeamMemberSummarySchema = z44.object({
28575
+ id: z44.string(),
28576
+ name: z44.string(),
28577
+ roleLabel: z44.string().nullable(),
28578
+ summary: z44.string().nullable(),
28579
+ profilePath: z44.string().nullable()
28280
28580
  });
28281
- var publicEventSchema = z43.object({
28282
- kind: z43.enum(["event", "course_session"]).optional(),
28581
+ var publicEventSchema = z44.object({
28582
+ kind: z44.enum(["event", "course_session"]).optional(),
28283
28583
  eventPreset: eventPresetSchema.optional(),
28284
28584
  eventDestinationMode: eventDestinationModeSchema.optional(),
28285
28585
  scheduleScope: eventScheduleScopeSchema.optional(),
28286
- id: z43.string(),
28287
- occurrenceId: z43.string(),
28288
- seriesId: z43.string(),
28289
- title: z43.string(),
28290
- description: z43.string().nullable(),
28291
- content: z43.object({
28586
+ id: z44.string(),
28587
+ occurrenceId: z44.string(),
28588
+ seriesId: z44.string(),
28589
+ title: z44.string(),
28590
+ description: z44.string().nullable(),
28591
+ content: z44.object({
28292
28592
  body: RichTextDocSchema.nullable().optional()
28293
28593
  }).optional(),
28294
- presentation: z43.object({
28295
- cardTitleOverride: z43.string().nullable().optional(),
28296
- summary: z43.string().nullable().optional(),
28594
+ presentation: z44.object({
28595
+ cardTitleOverride: z44.string().nullable().optional(),
28596
+ summary: z44.string().nullable().optional(),
28297
28597
  image: mediaSchema2.nullable().optional()
28298
28598
  }).optional(),
28299
- slug: z43.string(),
28300
- path: z43.string().nullable(),
28599
+ slug: z44.string(),
28600
+ path: z44.string().nullable(),
28301
28601
  destination: publicEventDestinationSchema,
28302
- requiresRegistration: z43.boolean(),
28303
- deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28304
- attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28305
- startsAt: z43.string(),
28306
- endsAt: z43.string(),
28307
- capacity: z43.number().nullable(),
28308
- registeredCount: z43.number(),
28309
- availableSpots: z43.number().nullable(),
28310
- waitlistEnabled: z43.boolean(),
28602
+ requiresRegistration: z44.boolean(),
28603
+ deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
28604
+ attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
28605
+ startsAt: z44.string(),
28606
+ endsAt: z44.string(),
28607
+ capacity: z44.number().nullable(),
28608
+ registeredCount: z44.number(),
28609
+ availableSpots: z44.number().nullable(),
28610
+ waitlistEnabled: z44.boolean(),
28311
28611
  venue: eventVenueSchema.nullable(),
28312
28612
  eventCategory: eventCategorySchema.nullable(),
28313
- teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28314
- status: z43.enum(["active", "draft", "archived"]).optional(),
28315
- timeZone: z43.string(),
28613
+ teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
28614
+ status: z44.enum(["active", "draft", "archived"]).optional(),
28615
+ timeZone: z44.string(),
28316
28616
  pricing: publicEventPricingSchema,
28317
28617
  paymentTerms: blockBookingPaymentTermsSchema,
28318
28618
  accessRestriction: accessRestrictionSchema,
28319
- allowedCategoryIds: z43.array(z43.string()),
28320
- requireGuestDetails: z43.boolean().optional(),
28321
- acceptsPasses: z43.boolean().optional(),
28322
- acceptsMemberships: z43.boolean().optional(),
28323
- course: z43.object({
28324
- id: z43.string(),
28619
+ allowedCategoryIds: z44.array(z44.string()),
28620
+ requireGuestDetails: z44.boolean().optional(),
28621
+ acceptsPasses: z44.boolean().optional(),
28622
+ acceptsMemberships: z44.boolean().optional(),
28623
+ course: z44.object({
28624
+ id: z44.string(),
28325
28625
  pricing: coursePricingSchema.optional(),
28326
- priceCents: z43.number().nullable(),
28327
- currency: z43.string(),
28328
- enrollmentOpen: z43.boolean()
28626
+ priceCents: z44.number().nullable(),
28627
+ currency: z44.string(),
28628
+ enrollmentOpen: z44.boolean()
28329
28629
  }).nullable().optional()
28330
28630
  });
28331
- var publicEventsArraySchema = z43.array(publicEventSchema);
28631
+ var publicEventsArraySchema = z44.array(publicEventSchema);
28332
28632
 
28333
28633
  // ../blocks/src/system/blocks/events/shared/fields.ts
28334
28634
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28531,52 +28831,80 @@ function normalizeEventStaffMemberId(value) {
28531
28831
  return trimmed ? trimmed : null;
28532
28832
  }
28533
28833
 
28834
+ // ../blocks/src/system/blocks/events/shared/layout.ts
28835
+ var recoverEmptyHeadingWhenActive = {
28836
+ kind: "recover-empty-when-active",
28837
+ placeholder: "Add heading"
28838
+ };
28839
+ var recoverEmptyDescriptionWhenActive = {
28840
+ kind: "recover-empty-when-active",
28841
+ placeholder: "Add description"
28842
+ };
28843
+ function eventSectionHeaderLayoutNodes() {
28844
+ return [
28845
+ text(
28846
+ { as: "h2" },
28847
+ bind("content.heading"),
28848
+ when("content.heading", {
28849
+ authoringPresence: recoverEmptyHeadingWhenActive
28850
+ })
28851
+ ),
28852
+ richText(
28853
+ { className: "rb-prose rb-max-w-none" },
28854
+ bind("content.description"),
28855
+ when("content.description", {
28856
+ authoringPresence: recoverEmptyDescriptionWhenActive
28857
+ })
28858
+ )
28859
+ ];
28860
+ }
28861
+
28534
28862
  // ../blocks/src/system/blocks/shop.shared.ts
28535
- import { z as z44 } from "zod";
28536
- var publicPassProductSchema = z44.object({
28537
- id: z44.string(),
28538
- productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28539
- name: z44.string(),
28540
- description: z44.string().nullable(),
28541
- price: z44.number(),
28542
- currency: z44.string(),
28543
- creditsTotal: z44.number(),
28544
- pricePerCredit: z44.number(),
28545
- validDays: z44.number().nullable(),
28546
- eligibleCategoryIds: z44.array(z44.string()),
28547
- eligibleCategoryNames: z44.array(z44.string())
28548
- });
28549
- var publicPassProductCollectionSchema = z44.object({
28550
- passes: z44.array(publicPassProductSchema)
28551
- });
28552
- var publicMembershipProductSchema = z44.object({
28553
- id: z44.string(),
28554
- name: z44.string(),
28555
- description: z44.string().nullable(),
28556
- price: z44.number(),
28557
- currency: z44.string(),
28558
- billingInterval: z44.enum(["month", "year"]),
28559
- eligibleCategoryIds: z44.array(z44.string()),
28560
- eligibleCategoryNames: z44.array(z44.string())
28863
+ import { z as z45 } from "zod";
28864
+ var publicPassProductSchema = z45.object({
28865
+ id: z45.string(),
28866
+ productUseCase: z45.enum(["event_pass", "appointment_package"]).default("event_pass"),
28867
+ name: z45.string(),
28868
+ description: z45.string().nullable(),
28869
+ price: z45.number(),
28870
+ currency: z45.string(),
28871
+ creditsTotal: z45.number(),
28872
+ pricePerCredit: z45.number(),
28873
+ validDays: z45.number().nullable(),
28874
+ eligibleCategoryIds: z45.array(z45.string()),
28875
+ eligibleCategoryNames: z45.array(z45.string())
28876
+ });
28877
+ var publicPassProductCollectionSchema = z45.object({
28878
+ passes: z45.array(publicPassProductSchema)
28879
+ });
28880
+ var publicMembershipProductSchema = z45.object({
28881
+ id: z45.string(),
28882
+ name: z45.string(),
28883
+ description: z45.string().nullable(),
28884
+ price: z45.number(),
28885
+ currency: z45.string(),
28886
+ billingInterval: z45.enum(["month", "year"]),
28887
+ eligibleCategoryIds: z45.array(z45.string()),
28888
+ eligibleCategoryNames: z45.array(z45.string())
28561
28889
  });
28562
- var publicMembershipProductCollectionSchema = z44.object({
28563
- memberships: z44.array(publicMembershipProductSchema)
28890
+ var publicMembershipProductCollectionSchema = z45.object({
28891
+ memberships: z45.array(publicMembershipProductSchema)
28564
28892
  });
28565
28893
 
28566
28894
  // ../blocks/src/system/blocks/event-registration.shared.ts
28567
- import { z as z45 } from "zod";
28568
- var occurrenceContextSchema = z45.object({
28569
- id: z45.string(),
28570
- seriesId: z45.string(),
28571
- startsAt: z45.string(),
28572
- endsAt: z45.string(),
28573
- timeZone: z45.string(),
28574
- capacityOverride: z45.number().nullable().optional(),
28575
- overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28895
+ import { z as z46 } from "zod";
28896
+ var occurrenceContextSchema = z46.object({
28897
+ id: z46.string(),
28898
+ seriesId: z46.string(),
28899
+ startsAt: z46.string(),
28900
+ endsAt: z46.string(),
28901
+ timeZone: z46.string(),
28902
+ capacityOverride: z46.number().nullable().optional(),
28903
+ overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
28576
28904
  }).nullable();
28577
28905
 
28578
28906
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28579
- import { z as z47 } from "zod";
28907
+ import { z as z48 } from "zod";
28580
28908
 
28581
28909
  // ../blocks/src/system/constants/events.ts
28582
28910
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28763,17 +29091,17 @@ function readAmount(value) {
28763
29091
  }
28764
29092
 
28765
29093
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28766
- import { z as z46 } from "zod";
28767
- var previewStageSchema = z46.enum(["preview", "published"]);
28768
- var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28769
- var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28770
- var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28771
- var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28772
- var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28773
- var columnOptionSchema = z46.enum(["2", "3", "4"]);
28774
- var weekStartSchema = z46.enum(["sunday", "monday"]);
28775
- var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28776
- var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
29094
+ import { z as z47 } from "zod";
29095
+ var previewStageSchema = z47.enum(["preview", "published"]);
29096
+ var registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
29097
+ var eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
29098
+ var eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
29099
+ var eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
29100
+ var eventCalendarDefaultViewSchema = z47.enum(eventCalendarDefaultViewValues);
29101
+ var columnOptionSchema = z47.enum(["2", "3", "4"]);
29102
+ var weekStartSchema = z47.enum(["sunday", "monday"]);
29103
+ var filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
29104
+ var calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
28777
29105
 
28778
29106
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28779
29107
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28833,72 +29161,72 @@ function toRegistrationEvents(events) {
28833
29161
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28834
29162
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28835
29163
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28836
- var contentEntrySchema = z47.object({
28837
- id: z47.string(),
28838
- slug: z47.string(),
28839
- contentTypeSlug: z47.string()
29164
+ var contentEntrySchema = z48.object({
29165
+ id: z48.string(),
29166
+ slug: z48.string(),
29167
+ contentTypeSlug: z48.string()
28840
29168
  });
28841
- var eventRegistrationPublicEventSchema = z47.preprocess(
29169
+ var eventRegistrationPublicEventSchema = z48.preprocess(
28842
29170
  normalizeEventRegistrationEventInput,
28843
29171
  publicEventSchema
28844
29172
  );
28845
- var eventRegistrationSourceSchema = z47.object({
28846
- siteId: z47.string().optional(),
28847
- apiBaseUrl: z47.string().optional(),
28848
- portalToken: z47.string().nullable().optional(),
28849
- previewToken: z47.string().nullable().optional(),
29173
+ var eventRegistrationSourceSchema = z48.object({
29174
+ siteId: z48.string().optional(),
29175
+ apiBaseUrl: z48.string().optional(),
29176
+ portalToken: z48.string().nullable().optional(),
29177
+ previewToken: z48.string().nullable().optional(),
28850
29178
  occurrenceContext: occurrenceContextSchema.optional(),
28851
29179
  contentEntry: contentEntrySchema.nullable().optional(),
28852
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28853
- className: z47.string().nullable().optional(),
28854
- buttonText: z47.string().nullable().optional(),
28855
- maxTickets: z47.string().nullable().optional(),
28856
- showVenue: z47.boolean().optional(),
28857
- showCapacity: z47.boolean().optional(),
28858
- successMessage: z47.string().optional(),
28859
- waitlistMessage: z47.string().optional(),
29180
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29181
+ className: z48.string().nullable().optional(),
29182
+ buttonText: z48.string().nullable().optional(),
29183
+ maxTickets: z48.string().nullable().optional(),
29184
+ showVenue: z48.boolean().optional(),
29185
+ showCapacity: z48.boolean().optional(),
29186
+ successMessage: z48.string().optional(),
29187
+ waitlistMessage: z48.string().optional(),
28860
29188
  buttonVariant: registrationButtonVariantSchema.optional(),
28861
- overlayEnabled: z47.boolean().optional(),
28862
- spamProtectionEnabled: z47.boolean().optional(),
29189
+ overlayEnabled: z48.boolean().optional(),
29190
+ spamProtectionEnabled: z48.boolean().optional(),
28863
29191
  stage: previewStageSchema.optional(),
28864
- supportEmail: z47.string().optional(),
29192
+ supportEmail: z48.string().optional(),
28865
29193
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28866
29194
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28867
29195
  });
28868
- var eventRegistrationDisplaySchema = z47.object({
28869
- kind: z47.literal("event-registration"),
28870
- state: z47.literal("generic-shell"),
28871
- className: z47.string().nullable(),
28872
- titleText: z47.string(),
28873
- bodyText: z47.string(),
28874
- stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28875
- summaryButtonText: z47.string()
29196
+ var eventRegistrationDisplaySchema = z48.object({
29197
+ kind: z48.literal("event-registration"),
29198
+ state: z48.literal("generic-shell"),
29199
+ className: z48.string().nullable(),
29200
+ titleText: z48.string(),
29201
+ bodyText: z48.string(),
29202
+ stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
29203
+ summaryButtonText: z48.string()
28876
29204
  });
28877
- var eventRegistrationHydrationSchema = z47.object({
29205
+ var eventRegistrationHydrationSchema = z48.object({
28878
29206
  occurrenceContext: occurrenceContextSchema.optional(),
28879
29207
  contentEntry: contentEntrySchema.nullable().optional(),
28880
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28881
- maxTickets: z47.string().optional(),
28882
- showVenue: z47.boolean().optional(),
28883
- showCapacity: z47.boolean().optional(),
28884
- successMessage: z47.string().optional(),
28885
- waitlistMessage: z47.string().optional(),
29208
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29209
+ maxTickets: z48.string().optional(),
29210
+ showVenue: z48.boolean().optional(),
29211
+ showCapacity: z48.boolean().optional(),
29212
+ successMessage: z48.string().optional(),
29213
+ waitlistMessage: z48.string().optional(),
28886
29214
  buttonVariant: registrationButtonVariantSchema.optional(),
28887
- overlayEnabled: z47.boolean().optional(),
28888
- spamProtectionEnabled: z47.boolean().optional(),
28889
- supportEmail: z47.string().optional(),
29215
+ overlayEnabled: z48.boolean().optional(),
29216
+ spamProtectionEnabled: z48.boolean().optional(),
29217
+ supportEmail: z48.string().optional(),
28890
29218
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28891
29219
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28892
29220
  });
28893
- var eventRegistrationRenderSchema = z47.object({
29221
+ var eventRegistrationRenderSchema = z48.object({
28894
29222
  display: eventRegistrationDisplaySchema,
28895
29223
  hydration: eventRegistrationHydrationSchema
28896
29224
  });
28897
- var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28898
- siteId: z47.string().optional(),
28899
- apiBaseUrl: z47.string().optional(),
28900
- portalToken: z47.string().nullable().optional(),
28901
- previewToken: z47.string().nullable().optional(),
29225
+ var eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
29226
+ siteId: z48.string().optional(),
29227
+ apiBaseUrl: z48.string().optional(),
29228
+ portalToken: z48.string().nullable().optional(),
29229
+ previewToken: z48.string().nullable().optional(),
28902
29230
  stage: previewStageSchema.optional()
28903
29231
  }));
28904
29232
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29249,73 +29577,73 @@ var eventRegistrationBlockDefinition = {
29249
29577
  };
29250
29578
 
29251
29579
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
29252
- import { z as z48 } from "zod";
29253
- var contentEntrySchema2 = z48.object({
29254
- id: z48.string(),
29255
- slug: z48.string(),
29256
- contentTypeSlug: z48.string()
29257
- });
29258
- var courseEntrySubrouteContextSchema = z48.union([
29259
- z48.object({
29260
- kind: z48.literal("course-run"),
29261
- run: z48.object({
29262
- courseId: z48.string(),
29263
- seriesId: z48.string(),
29264
- runSlug: z48.string(),
29265
- runName: z48.string().nullable()
29580
+ import { z as z49 } from "zod";
29581
+ var contentEntrySchema2 = z49.object({
29582
+ id: z49.string(),
29583
+ slug: z49.string(),
29584
+ contentTypeSlug: z49.string()
29585
+ });
29586
+ var courseEntrySubrouteContextSchema = z49.union([
29587
+ z49.object({
29588
+ kind: z49.literal("course-run"),
29589
+ run: z49.object({
29590
+ courseId: z49.string(),
29591
+ seriesId: z49.string(),
29592
+ runSlug: z49.string(),
29593
+ runName: z49.string().nullable()
29266
29594
  })
29267
29595
  }),
29268
- z48.object({
29269
- kind: z48.literal("event-occurrence"),
29596
+ z49.object({
29597
+ kind: z49.literal("event-occurrence"),
29270
29598
  occurrence: occurrenceContextSchema
29271
29599
  })
29272
29600
  ]);
29273
- var courseRegistrationSourceSchema = z48.object({
29274
- siteId: z48.string().optional(),
29275
- apiBaseUrl: z48.string().optional(),
29276
- portalToken: z48.string().nullable().optional(),
29601
+ var courseRegistrationSourceSchema = z49.object({
29602
+ siteId: z49.string().optional(),
29603
+ apiBaseUrl: z49.string().optional(),
29604
+ portalToken: z49.string().nullable().optional(),
29277
29605
  contentEntry: contentEntrySchema2.nullable().optional(),
29278
29606
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29279
- courses: z48.array(publicCourseSchema).nullable().optional(),
29280
- className: z48.string().nullable().optional(),
29281
- showSessions: z48.boolean().optional(),
29282
- showPrice: z48.boolean().optional(),
29283
- showCapacity: z48.boolean().optional(),
29284
- showVenue: z48.boolean().optional(),
29285
- successMessage: z48.string().optional(),
29286
- waitlistMessage: z48.string().optional(),
29287
- membershipMessage: z48.string().optional(),
29288
- buttonText: z48.string().nullable().optional(),
29607
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29608
+ className: z49.string().nullable().optional(),
29609
+ showSessions: z49.boolean().optional(),
29610
+ showPrice: z49.boolean().optional(),
29611
+ showCapacity: z49.boolean().optional(),
29612
+ showVenue: z49.boolean().optional(),
29613
+ successMessage: z49.string().optional(),
29614
+ waitlistMessage: z49.string().optional(),
29615
+ membershipMessage: z49.string().optional(),
29616
+ buttonText: z49.string().nullable().optional(),
29289
29617
  buttonVariant: registrationButtonVariantSchema.optional(),
29290
29618
  stage: previewStageSchema.optional()
29291
29619
  });
29292
- var courseRegistrationDisplaySchema = z48.object({
29293
- kind: z48.literal("course-registration"),
29294
- state: z48.literal("shell"),
29295
- className: z48.string().nullable(),
29296
- summaryButtonText: z48.string()
29620
+ var courseRegistrationDisplaySchema = z49.object({
29621
+ kind: z49.literal("course-registration"),
29622
+ state: z49.literal("shell"),
29623
+ className: z49.string().nullable(),
29624
+ summaryButtonText: z49.string()
29297
29625
  });
29298
- var courseRegistrationHydrationSchema = z48.object({
29626
+ var courseRegistrationHydrationSchema = z49.object({
29299
29627
  contentEntry: contentEntrySchema2.nullable().optional(),
29300
29628
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29301
- courses: z48.array(publicCourseSchema).nullable().optional(),
29302
- showSessions: z48.boolean().optional(),
29303
- showPrice: z48.boolean().optional(),
29304
- showCapacity: z48.boolean().optional(),
29305
- showVenue: z48.boolean().optional(),
29306
- successMessage: z48.string().optional(),
29307
- waitlistMessage: z48.string().optional(),
29308
- membershipMessage: z48.string().optional(),
29629
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29630
+ showSessions: z49.boolean().optional(),
29631
+ showPrice: z49.boolean().optional(),
29632
+ showCapacity: z49.boolean().optional(),
29633
+ showVenue: z49.boolean().optional(),
29634
+ successMessage: z49.string().optional(),
29635
+ waitlistMessage: z49.string().optional(),
29636
+ membershipMessage: z49.string().optional(),
29309
29637
  buttonVariant: registrationButtonVariantSchema.optional()
29310
29638
  });
29311
- var courseRegistrationRenderSchema = z48.object({
29639
+ var courseRegistrationRenderSchema = z49.object({
29312
29640
  display: courseRegistrationDisplaySchema,
29313
29641
  hydration: courseRegistrationHydrationSchema
29314
29642
  });
29315
- var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29316
- siteId: z48.string().optional(),
29317
- apiBaseUrl: z48.string().optional(),
29318
- portalToken: z48.string().nullable().optional(),
29643
+ var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
29644
+ siteId: z49.string().optional(),
29645
+ apiBaseUrl: z49.string().optional(),
29646
+ portalToken: z49.string().nullable().optional(),
29319
29647
  stage: previewStageSchema.optional()
29320
29648
  }));
29321
29649
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29575,7 +29903,7 @@ var courseRegistrationBlockDefinition = {
29575
29903
  };
29576
29904
 
29577
29905
  // ../blocks/src/system/blocks/event-details.ts
29578
- import { z as z49 } from "zod";
29906
+ import { z as z50 } from "zod";
29579
29907
  var eventDetailsManifest = createBlockManifest({
29580
29908
  id: "block.event-details",
29581
29909
  version: "1.0.0",
@@ -29707,37 +30035,37 @@ var eventDetailsManifest = createBlockManifest({
29707
30035
  })
29708
30036
  ]
29709
30037
  });
29710
- var occurrenceContextSchema2 = z49.object({
29711
- id: z49.string(),
29712
- seriesId: z49.string(),
29713
- startsAt: z49.string(),
29714
- endsAt: z49.string(),
29715
- timeZone: z49.string(),
29716
- capacityOverride: z49.number().nullable().optional(),
29717
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
30038
+ var occurrenceContextSchema2 = z50.object({
30039
+ id: z50.string(),
30040
+ seriesId: z50.string(),
30041
+ startsAt: z50.string(),
30042
+ endsAt: z50.string(),
30043
+ timeZone: z50.string(),
30044
+ capacityOverride: z50.number().nullable().optional(),
30045
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29718
30046
  }).nullable();
29719
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29720
- id: z49.string(),
29721
- publicLabel: z49.string(),
29722
- description: z49.string().nullable(),
29723
- minTicketsRequired: z49.number().nullable()
30047
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
30048
+ id: z50.string(),
30049
+ publicLabel: z50.string(),
30050
+ description: z50.string().nullable(),
30051
+ minTicketsRequired: z50.number().nullable()
29724
30052
  });
29725
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
30053
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29726
30054
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29727
- discountType: z49.literal("percent"),
29728
- discountPercent: z49.number(),
29729
- discountAmountCents: z49.null()
30055
+ discountType: z50.literal("percent"),
30056
+ discountPercent: z50.number(),
30057
+ discountAmountCents: z50.null()
29730
30058
  }),
29731
30059
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29732
- discountType: z49.literal("fixed"),
29733
- discountPercent: z49.null(),
29734
- discountAmountCents: z49.number()
30060
+ discountType: z50.literal("fixed"),
30061
+ discountPercent: z50.null(),
30062
+ discountAmountCents: z50.number()
29735
30063
  })
29736
30064
  ]);
29737
30065
  var eventDetailsBlockDefinition = {
29738
30066
  manifest: eventDetailsManifest,
29739
30067
  dataSchemas: {
29740
- eventDetailsData: z49.object({
30068
+ eventDetailsData: z50.object({
29741
30069
  events: publicEventsArraySchema,
29742
30070
  sitePasses: publicPassProductCollectionSchema,
29743
30071
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -29992,18 +30320,7 @@ var eventSpotlightFields = [
29992
30320
  var eventSpotlightLayout = [
29993
30321
  styledSection({
29994
30322
  children: sectionContainer([
29995
- // Optional heading
29996
- text(
29997
- { as: "h2" },
29998
- bind("content.heading"),
29999
- when("content.heading")
30000
- ),
30001
- // Optional description
30002
- richText(
30003
- { className: "rb-prose rb-max-w-none" },
30004
- bind("content.description"),
30005
- when("content.description")
30006
- ),
30323
+ ...eventSectionHeaderLayoutNodes(),
30007
30324
  // Event spotlight component
30008
30325
  el("event-spotlight", {
30009
30326
  events: { $bind: { from: "data.events" } },
@@ -30064,7 +30381,7 @@ var eventSpotlightBlockDefinition = {
30064
30381
  };
30065
30382
 
30066
30383
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30067
- import { z as z51 } from "zod";
30384
+ import { z as z52 } from "zod";
30068
30385
 
30069
30386
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
30070
30387
  var COLUMN_CLASSES = {
@@ -30172,16 +30489,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30172
30489
  }
30173
30490
 
30174
30491
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30175
- import { z as z50 } from "zod";
30492
+ import { z as z51 } from "zod";
30176
30493
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30177
- var eventPageSizeSchema = z50.union([
30178
- z50.literal(3),
30179
- z50.literal(6),
30180
- z50.literal(10),
30181
- z50.literal(12),
30182
- z50.literal(20),
30183
- z50.literal(24),
30184
- z50.literal(30)
30494
+ var eventPageSizeSchema = z51.union([
30495
+ z51.literal(3),
30496
+ z51.literal(6),
30497
+ z51.literal(10),
30498
+ z51.literal(12),
30499
+ z51.literal(20),
30500
+ z51.literal(24),
30501
+ z51.literal(30)
30185
30502
  ]);
30186
30503
  var eventPageSizeSet = new Set(eventPageSizeValues);
30187
30504
  function resolveEventPageSize(value, fallback = 12) {
@@ -30191,15 +30508,15 @@ function resolveEventPageSize(value, fallback = 12) {
30191
30508
  function resolveEventCalendarListPageSize(input) {
30192
30509
  return resolveEventPageSize(input.eventsPerPage);
30193
30510
  }
30194
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30195
- z50.object({
30196
- kind: z50.literal("loadMore"),
30197
- label: z50.string()
30511
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30512
+ z51.object({
30513
+ kind: z51.literal("loadMore"),
30514
+ label: z51.string()
30198
30515
  }),
30199
- z50.object({
30200
- kind: z50.literal("seeAllLink"),
30201
- label: z50.string(),
30202
- href: z50.string()
30516
+ z51.object({
30517
+ kind: z51.literal("seeAllLink"),
30518
+ label: z51.string(),
30519
+ href: z51.string()
30203
30520
  })
30204
30521
  ]);
30205
30522
  function resolveEventListPaginationAction(input) {
@@ -30212,89 +30529,89 @@ function resolveEventListPaginationAction(input) {
30212
30529
  }
30213
30530
 
30214
30531
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30215
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30216
- var eventCardVariantInputSchema = z51.union([
30532
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30533
+ var eventCardVariantInputSchema = z52.union([
30217
30534
  cardVariantRoleSchema,
30218
30535
  legacyEventCardVariantSchema
30219
30536
  ]);
30220
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30221
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30222
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30223
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30224
- var eventListingSourceSchema = z51.object({
30225
- events: z51.array(publicEventSchema).nullable().optional(),
30226
- siteId: z51.string(),
30227
- apiBaseUrl: z51.string().optional(),
30537
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30538
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30539
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30540
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30541
+ var eventListingSourceSchema = z52.object({
30542
+ events: z52.array(publicEventSchema).nullable().optional(),
30543
+ siteId: z52.string(),
30544
+ apiBaseUrl: z52.string().optional(),
30228
30545
  stage: previewStageSchema.optional(),
30229
30546
  layout: eventLayoutSchema.optional(),
30230
30547
  columns: columnOptionSchema.optional(),
30231
- eventsPerPage: z51.string().optional(),
30232
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30233
- seeAllUrl: z51.string().optional(),
30234
- loadMoreText: z51.string().optional(),
30548
+ eventsPerPage: z52.string().optional(),
30549
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30550
+ seeAllUrl: z52.string().optional(),
30551
+ loadMoreText: z52.string().optional(),
30235
30552
  cardVariant: eventCardVariantInputSchema.optional(),
30236
30553
  buttonVariant: eventButtonVariantSchema.optional(),
30237
- buttonText: z51.string().optional(),
30238
- showVenue: z51.boolean().optional(),
30239
- showMap: z51.boolean().optional(),
30240
- showCapacity: z51.boolean().optional(),
30241
- emptyMessage: z51.string().optional(),
30242
- className: z51.string().optional(),
30243
- showFilters: z51.boolean().nullable().optional(),
30554
+ buttonText: z52.string().optional(),
30555
+ showVenue: z52.boolean().optional(),
30556
+ showMap: z52.boolean().optional(),
30557
+ showCapacity: z52.boolean().optional(),
30558
+ emptyMessage: z52.string().optional(),
30559
+ className: z52.string().optional(),
30560
+ showFilters: z52.boolean().nullable().optional(),
30244
30561
  showCategoryFilter: filterAutoShowSchema.optional(),
30245
- showVenueFilter: z51.boolean().nullable().optional(),
30246
- showStaffFilter: z51.boolean().nullable().optional(),
30562
+ showVenueFilter: z52.boolean().nullable().optional(),
30563
+ showStaffFilter: z52.boolean().nullable().optional(),
30247
30564
  eventKind: eventBlockKindSchema.nullable().optional(),
30248
30565
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30249
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30566
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30250
30567
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30251
- filterCategoryIds: z51.string().nullable().optional(),
30252
- filterStaffMemberId: z51.string().nullable().optional(),
30253
- filterVenueId: z51.string().nullable().optional()
30568
+ filterCategoryIds: z52.string().nullable().optional(),
30569
+ filterStaffMemberId: z52.string().nullable().optional(),
30570
+ filterVenueId: z52.string().nullable().optional()
30254
30571
  });
30255
- var eventListingDisplaySchema = z51.object({
30256
- kind: z51.literal("event-listing"),
30257
- state: z51.enum(["loading", "empty", "ready"]),
30572
+ var eventListingDisplaySchema = z52.object({
30573
+ kind: z52.literal("event-listing"),
30574
+ state: z52.enum(["loading", "empty", "ready"]),
30258
30575
  listLayout: eventLayoutSchema,
30259
- className: z51.string().nullable(),
30260
- emptyMessage: z51.string(),
30261
- loadingMessage: z51.string(),
30262
- containerClass: z51.string(),
30576
+ className: z52.string().nullable(),
30577
+ emptyMessage: z52.string(),
30578
+ loadingMessage: z52.string(),
30579
+ containerClass: z52.string(),
30263
30580
  cardVariant: cardVariantRoleSchema,
30264
30581
  buttonVariant: eventButtonVariantSchema,
30265
- buttonText: z51.string(),
30266
- showVenue: z51.boolean(),
30267
- showMap: z51.boolean(),
30268
- showCapacity: z51.boolean(),
30582
+ buttonText: z52.string(),
30583
+ showVenue: z52.boolean(),
30584
+ showMap: z52.boolean(),
30585
+ showCapacity: z52.boolean(),
30269
30586
  orientation: cardOrientationSchema,
30270
- events: z51.array(publicEventSchema)
30587
+ events: z52.array(publicEventSchema)
30271
30588
  });
30272
- var eventListingHydrationSchema = z51.object({
30273
- siteId: z51.string(),
30589
+ var eventListingHydrationSchema = z52.object({
30590
+ siteId: z52.string(),
30274
30591
  stage: previewStageSchema.optional(),
30275
30592
  eventsPerPage: eventPageSizeSchema,
30276
30593
  paginationAction: eventListPaginationActionSchema,
30277
- showFilters: z51.boolean(),
30594
+ showFilters: z52.boolean(),
30278
30595
  showCategoryFilter: filterAutoShowSchema,
30279
- showVenueFilter: z51.boolean(),
30280
- showStaffFilter: z51.boolean(),
30596
+ showVenueFilter: z52.boolean(),
30597
+ showStaffFilter: z52.boolean(),
30281
30598
  eventKind: eventBlockKindSchema,
30282
30599
  eventSurface: eventSurfaceScopeSchema,
30283
- filterEventPresets: z51.string().nullable(),
30600
+ filterEventPresets: z52.string().nullable(),
30284
30601
  scheduleScope: eventScheduleScopeSchema2,
30285
- filterCategoryIds: z51.string().nullable().optional(),
30286
- filterStaffMemberId: z51.string().nullable().optional(),
30287
- filterVenueId: z51.string().nullable().optional(),
30288
- fetchInitialEventsOnMount: z51.boolean()
30602
+ filterCategoryIds: z52.string().nullable().optional(),
30603
+ filterStaffMemberId: z52.string().nullable().optional(),
30604
+ filterVenueId: z52.string().nullable().optional(),
30605
+ fetchInitialEventsOnMount: z52.boolean()
30289
30606
  });
30290
- var eventListingRenderSchema = z51.object({
30607
+ var eventListingRenderSchema = z52.object({
30291
30608
  display: eventListingDisplaySchema,
30292
30609
  hydration: eventListingHydrationSchema
30293
30610
  });
30294
30611
  var eventListingIslandMetaCodec = createZodCodec(
30295
- z51.object({
30296
- siteId: z51.string(),
30297
- apiBaseUrl: z51.string().optional(),
30612
+ z52.object({
30613
+ siteId: z52.string(),
30614
+ apiBaseUrl: z52.string().optional(),
30298
30615
  stage: previewStageSchema.optional()
30299
30616
  })
30300
30617
  );
@@ -30534,18 +30851,7 @@ var eventListingAdditionalFields = [
30534
30851
  var eventListingLayout = [
30535
30852
  styledSection({
30536
30853
  children: sectionContainer([
30537
- // Optional heading
30538
- text(
30539
- { as: "h2" },
30540
- bind("content.heading"),
30541
- when("content.heading")
30542
- ),
30543
- // Optional description
30544
- richText(
30545
- { className: "rb-prose rb-max-w-none" },
30546
- bind("content.description"),
30547
- when("content.description")
30548
- ),
30854
+ ...eventSectionHeaderLayoutNodes(),
30549
30855
  // Event listing component with pagination
30550
30856
  el("event-listing", withApiBindings({
30551
30857
  events: { $bind: { from: "data.events" } },
@@ -30661,15 +30967,15 @@ var eventListingBlockDefinition = {
30661
30967
  };
30662
30968
 
30663
30969
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30664
- import { z as z52 } from "zod";
30665
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30666
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30667
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30668
- var eventCalendarSourceSchema = z52.object(
30970
+ import { z as z53 } from "zod";
30971
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30972
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30973
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30974
+ var eventCalendarSourceSchema = z53.object(
30669
30975
  {
30670
- events: z52.array(publicEventSchema).nullable().optional(),
30671
- siteId: z52.string(),
30672
- apiBaseUrl: z52.string().optional(),
30976
+ events: z53.array(publicEventSchema).nullable().optional(),
30977
+ siteId: z53.string(),
30978
+ apiBaseUrl: z53.string().optional(),
30673
30979
  stage: previewStageSchema.optional(),
30674
30980
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30675
30981
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30677,38 +30983,38 @@ var eventCalendarSourceSchema = z52.object(
30677
30983
  listColumns: columnOptionSchema.optional(),
30678
30984
  layout: eventLayoutSchema.optional(),
30679
30985
  columns: columnOptionSchema.optional(),
30680
- eventsPerPage: z52.string().optional(),
30681
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30682
- seeAllUrl: z52.string().optional(),
30683
- loadMoreText: z52.string().optional(),
30986
+ eventsPerPage: z53.string().optional(),
30987
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30988
+ seeAllUrl: z53.string().optional(),
30989
+ loadMoreText: z53.string().optional(),
30684
30990
  startOfWeek: weekStartSchema.optional(),
30685
30991
  calendarTabViews: calendarTabViewsSchema.optional(),
30686
30992
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30687
- showFilters: z52.boolean().nullable().optional(),
30993
+ showFilters: z53.boolean().nullable().optional(),
30688
30994
  showCategoryFilter: filterAutoShowSchema.optional(),
30689
- showVenueFilter: z52.boolean().nullable().optional(),
30690
- showStaffFilter: z52.boolean().nullable().optional(),
30995
+ showVenueFilter: z53.boolean().nullable().optional(),
30996
+ showStaffFilter: z53.boolean().nullable().optional(),
30691
30997
  kind: eventBlockKindSchema2.nullable().optional(),
30692
30998
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30693
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30999
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30694
31000
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30695
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30696
- filterStaffMemberId: z52.string().nullable().optional(),
30697
- filterVenueId: z52.string().nullable().optional(),
31001
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
31002
+ filterStaffMemberId: z53.string().nullable().optional(),
31003
+ filterVenueId: z53.string().nullable().optional(),
30698
31004
  buttonVariant: eventButtonVariantSchema.optional(),
30699
- buttonText: z52.string().optional(),
30700
- showVenue: z52.boolean().nullable().optional(),
30701
- showMap: z52.boolean().nullable().optional(),
30702
- showCapacity: z52.boolean().nullable().optional(),
30703
- emptyMessage: z52.string().optional(),
30704
- className: z52.string().optional()
31005
+ buttonText: z53.string().optional(),
31006
+ showVenue: z53.boolean().nullable().optional(),
31007
+ showMap: z53.boolean().nullable().optional(),
31008
+ showCapacity: z53.boolean().nullable().optional(),
31009
+ emptyMessage: z53.string().optional(),
31010
+ className: z53.string().optional()
30705
31011
  }
30706
31012
  );
30707
- var eventCalendarDisplaySchema = z52.object({
30708
- kind: z52.literal("event-calendar"),
31013
+ var eventCalendarDisplaySchema = z53.object({
31014
+ kind: z53.literal("event-calendar"),
30709
31015
  displayMode: eventCalendarDisplayModeSchema,
30710
- className: z52.string().nullable(),
30711
- events: z52.array(publicEventSchema),
31016
+ className: z53.string().nullable(),
31017
+ events: z53.array(publicEventSchema),
30712
31018
  listLayout: eventLayoutSchema,
30713
31019
  listColumns: columnOptionSchema,
30714
31020
  eventsPerPage: eventPageSizeSchema,
@@ -30716,41 +31022,41 @@ var eventCalendarDisplaySchema = z52.object({
30716
31022
  startOfWeek: weekStartSchema,
30717
31023
  calendarTabViews: calendarTabViewsSchema,
30718
31024
  defaultCalendarView: eventCalendarDefaultViewSchema,
30719
- showFilters: z52.boolean(),
31025
+ showFilters: z53.boolean(),
30720
31026
  showCategoryFilter: filterAutoShowSchema,
30721
- showVenueFilter: z52.boolean(),
30722
- showStaffFilter: z52.boolean(),
31027
+ showVenueFilter: z53.boolean(),
31028
+ showStaffFilter: z53.boolean(),
30723
31029
  eventKind: eventBlockKindSchema2,
30724
31030
  eventSurface: eventSurfaceScopeSchema2,
30725
- filterEventPresets: z52.string().nullable(),
31031
+ filterEventPresets: z53.string().nullable(),
30726
31032
  scheduleScope: eventScheduleScopeSchema3,
30727
- filterCategoryIds: z52.string().nullable(),
30728
- filterStaffMemberId: z52.string().nullable(),
30729
- filterVenueId: z52.string().nullable(),
31033
+ filterCategoryIds: z53.string().nullable(),
31034
+ filterStaffMemberId: z53.string().nullable(),
31035
+ filterVenueId: z53.string().nullable(),
30730
31036
  buttonVariant: eventButtonVariantSchema,
30731
- buttonText: z52.string(),
30732
- showVenue: z52.boolean(),
30733
- showMap: z52.boolean(),
30734
- showCapacity: z52.boolean(),
30735
- emptyMessage: z52.string()
30736
- });
30737
- var eventCalendarHydrationSchema = z52.object({
30738
- siteId: z52.string(),
31037
+ buttonText: z53.string(),
31038
+ showVenue: z53.boolean(),
31039
+ showMap: z53.boolean(),
31040
+ showCapacity: z53.boolean(),
31041
+ emptyMessage: z53.string()
31042
+ });
31043
+ var eventCalendarHydrationSchema = z53.object({
31044
+ siteId: z53.string(),
30739
31045
  stage: previewStageSchema.optional(),
30740
- prefetchedEvents: z52.boolean(),
31046
+ prefetchedEvents: z53.boolean(),
30741
31047
  eventKind: eventBlockKindSchema2,
30742
31048
  eventSurface: eventSurfaceScopeSchema2,
30743
- filterEventPresets: z52.string().nullable(),
31049
+ filterEventPresets: z53.string().nullable(),
30744
31050
  scheduleScope: eventScheduleScopeSchema3
30745
31051
  });
30746
- var eventCalendarRenderSchema = z52.object({
31052
+ var eventCalendarRenderSchema = z53.object({
30747
31053
  display: eventCalendarDisplaySchema,
30748
31054
  hydration: eventCalendarHydrationSchema
30749
31055
  });
30750
31056
  var eventCalendarIslandMetaCodec = createZodCodec(
30751
- z52.object({
30752
- siteId: z52.string(),
30753
- apiBaseUrl: z52.string().optional(),
31057
+ z53.object({
31058
+ siteId: z53.string(),
31059
+ apiBaseUrl: z53.string().optional(),
30754
31060
  stage: previewStageSchema.optional()
30755
31061
  })
30756
31062
  );
@@ -30870,14 +31176,7 @@ var eventCalendarLayout = [
30870
31176
  styledSection({
30871
31177
  children: sectionContainer(
30872
31178
  [
30873
- // Optional heading
30874
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30875
- // Optional description
30876
- richText(
30877
- { className: "rb-prose rb-max-w-none" },
30878
- bind("content.description"),
30879
- when("content.description")
30880
- ),
31179
+ ...eventSectionHeaderLayoutNodes(),
30881
31180
  // Event calendar component (handles all display modes)
30882
31181
  el(
30883
31182
  "event-calendar",
@@ -31522,7 +31821,7 @@ var eventCalendarBlockDefinition = {
31522
31821
  };
31523
31822
 
31524
31823
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31525
- import { z as z53 } from "zod";
31824
+ import { z as z54 } from "zod";
31526
31825
 
31527
31826
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31528
31827
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31614,13 +31913,13 @@ function isRecord6(value) {
31614
31913
  }
31615
31914
 
31616
31915
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31617
- var publicRouteCandidatesSchema = z53.object({
31618
- routes: z53.array(z53.object({
31619
- entityId: z53.string(),
31620
- path: z53.string(),
31621
- title: z53.string(),
31622
- kind: z53.enum(["page", "content"]),
31623
- contentTypeKey: z53.string().nullable().optional()
31916
+ var publicRouteCandidatesSchema = z54.object({
31917
+ routes: z54.array(z54.object({
31918
+ entityId: z54.string(),
31919
+ path: z54.string(),
31920
+ title: z54.string(),
31921
+ kind: z54.enum(["page", "content"]),
31922
+ contentTypeKey: z54.string().nullable().optional()
31624
31923
  }))
31625
31924
  });
31626
31925
  var groupOverrideFields = [
@@ -32018,7 +32317,7 @@ function isRecord7(value) {
32018
32317
  }
32019
32318
 
32020
32319
  // ../blocks/src/system/blocks/embed.ts
32021
- import { z as z54 } from "zod";
32320
+ import { z as z55 } from "zod";
32022
32321
  var embedFields = [
32023
32322
  // Section heading
32024
32323
  parseFieldDefinition({
@@ -32249,18 +32548,18 @@ var embedManifest = createBlockManifest({
32249
32548
  spacing: "lg"
32250
32549
  }
32251
32550
  });
32252
- var embedEntrySchema = z54.object({
32253
- id: z54.string(),
32254
- identifier: z54.string(),
32255
- title: z54.string(),
32256
- slug: z54.string().nullable().optional(),
32257
- content: z54.record(z54.string(), z54.unknown()).optional(),
32258
- publishedAt: z54.string().nullable().optional()
32551
+ var embedEntrySchema = z55.object({
32552
+ id: z55.string(),
32553
+ identifier: z55.string(),
32554
+ title: z55.string(),
32555
+ slug: z55.string().nullable().optional(),
32556
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32557
+ publishedAt: z55.string().nullable().optional()
32259
32558
  });
32260
32559
  var embedBlockDefinition = {
32261
32560
  manifest: embedManifest,
32262
32561
  dataSchemas: {
32263
- entries: z54.array(embedEntrySchema).optional()
32562
+ entries: z55.array(embedEntrySchema).optional()
32264
32563
  },
32265
32564
  dataLoaders: {
32266
32565
  entries: {
@@ -33444,49 +33743,49 @@ var fileDownloadBlockDefinition = {
33444
33743
  };
33445
33744
 
33446
33745
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33447
- import { z as z57 } from "zod";
33746
+ import { z as z58 } from "zod";
33448
33747
 
33449
33748
  // ../blocks/src/system/blocks/products/shared.ts
33450
- import { z as z55 } from "zod";
33451
- var publicProductVariantSchema = z55.object({
33452
- id: z55.string(),
33453
- title: z55.string(),
33454
- sku: z55.string().nullable(),
33455
- priceCents: z55.number(),
33456
- stockQuantity: z55.number().nullable(),
33457
- soldOut: z55.boolean()
33458
- });
33459
- var publicProductSchema = z55.object({
33460
- id: z55.string(),
33461
- contentEntryId: z55.string().nullable(),
33462
- title: z55.string(),
33463
- slug: z55.string(),
33464
- path: z55.string().nullable(),
33465
- status: z55.enum(["draft", "active"]),
33466
- priceCents: z55.number(),
33467
- currency: z55.string(),
33468
- productType: z55.enum(["physical", "digital"]),
33469
- requiresShipping: z55.boolean(),
33470
- hasVariants: z55.boolean(),
33471
- trackInventory: z55.boolean(),
33472
- soldOut: z55.boolean(),
33473
- category: z55.object({
33474
- id: z55.string(),
33475
- name: z55.string(),
33476
- slug: z55.string()
33749
+ import { z as z56 } from "zod";
33750
+ var publicProductVariantSchema = z56.object({
33751
+ id: z56.string(),
33752
+ title: z56.string(),
33753
+ sku: z56.string().nullable(),
33754
+ priceCents: z56.number(),
33755
+ stockQuantity: z56.number().nullable(),
33756
+ soldOut: z56.boolean()
33757
+ });
33758
+ var publicProductSchema = z56.object({
33759
+ id: z56.string(),
33760
+ contentEntryId: z56.string().nullable(),
33761
+ title: z56.string(),
33762
+ slug: z56.string(),
33763
+ path: z56.string().nullable(),
33764
+ status: z56.enum(["draft", "active"]),
33765
+ priceCents: z56.number(),
33766
+ currency: z56.string(),
33767
+ productType: z56.enum(["physical", "digital"]),
33768
+ requiresShipping: z56.boolean(),
33769
+ hasVariants: z56.boolean(),
33770
+ trackInventory: z56.boolean(),
33771
+ soldOut: z56.boolean(),
33772
+ category: z56.object({
33773
+ id: z56.string(),
33774
+ name: z56.string(),
33775
+ slug: z56.string()
33477
33776
  }).nullable(),
33478
- summary: z55.string().nullable(),
33479
- body: z55.unknown().nullable(),
33480
- gallery: z55.array(
33481
- z55.object({
33482
- url: z55.string(),
33483
- alt: z55.string().nullable()
33777
+ summary: z56.string().nullable(),
33778
+ body: z56.unknown().nullable(),
33779
+ gallery: z56.array(
33780
+ z56.object({
33781
+ url: z56.string(),
33782
+ alt: z56.string().nullable()
33484
33783
  })
33485
33784
  ),
33486
- variants: z55.array(publicProductVariantSchema)
33785
+ variants: z56.array(publicProductVariantSchema)
33487
33786
  });
33488
- var publicProductsResponseSchema = z55.object({
33489
- products: z55.array(publicProductSchema)
33787
+ var publicProductsResponseSchema = z56.object({
33788
+ products: z56.array(publicProductSchema)
33490
33789
  });
33491
33790
 
33492
33791
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33550,27 +33849,27 @@ function deriveCreditProductLabels(products, options = {}) {
33550
33849
  }
33551
33850
 
33552
33851
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33553
- import { z as z56 } from "zod";
33554
- var storedProductCartItemSchema = z56.object({
33555
- kind: z56.literal("product"),
33556
- productId: z56.string().min(1),
33557
- productCategoryId: z56.string().min(1).optional().nullable(),
33558
- variantId: z56.string().min(1).optional().nullable(),
33559
- title: z56.string().min(1),
33560
- variantTitle: z56.string().optional().nullable(),
33561
- quantity: z56.number().finite(),
33562
- unitPriceCents: z56.number().finite(),
33563
- currency: z56.string().min(1),
33564
- imageUrl: z56.string().optional().nullable(),
33565
- soldOut: z56.boolean().optional()
33566
- });
33567
- var storedPassCartItemSchema = z56.object({
33568
- kind: z56.literal("pass"),
33569
- passId: z56.string().min(1),
33570
- title: z56.string().min(1),
33571
- quantity: z56.number().finite().optional(),
33572
- unitPriceCents: z56.number().finite(),
33573
- currency: z56.string().min(1)
33852
+ import { z as z57 } from "zod";
33853
+ var storedProductCartItemSchema = z57.object({
33854
+ kind: z57.literal("product"),
33855
+ productId: z57.string().min(1),
33856
+ productCategoryId: z57.string().min(1).optional().nullable(),
33857
+ variantId: z57.string().min(1).optional().nullable(),
33858
+ title: z57.string().min(1),
33859
+ variantTitle: z57.string().optional().nullable(),
33860
+ quantity: z57.number().finite(),
33861
+ unitPriceCents: z57.number().finite(),
33862
+ currency: z57.string().min(1),
33863
+ imageUrl: z57.string().optional().nullable(),
33864
+ soldOut: z57.boolean().optional()
33865
+ });
33866
+ var storedPassCartItemSchema = z57.object({
33867
+ kind: z57.literal("pass"),
33868
+ passId: z57.string().min(1),
33869
+ title: z57.string().min(1),
33870
+ quantity: z57.number().finite().optional(),
33871
+ unitPriceCents: z57.number().finite(),
33872
+ currency: z57.string().min(1)
33574
33873
  });
33575
33874
  function deriveCommerceCheckoutState(state) {
33576
33875
  if (state.items.length === 0) {
@@ -33804,214 +34103,214 @@ function formatValidity(days) {
33804
34103
  }
33805
34104
 
33806
34105
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33807
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33808
- var contentEntrySchema3 = z57.object({
33809
- id: z57.string().nullable().optional(),
33810
- slug: z57.string().nullable().optional()
34106
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
34107
+ var contentEntrySchema3 = z58.object({
34108
+ id: z58.string().nullable().optional(),
34109
+ slug: z58.string().nullable().optional()
33811
34110
  }).nullable();
33812
- var shopSourceSchema = z57.object({
33813
- className: z57.string().nullable().optional(),
34111
+ var shopSourceSchema = z58.object({
34112
+ className: z58.string().nullable().optional(),
33814
34113
  mode: shopModeSchema.optional(),
33815
- heading: z57.string().nullable().optional(),
33816
- productSlug: z57.string().nullable().optional(),
33817
- showPasses: z57.boolean().optional(),
33818
- showMemberships: z57.boolean().optional(),
33819
- layout: z57.enum(["grid", "list"]).optional(),
33820
- columns: z57.string().optional(),
33821
- showDescriptions: z57.boolean().optional(),
33822
- showSummary: z57.boolean().optional(),
33823
- showBody: z57.boolean().optional(),
33824
- showPrices: z57.boolean().optional(),
33825
- showValidityPeriod: z57.boolean().optional(),
33826
- showPricePerCredit: z57.boolean().nullable().optional(),
33827
- passesHeading: z57.string().optional(),
33828
- membershipsHeading: z57.string().optional(),
33829
- buyButtonText: z57.string().optional(),
33830
- addButtonText: z57.string().optional(),
33831
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33832
- subscribeButtonText: z57.string().optional(),
33833
- emptyStateText: z57.string().optional(),
33834
- checkoutButtonText: z57.string().optional(),
33835
- clearButtonText: z57.string().optional(),
33836
- submitButtonText: z57.string().optional(),
34114
+ heading: z58.string().nullable().optional(),
34115
+ productSlug: z58.string().nullable().optional(),
34116
+ showPasses: z58.boolean().optional(),
34117
+ showMemberships: z58.boolean().optional(),
34118
+ layout: z58.enum(["grid", "list"]).optional(),
34119
+ columns: z58.string().optional(),
34120
+ showDescriptions: z58.boolean().optional(),
34121
+ showSummary: z58.boolean().optional(),
34122
+ showBody: z58.boolean().optional(),
34123
+ showPrices: z58.boolean().optional(),
34124
+ showValidityPeriod: z58.boolean().optional(),
34125
+ showPricePerCredit: z58.boolean().nullable().optional(),
34126
+ passesHeading: z58.string().optional(),
34127
+ membershipsHeading: z58.string().optional(),
34128
+ buyButtonText: z58.string().optional(),
34129
+ addButtonText: z58.string().optional(),
34130
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
34131
+ subscribeButtonText: z58.string().optional(),
34132
+ emptyStateText: z58.string().optional(),
34133
+ checkoutButtonText: z58.string().optional(),
34134
+ clearButtonText: z58.string().optional(),
34135
+ submitButtonText: z58.string().optional(),
33837
34136
  contentEntry: contentEntrySchema3.optional(),
33838
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33839
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33840
- products: z57.array(publicProductSchema).nullable().optional(),
33841
- siteId: z57.string().optional(),
33842
- apiBaseUrl: z57.string().optional(),
34137
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
34138
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
34139
+ products: z58.array(publicProductSchema).nullable().optional(),
34140
+ siteId: z58.string().optional(),
34141
+ apiBaseUrl: z58.string().optional(),
33843
34142
  stage: previewStageSchema.optional()
33844
34143
  });
33845
- var productVariantOptionDisplaySchema = z57.object({
33846
- id: z57.string(),
33847
- label: z57.string(),
33848
- soldOut: z57.boolean()
33849
- });
33850
- var productCardDisplaySchema = z57.object({
33851
- productId: z57.string(),
33852
- title: z57.string(),
33853
- path: z57.string().nullable(),
33854
- summary: z57.string().nullable(),
33855
- priceLabel: z57.string().nullable(),
33856
- image: z57.object({
33857
- url: z57.string(),
33858
- alt: z57.string().nullable()
34144
+ var productVariantOptionDisplaySchema = z58.object({
34145
+ id: z58.string(),
34146
+ label: z58.string(),
34147
+ soldOut: z58.boolean()
34148
+ });
34149
+ var productCardDisplaySchema = z58.object({
34150
+ productId: z58.string(),
34151
+ title: z58.string(),
34152
+ path: z58.string().nullable(),
34153
+ summary: z58.string().nullable(),
34154
+ priceLabel: z58.string().nullable(),
34155
+ image: z58.object({
34156
+ url: z58.string(),
34157
+ alt: z58.string().nullable()
33859
34158
  }).nullable(),
33860
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33861
- selectedVariantId: z57.string().nullable(),
33862
- selectionLabel: z57.string(),
33863
- actionLabel: z57.string(),
33864
- soldOut: z57.boolean()
33865
- });
33866
- var productListDisplaySchema = z57.object({
33867
- kind: z57.literal("product-list"),
33868
- state: z57.enum(["empty", "ready"]),
33869
- heading: z57.string().nullable(),
33870
- className: z57.string().nullable(),
33871
- layout: z57.enum(["grid", "list"]),
33872
- columns: z57.string(),
33873
- emptyMessage: z57.string(),
33874
- cards: z57.array(productCardDisplaySchema)
33875
- });
33876
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33877
- z57.object({
33878
- kind: z57.literal("product-detail"),
33879
- state: z57.literal("empty"),
33880
- heading: z57.string().nullable(),
33881
- className: z57.string().nullable(),
33882
- emptyMessage: z57.string()
34159
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34160
+ selectedVariantId: z58.string().nullable(),
34161
+ selectionLabel: z58.string(),
34162
+ actionLabel: z58.string(),
34163
+ soldOut: z58.boolean()
34164
+ });
34165
+ var productListDisplaySchema = z58.object({
34166
+ kind: z58.literal("product-list"),
34167
+ state: z58.enum(["empty", "ready"]),
34168
+ heading: z58.string().nullable(),
34169
+ className: z58.string().nullable(),
34170
+ layout: z58.enum(["grid", "list"]),
34171
+ columns: z58.string(),
34172
+ emptyMessage: z58.string(),
34173
+ cards: z58.array(productCardDisplaySchema)
34174
+ });
34175
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
34176
+ z58.object({
34177
+ kind: z58.literal("product-detail"),
34178
+ state: z58.literal("empty"),
34179
+ heading: z58.string().nullable(),
34180
+ className: z58.string().nullable(),
34181
+ emptyMessage: z58.string()
33883
34182
  }),
33884
- z57.object({
33885
- kind: z57.literal("product-detail"),
33886
- state: z57.literal("ready"),
33887
- heading: z57.string().nullable(),
33888
- className: z57.string().nullable(),
33889
- title: z57.string(),
33890
- priceLabel: z57.string(),
33891
- summary: z57.string().nullable(),
33892
- categoryLabel: z57.string().nullable(),
33893
- gallery: z57.array(z57.object({
33894
- url: z57.string(),
33895
- alt: z57.string().nullable()
34183
+ z58.object({
34184
+ kind: z58.literal("product-detail"),
34185
+ state: z58.literal("ready"),
34186
+ heading: z58.string().nullable(),
34187
+ className: z58.string().nullable(),
34188
+ title: z58.string(),
34189
+ priceLabel: z58.string(),
34190
+ summary: z58.string().nullable(),
34191
+ categoryLabel: z58.string().nullable(),
34192
+ gallery: z58.array(z58.object({
34193
+ url: z58.string(),
34194
+ alt: z58.string().nullable()
33896
34195
  })),
33897
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33898
- selectedVariantId: z57.string().nullable(),
33899
- selectionLabel: z57.string(),
33900
- actionLabel: z57.string(),
33901
- soldOut: z57.boolean(),
33902
- body: z57.unknown().nullable()
34196
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34197
+ selectedVariantId: z58.string().nullable(),
34198
+ selectionLabel: z58.string(),
34199
+ actionLabel: z58.string(),
34200
+ soldOut: z58.boolean(),
34201
+ body: z58.unknown().nullable()
33903
34202
  })
33904
34203
  ]);
33905
- var passCardDisplaySchema = z57.object({
33906
- id: z57.string(),
33907
- title: z57.string(),
33908
- description: z57.string().nullable(),
33909
- priceLabel: z57.string(),
33910
- creditsLabel: z57.string(),
33911
- perCreditLabel: z57.string().nullable(),
33912
- validityLabel: z57.string().nullable(),
33913
- actionLabel: z57.string()
33914
- });
33915
- var membershipCardDisplaySchema = z57.object({
33916
- id: z57.string(),
33917
- title: z57.string(),
33918
- description: z57.string().nullable(),
33919
- priceLabel: z57.string(),
33920
- intervalLabel: z57.string(),
33921
- actionLabel: z57.string()
33922
- });
33923
- var passesMembershipsDisplaySchema = z57.object({
33924
- kind: z57.literal("passes-memberships"),
33925
- state: z57.enum(["empty", "ready"]),
33926
- className: z57.string().nullable(),
33927
- layout: z57.enum(["grid", "list"]),
33928
- columns: z57.string(),
33929
- emptyMessage: z57.string(),
33930
- passesHeading: z57.string(),
33931
- membershipsHeading: z57.string(),
33932
- passes: z57.array(passCardDisplaySchema),
33933
- memberships: z57.array(membershipCardDisplaySchema)
33934
- });
33935
- var cartLineDisplaySchema = z57.object({
33936
- key: z57.string(),
33937
- title: z57.string(),
33938
- priceLabel: z57.string(),
33939
- quantity: z57.number(),
33940
- quantityEditable: z57.boolean()
33941
- });
33942
- var cartDisplaySchema = z57.object({
33943
- kind: z57.literal("cart"),
33944
- state: z57.enum(["empty", "ready"]),
33945
- heading: z57.string().nullable(),
33946
- className: z57.string().nullable(),
33947
- emptyMessage: z57.string(),
33948
- supportText: z57.string().nullable(),
33949
- items: z57.array(cartLineDisplaySchema),
33950
- subtotalLabel: z57.string().nullable(),
33951
- checkoutButtonText: z57.string(),
33952
- clearButtonText: z57.string()
33953
- });
33954
- var checkoutDisplaySchema = z57.object({
33955
- kind: z57.literal("checkout"),
33956
- state: z57.enum(["empty", "blocked", "ready"]),
33957
- heading: z57.string().nullable(),
33958
- className: z57.string().nullable(),
33959
- message: z57.string().nullable(),
33960
- submitButtonText: z57.string()
33961
- });
33962
- var passesMembershipsHydrationSchema = z57.object({
33963
- passes: z57.array(publicPassProductSchema),
33964
- memberships: z57.array(publicMembershipProductSchema),
33965
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33966
- });
33967
- var productListHydrationSchema = z57.object({
33968
- products: z57.array(publicProductSchema),
33969
- showSummary: z57.boolean(),
33970
- showPrices: z57.boolean(),
33971
- addButtonText: z57.string()
33972
- });
33973
- var productDetailHydrationSchema = z57.object({
33974
- products: z57.array(publicProductSchema),
33975
- productId: z57.string().nullable(),
33976
- showSummary: z57.boolean(),
33977
- showBody: z57.boolean(),
33978
- addButtonText: z57.string()
33979
- });
33980
- var cartHydrationSchema = z57.object({
33981
- emptyStateText: z57.string(),
33982
- checkoutButtonText: z57.string(),
33983
- clearButtonText: z57.string()
33984
- });
33985
- var checkoutHydrationSchema = z57.object({
33986
- emptyStateText: z57.string(),
33987
- submitButtonText: z57.string()
33988
- });
33989
- var passesMembershipsRenderSchema = z57.object({
34204
+ var passCardDisplaySchema = z58.object({
34205
+ id: z58.string(),
34206
+ title: z58.string(),
34207
+ description: z58.string().nullable(),
34208
+ priceLabel: z58.string(),
34209
+ creditsLabel: z58.string(),
34210
+ perCreditLabel: z58.string().nullable(),
34211
+ validityLabel: z58.string().nullable(),
34212
+ actionLabel: z58.string()
34213
+ });
34214
+ var membershipCardDisplaySchema = z58.object({
34215
+ id: z58.string(),
34216
+ title: z58.string(),
34217
+ description: z58.string().nullable(),
34218
+ priceLabel: z58.string(),
34219
+ intervalLabel: z58.string(),
34220
+ actionLabel: z58.string()
34221
+ });
34222
+ var passesMembershipsDisplaySchema = z58.object({
34223
+ kind: z58.literal("passes-memberships"),
34224
+ state: z58.enum(["empty", "ready"]),
34225
+ className: z58.string().nullable(),
34226
+ layout: z58.enum(["grid", "list"]),
34227
+ columns: z58.string(),
34228
+ emptyMessage: z58.string(),
34229
+ passesHeading: z58.string(),
34230
+ membershipsHeading: z58.string(),
34231
+ passes: z58.array(passCardDisplaySchema),
34232
+ memberships: z58.array(membershipCardDisplaySchema)
34233
+ });
34234
+ var cartLineDisplaySchema = z58.object({
34235
+ key: z58.string(),
34236
+ title: z58.string(),
34237
+ priceLabel: z58.string(),
34238
+ quantity: z58.number(),
34239
+ quantityEditable: z58.boolean()
34240
+ });
34241
+ var cartDisplaySchema = z58.object({
34242
+ kind: z58.literal("cart"),
34243
+ state: z58.enum(["empty", "ready"]),
34244
+ heading: z58.string().nullable(),
34245
+ className: z58.string().nullable(),
34246
+ emptyMessage: z58.string(),
34247
+ supportText: z58.string().nullable(),
34248
+ items: z58.array(cartLineDisplaySchema),
34249
+ subtotalLabel: z58.string().nullable(),
34250
+ checkoutButtonText: z58.string(),
34251
+ clearButtonText: z58.string()
34252
+ });
34253
+ var checkoutDisplaySchema = z58.object({
34254
+ kind: z58.literal("checkout"),
34255
+ state: z58.enum(["empty", "blocked", "ready"]),
34256
+ heading: z58.string().nullable(),
34257
+ className: z58.string().nullable(),
34258
+ message: z58.string().nullable(),
34259
+ submitButtonText: z58.string()
34260
+ });
34261
+ var passesMembershipsHydrationSchema = z58.object({
34262
+ passes: z58.array(publicPassProductSchema),
34263
+ memberships: z58.array(publicMembershipProductSchema),
34264
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
34265
+ });
34266
+ var productListHydrationSchema = z58.object({
34267
+ products: z58.array(publicProductSchema),
34268
+ showSummary: z58.boolean(),
34269
+ showPrices: z58.boolean(),
34270
+ addButtonText: z58.string()
34271
+ });
34272
+ var productDetailHydrationSchema = z58.object({
34273
+ products: z58.array(publicProductSchema),
34274
+ productId: z58.string().nullable(),
34275
+ showSummary: z58.boolean(),
34276
+ showBody: z58.boolean(),
34277
+ addButtonText: z58.string()
34278
+ });
34279
+ var cartHydrationSchema = z58.object({
34280
+ emptyStateText: z58.string(),
34281
+ checkoutButtonText: z58.string(),
34282
+ clearButtonText: z58.string()
34283
+ });
34284
+ var checkoutHydrationSchema = z58.object({
34285
+ emptyStateText: z58.string(),
34286
+ submitButtonText: z58.string()
34287
+ });
34288
+ var passesMembershipsRenderSchema = z58.object({
33990
34289
  display: passesMembershipsDisplaySchema,
33991
34290
  hydration: passesMembershipsHydrationSchema
33992
34291
  });
33993
- var productListRenderSchema = z57.object({
34292
+ var productListRenderSchema = z58.object({
33994
34293
  display: productListDisplaySchema,
33995
34294
  hydration: productListHydrationSchema
33996
34295
  });
33997
- var productDetailRenderSchema = z57.object({
34296
+ var productDetailRenderSchema = z58.object({
33998
34297
  display: productDetailDisplaySchema,
33999
34298
  hydration: productDetailHydrationSchema
34000
34299
  });
34001
- var cartRenderSchema = z57.object({
34300
+ var cartRenderSchema = z58.object({
34002
34301
  display: cartDisplaySchema,
34003
34302
  hydration: cartHydrationSchema
34004
34303
  });
34005
- var checkoutRenderSchema = z57.object({
34304
+ var checkoutRenderSchema = z58.object({
34006
34305
  display: checkoutDisplaySchema,
34007
34306
  hydration: checkoutHydrationSchema
34008
34307
  });
34009
34308
  function resolveShowPricePerCredit(source) {
34010
34309
  return source.showPricePerCredit ?? true;
34011
34310
  }
34012
- var shopIslandMetaCodec = createZodCodec(z57.object({
34013
- siteId: z57.string().optional(),
34014
- apiBaseUrl: z57.string().optional(),
34311
+ var shopIslandMetaCodec = createZodCodec(z58.object({
34312
+ siteId: z58.string().optional(),
34313
+ apiBaseUrl: z58.string().optional(),
34015
34314
  stage: previewStageSchema.optional()
34016
34315
  }));
34017
34316
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34414,7 +34713,7 @@ var shopBlockDefinition = {
34414
34713
  };
34415
34714
 
34416
34715
  // ../blocks/src/system/blocks/product-list.ts
34417
- import { z as z58 } from "zod";
34716
+ import { z as z59 } from "zod";
34418
34717
  var productListManifest = createBlockManifest({
34419
34718
  id: "block.product-list",
34420
34719
  version: "1.0.0",
@@ -34547,7 +34846,7 @@ var productListBlockDefinition = {
34547
34846
  }
34548
34847
  }
34549
34848
  };
34550
- var productListDataSchema = z58.object({
34849
+ var productListDataSchema = z59.object({
34551
34850
  products: publicProductsResponseSchema.optional()
34552
34851
  });
34553
34852
 
@@ -34808,72 +35107,72 @@ var checkoutBlockDefinition = {
34808
35107
  };
34809
35108
 
34810
35109
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34811
- import { z as z59 } from "zod";
34812
- var publicGiftCardOfferSchema = z59.object({
34813
- id: z59.string(),
34814
- kind: z59.literal("gift_card"),
34815
- title: z59.string(),
34816
- description: z59.string().nullable(),
34817
- sortOrder: z59.number().int(),
34818
- giftCard: z59.object({
34819
- fixedDenominations: z59.array(z59.number().int().positive()),
34820
- customAmountEnabled: z59.boolean(),
34821
- customAmountMinCents: z59.number().int().positive(),
34822
- customAmountMaxCents: z59.number().int().positive()
35110
+ import { z as z60 } from "zod";
35111
+ var publicGiftCardOfferSchema = z60.object({
35112
+ id: z60.string(),
35113
+ kind: z60.literal("gift_card"),
35114
+ title: z60.string(),
35115
+ description: z60.string().nullable(),
35116
+ sortOrder: z60.number().int(),
35117
+ giftCard: z60.object({
35118
+ fixedDenominations: z60.array(z60.number().int().positive()),
35119
+ customAmountEnabled: z60.boolean(),
35120
+ customAmountMinCents: z60.number().int().positive(),
35121
+ customAmountMaxCents: z60.number().int().positive()
34823
35122
  }),
34824
- voucher: z59.null()
34825
- });
34826
- var publicVoucherOfferSchema = z59.object({
34827
- id: z59.string(),
34828
- kind: z59.literal("voucher"),
34829
- title: z59.string(),
34830
- description: z59.string().nullable(),
34831
- sortOrder: z59.number().int(),
34832
- giftCard: z59.null(),
34833
- voucher: z59.object({
34834
- purchaseAmountCents: z59.number().int().positive()
35123
+ voucher: z60.null()
35124
+ });
35125
+ var publicVoucherOfferSchema = z60.object({
35126
+ id: z60.string(),
35127
+ kind: z60.literal("voucher"),
35128
+ title: z60.string(),
35129
+ description: z60.string().nullable(),
35130
+ sortOrder: z60.number().int(),
35131
+ giftCard: z60.null(),
35132
+ voucher: z60.object({
35133
+ purchaseAmountCents: z60.number().int().positive()
34835
35134
  })
34836
35135
  });
34837
- var publicGiftingOffersResponseSchema = z59.object({
34838
- currency: z59.string(),
34839
- giftCards: z59.array(publicGiftCardOfferSchema),
34840
- vouchers: z59.array(publicVoucherOfferSchema)
35136
+ var publicGiftingOffersResponseSchema = z60.object({
35137
+ currency: z60.string(),
35138
+ giftCards: z60.array(publicGiftCardOfferSchema),
35139
+ vouchers: z60.array(publicVoucherOfferSchema)
34841
35140
  });
34842
- var giftingSourceSchema = z59.object({
34843
- siteId: z59.string().optional(),
34844
- apiBaseUrl: z59.string().optional(),
35141
+ var giftingSourceSchema = z60.object({
35142
+ siteId: z60.string().optional(),
35143
+ apiBaseUrl: z60.string().optional(),
34845
35144
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34846
- className: z59.string().nullable().optional(),
34847
- heading: z59.string().nullable().optional(),
34848
- intro: z59.string().nullable().optional(),
34849
- giftCardsHeading: z59.string().nullable().optional(),
34850
- vouchersHeading: z59.string().nullable().optional(),
34851
- emptyStateText: z59.string().nullable().optional(),
34852
- checkoutButtonText: z59.string().nullable().optional(),
34853
- successMessage: z59.string().nullable().optional()
34854
- });
34855
- var giftingDisplaySchema = z59.object({
34856
- kind: z59.literal("gifting"),
34857
- state: z59.literal("ready"),
34858
- className: z59.string().nullable(),
34859
- heading: z59.string(),
34860
- intro: z59.string().nullable(),
34861
- giftCardsHeading: z59.string(),
34862
- vouchersHeading: z59.string(),
34863
- emptyStateText: z59.string()
34864
- });
34865
- var giftingHydrationSchema = z59.object({
35145
+ className: z60.string().nullable().optional(),
35146
+ heading: z60.string().nullable().optional(),
35147
+ intro: z60.string().nullable().optional(),
35148
+ giftCardsHeading: z60.string().nullable().optional(),
35149
+ vouchersHeading: z60.string().nullable().optional(),
35150
+ emptyStateText: z60.string().nullable().optional(),
35151
+ checkoutButtonText: z60.string().nullable().optional(),
35152
+ successMessage: z60.string().nullable().optional()
35153
+ });
35154
+ var giftingDisplaySchema = z60.object({
35155
+ kind: z60.literal("gifting"),
35156
+ state: z60.literal("ready"),
35157
+ className: z60.string().nullable(),
35158
+ heading: z60.string(),
35159
+ intro: z60.string().nullable(),
35160
+ giftCardsHeading: z60.string(),
35161
+ vouchersHeading: z60.string(),
35162
+ emptyStateText: z60.string()
35163
+ });
35164
+ var giftingHydrationSchema = z60.object({
34866
35165
  offers: publicGiftingOffersResponseSchema.nullable(),
34867
- checkoutButtonText: z59.string(),
34868
- successMessage: z59.string()
35166
+ checkoutButtonText: z60.string(),
35167
+ successMessage: z60.string()
34869
35168
  });
34870
- var giftingRenderSchema = z59.object({
35169
+ var giftingRenderSchema = z60.object({
34871
35170
  display: giftingDisplaySchema,
34872
35171
  hydration: giftingHydrationSchema
34873
35172
  });
34874
- var giftingIslandMetaCodec = createZodCodec(z59.object({
34875
- siteId: z59.string().optional(),
34876
- apiBaseUrl: z59.string().optional()
35173
+ var giftingIslandMetaCodec = createZodCodec(z60.object({
35174
+ siteId: z60.string().optional(),
35175
+ apiBaseUrl: z60.string().optional()
34877
35176
  }));
34878
35177
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34879
35178
  "siteId",
@@ -35044,7 +35343,7 @@ var giftingBlockDefinition = {
35044
35343
  };
35045
35344
 
35046
35345
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35047
- import { z as z60 } from "zod";
35346
+ import { z as z61 } from "zod";
35048
35347
 
35049
35348
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
35050
35349
  function parseNewsletterSignupBlockId(value) {
@@ -35151,65 +35450,65 @@ function withOptionalPhone(fields3, includePhone) {
35151
35450
  }
35152
35451
 
35153
35452
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35154
- var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35155
- var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35156
- var newsletterFieldSchema = z60.object({
35157
- id: z60.string(),
35158
- type: z60.enum(["email", "text"]),
35159
- label: z60.string(),
35160
- required: z60.boolean(),
35161
- placeholder: z60.string().optional()
35162
- });
35163
- var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35164
- var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35165
- var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35166
- z60.object({
35167
- tag: z60.literal("block_ref"),
35453
+ var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35454
+ var newsletterDestinationProviderSchema = z61.enum(["riverbank", "mailchimp"]);
35455
+ var newsletterFieldSchema = z61.object({
35456
+ id: z61.string(),
35457
+ type: z61.enum(["email", "text"]),
35458
+ label: z61.string(),
35459
+ required: z61.boolean(),
35460
+ placeholder: z61.string().optional()
35461
+ });
35462
+ var newsletterSignupBlockIdSchema = z61.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35463
+ var signedNewsletterDestinationRefSchema = z61.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35464
+ var newsletterPublicDestinationRefSchema = z61.discriminatedUnion("tag", [
35465
+ z61.object({
35466
+ tag: z61.literal("block_ref"),
35168
35467
  blockId: newsletterSignupBlockIdSchema
35169
35468
  }),
35170
- z60.object({
35171
- tag: z60.literal("signed_destination_ref"),
35469
+ z61.object({
35470
+ tag: z61.literal("signed_destination_ref"),
35172
35471
  token: signedNewsletterDestinationRefSchema
35173
35472
  })
35174
35473
  ]);
35175
- var newsletterSourceSchema = z60.object({
35176
- blockId: z60.string().nullable().optional(),
35177
- siteId: z60.string().optional(),
35178
- apiBaseUrl: z60.string().optional(),
35179
- listId: z60.string().nullable().optional(),
35474
+ var newsletterSourceSchema = z61.object({
35475
+ blockId: z61.string().nullable().optional(),
35476
+ siteId: z61.string().optional(),
35477
+ apiBaseUrl: z61.string().optional(),
35478
+ listId: z61.string().nullable().optional(),
35180
35479
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35181
35480
  preset: newsletterPresetSchema.optional(),
35182
- includePhone: z60.boolean().optional(),
35183
- buttonLabel: z60.string().nullable().optional(),
35184
- successMessage: z60.string().nullable().optional(),
35185
- privacyNote: z60.string().nullable().optional(),
35186
- tags: z60.string().nullable().optional(),
35187
- spamProtectionEnabled: z60.boolean().optional(),
35188
- className: z60.string().nullable().optional()
35189
- });
35190
- var newsletterDisplaySchema = z60.object({
35191
- kind: z60.literal("newsletter-form"),
35192
- className: z60.string().nullable(),
35193
- buttonLabel: z60.string(),
35194
- successMessage: z60.string().nullable(),
35195
- privacyNote: z60.string().nullable(),
35196
- fields: z60.array(newsletterFieldSchema)
35197
- });
35198
- var newsletterHydrationSchema = z60.object({
35481
+ includePhone: z61.boolean().optional(),
35482
+ buttonLabel: z61.string().nullable().optional(),
35483
+ successMessage: z61.string().nullable().optional(),
35484
+ privacyNote: z61.string().nullable().optional(),
35485
+ tags: z61.string().nullable().optional(),
35486
+ spamProtectionEnabled: z61.boolean().optional(),
35487
+ className: z61.string().nullable().optional()
35488
+ });
35489
+ var newsletterDisplaySchema = z61.object({
35490
+ kind: z61.literal("newsletter-form"),
35491
+ className: z61.string().nullable(),
35492
+ buttonLabel: z61.string(),
35493
+ successMessage: z61.string().nullable(),
35494
+ privacyNote: z61.string().nullable(),
35495
+ fields: z61.array(newsletterFieldSchema)
35496
+ });
35497
+ var newsletterHydrationSchema = z61.object({
35199
35498
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35200
- listId: z60.string().nullable().optional(),
35499
+ listId: z61.string().nullable().optional(),
35201
35500
  preset: newsletterPresetSchema,
35202
- includePhone: z60.boolean(),
35203
- tags: z60.string().nullable().optional(),
35204
- spamProtectionEnabled: z60.boolean().optional()
35501
+ includePhone: z61.boolean(),
35502
+ tags: z61.string().nullable().optional(),
35503
+ spamProtectionEnabled: z61.boolean().optional()
35205
35504
  });
35206
- var newsletterRenderSchema = z60.object({
35505
+ var newsletterRenderSchema = z61.object({
35207
35506
  display: newsletterDisplaySchema,
35208
35507
  hydration: newsletterHydrationSchema
35209
35508
  });
35210
- var newsletterIslandMetaCodec = createZodCodec(z60.object({
35211
- siteId: z60.string().optional(),
35212
- apiBaseUrl: z60.string().optional()
35509
+ var newsletterIslandMetaCodec = createZodCodec(z61.object({
35510
+ siteId: z61.string().optional(),
35511
+ apiBaseUrl: z61.string().optional()
35213
35512
  }));
35214
35513
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35215
35514
  function buildNewsletterDisplay(source) {
@@ -35348,23 +35647,23 @@ var newsletterSignupBlockDefinition = {
35348
35647
  };
35349
35648
 
35350
35649
  // ../blocks/src/system/blocks/team-members.ts
35351
- import { z as z61 } from "zod";
35650
+ import { z as z62 } from "zod";
35352
35651
  var ITEM_NAME2 = "member";
35353
35652
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35354
35653
  message: "Team member photos must be image media"
35355
35654
  }).nullable();
35356
- var teamMemberDataSchema = z61.object({
35357
- _type: z61.literal("teamMember"),
35358
- id: z61.string(),
35359
- name: z61.string(),
35360
- role: z61.string().nullable(),
35361
- roleLabel: z61.string().nullable(),
35362
- bio: z61.string().nullable(),
35363
- summary: z61.string().nullable(),
35655
+ var teamMemberDataSchema = z62.object({
35656
+ _type: z62.literal("teamMember"),
35657
+ id: z62.string(),
35658
+ name: z62.string(),
35659
+ role: z62.string().nullable(),
35660
+ roleLabel: z62.string().nullable(),
35661
+ bio: z62.string().nullable(),
35662
+ summary: z62.string().nullable(),
35364
35663
  photo: teamMemberPhotoSchema,
35365
- profilePath: z61.string().nullable()
35664
+ profilePath: z62.string().nullable()
35366
35665
  });
35367
- var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35666
+ var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35368
35667
  var dynamicSourceWhen = { equals: "site_staff" };
35369
35668
  var manualSourceWhen = { equals: "site_staff", not: true };
35370
35669
  var headingNode = text(
@@ -36470,6 +36769,10 @@ var systemBlockDefinitionsRaw = [
36470
36769
  flow: conversionFlow,
36471
36770
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
36472
36771
  })),
36772
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36773
+ flow: offeringsFlow,
36774
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
36775
+ })),
36473
36776
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36474
36777
  flow: conversionFlow,
36475
36778
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -37545,6 +37848,34 @@ ${root} {
37545
37848
  /* Order summary */
37546
37849
  --er-summary-bg: rgba(var(--tb-primary), 0.1);
37547
37850
  --er-summary-border: rgb(var(--tb-border));
37851
+
37852
+ /* Shared registration-surface mappings (issue 1174).
37853
+ Route the shared --rb-reg-* contract through this block's documented
37854
+ Tier 3 vars so existing --er-* overrides keep working unchanged. */
37855
+ --rb-reg-radius: var(--er-radius);
37856
+ --rb-reg-border: var(--er-border);
37857
+ --rb-reg-border-hover: var(--er-border-hover);
37858
+ --rb-reg-border-selected: var(--er-border-selected);
37859
+ --rb-reg-bg-selected: var(--er-payment-bg-selected);
37860
+ --rb-reg-option-bg: var(--er-control-bg);
37861
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
37862
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
37863
+ --rb-reg-on-surface: var(--er-on-surface);
37864
+ --rb-reg-on-surface-muted: var(--er-on-surface-muted);
37865
+ --rb-reg-on-surface-subtle: var(--er-on-surface-subtle);
37866
+ --rb-reg-on-surface-faint: var(--er-on-surface-faint);
37867
+ --rb-reg-check-bg: var(--er-check-bg);
37868
+ --rb-reg-check-text: var(--er-check-text);
37869
+ --rb-reg-step-active: var(--er-step-active);
37870
+ --rb-reg-step-completed: var(--er-step-completed);
37871
+ --rb-reg-step-inactive: var(--er-step-inactive);
37872
+ --rb-reg-step-text: var(--er-step-text);
37873
+ --rb-reg-step-text-active: var(--er-step-text-active);
37874
+ --rb-reg-step-connector: var(--er-step-connector);
37875
+ --rb-reg-summary-bg: var(--er-surface-muted);
37876
+ --rb-reg-summary-border: var(--er-border);
37877
+ --rb-reg-focus-ring: var(--er-focus-ring);
37878
+ --rb-reg-shell-line: var(--er-shell-line);
37548
37879
  }
37549
37880
  `;
37550
37881
  }
@@ -37677,25 +38008,40 @@ ${root} {
37677
38008
  --ab-info-bg: rgba(var(--tb-info), 0.1);
37678
38009
  --ab-info-text: rgb(var(--tb-info));
37679
38010
 
37680
- /* Loading/muted states */
38011
+ /* Muted summary state */
37681
38012
  --ab-muted-bg: rgba(var(--tb-text), 0.05);
37682
- --ab-muted-text: rgba(var(--tb-text), 0.6);
37683
- --ab-spinner-color: rgb(var(--tb-primary));
37684
38013
 
37685
- /* Form elements */
37686
- --ab-input-border: rgb(var(--tb-border));
38014
+ /* Focus ring used by shared registration-surface controls */
37687
38015
  --ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
37688
38016
 
37689
- /* Buttons */
37690
- --ab-btn-primary-bg: rgb(var(--tb-primary));
37691
- --ab-btn-primary-text: rgb(var(--tb-background));
37692
- --ab-btn-primary-hover: rgba(var(--tb-primary), 0.9);
37693
- --ab-btn-secondary-border: rgb(var(--tb-border));
37694
- --ab-btn-secondary-hover: rgba(var(--tb-text), 0.05);
37695
-
37696
- /* Text opacity levels */
37697
- --ab-text-muted-opacity: 0.6;
37698
- --ab-text-faint-opacity: 0.4;
38017
+ /* Shared registration-surface mappings (issue 1174).
38018
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
38019
+ (palette tokens where no --ab-* var exists) so --ab-* overrides keep
38020
+ working as the block adopts the shared classes. */
38021
+ --rb-reg-radius: var(--ab-card-radius, var(--rb-block-radius));
38022
+ --rb-reg-border: var(--ab-card-border);
38023
+ --rb-reg-border-hover: var(--ab-card-border-hover);
38024
+ --rb-reg-border-selected: var(--ab-card-border-selected);
38025
+ --rb-reg-bg-selected: var(--ab-card-bg-selected);
38026
+ --rb-reg-option-bg: transparent;
38027
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
38028
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
38029
+ --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
38030
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
38031
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
38032
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
38033
+ --rb-reg-check-bg: var(--ab-check-bg);
38034
+ --rb-reg-check-text: var(--ab-check-text);
38035
+ --rb-reg-step-active: rgb(var(--tb-primary));
38036
+ --rb-reg-step-completed: rgb(var(--tb-success));
38037
+ --rb-reg-step-inactive: rgb(var(--tb-mutedText));
38038
+ --rb-reg-step-text: rgb(255 255 255);
38039
+ --rb-reg-step-text-active: rgb(var(--tb-primaryText, 255 255 255));
38040
+ --rb-reg-step-connector: rgba(var(--tb-border), 0.5);
38041
+ --rb-reg-summary-bg: var(--ab-muted-bg);
38042
+ --rb-reg-summary-border: var(--ab-card-border);
38043
+ --rb-reg-focus-ring: var(--ab-input-focus-ring);
38044
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
37699
38045
  }
37700
38046
  `;
37701
38047
  }
@@ -37986,6 +38332,35 @@ ${root} {
37986
38332
  /* Summary */
37987
38333
  --cr-summary-bg: rgba(var(--tb-primary), 0.1);
37988
38334
  --cr-summary-border: rgb(var(--tb-border));
38335
+
38336
+ /* Shared registration-surface mappings (issue 1174).
38337
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
38338
+ (palette tokens where no --cr-* var exists) so existing --cr-* overrides
38339
+ keep working unchanged. */
38340
+ --rb-reg-radius: var(--rb-block-radius);
38341
+ --rb-reg-border: var(--cr-border);
38342
+ --rb-reg-border-hover: var(--cr-border-hover);
38343
+ --rb-reg-border-selected: var(--cr-border-selected);
38344
+ --rb-reg-bg-selected: var(--cr-payment-bg-selected);
38345
+ --rb-reg-option-bg: rgb(var(--tb-background));
38346
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
38347
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
38348
+ --rb-reg-on-surface: var(--cr-on-surface);
38349
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
38350
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
38351
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
38352
+ --rb-reg-check-bg: var(--cr-check-bg);
38353
+ --rb-reg-check-text: var(--cr-check-text);
38354
+ --rb-reg-step-active: var(--cr-step-active);
38355
+ --rb-reg-step-completed: var(--cr-step-completed);
38356
+ --rb-reg-step-inactive: var(--cr-step-inactive);
38357
+ --rb-reg-step-text: var(--cr-step-text);
38358
+ --rb-reg-step-text-active: var(--cr-step-text-active);
38359
+ --rb-reg-step-connector: var(--cr-step-connector);
38360
+ --rb-reg-summary-bg: var(--cr-summary-bg);
38361
+ --rb-reg-summary-border: var(--cr-summary-border);
38362
+ --rb-reg-focus-ring: var(--cr-focus-ring);
38363
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
37989
38364
  }
37990
38365
  `;
37991
38366
  }
@@ -38048,34 +38423,34 @@ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38048
38423
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
38049
38424
 
38050
38425
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
38051
- import { z as z62 } from "zod";
38052
- var themeBridgeConfigSchema = z62.object({
38053
- tokens: z62.record(z62.string(), z62.string()),
38054
- typography: z62.object({
38055
- headingFamily: z62.string().optional(),
38056
- bodyFamily: z62.string().optional(),
38057
- headingWeight: z62.number().optional(),
38058
- bodyWeight: z62.number().optional()
38426
+ import { z as z63 } from "zod";
38427
+ var themeBridgeConfigSchema = z63.object({
38428
+ tokens: z63.record(z63.string(), z63.string()),
38429
+ typography: z63.object({
38430
+ headingFamily: z63.string().optional(),
38431
+ bodyFamily: z63.string().optional(),
38432
+ headingWeight: z63.number().optional(),
38433
+ bodyWeight: z63.number().optional()
38059
38434
  }).optional(),
38060
- spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38061
- corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38062
- shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38063
- components: z62.object({
38064
- buttons: z62.union([
38065
- z62.boolean(),
38066
- z62.object({
38067
- variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
38435
+ spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
38436
+ corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
38437
+ shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
38438
+ components: z63.object({
38439
+ buttons: z63.union([
38440
+ z63.boolean(),
38441
+ z63.object({
38442
+ variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
38068
38443
  })
38069
38444
  ]).optional(),
38070
- cards: z62.union([
38071
- z62.boolean(),
38072
- z62.object({
38073
- variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
38445
+ cards: z63.union([
38446
+ z63.boolean(),
38447
+ z63.object({
38448
+ variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
38074
38449
  })
38075
38450
  ]).optional(),
38076
- inputs: z62.boolean().optional()
38451
+ inputs: z63.boolean().optional()
38077
38452
  }).optional(),
38078
- overrides: z62.record(z62.string(), z62.string()).optional()
38453
+ overrides: z63.record(z63.string(), z63.string()).optional()
38079
38454
  }).passthrough();
38080
38455
 
38081
38456
  // ../theme-core/src/siteChrome.tsx
@@ -38094,24 +38469,25 @@ var SUPPORTED_LOADER_ENDPOINTS = [
38094
38469
  "listPublicPasses",
38095
38470
  "listPublicMemberships",
38096
38471
  "getPublicFormById",
38097
- "getPublicBookingServices"
38472
+ "getPublicBookingServices",
38473
+ "getPublicWeeklySlotAvailability"
38098
38474
  ];
38099
38475
 
38100
38476
  // ../api/src/sdkConfig/contracts.ts
38101
38477
  function unsafeRetypeZodSchema(schema) {
38102
38478
  return schema;
38103
38479
  }
38104
- var navIdListSchema = z63.preprocess((value) => {
38480
+ var navIdListSchema = z64.preprocess((value) => {
38105
38481
  if (!Array.isArray(value)) return void 0;
38106
38482
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
38107
38483
  return filtered.length > 0 ? filtered : void 0;
38108
- }, z63.array(z63.string()).max(200).optional());
38109
- var dashboardNavVisibilityBaseSchema = z63.object({
38110
- mode: z63.enum(["augment", "restrict"]).optional(),
38484
+ }, z64.array(z64.string()).max(200).optional());
38485
+ var dashboardNavVisibilityBaseSchema = z64.object({
38486
+ mode: z64.enum(["augment", "restrict"]).optional(),
38111
38487
  allowIds: navIdListSchema,
38112
38488
  denyIds: navIdListSchema
38113
38489
  }).strip();
38114
- var dashboardNavVisibilityRolesSchema = z63.object({
38490
+ var dashboardNavVisibilityRolesSchema = z64.object({
38115
38491
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38116
38492
  editor: dashboardNavVisibilityBaseSchema.optional(),
38117
38493
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38119,63 +38495,63 @@ var dashboardNavVisibilityRolesSchema = z63.object({
38119
38495
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38120
38496
  roles: dashboardNavVisibilityRolesSchema
38121
38497
  }).strip();
38122
- var dashboardNavigationConfigSchema = z63.object({
38498
+ var dashboardNavigationConfigSchema = z64.object({
38123
38499
  siteNav: dashboardNavVisibilitySchema.optional(),
38124
38500
  settingsNav: dashboardNavVisibilitySchema.optional()
38125
38501
  }).strip();
38126
- var dashboardConfigSchema = z63.object({
38127
- previewEditingEnabled: z63.boolean().optional(),
38502
+ var dashboardConfigSchema = z64.object({
38503
+ previewEditingEnabled: z64.boolean().optional(),
38128
38504
  navigation: dashboardNavigationConfigSchema.optional()
38129
38505
  }).strip();
38130
38506
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38131
38507
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38132
- var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38133
- var loaderFallbackScalarSchema = z63.union([
38134
- z63.string(),
38135
- z63.number(),
38136
- z63.boolean(),
38137
- z63.null()
38508
+ var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
38509
+ var loaderFallbackScalarSchema = z64.union([
38510
+ z64.string(),
38511
+ z64.number(),
38512
+ z64.boolean(),
38513
+ z64.null()
38138
38514
  ]);
38139
- var loaderParamBindingSchema = z63.object({
38140
- $bind: z63.object({
38141
- from: z63.string().min(1, "Binding path is required"),
38515
+ var loaderParamBindingSchema = z64.object({
38516
+ $bind: z64.object({
38517
+ from: z64.string().min(1, "Binding path is required"),
38142
38518
  fallback: loaderFallbackScalarSchema.optional()
38143
38519
  })
38144
38520
  });
38145
- var loaderParamValueSchema = z63.union([
38146
- z63.string(),
38147
- z63.number(),
38148
- z63.boolean(),
38521
+ var loaderParamValueSchema = z64.union([
38522
+ z64.string(),
38523
+ z64.number(),
38524
+ z64.boolean(),
38149
38525
  loaderParamBindingSchema
38150
38526
  ]);
38151
- var sdkConfigLoaderSchema = z63.object({
38527
+ var sdkConfigLoaderSchema = z64.object({
38152
38528
  endpoint: sdkLoaderEndpointSchema,
38153
- params: z63.record(z63.string(), loaderParamValueSchema),
38154
- mode: z63.enum(["server", "client"]).default("server")
38529
+ params: z64.record(z64.string(), loaderParamValueSchema),
38530
+ mode: z64.enum(["server", "client"]).default("server")
38155
38531
  });
38156
- var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38157
- var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38532
+ var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38533
+ var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38158
38534
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38159
38535
  }).transform((value) => value);
38160
- var sdkCustomBlockInputSchema = z63.object({
38536
+ var sdkCustomBlockInputSchema = z64.object({
38161
38537
  id: sdkCustomBlockIdSchema,
38162
- title: z63.string().min(1),
38163
- titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38164
- description: z63.string().optional(),
38538
+ title: z64.string().min(1),
38539
+ titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
38540
+ description: z64.string().optional(),
38165
38541
  category: blockCategoryEnum,
38166
- icon: z63.string().optional(),
38167
- tags: z63.array(z63.string()).optional(),
38542
+ icon: z64.string().optional(),
38543
+ tags: z64.array(z64.string()).optional(),
38168
38544
  fields: fieldDefinitionInputSchema.array().min(1),
38169
38545
  dataLoaders: sdkDataLoadersSchema,
38170
38546
  layout: NodeSchema.optional(),
38171
- variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38172
- defaultVariant: z63.string().min(1).optional(),
38173
- variantOptions: z63.record(
38174
- z63.string().min(1),
38175
- z63.object({
38176
- label: z63.string().min(1).optional(),
38177
- description: z63.string().min(1).optional(),
38178
- icon: z63.string().min(1).optional()
38547
+ variants: z64.record(z64.string().min(1), NodeSchema).optional(),
38548
+ defaultVariant: z64.string().min(1).optional(),
38549
+ variantOptions: z64.record(
38550
+ z64.string().min(1),
38551
+ z64.object({
38552
+ label: z64.string().min(1).optional(),
38553
+ description: z64.string().min(1).optional(),
38554
+ icon: z64.string().min(1).optional()
38179
38555
  })
38180
38556
  ).optional(),
38181
38557
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38186,7 +38562,7 @@ var sdkCustomBlockInputSchema = z63.object({
38186
38562
  const exists = data.fields.some((field) => field.id === source);
38187
38563
  if (!exists) {
38188
38564
  ctx.addIssue({
38189
- code: z63.ZodIssueCode.custom,
38565
+ code: z64.ZodIssueCode.custom,
38190
38566
  message: `titleSource must reference a valid field ID (got "${source}")`,
38191
38567
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38192
38568
  });
@@ -38195,7 +38571,7 @@ var sdkCustomBlockInputSchema = z63.object({
38195
38571
  }
38196
38572
  if (data.layout && data.variants) {
38197
38573
  ctx.addIssue({
38198
- code: z63.ZodIssueCode.custom,
38574
+ code: z64.ZodIssueCode.custom,
38199
38575
  message: "Custom block must define either `layout` or `variants`, not both",
38200
38576
  path: ["variants"]
38201
38577
  });
@@ -38204,14 +38580,14 @@ var sdkCustomBlockInputSchema = z63.object({
38204
38580
  const keys = Object.keys(data.variants);
38205
38581
  if (keys.length === 0) {
38206
38582
  ctx.addIssue({
38207
- code: z63.ZodIssueCode.custom,
38583
+ code: z64.ZodIssueCode.custom,
38208
38584
  message: "`variants` must contain at least one variant key",
38209
38585
  path: ["variants"]
38210
38586
  });
38211
38587
  }
38212
38588
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38213
38589
  ctx.addIssue({
38214
- code: z63.ZodIssueCode.custom,
38590
+ code: z64.ZodIssueCode.custom,
38215
38591
  message: "`defaultVariant` must be a key present in `variants`",
38216
38592
  path: ["defaultVariant"]
38217
38593
  });
@@ -38220,7 +38596,7 @@ var sdkCustomBlockInputSchema = z63.object({
38220
38596
  for (const key of Object.keys(data.variantOptions)) {
38221
38597
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38222
38598
  ctx.addIssue({
38223
- code: z63.ZodIssueCode.custom,
38599
+ code: z64.ZodIssueCode.custom,
38224
38600
  message: "`variantOptions` key must exist in `variants`",
38225
38601
  path: ["variantOptions", key]
38226
38602
  });
@@ -38229,78 +38605,78 @@ var sdkCustomBlockInputSchema = z63.object({
38229
38605
  }
38230
38606
  }
38231
38607
  });
38232
- var sdkBlockFieldExtensionInputSchema = z63.object({
38608
+ var sdkBlockFieldExtensionInputSchema = z64.object({
38233
38609
  fields: fieldDefinitionInputSchema.array().min(1)
38234
38610
  });
38235
- var sdkBlockFieldExtensionsInputSchema = z63.record(
38236
- z63.string().min(1),
38611
+ var sdkBlockFieldExtensionsInputSchema = z64.record(
38612
+ z64.string().min(1),
38237
38613
  sdkBlockFieldExtensionInputSchema
38238
38614
  );
38239
- var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38240
- var sdkThemeConfigSchema = z63.object({
38615
+ var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
38616
+ var sdkThemeConfigSchema = z64.object({
38241
38617
  palette: sdkThemePaletteSchema
38242
38618
  });
38243
- var sdkSectionBackgroundSchema = z63.object({
38244
- id: z63.string().min(1),
38245
- label: z63.string().min(1),
38246
- token: z63.string().min(1)
38619
+ var sdkSectionBackgroundSchema = z64.object({
38620
+ id: z64.string().min(1),
38621
+ label: z64.string().min(1),
38622
+ token: z64.string().min(1)
38247
38623
  });
38248
- var sdkSectionOptionsConfigSchema = z63.object({
38249
- backgroundColor: z63.boolean().optional(),
38250
- backgroundImage: z63.boolean().optional(),
38251
- backgroundGradient: z63.boolean().optional(),
38252
- spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38253
- textColor: z63.boolean().optional()
38624
+ var sdkSectionOptionsConfigSchema = z64.object({
38625
+ backgroundColor: z64.boolean().optional(),
38626
+ backgroundImage: z64.boolean().optional(),
38627
+ backgroundGradient: z64.boolean().optional(),
38628
+ spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
38629
+ textColor: z64.boolean().optional()
38254
38630
  });
38255
- var sdkContainerOptionsConfigSchema = z63.object({
38256
- maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38257
- alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38631
+ var sdkContainerOptionsConfigSchema = z64.object({
38632
+ maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
38633
+ alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38258
38634
  });
38259
- var sdkSiteStyleConfigSchema = z63.object({
38260
- sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38635
+ var sdkSiteStyleConfigSchema = z64.object({
38636
+ sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38261
38637
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38262
38638
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38263
38639
  });
38264
- var sdkSiteLayoutConfigSchema = z63.object({
38265
- footerBlocks: z63.array(
38266
- z63.object({
38267
- id: z63.string().min(1).optional(),
38268
- kind: z63.string().min(1),
38269
- content: z63.record(z63.string(), z63.unknown()).optional()
38640
+ var sdkSiteLayoutConfigSchema = z64.object({
38641
+ footerBlocks: z64.array(
38642
+ z64.object({
38643
+ id: z64.string().min(1).optional(),
38644
+ kind: z64.string().min(1),
38645
+ content: z64.record(z64.string(), z64.unknown()).optional()
38270
38646
  })
38271
38647
  ).optional()
38272
38648
  });
38273
- var sdkFieldSelectOptionSchema = z63.object({
38274
- value: z63.string(),
38275
- label: z63.string()
38649
+ var sdkFieldSelectOptionSchema = z64.object({
38650
+ value: z64.string(),
38651
+ label: z64.string()
38276
38652
  });
38277
- var sdkBlockFieldConfigSchema = z63.object({
38278
- options: z63.array(sdkFieldSelectOptionSchema).optional()
38653
+ var sdkBlockFieldConfigSchema = z64.object({
38654
+ options: z64.array(sdkFieldSelectOptionSchema).optional()
38279
38655
  });
38280
- var sdkBlockFieldOptionsMapSchema = z63.record(
38281
- z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38656
+ var sdkBlockFieldOptionsMapSchema = z64.record(
38657
+ z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38282
38658
  message: "Block ID must be 'block.*' or 'custom.*' format"
38283
38659
  }),
38284
- z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38660
+ z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38285
38661
  ).optional();
38286
- var sdkContentTypeTemplateConfigSchema = z63.object({
38287
- blocks: z63.array(z63.unknown())
38662
+ var sdkContentTypeTemplateConfigSchema = z64.object({
38663
+ blocks: z64.array(z64.unknown())
38288
38664
  }).passthrough();
38289
- var sdkContentTypeOrderingConfigSchema = z63.object({
38290
- mode: z63.enum(["default", "manual"]).optional()
38665
+ var sdkContentTypeOrderingConfigSchema = z64.object({
38666
+ mode: z64.enum(["default", "manual"]).optional()
38291
38667
  }).optional();
38292
- var sdkContentTypeConfigSchema = z63.object({
38293
- key: z63.string().min(1),
38294
- fields: z63.array(z63.unknown()),
38668
+ var sdkContentTypeConfigSchema = z64.object({
38669
+ key: z64.string().min(1),
38670
+ fields: z64.array(z64.unknown()),
38295
38671
  ordering: sdkContentTypeOrderingConfigSchema,
38296
38672
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38297
38673
  }).passthrough();
38298
- var sdkContentConfigSchema = z63.object({
38299
- contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38300
- pages: z63.array(z63.unknown()).optional(),
38301
- entries: z63.array(z63.unknown()).optional(),
38302
- navigationMenus: z63.array(z63.unknown()).optional(),
38303
- settings: z63.unknown().optional()
38674
+ var sdkContentConfigSchema = z64.object({
38675
+ contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
38676
+ pages: z64.array(z64.unknown()).optional(),
38677
+ entries: z64.array(z64.unknown()).optional(),
38678
+ navigationMenus: z64.array(z64.unknown()).optional(),
38679
+ settings: z64.unknown().optional()
38304
38680
  }).passthrough();
38305
38681
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38306
38682
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38315,62 +38691,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38315
38691
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38316
38692
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38317
38693
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38318
- var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38694
+ var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38319
38695
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38320
38696
  });
38321
- var sdkWorkflowEndpointSchema = z63.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 "/"' });
38322
- var sdkWorkflowManualTriggerSchema = z63.object({
38323
- type: z63.literal("manual")
38697
+ var sdkWorkflowEndpointSchema = z64.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38698
+ var sdkWorkflowManualTriggerSchema = z64.object({
38699
+ type: z64.literal("manual")
38324
38700
  }).strict();
38325
- var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38701
+ var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38326
38702
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38327
38703
  });
38328
- var sdkWorkflowFieldChangedConditionSchema = z63.object({
38704
+ var sdkWorkflowFieldChangedConditionSchema = z64.object({
38329
38705
  field: sdkWorkflowTriggerFieldSchema,
38330
- changed: z63.literal(true)
38706
+ changed: z64.literal(true)
38331
38707
  }).strict();
38332
- var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38708
+ var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38333
38709
  field: sdkWorkflowTriggerFieldSchema,
38334
- isEmpty: z63.boolean()
38710
+ isEmpty: z64.boolean()
38335
38711
  }).strict();
38336
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38337
- type: z63.literal("entry.draft.updated"),
38338
- when: z63.array(
38339
- z63.union([
38712
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
38713
+ type: z64.literal("entry.draft.updated"),
38714
+ when: z64.array(
38715
+ z64.union([
38340
38716
  sdkWorkflowFieldChangedConditionSchema,
38341
38717
  sdkWorkflowFieldEmptyConditionSchema
38342
38718
  ])
38343
38719
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38344
38720
  }).strict();
38345
- var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38721
+ var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38346
38722
  sdkWorkflowManualTriggerSchema,
38347
38723
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38348
38724
  ]);
38349
- var sdkWorkflowConfirmationSchema = z63.object({
38350
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38351
- body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38725
+ var sdkWorkflowConfirmationSchema = z64.object({
38726
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38727
+ body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38352
38728
  }).strict();
38353
- var sdkWorkflowConfigSchema = z63.object({
38729
+ var sdkWorkflowConfigSchema = z64.object({
38354
38730
  id: sdkWorkflowIdSchema,
38355
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38356
- description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38357
- contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38731
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38732
+ description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38733
+ contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38358
38734
  endpoint: sdkWorkflowEndpointSchema,
38359
- triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38735
+ triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38360
38736
  confirmation: sdkWorkflowConfirmationSchema.optional()
38361
38737
  }).strict();
38362
- var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38738
+ var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38363
38739
  const ids = workflows.map((workflow) => workflow.id);
38364
38740
  return ids.length === new Set(ids).size;
38365
38741
  }, { message: "Workflow IDs must be unique" }).optional();
38366
- var riverbankSiteConfigInputSchema = z63.object({
38367
- siteId: z63.string().uuid(),
38368
- previewUrl: z63.string().url().optional(),
38369
- liveUrl: z63.string().url().optional(),
38742
+ var riverbankSiteConfigInputSchema = z64.object({
38743
+ siteId: z64.string().uuid(),
38744
+ previewUrl: z64.string().url().optional(),
38745
+ liveUrl: z64.string().url().optional(),
38370
38746
  theme: sdkThemeConfigSchema.optional(),
38371
38747
  styles: sdkSiteStyleConfigSchema.optional(),
38372
38748
  layout: sdkSiteLayoutConfigSchema.optional(),
38373
- customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38749
+ customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38374
38750
  const ids = blocks.map((b) => b.id);
38375
38751
  return ids.length === new Set(ids).size;
38376
38752
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38378,50 +38754,51 @@ var riverbankSiteConfigInputSchema = z63.object({
38378
38754
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38379
38755
  workflows: sdkWorkflowsSchema,
38380
38756
  content: sdkContentConfigSchema.optional(),
38381
- contentDir: z63.string().optional(),
38382
- sync: z63.object({
38383
- existingEntries: z63.enum(["skip", "update"]).optional()
38757
+ contentDir: z64.string().optional(),
38758
+ sync: z64.object({
38759
+ existingEntries: z64.enum(["skip", "update"]).optional()
38384
38760
  }).optional(),
38385
- deploy: z63.object({
38386
- verifyCommand: z63.string().optional(),
38387
- prebuildOutput: z63.string().optional()
38761
+ deploy: z64.object({
38762
+ verifyCommand: z64.string().optional(),
38763
+ prebuildOutput: z64.string().optional()
38388
38764
  }).optional(),
38389
- themeSource: z63.enum(["local", "cms"]).optional(),
38390
- activeTheme: z63.string().optional(),
38391
- enablePortal: z63.boolean().optional(),
38765
+ themeSource: z64.enum(["local", "cms"]).optional(),
38766
+ activeTheme: z64.string().optional(),
38767
+ enablePortal: z64.boolean().optional(),
38392
38768
  dashboard: dashboardConfigSchema.optional()
38393
38769
  }).strict();
38394
- var pushSdkConfigBodySchema = z63.object({
38770
+ var pushSdkConfigBodySchema = z64.object({
38395
38771
  config: riverbankSiteConfigInputSchema,
38396
- forceContentTypes: z63.boolean().optional()
38772
+ forceContentTypes: z64.boolean().optional(),
38773
+ mode: z64.enum(["apply", "preview"]).optional()
38397
38774
  }).strict();
38398
38775
 
38399
38776
  // ../api/src/siteOnboarding.ts
38400
- import { z as z64 } from "zod";
38777
+ import { z as z65 } from "zod";
38401
38778
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38402
38779
  configure_appointments: {
38403
38780
  requirementId: "configure_appointments",
38404
38781
  reason: "launch_anyway"
38405
38782
  }
38406
38783
  };
38407
- var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38784
+ var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38408
38785
  "requirementId",
38409
38786
  [
38410
- z64.object({
38411
- requirementId: z64.literal("review_generated_site")
38787
+ z65.object({
38788
+ requirementId: z65.literal("review_generated_site")
38412
38789
  }),
38413
- z64.object({
38414
- requirementId: z64.literal(
38790
+ z65.object({
38791
+ requirementId: z65.literal(
38415
38792
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38416
38793
  ),
38417
- overrideReason: z64.literal(
38794
+ overrideReason: z65.literal(
38418
38795
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38419
38796
  )
38420
38797
  })
38421
38798
  ]
38422
38799
  );
38423
- var goLiveSiteRequestSchema = z64.object({
38424
- acceptExtraSiteCharge: z64.boolean().optional()
38800
+ var goLiveSiteRequestSchema = z65.object({
38801
+ acceptExtraSiteCharge: z65.boolean().optional()
38425
38802
  });
38426
38803
 
38427
38804
  // ../surfaces/src/index.ts
@@ -38540,7 +38917,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38540
38917
  ];
38541
38918
 
38542
38919
  // ../api/src/bookingVerticals.ts
38543
- import { z as z65 } from "zod";
38920
+ import { z as z66 } from "zod";
38544
38921
  var VERTICAL_IDS = [
38545
38922
  "yoga_wellness",
38546
38923
  "fitness_pt",
@@ -38705,39 +39082,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38705
39082
  }
38706
39083
  return [...issues];
38707
39084
  }
38708
- var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
39085
+ var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38709
39086
  const parsed = parseVerticalId(value);
38710
39087
  if (!parsed) {
38711
39088
  ctx.addIssue({
38712
- code: z65.ZodIssueCode.custom,
39089
+ code: z66.ZodIssueCode.custom,
38713
39090
  message: "Unknown booking vertical"
38714
39091
  });
38715
- return z65.NEVER;
39092
+ return z66.NEVER;
38716
39093
  }
38717
39094
  return parsed;
38718
39095
  });
38719
- var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
39096
+ var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38720
39097
  const parsed = parseVerticalPresetId(value);
38721
39098
  if (!parsed) {
38722
39099
  ctx.addIssue({
38723
- code: z65.ZodIssueCode.custom,
39100
+ code: z66.ZodIssueCode.custom,
38724
39101
  message: "Unknown booking preset"
38725
39102
  });
38726
- return z65.NEVER;
39103
+ return z66.NEVER;
38727
39104
  }
38728
39105
  return parsed;
38729
39106
  });
38730
- var BookingVerticalConfigSchema = z65.object({
39107
+ var BookingVerticalConfigSchema = z66.object({
38731
39108
  verticalId: VerticalIdSchema.nullable(),
38732
- selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
39109
+ selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38733
39110
  }).transform((value, ctx) => {
38734
39111
  const resolved = resolveSiteVerticalBookingConfig(value);
38735
39112
  if (resolved.kind === "invalid") {
38736
39113
  ctx.addIssue({
38737
- code: z65.ZodIssueCode.custom,
39114
+ code: z66.ZodIssueCode.custom,
38738
39115
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38739
39116
  });
38740
- return z65.NEVER;
39117
+ return z66.NEVER;
38741
39118
  }
38742
39119
  return resolved.config;
38743
39120
  });
@@ -38764,51 +39141,51 @@ function isRecord8(value) {
38764
39141
  }
38765
39142
 
38766
39143
  // ../api/src/appointmentSetup.ts
38767
- import { z as z66 } from "zod";
39144
+ import { z as z67 } from "zod";
38768
39145
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38769
- var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
38770
- z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
38771
- z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
39146
+ var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
39147
+ z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
39148
+ z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38772
39149
  ]);
38773
- var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
38774
- z66.object({ kind: z66.literal("none") }),
38775
- z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
38776
- z66.object({
38777
- kind: z66.literal("create"),
38778
- draftId: z66.string().min(1),
38779
- title: z66.string().trim().min(1),
38780
- description: z66.string().nullable(),
38781
- timezone: z66.string().trim().min(1).nullable(),
38782
- addressJson: z66.record(z66.string(), z66.unknown()),
38783
- locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
39150
+ var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
39151
+ z67.object({ kind: z67.literal("none") }),
39152
+ z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
39153
+ z67.object({
39154
+ kind: z67.literal("create"),
39155
+ draftId: z67.string().min(1),
39156
+ title: z67.string().trim().min(1),
39157
+ description: z67.string().nullable(),
39158
+ timezone: z67.string().trim().min(1).nullable(),
39159
+ addressJson: z67.record(z67.string(), z67.unknown()),
39160
+ locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38784
39161
  })
38785
39162
  ]);
38786
- var appointmentSetupPaymentDraftSchema = z66.object({
38787
- priceType: z66.union([z66.literal("free"), z66.literal("paid")])
38788
- });
38789
- var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
38790
- z66.object({ kind: z66.literal("all_practitioners") }),
38791
- z66.object({
38792
- kind: z66.literal("selected_practitioners"),
38793
- resourceRefs: z66.array(appointmentSetupRefSchema)
39163
+ var appointmentSetupPaymentDraftSchema = z67.object({
39164
+ priceType: z67.union([z67.literal("free"), z67.literal("paid")])
39165
+ });
39166
+ var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
39167
+ z67.object({ kind: z67.literal("all_practitioners") }),
39168
+ z67.object({
39169
+ kind: z67.literal("selected_practitioners"),
39170
+ resourceRefs: z67.array(appointmentSetupRefSchema)
38794
39171
  })
38795
39172
  ]);
38796
- var appointmentSetupServiceDraftSchema = z66.object({
39173
+ var appointmentSetupServiceDraftSchema = z67.object({
38797
39174
  ref: appointmentSetupRefSchema,
38798
- title: z66.string().trim().min(1),
38799
- description: z66.string().nullable(),
38800
- durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38801
- prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38802
- cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38803
- priceAmount: z66.number().int().nonnegative().nullable(),
38804
- isActive: z66.boolean(),
38805
- locationType: z66.union([
38806
- z66.literal("virtual"),
38807
- z66.literal("in_person"),
38808
- z66.literal("hybrid")
39175
+ title: z67.string().trim().min(1),
39176
+ description: z67.string().nullable(),
39177
+ durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39178
+ prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39179
+ cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39180
+ priceAmount: z67.number().int().nonnegative().nullable(),
39181
+ isActive: z67.boolean(),
39182
+ locationType: z67.union([
39183
+ z67.literal("virtual"),
39184
+ z67.literal("in_person"),
39185
+ z67.literal("hybrid")
38809
39186
  ]),
38810
39187
  venue: appointmentSetupVenueChoiceSchema,
38811
- timezone: z66.string().trim().min(1).nullable(),
39188
+ timezone: z67.string().trim().min(1).nullable(),
38812
39189
  payment: appointmentSetupPaymentDraftSchema,
38813
39190
  assignment: appointmentSetupServiceAssignmentDraftSchema
38814
39191
  }).superRefine((service, ctx) => {
@@ -38827,49 +39204,49 @@ var appointmentSetupServiceDraftSchema = z66.object({
38827
39204
  });
38828
39205
  }
38829
39206
  });
38830
- var appointmentSetupPractitionerDraftSchema = z66.object({
39207
+ var appointmentSetupPractitionerDraftSchema = z67.object({
38831
39208
  ref: appointmentSetupRefSchema,
38832
- displayName: z66.string().trim().min(1),
38833
- bio: z66.string().nullable(),
38834
- timezone: z66.string().trim().min(1),
38835
- colorHex: z66.string().nullable()
38836
- });
38837
- var appointmentSetupWeeklyWindowDraftSchema = z66.object({
38838
- weekday: z66.number().int().min(0).max(6),
38839
- startTime: z66.string(),
38840
- endTime: z66.string()
38841
- });
38842
- var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
38843
- z66.object({ kind: z66.literal("automatic_spacing") }),
38844
- z66.object({
38845
- kind: z66.literal("regular_interval"),
38846
- intervalMinutes: z66.union([
38847
- z66.literal(10),
38848
- z66.literal(15),
38849
- z66.literal(20),
38850
- z66.literal(30),
38851
- z66.literal(45),
38852
- z66.literal(60)
39209
+ displayName: z67.string().trim().min(1),
39210
+ bio: z67.string().nullable(),
39211
+ timezone: z67.string().trim().min(1),
39212
+ colorHex: z67.string().nullable()
39213
+ });
39214
+ var appointmentSetupWeeklyWindowDraftSchema = z67.object({
39215
+ weekday: z67.number().int().min(0).max(6),
39216
+ startTime: z67.string(),
39217
+ endTime: z67.string()
39218
+ });
39219
+ var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
39220
+ z67.object({ kind: z67.literal("automatic_spacing") }),
39221
+ z67.object({
39222
+ kind: z67.literal("regular_interval"),
39223
+ intervalMinutes: z67.union([
39224
+ z67.literal(10),
39225
+ z67.literal(15),
39226
+ z67.literal(20),
39227
+ z67.literal(30),
39228
+ z67.literal(45),
39229
+ z67.literal(60)
38853
39230
  ])
38854
39231
  })
38855
39232
  ]);
38856
- var appointmentSetupAvailabilityDraftSchema = z66.object({
38857
- kind: z66.literal("weekly_windows"),
39233
+ var appointmentSetupAvailabilityDraftSchema = z67.object({
39234
+ kind: z67.literal("weekly_windows"),
38858
39235
  resourceRef: appointmentSetupRefSchema,
38859
39236
  serviceRef: appointmentSetupRefSchema.nullable(),
38860
- windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
39237
+ windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38861
39238
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38862
39239
  });
38863
39240
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38864
39241
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38865
- var appointmentSetupBookingNoticeSchema = z66.object({
38866
- minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38867
- maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38868
- });
38869
- var applyAppointmentSetupRequestSchema = z66.object({
38870
- services: z66.array(appointmentSetupServiceDraftSchema),
38871
- practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
38872
- availability: z66.array(appointmentSetupAvailabilityDraftSchema),
39242
+ var appointmentSetupBookingNoticeSchema = z67.object({
39243
+ minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39244
+ maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39245
+ });
39246
+ var applyAppointmentSetupRequestSchema = z67.object({
39247
+ services: z67.array(appointmentSetupServiceDraftSchema),
39248
+ practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
39249
+ availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38873
39250
  bookingNotice: appointmentSetupBookingNoticeSchema
38874
39251
  });
38875
39252
 
@@ -38902,24 +39279,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38902
39279
  ];
38903
39280
 
38904
39281
  // ../api/src/siteBanner.ts
38905
- import { z as z67 } from "zod";
39282
+ import { z as z68 } from "zod";
38906
39283
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38907
39284
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38908
39285
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38909
39286
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38910
- var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
38911
- var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
38912
- var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
38913
- var siteBannerCtaSchema = z67.object({
38914
- label: z67.string().trim().min(1),
39287
+ var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
39288
+ var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
39289
+ var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
39290
+ var siteBannerCtaSchema = z68.object({
39291
+ label: z68.string().trim().min(1),
38915
39292
  link: linkPayloadSchema
38916
39293
  });
38917
- var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38918
- z67.object({
38919
- enabled: z67.literal(false)
39294
+ var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
39295
+ z68.object({
39296
+ enabled: z68.literal(false)
38920
39297
  }),
38921
- z67.object({
38922
- enabled: z67.literal(true),
39298
+ z68.object({
39299
+ enabled: z68.literal(true),
38923
39300
  scope: siteBannerScopeSchema,
38924
39301
  tone: siteBannerToneSchema,
38925
39302
  body: siteBannerBodySchema,
@@ -38933,7 +39310,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38933
39310
  const analysis = analyzeSiteBannerBody(value.body);
38934
39311
  for (const issue of analysis.issues) {
38935
39312
  ctx.addIssue({
38936
- code: z67.ZodIssueCode.custom,
39313
+ code: z68.ZodIssueCode.custom,
38937
39314
  path: ["body"],
38938
39315
  message: siteBannerBodyIssueMessage(issue)
38939
39316
  });
@@ -39240,75 +39617,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39240
39617
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39241
39618
 
39242
39619
  // ../api/src/aiPlayground.ts
39243
- import { z as z68 } from "zod";
39244
- var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39620
+ import { z as z69 } from "zod";
39621
+ var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39245
39622
  // Standard RFC-6902 operations
39246
- z68.object({
39247
- op: z68.literal("add"),
39248
- path: z68.string(),
39249
- value: z68.unknown()
39623
+ z69.object({
39624
+ op: z69.literal("add"),
39625
+ path: z69.string(),
39626
+ value: z69.unknown()
39250
39627
  }),
39251
- z68.object({
39252
- op: z68.literal("remove"),
39253
- path: z68.string()
39628
+ z69.object({
39629
+ op: z69.literal("remove"),
39630
+ path: z69.string()
39254
39631
  }),
39255
- z68.object({
39256
- op: z68.literal("replace"),
39257
- path: z68.string(),
39258
- value: z68.unknown()
39632
+ z69.object({
39633
+ op: z69.literal("replace"),
39634
+ path: z69.string(),
39635
+ value: z69.unknown()
39259
39636
  }),
39260
- z68.object({
39261
- op: z68.literal("move"),
39262
- from: z68.string(),
39263
- path: z68.string()
39637
+ z69.object({
39638
+ op: z69.literal("move"),
39639
+ from: z69.string(),
39640
+ path: z69.string()
39264
39641
  }),
39265
- z68.object({
39266
- op: z68.literal("copy"),
39267
- from: z68.string(),
39268
- path: z68.string()
39642
+ z69.object({
39643
+ op: z69.literal("copy"),
39644
+ from: z69.string(),
39645
+ path: z69.string()
39269
39646
  }),
39270
39647
  // Block-level operations (Phase 2)
39271
- z68.object({
39272
- op: z68.literal("add_block"),
39273
- blockKind: z68.string(),
39274
- afterBlockId: z68.string().nullable(),
39275
- content: z68.record(z68.string(), z68.unknown()),
39276
- rationale: z68.string()
39648
+ z69.object({
39649
+ op: z69.literal("add_block"),
39650
+ blockKind: z69.string(),
39651
+ afterBlockId: z69.string().nullable(),
39652
+ content: z69.record(z69.string(), z69.unknown()),
39653
+ rationale: z69.string()
39277
39654
  }),
39278
- z68.object({
39279
- op: z68.literal("delete_block"),
39280
- blockId: z68.string(),
39281
- rationale: z68.string()
39655
+ z69.object({
39656
+ op: z69.literal("delete_block"),
39657
+ blockId: z69.string(),
39658
+ rationale: z69.string()
39282
39659
  }),
39283
- z68.object({
39284
- op: z68.literal("reorder_block"),
39285
- blockId: z68.string(),
39286
- afterBlockId: z68.string().nullable(),
39287
- rationale: z68.string()
39660
+ z69.object({
39661
+ op: z69.literal("reorder_block"),
39662
+ blockId: z69.string(),
39663
+ afterBlockId: z69.string().nullable(),
39664
+ rationale: z69.string()
39288
39665
  })
39289
39666
  ]);
39290
- var PlaygroundProposeRequest = z68.object({
39291
- request: z68.string().min(1).max(2e3)
39667
+ var PlaygroundProposeRequest = z69.object({
39668
+ request: z69.string().min(1).max(2e3)
39292
39669
  });
39293
- var MultiPagePatchEnvelope = z68.object({
39294
- pageId: z68.string(),
39295
- blockId: z68.string().optional(),
39670
+ var MultiPagePatchEnvelope = z69.object({
39671
+ pageId: z69.string(),
39672
+ blockId: z69.string().optional(),
39296
39673
  // Not present for page-level ops
39297
- blockKind: z68.string().optional(),
39298
- blockPurpose: z68.string().optional().nullable(),
39299
- ops: z68.array(Rfc6902PatchOp),
39300
- rationale: z68.string(),
39301
- currentContent: z68.record(z68.string(), z68.unknown()).optional()
39674
+ blockKind: z69.string().optional(),
39675
+ blockPurpose: z69.string().optional().nullable(),
39676
+ ops: z69.array(Rfc6902PatchOp),
39677
+ rationale: z69.string(),
39678
+ currentContent: z69.record(z69.string(), z69.unknown()).optional()
39302
39679
  });
39303
- var MultiPageUpdateResponse = z68.object({
39304
- patches: z68.array(MultiPagePatchEnvelope),
39305
- assistantMessage: z68.string(),
39306
- pagesModified: z68.number(),
39307
- toolCallsUsed: z68.number()
39680
+ var MultiPageUpdateResponse = z69.object({
39681
+ patches: z69.array(MultiPagePatchEnvelope),
39682
+ assistantMessage: z69.string(),
39683
+ pagesModified: z69.number(),
39684
+ toolCallsUsed: z69.number()
39308
39685
  });
39309
39686
 
39310
39687
  // src/config/content-validation.ts
39311
- import { z as z69 } from "zod";
39688
+ import { z as z70 } from "zod";
39312
39689
 
39313
39690
  // src/types/block-kinds.ts
39314
39691
  var SYSTEM_BLOCK_KINDS = [
@@ -39338,6 +39715,7 @@ var SYSTEM_BLOCK_KINDS = [
39338
39715
  "block.form",
39339
39716
  "block.contact-newsletter",
39340
39717
  "block.appointment-booking",
39718
+ "block.weekly-slot-availability",
39341
39719
  "block.event-registration",
39342
39720
  "block.event-details",
39343
39721
  "block.course-registration",
@@ -39451,7 +39829,7 @@ function isUnsupportedDynamicSegment(segment) {
39451
39829
  return segment.startsWith(":") || segment.includes("{") || segment.includes("}");
39452
39830
  }
39453
39831
 
39454
- // src/contracts/bindings.ts
39832
+ // ../field-primitives/src/bindings/index.ts
39455
39833
  var BINDING_TRANSFORMS = {
39456
39834
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
39457
39835
  DATE_FORMAT_SHORT: "date.formatShort",
@@ -39459,42 +39837,45 @@ var BINDING_TRANSFORMS = {
39459
39837
  TEXT_INLINE_TEXT: "text.inlineText"
39460
39838
  };
39461
39839
  var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
39462
- var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES.join(", ");
39840
+
39841
+ // src/contracts/bindings.ts
39842
+ var BINDING_TRANSFORM_VALUES2 = BINDING_TRANSFORM_VALUES;
39843
+ var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES2.join(", ");
39463
39844
  function describeInvalidBindingTransform(transform) {
39464
39845
  return `Transform "${transform}" is not valid. Allowed: ${BINDING_TRANSFORM_LIST}`;
39465
39846
  }
39466
39847
 
39467
39848
  // src/config/content-validation.ts
39468
- var jsonDataSchema = z69.record(z69.string(), z69.any());
39469
- var contentTypeKeySchema = z69.string().min(1).regex(
39849
+ var jsonDataSchema = z70.record(z70.string(), z70.any());
39850
+ var contentTypeKeySchema = z70.string().min(1).regex(
39470
39851
  /^[a-z][a-z0-9-]*$/,
39471
39852
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39472
39853
  );
39473
- var templateConfigSchemaForward = z69.object({
39474
- blocks: z69.array(
39475
- z69.object({
39476
- identifier: z69.string().min(1),
39477
- kind: z69.string(),
39478
- scope: z69.enum(["entry", "template"]),
39479
- bindings: z69.record(z69.string(), z69.any()).optional(),
39480
- content: z69.record(z69.string(), z69.any()).optional()
39854
+ var templateConfigSchemaForward = z70.object({
39855
+ blocks: z70.array(
39856
+ z70.object({
39857
+ identifier: z70.string().min(1),
39858
+ kind: z70.string(),
39859
+ scope: z70.enum(["entry", "template"]),
39860
+ bindings: z70.record(z70.string(), z70.any()).optional(),
39861
+ content: z70.record(z70.string(), z70.any()).optional()
39481
39862
  })
39482
39863
  )
39483
39864
  }).optional();
39484
- var contentTypeOrderingSchema = z69.object({
39485
- mode: z69.enum(["default", "manual"]).optional()
39865
+ var contentTypeOrderingSchema = z70.object({
39866
+ mode: z70.enum(["default", "manual"]).optional()
39486
39867
  }).optional();
39487
- var contentTypeConfigSchema = z69.object({
39868
+ var contentTypeConfigSchema = z70.object({
39488
39869
  key: contentTypeKeySchema,
39489
- name: z69.string().min(1),
39490
- description: z69.string().optional(),
39491
- hasPages: z69.boolean(),
39492
- routePattern: z69.string().optional(),
39870
+ name: z70.string().min(1),
39871
+ description: z70.string().optional(),
39872
+ hasPages: z70.boolean(),
39873
+ routePattern: z70.string().optional(),
39493
39874
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39494
- fields: z69.array(z69.any()).min(1, "At least one field is required"),
39495
- titleField: z69.string().optional(),
39875
+ fields: z70.array(z70.any()).min(1, "At least one field is required"),
39876
+ titleField: z70.string().optional(),
39496
39877
  ordering: contentTypeOrderingSchema,
39497
- isSingleton: z69.boolean().optional().default(false),
39878
+ isSingleton: z70.boolean().optional().default(false),
39498
39879
  template: templateConfigSchemaForward
39499
39880
  }).refine(
39500
39881
  (data) => {
@@ -39516,7 +39897,7 @@ var contentTypeConfigSchema = z69.object({
39516
39897
  }
39517
39898
  if (!data.routePattern) {
39518
39899
  ctx.addIssue({
39519
- code: z69.ZodIssueCode.custom,
39900
+ code: z70.ZodIssueCode.custom,
39520
39901
  path: ["routePattern"],
39521
39902
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39522
39903
  });
@@ -39525,7 +39906,7 @@ var contentTypeConfigSchema = z69.object({
39525
39906
  const parseResult = safeParseRouteTemplate(data.routePattern);
39526
39907
  if (!parseResult.success) {
39527
39908
  ctx.addIssue({
39528
- code: z69.ZodIssueCode.custom,
39909
+ code: z70.ZodIssueCode.custom,
39529
39910
  path: ["routePattern"],
39530
39911
  message: describeRouteTemplateParseError(parseResult.error)
39531
39912
  });
@@ -39533,44 +39914,44 @@ var contentTypeConfigSchema = z69.object({
39533
39914
  }
39534
39915
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39535
39916
  ctx.addIssue({
39536
- code: z69.ZodIssueCode.custom,
39917
+ code: z70.ZodIssueCode.custom,
39537
39918
  path: ["routePattern"],
39538
39919
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39539
39920
  });
39540
39921
  }
39541
39922
  });
39542
- var fieldBindingSchema = z69.object({
39543
- source: z69.literal("field"),
39544
- path: z69.string().min(1, "Field path is required")
39923
+ var fieldBindingSchema = z70.object({
39924
+ source: z70.literal("field"),
39925
+ path: z70.string().min(1, "Field path is required")
39545
39926
  });
39546
- var metaBindingSchema = z69.object({
39547
- source: z69.literal("meta"),
39548
- path: z69.enum(TEMPLATE_BINDING_META_PATHS, {
39927
+ var metaBindingSchema = z70.object({
39928
+ source: z70.literal("meta"),
39929
+ path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39549
39930
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39550
39931
  })
39551
39932
  });
39552
- var literalBindingSchema = z69.object({
39553
- source: z69.literal("literal"),
39554
- value: z69.unknown()
39933
+ var literalBindingSchema = z70.object({
39934
+ source: z70.literal("literal"),
39935
+ value: z70.unknown()
39555
39936
  });
39556
- var transformBindingSchema = z69.object({
39557
- source: z69.literal("transform"),
39558
- path: z69.string().min(1, "Transform path is required"),
39559
- transform: z69.enum(BINDING_TRANSFORM_VALUES, {
39937
+ var transformBindingSchema = z70.object({
39938
+ source: z70.literal("transform"),
39939
+ path: z70.string().min(1, "Transform path is required"),
39940
+ transform: z70.enum(BINDING_TRANSFORM_VALUES2, {
39560
39941
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39561
39942
  })
39562
39943
  });
39563
- var baseBindingSchema = z69.discriminatedUnion("source", [
39944
+ var baseBindingSchema = z70.discriminatedUnion("source", [
39564
39945
  fieldBindingSchema,
39565
39946
  metaBindingSchema,
39566
39947
  literalBindingSchema,
39567
39948
  transformBindingSchema
39568
39949
  ]);
39569
- var fallbackBindingSchema = z69.object({
39570
- source: z69.literal("fallback"),
39571
- sources: z69.array(z69.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39950
+ var fallbackBindingSchema = z70.object({
39951
+ source: z70.literal("fallback"),
39952
+ sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39572
39953
  });
39573
- var bindingSourceSchema = z69.union([
39954
+ var bindingSourceSchema = z70.union([
39574
39955
  baseBindingSchema,
39575
39956
  fallbackBindingSchema
39576
39957
  ]);
@@ -39584,12 +39965,12 @@ function isValidBlockKind(kind) {
39584
39965
  return false;
39585
39966
  }
39586
39967
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39587
- var blockKindSchema = z69.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39588
- var templateBlockConfigSchema = z69.object({
39589
- identifier: z69.string().min(1, "Block identifier is required"),
39968
+ var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39969
+ var templateBlockConfigSchema = z70.object({
39970
+ identifier: z70.string().min(1, "Block identifier is required"),
39590
39971
  kind: blockKindSchema,
39591
- scope: z69.enum(["entry", "template"]),
39592
- bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
39972
+ scope: z70.enum(["entry", "template"]),
39973
+ bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39593
39974
  content: jsonDataSchema.optional()
39594
39975
  }).refine(
39595
39976
  (data) => {
@@ -39608,8 +39989,8 @@ var templateBlockConfigSchema = z69.object({
39608
39989
  },
39609
39990
  { message: "Template-scoped blocks should define static content, not bindings" }
39610
39991
  );
39611
- var templateConfigSchema = z69.object({
39612
- blocks: z69.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39992
+ var templateConfigSchema = z70.object({
39993
+ blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39613
39994
  }).refine(
39614
39995
  (data) => {
39615
39996
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39618,77 +39999,77 @@ var templateConfigSchema = z69.object({
39618
39999
  },
39619
40000
  { message: "Template block identifiers must be unique" }
39620
40001
  );
39621
- var blockConfigSchema = z69.object({
40002
+ var blockConfigSchema = z70.object({
39622
40003
  kind: blockKindSchema,
39623
40004
  content: jsonDataSchema,
39624
- orderIndex: z69.number().optional()
39625
- });
39626
- var pageConfigSchema = z69.object({
39627
- identifier: z69.string().min(1, "Identifier is required"),
39628
- title: z69.string().min(1, "Title is required"),
39629
- path: z69.string().regex(/^\//, "Path must start with /"),
39630
- purpose: z69.string().default("content"),
39631
- blocks: z69.array(blockConfigSchema).optional(),
39632
- status: z69.enum(["draft", "published"]).default("draft"),
39633
- metaTitle: z69.string().optional(),
39634
- metaDescription: z69.string().optional()
39635
- });
39636
- var entryConfigSchema = z69.object({
39637
- identifier: z69.string().min(1, "Identifier is required"),
39638
- contentType: z69.string().min(1, "Content type is required"),
40005
+ orderIndex: z70.number().optional()
40006
+ });
40007
+ var pageConfigSchema = z70.object({
40008
+ identifier: z70.string().min(1, "Identifier is required"),
40009
+ title: z70.string().min(1, "Title is required"),
40010
+ path: z70.string().regex(/^\//, "Path must start with /"),
40011
+ purpose: z70.string().default("content"),
40012
+ blocks: z70.array(blockConfigSchema).optional(),
40013
+ status: z70.enum(["draft", "published"]).default("draft"),
40014
+ metaTitle: z70.string().optional(),
40015
+ metaDescription: z70.string().optional()
40016
+ });
40017
+ var entryConfigSchema = z70.object({
40018
+ identifier: z70.string().min(1, "Identifier is required"),
40019
+ contentType: z70.string().min(1, "Content type is required"),
39639
40020
  data: jsonDataSchema,
39640
- status: z69.enum(["draft", "published"]).default("draft"),
39641
- slug: z69.string().optional(),
39642
- summary: z69.string().optional(),
40021
+ status: z70.enum(["draft", "published"]).default("draft"),
40022
+ slug: z70.string().optional(),
40023
+ summary: z70.string().optional(),
39643
40024
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39644
- title: z69.any().optional().refine((value) => value === void 0, {
40025
+ title: z70.any().optional().refine((value) => value === void 0, {
39645
40026
  message: "Entry titles are now derived from entry data. Remove `title` and move it into `data` (e.g. `data.title`, or your configured `titleField`). Run `riverbankcms migrate entries` for guided migration."
39646
40027
  }),
39647
- metaTitle: z69.string().optional(),
39648
- metaDescription: z69.string().optional()
40028
+ metaTitle: z70.string().optional(),
40029
+ metaDescription: z70.string().optional()
39649
40030
  });
39650
- var dropdownLinkSchema = z69.object({
39651
- kind: z69.literal("dropdown")
40031
+ var dropdownLinkSchema = z70.object({
40032
+ kind: z70.literal("dropdown")
39652
40033
  });
39653
- var navigationLinkSchema = z69.discriminatedUnion("kind", [
40034
+ var navigationLinkSchema = z70.discriminatedUnion("kind", [
39654
40035
  ...navigationLinkInputSchemaOptions,
39655
40036
  dropdownLinkSchema
39656
40037
  ]);
39657
- var baseNavigationItemSchema = z69.object({
39658
- label: z69.string().min(1, "Label is required"),
40038
+ var baseNavigationItemSchema = z70.object({
40039
+ label: z70.string().min(1, "Label is required"),
39659
40040
  link: navigationLinkSchema,
39660
- isCta: z69.boolean().optional()
40041
+ isCta: z70.boolean().optional()
39661
40042
  });
39662
40043
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39663
- children: z69.lazy(() => z69.array(navigationItemConfigSchema)).optional()
39664
- });
39665
- var navigationMenuConfigSchema = z69.object({
39666
- identifier: z69.string().min(1, "Identifier is required"),
39667
- name: z69.string().min(1, "Name is required"),
39668
- isPrimary: z69.boolean().optional(),
39669
- isFooter: z69.boolean().optional(),
39670
- items: z69.array(navigationItemConfigSchema)
40044
+ children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
40045
+ });
40046
+ var navigationMenuConfigSchema = z70.object({
40047
+ identifier: z70.string().min(1, "Identifier is required"),
40048
+ name: z70.string().min(1, "Name is required"),
40049
+ isPrimary: z70.boolean().optional(),
40050
+ isFooter: z70.boolean().optional(),
40051
+ items: z70.array(navigationItemConfigSchema)
39671
40052
  }).superRefine((menu, ctx) => {
39672
40053
  const portalStats = collectPortalLinkStats(
39673
40054
  menu.items
39674
40055
  );
39675
40056
  if (portalStats.count > 1) {
39676
40057
  ctx.addIssue({
39677
- code: z69.ZodIssueCode.custom,
40058
+ code: z70.ZodIssueCode.custom,
39678
40059
  message: "Only one portal link is allowed per navigation menu",
39679
40060
  path: ["items"]
39680
40061
  });
39681
40062
  }
39682
40063
  if (portalStats.nestedLabels.length > 0) {
39683
40064
  ctx.addIssue({
39684
- code: z69.ZodIssueCode.custom,
40065
+ code: z70.ZodIssueCode.custom,
39685
40066
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39686
40067
  path: ["items"]
39687
40068
  });
39688
40069
  }
39689
40070
  if (portalStats.withChildrenLabels.length > 0) {
39690
40071
  ctx.addIssue({
39691
- code: z69.ZodIssueCode.custom,
40072
+ code: z70.ZodIssueCode.custom,
39692
40073
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39693
40074
  path: ["items"]
39694
40075
  });
@@ -39698,44 +40079,44 @@ var navigationMenuConfigSchema = z69.object({
39698
40079
  );
39699
40080
  if (cartStats.nestedLabels.length > 0) {
39700
40081
  ctx.addIssue({
39701
- code: z69.ZodIssueCode.custom,
40082
+ code: z70.ZodIssueCode.custom,
39702
40083
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39703
40084
  path: ["items"]
39704
40085
  });
39705
40086
  }
39706
40087
  if (cartStats.withChildrenLabels.length > 0) {
39707
40088
  ctx.addIssue({
39708
- code: z69.ZodIssueCode.custom,
40089
+ code: z70.ZodIssueCode.custom,
39709
40090
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39710
40091
  path: ["items"]
39711
40092
  });
39712
40093
  }
39713
40094
  if (cartStats.ctaLabels.length > 0) {
39714
40095
  ctx.addIssue({
39715
- code: z69.ZodIssueCode.custom,
40096
+ code: z70.ZodIssueCode.custom,
39716
40097
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39717
40098
  path: ["items"]
39718
40099
  });
39719
40100
  }
39720
40101
  if (cartStats.missingVisibleTextLabels.length > 0) {
39721
40102
  ctx.addIssue({
39722
- code: z69.ZodIssueCode.custom,
40103
+ code: z70.ZodIssueCode.custom,
39723
40104
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39724
40105
  path: ["items"]
39725
40106
  });
39726
40107
  }
39727
40108
  });
39728
- var siteSettingsConfigSchema = z69.object({
39729
- homepagePath: z69.string().optional(),
39730
- siteTitle: z69.string().optional(),
39731
- siteDescription: z69.string().optional(),
39732
- defaultTemplates: z69.record(z69.string(), z69.string()).optional()
40109
+ var siteSettingsConfigSchema = z70.object({
40110
+ homepagePath: z70.string().optional(),
40111
+ siteTitle: z70.string().optional(),
40112
+ siteDescription: z70.string().optional(),
40113
+ defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39733
40114
  });
39734
- var contentConfigBaseSchema = z69.object({
39735
- contentTypes: z69.array(contentTypeConfigSchema).optional(),
39736
- entries: z69.array(entryConfigSchema).optional(),
39737
- pages: z69.array(pageConfigSchema).optional(),
39738
- navigationMenus: z69.array(navigationMenuConfigSchema).optional(),
40115
+ var contentConfigBaseSchema = z70.object({
40116
+ contentTypes: z70.array(contentTypeConfigSchema).optional(),
40117
+ entries: z70.array(entryConfigSchema).optional(),
40118
+ pages: z70.array(pageConfigSchema).optional(),
40119
+ navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39739
40120
  settings: siteSettingsConfigSchema.optional()
39740
40121
  });
39741
40122
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39744,7 +40125,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39744
40125
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39745
40126
  if (duplicateKeys.length > 0) {
39746
40127
  ctx.addIssue({
39747
- code: z69.ZodIssueCode.custom,
40128
+ code: z70.ZodIssueCode.custom,
39748
40129
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39749
40130
  path: ["contentTypes"]
39750
40131
  });
@@ -39755,7 +40136,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39755
40136
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39756
40137
  if (duplicateIds.length > 0) {
39757
40138
  ctx.addIssue({
39758
- code: z69.ZodIssueCode.custom,
40139
+ code: z70.ZodIssueCode.custom,
39759
40140
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39760
40141
  path: ["pages"]
39761
40142
  });
@@ -39764,7 +40145,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39764
40145
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39765
40146
  if (duplicatePaths.length > 0) {
39766
40147
  ctx.addIssue({
39767
- code: z69.ZodIssueCode.custom,
40148
+ code: z70.ZodIssueCode.custom,
39768
40149
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39769
40150
  path: ["pages"]
39770
40151
  });
@@ -39775,7 +40156,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39775
40156
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39776
40157
  if (duplicateIds.length > 0) {
39777
40158
  ctx.addIssue({
39778
- code: z69.ZodIssueCode.custom,
40159
+ code: z70.ZodIssueCode.custom,
39779
40160
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39780
40161
  path: ["entries"]
39781
40162
  });
@@ -39786,7 +40167,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39786
40167
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39787
40168
  if (duplicateIds.length > 0) {
39788
40169
  ctx.addIssue({
39789
- code: z69.ZodIssueCode.custom,
40170
+ code: z70.ZodIssueCode.custom,
39790
40171
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39791
40172
  path: ["navigationMenus"]
39792
40173
  });
@@ -39800,7 +40181,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39800
40181
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39801
40182
  if (entriesForType.length > 1) {
39802
40183
  ctx.addIssue({
39803
- code: z69.ZodIssueCode.custom,
40184
+ code: z70.ZodIssueCode.custom,
39804
40185
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39805
40186
  path: ["entries"]
39806
40187
  });
@@ -39913,18 +40294,18 @@ function validateLayout(layout) {
39913
40294
  }
39914
40295
 
39915
40296
  // src/config/dashboard-validation.ts
39916
- import { z as z70 } from "zod";
39917
- var navIdListSchema2 = z70.preprocess((value) => {
40297
+ import { z as z71 } from "zod";
40298
+ var navIdListSchema2 = z71.preprocess((value) => {
39918
40299
  if (!Array.isArray(value)) return void 0;
39919
40300
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39920
40301
  return filtered.length > 0 ? filtered : void 0;
39921
- }, z70.array(z70.string()).max(200, "Maximum 200 nav IDs").optional());
39922
- var dashboardNavVisibilityBaseSchema2 = z70.object({
39923
- mode: z70.enum(["augment", "restrict"]).optional(),
40302
+ }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
40303
+ var dashboardNavVisibilityBaseSchema2 = z71.object({
40304
+ mode: z71.enum(["augment", "restrict"]).optional(),
39924
40305
  allowIds: navIdListSchema2,
39925
40306
  denyIds: navIdListSchema2
39926
40307
  }).strip();
39927
- var dashboardNavVisibilityRolesSchema2 = z70.object({
40308
+ var dashboardNavVisibilityRolesSchema2 = z71.object({
39928
40309
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39929
40310
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39930
40311
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39932,28 +40313,28 @@ var dashboardNavVisibilityRolesSchema2 = z70.object({
39932
40313
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39933
40314
  roles: dashboardNavVisibilityRolesSchema2
39934
40315
  }).strip();
39935
- var dashboardNavigationConfigSchema2 = z70.object({
40316
+ var dashboardNavigationConfigSchema2 = z71.object({
39936
40317
  siteNav: dashboardNavVisibilitySchema2.optional(),
39937
40318
  settingsNav: dashboardNavVisibilitySchema2.optional()
39938
40319
  }).strip();
39939
- var dashboardConfigSchema2 = z70.object({
39940
- previewEditingEnabled: z70.boolean().optional(),
40320
+ var dashboardConfigSchema2 = z71.object({
40321
+ previewEditingEnabled: z71.boolean().optional(),
39941
40322
  navigation: dashboardNavigationConfigSchema2.optional()
39942
40323
  }).strip();
39943
40324
 
39944
40325
  // src/zod/titleSourceSchema.ts
39945
- import { z as z71 } from "zod";
39946
- var titleSourceValueSchema = z71.union([
39947
- z71.string().min(1),
39948
- z71.array(z71.string().min(1)).min(1)
40326
+ import { z as z72 } from "zod";
40327
+ var titleSourceValueSchema = z72.union([
40328
+ z72.string().min(1),
40329
+ z72.array(z72.string().min(1)).min(1)
39949
40330
  ]);
39950
40331
 
39951
40332
  // src/config/validation.ts
39952
- var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39953
- var sdkThemeConfigSchema2 = z72.object({
40333
+ var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
40334
+ var sdkThemeConfigSchema2 = z73.object({
39954
40335
  palette: sdkThemePaletteSchema2
39955
40336
  });
39956
- var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
40337
+ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39957
40338
  try {
39958
40339
  const parsed = new URL(url);
39959
40340
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39962,97 +40343,97 @@ var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
39962
40343
  return false;
39963
40344
  }
39964
40345
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39965
- var sectionBackgroundSchema = z72.object({
39966
- id: z72.string(),
39967
- label: z72.string(),
39968
- token: z72.string()
40346
+ var sectionBackgroundSchema = z73.object({
40347
+ id: z73.string(),
40348
+ label: z73.string(),
40349
+ token: z73.string()
39969
40350
  // Reference to theme palette token
39970
40351
  });
39971
- var sectionSpacingSchema = z72.enum(["compact", "default", "spacious"]);
39972
- var containerMaxWidthSchema = z72.enum(["narrow", "default", "wide", "full"]);
39973
- var containerAlignmentSchema = z72.enum(["left", "center", "right"]);
39974
- var sectionOptionsSchema = z72.object({
39975
- backgroundColor: z72.boolean().optional(),
39976
- backgroundImage: z72.boolean().optional(),
39977
- backgroundGradient: z72.boolean().optional(),
39978
- spacing: z72.union([
39979
- z72.array(sectionSpacingSchema),
39980
- z72.boolean()
40352
+ var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
40353
+ var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
40354
+ var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
40355
+ var sectionOptionsSchema = z73.object({
40356
+ backgroundColor: z73.boolean().optional(),
40357
+ backgroundImage: z73.boolean().optional(),
40358
+ backgroundGradient: z73.boolean().optional(),
40359
+ spacing: z73.union([
40360
+ z73.array(sectionSpacingSchema),
40361
+ z73.boolean()
39981
40362
  ]).optional(),
39982
- textColor: z72.boolean().optional()
40363
+ textColor: z73.boolean().optional()
39983
40364
  }).optional();
39984
- var containerOptionsSchema = z72.object({
39985
- maxWidth: z72.union([
39986
- z72.array(containerMaxWidthSchema),
39987
- z72.boolean()
40365
+ var containerOptionsSchema = z73.object({
40366
+ maxWidth: z73.union([
40367
+ z73.array(containerMaxWidthSchema),
40368
+ z73.boolean()
39988
40369
  ]).optional(),
39989
- alignment: z72.union([
39990
- z72.array(containerAlignmentSchema),
39991
- z72.boolean()
40370
+ alignment: z73.union([
40371
+ z73.array(containerAlignmentSchema),
40372
+ z73.boolean()
39992
40373
  ]).optional()
39993
40374
  }).optional();
39994
- var siteStyleConfigSchema = z72.object({
39995
- sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
40375
+ var siteStyleConfigSchema = z73.object({
40376
+ sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
39996
40377
  sectionOptions: sectionOptionsSchema,
39997
40378
  containerOptions: containerOptionsSchema
39998
40379
  }).optional();
39999
- var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
40380
+ var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS);
40000
40381
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
40001
- var loaderTransformStepSchema = z72.object({
40002
- id: z72.string().refine((id) => allowedTransformIds.has(id), {
40382
+ var loaderTransformStepSchema = z73.object({
40383
+ id: z73.string().refine((id) => allowedTransformIds.has(id), {
40003
40384
  message: "Unknown transform id"
40004
40385
  }),
40005
- options: z72.record(z72.string(), z72.unknown()).optional()
40386
+ options: z73.record(z73.string(), z73.unknown()).optional()
40006
40387
  });
40007
- var loaderParamBindingSchema2 = z72.object({
40008
- $bind: z72.object({
40009
- from: z72.string().min(1, "Binding path is required"),
40388
+ var loaderParamBindingSchema2 = z73.object({
40389
+ $bind: z73.object({
40390
+ from: z73.string().min(1, "Binding path is required"),
40010
40391
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
40011
40392
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
40012
40393
  // more complex values into a string.
40013
40394
  fallback: loaderFallbackScalarSchema.optional(),
40014
- transforms: z72.array(loaderTransformStepSchema).default([]),
40015
- pick: z72.enum(["value", "collection", "context"]).default("value"),
40016
- coerce: z72.enum(["number", "boolean", "string"]).optional()
40395
+ transforms: z73.array(loaderTransformStepSchema).default([]),
40396
+ pick: z73.enum(["value", "collection", "context"]).default("value"),
40397
+ coerce: z73.enum(["number", "boolean", "string"]).optional()
40017
40398
  })
40018
40399
  });
40019
- var loaderParamValueSchema2 = z72.union([
40020
- z72.string(),
40021
- z72.number(),
40022
- z72.boolean(),
40400
+ var loaderParamValueSchema2 = z73.union([
40401
+ z73.string(),
40402
+ z73.number(),
40403
+ z73.boolean(),
40023
40404
  loaderParamBindingSchema2
40024
40405
  ]);
40025
- var loaderWhenValueSchema = z72.union([
40026
- z72.boolean(),
40406
+ var loaderWhenValueSchema = z73.union([
40407
+ z73.boolean(),
40027
40408
  loaderParamBindingSchema2
40028
40409
  ]);
40029
- var sdkConfigLoaderSchema2 = z72.object({
40410
+ var sdkConfigLoaderSchema2 = z73.object({
40030
40411
  endpoint: sdkLoaderEndpointSchema2,
40031
- params: z72.record(z72.string(), loaderParamValueSchema2),
40032
- mode: z72.enum(["server", "client"]).default("server"),
40412
+ params: z73.record(z73.string(), loaderParamValueSchema2),
40413
+ mode: z73.enum(["server", "client"]).default("server"),
40033
40414
  when: loaderWhenValueSchema.optional()
40034
40415
  });
40035
- var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
40416
+ var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
40036
40417
  (loaders) => Object.keys(loaders).length <= 5,
40037
40418
  { message: "Maximum 5 data loaders per block" }
40038
40419
  ).optional();
40039
- var fieldSelectOptionSchema = z72.object({
40040
- value: z72.string().min(1, "Option value is required"),
40041
- label: z72.string().min(1, "Option label is required")
40420
+ var fieldSelectOptionSchema = z73.object({
40421
+ value: z73.string().min(1, "Option value is required"),
40422
+ label: z73.string().min(1, "Option label is required")
40042
40423
  });
40043
- var blockFieldConfigSchema = z72.object({
40044
- options: z72.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40424
+ var blockFieldConfigSchema = z73.object({
40425
+ options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40045
40426
  });
40046
- var blockFieldOptionsSchema = z72.record(
40047
- z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40427
+ var blockFieldOptionsSchema = z73.record(
40428
+ z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40048
40429
  message: "Block ID must be 'block.*' or 'custom.*' format"
40049
40430
  }),
40050
- z72.record(
40051
- z72.string().min(1, "Field ID is required"),
40431
+ z73.record(
40432
+ z73.string().min(1, "Field ID is required"),
40052
40433
  blockFieldConfigSchema
40053
40434
  )
40054
40435
  ).optional();
40055
- var blockFieldExtensionSchema = z72.object({
40436
+ var blockFieldExtensionSchema = z73.object({
40056
40437
  fields: fieldSchema.array().min(1, "At least one field is required")
40057
40438
  }).refine(
40058
40439
  (data) => {
@@ -40066,10 +40447,10 @@ var blockFieldExtensionSchema = z72.object({
40066
40447
  message: "Required fields must have a defaultValue to support existing blocks"
40067
40448
  }
40068
40449
  );
40069
- var blockFieldExtensionsMapSchema = z72.record(
40450
+ var blockFieldExtensionsMapSchema = z73.record(
40070
40451
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
40071
40452
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
40072
- z72.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40453
+ z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40073
40454
  message: "Block ID must be 'block.*' format (system blocks only)"
40074
40455
  }),
40075
40456
  blockFieldExtensionSchema
@@ -40085,7 +40466,7 @@ var blockFieldExtensionsMapSchema = z72.record(
40085
40466
  (field) => field.id === collision.fieldId
40086
40467
  );
40087
40468
  ctx.addIssue({
40088
- code: z72.ZodIssueCode.custom,
40469
+ code: z73.ZodIssueCode.custom,
40089
40470
  message: collision.message,
40090
40471
  path: [
40091
40472
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -40151,24 +40532,24 @@ function validateFieldIdConflicts(blockFieldExtensions) {
40151
40532
  }
40152
40533
  return conflicts;
40153
40534
  }
40154
- var syncConfigSchema = z72.object({
40155
- existingEntries: z72.enum(["skip", "update"]).optional()
40535
+ var syncConfigSchema = z73.object({
40536
+ existingEntries: z73.enum(["skip", "update"]).optional()
40156
40537
  }).optional();
40157
- var deployConfigSchema = z72.object({
40158
- verifyCommand: z72.string().optional(),
40159
- prebuildOutput: z72.string().optional()
40538
+ var deployConfigSchema = z73.object({
40539
+ verifyCommand: z73.string().optional(),
40540
+ prebuildOutput: z73.string().optional()
40160
40541
  }).optional();
40161
- var sdkCustomBlockSchema = z72.object({
40542
+ var sdkCustomBlockSchema = z73.object({
40162
40543
  // Block ID must start with 'custom.'
40163
- id: z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40544
+ id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40164
40545
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
40165
40546
  }),
40166
- title: z72.string().min(1, "Title is required"),
40547
+ title: z73.string().min(1, "Title is required"),
40167
40548
  titleSource: titleSourceValueSchema.optional(),
40168
- description: z72.string().optional(),
40549
+ description: z73.string().optional(),
40169
40550
  category: blockCategoryEnum,
40170
- icon: z72.string().optional(),
40171
- tags: z72.array(z72.string()).optional(),
40551
+ icon: z73.string().optional(),
40552
+ tags: z73.array(z73.string()).optional(),
40172
40553
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
40173
40554
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
40174
40555
  // Data loaders for CMS endpoints
@@ -40176,14 +40557,14 @@ var sdkCustomBlockSchema = z72.object({
40176
40557
  // Optional declarative layout - when present, block can render without React override
40177
40558
  layout: NodeSchema.optional(),
40178
40559
  // Optional variants system (preferred when a block has multiple structural layouts)
40179
- variants: z72.record(z72.string().min(1), NodeSchema).optional(),
40180
- defaultVariant: z72.string().min(1).optional(),
40181
- variantOptions: z72.record(
40182
- z72.string().min(1),
40183
- z72.object({
40184
- label: z72.string().min(1).optional(),
40185
- description: z72.string().min(1).optional(),
40186
- icon: z72.string().min(1).optional()
40560
+ variants: z73.record(z73.string().min(1), NodeSchema).optional(),
40561
+ defaultVariant: z73.string().min(1).optional(),
40562
+ variantOptions: z73.record(
40563
+ z73.string().min(1),
40564
+ z73.object({
40565
+ label: z73.string().min(1).optional(),
40566
+ description: z73.string().min(1).optional(),
40567
+ icon: z73.string().min(1).optional()
40187
40568
  })
40188
40569
  ).optional(),
40189
40570
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -40195,7 +40576,7 @@ var sdkCustomBlockSchema = z72.object({
40195
40576
  const exists = fields3.some((field) => field.id === source);
40196
40577
  if (!exists) {
40197
40578
  ctx.addIssue({
40198
- code: z72.ZodIssueCode.custom,
40579
+ code: z73.ZodIssueCode.custom,
40199
40580
  message: `titleSource must reference a valid field ID (got "${source}")`,
40200
40581
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
40201
40582
  });
@@ -40204,7 +40585,7 @@ var sdkCustomBlockSchema = z72.object({
40204
40585
  }
40205
40586
  if (data.layout && data.variants) {
40206
40587
  ctx.addIssue({
40207
- code: z72.ZodIssueCode.custom,
40588
+ code: z73.ZodIssueCode.custom,
40208
40589
  message: "Custom block must define either `layout` or `variants`, not both",
40209
40590
  path: ["variants"]
40210
40591
  });
@@ -40214,7 +40595,7 @@ var sdkCustomBlockSchema = z72.object({
40214
40595
  if (!result.valid) {
40215
40596
  for (const error of result.errors) {
40216
40597
  ctx.addIssue({
40217
- code: z72.ZodIssueCode.custom,
40598
+ code: z73.ZodIssueCode.custom,
40218
40599
  message: error.message,
40219
40600
  path: ["layout"]
40220
40601
  });
@@ -40225,14 +40606,14 @@ var sdkCustomBlockSchema = z72.object({
40225
40606
  const keys = Object.keys(data.variants);
40226
40607
  if (keys.length === 0) {
40227
40608
  ctx.addIssue({
40228
- code: z72.ZodIssueCode.custom,
40609
+ code: z73.ZodIssueCode.custom,
40229
40610
  message: "`variants` must contain at least one variant key",
40230
40611
  path: ["variants"]
40231
40612
  });
40232
40613
  }
40233
40614
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40234
40615
  ctx.addIssue({
40235
- code: z72.ZodIssueCode.custom,
40616
+ code: z73.ZodIssueCode.custom,
40236
40617
  message: "`defaultVariant` must be a key present in `variants`",
40237
40618
  path: ["defaultVariant"]
40238
40619
  });
@@ -40242,7 +40623,7 @@ var sdkCustomBlockSchema = z72.object({
40242
40623
  if (!result.valid) {
40243
40624
  for (const error of result.errors) {
40244
40625
  ctx.addIssue({
40245
- code: z72.ZodIssueCode.custom,
40626
+ code: z73.ZodIssueCode.custom,
40246
40627
  message: `${key}: ${error.message}`,
40247
40628
  path: ["variants", key]
40248
40629
  });
@@ -40253,7 +40634,7 @@ var sdkCustomBlockSchema = z72.object({
40253
40634
  for (const key of Object.keys(data.variantOptions)) {
40254
40635
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40255
40636
  ctx.addIssue({
40256
- code: z72.ZodIssueCode.custom,
40637
+ code: z73.ZodIssueCode.custom,
40257
40638
  message: "`variantOptions` key must exist in `variants`",
40258
40639
  path: ["variantOptions", key]
40259
40640
  });
@@ -40262,58 +40643,58 @@ var sdkCustomBlockSchema = z72.object({
40262
40643
  }
40263
40644
  }
40264
40645
  });
40265
- var themeSourceSchema = z72.enum(["local", "cms"]).optional();
40266
- var activeThemeSchema = z72.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40646
+ var themeSourceSchema = z73.enum(["local", "cms"]).optional();
40647
+ var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40267
40648
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40268
40649
  }).max(64, "Theme name too long").optional();
40269
40650
  function isValidConfigBlockKind(kind) {
40270
40651
  if (getBlockDefinition(kind)) return true;
40271
40652
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40272
40653
  }
40273
- var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40654
+ var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40274
40655
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40275
40656
  });
40276
- var layoutFooterBlockSchema = z72.object({
40277
- id: z72.string().min(1).optional(),
40657
+ var layoutFooterBlockSchema = z73.object({
40658
+ id: z73.string().min(1).optional(),
40278
40659
  kind: layoutBlockKindSchema,
40279
40660
  // Allow omitted content for blocks that rely on defaults.
40280
- content: z72.record(z72.string(), z72.unknown()).optional()
40661
+ content: z73.record(z73.string(), z73.unknown()).optional()
40281
40662
  }).strict();
40282
- var layoutConfigSchema = z72.object({
40283
- footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40663
+ var layoutConfigSchema = z73.object({
40664
+ footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40284
40665
  }).strict();
40285
- var sdkWorkflowIdSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40666
+ var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40286
40667
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40287
40668
  });
40288
- var sdkWorkflowEndpointSchema2 = z72.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 "/"' });
40289
- var sdkWorkflowTriggerSchema2 = z72.discriminatedUnion("type", [
40290
- z72.object({ type: z72.literal("manual") }).strict()
40669
+ var sdkWorkflowEndpointSchema2 = z73.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 "/"' });
40670
+ var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
40671
+ z73.object({ type: z73.literal("manual") }).strict()
40291
40672
  ]);
40292
- var sdkWorkflowConfirmationSchema2 = z72.object({
40293
- title: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40294
- body: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40673
+ var sdkWorkflowConfirmationSchema2 = z73.object({
40674
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40675
+ body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40295
40676
  }).strict();
40296
- var sdkWorkflowConfigSchema2 = z72.object({
40677
+ var sdkWorkflowConfigSchema2 = z73.object({
40297
40678
  id: sdkWorkflowIdSchema2,
40298
- title: z72.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40299
- description: z72.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40300
- contentType: z72.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40679
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40680
+ description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40681
+ contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40301
40682
  endpoint: sdkWorkflowEndpointSchema2,
40302
- triggers: z72.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40683
+ triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40303
40684
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40304
40685
  }).strict();
40305
- var sdkWorkflowsSchema2 = z72.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40686
+ var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40306
40687
  const ids = workflows.map((workflow) => workflow.id);
40307
40688
  return ids.length === new Set(ids).size;
40308
40689
  }, { message: "Workflow IDs must be unique" }).optional();
40309
- var riverbankSiteConfigSchema = z72.object({
40310
- siteId: z72.string().uuid(),
40690
+ var riverbankSiteConfigSchema = z73.object({
40691
+ siteId: z73.string().uuid(),
40311
40692
  previewUrl: sdkSiteUrlSchema.optional(),
40312
40693
  liveUrl: sdkSiteUrlSchema.optional(),
40313
40694
  theme: sdkThemeConfigSchema2.optional(),
40314
40695
  styles: siteStyleConfigSchema,
40315
40696
  layout: layoutConfigSchema.optional(),
40316
- customBlocks: z72.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40697
+ customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40317
40698
  // Ensure unique block IDs
40318
40699
  (blocks) => {
40319
40700
  const ids = blocks.map((b) => b.id);
@@ -40326,7 +40707,7 @@ var riverbankSiteConfigSchema = z72.object({
40326
40707
  workflows: sdkWorkflowsSchema2,
40327
40708
  content: contentConfigSchema.optional(),
40328
40709
  // CLI-related configuration (Phase 4)
40329
- contentDir: z72.string().optional(),
40710
+ contentDir: z73.string().optional(),
40330
40711
  sync: syncConfigSchema,
40331
40712
  deploy: deployConfigSchema,
40332
40713
  // Theme sync configuration (Phase 5)