@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
@@ -44,7 +44,7 @@ function fallbackBinding(...sources) {
44
44
  }
45
45
 
46
46
  // src/config/validation.ts
47
- import { z as z72 } from "zod";
47
+ import { z as z73 } from "zod";
48
48
 
49
49
  // ../api/src/apiEndpointTypes.ts
50
50
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -1085,6 +1085,94 @@ var ENDPOINT_DEFINITIONS = {
1085
1085
  responseKind: "json",
1086
1086
  errors: ["resource:not_found", "server:internal_error"]
1087
1087
  },
1088
+ listAppointmentReservations: {
1089
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1090
+ method: "GET",
1091
+ auth: "user",
1092
+ responseKind: "json",
1093
+ errors: []
1094
+ },
1095
+ createAppointmentReservation: {
1096
+ path: "/sites/{siteId}/bookings/appointment-reservations",
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
+ getAppointmentReservation: {
1108
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1109
+ method: "GET",
1110
+ auth: "user",
1111
+ responseKind: "json",
1112
+ errors: ["resource:not_found", "server:internal_error"]
1113
+ },
1114
+ updateAppointmentReservation: {
1115
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1116
+ method: "PUT",
1117
+ auth: "user",
1118
+ responseKind: "json",
1119
+ errors: [
1120
+ "validation:invalid_input",
1121
+ "resource:not_found",
1122
+ "resource:conflict",
1123
+ "server:internal_error"
1124
+ ]
1125
+ },
1126
+ pauseAppointmentReservation: {
1127
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1128
+ method: "POST",
1129
+ auth: "user",
1130
+ responseKind: "json",
1131
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1132
+ },
1133
+ resumeAppointmentReservation: {
1134
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1135
+ method: "POST",
1136
+ auth: "user",
1137
+ responseKind: "json",
1138
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1139
+ },
1140
+ endAppointmentReservation: {
1141
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1142
+ method: "POST",
1143
+ auth: "user",
1144
+ responseKind: "json",
1145
+ errors: [
1146
+ "validation:invalid_input",
1147
+ "resource:not_found",
1148
+ "resource:conflict",
1149
+ "server:internal_error"
1150
+ ]
1151
+ },
1152
+ previewAppointmentReservationRun: {
1153
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1154
+ method: "POST",
1155
+ auth: "user",
1156
+ responseKind: "json",
1157
+ errors: [
1158
+ "validation:invalid_input",
1159
+ "resource:not_found",
1160
+ "resource:conflict",
1161
+ "server:internal_error"
1162
+ ]
1163
+ },
1164
+ createAppointmentReservationRun: {
1165
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1166
+ method: "POST",
1167
+ auth: "user",
1168
+ responseKind: "json",
1169
+ errors: [
1170
+ "validation:invalid_input",
1171
+ "resource:not_found",
1172
+ "resource:conflict",
1173
+ "server:internal_error"
1174
+ ]
1175
+ },
1088
1176
  createTeamMemberProfile: {
1089
1177
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1090
1178
  method: "POST",
@@ -3541,6 +3629,18 @@ var ENDPOINT_DEFINITIONS = {
3541
3629
  responseKind: "json",
3542
3630
  errors: ["validation:invalid_input", "server:internal_error"]
3543
3631
  },
3632
+ resolveRouteDecision: {
3633
+ path: "/sites/{siteId}/route-decision",
3634
+ method: "GET",
3635
+ tags: [
3636
+ TAG_TEMPLATES.siteRoutableContent,
3637
+ TAG_TEMPLATES.siteRedirects,
3638
+ TAG_TEMPLATES.siteRouteOutcomes
3639
+ ],
3640
+ auth: "public",
3641
+ responseKind: "json",
3642
+ errors: ["validation:invalid_input", "server:internal_error"]
3643
+ },
3544
3644
  getPageByPath: {
3545
3645
  path: "/sites/{siteId}/pages",
3546
3646
  method: "GET",
@@ -3679,6 +3779,15 @@ var ENDPOINT_DEFINITIONS = {
3679
3779
  auth: "public",
3680
3780
  responseKind: "json"
3681
3781
  },
3782
+ getPublicWeeklySlotAvailability: {
3783
+ path: "/public/bookings/weekly-slot-availability",
3784
+ method: "GET",
3785
+ revalidate: 60,
3786
+ tags: ["site-{siteId}"],
3787
+ auth: "public",
3788
+ responseKind: "json",
3789
+ errors: []
3790
+ },
3682
3791
  createPublicBookingAppointment: {
3683
3792
  path: "/public/bookings/appointments",
3684
3793
  method: "POST",
@@ -5589,6 +5698,14 @@ var ENDPOINT_DEFINITIONS = {
5589
5698
  responseKind: "json",
5590
5699
  errors: []
5591
5700
  },
5701
+ adminResolveSiteBillingManualReview: {
5702
+ path: "/admin/sites/{siteId}/billing/manual-reviews/{reviewId}/resolve",
5703
+ method: "POST",
5704
+ tags: ["admin", "site-{siteId}", "billing"],
5705
+ auth: "admin",
5706
+ responseKind: "json",
5707
+ errors: []
5708
+ },
5592
5709
  // Admin GSC/SEO endpoints
5593
5710
  adminGscVerifyStart: {
5594
5711
  path: "/admin/seo/gsc/properties/verify/start",
@@ -6831,7 +6948,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6831
6948
  );
6832
6949
 
6833
6950
  // ../api/src/sdkConfig/contracts.ts
6834
- import { z as z63 } from "zod";
6951
+ import { z as z64 } from "zod";
6835
6952
 
6836
6953
  // ../blocks/src/system/manifest/augmentManifest.ts
6837
6954
  function augmentManifest(manifest) {
@@ -7000,10 +7117,20 @@ var repeatSchema = z3.object({
7000
7117
  direction: z3.enum(["asc", "desc"]).default("asc")
7001
7118
  }).optional()
7002
7119
  });
7120
+ var conditionalAuthoringPresenceSchema = z3.discriminatedUnion("kind", [
7121
+ z3.object({ kind: z3.literal("visitor-only") }),
7122
+ z3.object({
7123
+ kind: z3.literal("recover-empty-when-active"),
7124
+ placeholder: z3.string().min(1).optional()
7125
+ })
7126
+ ]);
7003
7127
  var conditionSchema = z3.object({
7004
7128
  when: bindingSchema,
7005
7129
  equals: z3.unknown().optional(),
7006
- not: z3.boolean().default(false)
7130
+ not: z3.boolean().default(false),
7131
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
7132
+ kind: "visitor-only"
7133
+ })
7007
7134
  });
7008
7135
  var dataScopeSchema = z3.object({
7009
7136
  name: z3.string().min(1),
@@ -7064,6 +7191,7 @@ var ALLOWED_NODE_TYPES = [
7064
7191
  // Forms
7065
7192
  "form",
7066
7193
  "booking-form",
7194
+ "weekly-slot-availability",
7067
7195
  // Events
7068
7196
  "event-registration",
7069
7197
  "event-spotlight",
@@ -11046,15 +11174,16 @@ var joyStamp = defineButtonPersonality({
11046
11174
  // 700, matching the mockup's chunky button labels.
11047
11175
  typography: "heading",
11048
11176
  fontWeight: 700,
11177
+ fontSize: "text-lg",
11049
11178
  borderWidth: 2,
11050
11179
  hoverTransform: "none",
11051
11180
  hoverColor: "none"
11052
11181
  },
11053
11182
  sizes: {
11054
- sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
11055
- md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
11056
- lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
11057
- xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
11183
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
11184
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
11185
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
11186
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
11058
11187
  },
11059
11188
  variants: [
11060
11189
  {
@@ -18101,7 +18230,8 @@ function when(path, options) {
18101
18230
  $when: {
18102
18231
  when: { from: path },
18103
18232
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
18104
- ...options?.not ? { not: true } : {}
18233
+ ...options?.not ? { not: true } : {},
18234
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
18105
18235
  }
18106
18236
  });
18107
18237
  }
@@ -27928,77 +28058,247 @@ var appointmentBookingBlockDefinition = {
27928
28058
  }
27929
28059
  };
27930
28060
 
28061
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
28062
+ import { z as z39 } from "zod";
28063
+ var weeklySlotAvailabilityManifest = createBlockManifest({
28064
+ id: "block.weekly-slot-availability",
28065
+ version: "1.0.0",
28066
+ title: "Weekly Slot Availability",
28067
+ titleSource: "heading",
28068
+ description: "Shows available recurring appointment slot patterns",
28069
+ skipSectionStyles: true,
28070
+ additionalFields: [
28071
+ {
28072
+ id: "serviceId",
28073
+ type: "reference",
28074
+ label: "Appointment service",
28075
+ description: "Choose which appointment service to show availability for",
28076
+ required: true,
28077
+ referenceKind: "appointmentService",
28078
+ allowManualEntry: false,
28079
+ ui: { intent: "behavior" }
28080
+ },
28081
+ {
28082
+ id: "resourceId",
28083
+ type: "reference",
28084
+ label: "Appointment resource",
28085
+ description: "Optionally narrow the availability to one practitioner or room",
28086
+ required: false,
28087
+ referenceKind: "appointmentResource",
28088
+ allowManualEntry: false,
28089
+ ui: { intent: "behavior" }
28090
+ },
28091
+ {
28092
+ id: "horizonWeeks",
28093
+ type: "select",
28094
+ label: "Look ahead",
28095
+ required: false,
28096
+ multiple: false,
28097
+ defaultValue: "4",
28098
+ options: [
28099
+ { value: "1", label: "1 week" },
28100
+ { value: "2", label: "2 weeks" },
28101
+ { value: "4", label: "4 weeks" }
28102
+ ],
28103
+ ui: { intent: "behavior" }
28104
+ },
28105
+ {
28106
+ id: "timezone",
28107
+ type: "text",
28108
+ label: "Timezone",
28109
+ description: "Leave blank to use the visitor timezone when the block loads",
28110
+ required: false,
28111
+ multiline: false,
28112
+ defaultValue: "",
28113
+ maxLength: 64,
28114
+ ui: { intent: "behavior" }
28115
+ },
28116
+ {
28117
+ id: "heading",
28118
+ type: "text",
28119
+ label: "Heading",
28120
+ required: false,
28121
+ multiline: false,
28122
+ defaultValue: "Weekly availability"
28123
+ },
28124
+ {
28125
+ id: "description",
28126
+ type: "richText",
28127
+ label: "Description",
28128
+ required: false
28129
+ },
28130
+ {
28131
+ id: "emptyMessage",
28132
+ type: "text",
28133
+ label: "Empty message",
28134
+ required: false,
28135
+ multiline: true,
28136
+ defaultValue: "No regular weekly openings are currently available.",
28137
+ maxLength: 180
28138
+ },
28139
+ {
28140
+ id: "ctaText",
28141
+ type: "text",
28142
+ label: "Enquiry button text",
28143
+ required: false,
28144
+ multiline: false,
28145
+ defaultValue: "Enquire about this slot",
28146
+ maxLength: 60
28147
+ },
28148
+ {
28149
+ id: "ctaUrl",
28150
+ type: "url",
28151
+ label: "Enquiry URL",
28152
+ required: false,
28153
+ ui: { intent: "behavior" }
28154
+ },
28155
+ sectionStylesField({
28156
+ id: "_sectionStyles",
28157
+ label: "Section styles"
28158
+ })
28159
+ ],
28160
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
28161
+ behaviours: {
28162
+ supportsThemeSwitching: true,
28163
+ inlineEditing: false,
28164
+ animation: false,
28165
+ paletteHidden: false
28166
+ },
28167
+ category: "interactive",
28168
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
28169
+ icon: "CalendarDays",
28170
+ layout: [
28171
+ styledSection({
28172
+ children: sectionContainer([
28173
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
28174
+ richText({}, bind("content.description"), when("content.description")),
28175
+ el(
28176
+ "weekly-slot-availability",
28177
+ withApiBindings({
28178
+ serviceId: { $bind: { from: "content.serviceId" } },
28179
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
28180
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28181
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
28182
+ availability: { $bind: { from: "data.availability", fallback: null } },
28183
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
28184
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
28185
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
28186
+ })
28187
+ )
28188
+ ], {
28189
+ gap: "lg"
28190
+ }),
28191
+ baseClass: "",
28192
+ spacing: "spacious"
28193
+ })
28194
+ ]
28195
+ });
28196
+ var weeklySlotAvailabilityOptionSchema = z39.object({
28197
+ id: z39.string(),
28198
+ resourceId: z39.string(),
28199
+ weekday: z39.number(),
28200
+ weekdayLabel: z39.string(),
28201
+ startTime: z39.string(),
28202
+ endTime: z39.string(),
28203
+ nextDate: z39.string(),
28204
+ availableWeeks: z39.number()
28205
+ });
28206
+ var weeklySlotAvailabilityDataSchema = z39.object({
28207
+ slots: z39.array(weeklySlotAvailabilityOptionSchema),
28208
+ horizonWeeks: z39.number(),
28209
+ timezone: z39.string(),
28210
+ startDate: z39.string(),
28211
+ endDate: z39.string()
28212
+ });
28213
+ var weeklySlotAvailabilityBlockDefinition = {
28214
+ manifest: weeklySlotAvailabilityManifest,
28215
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
28216
+ dataLoaders: {
28217
+ availability: {
28218
+ endpoint: "getPublicWeeklySlotAvailability",
28219
+ params: {
28220
+ siteId: { $bind: { from: "$root.siteId" } },
28221
+ serviceId: { $bind: { from: "content.serviceId" } },
28222
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
28223
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28224
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
28225
+ },
28226
+ mode: "server"
28227
+ }
28228
+ }
28229
+ };
28230
+
27931
28231
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27932
- import { z as z43 } from "zod";
28232
+ import { z as z44 } from "zod";
27933
28233
 
27934
28234
  // ../blocks/src/lib/media.ts
27935
- import z39 from "zod";
28235
+ import z40 from "zod";
27936
28236
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
27937
28237
  "document",
27938
28238
  "spreadsheet",
27939
28239
  "archive",
27940
28240
  "audio"
27941
28241
  ];
27942
- var hotspotSchema2 = z39.object({
27943
- x: z39.number().min(0).max(1),
27944
- y: z39.number().min(0).max(1),
27945
- radius: z39.number().optional()
27946
- });
27947
- var rotationSchema2 = z39.union([z39.literal(0), z39.literal(90), z39.literal(180), z39.literal(270)]);
27948
- var rectSchema2 = z39.tuple([z39.number(), z39.number(), z39.number(), z39.number()]);
27949
- var aspectCropSchema2 = z39.object({
27950
- aspect: z39.preprocess((value) => value == null ? void 0 : value, z39.string().optional()),
27951
- rect: z39.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
27952
- hotspot: z39.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
27953
- rotation: z39.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
27954
- });
27955
- var transformSchema2 = z39.object({
27956
- aspectCrops: z39.preprocess((value) => {
28242
+ var hotspotSchema2 = z40.object({
28243
+ x: z40.number().min(0).max(1),
28244
+ y: z40.number().min(0).max(1),
28245
+ radius: z40.number().optional()
28246
+ });
28247
+ var rotationSchema2 = z40.union([z40.literal(0), z40.literal(90), z40.literal(180), z40.literal(270)]);
28248
+ var rectSchema2 = z40.tuple([z40.number(), z40.number(), z40.number(), z40.number()]);
28249
+ var aspectCropSchema2 = z40.object({
28250
+ aspect: z40.preprocess((value) => value == null ? void 0 : value, z40.string().optional()),
28251
+ rect: z40.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
28252
+ hotspot: z40.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
28253
+ rotation: z40.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
28254
+ });
28255
+ var transformSchema2 = z40.object({
28256
+ aspectCrops: z40.preprocess((value) => {
27957
28257
  if (!value || typeof value !== "object" || Array.isArray(value)) {
27958
28258
  return void 0;
27959
28259
  }
27960
28260
  return value;
27961
- }, z39.record(z39.string(), aspectCropSchema2.catch({}))).optional(),
28261
+ }, z40.record(z40.string(), aspectCropSchema2.catch({}))).optional(),
27962
28262
  rect: rectSchema2.optional(),
27963
28263
  hotspot: hotspotSchema2.optional(),
27964
28264
  rotation: rotationSchema2.optional()
27965
28265
  });
27966
- var mediaPosterSchema = z39.discriminatedUnion("tag", [
27967
- z39.object({
27968
- tag: z39.literal("storage"),
27969
- assetId: z39.string().optional(),
27970
- storageBucket: z39.string().min(1),
27971
- storagePath: z39.string().min(1)
28266
+ var mediaPosterSchema = z40.discriminatedUnion("tag", [
28267
+ z40.object({
28268
+ tag: z40.literal("storage"),
28269
+ assetId: z40.string().optional(),
28270
+ storageBucket: z40.string().min(1),
28271
+ storagePath: z40.string().min(1)
27972
28272
  }),
27973
- z39.object({
27974
- tag: z39.literal("external-src"),
27975
- assetId: z39.string().optional(),
27976
- src: z39.string().url()
28273
+ z40.object({
28274
+ tag: z40.literal("external-src"),
28275
+ assetId: z40.string().optional(),
28276
+ src: z40.string().url()
27977
28277
  })
27978
28278
  ]);
27979
- var mediaBaseSchema = z39.object({
27980
- purpose: z39.string().optional(),
27981
- placeholder: z39.boolean().default(true).optional(),
27982
- assetId: z39.string().optional(),
27983
- identifier: z39.string().optional(),
27984
- src: z39.string().optional(),
27985
- alt: z39.string().optional(),
27986
- filename: z39.string().optional(),
27987
- mimeType: z39.string().optional(),
27988
- width: z39.number().optional(),
27989
- height: z39.number().optional(),
27990
- storageBucket: z39.string().optional(),
27991
- storagePath: z39.string().optional(),
28279
+ var mediaBaseSchema = z40.object({
28280
+ purpose: z40.string().optional(),
28281
+ placeholder: z40.boolean().default(true).optional(),
28282
+ assetId: z40.string().optional(),
28283
+ identifier: z40.string().optional(),
28284
+ src: z40.string().optional(),
28285
+ alt: z40.string().optional(),
28286
+ filename: z40.string().optional(),
28287
+ mimeType: z40.string().optional(),
28288
+ width: z40.number().optional(),
28289
+ height: z40.number().optional(),
28290
+ storageBucket: z40.string().optional(),
28291
+ storagePath: z40.string().optional(),
27992
28292
  poster: mediaPosterSchema.optional(),
27993
28293
  transform: transformSchema2.optional()
27994
28294
  });
27995
- var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
27996
- var videoMediaSchema = mediaBaseSchema.extend({ type: z39.literal("video") });
27997
- var audioMediaSchema = mediaBaseSchema.extend({ type: z39.literal("audio") });
27998
- var documentMediaSchema = mediaBaseSchema.extend({ type: z39.literal("document") });
27999
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z39.literal("spreadsheet") });
28000
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z39.literal("archive") });
28001
- var mediaSchema2 = z39.discriminatedUnion("type", [
28295
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z40.literal("image") });
28296
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z40.literal("video") });
28297
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z40.literal("audio") });
28298
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z40.literal("document") });
28299
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z40.literal("spreadsheet") });
28300
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z40.literal("archive") });
28301
+ var mediaSchema2 = z40.discriminatedUnion("type", [
28002
28302
  imageMediaSchema,
28003
28303
  videoMediaSchema,
28004
28304
  audioMediaSchema,
@@ -28008,372 +28308,372 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
28008
28308
  ]);
28009
28309
 
28010
28310
  // ../blocks/src/system/manifest/richTextSchema.ts
28011
- import { z as z40 } from "zod";
28012
- var TipTapMarkSchema = z40.object({
28013
- type: z40.string(),
28014
- attrs: z40.record(z40.string(), z40.unknown()).optional()
28015
- });
28016
- var TipTapNodeSchema = z40.lazy(
28017
- () => z40.object({
28018
- type: z40.string(),
28019
- content: z40.array(TipTapNodeSchema).optional(),
28020
- text: z40.string().optional(),
28021
- attrs: z40.record(z40.string(), z40.unknown()).optional(),
28022
- marks: z40.array(TipTapMarkSchema).optional()
28311
+ import { z as z41 } from "zod";
28312
+ var TipTapMarkSchema = z41.object({
28313
+ type: z41.string(),
28314
+ attrs: z41.record(z41.string(), z41.unknown()).optional()
28315
+ });
28316
+ var TipTapNodeSchema = z41.lazy(
28317
+ () => z41.object({
28318
+ type: z41.string(),
28319
+ content: z41.array(TipTapNodeSchema).optional(),
28320
+ text: z41.string().optional(),
28321
+ attrs: z41.record(z41.string(), z41.unknown()).optional(),
28322
+ marks: z41.array(TipTapMarkSchema).optional()
28023
28323
  })
28024
28324
  );
28025
- var RichTextValueSchema = z40.union([
28325
+ var RichTextValueSchema = z41.union([
28026
28326
  // Canonical: TipTap document directly
28027
28327
  TipTapNodeSchema,
28028
28328
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
28029
- z40.object({
28329
+ z41.object({
28030
28330
  doc: TipTapNodeSchema
28031
28331
  })
28032
28332
  ]);
28033
- var RichTextDocSchema = z40.object({
28034
- type: z40.literal("doc"),
28035
- content: z40.array(TipTapNodeSchema)
28333
+ var RichTextDocSchema = z41.object({
28334
+ type: z41.literal("doc"),
28335
+ content: z41.array(TipTapNodeSchema)
28036
28336
  });
28037
28337
 
28038
28338
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
28039
- import { z as z41 } from "zod";
28040
- var bookingDepositRefundPolicySchema = z41.enum([
28339
+ import { z as z42 } from "zod";
28340
+ var bookingDepositRefundPolicySchema = z42.enum([
28041
28341
  "refundable",
28042
28342
  "non_refundable"
28043
28343
  ]);
28044
- var bookingInstalmentPlanSchema = z41.union([
28045
- z41.object({
28046
- kind: z41.literal("deposit_plus_one_remainder"),
28047
- depositAmountCents: z41.number().int().min(0),
28344
+ var bookingInstalmentPlanSchema = z42.union([
28345
+ z42.object({
28346
+ kind: z42.literal("deposit_plus_one_remainder"),
28347
+ depositAmountCents: z42.number().int().min(0),
28048
28348
  depositRefundability: bookingDepositRefundPolicySchema,
28049
- remainderDueCount: z41.number().int().positive(),
28050
- intervalUnit: z41.enum(["day", "week", "month"])
28349
+ remainderDueCount: z42.number().int().positive(),
28350
+ intervalUnit: z42.enum(["day", "week", "month"])
28051
28351
  }),
28052
- z41.object({
28053
- kind: z41.literal("deposit_plus_scheduled_instalments"),
28054
- depositAmountCents: z41.number().int().min(0),
28352
+ z42.object({
28353
+ kind: z42.literal("deposit_plus_scheduled_instalments"),
28354
+ depositAmountCents: z42.number().int().min(0),
28055
28355
  depositRefundability: bookingDepositRefundPolicySchema,
28056
- instalmentCount: z41.number().int().positive(),
28057
- intervalCount: z41.number().int().positive(),
28058
- intervalUnit: z41.enum(["day", "week", "month"])
28356
+ instalmentCount: z42.number().int().positive(),
28357
+ intervalCount: z42.number().int().positive(),
28358
+ intervalUnit: z42.enum(["day", "week", "month"])
28059
28359
  }),
28060
- z41.object({
28061
- kind: z41.literal("equal_scheduled_instalments"),
28062
- instalmentCount: z41.number().int().positive(),
28063
- intervalCount: z41.number().int().positive(),
28064
- intervalUnit: z41.enum(["day", "week", "month"])
28360
+ z42.object({
28361
+ kind: z42.literal("equal_scheduled_instalments"),
28362
+ instalmentCount: z42.number().int().positive(),
28363
+ intervalCount: z42.number().int().positive(),
28364
+ intervalUnit: z42.enum(["day", "week", "month"])
28065
28365
  })
28066
28366
  ]);
28067
- var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28068
- z41.object({
28069
- kind: z41.literal("relative_to_start_date"),
28070
- daysBeforeStart: z41.number().int().positive()
28367
+ var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
28368
+ z42.object({
28369
+ kind: z42.literal("relative_to_start_date"),
28370
+ daysBeforeStart: z42.number().int().positive()
28071
28371
  }),
28072
- z41.object({
28073
- kind: z41.literal("fixed_calendar_date"),
28074
- dueAt: z41.string().datetime()
28372
+ z42.object({
28373
+ kind: z42.literal("fixed_calendar_date"),
28374
+ dueAt: z42.string().datetime()
28075
28375
  })
28076
28376
  ]);
28077
- var bookingFlexibleBalanceConfigSchema = z41.object({
28078
- upfrontAmountCents: z41.number().int().min(0),
28377
+ var bookingFlexibleBalanceConfigSchema = z42.object({
28378
+ upfrontAmountCents: z42.number().int().min(0),
28079
28379
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
28080
28380
  depositRefundability: bookingDepositRefundPolicySchema
28081
28381
  });
28082
- var blockBookingPaymentCollectionOptionSchema = z41.union([
28083
- z41.object({
28084
- kind: z41.literal("upfront")
28382
+ var blockBookingPaymentCollectionOptionSchema = z42.union([
28383
+ z42.object({
28384
+ kind: z42.literal("upfront")
28085
28385
  }),
28086
- z41.object({
28087
- kind: z41.literal("deferred_manual")
28386
+ z42.object({
28387
+ kind: z42.literal("deferred_manual")
28088
28388
  }),
28089
- z41.object({
28090
- kind: z41.literal("instalment_plan"),
28389
+ z42.object({
28390
+ kind: z42.literal("instalment_plan"),
28091
28391
  plan: bookingInstalmentPlanSchema
28092
28392
  }),
28093
- z41.object({
28094
- kind: z41.literal("flexible_balance"),
28393
+ z42.object({
28394
+ kind: z42.literal("flexible_balance"),
28095
28395
  config: bookingFlexibleBalanceConfigSchema
28096
28396
  })
28097
28397
  ]);
28098
- var blockBookingPaymentTermsSchema = z41.object({
28099
- allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
28398
+ var blockBookingPaymentTermsSchema = z42.object({
28399
+ allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
28100
28400
  });
28101
28401
 
28102
28402
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
28103
- import { z as z42 } from "zod";
28104
- var courseVenueSchema = z42.object({
28105
- id: z42.string(),
28106
- name: z42.string(),
28107
- address: z42.string().nullable()
28108
- });
28109
- var courseSessionSchema = z42.object({
28110
- id: z42.string(),
28111
- startsAt: z42.string(),
28112
- endsAt: z42.string(),
28113
- timeZone: z42.string(),
28114
- capacityOverride: z42.number().nullable().optional(),
28115
- overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28116
- });
28117
- var courseTeamMemberSummarySchema = z42.object({
28118
- id: z42.string(),
28119
- name: z42.string(),
28120
- roleLabel: z42.string().nullable(),
28121
- summary: z42.string().nullable(),
28122
- profilePath: z42.string().nullable()
28123
- });
28124
- var coursePricingOptionSchema = z42.object({
28125
- id: z42.string(),
28126
- name: z42.string(),
28127
- description: z42.string().nullable(),
28128
- priceAmount: z42.number(),
28129
- isActive: z42.boolean(),
28130
- sortOrder: z42.number(),
28131
- capacityLimit: z42.number().nullable(),
28132
- saleStartsAt: z42.string().nullable(),
28133
- saleEndsAt: z42.string().nullable(),
28134
- attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28135
- });
28136
- var coursePricingSchema = z42.object({
28137
- bookingRequirement: z42.enum(["none", "required"]),
28138
- pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
28139
- currency: z42.string(),
28140
- singlePriceAmount: z42.number().nullable(),
28141
- slidingMinAmount: z42.number().nullable().optional(),
28142
- slidingMaxAmount: z42.number().nullable().optional(),
28143
- slidingSuggestedAmount: z42.number().nullable().optional(),
28403
+ import { z as z43 } from "zod";
28404
+ var courseVenueSchema = z43.object({
28405
+ id: z43.string(),
28406
+ name: z43.string(),
28407
+ address: z43.string().nullable()
28408
+ });
28409
+ var courseSessionSchema = z43.object({
28410
+ id: z43.string(),
28411
+ startsAt: z43.string(),
28412
+ endsAt: z43.string(),
28413
+ timeZone: z43.string(),
28414
+ capacityOverride: z43.number().nullable().optional(),
28415
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28416
+ });
28417
+ var courseTeamMemberSummarySchema = z43.object({
28418
+ id: z43.string(),
28419
+ name: z43.string(),
28420
+ roleLabel: z43.string().nullable(),
28421
+ summary: z43.string().nullable(),
28422
+ profilePath: z43.string().nullable()
28423
+ });
28424
+ var coursePricingOptionSchema = z43.object({
28425
+ id: z43.string(),
28426
+ name: z43.string(),
28427
+ description: z43.string().nullable(),
28428
+ priceAmount: z43.number(),
28429
+ isActive: z43.boolean(),
28430
+ sortOrder: z43.number(),
28431
+ capacityLimit: z43.number().nullable(),
28432
+ saleStartsAt: z43.string().nullable(),
28433
+ saleEndsAt: z43.string().nullable(),
28434
+ attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
28435
+ });
28436
+ var coursePricingSchema = z43.object({
28437
+ bookingRequirement: z43.enum(["none", "required"]),
28438
+ pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
28439
+ currency: z43.string(),
28440
+ singlePriceAmount: z43.number().nullable(),
28441
+ slidingMinAmount: z43.number().nullable().optional(),
28442
+ slidingMaxAmount: z43.number().nullable().optional(),
28443
+ slidingSuggestedAmount: z43.number().nullable().optional(),
28144
28444
  paymentTerms: blockBookingPaymentTermsSchema,
28145
- options: z42.array(coursePricingOptionSchema)
28146
- });
28147
- var publicCourseSchema = z42.object({
28148
- id: z42.string(),
28149
- title: z42.string(),
28150
- slug: z42.string(),
28151
- description: z42.unknown().nullable(),
28152
- teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28153
- enrollmentOpen: z42.boolean(),
28445
+ options: z43.array(coursePricingOptionSchema)
28446
+ });
28447
+ var publicCourseSchema = z43.object({
28448
+ id: z43.string(),
28449
+ title: z43.string(),
28450
+ slug: z43.string(),
28451
+ description: z43.unknown().nullable(),
28452
+ teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
28453
+ enrollmentOpen: z43.boolean(),
28154
28454
  pricing: coursePricingSchema.optional(),
28155
- priceCents: z42.number().nullable(),
28156
- currency: z42.string(),
28455
+ priceCents: z43.number().nullable(),
28456
+ currency: z43.string(),
28157
28457
  paymentTerms: blockBookingPaymentTermsSchema,
28158
- enrollmentCapacity: z42.number().nullable(),
28159
- acceptsMemberships: z42.boolean(),
28160
- status: z42.enum(["active", "draft", "cancelled"]),
28161
- sessionsCount: z42.number(),
28162
- enrolledCount: z42.number(),
28163
- availableSpots: z42.number().nullable(),
28164
- sessions: z42.array(courseSessionSchema),
28458
+ enrollmentCapacity: z43.number().nullable(),
28459
+ acceptsMemberships: z43.boolean(),
28460
+ status: z43.enum(["active", "draft", "cancelled"]),
28461
+ sessionsCount: z43.number(),
28462
+ enrolledCount: z43.number(),
28463
+ availableSpots: z43.number().nullable(),
28464
+ sessions: z43.array(courseSessionSchema),
28165
28465
  venue: courseVenueSchema.nullable(),
28166
- contentEntryId: z42.string().nullable()
28466
+ contentEntryId: z43.string().nullable()
28167
28467
  });
28168
- var publicCoursesArraySchema = z42.array(publicCourseSchema);
28468
+ var publicCoursesArraySchema = z43.array(publicCourseSchema);
28169
28469
 
28170
28470
  // ../blocks/src/system/blocks/events/shared/schemas.ts
28171
- var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28172
- var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28173
- var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28174
- var publicEventDestinationSchema = z43.discriminatedUnion("kind", [
28175
- z43.object({
28176
- kind: z43.literal("native"),
28471
+ var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
28472
+ var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
28473
+ var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
28474
+ var publicEventDestinationSchema = z44.discriminatedUnion("kind", [
28475
+ z44.object({
28476
+ kind: z44.literal("native"),
28177
28477
  mode: eventDestinationModeSchema,
28178
- path: z43.string()
28478
+ path: z44.string()
28179
28479
  }),
28180
- z43.object({
28181
- kind: z43.literal("external"),
28182
- url: z43.string(),
28183
- label: z43.string()
28480
+ z44.object({
28481
+ kind: z44.literal("external"),
28482
+ url: z44.string(),
28483
+ label: z44.string()
28184
28484
  })
28185
28485
  ]);
28186
- var eventVenueSchema = z43.object({
28187
- id: z43.string(),
28188
- name: z43.string(),
28189
- address: z43.string().nullable(),
28190
- location: z43.object({
28191
- lat: z43.number(),
28192
- lng: z43.number()
28486
+ var eventVenueSchema = z44.object({
28487
+ id: z44.string(),
28488
+ name: z44.string(),
28489
+ address: z44.string().nullable(),
28490
+ location: z44.object({
28491
+ lat: z44.number(),
28492
+ lng: z44.number()
28193
28493
  }).nullable()
28194
28494
  });
28195
- var eventCategorySchema = z43.object({
28196
- id: z43.string(),
28197
- name: z43.string(),
28198
- color: z43.string().nullable()
28199
- });
28200
- var pricingTypeSchema = z43.enum(["free", "paid", "external"]);
28201
- var accessRestrictionSchema = z43.enum(["none", "category"]);
28202
- var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28203
- var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28204
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28205
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28206
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28207
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28495
+ var eventCategorySchema = z44.object({
28496
+ id: z44.string(),
28497
+ name: z44.string(),
28498
+ color: z44.string().nullable()
28499
+ });
28500
+ var pricingTypeSchema = z44.enum(["free", "paid", "external"]);
28501
+ var accessRestrictionSchema = z44.enum(["none", "category"]);
28502
+ var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
28503
+ var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
28504
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28505
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28506
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28507
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28208
28508
  ]);
28209
- var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28210
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28211
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28212
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28213
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28214
- z43.object({
28215
- kind: z43.literal("mixed"),
28216
- paidFromAmount: z43.number(),
28217
- paidToAmount: z43.number(),
28218
- currency: z43.string()
28509
+ var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
28510
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28511
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28512
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28513
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28514
+ z44.object({
28515
+ kind: z44.literal("mixed"),
28516
+ paidFromAmount: z44.number(),
28517
+ paidToAmount: z44.number(),
28518
+ currency: z44.string()
28219
28519
  }),
28220
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28221
- z43.object({ kind: z43.literal("external"), label: z43.string() }),
28222
- z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28520
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
28521
+ z44.object({ kind: z44.literal("external"), label: z44.string() }),
28522
+ z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28223
28523
  ]);
28224
- var publicEventTicketTypePriceDisplaySchema = z43.union([
28225
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28226
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28227
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28228
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28229
- z43.object({
28230
- kind: z43.literal("mixed"),
28231
- paidFromAmount: z43.number(),
28232
- paidToAmount: z43.number(),
28233
- currency: z43.string()
28524
+ var publicEventTicketTypePriceDisplaySchema = z44.union([
28525
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28526
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28527
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28528
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28529
+ z44.object({
28530
+ kind: z44.literal("mixed"),
28531
+ paidFromAmount: z44.number(),
28532
+ paidToAmount: z44.number(),
28533
+ currency: z44.string()
28234
28534
  }),
28235
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28535
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28236
28536
  ]);
28237
- var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28238
- var publicEventAttendanceModeAvailabilitySchema = z43.object({
28537
+ var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
28538
+ var publicEventAttendanceModeAvailabilitySchema = z44.object({
28239
28539
  mode: publicEventAttendanceModeSchema,
28240
- capacity: z43.number().nullable(),
28241
- registeredCount: z43.number(),
28242
- availableSpots: z43.number().nullable(),
28243
- waitlistEnabled: z43.boolean()
28244
- });
28245
- var publicEventTicketTypeAvailabilitySchema = z43.union([
28246
- z43.object({
28247
- kind: z43.literal("available"),
28248
- remainingCapacity: z43.number().nullable()
28540
+ capacity: z44.number().nullable(),
28541
+ registeredCount: z44.number(),
28542
+ availableSpots: z44.number().nullable(),
28543
+ waitlistEnabled: z44.boolean()
28544
+ });
28545
+ var publicEventTicketTypeAvailabilitySchema = z44.union([
28546
+ z44.object({
28547
+ kind: z44.literal("available"),
28548
+ remainingCapacity: z44.number().nullable()
28249
28549
  }),
28250
- z43.object({
28251
- kind: z43.literal("unavailable"),
28252
- reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28253
- remainingCapacity: z43.number().nullable()
28550
+ z44.object({
28551
+ kind: z44.literal("unavailable"),
28552
+ reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28553
+ remainingCapacity: z44.number().nullable()
28254
28554
  })
28255
28555
  ]);
28256
- var publicEventTicketTypeSchema = z43.object({
28257
- id: z43.string(),
28258
- siteId: z43.string(),
28259
- eventSeriesId: z43.string(),
28260
- name: z43.string(),
28261
- description: z43.string().nullable(),
28262
- priceAmount: z43.number(),
28263
- isActive: z43.boolean(),
28264
- sortOrder: z43.number(),
28265
- capacityMode: z43.enum(["limited", "unlimited"]),
28266
- capacityLimit: z43.number().nullable(),
28267
- attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28268
- saleStartsAt: z43.string().nullable(),
28269
- saleEndsAt: z43.string().nullable(),
28556
+ var publicEventTicketTypeSchema = z44.object({
28557
+ id: z44.string(),
28558
+ siteId: z44.string(),
28559
+ eventSeriesId: z44.string(),
28560
+ name: z44.string(),
28561
+ description: z44.string().nullable(),
28562
+ priceAmount: z44.number(),
28563
+ isActive: z44.boolean(),
28564
+ sortOrder: z44.number(),
28565
+ capacityMode: z44.enum(["limited", "unlimited"]),
28566
+ capacityLimit: z44.number().nullable(),
28567
+ attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
28568
+ saleStartsAt: z44.string().nullable(),
28569
+ saleEndsAt: z44.string().nullable(),
28270
28570
  availability: publicEventTicketTypeAvailabilitySchema,
28271
- createdAt: z43.string(),
28272
- updatedAt: z43.string()
28273
- });
28274
- var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28275
- z43.object({
28276
- kind: z43.literal("drop_in"),
28277
- currency: z43.string(),
28278
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28571
+ createdAt: z44.string(),
28572
+ updatedAt: z44.string()
28573
+ });
28574
+ var publicEventPricingSchema = z44.discriminatedUnion("kind", [
28575
+ z44.object({
28576
+ kind: z44.literal("drop_in"),
28577
+ currency: z44.string(),
28578
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28279
28579
  }),
28280
- z43.object({
28281
- kind: z43.literal("free_registration"),
28282
- currency: z43.string(),
28283
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28580
+ z44.object({
28581
+ kind: z44.literal("free_registration"),
28582
+ currency: z44.string(),
28583
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28284
28584
  }),
28285
- z43.object({
28286
- kind: z43.literal("single_paid"),
28287
- amount: z43.number(),
28288
- currency: z43.string(),
28289
- display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28585
+ z44.object({
28586
+ kind: z44.literal("single_paid"),
28587
+ amount: z44.number(),
28588
+ currency: z44.string(),
28589
+ display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
28290
28590
  }),
28291
- z43.object({
28292
- kind: z43.literal("ticket_types"),
28293
- currency: z43.string(),
28294
- ticketTypes: z43.array(publicEventTicketTypeSchema),
28591
+ z44.object({
28592
+ kind: z44.literal("ticket_types"),
28593
+ currency: z44.string(),
28594
+ ticketTypes: z44.array(publicEventTicketTypeSchema),
28295
28595
  display: publicEventTicketTypePriceDisplaySchema
28296
28596
  }),
28297
- z43.object({
28298
- kind: z43.literal("sliding_scale"),
28299
- minAmount: z43.number(),
28300
- maxAmount: z43.number(),
28301
- suggestedAmount: z43.number().nullable(),
28302
- currency: z43.string(),
28303
- display: z43.object({
28304
- kind: z43.literal("range"),
28305
- minAmount: z43.number(),
28306
- maxAmount: z43.number(),
28307
- currency: z43.string()
28597
+ z44.object({
28598
+ kind: z44.literal("sliding_scale"),
28599
+ minAmount: z44.number(),
28600
+ maxAmount: z44.number(),
28601
+ suggestedAmount: z44.number().nullable(),
28602
+ currency: z44.string(),
28603
+ display: z44.object({
28604
+ kind: z44.literal("range"),
28605
+ minAmount: z44.number(),
28606
+ maxAmount: z44.number(),
28607
+ currency: z44.string()
28308
28608
  })
28309
28609
  }),
28310
- z43.object({
28311
- kind: z43.literal("course"),
28312
- display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28610
+ z44.object({
28611
+ kind: z44.literal("course"),
28612
+ display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28313
28613
  }),
28314
- z43.object({
28315
- kind: z43.literal("external"),
28316
- display: z43.object({ kind: z43.literal("external"), label: z43.string() })
28614
+ z44.object({
28615
+ kind: z44.literal("external"),
28616
+ display: z44.object({ kind: z44.literal("external"), label: z44.string() })
28317
28617
  })
28318
28618
  ]);
28319
- var publicTeamMemberSummarySchema = z43.object({
28320
- id: z43.string(),
28321
- name: z43.string(),
28322
- roleLabel: z43.string().nullable(),
28323
- summary: z43.string().nullable(),
28324
- profilePath: z43.string().nullable()
28619
+ var publicTeamMemberSummarySchema = z44.object({
28620
+ id: z44.string(),
28621
+ name: z44.string(),
28622
+ roleLabel: z44.string().nullable(),
28623
+ summary: z44.string().nullable(),
28624
+ profilePath: z44.string().nullable()
28325
28625
  });
28326
- var publicEventSchema = z43.object({
28327
- kind: z43.enum(["event", "course_session"]).optional(),
28626
+ var publicEventSchema = z44.object({
28627
+ kind: z44.enum(["event", "course_session"]).optional(),
28328
28628
  eventPreset: eventPresetSchema.optional(),
28329
28629
  eventDestinationMode: eventDestinationModeSchema.optional(),
28330
28630
  scheduleScope: eventScheduleScopeSchema.optional(),
28331
- id: z43.string(),
28332
- occurrenceId: z43.string(),
28333
- seriesId: z43.string(),
28334
- title: z43.string(),
28335
- description: z43.string().nullable(),
28336
- content: z43.object({
28631
+ id: z44.string(),
28632
+ occurrenceId: z44.string(),
28633
+ seriesId: z44.string(),
28634
+ title: z44.string(),
28635
+ description: z44.string().nullable(),
28636
+ content: z44.object({
28337
28637
  body: RichTextDocSchema.nullable().optional()
28338
28638
  }).optional(),
28339
- presentation: z43.object({
28340
- cardTitleOverride: z43.string().nullable().optional(),
28341
- summary: z43.string().nullable().optional(),
28639
+ presentation: z44.object({
28640
+ cardTitleOverride: z44.string().nullable().optional(),
28641
+ summary: z44.string().nullable().optional(),
28342
28642
  image: mediaSchema2.nullable().optional()
28343
28643
  }).optional(),
28344
- slug: z43.string(),
28345
- path: z43.string().nullable(),
28644
+ slug: z44.string(),
28645
+ path: z44.string().nullable(),
28346
28646
  destination: publicEventDestinationSchema,
28347
- requiresRegistration: z43.boolean(),
28348
- deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28349
- attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28350
- startsAt: z43.string(),
28351
- endsAt: z43.string(),
28352
- capacity: z43.number().nullable(),
28353
- registeredCount: z43.number(),
28354
- availableSpots: z43.number().nullable(),
28355
- waitlistEnabled: z43.boolean(),
28647
+ requiresRegistration: z44.boolean(),
28648
+ deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
28649
+ attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
28650
+ startsAt: z44.string(),
28651
+ endsAt: z44.string(),
28652
+ capacity: z44.number().nullable(),
28653
+ registeredCount: z44.number(),
28654
+ availableSpots: z44.number().nullable(),
28655
+ waitlistEnabled: z44.boolean(),
28356
28656
  venue: eventVenueSchema.nullable(),
28357
28657
  eventCategory: eventCategorySchema.nullable(),
28358
- teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28359
- status: z43.enum(["active", "draft", "archived"]).optional(),
28360
- timeZone: z43.string(),
28658
+ teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
28659
+ status: z44.enum(["active", "draft", "archived"]).optional(),
28660
+ timeZone: z44.string(),
28361
28661
  pricing: publicEventPricingSchema,
28362
28662
  paymentTerms: blockBookingPaymentTermsSchema,
28363
28663
  accessRestriction: accessRestrictionSchema,
28364
- allowedCategoryIds: z43.array(z43.string()),
28365
- requireGuestDetails: z43.boolean().optional(),
28366
- acceptsPasses: z43.boolean().optional(),
28367
- acceptsMemberships: z43.boolean().optional(),
28368
- course: z43.object({
28369
- id: z43.string(),
28664
+ allowedCategoryIds: z44.array(z44.string()),
28665
+ requireGuestDetails: z44.boolean().optional(),
28666
+ acceptsPasses: z44.boolean().optional(),
28667
+ acceptsMemberships: z44.boolean().optional(),
28668
+ course: z44.object({
28669
+ id: z44.string(),
28370
28670
  pricing: coursePricingSchema.optional(),
28371
- priceCents: z43.number().nullable(),
28372
- currency: z43.string(),
28373
- enrollmentOpen: z43.boolean()
28671
+ priceCents: z44.number().nullable(),
28672
+ currency: z44.string(),
28673
+ enrollmentOpen: z44.boolean()
28374
28674
  }).nullable().optional()
28375
28675
  });
28376
- var publicEventsArraySchema = z43.array(publicEventSchema);
28676
+ var publicEventsArraySchema = z44.array(publicEventSchema);
28377
28677
 
28378
28678
  // ../blocks/src/system/blocks/events/shared/fields.ts
28379
28679
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28576,52 +28876,80 @@ function normalizeEventStaffMemberId(value) {
28576
28876
  return trimmed ? trimmed : null;
28577
28877
  }
28578
28878
 
28879
+ // ../blocks/src/system/blocks/events/shared/layout.ts
28880
+ var recoverEmptyHeadingWhenActive = {
28881
+ kind: "recover-empty-when-active",
28882
+ placeholder: "Add heading"
28883
+ };
28884
+ var recoverEmptyDescriptionWhenActive = {
28885
+ kind: "recover-empty-when-active",
28886
+ placeholder: "Add description"
28887
+ };
28888
+ function eventSectionHeaderLayoutNodes() {
28889
+ return [
28890
+ text(
28891
+ { as: "h2" },
28892
+ bind("content.heading"),
28893
+ when("content.heading", {
28894
+ authoringPresence: recoverEmptyHeadingWhenActive
28895
+ })
28896
+ ),
28897
+ richText(
28898
+ { className: "rb-prose rb-max-w-none" },
28899
+ bind("content.description"),
28900
+ when("content.description", {
28901
+ authoringPresence: recoverEmptyDescriptionWhenActive
28902
+ })
28903
+ )
28904
+ ];
28905
+ }
28906
+
28579
28907
  // ../blocks/src/system/blocks/shop.shared.ts
28580
- import { z as z44 } from "zod";
28581
- var publicPassProductSchema = z44.object({
28582
- id: z44.string(),
28583
- productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28584
- name: z44.string(),
28585
- description: z44.string().nullable(),
28586
- price: z44.number(),
28587
- currency: z44.string(),
28588
- creditsTotal: z44.number(),
28589
- pricePerCredit: z44.number(),
28590
- validDays: z44.number().nullable(),
28591
- eligibleCategoryIds: z44.array(z44.string()),
28592
- eligibleCategoryNames: z44.array(z44.string())
28593
- });
28594
- var publicPassProductCollectionSchema = z44.object({
28595
- passes: z44.array(publicPassProductSchema)
28596
- });
28597
- var publicMembershipProductSchema = z44.object({
28598
- id: z44.string(),
28599
- name: z44.string(),
28600
- description: z44.string().nullable(),
28601
- price: z44.number(),
28602
- currency: z44.string(),
28603
- billingInterval: z44.enum(["month", "year"]),
28604
- eligibleCategoryIds: z44.array(z44.string()),
28605
- eligibleCategoryNames: z44.array(z44.string())
28908
+ import { z as z45 } from "zod";
28909
+ var publicPassProductSchema = z45.object({
28910
+ id: z45.string(),
28911
+ productUseCase: z45.enum(["event_pass", "appointment_package"]).default("event_pass"),
28912
+ name: z45.string(),
28913
+ description: z45.string().nullable(),
28914
+ price: z45.number(),
28915
+ currency: z45.string(),
28916
+ creditsTotal: z45.number(),
28917
+ pricePerCredit: z45.number(),
28918
+ validDays: z45.number().nullable(),
28919
+ eligibleCategoryIds: z45.array(z45.string()),
28920
+ eligibleCategoryNames: z45.array(z45.string())
28921
+ });
28922
+ var publicPassProductCollectionSchema = z45.object({
28923
+ passes: z45.array(publicPassProductSchema)
28924
+ });
28925
+ var publicMembershipProductSchema = z45.object({
28926
+ id: z45.string(),
28927
+ name: z45.string(),
28928
+ description: z45.string().nullable(),
28929
+ price: z45.number(),
28930
+ currency: z45.string(),
28931
+ billingInterval: z45.enum(["month", "year"]),
28932
+ eligibleCategoryIds: z45.array(z45.string()),
28933
+ eligibleCategoryNames: z45.array(z45.string())
28606
28934
  });
28607
- var publicMembershipProductCollectionSchema = z44.object({
28608
- memberships: z44.array(publicMembershipProductSchema)
28935
+ var publicMembershipProductCollectionSchema = z45.object({
28936
+ memberships: z45.array(publicMembershipProductSchema)
28609
28937
  });
28610
28938
 
28611
28939
  // ../blocks/src/system/blocks/event-registration.shared.ts
28612
- import { z as z45 } from "zod";
28613
- var occurrenceContextSchema = z45.object({
28614
- id: z45.string(),
28615
- seriesId: z45.string(),
28616
- startsAt: z45.string(),
28617
- endsAt: z45.string(),
28618
- timeZone: z45.string(),
28619
- capacityOverride: z45.number().nullable().optional(),
28620
- overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28940
+ import { z as z46 } from "zod";
28941
+ var occurrenceContextSchema = z46.object({
28942
+ id: z46.string(),
28943
+ seriesId: z46.string(),
28944
+ startsAt: z46.string(),
28945
+ endsAt: z46.string(),
28946
+ timeZone: z46.string(),
28947
+ capacityOverride: z46.number().nullable().optional(),
28948
+ overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
28621
28949
  }).nullable();
28622
28950
 
28623
28951
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28624
- import { z as z47 } from "zod";
28952
+ import { z as z48 } from "zod";
28625
28953
 
28626
28954
  // ../blocks/src/system/constants/events.ts
28627
28955
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28808,17 +29136,17 @@ function readAmount(value) {
28808
29136
  }
28809
29137
 
28810
29138
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28811
- import { z as z46 } from "zod";
28812
- var previewStageSchema = z46.enum(["preview", "published"]);
28813
- var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28814
- var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28815
- var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28816
- var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28817
- var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28818
- var columnOptionSchema = z46.enum(["2", "3", "4"]);
28819
- var weekStartSchema = z46.enum(["sunday", "monday"]);
28820
- var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28821
- var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
29139
+ import { z as z47 } from "zod";
29140
+ var previewStageSchema = z47.enum(["preview", "published"]);
29141
+ var registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
29142
+ var eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
29143
+ var eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
29144
+ var eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
29145
+ var eventCalendarDefaultViewSchema = z47.enum(eventCalendarDefaultViewValues);
29146
+ var columnOptionSchema = z47.enum(["2", "3", "4"]);
29147
+ var weekStartSchema = z47.enum(["sunday", "monday"]);
29148
+ var filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
29149
+ var calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
28822
29150
 
28823
29151
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28824
29152
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28878,72 +29206,72 @@ function toRegistrationEvents(events) {
28878
29206
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28879
29207
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28880
29208
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28881
- var contentEntrySchema = z47.object({
28882
- id: z47.string(),
28883
- slug: z47.string(),
28884
- contentTypeSlug: z47.string()
29209
+ var contentEntrySchema = z48.object({
29210
+ id: z48.string(),
29211
+ slug: z48.string(),
29212
+ contentTypeSlug: z48.string()
28885
29213
  });
28886
- var eventRegistrationPublicEventSchema = z47.preprocess(
29214
+ var eventRegistrationPublicEventSchema = z48.preprocess(
28887
29215
  normalizeEventRegistrationEventInput,
28888
29216
  publicEventSchema
28889
29217
  );
28890
- var eventRegistrationSourceSchema = z47.object({
28891
- siteId: z47.string().optional(),
28892
- apiBaseUrl: z47.string().optional(),
28893
- portalToken: z47.string().nullable().optional(),
28894
- previewToken: z47.string().nullable().optional(),
29218
+ var eventRegistrationSourceSchema = z48.object({
29219
+ siteId: z48.string().optional(),
29220
+ apiBaseUrl: z48.string().optional(),
29221
+ portalToken: z48.string().nullable().optional(),
29222
+ previewToken: z48.string().nullable().optional(),
28895
29223
  occurrenceContext: occurrenceContextSchema.optional(),
28896
29224
  contentEntry: contentEntrySchema.nullable().optional(),
28897
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28898
- className: z47.string().nullable().optional(),
28899
- buttonText: z47.string().nullable().optional(),
28900
- maxTickets: z47.string().nullable().optional(),
28901
- showVenue: z47.boolean().optional(),
28902
- showCapacity: z47.boolean().optional(),
28903
- successMessage: z47.string().optional(),
28904
- waitlistMessage: z47.string().optional(),
29225
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29226
+ className: z48.string().nullable().optional(),
29227
+ buttonText: z48.string().nullable().optional(),
29228
+ maxTickets: z48.string().nullable().optional(),
29229
+ showVenue: z48.boolean().optional(),
29230
+ showCapacity: z48.boolean().optional(),
29231
+ successMessage: z48.string().optional(),
29232
+ waitlistMessage: z48.string().optional(),
28905
29233
  buttonVariant: registrationButtonVariantSchema.optional(),
28906
- overlayEnabled: z47.boolean().optional(),
28907
- spamProtectionEnabled: z47.boolean().optional(),
29234
+ overlayEnabled: z48.boolean().optional(),
29235
+ spamProtectionEnabled: z48.boolean().optional(),
28908
29236
  stage: previewStageSchema.optional(),
28909
- supportEmail: z47.string().optional(),
29237
+ supportEmail: z48.string().optional(),
28910
29238
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28911
29239
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28912
29240
  });
28913
- var eventRegistrationDisplaySchema = z47.object({
28914
- kind: z47.literal("event-registration"),
28915
- state: z47.literal("generic-shell"),
28916
- className: z47.string().nullable(),
28917
- titleText: z47.string(),
28918
- bodyText: z47.string(),
28919
- stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28920
- summaryButtonText: z47.string()
29241
+ var eventRegistrationDisplaySchema = z48.object({
29242
+ kind: z48.literal("event-registration"),
29243
+ state: z48.literal("generic-shell"),
29244
+ className: z48.string().nullable(),
29245
+ titleText: z48.string(),
29246
+ bodyText: z48.string(),
29247
+ stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
29248
+ summaryButtonText: z48.string()
28921
29249
  });
28922
- var eventRegistrationHydrationSchema = z47.object({
29250
+ var eventRegistrationHydrationSchema = z48.object({
28923
29251
  occurrenceContext: occurrenceContextSchema.optional(),
28924
29252
  contentEntry: contentEntrySchema.nullable().optional(),
28925
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28926
- maxTickets: z47.string().optional(),
28927
- showVenue: z47.boolean().optional(),
28928
- showCapacity: z47.boolean().optional(),
28929
- successMessage: z47.string().optional(),
28930
- waitlistMessage: z47.string().optional(),
29253
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29254
+ maxTickets: z48.string().optional(),
29255
+ showVenue: z48.boolean().optional(),
29256
+ showCapacity: z48.boolean().optional(),
29257
+ successMessage: z48.string().optional(),
29258
+ waitlistMessage: z48.string().optional(),
28931
29259
  buttonVariant: registrationButtonVariantSchema.optional(),
28932
- overlayEnabled: z47.boolean().optional(),
28933
- spamProtectionEnabled: z47.boolean().optional(),
28934
- supportEmail: z47.string().optional(),
29260
+ overlayEnabled: z48.boolean().optional(),
29261
+ spamProtectionEnabled: z48.boolean().optional(),
29262
+ supportEmail: z48.string().optional(),
28935
29263
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28936
29264
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28937
29265
  });
28938
- var eventRegistrationRenderSchema = z47.object({
29266
+ var eventRegistrationRenderSchema = z48.object({
28939
29267
  display: eventRegistrationDisplaySchema,
28940
29268
  hydration: eventRegistrationHydrationSchema
28941
29269
  });
28942
- var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28943
- siteId: z47.string().optional(),
28944
- apiBaseUrl: z47.string().optional(),
28945
- portalToken: z47.string().nullable().optional(),
28946
- previewToken: z47.string().nullable().optional(),
29270
+ var eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
29271
+ siteId: z48.string().optional(),
29272
+ apiBaseUrl: z48.string().optional(),
29273
+ portalToken: z48.string().nullable().optional(),
29274
+ previewToken: z48.string().nullable().optional(),
28947
29275
  stage: previewStageSchema.optional()
28948
29276
  }));
28949
29277
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29294,73 +29622,73 @@ var eventRegistrationBlockDefinition = {
29294
29622
  };
29295
29623
 
29296
29624
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
29297
- import { z as z48 } from "zod";
29298
- var contentEntrySchema2 = z48.object({
29299
- id: z48.string(),
29300
- slug: z48.string(),
29301
- contentTypeSlug: z48.string()
29302
- });
29303
- var courseEntrySubrouteContextSchema = z48.union([
29304
- z48.object({
29305
- kind: z48.literal("course-run"),
29306
- run: z48.object({
29307
- courseId: z48.string(),
29308
- seriesId: z48.string(),
29309
- runSlug: z48.string(),
29310
- runName: z48.string().nullable()
29625
+ import { z as z49 } from "zod";
29626
+ var contentEntrySchema2 = z49.object({
29627
+ id: z49.string(),
29628
+ slug: z49.string(),
29629
+ contentTypeSlug: z49.string()
29630
+ });
29631
+ var courseEntrySubrouteContextSchema = z49.union([
29632
+ z49.object({
29633
+ kind: z49.literal("course-run"),
29634
+ run: z49.object({
29635
+ courseId: z49.string(),
29636
+ seriesId: z49.string(),
29637
+ runSlug: z49.string(),
29638
+ runName: z49.string().nullable()
29311
29639
  })
29312
29640
  }),
29313
- z48.object({
29314
- kind: z48.literal("event-occurrence"),
29641
+ z49.object({
29642
+ kind: z49.literal("event-occurrence"),
29315
29643
  occurrence: occurrenceContextSchema
29316
29644
  })
29317
29645
  ]);
29318
- var courseRegistrationSourceSchema = z48.object({
29319
- siteId: z48.string().optional(),
29320
- apiBaseUrl: z48.string().optional(),
29321
- portalToken: z48.string().nullable().optional(),
29646
+ var courseRegistrationSourceSchema = z49.object({
29647
+ siteId: z49.string().optional(),
29648
+ apiBaseUrl: z49.string().optional(),
29649
+ portalToken: z49.string().nullable().optional(),
29322
29650
  contentEntry: contentEntrySchema2.nullable().optional(),
29323
29651
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29324
- courses: z48.array(publicCourseSchema).nullable().optional(),
29325
- className: z48.string().nullable().optional(),
29326
- showSessions: z48.boolean().optional(),
29327
- showPrice: z48.boolean().optional(),
29328
- showCapacity: z48.boolean().optional(),
29329
- showVenue: z48.boolean().optional(),
29330
- successMessage: z48.string().optional(),
29331
- waitlistMessage: z48.string().optional(),
29332
- membershipMessage: z48.string().optional(),
29333
- buttonText: z48.string().nullable().optional(),
29652
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29653
+ className: z49.string().nullable().optional(),
29654
+ showSessions: z49.boolean().optional(),
29655
+ showPrice: z49.boolean().optional(),
29656
+ showCapacity: z49.boolean().optional(),
29657
+ showVenue: z49.boolean().optional(),
29658
+ successMessage: z49.string().optional(),
29659
+ waitlistMessage: z49.string().optional(),
29660
+ membershipMessage: z49.string().optional(),
29661
+ buttonText: z49.string().nullable().optional(),
29334
29662
  buttonVariant: registrationButtonVariantSchema.optional(),
29335
29663
  stage: previewStageSchema.optional()
29336
29664
  });
29337
- var courseRegistrationDisplaySchema = z48.object({
29338
- kind: z48.literal("course-registration"),
29339
- state: z48.literal("shell"),
29340
- className: z48.string().nullable(),
29341
- summaryButtonText: z48.string()
29665
+ var courseRegistrationDisplaySchema = z49.object({
29666
+ kind: z49.literal("course-registration"),
29667
+ state: z49.literal("shell"),
29668
+ className: z49.string().nullable(),
29669
+ summaryButtonText: z49.string()
29342
29670
  });
29343
- var courseRegistrationHydrationSchema = z48.object({
29671
+ var courseRegistrationHydrationSchema = z49.object({
29344
29672
  contentEntry: contentEntrySchema2.nullable().optional(),
29345
29673
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29346
- courses: z48.array(publicCourseSchema).nullable().optional(),
29347
- showSessions: z48.boolean().optional(),
29348
- showPrice: z48.boolean().optional(),
29349
- showCapacity: z48.boolean().optional(),
29350
- showVenue: z48.boolean().optional(),
29351
- successMessage: z48.string().optional(),
29352
- waitlistMessage: z48.string().optional(),
29353
- membershipMessage: z48.string().optional(),
29674
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29675
+ showSessions: z49.boolean().optional(),
29676
+ showPrice: z49.boolean().optional(),
29677
+ showCapacity: z49.boolean().optional(),
29678
+ showVenue: z49.boolean().optional(),
29679
+ successMessage: z49.string().optional(),
29680
+ waitlistMessage: z49.string().optional(),
29681
+ membershipMessage: z49.string().optional(),
29354
29682
  buttonVariant: registrationButtonVariantSchema.optional()
29355
29683
  });
29356
- var courseRegistrationRenderSchema = z48.object({
29684
+ var courseRegistrationRenderSchema = z49.object({
29357
29685
  display: courseRegistrationDisplaySchema,
29358
29686
  hydration: courseRegistrationHydrationSchema
29359
29687
  });
29360
- var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29361
- siteId: z48.string().optional(),
29362
- apiBaseUrl: z48.string().optional(),
29363
- portalToken: z48.string().nullable().optional(),
29688
+ var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
29689
+ siteId: z49.string().optional(),
29690
+ apiBaseUrl: z49.string().optional(),
29691
+ portalToken: z49.string().nullable().optional(),
29364
29692
  stage: previewStageSchema.optional()
29365
29693
  }));
29366
29694
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29620,7 +29948,7 @@ var courseRegistrationBlockDefinition = {
29620
29948
  };
29621
29949
 
29622
29950
  // ../blocks/src/system/blocks/event-details.ts
29623
- import { z as z49 } from "zod";
29951
+ import { z as z50 } from "zod";
29624
29952
  var eventDetailsManifest = createBlockManifest({
29625
29953
  id: "block.event-details",
29626
29954
  version: "1.0.0",
@@ -29752,37 +30080,37 @@ var eventDetailsManifest = createBlockManifest({
29752
30080
  })
29753
30081
  ]
29754
30082
  });
29755
- var occurrenceContextSchema2 = z49.object({
29756
- id: z49.string(),
29757
- seriesId: z49.string(),
29758
- startsAt: z49.string(),
29759
- endsAt: z49.string(),
29760
- timeZone: z49.string(),
29761
- capacityOverride: z49.number().nullable().optional(),
29762
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
30083
+ var occurrenceContextSchema2 = z50.object({
30084
+ id: z50.string(),
30085
+ seriesId: z50.string(),
30086
+ startsAt: z50.string(),
30087
+ endsAt: z50.string(),
30088
+ timeZone: z50.string(),
30089
+ capacityOverride: z50.number().nullable().optional(),
30090
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29763
30091
  }).nullable();
29764
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29765
- id: z49.string(),
29766
- publicLabel: z49.string(),
29767
- description: z49.string().nullable(),
29768
- minTicketsRequired: z49.number().nullable()
30092
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
30093
+ id: z50.string(),
30094
+ publicLabel: z50.string(),
30095
+ description: z50.string().nullable(),
30096
+ minTicketsRequired: z50.number().nullable()
29769
30097
  });
29770
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
30098
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29771
30099
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29772
- discountType: z49.literal("percent"),
29773
- discountPercent: z49.number(),
29774
- discountAmountCents: z49.null()
30100
+ discountType: z50.literal("percent"),
30101
+ discountPercent: z50.number(),
30102
+ discountAmountCents: z50.null()
29775
30103
  }),
29776
30104
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29777
- discountType: z49.literal("fixed"),
29778
- discountPercent: z49.null(),
29779
- discountAmountCents: z49.number()
30105
+ discountType: z50.literal("fixed"),
30106
+ discountPercent: z50.null(),
30107
+ discountAmountCents: z50.number()
29780
30108
  })
29781
30109
  ]);
29782
30110
  var eventDetailsBlockDefinition = {
29783
30111
  manifest: eventDetailsManifest,
29784
30112
  dataSchemas: {
29785
- eventDetailsData: z49.object({
30113
+ eventDetailsData: z50.object({
29786
30114
  events: publicEventsArraySchema,
29787
30115
  sitePasses: publicPassProductCollectionSchema,
29788
30116
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -30037,18 +30365,7 @@ var eventSpotlightFields = [
30037
30365
  var eventSpotlightLayout = [
30038
30366
  styledSection({
30039
30367
  children: sectionContainer([
30040
- // Optional heading
30041
- text(
30042
- { as: "h2" },
30043
- bind("content.heading"),
30044
- when("content.heading")
30045
- ),
30046
- // Optional description
30047
- richText(
30048
- { className: "rb-prose rb-max-w-none" },
30049
- bind("content.description"),
30050
- when("content.description")
30051
- ),
30368
+ ...eventSectionHeaderLayoutNodes(),
30052
30369
  // Event spotlight component
30053
30370
  el("event-spotlight", {
30054
30371
  events: { $bind: { from: "data.events" } },
@@ -30109,7 +30426,7 @@ var eventSpotlightBlockDefinition = {
30109
30426
  };
30110
30427
 
30111
30428
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30112
- import { z as z51 } from "zod";
30429
+ import { z as z52 } from "zod";
30113
30430
 
30114
30431
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
30115
30432
  var COLUMN_CLASSES = {
@@ -30217,16 +30534,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30217
30534
  }
30218
30535
 
30219
30536
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30220
- import { z as z50 } from "zod";
30537
+ import { z as z51 } from "zod";
30221
30538
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30222
- var eventPageSizeSchema = z50.union([
30223
- z50.literal(3),
30224
- z50.literal(6),
30225
- z50.literal(10),
30226
- z50.literal(12),
30227
- z50.literal(20),
30228
- z50.literal(24),
30229
- z50.literal(30)
30539
+ var eventPageSizeSchema = z51.union([
30540
+ z51.literal(3),
30541
+ z51.literal(6),
30542
+ z51.literal(10),
30543
+ z51.literal(12),
30544
+ z51.literal(20),
30545
+ z51.literal(24),
30546
+ z51.literal(30)
30230
30547
  ]);
30231
30548
  var eventPageSizeSet = new Set(eventPageSizeValues);
30232
30549
  function resolveEventPageSize(value, fallback = 12) {
@@ -30236,15 +30553,15 @@ function resolveEventPageSize(value, fallback = 12) {
30236
30553
  function resolveEventCalendarListPageSize(input) {
30237
30554
  return resolveEventPageSize(input.eventsPerPage);
30238
30555
  }
30239
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30240
- z50.object({
30241
- kind: z50.literal("loadMore"),
30242
- label: z50.string()
30556
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30557
+ z51.object({
30558
+ kind: z51.literal("loadMore"),
30559
+ label: z51.string()
30243
30560
  }),
30244
- z50.object({
30245
- kind: z50.literal("seeAllLink"),
30246
- label: z50.string(),
30247
- href: z50.string()
30561
+ z51.object({
30562
+ kind: z51.literal("seeAllLink"),
30563
+ label: z51.string(),
30564
+ href: z51.string()
30248
30565
  })
30249
30566
  ]);
30250
30567
  function resolveEventListPaginationAction(input) {
@@ -30257,89 +30574,89 @@ function resolveEventListPaginationAction(input) {
30257
30574
  }
30258
30575
 
30259
30576
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30260
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30261
- var eventCardVariantInputSchema = z51.union([
30577
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30578
+ var eventCardVariantInputSchema = z52.union([
30262
30579
  cardVariantRoleSchema,
30263
30580
  legacyEventCardVariantSchema
30264
30581
  ]);
30265
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30266
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30267
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30268
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30269
- var eventListingSourceSchema = z51.object({
30270
- events: z51.array(publicEventSchema).nullable().optional(),
30271
- siteId: z51.string(),
30272
- apiBaseUrl: z51.string().optional(),
30582
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30583
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30584
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30585
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30586
+ var eventListingSourceSchema = z52.object({
30587
+ events: z52.array(publicEventSchema).nullable().optional(),
30588
+ siteId: z52.string(),
30589
+ apiBaseUrl: z52.string().optional(),
30273
30590
  stage: previewStageSchema.optional(),
30274
30591
  layout: eventLayoutSchema.optional(),
30275
30592
  columns: columnOptionSchema.optional(),
30276
- eventsPerPage: z51.string().optional(),
30277
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30278
- seeAllUrl: z51.string().optional(),
30279
- loadMoreText: z51.string().optional(),
30593
+ eventsPerPage: z52.string().optional(),
30594
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30595
+ seeAllUrl: z52.string().optional(),
30596
+ loadMoreText: z52.string().optional(),
30280
30597
  cardVariant: eventCardVariantInputSchema.optional(),
30281
30598
  buttonVariant: eventButtonVariantSchema.optional(),
30282
- buttonText: z51.string().optional(),
30283
- showVenue: z51.boolean().optional(),
30284
- showMap: z51.boolean().optional(),
30285
- showCapacity: z51.boolean().optional(),
30286
- emptyMessage: z51.string().optional(),
30287
- className: z51.string().optional(),
30288
- showFilters: z51.boolean().nullable().optional(),
30599
+ buttonText: z52.string().optional(),
30600
+ showVenue: z52.boolean().optional(),
30601
+ showMap: z52.boolean().optional(),
30602
+ showCapacity: z52.boolean().optional(),
30603
+ emptyMessage: z52.string().optional(),
30604
+ className: z52.string().optional(),
30605
+ showFilters: z52.boolean().nullable().optional(),
30289
30606
  showCategoryFilter: filterAutoShowSchema.optional(),
30290
- showVenueFilter: z51.boolean().nullable().optional(),
30291
- showStaffFilter: z51.boolean().nullable().optional(),
30607
+ showVenueFilter: z52.boolean().nullable().optional(),
30608
+ showStaffFilter: z52.boolean().nullable().optional(),
30292
30609
  eventKind: eventBlockKindSchema.nullable().optional(),
30293
30610
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30294
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30611
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30295
30612
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30296
- filterCategoryIds: z51.string().nullable().optional(),
30297
- filterStaffMemberId: z51.string().nullable().optional(),
30298
- filterVenueId: z51.string().nullable().optional()
30613
+ filterCategoryIds: z52.string().nullable().optional(),
30614
+ filterStaffMemberId: z52.string().nullable().optional(),
30615
+ filterVenueId: z52.string().nullable().optional()
30299
30616
  });
30300
- var eventListingDisplaySchema = z51.object({
30301
- kind: z51.literal("event-listing"),
30302
- state: z51.enum(["loading", "empty", "ready"]),
30617
+ var eventListingDisplaySchema = z52.object({
30618
+ kind: z52.literal("event-listing"),
30619
+ state: z52.enum(["loading", "empty", "ready"]),
30303
30620
  listLayout: eventLayoutSchema,
30304
- className: z51.string().nullable(),
30305
- emptyMessage: z51.string(),
30306
- loadingMessage: z51.string(),
30307
- containerClass: z51.string(),
30621
+ className: z52.string().nullable(),
30622
+ emptyMessage: z52.string(),
30623
+ loadingMessage: z52.string(),
30624
+ containerClass: z52.string(),
30308
30625
  cardVariant: cardVariantRoleSchema,
30309
30626
  buttonVariant: eventButtonVariantSchema,
30310
- buttonText: z51.string(),
30311
- showVenue: z51.boolean(),
30312
- showMap: z51.boolean(),
30313
- showCapacity: z51.boolean(),
30627
+ buttonText: z52.string(),
30628
+ showVenue: z52.boolean(),
30629
+ showMap: z52.boolean(),
30630
+ showCapacity: z52.boolean(),
30314
30631
  orientation: cardOrientationSchema,
30315
- events: z51.array(publicEventSchema)
30632
+ events: z52.array(publicEventSchema)
30316
30633
  });
30317
- var eventListingHydrationSchema = z51.object({
30318
- siteId: z51.string(),
30634
+ var eventListingHydrationSchema = z52.object({
30635
+ siteId: z52.string(),
30319
30636
  stage: previewStageSchema.optional(),
30320
30637
  eventsPerPage: eventPageSizeSchema,
30321
30638
  paginationAction: eventListPaginationActionSchema,
30322
- showFilters: z51.boolean(),
30639
+ showFilters: z52.boolean(),
30323
30640
  showCategoryFilter: filterAutoShowSchema,
30324
- showVenueFilter: z51.boolean(),
30325
- showStaffFilter: z51.boolean(),
30641
+ showVenueFilter: z52.boolean(),
30642
+ showStaffFilter: z52.boolean(),
30326
30643
  eventKind: eventBlockKindSchema,
30327
30644
  eventSurface: eventSurfaceScopeSchema,
30328
- filterEventPresets: z51.string().nullable(),
30645
+ filterEventPresets: z52.string().nullable(),
30329
30646
  scheduleScope: eventScheduleScopeSchema2,
30330
- filterCategoryIds: z51.string().nullable().optional(),
30331
- filterStaffMemberId: z51.string().nullable().optional(),
30332
- filterVenueId: z51.string().nullable().optional(),
30333
- fetchInitialEventsOnMount: z51.boolean()
30647
+ filterCategoryIds: z52.string().nullable().optional(),
30648
+ filterStaffMemberId: z52.string().nullable().optional(),
30649
+ filterVenueId: z52.string().nullable().optional(),
30650
+ fetchInitialEventsOnMount: z52.boolean()
30334
30651
  });
30335
- var eventListingRenderSchema = z51.object({
30652
+ var eventListingRenderSchema = z52.object({
30336
30653
  display: eventListingDisplaySchema,
30337
30654
  hydration: eventListingHydrationSchema
30338
30655
  });
30339
30656
  var eventListingIslandMetaCodec = createZodCodec(
30340
- z51.object({
30341
- siteId: z51.string(),
30342
- apiBaseUrl: z51.string().optional(),
30657
+ z52.object({
30658
+ siteId: z52.string(),
30659
+ apiBaseUrl: z52.string().optional(),
30343
30660
  stage: previewStageSchema.optional()
30344
30661
  })
30345
30662
  );
@@ -30579,18 +30896,7 @@ var eventListingAdditionalFields = [
30579
30896
  var eventListingLayout = [
30580
30897
  styledSection({
30581
30898
  children: sectionContainer([
30582
- // Optional heading
30583
- text(
30584
- { as: "h2" },
30585
- bind("content.heading"),
30586
- when("content.heading")
30587
- ),
30588
- // Optional description
30589
- richText(
30590
- { className: "rb-prose rb-max-w-none" },
30591
- bind("content.description"),
30592
- when("content.description")
30593
- ),
30899
+ ...eventSectionHeaderLayoutNodes(),
30594
30900
  // Event listing component with pagination
30595
30901
  el("event-listing", withApiBindings({
30596
30902
  events: { $bind: { from: "data.events" } },
@@ -30706,15 +31012,15 @@ var eventListingBlockDefinition = {
30706
31012
  };
30707
31013
 
30708
31014
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30709
- import { z as z52 } from "zod";
30710
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30711
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30712
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30713
- var eventCalendarSourceSchema = z52.object(
31015
+ import { z as z53 } from "zod";
31016
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
31017
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
31018
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
31019
+ var eventCalendarSourceSchema = z53.object(
30714
31020
  {
30715
- events: z52.array(publicEventSchema).nullable().optional(),
30716
- siteId: z52.string(),
30717
- apiBaseUrl: z52.string().optional(),
31021
+ events: z53.array(publicEventSchema).nullable().optional(),
31022
+ siteId: z53.string(),
31023
+ apiBaseUrl: z53.string().optional(),
30718
31024
  stage: previewStageSchema.optional(),
30719
31025
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30720
31026
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30722,38 +31028,38 @@ var eventCalendarSourceSchema = z52.object(
30722
31028
  listColumns: columnOptionSchema.optional(),
30723
31029
  layout: eventLayoutSchema.optional(),
30724
31030
  columns: columnOptionSchema.optional(),
30725
- eventsPerPage: z52.string().optional(),
30726
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30727
- seeAllUrl: z52.string().optional(),
30728
- loadMoreText: z52.string().optional(),
31031
+ eventsPerPage: z53.string().optional(),
31032
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
31033
+ seeAllUrl: z53.string().optional(),
31034
+ loadMoreText: z53.string().optional(),
30729
31035
  startOfWeek: weekStartSchema.optional(),
30730
31036
  calendarTabViews: calendarTabViewsSchema.optional(),
30731
31037
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30732
- showFilters: z52.boolean().nullable().optional(),
31038
+ showFilters: z53.boolean().nullable().optional(),
30733
31039
  showCategoryFilter: filterAutoShowSchema.optional(),
30734
- showVenueFilter: z52.boolean().nullable().optional(),
30735
- showStaffFilter: z52.boolean().nullable().optional(),
31040
+ showVenueFilter: z53.boolean().nullable().optional(),
31041
+ showStaffFilter: z53.boolean().nullable().optional(),
30736
31042
  kind: eventBlockKindSchema2.nullable().optional(),
30737
31043
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30738
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
31044
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30739
31045
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30740
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30741
- filterStaffMemberId: z52.string().nullable().optional(),
30742
- filterVenueId: z52.string().nullable().optional(),
31046
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
31047
+ filterStaffMemberId: z53.string().nullable().optional(),
31048
+ filterVenueId: z53.string().nullable().optional(),
30743
31049
  buttonVariant: eventButtonVariantSchema.optional(),
30744
- buttonText: z52.string().optional(),
30745
- showVenue: z52.boolean().nullable().optional(),
30746
- showMap: z52.boolean().nullable().optional(),
30747
- showCapacity: z52.boolean().nullable().optional(),
30748
- emptyMessage: z52.string().optional(),
30749
- className: z52.string().optional()
31050
+ buttonText: z53.string().optional(),
31051
+ showVenue: z53.boolean().nullable().optional(),
31052
+ showMap: z53.boolean().nullable().optional(),
31053
+ showCapacity: z53.boolean().nullable().optional(),
31054
+ emptyMessage: z53.string().optional(),
31055
+ className: z53.string().optional()
30750
31056
  }
30751
31057
  );
30752
- var eventCalendarDisplaySchema = z52.object({
30753
- kind: z52.literal("event-calendar"),
31058
+ var eventCalendarDisplaySchema = z53.object({
31059
+ kind: z53.literal("event-calendar"),
30754
31060
  displayMode: eventCalendarDisplayModeSchema,
30755
- className: z52.string().nullable(),
30756
- events: z52.array(publicEventSchema),
31061
+ className: z53.string().nullable(),
31062
+ events: z53.array(publicEventSchema),
30757
31063
  listLayout: eventLayoutSchema,
30758
31064
  listColumns: columnOptionSchema,
30759
31065
  eventsPerPage: eventPageSizeSchema,
@@ -30761,41 +31067,41 @@ var eventCalendarDisplaySchema = z52.object({
30761
31067
  startOfWeek: weekStartSchema,
30762
31068
  calendarTabViews: calendarTabViewsSchema,
30763
31069
  defaultCalendarView: eventCalendarDefaultViewSchema,
30764
- showFilters: z52.boolean(),
31070
+ showFilters: z53.boolean(),
30765
31071
  showCategoryFilter: filterAutoShowSchema,
30766
- showVenueFilter: z52.boolean(),
30767
- showStaffFilter: z52.boolean(),
31072
+ showVenueFilter: z53.boolean(),
31073
+ showStaffFilter: z53.boolean(),
30768
31074
  eventKind: eventBlockKindSchema2,
30769
31075
  eventSurface: eventSurfaceScopeSchema2,
30770
- filterEventPresets: z52.string().nullable(),
31076
+ filterEventPresets: z53.string().nullable(),
30771
31077
  scheduleScope: eventScheduleScopeSchema3,
30772
- filterCategoryIds: z52.string().nullable(),
30773
- filterStaffMemberId: z52.string().nullable(),
30774
- filterVenueId: z52.string().nullable(),
31078
+ filterCategoryIds: z53.string().nullable(),
31079
+ filterStaffMemberId: z53.string().nullable(),
31080
+ filterVenueId: z53.string().nullable(),
30775
31081
  buttonVariant: eventButtonVariantSchema,
30776
- buttonText: z52.string(),
30777
- showVenue: z52.boolean(),
30778
- showMap: z52.boolean(),
30779
- showCapacity: z52.boolean(),
30780
- emptyMessage: z52.string()
30781
- });
30782
- var eventCalendarHydrationSchema = z52.object({
30783
- siteId: z52.string(),
31082
+ buttonText: z53.string(),
31083
+ showVenue: z53.boolean(),
31084
+ showMap: z53.boolean(),
31085
+ showCapacity: z53.boolean(),
31086
+ emptyMessage: z53.string()
31087
+ });
31088
+ var eventCalendarHydrationSchema = z53.object({
31089
+ siteId: z53.string(),
30784
31090
  stage: previewStageSchema.optional(),
30785
- prefetchedEvents: z52.boolean(),
31091
+ prefetchedEvents: z53.boolean(),
30786
31092
  eventKind: eventBlockKindSchema2,
30787
31093
  eventSurface: eventSurfaceScopeSchema2,
30788
- filterEventPresets: z52.string().nullable(),
31094
+ filterEventPresets: z53.string().nullable(),
30789
31095
  scheduleScope: eventScheduleScopeSchema3
30790
31096
  });
30791
- var eventCalendarRenderSchema = z52.object({
31097
+ var eventCalendarRenderSchema = z53.object({
30792
31098
  display: eventCalendarDisplaySchema,
30793
31099
  hydration: eventCalendarHydrationSchema
30794
31100
  });
30795
31101
  var eventCalendarIslandMetaCodec = createZodCodec(
30796
- z52.object({
30797
- siteId: z52.string(),
30798
- apiBaseUrl: z52.string().optional(),
31102
+ z53.object({
31103
+ siteId: z53.string(),
31104
+ apiBaseUrl: z53.string().optional(),
30799
31105
  stage: previewStageSchema.optional()
30800
31106
  })
30801
31107
  );
@@ -30915,14 +31221,7 @@ var eventCalendarLayout = [
30915
31221
  styledSection({
30916
31222
  children: sectionContainer(
30917
31223
  [
30918
- // Optional heading
30919
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30920
- // Optional description
30921
- richText(
30922
- { className: "rb-prose rb-max-w-none" },
30923
- bind("content.description"),
30924
- when("content.description")
30925
- ),
31224
+ ...eventSectionHeaderLayoutNodes(),
30926
31225
  // Event calendar component (handles all display modes)
30927
31226
  el(
30928
31227
  "event-calendar",
@@ -31567,7 +31866,7 @@ var eventCalendarBlockDefinition = {
31567
31866
  };
31568
31867
 
31569
31868
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31570
- import { z as z53 } from "zod";
31869
+ import { z as z54 } from "zod";
31571
31870
 
31572
31871
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31573
31872
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31659,13 +31958,13 @@ function isRecord6(value) {
31659
31958
  }
31660
31959
 
31661
31960
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31662
- var publicRouteCandidatesSchema = z53.object({
31663
- routes: z53.array(z53.object({
31664
- entityId: z53.string(),
31665
- path: z53.string(),
31666
- title: z53.string(),
31667
- kind: z53.enum(["page", "content"]),
31668
- contentTypeKey: z53.string().nullable().optional()
31961
+ var publicRouteCandidatesSchema = z54.object({
31962
+ routes: z54.array(z54.object({
31963
+ entityId: z54.string(),
31964
+ path: z54.string(),
31965
+ title: z54.string(),
31966
+ kind: z54.enum(["page", "content"]),
31967
+ contentTypeKey: z54.string().nullable().optional()
31669
31968
  }))
31670
31969
  });
31671
31970
  var groupOverrideFields = [
@@ -32063,7 +32362,7 @@ function isRecord7(value) {
32063
32362
  }
32064
32363
 
32065
32364
  // ../blocks/src/system/blocks/embed.ts
32066
- import { z as z54 } from "zod";
32365
+ import { z as z55 } from "zod";
32067
32366
  var embedFields = [
32068
32367
  // Section heading
32069
32368
  parseFieldDefinition({
@@ -32294,18 +32593,18 @@ var embedManifest = createBlockManifest({
32294
32593
  spacing: "lg"
32295
32594
  }
32296
32595
  });
32297
- var embedEntrySchema = z54.object({
32298
- id: z54.string(),
32299
- identifier: z54.string(),
32300
- title: z54.string(),
32301
- slug: z54.string().nullable().optional(),
32302
- content: z54.record(z54.string(), z54.unknown()).optional(),
32303
- publishedAt: z54.string().nullable().optional()
32596
+ var embedEntrySchema = z55.object({
32597
+ id: z55.string(),
32598
+ identifier: z55.string(),
32599
+ title: z55.string(),
32600
+ slug: z55.string().nullable().optional(),
32601
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32602
+ publishedAt: z55.string().nullable().optional()
32304
32603
  });
32305
32604
  var embedBlockDefinition = {
32306
32605
  manifest: embedManifest,
32307
32606
  dataSchemas: {
32308
- entries: z54.array(embedEntrySchema).optional()
32607
+ entries: z55.array(embedEntrySchema).optional()
32309
32608
  },
32310
32609
  dataLoaders: {
32311
32610
  entries: {
@@ -33489,49 +33788,49 @@ var fileDownloadBlockDefinition = {
33489
33788
  };
33490
33789
 
33491
33790
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33492
- import { z as z57 } from "zod";
33791
+ import { z as z58 } from "zod";
33493
33792
 
33494
33793
  // ../blocks/src/system/blocks/products/shared.ts
33495
- import { z as z55 } from "zod";
33496
- var publicProductVariantSchema = z55.object({
33497
- id: z55.string(),
33498
- title: z55.string(),
33499
- sku: z55.string().nullable(),
33500
- priceCents: z55.number(),
33501
- stockQuantity: z55.number().nullable(),
33502
- soldOut: z55.boolean()
33503
- });
33504
- var publicProductSchema = z55.object({
33505
- id: z55.string(),
33506
- contentEntryId: z55.string().nullable(),
33507
- title: z55.string(),
33508
- slug: z55.string(),
33509
- path: z55.string().nullable(),
33510
- status: z55.enum(["draft", "active"]),
33511
- priceCents: z55.number(),
33512
- currency: z55.string(),
33513
- productType: z55.enum(["physical", "digital"]),
33514
- requiresShipping: z55.boolean(),
33515
- hasVariants: z55.boolean(),
33516
- trackInventory: z55.boolean(),
33517
- soldOut: z55.boolean(),
33518
- category: z55.object({
33519
- id: z55.string(),
33520
- name: z55.string(),
33521
- slug: z55.string()
33794
+ import { z as z56 } from "zod";
33795
+ var publicProductVariantSchema = z56.object({
33796
+ id: z56.string(),
33797
+ title: z56.string(),
33798
+ sku: z56.string().nullable(),
33799
+ priceCents: z56.number(),
33800
+ stockQuantity: z56.number().nullable(),
33801
+ soldOut: z56.boolean()
33802
+ });
33803
+ var publicProductSchema = z56.object({
33804
+ id: z56.string(),
33805
+ contentEntryId: z56.string().nullable(),
33806
+ title: z56.string(),
33807
+ slug: z56.string(),
33808
+ path: z56.string().nullable(),
33809
+ status: z56.enum(["draft", "active"]),
33810
+ priceCents: z56.number(),
33811
+ currency: z56.string(),
33812
+ productType: z56.enum(["physical", "digital"]),
33813
+ requiresShipping: z56.boolean(),
33814
+ hasVariants: z56.boolean(),
33815
+ trackInventory: z56.boolean(),
33816
+ soldOut: z56.boolean(),
33817
+ category: z56.object({
33818
+ id: z56.string(),
33819
+ name: z56.string(),
33820
+ slug: z56.string()
33522
33821
  }).nullable(),
33523
- summary: z55.string().nullable(),
33524
- body: z55.unknown().nullable(),
33525
- gallery: z55.array(
33526
- z55.object({
33527
- url: z55.string(),
33528
- alt: z55.string().nullable()
33822
+ summary: z56.string().nullable(),
33823
+ body: z56.unknown().nullable(),
33824
+ gallery: z56.array(
33825
+ z56.object({
33826
+ url: z56.string(),
33827
+ alt: z56.string().nullable()
33529
33828
  })
33530
33829
  ),
33531
- variants: z55.array(publicProductVariantSchema)
33830
+ variants: z56.array(publicProductVariantSchema)
33532
33831
  });
33533
- var publicProductsResponseSchema = z55.object({
33534
- products: z55.array(publicProductSchema)
33832
+ var publicProductsResponseSchema = z56.object({
33833
+ products: z56.array(publicProductSchema)
33535
33834
  });
33536
33835
 
33537
33836
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33595,27 +33894,27 @@ function deriveCreditProductLabels(products, options = {}) {
33595
33894
  }
33596
33895
 
33597
33896
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33598
- import { z as z56 } from "zod";
33599
- var storedProductCartItemSchema = z56.object({
33600
- kind: z56.literal("product"),
33601
- productId: z56.string().min(1),
33602
- productCategoryId: z56.string().min(1).optional().nullable(),
33603
- variantId: z56.string().min(1).optional().nullable(),
33604
- title: z56.string().min(1),
33605
- variantTitle: z56.string().optional().nullable(),
33606
- quantity: z56.number().finite(),
33607
- unitPriceCents: z56.number().finite(),
33608
- currency: z56.string().min(1),
33609
- imageUrl: z56.string().optional().nullable(),
33610
- soldOut: z56.boolean().optional()
33611
- });
33612
- var storedPassCartItemSchema = z56.object({
33613
- kind: z56.literal("pass"),
33614
- passId: z56.string().min(1),
33615
- title: z56.string().min(1),
33616
- quantity: z56.number().finite().optional(),
33617
- unitPriceCents: z56.number().finite(),
33618
- currency: z56.string().min(1)
33897
+ import { z as z57 } from "zod";
33898
+ var storedProductCartItemSchema = z57.object({
33899
+ kind: z57.literal("product"),
33900
+ productId: z57.string().min(1),
33901
+ productCategoryId: z57.string().min(1).optional().nullable(),
33902
+ variantId: z57.string().min(1).optional().nullable(),
33903
+ title: z57.string().min(1),
33904
+ variantTitle: z57.string().optional().nullable(),
33905
+ quantity: z57.number().finite(),
33906
+ unitPriceCents: z57.number().finite(),
33907
+ currency: z57.string().min(1),
33908
+ imageUrl: z57.string().optional().nullable(),
33909
+ soldOut: z57.boolean().optional()
33910
+ });
33911
+ var storedPassCartItemSchema = z57.object({
33912
+ kind: z57.literal("pass"),
33913
+ passId: z57.string().min(1),
33914
+ title: z57.string().min(1),
33915
+ quantity: z57.number().finite().optional(),
33916
+ unitPriceCents: z57.number().finite(),
33917
+ currency: z57.string().min(1)
33619
33918
  });
33620
33919
  function deriveCommerceCheckoutState(state) {
33621
33920
  if (state.items.length === 0) {
@@ -33849,214 +34148,214 @@ function formatValidity(days) {
33849
34148
  }
33850
34149
 
33851
34150
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33852
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33853
- var contentEntrySchema3 = z57.object({
33854
- id: z57.string().nullable().optional(),
33855
- slug: z57.string().nullable().optional()
34151
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
34152
+ var contentEntrySchema3 = z58.object({
34153
+ id: z58.string().nullable().optional(),
34154
+ slug: z58.string().nullable().optional()
33856
34155
  }).nullable();
33857
- var shopSourceSchema = z57.object({
33858
- className: z57.string().nullable().optional(),
34156
+ var shopSourceSchema = z58.object({
34157
+ className: z58.string().nullable().optional(),
33859
34158
  mode: shopModeSchema.optional(),
33860
- heading: z57.string().nullable().optional(),
33861
- productSlug: z57.string().nullable().optional(),
33862
- showPasses: z57.boolean().optional(),
33863
- showMemberships: z57.boolean().optional(),
33864
- layout: z57.enum(["grid", "list"]).optional(),
33865
- columns: z57.string().optional(),
33866
- showDescriptions: z57.boolean().optional(),
33867
- showSummary: z57.boolean().optional(),
33868
- showBody: z57.boolean().optional(),
33869
- showPrices: z57.boolean().optional(),
33870
- showValidityPeriod: z57.boolean().optional(),
33871
- showPricePerCredit: z57.boolean().nullable().optional(),
33872
- passesHeading: z57.string().optional(),
33873
- membershipsHeading: z57.string().optional(),
33874
- buyButtonText: z57.string().optional(),
33875
- addButtonText: z57.string().optional(),
33876
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33877
- subscribeButtonText: z57.string().optional(),
33878
- emptyStateText: z57.string().optional(),
33879
- checkoutButtonText: z57.string().optional(),
33880
- clearButtonText: z57.string().optional(),
33881
- submitButtonText: z57.string().optional(),
34159
+ heading: z58.string().nullable().optional(),
34160
+ productSlug: z58.string().nullable().optional(),
34161
+ showPasses: z58.boolean().optional(),
34162
+ showMemberships: z58.boolean().optional(),
34163
+ layout: z58.enum(["grid", "list"]).optional(),
34164
+ columns: z58.string().optional(),
34165
+ showDescriptions: z58.boolean().optional(),
34166
+ showSummary: z58.boolean().optional(),
34167
+ showBody: z58.boolean().optional(),
34168
+ showPrices: z58.boolean().optional(),
34169
+ showValidityPeriod: z58.boolean().optional(),
34170
+ showPricePerCredit: z58.boolean().nullable().optional(),
34171
+ passesHeading: z58.string().optional(),
34172
+ membershipsHeading: z58.string().optional(),
34173
+ buyButtonText: z58.string().optional(),
34174
+ addButtonText: z58.string().optional(),
34175
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
34176
+ subscribeButtonText: z58.string().optional(),
34177
+ emptyStateText: z58.string().optional(),
34178
+ checkoutButtonText: z58.string().optional(),
34179
+ clearButtonText: z58.string().optional(),
34180
+ submitButtonText: z58.string().optional(),
33882
34181
  contentEntry: contentEntrySchema3.optional(),
33883
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33884
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33885
- products: z57.array(publicProductSchema).nullable().optional(),
33886
- siteId: z57.string().optional(),
33887
- apiBaseUrl: z57.string().optional(),
34182
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
34183
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
34184
+ products: z58.array(publicProductSchema).nullable().optional(),
34185
+ siteId: z58.string().optional(),
34186
+ apiBaseUrl: z58.string().optional(),
33888
34187
  stage: previewStageSchema.optional()
33889
34188
  });
33890
- var productVariantOptionDisplaySchema = z57.object({
33891
- id: z57.string(),
33892
- label: z57.string(),
33893
- soldOut: z57.boolean()
33894
- });
33895
- var productCardDisplaySchema = z57.object({
33896
- productId: z57.string(),
33897
- title: z57.string(),
33898
- path: z57.string().nullable(),
33899
- summary: z57.string().nullable(),
33900
- priceLabel: z57.string().nullable(),
33901
- image: z57.object({
33902
- url: z57.string(),
33903
- alt: z57.string().nullable()
34189
+ var productVariantOptionDisplaySchema = z58.object({
34190
+ id: z58.string(),
34191
+ label: z58.string(),
34192
+ soldOut: z58.boolean()
34193
+ });
34194
+ var productCardDisplaySchema = z58.object({
34195
+ productId: z58.string(),
34196
+ title: z58.string(),
34197
+ path: z58.string().nullable(),
34198
+ summary: z58.string().nullable(),
34199
+ priceLabel: z58.string().nullable(),
34200
+ image: z58.object({
34201
+ url: z58.string(),
34202
+ alt: z58.string().nullable()
33904
34203
  }).nullable(),
33905
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33906
- selectedVariantId: z57.string().nullable(),
33907
- selectionLabel: z57.string(),
33908
- actionLabel: z57.string(),
33909
- soldOut: z57.boolean()
33910
- });
33911
- var productListDisplaySchema = z57.object({
33912
- kind: z57.literal("product-list"),
33913
- state: z57.enum(["empty", "ready"]),
33914
- heading: z57.string().nullable(),
33915
- className: z57.string().nullable(),
33916
- layout: z57.enum(["grid", "list"]),
33917
- columns: z57.string(),
33918
- emptyMessage: z57.string(),
33919
- cards: z57.array(productCardDisplaySchema)
33920
- });
33921
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33922
- z57.object({
33923
- kind: z57.literal("product-detail"),
33924
- state: z57.literal("empty"),
33925
- heading: z57.string().nullable(),
33926
- className: z57.string().nullable(),
33927
- emptyMessage: z57.string()
34204
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34205
+ selectedVariantId: z58.string().nullable(),
34206
+ selectionLabel: z58.string(),
34207
+ actionLabel: z58.string(),
34208
+ soldOut: z58.boolean()
34209
+ });
34210
+ var productListDisplaySchema = z58.object({
34211
+ kind: z58.literal("product-list"),
34212
+ state: z58.enum(["empty", "ready"]),
34213
+ heading: z58.string().nullable(),
34214
+ className: z58.string().nullable(),
34215
+ layout: z58.enum(["grid", "list"]),
34216
+ columns: z58.string(),
34217
+ emptyMessage: z58.string(),
34218
+ cards: z58.array(productCardDisplaySchema)
34219
+ });
34220
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
34221
+ z58.object({
34222
+ kind: z58.literal("product-detail"),
34223
+ state: z58.literal("empty"),
34224
+ heading: z58.string().nullable(),
34225
+ className: z58.string().nullable(),
34226
+ emptyMessage: z58.string()
33928
34227
  }),
33929
- z57.object({
33930
- kind: z57.literal("product-detail"),
33931
- state: z57.literal("ready"),
33932
- heading: z57.string().nullable(),
33933
- className: z57.string().nullable(),
33934
- title: z57.string(),
33935
- priceLabel: z57.string(),
33936
- summary: z57.string().nullable(),
33937
- categoryLabel: z57.string().nullable(),
33938
- gallery: z57.array(z57.object({
33939
- url: z57.string(),
33940
- alt: z57.string().nullable()
34228
+ z58.object({
34229
+ kind: z58.literal("product-detail"),
34230
+ state: z58.literal("ready"),
34231
+ heading: z58.string().nullable(),
34232
+ className: z58.string().nullable(),
34233
+ title: z58.string(),
34234
+ priceLabel: z58.string(),
34235
+ summary: z58.string().nullable(),
34236
+ categoryLabel: z58.string().nullable(),
34237
+ gallery: z58.array(z58.object({
34238
+ url: z58.string(),
34239
+ alt: z58.string().nullable()
33941
34240
  })),
33942
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33943
- selectedVariantId: z57.string().nullable(),
33944
- selectionLabel: z57.string(),
33945
- actionLabel: z57.string(),
33946
- soldOut: z57.boolean(),
33947
- body: z57.unknown().nullable()
34241
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34242
+ selectedVariantId: z58.string().nullable(),
34243
+ selectionLabel: z58.string(),
34244
+ actionLabel: z58.string(),
34245
+ soldOut: z58.boolean(),
34246
+ body: z58.unknown().nullable()
33948
34247
  })
33949
34248
  ]);
33950
- var passCardDisplaySchema = z57.object({
33951
- id: z57.string(),
33952
- title: z57.string(),
33953
- description: z57.string().nullable(),
33954
- priceLabel: z57.string(),
33955
- creditsLabel: z57.string(),
33956
- perCreditLabel: z57.string().nullable(),
33957
- validityLabel: z57.string().nullable(),
33958
- actionLabel: z57.string()
33959
- });
33960
- var membershipCardDisplaySchema = z57.object({
33961
- id: z57.string(),
33962
- title: z57.string(),
33963
- description: z57.string().nullable(),
33964
- priceLabel: z57.string(),
33965
- intervalLabel: z57.string(),
33966
- actionLabel: z57.string()
33967
- });
33968
- var passesMembershipsDisplaySchema = z57.object({
33969
- kind: z57.literal("passes-memberships"),
33970
- state: z57.enum(["empty", "ready"]),
33971
- className: z57.string().nullable(),
33972
- layout: z57.enum(["grid", "list"]),
33973
- columns: z57.string(),
33974
- emptyMessage: z57.string(),
33975
- passesHeading: z57.string(),
33976
- membershipsHeading: z57.string(),
33977
- passes: z57.array(passCardDisplaySchema),
33978
- memberships: z57.array(membershipCardDisplaySchema)
33979
- });
33980
- var cartLineDisplaySchema = z57.object({
33981
- key: z57.string(),
33982
- title: z57.string(),
33983
- priceLabel: z57.string(),
33984
- quantity: z57.number(),
33985
- quantityEditable: z57.boolean()
33986
- });
33987
- var cartDisplaySchema = z57.object({
33988
- kind: z57.literal("cart"),
33989
- state: z57.enum(["empty", "ready"]),
33990
- heading: z57.string().nullable(),
33991
- className: z57.string().nullable(),
33992
- emptyMessage: z57.string(),
33993
- supportText: z57.string().nullable(),
33994
- items: z57.array(cartLineDisplaySchema),
33995
- subtotalLabel: z57.string().nullable(),
33996
- checkoutButtonText: z57.string(),
33997
- clearButtonText: z57.string()
33998
- });
33999
- var checkoutDisplaySchema = z57.object({
34000
- kind: z57.literal("checkout"),
34001
- state: z57.enum(["empty", "blocked", "ready"]),
34002
- heading: z57.string().nullable(),
34003
- className: z57.string().nullable(),
34004
- message: z57.string().nullable(),
34005
- submitButtonText: z57.string()
34006
- });
34007
- var passesMembershipsHydrationSchema = z57.object({
34008
- passes: z57.array(publicPassProductSchema),
34009
- memberships: z57.array(publicMembershipProductSchema),
34010
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
34011
- });
34012
- var productListHydrationSchema = z57.object({
34013
- products: z57.array(publicProductSchema),
34014
- showSummary: z57.boolean(),
34015
- showPrices: z57.boolean(),
34016
- addButtonText: z57.string()
34017
- });
34018
- var productDetailHydrationSchema = z57.object({
34019
- products: z57.array(publicProductSchema),
34020
- productId: z57.string().nullable(),
34021
- showSummary: z57.boolean(),
34022
- showBody: z57.boolean(),
34023
- addButtonText: z57.string()
34024
- });
34025
- var cartHydrationSchema = z57.object({
34026
- emptyStateText: z57.string(),
34027
- checkoutButtonText: z57.string(),
34028
- clearButtonText: z57.string()
34029
- });
34030
- var checkoutHydrationSchema = z57.object({
34031
- emptyStateText: z57.string(),
34032
- submitButtonText: z57.string()
34033
- });
34034
- var passesMembershipsRenderSchema = z57.object({
34249
+ var passCardDisplaySchema = z58.object({
34250
+ id: z58.string(),
34251
+ title: z58.string(),
34252
+ description: z58.string().nullable(),
34253
+ priceLabel: z58.string(),
34254
+ creditsLabel: z58.string(),
34255
+ perCreditLabel: z58.string().nullable(),
34256
+ validityLabel: z58.string().nullable(),
34257
+ actionLabel: z58.string()
34258
+ });
34259
+ var membershipCardDisplaySchema = z58.object({
34260
+ id: z58.string(),
34261
+ title: z58.string(),
34262
+ description: z58.string().nullable(),
34263
+ priceLabel: z58.string(),
34264
+ intervalLabel: z58.string(),
34265
+ actionLabel: z58.string()
34266
+ });
34267
+ var passesMembershipsDisplaySchema = z58.object({
34268
+ kind: z58.literal("passes-memberships"),
34269
+ state: z58.enum(["empty", "ready"]),
34270
+ className: z58.string().nullable(),
34271
+ layout: z58.enum(["grid", "list"]),
34272
+ columns: z58.string(),
34273
+ emptyMessage: z58.string(),
34274
+ passesHeading: z58.string(),
34275
+ membershipsHeading: z58.string(),
34276
+ passes: z58.array(passCardDisplaySchema),
34277
+ memberships: z58.array(membershipCardDisplaySchema)
34278
+ });
34279
+ var cartLineDisplaySchema = z58.object({
34280
+ key: z58.string(),
34281
+ title: z58.string(),
34282
+ priceLabel: z58.string(),
34283
+ quantity: z58.number(),
34284
+ quantityEditable: z58.boolean()
34285
+ });
34286
+ var cartDisplaySchema = z58.object({
34287
+ kind: z58.literal("cart"),
34288
+ state: z58.enum(["empty", "ready"]),
34289
+ heading: z58.string().nullable(),
34290
+ className: z58.string().nullable(),
34291
+ emptyMessage: z58.string(),
34292
+ supportText: z58.string().nullable(),
34293
+ items: z58.array(cartLineDisplaySchema),
34294
+ subtotalLabel: z58.string().nullable(),
34295
+ checkoutButtonText: z58.string(),
34296
+ clearButtonText: z58.string()
34297
+ });
34298
+ var checkoutDisplaySchema = z58.object({
34299
+ kind: z58.literal("checkout"),
34300
+ state: z58.enum(["empty", "blocked", "ready"]),
34301
+ heading: z58.string().nullable(),
34302
+ className: z58.string().nullable(),
34303
+ message: z58.string().nullable(),
34304
+ submitButtonText: z58.string()
34305
+ });
34306
+ var passesMembershipsHydrationSchema = z58.object({
34307
+ passes: z58.array(publicPassProductSchema),
34308
+ memberships: z58.array(publicMembershipProductSchema),
34309
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
34310
+ });
34311
+ var productListHydrationSchema = z58.object({
34312
+ products: z58.array(publicProductSchema),
34313
+ showSummary: z58.boolean(),
34314
+ showPrices: z58.boolean(),
34315
+ addButtonText: z58.string()
34316
+ });
34317
+ var productDetailHydrationSchema = z58.object({
34318
+ products: z58.array(publicProductSchema),
34319
+ productId: z58.string().nullable(),
34320
+ showSummary: z58.boolean(),
34321
+ showBody: z58.boolean(),
34322
+ addButtonText: z58.string()
34323
+ });
34324
+ var cartHydrationSchema = z58.object({
34325
+ emptyStateText: z58.string(),
34326
+ checkoutButtonText: z58.string(),
34327
+ clearButtonText: z58.string()
34328
+ });
34329
+ var checkoutHydrationSchema = z58.object({
34330
+ emptyStateText: z58.string(),
34331
+ submitButtonText: z58.string()
34332
+ });
34333
+ var passesMembershipsRenderSchema = z58.object({
34035
34334
  display: passesMembershipsDisplaySchema,
34036
34335
  hydration: passesMembershipsHydrationSchema
34037
34336
  });
34038
- var productListRenderSchema = z57.object({
34337
+ var productListRenderSchema = z58.object({
34039
34338
  display: productListDisplaySchema,
34040
34339
  hydration: productListHydrationSchema
34041
34340
  });
34042
- var productDetailRenderSchema = z57.object({
34341
+ var productDetailRenderSchema = z58.object({
34043
34342
  display: productDetailDisplaySchema,
34044
34343
  hydration: productDetailHydrationSchema
34045
34344
  });
34046
- var cartRenderSchema = z57.object({
34345
+ var cartRenderSchema = z58.object({
34047
34346
  display: cartDisplaySchema,
34048
34347
  hydration: cartHydrationSchema
34049
34348
  });
34050
- var checkoutRenderSchema = z57.object({
34349
+ var checkoutRenderSchema = z58.object({
34051
34350
  display: checkoutDisplaySchema,
34052
34351
  hydration: checkoutHydrationSchema
34053
34352
  });
34054
34353
  function resolveShowPricePerCredit(source) {
34055
34354
  return source.showPricePerCredit ?? true;
34056
34355
  }
34057
- var shopIslandMetaCodec = createZodCodec(z57.object({
34058
- siteId: z57.string().optional(),
34059
- apiBaseUrl: z57.string().optional(),
34356
+ var shopIslandMetaCodec = createZodCodec(z58.object({
34357
+ siteId: z58.string().optional(),
34358
+ apiBaseUrl: z58.string().optional(),
34060
34359
  stage: previewStageSchema.optional()
34061
34360
  }));
34062
34361
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34459,7 +34758,7 @@ var shopBlockDefinition = {
34459
34758
  };
34460
34759
 
34461
34760
  // ../blocks/src/system/blocks/product-list.ts
34462
- import { z as z58 } from "zod";
34761
+ import { z as z59 } from "zod";
34463
34762
  var productListManifest = createBlockManifest({
34464
34763
  id: "block.product-list",
34465
34764
  version: "1.0.0",
@@ -34592,7 +34891,7 @@ var productListBlockDefinition = {
34592
34891
  }
34593
34892
  }
34594
34893
  };
34595
- var productListDataSchema = z58.object({
34894
+ var productListDataSchema = z59.object({
34596
34895
  products: publicProductsResponseSchema.optional()
34597
34896
  });
34598
34897
 
@@ -34853,72 +35152,72 @@ var checkoutBlockDefinition = {
34853
35152
  };
34854
35153
 
34855
35154
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34856
- import { z as z59 } from "zod";
34857
- var publicGiftCardOfferSchema = z59.object({
34858
- id: z59.string(),
34859
- kind: z59.literal("gift_card"),
34860
- title: z59.string(),
34861
- description: z59.string().nullable(),
34862
- sortOrder: z59.number().int(),
34863
- giftCard: z59.object({
34864
- fixedDenominations: z59.array(z59.number().int().positive()),
34865
- customAmountEnabled: z59.boolean(),
34866
- customAmountMinCents: z59.number().int().positive(),
34867
- customAmountMaxCents: z59.number().int().positive()
35155
+ import { z as z60 } from "zod";
35156
+ var publicGiftCardOfferSchema = z60.object({
35157
+ id: z60.string(),
35158
+ kind: z60.literal("gift_card"),
35159
+ title: z60.string(),
35160
+ description: z60.string().nullable(),
35161
+ sortOrder: z60.number().int(),
35162
+ giftCard: z60.object({
35163
+ fixedDenominations: z60.array(z60.number().int().positive()),
35164
+ customAmountEnabled: z60.boolean(),
35165
+ customAmountMinCents: z60.number().int().positive(),
35166
+ customAmountMaxCents: z60.number().int().positive()
34868
35167
  }),
34869
- voucher: z59.null()
34870
- });
34871
- var publicVoucherOfferSchema = z59.object({
34872
- id: z59.string(),
34873
- kind: z59.literal("voucher"),
34874
- title: z59.string(),
34875
- description: z59.string().nullable(),
34876
- sortOrder: z59.number().int(),
34877
- giftCard: z59.null(),
34878
- voucher: z59.object({
34879
- purchaseAmountCents: z59.number().int().positive()
35168
+ voucher: z60.null()
35169
+ });
35170
+ var publicVoucherOfferSchema = z60.object({
35171
+ id: z60.string(),
35172
+ kind: z60.literal("voucher"),
35173
+ title: z60.string(),
35174
+ description: z60.string().nullable(),
35175
+ sortOrder: z60.number().int(),
35176
+ giftCard: z60.null(),
35177
+ voucher: z60.object({
35178
+ purchaseAmountCents: z60.number().int().positive()
34880
35179
  })
34881
35180
  });
34882
- var publicGiftingOffersResponseSchema = z59.object({
34883
- currency: z59.string(),
34884
- giftCards: z59.array(publicGiftCardOfferSchema),
34885
- vouchers: z59.array(publicVoucherOfferSchema)
35181
+ var publicGiftingOffersResponseSchema = z60.object({
35182
+ currency: z60.string(),
35183
+ giftCards: z60.array(publicGiftCardOfferSchema),
35184
+ vouchers: z60.array(publicVoucherOfferSchema)
34886
35185
  });
34887
- var giftingSourceSchema = z59.object({
34888
- siteId: z59.string().optional(),
34889
- apiBaseUrl: z59.string().optional(),
35186
+ var giftingSourceSchema = z60.object({
35187
+ siteId: z60.string().optional(),
35188
+ apiBaseUrl: z60.string().optional(),
34890
35189
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34891
- className: z59.string().nullable().optional(),
34892
- heading: z59.string().nullable().optional(),
34893
- intro: z59.string().nullable().optional(),
34894
- giftCardsHeading: z59.string().nullable().optional(),
34895
- vouchersHeading: z59.string().nullable().optional(),
34896
- emptyStateText: z59.string().nullable().optional(),
34897
- checkoutButtonText: z59.string().nullable().optional(),
34898
- successMessage: z59.string().nullable().optional()
34899
- });
34900
- var giftingDisplaySchema = z59.object({
34901
- kind: z59.literal("gifting"),
34902
- state: z59.literal("ready"),
34903
- className: z59.string().nullable(),
34904
- heading: z59.string(),
34905
- intro: z59.string().nullable(),
34906
- giftCardsHeading: z59.string(),
34907
- vouchersHeading: z59.string(),
34908
- emptyStateText: z59.string()
34909
- });
34910
- var giftingHydrationSchema = z59.object({
35190
+ className: z60.string().nullable().optional(),
35191
+ heading: z60.string().nullable().optional(),
35192
+ intro: z60.string().nullable().optional(),
35193
+ giftCardsHeading: z60.string().nullable().optional(),
35194
+ vouchersHeading: z60.string().nullable().optional(),
35195
+ emptyStateText: z60.string().nullable().optional(),
35196
+ checkoutButtonText: z60.string().nullable().optional(),
35197
+ successMessage: z60.string().nullable().optional()
35198
+ });
35199
+ var giftingDisplaySchema = z60.object({
35200
+ kind: z60.literal("gifting"),
35201
+ state: z60.literal("ready"),
35202
+ className: z60.string().nullable(),
35203
+ heading: z60.string(),
35204
+ intro: z60.string().nullable(),
35205
+ giftCardsHeading: z60.string(),
35206
+ vouchersHeading: z60.string(),
35207
+ emptyStateText: z60.string()
35208
+ });
35209
+ var giftingHydrationSchema = z60.object({
34911
35210
  offers: publicGiftingOffersResponseSchema.nullable(),
34912
- checkoutButtonText: z59.string(),
34913
- successMessage: z59.string()
35211
+ checkoutButtonText: z60.string(),
35212
+ successMessage: z60.string()
34914
35213
  });
34915
- var giftingRenderSchema = z59.object({
35214
+ var giftingRenderSchema = z60.object({
34916
35215
  display: giftingDisplaySchema,
34917
35216
  hydration: giftingHydrationSchema
34918
35217
  });
34919
- var giftingIslandMetaCodec = createZodCodec(z59.object({
34920
- siteId: z59.string().optional(),
34921
- apiBaseUrl: z59.string().optional()
35218
+ var giftingIslandMetaCodec = createZodCodec(z60.object({
35219
+ siteId: z60.string().optional(),
35220
+ apiBaseUrl: z60.string().optional()
34922
35221
  }));
34923
35222
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34924
35223
  "siteId",
@@ -35089,7 +35388,7 @@ var giftingBlockDefinition = {
35089
35388
  };
35090
35389
 
35091
35390
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35092
- import { z as z60 } from "zod";
35391
+ import { z as z61 } from "zod";
35093
35392
 
35094
35393
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
35095
35394
  function parseNewsletterSignupBlockId(value) {
@@ -35196,65 +35495,65 @@ function withOptionalPhone(fields3, includePhone) {
35196
35495
  }
35197
35496
 
35198
35497
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35199
- var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35200
- var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35201
- var newsletterFieldSchema = z60.object({
35202
- id: z60.string(),
35203
- type: z60.enum(["email", "text"]),
35204
- label: z60.string(),
35205
- required: z60.boolean(),
35206
- placeholder: z60.string().optional()
35207
- });
35208
- var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35209
- var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35210
- var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35211
- z60.object({
35212
- tag: z60.literal("block_ref"),
35498
+ var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35499
+ var newsletterDestinationProviderSchema = z61.enum(["riverbank", "mailchimp"]);
35500
+ var newsletterFieldSchema = z61.object({
35501
+ id: z61.string(),
35502
+ type: z61.enum(["email", "text"]),
35503
+ label: z61.string(),
35504
+ required: z61.boolean(),
35505
+ placeholder: z61.string().optional()
35506
+ });
35507
+ var newsletterSignupBlockIdSchema = z61.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35508
+ var signedNewsletterDestinationRefSchema = z61.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35509
+ var newsletterPublicDestinationRefSchema = z61.discriminatedUnion("tag", [
35510
+ z61.object({
35511
+ tag: z61.literal("block_ref"),
35213
35512
  blockId: newsletterSignupBlockIdSchema
35214
35513
  }),
35215
- z60.object({
35216
- tag: z60.literal("signed_destination_ref"),
35514
+ z61.object({
35515
+ tag: z61.literal("signed_destination_ref"),
35217
35516
  token: signedNewsletterDestinationRefSchema
35218
35517
  })
35219
35518
  ]);
35220
- var newsletterSourceSchema = z60.object({
35221
- blockId: z60.string().nullable().optional(),
35222
- siteId: z60.string().optional(),
35223
- apiBaseUrl: z60.string().optional(),
35224
- listId: z60.string().nullable().optional(),
35519
+ var newsletterSourceSchema = z61.object({
35520
+ blockId: z61.string().nullable().optional(),
35521
+ siteId: z61.string().optional(),
35522
+ apiBaseUrl: z61.string().optional(),
35523
+ listId: z61.string().nullable().optional(),
35225
35524
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35226
35525
  preset: newsletterPresetSchema.optional(),
35227
- includePhone: z60.boolean().optional(),
35228
- buttonLabel: z60.string().nullable().optional(),
35229
- successMessage: z60.string().nullable().optional(),
35230
- privacyNote: z60.string().nullable().optional(),
35231
- tags: z60.string().nullable().optional(),
35232
- spamProtectionEnabled: z60.boolean().optional(),
35233
- className: z60.string().nullable().optional()
35234
- });
35235
- var newsletterDisplaySchema = z60.object({
35236
- kind: z60.literal("newsletter-form"),
35237
- className: z60.string().nullable(),
35238
- buttonLabel: z60.string(),
35239
- successMessage: z60.string().nullable(),
35240
- privacyNote: z60.string().nullable(),
35241
- fields: z60.array(newsletterFieldSchema)
35242
- });
35243
- var newsletterHydrationSchema = z60.object({
35526
+ includePhone: z61.boolean().optional(),
35527
+ buttonLabel: z61.string().nullable().optional(),
35528
+ successMessage: z61.string().nullable().optional(),
35529
+ privacyNote: z61.string().nullable().optional(),
35530
+ tags: z61.string().nullable().optional(),
35531
+ spamProtectionEnabled: z61.boolean().optional(),
35532
+ className: z61.string().nullable().optional()
35533
+ });
35534
+ var newsletterDisplaySchema = z61.object({
35535
+ kind: z61.literal("newsletter-form"),
35536
+ className: z61.string().nullable(),
35537
+ buttonLabel: z61.string(),
35538
+ successMessage: z61.string().nullable(),
35539
+ privacyNote: z61.string().nullable(),
35540
+ fields: z61.array(newsletterFieldSchema)
35541
+ });
35542
+ var newsletterHydrationSchema = z61.object({
35244
35543
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35245
- listId: z60.string().nullable().optional(),
35544
+ listId: z61.string().nullable().optional(),
35246
35545
  preset: newsletterPresetSchema,
35247
- includePhone: z60.boolean(),
35248
- tags: z60.string().nullable().optional(),
35249
- spamProtectionEnabled: z60.boolean().optional()
35546
+ includePhone: z61.boolean(),
35547
+ tags: z61.string().nullable().optional(),
35548
+ spamProtectionEnabled: z61.boolean().optional()
35250
35549
  });
35251
- var newsletterRenderSchema = z60.object({
35550
+ var newsletterRenderSchema = z61.object({
35252
35551
  display: newsletterDisplaySchema,
35253
35552
  hydration: newsletterHydrationSchema
35254
35553
  });
35255
- var newsletterIslandMetaCodec = createZodCodec(z60.object({
35256
- siteId: z60.string().optional(),
35257
- apiBaseUrl: z60.string().optional()
35554
+ var newsletterIslandMetaCodec = createZodCodec(z61.object({
35555
+ siteId: z61.string().optional(),
35556
+ apiBaseUrl: z61.string().optional()
35258
35557
  }));
35259
35558
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35260
35559
  function buildNewsletterDisplay(source) {
@@ -35393,23 +35692,23 @@ var newsletterSignupBlockDefinition = {
35393
35692
  };
35394
35693
 
35395
35694
  // ../blocks/src/system/blocks/team-members.ts
35396
- import { z as z61 } from "zod";
35695
+ import { z as z62 } from "zod";
35397
35696
  var ITEM_NAME2 = "member";
35398
35697
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35399
35698
  message: "Team member photos must be image media"
35400
35699
  }).nullable();
35401
- var teamMemberDataSchema = z61.object({
35402
- _type: z61.literal("teamMember"),
35403
- id: z61.string(),
35404
- name: z61.string(),
35405
- role: z61.string().nullable(),
35406
- roleLabel: z61.string().nullable(),
35407
- bio: z61.string().nullable(),
35408
- summary: z61.string().nullable(),
35700
+ var teamMemberDataSchema = z62.object({
35701
+ _type: z62.literal("teamMember"),
35702
+ id: z62.string(),
35703
+ name: z62.string(),
35704
+ role: z62.string().nullable(),
35705
+ roleLabel: z62.string().nullable(),
35706
+ bio: z62.string().nullable(),
35707
+ summary: z62.string().nullable(),
35409
35708
  photo: teamMemberPhotoSchema,
35410
- profilePath: z61.string().nullable()
35709
+ profilePath: z62.string().nullable()
35411
35710
  });
35412
- var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35711
+ var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35413
35712
  var dynamicSourceWhen = { equals: "site_staff" };
35414
35713
  var manualSourceWhen = { equals: "site_staff", not: true };
35415
35714
  var headingNode = text(
@@ -36515,6 +36814,10 @@ var systemBlockDefinitionsRaw = [
36515
36814
  flow: conversionFlow,
36516
36815
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
36517
36816
  })),
36817
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36818
+ flow: offeringsFlow,
36819
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
36820
+ })),
36518
36821
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36519
36822
  flow: conversionFlow,
36520
36823
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -37590,6 +37893,34 @@ ${root} {
37590
37893
  /* Order summary */
37591
37894
  --er-summary-bg: rgba(var(--tb-primary), 0.1);
37592
37895
  --er-summary-border: rgb(var(--tb-border));
37896
+
37897
+ /* Shared registration-surface mappings (issue 1174).
37898
+ Route the shared --rb-reg-* contract through this block's documented
37899
+ Tier 3 vars so existing --er-* overrides keep working unchanged. */
37900
+ --rb-reg-radius: var(--er-radius);
37901
+ --rb-reg-border: var(--er-border);
37902
+ --rb-reg-border-hover: var(--er-border-hover);
37903
+ --rb-reg-border-selected: var(--er-border-selected);
37904
+ --rb-reg-bg-selected: var(--er-payment-bg-selected);
37905
+ --rb-reg-option-bg: var(--er-control-bg);
37906
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
37907
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
37908
+ --rb-reg-on-surface: var(--er-on-surface);
37909
+ --rb-reg-on-surface-muted: var(--er-on-surface-muted);
37910
+ --rb-reg-on-surface-subtle: var(--er-on-surface-subtle);
37911
+ --rb-reg-on-surface-faint: var(--er-on-surface-faint);
37912
+ --rb-reg-check-bg: var(--er-check-bg);
37913
+ --rb-reg-check-text: var(--er-check-text);
37914
+ --rb-reg-step-active: var(--er-step-active);
37915
+ --rb-reg-step-completed: var(--er-step-completed);
37916
+ --rb-reg-step-inactive: var(--er-step-inactive);
37917
+ --rb-reg-step-text: var(--er-step-text);
37918
+ --rb-reg-step-text-active: var(--er-step-text-active);
37919
+ --rb-reg-step-connector: var(--er-step-connector);
37920
+ --rb-reg-summary-bg: var(--er-surface-muted);
37921
+ --rb-reg-summary-border: var(--er-border);
37922
+ --rb-reg-focus-ring: var(--er-focus-ring);
37923
+ --rb-reg-shell-line: var(--er-shell-line);
37593
37924
  }
37594
37925
  `;
37595
37926
  }
@@ -37722,25 +38053,40 @@ ${root} {
37722
38053
  --ab-info-bg: rgba(var(--tb-info), 0.1);
37723
38054
  --ab-info-text: rgb(var(--tb-info));
37724
38055
 
37725
- /* Loading/muted states */
38056
+ /* Muted summary state */
37726
38057
  --ab-muted-bg: rgba(var(--tb-text), 0.05);
37727
- --ab-muted-text: rgba(var(--tb-text), 0.6);
37728
- --ab-spinner-color: rgb(var(--tb-primary));
37729
38058
 
37730
- /* Form elements */
37731
- --ab-input-border: rgb(var(--tb-border));
38059
+ /* Focus ring used by shared registration-surface controls */
37732
38060
  --ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
37733
38061
 
37734
- /* Buttons */
37735
- --ab-btn-primary-bg: rgb(var(--tb-primary));
37736
- --ab-btn-primary-text: rgb(var(--tb-background));
37737
- --ab-btn-primary-hover: rgba(var(--tb-primary), 0.9);
37738
- --ab-btn-secondary-border: rgb(var(--tb-border));
37739
- --ab-btn-secondary-hover: rgba(var(--tb-text), 0.05);
37740
-
37741
- /* Text opacity levels */
37742
- --ab-text-muted-opacity: 0.6;
37743
- --ab-text-faint-opacity: 0.4;
38062
+ /* Shared registration-surface mappings (issue 1174).
38063
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
38064
+ (palette tokens where no --ab-* var exists) so --ab-* overrides keep
38065
+ working as the block adopts the shared classes. */
38066
+ --rb-reg-radius: var(--ab-card-radius, var(--rb-block-radius));
38067
+ --rb-reg-border: var(--ab-card-border);
38068
+ --rb-reg-border-hover: var(--ab-card-border-hover);
38069
+ --rb-reg-border-selected: var(--ab-card-border-selected);
38070
+ --rb-reg-bg-selected: var(--ab-card-bg-selected);
38071
+ --rb-reg-option-bg: transparent;
38072
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
38073
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
38074
+ --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
38075
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
38076
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
38077
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
38078
+ --rb-reg-check-bg: var(--ab-check-bg);
38079
+ --rb-reg-check-text: var(--ab-check-text);
38080
+ --rb-reg-step-active: rgb(var(--tb-primary));
38081
+ --rb-reg-step-completed: rgb(var(--tb-success));
38082
+ --rb-reg-step-inactive: rgb(var(--tb-mutedText));
38083
+ --rb-reg-step-text: rgb(255 255 255);
38084
+ --rb-reg-step-text-active: rgb(var(--tb-primaryText, 255 255 255));
38085
+ --rb-reg-step-connector: rgba(var(--tb-border), 0.5);
38086
+ --rb-reg-summary-bg: var(--ab-muted-bg);
38087
+ --rb-reg-summary-border: var(--ab-card-border);
38088
+ --rb-reg-focus-ring: var(--ab-input-focus-ring);
38089
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
37744
38090
  }
37745
38091
  `;
37746
38092
  }
@@ -38031,6 +38377,35 @@ ${root} {
38031
38377
  /* Summary */
38032
38378
  --cr-summary-bg: rgba(var(--tb-primary), 0.1);
38033
38379
  --cr-summary-border: rgb(var(--tb-border));
38380
+
38381
+ /* Shared registration-surface mappings (issue 1174).
38382
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
38383
+ (palette tokens where no --cr-* var exists) so existing --cr-* overrides
38384
+ keep working unchanged. */
38385
+ --rb-reg-radius: var(--rb-block-radius);
38386
+ --rb-reg-border: var(--cr-border);
38387
+ --rb-reg-border-hover: var(--cr-border-hover);
38388
+ --rb-reg-border-selected: var(--cr-border-selected);
38389
+ --rb-reg-bg-selected: var(--cr-payment-bg-selected);
38390
+ --rb-reg-option-bg: rgb(var(--tb-background));
38391
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
38392
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
38393
+ --rb-reg-on-surface: var(--cr-on-surface);
38394
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
38395
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
38396
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
38397
+ --rb-reg-check-bg: var(--cr-check-bg);
38398
+ --rb-reg-check-text: var(--cr-check-text);
38399
+ --rb-reg-step-active: var(--cr-step-active);
38400
+ --rb-reg-step-completed: var(--cr-step-completed);
38401
+ --rb-reg-step-inactive: var(--cr-step-inactive);
38402
+ --rb-reg-step-text: var(--cr-step-text);
38403
+ --rb-reg-step-text-active: var(--cr-step-text-active);
38404
+ --rb-reg-step-connector: var(--cr-step-connector);
38405
+ --rb-reg-summary-bg: var(--cr-summary-bg);
38406
+ --rb-reg-summary-border: var(--cr-summary-border);
38407
+ --rb-reg-focus-ring: var(--cr-focus-ring);
38408
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
38034
38409
  }
38035
38410
  `;
38036
38411
  }
@@ -38093,34 +38468,34 @@ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38093
38468
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
38094
38469
 
38095
38470
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
38096
- import { z as z62 } from "zod";
38097
- var themeBridgeConfigSchema = z62.object({
38098
- tokens: z62.record(z62.string(), z62.string()),
38099
- typography: z62.object({
38100
- headingFamily: z62.string().optional(),
38101
- bodyFamily: z62.string().optional(),
38102
- headingWeight: z62.number().optional(),
38103
- bodyWeight: z62.number().optional()
38471
+ import { z as z63 } from "zod";
38472
+ var themeBridgeConfigSchema = z63.object({
38473
+ tokens: z63.record(z63.string(), z63.string()),
38474
+ typography: z63.object({
38475
+ headingFamily: z63.string().optional(),
38476
+ bodyFamily: z63.string().optional(),
38477
+ headingWeight: z63.number().optional(),
38478
+ bodyWeight: z63.number().optional()
38104
38479
  }).optional(),
38105
- spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38106
- corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38107
- shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38108
- components: z62.object({
38109
- buttons: z62.union([
38110
- z62.boolean(),
38111
- z62.object({
38112
- variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
38480
+ spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
38481
+ corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
38482
+ shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
38483
+ components: z63.object({
38484
+ buttons: z63.union([
38485
+ z63.boolean(),
38486
+ z63.object({
38487
+ variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
38113
38488
  })
38114
38489
  ]).optional(),
38115
- cards: z62.union([
38116
- z62.boolean(),
38117
- z62.object({
38118
- variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
38490
+ cards: z63.union([
38491
+ z63.boolean(),
38492
+ z63.object({
38493
+ variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
38119
38494
  })
38120
38495
  ]).optional(),
38121
- inputs: z62.boolean().optional()
38496
+ inputs: z63.boolean().optional()
38122
38497
  }).optional(),
38123
- overrides: z62.record(z62.string(), z62.string()).optional()
38498
+ overrides: z63.record(z63.string(), z63.string()).optional()
38124
38499
  }).passthrough();
38125
38500
 
38126
38501
  // ../theme-core/src/siteChrome.tsx
@@ -38139,24 +38514,25 @@ var SUPPORTED_LOADER_ENDPOINTS = [
38139
38514
  "listPublicPasses",
38140
38515
  "listPublicMemberships",
38141
38516
  "getPublicFormById",
38142
- "getPublicBookingServices"
38517
+ "getPublicBookingServices",
38518
+ "getPublicWeeklySlotAvailability"
38143
38519
  ];
38144
38520
 
38145
38521
  // ../api/src/sdkConfig/contracts.ts
38146
38522
  function unsafeRetypeZodSchema(schema) {
38147
38523
  return schema;
38148
38524
  }
38149
- var navIdListSchema = z63.preprocess((value) => {
38525
+ var navIdListSchema = z64.preprocess((value) => {
38150
38526
  if (!Array.isArray(value)) return void 0;
38151
38527
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
38152
38528
  return filtered.length > 0 ? filtered : void 0;
38153
- }, z63.array(z63.string()).max(200).optional());
38154
- var dashboardNavVisibilityBaseSchema = z63.object({
38155
- mode: z63.enum(["augment", "restrict"]).optional(),
38529
+ }, z64.array(z64.string()).max(200).optional());
38530
+ var dashboardNavVisibilityBaseSchema = z64.object({
38531
+ mode: z64.enum(["augment", "restrict"]).optional(),
38156
38532
  allowIds: navIdListSchema,
38157
38533
  denyIds: navIdListSchema
38158
38534
  }).strip();
38159
- var dashboardNavVisibilityRolesSchema = z63.object({
38535
+ var dashboardNavVisibilityRolesSchema = z64.object({
38160
38536
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38161
38537
  editor: dashboardNavVisibilityBaseSchema.optional(),
38162
38538
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38164,63 +38540,63 @@ var dashboardNavVisibilityRolesSchema = z63.object({
38164
38540
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38165
38541
  roles: dashboardNavVisibilityRolesSchema
38166
38542
  }).strip();
38167
- var dashboardNavigationConfigSchema = z63.object({
38543
+ var dashboardNavigationConfigSchema = z64.object({
38168
38544
  siteNav: dashboardNavVisibilitySchema.optional(),
38169
38545
  settingsNav: dashboardNavVisibilitySchema.optional()
38170
38546
  }).strip();
38171
- var dashboardConfigSchema = z63.object({
38172
- previewEditingEnabled: z63.boolean().optional(),
38547
+ var dashboardConfigSchema = z64.object({
38548
+ previewEditingEnabled: z64.boolean().optional(),
38173
38549
  navigation: dashboardNavigationConfigSchema.optional()
38174
38550
  }).strip();
38175
38551
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38176
38552
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38177
- var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38178
- var loaderFallbackScalarSchema = z63.union([
38179
- z63.string(),
38180
- z63.number(),
38181
- z63.boolean(),
38182
- z63.null()
38553
+ var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
38554
+ var loaderFallbackScalarSchema = z64.union([
38555
+ z64.string(),
38556
+ z64.number(),
38557
+ z64.boolean(),
38558
+ z64.null()
38183
38559
  ]);
38184
- var loaderParamBindingSchema = z63.object({
38185
- $bind: z63.object({
38186
- from: z63.string().min(1, "Binding path is required"),
38560
+ var loaderParamBindingSchema = z64.object({
38561
+ $bind: z64.object({
38562
+ from: z64.string().min(1, "Binding path is required"),
38187
38563
  fallback: loaderFallbackScalarSchema.optional()
38188
38564
  })
38189
38565
  });
38190
- var loaderParamValueSchema = z63.union([
38191
- z63.string(),
38192
- z63.number(),
38193
- z63.boolean(),
38566
+ var loaderParamValueSchema = z64.union([
38567
+ z64.string(),
38568
+ z64.number(),
38569
+ z64.boolean(),
38194
38570
  loaderParamBindingSchema
38195
38571
  ]);
38196
- var sdkConfigLoaderSchema = z63.object({
38572
+ var sdkConfigLoaderSchema = z64.object({
38197
38573
  endpoint: sdkLoaderEndpointSchema,
38198
- params: z63.record(z63.string(), loaderParamValueSchema),
38199
- mode: z63.enum(["server", "client"]).default("server")
38574
+ params: z64.record(z64.string(), loaderParamValueSchema),
38575
+ mode: z64.enum(["server", "client"]).default("server")
38200
38576
  });
38201
- var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38202
- var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38577
+ var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38578
+ var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38203
38579
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38204
38580
  }).transform((value) => value);
38205
- var sdkCustomBlockInputSchema = z63.object({
38581
+ var sdkCustomBlockInputSchema = z64.object({
38206
38582
  id: sdkCustomBlockIdSchema,
38207
- title: z63.string().min(1),
38208
- titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38209
- description: z63.string().optional(),
38583
+ title: z64.string().min(1),
38584
+ titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
38585
+ description: z64.string().optional(),
38210
38586
  category: blockCategoryEnum,
38211
- icon: z63.string().optional(),
38212
- tags: z63.array(z63.string()).optional(),
38587
+ icon: z64.string().optional(),
38588
+ tags: z64.array(z64.string()).optional(),
38213
38589
  fields: fieldDefinitionInputSchema.array().min(1),
38214
38590
  dataLoaders: sdkDataLoadersSchema,
38215
38591
  layout: NodeSchema.optional(),
38216
- variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38217
- defaultVariant: z63.string().min(1).optional(),
38218
- variantOptions: z63.record(
38219
- z63.string().min(1),
38220
- z63.object({
38221
- label: z63.string().min(1).optional(),
38222
- description: z63.string().min(1).optional(),
38223
- icon: z63.string().min(1).optional()
38592
+ variants: z64.record(z64.string().min(1), NodeSchema).optional(),
38593
+ defaultVariant: z64.string().min(1).optional(),
38594
+ variantOptions: z64.record(
38595
+ z64.string().min(1),
38596
+ z64.object({
38597
+ label: z64.string().min(1).optional(),
38598
+ description: z64.string().min(1).optional(),
38599
+ icon: z64.string().min(1).optional()
38224
38600
  })
38225
38601
  ).optional(),
38226
38602
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38231,7 +38607,7 @@ var sdkCustomBlockInputSchema = z63.object({
38231
38607
  const exists = data.fields.some((field) => field.id === source);
38232
38608
  if (!exists) {
38233
38609
  ctx.addIssue({
38234
- code: z63.ZodIssueCode.custom,
38610
+ code: z64.ZodIssueCode.custom,
38235
38611
  message: `titleSource must reference a valid field ID (got "${source}")`,
38236
38612
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38237
38613
  });
@@ -38240,7 +38616,7 @@ var sdkCustomBlockInputSchema = z63.object({
38240
38616
  }
38241
38617
  if (data.layout && data.variants) {
38242
38618
  ctx.addIssue({
38243
- code: z63.ZodIssueCode.custom,
38619
+ code: z64.ZodIssueCode.custom,
38244
38620
  message: "Custom block must define either `layout` or `variants`, not both",
38245
38621
  path: ["variants"]
38246
38622
  });
@@ -38249,14 +38625,14 @@ var sdkCustomBlockInputSchema = z63.object({
38249
38625
  const keys = Object.keys(data.variants);
38250
38626
  if (keys.length === 0) {
38251
38627
  ctx.addIssue({
38252
- code: z63.ZodIssueCode.custom,
38628
+ code: z64.ZodIssueCode.custom,
38253
38629
  message: "`variants` must contain at least one variant key",
38254
38630
  path: ["variants"]
38255
38631
  });
38256
38632
  }
38257
38633
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38258
38634
  ctx.addIssue({
38259
- code: z63.ZodIssueCode.custom,
38635
+ code: z64.ZodIssueCode.custom,
38260
38636
  message: "`defaultVariant` must be a key present in `variants`",
38261
38637
  path: ["defaultVariant"]
38262
38638
  });
@@ -38265,7 +38641,7 @@ var sdkCustomBlockInputSchema = z63.object({
38265
38641
  for (const key of Object.keys(data.variantOptions)) {
38266
38642
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38267
38643
  ctx.addIssue({
38268
- code: z63.ZodIssueCode.custom,
38644
+ code: z64.ZodIssueCode.custom,
38269
38645
  message: "`variantOptions` key must exist in `variants`",
38270
38646
  path: ["variantOptions", key]
38271
38647
  });
@@ -38274,78 +38650,78 @@ var sdkCustomBlockInputSchema = z63.object({
38274
38650
  }
38275
38651
  }
38276
38652
  });
38277
- var sdkBlockFieldExtensionInputSchema = z63.object({
38653
+ var sdkBlockFieldExtensionInputSchema = z64.object({
38278
38654
  fields: fieldDefinitionInputSchema.array().min(1)
38279
38655
  });
38280
- var sdkBlockFieldExtensionsInputSchema = z63.record(
38281
- z63.string().min(1),
38656
+ var sdkBlockFieldExtensionsInputSchema = z64.record(
38657
+ z64.string().min(1),
38282
38658
  sdkBlockFieldExtensionInputSchema
38283
38659
  );
38284
- var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38285
- var sdkThemeConfigSchema = z63.object({
38660
+ var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
38661
+ var sdkThemeConfigSchema = z64.object({
38286
38662
  palette: sdkThemePaletteSchema
38287
38663
  });
38288
- var sdkSectionBackgroundSchema = z63.object({
38289
- id: z63.string().min(1),
38290
- label: z63.string().min(1),
38291
- token: z63.string().min(1)
38664
+ var sdkSectionBackgroundSchema = z64.object({
38665
+ id: z64.string().min(1),
38666
+ label: z64.string().min(1),
38667
+ token: z64.string().min(1)
38292
38668
  });
38293
- var sdkSectionOptionsConfigSchema = z63.object({
38294
- backgroundColor: z63.boolean().optional(),
38295
- backgroundImage: z63.boolean().optional(),
38296
- backgroundGradient: z63.boolean().optional(),
38297
- spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38298
- textColor: z63.boolean().optional()
38669
+ var sdkSectionOptionsConfigSchema = z64.object({
38670
+ backgroundColor: z64.boolean().optional(),
38671
+ backgroundImage: z64.boolean().optional(),
38672
+ backgroundGradient: z64.boolean().optional(),
38673
+ spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
38674
+ textColor: z64.boolean().optional()
38299
38675
  });
38300
- var sdkContainerOptionsConfigSchema = z63.object({
38301
- maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38302
- alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38676
+ var sdkContainerOptionsConfigSchema = z64.object({
38677
+ maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
38678
+ alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38303
38679
  });
38304
- var sdkSiteStyleConfigSchema = z63.object({
38305
- sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38680
+ var sdkSiteStyleConfigSchema = z64.object({
38681
+ sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38306
38682
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38307
38683
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38308
38684
  });
38309
- var sdkSiteLayoutConfigSchema = z63.object({
38310
- footerBlocks: z63.array(
38311
- z63.object({
38312
- id: z63.string().min(1).optional(),
38313
- kind: z63.string().min(1),
38314
- content: z63.record(z63.string(), z63.unknown()).optional()
38685
+ var sdkSiteLayoutConfigSchema = z64.object({
38686
+ footerBlocks: z64.array(
38687
+ z64.object({
38688
+ id: z64.string().min(1).optional(),
38689
+ kind: z64.string().min(1),
38690
+ content: z64.record(z64.string(), z64.unknown()).optional()
38315
38691
  })
38316
38692
  ).optional()
38317
38693
  });
38318
- var sdkFieldSelectOptionSchema = z63.object({
38319
- value: z63.string(),
38320
- label: z63.string()
38694
+ var sdkFieldSelectOptionSchema = z64.object({
38695
+ value: z64.string(),
38696
+ label: z64.string()
38321
38697
  });
38322
- var sdkBlockFieldConfigSchema = z63.object({
38323
- options: z63.array(sdkFieldSelectOptionSchema).optional()
38698
+ var sdkBlockFieldConfigSchema = z64.object({
38699
+ options: z64.array(sdkFieldSelectOptionSchema).optional()
38324
38700
  });
38325
- var sdkBlockFieldOptionsMapSchema = z63.record(
38326
- z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38701
+ var sdkBlockFieldOptionsMapSchema = z64.record(
38702
+ z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38327
38703
  message: "Block ID must be 'block.*' or 'custom.*' format"
38328
38704
  }),
38329
- z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38705
+ z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38330
38706
  ).optional();
38331
- var sdkContentTypeTemplateConfigSchema = z63.object({
38332
- blocks: z63.array(z63.unknown())
38707
+ var sdkContentTypeTemplateConfigSchema = z64.object({
38708
+ blocks: z64.array(z64.unknown())
38333
38709
  }).passthrough();
38334
- var sdkContentTypeOrderingConfigSchema = z63.object({
38335
- mode: z63.enum(["default", "manual"]).optional()
38710
+ var sdkContentTypeOrderingConfigSchema = z64.object({
38711
+ mode: z64.enum(["default", "manual"]).optional()
38336
38712
  }).optional();
38337
- var sdkContentTypeConfigSchema = z63.object({
38338
- key: z63.string().min(1),
38339
- fields: z63.array(z63.unknown()),
38713
+ var sdkContentTypeConfigSchema = z64.object({
38714
+ key: z64.string().min(1),
38715
+ fields: z64.array(z64.unknown()),
38340
38716
  ordering: sdkContentTypeOrderingConfigSchema,
38341
38717
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38342
38718
  }).passthrough();
38343
- var sdkContentConfigSchema = z63.object({
38344
- contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38345
- pages: z63.array(z63.unknown()).optional(),
38346
- entries: z63.array(z63.unknown()).optional(),
38347
- navigationMenus: z63.array(z63.unknown()).optional(),
38348
- settings: z63.unknown().optional()
38719
+ var sdkContentConfigSchema = z64.object({
38720
+ contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
38721
+ pages: z64.array(z64.unknown()).optional(),
38722
+ entries: z64.array(z64.unknown()).optional(),
38723
+ navigationMenus: z64.array(z64.unknown()).optional(),
38724
+ settings: z64.unknown().optional()
38349
38725
  }).passthrough();
38350
38726
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38351
38727
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38360,62 +38736,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38360
38736
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38361
38737
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38362
38738
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38363
- var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38739
+ var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38364
38740
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38365
38741
  });
38366
- 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 "/"' });
38367
- var sdkWorkflowManualTriggerSchema = z63.object({
38368
- type: z63.literal("manual")
38742
+ 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 "/"' });
38743
+ var sdkWorkflowManualTriggerSchema = z64.object({
38744
+ type: z64.literal("manual")
38369
38745
  }).strict();
38370
- var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38746
+ var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38371
38747
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38372
38748
  });
38373
- var sdkWorkflowFieldChangedConditionSchema = z63.object({
38749
+ var sdkWorkflowFieldChangedConditionSchema = z64.object({
38374
38750
  field: sdkWorkflowTriggerFieldSchema,
38375
- changed: z63.literal(true)
38751
+ changed: z64.literal(true)
38376
38752
  }).strict();
38377
- var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38753
+ var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38378
38754
  field: sdkWorkflowTriggerFieldSchema,
38379
- isEmpty: z63.boolean()
38755
+ isEmpty: z64.boolean()
38380
38756
  }).strict();
38381
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38382
- type: z63.literal("entry.draft.updated"),
38383
- when: z63.array(
38384
- z63.union([
38757
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
38758
+ type: z64.literal("entry.draft.updated"),
38759
+ when: z64.array(
38760
+ z64.union([
38385
38761
  sdkWorkflowFieldChangedConditionSchema,
38386
38762
  sdkWorkflowFieldEmptyConditionSchema
38387
38763
  ])
38388
38764
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38389
38765
  }).strict();
38390
- var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38766
+ var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38391
38767
  sdkWorkflowManualTriggerSchema,
38392
38768
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38393
38769
  ]);
38394
- var sdkWorkflowConfirmationSchema = z63.object({
38395
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38396
- body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38770
+ var sdkWorkflowConfirmationSchema = z64.object({
38771
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38772
+ body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38397
38773
  }).strict();
38398
- var sdkWorkflowConfigSchema = z63.object({
38774
+ var sdkWorkflowConfigSchema = z64.object({
38399
38775
  id: sdkWorkflowIdSchema,
38400
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38401
- description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38402
- contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38776
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38777
+ description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38778
+ contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38403
38779
  endpoint: sdkWorkflowEndpointSchema,
38404
- triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38780
+ triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38405
38781
  confirmation: sdkWorkflowConfirmationSchema.optional()
38406
38782
  }).strict();
38407
- var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38783
+ var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38408
38784
  const ids = workflows.map((workflow) => workflow.id);
38409
38785
  return ids.length === new Set(ids).size;
38410
38786
  }, { message: "Workflow IDs must be unique" }).optional();
38411
- var riverbankSiteConfigInputSchema = z63.object({
38412
- siteId: z63.string().uuid(),
38413
- previewUrl: z63.string().url().optional(),
38414
- liveUrl: z63.string().url().optional(),
38787
+ var riverbankSiteConfigInputSchema = z64.object({
38788
+ siteId: z64.string().uuid(),
38789
+ previewUrl: z64.string().url().optional(),
38790
+ liveUrl: z64.string().url().optional(),
38415
38791
  theme: sdkThemeConfigSchema.optional(),
38416
38792
  styles: sdkSiteStyleConfigSchema.optional(),
38417
38793
  layout: sdkSiteLayoutConfigSchema.optional(),
38418
- customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38794
+ customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38419
38795
  const ids = blocks.map((b) => b.id);
38420
38796
  return ids.length === new Set(ids).size;
38421
38797
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38423,50 +38799,51 @@ var riverbankSiteConfigInputSchema = z63.object({
38423
38799
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38424
38800
  workflows: sdkWorkflowsSchema,
38425
38801
  content: sdkContentConfigSchema.optional(),
38426
- contentDir: z63.string().optional(),
38427
- sync: z63.object({
38428
- existingEntries: z63.enum(["skip", "update"]).optional()
38802
+ contentDir: z64.string().optional(),
38803
+ sync: z64.object({
38804
+ existingEntries: z64.enum(["skip", "update"]).optional()
38429
38805
  }).optional(),
38430
- deploy: z63.object({
38431
- verifyCommand: z63.string().optional(),
38432
- prebuildOutput: z63.string().optional()
38806
+ deploy: z64.object({
38807
+ verifyCommand: z64.string().optional(),
38808
+ prebuildOutput: z64.string().optional()
38433
38809
  }).optional(),
38434
- themeSource: z63.enum(["local", "cms"]).optional(),
38435
- activeTheme: z63.string().optional(),
38436
- enablePortal: z63.boolean().optional(),
38810
+ themeSource: z64.enum(["local", "cms"]).optional(),
38811
+ activeTheme: z64.string().optional(),
38812
+ enablePortal: z64.boolean().optional(),
38437
38813
  dashboard: dashboardConfigSchema.optional()
38438
38814
  }).strict();
38439
- var pushSdkConfigBodySchema = z63.object({
38815
+ var pushSdkConfigBodySchema = z64.object({
38440
38816
  config: riverbankSiteConfigInputSchema,
38441
- forceContentTypes: z63.boolean().optional()
38817
+ forceContentTypes: z64.boolean().optional(),
38818
+ mode: z64.enum(["apply", "preview"]).optional()
38442
38819
  }).strict();
38443
38820
 
38444
38821
  // ../api/src/siteOnboarding.ts
38445
- import { z as z64 } from "zod";
38822
+ import { z as z65 } from "zod";
38446
38823
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38447
38824
  configure_appointments: {
38448
38825
  requirementId: "configure_appointments",
38449
38826
  reason: "launch_anyway"
38450
38827
  }
38451
38828
  };
38452
- var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38829
+ var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38453
38830
  "requirementId",
38454
38831
  [
38455
- z64.object({
38456
- requirementId: z64.literal("review_generated_site")
38832
+ z65.object({
38833
+ requirementId: z65.literal("review_generated_site")
38457
38834
  }),
38458
- z64.object({
38459
- requirementId: z64.literal(
38835
+ z65.object({
38836
+ requirementId: z65.literal(
38460
38837
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38461
38838
  ),
38462
- overrideReason: z64.literal(
38839
+ overrideReason: z65.literal(
38463
38840
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38464
38841
  )
38465
38842
  })
38466
38843
  ]
38467
38844
  );
38468
- var goLiveSiteRequestSchema = z64.object({
38469
- acceptExtraSiteCharge: z64.boolean().optional()
38845
+ var goLiveSiteRequestSchema = z65.object({
38846
+ acceptExtraSiteCharge: z65.boolean().optional()
38470
38847
  });
38471
38848
 
38472
38849
  // ../surfaces/src/index.ts
@@ -38585,7 +38962,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38585
38962
  ];
38586
38963
 
38587
38964
  // ../api/src/bookingVerticals.ts
38588
- import { z as z65 } from "zod";
38965
+ import { z as z66 } from "zod";
38589
38966
  var VERTICAL_IDS = [
38590
38967
  "yoga_wellness",
38591
38968
  "fitness_pt",
@@ -38750,39 +39127,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38750
39127
  }
38751
39128
  return [...issues];
38752
39129
  }
38753
- var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
39130
+ var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38754
39131
  const parsed = parseVerticalId(value);
38755
39132
  if (!parsed) {
38756
39133
  ctx.addIssue({
38757
- code: z65.ZodIssueCode.custom,
39134
+ code: z66.ZodIssueCode.custom,
38758
39135
  message: "Unknown booking vertical"
38759
39136
  });
38760
- return z65.NEVER;
39137
+ return z66.NEVER;
38761
39138
  }
38762
39139
  return parsed;
38763
39140
  });
38764
- var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
39141
+ var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38765
39142
  const parsed = parseVerticalPresetId(value);
38766
39143
  if (!parsed) {
38767
39144
  ctx.addIssue({
38768
- code: z65.ZodIssueCode.custom,
39145
+ code: z66.ZodIssueCode.custom,
38769
39146
  message: "Unknown booking preset"
38770
39147
  });
38771
- return z65.NEVER;
39148
+ return z66.NEVER;
38772
39149
  }
38773
39150
  return parsed;
38774
39151
  });
38775
- var BookingVerticalConfigSchema = z65.object({
39152
+ var BookingVerticalConfigSchema = z66.object({
38776
39153
  verticalId: VerticalIdSchema.nullable(),
38777
- selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
39154
+ selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38778
39155
  }).transform((value, ctx) => {
38779
39156
  const resolved = resolveSiteVerticalBookingConfig(value);
38780
39157
  if (resolved.kind === "invalid") {
38781
39158
  ctx.addIssue({
38782
- code: z65.ZodIssueCode.custom,
39159
+ code: z66.ZodIssueCode.custom,
38783
39160
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38784
39161
  });
38785
- return z65.NEVER;
39162
+ return z66.NEVER;
38786
39163
  }
38787
39164
  return resolved.config;
38788
39165
  });
@@ -38809,51 +39186,51 @@ function isRecord8(value) {
38809
39186
  }
38810
39187
 
38811
39188
  // ../api/src/appointmentSetup.ts
38812
- import { z as z66 } from "zod";
39189
+ import { z as z67 } from "zod";
38813
39190
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38814
- var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
38815
- z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
38816
- z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
39191
+ var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
39192
+ z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
39193
+ z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38817
39194
  ]);
38818
- var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
38819
- z66.object({ kind: z66.literal("none") }),
38820
- z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
38821
- z66.object({
38822
- kind: z66.literal("create"),
38823
- draftId: z66.string().min(1),
38824
- title: z66.string().trim().min(1),
38825
- description: z66.string().nullable(),
38826
- timezone: z66.string().trim().min(1).nullable(),
38827
- addressJson: z66.record(z66.string(), z66.unknown()),
38828
- locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
39195
+ var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
39196
+ z67.object({ kind: z67.literal("none") }),
39197
+ z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
39198
+ z67.object({
39199
+ kind: z67.literal("create"),
39200
+ draftId: z67.string().min(1),
39201
+ title: z67.string().trim().min(1),
39202
+ description: z67.string().nullable(),
39203
+ timezone: z67.string().trim().min(1).nullable(),
39204
+ addressJson: z67.record(z67.string(), z67.unknown()),
39205
+ locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38829
39206
  })
38830
39207
  ]);
38831
- var appointmentSetupPaymentDraftSchema = z66.object({
38832
- priceType: z66.union([z66.literal("free"), z66.literal("paid")])
38833
- });
38834
- var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
38835
- z66.object({ kind: z66.literal("all_practitioners") }),
38836
- z66.object({
38837
- kind: z66.literal("selected_practitioners"),
38838
- resourceRefs: z66.array(appointmentSetupRefSchema)
39208
+ var appointmentSetupPaymentDraftSchema = z67.object({
39209
+ priceType: z67.union([z67.literal("free"), z67.literal("paid")])
39210
+ });
39211
+ var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
39212
+ z67.object({ kind: z67.literal("all_practitioners") }),
39213
+ z67.object({
39214
+ kind: z67.literal("selected_practitioners"),
39215
+ resourceRefs: z67.array(appointmentSetupRefSchema)
38839
39216
  })
38840
39217
  ]);
38841
- var appointmentSetupServiceDraftSchema = z66.object({
39218
+ var appointmentSetupServiceDraftSchema = z67.object({
38842
39219
  ref: appointmentSetupRefSchema,
38843
- title: z66.string().trim().min(1),
38844
- description: z66.string().nullable(),
38845
- durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38846
- prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38847
- cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38848
- priceAmount: z66.number().int().nonnegative().nullable(),
38849
- isActive: z66.boolean(),
38850
- locationType: z66.union([
38851
- z66.literal("virtual"),
38852
- z66.literal("in_person"),
38853
- z66.literal("hybrid")
39220
+ title: z67.string().trim().min(1),
39221
+ description: z67.string().nullable(),
39222
+ durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39223
+ prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39224
+ cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39225
+ priceAmount: z67.number().int().nonnegative().nullable(),
39226
+ isActive: z67.boolean(),
39227
+ locationType: z67.union([
39228
+ z67.literal("virtual"),
39229
+ z67.literal("in_person"),
39230
+ z67.literal("hybrid")
38854
39231
  ]),
38855
39232
  venue: appointmentSetupVenueChoiceSchema,
38856
- timezone: z66.string().trim().min(1).nullable(),
39233
+ timezone: z67.string().trim().min(1).nullable(),
38857
39234
  payment: appointmentSetupPaymentDraftSchema,
38858
39235
  assignment: appointmentSetupServiceAssignmentDraftSchema
38859
39236
  }).superRefine((service, ctx) => {
@@ -38872,49 +39249,49 @@ var appointmentSetupServiceDraftSchema = z66.object({
38872
39249
  });
38873
39250
  }
38874
39251
  });
38875
- var appointmentSetupPractitionerDraftSchema = z66.object({
39252
+ var appointmentSetupPractitionerDraftSchema = z67.object({
38876
39253
  ref: appointmentSetupRefSchema,
38877
- displayName: z66.string().trim().min(1),
38878
- bio: z66.string().nullable(),
38879
- timezone: z66.string().trim().min(1),
38880
- colorHex: z66.string().nullable()
38881
- });
38882
- var appointmentSetupWeeklyWindowDraftSchema = z66.object({
38883
- weekday: z66.number().int().min(0).max(6),
38884
- startTime: z66.string(),
38885
- endTime: z66.string()
38886
- });
38887
- var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
38888
- z66.object({ kind: z66.literal("automatic_spacing") }),
38889
- z66.object({
38890
- kind: z66.literal("regular_interval"),
38891
- intervalMinutes: z66.union([
38892
- z66.literal(10),
38893
- z66.literal(15),
38894
- z66.literal(20),
38895
- z66.literal(30),
38896
- z66.literal(45),
38897
- z66.literal(60)
39254
+ displayName: z67.string().trim().min(1),
39255
+ bio: z67.string().nullable(),
39256
+ timezone: z67.string().trim().min(1),
39257
+ colorHex: z67.string().nullable()
39258
+ });
39259
+ var appointmentSetupWeeklyWindowDraftSchema = z67.object({
39260
+ weekday: z67.number().int().min(0).max(6),
39261
+ startTime: z67.string(),
39262
+ endTime: z67.string()
39263
+ });
39264
+ var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
39265
+ z67.object({ kind: z67.literal("automatic_spacing") }),
39266
+ z67.object({
39267
+ kind: z67.literal("regular_interval"),
39268
+ intervalMinutes: z67.union([
39269
+ z67.literal(10),
39270
+ z67.literal(15),
39271
+ z67.literal(20),
39272
+ z67.literal(30),
39273
+ z67.literal(45),
39274
+ z67.literal(60)
38898
39275
  ])
38899
39276
  })
38900
39277
  ]);
38901
- var appointmentSetupAvailabilityDraftSchema = z66.object({
38902
- kind: z66.literal("weekly_windows"),
39278
+ var appointmentSetupAvailabilityDraftSchema = z67.object({
39279
+ kind: z67.literal("weekly_windows"),
38903
39280
  resourceRef: appointmentSetupRefSchema,
38904
39281
  serviceRef: appointmentSetupRefSchema.nullable(),
38905
- windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
39282
+ windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38906
39283
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38907
39284
  });
38908
39285
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38909
39286
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38910
- var appointmentSetupBookingNoticeSchema = z66.object({
38911
- minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38912
- maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38913
- });
38914
- var applyAppointmentSetupRequestSchema = z66.object({
38915
- services: z66.array(appointmentSetupServiceDraftSchema),
38916
- practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
38917
- availability: z66.array(appointmentSetupAvailabilityDraftSchema),
39287
+ var appointmentSetupBookingNoticeSchema = z67.object({
39288
+ minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39289
+ maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39290
+ });
39291
+ var applyAppointmentSetupRequestSchema = z67.object({
39292
+ services: z67.array(appointmentSetupServiceDraftSchema),
39293
+ practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
39294
+ availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38918
39295
  bookingNotice: appointmentSetupBookingNoticeSchema
38919
39296
  });
38920
39297
 
@@ -38947,24 +39324,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38947
39324
  ];
38948
39325
 
38949
39326
  // ../api/src/siteBanner.ts
38950
- import { z as z67 } from "zod";
39327
+ import { z as z68 } from "zod";
38951
39328
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38952
39329
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38953
39330
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38954
39331
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38955
- var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
38956
- var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
38957
- var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
38958
- var siteBannerCtaSchema = z67.object({
38959
- label: z67.string().trim().min(1),
39332
+ var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
39333
+ var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
39334
+ var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
39335
+ var siteBannerCtaSchema = z68.object({
39336
+ label: z68.string().trim().min(1),
38960
39337
  link: linkPayloadSchema
38961
39338
  });
38962
- var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38963
- z67.object({
38964
- enabled: z67.literal(false)
39339
+ var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
39340
+ z68.object({
39341
+ enabled: z68.literal(false)
38965
39342
  }),
38966
- z67.object({
38967
- enabled: z67.literal(true),
39343
+ z68.object({
39344
+ enabled: z68.literal(true),
38968
39345
  scope: siteBannerScopeSchema,
38969
39346
  tone: siteBannerToneSchema,
38970
39347
  body: siteBannerBodySchema,
@@ -38978,7 +39355,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38978
39355
  const analysis = analyzeSiteBannerBody(value.body);
38979
39356
  for (const issue of analysis.issues) {
38980
39357
  ctx.addIssue({
38981
- code: z67.ZodIssueCode.custom,
39358
+ code: z68.ZodIssueCode.custom,
38982
39359
  path: ["body"],
38983
39360
  message: siteBannerBodyIssueMessage(issue)
38984
39361
  });
@@ -39285,75 +39662,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39285
39662
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39286
39663
 
39287
39664
  // ../api/src/aiPlayground.ts
39288
- import { z as z68 } from "zod";
39289
- var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39665
+ import { z as z69 } from "zod";
39666
+ var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39290
39667
  // Standard RFC-6902 operations
39291
- z68.object({
39292
- op: z68.literal("add"),
39293
- path: z68.string(),
39294
- value: z68.unknown()
39668
+ z69.object({
39669
+ op: z69.literal("add"),
39670
+ path: z69.string(),
39671
+ value: z69.unknown()
39295
39672
  }),
39296
- z68.object({
39297
- op: z68.literal("remove"),
39298
- path: z68.string()
39673
+ z69.object({
39674
+ op: z69.literal("remove"),
39675
+ path: z69.string()
39299
39676
  }),
39300
- z68.object({
39301
- op: z68.literal("replace"),
39302
- path: z68.string(),
39303
- value: z68.unknown()
39677
+ z69.object({
39678
+ op: z69.literal("replace"),
39679
+ path: z69.string(),
39680
+ value: z69.unknown()
39304
39681
  }),
39305
- z68.object({
39306
- op: z68.literal("move"),
39307
- from: z68.string(),
39308
- path: z68.string()
39682
+ z69.object({
39683
+ op: z69.literal("move"),
39684
+ from: z69.string(),
39685
+ path: z69.string()
39309
39686
  }),
39310
- z68.object({
39311
- op: z68.literal("copy"),
39312
- from: z68.string(),
39313
- path: z68.string()
39687
+ z69.object({
39688
+ op: z69.literal("copy"),
39689
+ from: z69.string(),
39690
+ path: z69.string()
39314
39691
  }),
39315
39692
  // Block-level operations (Phase 2)
39316
- z68.object({
39317
- op: z68.literal("add_block"),
39318
- blockKind: z68.string(),
39319
- afterBlockId: z68.string().nullable(),
39320
- content: z68.record(z68.string(), z68.unknown()),
39321
- rationale: z68.string()
39693
+ z69.object({
39694
+ op: z69.literal("add_block"),
39695
+ blockKind: z69.string(),
39696
+ afterBlockId: z69.string().nullable(),
39697
+ content: z69.record(z69.string(), z69.unknown()),
39698
+ rationale: z69.string()
39322
39699
  }),
39323
- z68.object({
39324
- op: z68.literal("delete_block"),
39325
- blockId: z68.string(),
39326
- rationale: z68.string()
39700
+ z69.object({
39701
+ op: z69.literal("delete_block"),
39702
+ blockId: z69.string(),
39703
+ rationale: z69.string()
39327
39704
  }),
39328
- z68.object({
39329
- op: z68.literal("reorder_block"),
39330
- blockId: z68.string(),
39331
- afterBlockId: z68.string().nullable(),
39332
- rationale: z68.string()
39705
+ z69.object({
39706
+ op: z69.literal("reorder_block"),
39707
+ blockId: z69.string(),
39708
+ afterBlockId: z69.string().nullable(),
39709
+ rationale: z69.string()
39333
39710
  })
39334
39711
  ]);
39335
- var PlaygroundProposeRequest = z68.object({
39336
- request: z68.string().min(1).max(2e3)
39712
+ var PlaygroundProposeRequest = z69.object({
39713
+ request: z69.string().min(1).max(2e3)
39337
39714
  });
39338
- var MultiPagePatchEnvelope = z68.object({
39339
- pageId: z68.string(),
39340
- blockId: z68.string().optional(),
39715
+ var MultiPagePatchEnvelope = z69.object({
39716
+ pageId: z69.string(),
39717
+ blockId: z69.string().optional(),
39341
39718
  // Not present for page-level ops
39342
- blockKind: z68.string().optional(),
39343
- blockPurpose: z68.string().optional().nullable(),
39344
- ops: z68.array(Rfc6902PatchOp),
39345
- rationale: z68.string(),
39346
- currentContent: z68.record(z68.string(), z68.unknown()).optional()
39719
+ blockKind: z69.string().optional(),
39720
+ blockPurpose: z69.string().optional().nullable(),
39721
+ ops: z69.array(Rfc6902PatchOp),
39722
+ rationale: z69.string(),
39723
+ currentContent: z69.record(z69.string(), z69.unknown()).optional()
39347
39724
  });
39348
- var MultiPageUpdateResponse = z68.object({
39349
- patches: z68.array(MultiPagePatchEnvelope),
39350
- assistantMessage: z68.string(),
39351
- pagesModified: z68.number(),
39352
- toolCallsUsed: z68.number()
39725
+ var MultiPageUpdateResponse = z69.object({
39726
+ patches: z69.array(MultiPagePatchEnvelope),
39727
+ assistantMessage: z69.string(),
39728
+ pagesModified: z69.number(),
39729
+ toolCallsUsed: z69.number()
39353
39730
  });
39354
39731
 
39355
39732
  // src/config/content-validation.ts
39356
- import { z as z69 } from "zod";
39733
+ import { z as z70 } from "zod";
39357
39734
 
39358
39735
  // src/types/block-kinds.ts
39359
39736
  var SYSTEM_BLOCK_KINDS = [
@@ -39383,6 +39760,7 @@ var SYSTEM_BLOCK_KINDS = [
39383
39760
  "block.form",
39384
39761
  "block.contact-newsletter",
39385
39762
  "block.appointment-booking",
39763
+ "block.weekly-slot-availability",
39386
39764
  "block.event-registration",
39387
39765
  "block.event-details",
39388
39766
  "block.course-registration",
@@ -39484,7 +39862,7 @@ function isUnsupportedDynamicSegment(segment) {
39484
39862
  return segment.startsWith(":") || segment.includes("{") || segment.includes("}");
39485
39863
  }
39486
39864
 
39487
- // src/contracts/bindings.ts
39865
+ // ../field-primitives/src/bindings/index.ts
39488
39866
  var BINDING_TRANSFORMS = {
39489
39867
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
39490
39868
  DATE_FORMAT_SHORT: "date.formatShort",
@@ -39492,42 +39870,45 @@ var BINDING_TRANSFORMS = {
39492
39870
  TEXT_INLINE_TEXT: "text.inlineText"
39493
39871
  };
39494
39872
  var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
39495
- var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES.join(", ");
39873
+
39874
+ // src/contracts/bindings.ts
39875
+ var BINDING_TRANSFORM_VALUES2 = BINDING_TRANSFORM_VALUES;
39876
+ var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES2.join(", ");
39496
39877
  function describeInvalidBindingTransform(transform) {
39497
39878
  return `Transform "${transform}" is not valid. Allowed: ${BINDING_TRANSFORM_LIST}`;
39498
39879
  }
39499
39880
 
39500
39881
  // src/config/content-validation.ts
39501
- var jsonDataSchema = z69.record(z69.string(), z69.any());
39502
- var contentTypeKeySchema = z69.string().min(1).regex(
39882
+ var jsonDataSchema = z70.record(z70.string(), z70.any());
39883
+ var contentTypeKeySchema = z70.string().min(1).regex(
39503
39884
  /^[a-z][a-z0-9-]*$/,
39504
39885
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39505
39886
  );
39506
- var templateConfigSchemaForward = z69.object({
39507
- blocks: z69.array(
39508
- z69.object({
39509
- identifier: z69.string().min(1),
39510
- kind: z69.string(),
39511
- scope: z69.enum(["entry", "template"]),
39512
- bindings: z69.record(z69.string(), z69.any()).optional(),
39513
- content: z69.record(z69.string(), z69.any()).optional()
39887
+ var templateConfigSchemaForward = z70.object({
39888
+ blocks: z70.array(
39889
+ z70.object({
39890
+ identifier: z70.string().min(1),
39891
+ kind: z70.string(),
39892
+ scope: z70.enum(["entry", "template"]),
39893
+ bindings: z70.record(z70.string(), z70.any()).optional(),
39894
+ content: z70.record(z70.string(), z70.any()).optional()
39514
39895
  })
39515
39896
  )
39516
39897
  }).optional();
39517
- var contentTypeOrderingSchema = z69.object({
39518
- mode: z69.enum(["default", "manual"]).optional()
39898
+ var contentTypeOrderingSchema = z70.object({
39899
+ mode: z70.enum(["default", "manual"]).optional()
39519
39900
  }).optional();
39520
- var contentTypeConfigSchema = z69.object({
39901
+ var contentTypeConfigSchema = z70.object({
39521
39902
  key: contentTypeKeySchema,
39522
- name: z69.string().min(1),
39523
- description: z69.string().optional(),
39524
- hasPages: z69.boolean(),
39525
- routePattern: z69.string().optional(),
39903
+ name: z70.string().min(1),
39904
+ description: z70.string().optional(),
39905
+ hasPages: z70.boolean(),
39906
+ routePattern: z70.string().optional(),
39526
39907
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39527
- fields: z69.array(z69.any()).min(1, "At least one field is required"),
39528
- titleField: z69.string().optional(),
39908
+ fields: z70.array(z70.any()).min(1, "At least one field is required"),
39909
+ titleField: z70.string().optional(),
39529
39910
  ordering: contentTypeOrderingSchema,
39530
- isSingleton: z69.boolean().optional().default(false),
39911
+ isSingleton: z70.boolean().optional().default(false),
39531
39912
  template: templateConfigSchemaForward
39532
39913
  }).refine(
39533
39914
  (data) => {
@@ -39549,7 +39930,7 @@ var contentTypeConfigSchema = z69.object({
39549
39930
  }
39550
39931
  if (!data.routePattern) {
39551
39932
  ctx.addIssue({
39552
- code: z69.ZodIssueCode.custom,
39933
+ code: z70.ZodIssueCode.custom,
39553
39934
  path: ["routePattern"],
39554
39935
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39555
39936
  });
@@ -39558,7 +39939,7 @@ var contentTypeConfigSchema = z69.object({
39558
39939
  const parseResult = safeParseRouteTemplate(data.routePattern);
39559
39940
  if (!parseResult.success) {
39560
39941
  ctx.addIssue({
39561
- code: z69.ZodIssueCode.custom,
39942
+ code: z70.ZodIssueCode.custom,
39562
39943
  path: ["routePattern"],
39563
39944
  message: describeRouteTemplateParseError(parseResult.error)
39564
39945
  });
@@ -39566,44 +39947,44 @@ var contentTypeConfigSchema = z69.object({
39566
39947
  }
39567
39948
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39568
39949
  ctx.addIssue({
39569
- code: z69.ZodIssueCode.custom,
39950
+ code: z70.ZodIssueCode.custom,
39570
39951
  path: ["routePattern"],
39571
39952
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39572
39953
  });
39573
39954
  }
39574
39955
  });
39575
- var fieldBindingSchema = z69.object({
39576
- source: z69.literal("field"),
39577
- path: z69.string().min(1, "Field path is required")
39956
+ var fieldBindingSchema = z70.object({
39957
+ source: z70.literal("field"),
39958
+ path: z70.string().min(1, "Field path is required")
39578
39959
  });
39579
- var metaBindingSchema = z69.object({
39580
- source: z69.literal("meta"),
39581
- path: z69.enum(TEMPLATE_BINDING_META_PATHS, {
39960
+ var metaBindingSchema = z70.object({
39961
+ source: z70.literal("meta"),
39962
+ path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39582
39963
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39583
39964
  })
39584
39965
  });
39585
- var literalBindingSchema = z69.object({
39586
- source: z69.literal("literal"),
39587
- value: z69.unknown()
39966
+ var literalBindingSchema = z70.object({
39967
+ source: z70.literal("literal"),
39968
+ value: z70.unknown()
39588
39969
  });
39589
- var transformBindingSchema = z69.object({
39590
- source: z69.literal("transform"),
39591
- path: z69.string().min(1, "Transform path is required"),
39592
- transform: z69.enum(BINDING_TRANSFORM_VALUES, {
39970
+ var transformBindingSchema = z70.object({
39971
+ source: z70.literal("transform"),
39972
+ path: z70.string().min(1, "Transform path is required"),
39973
+ transform: z70.enum(BINDING_TRANSFORM_VALUES2, {
39593
39974
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39594
39975
  })
39595
39976
  });
39596
- var baseBindingSchema = z69.discriminatedUnion("source", [
39977
+ var baseBindingSchema = z70.discriminatedUnion("source", [
39597
39978
  fieldBindingSchema,
39598
39979
  metaBindingSchema,
39599
39980
  literalBindingSchema,
39600
39981
  transformBindingSchema
39601
39982
  ]);
39602
- var fallbackBindingSchema = z69.object({
39603
- source: z69.literal("fallback"),
39604
- sources: z69.array(z69.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39983
+ var fallbackBindingSchema = z70.object({
39984
+ source: z70.literal("fallback"),
39985
+ sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39605
39986
  });
39606
- var bindingSourceSchema = z69.union([
39987
+ var bindingSourceSchema = z70.union([
39607
39988
  baseBindingSchema,
39608
39989
  fallbackBindingSchema
39609
39990
  ]);
@@ -39617,12 +39998,12 @@ function isValidBlockKind(kind) {
39617
39998
  return false;
39618
39999
  }
39619
40000
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39620
- var blockKindSchema = z69.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39621
- var templateBlockConfigSchema = z69.object({
39622
- identifier: z69.string().min(1, "Block identifier is required"),
40001
+ var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
40002
+ var templateBlockConfigSchema = z70.object({
40003
+ identifier: z70.string().min(1, "Block identifier is required"),
39623
40004
  kind: blockKindSchema,
39624
- scope: z69.enum(["entry", "template"]),
39625
- bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
40005
+ scope: z70.enum(["entry", "template"]),
40006
+ bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39626
40007
  content: jsonDataSchema.optional()
39627
40008
  }).refine(
39628
40009
  (data) => {
@@ -39641,8 +40022,8 @@ var templateBlockConfigSchema = z69.object({
39641
40022
  },
39642
40023
  { message: "Template-scoped blocks should define static content, not bindings" }
39643
40024
  );
39644
- var templateConfigSchema = z69.object({
39645
- blocks: z69.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
40025
+ var templateConfigSchema = z70.object({
40026
+ blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39646
40027
  }).refine(
39647
40028
  (data) => {
39648
40029
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39651,77 +40032,77 @@ var templateConfigSchema = z69.object({
39651
40032
  },
39652
40033
  { message: "Template block identifiers must be unique" }
39653
40034
  );
39654
- var blockConfigSchema = z69.object({
40035
+ var blockConfigSchema = z70.object({
39655
40036
  kind: blockKindSchema,
39656
40037
  content: jsonDataSchema,
39657
- orderIndex: z69.number().optional()
39658
- });
39659
- var pageConfigSchema = z69.object({
39660
- identifier: z69.string().min(1, "Identifier is required"),
39661
- title: z69.string().min(1, "Title is required"),
39662
- path: z69.string().regex(/^\//, "Path must start with /"),
39663
- purpose: z69.string().default("content"),
39664
- blocks: z69.array(blockConfigSchema).optional(),
39665
- status: z69.enum(["draft", "published"]).default("draft"),
39666
- metaTitle: z69.string().optional(),
39667
- metaDescription: z69.string().optional()
39668
- });
39669
- var entryConfigSchema = z69.object({
39670
- identifier: z69.string().min(1, "Identifier is required"),
39671
- contentType: z69.string().min(1, "Content type is required"),
40038
+ orderIndex: z70.number().optional()
40039
+ });
40040
+ var pageConfigSchema = z70.object({
40041
+ identifier: z70.string().min(1, "Identifier is required"),
40042
+ title: z70.string().min(1, "Title is required"),
40043
+ path: z70.string().regex(/^\//, "Path must start with /"),
40044
+ purpose: z70.string().default("content"),
40045
+ blocks: z70.array(blockConfigSchema).optional(),
40046
+ status: z70.enum(["draft", "published"]).default("draft"),
40047
+ metaTitle: z70.string().optional(),
40048
+ metaDescription: z70.string().optional()
40049
+ });
40050
+ var entryConfigSchema = z70.object({
40051
+ identifier: z70.string().min(1, "Identifier is required"),
40052
+ contentType: z70.string().min(1, "Content type is required"),
39672
40053
  data: jsonDataSchema,
39673
- status: z69.enum(["draft", "published"]).default("draft"),
39674
- slug: z69.string().optional(),
39675
- summary: z69.string().optional(),
40054
+ status: z70.enum(["draft", "published"]).default("draft"),
40055
+ slug: z70.string().optional(),
40056
+ summary: z70.string().optional(),
39676
40057
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39677
- title: z69.any().optional().refine((value) => value === void 0, {
40058
+ title: z70.any().optional().refine((value) => value === void 0, {
39678
40059
  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."
39679
40060
  }),
39680
- metaTitle: z69.string().optional(),
39681
- metaDescription: z69.string().optional()
40061
+ metaTitle: z70.string().optional(),
40062
+ metaDescription: z70.string().optional()
39682
40063
  });
39683
- var dropdownLinkSchema = z69.object({
39684
- kind: z69.literal("dropdown")
40064
+ var dropdownLinkSchema = z70.object({
40065
+ kind: z70.literal("dropdown")
39685
40066
  });
39686
- var navigationLinkSchema = z69.discriminatedUnion("kind", [
40067
+ var navigationLinkSchema = z70.discriminatedUnion("kind", [
39687
40068
  ...navigationLinkInputSchemaOptions,
39688
40069
  dropdownLinkSchema
39689
40070
  ]);
39690
- var baseNavigationItemSchema = z69.object({
39691
- label: z69.string().min(1, "Label is required"),
40071
+ var baseNavigationItemSchema = z70.object({
40072
+ label: z70.string().min(1, "Label is required"),
39692
40073
  link: navigationLinkSchema,
39693
- isCta: z69.boolean().optional()
40074
+ isCta: z70.boolean().optional()
39694
40075
  });
39695
40076
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39696
- children: z69.lazy(() => z69.array(navigationItemConfigSchema)).optional()
39697
- });
39698
- var navigationMenuConfigSchema = z69.object({
39699
- identifier: z69.string().min(1, "Identifier is required"),
39700
- name: z69.string().min(1, "Name is required"),
39701
- isPrimary: z69.boolean().optional(),
39702
- isFooter: z69.boolean().optional(),
39703
- items: z69.array(navigationItemConfigSchema)
40077
+ children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
40078
+ });
40079
+ var navigationMenuConfigSchema = z70.object({
40080
+ identifier: z70.string().min(1, "Identifier is required"),
40081
+ name: z70.string().min(1, "Name is required"),
40082
+ isPrimary: z70.boolean().optional(),
40083
+ isFooter: z70.boolean().optional(),
40084
+ items: z70.array(navigationItemConfigSchema)
39704
40085
  }).superRefine((menu, ctx) => {
39705
40086
  const portalStats = collectPortalLinkStats(
39706
40087
  menu.items
39707
40088
  );
39708
40089
  if (portalStats.count > 1) {
39709
40090
  ctx.addIssue({
39710
- code: z69.ZodIssueCode.custom,
40091
+ code: z70.ZodIssueCode.custom,
39711
40092
  message: "Only one portal link is allowed per navigation menu",
39712
40093
  path: ["items"]
39713
40094
  });
39714
40095
  }
39715
40096
  if (portalStats.nestedLabels.length > 0) {
39716
40097
  ctx.addIssue({
39717
- code: z69.ZodIssueCode.custom,
40098
+ code: z70.ZodIssueCode.custom,
39718
40099
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39719
40100
  path: ["items"]
39720
40101
  });
39721
40102
  }
39722
40103
  if (portalStats.withChildrenLabels.length > 0) {
39723
40104
  ctx.addIssue({
39724
- code: z69.ZodIssueCode.custom,
40105
+ code: z70.ZodIssueCode.custom,
39725
40106
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39726
40107
  path: ["items"]
39727
40108
  });
@@ -39731,44 +40112,44 @@ var navigationMenuConfigSchema = z69.object({
39731
40112
  );
39732
40113
  if (cartStats.nestedLabels.length > 0) {
39733
40114
  ctx.addIssue({
39734
- code: z69.ZodIssueCode.custom,
40115
+ code: z70.ZodIssueCode.custom,
39735
40116
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39736
40117
  path: ["items"]
39737
40118
  });
39738
40119
  }
39739
40120
  if (cartStats.withChildrenLabels.length > 0) {
39740
40121
  ctx.addIssue({
39741
- code: z69.ZodIssueCode.custom,
40122
+ code: z70.ZodIssueCode.custom,
39742
40123
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39743
40124
  path: ["items"]
39744
40125
  });
39745
40126
  }
39746
40127
  if (cartStats.ctaLabels.length > 0) {
39747
40128
  ctx.addIssue({
39748
- code: z69.ZodIssueCode.custom,
40129
+ code: z70.ZodIssueCode.custom,
39749
40130
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39750
40131
  path: ["items"]
39751
40132
  });
39752
40133
  }
39753
40134
  if (cartStats.missingVisibleTextLabels.length > 0) {
39754
40135
  ctx.addIssue({
39755
- code: z69.ZodIssueCode.custom,
40136
+ code: z70.ZodIssueCode.custom,
39756
40137
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39757
40138
  path: ["items"]
39758
40139
  });
39759
40140
  }
39760
40141
  });
39761
- var siteSettingsConfigSchema = z69.object({
39762
- homepagePath: z69.string().optional(),
39763
- siteTitle: z69.string().optional(),
39764
- siteDescription: z69.string().optional(),
39765
- defaultTemplates: z69.record(z69.string(), z69.string()).optional()
40142
+ var siteSettingsConfigSchema = z70.object({
40143
+ homepagePath: z70.string().optional(),
40144
+ siteTitle: z70.string().optional(),
40145
+ siteDescription: z70.string().optional(),
40146
+ defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39766
40147
  });
39767
- var contentConfigBaseSchema = z69.object({
39768
- contentTypes: z69.array(contentTypeConfigSchema).optional(),
39769
- entries: z69.array(entryConfigSchema).optional(),
39770
- pages: z69.array(pageConfigSchema).optional(),
39771
- navigationMenus: z69.array(navigationMenuConfigSchema).optional(),
40148
+ var contentConfigBaseSchema = z70.object({
40149
+ contentTypes: z70.array(contentTypeConfigSchema).optional(),
40150
+ entries: z70.array(entryConfigSchema).optional(),
40151
+ pages: z70.array(pageConfigSchema).optional(),
40152
+ navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39772
40153
  settings: siteSettingsConfigSchema.optional()
39773
40154
  });
39774
40155
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39777,7 +40158,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39777
40158
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39778
40159
  if (duplicateKeys.length > 0) {
39779
40160
  ctx.addIssue({
39780
- code: z69.ZodIssueCode.custom,
40161
+ code: z70.ZodIssueCode.custom,
39781
40162
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39782
40163
  path: ["contentTypes"]
39783
40164
  });
@@ -39788,7 +40169,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39788
40169
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39789
40170
  if (duplicateIds.length > 0) {
39790
40171
  ctx.addIssue({
39791
- code: z69.ZodIssueCode.custom,
40172
+ code: z70.ZodIssueCode.custom,
39792
40173
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39793
40174
  path: ["pages"]
39794
40175
  });
@@ -39797,7 +40178,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39797
40178
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39798
40179
  if (duplicatePaths.length > 0) {
39799
40180
  ctx.addIssue({
39800
- code: z69.ZodIssueCode.custom,
40181
+ code: z70.ZodIssueCode.custom,
39801
40182
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39802
40183
  path: ["pages"]
39803
40184
  });
@@ -39808,7 +40189,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39808
40189
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39809
40190
  if (duplicateIds.length > 0) {
39810
40191
  ctx.addIssue({
39811
- code: z69.ZodIssueCode.custom,
40192
+ code: z70.ZodIssueCode.custom,
39812
40193
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39813
40194
  path: ["entries"]
39814
40195
  });
@@ -39819,7 +40200,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39819
40200
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39820
40201
  if (duplicateIds.length > 0) {
39821
40202
  ctx.addIssue({
39822
- code: z69.ZodIssueCode.custom,
40203
+ code: z70.ZodIssueCode.custom,
39823
40204
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39824
40205
  path: ["navigationMenus"]
39825
40206
  });
@@ -39833,7 +40214,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39833
40214
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39834
40215
  if (entriesForType.length > 1) {
39835
40216
  ctx.addIssue({
39836
- code: z69.ZodIssueCode.custom,
40217
+ code: z70.ZodIssueCode.custom,
39837
40218
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39838
40219
  path: ["entries"]
39839
40220
  });
@@ -39946,18 +40327,18 @@ function validateLayout(layout) {
39946
40327
  }
39947
40328
 
39948
40329
  // src/config/dashboard-validation.ts
39949
- import { z as z70 } from "zod";
39950
- var navIdListSchema2 = z70.preprocess((value) => {
40330
+ import { z as z71 } from "zod";
40331
+ var navIdListSchema2 = z71.preprocess((value) => {
39951
40332
  if (!Array.isArray(value)) return void 0;
39952
40333
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39953
40334
  return filtered.length > 0 ? filtered : void 0;
39954
- }, z70.array(z70.string()).max(200, "Maximum 200 nav IDs").optional());
39955
- var dashboardNavVisibilityBaseSchema2 = z70.object({
39956
- mode: z70.enum(["augment", "restrict"]).optional(),
40335
+ }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
40336
+ var dashboardNavVisibilityBaseSchema2 = z71.object({
40337
+ mode: z71.enum(["augment", "restrict"]).optional(),
39957
40338
  allowIds: navIdListSchema2,
39958
40339
  denyIds: navIdListSchema2
39959
40340
  }).strip();
39960
- var dashboardNavVisibilityRolesSchema2 = z70.object({
40341
+ var dashboardNavVisibilityRolesSchema2 = z71.object({
39961
40342
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39962
40343
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39963
40344
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39965,28 +40346,28 @@ var dashboardNavVisibilityRolesSchema2 = z70.object({
39965
40346
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39966
40347
  roles: dashboardNavVisibilityRolesSchema2
39967
40348
  }).strip();
39968
- var dashboardNavigationConfigSchema2 = z70.object({
40349
+ var dashboardNavigationConfigSchema2 = z71.object({
39969
40350
  siteNav: dashboardNavVisibilitySchema2.optional(),
39970
40351
  settingsNav: dashboardNavVisibilitySchema2.optional()
39971
40352
  }).strip();
39972
- var dashboardConfigSchema2 = z70.object({
39973
- previewEditingEnabled: z70.boolean().optional(),
40353
+ var dashboardConfigSchema2 = z71.object({
40354
+ previewEditingEnabled: z71.boolean().optional(),
39974
40355
  navigation: dashboardNavigationConfigSchema2.optional()
39975
40356
  }).strip();
39976
40357
 
39977
40358
  // src/zod/titleSourceSchema.ts
39978
- import { z as z71 } from "zod";
39979
- var titleSourceValueSchema = z71.union([
39980
- z71.string().min(1),
39981
- z71.array(z71.string().min(1)).min(1)
40359
+ import { z as z72 } from "zod";
40360
+ var titleSourceValueSchema = z72.union([
40361
+ z72.string().min(1),
40362
+ z72.array(z72.string().min(1)).min(1)
39982
40363
  ]);
39983
40364
 
39984
40365
  // src/config/validation.ts
39985
- var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39986
- var sdkThemeConfigSchema2 = z72.object({
40366
+ var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
40367
+ var sdkThemeConfigSchema2 = z73.object({
39987
40368
  palette: sdkThemePaletteSchema2
39988
40369
  });
39989
- var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
40370
+ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39990
40371
  try {
39991
40372
  const parsed = new URL(url);
39992
40373
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39995,97 +40376,97 @@ var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
39995
40376
  return false;
39996
40377
  }
39997
40378
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39998
- var sectionBackgroundSchema = z72.object({
39999
- id: z72.string(),
40000
- label: z72.string(),
40001
- token: z72.string()
40379
+ var sectionBackgroundSchema = z73.object({
40380
+ id: z73.string(),
40381
+ label: z73.string(),
40382
+ token: z73.string()
40002
40383
  // Reference to theme palette token
40003
40384
  });
40004
- var sectionSpacingSchema = z72.enum(["compact", "default", "spacious"]);
40005
- var containerMaxWidthSchema = z72.enum(["narrow", "default", "wide", "full"]);
40006
- var containerAlignmentSchema = z72.enum(["left", "center", "right"]);
40007
- var sectionOptionsSchema = z72.object({
40008
- backgroundColor: z72.boolean().optional(),
40009
- backgroundImage: z72.boolean().optional(),
40010
- backgroundGradient: z72.boolean().optional(),
40011
- spacing: z72.union([
40012
- z72.array(sectionSpacingSchema),
40013
- z72.boolean()
40385
+ var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
40386
+ var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
40387
+ var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
40388
+ var sectionOptionsSchema = z73.object({
40389
+ backgroundColor: z73.boolean().optional(),
40390
+ backgroundImage: z73.boolean().optional(),
40391
+ backgroundGradient: z73.boolean().optional(),
40392
+ spacing: z73.union([
40393
+ z73.array(sectionSpacingSchema),
40394
+ z73.boolean()
40014
40395
  ]).optional(),
40015
- textColor: z72.boolean().optional()
40396
+ textColor: z73.boolean().optional()
40016
40397
  }).optional();
40017
- var containerOptionsSchema = z72.object({
40018
- maxWidth: z72.union([
40019
- z72.array(containerMaxWidthSchema),
40020
- z72.boolean()
40398
+ var containerOptionsSchema = z73.object({
40399
+ maxWidth: z73.union([
40400
+ z73.array(containerMaxWidthSchema),
40401
+ z73.boolean()
40021
40402
  ]).optional(),
40022
- alignment: z72.union([
40023
- z72.array(containerAlignmentSchema),
40024
- z72.boolean()
40403
+ alignment: z73.union([
40404
+ z73.array(containerAlignmentSchema),
40405
+ z73.boolean()
40025
40406
  ]).optional()
40026
40407
  }).optional();
40027
- var siteStyleConfigSchema = z72.object({
40028
- sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
40408
+ var siteStyleConfigSchema = z73.object({
40409
+ sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
40029
40410
  sectionOptions: sectionOptionsSchema,
40030
40411
  containerOptions: containerOptionsSchema
40031
40412
  }).optional();
40032
- var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
40413
+ var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS);
40033
40414
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
40034
- var loaderTransformStepSchema = z72.object({
40035
- id: z72.string().refine((id) => allowedTransformIds.has(id), {
40415
+ var loaderTransformStepSchema = z73.object({
40416
+ id: z73.string().refine((id) => allowedTransformIds.has(id), {
40036
40417
  message: "Unknown transform id"
40037
40418
  }),
40038
- options: z72.record(z72.string(), z72.unknown()).optional()
40419
+ options: z73.record(z73.string(), z73.unknown()).optional()
40039
40420
  });
40040
- var loaderParamBindingSchema2 = z72.object({
40041
- $bind: z72.object({
40042
- from: z72.string().min(1, "Binding path is required"),
40421
+ var loaderParamBindingSchema2 = z73.object({
40422
+ $bind: z73.object({
40423
+ from: z73.string().min(1, "Binding path is required"),
40043
40424
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
40044
40425
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
40045
40426
  // more complex values into a string.
40046
40427
  fallback: loaderFallbackScalarSchema.optional(),
40047
- transforms: z72.array(loaderTransformStepSchema).default([]),
40048
- pick: z72.enum(["value", "collection", "context"]).default("value"),
40049
- coerce: z72.enum(["number", "boolean", "string"]).optional()
40428
+ transforms: z73.array(loaderTransformStepSchema).default([]),
40429
+ pick: z73.enum(["value", "collection", "context"]).default("value"),
40430
+ coerce: z73.enum(["number", "boolean", "string"]).optional()
40050
40431
  })
40051
40432
  });
40052
- var loaderParamValueSchema2 = z72.union([
40053
- z72.string(),
40054
- z72.number(),
40055
- z72.boolean(),
40433
+ var loaderParamValueSchema2 = z73.union([
40434
+ z73.string(),
40435
+ z73.number(),
40436
+ z73.boolean(),
40056
40437
  loaderParamBindingSchema2
40057
40438
  ]);
40058
- var loaderWhenValueSchema = z72.union([
40059
- z72.boolean(),
40439
+ var loaderWhenValueSchema = z73.union([
40440
+ z73.boolean(),
40060
40441
  loaderParamBindingSchema2
40061
40442
  ]);
40062
- var sdkConfigLoaderSchema2 = z72.object({
40443
+ var sdkConfigLoaderSchema2 = z73.object({
40063
40444
  endpoint: sdkLoaderEndpointSchema2,
40064
- params: z72.record(z72.string(), loaderParamValueSchema2),
40065
- mode: z72.enum(["server", "client"]).default("server"),
40445
+ params: z73.record(z73.string(), loaderParamValueSchema2),
40446
+ mode: z73.enum(["server", "client"]).default("server"),
40066
40447
  when: loaderWhenValueSchema.optional()
40067
40448
  });
40068
- var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
40449
+ var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
40069
40450
  (loaders) => Object.keys(loaders).length <= 5,
40070
40451
  { message: "Maximum 5 data loaders per block" }
40071
40452
  ).optional();
40072
- var fieldSelectOptionSchema = z72.object({
40073
- value: z72.string().min(1, "Option value is required"),
40074
- label: z72.string().min(1, "Option label is required")
40453
+ var fieldSelectOptionSchema = z73.object({
40454
+ value: z73.string().min(1, "Option value is required"),
40455
+ label: z73.string().min(1, "Option label is required")
40075
40456
  });
40076
- var blockFieldConfigSchema = z72.object({
40077
- options: z72.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40457
+ var blockFieldConfigSchema = z73.object({
40458
+ options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40078
40459
  });
40079
- var blockFieldOptionsSchema = z72.record(
40080
- z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40460
+ var blockFieldOptionsSchema = z73.record(
40461
+ z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40081
40462
  message: "Block ID must be 'block.*' or 'custom.*' format"
40082
40463
  }),
40083
- z72.record(
40084
- z72.string().min(1, "Field ID is required"),
40464
+ z73.record(
40465
+ z73.string().min(1, "Field ID is required"),
40085
40466
  blockFieldConfigSchema
40086
40467
  )
40087
40468
  ).optional();
40088
- var blockFieldExtensionSchema = z72.object({
40469
+ var blockFieldExtensionSchema = z73.object({
40089
40470
  fields: fieldSchema.array().min(1, "At least one field is required")
40090
40471
  }).refine(
40091
40472
  (data) => {
@@ -40099,10 +40480,10 @@ var blockFieldExtensionSchema = z72.object({
40099
40480
  message: "Required fields must have a defaultValue to support existing blocks"
40100
40481
  }
40101
40482
  );
40102
- var blockFieldExtensionsMapSchema = z72.record(
40483
+ var blockFieldExtensionsMapSchema = z73.record(
40103
40484
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
40104
40485
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
40105
- z72.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40486
+ z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40106
40487
  message: "Block ID must be 'block.*' format (system blocks only)"
40107
40488
  }),
40108
40489
  blockFieldExtensionSchema
@@ -40118,7 +40499,7 @@ var blockFieldExtensionsMapSchema = z72.record(
40118
40499
  (field) => field.id === collision.fieldId
40119
40500
  );
40120
40501
  ctx.addIssue({
40121
- code: z72.ZodIssueCode.custom,
40502
+ code: z73.ZodIssueCode.custom,
40122
40503
  message: collision.message,
40123
40504
  path: [
40124
40505
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -40133,24 +40514,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
40133
40514
  function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
40134
40515
  return collectBookingReservedFieldCollisions(extension, { type: "booking" });
40135
40516
  }
40136
- var syncConfigSchema = z72.object({
40137
- existingEntries: z72.enum(["skip", "update"]).optional()
40517
+ var syncConfigSchema = z73.object({
40518
+ existingEntries: z73.enum(["skip", "update"]).optional()
40138
40519
  }).optional();
40139
- var deployConfigSchema = z72.object({
40140
- verifyCommand: z72.string().optional(),
40141
- prebuildOutput: z72.string().optional()
40520
+ var deployConfigSchema = z73.object({
40521
+ verifyCommand: z73.string().optional(),
40522
+ prebuildOutput: z73.string().optional()
40142
40523
  }).optional();
40143
- var sdkCustomBlockSchema = z72.object({
40524
+ var sdkCustomBlockSchema = z73.object({
40144
40525
  // Block ID must start with 'custom.'
40145
- id: z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40526
+ id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40146
40527
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
40147
40528
  }),
40148
- title: z72.string().min(1, "Title is required"),
40529
+ title: z73.string().min(1, "Title is required"),
40149
40530
  titleSource: titleSourceValueSchema.optional(),
40150
- description: z72.string().optional(),
40531
+ description: z73.string().optional(),
40151
40532
  category: blockCategoryEnum,
40152
- icon: z72.string().optional(),
40153
- tags: z72.array(z72.string()).optional(),
40533
+ icon: z73.string().optional(),
40534
+ tags: z73.array(z73.string()).optional(),
40154
40535
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
40155
40536
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
40156
40537
  // Data loaders for CMS endpoints
@@ -40158,14 +40539,14 @@ var sdkCustomBlockSchema = z72.object({
40158
40539
  // Optional declarative layout - when present, block can render without React override
40159
40540
  layout: NodeSchema.optional(),
40160
40541
  // Optional variants system (preferred when a block has multiple structural layouts)
40161
- variants: z72.record(z72.string().min(1), NodeSchema).optional(),
40162
- defaultVariant: z72.string().min(1).optional(),
40163
- variantOptions: z72.record(
40164
- z72.string().min(1),
40165
- z72.object({
40166
- label: z72.string().min(1).optional(),
40167
- description: z72.string().min(1).optional(),
40168
- icon: z72.string().min(1).optional()
40542
+ variants: z73.record(z73.string().min(1), NodeSchema).optional(),
40543
+ defaultVariant: z73.string().min(1).optional(),
40544
+ variantOptions: z73.record(
40545
+ z73.string().min(1),
40546
+ z73.object({
40547
+ label: z73.string().min(1).optional(),
40548
+ description: z73.string().min(1).optional(),
40549
+ icon: z73.string().min(1).optional()
40169
40550
  })
40170
40551
  ).optional(),
40171
40552
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -40177,7 +40558,7 @@ var sdkCustomBlockSchema = z72.object({
40177
40558
  const exists = fields3.some((field) => field.id === source);
40178
40559
  if (!exists) {
40179
40560
  ctx.addIssue({
40180
- code: z72.ZodIssueCode.custom,
40561
+ code: z73.ZodIssueCode.custom,
40181
40562
  message: `titleSource must reference a valid field ID (got "${source}")`,
40182
40563
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
40183
40564
  });
@@ -40186,7 +40567,7 @@ var sdkCustomBlockSchema = z72.object({
40186
40567
  }
40187
40568
  if (data.layout && data.variants) {
40188
40569
  ctx.addIssue({
40189
- code: z72.ZodIssueCode.custom,
40570
+ code: z73.ZodIssueCode.custom,
40190
40571
  message: "Custom block must define either `layout` or `variants`, not both",
40191
40572
  path: ["variants"]
40192
40573
  });
@@ -40196,7 +40577,7 @@ var sdkCustomBlockSchema = z72.object({
40196
40577
  if (!result.valid) {
40197
40578
  for (const error of result.errors) {
40198
40579
  ctx.addIssue({
40199
- code: z72.ZodIssueCode.custom,
40580
+ code: z73.ZodIssueCode.custom,
40200
40581
  message: error.message,
40201
40582
  path: ["layout"]
40202
40583
  });
@@ -40207,14 +40588,14 @@ var sdkCustomBlockSchema = z72.object({
40207
40588
  const keys = Object.keys(data.variants);
40208
40589
  if (keys.length === 0) {
40209
40590
  ctx.addIssue({
40210
- code: z72.ZodIssueCode.custom,
40591
+ code: z73.ZodIssueCode.custom,
40211
40592
  message: "`variants` must contain at least one variant key",
40212
40593
  path: ["variants"]
40213
40594
  });
40214
40595
  }
40215
40596
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40216
40597
  ctx.addIssue({
40217
- code: z72.ZodIssueCode.custom,
40598
+ code: z73.ZodIssueCode.custom,
40218
40599
  message: "`defaultVariant` must be a key present in `variants`",
40219
40600
  path: ["defaultVariant"]
40220
40601
  });
@@ -40224,7 +40605,7 @@ var sdkCustomBlockSchema = z72.object({
40224
40605
  if (!result.valid) {
40225
40606
  for (const error of result.errors) {
40226
40607
  ctx.addIssue({
40227
- code: z72.ZodIssueCode.custom,
40608
+ code: z73.ZodIssueCode.custom,
40228
40609
  message: `${key}: ${error.message}`,
40229
40610
  path: ["variants", key]
40230
40611
  });
@@ -40235,7 +40616,7 @@ var sdkCustomBlockSchema = z72.object({
40235
40616
  for (const key of Object.keys(data.variantOptions)) {
40236
40617
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40237
40618
  ctx.addIssue({
40238
- code: z72.ZodIssueCode.custom,
40619
+ code: z73.ZodIssueCode.custom,
40239
40620
  message: "`variantOptions` key must exist in `variants`",
40240
40621
  path: ["variantOptions", key]
40241
40622
  });
@@ -40244,58 +40625,58 @@ var sdkCustomBlockSchema = z72.object({
40244
40625
  }
40245
40626
  }
40246
40627
  });
40247
- var themeSourceSchema = z72.enum(["local", "cms"]).optional();
40248
- var activeThemeSchema = z72.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40628
+ var themeSourceSchema = z73.enum(["local", "cms"]).optional();
40629
+ var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40249
40630
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40250
40631
  }).max(64, "Theme name too long").optional();
40251
40632
  function isValidConfigBlockKind(kind) {
40252
40633
  if (getBlockDefinition(kind)) return true;
40253
40634
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40254
40635
  }
40255
- var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40636
+ var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40256
40637
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40257
40638
  });
40258
- var layoutFooterBlockSchema = z72.object({
40259
- id: z72.string().min(1).optional(),
40639
+ var layoutFooterBlockSchema = z73.object({
40640
+ id: z73.string().min(1).optional(),
40260
40641
  kind: layoutBlockKindSchema,
40261
40642
  // Allow omitted content for blocks that rely on defaults.
40262
- content: z72.record(z72.string(), z72.unknown()).optional()
40643
+ content: z73.record(z73.string(), z73.unknown()).optional()
40263
40644
  }).strict();
40264
- var layoutConfigSchema = z72.object({
40265
- footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40645
+ var layoutConfigSchema = z73.object({
40646
+ footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40266
40647
  }).strict();
40267
- var sdkWorkflowIdSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40648
+ var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40268
40649
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40269
40650
  });
40270
- 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 "/"' });
40271
- var sdkWorkflowTriggerSchema2 = z72.discriminatedUnion("type", [
40272
- z72.object({ type: z72.literal("manual") }).strict()
40651
+ 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 "/"' });
40652
+ var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
40653
+ z73.object({ type: z73.literal("manual") }).strict()
40273
40654
  ]);
40274
- var sdkWorkflowConfirmationSchema2 = z72.object({
40275
- title: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40276
- body: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40655
+ var sdkWorkflowConfirmationSchema2 = z73.object({
40656
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40657
+ body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40277
40658
  }).strict();
40278
- var sdkWorkflowConfigSchema2 = z72.object({
40659
+ var sdkWorkflowConfigSchema2 = z73.object({
40279
40660
  id: sdkWorkflowIdSchema2,
40280
- title: z72.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40281
- description: z72.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40282
- contentType: z72.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40661
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40662
+ description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40663
+ contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40283
40664
  endpoint: sdkWorkflowEndpointSchema2,
40284
- triggers: z72.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40665
+ triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40285
40666
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40286
40667
  }).strict();
40287
- var sdkWorkflowsSchema2 = z72.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40668
+ var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40288
40669
  const ids = workflows.map((workflow) => workflow.id);
40289
40670
  return ids.length === new Set(ids).size;
40290
40671
  }, { message: "Workflow IDs must be unique" }).optional();
40291
- var riverbankSiteConfigSchema = z72.object({
40292
- siteId: z72.string().uuid(),
40672
+ var riverbankSiteConfigSchema = z73.object({
40673
+ siteId: z73.string().uuid(),
40293
40674
  previewUrl: sdkSiteUrlSchema.optional(),
40294
40675
  liveUrl: sdkSiteUrlSchema.optional(),
40295
40676
  theme: sdkThemeConfigSchema2.optional(),
40296
40677
  styles: siteStyleConfigSchema,
40297
40678
  layout: layoutConfigSchema.optional(),
40298
- customBlocks: z72.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40679
+ customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40299
40680
  // Ensure unique block IDs
40300
40681
  (blocks) => {
40301
40682
  const ids = blocks.map((b) => b.id);
@@ -40308,7 +40689,7 @@ var riverbankSiteConfigSchema = z72.object({
40308
40689
  workflows: sdkWorkflowsSchema2,
40309
40690
  content: contentConfigSchema.optional(),
40310
40691
  // CLI-related configuration (Phase 4)
40311
- contentDir: z72.string().optional(),
40692
+ contentDir: z73.string().optional(),
40312
40693
  sync: syncConfigSchema,
40313
40694
  deploy: deployConfigSchema,
40314
40695
  // Theme sync configuration (Phase 5)