@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
@@ -44,7 +44,7 @@ function fallbackBinding(...sources) {
44
44
  }
45
45
 
46
46
  // src/config/validation.ts
47
- import { z as z72 } from "zod";
47
+ import { z as z73 } from "zod";
48
48
 
49
49
  // ../api/src/apiEndpointTypes.ts
50
50
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -1085,6 +1085,94 @@ var ENDPOINT_DEFINITIONS = {
1085
1085
  responseKind: "json",
1086
1086
  errors: ["resource:not_found", "server:internal_error"]
1087
1087
  },
1088
+ listAppointmentReservations: {
1089
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1090
+ method: "GET",
1091
+ auth: "user",
1092
+ responseKind: "json",
1093
+ errors: []
1094
+ },
1095
+ createAppointmentReservation: {
1096
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1097
+ method: "POST",
1098
+ auth: "user",
1099
+ responseKind: "json",
1100
+ errors: [
1101
+ "validation:invalid_input",
1102
+ "resource:not_found",
1103
+ "resource:conflict",
1104
+ "server:internal_error"
1105
+ ]
1106
+ },
1107
+ getAppointmentReservation: {
1108
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1109
+ method: "GET",
1110
+ auth: "user",
1111
+ responseKind: "json",
1112
+ errors: ["resource:not_found", "server:internal_error"]
1113
+ },
1114
+ updateAppointmentReservation: {
1115
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1116
+ method: "PUT",
1117
+ auth: "user",
1118
+ responseKind: "json",
1119
+ errors: [
1120
+ "validation:invalid_input",
1121
+ "resource:not_found",
1122
+ "resource:conflict",
1123
+ "server:internal_error"
1124
+ ]
1125
+ },
1126
+ pauseAppointmentReservation: {
1127
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1128
+ method: "POST",
1129
+ auth: "user",
1130
+ responseKind: "json",
1131
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1132
+ },
1133
+ resumeAppointmentReservation: {
1134
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1135
+ method: "POST",
1136
+ auth: "user",
1137
+ responseKind: "json",
1138
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1139
+ },
1140
+ endAppointmentReservation: {
1141
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1142
+ method: "POST",
1143
+ auth: "user",
1144
+ responseKind: "json",
1145
+ errors: [
1146
+ "validation:invalid_input",
1147
+ "resource:not_found",
1148
+ "resource:conflict",
1149
+ "server:internal_error"
1150
+ ]
1151
+ },
1152
+ previewAppointmentReservationRun: {
1153
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1154
+ method: "POST",
1155
+ auth: "user",
1156
+ responseKind: "json",
1157
+ errors: [
1158
+ "validation:invalid_input",
1159
+ "resource:not_found",
1160
+ "resource:conflict",
1161
+ "server:internal_error"
1162
+ ]
1163
+ },
1164
+ createAppointmentReservationRun: {
1165
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1166
+ method: "POST",
1167
+ auth: "user",
1168
+ responseKind: "json",
1169
+ errors: [
1170
+ "validation:invalid_input",
1171
+ "resource:not_found",
1172
+ "resource:conflict",
1173
+ "server:internal_error"
1174
+ ]
1175
+ },
1088
1176
  createTeamMemberProfile: {
1089
1177
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1090
1178
  method: "POST",
@@ -3541,6 +3629,18 @@ var ENDPOINT_DEFINITIONS = {
3541
3629
  responseKind: "json",
3542
3630
  errors: ["validation:invalid_input", "server:internal_error"]
3543
3631
  },
3632
+ resolveRouteDecision: {
3633
+ path: "/sites/{siteId}/route-decision",
3634
+ method: "GET",
3635
+ tags: [
3636
+ TAG_TEMPLATES.siteRoutableContent,
3637
+ TAG_TEMPLATES.siteRedirects,
3638
+ TAG_TEMPLATES.siteRouteOutcomes
3639
+ ],
3640
+ auth: "public",
3641
+ responseKind: "json",
3642
+ errors: ["validation:invalid_input", "server:internal_error"]
3643
+ },
3544
3644
  getPageByPath: {
3545
3645
  path: "/sites/{siteId}/pages",
3546
3646
  method: "GET",
@@ -3679,6 +3779,15 @@ var ENDPOINT_DEFINITIONS = {
3679
3779
  auth: "public",
3680
3780
  responseKind: "json"
3681
3781
  },
3782
+ getPublicWeeklySlotAvailability: {
3783
+ path: "/public/bookings/weekly-slot-availability",
3784
+ method: "GET",
3785
+ revalidate: 60,
3786
+ tags: ["site-{siteId}"],
3787
+ auth: "public",
3788
+ responseKind: "json",
3789
+ errors: []
3790
+ },
3682
3791
  createPublicBookingAppointment: {
3683
3792
  path: "/public/bookings/appointments",
3684
3793
  method: "POST",
@@ -6831,7 +6940,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6831
6940
  );
6832
6941
 
6833
6942
  // ../api/src/sdkConfig/contracts.ts
6834
- import { z as z63 } from "zod";
6943
+ import { z as z64 } from "zod";
6835
6944
 
6836
6945
  // ../blocks/src/system/manifest/augmentManifest.ts
6837
6946
  function augmentManifest(manifest) {
@@ -7000,10 +7109,20 @@ var repeatSchema = z3.object({
7000
7109
  direction: z3.enum(["asc", "desc"]).default("asc")
7001
7110
  }).optional()
7002
7111
  });
7112
+ var conditionalAuthoringPresenceSchema = z3.discriminatedUnion("kind", [
7113
+ z3.object({ kind: z3.literal("visitor-only") }),
7114
+ z3.object({
7115
+ kind: z3.literal("recover-empty-when-active"),
7116
+ placeholder: z3.string().min(1).optional()
7117
+ })
7118
+ ]);
7003
7119
  var conditionSchema = z3.object({
7004
7120
  when: bindingSchema,
7005
7121
  equals: z3.unknown().optional(),
7006
- not: z3.boolean().default(false)
7122
+ not: z3.boolean().default(false),
7123
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
7124
+ kind: "visitor-only"
7125
+ })
7007
7126
  });
7008
7127
  var dataScopeSchema = z3.object({
7009
7128
  name: z3.string().min(1),
@@ -7064,6 +7183,7 @@ var ALLOWED_NODE_TYPES = [
7064
7183
  // Forms
7065
7184
  "form",
7066
7185
  "booking-form",
7186
+ "weekly-slot-availability",
7067
7187
  // Events
7068
7188
  "event-registration",
7069
7189
  "event-spotlight",
@@ -7393,6 +7513,11 @@ var textFieldSchema = baseFieldSchema.extend({
7393
7513
  var richTextFieldSchema = baseFieldSchema.extend({
7394
7514
  type: z4.literal("richText")
7395
7515
  });
7516
+ var inlineTextFieldSchema = baseFieldSchema.extend({
7517
+ type: z4.literal("inlineText"),
7518
+ maxLength: z4.number().int().positive().optional(),
7519
+ plainTextField: z4.string().min(1).optional()
7520
+ });
7396
7521
  var mediaFieldSchema = baseFieldSchema.extend({
7397
7522
  type: z4.literal("media"),
7398
7523
  // Keep full MEDIA_KINDS parse compatibility for pre-file-field manifests.
@@ -7715,6 +7840,7 @@ function getFieldSchemaInternal() {
7715
7840
  _fieldSchemaInternal = z4.discriminatedUnion("type", [
7716
7841
  textFieldSchema,
7717
7842
  richTextFieldSchema,
7843
+ inlineTextFieldSchema,
7718
7844
  mediaFieldSchema,
7719
7845
  fileFieldSchema,
7720
7846
  booleanFieldSchema,
@@ -18095,7 +18221,8 @@ function when(path, options) {
18095
18221
  $when: {
18096
18222
  when: { from: path },
18097
18223
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
18098
- ...options?.not ? { not: true } : {}
18224
+ ...options?.not ? { not: true } : {},
18225
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
18099
18226
  }
18100
18227
  });
18101
18228
  }
@@ -20163,8 +20290,16 @@ var heroCopyFragment = defineFragment({
20163
20290
  id: "headline",
20164
20291
  type: "text",
20165
20292
  label: "Headline",
20293
+ maxLength: 120,
20294
+ ui: { hidden: true }
20295
+ },
20296
+ {
20297
+ id: "headlineInline",
20298
+ type: "inlineText",
20299
+ label: "Headline",
20166
20300
  required: true,
20167
- maxLength: 120
20301
+ maxLength: 120,
20302
+ plainTextField: "headline"
20168
20303
  },
20169
20304
  {
20170
20305
  id: "subheadline",
@@ -20189,9 +20324,12 @@ var heroCopyFragment = defineFragment({
20189
20324
  as: "h1",
20190
20325
  // heading-display: uses fluid typography from theme (--fs-h1-display-fluid)
20191
20326
  // Color in blocks-static/index.css (.hero-headline)
20192
- className: "hero-headline heading-display"
20327
+ className: "hero-headline heading-display",
20328
+ // Resolved against top-level block content; keep this beside the sibling headline field.
20329
+ inlineTextFallbackPath: "headline",
20330
+ maxLength: 120
20193
20331
  },
20194
- bind("content.headline")
20332
+ bind("content.headlineInline")
20195
20333
  ),
20196
20334
  text(
20197
20335
  {
@@ -27911,77 +28049,247 @@ var appointmentBookingBlockDefinition = {
27911
28049
  }
27912
28050
  };
27913
28051
 
28052
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
28053
+ import { z as z39 } from "zod";
28054
+ var weeklySlotAvailabilityManifest = createBlockManifest({
28055
+ id: "block.weekly-slot-availability",
28056
+ version: "1.0.0",
28057
+ title: "Weekly Slot Availability",
28058
+ titleSource: "heading",
28059
+ description: "Shows available recurring appointment slot patterns",
28060
+ skipSectionStyles: true,
28061
+ additionalFields: [
28062
+ {
28063
+ id: "serviceId",
28064
+ type: "reference",
28065
+ label: "Appointment service",
28066
+ description: "Choose which appointment service to show availability for",
28067
+ required: true,
28068
+ referenceKind: "appointmentService",
28069
+ allowManualEntry: false,
28070
+ ui: { intent: "behavior" }
28071
+ },
28072
+ {
28073
+ id: "resourceId",
28074
+ type: "reference",
28075
+ label: "Appointment resource",
28076
+ description: "Optionally narrow the availability to one practitioner or room",
28077
+ required: false,
28078
+ referenceKind: "appointmentResource",
28079
+ allowManualEntry: false,
28080
+ ui: { intent: "behavior" }
28081
+ },
28082
+ {
28083
+ id: "horizonWeeks",
28084
+ type: "select",
28085
+ label: "Look ahead",
28086
+ required: false,
28087
+ multiple: false,
28088
+ defaultValue: "4",
28089
+ options: [
28090
+ { value: "1", label: "1 week" },
28091
+ { value: "2", label: "2 weeks" },
28092
+ { value: "4", label: "4 weeks" }
28093
+ ],
28094
+ ui: { intent: "behavior" }
28095
+ },
28096
+ {
28097
+ id: "timezone",
28098
+ type: "text",
28099
+ label: "Timezone",
28100
+ description: "Leave blank to use the visitor timezone when the block loads",
28101
+ required: false,
28102
+ multiline: false,
28103
+ defaultValue: "",
28104
+ maxLength: 64,
28105
+ ui: { intent: "behavior" }
28106
+ },
28107
+ {
28108
+ id: "heading",
28109
+ type: "text",
28110
+ label: "Heading",
28111
+ required: false,
28112
+ multiline: false,
28113
+ defaultValue: "Weekly availability"
28114
+ },
28115
+ {
28116
+ id: "description",
28117
+ type: "richText",
28118
+ label: "Description",
28119
+ required: false
28120
+ },
28121
+ {
28122
+ id: "emptyMessage",
28123
+ type: "text",
28124
+ label: "Empty message",
28125
+ required: false,
28126
+ multiline: true,
28127
+ defaultValue: "No regular weekly openings are currently available.",
28128
+ maxLength: 180
28129
+ },
28130
+ {
28131
+ id: "ctaText",
28132
+ type: "text",
28133
+ label: "Enquiry button text",
28134
+ required: false,
28135
+ multiline: false,
28136
+ defaultValue: "Enquire about this slot",
28137
+ maxLength: 60
28138
+ },
28139
+ {
28140
+ id: "ctaUrl",
28141
+ type: "url",
28142
+ label: "Enquiry URL",
28143
+ required: false,
28144
+ ui: { intent: "behavior" }
28145
+ },
28146
+ sectionStylesField({
28147
+ id: "_sectionStyles",
28148
+ label: "Section styles"
28149
+ })
28150
+ ],
28151
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
28152
+ behaviours: {
28153
+ supportsThemeSwitching: true,
28154
+ inlineEditing: false,
28155
+ animation: false,
28156
+ paletteHidden: false
28157
+ },
28158
+ category: "interactive",
28159
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
28160
+ icon: "CalendarDays",
28161
+ layout: [
28162
+ styledSection({
28163
+ children: sectionContainer([
28164
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
28165
+ richText({}, bind("content.description"), when("content.description")),
28166
+ el(
28167
+ "weekly-slot-availability",
28168
+ withApiBindings({
28169
+ serviceId: { $bind: { from: "content.serviceId" } },
28170
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
28171
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28172
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
28173
+ availability: { $bind: { from: "data.availability", fallback: null } },
28174
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
28175
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
28176
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
28177
+ })
28178
+ )
28179
+ ], {
28180
+ gap: "lg"
28181
+ }),
28182
+ baseClass: "",
28183
+ spacing: "spacious"
28184
+ })
28185
+ ]
28186
+ });
28187
+ var weeklySlotAvailabilityOptionSchema = z39.object({
28188
+ id: z39.string(),
28189
+ resourceId: z39.string(),
28190
+ weekday: z39.number(),
28191
+ weekdayLabel: z39.string(),
28192
+ startTime: z39.string(),
28193
+ endTime: z39.string(),
28194
+ nextDate: z39.string(),
28195
+ availableWeeks: z39.number()
28196
+ });
28197
+ var weeklySlotAvailabilityDataSchema = z39.object({
28198
+ slots: z39.array(weeklySlotAvailabilityOptionSchema),
28199
+ horizonWeeks: z39.number(),
28200
+ timezone: z39.string(),
28201
+ startDate: z39.string(),
28202
+ endDate: z39.string()
28203
+ });
28204
+ var weeklySlotAvailabilityBlockDefinition = {
28205
+ manifest: weeklySlotAvailabilityManifest,
28206
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
28207
+ dataLoaders: {
28208
+ availability: {
28209
+ endpoint: "getPublicWeeklySlotAvailability",
28210
+ params: {
28211
+ siteId: { $bind: { from: "$root.siteId" } },
28212
+ serviceId: { $bind: { from: "content.serviceId" } },
28213
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
28214
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28215
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
28216
+ },
28217
+ mode: "server"
28218
+ }
28219
+ }
28220
+ };
28221
+
27914
28222
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27915
- import { z as z43 } from "zod";
28223
+ import { z as z44 } from "zod";
27916
28224
 
27917
28225
  // ../blocks/src/lib/media.ts
27918
- import z39 from "zod";
28226
+ import z40 from "zod";
27919
28227
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
27920
28228
  "document",
27921
28229
  "spreadsheet",
27922
28230
  "archive",
27923
28231
  "audio"
27924
28232
  ];
27925
- var hotspotSchema2 = z39.object({
27926
- x: z39.number().min(0).max(1),
27927
- y: z39.number().min(0).max(1),
27928
- radius: z39.number().optional()
27929
- });
27930
- var rotationSchema2 = z39.union([z39.literal(0), z39.literal(90), z39.literal(180), z39.literal(270)]);
27931
- var rectSchema2 = z39.tuple([z39.number(), z39.number(), z39.number(), z39.number()]);
27932
- var aspectCropSchema2 = z39.object({
27933
- aspect: z39.preprocess((value) => value == null ? void 0 : value, z39.string().optional()),
27934
- rect: z39.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
27935
- hotspot: z39.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
27936
- rotation: z39.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
27937
- });
27938
- var transformSchema2 = z39.object({
27939
- aspectCrops: z39.preprocess((value) => {
28233
+ var hotspotSchema2 = z40.object({
28234
+ x: z40.number().min(0).max(1),
28235
+ y: z40.number().min(0).max(1),
28236
+ radius: z40.number().optional()
28237
+ });
28238
+ var rotationSchema2 = z40.union([z40.literal(0), z40.literal(90), z40.literal(180), z40.literal(270)]);
28239
+ var rectSchema2 = z40.tuple([z40.number(), z40.number(), z40.number(), z40.number()]);
28240
+ var aspectCropSchema2 = z40.object({
28241
+ aspect: z40.preprocess((value) => value == null ? void 0 : value, z40.string().optional()),
28242
+ rect: z40.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
28243
+ hotspot: z40.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
28244
+ rotation: z40.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
28245
+ });
28246
+ var transformSchema2 = z40.object({
28247
+ aspectCrops: z40.preprocess((value) => {
27940
28248
  if (!value || typeof value !== "object" || Array.isArray(value)) {
27941
28249
  return void 0;
27942
28250
  }
27943
28251
  return value;
27944
- }, z39.record(z39.string(), aspectCropSchema2.catch({}))).optional(),
28252
+ }, z40.record(z40.string(), aspectCropSchema2.catch({}))).optional(),
27945
28253
  rect: rectSchema2.optional(),
27946
28254
  hotspot: hotspotSchema2.optional(),
27947
28255
  rotation: rotationSchema2.optional()
27948
28256
  });
27949
- var mediaPosterSchema = z39.discriminatedUnion("tag", [
27950
- z39.object({
27951
- tag: z39.literal("storage"),
27952
- assetId: z39.string().optional(),
27953
- storageBucket: z39.string().min(1),
27954
- storagePath: z39.string().min(1)
28257
+ var mediaPosterSchema = z40.discriminatedUnion("tag", [
28258
+ z40.object({
28259
+ tag: z40.literal("storage"),
28260
+ assetId: z40.string().optional(),
28261
+ storageBucket: z40.string().min(1),
28262
+ storagePath: z40.string().min(1)
27955
28263
  }),
27956
- z39.object({
27957
- tag: z39.literal("external-src"),
27958
- assetId: z39.string().optional(),
27959
- src: z39.string().url()
28264
+ z40.object({
28265
+ tag: z40.literal("external-src"),
28266
+ assetId: z40.string().optional(),
28267
+ src: z40.string().url()
27960
28268
  })
27961
28269
  ]);
27962
- var mediaBaseSchema = z39.object({
27963
- purpose: z39.string().optional(),
27964
- placeholder: z39.boolean().default(true).optional(),
27965
- assetId: z39.string().optional(),
27966
- identifier: z39.string().optional(),
27967
- src: z39.string().optional(),
27968
- alt: z39.string().optional(),
27969
- filename: z39.string().optional(),
27970
- mimeType: z39.string().optional(),
27971
- width: z39.number().optional(),
27972
- height: z39.number().optional(),
27973
- storageBucket: z39.string().optional(),
27974
- storagePath: z39.string().optional(),
28270
+ var mediaBaseSchema = z40.object({
28271
+ purpose: z40.string().optional(),
28272
+ placeholder: z40.boolean().default(true).optional(),
28273
+ assetId: z40.string().optional(),
28274
+ identifier: z40.string().optional(),
28275
+ src: z40.string().optional(),
28276
+ alt: z40.string().optional(),
28277
+ filename: z40.string().optional(),
28278
+ mimeType: z40.string().optional(),
28279
+ width: z40.number().optional(),
28280
+ height: z40.number().optional(),
28281
+ storageBucket: z40.string().optional(),
28282
+ storagePath: z40.string().optional(),
27975
28283
  poster: mediaPosterSchema.optional(),
27976
28284
  transform: transformSchema2.optional()
27977
28285
  });
27978
- var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
27979
- var videoMediaSchema = mediaBaseSchema.extend({ type: z39.literal("video") });
27980
- var audioMediaSchema = mediaBaseSchema.extend({ type: z39.literal("audio") });
27981
- var documentMediaSchema = mediaBaseSchema.extend({ type: z39.literal("document") });
27982
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z39.literal("spreadsheet") });
27983
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z39.literal("archive") });
27984
- var mediaSchema2 = z39.discriminatedUnion("type", [
28286
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z40.literal("image") });
28287
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z40.literal("video") });
28288
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z40.literal("audio") });
28289
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z40.literal("document") });
28290
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z40.literal("spreadsheet") });
28291
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z40.literal("archive") });
28292
+ var mediaSchema2 = z40.discriminatedUnion("type", [
27985
28293
  imageMediaSchema,
27986
28294
  videoMediaSchema,
27987
28295
  audioMediaSchema,
@@ -27991,372 +28299,372 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27991
28299
  ]);
27992
28300
 
27993
28301
  // ../blocks/src/system/manifest/richTextSchema.ts
27994
- import { z as z40 } from "zod";
27995
- var TipTapMarkSchema = z40.object({
27996
- type: z40.string(),
27997
- attrs: z40.record(z40.string(), z40.unknown()).optional()
27998
- });
27999
- var TipTapNodeSchema = z40.lazy(
28000
- () => z40.object({
28001
- type: z40.string(),
28002
- content: z40.array(TipTapNodeSchema).optional(),
28003
- text: z40.string().optional(),
28004
- attrs: z40.record(z40.string(), z40.unknown()).optional(),
28005
- marks: z40.array(TipTapMarkSchema).optional()
28302
+ import { z as z41 } from "zod";
28303
+ var TipTapMarkSchema = z41.object({
28304
+ type: z41.string(),
28305
+ attrs: z41.record(z41.string(), z41.unknown()).optional()
28306
+ });
28307
+ var TipTapNodeSchema = z41.lazy(
28308
+ () => z41.object({
28309
+ type: z41.string(),
28310
+ content: z41.array(TipTapNodeSchema).optional(),
28311
+ text: z41.string().optional(),
28312
+ attrs: z41.record(z41.string(), z41.unknown()).optional(),
28313
+ marks: z41.array(TipTapMarkSchema).optional()
28006
28314
  })
28007
28315
  );
28008
- var RichTextValueSchema = z40.union([
28316
+ var RichTextValueSchema = z41.union([
28009
28317
  // Canonical: TipTap document directly
28010
28318
  TipTapNodeSchema,
28011
28319
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
28012
- z40.object({
28320
+ z41.object({
28013
28321
  doc: TipTapNodeSchema
28014
28322
  })
28015
28323
  ]);
28016
- var RichTextDocSchema = z40.object({
28017
- type: z40.literal("doc"),
28018
- content: z40.array(TipTapNodeSchema)
28324
+ var RichTextDocSchema = z41.object({
28325
+ type: z41.literal("doc"),
28326
+ content: z41.array(TipTapNodeSchema)
28019
28327
  });
28020
28328
 
28021
28329
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
28022
- import { z as z41 } from "zod";
28023
- var bookingDepositRefundPolicySchema = z41.enum([
28330
+ import { z as z42 } from "zod";
28331
+ var bookingDepositRefundPolicySchema = z42.enum([
28024
28332
  "refundable",
28025
28333
  "non_refundable"
28026
28334
  ]);
28027
- var bookingInstalmentPlanSchema = z41.union([
28028
- z41.object({
28029
- kind: z41.literal("deposit_plus_one_remainder"),
28030
- depositAmountCents: z41.number().int().min(0),
28335
+ var bookingInstalmentPlanSchema = z42.union([
28336
+ z42.object({
28337
+ kind: z42.literal("deposit_plus_one_remainder"),
28338
+ depositAmountCents: z42.number().int().min(0),
28031
28339
  depositRefundability: bookingDepositRefundPolicySchema,
28032
- remainderDueCount: z41.number().int().positive(),
28033
- intervalUnit: z41.enum(["day", "week", "month"])
28340
+ remainderDueCount: z42.number().int().positive(),
28341
+ intervalUnit: z42.enum(["day", "week", "month"])
28034
28342
  }),
28035
- z41.object({
28036
- kind: z41.literal("deposit_plus_scheduled_instalments"),
28037
- depositAmountCents: z41.number().int().min(0),
28343
+ z42.object({
28344
+ kind: z42.literal("deposit_plus_scheduled_instalments"),
28345
+ depositAmountCents: z42.number().int().min(0),
28038
28346
  depositRefundability: bookingDepositRefundPolicySchema,
28039
- instalmentCount: z41.number().int().positive(),
28040
- intervalCount: z41.number().int().positive(),
28041
- intervalUnit: z41.enum(["day", "week", "month"])
28347
+ instalmentCount: z42.number().int().positive(),
28348
+ intervalCount: z42.number().int().positive(),
28349
+ intervalUnit: z42.enum(["day", "week", "month"])
28042
28350
  }),
28043
- z41.object({
28044
- kind: z41.literal("equal_scheduled_instalments"),
28045
- instalmentCount: z41.number().int().positive(),
28046
- intervalCount: z41.number().int().positive(),
28047
- intervalUnit: z41.enum(["day", "week", "month"])
28351
+ z42.object({
28352
+ kind: z42.literal("equal_scheduled_instalments"),
28353
+ instalmentCount: z42.number().int().positive(),
28354
+ intervalCount: z42.number().int().positive(),
28355
+ intervalUnit: z42.enum(["day", "week", "month"])
28048
28356
  })
28049
28357
  ]);
28050
- var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28051
- z41.object({
28052
- kind: z41.literal("relative_to_start_date"),
28053
- daysBeforeStart: z41.number().int().positive()
28358
+ var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
28359
+ z42.object({
28360
+ kind: z42.literal("relative_to_start_date"),
28361
+ daysBeforeStart: z42.number().int().positive()
28054
28362
  }),
28055
- z41.object({
28056
- kind: z41.literal("fixed_calendar_date"),
28057
- dueAt: z41.string().datetime()
28363
+ z42.object({
28364
+ kind: z42.literal("fixed_calendar_date"),
28365
+ dueAt: z42.string().datetime()
28058
28366
  })
28059
28367
  ]);
28060
- var bookingFlexibleBalanceConfigSchema = z41.object({
28061
- upfrontAmountCents: z41.number().int().min(0),
28368
+ var bookingFlexibleBalanceConfigSchema = z42.object({
28369
+ upfrontAmountCents: z42.number().int().min(0),
28062
28370
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
28063
28371
  depositRefundability: bookingDepositRefundPolicySchema
28064
28372
  });
28065
- var blockBookingPaymentCollectionOptionSchema = z41.union([
28066
- z41.object({
28067
- kind: z41.literal("upfront")
28373
+ var blockBookingPaymentCollectionOptionSchema = z42.union([
28374
+ z42.object({
28375
+ kind: z42.literal("upfront")
28068
28376
  }),
28069
- z41.object({
28070
- kind: z41.literal("deferred_manual")
28377
+ z42.object({
28378
+ kind: z42.literal("deferred_manual")
28071
28379
  }),
28072
- z41.object({
28073
- kind: z41.literal("instalment_plan"),
28380
+ z42.object({
28381
+ kind: z42.literal("instalment_plan"),
28074
28382
  plan: bookingInstalmentPlanSchema
28075
28383
  }),
28076
- z41.object({
28077
- kind: z41.literal("flexible_balance"),
28384
+ z42.object({
28385
+ kind: z42.literal("flexible_balance"),
28078
28386
  config: bookingFlexibleBalanceConfigSchema
28079
28387
  })
28080
28388
  ]);
28081
- var blockBookingPaymentTermsSchema = z41.object({
28082
- allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
28389
+ var blockBookingPaymentTermsSchema = z42.object({
28390
+ allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
28083
28391
  });
28084
28392
 
28085
28393
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
28086
- import { z as z42 } from "zod";
28087
- var courseVenueSchema = z42.object({
28088
- id: z42.string(),
28089
- name: z42.string(),
28090
- address: z42.string().nullable()
28091
- });
28092
- var courseSessionSchema = z42.object({
28093
- id: z42.string(),
28094
- startsAt: z42.string(),
28095
- endsAt: z42.string(),
28096
- timeZone: z42.string(),
28097
- capacityOverride: z42.number().nullable().optional(),
28098
- overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28099
- });
28100
- var courseTeamMemberSummarySchema = z42.object({
28101
- id: z42.string(),
28102
- name: z42.string(),
28103
- roleLabel: z42.string().nullable(),
28104
- summary: z42.string().nullable(),
28105
- profilePath: z42.string().nullable()
28106
- });
28107
- var coursePricingOptionSchema = z42.object({
28108
- id: z42.string(),
28109
- name: z42.string(),
28110
- description: z42.string().nullable(),
28111
- priceAmount: z42.number(),
28112
- isActive: z42.boolean(),
28113
- sortOrder: z42.number(),
28114
- capacityLimit: z42.number().nullable(),
28115
- saleStartsAt: z42.string().nullable(),
28116
- saleEndsAt: z42.string().nullable(),
28117
- attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28118
- });
28119
- var coursePricingSchema = z42.object({
28120
- bookingRequirement: z42.enum(["none", "required"]),
28121
- pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
28122
- currency: z42.string(),
28123
- singlePriceAmount: z42.number().nullable(),
28124
- slidingMinAmount: z42.number().nullable().optional(),
28125
- slidingMaxAmount: z42.number().nullable().optional(),
28126
- slidingSuggestedAmount: z42.number().nullable().optional(),
28394
+ import { z as z43 } from "zod";
28395
+ var courseVenueSchema = z43.object({
28396
+ id: z43.string(),
28397
+ name: z43.string(),
28398
+ address: z43.string().nullable()
28399
+ });
28400
+ var courseSessionSchema = z43.object({
28401
+ id: z43.string(),
28402
+ startsAt: z43.string(),
28403
+ endsAt: z43.string(),
28404
+ timeZone: z43.string(),
28405
+ capacityOverride: z43.number().nullable().optional(),
28406
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28407
+ });
28408
+ var courseTeamMemberSummarySchema = z43.object({
28409
+ id: z43.string(),
28410
+ name: z43.string(),
28411
+ roleLabel: z43.string().nullable(),
28412
+ summary: z43.string().nullable(),
28413
+ profilePath: z43.string().nullable()
28414
+ });
28415
+ var coursePricingOptionSchema = z43.object({
28416
+ id: z43.string(),
28417
+ name: z43.string(),
28418
+ description: z43.string().nullable(),
28419
+ priceAmount: z43.number(),
28420
+ isActive: z43.boolean(),
28421
+ sortOrder: z43.number(),
28422
+ capacityLimit: z43.number().nullable(),
28423
+ saleStartsAt: z43.string().nullable(),
28424
+ saleEndsAt: z43.string().nullable(),
28425
+ attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
28426
+ });
28427
+ var coursePricingSchema = z43.object({
28428
+ bookingRequirement: z43.enum(["none", "required"]),
28429
+ pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
28430
+ currency: z43.string(),
28431
+ singlePriceAmount: z43.number().nullable(),
28432
+ slidingMinAmount: z43.number().nullable().optional(),
28433
+ slidingMaxAmount: z43.number().nullable().optional(),
28434
+ slidingSuggestedAmount: z43.number().nullable().optional(),
28127
28435
  paymentTerms: blockBookingPaymentTermsSchema,
28128
- options: z42.array(coursePricingOptionSchema)
28129
- });
28130
- var publicCourseSchema = z42.object({
28131
- id: z42.string(),
28132
- title: z42.string(),
28133
- slug: z42.string(),
28134
- description: z42.unknown().nullable(),
28135
- teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28136
- enrollmentOpen: z42.boolean(),
28436
+ options: z43.array(coursePricingOptionSchema)
28437
+ });
28438
+ var publicCourseSchema = z43.object({
28439
+ id: z43.string(),
28440
+ title: z43.string(),
28441
+ slug: z43.string(),
28442
+ description: z43.unknown().nullable(),
28443
+ teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
28444
+ enrollmentOpen: z43.boolean(),
28137
28445
  pricing: coursePricingSchema.optional(),
28138
- priceCents: z42.number().nullable(),
28139
- currency: z42.string(),
28446
+ priceCents: z43.number().nullable(),
28447
+ currency: z43.string(),
28140
28448
  paymentTerms: blockBookingPaymentTermsSchema,
28141
- enrollmentCapacity: z42.number().nullable(),
28142
- acceptsMemberships: z42.boolean(),
28143
- status: z42.enum(["active", "draft", "cancelled"]),
28144
- sessionsCount: z42.number(),
28145
- enrolledCount: z42.number(),
28146
- availableSpots: z42.number().nullable(),
28147
- sessions: z42.array(courseSessionSchema),
28449
+ enrollmentCapacity: z43.number().nullable(),
28450
+ acceptsMemberships: z43.boolean(),
28451
+ status: z43.enum(["active", "draft", "cancelled"]),
28452
+ sessionsCount: z43.number(),
28453
+ enrolledCount: z43.number(),
28454
+ availableSpots: z43.number().nullable(),
28455
+ sessions: z43.array(courseSessionSchema),
28148
28456
  venue: courseVenueSchema.nullable(),
28149
- contentEntryId: z42.string().nullable()
28457
+ contentEntryId: z43.string().nullable()
28150
28458
  });
28151
- var publicCoursesArraySchema = z42.array(publicCourseSchema);
28459
+ var publicCoursesArraySchema = z43.array(publicCourseSchema);
28152
28460
 
28153
28461
  // ../blocks/src/system/blocks/events/shared/schemas.ts
28154
- var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28155
- var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28156
- var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28157
- var publicEventDestinationSchema = z43.discriminatedUnion("kind", [
28158
- z43.object({
28159
- kind: z43.literal("native"),
28462
+ var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
28463
+ var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
28464
+ var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
28465
+ var publicEventDestinationSchema = z44.discriminatedUnion("kind", [
28466
+ z44.object({
28467
+ kind: z44.literal("native"),
28160
28468
  mode: eventDestinationModeSchema,
28161
- path: z43.string()
28469
+ path: z44.string()
28162
28470
  }),
28163
- z43.object({
28164
- kind: z43.literal("external"),
28165
- url: z43.string(),
28166
- label: z43.string()
28471
+ z44.object({
28472
+ kind: z44.literal("external"),
28473
+ url: z44.string(),
28474
+ label: z44.string()
28167
28475
  })
28168
28476
  ]);
28169
- var eventVenueSchema = z43.object({
28170
- id: z43.string(),
28171
- name: z43.string(),
28172
- address: z43.string().nullable(),
28173
- location: z43.object({
28174
- lat: z43.number(),
28175
- lng: z43.number()
28477
+ var eventVenueSchema = z44.object({
28478
+ id: z44.string(),
28479
+ name: z44.string(),
28480
+ address: z44.string().nullable(),
28481
+ location: z44.object({
28482
+ lat: z44.number(),
28483
+ lng: z44.number()
28176
28484
  }).nullable()
28177
28485
  });
28178
- var eventCategorySchema = z43.object({
28179
- id: z43.string(),
28180
- name: z43.string(),
28181
- color: z43.string().nullable()
28182
- });
28183
- var pricingTypeSchema = z43.enum(["free", "paid", "external"]);
28184
- var accessRestrictionSchema = z43.enum(["none", "category"]);
28185
- var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28186
- var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28187
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28188
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28189
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28190
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28486
+ var eventCategorySchema = z44.object({
28487
+ id: z44.string(),
28488
+ name: z44.string(),
28489
+ color: z44.string().nullable()
28490
+ });
28491
+ var pricingTypeSchema = z44.enum(["free", "paid", "external"]);
28492
+ var accessRestrictionSchema = z44.enum(["none", "category"]);
28493
+ var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
28494
+ var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
28495
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28496
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28497
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28498
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28191
28499
  ]);
28192
- var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28193
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28194
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28195
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28196
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28197
- z43.object({
28198
- kind: z43.literal("mixed"),
28199
- paidFromAmount: z43.number(),
28200
- paidToAmount: z43.number(),
28201
- currency: z43.string()
28500
+ var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
28501
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28502
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28503
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28504
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28505
+ z44.object({
28506
+ kind: z44.literal("mixed"),
28507
+ paidFromAmount: z44.number(),
28508
+ paidToAmount: z44.number(),
28509
+ currency: z44.string()
28202
28510
  }),
28203
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28204
- z43.object({ kind: z43.literal("external"), label: z43.string() }),
28205
- z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28511
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
28512
+ z44.object({ kind: z44.literal("external"), label: z44.string() }),
28513
+ z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28206
28514
  ]);
28207
- var publicEventTicketTypePriceDisplaySchema = z43.union([
28208
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28209
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28210
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28211
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28212
- z43.object({
28213
- kind: z43.literal("mixed"),
28214
- paidFromAmount: z43.number(),
28215
- paidToAmount: z43.number(),
28216
- currency: z43.string()
28515
+ var publicEventTicketTypePriceDisplaySchema = z44.union([
28516
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28517
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28518
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28519
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28520
+ z44.object({
28521
+ kind: z44.literal("mixed"),
28522
+ paidFromAmount: z44.number(),
28523
+ paidToAmount: z44.number(),
28524
+ currency: z44.string()
28217
28525
  }),
28218
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28526
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28219
28527
  ]);
28220
- var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28221
- var publicEventAttendanceModeAvailabilitySchema = z43.object({
28528
+ var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
28529
+ var publicEventAttendanceModeAvailabilitySchema = z44.object({
28222
28530
  mode: publicEventAttendanceModeSchema,
28223
- capacity: z43.number().nullable(),
28224
- registeredCount: z43.number(),
28225
- availableSpots: z43.number().nullable(),
28226
- waitlistEnabled: z43.boolean()
28227
- });
28228
- var publicEventTicketTypeAvailabilitySchema = z43.union([
28229
- z43.object({
28230
- kind: z43.literal("available"),
28231
- remainingCapacity: z43.number().nullable()
28531
+ capacity: z44.number().nullable(),
28532
+ registeredCount: z44.number(),
28533
+ availableSpots: z44.number().nullable(),
28534
+ waitlistEnabled: z44.boolean()
28535
+ });
28536
+ var publicEventTicketTypeAvailabilitySchema = z44.union([
28537
+ z44.object({
28538
+ kind: z44.literal("available"),
28539
+ remainingCapacity: z44.number().nullable()
28232
28540
  }),
28233
- z43.object({
28234
- kind: z43.literal("unavailable"),
28235
- reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28236
- remainingCapacity: z43.number().nullable()
28541
+ z44.object({
28542
+ kind: z44.literal("unavailable"),
28543
+ reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28544
+ remainingCapacity: z44.number().nullable()
28237
28545
  })
28238
28546
  ]);
28239
- var publicEventTicketTypeSchema = z43.object({
28240
- id: z43.string(),
28241
- siteId: z43.string(),
28242
- eventSeriesId: z43.string(),
28243
- name: z43.string(),
28244
- description: z43.string().nullable(),
28245
- priceAmount: z43.number(),
28246
- isActive: z43.boolean(),
28247
- sortOrder: z43.number(),
28248
- capacityMode: z43.enum(["limited", "unlimited"]),
28249
- capacityLimit: z43.number().nullable(),
28250
- attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28251
- saleStartsAt: z43.string().nullable(),
28252
- saleEndsAt: z43.string().nullable(),
28547
+ var publicEventTicketTypeSchema = z44.object({
28548
+ id: z44.string(),
28549
+ siteId: z44.string(),
28550
+ eventSeriesId: z44.string(),
28551
+ name: z44.string(),
28552
+ description: z44.string().nullable(),
28553
+ priceAmount: z44.number(),
28554
+ isActive: z44.boolean(),
28555
+ sortOrder: z44.number(),
28556
+ capacityMode: z44.enum(["limited", "unlimited"]),
28557
+ capacityLimit: z44.number().nullable(),
28558
+ attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
28559
+ saleStartsAt: z44.string().nullable(),
28560
+ saleEndsAt: z44.string().nullable(),
28253
28561
  availability: publicEventTicketTypeAvailabilitySchema,
28254
- createdAt: z43.string(),
28255
- updatedAt: z43.string()
28256
- });
28257
- var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28258
- z43.object({
28259
- kind: z43.literal("drop_in"),
28260
- currency: z43.string(),
28261
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28562
+ createdAt: z44.string(),
28563
+ updatedAt: z44.string()
28564
+ });
28565
+ var publicEventPricingSchema = z44.discriminatedUnion("kind", [
28566
+ z44.object({
28567
+ kind: z44.literal("drop_in"),
28568
+ currency: z44.string(),
28569
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28262
28570
  }),
28263
- z43.object({
28264
- kind: z43.literal("free_registration"),
28265
- currency: z43.string(),
28266
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28571
+ z44.object({
28572
+ kind: z44.literal("free_registration"),
28573
+ currency: z44.string(),
28574
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28267
28575
  }),
28268
- z43.object({
28269
- kind: z43.literal("single_paid"),
28270
- amount: z43.number(),
28271
- currency: z43.string(),
28272
- display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28576
+ z44.object({
28577
+ kind: z44.literal("single_paid"),
28578
+ amount: z44.number(),
28579
+ currency: z44.string(),
28580
+ display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
28273
28581
  }),
28274
- z43.object({
28275
- kind: z43.literal("ticket_types"),
28276
- currency: z43.string(),
28277
- ticketTypes: z43.array(publicEventTicketTypeSchema),
28582
+ z44.object({
28583
+ kind: z44.literal("ticket_types"),
28584
+ currency: z44.string(),
28585
+ ticketTypes: z44.array(publicEventTicketTypeSchema),
28278
28586
  display: publicEventTicketTypePriceDisplaySchema
28279
28587
  }),
28280
- z43.object({
28281
- kind: z43.literal("sliding_scale"),
28282
- minAmount: z43.number(),
28283
- maxAmount: z43.number(),
28284
- suggestedAmount: z43.number().nullable(),
28285
- currency: z43.string(),
28286
- display: z43.object({
28287
- kind: z43.literal("range"),
28288
- minAmount: z43.number(),
28289
- maxAmount: z43.number(),
28290
- currency: z43.string()
28588
+ z44.object({
28589
+ kind: z44.literal("sliding_scale"),
28590
+ minAmount: z44.number(),
28591
+ maxAmount: z44.number(),
28592
+ suggestedAmount: z44.number().nullable(),
28593
+ currency: z44.string(),
28594
+ display: z44.object({
28595
+ kind: z44.literal("range"),
28596
+ minAmount: z44.number(),
28597
+ maxAmount: z44.number(),
28598
+ currency: z44.string()
28291
28599
  })
28292
28600
  }),
28293
- z43.object({
28294
- kind: z43.literal("course"),
28295
- display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28601
+ z44.object({
28602
+ kind: z44.literal("course"),
28603
+ display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28296
28604
  }),
28297
- z43.object({
28298
- kind: z43.literal("external"),
28299
- display: z43.object({ kind: z43.literal("external"), label: z43.string() })
28605
+ z44.object({
28606
+ kind: z44.literal("external"),
28607
+ display: z44.object({ kind: z44.literal("external"), label: z44.string() })
28300
28608
  })
28301
28609
  ]);
28302
- var publicTeamMemberSummarySchema = z43.object({
28303
- id: z43.string(),
28304
- name: z43.string(),
28305
- roleLabel: z43.string().nullable(),
28306
- summary: z43.string().nullable(),
28307
- profilePath: z43.string().nullable()
28610
+ var publicTeamMemberSummarySchema = z44.object({
28611
+ id: z44.string(),
28612
+ name: z44.string(),
28613
+ roleLabel: z44.string().nullable(),
28614
+ summary: z44.string().nullable(),
28615
+ profilePath: z44.string().nullable()
28308
28616
  });
28309
- var publicEventSchema = z43.object({
28310
- kind: z43.enum(["event", "course_session"]).optional(),
28617
+ var publicEventSchema = z44.object({
28618
+ kind: z44.enum(["event", "course_session"]).optional(),
28311
28619
  eventPreset: eventPresetSchema.optional(),
28312
28620
  eventDestinationMode: eventDestinationModeSchema.optional(),
28313
28621
  scheduleScope: eventScheduleScopeSchema.optional(),
28314
- id: z43.string(),
28315
- occurrenceId: z43.string(),
28316
- seriesId: z43.string(),
28317
- title: z43.string(),
28318
- description: z43.string().nullable(),
28319
- content: z43.object({
28622
+ id: z44.string(),
28623
+ occurrenceId: z44.string(),
28624
+ seriesId: z44.string(),
28625
+ title: z44.string(),
28626
+ description: z44.string().nullable(),
28627
+ content: z44.object({
28320
28628
  body: RichTextDocSchema.nullable().optional()
28321
28629
  }).optional(),
28322
- presentation: z43.object({
28323
- cardTitleOverride: z43.string().nullable().optional(),
28324
- summary: z43.string().nullable().optional(),
28630
+ presentation: z44.object({
28631
+ cardTitleOverride: z44.string().nullable().optional(),
28632
+ summary: z44.string().nullable().optional(),
28325
28633
  image: mediaSchema2.nullable().optional()
28326
28634
  }).optional(),
28327
- slug: z43.string(),
28328
- path: z43.string().nullable(),
28635
+ slug: z44.string(),
28636
+ path: z44.string().nullable(),
28329
28637
  destination: publicEventDestinationSchema,
28330
- requiresRegistration: z43.boolean(),
28331
- deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28332
- attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28333
- startsAt: z43.string(),
28334
- endsAt: z43.string(),
28335
- capacity: z43.number().nullable(),
28336
- registeredCount: z43.number(),
28337
- availableSpots: z43.number().nullable(),
28338
- waitlistEnabled: z43.boolean(),
28638
+ requiresRegistration: z44.boolean(),
28639
+ deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
28640
+ attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
28641
+ startsAt: z44.string(),
28642
+ endsAt: z44.string(),
28643
+ capacity: z44.number().nullable(),
28644
+ registeredCount: z44.number(),
28645
+ availableSpots: z44.number().nullable(),
28646
+ waitlistEnabled: z44.boolean(),
28339
28647
  venue: eventVenueSchema.nullable(),
28340
28648
  eventCategory: eventCategorySchema.nullable(),
28341
- teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28342
- status: z43.enum(["active", "draft", "archived"]).optional(),
28343
- timeZone: z43.string(),
28649
+ teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
28650
+ status: z44.enum(["active", "draft", "archived"]).optional(),
28651
+ timeZone: z44.string(),
28344
28652
  pricing: publicEventPricingSchema,
28345
28653
  paymentTerms: blockBookingPaymentTermsSchema,
28346
28654
  accessRestriction: accessRestrictionSchema,
28347
- allowedCategoryIds: z43.array(z43.string()),
28348
- requireGuestDetails: z43.boolean().optional(),
28349
- acceptsPasses: z43.boolean().optional(),
28350
- acceptsMemberships: z43.boolean().optional(),
28351
- course: z43.object({
28352
- id: z43.string(),
28655
+ allowedCategoryIds: z44.array(z44.string()),
28656
+ requireGuestDetails: z44.boolean().optional(),
28657
+ acceptsPasses: z44.boolean().optional(),
28658
+ acceptsMemberships: z44.boolean().optional(),
28659
+ course: z44.object({
28660
+ id: z44.string(),
28353
28661
  pricing: coursePricingSchema.optional(),
28354
- priceCents: z43.number().nullable(),
28355
- currency: z43.string(),
28356
- enrollmentOpen: z43.boolean()
28662
+ priceCents: z44.number().nullable(),
28663
+ currency: z44.string(),
28664
+ enrollmentOpen: z44.boolean()
28357
28665
  }).nullable().optional()
28358
28666
  });
28359
- var publicEventsArraySchema = z43.array(publicEventSchema);
28667
+ var publicEventsArraySchema = z44.array(publicEventSchema);
28360
28668
 
28361
28669
  // ../blocks/src/system/blocks/events/shared/fields.ts
28362
28670
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28559,52 +28867,80 @@ function normalizeEventStaffMemberId(value) {
28559
28867
  return trimmed ? trimmed : null;
28560
28868
  }
28561
28869
 
28870
+ // ../blocks/src/system/blocks/events/shared/layout.ts
28871
+ var recoverEmptyHeadingWhenActive = {
28872
+ kind: "recover-empty-when-active",
28873
+ placeholder: "Add heading"
28874
+ };
28875
+ var recoverEmptyDescriptionWhenActive = {
28876
+ kind: "recover-empty-when-active",
28877
+ placeholder: "Add description"
28878
+ };
28879
+ function eventSectionHeaderLayoutNodes() {
28880
+ return [
28881
+ text(
28882
+ { as: "h2" },
28883
+ bind("content.heading"),
28884
+ when("content.heading", {
28885
+ authoringPresence: recoverEmptyHeadingWhenActive
28886
+ })
28887
+ ),
28888
+ richText(
28889
+ { className: "rb-prose rb-max-w-none" },
28890
+ bind("content.description"),
28891
+ when("content.description", {
28892
+ authoringPresence: recoverEmptyDescriptionWhenActive
28893
+ })
28894
+ )
28895
+ ];
28896
+ }
28897
+
28562
28898
  // ../blocks/src/system/blocks/shop.shared.ts
28563
- import { z as z44 } from "zod";
28564
- var publicPassProductSchema = z44.object({
28565
- id: z44.string(),
28566
- productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28567
- name: z44.string(),
28568
- description: z44.string().nullable(),
28569
- price: z44.number(),
28570
- currency: z44.string(),
28571
- creditsTotal: z44.number(),
28572
- pricePerCredit: z44.number(),
28573
- validDays: z44.number().nullable(),
28574
- eligibleCategoryIds: z44.array(z44.string()),
28575
- eligibleCategoryNames: z44.array(z44.string())
28576
- });
28577
- var publicPassProductCollectionSchema = z44.object({
28578
- passes: z44.array(publicPassProductSchema)
28579
- });
28580
- var publicMembershipProductSchema = z44.object({
28581
- id: z44.string(),
28582
- name: z44.string(),
28583
- description: z44.string().nullable(),
28584
- price: z44.number(),
28585
- currency: z44.string(),
28586
- billingInterval: z44.enum(["month", "year"]),
28587
- eligibleCategoryIds: z44.array(z44.string()),
28588
- eligibleCategoryNames: z44.array(z44.string())
28899
+ import { z as z45 } from "zod";
28900
+ var publicPassProductSchema = z45.object({
28901
+ id: z45.string(),
28902
+ productUseCase: z45.enum(["event_pass", "appointment_package"]).default("event_pass"),
28903
+ name: z45.string(),
28904
+ description: z45.string().nullable(),
28905
+ price: z45.number(),
28906
+ currency: z45.string(),
28907
+ creditsTotal: z45.number(),
28908
+ pricePerCredit: z45.number(),
28909
+ validDays: z45.number().nullable(),
28910
+ eligibleCategoryIds: z45.array(z45.string()),
28911
+ eligibleCategoryNames: z45.array(z45.string())
28912
+ });
28913
+ var publicPassProductCollectionSchema = z45.object({
28914
+ passes: z45.array(publicPassProductSchema)
28915
+ });
28916
+ var publicMembershipProductSchema = z45.object({
28917
+ id: z45.string(),
28918
+ name: z45.string(),
28919
+ description: z45.string().nullable(),
28920
+ price: z45.number(),
28921
+ currency: z45.string(),
28922
+ billingInterval: z45.enum(["month", "year"]),
28923
+ eligibleCategoryIds: z45.array(z45.string()),
28924
+ eligibleCategoryNames: z45.array(z45.string())
28589
28925
  });
28590
- var publicMembershipProductCollectionSchema = z44.object({
28591
- memberships: z44.array(publicMembershipProductSchema)
28926
+ var publicMembershipProductCollectionSchema = z45.object({
28927
+ memberships: z45.array(publicMembershipProductSchema)
28592
28928
  });
28593
28929
 
28594
28930
  // ../blocks/src/system/blocks/event-registration.shared.ts
28595
- import { z as z45 } from "zod";
28596
- var occurrenceContextSchema = z45.object({
28597
- id: z45.string(),
28598
- seriesId: z45.string(),
28599
- startsAt: z45.string(),
28600
- endsAt: z45.string(),
28601
- timeZone: z45.string(),
28602
- capacityOverride: z45.number().nullable().optional(),
28603
- overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28931
+ import { z as z46 } from "zod";
28932
+ var occurrenceContextSchema = z46.object({
28933
+ id: z46.string(),
28934
+ seriesId: z46.string(),
28935
+ startsAt: z46.string(),
28936
+ endsAt: z46.string(),
28937
+ timeZone: z46.string(),
28938
+ capacityOverride: z46.number().nullable().optional(),
28939
+ overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
28604
28940
  }).nullable();
28605
28941
 
28606
28942
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28607
- import { z as z47 } from "zod";
28943
+ import { z as z48 } from "zod";
28608
28944
 
28609
28945
  // ../blocks/src/system/constants/events.ts
28610
28946
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28791,17 +29127,17 @@ function readAmount(value) {
28791
29127
  }
28792
29128
 
28793
29129
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28794
- import { z as z46 } from "zod";
28795
- var previewStageSchema = z46.enum(["preview", "published"]);
28796
- var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28797
- var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28798
- var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28799
- var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28800
- var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28801
- var columnOptionSchema = z46.enum(["2", "3", "4"]);
28802
- var weekStartSchema = z46.enum(["sunday", "monday"]);
28803
- var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28804
- var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
29130
+ import { z as z47 } from "zod";
29131
+ var previewStageSchema = z47.enum(["preview", "published"]);
29132
+ var registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
29133
+ var eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
29134
+ var eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
29135
+ var eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
29136
+ var eventCalendarDefaultViewSchema = z47.enum(eventCalendarDefaultViewValues);
29137
+ var columnOptionSchema = z47.enum(["2", "3", "4"]);
29138
+ var weekStartSchema = z47.enum(["sunday", "monday"]);
29139
+ var filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
29140
+ var calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
28805
29141
 
28806
29142
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28807
29143
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28861,72 +29197,72 @@ function toRegistrationEvents(events) {
28861
29197
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28862
29198
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28863
29199
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28864
- var contentEntrySchema = z47.object({
28865
- id: z47.string(),
28866
- slug: z47.string(),
28867
- contentTypeSlug: z47.string()
29200
+ var contentEntrySchema = z48.object({
29201
+ id: z48.string(),
29202
+ slug: z48.string(),
29203
+ contentTypeSlug: z48.string()
28868
29204
  });
28869
- var eventRegistrationPublicEventSchema = z47.preprocess(
29205
+ var eventRegistrationPublicEventSchema = z48.preprocess(
28870
29206
  normalizeEventRegistrationEventInput,
28871
29207
  publicEventSchema
28872
29208
  );
28873
- var eventRegistrationSourceSchema = z47.object({
28874
- siteId: z47.string().optional(),
28875
- apiBaseUrl: z47.string().optional(),
28876
- portalToken: z47.string().nullable().optional(),
28877
- previewToken: z47.string().nullable().optional(),
29209
+ var eventRegistrationSourceSchema = z48.object({
29210
+ siteId: z48.string().optional(),
29211
+ apiBaseUrl: z48.string().optional(),
29212
+ portalToken: z48.string().nullable().optional(),
29213
+ previewToken: z48.string().nullable().optional(),
28878
29214
  occurrenceContext: occurrenceContextSchema.optional(),
28879
29215
  contentEntry: contentEntrySchema.nullable().optional(),
28880
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28881
- className: z47.string().nullable().optional(),
28882
- buttonText: z47.string().nullable().optional(),
28883
- maxTickets: z47.string().nullable().optional(),
28884
- showVenue: z47.boolean().optional(),
28885
- showCapacity: z47.boolean().optional(),
28886
- successMessage: z47.string().optional(),
28887
- waitlistMessage: z47.string().optional(),
29216
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29217
+ className: z48.string().nullable().optional(),
29218
+ buttonText: z48.string().nullable().optional(),
29219
+ maxTickets: z48.string().nullable().optional(),
29220
+ showVenue: z48.boolean().optional(),
29221
+ showCapacity: z48.boolean().optional(),
29222
+ successMessage: z48.string().optional(),
29223
+ waitlistMessage: z48.string().optional(),
28888
29224
  buttonVariant: registrationButtonVariantSchema.optional(),
28889
- overlayEnabled: z47.boolean().optional(),
28890
- spamProtectionEnabled: z47.boolean().optional(),
29225
+ overlayEnabled: z48.boolean().optional(),
29226
+ spamProtectionEnabled: z48.boolean().optional(),
28891
29227
  stage: previewStageSchema.optional(),
28892
- supportEmail: z47.string().optional(),
29228
+ supportEmail: z48.string().optional(),
28893
29229
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28894
29230
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28895
29231
  });
28896
- var eventRegistrationDisplaySchema = z47.object({
28897
- kind: z47.literal("event-registration"),
28898
- state: z47.literal("generic-shell"),
28899
- className: z47.string().nullable(),
28900
- titleText: z47.string(),
28901
- bodyText: z47.string(),
28902
- stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28903
- summaryButtonText: z47.string()
29232
+ var eventRegistrationDisplaySchema = z48.object({
29233
+ kind: z48.literal("event-registration"),
29234
+ state: z48.literal("generic-shell"),
29235
+ className: z48.string().nullable(),
29236
+ titleText: z48.string(),
29237
+ bodyText: z48.string(),
29238
+ stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
29239
+ summaryButtonText: z48.string()
28904
29240
  });
28905
- var eventRegistrationHydrationSchema = z47.object({
29241
+ var eventRegistrationHydrationSchema = z48.object({
28906
29242
  occurrenceContext: occurrenceContextSchema.optional(),
28907
29243
  contentEntry: contentEntrySchema.nullable().optional(),
28908
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28909
- maxTickets: z47.string().optional(),
28910
- showVenue: z47.boolean().optional(),
28911
- showCapacity: z47.boolean().optional(),
28912
- successMessage: z47.string().optional(),
28913
- waitlistMessage: z47.string().optional(),
29244
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29245
+ maxTickets: z48.string().optional(),
29246
+ showVenue: z48.boolean().optional(),
29247
+ showCapacity: z48.boolean().optional(),
29248
+ successMessage: z48.string().optional(),
29249
+ waitlistMessage: z48.string().optional(),
28914
29250
  buttonVariant: registrationButtonVariantSchema.optional(),
28915
- overlayEnabled: z47.boolean().optional(),
28916
- spamProtectionEnabled: z47.boolean().optional(),
28917
- supportEmail: z47.string().optional(),
29251
+ overlayEnabled: z48.boolean().optional(),
29252
+ spamProtectionEnabled: z48.boolean().optional(),
29253
+ supportEmail: z48.string().optional(),
28918
29254
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28919
29255
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28920
29256
  });
28921
- var eventRegistrationRenderSchema = z47.object({
29257
+ var eventRegistrationRenderSchema = z48.object({
28922
29258
  display: eventRegistrationDisplaySchema,
28923
29259
  hydration: eventRegistrationHydrationSchema
28924
29260
  });
28925
- var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28926
- siteId: z47.string().optional(),
28927
- apiBaseUrl: z47.string().optional(),
28928
- portalToken: z47.string().nullable().optional(),
28929
- previewToken: z47.string().nullable().optional(),
29261
+ var eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
29262
+ siteId: z48.string().optional(),
29263
+ apiBaseUrl: z48.string().optional(),
29264
+ portalToken: z48.string().nullable().optional(),
29265
+ previewToken: z48.string().nullable().optional(),
28930
29266
  stage: previewStageSchema.optional()
28931
29267
  }));
28932
29268
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29277,73 +29613,73 @@ var eventRegistrationBlockDefinition = {
29277
29613
  };
29278
29614
 
29279
29615
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
29280
- import { z as z48 } from "zod";
29281
- var contentEntrySchema2 = z48.object({
29282
- id: z48.string(),
29283
- slug: z48.string(),
29284
- contentTypeSlug: z48.string()
29285
- });
29286
- var courseEntrySubrouteContextSchema = z48.union([
29287
- z48.object({
29288
- kind: z48.literal("course-run"),
29289
- run: z48.object({
29290
- courseId: z48.string(),
29291
- seriesId: z48.string(),
29292
- runSlug: z48.string(),
29293
- runName: z48.string().nullable()
29616
+ import { z as z49 } from "zod";
29617
+ var contentEntrySchema2 = z49.object({
29618
+ id: z49.string(),
29619
+ slug: z49.string(),
29620
+ contentTypeSlug: z49.string()
29621
+ });
29622
+ var courseEntrySubrouteContextSchema = z49.union([
29623
+ z49.object({
29624
+ kind: z49.literal("course-run"),
29625
+ run: z49.object({
29626
+ courseId: z49.string(),
29627
+ seriesId: z49.string(),
29628
+ runSlug: z49.string(),
29629
+ runName: z49.string().nullable()
29294
29630
  })
29295
29631
  }),
29296
- z48.object({
29297
- kind: z48.literal("event-occurrence"),
29632
+ z49.object({
29633
+ kind: z49.literal("event-occurrence"),
29298
29634
  occurrence: occurrenceContextSchema
29299
29635
  })
29300
29636
  ]);
29301
- var courseRegistrationSourceSchema = z48.object({
29302
- siteId: z48.string().optional(),
29303
- apiBaseUrl: z48.string().optional(),
29304
- portalToken: z48.string().nullable().optional(),
29637
+ var courseRegistrationSourceSchema = z49.object({
29638
+ siteId: z49.string().optional(),
29639
+ apiBaseUrl: z49.string().optional(),
29640
+ portalToken: z49.string().nullable().optional(),
29305
29641
  contentEntry: contentEntrySchema2.nullable().optional(),
29306
29642
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29307
- courses: z48.array(publicCourseSchema).nullable().optional(),
29308
- className: z48.string().nullable().optional(),
29309
- showSessions: z48.boolean().optional(),
29310
- showPrice: z48.boolean().optional(),
29311
- showCapacity: z48.boolean().optional(),
29312
- showVenue: z48.boolean().optional(),
29313
- successMessage: z48.string().optional(),
29314
- waitlistMessage: z48.string().optional(),
29315
- membershipMessage: z48.string().optional(),
29316
- buttonText: z48.string().nullable().optional(),
29643
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29644
+ className: z49.string().nullable().optional(),
29645
+ showSessions: z49.boolean().optional(),
29646
+ showPrice: z49.boolean().optional(),
29647
+ showCapacity: z49.boolean().optional(),
29648
+ showVenue: z49.boolean().optional(),
29649
+ successMessage: z49.string().optional(),
29650
+ waitlistMessage: z49.string().optional(),
29651
+ membershipMessage: z49.string().optional(),
29652
+ buttonText: z49.string().nullable().optional(),
29317
29653
  buttonVariant: registrationButtonVariantSchema.optional(),
29318
29654
  stage: previewStageSchema.optional()
29319
29655
  });
29320
- var courseRegistrationDisplaySchema = z48.object({
29321
- kind: z48.literal("course-registration"),
29322
- state: z48.literal("shell"),
29323
- className: z48.string().nullable(),
29324
- summaryButtonText: z48.string()
29656
+ var courseRegistrationDisplaySchema = z49.object({
29657
+ kind: z49.literal("course-registration"),
29658
+ state: z49.literal("shell"),
29659
+ className: z49.string().nullable(),
29660
+ summaryButtonText: z49.string()
29325
29661
  });
29326
- var courseRegistrationHydrationSchema = z48.object({
29662
+ var courseRegistrationHydrationSchema = z49.object({
29327
29663
  contentEntry: contentEntrySchema2.nullable().optional(),
29328
29664
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29329
- courses: z48.array(publicCourseSchema).nullable().optional(),
29330
- showSessions: z48.boolean().optional(),
29331
- showPrice: z48.boolean().optional(),
29332
- showCapacity: z48.boolean().optional(),
29333
- showVenue: z48.boolean().optional(),
29334
- successMessage: z48.string().optional(),
29335
- waitlistMessage: z48.string().optional(),
29336
- membershipMessage: z48.string().optional(),
29665
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29666
+ showSessions: z49.boolean().optional(),
29667
+ showPrice: z49.boolean().optional(),
29668
+ showCapacity: z49.boolean().optional(),
29669
+ showVenue: z49.boolean().optional(),
29670
+ successMessage: z49.string().optional(),
29671
+ waitlistMessage: z49.string().optional(),
29672
+ membershipMessage: z49.string().optional(),
29337
29673
  buttonVariant: registrationButtonVariantSchema.optional()
29338
29674
  });
29339
- var courseRegistrationRenderSchema = z48.object({
29675
+ var courseRegistrationRenderSchema = z49.object({
29340
29676
  display: courseRegistrationDisplaySchema,
29341
29677
  hydration: courseRegistrationHydrationSchema
29342
29678
  });
29343
- var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29344
- siteId: z48.string().optional(),
29345
- apiBaseUrl: z48.string().optional(),
29346
- portalToken: z48.string().nullable().optional(),
29679
+ var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
29680
+ siteId: z49.string().optional(),
29681
+ apiBaseUrl: z49.string().optional(),
29682
+ portalToken: z49.string().nullable().optional(),
29347
29683
  stage: previewStageSchema.optional()
29348
29684
  }));
29349
29685
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29603,7 +29939,7 @@ var courseRegistrationBlockDefinition = {
29603
29939
  };
29604
29940
 
29605
29941
  // ../blocks/src/system/blocks/event-details.ts
29606
- import { z as z49 } from "zod";
29942
+ import { z as z50 } from "zod";
29607
29943
  var eventDetailsManifest = createBlockManifest({
29608
29944
  id: "block.event-details",
29609
29945
  version: "1.0.0",
@@ -29735,37 +30071,37 @@ var eventDetailsManifest = createBlockManifest({
29735
30071
  })
29736
30072
  ]
29737
30073
  });
29738
- var occurrenceContextSchema2 = z49.object({
29739
- id: z49.string(),
29740
- seriesId: z49.string(),
29741
- startsAt: z49.string(),
29742
- endsAt: z49.string(),
29743
- timeZone: z49.string(),
29744
- capacityOverride: z49.number().nullable().optional(),
29745
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
30074
+ var occurrenceContextSchema2 = z50.object({
30075
+ id: z50.string(),
30076
+ seriesId: z50.string(),
30077
+ startsAt: z50.string(),
30078
+ endsAt: z50.string(),
30079
+ timeZone: z50.string(),
30080
+ capacityOverride: z50.number().nullable().optional(),
30081
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29746
30082
  }).nullable();
29747
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29748
- id: z49.string(),
29749
- publicLabel: z49.string(),
29750
- description: z49.string().nullable(),
29751
- minTicketsRequired: z49.number().nullable()
30083
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
30084
+ id: z50.string(),
30085
+ publicLabel: z50.string(),
30086
+ description: z50.string().nullable(),
30087
+ minTicketsRequired: z50.number().nullable()
29752
30088
  });
29753
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
30089
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29754
30090
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29755
- discountType: z49.literal("percent"),
29756
- discountPercent: z49.number(),
29757
- discountAmountCents: z49.null()
30091
+ discountType: z50.literal("percent"),
30092
+ discountPercent: z50.number(),
30093
+ discountAmountCents: z50.null()
29758
30094
  }),
29759
30095
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29760
- discountType: z49.literal("fixed"),
29761
- discountPercent: z49.null(),
29762
- discountAmountCents: z49.number()
30096
+ discountType: z50.literal("fixed"),
30097
+ discountPercent: z50.null(),
30098
+ discountAmountCents: z50.number()
29763
30099
  })
29764
30100
  ]);
29765
30101
  var eventDetailsBlockDefinition = {
29766
30102
  manifest: eventDetailsManifest,
29767
30103
  dataSchemas: {
29768
- eventDetailsData: z49.object({
30104
+ eventDetailsData: z50.object({
29769
30105
  events: publicEventsArraySchema,
29770
30106
  sitePasses: publicPassProductCollectionSchema,
29771
30107
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -30020,18 +30356,7 @@ var eventSpotlightFields = [
30020
30356
  var eventSpotlightLayout = [
30021
30357
  styledSection({
30022
30358
  children: sectionContainer([
30023
- // Optional heading
30024
- text(
30025
- { as: "h2" },
30026
- bind("content.heading"),
30027
- when("content.heading")
30028
- ),
30029
- // Optional description
30030
- richText(
30031
- { className: "rb-prose rb-max-w-none" },
30032
- bind("content.description"),
30033
- when("content.description")
30034
- ),
30359
+ ...eventSectionHeaderLayoutNodes(),
30035
30360
  // Event spotlight component
30036
30361
  el("event-spotlight", {
30037
30362
  events: { $bind: { from: "data.events" } },
@@ -30092,7 +30417,7 @@ var eventSpotlightBlockDefinition = {
30092
30417
  };
30093
30418
 
30094
30419
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30095
- import { z as z51 } from "zod";
30420
+ import { z as z52 } from "zod";
30096
30421
 
30097
30422
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
30098
30423
  var COLUMN_CLASSES = {
@@ -30200,16 +30525,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30200
30525
  }
30201
30526
 
30202
30527
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30203
- import { z as z50 } from "zod";
30528
+ import { z as z51 } from "zod";
30204
30529
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30205
- var eventPageSizeSchema = z50.union([
30206
- z50.literal(3),
30207
- z50.literal(6),
30208
- z50.literal(10),
30209
- z50.literal(12),
30210
- z50.literal(20),
30211
- z50.literal(24),
30212
- z50.literal(30)
30530
+ var eventPageSizeSchema = z51.union([
30531
+ z51.literal(3),
30532
+ z51.literal(6),
30533
+ z51.literal(10),
30534
+ z51.literal(12),
30535
+ z51.literal(20),
30536
+ z51.literal(24),
30537
+ z51.literal(30)
30213
30538
  ]);
30214
30539
  var eventPageSizeSet = new Set(eventPageSizeValues);
30215
30540
  function resolveEventPageSize(value, fallback = 12) {
@@ -30219,15 +30544,15 @@ function resolveEventPageSize(value, fallback = 12) {
30219
30544
  function resolveEventCalendarListPageSize(input) {
30220
30545
  return resolveEventPageSize(input.eventsPerPage);
30221
30546
  }
30222
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30223
- z50.object({
30224
- kind: z50.literal("loadMore"),
30225
- label: z50.string()
30547
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30548
+ z51.object({
30549
+ kind: z51.literal("loadMore"),
30550
+ label: z51.string()
30226
30551
  }),
30227
- z50.object({
30228
- kind: z50.literal("seeAllLink"),
30229
- label: z50.string(),
30230
- href: z50.string()
30552
+ z51.object({
30553
+ kind: z51.literal("seeAllLink"),
30554
+ label: z51.string(),
30555
+ href: z51.string()
30231
30556
  })
30232
30557
  ]);
30233
30558
  function resolveEventListPaginationAction(input) {
@@ -30240,89 +30565,89 @@ function resolveEventListPaginationAction(input) {
30240
30565
  }
30241
30566
 
30242
30567
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30243
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30244
- var eventCardVariantInputSchema = z51.union([
30568
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30569
+ var eventCardVariantInputSchema = z52.union([
30245
30570
  cardVariantRoleSchema,
30246
30571
  legacyEventCardVariantSchema
30247
30572
  ]);
30248
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30249
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30250
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30251
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30252
- var eventListingSourceSchema = z51.object({
30253
- events: z51.array(publicEventSchema).nullable().optional(),
30254
- siteId: z51.string(),
30255
- apiBaseUrl: z51.string().optional(),
30573
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30574
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30575
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30576
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30577
+ var eventListingSourceSchema = z52.object({
30578
+ events: z52.array(publicEventSchema).nullable().optional(),
30579
+ siteId: z52.string(),
30580
+ apiBaseUrl: z52.string().optional(),
30256
30581
  stage: previewStageSchema.optional(),
30257
30582
  layout: eventLayoutSchema.optional(),
30258
30583
  columns: columnOptionSchema.optional(),
30259
- eventsPerPage: z51.string().optional(),
30260
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30261
- seeAllUrl: z51.string().optional(),
30262
- loadMoreText: z51.string().optional(),
30584
+ eventsPerPage: z52.string().optional(),
30585
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30586
+ seeAllUrl: z52.string().optional(),
30587
+ loadMoreText: z52.string().optional(),
30263
30588
  cardVariant: eventCardVariantInputSchema.optional(),
30264
30589
  buttonVariant: eventButtonVariantSchema.optional(),
30265
- buttonText: z51.string().optional(),
30266
- showVenue: z51.boolean().optional(),
30267
- showMap: z51.boolean().optional(),
30268
- showCapacity: z51.boolean().optional(),
30269
- emptyMessage: z51.string().optional(),
30270
- className: z51.string().optional(),
30271
- showFilters: z51.boolean().nullable().optional(),
30590
+ buttonText: z52.string().optional(),
30591
+ showVenue: z52.boolean().optional(),
30592
+ showMap: z52.boolean().optional(),
30593
+ showCapacity: z52.boolean().optional(),
30594
+ emptyMessage: z52.string().optional(),
30595
+ className: z52.string().optional(),
30596
+ showFilters: z52.boolean().nullable().optional(),
30272
30597
  showCategoryFilter: filterAutoShowSchema.optional(),
30273
- showVenueFilter: z51.boolean().nullable().optional(),
30274
- showStaffFilter: z51.boolean().nullable().optional(),
30598
+ showVenueFilter: z52.boolean().nullable().optional(),
30599
+ showStaffFilter: z52.boolean().nullable().optional(),
30275
30600
  eventKind: eventBlockKindSchema.nullable().optional(),
30276
30601
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30277
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30602
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30278
30603
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30279
- filterCategoryIds: z51.string().nullable().optional(),
30280
- filterStaffMemberId: z51.string().nullable().optional(),
30281
- filterVenueId: z51.string().nullable().optional()
30604
+ filterCategoryIds: z52.string().nullable().optional(),
30605
+ filterStaffMemberId: z52.string().nullable().optional(),
30606
+ filterVenueId: z52.string().nullable().optional()
30282
30607
  });
30283
- var eventListingDisplaySchema = z51.object({
30284
- kind: z51.literal("event-listing"),
30285
- state: z51.enum(["loading", "empty", "ready"]),
30608
+ var eventListingDisplaySchema = z52.object({
30609
+ kind: z52.literal("event-listing"),
30610
+ state: z52.enum(["loading", "empty", "ready"]),
30286
30611
  listLayout: eventLayoutSchema,
30287
- className: z51.string().nullable(),
30288
- emptyMessage: z51.string(),
30289
- loadingMessage: z51.string(),
30290
- containerClass: z51.string(),
30612
+ className: z52.string().nullable(),
30613
+ emptyMessage: z52.string(),
30614
+ loadingMessage: z52.string(),
30615
+ containerClass: z52.string(),
30291
30616
  cardVariant: cardVariantRoleSchema,
30292
30617
  buttonVariant: eventButtonVariantSchema,
30293
- buttonText: z51.string(),
30294
- showVenue: z51.boolean(),
30295
- showMap: z51.boolean(),
30296
- showCapacity: z51.boolean(),
30618
+ buttonText: z52.string(),
30619
+ showVenue: z52.boolean(),
30620
+ showMap: z52.boolean(),
30621
+ showCapacity: z52.boolean(),
30297
30622
  orientation: cardOrientationSchema,
30298
- events: z51.array(publicEventSchema)
30623
+ events: z52.array(publicEventSchema)
30299
30624
  });
30300
- var eventListingHydrationSchema = z51.object({
30301
- siteId: z51.string(),
30625
+ var eventListingHydrationSchema = z52.object({
30626
+ siteId: z52.string(),
30302
30627
  stage: previewStageSchema.optional(),
30303
30628
  eventsPerPage: eventPageSizeSchema,
30304
30629
  paginationAction: eventListPaginationActionSchema,
30305
- showFilters: z51.boolean(),
30630
+ showFilters: z52.boolean(),
30306
30631
  showCategoryFilter: filterAutoShowSchema,
30307
- showVenueFilter: z51.boolean(),
30308
- showStaffFilter: z51.boolean(),
30632
+ showVenueFilter: z52.boolean(),
30633
+ showStaffFilter: z52.boolean(),
30309
30634
  eventKind: eventBlockKindSchema,
30310
30635
  eventSurface: eventSurfaceScopeSchema,
30311
- filterEventPresets: z51.string().nullable(),
30636
+ filterEventPresets: z52.string().nullable(),
30312
30637
  scheduleScope: eventScheduleScopeSchema2,
30313
- filterCategoryIds: z51.string().nullable().optional(),
30314
- filterStaffMemberId: z51.string().nullable().optional(),
30315
- filterVenueId: z51.string().nullable().optional(),
30316
- fetchInitialEventsOnMount: z51.boolean()
30638
+ filterCategoryIds: z52.string().nullable().optional(),
30639
+ filterStaffMemberId: z52.string().nullable().optional(),
30640
+ filterVenueId: z52.string().nullable().optional(),
30641
+ fetchInitialEventsOnMount: z52.boolean()
30317
30642
  });
30318
- var eventListingRenderSchema = z51.object({
30643
+ var eventListingRenderSchema = z52.object({
30319
30644
  display: eventListingDisplaySchema,
30320
30645
  hydration: eventListingHydrationSchema
30321
30646
  });
30322
30647
  var eventListingIslandMetaCodec = createZodCodec(
30323
- z51.object({
30324
- siteId: z51.string(),
30325
- apiBaseUrl: z51.string().optional(),
30648
+ z52.object({
30649
+ siteId: z52.string(),
30650
+ apiBaseUrl: z52.string().optional(),
30326
30651
  stage: previewStageSchema.optional()
30327
30652
  })
30328
30653
  );
@@ -30562,18 +30887,7 @@ var eventListingAdditionalFields = [
30562
30887
  var eventListingLayout = [
30563
30888
  styledSection({
30564
30889
  children: sectionContainer([
30565
- // Optional heading
30566
- text(
30567
- { as: "h2" },
30568
- bind("content.heading"),
30569
- when("content.heading")
30570
- ),
30571
- // Optional description
30572
- richText(
30573
- { className: "rb-prose rb-max-w-none" },
30574
- bind("content.description"),
30575
- when("content.description")
30576
- ),
30890
+ ...eventSectionHeaderLayoutNodes(),
30577
30891
  // Event listing component with pagination
30578
30892
  el("event-listing", withApiBindings({
30579
30893
  events: { $bind: { from: "data.events" } },
@@ -30689,15 +31003,15 @@ var eventListingBlockDefinition = {
30689
31003
  };
30690
31004
 
30691
31005
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30692
- import { z as z52 } from "zod";
30693
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30694
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30695
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30696
- var eventCalendarSourceSchema = z52.object(
31006
+ import { z as z53 } from "zod";
31007
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
31008
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
31009
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
31010
+ var eventCalendarSourceSchema = z53.object(
30697
31011
  {
30698
- events: z52.array(publicEventSchema).nullable().optional(),
30699
- siteId: z52.string(),
30700
- apiBaseUrl: z52.string().optional(),
31012
+ events: z53.array(publicEventSchema).nullable().optional(),
31013
+ siteId: z53.string(),
31014
+ apiBaseUrl: z53.string().optional(),
30701
31015
  stage: previewStageSchema.optional(),
30702
31016
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30703
31017
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30705,38 +31019,38 @@ var eventCalendarSourceSchema = z52.object(
30705
31019
  listColumns: columnOptionSchema.optional(),
30706
31020
  layout: eventLayoutSchema.optional(),
30707
31021
  columns: columnOptionSchema.optional(),
30708
- eventsPerPage: z52.string().optional(),
30709
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30710
- seeAllUrl: z52.string().optional(),
30711
- loadMoreText: z52.string().optional(),
31022
+ eventsPerPage: z53.string().optional(),
31023
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
31024
+ seeAllUrl: z53.string().optional(),
31025
+ loadMoreText: z53.string().optional(),
30712
31026
  startOfWeek: weekStartSchema.optional(),
30713
31027
  calendarTabViews: calendarTabViewsSchema.optional(),
30714
31028
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30715
- showFilters: z52.boolean().nullable().optional(),
31029
+ showFilters: z53.boolean().nullable().optional(),
30716
31030
  showCategoryFilter: filterAutoShowSchema.optional(),
30717
- showVenueFilter: z52.boolean().nullable().optional(),
30718
- showStaffFilter: z52.boolean().nullable().optional(),
31031
+ showVenueFilter: z53.boolean().nullable().optional(),
31032
+ showStaffFilter: z53.boolean().nullable().optional(),
30719
31033
  kind: eventBlockKindSchema2.nullable().optional(),
30720
31034
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30721
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
31035
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30722
31036
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30723
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30724
- filterStaffMemberId: z52.string().nullable().optional(),
30725
- filterVenueId: z52.string().nullable().optional(),
31037
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
31038
+ filterStaffMemberId: z53.string().nullable().optional(),
31039
+ filterVenueId: z53.string().nullable().optional(),
30726
31040
  buttonVariant: eventButtonVariantSchema.optional(),
30727
- buttonText: z52.string().optional(),
30728
- showVenue: z52.boolean().nullable().optional(),
30729
- showMap: z52.boolean().nullable().optional(),
30730
- showCapacity: z52.boolean().nullable().optional(),
30731
- emptyMessage: z52.string().optional(),
30732
- className: z52.string().optional()
31041
+ buttonText: z53.string().optional(),
31042
+ showVenue: z53.boolean().nullable().optional(),
31043
+ showMap: z53.boolean().nullable().optional(),
31044
+ showCapacity: z53.boolean().nullable().optional(),
31045
+ emptyMessage: z53.string().optional(),
31046
+ className: z53.string().optional()
30733
31047
  }
30734
31048
  );
30735
- var eventCalendarDisplaySchema = z52.object({
30736
- kind: z52.literal("event-calendar"),
31049
+ var eventCalendarDisplaySchema = z53.object({
31050
+ kind: z53.literal("event-calendar"),
30737
31051
  displayMode: eventCalendarDisplayModeSchema,
30738
- className: z52.string().nullable(),
30739
- events: z52.array(publicEventSchema),
31052
+ className: z53.string().nullable(),
31053
+ events: z53.array(publicEventSchema),
30740
31054
  listLayout: eventLayoutSchema,
30741
31055
  listColumns: columnOptionSchema,
30742
31056
  eventsPerPage: eventPageSizeSchema,
@@ -30744,41 +31058,41 @@ var eventCalendarDisplaySchema = z52.object({
30744
31058
  startOfWeek: weekStartSchema,
30745
31059
  calendarTabViews: calendarTabViewsSchema,
30746
31060
  defaultCalendarView: eventCalendarDefaultViewSchema,
30747
- showFilters: z52.boolean(),
31061
+ showFilters: z53.boolean(),
30748
31062
  showCategoryFilter: filterAutoShowSchema,
30749
- showVenueFilter: z52.boolean(),
30750
- showStaffFilter: z52.boolean(),
31063
+ showVenueFilter: z53.boolean(),
31064
+ showStaffFilter: z53.boolean(),
30751
31065
  eventKind: eventBlockKindSchema2,
30752
31066
  eventSurface: eventSurfaceScopeSchema2,
30753
- filterEventPresets: z52.string().nullable(),
31067
+ filterEventPresets: z53.string().nullable(),
30754
31068
  scheduleScope: eventScheduleScopeSchema3,
30755
- filterCategoryIds: z52.string().nullable(),
30756
- filterStaffMemberId: z52.string().nullable(),
30757
- filterVenueId: z52.string().nullable(),
31069
+ filterCategoryIds: z53.string().nullable(),
31070
+ filterStaffMemberId: z53.string().nullable(),
31071
+ filterVenueId: z53.string().nullable(),
30758
31072
  buttonVariant: eventButtonVariantSchema,
30759
- buttonText: z52.string(),
30760
- showVenue: z52.boolean(),
30761
- showMap: z52.boolean(),
30762
- showCapacity: z52.boolean(),
30763
- emptyMessage: z52.string()
30764
- });
30765
- var eventCalendarHydrationSchema = z52.object({
30766
- siteId: z52.string(),
31073
+ buttonText: z53.string(),
31074
+ showVenue: z53.boolean(),
31075
+ showMap: z53.boolean(),
31076
+ showCapacity: z53.boolean(),
31077
+ emptyMessage: z53.string()
31078
+ });
31079
+ var eventCalendarHydrationSchema = z53.object({
31080
+ siteId: z53.string(),
30767
31081
  stage: previewStageSchema.optional(),
30768
- prefetchedEvents: z52.boolean(),
31082
+ prefetchedEvents: z53.boolean(),
30769
31083
  eventKind: eventBlockKindSchema2,
30770
31084
  eventSurface: eventSurfaceScopeSchema2,
30771
- filterEventPresets: z52.string().nullable(),
31085
+ filterEventPresets: z53.string().nullable(),
30772
31086
  scheduleScope: eventScheduleScopeSchema3
30773
31087
  });
30774
- var eventCalendarRenderSchema = z52.object({
31088
+ var eventCalendarRenderSchema = z53.object({
30775
31089
  display: eventCalendarDisplaySchema,
30776
31090
  hydration: eventCalendarHydrationSchema
30777
31091
  });
30778
31092
  var eventCalendarIslandMetaCodec = createZodCodec(
30779
- z52.object({
30780
- siteId: z52.string(),
30781
- apiBaseUrl: z52.string().optional(),
31093
+ z53.object({
31094
+ siteId: z53.string(),
31095
+ apiBaseUrl: z53.string().optional(),
30782
31096
  stage: previewStageSchema.optional()
30783
31097
  })
30784
31098
  );
@@ -30898,14 +31212,7 @@ var eventCalendarLayout = [
30898
31212
  styledSection({
30899
31213
  children: sectionContainer(
30900
31214
  [
30901
- // Optional heading
30902
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30903
- // Optional description
30904
- richText(
30905
- { className: "rb-prose rb-max-w-none" },
30906
- bind("content.description"),
30907
- when("content.description")
30908
- ),
31215
+ ...eventSectionHeaderLayoutNodes(),
30909
31216
  // Event calendar component (handles all display modes)
30910
31217
  el(
30911
31218
  "event-calendar",
@@ -31550,7 +31857,7 @@ var eventCalendarBlockDefinition = {
31550
31857
  };
31551
31858
 
31552
31859
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31553
- import { z as z53 } from "zod";
31860
+ import { z as z54 } from "zod";
31554
31861
 
31555
31862
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31556
31863
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31642,13 +31949,13 @@ function isRecord6(value) {
31642
31949
  }
31643
31950
 
31644
31951
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31645
- var publicRouteCandidatesSchema = z53.object({
31646
- routes: z53.array(z53.object({
31647
- entityId: z53.string(),
31648
- path: z53.string(),
31649
- title: z53.string(),
31650
- kind: z53.enum(["page", "content"]),
31651
- contentTypeKey: z53.string().nullable().optional()
31952
+ var publicRouteCandidatesSchema = z54.object({
31953
+ routes: z54.array(z54.object({
31954
+ entityId: z54.string(),
31955
+ path: z54.string(),
31956
+ title: z54.string(),
31957
+ kind: z54.enum(["page", "content"]),
31958
+ contentTypeKey: z54.string().nullable().optional()
31652
31959
  }))
31653
31960
  });
31654
31961
  var groupOverrideFields = [
@@ -32046,7 +32353,7 @@ function isRecord7(value) {
32046
32353
  }
32047
32354
 
32048
32355
  // ../blocks/src/system/blocks/embed.ts
32049
- import { z as z54 } from "zod";
32356
+ import { z as z55 } from "zod";
32050
32357
  var embedFields = [
32051
32358
  // Section heading
32052
32359
  parseFieldDefinition({
@@ -32277,18 +32584,18 @@ var embedManifest = createBlockManifest({
32277
32584
  spacing: "lg"
32278
32585
  }
32279
32586
  });
32280
- var embedEntrySchema = z54.object({
32281
- id: z54.string(),
32282
- identifier: z54.string(),
32283
- title: z54.string(),
32284
- slug: z54.string().nullable().optional(),
32285
- content: z54.record(z54.string(), z54.unknown()).optional(),
32286
- publishedAt: z54.string().nullable().optional()
32587
+ var embedEntrySchema = z55.object({
32588
+ id: z55.string(),
32589
+ identifier: z55.string(),
32590
+ title: z55.string(),
32591
+ slug: z55.string().nullable().optional(),
32592
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32593
+ publishedAt: z55.string().nullable().optional()
32287
32594
  });
32288
32595
  var embedBlockDefinition = {
32289
32596
  manifest: embedManifest,
32290
32597
  dataSchemas: {
32291
- entries: z54.array(embedEntrySchema).optional()
32598
+ entries: z55.array(embedEntrySchema).optional()
32292
32599
  },
32293
32600
  dataLoaders: {
32294
32601
  entries: {
@@ -33472,49 +33779,49 @@ var fileDownloadBlockDefinition = {
33472
33779
  };
33473
33780
 
33474
33781
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33475
- import { z as z57 } from "zod";
33782
+ import { z as z58 } from "zod";
33476
33783
 
33477
33784
  // ../blocks/src/system/blocks/products/shared.ts
33478
- import { z as z55 } from "zod";
33479
- var publicProductVariantSchema = z55.object({
33480
- id: z55.string(),
33481
- title: z55.string(),
33482
- sku: z55.string().nullable(),
33483
- priceCents: z55.number(),
33484
- stockQuantity: z55.number().nullable(),
33485
- soldOut: z55.boolean()
33486
- });
33487
- var publicProductSchema = z55.object({
33488
- id: z55.string(),
33489
- contentEntryId: z55.string().nullable(),
33490
- title: z55.string(),
33491
- slug: z55.string(),
33492
- path: z55.string().nullable(),
33493
- status: z55.enum(["draft", "active"]),
33494
- priceCents: z55.number(),
33495
- currency: z55.string(),
33496
- productType: z55.enum(["physical", "digital"]),
33497
- requiresShipping: z55.boolean(),
33498
- hasVariants: z55.boolean(),
33499
- trackInventory: z55.boolean(),
33500
- soldOut: z55.boolean(),
33501
- category: z55.object({
33502
- id: z55.string(),
33503
- name: z55.string(),
33504
- slug: z55.string()
33785
+ import { z as z56 } from "zod";
33786
+ var publicProductVariantSchema = z56.object({
33787
+ id: z56.string(),
33788
+ title: z56.string(),
33789
+ sku: z56.string().nullable(),
33790
+ priceCents: z56.number(),
33791
+ stockQuantity: z56.number().nullable(),
33792
+ soldOut: z56.boolean()
33793
+ });
33794
+ var publicProductSchema = z56.object({
33795
+ id: z56.string(),
33796
+ contentEntryId: z56.string().nullable(),
33797
+ title: z56.string(),
33798
+ slug: z56.string(),
33799
+ path: z56.string().nullable(),
33800
+ status: z56.enum(["draft", "active"]),
33801
+ priceCents: z56.number(),
33802
+ currency: z56.string(),
33803
+ productType: z56.enum(["physical", "digital"]),
33804
+ requiresShipping: z56.boolean(),
33805
+ hasVariants: z56.boolean(),
33806
+ trackInventory: z56.boolean(),
33807
+ soldOut: z56.boolean(),
33808
+ category: z56.object({
33809
+ id: z56.string(),
33810
+ name: z56.string(),
33811
+ slug: z56.string()
33505
33812
  }).nullable(),
33506
- summary: z55.string().nullable(),
33507
- body: z55.unknown().nullable(),
33508
- gallery: z55.array(
33509
- z55.object({
33510
- url: z55.string(),
33511
- alt: z55.string().nullable()
33813
+ summary: z56.string().nullable(),
33814
+ body: z56.unknown().nullable(),
33815
+ gallery: z56.array(
33816
+ z56.object({
33817
+ url: z56.string(),
33818
+ alt: z56.string().nullable()
33512
33819
  })
33513
33820
  ),
33514
- variants: z55.array(publicProductVariantSchema)
33821
+ variants: z56.array(publicProductVariantSchema)
33515
33822
  });
33516
- var publicProductsResponseSchema = z55.object({
33517
- products: z55.array(publicProductSchema)
33823
+ var publicProductsResponseSchema = z56.object({
33824
+ products: z56.array(publicProductSchema)
33518
33825
  });
33519
33826
 
33520
33827
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33578,27 +33885,27 @@ function deriveCreditProductLabels(products, options = {}) {
33578
33885
  }
33579
33886
 
33580
33887
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33581
- import { z as z56 } from "zod";
33582
- var storedProductCartItemSchema = z56.object({
33583
- kind: z56.literal("product"),
33584
- productId: z56.string().min(1),
33585
- productCategoryId: z56.string().min(1).optional().nullable(),
33586
- variantId: z56.string().min(1).optional().nullable(),
33587
- title: z56.string().min(1),
33588
- variantTitle: z56.string().optional().nullable(),
33589
- quantity: z56.number().finite(),
33590
- unitPriceCents: z56.number().finite(),
33591
- currency: z56.string().min(1),
33592
- imageUrl: z56.string().optional().nullable(),
33593
- soldOut: z56.boolean().optional()
33594
- });
33595
- var storedPassCartItemSchema = z56.object({
33596
- kind: z56.literal("pass"),
33597
- passId: z56.string().min(1),
33598
- title: z56.string().min(1),
33599
- quantity: z56.number().finite().optional(),
33600
- unitPriceCents: z56.number().finite(),
33601
- currency: z56.string().min(1)
33888
+ import { z as z57 } from "zod";
33889
+ var storedProductCartItemSchema = z57.object({
33890
+ kind: z57.literal("product"),
33891
+ productId: z57.string().min(1),
33892
+ productCategoryId: z57.string().min(1).optional().nullable(),
33893
+ variantId: z57.string().min(1).optional().nullable(),
33894
+ title: z57.string().min(1),
33895
+ variantTitle: z57.string().optional().nullable(),
33896
+ quantity: z57.number().finite(),
33897
+ unitPriceCents: z57.number().finite(),
33898
+ currency: z57.string().min(1),
33899
+ imageUrl: z57.string().optional().nullable(),
33900
+ soldOut: z57.boolean().optional()
33901
+ });
33902
+ var storedPassCartItemSchema = z57.object({
33903
+ kind: z57.literal("pass"),
33904
+ passId: z57.string().min(1),
33905
+ title: z57.string().min(1),
33906
+ quantity: z57.number().finite().optional(),
33907
+ unitPriceCents: z57.number().finite(),
33908
+ currency: z57.string().min(1)
33602
33909
  });
33603
33910
  function deriveCommerceCheckoutState(state) {
33604
33911
  if (state.items.length === 0) {
@@ -33832,214 +34139,214 @@ function formatValidity(days) {
33832
34139
  }
33833
34140
 
33834
34141
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33835
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33836
- var contentEntrySchema3 = z57.object({
33837
- id: z57.string().nullable().optional(),
33838
- slug: z57.string().nullable().optional()
34142
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
34143
+ var contentEntrySchema3 = z58.object({
34144
+ id: z58.string().nullable().optional(),
34145
+ slug: z58.string().nullable().optional()
33839
34146
  }).nullable();
33840
- var shopSourceSchema = z57.object({
33841
- className: z57.string().nullable().optional(),
34147
+ var shopSourceSchema = z58.object({
34148
+ className: z58.string().nullable().optional(),
33842
34149
  mode: shopModeSchema.optional(),
33843
- heading: z57.string().nullable().optional(),
33844
- productSlug: z57.string().nullable().optional(),
33845
- showPasses: z57.boolean().optional(),
33846
- showMemberships: z57.boolean().optional(),
33847
- layout: z57.enum(["grid", "list"]).optional(),
33848
- columns: z57.string().optional(),
33849
- showDescriptions: z57.boolean().optional(),
33850
- showSummary: z57.boolean().optional(),
33851
- showBody: z57.boolean().optional(),
33852
- showPrices: z57.boolean().optional(),
33853
- showValidityPeriod: z57.boolean().optional(),
33854
- showPricePerCredit: z57.boolean().nullable().optional(),
33855
- passesHeading: z57.string().optional(),
33856
- membershipsHeading: z57.string().optional(),
33857
- buyButtonText: z57.string().optional(),
33858
- addButtonText: z57.string().optional(),
33859
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33860
- subscribeButtonText: z57.string().optional(),
33861
- emptyStateText: z57.string().optional(),
33862
- checkoutButtonText: z57.string().optional(),
33863
- clearButtonText: z57.string().optional(),
33864
- submitButtonText: z57.string().optional(),
34150
+ heading: z58.string().nullable().optional(),
34151
+ productSlug: z58.string().nullable().optional(),
34152
+ showPasses: z58.boolean().optional(),
34153
+ showMemberships: z58.boolean().optional(),
34154
+ layout: z58.enum(["grid", "list"]).optional(),
34155
+ columns: z58.string().optional(),
34156
+ showDescriptions: z58.boolean().optional(),
34157
+ showSummary: z58.boolean().optional(),
34158
+ showBody: z58.boolean().optional(),
34159
+ showPrices: z58.boolean().optional(),
34160
+ showValidityPeriod: z58.boolean().optional(),
34161
+ showPricePerCredit: z58.boolean().nullable().optional(),
34162
+ passesHeading: z58.string().optional(),
34163
+ membershipsHeading: z58.string().optional(),
34164
+ buyButtonText: z58.string().optional(),
34165
+ addButtonText: z58.string().optional(),
34166
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
34167
+ subscribeButtonText: z58.string().optional(),
34168
+ emptyStateText: z58.string().optional(),
34169
+ checkoutButtonText: z58.string().optional(),
34170
+ clearButtonText: z58.string().optional(),
34171
+ submitButtonText: z58.string().optional(),
33865
34172
  contentEntry: contentEntrySchema3.optional(),
33866
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33867
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33868
- products: z57.array(publicProductSchema).nullable().optional(),
33869
- siteId: z57.string().optional(),
33870
- apiBaseUrl: z57.string().optional(),
34173
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
34174
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
34175
+ products: z58.array(publicProductSchema).nullable().optional(),
34176
+ siteId: z58.string().optional(),
34177
+ apiBaseUrl: z58.string().optional(),
33871
34178
  stage: previewStageSchema.optional()
33872
34179
  });
33873
- var productVariantOptionDisplaySchema = z57.object({
33874
- id: z57.string(),
33875
- label: z57.string(),
33876
- soldOut: z57.boolean()
33877
- });
33878
- var productCardDisplaySchema = z57.object({
33879
- productId: z57.string(),
33880
- title: z57.string(),
33881
- path: z57.string().nullable(),
33882
- summary: z57.string().nullable(),
33883
- priceLabel: z57.string().nullable(),
33884
- image: z57.object({
33885
- url: z57.string(),
33886
- alt: z57.string().nullable()
34180
+ var productVariantOptionDisplaySchema = z58.object({
34181
+ id: z58.string(),
34182
+ label: z58.string(),
34183
+ soldOut: z58.boolean()
34184
+ });
34185
+ var productCardDisplaySchema = z58.object({
34186
+ productId: z58.string(),
34187
+ title: z58.string(),
34188
+ path: z58.string().nullable(),
34189
+ summary: z58.string().nullable(),
34190
+ priceLabel: z58.string().nullable(),
34191
+ image: z58.object({
34192
+ url: z58.string(),
34193
+ alt: z58.string().nullable()
33887
34194
  }).nullable(),
33888
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33889
- selectedVariantId: z57.string().nullable(),
33890
- selectionLabel: z57.string(),
33891
- actionLabel: z57.string(),
33892
- soldOut: z57.boolean()
33893
- });
33894
- var productListDisplaySchema = z57.object({
33895
- kind: z57.literal("product-list"),
33896
- state: z57.enum(["empty", "ready"]),
33897
- heading: z57.string().nullable(),
33898
- className: z57.string().nullable(),
33899
- layout: z57.enum(["grid", "list"]),
33900
- columns: z57.string(),
33901
- emptyMessage: z57.string(),
33902
- cards: z57.array(productCardDisplaySchema)
33903
- });
33904
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33905
- z57.object({
33906
- kind: z57.literal("product-detail"),
33907
- state: z57.literal("empty"),
33908
- heading: z57.string().nullable(),
33909
- className: z57.string().nullable(),
33910
- emptyMessage: z57.string()
34195
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34196
+ selectedVariantId: z58.string().nullable(),
34197
+ selectionLabel: z58.string(),
34198
+ actionLabel: z58.string(),
34199
+ soldOut: z58.boolean()
34200
+ });
34201
+ var productListDisplaySchema = z58.object({
34202
+ kind: z58.literal("product-list"),
34203
+ state: z58.enum(["empty", "ready"]),
34204
+ heading: z58.string().nullable(),
34205
+ className: z58.string().nullable(),
34206
+ layout: z58.enum(["grid", "list"]),
34207
+ columns: z58.string(),
34208
+ emptyMessage: z58.string(),
34209
+ cards: z58.array(productCardDisplaySchema)
34210
+ });
34211
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
34212
+ z58.object({
34213
+ kind: z58.literal("product-detail"),
34214
+ state: z58.literal("empty"),
34215
+ heading: z58.string().nullable(),
34216
+ className: z58.string().nullable(),
34217
+ emptyMessage: z58.string()
33911
34218
  }),
33912
- z57.object({
33913
- kind: z57.literal("product-detail"),
33914
- state: z57.literal("ready"),
33915
- heading: z57.string().nullable(),
33916
- className: z57.string().nullable(),
33917
- title: z57.string(),
33918
- priceLabel: z57.string(),
33919
- summary: z57.string().nullable(),
33920
- categoryLabel: z57.string().nullable(),
33921
- gallery: z57.array(z57.object({
33922
- url: z57.string(),
33923
- alt: z57.string().nullable()
34219
+ z58.object({
34220
+ kind: z58.literal("product-detail"),
34221
+ state: z58.literal("ready"),
34222
+ heading: z58.string().nullable(),
34223
+ className: z58.string().nullable(),
34224
+ title: z58.string(),
34225
+ priceLabel: z58.string(),
34226
+ summary: z58.string().nullable(),
34227
+ categoryLabel: z58.string().nullable(),
34228
+ gallery: z58.array(z58.object({
34229
+ url: z58.string(),
34230
+ alt: z58.string().nullable()
33924
34231
  })),
33925
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33926
- selectedVariantId: z57.string().nullable(),
33927
- selectionLabel: z57.string(),
33928
- actionLabel: z57.string(),
33929
- soldOut: z57.boolean(),
33930
- body: z57.unknown().nullable()
34232
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34233
+ selectedVariantId: z58.string().nullable(),
34234
+ selectionLabel: z58.string(),
34235
+ actionLabel: z58.string(),
34236
+ soldOut: z58.boolean(),
34237
+ body: z58.unknown().nullable()
33931
34238
  })
33932
34239
  ]);
33933
- var passCardDisplaySchema = z57.object({
33934
- id: z57.string(),
33935
- title: z57.string(),
33936
- description: z57.string().nullable(),
33937
- priceLabel: z57.string(),
33938
- creditsLabel: z57.string(),
33939
- perCreditLabel: z57.string().nullable(),
33940
- validityLabel: z57.string().nullable(),
33941
- actionLabel: z57.string()
33942
- });
33943
- var membershipCardDisplaySchema = z57.object({
33944
- id: z57.string(),
33945
- title: z57.string(),
33946
- description: z57.string().nullable(),
33947
- priceLabel: z57.string(),
33948
- intervalLabel: z57.string(),
33949
- actionLabel: z57.string()
33950
- });
33951
- var passesMembershipsDisplaySchema = z57.object({
33952
- kind: z57.literal("passes-memberships"),
33953
- state: z57.enum(["empty", "ready"]),
33954
- className: z57.string().nullable(),
33955
- layout: z57.enum(["grid", "list"]),
33956
- columns: z57.string(),
33957
- emptyMessage: z57.string(),
33958
- passesHeading: z57.string(),
33959
- membershipsHeading: z57.string(),
33960
- passes: z57.array(passCardDisplaySchema),
33961
- memberships: z57.array(membershipCardDisplaySchema)
33962
- });
33963
- var cartLineDisplaySchema = z57.object({
33964
- key: z57.string(),
33965
- title: z57.string(),
33966
- priceLabel: z57.string(),
33967
- quantity: z57.number(),
33968
- quantityEditable: z57.boolean()
33969
- });
33970
- var cartDisplaySchema = z57.object({
33971
- kind: z57.literal("cart"),
33972
- state: z57.enum(["empty", "ready"]),
33973
- heading: z57.string().nullable(),
33974
- className: z57.string().nullable(),
33975
- emptyMessage: z57.string(),
33976
- supportText: z57.string().nullable(),
33977
- items: z57.array(cartLineDisplaySchema),
33978
- subtotalLabel: z57.string().nullable(),
33979
- checkoutButtonText: z57.string(),
33980
- clearButtonText: z57.string()
33981
- });
33982
- var checkoutDisplaySchema = z57.object({
33983
- kind: z57.literal("checkout"),
33984
- state: z57.enum(["empty", "blocked", "ready"]),
33985
- heading: z57.string().nullable(),
33986
- className: z57.string().nullable(),
33987
- message: z57.string().nullable(),
33988
- submitButtonText: z57.string()
33989
- });
33990
- var passesMembershipsHydrationSchema = z57.object({
33991
- passes: z57.array(publicPassProductSchema),
33992
- memberships: z57.array(publicMembershipProductSchema),
33993
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33994
- });
33995
- var productListHydrationSchema = z57.object({
33996
- products: z57.array(publicProductSchema),
33997
- showSummary: z57.boolean(),
33998
- showPrices: z57.boolean(),
33999
- addButtonText: z57.string()
34000
- });
34001
- var productDetailHydrationSchema = z57.object({
34002
- products: z57.array(publicProductSchema),
34003
- productId: z57.string().nullable(),
34004
- showSummary: z57.boolean(),
34005
- showBody: z57.boolean(),
34006
- addButtonText: z57.string()
34007
- });
34008
- var cartHydrationSchema = z57.object({
34009
- emptyStateText: z57.string(),
34010
- checkoutButtonText: z57.string(),
34011
- clearButtonText: z57.string()
34012
- });
34013
- var checkoutHydrationSchema = z57.object({
34014
- emptyStateText: z57.string(),
34015
- submitButtonText: z57.string()
34016
- });
34017
- var passesMembershipsRenderSchema = z57.object({
34240
+ var passCardDisplaySchema = z58.object({
34241
+ id: z58.string(),
34242
+ title: z58.string(),
34243
+ description: z58.string().nullable(),
34244
+ priceLabel: z58.string(),
34245
+ creditsLabel: z58.string(),
34246
+ perCreditLabel: z58.string().nullable(),
34247
+ validityLabel: z58.string().nullable(),
34248
+ actionLabel: z58.string()
34249
+ });
34250
+ var membershipCardDisplaySchema = z58.object({
34251
+ id: z58.string(),
34252
+ title: z58.string(),
34253
+ description: z58.string().nullable(),
34254
+ priceLabel: z58.string(),
34255
+ intervalLabel: z58.string(),
34256
+ actionLabel: z58.string()
34257
+ });
34258
+ var passesMembershipsDisplaySchema = z58.object({
34259
+ kind: z58.literal("passes-memberships"),
34260
+ state: z58.enum(["empty", "ready"]),
34261
+ className: z58.string().nullable(),
34262
+ layout: z58.enum(["grid", "list"]),
34263
+ columns: z58.string(),
34264
+ emptyMessage: z58.string(),
34265
+ passesHeading: z58.string(),
34266
+ membershipsHeading: z58.string(),
34267
+ passes: z58.array(passCardDisplaySchema),
34268
+ memberships: z58.array(membershipCardDisplaySchema)
34269
+ });
34270
+ var cartLineDisplaySchema = z58.object({
34271
+ key: z58.string(),
34272
+ title: z58.string(),
34273
+ priceLabel: z58.string(),
34274
+ quantity: z58.number(),
34275
+ quantityEditable: z58.boolean()
34276
+ });
34277
+ var cartDisplaySchema = z58.object({
34278
+ kind: z58.literal("cart"),
34279
+ state: z58.enum(["empty", "ready"]),
34280
+ heading: z58.string().nullable(),
34281
+ className: z58.string().nullable(),
34282
+ emptyMessage: z58.string(),
34283
+ supportText: z58.string().nullable(),
34284
+ items: z58.array(cartLineDisplaySchema),
34285
+ subtotalLabel: z58.string().nullable(),
34286
+ checkoutButtonText: z58.string(),
34287
+ clearButtonText: z58.string()
34288
+ });
34289
+ var checkoutDisplaySchema = z58.object({
34290
+ kind: z58.literal("checkout"),
34291
+ state: z58.enum(["empty", "blocked", "ready"]),
34292
+ heading: z58.string().nullable(),
34293
+ className: z58.string().nullable(),
34294
+ message: z58.string().nullable(),
34295
+ submitButtonText: z58.string()
34296
+ });
34297
+ var passesMembershipsHydrationSchema = z58.object({
34298
+ passes: z58.array(publicPassProductSchema),
34299
+ memberships: z58.array(publicMembershipProductSchema),
34300
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
34301
+ });
34302
+ var productListHydrationSchema = z58.object({
34303
+ products: z58.array(publicProductSchema),
34304
+ showSummary: z58.boolean(),
34305
+ showPrices: z58.boolean(),
34306
+ addButtonText: z58.string()
34307
+ });
34308
+ var productDetailHydrationSchema = z58.object({
34309
+ products: z58.array(publicProductSchema),
34310
+ productId: z58.string().nullable(),
34311
+ showSummary: z58.boolean(),
34312
+ showBody: z58.boolean(),
34313
+ addButtonText: z58.string()
34314
+ });
34315
+ var cartHydrationSchema = z58.object({
34316
+ emptyStateText: z58.string(),
34317
+ checkoutButtonText: z58.string(),
34318
+ clearButtonText: z58.string()
34319
+ });
34320
+ var checkoutHydrationSchema = z58.object({
34321
+ emptyStateText: z58.string(),
34322
+ submitButtonText: z58.string()
34323
+ });
34324
+ var passesMembershipsRenderSchema = z58.object({
34018
34325
  display: passesMembershipsDisplaySchema,
34019
34326
  hydration: passesMembershipsHydrationSchema
34020
34327
  });
34021
- var productListRenderSchema = z57.object({
34328
+ var productListRenderSchema = z58.object({
34022
34329
  display: productListDisplaySchema,
34023
34330
  hydration: productListHydrationSchema
34024
34331
  });
34025
- var productDetailRenderSchema = z57.object({
34332
+ var productDetailRenderSchema = z58.object({
34026
34333
  display: productDetailDisplaySchema,
34027
34334
  hydration: productDetailHydrationSchema
34028
34335
  });
34029
- var cartRenderSchema = z57.object({
34336
+ var cartRenderSchema = z58.object({
34030
34337
  display: cartDisplaySchema,
34031
34338
  hydration: cartHydrationSchema
34032
34339
  });
34033
- var checkoutRenderSchema = z57.object({
34340
+ var checkoutRenderSchema = z58.object({
34034
34341
  display: checkoutDisplaySchema,
34035
34342
  hydration: checkoutHydrationSchema
34036
34343
  });
34037
34344
  function resolveShowPricePerCredit(source) {
34038
34345
  return source.showPricePerCredit ?? true;
34039
34346
  }
34040
- var shopIslandMetaCodec = createZodCodec(z57.object({
34041
- siteId: z57.string().optional(),
34042
- apiBaseUrl: z57.string().optional(),
34347
+ var shopIslandMetaCodec = createZodCodec(z58.object({
34348
+ siteId: z58.string().optional(),
34349
+ apiBaseUrl: z58.string().optional(),
34043
34350
  stage: previewStageSchema.optional()
34044
34351
  }));
34045
34352
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34442,7 +34749,7 @@ var shopBlockDefinition = {
34442
34749
  };
34443
34750
 
34444
34751
  // ../blocks/src/system/blocks/product-list.ts
34445
- import { z as z58 } from "zod";
34752
+ import { z as z59 } from "zod";
34446
34753
  var productListManifest = createBlockManifest({
34447
34754
  id: "block.product-list",
34448
34755
  version: "1.0.0",
@@ -34575,7 +34882,7 @@ var productListBlockDefinition = {
34575
34882
  }
34576
34883
  }
34577
34884
  };
34578
- var productListDataSchema = z58.object({
34885
+ var productListDataSchema = z59.object({
34579
34886
  products: publicProductsResponseSchema.optional()
34580
34887
  });
34581
34888
 
@@ -34836,72 +35143,72 @@ var checkoutBlockDefinition = {
34836
35143
  };
34837
35144
 
34838
35145
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34839
- import { z as z59 } from "zod";
34840
- var publicGiftCardOfferSchema = z59.object({
34841
- id: z59.string(),
34842
- kind: z59.literal("gift_card"),
34843
- title: z59.string(),
34844
- description: z59.string().nullable(),
34845
- sortOrder: z59.number().int(),
34846
- giftCard: z59.object({
34847
- fixedDenominations: z59.array(z59.number().int().positive()),
34848
- customAmountEnabled: z59.boolean(),
34849
- customAmountMinCents: z59.number().int().positive(),
34850
- customAmountMaxCents: z59.number().int().positive()
35146
+ import { z as z60 } from "zod";
35147
+ var publicGiftCardOfferSchema = z60.object({
35148
+ id: z60.string(),
35149
+ kind: z60.literal("gift_card"),
35150
+ title: z60.string(),
35151
+ description: z60.string().nullable(),
35152
+ sortOrder: z60.number().int(),
35153
+ giftCard: z60.object({
35154
+ fixedDenominations: z60.array(z60.number().int().positive()),
35155
+ customAmountEnabled: z60.boolean(),
35156
+ customAmountMinCents: z60.number().int().positive(),
35157
+ customAmountMaxCents: z60.number().int().positive()
34851
35158
  }),
34852
- voucher: z59.null()
34853
- });
34854
- var publicVoucherOfferSchema = z59.object({
34855
- id: z59.string(),
34856
- kind: z59.literal("voucher"),
34857
- title: z59.string(),
34858
- description: z59.string().nullable(),
34859
- sortOrder: z59.number().int(),
34860
- giftCard: z59.null(),
34861
- voucher: z59.object({
34862
- purchaseAmountCents: z59.number().int().positive()
35159
+ voucher: z60.null()
35160
+ });
35161
+ var publicVoucherOfferSchema = z60.object({
35162
+ id: z60.string(),
35163
+ kind: z60.literal("voucher"),
35164
+ title: z60.string(),
35165
+ description: z60.string().nullable(),
35166
+ sortOrder: z60.number().int(),
35167
+ giftCard: z60.null(),
35168
+ voucher: z60.object({
35169
+ purchaseAmountCents: z60.number().int().positive()
34863
35170
  })
34864
35171
  });
34865
- var publicGiftingOffersResponseSchema = z59.object({
34866
- currency: z59.string(),
34867
- giftCards: z59.array(publicGiftCardOfferSchema),
34868
- vouchers: z59.array(publicVoucherOfferSchema)
35172
+ var publicGiftingOffersResponseSchema = z60.object({
35173
+ currency: z60.string(),
35174
+ giftCards: z60.array(publicGiftCardOfferSchema),
35175
+ vouchers: z60.array(publicVoucherOfferSchema)
34869
35176
  });
34870
- var giftingSourceSchema = z59.object({
34871
- siteId: z59.string().optional(),
34872
- apiBaseUrl: z59.string().optional(),
35177
+ var giftingSourceSchema = z60.object({
35178
+ siteId: z60.string().optional(),
35179
+ apiBaseUrl: z60.string().optional(),
34873
35180
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34874
- className: z59.string().nullable().optional(),
34875
- heading: z59.string().nullable().optional(),
34876
- intro: z59.string().nullable().optional(),
34877
- giftCardsHeading: z59.string().nullable().optional(),
34878
- vouchersHeading: z59.string().nullable().optional(),
34879
- emptyStateText: z59.string().nullable().optional(),
34880
- checkoutButtonText: z59.string().nullable().optional(),
34881
- successMessage: z59.string().nullable().optional()
34882
- });
34883
- var giftingDisplaySchema = z59.object({
34884
- kind: z59.literal("gifting"),
34885
- state: z59.literal("ready"),
34886
- className: z59.string().nullable(),
34887
- heading: z59.string(),
34888
- intro: z59.string().nullable(),
34889
- giftCardsHeading: z59.string(),
34890
- vouchersHeading: z59.string(),
34891
- emptyStateText: z59.string()
34892
- });
34893
- var giftingHydrationSchema = z59.object({
35181
+ className: z60.string().nullable().optional(),
35182
+ heading: z60.string().nullable().optional(),
35183
+ intro: z60.string().nullable().optional(),
35184
+ giftCardsHeading: z60.string().nullable().optional(),
35185
+ vouchersHeading: z60.string().nullable().optional(),
35186
+ emptyStateText: z60.string().nullable().optional(),
35187
+ checkoutButtonText: z60.string().nullable().optional(),
35188
+ successMessage: z60.string().nullable().optional()
35189
+ });
35190
+ var giftingDisplaySchema = z60.object({
35191
+ kind: z60.literal("gifting"),
35192
+ state: z60.literal("ready"),
35193
+ className: z60.string().nullable(),
35194
+ heading: z60.string(),
35195
+ intro: z60.string().nullable(),
35196
+ giftCardsHeading: z60.string(),
35197
+ vouchersHeading: z60.string(),
35198
+ emptyStateText: z60.string()
35199
+ });
35200
+ var giftingHydrationSchema = z60.object({
34894
35201
  offers: publicGiftingOffersResponseSchema.nullable(),
34895
- checkoutButtonText: z59.string(),
34896
- successMessage: z59.string()
35202
+ checkoutButtonText: z60.string(),
35203
+ successMessage: z60.string()
34897
35204
  });
34898
- var giftingRenderSchema = z59.object({
35205
+ var giftingRenderSchema = z60.object({
34899
35206
  display: giftingDisplaySchema,
34900
35207
  hydration: giftingHydrationSchema
34901
35208
  });
34902
- var giftingIslandMetaCodec = createZodCodec(z59.object({
34903
- siteId: z59.string().optional(),
34904
- apiBaseUrl: z59.string().optional()
35209
+ var giftingIslandMetaCodec = createZodCodec(z60.object({
35210
+ siteId: z60.string().optional(),
35211
+ apiBaseUrl: z60.string().optional()
34905
35212
  }));
34906
35213
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34907
35214
  "siteId",
@@ -35072,7 +35379,7 @@ var giftingBlockDefinition = {
35072
35379
  };
35073
35380
 
35074
35381
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35075
- import { z as z60 } from "zod";
35382
+ import { z as z61 } from "zod";
35076
35383
 
35077
35384
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
35078
35385
  function parseNewsletterSignupBlockId(value) {
@@ -35179,65 +35486,65 @@ function withOptionalPhone(fields3, includePhone) {
35179
35486
  }
35180
35487
 
35181
35488
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35182
- var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35183
- var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35184
- var newsletterFieldSchema = z60.object({
35185
- id: z60.string(),
35186
- type: z60.enum(["email", "text"]),
35187
- label: z60.string(),
35188
- required: z60.boolean(),
35189
- placeholder: z60.string().optional()
35190
- });
35191
- var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35192
- var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35193
- var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35194
- z60.object({
35195
- tag: z60.literal("block_ref"),
35489
+ var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35490
+ var newsletterDestinationProviderSchema = z61.enum(["riverbank", "mailchimp"]);
35491
+ var newsletterFieldSchema = z61.object({
35492
+ id: z61.string(),
35493
+ type: z61.enum(["email", "text"]),
35494
+ label: z61.string(),
35495
+ required: z61.boolean(),
35496
+ placeholder: z61.string().optional()
35497
+ });
35498
+ var newsletterSignupBlockIdSchema = z61.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35499
+ var signedNewsletterDestinationRefSchema = z61.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35500
+ var newsletterPublicDestinationRefSchema = z61.discriminatedUnion("tag", [
35501
+ z61.object({
35502
+ tag: z61.literal("block_ref"),
35196
35503
  blockId: newsletterSignupBlockIdSchema
35197
35504
  }),
35198
- z60.object({
35199
- tag: z60.literal("signed_destination_ref"),
35505
+ z61.object({
35506
+ tag: z61.literal("signed_destination_ref"),
35200
35507
  token: signedNewsletterDestinationRefSchema
35201
35508
  })
35202
35509
  ]);
35203
- var newsletterSourceSchema = z60.object({
35204
- blockId: z60.string().nullable().optional(),
35205
- siteId: z60.string().optional(),
35206
- apiBaseUrl: z60.string().optional(),
35207
- listId: z60.string().nullable().optional(),
35510
+ var newsletterSourceSchema = z61.object({
35511
+ blockId: z61.string().nullable().optional(),
35512
+ siteId: z61.string().optional(),
35513
+ apiBaseUrl: z61.string().optional(),
35514
+ listId: z61.string().nullable().optional(),
35208
35515
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35209
35516
  preset: newsletterPresetSchema.optional(),
35210
- includePhone: z60.boolean().optional(),
35211
- buttonLabel: z60.string().nullable().optional(),
35212
- successMessage: z60.string().nullable().optional(),
35213
- privacyNote: z60.string().nullable().optional(),
35214
- tags: z60.string().nullable().optional(),
35215
- spamProtectionEnabled: z60.boolean().optional(),
35216
- className: z60.string().nullable().optional()
35217
- });
35218
- var newsletterDisplaySchema = z60.object({
35219
- kind: z60.literal("newsletter-form"),
35220
- className: z60.string().nullable(),
35221
- buttonLabel: z60.string(),
35222
- successMessage: z60.string().nullable(),
35223
- privacyNote: z60.string().nullable(),
35224
- fields: z60.array(newsletterFieldSchema)
35225
- });
35226
- var newsletterHydrationSchema = z60.object({
35517
+ includePhone: z61.boolean().optional(),
35518
+ buttonLabel: z61.string().nullable().optional(),
35519
+ successMessage: z61.string().nullable().optional(),
35520
+ privacyNote: z61.string().nullable().optional(),
35521
+ tags: z61.string().nullable().optional(),
35522
+ spamProtectionEnabled: z61.boolean().optional(),
35523
+ className: z61.string().nullable().optional()
35524
+ });
35525
+ var newsletterDisplaySchema = z61.object({
35526
+ kind: z61.literal("newsletter-form"),
35527
+ className: z61.string().nullable(),
35528
+ buttonLabel: z61.string(),
35529
+ successMessage: z61.string().nullable(),
35530
+ privacyNote: z61.string().nullable(),
35531
+ fields: z61.array(newsletterFieldSchema)
35532
+ });
35533
+ var newsletterHydrationSchema = z61.object({
35227
35534
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35228
- listId: z60.string().nullable().optional(),
35535
+ listId: z61.string().nullable().optional(),
35229
35536
  preset: newsletterPresetSchema,
35230
- includePhone: z60.boolean(),
35231
- tags: z60.string().nullable().optional(),
35232
- spamProtectionEnabled: z60.boolean().optional()
35537
+ includePhone: z61.boolean(),
35538
+ tags: z61.string().nullable().optional(),
35539
+ spamProtectionEnabled: z61.boolean().optional()
35233
35540
  });
35234
- var newsletterRenderSchema = z60.object({
35541
+ var newsletterRenderSchema = z61.object({
35235
35542
  display: newsletterDisplaySchema,
35236
35543
  hydration: newsletterHydrationSchema
35237
35544
  });
35238
- var newsletterIslandMetaCodec = createZodCodec(z60.object({
35239
- siteId: z60.string().optional(),
35240
- apiBaseUrl: z60.string().optional()
35545
+ var newsletterIslandMetaCodec = createZodCodec(z61.object({
35546
+ siteId: z61.string().optional(),
35547
+ apiBaseUrl: z61.string().optional()
35241
35548
  }));
35242
35549
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35243
35550
  function buildNewsletterDisplay(source) {
@@ -35376,23 +35683,23 @@ var newsletterSignupBlockDefinition = {
35376
35683
  };
35377
35684
 
35378
35685
  // ../blocks/src/system/blocks/team-members.ts
35379
- import { z as z61 } from "zod";
35686
+ import { z as z62 } from "zod";
35380
35687
  var ITEM_NAME2 = "member";
35381
35688
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35382
35689
  message: "Team member photos must be image media"
35383
35690
  }).nullable();
35384
- var teamMemberDataSchema = z61.object({
35385
- _type: z61.literal("teamMember"),
35386
- id: z61.string(),
35387
- name: z61.string(),
35388
- role: z61.string().nullable(),
35389
- roleLabel: z61.string().nullable(),
35390
- bio: z61.string().nullable(),
35391
- summary: z61.string().nullable(),
35691
+ var teamMemberDataSchema = z62.object({
35692
+ _type: z62.literal("teamMember"),
35693
+ id: z62.string(),
35694
+ name: z62.string(),
35695
+ role: z62.string().nullable(),
35696
+ roleLabel: z62.string().nullable(),
35697
+ bio: z62.string().nullable(),
35698
+ summary: z62.string().nullable(),
35392
35699
  photo: teamMemberPhotoSchema,
35393
- profilePath: z61.string().nullable()
35700
+ profilePath: z62.string().nullable()
35394
35701
  });
35395
- var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35702
+ var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35396
35703
  var dynamicSourceWhen = { equals: "site_staff" };
35397
35704
  var manualSourceWhen = { equals: "site_staff", not: true };
35398
35705
  var headingNode = text(
@@ -36498,6 +36805,10 @@ var systemBlockDefinitionsRaw = [
36498
36805
  flow: conversionFlow,
36499
36806
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
36500
36807
  })),
36808
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36809
+ flow: offeringsFlow,
36810
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
36811
+ })),
36501
36812
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36502
36813
  flow: conversionFlow,
36503
36814
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -38076,34 +38387,34 @@ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38076
38387
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
38077
38388
 
38078
38389
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
38079
- import { z as z62 } from "zod";
38080
- var themeBridgeConfigSchema = z62.object({
38081
- tokens: z62.record(z62.string(), z62.string()),
38082
- typography: z62.object({
38083
- headingFamily: z62.string().optional(),
38084
- bodyFamily: z62.string().optional(),
38085
- headingWeight: z62.number().optional(),
38086
- bodyWeight: z62.number().optional()
38390
+ import { z as z63 } from "zod";
38391
+ var themeBridgeConfigSchema = z63.object({
38392
+ tokens: z63.record(z63.string(), z63.string()),
38393
+ typography: z63.object({
38394
+ headingFamily: z63.string().optional(),
38395
+ bodyFamily: z63.string().optional(),
38396
+ headingWeight: z63.number().optional(),
38397
+ bodyWeight: z63.number().optional()
38087
38398
  }).optional(),
38088
- spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38089
- corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38090
- shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38091
- components: z62.object({
38092
- buttons: z62.union([
38093
- z62.boolean(),
38094
- z62.object({
38095
- variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
38399
+ spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
38400
+ corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
38401
+ shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
38402
+ components: z63.object({
38403
+ buttons: z63.union([
38404
+ z63.boolean(),
38405
+ z63.object({
38406
+ variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
38096
38407
  })
38097
38408
  ]).optional(),
38098
- cards: z62.union([
38099
- z62.boolean(),
38100
- z62.object({
38101
- variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
38409
+ cards: z63.union([
38410
+ z63.boolean(),
38411
+ z63.object({
38412
+ variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
38102
38413
  })
38103
38414
  ]).optional(),
38104
- inputs: z62.boolean().optional()
38415
+ inputs: z63.boolean().optional()
38105
38416
  }).optional(),
38106
- overrides: z62.record(z62.string(), z62.string()).optional()
38417
+ overrides: z63.record(z63.string(), z63.string()).optional()
38107
38418
  }).passthrough();
38108
38419
 
38109
38420
  // ../theme-core/src/siteChrome.tsx
@@ -38122,24 +38433,25 @@ var SUPPORTED_LOADER_ENDPOINTS = [
38122
38433
  "listPublicPasses",
38123
38434
  "listPublicMemberships",
38124
38435
  "getPublicFormById",
38125
- "getPublicBookingServices"
38436
+ "getPublicBookingServices",
38437
+ "getPublicWeeklySlotAvailability"
38126
38438
  ];
38127
38439
 
38128
38440
  // ../api/src/sdkConfig/contracts.ts
38129
38441
  function unsafeRetypeZodSchema(schema) {
38130
38442
  return schema;
38131
38443
  }
38132
- var navIdListSchema = z63.preprocess((value) => {
38444
+ var navIdListSchema = z64.preprocess((value) => {
38133
38445
  if (!Array.isArray(value)) return void 0;
38134
38446
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
38135
38447
  return filtered.length > 0 ? filtered : void 0;
38136
- }, z63.array(z63.string()).max(200).optional());
38137
- var dashboardNavVisibilityBaseSchema = z63.object({
38138
- mode: z63.enum(["augment", "restrict"]).optional(),
38448
+ }, z64.array(z64.string()).max(200).optional());
38449
+ var dashboardNavVisibilityBaseSchema = z64.object({
38450
+ mode: z64.enum(["augment", "restrict"]).optional(),
38139
38451
  allowIds: navIdListSchema,
38140
38452
  denyIds: navIdListSchema
38141
38453
  }).strip();
38142
- var dashboardNavVisibilityRolesSchema = z63.object({
38454
+ var dashboardNavVisibilityRolesSchema = z64.object({
38143
38455
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38144
38456
  editor: dashboardNavVisibilityBaseSchema.optional(),
38145
38457
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38147,63 +38459,63 @@ var dashboardNavVisibilityRolesSchema = z63.object({
38147
38459
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38148
38460
  roles: dashboardNavVisibilityRolesSchema
38149
38461
  }).strip();
38150
- var dashboardNavigationConfigSchema = z63.object({
38462
+ var dashboardNavigationConfigSchema = z64.object({
38151
38463
  siteNav: dashboardNavVisibilitySchema.optional(),
38152
38464
  settingsNav: dashboardNavVisibilitySchema.optional()
38153
38465
  }).strip();
38154
- var dashboardConfigSchema = z63.object({
38155
- previewEditingEnabled: z63.boolean().optional(),
38466
+ var dashboardConfigSchema = z64.object({
38467
+ previewEditingEnabled: z64.boolean().optional(),
38156
38468
  navigation: dashboardNavigationConfigSchema.optional()
38157
38469
  }).strip();
38158
38470
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38159
38471
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38160
- var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38161
- var loaderFallbackScalarSchema = z63.union([
38162
- z63.string(),
38163
- z63.number(),
38164
- z63.boolean(),
38165
- z63.null()
38472
+ var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
38473
+ var loaderFallbackScalarSchema = z64.union([
38474
+ z64.string(),
38475
+ z64.number(),
38476
+ z64.boolean(),
38477
+ z64.null()
38166
38478
  ]);
38167
- var loaderParamBindingSchema = z63.object({
38168
- $bind: z63.object({
38169
- from: z63.string().min(1, "Binding path is required"),
38479
+ var loaderParamBindingSchema = z64.object({
38480
+ $bind: z64.object({
38481
+ from: z64.string().min(1, "Binding path is required"),
38170
38482
  fallback: loaderFallbackScalarSchema.optional()
38171
38483
  })
38172
38484
  });
38173
- var loaderParamValueSchema = z63.union([
38174
- z63.string(),
38175
- z63.number(),
38176
- z63.boolean(),
38485
+ var loaderParamValueSchema = z64.union([
38486
+ z64.string(),
38487
+ z64.number(),
38488
+ z64.boolean(),
38177
38489
  loaderParamBindingSchema
38178
38490
  ]);
38179
- var sdkConfigLoaderSchema = z63.object({
38491
+ var sdkConfigLoaderSchema = z64.object({
38180
38492
  endpoint: sdkLoaderEndpointSchema,
38181
- params: z63.record(z63.string(), loaderParamValueSchema),
38182
- mode: z63.enum(["server", "client"]).default("server")
38493
+ params: z64.record(z64.string(), loaderParamValueSchema),
38494
+ mode: z64.enum(["server", "client"]).default("server")
38183
38495
  });
38184
- var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38185
- var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38496
+ var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38497
+ var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38186
38498
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38187
38499
  }).transform((value) => value);
38188
- var sdkCustomBlockInputSchema = z63.object({
38500
+ var sdkCustomBlockInputSchema = z64.object({
38189
38501
  id: sdkCustomBlockIdSchema,
38190
- title: z63.string().min(1),
38191
- titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38192
- description: z63.string().optional(),
38502
+ title: z64.string().min(1),
38503
+ titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
38504
+ description: z64.string().optional(),
38193
38505
  category: blockCategoryEnum,
38194
- icon: z63.string().optional(),
38195
- tags: z63.array(z63.string()).optional(),
38506
+ icon: z64.string().optional(),
38507
+ tags: z64.array(z64.string()).optional(),
38196
38508
  fields: fieldDefinitionInputSchema.array().min(1),
38197
38509
  dataLoaders: sdkDataLoadersSchema,
38198
38510
  layout: NodeSchema.optional(),
38199
- variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38200
- defaultVariant: z63.string().min(1).optional(),
38201
- variantOptions: z63.record(
38202
- z63.string().min(1),
38203
- z63.object({
38204
- label: z63.string().min(1).optional(),
38205
- description: z63.string().min(1).optional(),
38206
- icon: z63.string().min(1).optional()
38511
+ variants: z64.record(z64.string().min(1), NodeSchema).optional(),
38512
+ defaultVariant: z64.string().min(1).optional(),
38513
+ variantOptions: z64.record(
38514
+ z64.string().min(1),
38515
+ z64.object({
38516
+ label: z64.string().min(1).optional(),
38517
+ description: z64.string().min(1).optional(),
38518
+ icon: z64.string().min(1).optional()
38207
38519
  })
38208
38520
  ).optional(),
38209
38521
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38214,7 +38526,7 @@ var sdkCustomBlockInputSchema = z63.object({
38214
38526
  const exists = data.fields.some((field) => field.id === source);
38215
38527
  if (!exists) {
38216
38528
  ctx.addIssue({
38217
- code: z63.ZodIssueCode.custom,
38529
+ code: z64.ZodIssueCode.custom,
38218
38530
  message: `titleSource must reference a valid field ID (got "${source}")`,
38219
38531
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38220
38532
  });
@@ -38223,7 +38535,7 @@ var sdkCustomBlockInputSchema = z63.object({
38223
38535
  }
38224
38536
  if (data.layout && data.variants) {
38225
38537
  ctx.addIssue({
38226
- code: z63.ZodIssueCode.custom,
38538
+ code: z64.ZodIssueCode.custom,
38227
38539
  message: "Custom block must define either `layout` or `variants`, not both",
38228
38540
  path: ["variants"]
38229
38541
  });
@@ -38232,14 +38544,14 @@ var sdkCustomBlockInputSchema = z63.object({
38232
38544
  const keys = Object.keys(data.variants);
38233
38545
  if (keys.length === 0) {
38234
38546
  ctx.addIssue({
38235
- code: z63.ZodIssueCode.custom,
38547
+ code: z64.ZodIssueCode.custom,
38236
38548
  message: "`variants` must contain at least one variant key",
38237
38549
  path: ["variants"]
38238
38550
  });
38239
38551
  }
38240
38552
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38241
38553
  ctx.addIssue({
38242
- code: z63.ZodIssueCode.custom,
38554
+ code: z64.ZodIssueCode.custom,
38243
38555
  message: "`defaultVariant` must be a key present in `variants`",
38244
38556
  path: ["defaultVariant"]
38245
38557
  });
@@ -38248,7 +38560,7 @@ var sdkCustomBlockInputSchema = z63.object({
38248
38560
  for (const key of Object.keys(data.variantOptions)) {
38249
38561
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38250
38562
  ctx.addIssue({
38251
- code: z63.ZodIssueCode.custom,
38563
+ code: z64.ZodIssueCode.custom,
38252
38564
  message: "`variantOptions` key must exist in `variants`",
38253
38565
  path: ["variantOptions", key]
38254
38566
  });
@@ -38257,78 +38569,78 @@ var sdkCustomBlockInputSchema = z63.object({
38257
38569
  }
38258
38570
  }
38259
38571
  });
38260
- var sdkBlockFieldExtensionInputSchema = z63.object({
38572
+ var sdkBlockFieldExtensionInputSchema = z64.object({
38261
38573
  fields: fieldDefinitionInputSchema.array().min(1)
38262
38574
  });
38263
- var sdkBlockFieldExtensionsInputSchema = z63.record(
38264
- z63.string().min(1),
38575
+ var sdkBlockFieldExtensionsInputSchema = z64.record(
38576
+ z64.string().min(1),
38265
38577
  sdkBlockFieldExtensionInputSchema
38266
38578
  );
38267
- var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38268
- var sdkThemeConfigSchema = z63.object({
38579
+ var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
38580
+ var sdkThemeConfigSchema = z64.object({
38269
38581
  palette: sdkThemePaletteSchema
38270
38582
  });
38271
- var sdkSectionBackgroundSchema = z63.object({
38272
- id: z63.string().min(1),
38273
- label: z63.string().min(1),
38274
- token: z63.string().min(1)
38583
+ var sdkSectionBackgroundSchema = z64.object({
38584
+ id: z64.string().min(1),
38585
+ label: z64.string().min(1),
38586
+ token: z64.string().min(1)
38275
38587
  });
38276
- var sdkSectionOptionsConfigSchema = z63.object({
38277
- backgroundColor: z63.boolean().optional(),
38278
- backgroundImage: z63.boolean().optional(),
38279
- backgroundGradient: z63.boolean().optional(),
38280
- spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38281
- textColor: z63.boolean().optional()
38588
+ var sdkSectionOptionsConfigSchema = z64.object({
38589
+ backgroundColor: z64.boolean().optional(),
38590
+ backgroundImage: z64.boolean().optional(),
38591
+ backgroundGradient: z64.boolean().optional(),
38592
+ spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
38593
+ textColor: z64.boolean().optional()
38282
38594
  });
38283
- var sdkContainerOptionsConfigSchema = z63.object({
38284
- maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38285
- alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38595
+ var sdkContainerOptionsConfigSchema = z64.object({
38596
+ maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
38597
+ alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38286
38598
  });
38287
- var sdkSiteStyleConfigSchema = z63.object({
38288
- sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38599
+ var sdkSiteStyleConfigSchema = z64.object({
38600
+ sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38289
38601
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38290
38602
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38291
38603
  });
38292
- var sdkSiteLayoutConfigSchema = z63.object({
38293
- footerBlocks: z63.array(
38294
- z63.object({
38295
- id: z63.string().min(1).optional(),
38296
- kind: z63.string().min(1),
38297
- content: z63.record(z63.string(), z63.unknown()).optional()
38604
+ var sdkSiteLayoutConfigSchema = z64.object({
38605
+ footerBlocks: z64.array(
38606
+ z64.object({
38607
+ id: z64.string().min(1).optional(),
38608
+ kind: z64.string().min(1),
38609
+ content: z64.record(z64.string(), z64.unknown()).optional()
38298
38610
  })
38299
38611
  ).optional()
38300
38612
  });
38301
- var sdkFieldSelectOptionSchema = z63.object({
38302
- value: z63.string(),
38303
- label: z63.string()
38613
+ var sdkFieldSelectOptionSchema = z64.object({
38614
+ value: z64.string(),
38615
+ label: z64.string()
38304
38616
  });
38305
- var sdkBlockFieldConfigSchema = z63.object({
38306
- options: z63.array(sdkFieldSelectOptionSchema).optional()
38617
+ var sdkBlockFieldConfigSchema = z64.object({
38618
+ options: z64.array(sdkFieldSelectOptionSchema).optional()
38307
38619
  });
38308
- var sdkBlockFieldOptionsMapSchema = z63.record(
38309
- z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38620
+ var sdkBlockFieldOptionsMapSchema = z64.record(
38621
+ z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38310
38622
  message: "Block ID must be 'block.*' or 'custom.*' format"
38311
38623
  }),
38312
- z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38624
+ z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38313
38625
  ).optional();
38314
- var sdkContentTypeTemplateConfigSchema = z63.object({
38315
- blocks: z63.array(z63.unknown())
38626
+ var sdkContentTypeTemplateConfigSchema = z64.object({
38627
+ blocks: z64.array(z64.unknown())
38316
38628
  }).passthrough();
38317
- var sdkContentTypeOrderingConfigSchema = z63.object({
38318
- mode: z63.enum(["default", "manual"]).optional()
38629
+ var sdkContentTypeOrderingConfigSchema = z64.object({
38630
+ mode: z64.enum(["default", "manual"]).optional()
38319
38631
  }).optional();
38320
- var sdkContentTypeConfigSchema = z63.object({
38321
- key: z63.string().min(1),
38322
- fields: z63.array(z63.unknown()),
38632
+ var sdkContentTypeConfigSchema = z64.object({
38633
+ key: z64.string().min(1),
38634
+ fields: z64.array(z64.unknown()),
38323
38635
  ordering: sdkContentTypeOrderingConfigSchema,
38324
38636
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38325
38637
  }).passthrough();
38326
- var sdkContentConfigSchema = z63.object({
38327
- contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38328
- pages: z63.array(z63.unknown()).optional(),
38329
- entries: z63.array(z63.unknown()).optional(),
38330
- navigationMenus: z63.array(z63.unknown()).optional(),
38331
- settings: z63.unknown().optional()
38638
+ var sdkContentConfigSchema = z64.object({
38639
+ contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
38640
+ pages: z64.array(z64.unknown()).optional(),
38641
+ entries: z64.array(z64.unknown()).optional(),
38642
+ navigationMenus: z64.array(z64.unknown()).optional(),
38643
+ settings: z64.unknown().optional()
38332
38644
  }).passthrough();
38333
38645
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38334
38646
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38343,62 +38655,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38343
38655
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38344
38656
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38345
38657
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38346
- var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38658
+ var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38347
38659
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38348
38660
  });
38349
- 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 "/"' });
38350
- var sdkWorkflowManualTriggerSchema = z63.object({
38351
- type: z63.literal("manual")
38661
+ 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 "/"' });
38662
+ var sdkWorkflowManualTriggerSchema = z64.object({
38663
+ type: z64.literal("manual")
38352
38664
  }).strict();
38353
- var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38665
+ var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38354
38666
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38355
38667
  });
38356
- var sdkWorkflowFieldChangedConditionSchema = z63.object({
38668
+ var sdkWorkflowFieldChangedConditionSchema = z64.object({
38357
38669
  field: sdkWorkflowTriggerFieldSchema,
38358
- changed: z63.literal(true)
38670
+ changed: z64.literal(true)
38359
38671
  }).strict();
38360
- var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38672
+ var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38361
38673
  field: sdkWorkflowTriggerFieldSchema,
38362
- isEmpty: z63.boolean()
38674
+ isEmpty: z64.boolean()
38363
38675
  }).strict();
38364
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38365
- type: z63.literal("entry.draft.updated"),
38366
- when: z63.array(
38367
- z63.union([
38676
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
38677
+ type: z64.literal("entry.draft.updated"),
38678
+ when: z64.array(
38679
+ z64.union([
38368
38680
  sdkWorkflowFieldChangedConditionSchema,
38369
38681
  sdkWorkflowFieldEmptyConditionSchema
38370
38682
  ])
38371
38683
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38372
38684
  }).strict();
38373
- var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38685
+ var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38374
38686
  sdkWorkflowManualTriggerSchema,
38375
38687
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38376
38688
  ]);
38377
- var sdkWorkflowConfirmationSchema = z63.object({
38378
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38379
- body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38689
+ var sdkWorkflowConfirmationSchema = z64.object({
38690
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38691
+ body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38380
38692
  }).strict();
38381
- var sdkWorkflowConfigSchema = z63.object({
38693
+ var sdkWorkflowConfigSchema = z64.object({
38382
38694
  id: sdkWorkflowIdSchema,
38383
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38384
- description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38385
- contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38695
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38696
+ description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38697
+ contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38386
38698
  endpoint: sdkWorkflowEndpointSchema,
38387
- triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38699
+ triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38388
38700
  confirmation: sdkWorkflowConfirmationSchema.optional()
38389
38701
  }).strict();
38390
- var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38702
+ var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38391
38703
  const ids = workflows.map((workflow) => workflow.id);
38392
38704
  return ids.length === new Set(ids).size;
38393
38705
  }, { message: "Workflow IDs must be unique" }).optional();
38394
- var riverbankSiteConfigInputSchema = z63.object({
38395
- siteId: z63.string().uuid(),
38396
- previewUrl: z63.string().url().optional(),
38397
- liveUrl: z63.string().url().optional(),
38706
+ var riverbankSiteConfigInputSchema = z64.object({
38707
+ siteId: z64.string().uuid(),
38708
+ previewUrl: z64.string().url().optional(),
38709
+ liveUrl: z64.string().url().optional(),
38398
38710
  theme: sdkThemeConfigSchema.optional(),
38399
38711
  styles: sdkSiteStyleConfigSchema.optional(),
38400
38712
  layout: sdkSiteLayoutConfigSchema.optional(),
38401
- customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38713
+ customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38402
38714
  const ids = blocks.map((b) => b.id);
38403
38715
  return ids.length === new Set(ids).size;
38404
38716
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38406,50 +38718,51 @@ var riverbankSiteConfigInputSchema = z63.object({
38406
38718
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38407
38719
  workflows: sdkWorkflowsSchema,
38408
38720
  content: sdkContentConfigSchema.optional(),
38409
- contentDir: z63.string().optional(),
38410
- sync: z63.object({
38411
- existingEntries: z63.enum(["skip", "update"]).optional()
38721
+ contentDir: z64.string().optional(),
38722
+ sync: z64.object({
38723
+ existingEntries: z64.enum(["skip", "update"]).optional()
38412
38724
  }).optional(),
38413
- deploy: z63.object({
38414
- verifyCommand: z63.string().optional(),
38415
- prebuildOutput: z63.string().optional()
38725
+ deploy: z64.object({
38726
+ verifyCommand: z64.string().optional(),
38727
+ prebuildOutput: z64.string().optional()
38416
38728
  }).optional(),
38417
- themeSource: z63.enum(["local", "cms"]).optional(),
38418
- activeTheme: z63.string().optional(),
38419
- enablePortal: z63.boolean().optional(),
38729
+ themeSource: z64.enum(["local", "cms"]).optional(),
38730
+ activeTheme: z64.string().optional(),
38731
+ enablePortal: z64.boolean().optional(),
38420
38732
  dashboard: dashboardConfigSchema.optional()
38421
38733
  }).strict();
38422
- var pushSdkConfigBodySchema = z63.object({
38734
+ var pushSdkConfigBodySchema = z64.object({
38423
38735
  config: riverbankSiteConfigInputSchema,
38424
- forceContentTypes: z63.boolean().optional()
38736
+ forceContentTypes: z64.boolean().optional(),
38737
+ mode: z64.enum(["apply", "preview"]).optional()
38425
38738
  }).strict();
38426
38739
 
38427
38740
  // ../api/src/siteOnboarding.ts
38428
- import { z as z64 } from "zod";
38741
+ import { z as z65 } from "zod";
38429
38742
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38430
38743
  configure_appointments: {
38431
38744
  requirementId: "configure_appointments",
38432
38745
  reason: "launch_anyway"
38433
38746
  }
38434
38747
  };
38435
- var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38748
+ var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38436
38749
  "requirementId",
38437
38750
  [
38438
- z64.object({
38439
- requirementId: z64.literal("review_generated_site")
38751
+ z65.object({
38752
+ requirementId: z65.literal("review_generated_site")
38440
38753
  }),
38441
- z64.object({
38442
- requirementId: z64.literal(
38754
+ z65.object({
38755
+ requirementId: z65.literal(
38443
38756
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38444
38757
  ),
38445
- overrideReason: z64.literal(
38758
+ overrideReason: z65.literal(
38446
38759
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38447
38760
  )
38448
38761
  })
38449
38762
  ]
38450
38763
  );
38451
- var goLiveSiteRequestSchema = z64.object({
38452
- acceptExtraSiteCharge: z64.boolean().optional()
38764
+ var goLiveSiteRequestSchema = z65.object({
38765
+ acceptExtraSiteCharge: z65.boolean().optional()
38453
38766
  });
38454
38767
 
38455
38768
  // ../surfaces/src/index.ts
@@ -38568,7 +38881,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38568
38881
  ];
38569
38882
 
38570
38883
  // ../api/src/bookingVerticals.ts
38571
- import { z as z65 } from "zod";
38884
+ import { z as z66 } from "zod";
38572
38885
  var VERTICAL_IDS = [
38573
38886
  "yoga_wellness",
38574
38887
  "fitness_pt",
@@ -38733,39 +39046,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38733
39046
  }
38734
39047
  return [...issues];
38735
39048
  }
38736
- var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
39049
+ var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38737
39050
  const parsed = parseVerticalId(value);
38738
39051
  if (!parsed) {
38739
39052
  ctx.addIssue({
38740
- code: z65.ZodIssueCode.custom,
39053
+ code: z66.ZodIssueCode.custom,
38741
39054
  message: "Unknown booking vertical"
38742
39055
  });
38743
- return z65.NEVER;
39056
+ return z66.NEVER;
38744
39057
  }
38745
39058
  return parsed;
38746
39059
  });
38747
- var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
39060
+ var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38748
39061
  const parsed = parseVerticalPresetId(value);
38749
39062
  if (!parsed) {
38750
39063
  ctx.addIssue({
38751
- code: z65.ZodIssueCode.custom,
39064
+ code: z66.ZodIssueCode.custom,
38752
39065
  message: "Unknown booking preset"
38753
39066
  });
38754
- return z65.NEVER;
39067
+ return z66.NEVER;
38755
39068
  }
38756
39069
  return parsed;
38757
39070
  });
38758
- var BookingVerticalConfigSchema = z65.object({
39071
+ var BookingVerticalConfigSchema = z66.object({
38759
39072
  verticalId: VerticalIdSchema.nullable(),
38760
- selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
39073
+ selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38761
39074
  }).transform((value, ctx) => {
38762
39075
  const resolved = resolveSiteVerticalBookingConfig(value);
38763
39076
  if (resolved.kind === "invalid") {
38764
39077
  ctx.addIssue({
38765
- code: z65.ZodIssueCode.custom,
39078
+ code: z66.ZodIssueCode.custom,
38766
39079
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38767
39080
  });
38768
- return z65.NEVER;
39081
+ return z66.NEVER;
38769
39082
  }
38770
39083
  return resolved.config;
38771
39084
  });
@@ -38792,51 +39105,51 @@ function isRecord8(value) {
38792
39105
  }
38793
39106
 
38794
39107
  // ../api/src/appointmentSetup.ts
38795
- import { z as z66 } from "zod";
39108
+ import { z as z67 } from "zod";
38796
39109
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38797
- var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
38798
- z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
38799
- z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
39110
+ var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
39111
+ z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
39112
+ z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38800
39113
  ]);
38801
- var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
38802
- z66.object({ kind: z66.literal("none") }),
38803
- z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
38804
- z66.object({
38805
- kind: z66.literal("create"),
38806
- draftId: z66.string().min(1),
38807
- title: z66.string().trim().min(1),
38808
- description: z66.string().nullable(),
38809
- timezone: z66.string().trim().min(1).nullable(),
38810
- addressJson: z66.record(z66.string(), z66.unknown()),
38811
- locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
39114
+ var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
39115
+ z67.object({ kind: z67.literal("none") }),
39116
+ z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
39117
+ z67.object({
39118
+ kind: z67.literal("create"),
39119
+ draftId: z67.string().min(1),
39120
+ title: z67.string().trim().min(1),
39121
+ description: z67.string().nullable(),
39122
+ timezone: z67.string().trim().min(1).nullable(),
39123
+ addressJson: z67.record(z67.string(), z67.unknown()),
39124
+ locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38812
39125
  })
38813
39126
  ]);
38814
- var appointmentSetupPaymentDraftSchema = z66.object({
38815
- priceType: z66.union([z66.literal("free"), z66.literal("paid")])
38816
- });
38817
- var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
38818
- z66.object({ kind: z66.literal("all_practitioners") }),
38819
- z66.object({
38820
- kind: z66.literal("selected_practitioners"),
38821
- resourceRefs: z66.array(appointmentSetupRefSchema)
39127
+ var appointmentSetupPaymentDraftSchema = z67.object({
39128
+ priceType: z67.union([z67.literal("free"), z67.literal("paid")])
39129
+ });
39130
+ var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
39131
+ z67.object({ kind: z67.literal("all_practitioners") }),
39132
+ z67.object({
39133
+ kind: z67.literal("selected_practitioners"),
39134
+ resourceRefs: z67.array(appointmentSetupRefSchema)
38822
39135
  })
38823
39136
  ]);
38824
- var appointmentSetupServiceDraftSchema = z66.object({
39137
+ var appointmentSetupServiceDraftSchema = z67.object({
38825
39138
  ref: appointmentSetupRefSchema,
38826
- title: z66.string().trim().min(1),
38827
- description: z66.string().nullable(),
38828
- durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38829
- prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38830
- cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38831
- priceAmount: z66.number().int().nonnegative().nullable(),
38832
- isActive: z66.boolean(),
38833
- locationType: z66.union([
38834
- z66.literal("virtual"),
38835
- z66.literal("in_person"),
38836
- z66.literal("hybrid")
39139
+ title: z67.string().trim().min(1),
39140
+ description: z67.string().nullable(),
39141
+ durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39142
+ prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39143
+ cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39144
+ priceAmount: z67.number().int().nonnegative().nullable(),
39145
+ isActive: z67.boolean(),
39146
+ locationType: z67.union([
39147
+ z67.literal("virtual"),
39148
+ z67.literal("in_person"),
39149
+ z67.literal("hybrid")
38837
39150
  ]),
38838
39151
  venue: appointmentSetupVenueChoiceSchema,
38839
- timezone: z66.string().trim().min(1).nullable(),
39152
+ timezone: z67.string().trim().min(1).nullable(),
38840
39153
  payment: appointmentSetupPaymentDraftSchema,
38841
39154
  assignment: appointmentSetupServiceAssignmentDraftSchema
38842
39155
  }).superRefine((service, ctx) => {
@@ -38855,49 +39168,49 @@ var appointmentSetupServiceDraftSchema = z66.object({
38855
39168
  });
38856
39169
  }
38857
39170
  });
38858
- var appointmentSetupPractitionerDraftSchema = z66.object({
39171
+ var appointmentSetupPractitionerDraftSchema = z67.object({
38859
39172
  ref: appointmentSetupRefSchema,
38860
- displayName: z66.string().trim().min(1),
38861
- bio: z66.string().nullable(),
38862
- timezone: z66.string().trim().min(1),
38863
- colorHex: z66.string().nullable()
38864
- });
38865
- var appointmentSetupWeeklyWindowDraftSchema = z66.object({
38866
- weekday: z66.number().int().min(0).max(6),
38867
- startTime: z66.string(),
38868
- endTime: z66.string()
38869
- });
38870
- var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
38871
- z66.object({ kind: z66.literal("automatic_spacing") }),
38872
- z66.object({
38873
- kind: z66.literal("regular_interval"),
38874
- intervalMinutes: z66.union([
38875
- z66.literal(10),
38876
- z66.literal(15),
38877
- z66.literal(20),
38878
- z66.literal(30),
38879
- z66.literal(45),
38880
- z66.literal(60)
39173
+ displayName: z67.string().trim().min(1),
39174
+ bio: z67.string().nullable(),
39175
+ timezone: z67.string().trim().min(1),
39176
+ colorHex: z67.string().nullable()
39177
+ });
39178
+ var appointmentSetupWeeklyWindowDraftSchema = z67.object({
39179
+ weekday: z67.number().int().min(0).max(6),
39180
+ startTime: z67.string(),
39181
+ endTime: z67.string()
39182
+ });
39183
+ var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
39184
+ z67.object({ kind: z67.literal("automatic_spacing") }),
39185
+ z67.object({
39186
+ kind: z67.literal("regular_interval"),
39187
+ intervalMinutes: z67.union([
39188
+ z67.literal(10),
39189
+ z67.literal(15),
39190
+ z67.literal(20),
39191
+ z67.literal(30),
39192
+ z67.literal(45),
39193
+ z67.literal(60)
38881
39194
  ])
38882
39195
  })
38883
39196
  ]);
38884
- var appointmentSetupAvailabilityDraftSchema = z66.object({
38885
- kind: z66.literal("weekly_windows"),
39197
+ var appointmentSetupAvailabilityDraftSchema = z67.object({
39198
+ kind: z67.literal("weekly_windows"),
38886
39199
  resourceRef: appointmentSetupRefSchema,
38887
39200
  serviceRef: appointmentSetupRefSchema.nullable(),
38888
- windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
39201
+ windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38889
39202
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38890
39203
  });
38891
39204
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38892
39205
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38893
- var appointmentSetupBookingNoticeSchema = z66.object({
38894
- minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38895
- maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38896
- });
38897
- var applyAppointmentSetupRequestSchema = z66.object({
38898
- services: z66.array(appointmentSetupServiceDraftSchema),
38899
- practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
38900
- availability: z66.array(appointmentSetupAvailabilityDraftSchema),
39206
+ var appointmentSetupBookingNoticeSchema = z67.object({
39207
+ minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39208
+ maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39209
+ });
39210
+ var applyAppointmentSetupRequestSchema = z67.object({
39211
+ services: z67.array(appointmentSetupServiceDraftSchema),
39212
+ practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
39213
+ availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38901
39214
  bookingNotice: appointmentSetupBookingNoticeSchema
38902
39215
  });
38903
39216
 
@@ -38930,24 +39243,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38930
39243
  ];
38931
39244
 
38932
39245
  // ../api/src/siteBanner.ts
38933
- import { z as z67 } from "zod";
39246
+ import { z as z68 } from "zod";
38934
39247
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38935
39248
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38936
39249
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38937
39250
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38938
- var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
38939
- var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
38940
- var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
38941
- var siteBannerCtaSchema = z67.object({
38942
- label: z67.string().trim().min(1),
39251
+ var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
39252
+ var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
39253
+ var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
39254
+ var siteBannerCtaSchema = z68.object({
39255
+ label: z68.string().trim().min(1),
38943
39256
  link: linkPayloadSchema
38944
39257
  });
38945
- var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38946
- z67.object({
38947
- enabled: z67.literal(false)
39258
+ var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
39259
+ z68.object({
39260
+ enabled: z68.literal(false)
38948
39261
  }),
38949
- z67.object({
38950
- enabled: z67.literal(true),
39262
+ z68.object({
39263
+ enabled: z68.literal(true),
38951
39264
  scope: siteBannerScopeSchema,
38952
39265
  tone: siteBannerToneSchema,
38953
39266
  body: siteBannerBodySchema,
@@ -38961,7 +39274,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38961
39274
  const analysis = analyzeSiteBannerBody(value.body);
38962
39275
  for (const issue of analysis.issues) {
38963
39276
  ctx.addIssue({
38964
- code: z67.ZodIssueCode.custom,
39277
+ code: z68.ZodIssueCode.custom,
38965
39278
  path: ["body"],
38966
39279
  message: siteBannerBodyIssueMessage(issue)
38967
39280
  });
@@ -39268,75 +39581,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39268
39581
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39269
39582
 
39270
39583
  // ../api/src/aiPlayground.ts
39271
- import { z as z68 } from "zod";
39272
- var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39584
+ import { z as z69 } from "zod";
39585
+ var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39273
39586
  // Standard RFC-6902 operations
39274
- z68.object({
39275
- op: z68.literal("add"),
39276
- path: z68.string(),
39277
- value: z68.unknown()
39587
+ z69.object({
39588
+ op: z69.literal("add"),
39589
+ path: z69.string(),
39590
+ value: z69.unknown()
39278
39591
  }),
39279
- z68.object({
39280
- op: z68.literal("remove"),
39281
- path: z68.string()
39592
+ z69.object({
39593
+ op: z69.literal("remove"),
39594
+ path: z69.string()
39282
39595
  }),
39283
- z68.object({
39284
- op: z68.literal("replace"),
39285
- path: z68.string(),
39286
- value: z68.unknown()
39596
+ z69.object({
39597
+ op: z69.literal("replace"),
39598
+ path: z69.string(),
39599
+ value: z69.unknown()
39287
39600
  }),
39288
- z68.object({
39289
- op: z68.literal("move"),
39290
- from: z68.string(),
39291
- path: z68.string()
39601
+ z69.object({
39602
+ op: z69.literal("move"),
39603
+ from: z69.string(),
39604
+ path: z69.string()
39292
39605
  }),
39293
- z68.object({
39294
- op: z68.literal("copy"),
39295
- from: z68.string(),
39296
- path: z68.string()
39606
+ z69.object({
39607
+ op: z69.literal("copy"),
39608
+ from: z69.string(),
39609
+ path: z69.string()
39297
39610
  }),
39298
39611
  // Block-level operations (Phase 2)
39299
- z68.object({
39300
- op: z68.literal("add_block"),
39301
- blockKind: z68.string(),
39302
- afterBlockId: z68.string().nullable(),
39303
- content: z68.record(z68.string(), z68.unknown()),
39304
- rationale: z68.string()
39612
+ z69.object({
39613
+ op: z69.literal("add_block"),
39614
+ blockKind: z69.string(),
39615
+ afterBlockId: z69.string().nullable(),
39616
+ content: z69.record(z69.string(), z69.unknown()),
39617
+ rationale: z69.string()
39305
39618
  }),
39306
- z68.object({
39307
- op: z68.literal("delete_block"),
39308
- blockId: z68.string(),
39309
- rationale: z68.string()
39619
+ z69.object({
39620
+ op: z69.literal("delete_block"),
39621
+ blockId: z69.string(),
39622
+ rationale: z69.string()
39310
39623
  }),
39311
- z68.object({
39312
- op: z68.literal("reorder_block"),
39313
- blockId: z68.string(),
39314
- afterBlockId: z68.string().nullable(),
39315
- rationale: z68.string()
39624
+ z69.object({
39625
+ op: z69.literal("reorder_block"),
39626
+ blockId: z69.string(),
39627
+ afterBlockId: z69.string().nullable(),
39628
+ rationale: z69.string()
39316
39629
  })
39317
39630
  ]);
39318
- var PlaygroundProposeRequest = z68.object({
39319
- request: z68.string().min(1).max(2e3)
39631
+ var PlaygroundProposeRequest = z69.object({
39632
+ request: z69.string().min(1).max(2e3)
39320
39633
  });
39321
- var MultiPagePatchEnvelope = z68.object({
39322
- pageId: z68.string(),
39323
- blockId: z68.string().optional(),
39634
+ var MultiPagePatchEnvelope = z69.object({
39635
+ pageId: z69.string(),
39636
+ blockId: z69.string().optional(),
39324
39637
  // Not present for page-level ops
39325
- blockKind: z68.string().optional(),
39326
- blockPurpose: z68.string().optional().nullable(),
39327
- ops: z68.array(Rfc6902PatchOp),
39328
- rationale: z68.string(),
39329
- currentContent: z68.record(z68.string(), z68.unknown()).optional()
39638
+ blockKind: z69.string().optional(),
39639
+ blockPurpose: z69.string().optional().nullable(),
39640
+ ops: z69.array(Rfc6902PatchOp),
39641
+ rationale: z69.string(),
39642
+ currentContent: z69.record(z69.string(), z69.unknown()).optional()
39330
39643
  });
39331
- var MultiPageUpdateResponse = z68.object({
39332
- patches: z68.array(MultiPagePatchEnvelope),
39333
- assistantMessage: z68.string(),
39334
- pagesModified: z68.number(),
39335
- toolCallsUsed: z68.number()
39644
+ var MultiPageUpdateResponse = z69.object({
39645
+ patches: z69.array(MultiPagePatchEnvelope),
39646
+ assistantMessage: z69.string(),
39647
+ pagesModified: z69.number(),
39648
+ toolCallsUsed: z69.number()
39336
39649
  });
39337
39650
 
39338
39651
  // src/config/content-validation.ts
39339
- import { z as z69 } from "zod";
39652
+ import { z as z70 } from "zod";
39340
39653
 
39341
39654
  // src/types/block-kinds.ts
39342
39655
  var SYSTEM_BLOCK_KINDS = [
@@ -39366,6 +39679,7 @@ var SYSTEM_BLOCK_KINDS = [
39366
39679
  "block.form",
39367
39680
  "block.contact-newsletter",
39368
39681
  "block.appointment-booking",
39682
+ "block.weekly-slot-availability",
39369
39683
  "block.event-registration",
39370
39684
  "block.event-details",
39371
39685
  "block.course-registration",
@@ -39467,49 +39781,53 @@ function isUnsupportedDynamicSegment(segment) {
39467
39781
  return segment.startsWith(":") || segment.includes("{") || segment.includes("}");
39468
39782
  }
39469
39783
 
39470
- // src/contracts/bindings.ts
39784
+ // ../field-primitives/src/bindings/index.ts
39471
39785
  var BINDING_TRANSFORMS = {
39472
39786
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
39473
39787
  DATE_FORMAT_SHORT: "date.formatShort",
39474
- DATE_FORMAT_LONG: "date.formatLong"
39788
+ DATE_FORMAT_LONG: "date.formatLong",
39789
+ TEXT_INLINE_TEXT: "text.inlineText"
39475
39790
  };
39476
39791
  var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
39477
- var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES.join(", ");
39792
+
39793
+ // src/contracts/bindings.ts
39794
+ var BINDING_TRANSFORM_VALUES2 = BINDING_TRANSFORM_VALUES;
39795
+ var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES2.join(", ");
39478
39796
  function describeInvalidBindingTransform(transform) {
39479
39797
  return `Transform "${transform}" is not valid. Allowed: ${BINDING_TRANSFORM_LIST}`;
39480
39798
  }
39481
39799
 
39482
39800
  // src/config/content-validation.ts
39483
- var jsonDataSchema = z69.record(z69.string(), z69.any());
39484
- var contentTypeKeySchema = z69.string().min(1).regex(
39801
+ var jsonDataSchema = z70.record(z70.string(), z70.any());
39802
+ var contentTypeKeySchema = z70.string().min(1).regex(
39485
39803
  /^[a-z][a-z0-9-]*$/,
39486
39804
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39487
39805
  );
39488
- var templateConfigSchemaForward = z69.object({
39489
- blocks: z69.array(
39490
- z69.object({
39491
- identifier: z69.string().min(1),
39492
- kind: z69.string(),
39493
- scope: z69.enum(["entry", "template"]),
39494
- bindings: z69.record(z69.string(), z69.any()).optional(),
39495
- content: z69.record(z69.string(), z69.any()).optional()
39806
+ var templateConfigSchemaForward = z70.object({
39807
+ blocks: z70.array(
39808
+ z70.object({
39809
+ identifier: z70.string().min(1),
39810
+ kind: z70.string(),
39811
+ scope: z70.enum(["entry", "template"]),
39812
+ bindings: z70.record(z70.string(), z70.any()).optional(),
39813
+ content: z70.record(z70.string(), z70.any()).optional()
39496
39814
  })
39497
39815
  )
39498
39816
  }).optional();
39499
- var contentTypeOrderingSchema = z69.object({
39500
- mode: z69.enum(["default", "manual"]).optional()
39817
+ var contentTypeOrderingSchema = z70.object({
39818
+ mode: z70.enum(["default", "manual"]).optional()
39501
39819
  }).optional();
39502
- var contentTypeConfigSchema = z69.object({
39820
+ var contentTypeConfigSchema = z70.object({
39503
39821
  key: contentTypeKeySchema,
39504
- name: z69.string().min(1),
39505
- description: z69.string().optional(),
39506
- hasPages: z69.boolean(),
39507
- routePattern: z69.string().optional(),
39822
+ name: z70.string().min(1),
39823
+ description: z70.string().optional(),
39824
+ hasPages: z70.boolean(),
39825
+ routePattern: z70.string().optional(),
39508
39826
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39509
- fields: z69.array(z69.any()).min(1, "At least one field is required"),
39510
- titleField: z69.string().optional(),
39827
+ fields: z70.array(z70.any()).min(1, "At least one field is required"),
39828
+ titleField: z70.string().optional(),
39511
39829
  ordering: contentTypeOrderingSchema,
39512
- isSingleton: z69.boolean().optional().default(false),
39830
+ isSingleton: z70.boolean().optional().default(false),
39513
39831
  template: templateConfigSchemaForward
39514
39832
  }).refine(
39515
39833
  (data) => {
@@ -39531,7 +39849,7 @@ var contentTypeConfigSchema = z69.object({
39531
39849
  }
39532
39850
  if (!data.routePattern) {
39533
39851
  ctx.addIssue({
39534
- code: z69.ZodIssueCode.custom,
39852
+ code: z70.ZodIssueCode.custom,
39535
39853
  path: ["routePattern"],
39536
39854
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39537
39855
  });
@@ -39540,7 +39858,7 @@ var contentTypeConfigSchema = z69.object({
39540
39858
  const parseResult = safeParseRouteTemplate(data.routePattern);
39541
39859
  if (!parseResult.success) {
39542
39860
  ctx.addIssue({
39543
- code: z69.ZodIssueCode.custom,
39861
+ code: z70.ZodIssueCode.custom,
39544
39862
  path: ["routePattern"],
39545
39863
  message: describeRouteTemplateParseError(parseResult.error)
39546
39864
  });
@@ -39548,44 +39866,44 @@ var contentTypeConfigSchema = z69.object({
39548
39866
  }
39549
39867
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39550
39868
  ctx.addIssue({
39551
- code: z69.ZodIssueCode.custom,
39869
+ code: z70.ZodIssueCode.custom,
39552
39870
  path: ["routePattern"],
39553
39871
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39554
39872
  });
39555
39873
  }
39556
39874
  });
39557
- var fieldBindingSchema = z69.object({
39558
- source: z69.literal("field"),
39559
- path: z69.string().min(1, "Field path is required")
39875
+ var fieldBindingSchema = z70.object({
39876
+ source: z70.literal("field"),
39877
+ path: z70.string().min(1, "Field path is required")
39560
39878
  });
39561
- var metaBindingSchema = z69.object({
39562
- source: z69.literal("meta"),
39563
- path: z69.enum(TEMPLATE_BINDING_META_PATHS, {
39879
+ var metaBindingSchema = z70.object({
39880
+ source: z70.literal("meta"),
39881
+ path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39564
39882
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39565
39883
  })
39566
39884
  });
39567
- var literalBindingSchema = z69.object({
39568
- source: z69.literal("literal"),
39569
- value: z69.unknown()
39885
+ var literalBindingSchema = z70.object({
39886
+ source: z70.literal("literal"),
39887
+ value: z70.unknown()
39570
39888
  });
39571
- var transformBindingSchema = z69.object({
39572
- source: z69.literal("transform"),
39573
- path: z69.string().min(1, "Transform path is required"),
39574
- transform: z69.enum(BINDING_TRANSFORM_VALUES, {
39889
+ var transformBindingSchema = z70.object({
39890
+ source: z70.literal("transform"),
39891
+ path: z70.string().min(1, "Transform path is required"),
39892
+ transform: z70.enum(BINDING_TRANSFORM_VALUES2, {
39575
39893
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39576
39894
  })
39577
39895
  });
39578
- var baseBindingSchema = z69.discriminatedUnion("source", [
39896
+ var baseBindingSchema = z70.discriminatedUnion("source", [
39579
39897
  fieldBindingSchema,
39580
39898
  metaBindingSchema,
39581
39899
  literalBindingSchema,
39582
39900
  transformBindingSchema
39583
39901
  ]);
39584
- var fallbackBindingSchema = z69.object({
39585
- source: z69.literal("fallback"),
39586
- sources: z69.array(z69.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39902
+ var fallbackBindingSchema = z70.object({
39903
+ source: z70.literal("fallback"),
39904
+ sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39587
39905
  });
39588
- var bindingSourceSchema = z69.union([
39906
+ var bindingSourceSchema = z70.union([
39589
39907
  baseBindingSchema,
39590
39908
  fallbackBindingSchema
39591
39909
  ]);
@@ -39599,12 +39917,12 @@ function isValidBlockKind(kind) {
39599
39917
  return false;
39600
39918
  }
39601
39919
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39602
- var blockKindSchema = z69.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39603
- var templateBlockConfigSchema = z69.object({
39604
- identifier: z69.string().min(1, "Block identifier is required"),
39920
+ var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39921
+ var templateBlockConfigSchema = z70.object({
39922
+ identifier: z70.string().min(1, "Block identifier is required"),
39605
39923
  kind: blockKindSchema,
39606
- scope: z69.enum(["entry", "template"]),
39607
- bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
39924
+ scope: z70.enum(["entry", "template"]),
39925
+ bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39608
39926
  content: jsonDataSchema.optional()
39609
39927
  }).refine(
39610
39928
  (data) => {
@@ -39623,8 +39941,8 @@ var templateBlockConfigSchema = z69.object({
39623
39941
  },
39624
39942
  { message: "Template-scoped blocks should define static content, not bindings" }
39625
39943
  );
39626
- var templateConfigSchema = z69.object({
39627
- blocks: z69.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39944
+ var templateConfigSchema = z70.object({
39945
+ blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39628
39946
  }).refine(
39629
39947
  (data) => {
39630
39948
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39633,77 +39951,77 @@ var templateConfigSchema = z69.object({
39633
39951
  },
39634
39952
  { message: "Template block identifiers must be unique" }
39635
39953
  );
39636
- var blockConfigSchema = z69.object({
39954
+ var blockConfigSchema = z70.object({
39637
39955
  kind: blockKindSchema,
39638
39956
  content: jsonDataSchema,
39639
- orderIndex: z69.number().optional()
39640
- });
39641
- var pageConfigSchema = z69.object({
39642
- identifier: z69.string().min(1, "Identifier is required"),
39643
- title: z69.string().min(1, "Title is required"),
39644
- path: z69.string().regex(/^\//, "Path must start with /"),
39645
- purpose: z69.string().default("content"),
39646
- blocks: z69.array(blockConfigSchema).optional(),
39647
- status: z69.enum(["draft", "published"]).default("draft"),
39648
- metaTitle: z69.string().optional(),
39649
- metaDescription: z69.string().optional()
39650
- });
39651
- var entryConfigSchema = z69.object({
39652
- identifier: z69.string().min(1, "Identifier is required"),
39653
- contentType: z69.string().min(1, "Content type is required"),
39957
+ orderIndex: z70.number().optional()
39958
+ });
39959
+ var pageConfigSchema = z70.object({
39960
+ identifier: z70.string().min(1, "Identifier is required"),
39961
+ title: z70.string().min(1, "Title is required"),
39962
+ path: z70.string().regex(/^\//, "Path must start with /"),
39963
+ purpose: z70.string().default("content"),
39964
+ blocks: z70.array(blockConfigSchema).optional(),
39965
+ status: z70.enum(["draft", "published"]).default("draft"),
39966
+ metaTitle: z70.string().optional(),
39967
+ metaDescription: z70.string().optional()
39968
+ });
39969
+ var entryConfigSchema = z70.object({
39970
+ identifier: z70.string().min(1, "Identifier is required"),
39971
+ contentType: z70.string().min(1, "Content type is required"),
39654
39972
  data: jsonDataSchema,
39655
- status: z69.enum(["draft", "published"]).default("draft"),
39656
- slug: z69.string().optional(),
39657
- summary: z69.string().optional(),
39973
+ status: z70.enum(["draft", "published"]).default("draft"),
39974
+ slug: z70.string().optional(),
39975
+ summary: z70.string().optional(),
39658
39976
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39659
- title: z69.any().optional().refine((value) => value === void 0, {
39977
+ title: z70.any().optional().refine((value) => value === void 0, {
39660
39978
  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."
39661
39979
  }),
39662
- metaTitle: z69.string().optional(),
39663
- metaDescription: z69.string().optional()
39980
+ metaTitle: z70.string().optional(),
39981
+ metaDescription: z70.string().optional()
39664
39982
  });
39665
- var dropdownLinkSchema = z69.object({
39666
- kind: z69.literal("dropdown")
39983
+ var dropdownLinkSchema = z70.object({
39984
+ kind: z70.literal("dropdown")
39667
39985
  });
39668
- var navigationLinkSchema = z69.discriminatedUnion("kind", [
39986
+ var navigationLinkSchema = z70.discriminatedUnion("kind", [
39669
39987
  ...navigationLinkInputSchemaOptions,
39670
39988
  dropdownLinkSchema
39671
39989
  ]);
39672
- var baseNavigationItemSchema = z69.object({
39673
- label: z69.string().min(1, "Label is required"),
39990
+ var baseNavigationItemSchema = z70.object({
39991
+ label: z70.string().min(1, "Label is required"),
39674
39992
  link: navigationLinkSchema,
39675
- isCta: z69.boolean().optional()
39993
+ isCta: z70.boolean().optional()
39676
39994
  });
39677
39995
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39678
- children: z69.lazy(() => z69.array(navigationItemConfigSchema)).optional()
39679
- });
39680
- var navigationMenuConfigSchema = z69.object({
39681
- identifier: z69.string().min(1, "Identifier is required"),
39682
- name: z69.string().min(1, "Name is required"),
39683
- isPrimary: z69.boolean().optional(),
39684
- isFooter: z69.boolean().optional(),
39685
- items: z69.array(navigationItemConfigSchema)
39996
+ children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
39997
+ });
39998
+ var navigationMenuConfigSchema = z70.object({
39999
+ identifier: z70.string().min(1, "Identifier is required"),
40000
+ name: z70.string().min(1, "Name is required"),
40001
+ isPrimary: z70.boolean().optional(),
40002
+ isFooter: z70.boolean().optional(),
40003
+ items: z70.array(navigationItemConfigSchema)
39686
40004
  }).superRefine((menu, ctx) => {
39687
40005
  const portalStats = collectPortalLinkStats(
39688
40006
  menu.items
39689
40007
  );
39690
40008
  if (portalStats.count > 1) {
39691
40009
  ctx.addIssue({
39692
- code: z69.ZodIssueCode.custom,
40010
+ code: z70.ZodIssueCode.custom,
39693
40011
  message: "Only one portal link is allowed per navigation menu",
39694
40012
  path: ["items"]
39695
40013
  });
39696
40014
  }
39697
40015
  if (portalStats.nestedLabels.length > 0) {
39698
40016
  ctx.addIssue({
39699
- code: z69.ZodIssueCode.custom,
40017
+ code: z70.ZodIssueCode.custom,
39700
40018
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39701
40019
  path: ["items"]
39702
40020
  });
39703
40021
  }
39704
40022
  if (portalStats.withChildrenLabels.length > 0) {
39705
40023
  ctx.addIssue({
39706
- code: z69.ZodIssueCode.custom,
40024
+ code: z70.ZodIssueCode.custom,
39707
40025
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39708
40026
  path: ["items"]
39709
40027
  });
@@ -39713,44 +40031,44 @@ var navigationMenuConfigSchema = z69.object({
39713
40031
  );
39714
40032
  if (cartStats.nestedLabels.length > 0) {
39715
40033
  ctx.addIssue({
39716
- code: z69.ZodIssueCode.custom,
40034
+ code: z70.ZodIssueCode.custom,
39717
40035
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39718
40036
  path: ["items"]
39719
40037
  });
39720
40038
  }
39721
40039
  if (cartStats.withChildrenLabels.length > 0) {
39722
40040
  ctx.addIssue({
39723
- code: z69.ZodIssueCode.custom,
40041
+ code: z70.ZodIssueCode.custom,
39724
40042
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39725
40043
  path: ["items"]
39726
40044
  });
39727
40045
  }
39728
40046
  if (cartStats.ctaLabels.length > 0) {
39729
40047
  ctx.addIssue({
39730
- code: z69.ZodIssueCode.custom,
40048
+ code: z70.ZodIssueCode.custom,
39731
40049
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39732
40050
  path: ["items"]
39733
40051
  });
39734
40052
  }
39735
40053
  if (cartStats.missingVisibleTextLabels.length > 0) {
39736
40054
  ctx.addIssue({
39737
- code: z69.ZodIssueCode.custom,
40055
+ code: z70.ZodIssueCode.custom,
39738
40056
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39739
40057
  path: ["items"]
39740
40058
  });
39741
40059
  }
39742
40060
  });
39743
- var siteSettingsConfigSchema = z69.object({
39744
- homepagePath: z69.string().optional(),
39745
- siteTitle: z69.string().optional(),
39746
- siteDescription: z69.string().optional(),
39747
- defaultTemplates: z69.record(z69.string(), z69.string()).optional()
40061
+ var siteSettingsConfigSchema = z70.object({
40062
+ homepagePath: z70.string().optional(),
40063
+ siteTitle: z70.string().optional(),
40064
+ siteDescription: z70.string().optional(),
40065
+ defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39748
40066
  });
39749
- var contentConfigBaseSchema = z69.object({
39750
- contentTypes: z69.array(contentTypeConfigSchema).optional(),
39751
- entries: z69.array(entryConfigSchema).optional(),
39752
- pages: z69.array(pageConfigSchema).optional(),
39753
- navigationMenus: z69.array(navigationMenuConfigSchema).optional(),
40067
+ var contentConfigBaseSchema = z70.object({
40068
+ contentTypes: z70.array(contentTypeConfigSchema).optional(),
40069
+ entries: z70.array(entryConfigSchema).optional(),
40070
+ pages: z70.array(pageConfigSchema).optional(),
40071
+ navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39754
40072
  settings: siteSettingsConfigSchema.optional()
39755
40073
  });
39756
40074
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39759,7 +40077,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39759
40077
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39760
40078
  if (duplicateKeys.length > 0) {
39761
40079
  ctx.addIssue({
39762
- code: z69.ZodIssueCode.custom,
40080
+ code: z70.ZodIssueCode.custom,
39763
40081
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39764
40082
  path: ["contentTypes"]
39765
40083
  });
@@ -39770,7 +40088,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39770
40088
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39771
40089
  if (duplicateIds.length > 0) {
39772
40090
  ctx.addIssue({
39773
- code: z69.ZodIssueCode.custom,
40091
+ code: z70.ZodIssueCode.custom,
39774
40092
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39775
40093
  path: ["pages"]
39776
40094
  });
@@ -39779,7 +40097,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39779
40097
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39780
40098
  if (duplicatePaths.length > 0) {
39781
40099
  ctx.addIssue({
39782
- code: z69.ZodIssueCode.custom,
40100
+ code: z70.ZodIssueCode.custom,
39783
40101
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39784
40102
  path: ["pages"]
39785
40103
  });
@@ -39790,7 +40108,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39790
40108
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39791
40109
  if (duplicateIds.length > 0) {
39792
40110
  ctx.addIssue({
39793
- code: z69.ZodIssueCode.custom,
40111
+ code: z70.ZodIssueCode.custom,
39794
40112
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39795
40113
  path: ["entries"]
39796
40114
  });
@@ -39801,7 +40119,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39801
40119
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39802
40120
  if (duplicateIds.length > 0) {
39803
40121
  ctx.addIssue({
39804
- code: z69.ZodIssueCode.custom,
40122
+ code: z70.ZodIssueCode.custom,
39805
40123
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39806
40124
  path: ["navigationMenus"]
39807
40125
  });
@@ -39815,7 +40133,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39815
40133
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39816
40134
  if (entriesForType.length > 1) {
39817
40135
  ctx.addIssue({
39818
- code: z69.ZodIssueCode.custom,
40136
+ code: z70.ZodIssueCode.custom,
39819
40137
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39820
40138
  path: ["entries"]
39821
40139
  });
@@ -39928,18 +40246,18 @@ function validateLayout(layout) {
39928
40246
  }
39929
40247
 
39930
40248
  // src/config/dashboard-validation.ts
39931
- import { z as z70 } from "zod";
39932
- var navIdListSchema2 = z70.preprocess((value) => {
40249
+ import { z as z71 } from "zod";
40250
+ var navIdListSchema2 = z71.preprocess((value) => {
39933
40251
  if (!Array.isArray(value)) return void 0;
39934
40252
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39935
40253
  return filtered.length > 0 ? filtered : void 0;
39936
- }, z70.array(z70.string()).max(200, "Maximum 200 nav IDs").optional());
39937
- var dashboardNavVisibilityBaseSchema2 = z70.object({
39938
- mode: z70.enum(["augment", "restrict"]).optional(),
40254
+ }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
40255
+ var dashboardNavVisibilityBaseSchema2 = z71.object({
40256
+ mode: z71.enum(["augment", "restrict"]).optional(),
39939
40257
  allowIds: navIdListSchema2,
39940
40258
  denyIds: navIdListSchema2
39941
40259
  }).strip();
39942
- var dashboardNavVisibilityRolesSchema2 = z70.object({
40260
+ var dashboardNavVisibilityRolesSchema2 = z71.object({
39943
40261
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39944
40262
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39945
40263
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39947,28 +40265,28 @@ var dashboardNavVisibilityRolesSchema2 = z70.object({
39947
40265
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39948
40266
  roles: dashboardNavVisibilityRolesSchema2
39949
40267
  }).strip();
39950
- var dashboardNavigationConfigSchema2 = z70.object({
40268
+ var dashboardNavigationConfigSchema2 = z71.object({
39951
40269
  siteNav: dashboardNavVisibilitySchema2.optional(),
39952
40270
  settingsNav: dashboardNavVisibilitySchema2.optional()
39953
40271
  }).strip();
39954
- var dashboardConfigSchema2 = z70.object({
39955
- previewEditingEnabled: z70.boolean().optional(),
40272
+ var dashboardConfigSchema2 = z71.object({
40273
+ previewEditingEnabled: z71.boolean().optional(),
39956
40274
  navigation: dashboardNavigationConfigSchema2.optional()
39957
40275
  }).strip();
39958
40276
 
39959
40277
  // src/zod/titleSourceSchema.ts
39960
- import { z as z71 } from "zod";
39961
- var titleSourceValueSchema = z71.union([
39962
- z71.string().min(1),
39963
- z71.array(z71.string().min(1)).min(1)
40278
+ import { z as z72 } from "zod";
40279
+ var titleSourceValueSchema = z72.union([
40280
+ z72.string().min(1),
40281
+ z72.array(z72.string().min(1)).min(1)
39964
40282
  ]);
39965
40283
 
39966
40284
  // src/config/validation.ts
39967
- var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39968
- var sdkThemeConfigSchema2 = z72.object({
40285
+ var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
40286
+ var sdkThemeConfigSchema2 = z73.object({
39969
40287
  palette: sdkThemePaletteSchema2
39970
40288
  });
39971
- var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
40289
+ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39972
40290
  try {
39973
40291
  const parsed = new URL(url);
39974
40292
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39977,97 +40295,97 @@ var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
39977
40295
  return false;
39978
40296
  }
39979
40297
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39980
- var sectionBackgroundSchema = z72.object({
39981
- id: z72.string(),
39982
- label: z72.string(),
39983
- token: z72.string()
40298
+ var sectionBackgroundSchema = z73.object({
40299
+ id: z73.string(),
40300
+ label: z73.string(),
40301
+ token: z73.string()
39984
40302
  // Reference to theme palette token
39985
40303
  });
39986
- var sectionSpacingSchema = z72.enum(["compact", "default", "spacious"]);
39987
- var containerMaxWidthSchema = z72.enum(["narrow", "default", "wide", "full"]);
39988
- var containerAlignmentSchema = z72.enum(["left", "center", "right"]);
39989
- var sectionOptionsSchema = z72.object({
39990
- backgroundColor: z72.boolean().optional(),
39991
- backgroundImage: z72.boolean().optional(),
39992
- backgroundGradient: z72.boolean().optional(),
39993
- spacing: z72.union([
39994
- z72.array(sectionSpacingSchema),
39995
- z72.boolean()
40304
+ var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
40305
+ var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
40306
+ var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
40307
+ var sectionOptionsSchema = z73.object({
40308
+ backgroundColor: z73.boolean().optional(),
40309
+ backgroundImage: z73.boolean().optional(),
40310
+ backgroundGradient: z73.boolean().optional(),
40311
+ spacing: z73.union([
40312
+ z73.array(sectionSpacingSchema),
40313
+ z73.boolean()
39996
40314
  ]).optional(),
39997
- textColor: z72.boolean().optional()
40315
+ textColor: z73.boolean().optional()
39998
40316
  }).optional();
39999
- var containerOptionsSchema = z72.object({
40000
- maxWidth: z72.union([
40001
- z72.array(containerMaxWidthSchema),
40002
- z72.boolean()
40317
+ var containerOptionsSchema = z73.object({
40318
+ maxWidth: z73.union([
40319
+ z73.array(containerMaxWidthSchema),
40320
+ z73.boolean()
40003
40321
  ]).optional(),
40004
- alignment: z72.union([
40005
- z72.array(containerAlignmentSchema),
40006
- z72.boolean()
40322
+ alignment: z73.union([
40323
+ z73.array(containerAlignmentSchema),
40324
+ z73.boolean()
40007
40325
  ]).optional()
40008
40326
  }).optional();
40009
- var siteStyleConfigSchema = z72.object({
40010
- sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
40327
+ var siteStyleConfigSchema = z73.object({
40328
+ sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
40011
40329
  sectionOptions: sectionOptionsSchema,
40012
40330
  containerOptions: containerOptionsSchema
40013
40331
  }).optional();
40014
- var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
40332
+ var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS);
40015
40333
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
40016
- var loaderTransformStepSchema = z72.object({
40017
- id: z72.string().refine((id) => allowedTransformIds.has(id), {
40334
+ var loaderTransformStepSchema = z73.object({
40335
+ id: z73.string().refine((id) => allowedTransformIds.has(id), {
40018
40336
  message: "Unknown transform id"
40019
40337
  }),
40020
- options: z72.record(z72.string(), z72.unknown()).optional()
40338
+ options: z73.record(z73.string(), z73.unknown()).optional()
40021
40339
  });
40022
- var loaderParamBindingSchema2 = z72.object({
40023
- $bind: z72.object({
40024
- from: z72.string().min(1, "Binding path is required"),
40340
+ var loaderParamBindingSchema2 = z73.object({
40341
+ $bind: z73.object({
40342
+ from: z73.string().min(1, "Binding path is required"),
40025
40343
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
40026
40344
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
40027
40345
  // more complex values into a string.
40028
40346
  fallback: loaderFallbackScalarSchema.optional(),
40029
- transforms: z72.array(loaderTransformStepSchema).default([]),
40030
- pick: z72.enum(["value", "collection", "context"]).default("value"),
40031
- coerce: z72.enum(["number", "boolean", "string"]).optional()
40347
+ transforms: z73.array(loaderTransformStepSchema).default([]),
40348
+ pick: z73.enum(["value", "collection", "context"]).default("value"),
40349
+ coerce: z73.enum(["number", "boolean", "string"]).optional()
40032
40350
  })
40033
40351
  });
40034
- var loaderParamValueSchema2 = z72.union([
40035
- z72.string(),
40036
- z72.number(),
40037
- z72.boolean(),
40352
+ var loaderParamValueSchema2 = z73.union([
40353
+ z73.string(),
40354
+ z73.number(),
40355
+ z73.boolean(),
40038
40356
  loaderParamBindingSchema2
40039
40357
  ]);
40040
- var loaderWhenValueSchema = z72.union([
40041
- z72.boolean(),
40358
+ var loaderWhenValueSchema = z73.union([
40359
+ z73.boolean(),
40042
40360
  loaderParamBindingSchema2
40043
40361
  ]);
40044
- var sdkConfigLoaderSchema2 = z72.object({
40362
+ var sdkConfigLoaderSchema2 = z73.object({
40045
40363
  endpoint: sdkLoaderEndpointSchema2,
40046
- params: z72.record(z72.string(), loaderParamValueSchema2),
40047
- mode: z72.enum(["server", "client"]).default("server"),
40364
+ params: z73.record(z73.string(), loaderParamValueSchema2),
40365
+ mode: z73.enum(["server", "client"]).default("server"),
40048
40366
  when: loaderWhenValueSchema.optional()
40049
40367
  });
40050
- var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
40368
+ var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
40051
40369
  (loaders) => Object.keys(loaders).length <= 5,
40052
40370
  { message: "Maximum 5 data loaders per block" }
40053
40371
  ).optional();
40054
- var fieldSelectOptionSchema = z72.object({
40055
- value: z72.string().min(1, "Option value is required"),
40056
- label: z72.string().min(1, "Option label is required")
40372
+ var fieldSelectOptionSchema = z73.object({
40373
+ value: z73.string().min(1, "Option value is required"),
40374
+ label: z73.string().min(1, "Option label is required")
40057
40375
  });
40058
- var blockFieldConfigSchema = z72.object({
40059
- options: z72.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40376
+ var blockFieldConfigSchema = z73.object({
40377
+ options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
40060
40378
  });
40061
- var blockFieldOptionsSchema = z72.record(
40062
- z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40379
+ var blockFieldOptionsSchema = z73.record(
40380
+ z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
40063
40381
  message: "Block ID must be 'block.*' or 'custom.*' format"
40064
40382
  }),
40065
- z72.record(
40066
- z72.string().min(1, "Field ID is required"),
40383
+ z73.record(
40384
+ z73.string().min(1, "Field ID is required"),
40067
40385
  blockFieldConfigSchema
40068
40386
  )
40069
40387
  ).optional();
40070
- var blockFieldExtensionSchema = z72.object({
40388
+ var blockFieldExtensionSchema = z73.object({
40071
40389
  fields: fieldSchema.array().min(1, "At least one field is required")
40072
40390
  }).refine(
40073
40391
  (data) => {
@@ -40081,10 +40399,10 @@ var blockFieldExtensionSchema = z72.object({
40081
40399
  message: "Required fields must have a defaultValue to support existing blocks"
40082
40400
  }
40083
40401
  );
40084
- var blockFieldExtensionsMapSchema = z72.record(
40402
+ var blockFieldExtensionsMapSchema = z73.record(
40085
40403
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
40086
40404
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
40087
- z72.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40405
+ z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40088
40406
  message: "Block ID must be 'block.*' format (system blocks only)"
40089
40407
  }),
40090
40408
  blockFieldExtensionSchema
@@ -40100,7 +40418,7 @@ var blockFieldExtensionsMapSchema = z72.record(
40100
40418
  (field) => field.id === collision.fieldId
40101
40419
  );
40102
40420
  ctx.addIssue({
40103
- code: z72.ZodIssueCode.custom,
40421
+ code: z73.ZodIssueCode.custom,
40104
40422
  message: collision.message,
40105
40423
  path: [
40106
40424
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -40115,24 +40433,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
40115
40433
  function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
40116
40434
  return collectBookingReservedFieldCollisions(extension, { type: "booking" });
40117
40435
  }
40118
- var syncConfigSchema = z72.object({
40119
- existingEntries: z72.enum(["skip", "update"]).optional()
40436
+ var syncConfigSchema = z73.object({
40437
+ existingEntries: z73.enum(["skip", "update"]).optional()
40120
40438
  }).optional();
40121
- var deployConfigSchema = z72.object({
40122
- verifyCommand: z72.string().optional(),
40123
- prebuildOutput: z72.string().optional()
40439
+ var deployConfigSchema = z73.object({
40440
+ verifyCommand: z73.string().optional(),
40441
+ prebuildOutput: z73.string().optional()
40124
40442
  }).optional();
40125
- var sdkCustomBlockSchema = z72.object({
40443
+ var sdkCustomBlockSchema = z73.object({
40126
40444
  // Block ID must start with 'custom.'
40127
- id: z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40445
+ id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40128
40446
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
40129
40447
  }),
40130
- title: z72.string().min(1, "Title is required"),
40448
+ title: z73.string().min(1, "Title is required"),
40131
40449
  titleSource: titleSourceValueSchema.optional(),
40132
- description: z72.string().optional(),
40450
+ description: z73.string().optional(),
40133
40451
  category: blockCategoryEnum,
40134
- icon: z72.string().optional(),
40135
- tags: z72.array(z72.string()).optional(),
40452
+ icon: z73.string().optional(),
40453
+ tags: z73.array(z73.string()).optional(),
40136
40454
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
40137
40455
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
40138
40456
  // Data loaders for CMS endpoints
@@ -40140,14 +40458,14 @@ var sdkCustomBlockSchema = z72.object({
40140
40458
  // Optional declarative layout - when present, block can render without React override
40141
40459
  layout: NodeSchema.optional(),
40142
40460
  // Optional variants system (preferred when a block has multiple structural layouts)
40143
- variants: z72.record(z72.string().min(1), NodeSchema).optional(),
40144
- defaultVariant: z72.string().min(1).optional(),
40145
- variantOptions: z72.record(
40146
- z72.string().min(1),
40147
- z72.object({
40148
- label: z72.string().min(1).optional(),
40149
- description: z72.string().min(1).optional(),
40150
- icon: z72.string().min(1).optional()
40461
+ variants: z73.record(z73.string().min(1), NodeSchema).optional(),
40462
+ defaultVariant: z73.string().min(1).optional(),
40463
+ variantOptions: z73.record(
40464
+ z73.string().min(1),
40465
+ z73.object({
40466
+ label: z73.string().min(1).optional(),
40467
+ description: z73.string().min(1).optional(),
40468
+ icon: z73.string().min(1).optional()
40151
40469
  })
40152
40470
  ).optional(),
40153
40471
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -40159,7 +40477,7 @@ var sdkCustomBlockSchema = z72.object({
40159
40477
  const exists = fields3.some((field) => field.id === source);
40160
40478
  if (!exists) {
40161
40479
  ctx.addIssue({
40162
- code: z72.ZodIssueCode.custom,
40480
+ code: z73.ZodIssueCode.custom,
40163
40481
  message: `titleSource must reference a valid field ID (got "${source}")`,
40164
40482
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
40165
40483
  });
@@ -40168,7 +40486,7 @@ var sdkCustomBlockSchema = z72.object({
40168
40486
  }
40169
40487
  if (data.layout && data.variants) {
40170
40488
  ctx.addIssue({
40171
- code: z72.ZodIssueCode.custom,
40489
+ code: z73.ZodIssueCode.custom,
40172
40490
  message: "Custom block must define either `layout` or `variants`, not both",
40173
40491
  path: ["variants"]
40174
40492
  });
@@ -40178,7 +40496,7 @@ var sdkCustomBlockSchema = z72.object({
40178
40496
  if (!result.valid) {
40179
40497
  for (const error of result.errors) {
40180
40498
  ctx.addIssue({
40181
- code: z72.ZodIssueCode.custom,
40499
+ code: z73.ZodIssueCode.custom,
40182
40500
  message: error.message,
40183
40501
  path: ["layout"]
40184
40502
  });
@@ -40189,14 +40507,14 @@ var sdkCustomBlockSchema = z72.object({
40189
40507
  const keys = Object.keys(data.variants);
40190
40508
  if (keys.length === 0) {
40191
40509
  ctx.addIssue({
40192
- code: z72.ZodIssueCode.custom,
40510
+ code: z73.ZodIssueCode.custom,
40193
40511
  message: "`variants` must contain at least one variant key",
40194
40512
  path: ["variants"]
40195
40513
  });
40196
40514
  }
40197
40515
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40198
40516
  ctx.addIssue({
40199
- code: z72.ZodIssueCode.custom,
40517
+ code: z73.ZodIssueCode.custom,
40200
40518
  message: "`defaultVariant` must be a key present in `variants`",
40201
40519
  path: ["defaultVariant"]
40202
40520
  });
@@ -40206,7 +40524,7 @@ var sdkCustomBlockSchema = z72.object({
40206
40524
  if (!result.valid) {
40207
40525
  for (const error of result.errors) {
40208
40526
  ctx.addIssue({
40209
- code: z72.ZodIssueCode.custom,
40527
+ code: z73.ZodIssueCode.custom,
40210
40528
  message: `${key}: ${error.message}`,
40211
40529
  path: ["variants", key]
40212
40530
  });
@@ -40217,7 +40535,7 @@ var sdkCustomBlockSchema = z72.object({
40217
40535
  for (const key of Object.keys(data.variantOptions)) {
40218
40536
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40219
40537
  ctx.addIssue({
40220
- code: z72.ZodIssueCode.custom,
40538
+ code: z73.ZodIssueCode.custom,
40221
40539
  message: "`variantOptions` key must exist in `variants`",
40222
40540
  path: ["variantOptions", key]
40223
40541
  });
@@ -40226,58 +40544,58 @@ var sdkCustomBlockSchema = z72.object({
40226
40544
  }
40227
40545
  }
40228
40546
  });
40229
- var themeSourceSchema = z72.enum(["local", "cms"]).optional();
40230
- var activeThemeSchema = z72.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40547
+ var themeSourceSchema = z73.enum(["local", "cms"]).optional();
40548
+ var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40231
40549
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40232
40550
  }).max(64, "Theme name too long").optional();
40233
40551
  function isValidConfigBlockKind(kind) {
40234
40552
  if (getBlockDefinition(kind)) return true;
40235
40553
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40236
40554
  }
40237
- var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40555
+ var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40238
40556
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40239
40557
  });
40240
- var layoutFooterBlockSchema = z72.object({
40241
- id: z72.string().min(1).optional(),
40558
+ var layoutFooterBlockSchema = z73.object({
40559
+ id: z73.string().min(1).optional(),
40242
40560
  kind: layoutBlockKindSchema,
40243
40561
  // Allow omitted content for blocks that rely on defaults.
40244
- content: z72.record(z72.string(), z72.unknown()).optional()
40562
+ content: z73.record(z73.string(), z73.unknown()).optional()
40245
40563
  }).strict();
40246
- var layoutConfigSchema = z72.object({
40247
- footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40564
+ var layoutConfigSchema = z73.object({
40565
+ footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40248
40566
  }).strict();
40249
- var sdkWorkflowIdSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40567
+ var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40250
40568
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40251
40569
  });
40252
- 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 "/"' });
40253
- var sdkWorkflowTriggerSchema2 = z72.discriminatedUnion("type", [
40254
- z72.object({ type: z72.literal("manual") }).strict()
40570
+ 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 "/"' });
40571
+ var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
40572
+ z73.object({ type: z73.literal("manual") }).strict()
40255
40573
  ]);
40256
- var sdkWorkflowConfirmationSchema2 = z72.object({
40257
- title: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40258
- body: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40574
+ var sdkWorkflowConfirmationSchema2 = z73.object({
40575
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40576
+ body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40259
40577
  }).strict();
40260
- var sdkWorkflowConfigSchema2 = z72.object({
40578
+ var sdkWorkflowConfigSchema2 = z73.object({
40261
40579
  id: sdkWorkflowIdSchema2,
40262
- title: z72.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40263
- description: z72.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40264
- contentType: z72.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40580
+ title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40581
+ description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40582
+ contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40265
40583
  endpoint: sdkWorkflowEndpointSchema2,
40266
- triggers: z72.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40584
+ triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40267
40585
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40268
40586
  }).strict();
40269
- var sdkWorkflowsSchema2 = z72.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40587
+ var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40270
40588
  const ids = workflows.map((workflow) => workflow.id);
40271
40589
  return ids.length === new Set(ids).size;
40272
40590
  }, { message: "Workflow IDs must be unique" }).optional();
40273
- var riverbankSiteConfigSchema = z72.object({
40274
- siteId: z72.string().uuid(),
40591
+ var riverbankSiteConfigSchema = z73.object({
40592
+ siteId: z73.string().uuid(),
40275
40593
  previewUrl: sdkSiteUrlSchema.optional(),
40276
40594
  liveUrl: sdkSiteUrlSchema.optional(),
40277
40595
  theme: sdkThemeConfigSchema2.optional(),
40278
40596
  styles: siteStyleConfigSchema,
40279
40597
  layout: layoutConfigSchema.optional(),
40280
- customBlocks: z72.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40598
+ customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40281
40599
  // Ensure unique block IDs
40282
40600
  (blocks) => {
40283
40601
  const ids = blocks.map((b) => b.id);
@@ -40290,7 +40608,7 @@ var riverbankSiteConfigSchema = z72.object({
40290
40608
  workflows: sdkWorkflowsSchema2,
40291
40609
  content: contentConfigSchema.optional(),
40292
40610
  // CLI-related configuration (Phase 4)
40293
- contentDir: z72.string().optional(),
40611
+ contentDir: z73.string().optional(),
40294
40612
  sync: syncConfigSchema,
40295
40613
  deploy: deployConfigSchema,
40296
40614
  // Theme sync configuration (Phase 5)