@riverbankcms/sdk 0.95.0 → 0.98.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 (235) hide show
  1. package/README.md +47 -5
  2. package/dist/{PreviewEditorSidebar-6FQYKOSB.mjs → PreviewEditorSidebar-CG3SSJND.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-NPO2XMFB.mjs → PreviewEditorUI-RHNGKAAU.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -10
  6. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  7. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  8. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  9. package/dist/_dts/api/src/endpoints.d.ts +80 -0
  10. package/dist/_dts/api/src/index.d.ts +3 -2
  11. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  12. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  13. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  14. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  16. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  17. package/dist/_dts/block-form/src/fields/types.d.ts +9 -1
  18. package/dist/_dts/block-form/src/registry/schemas.d.ts +4 -0
  19. package/dist/_dts/block-form/src/registry/widgets.d.ts +1 -0
  20. package/dist/_dts/block-form/src/widgets/InlineTextField/InlineTextField.d.ts +4 -0
  21. package/dist/_dts/block-form/src/widgets/InlineTextField/index.d.ts +3 -0
  22. package/dist/_dts/block-form/src/widgets/InlineTextField/inlineTextFieldDefaults.d.ts +2 -0
  23. package/dist/_dts/block-form/src/widgets/InlineTextField/inlineTextFieldSchema.d.ts +3 -0
  24. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -1
  25. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/bindings/types.d.ts +1 -4
  27. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  28. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  29. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  30. package/dist/_dts/blocks/src/index.d.ts +2 -0
  31. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  32. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +2 -29631
  33. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -29614
  34. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +2 -29634
  35. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +2 -29627
  36. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +2 -29585
  37. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  39. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +2 -29677
  40. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +2 -29655
  41. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  42. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +220 -0
  43. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +2 -29655
  44. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -29685
  45. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -29761
  46. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  47. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  48. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  49. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  51. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  52. package/dist/_dts/blocks/src/system/fragments/library/heroCopy.d.ts +9 -0
  53. package/dist/_dts/blocks/src/system/inlineText.d.ts +78 -0
  54. package/dist/_dts/blocks/src/system/manifest/derivedContent.d.ts +3 -1
  55. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +15 -3
  56. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +188 -7
  57. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  58. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  59. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  60. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  61. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  62. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  63. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  64. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  65. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  66. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  67. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  68. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
  70. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/renderInlineText.d.ts +3 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  76. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  79. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  80. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  81. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +1 -1
  82. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  83. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +9 -0
  84. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  85. package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +1 -1
  86. package/dist/_dts/content-model/src/templates/defaults.d.ts +30 -0
  87. package/dist/_dts/content-model/src/templates/types.d.ts +3 -6
  88. package/dist/_dts/core/src/branded.d.ts +8 -0
  89. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +505 -2
  90. package/dist/_dts/editor/src/inline/FloatingToolbar.d.ts +18 -0
  91. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +18 -1
  92. package/dist/_dts/editor/src/inline/InlineTextEditorStyles.d.ts +1 -0
  93. package/dist/_dts/editor/src/inline/domParse.d.ts +3 -0
  94. package/dist/_dts/editor/src/inline/presentation.d.ts +48 -0
  95. package/dist/_dts/editor/src/inline/selection.d.ts +12 -0
  96. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  97. package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +3 -0
  98. package/dist/_dts/editor-blocks/src/widgets/inline-text/index.d.ts +1 -0
  99. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  100. package/dist/_dts/path-utils/src/index.d.ts +1 -0
  101. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  102. package/dist/_dts/sdk/src/cli/commands/content.d.ts +56 -0
  103. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +4 -0
  104. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  105. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +4 -7
  106. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +5 -1
  107. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  108. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +56 -0
  109. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  110. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +2 -1
  111. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  112. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  113. package/dist/_dts/sdk/src/cli/content/edit/format.d.ts +2 -0
  114. package/dist/_dts/sdk/src/cli/content/edit/path.d.ts +14 -0
  115. package/dist/_dts/sdk/src/cli/content/edit/planner.d.ts +46 -0
  116. package/dist/_dts/sdk/src/cli/content/fs-utils.d.ts +4 -0
  117. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  118. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  119. package/dist/_dts/sdk/src/cli/content/writer.d.ts +8 -4
  120. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  121. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  122. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  123. package/dist/_dts/sdk/src/cli/merge-remote/mergeFieldChanges.d.ts +22 -0
  124. package/dist/_dts/sdk/src/cli/merge-remote/pageLocal.d.ts +3 -0
  125. package/dist/_dts/sdk/src/cli/merge-remote/pageMerge.d.ts +78 -0
  126. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePlan.d.ts +36 -0
  127. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +23 -0
  128. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +29 -0
  129. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +48 -0
  130. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  131. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  132. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  133. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +3 -6
  134. package/dist/_dts/sdk/src/cli/sync/field-diff.d.ts +39 -0
  135. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -0
  136. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  137. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  138. package/dist/_dts/sdk/src/config/field-definitions.d.ts +8 -3
  139. package/dist/_dts/sdk/src/config/typed-entries.d.ts +5 -3
  140. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  141. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  142. package/dist/_dts/sdk/src/contracts/bindings.d.ts +4 -7
  143. package/dist/_dts/sdk/src/contracts/content.d.ts +18 -0
  144. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  145. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +16 -2
  146. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  147. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  148. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  149. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -3
  150. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +52 -1
  151. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  152. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  153. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  154. package/dist/_dts/sdk/src/version.d.ts +1 -1
  155. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  156. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -1
  157. package/dist/_dts/theme-core/src/cards/types.d.ts +15 -15
  158. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  159. package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
  160. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +42 -42
  161. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +2 -2
  162. package/dist/_dts/theme-core/src/schema.d.ts +44 -44
  163. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  164. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +16 -16
  165. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  166. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  167. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
  168. package/dist/{chunk-4A6NWO3X.mjs → chunk-6WDBXCPX.mjs} +73 -12
  169. package/dist/{chunk-VZBSD4AJ.mjs → chunk-DBRI3PQF.mjs} +2281 -322
  170. package/dist/{chunk-PJPFTVZG.mjs → chunk-H24OU7WG.mjs} +106 -4
  171. package/dist/{chunk-K2SJTZMX.mjs → chunk-PKDPQHB5.mjs} +2 -2
  172. package/dist/{chunk-VTPPVAOL.mjs → chunk-QPXE2OUZ.mjs} +1 -1
  173. package/dist/{chunk-7ED5UNHL.mjs → chunk-V2BYFSPW.mjs} +109 -0
  174. package/dist/cli/index.mjs +4182 -1165
  175. package/dist/cli/init-docs/content/cli-reference.md +72 -5
  176. package/dist/cli/init-docs/content/content-management.md +22 -0
  177. package/dist/cli/init-docs/content/getting-started.md +8 -0
  178. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  179. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  180. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  181. package/dist/client/{accordion-LGO4IO5U.mjs → accordion-Q2BDNL53.mjs} +1 -1
  182. package/dist/client/{bookingForm-MWLS4LGU.mjs → bookingForm-ZMP4P7EK.mjs} +16 -6
  183. package/dist/client/bookings.mjs +98 -18
  184. package/dist/client/{carousel-6AHNP5HA.mjs → carousel-LW3UXPWO.mjs} +1 -1
  185. package/dist/client/{cart-CIXGYAZB.mjs → cart-Z6D3KS6K.mjs} +5 -5
  186. package/dist/client/{checkout-OTX6O3DN.mjs → checkout-YMT2QJQM.mjs} +5 -5
  187. package/dist/client/{chunk-Y2PMKCXO.mjs → chunk-26ZBRXFR.mjs} +9 -3
  188. package/dist/client/{chunk-MYCXAKWP.mjs → chunk-DRRQ7QSL.mjs} +2 -2
  189. package/dist/client/{chunk-TREIML53.mjs → chunk-ET2MDQQT.mjs} +4 -4
  190. package/dist/client/{chunk-AVBQSUIS.mjs → chunk-HBQEAOG4.mjs} +1 -1
  191. package/dist/client/{chunk-INRIT6DP.mjs → chunk-IEOECM7U.mjs} +62 -43
  192. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-KDP7ZRZV.mjs} +16 -0
  193. package/dist/client/{chunk-V67AT7ZW.mjs → chunk-R4XK3CKR.mjs} +18 -1
  194. package/dist/client/{chunk-R3NQTBWE.mjs → chunk-SK2BMD22.mjs} +2 -2
  195. package/dist/client/{chunk-HOP7MKAZ.mjs → chunk-XNTHVZ25.mjs} +1 -1
  196. package/dist/client/client.mjs +5172 -4177
  197. package/dist/client/{courseRegistration-2LU6C3JL.mjs → courseRegistration-DGKCMC77.mjs} +4 -4
  198. package/dist/client/{eventCalendar-OKUSISBZ.mjs → eventCalendar-74Z2NNFM.mjs} +7 -7
  199. package/dist/client/{eventCombined-CMF6CD4S.mjs → eventCombined-GK2ODOX2.mjs} +7 -7
  200. package/dist/client/{eventDetails-XYWH7WXI.mjs → eventDetails-MONAGT3N.mjs} +7 -7
  201. package/dist/client/{eventListing-EK5DJTAH.mjs → eventListing-SKGAO6PS.mjs} +7 -7
  202. package/dist/client/{eventRegistration-XDOSICV6.mjs → eventRegistration-6KISGXRD.mjs} +7 -7
  203. package/dist/client/{form-J6GOHKYG.mjs → form-FXPRTXHI.mjs} +2 -2
  204. package/dist/client/{headerSection-C5SYJTRW.mjs → headerSection-7NAN5WNB.mjs} +2 -2
  205. package/dist/client/hooks.mjs +1681 -1337
  206. package/dist/client/{locationMap-QSQIFVVT.mjs → locationMap-UERN74U4.mjs} +2 -2
  207. package/dist/client/{newsletterForm-47VXJRWK.mjs → newsletterForm-SGWXMJ7U.mjs} +2 -2
  208. package/dist/client/{productDetail-5U6ISCC2.mjs → productDetail-HN3HWZQZ.mjs} +5 -5
  209. package/dist/client/{productList-XDZUMR3P.mjs → productList-YT22Z5UR.mjs} +5 -5
  210. package/dist/client/rendering/client.mjs +4796 -4288
  211. package/dist/client/rendering/islands.mjs +18 -18
  212. package/dist/client/rendering.mjs +2120 -1106
  213. package/dist/client/{shop-ZSZKIY3R.mjs → shop-TKEDNWUS.mjs} +5 -5
  214. package/dist/preview-next/before-render.mjs +109 -0
  215. package/dist/preview-next/client/runtime.mjs +5 -5
  216. package/dist/preview-next/middleware.mjs +109 -0
  217. package/dist/{sdk-runtime-PHNM7MRD.mjs → sdk-runtime-LWNYCQF2.mjs} +6 -6
  218. package/dist/server/components.mjs +3777 -2981
  219. package/dist/server/config-template-validation.mjs +35 -22
  220. package/dist/server/config-validation.mjs +1883 -1565
  221. package/dist/server/config.mjs +1883 -1565
  222. package/dist/server/data.mjs +1667 -1334
  223. package/dist/server/index.mjs +208 -9
  224. package/dist/server/next/middleware.mjs +2 -2
  225. package/dist/server/next.mjs +4077 -3060
  226. package/dist/server/page-converter.mjs +1481 -1279
  227. package/dist/server/prebuild.mjs +1 -1
  228. package/dist/server/rendering/server.mjs +3806 -2993
  229. package/dist/server/rendering.mjs +4000 -3060
  230. package/dist/server/routing.mjs +1737 -1357
  231. package/dist/server/server.mjs +2918 -2276
  232. package/dist/server/theme-bridge.mjs +43 -0
  233. package/dist/styles/index.css +44 -0
  234. package/package.json +1 -1
  235. package/dist/SdkPreviewModeRuntime-PBEFH5AL.mjs +0 -8
@@ -1,5 +1,5 @@
1
1
  // src/config/validation.ts
2
- import { z as z72 } from "zod";
2
+ import { z as z73 } from "zod";
3
3
 
4
4
  // ../api/src/apiEndpointTypes.ts
5
5
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -1040,6 +1040,94 @@ var ENDPOINT_DEFINITIONS = {
1040
1040
  responseKind: "json",
1041
1041
  errors: ["resource:not_found", "server:internal_error"]
1042
1042
  },
1043
+ listAppointmentReservations: {
1044
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1045
+ method: "GET",
1046
+ auth: "user",
1047
+ responseKind: "json",
1048
+ errors: []
1049
+ },
1050
+ createAppointmentReservation: {
1051
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1052
+ method: "POST",
1053
+ auth: "user",
1054
+ responseKind: "json",
1055
+ errors: [
1056
+ "validation:invalid_input",
1057
+ "resource:not_found",
1058
+ "resource:conflict",
1059
+ "server:internal_error"
1060
+ ]
1061
+ },
1062
+ getAppointmentReservation: {
1063
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1064
+ method: "GET",
1065
+ auth: "user",
1066
+ responseKind: "json",
1067
+ errors: ["resource:not_found", "server:internal_error"]
1068
+ },
1069
+ updateAppointmentReservation: {
1070
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1071
+ method: "PUT",
1072
+ auth: "user",
1073
+ responseKind: "json",
1074
+ errors: [
1075
+ "validation:invalid_input",
1076
+ "resource:not_found",
1077
+ "resource:conflict",
1078
+ "server:internal_error"
1079
+ ]
1080
+ },
1081
+ pauseAppointmentReservation: {
1082
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1083
+ method: "POST",
1084
+ auth: "user",
1085
+ responseKind: "json",
1086
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1087
+ },
1088
+ resumeAppointmentReservation: {
1089
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1090
+ method: "POST",
1091
+ auth: "user",
1092
+ responseKind: "json",
1093
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1094
+ },
1095
+ endAppointmentReservation: {
1096
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1097
+ method: "POST",
1098
+ auth: "user",
1099
+ responseKind: "json",
1100
+ errors: [
1101
+ "validation:invalid_input",
1102
+ "resource:not_found",
1103
+ "resource:conflict",
1104
+ "server:internal_error"
1105
+ ]
1106
+ },
1107
+ previewAppointmentReservationRun: {
1108
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1109
+ method: "POST",
1110
+ auth: "user",
1111
+ responseKind: "json",
1112
+ errors: [
1113
+ "validation:invalid_input",
1114
+ "resource:not_found",
1115
+ "resource:conflict",
1116
+ "server:internal_error"
1117
+ ]
1118
+ },
1119
+ createAppointmentReservationRun: {
1120
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1121
+ method: "POST",
1122
+ auth: "user",
1123
+ responseKind: "json",
1124
+ errors: [
1125
+ "validation:invalid_input",
1126
+ "resource:not_found",
1127
+ "resource:conflict",
1128
+ "server:internal_error"
1129
+ ]
1130
+ },
1043
1131
  createTeamMemberProfile: {
1044
1132
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1045
1133
  method: "POST",
@@ -3496,6 +3584,18 @@ var ENDPOINT_DEFINITIONS = {
3496
3584
  responseKind: "json",
3497
3585
  errors: ["validation:invalid_input", "server:internal_error"]
3498
3586
  },
3587
+ resolveRouteDecision: {
3588
+ path: "/sites/{siteId}/route-decision",
3589
+ method: "GET",
3590
+ tags: [
3591
+ TAG_TEMPLATES.siteRoutableContent,
3592
+ TAG_TEMPLATES.siteRedirects,
3593
+ TAG_TEMPLATES.siteRouteOutcomes
3594
+ ],
3595
+ auth: "public",
3596
+ responseKind: "json",
3597
+ errors: ["validation:invalid_input", "server:internal_error"]
3598
+ },
3499
3599
  getPageByPath: {
3500
3600
  path: "/sites/{siteId}/pages",
3501
3601
  method: "GET",
@@ -3634,6 +3734,15 @@ var ENDPOINT_DEFINITIONS = {
3634
3734
  auth: "public",
3635
3735
  responseKind: "json"
3636
3736
  },
3737
+ getPublicWeeklySlotAvailability: {
3738
+ path: "/public/bookings/weekly-slot-availability",
3739
+ method: "GET",
3740
+ revalidate: 60,
3741
+ tags: ["site-{siteId}"],
3742
+ auth: "public",
3743
+ responseKind: "json",
3744
+ errors: []
3745
+ },
3637
3746
  createPublicBookingAppointment: {
3638
3747
  path: "/public/bookings/appointments",
3639
3748
  method: "POST",
@@ -6786,7 +6895,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6786
6895
  );
6787
6896
 
6788
6897
  // ../api/src/sdkConfig/contracts.ts
6789
- import { z as z63 } from "zod";
6898
+ import { z as z64 } from "zod";
6790
6899
 
6791
6900
  // ../blocks/src/system/manifest/augmentManifest.ts
6792
6901
  function augmentManifest(manifest) {
@@ -6955,10 +7064,20 @@ var repeatSchema = z3.object({
6955
7064
  direction: z3.enum(["asc", "desc"]).default("asc")
6956
7065
  }).optional()
6957
7066
  });
7067
+ var conditionalAuthoringPresenceSchema = z3.discriminatedUnion("kind", [
7068
+ z3.object({ kind: z3.literal("visitor-only") }),
7069
+ z3.object({
7070
+ kind: z3.literal("recover-empty-when-active"),
7071
+ placeholder: z3.string().min(1).optional()
7072
+ })
7073
+ ]);
6958
7074
  var conditionSchema = z3.object({
6959
7075
  when: bindingSchema,
6960
7076
  equals: z3.unknown().optional(),
6961
- not: z3.boolean().default(false)
7077
+ not: z3.boolean().default(false),
7078
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
7079
+ kind: "visitor-only"
7080
+ })
6962
7081
  });
6963
7082
  var dataScopeSchema = z3.object({
6964
7083
  name: z3.string().min(1),
@@ -7019,6 +7138,7 @@ var ALLOWED_NODE_TYPES = [
7019
7138
  // Forms
7020
7139
  "form",
7021
7140
  "booking-form",
7141
+ "weekly-slot-availability",
7022
7142
  // Events
7023
7143
  "event-registration",
7024
7144
  "event-spotlight",
@@ -7348,6 +7468,11 @@ var textFieldSchema = baseFieldSchema.extend({
7348
7468
  var richTextFieldSchema = baseFieldSchema.extend({
7349
7469
  type: z4.literal("richText")
7350
7470
  });
7471
+ var inlineTextFieldSchema = baseFieldSchema.extend({
7472
+ type: z4.literal("inlineText"),
7473
+ maxLength: z4.number().int().positive().optional(),
7474
+ plainTextField: z4.string().min(1).optional()
7475
+ });
7351
7476
  var mediaFieldSchema = baseFieldSchema.extend({
7352
7477
  type: z4.literal("media"),
7353
7478
  // Keep full MEDIA_KINDS parse compatibility for pre-file-field manifests.
@@ -7670,6 +7795,7 @@ function getFieldSchemaInternal() {
7670
7795
  _fieldSchemaInternal = z4.discriminatedUnion("type", [
7671
7796
  textFieldSchema,
7672
7797
  richTextFieldSchema,
7798
+ inlineTextFieldSchema,
7673
7799
  mediaFieldSchema,
7674
7800
  fileFieldSchema,
7675
7801
  booleanFieldSchema,
@@ -18050,7 +18176,8 @@ function when(path, options) {
18050
18176
  $when: {
18051
18177
  when: { from: path },
18052
18178
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
18053
- ...options?.not ? { not: true } : {}
18179
+ ...options?.not ? { not: true } : {},
18180
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
18054
18181
  }
18055
18182
  });
18056
18183
  }
@@ -20118,8 +20245,16 @@ var heroCopyFragment = defineFragment({
20118
20245
  id: "headline",
20119
20246
  type: "text",
20120
20247
  label: "Headline",
20248
+ maxLength: 120,
20249
+ ui: { hidden: true }
20250
+ },
20251
+ {
20252
+ id: "headlineInline",
20253
+ type: "inlineText",
20254
+ label: "Headline",
20121
20255
  required: true,
20122
- maxLength: 120
20256
+ maxLength: 120,
20257
+ plainTextField: "headline"
20123
20258
  },
20124
20259
  {
20125
20260
  id: "subheadline",
@@ -20144,9 +20279,12 @@ var heroCopyFragment = defineFragment({
20144
20279
  as: "h1",
20145
20280
  // heading-display: uses fluid typography from theme (--fs-h1-display-fluid)
20146
20281
  // Color in blocks-static/index.css (.hero-headline)
20147
- className: "hero-headline heading-display"
20282
+ className: "hero-headline heading-display",
20283
+ // Resolved against top-level block content; keep this beside the sibling headline field.
20284
+ inlineTextFallbackPath: "headline",
20285
+ maxLength: 120
20148
20286
  },
20149
- bind("content.headline")
20287
+ bind("content.headlineInline")
20150
20288
  ),
20151
20289
  text(
20152
20290
  {
@@ -27866,77 +28004,247 @@ var appointmentBookingBlockDefinition = {
27866
28004
  }
27867
28005
  };
27868
28006
 
28007
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
28008
+ import { z as z39 } from "zod";
28009
+ var weeklySlotAvailabilityManifest = createBlockManifest({
28010
+ id: "block.weekly-slot-availability",
28011
+ version: "1.0.0",
28012
+ title: "Weekly Slot Availability",
28013
+ titleSource: "heading",
28014
+ description: "Shows available recurring appointment slot patterns",
28015
+ skipSectionStyles: true,
28016
+ additionalFields: [
28017
+ {
28018
+ id: "serviceId",
28019
+ type: "reference",
28020
+ label: "Appointment service",
28021
+ description: "Choose which appointment service to show availability for",
28022
+ required: true,
28023
+ referenceKind: "appointmentService",
28024
+ allowManualEntry: false,
28025
+ ui: { intent: "behavior" }
28026
+ },
28027
+ {
28028
+ id: "resourceId",
28029
+ type: "reference",
28030
+ label: "Appointment resource",
28031
+ description: "Optionally narrow the availability to one practitioner or room",
28032
+ required: false,
28033
+ referenceKind: "appointmentResource",
28034
+ allowManualEntry: false,
28035
+ ui: { intent: "behavior" }
28036
+ },
28037
+ {
28038
+ id: "horizonWeeks",
28039
+ type: "select",
28040
+ label: "Look ahead",
28041
+ required: false,
28042
+ multiple: false,
28043
+ defaultValue: "4",
28044
+ options: [
28045
+ { value: "1", label: "1 week" },
28046
+ { value: "2", label: "2 weeks" },
28047
+ { value: "4", label: "4 weeks" }
28048
+ ],
28049
+ ui: { intent: "behavior" }
28050
+ },
28051
+ {
28052
+ id: "timezone",
28053
+ type: "text",
28054
+ label: "Timezone",
28055
+ description: "Leave blank to use the visitor timezone when the block loads",
28056
+ required: false,
28057
+ multiline: false,
28058
+ defaultValue: "",
28059
+ maxLength: 64,
28060
+ ui: { intent: "behavior" }
28061
+ },
28062
+ {
28063
+ id: "heading",
28064
+ type: "text",
28065
+ label: "Heading",
28066
+ required: false,
28067
+ multiline: false,
28068
+ defaultValue: "Weekly availability"
28069
+ },
28070
+ {
28071
+ id: "description",
28072
+ type: "richText",
28073
+ label: "Description",
28074
+ required: false
28075
+ },
28076
+ {
28077
+ id: "emptyMessage",
28078
+ type: "text",
28079
+ label: "Empty message",
28080
+ required: false,
28081
+ multiline: true,
28082
+ defaultValue: "No regular weekly openings are currently available.",
28083
+ maxLength: 180
28084
+ },
28085
+ {
28086
+ id: "ctaText",
28087
+ type: "text",
28088
+ label: "Enquiry button text",
28089
+ required: false,
28090
+ multiline: false,
28091
+ defaultValue: "Enquire about this slot",
28092
+ maxLength: 60
28093
+ },
28094
+ {
28095
+ id: "ctaUrl",
28096
+ type: "url",
28097
+ label: "Enquiry URL",
28098
+ required: false,
28099
+ ui: { intent: "behavior" }
28100
+ },
28101
+ sectionStylesField({
28102
+ id: "_sectionStyles",
28103
+ label: "Section styles"
28104
+ })
28105
+ ],
28106
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
28107
+ behaviours: {
28108
+ supportsThemeSwitching: true,
28109
+ inlineEditing: false,
28110
+ animation: false,
28111
+ paletteHidden: false
28112
+ },
28113
+ category: "interactive",
28114
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
28115
+ icon: "CalendarDays",
28116
+ layout: [
28117
+ styledSection({
28118
+ children: sectionContainer([
28119
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
28120
+ richText({}, bind("content.description"), when("content.description")),
28121
+ el(
28122
+ "weekly-slot-availability",
28123
+ withApiBindings({
28124
+ serviceId: { $bind: { from: "content.serviceId" } },
28125
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
28126
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28127
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
28128
+ availability: { $bind: { from: "data.availability", fallback: null } },
28129
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
28130
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
28131
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
28132
+ })
28133
+ )
28134
+ ], {
28135
+ gap: "lg"
28136
+ }),
28137
+ baseClass: "",
28138
+ spacing: "spacious"
28139
+ })
28140
+ ]
28141
+ });
28142
+ var weeklySlotAvailabilityOptionSchema = z39.object({
28143
+ id: z39.string(),
28144
+ resourceId: z39.string(),
28145
+ weekday: z39.number(),
28146
+ weekdayLabel: z39.string(),
28147
+ startTime: z39.string(),
28148
+ endTime: z39.string(),
28149
+ nextDate: z39.string(),
28150
+ availableWeeks: z39.number()
28151
+ });
28152
+ var weeklySlotAvailabilityDataSchema = z39.object({
28153
+ slots: z39.array(weeklySlotAvailabilityOptionSchema),
28154
+ horizonWeeks: z39.number(),
28155
+ timezone: z39.string(),
28156
+ startDate: z39.string(),
28157
+ endDate: z39.string()
28158
+ });
28159
+ var weeklySlotAvailabilityBlockDefinition = {
28160
+ manifest: weeklySlotAvailabilityManifest,
28161
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
28162
+ dataLoaders: {
28163
+ availability: {
28164
+ endpoint: "getPublicWeeklySlotAvailability",
28165
+ params: {
28166
+ siteId: { $bind: { from: "$root.siteId" } },
28167
+ serviceId: { $bind: { from: "content.serviceId" } },
28168
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
28169
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28170
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
28171
+ },
28172
+ mode: "server"
28173
+ }
28174
+ }
28175
+ };
28176
+
27869
28177
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27870
- import { z as z43 } from "zod";
28178
+ import { z as z44 } from "zod";
27871
28179
 
27872
28180
  // ../blocks/src/lib/media.ts
27873
- import z39 from "zod";
28181
+ import z40 from "zod";
27874
28182
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
27875
28183
  "document",
27876
28184
  "spreadsheet",
27877
28185
  "archive",
27878
28186
  "audio"
27879
28187
  ];
27880
- var hotspotSchema2 = z39.object({
27881
- x: z39.number().min(0).max(1),
27882
- y: z39.number().min(0).max(1),
27883
- radius: z39.number().optional()
27884
- });
27885
- var rotationSchema2 = z39.union([z39.literal(0), z39.literal(90), z39.literal(180), z39.literal(270)]);
27886
- var rectSchema2 = z39.tuple([z39.number(), z39.number(), z39.number(), z39.number()]);
27887
- var aspectCropSchema2 = z39.object({
27888
- aspect: z39.preprocess((value) => value == null ? void 0 : value, z39.string().optional()),
27889
- rect: z39.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
27890
- hotspot: z39.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
27891
- rotation: z39.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
27892
- });
27893
- var transformSchema2 = z39.object({
27894
- aspectCrops: z39.preprocess((value) => {
28188
+ var hotspotSchema2 = z40.object({
28189
+ x: z40.number().min(0).max(1),
28190
+ y: z40.number().min(0).max(1),
28191
+ radius: z40.number().optional()
28192
+ });
28193
+ var rotationSchema2 = z40.union([z40.literal(0), z40.literal(90), z40.literal(180), z40.literal(270)]);
28194
+ var rectSchema2 = z40.tuple([z40.number(), z40.number(), z40.number(), z40.number()]);
28195
+ var aspectCropSchema2 = z40.object({
28196
+ aspect: z40.preprocess((value) => value == null ? void 0 : value, z40.string().optional()),
28197
+ rect: z40.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
28198
+ hotspot: z40.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
28199
+ rotation: z40.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
28200
+ });
28201
+ var transformSchema2 = z40.object({
28202
+ aspectCrops: z40.preprocess((value) => {
27895
28203
  if (!value || typeof value !== "object" || Array.isArray(value)) {
27896
28204
  return void 0;
27897
28205
  }
27898
28206
  return value;
27899
- }, z39.record(z39.string(), aspectCropSchema2.catch({}))).optional(),
28207
+ }, z40.record(z40.string(), aspectCropSchema2.catch({}))).optional(),
27900
28208
  rect: rectSchema2.optional(),
27901
28209
  hotspot: hotspotSchema2.optional(),
27902
28210
  rotation: rotationSchema2.optional()
27903
28211
  });
27904
- var mediaPosterSchema = z39.discriminatedUnion("tag", [
27905
- z39.object({
27906
- tag: z39.literal("storage"),
27907
- assetId: z39.string().optional(),
27908
- storageBucket: z39.string().min(1),
27909
- storagePath: z39.string().min(1)
28212
+ var mediaPosterSchema = z40.discriminatedUnion("tag", [
28213
+ z40.object({
28214
+ tag: z40.literal("storage"),
28215
+ assetId: z40.string().optional(),
28216
+ storageBucket: z40.string().min(1),
28217
+ storagePath: z40.string().min(1)
27910
28218
  }),
27911
- z39.object({
27912
- tag: z39.literal("external-src"),
27913
- assetId: z39.string().optional(),
27914
- src: z39.string().url()
28219
+ z40.object({
28220
+ tag: z40.literal("external-src"),
28221
+ assetId: z40.string().optional(),
28222
+ src: z40.string().url()
27915
28223
  })
27916
28224
  ]);
27917
- var mediaBaseSchema = z39.object({
27918
- purpose: z39.string().optional(),
27919
- placeholder: z39.boolean().default(true).optional(),
27920
- assetId: z39.string().optional(),
27921
- identifier: z39.string().optional(),
27922
- src: z39.string().optional(),
27923
- alt: z39.string().optional(),
27924
- filename: z39.string().optional(),
27925
- mimeType: z39.string().optional(),
27926
- width: z39.number().optional(),
27927
- height: z39.number().optional(),
27928
- storageBucket: z39.string().optional(),
27929
- storagePath: z39.string().optional(),
28225
+ var mediaBaseSchema = z40.object({
28226
+ purpose: z40.string().optional(),
28227
+ placeholder: z40.boolean().default(true).optional(),
28228
+ assetId: z40.string().optional(),
28229
+ identifier: z40.string().optional(),
28230
+ src: z40.string().optional(),
28231
+ alt: z40.string().optional(),
28232
+ filename: z40.string().optional(),
28233
+ mimeType: z40.string().optional(),
28234
+ width: z40.number().optional(),
28235
+ height: z40.number().optional(),
28236
+ storageBucket: z40.string().optional(),
28237
+ storagePath: z40.string().optional(),
27930
28238
  poster: mediaPosterSchema.optional(),
27931
28239
  transform: transformSchema2.optional()
27932
28240
  });
27933
- var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
27934
- var videoMediaSchema = mediaBaseSchema.extend({ type: z39.literal("video") });
27935
- var audioMediaSchema = mediaBaseSchema.extend({ type: z39.literal("audio") });
27936
- var documentMediaSchema = mediaBaseSchema.extend({ type: z39.literal("document") });
27937
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z39.literal("spreadsheet") });
27938
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z39.literal("archive") });
27939
- var mediaSchema2 = z39.discriminatedUnion("type", [
28241
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z40.literal("image") });
28242
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z40.literal("video") });
28243
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z40.literal("audio") });
28244
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z40.literal("document") });
28245
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z40.literal("spreadsheet") });
28246
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z40.literal("archive") });
28247
+ var mediaSchema2 = z40.discriminatedUnion("type", [
27940
28248
  imageMediaSchema,
27941
28249
  videoMediaSchema,
27942
28250
  audioMediaSchema,
@@ -27946,372 +28254,372 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27946
28254
  ]);
27947
28255
 
27948
28256
  // ../blocks/src/system/manifest/richTextSchema.ts
27949
- import { z as z40 } from "zod";
27950
- var TipTapMarkSchema = z40.object({
27951
- type: z40.string(),
27952
- attrs: z40.record(z40.string(), z40.unknown()).optional()
27953
- });
27954
- var TipTapNodeSchema = z40.lazy(
27955
- () => z40.object({
27956
- type: z40.string(),
27957
- content: z40.array(TipTapNodeSchema).optional(),
27958
- text: z40.string().optional(),
27959
- attrs: z40.record(z40.string(), z40.unknown()).optional(),
27960
- marks: z40.array(TipTapMarkSchema).optional()
28257
+ import { z as z41 } from "zod";
28258
+ var TipTapMarkSchema = z41.object({
28259
+ type: z41.string(),
28260
+ attrs: z41.record(z41.string(), z41.unknown()).optional()
28261
+ });
28262
+ var TipTapNodeSchema = z41.lazy(
28263
+ () => z41.object({
28264
+ type: z41.string(),
28265
+ content: z41.array(TipTapNodeSchema).optional(),
28266
+ text: z41.string().optional(),
28267
+ attrs: z41.record(z41.string(), z41.unknown()).optional(),
28268
+ marks: z41.array(TipTapMarkSchema).optional()
27961
28269
  })
27962
28270
  );
27963
- var RichTextValueSchema = z40.union([
28271
+ var RichTextValueSchema = z41.union([
27964
28272
  // Canonical: TipTap document directly
27965
28273
  TipTapNodeSchema,
27966
28274
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
27967
- z40.object({
28275
+ z41.object({
27968
28276
  doc: TipTapNodeSchema
27969
28277
  })
27970
28278
  ]);
27971
- var RichTextDocSchema = z40.object({
27972
- type: z40.literal("doc"),
27973
- content: z40.array(TipTapNodeSchema)
28279
+ var RichTextDocSchema = z41.object({
28280
+ type: z41.literal("doc"),
28281
+ content: z41.array(TipTapNodeSchema)
27974
28282
  });
27975
28283
 
27976
28284
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27977
- import { z as z41 } from "zod";
27978
- var bookingDepositRefundPolicySchema = z41.enum([
28285
+ import { z as z42 } from "zod";
28286
+ var bookingDepositRefundPolicySchema = z42.enum([
27979
28287
  "refundable",
27980
28288
  "non_refundable"
27981
28289
  ]);
27982
- var bookingInstalmentPlanSchema = z41.union([
27983
- z41.object({
27984
- kind: z41.literal("deposit_plus_one_remainder"),
27985
- depositAmountCents: z41.number().int().min(0),
28290
+ var bookingInstalmentPlanSchema = z42.union([
28291
+ z42.object({
28292
+ kind: z42.literal("deposit_plus_one_remainder"),
28293
+ depositAmountCents: z42.number().int().min(0),
27986
28294
  depositRefundability: bookingDepositRefundPolicySchema,
27987
- remainderDueCount: z41.number().int().positive(),
27988
- intervalUnit: z41.enum(["day", "week", "month"])
28295
+ remainderDueCount: z42.number().int().positive(),
28296
+ intervalUnit: z42.enum(["day", "week", "month"])
27989
28297
  }),
27990
- z41.object({
27991
- kind: z41.literal("deposit_plus_scheduled_instalments"),
27992
- depositAmountCents: z41.number().int().min(0),
28298
+ z42.object({
28299
+ kind: z42.literal("deposit_plus_scheduled_instalments"),
28300
+ depositAmountCents: z42.number().int().min(0),
27993
28301
  depositRefundability: bookingDepositRefundPolicySchema,
27994
- instalmentCount: z41.number().int().positive(),
27995
- intervalCount: z41.number().int().positive(),
27996
- intervalUnit: z41.enum(["day", "week", "month"])
28302
+ instalmentCount: z42.number().int().positive(),
28303
+ intervalCount: z42.number().int().positive(),
28304
+ intervalUnit: z42.enum(["day", "week", "month"])
27997
28305
  }),
27998
- z41.object({
27999
- kind: z41.literal("equal_scheduled_instalments"),
28000
- instalmentCount: z41.number().int().positive(),
28001
- intervalCount: z41.number().int().positive(),
28002
- intervalUnit: z41.enum(["day", "week", "month"])
28306
+ z42.object({
28307
+ kind: z42.literal("equal_scheduled_instalments"),
28308
+ instalmentCount: z42.number().int().positive(),
28309
+ intervalCount: z42.number().int().positive(),
28310
+ intervalUnit: z42.enum(["day", "week", "month"])
28003
28311
  })
28004
28312
  ]);
28005
- var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28006
- z41.object({
28007
- kind: z41.literal("relative_to_start_date"),
28008
- daysBeforeStart: z41.number().int().positive()
28313
+ var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
28314
+ z42.object({
28315
+ kind: z42.literal("relative_to_start_date"),
28316
+ daysBeforeStart: z42.number().int().positive()
28009
28317
  }),
28010
- z41.object({
28011
- kind: z41.literal("fixed_calendar_date"),
28012
- dueAt: z41.string().datetime()
28318
+ z42.object({
28319
+ kind: z42.literal("fixed_calendar_date"),
28320
+ dueAt: z42.string().datetime()
28013
28321
  })
28014
28322
  ]);
28015
- var bookingFlexibleBalanceConfigSchema = z41.object({
28016
- upfrontAmountCents: z41.number().int().min(0),
28323
+ var bookingFlexibleBalanceConfigSchema = z42.object({
28324
+ upfrontAmountCents: z42.number().int().min(0),
28017
28325
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
28018
28326
  depositRefundability: bookingDepositRefundPolicySchema
28019
28327
  });
28020
- var blockBookingPaymentCollectionOptionSchema = z41.union([
28021
- z41.object({
28022
- kind: z41.literal("upfront")
28328
+ var blockBookingPaymentCollectionOptionSchema = z42.union([
28329
+ z42.object({
28330
+ kind: z42.literal("upfront")
28023
28331
  }),
28024
- z41.object({
28025
- kind: z41.literal("deferred_manual")
28332
+ z42.object({
28333
+ kind: z42.literal("deferred_manual")
28026
28334
  }),
28027
- z41.object({
28028
- kind: z41.literal("instalment_plan"),
28335
+ z42.object({
28336
+ kind: z42.literal("instalment_plan"),
28029
28337
  plan: bookingInstalmentPlanSchema
28030
28338
  }),
28031
- z41.object({
28032
- kind: z41.literal("flexible_balance"),
28339
+ z42.object({
28340
+ kind: z42.literal("flexible_balance"),
28033
28341
  config: bookingFlexibleBalanceConfigSchema
28034
28342
  })
28035
28343
  ]);
28036
- var blockBookingPaymentTermsSchema = z41.object({
28037
- allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
28344
+ var blockBookingPaymentTermsSchema = z42.object({
28345
+ allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
28038
28346
  });
28039
28347
 
28040
28348
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
28041
- import { z as z42 } from "zod";
28042
- var courseVenueSchema = z42.object({
28043
- id: z42.string(),
28044
- name: z42.string(),
28045
- address: z42.string().nullable()
28046
- });
28047
- var courseSessionSchema = z42.object({
28048
- id: z42.string(),
28049
- startsAt: z42.string(),
28050
- endsAt: z42.string(),
28051
- timeZone: z42.string(),
28052
- capacityOverride: z42.number().nullable().optional(),
28053
- overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28054
- });
28055
- var courseTeamMemberSummarySchema = z42.object({
28056
- id: z42.string(),
28057
- name: z42.string(),
28058
- roleLabel: z42.string().nullable(),
28059
- summary: z42.string().nullable(),
28060
- profilePath: z42.string().nullable()
28061
- });
28062
- var coursePricingOptionSchema = z42.object({
28063
- id: z42.string(),
28064
- name: z42.string(),
28065
- description: z42.string().nullable(),
28066
- priceAmount: z42.number(),
28067
- isActive: z42.boolean(),
28068
- sortOrder: z42.number(),
28069
- capacityLimit: z42.number().nullable(),
28070
- saleStartsAt: z42.string().nullable(),
28071
- saleEndsAt: z42.string().nullable(),
28072
- attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28073
- });
28074
- var coursePricingSchema = z42.object({
28075
- bookingRequirement: z42.enum(["none", "required"]),
28076
- pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
28077
- currency: z42.string(),
28078
- singlePriceAmount: z42.number().nullable(),
28079
- slidingMinAmount: z42.number().nullable().optional(),
28080
- slidingMaxAmount: z42.number().nullable().optional(),
28081
- slidingSuggestedAmount: z42.number().nullable().optional(),
28349
+ import { z as z43 } from "zod";
28350
+ var courseVenueSchema = z43.object({
28351
+ id: z43.string(),
28352
+ name: z43.string(),
28353
+ address: z43.string().nullable()
28354
+ });
28355
+ var courseSessionSchema = z43.object({
28356
+ id: z43.string(),
28357
+ startsAt: z43.string(),
28358
+ endsAt: z43.string(),
28359
+ timeZone: z43.string(),
28360
+ capacityOverride: z43.number().nullable().optional(),
28361
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28362
+ });
28363
+ var courseTeamMemberSummarySchema = z43.object({
28364
+ id: z43.string(),
28365
+ name: z43.string(),
28366
+ roleLabel: z43.string().nullable(),
28367
+ summary: z43.string().nullable(),
28368
+ profilePath: z43.string().nullable()
28369
+ });
28370
+ var coursePricingOptionSchema = z43.object({
28371
+ id: z43.string(),
28372
+ name: z43.string(),
28373
+ description: z43.string().nullable(),
28374
+ priceAmount: z43.number(),
28375
+ isActive: z43.boolean(),
28376
+ sortOrder: z43.number(),
28377
+ capacityLimit: z43.number().nullable(),
28378
+ saleStartsAt: z43.string().nullable(),
28379
+ saleEndsAt: z43.string().nullable(),
28380
+ attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
28381
+ });
28382
+ var coursePricingSchema = z43.object({
28383
+ bookingRequirement: z43.enum(["none", "required"]),
28384
+ pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
28385
+ currency: z43.string(),
28386
+ singlePriceAmount: z43.number().nullable(),
28387
+ slidingMinAmount: z43.number().nullable().optional(),
28388
+ slidingMaxAmount: z43.number().nullable().optional(),
28389
+ slidingSuggestedAmount: z43.number().nullable().optional(),
28082
28390
  paymentTerms: blockBookingPaymentTermsSchema,
28083
- options: z42.array(coursePricingOptionSchema)
28084
- });
28085
- var publicCourseSchema = z42.object({
28086
- id: z42.string(),
28087
- title: z42.string(),
28088
- slug: z42.string(),
28089
- description: z42.unknown().nullable(),
28090
- teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28091
- enrollmentOpen: z42.boolean(),
28391
+ options: z43.array(coursePricingOptionSchema)
28392
+ });
28393
+ var publicCourseSchema = z43.object({
28394
+ id: z43.string(),
28395
+ title: z43.string(),
28396
+ slug: z43.string(),
28397
+ description: z43.unknown().nullable(),
28398
+ teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
28399
+ enrollmentOpen: z43.boolean(),
28092
28400
  pricing: coursePricingSchema.optional(),
28093
- priceCents: z42.number().nullable(),
28094
- currency: z42.string(),
28401
+ priceCents: z43.number().nullable(),
28402
+ currency: z43.string(),
28095
28403
  paymentTerms: blockBookingPaymentTermsSchema,
28096
- enrollmentCapacity: z42.number().nullable(),
28097
- acceptsMemberships: z42.boolean(),
28098
- status: z42.enum(["active", "draft", "cancelled"]),
28099
- sessionsCount: z42.number(),
28100
- enrolledCount: z42.number(),
28101
- availableSpots: z42.number().nullable(),
28102
- sessions: z42.array(courseSessionSchema),
28404
+ enrollmentCapacity: z43.number().nullable(),
28405
+ acceptsMemberships: z43.boolean(),
28406
+ status: z43.enum(["active", "draft", "cancelled"]),
28407
+ sessionsCount: z43.number(),
28408
+ enrolledCount: z43.number(),
28409
+ availableSpots: z43.number().nullable(),
28410
+ sessions: z43.array(courseSessionSchema),
28103
28411
  venue: courseVenueSchema.nullable(),
28104
- contentEntryId: z42.string().nullable()
28412
+ contentEntryId: z43.string().nullable()
28105
28413
  });
28106
- var publicCoursesArraySchema = z42.array(publicCourseSchema);
28414
+ var publicCoursesArraySchema = z43.array(publicCourseSchema);
28107
28415
 
28108
28416
  // ../blocks/src/system/blocks/events/shared/schemas.ts
28109
- var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28110
- var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28111
- var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28112
- var publicEventDestinationSchema = z43.discriminatedUnion("kind", [
28113
- z43.object({
28114
- kind: z43.literal("native"),
28417
+ var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
28418
+ var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
28419
+ var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
28420
+ var publicEventDestinationSchema = z44.discriminatedUnion("kind", [
28421
+ z44.object({
28422
+ kind: z44.literal("native"),
28115
28423
  mode: eventDestinationModeSchema,
28116
- path: z43.string()
28424
+ path: z44.string()
28117
28425
  }),
28118
- z43.object({
28119
- kind: z43.literal("external"),
28120
- url: z43.string(),
28121
- label: z43.string()
28426
+ z44.object({
28427
+ kind: z44.literal("external"),
28428
+ url: z44.string(),
28429
+ label: z44.string()
28122
28430
  })
28123
28431
  ]);
28124
- var eventVenueSchema = z43.object({
28125
- id: z43.string(),
28126
- name: z43.string(),
28127
- address: z43.string().nullable(),
28128
- location: z43.object({
28129
- lat: z43.number(),
28130
- lng: z43.number()
28432
+ var eventVenueSchema = z44.object({
28433
+ id: z44.string(),
28434
+ name: z44.string(),
28435
+ address: z44.string().nullable(),
28436
+ location: z44.object({
28437
+ lat: z44.number(),
28438
+ lng: z44.number()
28131
28439
  }).nullable()
28132
28440
  });
28133
- var eventCategorySchema = z43.object({
28134
- id: z43.string(),
28135
- name: z43.string(),
28136
- color: z43.string().nullable()
28137
- });
28138
- var pricingTypeSchema = z43.enum(["free", "paid", "external"]);
28139
- var accessRestrictionSchema = z43.enum(["none", "category"]);
28140
- var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28141
- var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28142
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28143
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28144
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28145
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28441
+ var eventCategorySchema = z44.object({
28442
+ id: z44.string(),
28443
+ name: z44.string(),
28444
+ color: z44.string().nullable()
28445
+ });
28446
+ var pricingTypeSchema = z44.enum(["free", "paid", "external"]);
28447
+ var accessRestrictionSchema = z44.enum(["none", "category"]);
28448
+ var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
28449
+ var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
28450
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28451
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28452
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28453
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28146
28454
  ]);
28147
- var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28148
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28149
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28150
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28151
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28152
- z43.object({
28153
- kind: z43.literal("mixed"),
28154
- paidFromAmount: z43.number(),
28155
- paidToAmount: z43.number(),
28156
- currency: z43.string()
28455
+ var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
28456
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28457
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28458
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28459
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28460
+ z44.object({
28461
+ kind: z44.literal("mixed"),
28462
+ paidFromAmount: z44.number(),
28463
+ paidToAmount: z44.number(),
28464
+ currency: z44.string()
28157
28465
  }),
28158
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28159
- z43.object({ kind: z43.literal("external"), label: z43.string() }),
28160
- z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28466
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
28467
+ z44.object({ kind: z44.literal("external"), label: z44.string() }),
28468
+ z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28161
28469
  ]);
28162
- var publicEventTicketTypePriceDisplaySchema = z43.union([
28163
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28164
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28165
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28166
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28167
- z43.object({
28168
- kind: z43.literal("mixed"),
28169
- paidFromAmount: z43.number(),
28170
- paidToAmount: z43.number(),
28171
- currency: z43.string()
28470
+ var publicEventTicketTypePriceDisplaySchema = z44.union([
28471
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28472
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28473
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28474
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28475
+ z44.object({
28476
+ kind: z44.literal("mixed"),
28477
+ paidFromAmount: z44.number(),
28478
+ paidToAmount: z44.number(),
28479
+ currency: z44.string()
28172
28480
  }),
28173
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28481
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28174
28482
  ]);
28175
- var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28176
- var publicEventAttendanceModeAvailabilitySchema = z43.object({
28483
+ var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
28484
+ var publicEventAttendanceModeAvailabilitySchema = z44.object({
28177
28485
  mode: publicEventAttendanceModeSchema,
28178
- capacity: z43.number().nullable(),
28179
- registeredCount: z43.number(),
28180
- availableSpots: z43.number().nullable(),
28181
- waitlistEnabled: z43.boolean()
28182
- });
28183
- var publicEventTicketTypeAvailabilitySchema = z43.union([
28184
- z43.object({
28185
- kind: z43.literal("available"),
28186
- remainingCapacity: z43.number().nullable()
28486
+ capacity: z44.number().nullable(),
28487
+ registeredCount: z44.number(),
28488
+ availableSpots: z44.number().nullable(),
28489
+ waitlistEnabled: z44.boolean()
28490
+ });
28491
+ var publicEventTicketTypeAvailabilitySchema = z44.union([
28492
+ z44.object({
28493
+ kind: z44.literal("available"),
28494
+ remainingCapacity: z44.number().nullable()
28187
28495
  }),
28188
- z43.object({
28189
- kind: z43.literal("unavailable"),
28190
- reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28191
- remainingCapacity: z43.number().nullable()
28496
+ z44.object({
28497
+ kind: z44.literal("unavailable"),
28498
+ reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28499
+ remainingCapacity: z44.number().nullable()
28192
28500
  })
28193
28501
  ]);
28194
- var publicEventTicketTypeSchema = z43.object({
28195
- id: z43.string(),
28196
- siteId: z43.string(),
28197
- eventSeriesId: z43.string(),
28198
- name: z43.string(),
28199
- description: z43.string().nullable(),
28200
- priceAmount: z43.number(),
28201
- isActive: z43.boolean(),
28202
- sortOrder: z43.number(),
28203
- capacityMode: z43.enum(["limited", "unlimited"]),
28204
- capacityLimit: z43.number().nullable(),
28205
- attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28206
- saleStartsAt: z43.string().nullable(),
28207
- saleEndsAt: z43.string().nullable(),
28502
+ var publicEventTicketTypeSchema = z44.object({
28503
+ id: z44.string(),
28504
+ siteId: z44.string(),
28505
+ eventSeriesId: z44.string(),
28506
+ name: z44.string(),
28507
+ description: z44.string().nullable(),
28508
+ priceAmount: z44.number(),
28509
+ isActive: z44.boolean(),
28510
+ sortOrder: z44.number(),
28511
+ capacityMode: z44.enum(["limited", "unlimited"]),
28512
+ capacityLimit: z44.number().nullable(),
28513
+ attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
28514
+ saleStartsAt: z44.string().nullable(),
28515
+ saleEndsAt: z44.string().nullable(),
28208
28516
  availability: publicEventTicketTypeAvailabilitySchema,
28209
- createdAt: z43.string(),
28210
- updatedAt: z43.string()
28211
- });
28212
- var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28213
- z43.object({
28214
- kind: z43.literal("drop_in"),
28215
- currency: z43.string(),
28216
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28517
+ createdAt: z44.string(),
28518
+ updatedAt: z44.string()
28519
+ });
28520
+ var publicEventPricingSchema = z44.discriminatedUnion("kind", [
28521
+ z44.object({
28522
+ kind: z44.literal("drop_in"),
28523
+ currency: z44.string(),
28524
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28217
28525
  }),
28218
- z43.object({
28219
- kind: z43.literal("free_registration"),
28220
- currency: z43.string(),
28221
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28526
+ z44.object({
28527
+ kind: z44.literal("free_registration"),
28528
+ currency: z44.string(),
28529
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28222
28530
  }),
28223
- z43.object({
28224
- kind: z43.literal("single_paid"),
28225
- amount: z43.number(),
28226
- currency: z43.string(),
28227
- display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28531
+ z44.object({
28532
+ kind: z44.literal("single_paid"),
28533
+ amount: z44.number(),
28534
+ currency: z44.string(),
28535
+ display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
28228
28536
  }),
28229
- z43.object({
28230
- kind: z43.literal("ticket_types"),
28231
- currency: z43.string(),
28232
- ticketTypes: z43.array(publicEventTicketTypeSchema),
28537
+ z44.object({
28538
+ kind: z44.literal("ticket_types"),
28539
+ currency: z44.string(),
28540
+ ticketTypes: z44.array(publicEventTicketTypeSchema),
28233
28541
  display: publicEventTicketTypePriceDisplaySchema
28234
28542
  }),
28235
- z43.object({
28236
- kind: z43.literal("sliding_scale"),
28237
- minAmount: z43.number(),
28238
- maxAmount: z43.number(),
28239
- suggestedAmount: z43.number().nullable(),
28240
- currency: z43.string(),
28241
- display: z43.object({
28242
- kind: z43.literal("range"),
28243
- minAmount: z43.number(),
28244
- maxAmount: z43.number(),
28245
- currency: z43.string()
28543
+ z44.object({
28544
+ kind: z44.literal("sliding_scale"),
28545
+ minAmount: z44.number(),
28546
+ maxAmount: z44.number(),
28547
+ suggestedAmount: z44.number().nullable(),
28548
+ currency: z44.string(),
28549
+ display: z44.object({
28550
+ kind: z44.literal("range"),
28551
+ minAmount: z44.number(),
28552
+ maxAmount: z44.number(),
28553
+ currency: z44.string()
28246
28554
  })
28247
28555
  }),
28248
- z43.object({
28249
- kind: z43.literal("course"),
28250
- display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28556
+ z44.object({
28557
+ kind: z44.literal("course"),
28558
+ display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28251
28559
  }),
28252
- z43.object({
28253
- kind: z43.literal("external"),
28254
- display: z43.object({ kind: z43.literal("external"), label: z43.string() })
28560
+ z44.object({
28561
+ kind: z44.literal("external"),
28562
+ display: z44.object({ kind: z44.literal("external"), label: z44.string() })
28255
28563
  })
28256
28564
  ]);
28257
- var publicTeamMemberSummarySchema = z43.object({
28258
- id: z43.string(),
28259
- name: z43.string(),
28260
- roleLabel: z43.string().nullable(),
28261
- summary: z43.string().nullable(),
28262
- profilePath: z43.string().nullable()
28565
+ var publicTeamMemberSummarySchema = z44.object({
28566
+ id: z44.string(),
28567
+ name: z44.string(),
28568
+ roleLabel: z44.string().nullable(),
28569
+ summary: z44.string().nullable(),
28570
+ profilePath: z44.string().nullable()
28263
28571
  });
28264
- var publicEventSchema = z43.object({
28265
- kind: z43.enum(["event", "course_session"]).optional(),
28572
+ var publicEventSchema = z44.object({
28573
+ kind: z44.enum(["event", "course_session"]).optional(),
28266
28574
  eventPreset: eventPresetSchema.optional(),
28267
28575
  eventDestinationMode: eventDestinationModeSchema.optional(),
28268
28576
  scheduleScope: eventScheduleScopeSchema.optional(),
28269
- id: z43.string(),
28270
- occurrenceId: z43.string(),
28271
- seriesId: z43.string(),
28272
- title: z43.string(),
28273
- description: z43.string().nullable(),
28274
- content: z43.object({
28577
+ id: z44.string(),
28578
+ occurrenceId: z44.string(),
28579
+ seriesId: z44.string(),
28580
+ title: z44.string(),
28581
+ description: z44.string().nullable(),
28582
+ content: z44.object({
28275
28583
  body: RichTextDocSchema.nullable().optional()
28276
28584
  }).optional(),
28277
- presentation: z43.object({
28278
- cardTitleOverride: z43.string().nullable().optional(),
28279
- summary: z43.string().nullable().optional(),
28585
+ presentation: z44.object({
28586
+ cardTitleOverride: z44.string().nullable().optional(),
28587
+ summary: z44.string().nullable().optional(),
28280
28588
  image: mediaSchema2.nullable().optional()
28281
28589
  }).optional(),
28282
- slug: z43.string(),
28283
- path: z43.string().nullable(),
28590
+ slug: z44.string(),
28591
+ path: z44.string().nullable(),
28284
28592
  destination: publicEventDestinationSchema,
28285
- requiresRegistration: z43.boolean(),
28286
- deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28287
- attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28288
- startsAt: z43.string(),
28289
- endsAt: z43.string(),
28290
- capacity: z43.number().nullable(),
28291
- registeredCount: z43.number(),
28292
- availableSpots: z43.number().nullable(),
28293
- waitlistEnabled: z43.boolean(),
28593
+ requiresRegistration: z44.boolean(),
28594
+ deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
28595
+ attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
28596
+ startsAt: z44.string(),
28597
+ endsAt: z44.string(),
28598
+ capacity: z44.number().nullable(),
28599
+ registeredCount: z44.number(),
28600
+ availableSpots: z44.number().nullable(),
28601
+ waitlistEnabled: z44.boolean(),
28294
28602
  venue: eventVenueSchema.nullable(),
28295
28603
  eventCategory: eventCategorySchema.nullable(),
28296
- teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28297
- status: z43.enum(["active", "draft", "archived"]).optional(),
28298
- timeZone: z43.string(),
28604
+ teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
28605
+ status: z44.enum(["active", "draft", "archived"]).optional(),
28606
+ timeZone: z44.string(),
28299
28607
  pricing: publicEventPricingSchema,
28300
28608
  paymentTerms: blockBookingPaymentTermsSchema,
28301
28609
  accessRestriction: accessRestrictionSchema,
28302
- allowedCategoryIds: z43.array(z43.string()),
28303
- requireGuestDetails: z43.boolean().optional(),
28304
- acceptsPasses: z43.boolean().optional(),
28305
- acceptsMemberships: z43.boolean().optional(),
28306
- course: z43.object({
28307
- id: z43.string(),
28610
+ allowedCategoryIds: z44.array(z44.string()),
28611
+ requireGuestDetails: z44.boolean().optional(),
28612
+ acceptsPasses: z44.boolean().optional(),
28613
+ acceptsMemberships: z44.boolean().optional(),
28614
+ course: z44.object({
28615
+ id: z44.string(),
28308
28616
  pricing: coursePricingSchema.optional(),
28309
- priceCents: z43.number().nullable(),
28310
- currency: z43.string(),
28311
- enrollmentOpen: z43.boolean()
28617
+ priceCents: z44.number().nullable(),
28618
+ currency: z44.string(),
28619
+ enrollmentOpen: z44.boolean()
28312
28620
  }).nullable().optional()
28313
28621
  });
28314
- var publicEventsArraySchema = z43.array(publicEventSchema);
28622
+ var publicEventsArraySchema = z44.array(publicEventSchema);
28315
28623
 
28316
28624
  // ../blocks/src/system/blocks/events/shared/fields.ts
28317
28625
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28514,52 +28822,80 @@ function normalizeEventStaffMemberId(value) {
28514
28822
  return trimmed ? trimmed : null;
28515
28823
  }
28516
28824
 
28825
+ // ../blocks/src/system/blocks/events/shared/layout.ts
28826
+ var recoverEmptyHeadingWhenActive = {
28827
+ kind: "recover-empty-when-active",
28828
+ placeholder: "Add heading"
28829
+ };
28830
+ var recoverEmptyDescriptionWhenActive = {
28831
+ kind: "recover-empty-when-active",
28832
+ placeholder: "Add description"
28833
+ };
28834
+ function eventSectionHeaderLayoutNodes() {
28835
+ return [
28836
+ text(
28837
+ { as: "h2" },
28838
+ bind("content.heading"),
28839
+ when("content.heading", {
28840
+ authoringPresence: recoverEmptyHeadingWhenActive
28841
+ })
28842
+ ),
28843
+ richText(
28844
+ { className: "rb-prose rb-max-w-none" },
28845
+ bind("content.description"),
28846
+ when("content.description", {
28847
+ authoringPresence: recoverEmptyDescriptionWhenActive
28848
+ })
28849
+ )
28850
+ ];
28851
+ }
28852
+
28517
28853
  // ../blocks/src/system/blocks/shop.shared.ts
28518
- import { z as z44 } from "zod";
28519
- var publicPassProductSchema = z44.object({
28520
- id: z44.string(),
28521
- productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28522
- name: z44.string(),
28523
- description: z44.string().nullable(),
28524
- price: z44.number(),
28525
- currency: z44.string(),
28526
- creditsTotal: z44.number(),
28527
- pricePerCredit: z44.number(),
28528
- validDays: z44.number().nullable(),
28529
- eligibleCategoryIds: z44.array(z44.string()),
28530
- eligibleCategoryNames: z44.array(z44.string())
28531
- });
28532
- var publicPassProductCollectionSchema = z44.object({
28533
- passes: z44.array(publicPassProductSchema)
28534
- });
28535
- var publicMembershipProductSchema = z44.object({
28536
- id: z44.string(),
28537
- name: z44.string(),
28538
- description: z44.string().nullable(),
28539
- price: z44.number(),
28540
- currency: z44.string(),
28541
- billingInterval: z44.enum(["month", "year"]),
28542
- eligibleCategoryIds: z44.array(z44.string()),
28543
- eligibleCategoryNames: z44.array(z44.string())
28854
+ import { z as z45 } from "zod";
28855
+ var publicPassProductSchema = z45.object({
28856
+ id: z45.string(),
28857
+ productUseCase: z45.enum(["event_pass", "appointment_package"]).default("event_pass"),
28858
+ name: z45.string(),
28859
+ description: z45.string().nullable(),
28860
+ price: z45.number(),
28861
+ currency: z45.string(),
28862
+ creditsTotal: z45.number(),
28863
+ pricePerCredit: z45.number(),
28864
+ validDays: z45.number().nullable(),
28865
+ eligibleCategoryIds: z45.array(z45.string()),
28866
+ eligibleCategoryNames: z45.array(z45.string())
28867
+ });
28868
+ var publicPassProductCollectionSchema = z45.object({
28869
+ passes: z45.array(publicPassProductSchema)
28870
+ });
28871
+ var publicMembershipProductSchema = z45.object({
28872
+ id: z45.string(),
28873
+ name: z45.string(),
28874
+ description: z45.string().nullable(),
28875
+ price: z45.number(),
28876
+ currency: z45.string(),
28877
+ billingInterval: z45.enum(["month", "year"]),
28878
+ eligibleCategoryIds: z45.array(z45.string()),
28879
+ eligibleCategoryNames: z45.array(z45.string())
28544
28880
  });
28545
- var publicMembershipProductCollectionSchema = z44.object({
28546
- memberships: z44.array(publicMembershipProductSchema)
28881
+ var publicMembershipProductCollectionSchema = z45.object({
28882
+ memberships: z45.array(publicMembershipProductSchema)
28547
28883
  });
28548
28884
 
28549
28885
  // ../blocks/src/system/blocks/event-registration.shared.ts
28550
- import { z as z45 } from "zod";
28551
- var occurrenceContextSchema = z45.object({
28552
- id: z45.string(),
28553
- seriesId: z45.string(),
28554
- startsAt: z45.string(),
28555
- endsAt: z45.string(),
28556
- timeZone: z45.string(),
28557
- capacityOverride: z45.number().nullable().optional(),
28558
- overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28886
+ import { z as z46 } from "zod";
28887
+ var occurrenceContextSchema = z46.object({
28888
+ id: z46.string(),
28889
+ seriesId: z46.string(),
28890
+ startsAt: z46.string(),
28891
+ endsAt: z46.string(),
28892
+ timeZone: z46.string(),
28893
+ capacityOverride: z46.number().nullable().optional(),
28894
+ overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
28559
28895
  }).nullable();
28560
28896
 
28561
28897
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28562
- import { z as z47 } from "zod";
28898
+ import { z as z48 } from "zod";
28563
28899
 
28564
28900
  // ../blocks/src/system/constants/events.ts
28565
28901
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28746,17 +29082,17 @@ function readAmount(value) {
28746
29082
  }
28747
29083
 
28748
29084
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28749
- import { z as z46 } from "zod";
28750
- var previewStageSchema = z46.enum(["preview", "published"]);
28751
- var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28752
- var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28753
- var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28754
- var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28755
- var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28756
- var columnOptionSchema = z46.enum(["2", "3", "4"]);
28757
- var weekStartSchema = z46.enum(["sunday", "monday"]);
28758
- var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28759
- var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
29085
+ import { z as z47 } from "zod";
29086
+ var previewStageSchema = z47.enum(["preview", "published"]);
29087
+ var registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
29088
+ var eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
29089
+ var eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
29090
+ var eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
29091
+ var eventCalendarDefaultViewSchema = z47.enum(eventCalendarDefaultViewValues);
29092
+ var columnOptionSchema = z47.enum(["2", "3", "4"]);
29093
+ var weekStartSchema = z47.enum(["sunday", "monday"]);
29094
+ var filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
29095
+ var calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
28760
29096
 
28761
29097
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28762
29098
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28816,72 +29152,72 @@ function toRegistrationEvents(events) {
28816
29152
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28817
29153
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28818
29154
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28819
- var contentEntrySchema = z47.object({
28820
- id: z47.string(),
28821
- slug: z47.string(),
28822
- contentTypeSlug: z47.string()
29155
+ var contentEntrySchema = z48.object({
29156
+ id: z48.string(),
29157
+ slug: z48.string(),
29158
+ contentTypeSlug: z48.string()
28823
29159
  });
28824
- var eventRegistrationPublicEventSchema = z47.preprocess(
29160
+ var eventRegistrationPublicEventSchema = z48.preprocess(
28825
29161
  normalizeEventRegistrationEventInput,
28826
29162
  publicEventSchema
28827
29163
  );
28828
- var eventRegistrationSourceSchema = z47.object({
28829
- siteId: z47.string().optional(),
28830
- apiBaseUrl: z47.string().optional(),
28831
- portalToken: z47.string().nullable().optional(),
28832
- previewToken: z47.string().nullable().optional(),
29164
+ var eventRegistrationSourceSchema = z48.object({
29165
+ siteId: z48.string().optional(),
29166
+ apiBaseUrl: z48.string().optional(),
29167
+ portalToken: z48.string().nullable().optional(),
29168
+ previewToken: z48.string().nullable().optional(),
28833
29169
  occurrenceContext: occurrenceContextSchema.optional(),
28834
29170
  contentEntry: contentEntrySchema.nullable().optional(),
28835
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28836
- className: z47.string().nullable().optional(),
28837
- buttonText: z47.string().nullable().optional(),
28838
- maxTickets: z47.string().nullable().optional(),
28839
- showVenue: z47.boolean().optional(),
28840
- showCapacity: z47.boolean().optional(),
28841
- successMessage: z47.string().optional(),
28842
- waitlistMessage: z47.string().optional(),
29171
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29172
+ className: z48.string().nullable().optional(),
29173
+ buttonText: z48.string().nullable().optional(),
29174
+ maxTickets: z48.string().nullable().optional(),
29175
+ showVenue: z48.boolean().optional(),
29176
+ showCapacity: z48.boolean().optional(),
29177
+ successMessage: z48.string().optional(),
29178
+ waitlistMessage: z48.string().optional(),
28843
29179
  buttonVariant: registrationButtonVariantSchema.optional(),
28844
- overlayEnabled: z47.boolean().optional(),
28845
- spamProtectionEnabled: z47.boolean().optional(),
29180
+ overlayEnabled: z48.boolean().optional(),
29181
+ spamProtectionEnabled: z48.boolean().optional(),
28846
29182
  stage: previewStageSchema.optional(),
28847
- supportEmail: z47.string().optional(),
29183
+ supportEmail: z48.string().optional(),
28848
29184
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28849
29185
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28850
29186
  });
28851
- var eventRegistrationDisplaySchema = z47.object({
28852
- kind: z47.literal("event-registration"),
28853
- state: z47.literal("generic-shell"),
28854
- className: z47.string().nullable(),
28855
- titleText: z47.string(),
28856
- bodyText: z47.string(),
28857
- stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28858
- summaryButtonText: z47.string()
29187
+ var eventRegistrationDisplaySchema = z48.object({
29188
+ kind: z48.literal("event-registration"),
29189
+ state: z48.literal("generic-shell"),
29190
+ className: z48.string().nullable(),
29191
+ titleText: z48.string(),
29192
+ bodyText: z48.string(),
29193
+ stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
29194
+ summaryButtonText: z48.string()
28859
29195
  });
28860
- var eventRegistrationHydrationSchema = z47.object({
29196
+ var eventRegistrationHydrationSchema = z48.object({
28861
29197
  occurrenceContext: occurrenceContextSchema.optional(),
28862
29198
  contentEntry: contentEntrySchema.nullable().optional(),
28863
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28864
- maxTickets: z47.string().optional(),
28865
- showVenue: z47.boolean().optional(),
28866
- showCapacity: z47.boolean().optional(),
28867
- successMessage: z47.string().optional(),
28868
- waitlistMessage: z47.string().optional(),
29199
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29200
+ maxTickets: z48.string().optional(),
29201
+ showVenue: z48.boolean().optional(),
29202
+ showCapacity: z48.boolean().optional(),
29203
+ successMessage: z48.string().optional(),
29204
+ waitlistMessage: z48.string().optional(),
28869
29205
  buttonVariant: registrationButtonVariantSchema.optional(),
28870
- overlayEnabled: z47.boolean().optional(),
28871
- spamProtectionEnabled: z47.boolean().optional(),
28872
- supportEmail: z47.string().optional(),
29206
+ overlayEnabled: z48.boolean().optional(),
29207
+ spamProtectionEnabled: z48.boolean().optional(),
29208
+ supportEmail: z48.string().optional(),
28873
29209
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28874
29210
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28875
29211
  });
28876
- var eventRegistrationRenderSchema = z47.object({
29212
+ var eventRegistrationRenderSchema = z48.object({
28877
29213
  display: eventRegistrationDisplaySchema,
28878
29214
  hydration: eventRegistrationHydrationSchema
28879
29215
  });
28880
- var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28881
- siteId: z47.string().optional(),
28882
- apiBaseUrl: z47.string().optional(),
28883
- portalToken: z47.string().nullable().optional(),
28884
- previewToken: z47.string().nullable().optional(),
29216
+ var eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
29217
+ siteId: z48.string().optional(),
29218
+ apiBaseUrl: z48.string().optional(),
29219
+ portalToken: z48.string().nullable().optional(),
29220
+ previewToken: z48.string().nullable().optional(),
28885
29221
  stage: previewStageSchema.optional()
28886
29222
  }));
28887
29223
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29232,73 +29568,73 @@ var eventRegistrationBlockDefinition = {
29232
29568
  };
29233
29569
 
29234
29570
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
29235
- import { z as z48 } from "zod";
29236
- var contentEntrySchema2 = z48.object({
29237
- id: z48.string(),
29238
- slug: z48.string(),
29239
- contentTypeSlug: z48.string()
29240
- });
29241
- var courseEntrySubrouteContextSchema = z48.union([
29242
- z48.object({
29243
- kind: z48.literal("course-run"),
29244
- run: z48.object({
29245
- courseId: z48.string(),
29246
- seriesId: z48.string(),
29247
- runSlug: z48.string(),
29248
- runName: z48.string().nullable()
29571
+ import { z as z49 } from "zod";
29572
+ var contentEntrySchema2 = z49.object({
29573
+ id: z49.string(),
29574
+ slug: z49.string(),
29575
+ contentTypeSlug: z49.string()
29576
+ });
29577
+ var courseEntrySubrouteContextSchema = z49.union([
29578
+ z49.object({
29579
+ kind: z49.literal("course-run"),
29580
+ run: z49.object({
29581
+ courseId: z49.string(),
29582
+ seriesId: z49.string(),
29583
+ runSlug: z49.string(),
29584
+ runName: z49.string().nullable()
29249
29585
  })
29250
29586
  }),
29251
- z48.object({
29252
- kind: z48.literal("event-occurrence"),
29587
+ z49.object({
29588
+ kind: z49.literal("event-occurrence"),
29253
29589
  occurrence: occurrenceContextSchema
29254
29590
  })
29255
29591
  ]);
29256
- var courseRegistrationSourceSchema = z48.object({
29257
- siteId: z48.string().optional(),
29258
- apiBaseUrl: z48.string().optional(),
29259
- portalToken: z48.string().nullable().optional(),
29592
+ var courseRegistrationSourceSchema = z49.object({
29593
+ siteId: z49.string().optional(),
29594
+ apiBaseUrl: z49.string().optional(),
29595
+ portalToken: z49.string().nullable().optional(),
29260
29596
  contentEntry: contentEntrySchema2.nullable().optional(),
29261
29597
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29262
- courses: z48.array(publicCourseSchema).nullable().optional(),
29263
- className: z48.string().nullable().optional(),
29264
- showSessions: z48.boolean().optional(),
29265
- showPrice: z48.boolean().optional(),
29266
- showCapacity: z48.boolean().optional(),
29267
- showVenue: z48.boolean().optional(),
29268
- successMessage: z48.string().optional(),
29269
- waitlistMessage: z48.string().optional(),
29270
- membershipMessage: z48.string().optional(),
29271
- buttonText: z48.string().nullable().optional(),
29598
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29599
+ className: z49.string().nullable().optional(),
29600
+ showSessions: z49.boolean().optional(),
29601
+ showPrice: z49.boolean().optional(),
29602
+ showCapacity: z49.boolean().optional(),
29603
+ showVenue: z49.boolean().optional(),
29604
+ successMessage: z49.string().optional(),
29605
+ waitlistMessage: z49.string().optional(),
29606
+ membershipMessage: z49.string().optional(),
29607
+ buttonText: z49.string().nullable().optional(),
29272
29608
  buttonVariant: registrationButtonVariantSchema.optional(),
29273
29609
  stage: previewStageSchema.optional()
29274
29610
  });
29275
- var courseRegistrationDisplaySchema = z48.object({
29276
- kind: z48.literal("course-registration"),
29277
- state: z48.literal("shell"),
29278
- className: z48.string().nullable(),
29279
- summaryButtonText: z48.string()
29611
+ var courseRegistrationDisplaySchema = z49.object({
29612
+ kind: z49.literal("course-registration"),
29613
+ state: z49.literal("shell"),
29614
+ className: z49.string().nullable(),
29615
+ summaryButtonText: z49.string()
29280
29616
  });
29281
- var courseRegistrationHydrationSchema = z48.object({
29617
+ var courseRegistrationHydrationSchema = z49.object({
29282
29618
  contentEntry: contentEntrySchema2.nullable().optional(),
29283
29619
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29284
- courses: z48.array(publicCourseSchema).nullable().optional(),
29285
- showSessions: z48.boolean().optional(),
29286
- showPrice: z48.boolean().optional(),
29287
- showCapacity: z48.boolean().optional(),
29288
- showVenue: z48.boolean().optional(),
29289
- successMessage: z48.string().optional(),
29290
- waitlistMessage: z48.string().optional(),
29291
- membershipMessage: z48.string().optional(),
29620
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29621
+ showSessions: z49.boolean().optional(),
29622
+ showPrice: z49.boolean().optional(),
29623
+ showCapacity: z49.boolean().optional(),
29624
+ showVenue: z49.boolean().optional(),
29625
+ successMessage: z49.string().optional(),
29626
+ waitlistMessage: z49.string().optional(),
29627
+ membershipMessage: z49.string().optional(),
29292
29628
  buttonVariant: registrationButtonVariantSchema.optional()
29293
29629
  });
29294
- var courseRegistrationRenderSchema = z48.object({
29630
+ var courseRegistrationRenderSchema = z49.object({
29295
29631
  display: courseRegistrationDisplaySchema,
29296
29632
  hydration: courseRegistrationHydrationSchema
29297
29633
  });
29298
- var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29299
- siteId: z48.string().optional(),
29300
- apiBaseUrl: z48.string().optional(),
29301
- portalToken: z48.string().nullable().optional(),
29634
+ var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
29635
+ siteId: z49.string().optional(),
29636
+ apiBaseUrl: z49.string().optional(),
29637
+ portalToken: z49.string().nullable().optional(),
29302
29638
  stage: previewStageSchema.optional()
29303
29639
  }));
29304
29640
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29558,7 +29894,7 @@ var courseRegistrationBlockDefinition = {
29558
29894
  };
29559
29895
 
29560
29896
  // ../blocks/src/system/blocks/event-details.ts
29561
- import { z as z49 } from "zod";
29897
+ import { z as z50 } from "zod";
29562
29898
  var eventDetailsManifest = createBlockManifest({
29563
29899
  id: "block.event-details",
29564
29900
  version: "1.0.0",
@@ -29690,37 +30026,37 @@ var eventDetailsManifest = createBlockManifest({
29690
30026
  })
29691
30027
  ]
29692
30028
  });
29693
- var occurrenceContextSchema2 = z49.object({
29694
- id: z49.string(),
29695
- seriesId: z49.string(),
29696
- startsAt: z49.string(),
29697
- endsAt: z49.string(),
29698
- timeZone: z49.string(),
29699
- capacityOverride: z49.number().nullable().optional(),
29700
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
30029
+ var occurrenceContextSchema2 = z50.object({
30030
+ id: z50.string(),
30031
+ seriesId: z50.string(),
30032
+ startsAt: z50.string(),
30033
+ endsAt: z50.string(),
30034
+ timeZone: z50.string(),
30035
+ capacityOverride: z50.number().nullable().optional(),
30036
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29701
30037
  }).nullable();
29702
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29703
- id: z49.string(),
29704
- publicLabel: z49.string(),
29705
- description: z49.string().nullable(),
29706
- minTicketsRequired: z49.number().nullable()
30038
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
30039
+ id: z50.string(),
30040
+ publicLabel: z50.string(),
30041
+ description: z50.string().nullable(),
30042
+ minTicketsRequired: z50.number().nullable()
29707
30043
  });
29708
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
30044
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29709
30045
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29710
- discountType: z49.literal("percent"),
29711
- discountPercent: z49.number(),
29712
- discountAmountCents: z49.null()
30046
+ discountType: z50.literal("percent"),
30047
+ discountPercent: z50.number(),
30048
+ discountAmountCents: z50.null()
29713
30049
  }),
29714
30050
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29715
- discountType: z49.literal("fixed"),
29716
- discountPercent: z49.null(),
29717
- discountAmountCents: z49.number()
30051
+ discountType: z50.literal("fixed"),
30052
+ discountPercent: z50.null(),
30053
+ discountAmountCents: z50.number()
29718
30054
  })
29719
30055
  ]);
29720
30056
  var eventDetailsBlockDefinition = {
29721
30057
  manifest: eventDetailsManifest,
29722
30058
  dataSchemas: {
29723
- eventDetailsData: z49.object({
30059
+ eventDetailsData: z50.object({
29724
30060
  events: publicEventsArraySchema,
29725
30061
  sitePasses: publicPassProductCollectionSchema,
29726
30062
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -29975,18 +30311,7 @@ var eventSpotlightFields = [
29975
30311
  var eventSpotlightLayout = [
29976
30312
  styledSection({
29977
30313
  children: sectionContainer([
29978
- // Optional heading
29979
- text(
29980
- { as: "h2" },
29981
- bind("content.heading"),
29982
- when("content.heading")
29983
- ),
29984
- // Optional description
29985
- richText(
29986
- { className: "rb-prose rb-max-w-none" },
29987
- bind("content.description"),
29988
- when("content.description")
29989
- ),
30314
+ ...eventSectionHeaderLayoutNodes(),
29990
30315
  // Event spotlight component
29991
30316
  el("event-spotlight", {
29992
30317
  events: { $bind: { from: "data.events" } },
@@ -30047,7 +30372,7 @@ var eventSpotlightBlockDefinition = {
30047
30372
  };
30048
30373
 
30049
30374
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30050
- import { z as z51 } from "zod";
30375
+ import { z as z52 } from "zod";
30051
30376
 
30052
30377
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
30053
30378
  var COLUMN_CLASSES = {
@@ -30155,16 +30480,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30155
30480
  }
30156
30481
 
30157
30482
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30158
- import { z as z50 } from "zod";
30483
+ import { z as z51 } from "zod";
30159
30484
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30160
- var eventPageSizeSchema = z50.union([
30161
- z50.literal(3),
30162
- z50.literal(6),
30163
- z50.literal(10),
30164
- z50.literal(12),
30165
- z50.literal(20),
30166
- z50.literal(24),
30167
- z50.literal(30)
30485
+ var eventPageSizeSchema = z51.union([
30486
+ z51.literal(3),
30487
+ z51.literal(6),
30488
+ z51.literal(10),
30489
+ z51.literal(12),
30490
+ z51.literal(20),
30491
+ z51.literal(24),
30492
+ z51.literal(30)
30168
30493
  ]);
30169
30494
  var eventPageSizeSet = new Set(eventPageSizeValues);
30170
30495
  function resolveEventPageSize(value, fallback = 12) {
@@ -30174,15 +30499,15 @@ function resolveEventPageSize(value, fallback = 12) {
30174
30499
  function resolveEventCalendarListPageSize(input) {
30175
30500
  return resolveEventPageSize(input.eventsPerPage);
30176
30501
  }
30177
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30178
- z50.object({
30179
- kind: z50.literal("loadMore"),
30180
- label: z50.string()
30502
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30503
+ z51.object({
30504
+ kind: z51.literal("loadMore"),
30505
+ label: z51.string()
30181
30506
  }),
30182
- z50.object({
30183
- kind: z50.literal("seeAllLink"),
30184
- label: z50.string(),
30185
- href: z50.string()
30507
+ z51.object({
30508
+ kind: z51.literal("seeAllLink"),
30509
+ label: z51.string(),
30510
+ href: z51.string()
30186
30511
  })
30187
30512
  ]);
30188
30513
  function resolveEventListPaginationAction(input) {
@@ -30195,89 +30520,89 @@ function resolveEventListPaginationAction(input) {
30195
30520
  }
30196
30521
 
30197
30522
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30198
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30199
- var eventCardVariantInputSchema = z51.union([
30523
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30524
+ var eventCardVariantInputSchema = z52.union([
30200
30525
  cardVariantRoleSchema,
30201
30526
  legacyEventCardVariantSchema
30202
30527
  ]);
30203
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30204
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30205
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30206
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30207
- var eventListingSourceSchema = z51.object({
30208
- events: z51.array(publicEventSchema).nullable().optional(),
30209
- siteId: z51.string(),
30210
- apiBaseUrl: z51.string().optional(),
30528
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30529
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30530
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30531
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30532
+ var eventListingSourceSchema = z52.object({
30533
+ events: z52.array(publicEventSchema).nullable().optional(),
30534
+ siteId: z52.string(),
30535
+ apiBaseUrl: z52.string().optional(),
30211
30536
  stage: previewStageSchema.optional(),
30212
30537
  layout: eventLayoutSchema.optional(),
30213
30538
  columns: columnOptionSchema.optional(),
30214
- eventsPerPage: z51.string().optional(),
30215
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30216
- seeAllUrl: z51.string().optional(),
30217
- loadMoreText: z51.string().optional(),
30539
+ eventsPerPage: z52.string().optional(),
30540
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30541
+ seeAllUrl: z52.string().optional(),
30542
+ loadMoreText: z52.string().optional(),
30218
30543
  cardVariant: eventCardVariantInputSchema.optional(),
30219
30544
  buttonVariant: eventButtonVariantSchema.optional(),
30220
- buttonText: z51.string().optional(),
30221
- showVenue: z51.boolean().optional(),
30222
- showMap: z51.boolean().optional(),
30223
- showCapacity: z51.boolean().optional(),
30224
- emptyMessage: z51.string().optional(),
30225
- className: z51.string().optional(),
30226
- showFilters: z51.boolean().nullable().optional(),
30545
+ buttonText: z52.string().optional(),
30546
+ showVenue: z52.boolean().optional(),
30547
+ showMap: z52.boolean().optional(),
30548
+ showCapacity: z52.boolean().optional(),
30549
+ emptyMessage: z52.string().optional(),
30550
+ className: z52.string().optional(),
30551
+ showFilters: z52.boolean().nullable().optional(),
30227
30552
  showCategoryFilter: filterAutoShowSchema.optional(),
30228
- showVenueFilter: z51.boolean().nullable().optional(),
30229
- showStaffFilter: z51.boolean().nullable().optional(),
30553
+ showVenueFilter: z52.boolean().nullable().optional(),
30554
+ showStaffFilter: z52.boolean().nullable().optional(),
30230
30555
  eventKind: eventBlockKindSchema.nullable().optional(),
30231
30556
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30232
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30557
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30233
30558
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30234
- filterCategoryIds: z51.string().nullable().optional(),
30235
- filterStaffMemberId: z51.string().nullable().optional(),
30236
- filterVenueId: z51.string().nullable().optional()
30559
+ filterCategoryIds: z52.string().nullable().optional(),
30560
+ filterStaffMemberId: z52.string().nullable().optional(),
30561
+ filterVenueId: z52.string().nullable().optional()
30237
30562
  });
30238
- var eventListingDisplaySchema = z51.object({
30239
- kind: z51.literal("event-listing"),
30240
- state: z51.enum(["loading", "empty", "ready"]),
30563
+ var eventListingDisplaySchema = z52.object({
30564
+ kind: z52.literal("event-listing"),
30565
+ state: z52.enum(["loading", "empty", "ready"]),
30241
30566
  listLayout: eventLayoutSchema,
30242
- className: z51.string().nullable(),
30243
- emptyMessage: z51.string(),
30244
- loadingMessage: z51.string(),
30245
- containerClass: z51.string(),
30567
+ className: z52.string().nullable(),
30568
+ emptyMessage: z52.string(),
30569
+ loadingMessage: z52.string(),
30570
+ containerClass: z52.string(),
30246
30571
  cardVariant: cardVariantRoleSchema,
30247
30572
  buttonVariant: eventButtonVariantSchema,
30248
- buttonText: z51.string(),
30249
- showVenue: z51.boolean(),
30250
- showMap: z51.boolean(),
30251
- showCapacity: z51.boolean(),
30573
+ buttonText: z52.string(),
30574
+ showVenue: z52.boolean(),
30575
+ showMap: z52.boolean(),
30576
+ showCapacity: z52.boolean(),
30252
30577
  orientation: cardOrientationSchema,
30253
- events: z51.array(publicEventSchema)
30578
+ events: z52.array(publicEventSchema)
30254
30579
  });
30255
- var eventListingHydrationSchema = z51.object({
30256
- siteId: z51.string(),
30580
+ var eventListingHydrationSchema = z52.object({
30581
+ siteId: z52.string(),
30257
30582
  stage: previewStageSchema.optional(),
30258
30583
  eventsPerPage: eventPageSizeSchema,
30259
30584
  paginationAction: eventListPaginationActionSchema,
30260
- showFilters: z51.boolean(),
30585
+ showFilters: z52.boolean(),
30261
30586
  showCategoryFilter: filterAutoShowSchema,
30262
- showVenueFilter: z51.boolean(),
30263
- showStaffFilter: z51.boolean(),
30587
+ showVenueFilter: z52.boolean(),
30588
+ showStaffFilter: z52.boolean(),
30264
30589
  eventKind: eventBlockKindSchema,
30265
30590
  eventSurface: eventSurfaceScopeSchema,
30266
- filterEventPresets: z51.string().nullable(),
30591
+ filterEventPresets: z52.string().nullable(),
30267
30592
  scheduleScope: eventScheduleScopeSchema2,
30268
- filterCategoryIds: z51.string().nullable().optional(),
30269
- filterStaffMemberId: z51.string().nullable().optional(),
30270
- filterVenueId: z51.string().nullable().optional(),
30271
- fetchInitialEventsOnMount: z51.boolean()
30593
+ filterCategoryIds: z52.string().nullable().optional(),
30594
+ filterStaffMemberId: z52.string().nullable().optional(),
30595
+ filterVenueId: z52.string().nullable().optional(),
30596
+ fetchInitialEventsOnMount: z52.boolean()
30272
30597
  });
30273
- var eventListingRenderSchema = z51.object({
30598
+ var eventListingRenderSchema = z52.object({
30274
30599
  display: eventListingDisplaySchema,
30275
30600
  hydration: eventListingHydrationSchema
30276
30601
  });
30277
30602
  var eventListingIslandMetaCodec = createZodCodec(
30278
- z51.object({
30279
- siteId: z51.string(),
30280
- apiBaseUrl: z51.string().optional(),
30603
+ z52.object({
30604
+ siteId: z52.string(),
30605
+ apiBaseUrl: z52.string().optional(),
30281
30606
  stage: previewStageSchema.optional()
30282
30607
  })
30283
30608
  );
@@ -30517,18 +30842,7 @@ var eventListingAdditionalFields = [
30517
30842
  var eventListingLayout = [
30518
30843
  styledSection({
30519
30844
  children: sectionContainer([
30520
- // Optional heading
30521
- text(
30522
- { as: "h2" },
30523
- bind("content.heading"),
30524
- when("content.heading")
30525
- ),
30526
- // Optional description
30527
- richText(
30528
- { className: "rb-prose rb-max-w-none" },
30529
- bind("content.description"),
30530
- when("content.description")
30531
- ),
30845
+ ...eventSectionHeaderLayoutNodes(),
30532
30846
  // Event listing component with pagination
30533
30847
  el("event-listing", withApiBindings({
30534
30848
  events: { $bind: { from: "data.events" } },
@@ -30644,15 +30958,15 @@ var eventListingBlockDefinition = {
30644
30958
  };
30645
30959
 
30646
30960
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30647
- import { z as z52 } from "zod";
30648
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30649
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30650
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30651
- var eventCalendarSourceSchema = z52.object(
30961
+ import { z as z53 } from "zod";
30962
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30963
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30964
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30965
+ var eventCalendarSourceSchema = z53.object(
30652
30966
  {
30653
- events: z52.array(publicEventSchema).nullable().optional(),
30654
- siteId: z52.string(),
30655
- apiBaseUrl: z52.string().optional(),
30967
+ events: z53.array(publicEventSchema).nullable().optional(),
30968
+ siteId: z53.string(),
30969
+ apiBaseUrl: z53.string().optional(),
30656
30970
  stage: previewStageSchema.optional(),
30657
30971
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30658
30972
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30660,38 +30974,38 @@ var eventCalendarSourceSchema = z52.object(
30660
30974
  listColumns: columnOptionSchema.optional(),
30661
30975
  layout: eventLayoutSchema.optional(),
30662
30976
  columns: columnOptionSchema.optional(),
30663
- eventsPerPage: z52.string().optional(),
30664
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30665
- seeAllUrl: z52.string().optional(),
30666
- loadMoreText: z52.string().optional(),
30977
+ eventsPerPage: z53.string().optional(),
30978
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30979
+ seeAllUrl: z53.string().optional(),
30980
+ loadMoreText: z53.string().optional(),
30667
30981
  startOfWeek: weekStartSchema.optional(),
30668
30982
  calendarTabViews: calendarTabViewsSchema.optional(),
30669
30983
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30670
- showFilters: z52.boolean().nullable().optional(),
30984
+ showFilters: z53.boolean().nullable().optional(),
30671
30985
  showCategoryFilter: filterAutoShowSchema.optional(),
30672
- showVenueFilter: z52.boolean().nullable().optional(),
30673
- showStaffFilter: z52.boolean().nullable().optional(),
30986
+ showVenueFilter: z53.boolean().nullable().optional(),
30987
+ showStaffFilter: z53.boolean().nullable().optional(),
30674
30988
  kind: eventBlockKindSchema2.nullable().optional(),
30675
30989
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30676
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30990
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30677
30991
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30678
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30679
- filterStaffMemberId: z52.string().nullable().optional(),
30680
- filterVenueId: z52.string().nullable().optional(),
30992
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30993
+ filterStaffMemberId: z53.string().nullable().optional(),
30994
+ filterVenueId: z53.string().nullable().optional(),
30681
30995
  buttonVariant: eventButtonVariantSchema.optional(),
30682
- buttonText: z52.string().optional(),
30683
- showVenue: z52.boolean().nullable().optional(),
30684
- showMap: z52.boolean().nullable().optional(),
30685
- showCapacity: z52.boolean().nullable().optional(),
30686
- emptyMessage: z52.string().optional(),
30687
- className: z52.string().optional()
30996
+ buttonText: z53.string().optional(),
30997
+ showVenue: z53.boolean().nullable().optional(),
30998
+ showMap: z53.boolean().nullable().optional(),
30999
+ showCapacity: z53.boolean().nullable().optional(),
31000
+ emptyMessage: z53.string().optional(),
31001
+ className: z53.string().optional()
30688
31002
  }
30689
31003
  );
30690
- var eventCalendarDisplaySchema = z52.object({
30691
- kind: z52.literal("event-calendar"),
31004
+ var eventCalendarDisplaySchema = z53.object({
31005
+ kind: z53.literal("event-calendar"),
30692
31006
  displayMode: eventCalendarDisplayModeSchema,
30693
- className: z52.string().nullable(),
30694
- events: z52.array(publicEventSchema),
31007
+ className: z53.string().nullable(),
31008
+ events: z53.array(publicEventSchema),
30695
31009
  listLayout: eventLayoutSchema,
30696
31010
  listColumns: columnOptionSchema,
30697
31011
  eventsPerPage: eventPageSizeSchema,
@@ -30699,41 +31013,41 @@ var eventCalendarDisplaySchema = z52.object({
30699
31013
  startOfWeek: weekStartSchema,
30700
31014
  calendarTabViews: calendarTabViewsSchema,
30701
31015
  defaultCalendarView: eventCalendarDefaultViewSchema,
30702
- showFilters: z52.boolean(),
31016
+ showFilters: z53.boolean(),
30703
31017
  showCategoryFilter: filterAutoShowSchema,
30704
- showVenueFilter: z52.boolean(),
30705
- showStaffFilter: z52.boolean(),
31018
+ showVenueFilter: z53.boolean(),
31019
+ showStaffFilter: z53.boolean(),
30706
31020
  eventKind: eventBlockKindSchema2,
30707
31021
  eventSurface: eventSurfaceScopeSchema2,
30708
- filterEventPresets: z52.string().nullable(),
31022
+ filterEventPresets: z53.string().nullable(),
30709
31023
  scheduleScope: eventScheduleScopeSchema3,
30710
- filterCategoryIds: z52.string().nullable(),
30711
- filterStaffMemberId: z52.string().nullable(),
30712
- filterVenueId: z52.string().nullable(),
31024
+ filterCategoryIds: z53.string().nullable(),
31025
+ filterStaffMemberId: z53.string().nullable(),
31026
+ filterVenueId: z53.string().nullable(),
30713
31027
  buttonVariant: eventButtonVariantSchema,
30714
- buttonText: z52.string(),
30715
- showVenue: z52.boolean(),
30716
- showMap: z52.boolean(),
30717
- showCapacity: z52.boolean(),
30718
- emptyMessage: z52.string()
30719
- });
30720
- var eventCalendarHydrationSchema = z52.object({
30721
- siteId: z52.string(),
31028
+ buttonText: z53.string(),
31029
+ showVenue: z53.boolean(),
31030
+ showMap: z53.boolean(),
31031
+ showCapacity: z53.boolean(),
31032
+ emptyMessage: z53.string()
31033
+ });
31034
+ var eventCalendarHydrationSchema = z53.object({
31035
+ siteId: z53.string(),
30722
31036
  stage: previewStageSchema.optional(),
30723
- prefetchedEvents: z52.boolean(),
31037
+ prefetchedEvents: z53.boolean(),
30724
31038
  eventKind: eventBlockKindSchema2,
30725
31039
  eventSurface: eventSurfaceScopeSchema2,
30726
- filterEventPresets: z52.string().nullable(),
31040
+ filterEventPresets: z53.string().nullable(),
30727
31041
  scheduleScope: eventScheduleScopeSchema3
30728
31042
  });
30729
- var eventCalendarRenderSchema = z52.object({
31043
+ var eventCalendarRenderSchema = z53.object({
30730
31044
  display: eventCalendarDisplaySchema,
30731
31045
  hydration: eventCalendarHydrationSchema
30732
31046
  });
30733
31047
  var eventCalendarIslandMetaCodec = createZodCodec(
30734
- z52.object({
30735
- siteId: z52.string(),
30736
- apiBaseUrl: z52.string().optional(),
31048
+ z53.object({
31049
+ siteId: z53.string(),
31050
+ apiBaseUrl: z53.string().optional(),
30737
31051
  stage: previewStageSchema.optional()
30738
31052
  })
30739
31053
  );
@@ -30853,14 +31167,7 @@ var eventCalendarLayout = [
30853
31167
  styledSection({
30854
31168
  children: sectionContainer(
30855
31169
  [
30856
- // Optional heading
30857
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30858
- // Optional description
30859
- richText(
30860
- { className: "rb-prose rb-max-w-none" },
30861
- bind("content.description"),
30862
- when("content.description")
30863
- ),
31170
+ ...eventSectionHeaderLayoutNodes(),
30864
31171
  // Event calendar component (handles all display modes)
30865
31172
  el(
30866
31173
  "event-calendar",
@@ -31505,7 +31812,7 @@ var eventCalendarBlockDefinition = {
31505
31812
  };
31506
31813
 
31507
31814
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31508
- import { z as z53 } from "zod";
31815
+ import { z as z54 } from "zod";
31509
31816
 
31510
31817
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31511
31818
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31597,13 +31904,13 @@ function isRecord6(value) {
31597
31904
  }
31598
31905
 
31599
31906
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31600
- var publicRouteCandidatesSchema = z53.object({
31601
- routes: z53.array(z53.object({
31602
- entityId: z53.string(),
31603
- path: z53.string(),
31604
- title: z53.string(),
31605
- kind: z53.enum(["page", "content"]),
31606
- contentTypeKey: z53.string().nullable().optional()
31907
+ var publicRouteCandidatesSchema = z54.object({
31908
+ routes: z54.array(z54.object({
31909
+ entityId: z54.string(),
31910
+ path: z54.string(),
31911
+ title: z54.string(),
31912
+ kind: z54.enum(["page", "content"]),
31913
+ contentTypeKey: z54.string().nullable().optional()
31607
31914
  }))
31608
31915
  });
31609
31916
  var groupOverrideFields = [
@@ -32001,7 +32308,7 @@ function isRecord7(value) {
32001
32308
  }
32002
32309
 
32003
32310
  // ../blocks/src/system/blocks/embed.ts
32004
- import { z as z54 } from "zod";
32311
+ import { z as z55 } from "zod";
32005
32312
  var embedFields = [
32006
32313
  // Section heading
32007
32314
  parseFieldDefinition({
@@ -32232,18 +32539,18 @@ var embedManifest = createBlockManifest({
32232
32539
  spacing: "lg"
32233
32540
  }
32234
32541
  });
32235
- var embedEntrySchema = z54.object({
32236
- id: z54.string(),
32237
- identifier: z54.string(),
32238
- title: z54.string(),
32239
- slug: z54.string().nullable().optional(),
32240
- content: z54.record(z54.string(), z54.unknown()).optional(),
32241
- publishedAt: z54.string().nullable().optional()
32542
+ var embedEntrySchema = z55.object({
32543
+ id: z55.string(),
32544
+ identifier: z55.string(),
32545
+ title: z55.string(),
32546
+ slug: z55.string().nullable().optional(),
32547
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32548
+ publishedAt: z55.string().nullable().optional()
32242
32549
  });
32243
32550
  var embedBlockDefinition = {
32244
32551
  manifest: embedManifest,
32245
32552
  dataSchemas: {
32246
- entries: z54.array(embedEntrySchema).optional()
32553
+ entries: z55.array(embedEntrySchema).optional()
32247
32554
  },
32248
32555
  dataLoaders: {
32249
32556
  entries: {
@@ -33427,49 +33734,49 @@ var fileDownloadBlockDefinition = {
33427
33734
  };
33428
33735
 
33429
33736
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33430
- import { z as z57 } from "zod";
33737
+ import { z as z58 } from "zod";
33431
33738
 
33432
33739
  // ../blocks/src/system/blocks/products/shared.ts
33433
- import { z as z55 } from "zod";
33434
- var publicProductVariantSchema = z55.object({
33435
- id: z55.string(),
33436
- title: z55.string(),
33437
- sku: z55.string().nullable(),
33438
- priceCents: z55.number(),
33439
- stockQuantity: z55.number().nullable(),
33440
- soldOut: z55.boolean()
33441
- });
33442
- var publicProductSchema = z55.object({
33443
- id: z55.string(),
33444
- contentEntryId: z55.string().nullable(),
33445
- title: z55.string(),
33446
- slug: z55.string(),
33447
- path: z55.string().nullable(),
33448
- status: z55.enum(["draft", "active"]),
33449
- priceCents: z55.number(),
33450
- currency: z55.string(),
33451
- productType: z55.enum(["physical", "digital"]),
33452
- requiresShipping: z55.boolean(),
33453
- hasVariants: z55.boolean(),
33454
- trackInventory: z55.boolean(),
33455
- soldOut: z55.boolean(),
33456
- category: z55.object({
33457
- id: z55.string(),
33458
- name: z55.string(),
33459
- slug: z55.string()
33740
+ import { z as z56 } from "zod";
33741
+ var publicProductVariantSchema = z56.object({
33742
+ id: z56.string(),
33743
+ title: z56.string(),
33744
+ sku: z56.string().nullable(),
33745
+ priceCents: z56.number(),
33746
+ stockQuantity: z56.number().nullable(),
33747
+ soldOut: z56.boolean()
33748
+ });
33749
+ var publicProductSchema = z56.object({
33750
+ id: z56.string(),
33751
+ contentEntryId: z56.string().nullable(),
33752
+ title: z56.string(),
33753
+ slug: z56.string(),
33754
+ path: z56.string().nullable(),
33755
+ status: z56.enum(["draft", "active"]),
33756
+ priceCents: z56.number(),
33757
+ currency: z56.string(),
33758
+ productType: z56.enum(["physical", "digital"]),
33759
+ requiresShipping: z56.boolean(),
33760
+ hasVariants: z56.boolean(),
33761
+ trackInventory: z56.boolean(),
33762
+ soldOut: z56.boolean(),
33763
+ category: z56.object({
33764
+ id: z56.string(),
33765
+ name: z56.string(),
33766
+ slug: z56.string()
33460
33767
  }).nullable(),
33461
- summary: z55.string().nullable(),
33462
- body: z55.unknown().nullable(),
33463
- gallery: z55.array(
33464
- z55.object({
33465
- url: z55.string(),
33466
- alt: z55.string().nullable()
33768
+ summary: z56.string().nullable(),
33769
+ body: z56.unknown().nullable(),
33770
+ gallery: z56.array(
33771
+ z56.object({
33772
+ url: z56.string(),
33773
+ alt: z56.string().nullable()
33467
33774
  })
33468
33775
  ),
33469
- variants: z55.array(publicProductVariantSchema)
33776
+ variants: z56.array(publicProductVariantSchema)
33470
33777
  });
33471
- var publicProductsResponseSchema = z55.object({
33472
- products: z55.array(publicProductSchema)
33778
+ var publicProductsResponseSchema = z56.object({
33779
+ products: z56.array(publicProductSchema)
33473
33780
  });
33474
33781
 
33475
33782
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33533,27 +33840,27 @@ function deriveCreditProductLabels(products, options = {}) {
33533
33840
  }
33534
33841
 
33535
33842
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33536
- import { z as z56 } from "zod";
33537
- var storedProductCartItemSchema = z56.object({
33538
- kind: z56.literal("product"),
33539
- productId: z56.string().min(1),
33540
- productCategoryId: z56.string().min(1).optional().nullable(),
33541
- variantId: z56.string().min(1).optional().nullable(),
33542
- title: z56.string().min(1),
33543
- variantTitle: z56.string().optional().nullable(),
33544
- quantity: z56.number().finite(),
33545
- unitPriceCents: z56.number().finite(),
33546
- currency: z56.string().min(1),
33547
- imageUrl: z56.string().optional().nullable(),
33548
- soldOut: z56.boolean().optional()
33549
- });
33550
- var storedPassCartItemSchema = z56.object({
33551
- kind: z56.literal("pass"),
33552
- passId: z56.string().min(1),
33553
- title: z56.string().min(1),
33554
- quantity: z56.number().finite().optional(),
33555
- unitPriceCents: z56.number().finite(),
33556
- currency: z56.string().min(1)
33843
+ import { z as z57 } from "zod";
33844
+ var storedProductCartItemSchema = z57.object({
33845
+ kind: z57.literal("product"),
33846
+ productId: z57.string().min(1),
33847
+ productCategoryId: z57.string().min(1).optional().nullable(),
33848
+ variantId: z57.string().min(1).optional().nullable(),
33849
+ title: z57.string().min(1),
33850
+ variantTitle: z57.string().optional().nullable(),
33851
+ quantity: z57.number().finite(),
33852
+ unitPriceCents: z57.number().finite(),
33853
+ currency: z57.string().min(1),
33854
+ imageUrl: z57.string().optional().nullable(),
33855
+ soldOut: z57.boolean().optional()
33856
+ });
33857
+ var storedPassCartItemSchema = z57.object({
33858
+ kind: z57.literal("pass"),
33859
+ passId: z57.string().min(1),
33860
+ title: z57.string().min(1),
33861
+ quantity: z57.number().finite().optional(),
33862
+ unitPriceCents: z57.number().finite(),
33863
+ currency: z57.string().min(1)
33557
33864
  });
33558
33865
  function deriveCommerceCheckoutState(state) {
33559
33866
  if (state.items.length === 0) {
@@ -33787,214 +34094,214 @@ function formatValidity(days) {
33787
34094
  }
33788
34095
 
33789
34096
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33790
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33791
- var contentEntrySchema3 = z57.object({
33792
- id: z57.string().nullable().optional(),
33793
- slug: z57.string().nullable().optional()
34097
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
34098
+ var contentEntrySchema3 = z58.object({
34099
+ id: z58.string().nullable().optional(),
34100
+ slug: z58.string().nullable().optional()
33794
34101
  }).nullable();
33795
- var shopSourceSchema = z57.object({
33796
- className: z57.string().nullable().optional(),
34102
+ var shopSourceSchema = z58.object({
34103
+ className: z58.string().nullable().optional(),
33797
34104
  mode: shopModeSchema.optional(),
33798
- heading: z57.string().nullable().optional(),
33799
- productSlug: z57.string().nullable().optional(),
33800
- showPasses: z57.boolean().optional(),
33801
- showMemberships: z57.boolean().optional(),
33802
- layout: z57.enum(["grid", "list"]).optional(),
33803
- columns: z57.string().optional(),
33804
- showDescriptions: z57.boolean().optional(),
33805
- showSummary: z57.boolean().optional(),
33806
- showBody: z57.boolean().optional(),
33807
- showPrices: z57.boolean().optional(),
33808
- showValidityPeriod: z57.boolean().optional(),
33809
- showPricePerCredit: z57.boolean().nullable().optional(),
33810
- passesHeading: z57.string().optional(),
33811
- membershipsHeading: z57.string().optional(),
33812
- buyButtonText: z57.string().optional(),
33813
- addButtonText: z57.string().optional(),
33814
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33815
- subscribeButtonText: z57.string().optional(),
33816
- emptyStateText: z57.string().optional(),
33817
- checkoutButtonText: z57.string().optional(),
33818
- clearButtonText: z57.string().optional(),
33819
- submitButtonText: z57.string().optional(),
34105
+ heading: z58.string().nullable().optional(),
34106
+ productSlug: z58.string().nullable().optional(),
34107
+ showPasses: z58.boolean().optional(),
34108
+ showMemberships: z58.boolean().optional(),
34109
+ layout: z58.enum(["grid", "list"]).optional(),
34110
+ columns: z58.string().optional(),
34111
+ showDescriptions: z58.boolean().optional(),
34112
+ showSummary: z58.boolean().optional(),
34113
+ showBody: z58.boolean().optional(),
34114
+ showPrices: z58.boolean().optional(),
34115
+ showValidityPeriod: z58.boolean().optional(),
34116
+ showPricePerCredit: z58.boolean().nullable().optional(),
34117
+ passesHeading: z58.string().optional(),
34118
+ membershipsHeading: z58.string().optional(),
34119
+ buyButtonText: z58.string().optional(),
34120
+ addButtonText: z58.string().optional(),
34121
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
34122
+ subscribeButtonText: z58.string().optional(),
34123
+ emptyStateText: z58.string().optional(),
34124
+ checkoutButtonText: z58.string().optional(),
34125
+ clearButtonText: z58.string().optional(),
34126
+ submitButtonText: z58.string().optional(),
33820
34127
  contentEntry: contentEntrySchema3.optional(),
33821
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33822
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33823
- products: z57.array(publicProductSchema).nullable().optional(),
33824
- siteId: z57.string().optional(),
33825
- apiBaseUrl: z57.string().optional(),
34128
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
34129
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
34130
+ products: z58.array(publicProductSchema).nullable().optional(),
34131
+ siteId: z58.string().optional(),
34132
+ apiBaseUrl: z58.string().optional(),
33826
34133
  stage: previewStageSchema.optional()
33827
34134
  });
33828
- var productVariantOptionDisplaySchema = z57.object({
33829
- id: z57.string(),
33830
- label: z57.string(),
33831
- soldOut: z57.boolean()
33832
- });
33833
- var productCardDisplaySchema = z57.object({
33834
- productId: z57.string(),
33835
- title: z57.string(),
33836
- path: z57.string().nullable(),
33837
- summary: z57.string().nullable(),
33838
- priceLabel: z57.string().nullable(),
33839
- image: z57.object({
33840
- url: z57.string(),
33841
- alt: z57.string().nullable()
34135
+ var productVariantOptionDisplaySchema = z58.object({
34136
+ id: z58.string(),
34137
+ label: z58.string(),
34138
+ soldOut: z58.boolean()
34139
+ });
34140
+ var productCardDisplaySchema = z58.object({
34141
+ productId: z58.string(),
34142
+ title: z58.string(),
34143
+ path: z58.string().nullable(),
34144
+ summary: z58.string().nullable(),
34145
+ priceLabel: z58.string().nullable(),
34146
+ image: z58.object({
34147
+ url: z58.string(),
34148
+ alt: z58.string().nullable()
33842
34149
  }).nullable(),
33843
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33844
- selectedVariantId: z57.string().nullable(),
33845
- selectionLabel: z57.string(),
33846
- actionLabel: z57.string(),
33847
- soldOut: z57.boolean()
33848
- });
33849
- var productListDisplaySchema = z57.object({
33850
- kind: z57.literal("product-list"),
33851
- state: z57.enum(["empty", "ready"]),
33852
- heading: z57.string().nullable(),
33853
- className: z57.string().nullable(),
33854
- layout: z57.enum(["grid", "list"]),
33855
- columns: z57.string(),
33856
- emptyMessage: z57.string(),
33857
- cards: z57.array(productCardDisplaySchema)
33858
- });
33859
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33860
- z57.object({
33861
- kind: z57.literal("product-detail"),
33862
- state: z57.literal("empty"),
33863
- heading: z57.string().nullable(),
33864
- className: z57.string().nullable(),
33865
- emptyMessage: z57.string()
34150
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34151
+ selectedVariantId: z58.string().nullable(),
34152
+ selectionLabel: z58.string(),
34153
+ actionLabel: z58.string(),
34154
+ soldOut: z58.boolean()
34155
+ });
34156
+ var productListDisplaySchema = z58.object({
34157
+ kind: z58.literal("product-list"),
34158
+ state: z58.enum(["empty", "ready"]),
34159
+ heading: z58.string().nullable(),
34160
+ className: z58.string().nullable(),
34161
+ layout: z58.enum(["grid", "list"]),
34162
+ columns: z58.string(),
34163
+ emptyMessage: z58.string(),
34164
+ cards: z58.array(productCardDisplaySchema)
34165
+ });
34166
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
34167
+ z58.object({
34168
+ kind: z58.literal("product-detail"),
34169
+ state: z58.literal("empty"),
34170
+ heading: z58.string().nullable(),
34171
+ className: z58.string().nullable(),
34172
+ emptyMessage: z58.string()
33866
34173
  }),
33867
- z57.object({
33868
- kind: z57.literal("product-detail"),
33869
- state: z57.literal("ready"),
33870
- heading: z57.string().nullable(),
33871
- className: z57.string().nullable(),
33872
- title: z57.string(),
33873
- priceLabel: z57.string(),
33874
- summary: z57.string().nullable(),
33875
- categoryLabel: z57.string().nullable(),
33876
- gallery: z57.array(z57.object({
33877
- url: z57.string(),
33878
- alt: z57.string().nullable()
34174
+ z58.object({
34175
+ kind: z58.literal("product-detail"),
34176
+ state: z58.literal("ready"),
34177
+ heading: z58.string().nullable(),
34178
+ className: z58.string().nullable(),
34179
+ title: z58.string(),
34180
+ priceLabel: z58.string(),
34181
+ summary: z58.string().nullable(),
34182
+ categoryLabel: z58.string().nullable(),
34183
+ gallery: z58.array(z58.object({
34184
+ url: z58.string(),
34185
+ alt: z58.string().nullable()
33879
34186
  })),
33880
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33881
- selectedVariantId: z57.string().nullable(),
33882
- selectionLabel: z57.string(),
33883
- actionLabel: z57.string(),
33884
- soldOut: z57.boolean(),
33885
- body: z57.unknown().nullable()
34187
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34188
+ selectedVariantId: z58.string().nullable(),
34189
+ selectionLabel: z58.string(),
34190
+ actionLabel: z58.string(),
34191
+ soldOut: z58.boolean(),
34192
+ body: z58.unknown().nullable()
33886
34193
  })
33887
34194
  ]);
33888
- var passCardDisplaySchema = z57.object({
33889
- id: z57.string(),
33890
- title: z57.string(),
33891
- description: z57.string().nullable(),
33892
- priceLabel: z57.string(),
33893
- creditsLabel: z57.string(),
33894
- perCreditLabel: z57.string().nullable(),
33895
- validityLabel: z57.string().nullable(),
33896
- actionLabel: z57.string()
33897
- });
33898
- var membershipCardDisplaySchema = z57.object({
33899
- id: z57.string(),
33900
- title: z57.string(),
33901
- description: z57.string().nullable(),
33902
- priceLabel: z57.string(),
33903
- intervalLabel: z57.string(),
33904
- actionLabel: z57.string()
33905
- });
33906
- var passesMembershipsDisplaySchema = z57.object({
33907
- kind: z57.literal("passes-memberships"),
33908
- state: z57.enum(["empty", "ready"]),
33909
- className: z57.string().nullable(),
33910
- layout: z57.enum(["grid", "list"]),
33911
- columns: z57.string(),
33912
- emptyMessage: z57.string(),
33913
- passesHeading: z57.string(),
33914
- membershipsHeading: z57.string(),
33915
- passes: z57.array(passCardDisplaySchema),
33916
- memberships: z57.array(membershipCardDisplaySchema)
33917
- });
33918
- var cartLineDisplaySchema = z57.object({
33919
- key: z57.string(),
33920
- title: z57.string(),
33921
- priceLabel: z57.string(),
33922
- quantity: z57.number(),
33923
- quantityEditable: z57.boolean()
33924
- });
33925
- var cartDisplaySchema = z57.object({
33926
- kind: z57.literal("cart"),
33927
- state: z57.enum(["empty", "ready"]),
33928
- heading: z57.string().nullable(),
33929
- className: z57.string().nullable(),
33930
- emptyMessage: z57.string(),
33931
- supportText: z57.string().nullable(),
33932
- items: z57.array(cartLineDisplaySchema),
33933
- subtotalLabel: z57.string().nullable(),
33934
- checkoutButtonText: z57.string(),
33935
- clearButtonText: z57.string()
33936
- });
33937
- var checkoutDisplaySchema = z57.object({
33938
- kind: z57.literal("checkout"),
33939
- state: z57.enum(["empty", "blocked", "ready"]),
33940
- heading: z57.string().nullable(),
33941
- className: z57.string().nullable(),
33942
- message: z57.string().nullable(),
33943
- submitButtonText: z57.string()
33944
- });
33945
- var passesMembershipsHydrationSchema = z57.object({
33946
- passes: z57.array(publicPassProductSchema),
33947
- memberships: z57.array(publicMembershipProductSchema),
33948
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33949
- });
33950
- var productListHydrationSchema = z57.object({
33951
- products: z57.array(publicProductSchema),
33952
- showSummary: z57.boolean(),
33953
- showPrices: z57.boolean(),
33954
- addButtonText: z57.string()
33955
- });
33956
- var productDetailHydrationSchema = z57.object({
33957
- products: z57.array(publicProductSchema),
33958
- productId: z57.string().nullable(),
33959
- showSummary: z57.boolean(),
33960
- showBody: z57.boolean(),
33961
- addButtonText: z57.string()
33962
- });
33963
- var cartHydrationSchema = z57.object({
33964
- emptyStateText: z57.string(),
33965
- checkoutButtonText: z57.string(),
33966
- clearButtonText: z57.string()
33967
- });
33968
- var checkoutHydrationSchema = z57.object({
33969
- emptyStateText: z57.string(),
33970
- submitButtonText: z57.string()
33971
- });
33972
- var passesMembershipsRenderSchema = z57.object({
34195
+ var passCardDisplaySchema = z58.object({
34196
+ id: z58.string(),
34197
+ title: z58.string(),
34198
+ description: z58.string().nullable(),
34199
+ priceLabel: z58.string(),
34200
+ creditsLabel: z58.string(),
34201
+ perCreditLabel: z58.string().nullable(),
34202
+ validityLabel: z58.string().nullable(),
34203
+ actionLabel: z58.string()
34204
+ });
34205
+ var membershipCardDisplaySchema = z58.object({
34206
+ id: z58.string(),
34207
+ title: z58.string(),
34208
+ description: z58.string().nullable(),
34209
+ priceLabel: z58.string(),
34210
+ intervalLabel: z58.string(),
34211
+ actionLabel: z58.string()
34212
+ });
34213
+ var passesMembershipsDisplaySchema = z58.object({
34214
+ kind: z58.literal("passes-memberships"),
34215
+ state: z58.enum(["empty", "ready"]),
34216
+ className: z58.string().nullable(),
34217
+ layout: z58.enum(["grid", "list"]),
34218
+ columns: z58.string(),
34219
+ emptyMessage: z58.string(),
34220
+ passesHeading: z58.string(),
34221
+ membershipsHeading: z58.string(),
34222
+ passes: z58.array(passCardDisplaySchema),
34223
+ memberships: z58.array(membershipCardDisplaySchema)
34224
+ });
34225
+ var cartLineDisplaySchema = z58.object({
34226
+ key: z58.string(),
34227
+ title: z58.string(),
34228
+ priceLabel: z58.string(),
34229
+ quantity: z58.number(),
34230
+ quantityEditable: z58.boolean()
34231
+ });
34232
+ var cartDisplaySchema = z58.object({
34233
+ kind: z58.literal("cart"),
34234
+ state: z58.enum(["empty", "ready"]),
34235
+ heading: z58.string().nullable(),
34236
+ className: z58.string().nullable(),
34237
+ emptyMessage: z58.string(),
34238
+ supportText: z58.string().nullable(),
34239
+ items: z58.array(cartLineDisplaySchema),
34240
+ subtotalLabel: z58.string().nullable(),
34241
+ checkoutButtonText: z58.string(),
34242
+ clearButtonText: z58.string()
34243
+ });
34244
+ var checkoutDisplaySchema = z58.object({
34245
+ kind: z58.literal("checkout"),
34246
+ state: z58.enum(["empty", "blocked", "ready"]),
34247
+ heading: z58.string().nullable(),
34248
+ className: z58.string().nullable(),
34249
+ message: z58.string().nullable(),
34250
+ submitButtonText: z58.string()
34251
+ });
34252
+ var passesMembershipsHydrationSchema = z58.object({
34253
+ passes: z58.array(publicPassProductSchema),
34254
+ memberships: z58.array(publicMembershipProductSchema),
34255
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
34256
+ });
34257
+ var productListHydrationSchema = z58.object({
34258
+ products: z58.array(publicProductSchema),
34259
+ showSummary: z58.boolean(),
34260
+ showPrices: z58.boolean(),
34261
+ addButtonText: z58.string()
34262
+ });
34263
+ var productDetailHydrationSchema = z58.object({
34264
+ products: z58.array(publicProductSchema),
34265
+ productId: z58.string().nullable(),
34266
+ showSummary: z58.boolean(),
34267
+ showBody: z58.boolean(),
34268
+ addButtonText: z58.string()
34269
+ });
34270
+ var cartHydrationSchema = z58.object({
34271
+ emptyStateText: z58.string(),
34272
+ checkoutButtonText: z58.string(),
34273
+ clearButtonText: z58.string()
34274
+ });
34275
+ var checkoutHydrationSchema = z58.object({
34276
+ emptyStateText: z58.string(),
34277
+ submitButtonText: z58.string()
34278
+ });
34279
+ var passesMembershipsRenderSchema = z58.object({
33973
34280
  display: passesMembershipsDisplaySchema,
33974
34281
  hydration: passesMembershipsHydrationSchema
33975
34282
  });
33976
- var productListRenderSchema = z57.object({
34283
+ var productListRenderSchema = z58.object({
33977
34284
  display: productListDisplaySchema,
33978
34285
  hydration: productListHydrationSchema
33979
34286
  });
33980
- var productDetailRenderSchema = z57.object({
34287
+ var productDetailRenderSchema = z58.object({
33981
34288
  display: productDetailDisplaySchema,
33982
34289
  hydration: productDetailHydrationSchema
33983
34290
  });
33984
- var cartRenderSchema = z57.object({
34291
+ var cartRenderSchema = z58.object({
33985
34292
  display: cartDisplaySchema,
33986
34293
  hydration: cartHydrationSchema
33987
34294
  });
33988
- var checkoutRenderSchema = z57.object({
34295
+ var checkoutRenderSchema = z58.object({
33989
34296
  display: checkoutDisplaySchema,
33990
34297
  hydration: checkoutHydrationSchema
33991
34298
  });
33992
34299
  function resolveShowPricePerCredit(source) {
33993
34300
  return source.showPricePerCredit ?? true;
33994
34301
  }
33995
- var shopIslandMetaCodec = createZodCodec(z57.object({
33996
- siteId: z57.string().optional(),
33997
- apiBaseUrl: z57.string().optional(),
34302
+ var shopIslandMetaCodec = createZodCodec(z58.object({
34303
+ siteId: z58.string().optional(),
34304
+ apiBaseUrl: z58.string().optional(),
33998
34305
  stage: previewStageSchema.optional()
33999
34306
  }));
34000
34307
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34397,7 +34704,7 @@ var shopBlockDefinition = {
34397
34704
  };
34398
34705
 
34399
34706
  // ../blocks/src/system/blocks/product-list.ts
34400
- import { z as z58 } from "zod";
34707
+ import { z as z59 } from "zod";
34401
34708
  var productListManifest = createBlockManifest({
34402
34709
  id: "block.product-list",
34403
34710
  version: "1.0.0",
@@ -34530,7 +34837,7 @@ var productListBlockDefinition = {
34530
34837
  }
34531
34838
  }
34532
34839
  };
34533
- var productListDataSchema = z58.object({
34840
+ var productListDataSchema = z59.object({
34534
34841
  products: publicProductsResponseSchema.optional()
34535
34842
  });
34536
34843
 
@@ -34791,72 +35098,72 @@ var checkoutBlockDefinition = {
34791
35098
  };
34792
35099
 
34793
35100
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34794
- import { z as z59 } from "zod";
34795
- var publicGiftCardOfferSchema = z59.object({
34796
- id: z59.string(),
34797
- kind: z59.literal("gift_card"),
34798
- title: z59.string(),
34799
- description: z59.string().nullable(),
34800
- sortOrder: z59.number().int(),
34801
- giftCard: z59.object({
34802
- fixedDenominations: z59.array(z59.number().int().positive()),
34803
- customAmountEnabled: z59.boolean(),
34804
- customAmountMinCents: z59.number().int().positive(),
34805
- customAmountMaxCents: z59.number().int().positive()
35101
+ import { z as z60 } from "zod";
35102
+ var publicGiftCardOfferSchema = z60.object({
35103
+ id: z60.string(),
35104
+ kind: z60.literal("gift_card"),
35105
+ title: z60.string(),
35106
+ description: z60.string().nullable(),
35107
+ sortOrder: z60.number().int(),
35108
+ giftCard: z60.object({
35109
+ fixedDenominations: z60.array(z60.number().int().positive()),
35110
+ customAmountEnabled: z60.boolean(),
35111
+ customAmountMinCents: z60.number().int().positive(),
35112
+ customAmountMaxCents: z60.number().int().positive()
34806
35113
  }),
34807
- voucher: z59.null()
34808
- });
34809
- var publicVoucherOfferSchema = z59.object({
34810
- id: z59.string(),
34811
- kind: z59.literal("voucher"),
34812
- title: z59.string(),
34813
- description: z59.string().nullable(),
34814
- sortOrder: z59.number().int(),
34815
- giftCard: z59.null(),
34816
- voucher: z59.object({
34817
- purchaseAmountCents: z59.number().int().positive()
35114
+ voucher: z60.null()
35115
+ });
35116
+ var publicVoucherOfferSchema = z60.object({
35117
+ id: z60.string(),
35118
+ kind: z60.literal("voucher"),
35119
+ title: z60.string(),
35120
+ description: z60.string().nullable(),
35121
+ sortOrder: z60.number().int(),
35122
+ giftCard: z60.null(),
35123
+ voucher: z60.object({
35124
+ purchaseAmountCents: z60.number().int().positive()
34818
35125
  })
34819
35126
  });
34820
- var publicGiftingOffersResponseSchema = z59.object({
34821
- currency: z59.string(),
34822
- giftCards: z59.array(publicGiftCardOfferSchema),
34823
- vouchers: z59.array(publicVoucherOfferSchema)
35127
+ var publicGiftingOffersResponseSchema = z60.object({
35128
+ currency: z60.string(),
35129
+ giftCards: z60.array(publicGiftCardOfferSchema),
35130
+ vouchers: z60.array(publicVoucherOfferSchema)
34824
35131
  });
34825
- var giftingSourceSchema = z59.object({
34826
- siteId: z59.string().optional(),
34827
- apiBaseUrl: z59.string().optional(),
35132
+ var giftingSourceSchema = z60.object({
35133
+ siteId: z60.string().optional(),
35134
+ apiBaseUrl: z60.string().optional(),
34828
35135
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34829
- className: z59.string().nullable().optional(),
34830
- heading: z59.string().nullable().optional(),
34831
- intro: z59.string().nullable().optional(),
34832
- giftCardsHeading: z59.string().nullable().optional(),
34833
- vouchersHeading: z59.string().nullable().optional(),
34834
- emptyStateText: z59.string().nullable().optional(),
34835
- checkoutButtonText: z59.string().nullable().optional(),
34836
- successMessage: z59.string().nullable().optional()
34837
- });
34838
- var giftingDisplaySchema = z59.object({
34839
- kind: z59.literal("gifting"),
34840
- state: z59.literal("ready"),
34841
- className: z59.string().nullable(),
34842
- heading: z59.string(),
34843
- intro: z59.string().nullable(),
34844
- giftCardsHeading: z59.string(),
34845
- vouchersHeading: z59.string(),
34846
- emptyStateText: z59.string()
34847
- });
34848
- var giftingHydrationSchema = z59.object({
35136
+ className: z60.string().nullable().optional(),
35137
+ heading: z60.string().nullable().optional(),
35138
+ intro: z60.string().nullable().optional(),
35139
+ giftCardsHeading: z60.string().nullable().optional(),
35140
+ vouchersHeading: z60.string().nullable().optional(),
35141
+ emptyStateText: z60.string().nullable().optional(),
35142
+ checkoutButtonText: z60.string().nullable().optional(),
35143
+ successMessage: z60.string().nullable().optional()
35144
+ });
35145
+ var giftingDisplaySchema = z60.object({
35146
+ kind: z60.literal("gifting"),
35147
+ state: z60.literal("ready"),
35148
+ className: z60.string().nullable(),
35149
+ heading: z60.string(),
35150
+ intro: z60.string().nullable(),
35151
+ giftCardsHeading: z60.string(),
35152
+ vouchersHeading: z60.string(),
35153
+ emptyStateText: z60.string()
35154
+ });
35155
+ var giftingHydrationSchema = z60.object({
34849
35156
  offers: publicGiftingOffersResponseSchema.nullable(),
34850
- checkoutButtonText: z59.string(),
34851
- successMessage: z59.string()
35157
+ checkoutButtonText: z60.string(),
35158
+ successMessage: z60.string()
34852
35159
  });
34853
- var giftingRenderSchema = z59.object({
35160
+ var giftingRenderSchema = z60.object({
34854
35161
  display: giftingDisplaySchema,
34855
35162
  hydration: giftingHydrationSchema
34856
35163
  });
34857
- var giftingIslandMetaCodec = createZodCodec(z59.object({
34858
- siteId: z59.string().optional(),
34859
- apiBaseUrl: z59.string().optional()
35164
+ var giftingIslandMetaCodec = createZodCodec(z60.object({
35165
+ siteId: z60.string().optional(),
35166
+ apiBaseUrl: z60.string().optional()
34860
35167
  }));
34861
35168
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34862
35169
  "siteId",
@@ -35027,7 +35334,7 @@ var giftingBlockDefinition = {
35027
35334
  };
35028
35335
 
35029
35336
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35030
- import { z as z60 } from "zod";
35337
+ import { z as z61 } from "zod";
35031
35338
 
35032
35339
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
35033
35340
  function parseNewsletterSignupBlockId(value) {
@@ -35134,65 +35441,65 @@ function withOptionalPhone(fields3, includePhone) {
35134
35441
  }
35135
35442
 
35136
35443
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35137
- var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35138
- var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35139
- var newsletterFieldSchema = z60.object({
35140
- id: z60.string(),
35141
- type: z60.enum(["email", "text"]),
35142
- label: z60.string(),
35143
- required: z60.boolean(),
35144
- placeholder: z60.string().optional()
35145
- });
35146
- var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35147
- var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35148
- var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35149
- z60.object({
35150
- tag: z60.literal("block_ref"),
35444
+ var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35445
+ var newsletterDestinationProviderSchema = z61.enum(["riverbank", "mailchimp"]);
35446
+ var newsletterFieldSchema = z61.object({
35447
+ id: z61.string(),
35448
+ type: z61.enum(["email", "text"]),
35449
+ label: z61.string(),
35450
+ required: z61.boolean(),
35451
+ placeholder: z61.string().optional()
35452
+ });
35453
+ var newsletterSignupBlockIdSchema = z61.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35454
+ var signedNewsletterDestinationRefSchema = z61.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35455
+ var newsletterPublicDestinationRefSchema = z61.discriminatedUnion("tag", [
35456
+ z61.object({
35457
+ tag: z61.literal("block_ref"),
35151
35458
  blockId: newsletterSignupBlockIdSchema
35152
35459
  }),
35153
- z60.object({
35154
- tag: z60.literal("signed_destination_ref"),
35460
+ z61.object({
35461
+ tag: z61.literal("signed_destination_ref"),
35155
35462
  token: signedNewsletterDestinationRefSchema
35156
35463
  })
35157
35464
  ]);
35158
- var newsletterSourceSchema = z60.object({
35159
- blockId: z60.string().nullable().optional(),
35160
- siteId: z60.string().optional(),
35161
- apiBaseUrl: z60.string().optional(),
35162
- listId: z60.string().nullable().optional(),
35465
+ var newsletterSourceSchema = z61.object({
35466
+ blockId: z61.string().nullable().optional(),
35467
+ siteId: z61.string().optional(),
35468
+ apiBaseUrl: z61.string().optional(),
35469
+ listId: z61.string().nullable().optional(),
35163
35470
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35164
35471
  preset: newsletterPresetSchema.optional(),
35165
- includePhone: z60.boolean().optional(),
35166
- buttonLabel: z60.string().nullable().optional(),
35167
- successMessage: z60.string().nullable().optional(),
35168
- privacyNote: z60.string().nullable().optional(),
35169
- tags: z60.string().nullable().optional(),
35170
- spamProtectionEnabled: z60.boolean().optional(),
35171
- className: z60.string().nullable().optional()
35172
- });
35173
- var newsletterDisplaySchema = z60.object({
35174
- kind: z60.literal("newsletter-form"),
35175
- className: z60.string().nullable(),
35176
- buttonLabel: z60.string(),
35177
- successMessage: z60.string().nullable(),
35178
- privacyNote: z60.string().nullable(),
35179
- fields: z60.array(newsletterFieldSchema)
35180
- });
35181
- var newsletterHydrationSchema = z60.object({
35472
+ includePhone: z61.boolean().optional(),
35473
+ buttonLabel: z61.string().nullable().optional(),
35474
+ successMessage: z61.string().nullable().optional(),
35475
+ privacyNote: z61.string().nullable().optional(),
35476
+ tags: z61.string().nullable().optional(),
35477
+ spamProtectionEnabled: z61.boolean().optional(),
35478
+ className: z61.string().nullable().optional()
35479
+ });
35480
+ var newsletterDisplaySchema = z61.object({
35481
+ kind: z61.literal("newsletter-form"),
35482
+ className: z61.string().nullable(),
35483
+ buttonLabel: z61.string(),
35484
+ successMessage: z61.string().nullable(),
35485
+ privacyNote: z61.string().nullable(),
35486
+ fields: z61.array(newsletterFieldSchema)
35487
+ });
35488
+ var newsletterHydrationSchema = z61.object({
35182
35489
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35183
- listId: z60.string().nullable().optional(),
35490
+ listId: z61.string().nullable().optional(),
35184
35491
  preset: newsletterPresetSchema,
35185
- includePhone: z60.boolean(),
35186
- tags: z60.string().nullable().optional(),
35187
- spamProtectionEnabled: z60.boolean().optional()
35492
+ includePhone: z61.boolean(),
35493
+ tags: z61.string().nullable().optional(),
35494
+ spamProtectionEnabled: z61.boolean().optional()
35188
35495
  });
35189
- var newsletterRenderSchema = z60.object({
35496
+ var newsletterRenderSchema = z61.object({
35190
35497
  display: newsletterDisplaySchema,
35191
35498
  hydration: newsletterHydrationSchema
35192
35499
  });
35193
- var newsletterIslandMetaCodec = createZodCodec(z60.object({
35194
- siteId: z60.string().optional(),
35195
- apiBaseUrl: z60.string().optional()
35500
+ var newsletterIslandMetaCodec = createZodCodec(z61.object({
35501
+ siteId: z61.string().optional(),
35502
+ apiBaseUrl: z61.string().optional()
35196
35503
  }));
35197
35504
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35198
35505
  function buildNewsletterDisplay(source) {
@@ -35331,23 +35638,23 @@ var newsletterSignupBlockDefinition = {
35331
35638
  };
35332
35639
 
35333
35640
  // ../blocks/src/system/blocks/team-members.ts
35334
- import { z as z61 } from "zod";
35641
+ import { z as z62 } from "zod";
35335
35642
  var ITEM_NAME2 = "member";
35336
35643
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35337
35644
  message: "Team member photos must be image media"
35338
35645
  }).nullable();
35339
- var teamMemberDataSchema = z61.object({
35340
- _type: z61.literal("teamMember"),
35341
- id: z61.string(),
35342
- name: z61.string(),
35343
- role: z61.string().nullable(),
35344
- roleLabel: z61.string().nullable(),
35345
- bio: z61.string().nullable(),
35346
- summary: z61.string().nullable(),
35646
+ var teamMemberDataSchema = z62.object({
35647
+ _type: z62.literal("teamMember"),
35648
+ id: z62.string(),
35649
+ name: z62.string(),
35650
+ role: z62.string().nullable(),
35651
+ roleLabel: z62.string().nullable(),
35652
+ bio: z62.string().nullable(),
35653
+ summary: z62.string().nullable(),
35347
35654
  photo: teamMemberPhotoSchema,
35348
- profilePath: z61.string().nullable()
35655
+ profilePath: z62.string().nullable()
35349
35656
  });
35350
- var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35657
+ var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35351
35658
  var dynamicSourceWhen = { equals: "site_staff" };
35352
35659
  var manualSourceWhen = { equals: "site_staff", not: true };
35353
35660
  var headingNode = text(
@@ -36453,6 +36760,10 @@ var systemBlockDefinitionsRaw = [
36453
36760
  flow: conversionFlow,
36454
36761
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
36455
36762
  })),
36763
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36764
+ flow: offeringsFlow,
36765
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
36766
+ })),
36456
36767
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36457
36768
  flow: conversionFlow,
36458
36769
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -38031,34 +38342,34 @@ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38031
38342
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
38032
38343
 
38033
38344
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
38034
- import { z as z62 } from "zod";
38035
- var themeBridgeConfigSchema = z62.object({
38036
- tokens: z62.record(z62.string(), z62.string()),
38037
- typography: z62.object({
38038
- headingFamily: z62.string().optional(),
38039
- bodyFamily: z62.string().optional(),
38040
- headingWeight: z62.number().optional(),
38041
- bodyWeight: z62.number().optional()
38345
+ import { z as z63 } from "zod";
38346
+ var themeBridgeConfigSchema = z63.object({
38347
+ tokens: z63.record(z63.string(), z63.string()),
38348
+ typography: z63.object({
38349
+ headingFamily: z63.string().optional(),
38350
+ bodyFamily: z63.string().optional(),
38351
+ headingWeight: z63.number().optional(),
38352
+ bodyWeight: z63.number().optional()
38042
38353
  }).optional(),
38043
- spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38044
- corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38045
- shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38046
- components: z62.object({
38047
- buttons: z62.union([
38048
- z62.boolean(),
38049
- z62.object({
38050
- variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
38354
+ spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
38355
+ corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
38356
+ shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
38357
+ components: z63.object({
38358
+ buttons: z63.union([
38359
+ z63.boolean(),
38360
+ z63.object({
38361
+ variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
38051
38362
  })
38052
38363
  ]).optional(),
38053
- cards: z62.union([
38054
- z62.boolean(),
38055
- z62.object({
38056
- variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
38364
+ cards: z63.union([
38365
+ z63.boolean(),
38366
+ z63.object({
38367
+ variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
38057
38368
  })
38058
38369
  ]).optional(),
38059
- inputs: z62.boolean().optional()
38370
+ inputs: z63.boolean().optional()
38060
38371
  }).optional(),
38061
- overrides: z62.record(z62.string(), z62.string()).optional()
38372
+ overrides: z63.record(z63.string(), z63.string()).optional()
38062
38373
  }).passthrough();
38063
38374
 
38064
38375
  // ../theme-core/src/siteChrome.tsx
@@ -38077,24 +38388,25 @@ var SUPPORTED_LOADER_ENDPOINTS = [
38077
38388
  "listPublicPasses",
38078
38389
  "listPublicMemberships",
38079
38390
  "getPublicFormById",
38080
- "getPublicBookingServices"
38391
+ "getPublicBookingServices",
38392
+ "getPublicWeeklySlotAvailability"
38081
38393
  ];
38082
38394
 
38083
38395
  // ../api/src/sdkConfig/contracts.ts
38084
38396
  function unsafeRetypeZodSchema(schema) {
38085
38397
  return schema;
38086
38398
  }
38087
- var navIdListSchema = z63.preprocess((value) => {
38399
+ var navIdListSchema = z64.preprocess((value) => {
38088
38400
  if (!Array.isArray(value)) return void 0;
38089
38401
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
38090
38402
  return filtered.length > 0 ? filtered : void 0;
38091
- }, z63.array(z63.string()).max(200).optional());
38092
- var dashboardNavVisibilityBaseSchema = z63.object({
38093
- mode: z63.enum(["augment", "restrict"]).optional(),
38403
+ }, z64.array(z64.string()).max(200).optional());
38404
+ var dashboardNavVisibilityBaseSchema = z64.object({
38405
+ mode: z64.enum(["augment", "restrict"]).optional(),
38094
38406
  allowIds: navIdListSchema,
38095
38407
  denyIds: navIdListSchema
38096
38408
  }).strip();
38097
- var dashboardNavVisibilityRolesSchema = z63.object({
38409
+ var dashboardNavVisibilityRolesSchema = z64.object({
38098
38410
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38099
38411
  editor: dashboardNavVisibilityBaseSchema.optional(),
38100
38412
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38102,63 +38414,63 @@ var dashboardNavVisibilityRolesSchema = z63.object({
38102
38414
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38103
38415
  roles: dashboardNavVisibilityRolesSchema
38104
38416
  }).strip();
38105
- var dashboardNavigationConfigSchema = z63.object({
38417
+ var dashboardNavigationConfigSchema = z64.object({
38106
38418
  siteNav: dashboardNavVisibilitySchema.optional(),
38107
38419
  settingsNav: dashboardNavVisibilitySchema.optional()
38108
38420
  }).strip();
38109
- var dashboardConfigSchema = z63.object({
38110
- previewEditingEnabled: z63.boolean().optional(),
38421
+ var dashboardConfigSchema = z64.object({
38422
+ previewEditingEnabled: z64.boolean().optional(),
38111
38423
  navigation: dashboardNavigationConfigSchema.optional()
38112
38424
  }).strip();
38113
38425
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38114
38426
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38115
- var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38116
- var loaderFallbackScalarSchema = z63.union([
38117
- z63.string(),
38118
- z63.number(),
38119
- z63.boolean(),
38120
- z63.null()
38427
+ var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
38428
+ var loaderFallbackScalarSchema = z64.union([
38429
+ z64.string(),
38430
+ z64.number(),
38431
+ z64.boolean(),
38432
+ z64.null()
38121
38433
  ]);
38122
- var loaderParamBindingSchema = z63.object({
38123
- $bind: z63.object({
38124
- from: z63.string().min(1, "Binding path is required"),
38434
+ var loaderParamBindingSchema = z64.object({
38435
+ $bind: z64.object({
38436
+ from: z64.string().min(1, "Binding path is required"),
38125
38437
  fallback: loaderFallbackScalarSchema.optional()
38126
38438
  })
38127
38439
  });
38128
- var loaderParamValueSchema = z63.union([
38129
- z63.string(),
38130
- z63.number(),
38131
- z63.boolean(),
38440
+ var loaderParamValueSchema = z64.union([
38441
+ z64.string(),
38442
+ z64.number(),
38443
+ z64.boolean(),
38132
38444
  loaderParamBindingSchema
38133
38445
  ]);
38134
- var sdkConfigLoaderSchema = z63.object({
38446
+ var sdkConfigLoaderSchema = z64.object({
38135
38447
  endpoint: sdkLoaderEndpointSchema,
38136
- params: z63.record(z63.string(), loaderParamValueSchema),
38137
- mode: z63.enum(["server", "client"]).default("server")
38448
+ params: z64.record(z64.string(), loaderParamValueSchema),
38449
+ mode: z64.enum(["server", "client"]).default("server")
38138
38450
  });
38139
- var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38140
- var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38451
+ var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38452
+ var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38141
38453
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38142
38454
  }).transform((value) => value);
38143
- var sdkCustomBlockInputSchema = z63.object({
38455
+ var sdkCustomBlockInputSchema = z64.object({
38144
38456
  id: sdkCustomBlockIdSchema,
38145
- title: z63.string().min(1),
38146
- titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38147
- description: z63.string().optional(),
38457
+ title: z64.string().min(1),
38458
+ titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
38459
+ description: z64.string().optional(),
38148
38460
  category: blockCategoryEnum,
38149
- icon: z63.string().optional(),
38150
- tags: z63.array(z63.string()).optional(),
38461
+ icon: z64.string().optional(),
38462
+ tags: z64.array(z64.string()).optional(),
38151
38463
  fields: fieldDefinitionInputSchema.array().min(1),
38152
38464
  dataLoaders: sdkDataLoadersSchema,
38153
38465
  layout: NodeSchema.optional(),
38154
- variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38155
- defaultVariant: z63.string().min(1).optional(),
38156
- variantOptions: z63.record(
38157
- z63.string().min(1),
38158
- z63.object({
38159
- label: z63.string().min(1).optional(),
38160
- description: z63.string().min(1).optional(),
38161
- icon: z63.string().min(1).optional()
38466
+ variants: z64.record(z64.string().min(1), NodeSchema).optional(),
38467
+ defaultVariant: z64.string().min(1).optional(),
38468
+ variantOptions: z64.record(
38469
+ z64.string().min(1),
38470
+ z64.object({
38471
+ label: z64.string().min(1).optional(),
38472
+ description: z64.string().min(1).optional(),
38473
+ icon: z64.string().min(1).optional()
38162
38474
  })
38163
38475
  ).optional(),
38164
38476
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38169,7 +38481,7 @@ var sdkCustomBlockInputSchema = z63.object({
38169
38481
  const exists = data.fields.some((field) => field.id === source);
38170
38482
  if (!exists) {
38171
38483
  ctx.addIssue({
38172
- code: z63.ZodIssueCode.custom,
38484
+ code: z64.ZodIssueCode.custom,
38173
38485
  message: `titleSource must reference a valid field ID (got "${source}")`,
38174
38486
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38175
38487
  });
@@ -38178,7 +38490,7 @@ var sdkCustomBlockInputSchema = z63.object({
38178
38490
  }
38179
38491
  if (data.layout && data.variants) {
38180
38492
  ctx.addIssue({
38181
- code: z63.ZodIssueCode.custom,
38493
+ code: z64.ZodIssueCode.custom,
38182
38494
  message: "Custom block must define either `layout` or `variants`, not both",
38183
38495
  path: ["variants"]
38184
38496
  });
@@ -38187,14 +38499,14 @@ var sdkCustomBlockInputSchema = z63.object({
38187
38499
  const keys = Object.keys(data.variants);
38188
38500
  if (keys.length === 0) {
38189
38501
  ctx.addIssue({
38190
- code: z63.ZodIssueCode.custom,
38502
+ code: z64.ZodIssueCode.custom,
38191
38503
  message: "`variants` must contain at least one variant key",
38192
38504
  path: ["variants"]
38193
38505
  });
38194
38506
  }
38195
38507
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38196
38508
  ctx.addIssue({
38197
- code: z63.ZodIssueCode.custom,
38509
+ code: z64.ZodIssueCode.custom,
38198
38510
  message: "`defaultVariant` must be a key present in `variants`",
38199
38511
  path: ["defaultVariant"]
38200
38512
  });
@@ -38203,7 +38515,7 @@ var sdkCustomBlockInputSchema = z63.object({
38203
38515
  for (const key of Object.keys(data.variantOptions)) {
38204
38516
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38205
38517
  ctx.addIssue({
38206
- code: z63.ZodIssueCode.custom,
38518
+ code: z64.ZodIssueCode.custom,
38207
38519
  message: "`variantOptions` key must exist in `variants`",
38208
38520
  path: ["variantOptions", key]
38209
38521
  });
@@ -38212,78 +38524,78 @@ var sdkCustomBlockInputSchema = z63.object({
38212
38524
  }
38213
38525
  }
38214
38526
  });
38215
- var sdkBlockFieldExtensionInputSchema = z63.object({
38527
+ var sdkBlockFieldExtensionInputSchema = z64.object({
38216
38528
  fields: fieldDefinitionInputSchema.array().min(1)
38217
38529
  });
38218
- var sdkBlockFieldExtensionsInputSchema = z63.record(
38219
- z63.string().min(1),
38530
+ var sdkBlockFieldExtensionsInputSchema = z64.record(
38531
+ z64.string().min(1),
38220
38532
  sdkBlockFieldExtensionInputSchema
38221
38533
  );
38222
- var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38223
- var sdkThemeConfigSchema = z63.object({
38534
+ var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
38535
+ var sdkThemeConfigSchema = z64.object({
38224
38536
  palette: sdkThemePaletteSchema
38225
38537
  });
38226
- var sdkSectionBackgroundSchema = z63.object({
38227
- id: z63.string().min(1),
38228
- label: z63.string().min(1),
38229
- token: z63.string().min(1)
38538
+ var sdkSectionBackgroundSchema = z64.object({
38539
+ id: z64.string().min(1),
38540
+ label: z64.string().min(1),
38541
+ token: z64.string().min(1)
38230
38542
  });
38231
- var sdkSectionOptionsConfigSchema = z63.object({
38232
- backgroundColor: z63.boolean().optional(),
38233
- backgroundImage: z63.boolean().optional(),
38234
- backgroundGradient: z63.boolean().optional(),
38235
- spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38236
- textColor: z63.boolean().optional()
38543
+ var sdkSectionOptionsConfigSchema = z64.object({
38544
+ backgroundColor: z64.boolean().optional(),
38545
+ backgroundImage: z64.boolean().optional(),
38546
+ backgroundGradient: z64.boolean().optional(),
38547
+ spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
38548
+ textColor: z64.boolean().optional()
38237
38549
  });
38238
- var sdkContainerOptionsConfigSchema = z63.object({
38239
- maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38240
- alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38550
+ var sdkContainerOptionsConfigSchema = z64.object({
38551
+ maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
38552
+ alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38241
38553
  });
38242
- var sdkSiteStyleConfigSchema = z63.object({
38243
- sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38554
+ var sdkSiteStyleConfigSchema = z64.object({
38555
+ sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38244
38556
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38245
38557
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38246
38558
  });
38247
- var sdkSiteLayoutConfigSchema = z63.object({
38248
- footerBlocks: z63.array(
38249
- z63.object({
38250
- id: z63.string().min(1).optional(),
38251
- kind: z63.string().min(1),
38252
- content: z63.record(z63.string(), z63.unknown()).optional()
38559
+ var sdkSiteLayoutConfigSchema = z64.object({
38560
+ footerBlocks: z64.array(
38561
+ z64.object({
38562
+ id: z64.string().min(1).optional(),
38563
+ kind: z64.string().min(1),
38564
+ content: z64.record(z64.string(), z64.unknown()).optional()
38253
38565
  })
38254
38566
  ).optional()
38255
38567
  });
38256
- var sdkFieldSelectOptionSchema = z63.object({
38257
- value: z63.string(),
38258
- label: z63.string()
38568
+ var sdkFieldSelectOptionSchema = z64.object({
38569
+ value: z64.string(),
38570
+ label: z64.string()
38259
38571
  });
38260
- var sdkBlockFieldConfigSchema = z63.object({
38261
- options: z63.array(sdkFieldSelectOptionSchema).optional()
38572
+ var sdkBlockFieldConfigSchema = z64.object({
38573
+ options: z64.array(sdkFieldSelectOptionSchema).optional()
38262
38574
  });
38263
- var sdkBlockFieldOptionsMapSchema = z63.record(
38264
- z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38575
+ var sdkBlockFieldOptionsMapSchema = z64.record(
38576
+ z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38265
38577
  message: "Block ID must be 'block.*' or 'custom.*' format"
38266
38578
  }),
38267
- z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38579
+ z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38268
38580
  ).optional();
38269
- var sdkContentTypeTemplateConfigSchema = z63.object({
38270
- blocks: z63.array(z63.unknown())
38581
+ var sdkContentTypeTemplateConfigSchema = z64.object({
38582
+ blocks: z64.array(z64.unknown())
38271
38583
  }).passthrough();
38272
- var sdkContentTypeOrderingConfigSchema = z63.object({
38273
- mode: z63.enum(["default", "manual"]).optional()
38584
+ var sdkContentTypeOrderingConfigSchema = z64.object({
38585
+ mode: z64.enum(["default", "manual"]).optional()
38274
38586
  }).optional();
38275
- var sdkContentTypeConfigSchema = z63.object({
38276
- key: z63.string().min(1),
38277
- fields: z63.array(z63.unknown()),
38587
+ var sdkContentTypeConfigSchema = z64.object({
38588
+ key: z64.string().min(1),
38589
+ fields: z64.array(z64.unknown()),
38278
38590
  ordering: sdkContentTypeOrderingConfigSchema,
38279
38591
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38280
38592
  }).passthrough();
38281
- var sdkContentConfigSchema = z63.object({
38282
- contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38283
- pages: z63.array(z63.unknown()).optional(),
38284
- entries: z63.array(z63.unknown()).optional(),
38285
- navigationMenus: z63.array(z63.unknown()).optional(),
38286
- settings: z63.unknown().optional()
38593
+ var sdkContentConfigSchema = z64.object({
38594
+ contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
38595
+ pages: z64.array(z64.unknown()).optional(),
38596
+ entries: z64.array(z64.unknown()).optional(),
38597
+ navigationMenus: z64.array(z64.unknown()).optional(),
38598
+ settings: z64.unknown().optional()
38287
38599
  }).passthrough();
38288
38600
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38289
38601
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38298,62 +38610,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38298
38610
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38299
38611
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38300
38612
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38301
- var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38613
+ var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38302
38614
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38303
38615
  });
38304
- 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 "/"' });
38305
- var sdkWorkflowManualTriggerSchema = z63.object({
38306
- type: z63.literal("manual")
38616
+ 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 "/"' });
38617
+ var sdkWorkflowManualTriggerSchema = z64.object({
38618
+ type: z64.literal("manual")
38307
38619
  }).strict();
38308
- var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38620
+ var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38309
38621
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38310
38622
  });
38311
- var sdkWorkflowFieldChangedConditionSchema = z63.object({
38623
+ var sdkWorkflowFieldChangedConditionSchema = z64.object({
38312
38624
  field: sdkWorkflowTriggerFieldSchema,
38313
- changed: z63.literal(true)
38625
+ changed: z64.literal(true)
38314
38626
  }).strict();
38315
- var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38627
+ var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38316
38628
  field: sdkWorkflowTriggerFieldSchema,
38317
- isEmpty: z63.boolean()
38629
+ isEmpty: z64.boolean()
38318
38630
  }).strict();
38319
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38320
- type: z63.literal("entry.draft.updated"),
38321
- when: z63.array(
38322
- z63.union([
38631
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
38632
+ type: z64.literal("entry.draft.updated"),
38633
+ when: z64.array(
38634
+ z64.union([
38323
38635
  sdkWorkflowFieldChangedConditionSchema,
38324
38636
  sdkWorkflowFieldEmptyConditionSchema
38325
38637
  ])
38326
38638
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38327
38639
  }).strict();
38328
- var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38640
+ var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38329
38641
  sdkWorkflowManualTriggerSchema,
38330
38642
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38331
38643
  ]);
38332
- var sdkWorkflowConfirmationSchema = z63.object({
38333
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38334
- body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38644
+ var sdkWorkflowConfirmationSchema = z64.object({
38645
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38646
+ body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38335
38647
  }).strict();
38336
- var sdkWorkflowConfigSchema = z63.object({
38648
+ var sdkWorkflowConfigSchema = z64.object({
38337
38649
  id: sdkWorkflowIdSchema,
38338
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38339
- description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38340
- contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38650
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38651
+ description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38652
+ contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38341
38653
  endpoint: sdkWorkflowEndpointSchema,
38342
- triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38654
+ triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38343
38655
  confirmation: sdkWorkflowConfirmationSchema.optional()
38344
38656
  }).strict();
38345
- var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38657
+ var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38346
38658
  const ids = workflows.map((workflow) => workflow.id);
38347
38659
  return ids.length === new Set(ids).size;
38348
38660
  }, { message: "Workflow IDs must be unique" }).optional();
38349
- var riverbankSiteConfigInputSchema = z63.object({
38350
- siteId: z63.string().uuid(),
38351
- previewUrl: z63.string().url().optional(),
38352
- liveUrl: z63.string().url().optional(),
38661
+ var riverbankSiteConfigInputSchema = z64.object({
38662
+ siteId: z64.string().uuid(),
38663
+ previewUrl: z64.string().url().optional(),
38664
+ liveUrl: z64.string().url().optional(),
38353
38665
  theme: sdkThemeConfigSchema.optional(),
38354
38666
  styles: sdkSiteStyleConfigSchema.optional(),
38355
38667
  layout: sdkSiteLayoutConfigSchema.optional(),
38356
- customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38668
+ customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38357
38669
  const ids = blocks.map((b) => b.id);
38358
38670
  return ids.length === new Set(ids).size;
38359
38671
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38361,50 +38673,51 @@ var riverbankSiteConfigInputSchema = z63.object({
38361
38673
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38362
38674
  workflows: sdkWorkflowsSchema,
38363
38675
  content: sdkContentConfigSchema.optional(),
38364
- contentDir: z63.string().optional(),
38365
- sync: z63.object({
38366
- existingEntries: z63.enum(["skip", "update"]).optional()
38676
+ contentDir: z64.string().optional(),
38677
+ sync: z64.object({
38678
+ existingEntries: z64.enum(["skip", "update"]).optional()
38367
38679
  }).optional(),
38368
- deploy: z63.object({
38369
- verifyCommand: z63.string().optional(),
38370
- prebuildOutput: z63.string().optional()
38680
+ deploy: z64.object({
38681
+ verifyCommand: z64.string().optional(),
38682
+ prebuildOutput: z64.string().optional()
38371
38683
  }).optional(),
38372
- themeSource: z63.enum(["local", "cms"]).optional(),
38373
- activeTheme: z63.string().optional(),
38374
- enablePortal: z63.boolean().optional(),
38684
+ themeSource: z64.enum(["local", "cms"]).optional(),
38685
+ activeTheme: z64.string().optional(),
38686
+ enablePortal: z64.boolean().optional(),
38375
38687
  dashboard: dashboardConfigSchema.optional()
38376
38688
  }).strict();
38377
- var pushSdkConfigBodySchema = z63.object({
38689
+ var pushSdkConfigBodySchema = z64.object({
38378
38690
  config: riverbankSiteConfigInputSchema,
38379
- forceContentTypes: z63.boolean().optional()
38691
+ forceContentTypes: z64.boolean().optional(),
38692
+ mode: z64.enum(["apply", "preview"]).optional()
38380
38693
  }).strict();
38381
38694
 
38382
38695
  // ../api/src/siteOnboarding.ts
38383
- import { z as z64 } from "zod";
38696
+ import { z as z65 } from "zod";
38384
38697
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38385
38698
  configure_appointments: {
38386
38699
  requirementId: "configure_appointments",
38387
38700
  reason: "launch_anyway"
38388
38701
  }
38389
38702
  };
38390
- var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38703
+ var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38391
38704
  "requirementId",
38392
38705
  [
38393
- z64.object({
38394
- requirementId: z64.literal("review_generated_site")
38706
+ z65.object({
38707
+ requirementId: z65.literal("review_generated_site")
38395
38708
  }),
38396
- z64.object({
38397
- requirementId: z64.literal(
38709
+ z65.object({
38710
+ requirementId: z65.literal(
38398
38711
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38399
38712
  ),
38400
- overrideReason: z64.literal(
38713
+ overrideReason: z65.literal(
38401
38714
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38402
38715
  )
38403
38716
  })
38404
38717
  ]
38405
38718
  );
38406
- var goLiveSiteRequestSchema = z64.object({
38407
- acceptExtraSiteCharge: z64.boolean().optional()
38719
+ var goLiveSiteRequestSchema = z65.object({
38720
+ acceptExtraSiteCharge: z65.boolean().optional()
38408
38721
  });
38409
38722
 
38410
38723
  // ../surfaces/src/index.ts
@@ -38523,7 +38836,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38523
38836
  ];
38524
38837
 
38525
38838
  // ../api/src/bookingVerticals.ts
38526
- import { z as z65 } from "zod";
38839
+ import { z as z66 } from "zod";
38527
38840
  var VERTICAL_IDS = [
38528
38841
  "yoga_wellness",
38529
38842
  "fitness_pt",
@@ -38688,39 +39001,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38688
39001
  }
38689
39002
  return [...issues];
38690
39003
  }
38691
- var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
39004
+ var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38692
39005
  const parsed = parseVerticalId(value);
38693
39006
  if (!parsed) {
38694
39007
  ctx.addIssue({
38695
- code: z65.ZodIssueCode.custom,
39008
+ code: z66.ZodIssueCode.custom,
38696
39009
  message: "Unknown booking vertical"
38697
39010
  });
38698
- return z65.NEVER;
39011
+ return z66.NEVER;
38699
39012
  }
38700
39013
  return parsed;
38701
39014
  });
38702
- var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
39015
+ var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38703
39016
  const parsed = parseVerticalPresetId(value);
38704
39017
  if (!parsed) {
38705
39018
  ctx.addIssue({
38706
- code: z65.ZodIssueCode.custom,
39019
+ code: z66.ZodIssueCode.custom,
38707
39020
  message: "Unknown booking preset"
38708
39021
  });
38709
- return z65.NEVER;
39022
+ return z66.NEVER;
38710
39023
  }
38711
39024
  return parsed;
38712
39025
  });
38713
- var BookingVerticalConfigSchema = z65.object({
39026
+ var BookingVerticalConfigSchema = z66.object({
38714
39027
  verticalId: VerticalIdSchema.nullable(),
38715
- selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
39028
+ selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38716
39029
  }).transform((value, ctx) => {
38717
39030
  const resolved = resolveSiteVerticalBookingConfig(value);
38718
39031
  if (resolved.kind === "invalid") {
38719
39032
  ctx.addIssue({
38720
- code: z65.ZodIssueCode.custom,
39033
+ code: z66.ZodIssueCode.custom,
38721
39034
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38722
39035
  });
38723
- return z65.NEVER;
39036
+ return z66.NEVER;
38724
39037
  }
38725
39038
  return resolved.config;
38726
39039
  });
@@ -38747,51 +39060,51 @@ function isRecord8(value) {
38747
39060
  }
38748
39061
 
38749
39062
  // ../api/src/appointmentSetup.ts
38750
- import { z as z66 } from "zod";
39063
+ import { z as z67 } from "zod";
38751
39064
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38752
- var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
38753
- z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
38754
- z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
39065
+ var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
39066
+ z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
39067
+ z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38755
39068
  ]);
38756
- var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
38757
- z66.object({ kind: z66.literal("none") }),
38758
- z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
38759
- z66.object({
38760
- kind: z66.literal("create"),
38761
- draftId: z66.string().min(1),
38762
- title: z66.string().trim().min(1),
38763
- description: z66.string().nullable(),
38764
- timezone: z66.string().trim().min(1).nullable(),
38765
- addressJson: z66.record(z66.string(), z66.unknown()),
38766
- locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
39069
+ var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
39070
+ z67.object({ kind: z67.literal("none") }),
39071
+ z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
39072
+ z67.object({
39073
+ kind: z67.literal("create"),
39074
+ draftId: z67.string().min(1),
39075
+ title: z67.string().trim().min(1),
39076
+ description: z67.string().nullable(),
39077
+ timezone: z67.string().trim().min(1).nullable(),
39078
+ addressJson: z67.record(z67.string(), z67.unknown()),
39079
+ locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38767
39080
  })
38768
39081
  ]);
38769
- var appointmentSetupPaymentDraftSchema = z66.object({
38770
- priceType: z66.union([z66.literal("free"), z66.literal("paid")])
38771
- });
38772
- var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
38773
- z66.object({ kind: z66.literal("all_practitioners") }),
38774
- z66.object({
38775
- kind: z66.literal("selected_practitioners"),
38776
- resourceRefs: z66.array(appointmentSetupRefSchema)
39082
+ var appointmentSetupPaymentDraftSchema = z67.object({
39083
+ priceType: z67.union([z67.literal("free"), z67.literal("paid")])
39084
+ });
39085
+ var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
39086
+ z67.object({ kind: z67.literal("all_practitioners") }),
39087
+ z67.object({
39088
+ kind: z67.literal("selected_practitioners"),
39089
+ resourceRefs: z67.array(appointmentSetupRefSchema)
38777
39090
  })
38778
39091
  ]);
38779
- var appointmentSetupServiceDraftSchema = z66.object({
39092
+ var appointmentSetupServiceDraftSchema = z67.object({
38780
39093
  ref: appointmentSetupRefSchema,
38781
- title: z66.string().trim().min(1),
38782
- description: z66.string().nullable(),
38783
- durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38784
- prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38785
- cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38786
- priceAmount: z66.number().int().nonnegative().nullable(),
38787
- isActive: z66.boolean(),
38788
- locationType: z66.union([
38789
- z66.literal("virtual"),
38790
- z66.literal("in_person"),
38791
- z66.literal("hybrid")
39094
+ title: z67.string().trim().min(1),
39095
+ description: z67.string().nullable(),
39096
+ durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39097
+ prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39098
+ cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39099
+ priceAmount: z67.number().int().nonnegative().nullable(),
39100
+ isActive: z67.boolean(),
39101
+ locationType: z67.union([
39102
+ z67.literal("virtual"),
39103
+ z67.literal("in_person"),
39104
+ z67.literal("hybrid")
38792
39105
  ]),
38793
39106
  venue: appointmentSetupVenueChoiceSchema,
38794
- timezone: z66.string().trim().min(1).nullable(),
39107
+ timezone: z67.string().trim().min(1).nullable(),
38795
39108
  payment: appointmentSetupPaymentDraftSchema,
38796
39109
  assignment: appointmentSetupServiceAssignmentDraftSchema
38797
39110
  }).superRefine((service, ctx) => {
@@ -38810,49 +39123,49 @@ var appointmentSetupServiceDraftSchema = z66.object({
38810
39123
  });
38811
39124
  }
38812
39125
  });
38813
- var appointmentSetupPractitionerDraftSchema = z66.object({
39126
+ var appointmentSetupPractitionerDraftSchema = z67.object({
38814
39127
  ref: appointmentSetupRefSchema,
38815
- displayName: z66.string().trim().min(1),
38816
- bio: z66.string().nullable(),
38817
- timezone: z66.string().trim().min(1),
38818
- colorHex: z66.string().nullable()
38819
- });
38820
- var appointmentSetupWeeklyWindowDraftSchema = z66.object({
38821
- weekday: z66.number().int().min(0).max(6),
38822
- startTime: z66.string(),
38823
- endTime: z66.string()
38824
- });
38825
- var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
38826
- z66.object({ kind: z66.literal("automatic_spacing") }),
38827
- z66.object({
38828
- kind: z66.literal("regular_interval"),
38829
- intervalMinutes: z66.union([
38830
- z66.literal(10),
38831
- z66.literal(15),
38832
- z66.literal(20),
38833
- z66.literal(30),
38834
- z66.literal(45),
38835
- z66.literal(60)
39128
+ displayName: z67.string().trim().min(1),
39129
+ bio: z67.string().nullable(),
39130
+ timezone: z67.string().trim().min(1),
39131
+ colorHex: z67.string().nullable()
39132
+ });
39133
+ var appointmentSetupWeeklyWindowDraftSchema = z67.object({
39134
+ weekday: z67.number().int().min(0).max(6),
39135
+ startTime: z67.string(),
39136
+ endTime: z67.string()
39137
+ });
39138
+ var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
39139
+ z67.object({ kind: z67.literal("automatic_spacing") }),
39140
+ z67.object({
39141
+ kind: z67.literal("regular_interval"),
39142
+ intervalMinutes: z67.union([
39143
+ z67.literal(10),
39144
+ z67.literal(15),
39145
+ z67.literal(20),
39146
+ z67.literal(30),
39147
+ z67.literal(45),
39148
+ z67.literal(60)
38836
39149
  ])
38837
39150
  })
38838
39151
  ]);
38839
- var appointmentSetupAvailabilityDraftSchema = z66.object({
38840
- kind: z66.literal("weekly_windows"),
39152
+ var appointmentSetupAvailabilityDraftSchema = z67.object({
39153
+ kind: z67.literal("weekly_windows"),
38841
39154
  resourceRef: appointmentSetupRefSchema,
38842
39155
  serviceRef: appointmentSetupRefSchema.nullable(),
38843
- windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
39156
+ windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38844
39157
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38845
39158
  });
38846
39159
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38847
39160
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38848
- var appointmentSetupBookingNoticeSchema = z66.object({
38849
- minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38850
- maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38851
- });
38852
- var applyAppointmentSetupRequestSchema = z66.object({
38853
- services: z66.array(appointmentSetupServiceDraftSchema),
38854
- practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
38855
- availability: z66.array(appointmentSetupAvailabilityDraftSchema),
39161
+ var appointmentSetupBookingNoticeSchema = z67.object({
39162
+ minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39163
+ maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39164
+ });
39165
+ var applyAppointmentSetupRequestSchema = z67.object({
39166
+ services: z67.array(appointmentSetupServiceDraftSchema),
39167
+ practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
39168
+ availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38856
39169
  bookingNotice: appointmentSetupBookingNoticeSchema
38857
39170
  });
38858
39171
 
@@ -38885,24 +39198,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38885
39198
  ];
38886
39199
 
38887
39200
  // ../api/src/siteBanner.ts
38888
- import { z as z67 } from "zod";
39201
+ import { z as z68 } from "zod";
38889
39202
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38890
39203
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38891
39204
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38892
39205
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38893
- var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
38894
- var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
38895
- var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
38896
- var siteBannerCtaSchema = z67.object({
38897
- label: z67.string().trim().min(1),
39206
+ var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
39207
+ var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
39208
+ var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
39209
+ var siteBannerCtaSchema = z68.object({
39210
+ label: z68.string().trim().min(1),
38898
39211
  link: linkPayloadSchema
38899
39212
  });
38900
- var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38901
- z67.object({
38902
- enabled: z67.literal(false)
39213
+ var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
39214
+ z68.object({
39215
+ enabled: z68.literal(false)
38903
39216
  }),
38904
- z67.object({
38905
- enabled: z67.literal(true),
39217
+ z68.object({
39218
+ enabled: z68.literal(true),
38906
39219
  scope: siteBannerScopeSchema,
38907
39220
  tone: siteBannerToneSchema,
38908
39221
  body: siteBannerBodySchema,
@@ -38916,7 +39229,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38916
39229
  const analysis = analyzeSiteBannerBody(value.body);
38917
39230
  for (const issue of analysis.issues) {
38918
39231
  ctx.addIssue({
38919
- code: z67.ZodIssueCode.custom,
39232
+ code: z68.ZodIssueCode.custom,
38920
39233
  path: ["body"],
38921
39234
  message: siteBannerBodyIssueMessage(issue)
38922
39235
  });
@@ -39223,75 +39536,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39223
39536
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39224
39537
 
39225
39538
  // ../api/src/aiPlayground.ts
39226
- import { z as z68 } from "zod";
39227
- var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39539
+ import { z as z69 } from "zod";
39540
+ var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39228
39541
  // Standard RFC-6902 operations
39229
- z68.object({
39230
- op: z68.literal("add"),
39231
- path: z68.string(),
39232
- value: z68.unknown()
39542
+ z69.object({
39543
+ op: z69.literal("add"),
39544
+ path: z69.string(),
39545
+ value: z69.unknown()
39233
39546
  }),
39234
- z68.object({
39235
- op: z68.literal("remove"),
39236
- path: z68.string()
39547
+ z69.object({
39548
+ op: z69.literal("remove"),
39549
+ path: z69.string()
39237
39550
  }),
39238
- z68.object({
39239
- op: z68.literal("replace"),
39240
- path: z68.string(),
39241
- value: z68.unknown()
39551
+ z69.object({
39552
+ op: z69.literal("replace"),
39553
+ path: z69.string(),
39554
+ value: z69.unknown()
39242
39555
  }),
39243
- z68.object({
39244
- op: z68.literal("move"),
39245
- from: z68.string(),
39246
- path: z68.string()
39556
+ z69.object({
39557
+ op: z69.literal("move"),
39558
+ from: z69.string(),
39559
+ path: z69.string()
39247
39560
  }),
39248
- z68.object({
39249
- op: z68.literal("copy"),
39250
- from: z68.string(),
39251
- path: z68.string()
39561
+ z69.object({
39562
+ op: z69.literal("copy"),
39563
+ from: z69.string(),
39564
+ path: z69.string()
39252
39565
  }),
39253
39566
  // Block-level operations (Phase 2)
39254
- z68.object({
39255
- op: z68.literal("add_block"),
39256
- blockKind: z68.string(),
39257
- afterBlockId: z68.string().nullable(),
39258
- content: z68.record(z68.string(), z68.unknown()),
39259
- rationale: z68.string()
39567
+ z69.object({
39568
+ op: z69.literal("add_block"),
39569
+ blockKind: z69.string(),
39570
+ afterBlockId: z69.string().nullable(),
39571
+ content: z69.record(z69.string(), z69.unknown()),
39572
+ rationale: z69.string()
39260
39573
  }),
39261
- z68.object({
39262
- op: z68.literal("delete_block"),
39263
- blockId: z68.string(),
39264
- rationale: z68.string()
39574
+ z69.object({
39575
+ op: z69.literal("delete_block"),
39576
+ blockId: z69.string(),
39577
+ rationale: z69.string()
39265
39578
  }),
39266
- z68.object({
39267
- op: z68.literal("reorder_block"),
39268
- blockId: z68.string(),
39269
- afterBlockId: z68.string().nullable(),
39270
- rationale: z68.string()
39579
+ z69.object({
39580
+ op: z69.literal("reorder_block"),
39581
+ blockId: z69.string(),
39582
+ afterBlockId: z69.string().nullable(),
39583
+ rationale: z69.string()
39271
39584
  })
39272
39585
  ]);
39273
- var PlaygroundProposeRequest = z68.object({
39274
- request: z68.string().min(1).max(2e3)
39586
+ var PlaygroundProposeRequest = z69.object({
39587
+ request: z69.string().min(1).max(2e3)
39275
39588
  });
39276
- var MultiPagePatchEnvelope = z68.object({
39277
- pageId: z68.string(),
39278
- blockId: z68.string().optional(),
39589
+ var MultiPagePatchEnvelope = z69.object({
39590
+ pageId: z69.string(),
39591
+ blockId: z69.string().optional(),
39279
39592
  // Not present for page-level ops
39280
- blockKind: z68.string().optional(),
39281
- blockPurpose: z68.string().optional().nullable(),
39282
- ops: z68.array(Rfc6902PatchOp),
39283
- rationale: z68.string(),
39284
- currentContent: z68.record(z68.string(), z68.unknown()).optional()
39593
+ blockKind: z69.string().optional(),
39594
+ blockPurpose: z69.string().optional().nullable(),
39595
+ ops: z69.array(Rfc6902PatchOp),
39596
+ rationale: z69.string(),
39597
+ currentContent: z69.record(z69.string(), z69.unknown()).optional()
39285
39598
  });
39286
- var MultiPageUpdateResponse = z68.object({
39287
- patches: z68.array(MultiPagePatchEnvelope),
39288
- assistantMessage: z68.string(),
39289
- pagesModified: z68.number(),
39290
- toolCallsUsed: z68.number()
39599
+ var MultiPageUpdateResponse = z69.object({
39600
+ patches: z69.array(MultiPagePatchEnvelope),
39601
+ assistantMessage: z69.string(),
39602
+ pagesModified: z69.number(),
39603
+ toolCallsUsed: z69.number()
39291
39604
  });
39292
39605
 
39293
39606
  // src/config/content-validation.ts
39294
- import { z as z69 } from "zod";
39607
+ import { z as z70 } from "zod";
39295
39608
 
39296
39609
  // src/types/block-kinds.ts
39297
39610
  var SYSTEM_BLOCK_KINDS = [
@@ -39321,6 +39634,7 @@ var SYSTEM_BLOCK_KINDS = [
39321
39634
  "block.form",
39322
39635
  "block.contact-newsletter",
39323
39636
  "block.appointment-booking",
39637
+ "block.weekly-slot-availability",
39324
39638
  "block.event-registration",
39325
39639
  "block.event-details",
39326
39640
  "block.course-registration",
@@ -39434,49 +39748,53 @@ function isUnsupportedDynamicSegment(segment) {
39434
39748
  return segment.startsWith(":") || segment.includes("{") || segment.includes("}");
39435
39749
  }
39436
39750
 
39437
- // src/contracts/bindings.ts
39751
+ // ../field-primitives/src/bindings/index.ts
39438
39752
  var BINDING_TRANSFORMS = {
39439
39753
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
39440
39754
  DATE_FORMAT_SHORT: "date.formatShort",
39441
- DATE_FORMAT_LONG: "date.formatLong"
39755
+ DATE_FORMAT_LONG: "date.formatLong",
39756
+ TEXT_INLINE_TEXT: "text.inlineText"
39442
39757
  };
39443
39758
  var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
39444
- var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES.join(", ");
39759
+
39760
+ // src/contracts/bindings.ts
39761
+ var BINDING_TRANSFORM_VALUES2 = BINDING_TRANSFORM_VALUES;
39762
+ var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES2.join(", ");
39445
39763
  function describeInvalidBindingTransform(transform) {
39446
39764
  return `Transform "${transform}" is not valid. Allowed: ${BINDING_TRANSFORM_LIST}`;
39447
39765
  }
39448
39766
 
39449
39767
  // src/config/content-validation.ts
39450
- var jsonDataSchema = z69.record(z69.string(), z69.any());
39451
- var contentTypeKeySchema = z69.string().min(1).regex(
39768
+ var jsonDataSchema = z70.record(z70.string(), z70.any());
39769
+ var contentTypeKeySchema = z70.string().min(1).regex(
39452
39770
  /^[a-z][a-z0-9-]*$/,
39453
39771
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39454
39772
  );
39455
- var templateConfigSchemaForward = z69.object({
39456
- blocks: z69.array(
39457
- z69.object({
39458
- identifier: z69.string().min(1),
39459
- kind: z69.string(),
39460
- scope: z69.enum(["entry", "template"]),
39461
- bindings: z69.record(z69.string(), z69.any()).optional(),
39462
- content: z69.record(z69.string(), z69.any()).optional()
39773
+ var templateConfigSchemaForward = z70.object({
39774
+ blocks: z70.array(
39775
+ z70.object({
39776
+ identifier: z70.string().min(1),
39777
+ kind: z70.string(),
39778
+ scope: z70.enum(["entry", "template"]),
39779
+ bindings: z70.record(z70.string(), z70.any()).optional(),
39780
+ content: z70.record(z70.string(), z70.any()).optional()
39463
39781
  })
39464
39782
  )
39465
39783
  }).optional();
39466
- var contentTypeOrderingSchema = z69.object({
39467
- mode: z69.enum(["default", "manual"]).optional()
39784
+ var contentTypeOrderingSchema = z70.object({
39785
+ mode: z70.enum(["default", "manual"]).optional()
39468
39786
  }).optional();
39469
- var contentTypeConfigSchema = z69.object({
39787
+ var contentTypeConfigSchema = z70.object({
39470
39788
  key: contentTypeKeySchema,
39471
- name: z69.string().min(1),
39472
- description: z69.string().optional(),
39473
- hasPages: z69.boolean(),
39474
- routePattern: z69.string().optional(),
39789
+ name: z70.string().min(1),
39790
+ description: z70.string().optional(),
39791
+ hasPages: z70.boolean(),
39792
+ routePattern: z70.string().optional(),
39475
39793
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39476
- fields: z69.array(z69.any()).min(1, "At least one field is required"),
39477
- titleField: z69.string().optional(),
39794
+ fields: z70.array(z70.any()).min(1, "At least one field is required"),
39795
+ titleField: z70.string().optional(),
39478
39796
  ordering: contentTypeOrderingSchema,
39479
- isSingleton: z69.boolean().optional().default(false),
39797
+ isSingleton: z70.boolean().optional().default(false),
39480
39798
  template: templateConfigSchemaForward
39481
39799
  }).refine(
39482
39800
  (data) => {
@@ -39498,7 +39816,7 @@ var contentTypeConfigSchema = z69.object({
39498
39816
  }
39499
39817
  if (!data.routePattern) {
39500
39818
  ctx.addIssue({
39501
- code: z69.ZodIssueCode.custom,
39819
+ code: z70.ZodIssueCode.custom,
39502
39820
  path: ["routePattern"],
39503
39821
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39504
39822
  });
@@ -39507,7 +39825,7 @@ var contentTypeConfigSchema = z69.object({
39507
39825
  const parseResult = safeParseRouteTemplate(data.routePattern);
39508
39826
  if (!parseResult.success) {
39509
39827
  ctx.addIssue({
39510
- code: z69.ZodIssueCode.custom,
39828
+ code: z70.ZodIssueCode.custom,
39511
39829
  path: ["routePattern"],
39512
39830
  message: describeRouteTemplateParseError(parseResult.error)
39513
39831
  });
@@ -39515,44 +39833,44 @@ var contentTypeConfigSchema = z69.object({
39515
39833
  }
39516
39834
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39517
39835
  ctx.addIssue({
39518
- code: z69.ZodIssueCode.custom,
39836
+ code: z70.ZodIssueCode.custom,
39519
39837
  path: ["routePattern"],
39520
39838
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39521
39839
  });
39522
39840
  }
39523
39841
  });
39524
- var fieldBindingSchema = z69.object({
39525
- source: z69.literal("field"),
39526
- path: z69.string().min(1, "Field path is required")
39842
+ var fieldBindingSchema = z70.object({
39843
+ source: z70.literal("field"),
39844
+ path: z70.string().min(1, "Field path is required")
39527
39845
  });
39528
- var metaBindingSchema = z69.object({
39529
- source: z69.literal("meta"),
39530
- path: z69.enum(TEMPLATE_BINDING_META_PATHS, {
39846
+ var metaBindingSchema = z70.object({
39847
+ source: z70.literal("meta"),
39848
+ path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39531
39849
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39532
39850
  })
39533
39851
  });
39534
- var literalBindingSchema = z69.object({
39535
- source: z69.literal("literal"),
39536
- value: z69.unknown()
39852
+ var literalBindingSchema = z70.object({
39853
+ source: z70.literal("literal"),
39854
+ value: z70.unknown()
39537
39855
  });
39538
- var transformBindingSchema = z69.object({
39539
- source: z69.literal("transform"),
39540
- path: z69.string().min(1, "Transform path is required"),
39541
- transform: z69.enum(BINDING_TRANSFORM_VALUES, {
39856
+ var transformBindingSchema = z70.object({
39857
+ source: z70.literal("transform"),
39858
+ path: z70.string().min(1, "Transform path is required"),
39859
+ transform: z70.enum(BINDING_TRANSFORM_VALUES2, {
39542
39860
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39543
39861
  })
39544
39862
  });
39545
- var baseBindingSchema = z69.discriminatedUnion("source", [
39863
+ var baseBindingSchema = z70.discriminatedUnion("source", [
39546
39864
  fieldBindingSchema,
39547
39865
  metaBindingSchema,
39548
39866
  literalBindingSchema,
39549
39867
  transformBindingSchema
39550
39868
  ]);
39551
- var fallbackBindingSchema = z69.object({
39552
- source: z69.literal("fallback"),
39553
- sources: z69.array(z69.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39869
+ var fallbackBindingSchema = z70.object({
39870
+ source: z70.literal("fallback"),
39871
+ sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39554
39872
  });
39555
- var bindingSourceSchema = z69.union([
39873
+ var bindingSourceSchema = z70.union([
39556
39874
  baseBindingSchema,
39557
39875
  fallbackBindingSchema
39558
39876
  ]);
@@ -39566,12 +39884,12 @@ function isValidBlockKind(kind) {
39566
39884
  return false;
39567
39885
  }
39568
39886
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39569
- var blockKindSchema = z69.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39570
- var templateBlockConfigSchema = z69.object({
39571
- identifier: z69.string().min(1, "Block identifier is required"),
39887
+ var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39888
+ var templateBlockConfigSchema = z70.object({
39889
+ identifier: z70.string().min(1, "Block identifier is required"),
39572
39890
  kind: blockKindSchema,
39573
- scope: z69.enum(["entry", "template"]),
39574
- bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
39891
+ scope: z70.enum(["entry", "template"]),
39892
+ bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39575
39893
  content: jsonDataSchema.optional()
39576
39894
  }).refine(
39577
39895
  (data) => {
@@ -39590,8 +39908,8 @@ var templateBlockConfigSchema = z69.object({
39590
39908
  },
39591
39909
  { message: "Template-scoped blocks should define static content, not bindings" }
39592
39910
  );
39593
- var templateConfigSchema = z69.object({
39594
- blocks: z69.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39911
+ var templateConfigSchema = z70.object({
39912
+ blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39595
39913
  }).refine(
39596
39914
  (data) => {
39597
39915
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39600,77 +39918,77 @@ var templateConfigSchema = z69.object({
39600
39918
  },
39601
39919
  { message: "Template block identifiers must be unique" }
39602
39920
  );
39603
- var blockConfigSchema = z69.object({
39921
+ var blockConfigSchema = z70.object({
39604
39922
  kind: blockKindSchema,
39605
39923
  content: jsonDataSchema,
39606
- orderIndex: z69.number().optional()
39607
- });
39608
- var pageConfigSchema = z69.object({
39609
- identifier: z69.string().min(1, "Identifier is required"),
39610
- title: z69.string().min(1, "Title is required"),
39611
- path: z69.string().regex(/^\//, "Path must start with /"),
39612
- purpose: z69.string().default("content"),
39613
- blocks: z69.array(blockConfigSchema).optional(),
39614
- status: z69.enum(["draft", "published"]).default("draft"),
39615
- metaTitle: z69.string().optional(),
39616
- metaDescription: z69.string().optional()
39617
- });
39618
- var entryConfigSchema = z69.object({
39619
- identifier: z69.string().min(1, "Identifier is required"),
39620
- contentType: z69.string().min(1, "Content type is required"),
39924
+ orderIndex: z70.number().optional()
39925
+ });
39926
+ var pageConfigSchema = z70.object({
39927
+ identifier: z70.string().min(1, "Identifier is required"),
39928
+ title: z70.string().min(1, "Title is required"),
39929
+ path: z70.string().regex(/^\//, "Path must start with /"),
39930
+ purpose: z70.string().default("content"),
39931
+ blocks: z70.array(blockConfigSchema).optional(),
39932
+ status: z70.enum(["draft", "published"]).default("draft"),
39933
+ metaTitle: z70.string().optional(),
39934
+ metaDescription: z70.string().optional()
39935
+ });
39936
+ var entryConfigSchema = z70.object({
39937
+ identifier: z70.string().min(1, "Identifier is required"),
39938
+ contentType: z70.string().min(1, "Content type is required"),
39621
39939
  data: jsonDataSchema,
39622
- status: z69.enum(["draft", "published"]).default("draft"),
39623
- slug: z69.string().optional(),
39624
- summary: z69.string().optional(),
39940
+ status: z70.enum(["draft", "published"]).default("draft"),
39941
+ slug: z70.string().optional(),
39942
+ summary: z70.string().optional(),
39625
39943
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39626
- title: z69.any().optional().refine((value) => value === void 0, {
39944
+ title: z70.any().optional().refine((value) => value === void 0, {
39627
39945
  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."
39628
39946
  }),
39629
- metaTitle: z69.string().optional(),
39630
- metaDescription: z69.string().optional()
39947
+ metaTitle: z70.string().optional(),
39948
+ metaDescription: z70.string().optional()
39631
39949
  });
39632
- var dropdownLinkSchema = z69.object({
39633
- kind: z69.literal("dropdown")
39950
+ var dropdownLinkSchema = z70.object({
39951
+ kind: z70.literal("dropdown")
39634
39952
  });
39635
- var navigationLinkSchema = z69.discriminatedUnion("kind", [
39953
+ var navigationLinkSchema = z70.discriminatedUnion("kind", [
39636
39954
  ...navigationLinkInputSchemaOptions,
39637
39955
  dropdownLinkSchema
39638
39956
  ]);
39639
- var baseNavigationItemSchema = z69.object({
39640
- label: z69.string().min(1, "Label is required"),
39957
+ var baseNavigationItemSchema = z70.object({
39958
+ label: z70.string().min(1, "Label is required"),
39641
39959
  link: navigationLinkSchema,
39642
- isCta: z69.boolean().optional()
39960
+ isCta: z70.boolean().optional()
39643
39961
  });
39644
39962
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39645
- children: z69.lazy(() => z69.array(navigationItemConfigSchema)).optional()
39646
- });
39647
- var navigationMenuConfigSchema = z69.object({
39648
- identifier: z69.string().min(1, "Identifier is required"),
39649
- name: z69.string().min(1, "Name is required"),
39650
- isPrimary: z69.boolean().optional(),
39651
- isFooter: z69.boolean().optional(),
39652
- items: z69.array(navigationItemConfigSchema)
39963
+ children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
39964
+ });
39965
+ var navigationMenuConfigSchema = z70.object({
39966
+ identifier: z70.string().min(1, "Identifier is required"),
39967
+ name: z70.string().min(1, "Name is required"),
39968
+ isPrimary: z70.boolean().optional(),
39969
+ isFooter: z70.boolean().optional(),
39970
+ items: z70.array(navigationItemConfigSchema)
39653
39971
  }).superRefine((menu, ctx) => {
39654
39972
  const portalStats = collectPortalLinkStats(
39655
39973
  menu.items
39656
39974
  );
39657
39975
  if (portalStats.count > 1) {
39658
39976
  ctx.addIssue({
39659
- code: z69.ZodIssueCode.custom,
39977
+ code: z70.ZodIssueCode.custom,
39660
39978
  message: "Only one portal link is allowed per navigation menu",
39661
39979
  path: ["items"]
39662
39980
  });
39663
39981
  }
39664
39982
  if (portalStats.nestedLabels.length > 0) {
39665
39983
  ctx.addIssue({
39666
- code: z69.ZodIssueCode.custom,
39984
+ code: z70.ZodIssueCode.custom,
39667
39985
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39668
39986
  path: ["items"]
39669
39987
  });
39670
39988
  }
39671
39989
  if (portalStats.withChildrenLabels.length > 0) {
39672
39990
  ctx.addIssue({
39673
- code: z69.ZodIssueCode.custom,
39991
+ code: z70.ZodIssueCode.custom,
39674
39992
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39675
39993
  path: ["items"]
39676
39994
  });
@@ -39680,44 +39998,44 @@ var navigationMenuConfigSchema = z69.object({
39680
39998
  );
39681
39999
  if (cartStats.nestedLabels.length > 0) {
39682
40000
  ctx.addIssue({
39683
- code: z69.ZodIssueCode.custom,
40001
+ code: z70.ZodIssueCode.custom,
39684
40002
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39685
40003
  path: ["items"]
39686
40004
  });
39687
40005
  }
39688
40006
  if (cartStats.withChildrenLabels.length > 0) {
39689
40007
  ctx.addIssue({
39690
- code: z69.ZodIssueCode.custom,
40008
+ code: z70.ZodIssueCode.custom,
39691
40009
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39692
40010
  path: ["items"]
39693
40011
  });
39694
40012
  }
39695
40013
  if (cartStats.ctaLabels.length > 0) {
39696
40014
  ctx.addIssue({
39697
- code: z69.ZodIssueCode.custom,
40015
+ code: z70.ZodIssueCode.custom,
39698
40016
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39699
40017
  path: ["items"]
39700
40018
  });
39701
40019
  }
39702
40020
  if (cartStats.missingVisibleTextLabels.length > 0) {
39703
40021
  ctx.addIssue({
39704
- code: z69.ZodIssueCode.custom,
40022
+ code: z70.ZodIssueCode.custom,
39705
40023
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39706
40024
  path: ["items"]
39707
40025
  });
39708
40026
  }
39709
40027
  });
39710
- var siteSettingsConfigSchema = z69.object({
39711
- homepagePath: z69.string().optional(),
39712
- siteTitle: z69.string().optional(),
39713
- siteDescription: z69.string().optional(),
39714
- defaultTemplates: z69.record(z69.string(), z69.string()).optional()
40028
+ var siteSettingsConfigSchema = z70.object({
40029
+ homepagePath: z70.string().optional(),
40030
+ siteTitle: z70.string().optional(),
40031
+ siteDescription: z70.string().optional(),
40032
+ defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39715
40033
  });
39716
- var contentConfigBaseSchema = z69.object({
39717
- contentTypes: z69.array(contentTypeConfigSchema).optional(),
39718
- entries: z69.array(entryConfigSchema).optional(),
39719
- pages: z69.array(pageConfigSchema).optional(),
39720
- navigationMenus: z69.array(navigationMenuConfigSchema).optional(),
40034
+ var contentConfigBaseSchema = z70.object({
40035
+ contentTypes: z70.array(contentTypeConfigSchema).optional(),
40036
+ entries: z70.array(entryConfigSchema).optional(),
40037
+ pages: z70.array(pageConfigSchema).optional(),
40038
+ navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39721
40039
  settings: siteSettingsConfigSchema.optional()
39722
40040
  });
39723
40041
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39726,7 +40044,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39726
40044
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39727
40045
  if (duplicateKeys.length > 0) {
39728
40046
  ctx.addIssue({
39729
- code: z69.ZodIssueCode.custom,
40047
+ code: z70.ZodIssueCode.custom,
39730
40048
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39731
40049
  path: ["contentTypes"]
39732
40050
  });
@@ -39737,7 +40055,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39737
40055
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39738
40056
  if (duplicateIds.length > 0) {
39739
40057
  ctx.addIssue({
39740
- code: z69.ZodIssueCode.custom,
40058
+ code: z70.ZodIssueCode.custom,
39741
40059
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39742
40060
  path: ["pages"]
39743
40061
  });
@@ -39746,7 +40064,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39746
40064
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39747
40065
  if (duplicatePaths.length > 0) {
39748
40066
  ctx.addIssue({
39749
- code: z69.ZodIssueCode.custom,
40067
+ code: z70.ZodIssueCode.custom,
39750
40068
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39751
40069
  path: ["pages"]
39752
40070
  });
@@ -39757,7 +40075,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39757
40075
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39758
40076
  if (duplicateIds.length > 0) {
39759
40077
  ctx.addIssue({
39760
- code: z69.ZodIssueCode.custom,
40078
+ code: z70.ZodIssueCode.custom,
39761
40079
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39762
40080
  path: ["entries"]
39763
40081
  });
@@ -39768,7 +40086,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39768
40086
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39769
40087
  if (duplicateIds.length > 0) {
39770
40088
  ctx.addIssue({
39771
- code: z69.ZodIssueCode.custom,
40089
+ code: z70.ZodIssueCode.custom,
39772
40090
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39773
40091
  path: ["navigationMenus"]
39774
40092
  });
@@ -39782,7 +40100,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39782
40100
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39783
40101
  if (entriesForType.length > 1) {
39784
40102
  ctx.addIssue({
39785
- code: z69.ZodIssueCode.custom,
40103
+ code: z70.ZodIssueCode.custom,
39786
40104
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39787
40105
  path: ["entries"]
39788
40106
  });
@@ -39895,18 +40213,18 @@ function validateLayout(layout) {
39895
40213
  }
39896
40214
 
39897
40215
  // src/config/dashboard-validation.ts
39898
- import { z as z70 } from "zod";
39899
- var navIdListSchema2 = z70.preprocess((value) => {
40216
+ import { z as z71 } from "zod";
40217
+ var navIdListSchema2 = z71.preprocess((value) => {
39900
40218
  if (!Array.isArray(value)) return void 0;
39901
40219
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39902
40220
  return filtered.length > 0 ? filtered : void 0;
39903
- }, z70.array(z70.string()).max(200, "Maximum 200 nav IDs").optional());
39904
- var dashboardNavVisibilityBaseSchema2 = z70.object({
39905
- mode: z70.enum(["augment", "restrict"]).optional(),
40221
+ }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
40222
+ var dashboardNavVisibilityBaseSchema2 = z71.object({
40223
+ mode: z71.enum(["augment", "restrict"]).optional(),
39906
40224
  allowIds: navIdListSchema2,
39907
40225
  denyIds: navIdListSchema2
39908
40226
  }).strip();
39909
- var dashboardNavVisibilityRolesSchema2 = z70.object({
40227
+ var dashboardNavVisibilityRolesSchema2 = z71.object({
39910
40228
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39911
40229
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39912
40230
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39914,28 +40232,28 @@ var dashboardNavVisibilityRolesSchema2 = z70.object({
39914
40232
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39915
40233
  roles: dashboardNavVisibilityRolesSchema2
39916
40234
  }).strip();
39917
- var dashboardNavigationConfigSchema2 = z70.object({
40235
+ var dashboardNavigationConfigSchema2 = z71.object({
39918
40236
  siteNav: dashboardNavVisibilitySchema2.optional(),
39919
40237
  settingsNav: dashboardNavVisibilitySchema2.optional()
39920
40238
  }).strip();
39921
- var dashboardConfigSchema2 = z70.object({
39922
- previewEditingEnabled: z70.boolean().optional(),
40239
+ var dashboardConfigSchema2 = z71.object({
40240
+ previewEditingEnabled: z71.boolean().optional(),
39923
40241
  navigation: dashboardNavigationConfigSchema2.optional()
39924
40242
  }).strip();
39925
40243
 
39926
40244
  // src/zod/titleSourceSchema.ts
39927
- import { z as z71 } from "zod";
39928
- var titleSourceValueSchema = z71.union([
39929
- z71.string().min(1),
39930
- z71.array(z71.string().min(1)).min(1)
40245
+ import { z as z72 } from "zod";
40246
+ var titleSourceValueSchema = z72.union([
40247
+ z72.string().min(1),
40248
+ z72.array(z72.string().min(1)).min(1)
39931
40249
  ]);
39932
40250
 
39933
40251
  // src/config/validation.ts
39934
- var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39935
- var sdkThemeConfigSchema2 = z72.object({
40252
+ var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
40253
+ var sdkThemeConfigSchema2 = z73.object({
39936
40254
  palette: sdkThemePaletteSchema2
39937
40255
  });
39938
- var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
40256
+ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39939
40257
  try {
39940
40258
  const parsed = new URL(url);
39941
40259
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39944,97 +40262,97 @@ var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
39944
40262
  return false;
39945
40263
  }
39946
40264
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39947
- var sectionBackgroundSchema = z72.object({
39948
- id: z72.string(),
39949
- label: z72.string(),
39950
- token: z72.string()
40265
+ var sectionBackgroundSchema = z73.object({
40266
+ id: z73.string(),
40267
+ label: z73.string(),
40268
+ token: z73.string()
39951
40269
  // Reference to theme palette token
39952
40270
  });
39953
- var sectionSpacingSchema = z72.enum(["compact", "default", "spacious"]);
39954
- var containerMaxWidthSchema = z72.enum(["narrow", "default", "wide", "full"]);
39955
- var containerAlignmentSchema = z72.enum(["left", "center", "right"]);
39956
- var sectionOptionsSchema = z72.object({
39957
- backgroundColor: z72.boolean().optional(),
39958
- backgroundImage: z72.boolean().optional(),
39959
- backgroundGradient: z72.boolean().optional(),
39960
- spacing: z72.union([
39961
- z72.array(sectionSpacingSchema),
39962
- z72.boolean()
40271
+ var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
40272
+ var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
40273
+ var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
40274
+ var sectionOptionsSchema = z73.object({
40275
+ backgroundColor: z73.boolean().optional(),
40276
+ backgroundImage: z73.boolean().optional(),
40277
+ backgroundGradient: z73.boolean().optional(),
40278
+ spacing: z73.union([
40279
+ z73.array(sectionSpacingSchema),
40280
+ z73.boolean()
39963
40281
  ]).optional(),
39964
- textColor: z72.boolean().optional()
40282
+ textColor: z73.boolean().optional()
39965
40283
  }).optional();
39966
- var containerOptionsSchema = z72.object({
39967
- maxWidth: z72.union([
39968
- z72.array(containerMaxWidthSchema),
39969
- z72.boolean()
40284
+ var containerOptionsSchema = z73.object({
40285
+ maxWidth: z73.union([
40286
+ z73.array(containerMaxWidthSchema),
40287
+ z73.boolean()
39970
40288
  ]).optional(),
39971
- alignment: z72.union([
39972
- z72.array(containerAlignmentSchema),
39973
- z72.boolean()
40289
+ alignment: z73.union([
40290
+ z73.array(containerAlignmentSchema),
40291
+ z73.boolean()
39974
40292
  ]).optional()
39975
40293
  }).optional();
39976
- var siteStyleConfigSchema = z72.object({
39977
- sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
40294
+ var siteStyleConfigSchema = z73.object({
40295
+ sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
39978
40296
  sectionOptions: sectionOptionsSchema,
39979
40297
  containerOptions: containerOptionsSchema
39980
40298
  }).optional();
39981
- var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
40299
+ var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS);
39982
40300
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39983
- var loaderTransformStepSchema = z72.object({
39984
- id: z72.string().refine((id) => allowedTransformIds.has(id), {
40301
+ var loaderTransformStepSchema = z73.object({
40302
+ id: z73.string().refine((id) => allowedTransformIds.has(id), {
39985
40303
  message: "Unknown transform id"
39986
40304
  }),
39987
- options: z72.record(z72.string(), z72.unknown()).optional()
40305
+ options: z73.record(z73.string(), z73.unknown()).optional()
39988
40306
  });
39989
- var loaderParamBindingSchema2 = z72.object({
39990
- $bind: z72.object({
39991
- from: z72.string().min(1, "Binding path is required"),
40307
+ var loaderParamBindingSchema2 = z73.object({
40308
+ $bind: z73.object({
40309
+ from: z73.string().min(1, "Binding path is required"),
39992
40310
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39993
40311
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39994
40312
  // more complex values into a string.
39995
40313
  fallback: loaderFallbackScalarSchema.optional(),
39996
- transforms: z72.array(loaderTransformStepSchema).default([]),
39997
- pick: z72.enum(["value", "collection", "context"]).default("value"),
39998
- coerce: z72.enum(["number", "boolean", "string"]).optional()
40314
+ transforms: z73.array(loaderTransformStepSchema).default([]),
40315
+ pick: z73.enum(["value", "collection", "context"]).default("value"),
40316
+ coerce: z73.enum(["number", "boolean", "string"]).optional()
39999
40317
  })
40000
40318
  });
40001
- var loaderParamValueSchema2 = z72.union([
40002
- z72.string(),
40003
- z72.number(),
40004
- z72.boolean(),
40319
+ var loaderParamValueSchema2 = z73.union([
40320
+ z73.string(),
40321
+ z73.number(),
40322
+ z73.boolean(),
40005
40323
  loaderParamBindingSchema2
40006
40324
  ]);
40007
- var loaderWhenValueSchema = z72.union([
40008
- z72.boolean(),
40325
+ var loaderWhenValueSchema = z73.union([
40326
+ z73.boolean(),
40009
40327
  loaderParamBindingSchema2
40010
40328
  ]);
40011
- var sdkConfigLoaderSchema2 = z72.object({
40329
+ var sdkConfigLoaderSchema2 = z73.object({
40012
40330
  endpoint: sdkLoaderEndpointSchema2,
40013
- params: z72.record(z72.string(), loaderParamValueSchema2),
40014
- mode: z72.enum(["server", "client"]).default("server"),
40331
+ params: z73.record(z73.string(), loaderParamValueSchema2),
40332
+ mode: z73.enum(["server", "client"]).default("server"),
40015
40333
  when: loaderWhenValueSchema.optional()
40016
40334
  });
40017
- var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
40335
+ var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
40018
40336
  (loaders) => Object.keys(loaders).length <= 5,
40019
40337
  { message: "Maximum 5 data loaders per block" }
40020
40338
  ).optional();
40021
- var fieldSelectOptionSchema = z72.object({
40022
- value: z72.string().min(1, "Option value is required"),
40023
- label: z72.string().min(1, "Option label is required")
40339
+ var fieldSelectOptionSchema = z73.object({
40340
+ value: z73.string().min(1, "Option value is required"),
40341
+ label: z73.string().min(1, "Option label is required")
40024
40342
  });
40025
- var blockFieldConfigSchema = z72.object({
40026
- options: z72.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40343
+ var blockFieldConfigSchema = z73.object({
40344
+ options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40027
40345
  });
40028
- var blockFieldOptionsSchema = z72.record(
40029
- z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40346
+ var blockFieldOptionsSchema = z73.record(
40347
+ z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40030
40348
  message: "Block ID must be 'block.*' or 'custom.*' format"
40031
40349
  }),
40032
- z72.record(
40033
- z72.string().min(1, "Field ID is required"),
40350
+ z73.record(
40351
+ z73.string().min(1, "Field ID is required"),
40034
40352
  blockFieldConfigSchema
40035
40353
  )
40036
40354
  ).optional();
40037
- var blockFieldExtensionSchema = z72.object({
40355
+ var blockFieldExtensionSchema = z73.object({
40038
40356
  fields: fieldSchema.array().min(1, "At least one field is required")
40039
40357
  }).refine(
40040
40358
  (data) => {
@@ -40048,10 +40366,10 @@ var blockFieldExtensionSchema = z72.object({
40048
40366
  message: "Required fields must have a defaultValue to support existing blocks"
40049
40367
  }
40050
40368
  );
40051
- var blockFieldExtensionsMapSchema = z72.record(
40369
+ var blockFieldExtensionsMapSchema = z73.record(
40052
40370
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
40053
40371
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
40054
- z72.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40372
+ z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40055
40373
  message: "Block ID must be 'block.*' format (system blocks only)"
40056
40374
  }),
40057
40375
  blockFieldExtensionSchema
@@ -40067,7 +40385,7 @@ var blockFieldExtensionsMapSchema = z72.record(
40067
40385
  (field) => field.id === collision.fieldId
40068
40386
  );
40069
40387
  ctx.addIssue({
40070
- code: z72.ZodIssueCode.custom,
40388
+ code: z73.ZodIssueCode.custom,
40071
40389
  message: collision.message,
40072
40390
  path: [
40073
40391
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -40133,24 +40451,24 @@ function validateFieldIdConflicts(blockFieldExtensions) {
40133
40451
  }
40134
40452
  return conflicts;
40135
40453
  }
40136
- var syncConfigSchema = z72.object({
40137
- existingEntries: z72.enum(["skip", "update"]).optional()
40454
+ var syncConfigSchema = z73.object({
40455
+ existingEntries: z73.enum(["skip", "update"]).optional()
40138
40456
  }).optional();
40139
- var deployConfigSchema = z72.object({
40140
- verifyCommand: z72.string().optional(),
40141
- prebuildOutput: z72.string().optional()
40457
+ var deployConfigSchema = z73.object({
40458
+ verifyCommand: z73.string().optional(),
40459
+ prebuildOutput: z73.string().optional()
40142
40460
  }).optional();
40143
- var sdkCustomBlockSchema = z72.object({
40461
+ var sdkCustomBlockSchema = z73.object({
40144
40462
  // Block ID must start with 'custom.'
40145
- id: z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40463
+ id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40146
40464
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
40147
40465
  }),
40148
- title: z72.string().min(1, "Title is required"),
40466
+ title: z73.string().min(1, "Title is required"),
40149
40467
  titleSource: titleSourceValueSchema.optional(),
40150
- description: z72.string().optional(),
40468
+ description: z73.string().optional(),
40151
40469
  category: blockCategoryEnum,
40152
- icon: z72.string().optional(),
40153
- tags: z72.array(z72.string()).optional(),
40470
+ icon: z73.string().optional(),
40471
+ tags: z73.array(z73.string()).optional(),
40154
40472
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
40155
40473
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
40156
40474
  // Data loaders for CMS endpoints
@@ -40158,14 +40476,14 @@ var sdkCustomBlockSchema = z72.object({
40158
40476
  // Optional declarative layout - when present, block can render without React override
40159
40477
  layout: NodeSchema.optional(),
40160
40478
  // 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()
40479
+ variants: z73.record(z73.string().min(1), NodeSchema).optional(),
40480
+ defaultVariant: z73.string().min(1).optional(),
40481
+ variantOptions: z73.record(
40482
+ z73.string().min(1),
40483
+ z73.object({
40484
+ label: z73.string().min(1).optional(),
40485
+ description: z73.string().min(1).optional(),
40486
+ icon: z73.string().min(1).optional()
40169
40487
  })
40170
40488
  ).optional(),
40171
40489
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -40177,7 +40495,7 @@ var sdkCustomBlockSchema = z72.object({
40177
40495
  const exists = fields3.some((field) => field.id === source);
40178
40496
  if (!exists) {
40179
40497
  ctx.addIssue({
40180
- code: z72.ZodIssueCode.custom,
40498
+ code: z73.ZodIssueCode.custom,
40181
40499
  message: `titleSource must reference a valid field ID (got "${source}")`,
40182
40500
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
40183
40501
  });
@@ -40186,7 +40504,7 @@ var sdkCustomBlockSchema = z72.object({
40186
40504
  }
40187
40505
  if (data.layout && data.variants) {
40188
40506
  ctx.addIssue({
40189
- code: z72.ZodIssueCode.custom,
40507
+ code: z73.ZodIssueCode.custom,
40190
40508
  message: "Custom block must define either `layout` or `variants`, not both",
40191
40509
  path: ["variants"]
40192
40510
  });
@@ -40196,7 +40514,7 @@ var sdkCustomBlockSchema = z72.object({
40196
40514
  if (!result.valid) {
40197
40515
  for (const error of result.errors) {
40198
40516
  ctx.addIssue({
40199
- code: z72.ZodIssueCode.custom,
40517
+ code: z73.ZodIssueCode.custom,
40200
40518
  message: error.message,
40201
40519
  path: ["layout"]
40202
40520
  });
@@ -40207,14 +40525,14 @@ var sdkCustomBlockSchema = z72.object({
40207
40525
  const keys = Object.keys(data.variants);
40208
40526
  if (keys.length === 0) {
40209
40527
  ctx.addIssue({
40210
- code: z72.ZodIssueCode.custom,
40528
+ code: z73.ZodIssueCode.custom,
40211
40529
  message: "`variants` must contain at least one variant key",
40212
40530
  path: ["variants"]
40213
40531
  });
40214
40532
  }
40215
40533
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40216
40534
  ctx.addIssue({
40217
- code: z72.ZodIssueCode.custom,
40535
+ code: z73.ZodIssueCode.custom,
40218
40536
  message: "`defaultVariant` must be a key present in `variants`",
40219
40537
  path: ["defaultVariant"]
40220
40538
  });
@@ -40224,7 +40542,7 @@ var sdkCustomBlockSchema = z72.object({
40224
40542
  if (!result.valid) {
40225
40543
  for (const error of result.errors) {
40226
40544
  ctx.addIssue({
40227
- code: z72.ZodIssueCode.custom,
40545
+ code: z73.ZodIssueCode.custom,
40228
40546
  message: `${key}: ${error.message}`,
40229
40547
  path: ["variants", key]
40230
40548
  });
@@ -40235,7 +40553,7 @@ var sdkCustomBlockSchema = z72.object({
40235
40553
  for (const key of Object.keys(data.variantOptions)) {
40236
40554
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40237
40555
  ctx.addIssue({
40238
- code: z72.ZodIssueCode.custom,
40556
+ code: z73.ZodIssueCode.custom,
40239
40557
  message: "`variantOptions` key must exist in `variants`",
40240
40558
  path: ["variantOptions", key]
40241
40559
  });
@@ -40244,58 +40562,58 @@ var sdkCustomBlockSchema = z72.object({
40244
40562
  }
40245
40563
  }
40246
40564
  });
40247
- var themeSourceSchema = z72.enum(["local", "cms"]).optional();
40248
- var activeThemeSchema = z72.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40565
+ var themeSourceSchema = z73.enum(["local", "cms"]).optional();
40566
+ var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40249
40567
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40250
40568
  }).max(64, "Theme name too long").optional();
40251
40569
  function isValidConfigBlockKind(kind) {
40252
40570
  if (getBlockDefinition(kind)) return true;
40253
40571
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40254
40572
  }
40255
- var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40573
+ var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40256
40574
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40257
40575
  });
40258
- var layoutFooterBlockSchema = z72.object({
40259
- id: z72.string().min(1).optional(),
40576
+ var layoutFooterBlockSchema = z73.object({
40577
+ id: z73.string().min(1).optional(),
40260
40578
  kind: layoutBlockKindSchema,
40261
40579
  // Allow omitted content for blocks that rely on defaults.
40262
- content: z72.record(z72.string(), z72.unknown()).optional()
40580
+ content: z73.record(z73.string(), z73.unknown()).optional()
40263
40581
  }).strict();
40264
- var layoutConfigSchema = z72.object({
40265
- footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40582
+ var layoutConfigSchema = z73.object({
40583
+ footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40266
40584
  }).strict();
40267
- var sdkWorkflowIdSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40585
+ var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40268
40586
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40269
40587
  });
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()
40588
+ 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 "/"' });
40589
+ var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
40590
+ z73.object({ type: z73.literal("manual") }).strict()
40273
40591
  ]);
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()
40592
+ var sdkWorkflowConfirmationSchema2 = z73.object({
40593
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40594
+ body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40277
40595
  }).strict();
40278
- var sdkWorkflowConfigSchema2 = z72.object({
40596
+ var sdkWorkflowConfigSchema2 = z73.object({
40279
40597
  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),
40598
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40599
+ description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40600
+ contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40283
40601
  endpoint: sdkWorkflowEndpointSchema2,
40284
- triggers: z72.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40602
+ triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40285
40603
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40286
40604
  }).strict();
40287
- var sdkWorkflowsSchema2 = z72.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40605
+ var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40288
40606
  const ids = workflows.map((workflow) => workflow.id);
40289
40607
  return ids.length === new Set(ids).size;
40290
40608
  }, { message: "Workflow IDs must be unique" }).optional();
40291
- var riverbankSiteConfigSchema = z72.object({
40292
- siteId: z72.string().uuid(),
40609
+ var riverbankSiteConfigSchema = z73.object({
40610
+ siteId: z73.string().uuid(),
40293
40611
  previewUrl: sdkSiteUrlSchema.optional(),
40294
40612
  liveUrl: sdkSiteUrlSchema.optional(),
40295
40613
  theme: sdkThemeConfigSchema2.optional(),
40296
40614
  styles: siteStyleConfigSchema,
40297
40615
  layout: layoutConfigSchema.optional(),
40298
- customBlocks: z72.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40616
+ customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40299
40617
  // Ensure unique block IDs
40300
40618
  (blocks) => {
40301
40619
  const ids = blocks.map((b) => b.id);
@@ -40308,7 +40626,7 @@ var riverbankSiteConfigSchema = z72.object({
40308
40626
  workflows: sdkWorkflowsSchema2,
40309
40627
  content: contentConfigSchema.optional(),
40310
40628
  // CLI-related configuration (Phase 4)
40311
- contentDir: z72.string().optional(),
40629
+ contentDir: z73.string().optional(),
40312
40630
  sync: syncConfigSchema,
40313
40631
  deploy: deployConfigSchema,
40314
40632
  // Theme sync configuration (Phase 5)