@riverbankcms/sdk 0.96.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 (156) hide show
  1. package/README.md +20 -1
  2. package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-CG3SSJND.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-RHNGKAAU.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +8 -0
  5. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  6. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  8. package/dist/_dts/api/src/endpoints.d.ts +80 -0
  9. package/dist/_dts/api/src/index.d.ts +3 -2
  10. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  11. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  12. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  14. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  15. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -1
  16. package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
  17. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  18. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  19. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  20. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  21. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  22. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  23. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  24. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  25. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  29. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  30. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  31. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  32. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  34. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  35. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  36. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  37. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  38. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  41. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  50. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  51. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  52. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +1 -1
  53. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
  54. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  55. package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
  56. package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
  57. package/dist/_dts/core/src/branded.d.ts +8 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +505 -2
  59. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  60. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  61. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
  62. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
  63. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  64. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  65. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  66. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  67. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  68. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  69. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
  70. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  71. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  72. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  73. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
  74. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  75. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  76. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  77. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  78. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  79. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  80. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  81. package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
  82. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
  83. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  84. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  85. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  86. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
  87. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +52 -1
  88. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  89. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  90. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  91. package/dist/_dts/sdk/src/version.d.ts +1 -1
  92. package/dist/{chunk-EL55VV6Q.mjs → chunk-6WDBXCPX.mjs} +31 -10
  93. package/dist/{chunk-XMATDBXO.mjs → chunk-DBRI3PQF.mjs} +731 -180
  94. package/dist/{chunk-VHIMXQ7Z.mjs → chunk-H24OU7WG.mjs} +2 -2
  95. package/dist/{chunk-4TLTV7OB.mjs → chunk-PKDPQHB5.mjs} +2 -2
  96. package/dist/{chunk-VTPPVAOL.mjs → chunk-QPXE2OUZ.mjs} +1 -1
  97. package/dist/{chunk-7ED5UNHL.mjs → chunk-V2BYFSPW.mjs} +109 -0
  98. package/dist/cli/index.mjs +2131 -1033
  99. package/dist/cli/init-docs/content/cli-reference.md +29 -1
  100. package/dist/cli/init-docs/content/getting-started.md +8 -0
  101. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  102. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  103. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  104. package/dist/client/{accordion-GUNXIIZR.mjs → accordion-Q2BDNL53.mjs} +1 -1
  105. package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-ZMP4P7EK.mjs} +16 -6
  106. package/dist/client/bookings.mjs +98 -18
  107. package/dist/client/{carousel-4QSX2JPC.mjs → carousel-LW3UXPWO.mjs} +1 -1
  108. package/dist/client/{cart-JKN6C4ZB.mjs → cart-Z6D3KS6K.mjs} +5 -5
  109. package/dist/client/{checkout-YY6YMITW.mjs → checkout-YMT2QJQM.mjs} +5 -5
  110. package/dist/client/{chunk-6H27K6AA.mjs → chunk-26ZBRXFR.mjs} +9 -3
  111. package/dist/client/{chunk-VJROUYOQ.mjs → chunk-DRRQ7QSL.mjs} +2 -2
  112. package/dist/client/{chunk-BFCJZODD.mjs → chunk-ET2MDQQT.mjs} +4 -4
  113. package/dist/client/{chunk-H7A6PUGM.mjs → chunk-HBQEAOG4.mjs} +1 -1
  114. package/dist/client/{chunk-CPKMJVBD.mjs → chunk-IEOECM7U.mjs} +62 -43
  115. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-KDP7ZRZV.mjs} +16 -0
  116. package/dist/client/{chunk-GWCRCJLB.mjs → chunk-R4XK3CKR.mjs} +12 -1
  117. package/dist/client/{chunk-A3YN7M3G.mjs → chunk-SK2BMD22.mjs} +2 -2
  118. package/dist/client/{chunk-SY543WZ3.mjs → chunk-XNTHVZ25.mjs} +1 -1
  119. package/dist/client/client.mjs +3729 -3054
  120. package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-DGKCMC77.mjs} +4 -4
  121. package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-74Z2NNFM.mjs} +7 -7
  122. package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-GK2ODOX2.mjs} +7 -7
  123. package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-MONAGT3N.mjs} +7 -7
  124. package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-SKGAO6PS.mjs} +7 -7
  125. package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-6KISGXRD.mjs} +7 -7
  126. package/dist/client/{form-VKRTFUNQ.mjs → form-FXPRTXHI.mjs} +2 -2
  127. package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-7NAN5WNB.mjs} +2 -2
  128. package/dist/client/hooks.mjs +1661 -1334
  129. package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-UERN74U4.mjs} +2 -2
  130. package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-SGWXMJ7U.mjs} +2 -2
  131. package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-HN3HWZQZ.mjs} +5 -5
  132. package/dist/client/{productList-RX6ZJ7BL.mjs → productList-YT22Z5UR.mjs} +5 -5
  133. package/dist/client/rendering/client.mjs +2208 -1922
  134. package/dist/client/rendering/islands.mjs +18 -18
  135. package/dist/client/rendering.mjs +1497 -811
  136. package/dist/client/{shop-BHN5AKY6.mjs → shop-TKEDNWUS.mjs} +5 -5
  137. package/dist/preview-next/before-render.mjs +109 -0
  138. package/dist/preview-next/client/runtime.mjs +5 -5
  139. package/dist/preview-next/middleware.mjs +109 -0
  140. package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-LWNYCQF2.mjs} +6 -6
  141. package/dist/server/components.mjs +2351 -1872
  142. package/dist/server/config-template-validation.mjs +6 -2
  143. package/dist/server/config-validation.mjs +1861 -1561
  144. package/dist/server/config.mjs +1861 -1561
  145. package/dist/server/data.mjs +1647 -1331
  146. package/dist/server/index.mjs +208 -9
  147. package/dist/server/next/middleware.mjs +2 -2
  148. package/dist/server/next.mjs +2572 -1878
  149. package/dist/server/page-converter.mjs +1461 -1276
  150. package/dist/server/prebuild.mjs +1 -1
  151. package/dist/server/rendering/server.mjs +2372 -1875
  152. package/dist/server/rendering.mjs +2557 -1941
  153. package/dist/server/routing.mjs +1716 -1353
  154. package/dist/server/server.mjs +1911 -1380
  155. package/package.json +1 -1
  156. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
@@ -1092,6 +1092,94 @@ var ENDPOINT_DEFINITIONS = {
1092
1092
  responseKind: "json",
1093
1093
  errors: ["resource:not_found", "server:internal_error"]
1094
1094
  },
1095
+ listAppointmentReservations: {
1096
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1097
+ method: "GET",
1098
+ auth: "user",
1099
+ responseKind: "json",
1100
+ errors: []
1101
+ },
1102
+ createAppointmentReservation: {
1103
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1104
+ method: "POST",
1105
+ auth: "user",
1106
+ responseKind: "json",
1107
+ errors: [
1108
+ "validation:invalid_input",
1109
+ "resource:not_found",
1110
+ "resource:conflict",
1111
+ "server:internal_error"
1112
+ ]
1113
+ },
1114
+ getAppointmentReservation: {
1115
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1116
+ method: "GET",
1117
+ auth: "user",
1118
+ responseKind: "json",
1119
+ errors: ["resource:not_found", "server:internal_error"]
1120
+ },
1121
+ updateAppointmentReservation: {
1122
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1123
+ method: "PUT",
1124
+ auth: "user",
1125
+ responseKind: "json",
1126
+ errors: [
1127
+ "validation:invalid_input",
1128
+ "resource:not_found",
1129
+ "resource:conflict",
1130
+ "server:internal_error"
1131
+ ]
1132
+ },
1133
+ pauseAppointmentReservation: {
1134
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1135
+ method: "POST",
1136
+ auth: "user",
1137
+ responseKind: "json",
1138
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1139
+ },
1140
+ resumeAppointmentReservation: {
1141
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1142
+ method: "POST",
1143
+ auth: "user",
1144
+ responseKind: "json",
1145
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1146
+ },
1147
+ endAppointmentReservation: {
1148
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1149
+ method: "POST",
1150
+ auth: "user",
1151
+ responseKind: "json",
1152
+ errors: [
1153
+ "validation:invalid_input",
1154
+ "resource:not_found",
1155
+ "resource:conflict",
1156
+ "server:internal_error"
1157
+ ]
1158
+ },
1159
+ previewAppointmentReservationRun: {
1160
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1161
+ method: "POST",
1162
+ auth: "user",
1163
+ responseKind: "json",
1164
+ errors: [
1165
+ "validation:invalid_input",
1166
+ "resource:not_found",
1167
+ "resource:conflict",
1168
+ "server:internal_error"
1169
+ ]
1170
+ },
1171
+ createAppointmentReservationRun: {
1172
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1173
+ method: "POST",
1174
+ auth: "user",
1175
+ responseKind: "json",
1176
+ errors: [
1177
+ "validation:invalid_input",
1178
+ "resource:not_found",
1179
+ "resource:conflict",
1180
+ "server:internal_error"
1181
+ ]
1182
+ },
1095
1183
  createTeamMemberProfile: {
1096
1184
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1097
1185
  method: "POST",
@@ -3548,6 +3636,18 @@ var ENDPOINT_DEFINITIONS = {
3548
3636
  responseKind: "json",
3549
3637
  errors: ["validation:invalid_input", "server:internal_error"]
3550
3638
  },
3639
+ resolveRouteDecision: {
3640
+ path: "/sites/{siteId}/route-decision",
3641
+ method: "GET",
3642
+ tags: [
3643
+ TAG_TEMPLATES.siteRoutableContent,
3644
+ TAG_TEMPLATES.siteRedirects,
3645
+ TAG_TEMPLATES.siteRouteOutcomes
3646
+ ],
3647
+ auth: "public",
3648
+ responseKind: "json",
3649
+ errors: ["validation:invalid_input", "server:internal_error"]
3650
+ },
3551
3651
  getPageByPath: {
3552
3652
  path: "/sites/{siteId}/pages",
3553
3653
  method: "GET",
@@ -3686,6 +3786,15 @@ var ENDPOINT_DEFINITIONS = {
3686
3786
  auth: "public",
3687
3787
  responseKind: "json"
3688
3788
  },
3789
+ getPublicWeeklySlotAvailability: {
3790
+ path: "/public/bookings/weekly-slot-availability",
3791
+ method: "GET",
3792
+ revalidate: 60,
3793
+ tags: ["site-{siteId}"],
3794
+ auth: "public",
3795
+ responseKind: "json",
3796
+ errors: []
3797
+ },
3689
3798
  createPublicBookingAppointment: {
3690
3799
  path: "/public/bookings/appointments",
3691
3800
  method: "POST",
@@ -7184,7 +7293,7 @@ var SimpleCache = class {
7184
7293
  };
7185
7294
 
7186
7295
  // src/version.ts
7187
- var SDK_VERSION = "0.96.0";
7296
+ var SDK_VERSION = "0.98.0";
7188
7297
 
7189
7298
  // src/client/error.ts
7190
7299
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -7346,11 +7455,13 @@ var PUBLIC_ENDPOINT_NAMES2 = [
7346
7455
  "getSite",
7347
7456
  "getContentByPath",
7348
7457
  "resolveRouteOutcome",
7458
+ "resolveRouteDecision",
7349
7459
  "listPublishedEntries",
7350
7460
  "getPublishedEntryPreview",
7351
7461
  "getPublicFormById",
7352
7462
  "listPublicForms",
7353
7463
  "getPublicBookingServices",
7464
+ "getPublicWeeklySlotAvailability",
7354
7465
  "getPublicChallenge",
7355
7466
  "listPublicEvents",
7356
7467
  "batchBlockLoaders",
@@ -7393,6 +7504,17 @@ var API_ENDPOINTS2 = Object.freeze({
7393
7504
  auth: "public",
7394
7505
  responseKind: "json"
7395
7506
  },
7507
+ resolveRouteDecision: {
7508
+ path: "/sites/{siteId}/route-decision",
7509
+ method: "GET",
7510
+ tags: [
7511
+ "riverbank:site:{siteId}:routable-content",
7512
+ "riverbank:site:{siteId}:redirects",
7513
+ "riverbank:site:{siteId}:route-outcomes"
7514
+ ],
7515
+ auth: "public",
7516
+ responseKind: "json"
7517
+ },
7396
7518
  listPublishedEntries: {
7397
7519
  path: "/public/content/{siteId}/{type}/entries",
7398
7520
  method: "GET",
@@ -7433,6 +7555,14 @@ var API_ENDPOINTS2 = Object.freeze({
7433
7555
  auth: "public",
7434
7556
  responseKind: "json"
7435
7557
  },
7558
+ getPublicWeeklySlotAvailability: {
7559
+ path: "/public/bookings/weekly-slot-availability",
7560
+ method: "GET",
7561
+ revalidate: 60,
7562
+ tags: ["site-{siteId}"],
7563
+ auth: "public",
7564
+ responseKind: "json"
7565
+ },
7436
7566
  getPublicChallenge: {
7437
7567
  path: "/public/challenge",
7438
7568
  method: "GET",
@@ -7560,6 +7690,10 @@ var RUNTIME_CACHE_DURABILITY_OVERRIDES = {
7560
7690
  kind: "memory-only",
7561
7691
  reason: "durable_rollout_pending"
7562
7692
  },
7693
+ resolveRouteDecision: {
7694
+ kind: "memory-only",
7695
+ reason: "durable_rollout_pending"
7696
+ },
7563
7697
  listPublishedEntries: {
7564
7698
  kind: "memory-only",
7565
7699
  reason: "durable_rollout_pending"
@@ -7580,6 +7714,10 @@ var RUNTIME_CACHE_DURABILITY_OVERRIDES = {
7580
7714
  kind: "live-only",
7581
7715
  reason: "safety_sensitive_booking"
7582
7716
  },
7717
+ getPublicWeeklySlotAvailability: {
7718
+ kind: "live-only",
7719
+ reason: "safety_sensitive_booking"
7720
+ },
7583
7721
  getPublicChallenge: {
7584
7722
  kind: "live-only",
7585
7723
  reason: "challenge_endpoint"
@@ -7794,7 +7932,8 @@ function deriveGetContentByPathKey(params) {
7794
7932
  }
7795
7933
  const normalizedParams = {
7796
7934
  siteId: normalizeScalar(siteId),
7797
- path: normalizeRuntimePublicPath(params.path)
7935
+ path: normalizeRuntimePublicPath(params.path),
7936
+ ...params.contentContract === "native" ? { contentContract: "native" } : {}
7798
7937
  };
7799
7938
  return {
7800
7939
  ok: true,
@@ -8763,19 +8902,30 @@ function createRiverbankClient(config) {
8763
8902
  );
8764
8903
  }
8765
8904
  async function getPageWithResilienceInternal(params) {
8766
- const { siteId, path, preview = false, signal } = params;
8905
+ const {
8906
+ siteId,
8907
+ path,
8908
+ preview = false,
8909
+ signal,
8910
+ contentContract = "compat"
8911
+ } = params;
8767
8912
  const publishedRuntimeCache = planPublishedRuntimeCache({
8768
8913
  endpoint: "getContentByPath",
8769
- params: { siteId, path, preview },
8914
+ params: { siteId, path, preview, contentContract },
8770
8915
  siteId
8771
8916
  });
8772
- const cacheKey = publishedRuntimeCache?.cacheKey ?? `page:${siteId}:${path}:${preview}`;
8917
+ const cacheKey = publishedRuntimeCache?.cacheKey ?? `page:${siteId}:${path}:${preview}:${contentContract}`;
8773
8918
  return resilientFetch(
8774
8919
  cacheKey,
8775
8920
  async (sig) => {
8776
8921
  return await apiClient({
8777
8922
  endpoint: "getContentByPath",
8778
- params: { siteId, path, preview: String(preview) },
8923
+ params: {
8924
+ siteId,
8925
+ path,
8926
+ preview: String(preview),
8927
+ ...contentContract === "native" ? { contentContract } : {}
8928
+ },
8779
8929
  options: { signal: sig }
8780
8930
  });
8781
8931
  },
@@ -8784,7 +8934,7 @@ function createRiverbankClient(config) {
8784
8934
  signal,
8785
8935
  publishedRuntimeCache,
8786
8936
  // Prebuild fallback only for published pages (not preview)
8787
- prebuildFallback: prebuildLoader && !preview ? () => prebuildLoader.loadPage(siteId, path) : void 0
8937
+ prebuildFallback: prebuildLoader && !preview && contentContract !== "native" ? () => prebuildLoader.loadPage(siteId, path) : void 0
8788
8938
  }
8789
8939
  );
8790
8940
  }
@@ -8973,6 +9123,38 @@ function createRiverbankClient(config) {
8973
9123
  { signal }
8974
9124
  );
8975
9125
  },
9126
+ async getPublicWeeklySlotAvailability(params) {
9127
+ const { siteId, serviceId, resourceId, horizonWeeks, timezone, signal } = params;
9128
+ if (!siteId || !serviceId) {
9129
+ throw new Error("getPublicWeeklySlotAvailability() requires siteId and serviceId");
9130
+ }
9131
+ const cacheKey = [
9132
+ "public-weekly-slot-availability",
9133
+ siteId,
9134
+ serviceId,
9135
+ resourceId ?? "",
9136
+ horizonWeeks ?? "",
9137
+ timezone ?? ""
9138
+ ].join(":");
9139
+ return resilientFetchData(
9140
+ cacheKey,
9141
+ async (sig) => {
9142
+ const apiParams = {
9143
+ siteId,
9144
+ serviceId,
9145
+ ...resourceId && { resourceId },
9146
+ ...horizonWeeks !== void 0 && { horizonWeeks: String(horizonWeeks) },
9147
+ ...timezone && { timezone }
9148
+ };
9149
+ return await apiClient({
9150
+ endpoint: "getPublicWeeklySlotAvailability",
9151
+ params: apiParams,
9152
+ options: { signal: sig }
9153
+ });
9154
+ },
9155
+ { signal }
9156
+ );
9157
+ },
8976
9158
  async listPublicEvents(params) {
8977
9159
  const {
8978
9160
  siteId,
@@ -9274,6 +9456,19 @@ function createRiverbankClient(config) {
9274
9456
  })
9275
9457
  );
9276
9458
  },
9459
+ async resolveRouteDecision(params) {
9460
+ const { siteId, path, preview = false, signal } = params;
9461
+ if (!siteId || !path) {
9462
+ throw new Error("resolveRouteDecision() requires siteId and path");
9463
+ }
9464
+ return unwrapResponse(
9465
+ await apiClient({
9466
+ endpoint: "resolveRouteDecision",
9467
+ params: { siteId, path, preview: String(preview) },
9468
+ options: { signal }
9469
+ })
9470
+ );
9471
+ },
9277
9472
  async getAllPublishedRoutes(params) {
9278
9473
  const { siteId, signal } = params;
9279
9474
  if (!siteId) {
@@ -9669,7 +9864,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
9669
9864
  );
9670
9865
 
9671
9866
  // ../api/src/sdkConfig/contracts.ts
9672
- import { z as z64 } from "zod";
9867
+ import { z as z65 } from "zod";
9673
9868
 
9674
9869
  // ../blocks/src/system/manifest/augmentManifest.ts
9675
9870
  function augmentManifest(manifest) {
@@ -9838,10 +10033,20 @@ var repeatSchema = z3.object({
9838
10033
  direction: z3.enum(["asc", "desc"]).default("asc")
9839
10034
  }).optional()
9840
10035
  });
10036
+ var conditionalAuthoringPresenceSchema = z3.discriminatedUnion("kind", [
10037
+ z3.object({ kind: z3.literal("visitor-only") }),
10038
+ z3.object({
10039
+ kind: z3.literal("recover-empty-when-active"),
10040
+ placeholder: z3.string().min(1).optional()
10041
+ })
10042
+ ]);
9841
10043
  var conditionSchema = z3.object({
9842
10044
  when: bindingSchema,
9843
10045
  equals: z3.unknown().optional(),
9844
- not: z3.boolean().default(false)
10046
+ not: z3.boolean().default(false),
10047
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
10048
+ kind: "visitor-only"
10049
+ })
9845
10050
  });
9846
10051
  var dataScopeSchema = z3.object({
9847
10052
  name: z3.string().min(1),
@@ -20994,7 +21199,8 @@ function when(path, options) {
20994
21199
  $when: {
20995
21200
  when: { from: path },
20996
21201
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
20997
- ...options?.not ? { not: true } : {}
21202
+ ...options?.not ? { not: true } : {},
21203
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
20998
21204
  }
20999
21205
  });
21000
21206
  }
@@ -30835,77 +31041,247 @@ var appointmentBookingBlockDefinition = {
30835
31041
  }
30836
31042
  };
30837
31043
 
31044
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
31045
+ import { z as z40 } from "zod";
31046
+ var weeklySlotAvailabilityManifest = createBlockManifest({
31047
+ id: "block.weekly-slot-availability",
31048
+ version: "1.0.0",
31049
+ title: "Weekly Slot Availability",
31050
+ titleSource: "heading",
31051
+ description: "Shows available recurring appointment slot patterns",
31052
+ skipSectionStyles: true,
31053
+ additionalFields: [
31054
+ {
31055
+ id: "serviceId",
31056
+ type: "reference",
31057
+ label: "Appointment service",
31058
+ description: "Choose which appointment service to show availability for",
31059
+ required: true,
31060
+ referenceKind: "appointmentService",
31061
+ allowManualEntry: false,
31062
+ ui: { intent: "behavior" }
31063
+ },
31064
+ {
31065
+ id: "resourceId",
31066
+ type: "reference",
31067
+ label: "Appointment resource",
31068
+ description: "Optionally narrow the availability to one practitioner or room",
31069
+ required: false,
31070
+ referenceKind: "appointmentResource",
31071
+ allowManualEntry: false,
31072
+ ui: { intent: "behavior" }
31073
+ },
31074
+ {
31075
+ id: "horizonWeeks",
31076
+ type: "select",
31077
+ label: "Look ahead",
31078
+ required: false,
31079
+ multiple: false,
31080
+ defaultValue: "4",
31081
+ options: [
31082
+ { value: "1", label: "1 week" },
31083
+ { value: "2", label: "2 weeks" },
31084
+ { value: "4", label: "4 weeks" }
31085
+ ],
31086
+ ui: { intent: "behavior" }
31087
+ },
31088
+ {
31089
+ id: "timezone",
31090
+ type: "text",
31091
+ label: "Timezone",
31092
+ description: "Leave blank to use the visitor timezone when the block loads",
31093
+ required: false,
31094
+ multiline: false,
31095
+ defaultValue: "",
31096
+ maxLength: 64,
31097
+ ui: { intent: "behavior" }
31098
+ },
31099
+ {
31100
+ id: "heading",
31101
+ type: "text",
31102
+ label: "Heading",
31103
+ required: false,
31104
+ multiline: false,
31105
+ defaultValue: "Weekly availability"
31106
+ },
31107
+ {
31108
+ id: "description",
31109
+ type: "richText",
31110
+ label: "Description",
31111
+ required: false
31112
+ },
31113
+ {
31114
+ id: "emptyMessage",
31115
+ type: "text",
31116
+ label: "Empty message",
31117
+ required: false,
31118
+ multiline: true,
31119
+ defaultValue: "No regular weekly openings are currently available.",
31120
+ maxLength: 180
31121
+ },
31122
+ {
31123
+ id: "ctaText",
31124
+ type: "text",
31125
+ label: "Enquiry button text",
31126
+ required: false,
31127
+ multiline: false,
31128
+ defaultValue: "Enquire about this slot",
31129
+ maxLength: 60
31130
+ },
31131
+ {
31132
+ id: "ctaUrl",
31133
+ type: "url",
31134
+ label: "Enquiry URL",
31135
+ required: false,
31136
+ ui: { intent: "behavior" }
31137
+ },
31138
+ sectionStylesField({
31139
+ id: "_sectionStyles",
31140
+ label: "Section styles"
31141
+ })
31142
+ ],
31143
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
31144
+ behaviours: {
31145
+ supportsThemeSwitching: true,
31146
+ inlineEditing: false,
31147
+ animation: false,
31148
+ paletteHidden: false
31149
+ },
31150
+ category: "interactive",
31151
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
31152
+ icon: "CalendarDays",
31153
+ layout: [
31154
+ styledSection({
31155
+ children: sectionContainer([
31156
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
31157
+ richText({}, bind("content.description"), when("content.description")),
31158
+ el(
31159
+ "weekly-slot-availability",
31160
+ withApiBindings({
31161
+ serviceId: { $bind: { from: "content.serviceId" } },
31162
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
31163
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
31164
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
31165
+ availability: { $bind: { from: "data.availability", fallback: null } },
31166
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
31167
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
31168
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
31169
+ })
31170
+ )
31171
+ ], {
31172
+ gap: "lg"
31173
+ }),
31174
+ baseClass: "",
31175
+ spacing: "spacious"
31176
+ })
31177
+ ]
31178
+ });
31179
+ var weeklySlotAvailabilityOptionSchema = z40.object({
31180
+ id: z40.string(),
31181
+ resourceId: z40.string(),
31182
+ weekday: z40.number(),
31183
+ weekdayLabel: z40.string(),
31184
+ startTime: z40.string(),
31185
+ endTime: z40.string(),
31186
+ nextDate: z40.string(),
31187
+ availableWeeks: z40.number()
31188
+ });
31189
+ var weeklySlotAvailabilityDataSchema = z40.object({
31190
+ slots: z40.array(weeklySlotAvailabilityOptionSchema),
31191
+ horizonWeeks: z40.number(),
31192
+ timezone: z40.string(),
31193
+ startDate: z40.string(),
31194
+ endDate: z40.string()
31195
+ });
31196
+ var weeklySlotAvailabilityBlockDefinition = {
31197
+ manifest: weeklySlotAvailabilityManifest,
31198
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
31199
+ dataLoaders: {
31200
+ availability: {
31201
+ endpoint: "getPublicWeeklySlotAvailability",
31202
+ params: {
31203
+ siteId: { $bind: { from: "$root.siteId" } },
31204
+ serviceId: { $bind: { from: "content.serviceId" } },
31205
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
31206
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
31207
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
31208
+ },
31209
+ mode: "server"
31210
+ }
31211
+ }
31212
+ };
31213
+
30838
31214
  // ../blocks/src/system/blocks/events/shared/schemas.ts
30839
- import { z as z44 } from "zod";
31215
+ import { z as z45 } from "zod";
30840
31216
 
30841
31217
  // ../blocks/src/lib/media.ts
30842
- import z40 from "zod";
31218
+ import z41 from "zod";
30843
31219
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
30844
31220
  "document",
30845
31221
  "spreadsheet",
30846
31222
  "archive",
30847
31223
  "audio"
30848
31224
  ];
30849
- var hotspotSchema2 = z40.object({
30850
- x: z40.number().min(0).max(1),
30851
- y: z40.number().min(0).max(1),
30852
- radius: z40.number().optional()
30853
- });
30854
- var rotationSchema2 = z40.union([z40.literal(0), z40.literal(90), z40.literal(180), z40.literal(270)]);
30855
- var rectSchema2 = z40.tuple([z40.number(), z40.number(), z40.number(), z40.number()]);
30856
- var aspectCropSchema2 = z40.object({
30857
- aspect: z40.preprocess((value) => value == null ? void 0 : value, z40.string().optional()),
30858
- rect: z40.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
30859
- hotspot: z40.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
30860
- rotation: z40.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
30861
- });
30862
- var transformSchema2 = z40.object({
30863
- aspectCrops: z40.preprocess((value) => {
31225
+ var hotspotSchema2 = z41.object({
31226
+ x: z41.number().min(0).max(1),
31227
+ y: z41.number().min(0).max(1),
31228
+ radius: z41.number().optional()
31229
+ });
31230
+ var rotationSchema2 = z41.union([z41.literal(0), z41.literal(90), z41.literal(180), z41.literal(270)]);
31231
+ var rectSchema2 = z41.tuple([z41.number(), z41.number(), z41.number(), z41.number()]);
31232
+ var aspectCropSchema2 = z41.object({
31233
+ aspect: z41.preprocess((value) => value == null ? void 0 : value, z41.string().optional()),
31234
+ rect: z41.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
31235
+ hotspot: z41.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
31236
+ rotation: z41.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
31237
+ });
31238
+ var transformSchema2 = z41.object({
31239
+ aspectCrops: z41.preprocess((value) => {
30864
31240
  if (!value || typeof value !== "object" || Array.isArray(value)) {
30865
31241
  return void 0;
30866
31242
  }
30867
31243
  return value;
30868
- }, z40.record(z40.string(), aspectCropSchema2.catch({}))).optional(),
31244
+ }, z41.record(z41.string(), aspectCropSchema2.catch({}))).optional(),
30869
31245
  rect: rectSchema2.optional(),
30870
31246
  hotspot: hotspotSchema2.optional(),
30871
31247
  rotation: rotationSchema2.optional()
30872
31248
  });
30873
- var mediaPosterSchema = z40.discriminatedUnion("tag", [
30874
- z40.object({
30875
- tag: z40.literal("storage"),
30876
- assetId: z40.string().optional(),
30877
- storageBucket: z40.string().min(1),
30878
- storagePath: z40.string().min(1)
31249
+ var mediaPosterSchema = z41.discriminatedUnion("tag", [
31250
+ z41.object({
31251
+ tag: z41.literal("storage"),
31252
+ assetId: z41.string().optional(),
31253
+ storageBucket: z41.string().min(1),
31254
+ storagePath: z41.string().min(1)
30879
31255
  }),
30880
- z40.object({
30881
- tag: z40.literal("external-src"),
30882
- assetId: z40.string().optional(),
30883
- src: z40.string().url()
31256
+ z41.object({
31257
+ tag: z41.literal("external-src"),
31258
+ assetId: z41.string().optional(),
31259
+ src: z41.string().url()
30884
31260
  })
30885
31261
  ]);
30886
- var mediaBaseSchema = z40.object({
30887
- purpose: z40.string().optional(),
30888
- placeholder: z40.boolean().default(true).optional(),
30889
- assetId: z40.string().optional(),
30890
- identifier: z40.string().optional(),
30891
- src: z40.string().optional(),
30892
- alt: z40.string().optional(),
30893
- filename: z40.string().optional(),
30894
- mimeType: z40.string().optional(),
30895
- width: z40.number().optional(),
30896
- height: z40.number().optional(),
30897
- storageBucket: z40.string().optional(),
30898
- storagePath: z40.string().optional(),
31262
+ var mediaBaseSchema = z41.object({
31263
+ purpose: z41.string().optional(),
31264
+ placeholder: z41.boolean().default(true).optional(),
31265
+ assetId: z41.string().optional(),
31266
+ identifier: z41.string().optional(),
31267
+ src: z41.string().optional(),
31268
+ alt: z41.string().optional(),
31269
+ filename: z41.string().optional(),
31270
+ mimeType: z41.string().optional(),
31271
+ width: z41.number().optional(),
31272
+ height: z41.number().optional(),
31273
+ storageBucket: z41.string().optional(),
31274
+ storagePath: z41.string().optional(),
30899
31275
  poster: mediaPosterSchema.optional(),
30900
31276
  transform: transformSchema2.optional()
30901
31277
  });
30902
- var imageMediaSchema = mediaBaseSchema.extend({ type: z40.literal("image") });
30903
- var videoMediaSchema = mediaBaseSchema.extend({ type: z40.literal("video") });
30904
- var audioMediaSchema = mediaBaseSchema.extend({ type: z40.literal("audio") });
30905
- var documentMediaSchema = mediaBaseSchema.extend({ type: z40.literal("document") });
30906
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z40.literal("spreadsheet") });
30907
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z40.literal("archive") });
30908
- var mediaSchema2 = z40.discriminatedUnion("type", [
31278
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z41.literal("image") });
31279
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z41.literal("video") });
31280
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z41.literal("audio") });
31281
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z41.literal("document") });
31282
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z41.literal("spreadsheet") });
31283
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z41.literal("archive") });
31284
+ var mediaSchema2 = z41.discriminatedUnion("type", [
30909
31285
  imageMediaSchema,
30910
31286
  videoMediaSchema,
30911
31287
  audioMediaSchema,
@@ -30915,31 +31291,31 @@ var mediaSchema2 = z40.discriminatedUnion("type", [
30915
31291
  ]);
30916
31292
 
30917
31293
  // ../blocks/src/system/manifest/richTextSchema.ts
30918
- import { z as z41 } from "zod";
30919
- var TipTapMarkSchema = z41.object({
30920
- type: z41.string(),
30921
- attrs: z41.record(z41.string(), z41.unknown()).optional()
30922
- });
30923
- var TipTapNodeSchema = z41.lazy(
30924
- () => z41.object({
30925
- type: z41.string(),
30926
- content: z41.array(TipTapNodeSchema).optional(),
30927
- text: z41.string().optional(),
30928
- attrs: z41.record(z41.string(), z41.unknown()).optional(),
30929
- marks: z41.array(TipTapMarkSchema).optional()
31294
+ import { z as z42 } from "zod";
31295
+ var TipTapMarkSchema = z42.object({
31296
+ type: z42.string(),
31297
+ attrs: z42.record(z42.string(), z42.unknown()).optional()
31298
+ });
31299
+ var TipTapNodeSchema = z42.lazy(
31300
+ () => z42.object({
31301
+ type: z42.string(),
31302
+ content: z42.array(TipTapNodeSchema).optional(),
31303
+ text: z42.string().optional(),
31304
+ attrs: z42.record(z42.string(), z42.unknown()).optional(),
31305
+ marks: z42.array(TipTapMarkSchema).optional()
30930
31306
  })
30931
31307
  );
30932
- var RichTextValueSchema = z41.union([
31308
+ var RichTextValueSchema = z42.union([
30933
31309
  // Canonical: TipTap document directly
30934
31310
  TipTapNodeSchema,
30935
31311
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
30936
- z41.object({
31312
+ z42.object({
30937
31313
  doc: TipTapNodeSchema
30938
31314
  })
30939
31315
  ]);
30940
- var RichTextDocSchema = z41.object({
30941
- type: z41.literal("doc"),
30942
- content: z41.array(TipTapNodeSchema)
31316
+ var RichTextDocSchema = z42.object({
31317
+ type: z42.literal("doc"),
31318
+ content: z42.array(TipTapNodeSchema)
30943
31319
  });
30944
31320
  function unwrapRichTextRoot(value) {
30945
31321
  if (!isRecord3(value)) return value;
@@ -30950,344 +31326,344 @@ function unwrapRichTextRoot(value) {
30950
31326
  }
30951
31327
 
30952
31328
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
30953
- import { z as z42 } from "zod";
30954
- var bookingDepositRefundPolicySchema = z42.enum([
31329
+ import { z as z43 } from "zod";
31330
+ var bookingDepositRefundPolicySchema = z43.enum([
30955
31331
  "refundable",
30956
31332
  "non_refundable"
30957
31333
  ]);
30958
- var bookingInstalmentPlanSchema = z42.union([
30959
- z42.object({
30960
- kind: z42.literal("deposit_plus_one_remainder"),
30961
- depositAmountCents: z42.number().int().min(0),
31334
+ var bookingInstalmentPlanSchema = z43.union([
31335
+ z43.object({
31336
+ kind: z43.literal("deposit_plus_one_remainder"),
31337
+ depositAmountCents: z43.number().int().min(0),
30962
31338
  depositRefundability: bookingDepositRefundPolicySchema,
30963
- remainderDueCount: z42.number().int().positive(),
30964
- intervalUnit: z42.enum(["day", "week", "month"])
31339
+ remainderDueCount: z43.number().int().positive(),
31340
+ intervalUnit: z43.enum(["day", "week", "month"])
30965
31341
  }),
30966
- z42.object({
30967
- kind: z42.literal("deposit_plus_scheduled_instalments"),
30968
- depositAmountCents: z42.number().int().min(0),
31342
+ z43.object({
31343
+ kind: z43.literal("deposit_plus_scheduled_instalments"),
31344
+ depositAmountCents: z43.number().int().min(0),
30969
31345
  depositRefundability: bookingDepositRefundPolicySchema,
30970
- instalmentCount: z42.number().int().positive(),
30971
- intervalCount: z42.number().int().positive(),
30972
- intervalUnit: z42.enum(["day", "week", "month"])
31346
+ instalmentCount: z43.number().int().positive(),
31347
+ intervalCount: z43.number().int().positive(),
31348
+ intervalUnit: z43.enum(["day", "week", "month"])
30973
31349
  }),
30974
- z42.object({
30975
- kind: z42.literal("equal_scheduled_instalments"),
30976
- instalmentCount: z42.number().int().positive(),
30977
- intervalCount: z42.number().int().positive(),
30978
- intervalUnit: z42.enum(["day", "week", "month"])
31350
+ z43.object({
31351
+ kind: z43.literal("equal_scheduled_instalments"),
31352
+ instalmentCount: z43.number().int().positive(),
31353
+ intervalCount: z43.number().int().positive(),
31354
+ intervalUnit: z43.enum(["day", "week", "month"])
30979
31355
  })
30980
31356
  ]);
30981
- var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
30982
- z42.object({
30983
- kind: z42.literal("relative_to_start_date"),
30984
- daysBeforeStart: z42.number().int().positive()
31357
+ var bookingFlexibleBalanceDueDateRuleSchema = z43.union([
31358
+ z43.object({
31359
+ kind: z43.literal("relative_to_start_date"),
31360
+ daysBeforeStart: z43.number().int().positive()
30985
31361
  }),
30986
- z42.object({
30987
- kind: z42.literal("fixed_calendar_date"),
30988
- dueAt: z42.string().datetime()
31362
+ z43.object({
31363
+ kind: z43.literal("fixed_calendar_date"),
31364
+ dueAt: z43.string().datetime()
30989
31365
  })
30990
31366
  ]);
30991
- var bookingFlexibleBalanceConfigSchema = z42.object({
30992
- upfrontAmountCents: z42.number().int().min(0),
31367
+ var bookingFlexibleBalanceConfigSchema = z43.object({
31368
+ upfrontAmountCents: z43.number().int().min(0),
30993
31369
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
30994
31370
  depositRefundability: bookingDepositRefundPolicySchema
30995
31371
  });
30996
- var blockBookingPaymentCollectionOptionSchema = z42.union([
30997
- z42.object({
30998
- kind: z42.literal("upfront")
31372
+ var blockBookingPaymentCollectionOptionSchema = z43.union([
31373
+ z43.object({
31374
+ kind: z43.literal("upfront")
30999
31375
  }),
31000
- z42.object({
31001
- kind: z42.literal("deferred_manual")
31376
+ z43.object({
31377
+ kind: z43.literal("deferred_manual")
31002
31378
  }),
31003
- z42.object({
31004
- kind: z42.literal("instalment_plan"),
31379
+ z43.object({
31380
+ kind: z43.literal("instalment_plan"),
31005
31381
  plan: bookingInstalmentPlanSchema
31006
31382
  }),
31007
- z42.object({
31008
- kind: z42.literal("flexible_balance"),
31383
+ z43.object({
31384
+ kind: z43.literal("flexible_balance"),
31009
31385
  config: bookingFlexibleBalanceConfigSchema
31010
31386
  })
31011
31387
  ]);
31012
- var blockBookingPaymentTermsSchema = z42.object({
31013
- allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
31388
+ var blockBookingPaymentTermsSchema = z43.object({
31389
+ allowedOptions: z43.array(blockBookingPaymentCollectionOptionSchema).min(1)
31014
31390
  });
31015
31391
 
31016
31392
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
31017
- import { z as z43 } from "zod";
31018
- var courseVenueSchema = z43.object({
31019
- id: z43.string(),
31020
- name: z43.string(),
31021
- address: z43.string().nullable()
31022
- });
31023
- var courseSessionSchema = z43.object({
31024
- id: z43.string(),
31025
- startsAt: z43.string(),
31026
- endsAt: z43.string(),
31027
- timeZone: z43.string(),
31028
- capacityOverride: z43.number().nullable().optional(),
31029
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
31030
- });
31031
- var courseTeamMemberSummarySchema = z43.object({
31032
- id: z43.string(),
31033
- name: z43.string(),
31034
- roleLabel: z43.string().nullable(),
31035
- summary: z43.string().nullable(),
31036
- profilePath: z43.string().nullable()
31037
- });
31038
- var coursePricingOptionSchema = z43.object({
31039
- id: z43.string(),
31040
- name: z43.string(),
31041
- description: z43.string().nullable(),
31042
- priceAmount: z43.number(),
31043
- isActive: z43.boolean(),
31044
- sortOrder: z43.number(),
31045
- capacityLimit: z43.number().nullable(),
31046
- saleStartsAt: z43.string().nullable(),
31047
- saleEndsAt: z43.string().nullable(),
31048
- attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
31049
- });
31050
- var coursePricingSchema = z43.object({
31051
- bookingRequirement: z43.enum(["none", "required"]),
31052
- pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
31053
- currency: z43.string(),
31054
- singlePriceAmount: z43.number().nullable(),
31055
- slidingMinAmount: z43.number().nullable().optional(),
31056
- slidingMaxAmount: z43.number().nullable().optional(),
31057
- slidingSuggestedAmount: z43.number().nullable().optional(),
31393
+ import { z as z44 } from "zod";
31394
+ var courseVenueSchema = z44.object({
31395
+ id: z44.string(),
31396
+ name: z44.string(),
31397
+ address: z44.string().nullable()
31398
+ });
31399
+ var courseSessionSchema = z44.object({
31400
+ id: z44.string(),
31401
+ startsAt: z44.string(),
31402
+ endsAt: z44.string(),
31403
+ timeZone: z44.string(),
31404
+ capacityOverride: z44.number().nullable().optional(),
31405
+ overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
31406
+ });
31407
+ var courseTeamMemberSummarySchema = z44.object({
31408
+ id: z44.string(),
31409
+ name: z44.string(),
31410
+ roleLabel: z44.string().nullable(),
31411
+ summary: z44.string().nullable(),
31412
+ profilePath: z44.string().nullable()
31413
+ });
31414
+ var coursePricingOptionSchema = z44.object({
31415
+ id: z44.string(),
31416
+ name: z44.string(),
31417
+ description: z44.string().nullable(),
31418
+ priceAmount: z44.number(),
31419
+ isActive: z44.boolean(),
31420
+ sortOrder: z44.number(),
31421
+ capacityLimit: z44.number().nullable(),
31422
+ saleStartsAt: z44.string().nullable(),
31423
+ saleEndsAt: z44.string().nullable(),
31424
+ attendanceScope: z44.enum(["in_person", "online", "both"]).nullable().optional()
31425
+ });
31426
+ var coursePricingSchema = z44.object({
31427
+ bookingRequirement: z44.enum(["none", "required"]),
31428
+ pricingStrategy: z44.enum(["free", "single", "tiered", "sliding_scale"]),
31429
+ currency: z44.string(),
31430
+ singlePriceAmount: z44.number().nullable(),
31431
+ slidingMinAmount: z44.number().nullable().optional(),
31432
+ slidingMaxAmount: z44.number().nullable().optional(),
31433
+ slidingSuggestedAmount: z44.number().nullable().optional(),
31058
31434
  paymentTerms: blockBookingPaymentTermsSchema,
31059
- options: z43.array(coursePricingOptionSchema)
31060
- });
31061
- var publicCourseSchema = z43.object({
31062
- id: z43.string(),
31063
- title: z43.string(),
31064
- slug: z43.string(),
31065
- description: z43.unknown().nullable(),
31066
- teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
31067
- enrollmentOpen: z43.boolean(),
31435
+ options: z44.array(coursePricingOptionSchema)
31436
+ });
31437
+ var publicCourseSchema = z44.object({
31438
+ id: z44.string(),
31439
+ title: z44.string(),
31440
+ slug: z44.string(),
31441
+ description: z44.unknown().nullable(),
31442
+ teamMembers: z44.array(courseTeamMemberSummarySchema).optional(),
31443
+ enrollmentOpen: z44.boolean(),
31068
31444
  pricing: coursePricingSchema.optional(),
31069
- priceCents: z43.number().nullable(),
31070
- currency: z43.string(),
31445
+ priceCents: z44.number().nullable(),
31446
+ currency: z44.string(),
31071
31447
  paymentTerms: blockBookingPaymentTermsSchema,
31072
- enrollmentCapacity: z43.number().nullable(),
31073
- acceptsMemberships: z43.boolean(),
31074
- status: z43.enum(["active", "draft", "cancelled"]),
31075
- sessionsCount: z43.number(),
31076
- enrolledCount: z43.number(),
31077
- availableSpots: z43.number().nullable(),
31078
- sessions: z43.array(courseSessionSchema),
31448
+ enrollmentCapacity: z44.number().nullable(),
31449
+ acceptsMemberships: z44.boolean(),
31450
+ status: z44.enum(["active", "draft", "cancelled"]),
31451
+ sessionsCount: z44.number(),
31452
+ enrolledCount: z44.number(),
31453
+ availableSpots: z44.number().nullable(),
31454
+ sessions: z44.array(courseSessionSchema),
31079
31455
  venue: courseVenueSchema.nullable(),
31080
- contentEntryId: z43.string().nullable()
31456
+ contentEntryId: z44.string().nullable()
31081
31457
  });
31082
- var publicCoursesArraySchema = z43.array(publicCourseSchema);
31458
+ var publicCoursesArraySchema = z44.array(publicCourseSchema);
31083
31459
 
31084
31460
  // ../blocks/src/system/blocks/events/shared/schemas.ts
31085
- var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
31086
- var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
31087
- var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
31088
- var publicEventDestinationSchema = z44.discriminatedUnion("kind", [
31089
- z44.object({
31090
- kind: z44.literal("native"),
31461
+ var eventPresetSchema = z45.enum(["event", "class", "workshop", "retreat", "performance"]);
31462
+ var eventScheduleScopeSchema = z45.enum(["recurring", "oneOff"]);
31463
+ var eventDestinationModeSchema = z45.enum(["cms-managed", "system-managed"]);
31464
+ var publicEventDestinationSchema = z45.discriminatedUnion("kind", [
31465
+ z45.object({
31466
+ kind: z45.literal("native"),
31091
31467
  mode: eventDestinationModeSchema,
31092
- path: z44.string()
31468
+ path: z45.string()
31093
31469
  }),
31094
- z44.object({
31095
- kind: z44.literal("external"),
31096
- url: z44.string(),
31097
- label: z44.string()
31470
+ z45.object({
31471
+ kind: z45.literal("external"),
31472
+ url: z45.string(),
31473
+ label: z45.string()
31098
31474
  })
31099
31475
  ]);
31100
- var eventVenueSchema = z44.object({
31101
- id: z44.string(),
31102
- name: z44.string(),
31103
- address: z44.string().nullable(),
31104
- location: z44.object({
31105
- lat: z44.number(),
31106
- lng: z44.number()
31476
+ var eventVenueSchema = z45.object({
31477
+ id: z45.string(),
31478
+ name: z45.string(),
31479
+ address: z45.string().nullable(),
31480
+ location: z45.object({
31481
+ lat: z45.number(),
31482
+ lng: z45.number()
31107
31483
  }).nullable()
31108
31484
  });
31109
- var eventCategorySchema = z44.object({
31110
- id: z44.string(),
31111
- name: z44.string(),
31112
- color: z44.string().nullable()
31113
- });
31114
- var pricingTypeSchema = z44.enum(["free", "paid", "external"]);
31115
- var accessRestrictionSchema = z44.enum(["none", "category"]);
31116
- var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
31117
- var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
31118
- z44.object({ kind: z44.literal("free"), currency: z44.string() }),
31119
- z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
31120
- z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
31121
- z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
31485
+ var eventCategorySchema = z45.object({
31486
+ id: z45.string(),
31487
+ name: z45.string(),
31488
+ color: z45.string().nullable()
31489
+ });
31490
+ var pricingTypeSchema = z45.enum(["free", "paid", "external"]);
31491
+ var accessRestrictionSchema = z45.enum(["none", "category"]);
31492
+ var eventPricingModeSchema = z45.enum(["single", "ticket_types"]);
31493
+ var publicCoursePriceDisplaySchema = z45.discriminatedUnion("kind", [
31494
+ z45.object({ kind: z45.literal("free"), currency: z45.string() }),
31495
+ z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
31496
+ z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
31497
+ z45.object({ kind: z45.literal("unavailable"), currency: z45.string() })
31122
31498
  ]);
31123
- var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
31124
- z44.object({ kind: z44.literal("free"), currency: z44.string() }),
31125
- z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
31126
- z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
31127
- z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
31128
- z44.object({
31129
- kind: z44.literal("mixed"),
31130
- paidFromAmount: z44.number(),
31131
- paidToAmount: z44.number(),
31132
- currency: z44.string()
31499
+ var publicEventPriceDisplaySchema = z45.discriminatedUnion("kind", [
31500
+ z45.object({ kind: z45.literal("free"), currency: z45.string() }),
31501
+ z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
31502
+ z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
31503
+ z45.object({ kind: z45.literal("range"), minAmount: z45.number(), maxAmount: z45.number(), currency: z45.string() }),
31504
+ z45.object({
31505
+ kind: z45.literal("mixed"),
31506
+ paidFromAmount: z45.number(),
31507
+ paidToAmount: z45.number(),
31508
+ currency: z45.string()
31133
31509
  }),
31134
- z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
31135
- z44.object({ kind: z44.literal("external"), label: z44.string() }),
31136
- z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
31510
+ z45.object({ kind: z45.literal("unavailable"), currency: z45.string() }),
31511
+ z45.object({ kind: z45.literal("external"), label: z45.string() }),
31512
+ z45.object({ kind: z45.literal("course"), display: publicCoursePriceDisplaySchema })
31137
31513
  ]);
31138
- var publicEventTicketTypePriceDisplaySchema = z44.union([
31139
- z44.object({ kind: z44.literal("free"), currency: z44.string() }),
31140
- z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
31141
- z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
31142
- z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
31143
- z44.object({
31144
- kind: z44.literal("mixed"),
31145
- paidFromAmount: z44.number(),
31146
- paidToAmount: z44.number(),
31147
- currency: z44.string()
31514
+ var publicEventTicketTypePriceDisplaySchema = z45.union([
31515
+ z45.object({ kind: z45.literal("free"), currency: z45.string() }),
31516
+ z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
31517
+ z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
31518
+ z45.object({ kind: z45.literal("range"), minAmount: z45.number(), maxAmount: z45.number(), currency: z45.string() }),
31519
+ z45.object({
31520
+ kind: z45.literal("mixed"),
31521
+ paidFromAmount: z45.number(),
31522
+ paidToAmount: z45.number(),
31523
+ currency: z45.string()
31148
31524
  }),
31149
- z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
31525
+ z45.object({ kind: z45.literal("unavailable"), currency: z45.string() })
31150
31526
  ]);
31151
- var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
31152
- var publicEventAttendanceModeAvailabilitySchema = z44.object({
31527
+ var publicEventAttendanceModeSchema = z45.enum(["in_person", "online"]);
31528
+ var publicEventAttendanceModeAvailabilitySchema = z45.object({
31153
31529
  mode: publicEventAttendanceModeSchema,
31154
- capacity: z44.number().nullable(),
31155
- registeredCount: z44.number(),
31156
- availableSpots: z44.number().nullable(),
31157
- waitlistEnabled: z44.boolean()
31158
- });
31159
- var publicEventTicketTypeAvailabilitySchema = z44.union([
31160
- z44.object({
31161
- kind: z44.literal("available"),
31162
- remainingCapacity: z44.number().nullable()
31530
+ capacity: z45.number().nullable(),
31531
+ registeredCount: z45.number(),
31532
+ availableSpots: z45.number().nullable(),
31533
+ waitlistEnabled: z45.boolean()
31534
+ });
31535
+ var publicEventTicketTypeAvailabilitySchema = z45.union([
31536
+ z45.object({
31537
+ kind: z45.literal("available"),
31538
+ remainingCapacity: z45.number().nullable()
31163
31539
  }),
31164
- z44.object({
31165
- kind: z44.literal("unavailable"),
31166
- reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
31167
- remainingCapacity: z44.number().nullable()
31540
+ z45.object({
31541
+ kind: z45.literal("unavailable"),
31542
+ reason: z45.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
31543
+ remainingCapacity: z45.number().nullable()
31168
31544
  })
31169
31545
  ]);
31170
- var publicEventTicketTypeSchema = z44.object({
31171
- id: z44.string(),
31172
- siteId: z44.string(),
31173
- eventSeriesId: z44.string(),
31174
- name: z44.string(),
31175
- description: z44.string().nullable(),
31176
- priceAmount: z44.number(),
31177
- isActive: z44.boolean(),
31178
- sortOrder: z44.number(),
31179
- capacityMode: z44.enum(["limited", "unlimited"]),
31180
- capacityLimit: z44.number().nullable(),
31181
- attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
31182
- saleStartsAt: z44.string().nullable(),
31183
- saleEndsAt: z44.string().nullable(),
31546
+ var publicEventTicketTypeSchema = z45.object({
31547
+ id: z45.string(),
31548
+ siteId: z45.string(),
31549
+ eventSeriesId: z45.string(),
31550
+ name: z45.string(),
31551
+ description: z45.string().nullable(),
31552
+ priceAmount: z45.number(),
31553
+ isActive: z45.boolean(),
31554
+ sortOrder: z45.number(),
31555
+ capacityMode: z45.enum(["limited", "unlimited"]),
31556
+ capacityLimit: z45.number().nullable(),
31557
+ attendanceScope: z45.enum(["in_person", "online", "both"]).optional(),
31558
+ saleStartsAt: z45.string().nullable(),
31559
+ saleEndsAt: z45.string().nullable(),
31184
31560
  availability: publicEventTicketTypeAvailabilitySchema,
31185
- createdAt: z44.string(),
31186
- updatedAt: z44.string()
31187
- });
31188
- var publicEventPricingSchema = z44.discriminatedUnion("kind", [
31189
- z44.object({
31190
- kind: z44.literal("drop_in"),
31191
- currency: z44.string(),
31192
- display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
31561
+ createdAt: z45.string(),
31562
+ updatedAt: z45.string()
31563
+ });
31564
+ var publicEventPricingSchema = z45.discriminatedUnion("kind", [
31565
+ z45.object({
31566
+ kind: z45.literal("drop_in"),
31567
+ currency: z45.string(),
31568
+ display: z45.object({ kind: z45.literal("free"), currency: z45.string() })
31193
31569
  }),
31194
- z44.object({
31195
- kind: z44.literal("free_registration"),
31196
- currency: z44.string(),
31197
- display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
31570
+ z45.object({
31571
+ kind: z45.literal("free_registration"),
31572
+ currency: z45.string(),
31573
+ display: z45.object({ kind: z45.literal("free"), currency: z45.string() })
31198
31574
  }),
31199
- z44.object({
31200
- kind: z44.literal("single_paid"),
31201
- amount: z44.number(),
31202
- currency: z44.string(),
31203
- display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
31575
+ z45.object({
31576
+ kind: z45.literal("single_paid"),
31577
+ amount: z45.number(),
31578
+ currency: z45.string(),
31579
+ display: z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() })
31204
31580
  }),
31205
- z44.object({
31206
- kind: z44.literal("ticket_types"),
31207
- currency: z44.string(),
31208
- ticketTypes: z44.array(publicEventTicketTypeSchema),
31581
+ z45.object({
31582
+ kind: z45.literal("ticket_types"),
31583
+ currency: z45.string(),
31584
+ ticketTypes: z45.array(publicEventTicketTypeSchema),
31209
31585
  display: publicEventTicketTypePriceDisplaySchema
31210
31586
  }),
31211
- z44.object({
31212
- kind: z44.literal("sliding_scale"),
31213
- minAmount: z44.number(),
31214
- maxAmount: z44.number(),
31215
- suggestedAmount: z44.number().nullable(),
31216
- currency: z44.string(),
31217
- display: z44.object({
31218
- kind: z44.literal("range"),
31219
- minAmount: z44.number(),
31220
- maxAmount: z44.number(),
31221
- currency: z44.string()
31587
+ z45.object({
31588
+ kind: z45.literal("sliding_scale"),
31589
+ minAmount: z45.number(),
31590
+ maxAmount: z45.number(),
31591
+ suggestedAmount: z45.number().nullable(),
31592
+ currency: z45.string(),
31593
+ display: z45.object({
31594
+ kind: z45.literal("range"),
31595
+ minAmount: z45.number(),
31596
+ maxAmount: z45.number(),
31597
+ currency: z45.string()
31222
31598
  })
31223
31599
  }),
31224
- z44.object({
31225
- kind: z44.literal("course"),
31226
- display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
31600
+ z45.object({
31601
+ kind: z45.literal("course"),
31602
+ display: z45.object({ kind: z45.literal("course"), display: publicCoursePriceDisplaySchema })
31227
31603
  }),
31228
- z44.object({
31229
- kind: z44.literal("external"),
31230
- display: z44.object({ kind: z44.literal("external"), label: z44.string() })
31604
+ z45.object({
31605
+ kind: z45.literal("external"),
31606
+ display: z45.object({ kind: z45.literal("external"), label: z45.string() })
31231
31607
  })
31232
31608
  ]);
31233
- var publicTeamMemberSummarySchema = z44.object({
31234
- id: z44.string(),
31235
- name: z44.string(),
31236
- roleLabel: z44.string().nullable(),
31237
- summary: z44.string().nullable(),
31238
- profilePath: z44.string().nullable()
31609
+ var publicTeamMemberSummarySchema = z45.object({
31610
+ id: z45.string(),
31611
+ name: z45.string(),
31612
+ roleLabel: z45.string().nullable(),
31613
+ summary: z45.string().nullable(),
31614
+ profilePath: z45.string().nullable()
31239
31615
  });
31240
- var publicEventSchema = z44.object({
31241
- kind: z44.enum(["event", "course_session"]).optional(),
31616
+ var publicEventSchema = z45.object({
31617
+ kind: z45.enum(["event", "course_session"]).optional(),
31242
31618
  eventPreset: eventPresetSchema.optional(),
31243
31619
  eventDestinationMode: eventDestinationModeSchema.optional(),
31244
31620
  scheduleScope: eventScheduleScopeSchema.optional(),
31245
- id: z44.string(),
31246
- occurrenceId: z44.string(),
31247
- seriesId: z44.string(),
31248
- title: z44.string(),
31249
- description: z44.string().nullable(),
31250
- content: z44.object({
31621
+ id: z45.string(),
31622
+ occurrenceId: z45.string(),
31623
+ seriesId: z45.string(),
31624
+ title: z45.string(),
31625
+ description: z45.string().nullable(),
31626
+ content: z45.object({
31251
31627
  body: RichTextDocSchema.nullable().optional()
31252
31628
  }).optional(),
31253
- presentation: z44.object({
31254
- cardTitleOverride: z44.string().nullable().optional(),
31255
- summary: z44.string().nullable().optional(),
31629
+ presentation: z45.object({
31630
+ cardTitleOverride: z45.string().nullable().optional(),
31631
+ summary: z45.string().nullable().optional(),
31256
31632
  image: mediaSchema2.nullable().optional()
31257
31633
  }).optional(),
31258
- slug: z44.string(),
31259
- path: z44.string().nullable(),
31634
+ slug: z45.string(),
31635
+ path: z45.string().nullable(),
31260
31636
  destination: publicEventDestinationSchema,
31261
- requiresRegistration: z44.boolean(),
31262
- deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
31263
- attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
31264
- startsAt: z44.string(),
31265
- endsAt: z44.string(),
31266
- capacity: z44.number().nullable(),
31267
- registeredCount: z44.number(),
31268
- availableSpots: z44.number().nullable(),
31269
- waitlistEnabled: z44.boolean(),
31637
+ requiresRegistration: z45.boolean(),
31638
+ deliveryMode: z45.enum(["in_person", "online", "hybrid"]),
31639
+ attendanceModes: z45.array(publicEventAttendanceModeAvailabilitySchema),
31640
+ startsAt: z45.string(),
31641
+ endsAt: z45.string(),
31642
+ capacity: z45.number().nullable(),
31643
+ registeredCount: z45.number(),
31644
+ availableSpots: z45.number().nullable(),
31645
+ waitlistEnabled: z45.boolean(),
31270
31646
  venue: eventVenueSchema.nullable(),
31271
31647
  eventCategory: eventCategorySchema.nullable(),
31272
- teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
31273
- status: z44.enum(["active", "draft", "archived"]).optional(),
31274
- timeZone: z44.string(),
31648
+ teamMembers: z45.array(publicTeamMemberSummarySchema).optional(),
31649
+ status: z45.enum(["active", "draft", "archived"]).optional(),
31650
+ timeZone: z45.string(),
31275
31651
  pricing: publicEventPricingSchema,
31276
31652
  paymentTerms: blockBookingPaymentTermsSchema,
31277
31653
  accessRestriction: accessRestrictionSchema,
31278
- allowedCategoryIds: z44.array(z44.string()),
31279
- requireGuestDetails: z44.boolean().optional(),
31280
- acceptsPasses: z44.boolean().optional(),
31281
- acceptsMemberships: z44.boolean().optional(),
31282
- course: z44.object({
31283
- id: z44.string(),
31654
+ allowedCategoryIds: z45.array(z45.string()),
31655
+ requireGuestDetails: z45.boolean().optional(),
31656
+ acceptsPasses: z45.boolean().optional(),
31657
+ acceptsMemberships: z45.boolean().optional(),
31658
+ course: z45.object({
31659
+ id: z45.string(),
31284
31660
  pricing: coursePricingSchema.optional(),
31285
- priceCents: z44.number().nullable(),
31286
- currency: z44.string(),
31287
- enrollmentOpen: z44.boolean()
31661
+ priceCents: z45.number().nullable(),
31662
+ currency: z45.string(),
31663
+ enrollmentOpen: z45.boolean()
31288
31664
  }).nullable().optional()
31289
31665
  });
31290
- var publicEventsArraySchema = z44.array(publicEventSchema);
31666
+ var publicEventsArraySchema = z45.array(publicEventSchema);
31291
31667
 
31292
31668
  // ../blocks/src/system/blocks/events/shared/fields.ts
31293
31669
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -31490,52 +31866,80 @@ function normalizeEventStaffMemberId(value) {
31490
31866
  return trimmed ? trimmed : null;
31491
31867
  }
31492
31868
 
31869
+ // ../blocks/src/system/blocks/events/shared/layout.ts
31870
+ var recoverEmptyHeadingWhenActive = {
31871
+ kind: "recover-empty-when-active",
31872
+ placeholder: "Add heading"
31873
+ };
31874
+ var recoverEmptyDescriptionWhenActive = {
31875
+ kind: "recover-empty-when-active",
31876
+ placeholder: "Add description"
31877
+ };
31878
+ function eventSectionHeaderLayoutNodes() {
31879
+ return [
31880
+ text(
31881
+ { as: "h2" },
31882
+ bind("content.heading"),
31883
+ when("content.heading", {
31884
+ authoringPresence: recoverEmptyHeadingWhenActive
31885
+ })
31886
+ ),
31887
+ richText(
31888
+ { className: "rb-prose rb-max-w-none" },
31889
+ bind("content.description"),
31890
+ when("content.description", {
31891
+ authoringPresence: recoverEmptyDescriptionWhenActive
31892
+ })
31893
+ )
31894
+ ];
31895
+ }
31896
+
31493
31897
  // ../blocks/src/system/blocks/shop.shared.ts
31494
- import { z as z45 } from "zod";
31495
- var publicPassProductSchema = z45.object({
31496
- id: z45.string(),
31497
- productUseCase: z45.enum(["event_pass", "appointment_package"]).default("event_pass"),
31498
- name: z45.string(),
31499
- description: z45.string().nullable(),
31500
- price: z45.number(),
31501
- currency: z45.string(),
31502
- creditsTotal: z45.number(),
31503
- pricePerCredit: z45.number(),
31504
- validDays: z45.number().nullable(),
31505
- eligibleCategoryIds: z45.array(z45.string()),
31506
- eligibleCategoryNames: z45.array(z45.string())
31507
- });
31508
- var publicPassProductCollectionSchema = z45.object({
31509
- passes: z45.array(publicPassProductSchema)
31510
- });
31511
- var publicMembershipProductSchema = z45.object({
31512
- id: z45.string(),
31513
- name: z45.string(),
31514
- description: z45.string().nullable(),
31515
- price: z45.number(),
31516
- currency: z45.string(),
31517
- billingInterval: z45.enum(["month", "year"]),
31518
- eligibleCategoryIds: z45.array(z45.string()),
31519
- eligibleCategoryNames: z45.array(z45.string())
31898
+ import { z as z46 } from "zod";
31899
+ var publicPassProductSchema = z46.object({
31900
+ id: z46.string(),
31901
+ productUseCase: z46.enum(["event_pass", "appointment_package"]).default("event_pass"),
31902
+ name: z46.string(),
31903
+ description: z46.string().nullable(),
31904
+ price: z46.number(),
31905
+ currency: z46.string(),
31906
+ creditsTotal: z46.number(),
31907
+ pricePerCredit: z46.number(),
31908
+ validDays: z46.number().nullable(),
31909
+ eligibleCategoryIds: z46.array(z46.string()),
31910
+ eligibleCategoryNames: z46.array(z46.string())
31911
+ });
31912
+ var publicPassProductCollectionSchema = z46.object({
31913
+ passes: z46.array(publicPassProductSchema)
31914
+ });
31915
+ var publicMembershipProductSchema = z46.object({
31916
+ id: z46.string(),
31917
+ name: z46.string(),
31918
+ description: z46.string().nullable(),
31919
+ price: z46.number(),
31920
+ currency: z46.string(),
31921
+ billingInterval: z46.enum(["month", "year"]),
31922
+ eligibleCategoryIds: z46.array(z46.string()),
31923
+ eligibleCategoryNames: z46.array(z46.string())
31520
31924
  });
31521
- var publicMembershipProductCollectionSchema = z45.object({
31522
- memberships: z45.array(publicMembershipProductSchema)
31925
+ var publicMembershipProductCollectionSchema = z46.object({
31926
+ memberships: z46.array(publicMembershipProductSchema)
31523
31927
  });
31524
31928
 
31525
31929
  // ../blocks/src/system/blocks/event-registration.shared.ts
31526
- import { z as z46 } from "zod";
31527
- var occurrenceContextSchema = z46.object({
31528
- id: z46.string(),
31529
- seriesId: z46.string(),
31530
- startsAt: z46.string(),
31531
- endsAt: z46.string(),
31532
- timeZone: z46.string(),
31533
- capacityOverride: z46.number().nullable().optional(),
31534
- overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
31930
+ import { z as z47 } from "zod";
31931
+ var occurrenceContextSchema = z47.object({
31932
+ id: z47.string(),
31933
+ seriesId: z47.string(),
31934
+ startsAt: z47.string(),
31935
+ endsAt: z47.string(),
31936
+ timeZone: z47.string(),
31937
+ capacityOverride: z47.number().nullable().optional(),
31938
+ overrides: z47.record(z47.string(), z47.unknown()).nullable().optional()
31535
31939
  }).nullable();
31536
31940
 
31537
31941
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
31538
- import { z as z48 } from "zod";
31942
+ import { z as z49 } from "zod";
31539
31943
 
31540
31944
  // ../blocks/src/system/constants/events.ts
31541
31945
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -31722,17 +32126,17 @@ function readAmount(value) {
31722
32126
  }
31723
32127
 
31724
32128
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
31725
- import { z as z47 } from "zod";
31726
- var previewStageSchema = z47.enum(["preview", "published"]);
31727
- var registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
31728
- var eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
31729
- var eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
31730
- var eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
31731
- var eventCalendarDefaultViewSchema = z47.enum(eventCalendarDefaultViewValues);
31732
- var columnOptionSchema = z47.enum(["2", "3", "4"]);
31733
- var weekStartSchema = z47.enum(["sunday", "monday"]);
31734
- var filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
31735
- var calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
32129
+ import { z as z48 } from "zod";
32130
+ var previewStageSchema = z48.enum(["preview", "published"]);
32131
+ var registrationButtonVariantSchema = z48.enum(["primary", "secondary", "outline"]);
32132
+ var eventButtonVariantSchema = z48.enum(["primary", "secondary", "outline", "link"]);
32133
+ var eventLayoutSchema = z48.enum(eventCalendarListLayoutValues);
32134
+ var eventCalendarDisplayModeSchema = z48.enum(eventCalendarDisplayModeValues);
32135
+ var eventCalendarDefaultViewSchema = z48.enum(eventCalendarDefaultViewValues);
32136
+ var columnOptionSchema = z48.enum(["2", "3", "4"]);
32137
+ var weekStartSchema = z48.enum(["sunday", "monday"]);
32138
+ var filterAutoShowSchema = z48.enum(["auto", "always", "never"]);
32139
+ var calendarTabViewsSchema = z48.enum(["both", "month", "week"]);
31736
32140
 
31737
32141
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
31738
32142
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -31792,72 +32196,72 @@ function toRegistrationEvents(events) {
31792
32196
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
31793
32197
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
31794
32198
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
31795
- var contentEntrySchema = z48.object({
31796
- id: z48.string(),
31797
- slug: z48.string(),
31798
- contentTypeSlug: z48.string()
32199
+ var contentEntrySchema = z49.object({
32200
+ id: z49.string(),
32201
+ slug: z49.string(),
32202
+ contentTypeSlug: z49.string()
31799
32203
  });
31800
- var eventRegistrationPublicEventSchema = z48.preprocess(
32204
+ var eventRegistrationPublicEventSchema = z49.preprocess(
31801
32205
  normalizeEventRegistrationEventInput,
31802
32206
  publicEventSchema
31803
32207
  );
31804
- var eventRegistrationSourceSchema = z48.object({
31805
- siteId: z48.string().optional(),
31806
- apiBaseUrl: z48.string().optional(),
31807
- portalToken: z48.string().nullable().optional(),
31808
- previewToken: z48.string().nullable().optional(),
32208
+ var eventRegistrationSourceSchema = z49.object({
32209
+ siteId: z49.string().optional(),
32210
+ apiBaseUrl: z49.string().optional(),
32211
+ portalToken: z49.string().nullable().optional(),
32212
+ previewToken: z49.string().nullable().optional(),
31809
32213
  occurrenceContext: occurrenceContextSchema.optional(),
31810
32214
  contentEntry: contentEntrySchema.nullable().optional(),
31811
- events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
31812
- className: z48.string().nullable().optional(),
31813
- buttonText: z48.string().nullable().optional(),
31814
- maxTickets: z48.string().nullable().optional(),
31815
- showVenue: z48.boolean().optional(),
31816
- showCapacity: z48.boolean().optional(),
31817
- successMessage: z48.string().optional(),
31818
- waitlistMessage: z48.string().optional(),
32215
+ events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
32216
+ className: z49.string().nullable().optional(),
32217
+ buttonText: z49.string().nullable().optional(),
32218
+ maxTickets: z49.string().nullable().optional(),
32219
+ showVenue: z49.boolean().optional(),
32220
+ showCapacity: z49.boolean().optional(),
32221
+ successMessage: z49.string().optional(),
32222
+ waitlistMessage: z49.string().optional(),
31819
32223
  buttonVariant: registrationButtonVariantSchema.optional(),
31820
- overlayEnabled: z48.boolean().optional(),
31821
- spamProtectionEnabled: z48.boolean().optional(),
32224
+ overlayEnabled: z49.boolean().optional(),
32225
+ spamProtectionEnabled: z49.boolean().optional(),
31822
32226
  stage: previewStageSchema.optional(),
31823
- supportEmail: z48.string().optional(),
32227
+ supportEmail: z49.string().optional(),
31824
32228
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
31825
32229
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
31826
32230
  });
31827
- var eventRegistrationDisplaySchema = z48.object({
31828
- kind: z48.literal("event-registration"),
31829
- state: z48.literal("generic-shell"),
31830
- className: z48.string().nullable(),
31831
- titleText: z48.string(),
31832
- bodyText: z48.string(),
31833
- stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
31834
- summaryButtonText: z48.string()
32231
+ var eventRegistrationDisplaySchema = z49.object({
32232
+ kind: z49.literal("event-registration"),
32233
+ state: z49.literal("generic-shell"),
32234
+ className: z49.string().nullable(),
32235
+ titleText: z49.string(),
32236
+ bodyText: z49.string(),
32237
+ stepLabels: z49.array(z49.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
32238
+ summaryButtonText: z49.string()
31835
32239
  });
31836
- var eventRegistrationHydrationSchema = z48.object({
32240
+ var eventRegistrationHydrationSchema = z49.object({
31837
32241
  occurrenceContext: occurrenceContextSchema.optional(),
31838
32242
  contentEntry: contentEntrySchema.nullable().optional(),
31839
- events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
31840
- maxTickets: z48.string().optional(),
31841
- showVenue: z48.boolean().optional(),
31842
- showCapacity: z48.boolean().optional(),
31843
- successMessage: z48.string().optional(),
31844
- waitlistMessage: z48.string().optional(),
32243
+ events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
32244
+ maxTickets: z49.string().optional(),
32245
+ showVenue: z49.boolean().optional(),
32246
+ showCapacity: z49.boolean().optional(),
32247
+ successMessage: z49.string().optional(),
32248
+ waitlistMessage: z49.string().optional(),
31845
32249
  buttonVariant: registrationButtonVariantSchema.optional(),
31846
- overlayEnabled: z48.boolean().optional(),
31847
- spamProtectionEnabled: z48.boolean().optional(),
31848
- supportEmail: z48.string().optional(),
32250
+ overlayEnabled: z49.boolean().optional(),
32251
+ spamProtectionEnabled: z49.boolean().optional(),
32252
+ supportEmail: z49.string().optional(),
31849
32253
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
31850
32254
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
31851
32255
  });
31852
- var eventRegistrationRenderSchema = z48.object({
32256
+ var eventRegistrationRenderSchema = z49.object({
31853
32257
  display: eventRegistrationDisplaySchema,
31854
32258
  hydration: eventRegistrationHydrationSchema
31855
32259
  });
31856
- var eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
31857
- siteId: z48.string().optional(),
31858
- apiBaseUrl: z48.string().optional(),
31859
- portalToken: z48.string().nullable().optional(),
31860
- previewToken: z48.string().nullable().optional(),
32260
+ var eventRegistrationIslandMetaCodec = createZodCodec(z49.object({
32261
+ siteId: z49.string().optional(),
32262
+ apiBaseUrl: z49.string().optional(),
32263
+ portalToken: z49.string().nullable().optional(),
32264
+ previewToken: z49.string().nullable().optional(),
31861
32265
  stage: previewStageSchema.optional()
31862
32266
  }));
31863
32267
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -32208,73 +32612,73 @@ var eventRegistrationBlockDefinition = {
32208
32612
  };
32209
32613
 
32210
32614
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
32211
- import { z as z49 } from "zod";
32212
- var contentEntrySchema2 = z49.object({
32213
- id: z49.string(),
32214
- slug: z49.string(),
32215
- contentTypeSlug: z49.string()
32216
- });
32217
- var courseEntrySubrouteContextSchema = z49.union([
32218
- z49.object({
32219
- kind: z49.literal("course-run"),
32220
- run: z49.object({
32221
- courseId: z49.string(),
32222
- seriesId: z49.string(),
32223
- runSlug: z49.string(),
32224
- runName: z49.string().nullable()
32615
+ import { z as z50 } from "zod";
32616
+ var contentEntrySchema2 = z50.object({
32617
+ id: z50.string(),
32618
+ slug: z50.string(),
32619
+ contentTypeSlug: z50.string()
32620
+ });
32621
+ var courseEntrySubrouteContextSchema = z50.union([
32622
+ z50.object({
32623
+ kind: z50.literal("course-run"),
32624
+ run: z50.object({
32625
+ courseId: z50.string(),
32626
+ seriesId: z50.string(),
32627
+ runSlug: z50.string(),
32628
+ runName: z50.string().nullable()
32225
32629
  })
32226
32630
  }),
32227
- z49.object({
32228
- kind: z49.literal("event-occurrence"),
32631
+ z50.object({
32632
+ kind: z50.literal("event-occurrence"),
32229
32633
  occurrence: occurrenceContextSchema
32230
32634
  })
32231
32635
  ]);
32232
- var courseRegistrationSourceSchema = z49.object({
32233
- siteId: z49.string().optional(),
32234
- apiBaseUrl: z49.string().optional(),
32235
- portalToken: z49.string().nullable().optional(),
32636
+ var courseRegistrationSourceSchema = z50.object({
32637
+ siteId: z50.string().optional(),
32638
+ apiBaseUrl: z50.string().optional(),
32639
+ portalToken: z50.string().nullable().optional(),
32236
32640
  contentEntry: contentEntrySchema2.nullable().optional(),
32237
32641
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
32238
- courses: z49.array(publicCourseSchema).nullable().optional(),
32239
- className: z49.string().nullable().optional(),
32240
- showSessions: z49.boolean().optional(),
32241
- showPrice: z49.boolean().optional(),
32242
- showCapacity: z49.boolean().optional(),
32243
- showVenue: z49.boolean().optional(),
32244
- successMessage: z49.string().optional(),
32245
- waitlistMessage: z49.string().optional(),
32246
- membershipMessage: z49.string().optional(),
32247
- buttonText: z49.string().nullable().optional(),
32642
+ courses: z50.array(publicCourseSchema).nullable().optional(),
32643
+ className: z50.string().nullable().optional(),
32644
+ showSessions: z50.boolean().optional(),
32645
+ showPrice: z50.boolean().optional(),
32646
+ showCapacity: z50.boolean().optional(),
32647
+ showVenue: z50.boolean().optional(),
32648
+ successMessage: z50.string().optional(),
32649
+ waitlistMessage: z50.string().optional(),
32650
+ membershipMessage: z50.string().optional(),
32651
+ buttonText: z50.string().nullable().optional(),
32248
32652
  buttonVariant: registrationButtonVariantSchema.optional(),
32249
32653
  stage: previewStageSchema.optional()
32250
32654
  });
32251
- var courseRegistrationDisplaySchema = z49.object({
32252
- kind: z49.literal("course-registration"),
32253
- state: z49.literal("shell"),
32254
- className: z49.string().nullable(),
32255
- summaryButtonText: z49.string()
32655
+ var courseRegistrationDisplaySchema = z50.object({
32656
+ kind: z50.literal("course-registration"),
32657
+ state: z50.literal("shell"),
32658
+ className: z50.string().nullable(),
32659
+ summaryButtonText: z50.string()
32256
32660
  });
32257
- var courseRegistrationHydrationSchema = z49.object({
32661
+ var courseRegistrationHydrationSchema = z50.object({
32258
32662
  contentEntry: contentEntrySchema2.nullable().optional(),
32259
32663
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
32260
- courses: z49.array(publicCourseSchema).nullable().optional(),
32261
- showSessions: z49.boolean().optional(),
32262
- showPrice: z49.boolean().optional(),
32263
- showCapacity: z49.boolean().optional(),
32264
- showVenue: z49.boolean().optional(),
32265
- successMessage: z49.string().optional(),
32266
- waitlistMessage: z49.string().optional(),
32267
- membershipMessage: z49.string().optional(),
32664
+ courses: z50.array(publicCourseSchema).nullable().optional(),
32665
+ showSessions: z50.boolean().optional(),
32666
+ showPrice: z50.boolean().optional(),
32667
+ showCapacity: z50.boolean().optional(),
32668
+ showVenue: z50.boolean().optional(),
32669
+ successMessage: z50.string().optional(),
32670
+ waitlistMessage: z50.string().optional(),
32671
+ membershipMessage: z50.string().optional(),
32268
32672
  buttonVariant: registrationButtonVariantSchema.optional()
32269
32673
  });
32270
- var courseRegistrationRenderSchema = z49.object({
32674
+ var courseRegistrationRenderSchema = z50.object({
32271
32675
  display: courseRegistrationDisplaySchema,
32272
32676
  hydration: courseRegistrationHydrationSchema
32273
32677
  });
32274
- var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
32275
- siteId: z49.string().optional(),
32276
- apiBaseUrl: z49.string().optional(),
32277
- portalToken: z49.string().nullable().optional(),
32678
+ var courseRegistrationIslandMetaCodec = createZodCodec(z50.object({
32679
+ siteId: z50.string().optional(),
32680
+ apiBaseUrl: z50.string().optional(),
32681
+ portalToken: z50.string().nullable().optional(),
32278
32682
  stage: previewStageSchema.optional()
32279
32683
  }));
32280
32684
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -32534,7 +32938,7 @@ var courseRegistrationBlockDefinition = {
32534
32938
  };
32535
32939
 
32536
32940
  // ../blocks/src/system/blocks/event-details.ts
32537
- import { z as z50 } from "zod";
32941
+ import { z as z51 } from "zod";
32538
32942
  var eventDetailsManifest = createBlockManifest({
32539
32943
  id: "block.event-details",
32540
32944
  version: "1.0.0",
@@ -32666,37 +33070,37 @@ var eventDetailsManifest = createBlockManifest({
32666
33070
  })
32667
33071
  ]
32668
33072
  });
32669
- var occurrenceContextSchema2 = z50.object({
32670
- id: z50.string(),
32671
- seriesId: z50.string(),
32672
- startsAt: z50.string(),
32673
- endsAt: z50.string(),
32674
- timeZone: z50.string(),
32675
- capacityOverride: z50.number().nullable().optional(),
32676
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
33073
+ var occurrenceContextSchema2 = z51.object({
33074
+ id: z51.string(),
33075
+ seriesId: z51.string(),
33076
+ startsAt: z51.string(),
33077
+ endsAt: z51.string(),
33078
+ timeZone: z51.string(),
33079
+ capacityOverride: z51.number().nullable().optional(),
33080
+ overrides: z51.record(z51.string(), z51.unknown()).nullable().optional()
32677
33081
  }).nullable();
32678
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
32679
- id: z50.string(),
32680
- publicLabel: z50.string(),
32681
- description: z50.string().nullable(),
32682
- minTicketsRequired: z50.number().nullable()
33082
+ var eventAutoApplyDiscountPreviewBaseSchema = z51.object({
33083
+ id: z51.string(),
33084
+ publicLabel: z51.string(),
33085
+ description: z51.string().nullable(),
33086
+ minTicketsRequired: z51.number().nullable()
32683
33087
  });
32684
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
33088
+ var eventAutoApplyDiscountPreviewSchema = z51.discriminatedUnion("discountType", [
32685
33089
  eventAutoApplyDiscountPreviewBaseSchema.extend({
32686
- discountType: z50.literal("percent"),
32687
- discountPercent: z50.number(),
32688
- discountAmountCents: z50.null()
33090
+ discountType: z51.literal("percent"),
33091
+ discountPercent: z51.number(),
33092
+ discountAmountCents: z51.null()
32689
33093
  }),
32690
33094
  eventAutoApplyDiscountPreviewBaseSchema.extend({
32691
- discountType: z50.literal("fixed"),
32692
- discountPercent: z50.null(),
32693
- discountAmountCents: z50.number()
33095
+ discountType: z51.literal("fixed"),
33096
+ discountPercent: z51.null(),
33097
+ discountAmountCents: z51.number()
32694
33098
  })
32695
33099
  ]);
32696
33100
  var eventDetailsBlockDefinition = {
32697
33101
  manifest: eventDetailsManifest,
32698
33102
  dataSchemas: {
32699
- eventDetailsData: z50.object({
33103
+ eventDetailsData: z51.object({
32700
33104
  events: publicEventsArraySchema,
32701
33105
  sitePasses: publicPassProductCollectionSchema,
32702
33106
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -32951,18 +33355,7 @@ var eventSpotlightFields = [
32951
33355
  var eventSpotlightLayout = [
32952
33356
  styledSection({
32953
33357
  children: sectionContainer([
32954
- // Optional heading
32955
- text(
32956
- { as: "h2" },
32957
- bind("content.heading"),
32958
- when("content.heading")
32959
- ),
32960
- // Optional description
32961
- richText(
32962
- { className: "rb-prose rb-max-w-none" },
32963
- bind("content.description"),
32964
- when("content.description")
32965
- ),
33358
+ ...eventSectionHeaderLayoutNodes(),
32966
33359
  // Event spotlight component
32967
33360
  el("event-spotlight", {
32968
33361
  events: { $bind: { from: "data.events" } },
@@ -33023,7 +33416,7 @@ var eventSpotlightBlockDefinition = {
33023
33416
  };
33024
33417
 
33025
33418
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
33026
- import { z as z52 } from "zod";
33419
+ import { z as z53 } from "zod";
33027
33420
 
33028
33421
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
33029
33422
  var COLUMN_CLASSES = {
@@ -33131,16 +33524,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
33131
33524
  }
33132
33525
 
33133
33526
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
33134
- import { z as z51 } from "zod";
33527
+ import { z as z52 } from "zod";
33135
33528
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
33136
- var eventPageSizeSchema = z51.union([
33137
- z51.literal(3),
33138
- z51.literal(6),
33139
- z51.literal(10),
33140
- z51.literal(12),
33141
- z51.literal(20),
33142
- z51.literal(24),
33143
- z51.literal(30)
33529
+ var eventPageSizeSchema = z52.union([
33530
+ z52.literal(3),
33531
+ z52.literal(6),
33532
+ z52.literal(10),
33533
+ z52.literal(12),
33534
+ z52.literal(20),
33535
+ z52.literal(24),
33536
+ z52.literal(30)
33144
33537
  ]);
33145
33538
  var eventPageSizeSet = new Set(eventPageSizeValues);
33146
33539
  function resolveEventPageSize(value, fallback = 12) {
@@ -33150,15 +33543,15 @@ function resolveEventPageSize(value, fallback = 12) {
33150
33543
  function resolveEventCalendarListPageSize(input) {
33151
33544
  return resolveEventPageSize(input.eventsPerPage);
33152
33545
  }
33153
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
33154
- z51.object({
33155
- kind: z51.literal("loadMore"),
33156
- label: z51.string()
33546
+ var eventListPaginationActionSchema = z52.discriminatedUnion("kind", [
33547
+ z52.object({
33548
+ kind: z52.literal("loadMore"),
33549
+ label: z52.string()
33157
33550
  }),
33158
- z51.object({
33159
- kind: z51.literal("seeAllLink"),
33160
- label: z51.string(),
33161
- href: z51.string()
33551
+ z52.object({
33552
+ kind: z52.literal("seeAllLink"),
33553
+ label: z52.string(),
33554
+ href: z52.string()
33162
33555
  })
33163
33556
  ]);
33164
33557
  function resolveEventListPaginationAction(input) {
@@ -33171,89 +33564,89 @@ function resolveEventListPaginationAction(input) {
33171
33564
  }
33172
33565
 
33173
33566
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
33174
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
33175
- var eventCardVariantInputSchema = z52.union([
33567
+ var legacyEventCardVariantSchema = z53.enum(["variant1", "variant2"]);
33568
+ var eventCardVariantInputSchema = z53.union([
33176
33569
  cardVariantRoleSchema,
33177
33570
  legacyEventCardVariantSchema
33178
33571
  ]);
33179
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
33180
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
33181
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
33182
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
33183
- var eventListingSourceSchema = z52.object({
33184
- events: z52.array(publicEventSchema).nullable().optional(),
33185
- siteId: z52.string(),
33186
- apiBaseUrl: z52.string().optional(),
33572
+ var cardOrientationSchema = z53.enum(["vertical", "horizontal"]);
33573
+ var eventBlockKindSchema = z53.enum(eventBlockKindValues);
33574
+ var eventSurfaceScopeSchema = z53.enum(eventSurfaceScopeValues);
33575
+ var eventScheduleScopeSchema2 = z53.enum(eventScheduleScopeValues);
33576
+ var eventListingSourceSchema = z53.object({
33577
+ events: z53.array(publicEventSchema).nullable().optional(),
33578
+ siteId: z53.string(),
33579
+ apiBaseUrl: z53.string().optional(),
33187
33580
  stage: previewStageSchema.optional(),
33188
33581
  layout: eventLayoutSchema.optional(),
33189
33582
  columns: columnOptionSchema.optional(),
33190
- eventsPerPage: z52.string().optional(),
33191
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
33192
- seeAllUrl: z52.string().optional(),
33193
- loadMoreText: z52.string().optional(),
33583
+ eventsPerPage: z53.string().optional(),
33584
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
33585
+ seeAllUrl: z53.string().optional(),
33586
+ loadMoreText: z53.string().optional(),
33194
33587
  cardVariant: eventCardVariantInputSchema.optional(),
33195
33588
  buttonVariant: eventButtonVariantSchema.optional(),
33196
- buttonText: z52.string().optional(),
33197
- showVenue: z52.boolean().optional(),
33198
- showMap: z52.boolean().optional(),
33199
- showCapacity: z52.boolean().optional(),
33200
- emptyMessage: z52.string().optional(),
33201
- className: z52.string().optional(),
33202
- showFilters: z52.boolean().nullable().optional(),
33589
+ buttonText: z53.string().optional(),
33590
+ showVenue: z53.boolean().optional(),
33591
+ showMap: z53.boolean().optional(),
33592
+ showCapacity: z53.boolean().optional(),
33593
+ emptyMessage: z53.string().optional(),
33594
+ className: z53.string().optional(),
33595
+ showFilters: z53.boolean().nullable().optional(),
33203
33596
  showCategoryFilter: filterAutoShowSchema.optional(),
33204
- showVenueFilter: z52.boolean().nullable().optional(),
33205
- showStaffFilter: z52.boolean().nullable().optional(),
33597
+ showVenueFilter: z53.boolean().nullable().optional(),
33598
+ showStaffFilter: z53.boolean().nullable().optional(),
33206
33599
  eventKind: eventBlockKindSchema.nullable().optional(),
33207
33600
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
33208
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
33601
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
33209
33602
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
33210
- filterCategoryIds: z52.string().nullable().optional(),
33211
- filterStaffMemberId: z52.string().nullable().optional(),
33212
- filterVenueId: z52.string().nullable().optional()
33603
+ filterCategoryIds: z53.string().nullable().optional(),
33604
+ filterStaffMemberId: z53.string().nullable().optional(),
33605
+ filterVenueId: z53.string().nullable().optional()
33213
33606
  });
33214
- var eventListingDisplaySchema = z52.object({
33215
- kind: z52.literal("event-listing"),
33216
- state: z52.enum(["loading", "empty", "ready"]),
33607
+ var eventListingDisplaySchema = z53.object({
33608
+ kind: z53.literal("event-listing"),
33609
+ state: z53.enum(["loading", "empty", "ready"]),
33217
33610
  listLayout: eventLayoutSchema,
33218
- className: z52.string().nullable(),
33219
- emptyMessage: z52.string(),
33220
- loadingMessage: z52.string(),
33221
- containerClass: z52.string(),
33611
+ className: z53.string().nullable(),
33612
+ emptyMessage: z53.string(),
33613
+ loadingMessage: z53.string(),
33614
+ containerClass: z53.string(),
33222
33615
  cardVariant: cardVariantRoleSchema,
33223
33616
  buttonVariant: eventButtonVariantSchema,
33224
- buttonText: z52.string(),
33225
- showVenue: z52.boolean(),
33226
- showMap: z52.boolean(),
33227
- showCapacity: z52.boolean(),
33617
+ buttonText: z53.string(),
33618
+ showVenue: z53.boolean(),
33619
+ showMap: z53.boolean(),
33620
+ showCapacity: z53.boolean(),
33228
33621
  orientation: cardOrientationSchema,
33229
- events: z52.array(publicEventSchema)
33622
+ events: z53.array(publicEventSchema)
33230
33623
  });
33231
- var eventListingHydrationSchema = z52.object({
33232
- siteId: z52.string(),
33624
+ var eventListingHydrationSchema = z53.object({
33625
+ siteId: z53.string(),
33233
33626
  stage: previewStageSchema.optional(),
33234
33627
  eventsPerPage: eventPageSizeSchema,
33235
33628
  paginationAction: eventListPaginationActionSchema,
33236
- showFilters: z52.boolean(),
33629
+ showFilters: z53.boolean(),
33237
33630
  showCategoryFilter: filterAutoShowSchema,
33238
- showVenueFilter: z52.boolean(),
33239
- showStaffFilter: z52.boolean(),
33631
+ showVenueFilter: z53.boolean(),
33632
+ showStaffFilter: z53.boolean(),
33240
33633
  eventKind: eventBlockKindSchema,
33241
33634
  eventSurface: eventSurfaceScopeSchema,
33242
- filterEventPresets: z52.string().nullable(),
33635
+ filterEventPresets: z53.string().nullable(),
33243
33636
  scheduleScope: eventScheduleScopeSchema2,
33244
- filterCategoryIds: z52.string().nullable().optional(),
33245
- filterStaffMemberId: z52.string().nullable().optional(),
33246
- filterVenueId: z52.string().nullable().optional(),
33247
- fetchInitialEventsOnMount: z52.boolean()
33637
+ filterCategoryIds: z53.string().nullable().optional(),
33638
+ filterStaffMemberId: z53.string().nullable().optional(),
33639
+ filterVenueId: z53.string().nullable().optional(),
33640
+ fetchInitialEventsOnMount: z53.boolean()
33248
33641
  });
33249
- var eventListingRenderSchema = z52.object({
33642
+ var eventListingRenderSchema = z53.object({
33250
33643
  display: eventListingDisplaySchema,
33251
33644
  hydration: eventListingHydrationSchema
33252
33645
  });
33253
33646
  var eventListingIslandMetaCodec = createZodCodec(
33254
- z52.object({
33255
- siteId: z52.string(),
33256
- apiBaseUrl: z52.string().optional(),
33647
+ z53.object({
33648
+ siteId: z53.string(),
33649
+ apiBaseUrl: z53.string().optional(),
33257
33650
  stage: previewStageSchema.optional()
33258
33651
  })
33259
33652
  );
@@ -33493,18 +33886,7 @@ var eventListingAdditionalFields = [
33493
33886
  var eventListingLayout = [
33494
33887
  styledSection({
33495
33888
  children: sectionContainer([
33496
- // Optional heading
33497
- text(
33498
- { as: "h2" },
33499
- bind("content.heading"),
33500
- when("content.heading")
33501
- ),
33502
- // Optional description
33503
- richText(
33504
- { className: "rb-prose rb-max-w-none" },
33505
- bind("content.description"),
33506
- when("content.description")
33507
- ),
33889
+ ...eventSectionHeaderLayoutNodes(),
33508
33890
  // Event listing component with pagination
33509
33891
  el("event-listing", withApiBindings({
33510
33892
  events: { $bind: { from: "data.events" } },
@@ -33620,15 +34002,15 @@ var eventListingBlockDefinition = {
33620
34002
  };
33621
34003
 
33622
34004
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
33623
- import { z as z53 } from "zod";
33624
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
33625
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
33626
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
33627
- var eventCalendarSourceSchema = z53.object(
34005
+ import { z as z54 } from "zod";
34006
+ var eventBlockKindSchema2 = z54.enum(eventBlockKindValues);
34007
+ var eventSurfaceScopeSchema2 = z54.enum(eventSurfaceScopeValues);
34008
+ var eventScheduleScopeSchema3 = z54.enum(eventScheduleScopeValues);
34009
+ var eventCalendarSourceSchema = z54.object(
33628
34010
  {
33629
- events: z53.array(publicEventSchema).nullable().optional(),
33630
- siteId: z53.string(),
33631
- apiBaseUrl: z53.string().optional(),
34011
+ events: z54.array(publicEventSchema).nullable().optional(),
34012
+ siteId: z54.string(),
34013
+ apiBaseUrl: z54.string().optional(),
33632
34014
  stage: previewStageSchema.optional(),
33633
34015
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
33634
34016
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -33636,38 +34018,38 @@ var eventCalendarSourceSchema = z53.object(
33636
34018
  listColumns: columnOptionSchema.optional(),
33637
34019
  layout: eventLayoutSchema.optional(),
33638
34020
  columns: columnOptionSchema.optional(),
33639
- eventsPerPage: z53.string().optional(),
33640
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
33641
- seeAllUrl: z53.string().optional(),
33642
- loadMoreText: z53.string().optional(),
34021
+ eventsPerPage: z54.string().optional(),
34022
+ paginationMode: z54.enum(["loadMore", "seeAllLink"]).optional(),
34023
+ seeAllUrl: z54.string().optional(),
34024
+ loadMoreText: z54.string().optional(),
33643
34025
  startOfWeek: weekStartSchema.optional(),
33644
34026
  calendarTabViews: calendarTabViewsSchema.optional(),
33645
34027
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
33646
- showFilters: z53.boolean().nullable().optional(),
34028
+ showFilters: z54.boolean().nullable().optional(),
33647
34029
  showCategoryFilter: filterAutoShowSchema.optional(),
33648
- showVenueFilter: z53.boolean().nullable().optional(),
33649
- showStaffFilter: z53.boolean().nullable().optional(),
34030
+ showVenueFilter: z54.boolean().nullable().optional(),
34031
+ showStaffFilter: z54.boolean().nullable().optional(),
33650
34032
  kind: eventBlockKindSchema2.nullable().optional(),
33651
34033
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
33652
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
34034
+ filterEventPresets: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
33653
34035
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
33654
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
33655
- filterStaffMemberId: z53.string().nullable().optional(),
33656
- filterVenueId: z53.string().nullable().optional(),
34036
+ filterCategoryIds: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
34037
+ filterStaffMemberId: z54.string().nullable().optional(),
34038
+ filterVenueId: z54.string().nullable().optional(),
33657
34039
  buttonVariant: eventButtonVariantSchema.optional(),
33658
- buttonText: z53.string().optional(),
33659
- showVenue: z53.boolean().nullable().optional(),
33660
- showMap: z53.boolean().nullable().optional(),
33661
- showCapacity: z53.boolean().nullable().optional(),
33662
- emptyMessage: z53.string().optional(),
33663
- className: z53.string().optional()
34040
+ buttonText: z54.string().optional(),
34041
+ showVenue: z54.boolean().nullable().optional(),
34042
+ showMap: z54.boolean().nullable().optional(),
34043
+ showCapacity: z54.boolean().nullable().optional(),
34044
+ emptyMessage: z54.string().optional(),
34045
+ className: z54.string().optional()
33664
34046
  }
33665
34047
  );
33666
- var eventCalendarDisplaySchema = z53.object({
33667
- kind: z53.literal("event-calendar"),
34048
+ var eventCalendarDisplaySchema = z54.object({
34049
+ kind: z54.literal("event-calendar"),
33668
34050
  displayMode: eventCalendarDisplayModeSchema,
33669
- className: z53.string().nullable(),
33670
- events: z53.array(publicEventSchema),
34051
+ className: z54.string().nullable(),
34052
+ events: z54.array(publicEventSchema),
33671
34053
  listLayout: eventLayoutSchema,
33672
34054
  listColumns: columnOptionSchema,
33673
34055
  eventsPerPage: eventPageSizeSchema,
@@ -33675,41 +34057,41 @@ var eventCalendarDisplaySchema = z53.object({
33675
34057
  startOfWeek: weekStartSchema,
33676
34058
  calendarTabViews: calendarTabViewsSchema,
33677
34059
  defaultCalendarView: eventCalendarDefaultViewSchema,
33678
- showFilters: z53.boolean(),
34060
+ showFilters: z54.boolean(),
33679
34061
  showCategoryFilter: filterAutoShowSchema,
33680
- showVenueFilter: z53.boolean(),
33681
- showStaffFilter: z53.boolean(),
34062
+ showVenueFilter: z54.boolean(),
34063
+ showStaffFilter: z54.boolean(),
33682
34064
  eventKind: eventBlockKindSchema2,
33683
34065
  eventSurface: eventSurfaceScopeSchema2,
33684
- filterEventPresets: z53.string().nullable(),
34066
+ filterEventPresets: z54.string().nullable(),
33685
34067
  scheduleScope: eventScheduleScopeSchema3,
33686
- filterCategoryIds: z53.string().nullable(),
33687
- filterStaffMemberId: z53.string().nullable(),
33688
- filterVenueId: z53.string().nullable(),
34068
+ filterCategoryIds: z54.string().nullable(),
34069
+ filterStaffMemberId: z54.string().nullable(),
34070
+ filterVenueId: z54.string().nullable(),
33689
34071
  buttonVariant: eventButtonVariantSchema,
33690
- buttonText: z53.string(),
33691
- showVenue: z53.boolean(),
33692
- showMap: z53.boolean(),
33693
- showCapacity: z53.boolean(),
33694
- emptyMessage: z53.string()
33695
- });
33696
- var eventCalendarHydrationSchema = z53.object({
33697
- siteId: z53.string(),
34072
+ buttonText: z54.string(),
34073
+ showVenue: z54.boolean(),
34074
+ showMap: z54.boolean(),
34075
+ showCapacity: z54.boolean(),
34076
+ emptyMessage: z54.string()
34077
+ });
34078
+ var eventCalendarHydrationSchema = z54.object({
34079
+ siteId: z54.string(),
33698
34080
  stage: previewStageSchema.optional(),
33699
- prefetchedEvents: z53.boolean(),
34081
+ prefetchedEvents: z54.boolean(),
33700
34082
  eventKind: eventBlockKindSchema2,
33701
34083
  eventSurface: eventSurfaceScopeSchema2,
33702
- filterEventPresets: z53.string().nullable(),
34084
+ filterEventPresets: z54.string().nullable(),
33703
34085
  scheduleScope: eventScheduleScopeSchema3
33704
34086
  });
33705
- var eventCalendarRenderSchema = z53.object({
34087
+ var eventCalendarRenderSchema = z54.object({
33706
34088
  display: eventCalendarDisplaySchema,
33707
34089
  hydration: eventCalendarHydrationSchema
33708
34090
  });
33709
34091
  var eventCalendarIslandMetaCodec = createZodCodec(
33710
- z53.object({
33711
- siteId: z53.string(),
33712
- apiBaseUrl: z53.string().optional(),
34092
+ z54.object({
34093
+ siteId: z54.string(),
34094
+ apiBaseUrl: z54.string().optional(),
33713
34095
  stage: previewStageSchema.optional()
33714
34096
  })
33715
34097
  );
@@ -33829,14 +34211,7 @@ var eventCalendarLayout = [
33829
34211
  styledSection({
33830
34212
  children: sectionContainer(
33831
34213
  [
33832
- // Optional heading
33833
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
33834
- // Optional description
33835
- richText(
33836
- { className: "rb-prose rb-max-w-none" },
33837
- bind("content.description"),
33838
- when("content.description")
33839
- ),
34214
+ ...eventSectionHeaderLayoutNodes(),
33840
34215
  // Event calendar component (handles all display modes)
33841
34216
  el(
33842
34217
  "event-calendar",
@@ -34481,7 +34856,7 @@ var eventCalendarBlockDefinition = {
34481
34856
  };
34482
34857
 
34483
34858
  // ../blocks/src/system/blocks/offerings-preview/index.ts
34484
- import { z as z54 } from "zod";
34859
+ import { z as z55 } from "zod";
34485
34860
 
34486
34861
  // ../blocks/src/system/blocks/offerings-preview/model.ts
34487
34862
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -34573,13 +34948,13 @@ function isRecord7(value) {
34573
34948
  }
34574
34949
 
34575
34950
  // ../blocks/src/system/blocks/offerings-preview/index.ts
34576
- var publicRouteCandidatesSchema = z54.object({
34577
- routes: z54.array(z54.object({
34578
- entityId: z54.string(),
34579
- path: z54.string(),
34580
- title: z54.string(),
34581
- kind: z54.enum(["page", "content"]),
34582
- contentTypeKey: z54.string().nullable().optional()
34951
+ var publicRouteCandidatesSchema = z55.object({
34952
+ routes: z55.array(z55.object({
34953
+ entityId: z55.string(),
34954
+ path: z55.string(),
34955
+ title: z55.string(),
34956
+ kind: z55.enum(["page", "content"]),
34957
+ contentTypeKey: z55.string().nullable().optional()
34583
34958
  }))
34584
34959
  });
34585
34960
  var groupOverrideFields = [
@@ -34977,7 +35352,7 @@ function isRecord8(value) {
34977
35352
  }
34978
35353
 
34979
35354
  // ../blocks/src/system/blocks/embed.ts
34980
- import { z as z55 } from "zod";
35355
+ import { z as z56 } from "zod";
34981
35356
  var embedFields = [
34982
35357
  // Section heading
34983
35358
  parseFieldDefinition({
@@ -35208,18 +35583,18 @@ var embedManifest = createBlockManifest({
35208
35583
  spacing: "lg"
35209
35584
  }
35210
35585
  });
35211
- var embedEntrySchema = z55.object({
35212
- id: z55.string(),
35213
- identifier: z55.string(),
35214
- title: z55.string(),
35215
- slug: z55.string().nullable().optional(),
35216
- content: z55.record(z55.string(), z55.unknown()).optional(),
35217
- publishedAt: z55.string().nullable().optional()
35586
+ var embedEntrySchema = z56.object({
35587
+ id: z56.string(),
35588
+ identifier: z56.string(),
35589
+ title: z56.string(),
35590
+ slug: z56.string().nullable().optional(),
35591
+ content: z56.record(z56.string(), z56.unknown()).optional(),
35592
+ publishedAt: z56.string().nullable().optional()
35218
35593
  });
35219
35594
  var embedBlockDefinition = {
35220
35595
  manifest: embedManifest,
35221
35596
  dataSchemas: {
35222
- entries: z55.array(embedEntrySchema).optional()
35597
+ entries: z56.array(embedEntrySchema).optional()
35223
35598
  },
35224
35599
  dataLoaders: {
35225
35600
  entries: {
@@ -36403,49 +36778,49 @@ var fileDownloadBlockDefinition = {
36403
36778
  };
36404
36779
 
36405
36780
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
36406
- import { z as z58 } from "zod";
36781
+ import { z as z59 } from "zod";
36407
36782
 
36408
36783
  // ../blocks/src/system/blocks/products/shared.ts
36409
- import { z as z56 } from "zod";
36410
- var publicProductVariantSchema = z56.object({
36411
- id: z56.string(),
36412
- title: z56.string(),
36413
- sku: z56.string().nullable(),
36414
- priceCents: z56.number(),
36415
- stockQuantity: z56.number().nullable(),
36416
- soldOut: z56.boolean()
36417
- });
36418
- var publicProductSchema = z56.object({
36419
- id: z56.string(),
36420
- contentEntryId: z56.string().nullable(),
36421
- title: z56.string(),
36422
- slug: z56.string(),
36423
- path: z56.string().nullable(),
36424
- status: z56.enum(["draft", "active"]),
36425
- priceCents: z56.number(),
36426
- currency: z56.string(),
36427
- productType: z56.enum(["physical", "digital"]),
36428
- requiresShipping: z56.boolean(),
36429
- hasVariants: z56.boolean(),
36430
- trackInventory: z56.boolean(),
36431
- soldOut: z56.boolean(),
36432
- category: z56.object({
36433
- id: z56.string(),
36434
- name: z56.string(),
36435
- slug: z56.string()
36784
+ import { z as z57 } from "zod";
36785
+ var publicProductVariantSchema = z57.object({
36786
+ id: z57.string(),
36787
+ title: z57.string(),
36788
+ sku: z57.string().nullable(),
36789
+ priceCents: z57.number(),
36790
+ stockQuantity: z57.number().nullable(),
36791
+ soldOut: z57.boolean()
36792
+ });
36793
+ var publicProductSchema = z57.object({
36794
+ id: z57.string(),
36795
+ contentEntryId: z57.string().nullable(),
36796
+ title: z57.string(),
36797
+ slug: z57.string(),
36798
+ path: z57.string().nullable(),
36799
+ status: z57.enum(["draft", "active"]),
36800
+ priceCents: z57.number(),
36801
+ currency: z57.string(),
36802
+ productType: z57.enum(["physical", "digital"]),
36803
+ requiresShipping: z57.boolean(),
36804
+ hasVariants: z57.boolean(),
36805
+ trackInventory: z57.boolean(),
36806
+ soldOut: z57.boolean(),
36807
+ category: z57.object({
36808
+ id: z57.string(),
36809
+ name: z57.string(),
36810
+ slug: z57.string()
36436
36811
  }).nullable(),
36437
- summary: z56.string().nullable(),
36438
- body: z56.unknown().nullable(),
36439
- gallery: z56.array(
36440
- z56.object({
36441
- url: z56.string(),
36442
- alt: z56.string().nullable()
36812
+ summary: z57.string().nullable(),
36813
+ body: z57.unknown().nullable(),
36814
+ gallery: z57.array(
36815
+ z57.object({
36816
+ url: z57.string(),
36817
+ alt: z57.string().nullable()
36443
36818
  })
36444
36819
  ),
36445
- variants: z56.array(publicProductVariantSchema)
36820
+ variants: z57.array(publicProductVariantSchema)
36446
36821
  });
36447
- var publicProductsResponseSchema = z56.object({
36448
- products: z56.array(publicProductSchema)
36822
+ var publicProductsResponseSchema = z57.object({
36823
+ products: z57.array(publicProductSchema)
36449
36824
  });
36450
36825
 
36451
36826
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -36509,27 +36884,27 @@ function deriveCreditProductLabels(products, options = {}) {
36509
36884
  }
36510
36885
 
36511
36886
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
36512
- import { z as z57 } from "zod";
36513
- var storedProductCartItemSchema = z57.object({
36514
- kind: z57.literal("product"),
36515
- productId: z57.string().min(1),
36516
- productCategoryId: z57.string().min(1).optional().nullable(),
36517
- variantId: z57.string().min(1).optional().nullable(),
36518
- title: z57.string().min(1),
36519
- variantTitle: z57.string().optional().nullable(),
36520
- quantity: z57.number().finite(),
36521
- unitPriceCents: z57.number().finite(),
36522
- currency: z57.string().min(1),
36523
- imageUrl: z57.string().optional().nullable(),
36524
- soldOut: z57.boolean().optional()
36525
- });
36526
- var storedPassCartItemSchema = z57.object({
36527
- kind: z57.literal("pass"),
36528
- passId: z57.string().min(1),
36529
- title: z57.string().min(1),
36530
- quantity: z57.number().finite().optional(),
36531
- unitPriceCents: z57.number().finite(),
36532
- currency: z57.string().min(1)
36887
+ import { z as z58 } from "zod";
36888
+ var storedProductCartItemSchema = z58.object({
36889
+ kind: z58.literal("product"),
36890
+ productId: z58.string().min(1),
36891
+ productCategoryId: z58.string().min(1).optional().nullable(),
36892
+ variantId: z58.string().min(1).optional().nullable(),
36893
+ title: z58.string().min(1),
36894
+ variantTitle: z58.string().optional().nullable(),
36895
+ quantity: z58.number().finite(),
36896
+ unitPriceCents: z58.number().finite(),
36897
+ currency: z58.string().min(1),
36898
+ imageUrl: z58.string().optional().nullable(),
36899
+ soldOut: z58.boolean().optional()
36900
+ });
36901
+ var storedPassCartItemSchema = z58.object({
36902
+ kind: z58.literal("pass"),
36903
+ passId: z58.string().min(1),
36904
+ title: z58.string().min(1),
36905
+ quantity: z58.number().finite().optional(),
36906
+ unitPriceCents: z58.number().finite(),
36907
+ currency: z58.string().min(1)
36533
36908
  });
36534
36909
  function deriveCommerceCheckoutState(state) {
36535
36910
  if (state.items.length === 0) {
@@ -36763,214 +37138,214 @@ function formatValidity(days) {
36763
37138
  }
36764
37139
 
36765
37140
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
36766
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
36767
- var contentEntrySchema3 = z58.object({
36768
- id: z58.string().nullable().optional(),
36769
- slug: z58.string().nullable().optional()
37141
+ var shopModeSchema = z59.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
37142
+ var contentEntrySchema3 = z59.object({
37143
+ id: z59.string().nullable().optional(),
37144
+ slug: z59.string().nullable().optional()
36770
37145
  }).nullable();
36771
- var shopSourceSchema = z58.object({
36772
- className: z58.string().nullable().optional(),
37146
+ var shopSourceSchema = z59.object({
37147
+ className: z59.string().nullable().optional(),
36773
37148
  mode: shopModeSchema.optional(),
36774
- heading: z58.string().nullable().optional(),
36775
- productSlug: z58.string().nullable().optional(),
36776
- showPasses: z58.boolean().optional(),
36777
- showMemberships: z58.boolean().optional(),
36778
- layout: z58.enum(["grid", "list"]).optional(),
36779
- columns: z58.string().optional(),
36780
- showDescriptions: z58.boolean().optional(),
36781
- showSummary: z58.boolean().optional(),
36782
- showBody: z58.boolean().optional(),
36783
- showPrices: z58.boolean().optional(),
36784
- showValidityPeriod: z58.boolean().optional(),
36785
- showPricePerCredit: z58.boolean().nullable().optional(),
36786
- passesHeading: z58.string().optional(),
36787
- membershipsHeading: z58.string().optional(),
36788
- buyButtonText: z58.string().optional(),
36789
- addButtonText: z58.string().optional(),
36790
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
36791
- subscribeButtonText: z58.string().optional(),
36792
- emptyStateText: z58.string().optional(),
36793
- checkoutButtonText: z58.string().optional(),
36794
- clearButtonText: z58.string().optional(),
36795
- submitButtonText: z58.string().optional(),
37149
+ heading: z59.string().nullable().optional(),
37150
+ productSlug: z59.string().nullable().optional(),
37151
+ showPasses: z59.boolean().optional(),
37152
+ showMemberships: z59.boolean().optional(),
37153
+ layout: z59.enum(["grid", "list"]).optional(),
37154
+ columns: z59.string().optional(),
37155
+ showDescriptions: z59.boolean().optional(),
37156
+ showSummary: z59.boolean().optional(),
37157
+ showBody: z59.boolean().optional(),
37158
+ showPrices: z59.boolean().optional(),
37159
+ showValidityPeriod: z59.boolean().optional(),
37160
+ showPricePerCredit: z59.boolean().nullable().optional(),
37161
+ passesHeading: z59.string().optional(),
37162
+ membershipsHeading: z59.string().optional(),
37163
+ buyButtonText: z59.string().optional(),
37164
+ addButtonText: z59.string().optional(),
37165
+ passPurchaseMode: z59.enum(["add_to_cart", "buy_now"]).optional(),
37166
+ subscribeButtonText: z59.string().optional(),
37167
+ emptyStateText: z59.string().optional(),
37168
+ checkoutButtonText: z59.string().optional(),
37169
+ clearButtonText: z59.string().optional(),
37170
+ submitButtonText: z59.string().optional(),
36796
37171
  contentEntry: contentEntrySchema3.optional(),
36797
- passes: z58.array(publicPassProductSchema).nullable().optional(),
36798
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
36799
- products: z58.array(publicProductSchema).nullable().optional(),
36800
- siteId: z58.string().optional(),
36801
- apiBaseUrl: z58.string().optional(),
37172
+ passes: z59.array(publicPassProductSchema).nullable().optional(),
37173
+ memberships: z59.array(publicMembershipProductSchema).nullable().optional(),
37174
+ products: z59.array(publicProductSchema).nullable().optional(),
37175
+ siteId: z59.string().optional(),
37176
+ apiBaseUrl: z59.string().optional(),
36802
37177
  stage: previewStageSchema.optional()
36803
37178
  });
36804
- var productVariantOptionDisplaySchema = z58.object({
36805
- id: z58.string(),
36806
- label: z58.string(),
36807
- soldOut: z58.boolean()
36808
- });
36809
- var productCardDisplaySchema = z58.object({
36810
- productId: z58.string(),
36811
- title: z58.string(),
36812
- path: z58.string().nullable(),
36813
- summary: z58.string().nullable(),
36814
- priceLabel: z58.string().nullable(),
36815
- image: z58.object({
36816
- url: z58.string(),
36817
- alt: z58.string().nullable()
37179
+ var productVariantOptionDisplaySchema = z59.object({
37180
+ id: z59.string(),
37181
+ label: z59.string(),
37182
+ soldOut: z59.boolean()
37183
+ });
37184
+ var productCardDisplaySchema = z59.object({
37185
+ productId: z59.string(),
37186
+ title: z59.string(),
37187
+ path: z59.string().nullable(),
37188
+ summary: z59.string().nullable(),
37189
+ priceLabel: z59.string().nullable(),
37190
+ image: z59.object({
37191
+ url: z59.string(),
37192
+ alt: z59.string().nullable()
36818
37193
  }).nullable(),
36819
- variantOptions: z58.array(productVariantOptionDisplaySchema),
36820
- selectedVariantId: z58.string().nullable(),
36821
- selectionLabel: z58.string(),
36822
- actionLabel: z58.string(),
36823
- soldOut: z58.boolean()
36824
- });
36825
- var productListDisplaySchema = z58.object({
36826
- kind: z58.literal("product-list"),
36827
- state: z58.enum(["empty", "ready"]),
36828
- heading: z58.string().nullable(),
36829
- className: z58.string().nullable(),
36830
- layout: z58.enum(["grid", "list"]),
36831
- columns: z58.string(),
36832
- emptyMessage: z58.string(),
36833
- cards: z58.array(productCardDisplaySchema)
36834
- });
36835
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
36836
- z58.object({
36837
- kind: z58.literal("product-detail"),
36838
- state: z58.literal("empty"),
36839
- heading: z58.string().nullable(),
36840
- className: z58.string().nullable(),
36841
- emptyMessage: z58.string()
37194
+ variantOptions: z59.array(productVariantOptionDisplaySchema),
37195
+ selectedVariantId: z59.string().nullable(),
37196
+ selectionLabel: z59.string(),
37197
+ actionLabel: z59.string(),
37198
+ soldOut: z59.boolean()
37199
+ });
37200
+ var productListDisplaySchema = z59.object({
37201
+ kind: z59.literal("product-list"),
37202
+ state: z59.enum(["empty", "ready"]),
37203
+ heading: z59.string().nullable(),
37204
+ className: z59.string().nullable(),
37205
+ layout: z59.enum(["grid", "list"]),
37206
+ columns: z59.string(),
37207
+ emptyMessage: z59.string(),
37208
+ cards: z59.array(productCardDisplaySchema)
37209
+ });
37210
+ var productDetailDisplaySchema = z59.discriminatedUnion("state", [
37211
+ z59.object({
37212
+ kind: z59.literal("product-detail"),
37213
+ state: z59.literal("empty"),
37214
+ heading: z59.string().nullable(),
37215
+ className: z59.string().nullable(),
37216
+ emptyMessage: z59.string()
36842
37217
  }),
36843
- z58.object({
36844
- kind: z58.literal("product-detail"),
36845
- state: z58.literal("ready"),
36846
- heading: z58.string().nullable(),
36847
- className: z58.string().nullable(),
36848
- title: z58.string(),
36849
- priceLabel: z58.string(),
36850
- summary: z58.string().nullable(),
36851
- categoryLabel: z58.string().nullable(),
36852
- gallery: z58.array(z58.object({
36853
- url: z58.string(),
36854
- alt: z58.string().nullable()
37218
+ z59.object({
37219
+ kind: z59.literal("product-detail"),
37220
+ state: z59.literal("ready"),
37221
+ heading: z59.string().nullable(),
37222
+ className: z59.string().nullable(),
37223
+ title: z59.string(),
37224
+ priceLabel: z59.string(),
37225
+ summary: z59.string().nullable(),
37226
+ categoryLabel: z59.string().nullable(),
37227
+ gallery: z59.array(z59.object({
37228
+ url: z59.string(),
37229
+ alt: z59.string().nullable()
36855
37230
  })),
36856
- variantOptions: z58.array(productVariantOptionDisplaySchema),
36857
- selectedVariantId: z58.string().nullable(),
36858
- selectionLabel: z58.string(),
36859
- actionLabel: z58.string(),
36860
- soldOut: z58.boolean(),
36861
- body: z58.unknown().nullable()
37231
+ variantOptions: z59.array(productVariantOptionDisplaySchema),
37232
+ selectedVariantId: z59.string().nullable(),
37233
+ selectionLabel: z59.string(),
37234
+ actionLabel: z59.string(),
37235
+ soldOut: z59.boolean(),
37236
+ body: z59.unknown().nullable()
36862
37237
  })
36863
37238
  ]);
36864
- var passCardDisplaySchema = z58.object({
36865
- id: z58.string(),
36866
- title: z58.string(),
36867
- description: z58.string().nullable(),
36868
- priceLabel: z58.string(),
36869
- creditsLabel: z58.string(),
36870
- perCreditLabel: z58.string().nullable(),
36871
- validityLabel: z58.string().nullable(),
36872
- actionLabel: z58.string()
36873
- });
36874
- var membershipCardDisplaySchema = z58.object({
36875
- id: z58.string(),
36876
- title: z58.string(),
36877
- description: z58.string().nullable(),
36878
- priceLabel: z58.string(),
36879
- intervalLabel: z58.string(),
36880
- actionLabel: z58.string()
36881
- });
36882
- var passesMembershipsDisplaySchema = z58.object({
36883
- kind: z58.literal("passes-memberships"),
36884
- state: z58.enum(["empty", "ready"]),
36885
- className: z58.string().nullable(),
36886
- layout: z58.enum(["grid", "list"]),
36887
- columns: z58.string(),
36888
- emptyMessage: z58.string(),
36889
- passesHeading: z58.string(),
36890
- membershipsHeading: z58.string(),
36891
- passes: z58.array(passCardDisplaySchema),
36892
- memberships: z58.array(membershipCardDisplaySchema)
36893
- });
36894
- var cartLineDisplaySchema = z58.object({
36895
- key: z58.string(),
36896
- title: z58.string(),
36897
- priceLabel: z58.string(),
36898
- quantity: z58.number(),
36899
- quantityEditable: z58.boolean()
36900
- });
36901
- var cartDisplaySchema = z58.object({
36902
- kind: z58.literal("cart"),
36903
- state: z58.enum(["empty", "ready"]),
36904
- heading: z58.string().nullable(),
36905
- className: z58.string().nullable(),
36906
- emptyMessage: z58.string(),
36907
- supportText: z58.string().nullable(),
36908
- items: z58.array(cartLineDisplaySchema),
36909
- subtotalLabel: z58.string().nullable(),
36910
- checkoutButtonText: z58.string(),
36911
- clearButtonText: z58.string()
36912
- });
36913
- var checkoutDisplaySchema = z58.object({
36914
- kind: z58.literal("checkout"),
36915
- state: z58.enum(["empty", "blocked", "ready"]),
36916
- heading: z58.string().nullable(),
36917
- className: z58.string().nullable(),
36918
- message: z58.string().nullable(),
36919
- submitButtonText: z58.string()
36920
- });
36921
- var passesMembershipsHydrationSchema = z58.object({
36922
- passes: z58.array(publicPassProductSchema),
36923
- memberships: z58.array(publicMembershipProductSchema),
36924
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
36925
- });
36926
- var productListHydrationSchema = z58.object({
36927
- products: z58.array(publicProductSchema),
36928
- showSummary: z58.boolean(),
36929
- showPrices: z58.boolean(),
36930
- addButtonText: z58.string()
36931
- });
36932
- var productDetailHydrationSchema = z58.object({
36933
- products: z58.array(publicProductSchema),
36934
- productId: z58.string().nullable(),
36935
- showSummary: z58.boolean(),
36936
- showBody: z58.boolean(),
36937
- addButtonText: z58.string()
36938
- });
36939
- var cartHydrationSchema = z58.object({
36940
- emptyStateText: z58.string(),
36941
- checkoutButtonText: z58.string(),
36942
- clearButtonText: z58.string()
36943
- });
36944
- var checkoutHydrationSchema = z58.object({
36945
- emptyStateText: z58.string(),
36946
- submitButtonText: z58.string()
36947
- });
36948
- var passesMembershipsRenderSchema = z58.object({
37239
+ var passCardDisplaySchema = z59.object({
37240
+ id: z59.string(),
37241
+ title: z59.string(),
37242
+ description: z59.string().nullable(),
37243
+ priceLabel: z59.string(),
37244
+ creditsLabel: z59.string(),
37245
+ perCreditLabel: z59.string().nullable(),
37246
+ validityLabel: z59.string().nullable(),
37247
+ actionLabel: z59.string()
37248
+ });
37249
+ var membershipCardDisplaySchema = z59.object({
37250
+ id: z59.string(),
37251
+ title: z59.string(),
37252
+ description: z59.string().nullable(),
37253
+ priceLabel: z59.string(),
37254
+ intervalLabel: z59.string(),
37255
+ actionLabel: z59.string()
37256
+ });
37257
+ var passesMembershipsDisplaySchema = z59.object({
37258
+ kind: z59.literal("passes-memberships"),
37259
+ state: z59.enum(["empty", "ready"]),
37260
+ className: z59.string().nullable(),
37261
+ layout: z59.enum(["grid", "list"]),
37262
+ columns: z59.string(),
37263
+ emptyMessage: z59.string(),
37264
+ passesHeading: z59.string(),
37265
+ membershipsHeading: z59.string(),
37266
+ passes: z59.array(passCardDisplaySchema),
37267
+ memberships: z59.array(membershipCardDisplaySchema)
37268
+ });
37269
+ var cartLineDisplaySchema = z59.object({
37270
+ key: z59.string(),
37271
+ title: z59.string(),
37272
+ priceLabel: z59.string(),
37273
+ quantity: z59.number(),
37274
+ quantityEditable: z59.boolean()
37275
+ });
37276
+ var cartDisplaySchema = z59.object({
37277
+ kind: z59.literal("cart"),
37278
+ state: z59.enum(["empty", "ready"]),
37279
+ heading: z59.string().nullable(),
37280
+ className: z59.string().nullable(),
37281
+ emptyMessage: z59.string(),
37282
+ supportText: z59.string().nullable(),
37283
+ items: z59.array(cartLineDisplaySchema),
37284
+ subtotalLabel: z59.string().nullable(),
37285
+ checkoutButtonText: z59.string(),
37286
+ clearButtonText: z59.string()
37287
+ });
37288
+ var checkoutDisplaySchema = z59.object({
37289
+ kind: z59.literal("checkout"),
37290
+ state: z59.enum(["empty", "blocked", "ready"]),
37291
+ heading: z59.string().nullable(),
37292
+ className: z59.string().nullable(),
37293
+ message: z59.string().nullable(),
37294
+ submitButtonText: z59.string()
37295
+ });
37296
+ var passesMembershipsHydrationSchema = z59.object({
37297
+ passes: z59.array(publicPassProductSchema),
37298
+ memberships: z59.array(publicMembershipProductSchema),
37299
+ passPurchaseMode: z59.enum(["add_to_cart", "buy_now"])
37300
+ });
37301
+ var productListHydrationSchema = z59.object({
37302
+ products: z59.array(publicProductSchema),
37303
+ showSummary: z59.boolean(),
37304
+ showPrices: z59.boolean(),
37305
+ addButtonText: z59.string()
37306
+ });
37307
+ var productDetailHydrationSchema = z59.object({
37308
+ products: z59.array(publicProductSchema),
37309
+ productId: z59.string().nullable(),
37310
+ showSummary: z59.boolean(),
37311
+ showBody: z59.boolean(),
37312
+ addButtonText: z59.string()
37313
+ });
37314
+ var cartHydrationSchema = z59.object({
37315
+ emptyStateText: z59.string(),
37316
+ checkoutButtonText: z59.string(),
37317
+ clearButtonText: z59.string()
37318
+ });
37319
+ var checkoutHydrationSchema = z59.object({
37320
+ emptyStateText: z59.string(),
37321
+ submitButtonText: z59.string()
37322
+ });
37323
+ var passesMembershipsRenderSchema = z59.object({
36949
37324
  display: passesMembershipsDisplaySchema,
36950
37325
  hydration: passesMembershipsHydrationSchema
36951
37326
  });
36952
- var productListRenderSchema = z58.object({
37327
+ var productListRenderSchema = z59.object({
36953
37328
  display: productListDisplaySchema,
36954
37329
  hydration: productListHydrationSchema
36955
37330
  });
36956
- var productDetailRenderSchema = z58.object({
37331
+ var productDetailRenderSchema = z59.object({
36957
37332
  display: productDetailDisplaySchema,
36958
37333
  hydration: productDetailHydrationSchema
36959
37334
  });
36960
- var cartRenderSchema = z58.object({
37335
+ var cartRenderSchema = z59.object({
36961
37336
  display: cartDisplaySchema,
36962
37337
  hydration: cartHydrationSchema
36963
37338
  });
36964
- var checkoutRenderSchema = z58.object({
37339
+ var checkoutRenderSchema = z59.object({
36965
37340
  display: checkoutDisplaySchema,
36966
37341
  hydration: checkoutHydrationSchema
36967
37342
  });
36968
37343
  function resolveShowPricePerCredit(source) {
36969
37344
  return source.showPricePerCredit ?? true;
36970
37345
  }
36971
- var shopIslandMetaCodec = createZodCodec(z58.object({
36972
- siteId: z58.string().optional(),
36973
- apiBaseUrl: z58.string().optional(),
37346
+ var shopIslandMetaCodec = createZodCodec(z59.object({
37347
+ siteId: z59.string().optional(),
37348
+ apiBaseUrl: z59.string().optional(),
36974
37349
  stage: previewStageSchema.optional()
36975
37350
  }));
36976
37351
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -37373,7 +37748,7 @@ var shopBlockDefinition = {
37373
37748
  };
37374
37749
 
37375
37750
  // ../blocks/src/system/blocks/product-list.ts
37376
- import { z as z59 } from "zod";
37751
+ import { z as z60 } from "zod";
37377
37752
  var productListManifest = createBlockManifest({
37378
37753
  id: "block.product-list",
37379
37754
  version: "1.0.0",
@@ -37506,7 +37881,7 @@ var productListBlockDefinition = {
37506
37881
  }
37507
37882
  }
37508
37883
  };
37509
- var productListDataSchema = z59.object({
37884
+ var productListDataSchema = z60.object({
37510
37885
  products: publicProductsResponseSchema.optional()
37511
37886
  });
37512
37887
 
@@ -37767,72 +38142,72 @@ var checkoutBlockDefinition = {
37767
38142
  };
37768
38143
 
37769
38144
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
37770
- import { z as z60 } from "zod";
37771
- var publicGiftCardOfferSchema = z60.object({
37772
- id: z60.string(),
37773
- kind: z60.literal("gift_card"),
37774
- title: z60.string(),
37775
- description: z60.string().nullable(),
37776
- sortOrder: z60.number().int(),
37777
- giftCard: z60.object({
37778
- fixedDenominations: z60.array(z60.number().int().positive()),
37779
- customAmountEnabled: z60.boolean(),
37780
- customAmountMinCents: z60.number().int().positive(),
37781
- customAmountMaxCents: z60.number().int().positive()
38145
+ import { z as z61 } from "zod";
38146
+ var publicGiftCardOfferSchema = z61.object({
38147
+ id: z61.string(),
38148
+ kind: z61.literal("gift_card"),
38149
+ title: z61.string(),
38150
+ description: z61.string().nullable(),
38151
+ sortOrder: z61.number().int(),
38152
+ giftCard: z61.object({
38153
+ fixedDenominations: z61.array(z61.number().int().positive()),
38154
+ customAmountEnabled: z61.boolean(),
38155
+ customAmountMinCents: z61.number().int().positive(),
38156
+ customAmountMaxCents: z61.number().int().positive()
37782
38157
  }),
37783
- voucher: z60.null()
37784
- });
37785
- var publicVoucherOfferSchema = z60.object({
37786
- id: z60.string(),
37787
- kind: z60.literal("voucher"),
37788
- title: z60.string(),
37789
- description: z60.string().nullable(),
37790
- sortOrder: z60.number().int(),
37791
- giftCard: z60.null(),
37792
- voucher: z60.object({
37793
- purchaseAmountCents: z60.number().int().positive()
38158
+ voucher: z61.null()
38159
+ });
38160
+ var publicVoucherOfferSchema = z61.object({
38161
+ id: z61.string(),
38162
+ kind: z61.literal("voucher"),
38163
+ title: z61.string(),
38164
+ description: z61.string().nullable(),
38165
+ sortOrder: z61.number().int(),
38166
+ giftCard: z61.null(),
38167
+ voucher: z61.object({
38168
+ purchaseAmountCents: z61.number().int().positive()
37794
38169
  })
37795
38170
  });
37796
- var publicGiftingOffersResponseSchema = z60.object({
37797
- currency: z60.string(),
37798
- giftCards: z60.array(publicGiftCardOfferSchema),
37799
- vouchers: z60.array(publicVoucherOfferSchema)
38171
+ var publicGiftingOffersResponseSchema = z61.object({
38172
+ currency: z61.string(),
38173
+ giftCards: z61.array(publicGiftCardOfferSchema),
38174
+ vouchers: z61.array(publicVoucherOfferSchema)
37800
38175
  });
37801
- var giftingSourceSchema = z60.object({
37802
- siteId: z60.string().optional(),
37803
- apiBaseUrl: z60.string().optional(),
38176
+ var giftingSourceSchema = z61.object({
38177
+ siteId: z61.string().optional(),
38178
+ apiBaseUrl: z61.string().optional(),
37804
38179
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
37805
- className: z60.string().nullable().optional(),
37806
- heading: z60.string().nullable().optional(),
37807
- intro: z60.string().nullable().optional(),
37808
- giftCardsHeading: z60.string().nullable().optional(),
37809
- vouchersHeading: z60.string().nullable().optional(),
37810
- emptyStateText: z60.string().nullable().optional(),
37811
- checkoutButtonText: z60.string().nullable().optional(),
37812
- successMessage: z60.string().nullable().optional()
37813
- });
37814
- var giftingDisplaySchema = z60.object({
37815
- kind: z60.literal("gifting"),
37816
- state: z60.literal("ready"),
37817
- className: z60.string().nullable(),
37818
- heading: z60.string(),
37819
- intro: z60.string().nullable(),
37820
- giftCardsHeading: z60.string(),
37821
- vouchersHeading: z60.string(),
37822
- emptyStateText: z60.string()
37823
- });
37824
- var giftingHydrationSchema = z60.object({
38180
+ className: z61.string().nullable().optional(),
38181
+ heading: z61.string().nullable().optional(),
38182
+ intro: z61.string().nullable().optional(),
38183
+ giftCardsHeading: z61.string().nullable().optional(),
38184
+ vouchersHeading: z61.string().nullable().optional(),
38185
+ emptyStateText: z61.string().nullable().optional(),
38186
+ checkoutButtonText: z61.string().nullable().optional(),
38187
+ successMessage: z61.string().nullable().optional()
38188
+ });
38189
+ var giftingDisplaySchema = z61.object({
38190
+ kind: z61.literal("gifting"),
38191
+ state: z61.literal("ready"),
38192
+ className: z61.string().nullable(),
38193
+ heading: z61.string(),
38194
+ intro: z61.string().nullable(),
38195
+ giftCardsHeading: z61.string(),
38196
+ vouchersHeading: z61.string(),
38197
+ emptyStateText: z61.string()
38198
+ });
38199
+ var giftingHydrationSchema = z61.object({
37825
38200
  offers: publicGiftingOffersResponseSchema.nullable(),
37826
- checkoutButtonText: z60.string(),
37827
- successMessage: z60.string()
38201
+ checkoutButtonText: z61.string(),
38202
+ successMessage: z61.string()
37828
38203
  });
37829
- var giftingRenderSchema = z60.object({
38204
+ var giftingRenderSchema = z61.object({
37830
38205
  display: giftingDisplaySchema,
37831
38206
  hydration: giftingHydrationSchema
37832
38207
  });
37833
- var giftingIslandMetaCodec = createZodCodec(z60.object({
37834
- siteId: z60.string().optional(),
37835
- apiBaseUrl: z60.string().optional()
38208
+ var giftingIslandMetaCodec = createZodCodec(z61.object({
38209
+ siteId: z61.string().optional(),
38210
+ apiBaseUrl: z61.string().optional()
37836
38211
  }));
37837
38212
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
37838
38213
  "siteId",
@@ -38003,7 +38378,7 @@ var giftingBlockDefinition = {
38003
38378
  };
38004
38379
 
38005
38380
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
38006
- import { z as z61 } from "zod";
38381
+ import { z as z62 } from "zod";
38007
38382
 
38008
38383
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
38009
38384
  function parseNewsletterSignupBlockId(value) {
@@ -38138,65 +38513,65 @@ function withOptionalPhone(fields3, includePhone) {
38138
38513
  }
38139
38514
 
38140
38515
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
38141
- var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
38142
- var newsletterDestinationProviderSchema = z61.enum(["riverbank", "mailchimp"]);
38143
- var newsletterFieldSchema = z61.object({
38144
- id: z61.string(),
38145
- type: z61.enum(["email", "text"]),
38146
- label: z61.string(),
38147
- required: z61.boolean(),
38148
- placeholder: z61.string().optional()
38149
- });
38150
- var newsletterSignupBlockIdSchema = z61.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
38151
- var signedNewsletterDestinationRefSchema = z61.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
38152
- var newsletterPublicDestinationRefSchema = z61.discriminatedUnion("tag", [
38153
- z61.object({
38154
- tag: z61.literal("block_ref"),
38516
+ var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
38517
+ var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
38518
+ var newsletterFieldSchema = z62.object({
38519
+ id: z62.string(),
38520
+ type: z62.enum(["email", "text"]),
38521
+ label: z62.string(),
38522
+ required: z62.boolean(),
38523
+ placeholder: z62.string().optional()
38524
+ });
38525
+ var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
38526
+ var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
38527
+ var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
38528
+ z62.object({
38529
+ tag: z62.literal("block_ref"),
38155
38530
  blockId: newsletterSignupBlockIdSchema
38156
38531
  }),
38157
- z61.object({
38158
- tag: z61.literal("signed_destination_ref"),
38532
+ z62.object({
38533
+ tag: z62.literal("signed_destination_ref"),
38159
38534
  token: signedNewsletterDestinationRefSchema
38160
38535
  })
38161
38536
  ]);
38162
- var newsletterSourceSchema = z61.object({
38163
- blockId: z61.string().nullable().optional(),
38164
- siteId: z61.string().optional(),
38165
- apiBaseUrl: z61.string().optional(),
38166
- listId: z61.string().nullable().optional(),
38537
+ var newsletterSourceSchema = z62.object({
38538
+ blockId: z62.string().nullable().optional(),
38539
+ siteId: z62.string().optional(),
38540
+ apiBaseUrl: z62.string().optional(),
38541
+ listId: z62.string().nullable().optional(),
38167
38542
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
38168
38543
  preset: newsletterPresetSchema.optional(),
38169
- includePhone: z61.boolean().optional(),
38170
- buttonLabel: z61.string().nullable().optional(),
38171
- successMessage: z61.string().nullable().optional(),
38172
- privacyNote: z61.string().nullable().optional(),
38173
- tags: z61.string().nullable().optional(),
38174
- spamProtectionEnabled: z61.boolean().optional(),
38175
- className: z61.string().nullable().optional()
38176
- });
38177
- var newsletterDisplaySchema = z61.object({
38178
- kind: z61.literal("newsletter-form"),
38179
- className: z61.string().nullable(),
38180
- buttonLabel: z61.string(),
38181
- successMessage: z61.string().nullable(),
38182
- privacyNote: z61.string().nullable(),
38183
- fields: z61.array(newsletterFieldSchema)
38184
- });
38185
- var newsletterHydrationSchema = z61.object({
38544
+ includePhone: z62.boolean().optional(),
38545
+ buttonLabel: z62.string().nullable().optional(),
38546
+ successMessage: z62.string().nullable().optional(),
38547
+ privacyNote: z62.string().nullable().optional(),
38548
+ tags: z62.string().nullable().optional(),
38549
+ spamProtectionEnabled: z62.boolean().optional(),
38550
+ className: z62.string().nullable().optional()
38551
+ });
38552
+ var newsletterDisplaySchema = z62.object({
38553
+ kind: z62.literal("newsletter-form"),
38554
+ className: z62.string().nullable(),
38555
+ buttonLabel: z62.string(),
38556
+ successMessage: z62.string().nullable(),
38557
+ privacyNote: z62.string().nullable(),
38558
+ fields: z62.array(newsletterFieldSchema)
38559
+ });
38560
+ var newsletterHydrationSchema = z62.object({
38186
38561
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
38187
- listId: z61.string().nullable().optional(),
38562
+ listId: z62.string().nullable().optional(),
38188
38563
  preset: newsletterPresetSchema,
38189
- includePhone: z61.boolean(),
38190
- tags: z61.string().nullable().optional(),
38191
- spamProtectionEnabled: z61.boolean().optional()
38564
+ includePhone: z62.boolean(),
38565
+ tags: z62.string().nullable().optional(),
38566
+ spamProtectionEnabled: z62.boolean().optional()
38192
38567
  });
38193
- var newsletterRenderSchema = z61.object({
38568
+ var newsletterRenderSchema = z62.object({
38194
38569
  display: newsletterDisplaySchema,
38195
38570
  hydration: newsletterHydrationSchema
38196
38571
  });
38197
- var newsletterIslandMetaCodec = createZodCodec(z61.object({
38198
- siteId: z61.string().optional(),
38199
- apiBaseUrl: z61.string().optional()
38572
+ var newsletterIslandMetaCodec = createZodCodec(z62.object({
38573
+ siteId: z62.string().optional(),
38574
+ apiBaseUrl: z62.string().optional()
38200
38575
  }));
38201
38576
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
38202
38577
  function buildNewsletterDisplay(source) {
@@ -38335,23 +38710,23 @@ var newsletterSignupBlockDefinition = {
38335
38710
  };
38336
38711
 
38337
38712
  // ../blocks/src/system/blocks/team-members.ts
38338
- import { z as z62 } from "zod";
38713
+ import { z as z63 } from "zod";
38339
38714
  var ITEM_NAME2 = "member";
38340
38715
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
38341
38716
  message: "Team member photos must be image media"
38342
38717
  }).nullable();
38343
- var teamMemberDataSchema = z62.object({
38344
- _type: z62.literal("teamMember"),
38345
- id: z62.string(),
38346
- name: z62.string(),
38347
- role: z62.string().nullable(),
38348
- roleLabel: z62.string().nullable(),
38349
- bio: z62.string().nullable(),
38350
- summary: z62.string().nullable(),
38718
+ var teamMemberDataSchema = z63.object({
38719
+ _type: z63.literal("teamMember"),
38720
+ id: z63.string(),
38721
+ name: z63.string(),
38722
+ role: z63.string().nullable(),
38723
+ roleLabel: z63.string().nullable(),
38724
+ bio: z63.string().nullable(),
38725
+ summary: z63.string().nullable(),
38351
38726
  photo: teamMemberPhotoSchema,
38352
- profilePath: z62.string().nullable()
38727
+ profilePath: z63.string().nullable()
38353
38728
  });
38354
- var teamMembersDataSchema = z62.array(teamMemberDataSchema);
38729
+ var teamMembersDataSchema = z63.array(teamMemberDataSchema);
38355
38730
  var dynamicSourceWhen = { equals: "site_staff" };
38356
38731
  var manualSourceWhen = { equals: "site_staff", not: true };
38357
38732
  var headingNode = text(
@@ -39457,6 +39832,10 @@ var systemBlockDefinitionsRaw = [
39457
39832
  flow: conversionFlow,
39458
39833
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
39459
39834
  })),
39835
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
39836
+ flow: offeringsFlow,
39837
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
39838
+ })),
39460
39839
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
39461
39840
  flow: conversionFlow,
39462
39841
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -41140,34 +41519,34 @@ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
41140
41519
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
41141
41520
 
41142
41521
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
41143
- import { z as z63 } from "zod";
41144
- var themeBridgeConfigSchema = z63.object({
41145
- tokens: z63.record(z63.string(), z63.string()),
41146
- typography: z63.object({
41147
- headingFamily: z63.string().optional(),
41148
- bodyFamily: z63.string().optional(),
41149
- headingWeight: z63.number().optional(),
41150
- bodyWeight: z63.number().optional()
41522
+ import { z as z64 } from "zod";
41523
+ var themeBridgeConfigSchema = z64.object({
41524
+ tokens: z64.record(z64.string(), z64.string()),
41525
+ typography: z64.object({
41526
+ headingFamily: z64.string().optional(),
41527
+ bodyFamily: z64.string().optional(),
41528
+ headingWeight: z64.number().optional(),
41529
+ bodyWeight: z64.number().optional()
41151
41530
  }).optional(),
41152
- spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
41153
- corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
41154
- shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
41155
- components: z63.object({
41156
- buttons: z63.union([
41157
- z63.boolean(),
41158
- z63.object({
41159
- variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
41531
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
41532
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
41533
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
41534
+ components: z64.object({
41535
+ buttons: z64.union([
41536
+ z64.boolean(),
41537
+ z64.object({
41538
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
41160
41539
  })
41161
41540
  ]).optional(),
41162
- cards: z63.union([
41163
- z63.boolean(),
41164
- z63.object({
41165
- variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
41541
+ cards: z64.union([
41542
+ z64.boolean(),
41543
+ z64.object({
41544
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
41166
41545
  })
41167
41546
  ]).optional(),
41168
- inputs: z63.boolean().optional()
41547
+ inputs: z64.boolean().optional()
41169
41548
  }).optional(),
41170
- overrides: z63.record(z63.string(), z63.string()).optional()
41549
+ overrides: z64.record(z64.string(), z64.string()).optional()
41171
41550
  }).passthrough();
41172
41551
 
41173
41552
  // ../theme-core/src/siteChrome.tsx
@@ -41385,14 +41764,21 @@ function coercePayload(payload) {
41385
41764
 
41386
41765
  // ../blocks/src/system/data/prefetchBlockData.ts
41387
41766
  async function prefetchBlockData(page, context, options) {
41388
- const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders } = options;
41767
+ const {
41768
+ apiClient,
41769
+ isValidEndpoint,
41770
+ onError,
41771
+ getCustomBlockLoaders,
41772
+ getBlockDefinition: getBlockDefinition2 = getBlockDefinition,
41773
+ resolveParamsBindings: resolveParamsBindings2 = resolveParamsBindings
41774
+ } = options;
41389
41775
  const results = {};
41390
41776
  const tasks = [];
41391
41777
  for (const block of page.blocks) {
41392
41778
  const blockId = block.id;
41393
41779
  if (!blockId) continue;
41394
41780
  let loaders;
41395
- const def = getBlockDefinition(block.kind);
41781
+ const def = getBlockDefinition2(block.kind);
41396
41782
  if (def) {
41397
41783
  loaders = normalizeDataLoaders(def);
41398
41784
  } else if (getCustomBlockLoaders) {
@@ -41415,14 +41801,14 @@ async function prefetchBlockData(page, context, options) {
41415
41801
  continue;
41416
41802
  }
41417
41803
  if (typeof loader.when !== "undefined") {
41418
- const resolvedWhen = resolveParamsBindings(loader.when, vm, {
41804
+ const resolvedWhen = resolveParamsBindings2(loader.when, vm, {
41419
41805
  blockKind: block.kind
41420
41806
  });
41421
41807
  if (resolvedWhen !== true) {
41422
41808
  continue;
41423
41809
  }
41424
41810
  }
41425
- const rawParams = resolveParamsBindings(loader.params, vm, {
41811
+ const rawParams = resolveParamsBindings2(loader.params, vm, {
41426
41812
  blockKind: block.kind
41427
41813
  });
41428
41814
  const params = normalizeParams(rawParams);
@@ -41465,7 +41851,8 @@ var SUPPORTED_LOADER_ENDPOINTS = [
41465
41851
  "listPublicPasses",
41466
41852
  "listPublicMemberships",
41467
41853
  "getPublicFormById",
41468
- "getPublicBookingServices"
41854
+ "getPublicBookingServices",
41855
+ "getPublicWeeklySlotAvailability"
41469
41856
  ];
41470
41857
 
41471
41858
  // ../blocks/src/system/data/normalizeLoaderParams.ts
@@ -41504,6 +41891,10 @@ function normalizeLoaderParams(endpoint, params, context) {
41504
41891
  ensureSiteId(out, context);
41505
41892
  return out;
41506
41893
  }
41894
+ if (endpoint === "getPublicWeeklySlotAvailability") {
41895
+ ensureSiteId(out, context);
41896
+ return out;
41897
+ }
41507
41898
  if (endpoint === "listPublicEvents") {
41508
41899
  ensureSiteId(out, context);
41509
41900
  return out;
@@ -41536,17 +41927,17 @@ function normalizeLoaderParams(endpoint, params, context) {
41536
41927
  function unsafeRetypeZodSchema(schema) {
41537
41928
  return schema;
41538
41929
  }
41539
- var navIdListSchema = z64.preprocess((value) => {
41930
+ var navIdListSchema = z65.preprocess((value) => {
41540
41931
  if (!Array.isArray(value)) return void 0;
41541
41932
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
41542
41933
  return filtered.length > 0 ? filtered : void 0;
41543
- }, z64.array(z64.string()).max(200).optional());
41544
- var dashboardNavVisibilityBaseSchema = z64.object({
41545
- mode: z64.enum(["augment", "restrict"]).optional(),
41934
+ }, z65.array(z65.string()).max(200).optional());
41935
+ var dashboardNavVisibilityBaseSchema = z65.object({
41936
+ mode: z65.enum(["augment", "restrict"]).optional(),
41546
41937
  allowIds: navIdListSchema,
41547
41938
  denyIds: navIdListSchema
41548
41939
  }).strip();
41549
- var dashboardNavVisibilityRolesSchema = z64.object({
41940
+ var dashboardNavVisibilityRolesSchema = z65.object({
41550
41941
  administrator: dashboardNavVisibilityBaseSchema.optional(),
41551
41942
  editor: dashboardNavVisibilityBaseSchema.optional(),
41552
41943
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -41554,63 +41945,63 @@ var dashboardNavVisibilityRolesSchema = z64.object({
41554
41945
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
41555
41946
  roles: dashboardNavVisibilityRolesSchema
41556
41947
  }).strip();
41557
- var dashboardNavigationConfigSchema = z64.object({
41948
+ var dashboardNavigationConfigSchema = z65.object({
41558
41949
  siteNav: dashboardNavVisibilitySchema.optional(),
41559
41950
  settingsNav: dashboardNavVisibilitySchema.optional()
41560
41951
  }).strip();
41561
- var dashboardConfigSchema = z64.object({
41562
- previewEditingEnabled: z64.boolean().optional(),
41952
+ var dashboardConfigSchema = z65.object({
41953
+ previewEditingEnabled: z65.boolean().optional(),
41563
41954
  navigation: dashboardNavigationConfigSchema.optional()
41564
41955
  }).strip();
41565
41956
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
41566
41957
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
41567
- var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
41568
- var loaderFallbackScalarSchema = z64.union([
41569
- z64.string(),
41570
- z64.number(),
41571
- z64.boolean(),
41572
- z64.null()
41958
+ var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
41959
+ var loaderFallbackScalarSchema = z65.union([
41960
+ z65.string(),
41961
+ z65.number(),
41962
+ z65.boolean(),
41963
+ z65.null()
41573
41964
  ]);
41574
- var loaderParamBindingSchema = z64.object({
41575
- $bind: z64.object({
41576
- from: z64.string().min(1, "Binding path is required"),
41965
+ var loaderParamBindingSchema = z65.object({
41966
+ $bind: z65.object({
41967
+ from: z65.string().min(1, "Binding path is required"),
41577
41968
  fallback: loaderFallbackScalarSchema.optional()
41578
41969
  })
41579
41970
  });
41580
- var loaderParamValueSchema = z64.union([
41581
- z64.string(),
41582
- z64.number(),
41583
- z64.boolean(),
41971
+ var loaderParamValueSchema = z65.union([
41972
+ z65.string(),
41973
+ z65.number(),
41974
+ z65.boolean(),
41584
41975
  loaderParamBindingSchema
41585
41976
  ]);
41586
- var sdkConfigLoaderSchema = z64.object({
41977
+ var sdkConfigLoaderSchema = z65.object({
41587
41978
  endpoint: sdkLoaderEndpointSchema,
41588
- params: z64.record(z64.string(), loaderParamValueSchema),
41589
- mode: z64.enum(["server", "client"]).default("server")
41979
+ params: z65.record(z65.string(), loaderParamValueSchema),
41980
+ mode: z65.enum(["server", "client"]).default("server")
41590
41981
  });
41591
- var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
41592
- var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
41982
+ var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
41983
+ var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
41593
41984
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
41594
41985
  }).transform((value) => value);
41595
- var sdkCustomBlockInputSchema = z64.object({
41986
+ var sdkCustomBlockInputSchema = z65.object({
41596
41987
  id: sdkCustomBlockIdSchema,
41597
- title: z64.string().min(1),
41598
- titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
41599
- description: z64.string().optional(),
41988
+ title: z65.string().min(1),
41989
+ titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
41990
+ description: z65.string().optional(),
41600
41991
  category: blockCategoryEnum,
41601
- icon: z64.string().optional(),
41602
- tags: z64.array(z64.string()).optional(),
41992
+ icon: z65.string().optional(),
41993
+ tags: z65.array(z65.string()).optional(),
41603
41994
  fields: fieldDefinitionInputSchema.array().min(1),
41604
41995
  dataLoaders: sdkDataLoadersSchema,
41605
41996
  layout: NodeSchema.optional(),
41606
- variants: z64.record(z64.string().min(1), NodeSchema).optional(),
41607
- defaultVariant: z64.string().min(1).optional(),
41608
- variantOptions: z64.record(
41609
- z64.string().min(1),
41610
- z64.object({
41611
- label: z64.string().min(1).optional(),
41612
- description: z64.string().min(1).optional(),
41613
- icon: z64.string().min(1).optional()
41997
+ variants: z65.record(z65.string().min(1), NodeSchema).optional(),
41998
+ defaultVariant: z65.string().min(1).optional(),
41999
+ variantOptions: z65.record(
42000
+ z65.string().min(1),
42001
+ z65.object({
42002
+ label: z65.string().min(1).optional(),
42003
+ description: z65.string().min(1).optional(),
42004
+ icon: z65.string().min(1).optional()
41614
42005
  })
41615
42006
  ).optional(),
41616
42007
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -41621,7 +42012,7 @@ var sdkCustomBlockInputSchema = z64.object({
41621
42012
  const exists = data.fields.some((field) => field.id === source);
41622
42013
  if (!exists) {
41623
42014
  ctx.addIssue({
41624
- code: z64.ZodIssueCode.custom,
42015
+ code: z65.ZodIssueCode.custom,
41625
42016
  message: `titleSource must reference a valid field ID (got "${source}")`,
41626
42017
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
41627
42018
  });
@@ -41630,7 +42021,7 @@ var sdkCustomBlockInputSchema = z64.object({
41630
42021
  }
41631
42022
  if (data.layout && data.variants) {
41632
42023
  ctx.addIssue({
41633
- code: z64.ZodIssueCode.custom,
42024
+ code: z65.ZodIssueCode.custom,
41634
42025
  message: "Custom block must define either `layout` or `variants`, not both",
41635
42026
  path: ["variants"]
41636
42027
  });
@@ -41639,14 +42030,14 @@ var sdkCustomBlockInputSchema = z64.object({
41639
42030
  const keys = Object.keys(data.variants);
41640
42031
  if (keys.length === 0) {
41641
42032
  ctx.addIssue({
41642
- code: z64.ZodIssueCode.custom,
42033
+ code: z65.ZodIssueCode.custom,
41643
42034
  message: "`variants` must contain at least one variant key",
41644
42035
  path: ["variants"]
41645
42036
  });
41646
42037
  }
41647
42038
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
41648
42039
  ctx.addIssue({
41649
- code: z64.ZodIssueCode.custom,
42040
+ code: z65.ZodIssueCode.custom,
41650
42041
  message: "`defaultVariant` must be a key present in `variants`",
41651
42042
  path: ["defaultVariant"]
41652
42043
  });
@@ -41655,7 +42046,7 @@ var sdkCustomBlockInputSchema = z64.object({
41655
42046
  for (const key of Object.keys(data.variantOptions)) {
41656
42047
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
41657
42048
  ctx.addIssue({
41658
- code: z64.ZodIssueCode.custom,
42049
+ code: z65.ZodIssueCode.custom,
41659
42050
  message: "`variantOptions` key must exist in `variants`",
41660
42051
  path: ["variantOptions", key]
41661
42052
  });
@@ -41664,78 +42055,78 @@ var sdkCustomBlockInputSchema = z64.object({
41664
42055
  }
41665
42056
  }
41666
42057
  });
41667
- var sdkBlockFieldExtensionInputSchema = z64.object({
42058
+ var sdkBlockFieldExtensionInputSchema = z65.object({
41668
42059
  fields: fieldDefinitionInputSchema.array().min(1)
41669
42060
  });
41670
- var sdkBlockFieldExtensionsInputSchema = z64.record(
41671
- z64.string().min(1),
42061
+ var sdkBlockFieldExtensionsInputSchema = z65.record(
42062
+ z65.string().min(1),
41672
42063
  sdkBlockFieldExtensionInputSchema
41673
42064
  );
41674
- var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
41675
- var sdkThemeConfigSchema = z64.object({
42065
+ var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
42066
+ var sdkThemeConfigSchema = z65.object({
41676
42067
  palette: sdkThemePaletteSchema
41677
42068
  });
41678
- var sdkSectionBackgroundSchema = z64.object({
41679
- id: z64.string().min(1),
41680
- label: z64.string().min(1),
41681
- token: z64.string().min(1)
42069
+ var sdkSectionBackgroundSchema = z65.object({
42070
+ id: z65.string().min(1),
42071
+ label: z65.string().min(1),
42072
+ token: z65.string().min(1)
41682
42073
  });
41683
- var sdkSectionOptionsConfigSchema = z64.object({
41684
- backgroundColor: z64.boolean().optional(),
41685
- backgroundImage: z64.boolean().optional(),
41686
- backgroundGradient: z64.boolean().optional(),
41687
- spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
41688
- textColor: z64.boolean().optional()
42074
+ var sdkSectionOptionsConfigSchema = z65.object({
42075
+ backgroundColor: z65.boolean().optional(),
42076
+ backgroundImage: z65.boolean().optional(),
42077
+ backgroundGradient: z65.boolean().optional(),
42078
+ spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
42079
+ textColor: z65.boolean().optional()
41689
42080
  });
41690
- var sdkContainerOptionsConfigSchema = z64.object({
41691
- maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
41692
- alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
42081
+ var sdkContainerOptionsConfigSchema = z65.object({
42082
+ maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
42083
+ alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
41693
42084
  });
41694
- var sdkSiteStyleConfigSchema = z64.object({
41695
- sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
42085
+ var sdkSiteStyleConfigSchema = z65.object({
42086
+ sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
41696
42087
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
41697
42088
  containerOptions: sdkContainerOptionsConfigSchema.optional()
41698
42089
  });
41699
- var sdkSiteLayoutConfigSchema = z64.object({
41700
- footerBlocks: z64.array(
41701
- z64.object({
41702
- id: z64.string().min(1).optional(),
41703
- kind: z64.string().min(1),
41704
- content: z64.record(z64.string(), z64.unknown()).optional()
42090
+ var sdkSiteLayoutConfigSchema = z65.object({
42091
+ footerBlocks: z65.array(
42092
+ z65.object({
42093
+ id: z65.string().min(1).optional(),
42094
+ kind: z65.string().min(1),
42095
+ content: z65.record(z65.string(), z65.unknown()).optional()
41705
42096
  })
41706
42097
  ).optional()
41707
42098
  });
41708
- var sdkFieldSelectOptionSchema = z64.object({
41709
- value: z64.string(),
41710
- label: z64.string()
42099
+ var sdkFieldSelectOptionSchema = z65.object({
42100
+ value: z65.string(),
42101
+ label: z65.string()
41711
42102
  });
41712
- var sdkBlockFieldConfigSchema = z64.object({
41713
- options: z64.array(sdkFieldSelectOptionSchema).optional()
42103
+ var sdkBlockFieldConfigSchema = z65.object({
42104
+ options: z65.array(sdkFieldSelectOptionSchema).optional()
41714
42105
  });
41715
- var sdkBlockFieldOptionsMapSchema = z64.record(
41716
- z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
42106
+ var sdkBlockFieldOptionsMapSchema = z65.record(
42107
+ z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
41717
42108
  message: "Block ID must be 'block.*' or 'custom.*' format"
41718
42109
  }),
41719
- z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
42110
+ z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
41720
42111
  ).optional();
41721
- var sdkContentTypeTemplateConfigSchema = z64.object({
41722
- blocks: z64.array(z64.unknown())
42112
+ var sdkContentTypeTemplateConfigSchema = z65.object({
42113
+ blocks: z65.array(z65.unknown())
41723
42114
  }).passthrough();
41724
- var sdkContentTypeOrderingConfigSchema = z64.object({
41725
- mode: z64.enum(["default", "manual"]).optional()
42115
+ var sdkContentTypeOrderingConfigSchema = z65.object({
42116
+ mode: z65.enum(["default", "manual"]).optional()
41726
42117
  }).optional();
41727
- var sdkContentTypeConfigSchema = z64.object({
41728
- key: z64.string().min(1),
41729
- fields: z64.array(z64.unknown()),
42118
+ var sdkContentTypeConfigSchema = z65.object({
42119
+ key: z65.string().min(1),
42120
+ fields: z65.array(z65.unknown()),
41730
42121
  ordering: sdkContentTypeOrderingConfigSchema,
41731
42122
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
41732
42123
  }).passthrough();
41733
- var sdkContentConfigSchema = z64.object({
41734
- contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
41735
- pages: z64.array(z64.unknown()).optional(),
41736
- entries: z64.array(z64.unknown()).optional(),
41737
- navigationMenus: z64.array(z64.unknown()).optional(),
41738
- settings: z64.unknown().optional()
42124
+ var sdkContentConfigSchema = z65.object({
42125
+ contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
42126
+ pages: z65.array(z65.unknown()).optional(),
42127
+ entries: z65.array(z65.unknown()).optional(),
42128
+ navigationMenus: z65.array(z65.unknown()).optional(),
42129
+ settings: z65.unknown().optional()
41739
42130
  }).passthrough();
41740
42131
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
41741
42132
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -41750,62 +42141,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
41750
42141
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
41751
42142
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
41752
42143
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
41753
- var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
42144
+ var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
41754
42145
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
41755
42146
  });
41756
- 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 "/"' });
41757
- var sdkWorkflowManualTriggerSchema = z64.object({
41758
- type: z64.literal("manual")
42147
+ var sdkWorkflowEndpointSchema = z65.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 "/"' });
42148
+ var sdkWorkflowManualTriggerSchema = z65.object({
42149
+ type: z65.literal("manual")
41759
42150
  }).strict();
41760
- var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
42151
+ var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
41761
42152
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
41762
42153
  });
41763
- var sdkWorkflowFieldChangedConditionSchema = z64.object({
42154
+ var sdkWorkflowFieldChangedConditionSchema = z65.object({
41764
42155
  field: sdkWorkflowTriggerFieldSchema,
41765
- changed: z64.literal(true)
42156
+ changed: z65.literal(true)
41766
42157
  }).strict();
41767
- var sdkWorkflowFieldEmptyConditionSchema = z64.object({
42158
+ var sdkWorkflowFieldEmptyConditionSchema = z65.object({
41768
42159
  field: sdkWorkflowTriggerFieldSchema,
41769
- isEmpty: z64.boolean()
42160
+ isEmpty: z65.boolean()
41770
42161
  }).strict();
41771
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
41772
- type: z64.literal("entry.draft.updated"),
41773
- when: z64.array(
41774
- z64.union([
42162
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
42163
+ type: z65.literal("entry.draft.updated"),
42164
+ when: z65.array(
42165
+ z65.union([
41775
42166
  sdkWorkflowFieldChangedConditionSchema,
41776
42167
  sdkWorkflowFieldEmptyConditionSchema
41777
42168
  ])
41778
42169
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
41779
42170
  }).strict();
41780
- var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
42171
+ var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
41781
42172
  sdkWorkflowManualTriggerSchema,
41782
42173
  sdkWorkflowEntryDraftUpdatedTriggerSchema
41783
42174
  ]);
41784
- var sdkWorkflowConfirmationSchema = z64.object({
41785
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
41786
- body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
42175
+ var sdkWorkflowConfirmationSchema = z65.object({
42176
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
42177
+ body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
41787
42178
  }).strict();
41788
- var sdkWorkflowConfigSchema = z64.object({
42179
+ var sdkWorkflowConfigSchema = z65.object({
41789
42180
  id: sdkWorkflowIdSchema,
41790
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
41791
- description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
41792
- contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
42181
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
42182
+ description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
42183
+ contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
41793
42184
  endpoint: sdkWorkflowEndpointSchema,
41794
- triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
42185
+ triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
41795
42186
  confirmation: sdkWorkflowConfirmationSchema.optional()
41796
42187
  }).strict();
41797
- var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
42188
+ var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
41798
42189
  const ids = workflows.map((workflow) => workflow.id);
41799
42190
  return ids.length === new Set(ids).size;
41800
42191
  }, { message: "Workflow IDs must be unique" }).optional();
41801
- var riverbankSiteConfigInputSchema = z64.object({
41802
- siteId: z64.string().uuid(),
41803
- previewUrl: z64.string().url().optional(),
41804
- liveUrl: z64.string().url().optional(),
42192
+ var riverbankSiteConfigInputSchema = z65.object({
42193
+ siteId: z65.string().uuid(),
42194
+ previewUrl: z65.string().url().optional(),
42195
+ liveUrl: z65.string().url().optional(),
41805
42196
  theme: sdkThemeConfigSchema.optional(),
41806
42197
  styles: sdkSiteStyleConfigSchema.optional(),
41807
42198
  layout: sdkSiteLayoutConfigSchema.optional(),
41808
- customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
42199
+ customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
41809
42200
  const ids = blocks.map((b) => b.id);
41810
42201
  return ids.length === new Set(ids).size;
41811
42202
  }, { message: "Block IDs must be unique" }).optional(),
@@ -41813,50 +42204,51 @@ var riverbankSiteConfigInputSchema = z64.object({
41813
42204
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
41814
42205
  workflows: sdkWorkflowsSchema,
41815
42206
  content: sdkContentConfigSchema.optional(),
41816
- contentDir: z64.string().optional(),
41817
- sync: z64.object({
41818
- existingEntries: z64.enum(["skip", "update"]).optional()
42207
+ contentDir: z65.string().optional(),
42208
+ sync: z65.object({
42209
+ existingEntries: z65.enum(["skip", "update"]).optional()
41819
42210
  }).optional(),
41820
- deploy: z64.object({
41821
- verifyCommand: z64.string().optional(),
41822
- prebuildOutput: z64.string().optional()
42211
+ deploy: z65.object({
42212
+ verifyCommand: z65.string().optional(),
42213
+ prebuildOutput: z65.string().optional()
41823
42214
  }).optional(),
41824
- themeSource: z64.enum(["local", "cms"]).optional(),
41825
- activeTheme: z64.string().optional(),
41826
- enablePortal: z64.boolean().optional(),
42215
+ themeSource: z65.enum(["local", "cms"]).optional(),
42216
+ activeTheme: z65.string().optional(),
42217
+ enablePortal: z65.boolean().optional(),
41827
42218
  dashboard: dashboardConfigSchema.optional()
41828
42219
  }).strict();
41829
- var pushSdkConfigBodySchema = z64.object({
42220
+ var pushSdkConfigBodySchema = z65.object({
41830
42221
  config: riverbankSiteConfigInputSchema,
41831
- forceContentTypes: z64.boolean().optional()
42222
+ forceContentTypes: z65.boolean().optional(),
42223
+ mode: z65.enum(["apply", "preview"]).optional()
41832
42224
  }).strict();
41833
42225
 
41834
42226
  // ../api/src/siteOnboarding.ts
41835
- import { z as z65 } from "zod";
42227
+ import { z as z66 } from "zod";
41836
42228
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
41837
42229
  configure_appointments: {
41838
42230
  requirementId: "configure_appointments",
41839
42231
  reason: "launch_anyway"
41840
42232
  }
41841
42233
  };
41842
- var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
42234
+ var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
41843
42235
  "requirementId",
41844
42236
  [
41845
- z65.object({
41846
- requirementId: z65.literal("review_generated_site")
42237
+ z66.object({
42238
+ requirementId: z66.literal("review_generated_site")
41847
42239
  }),
41848
- z65.object({
41849
- requirementId: z65.literal(
42240
+ z66.object({
42241
+ requirementId: z66.literal(
41850
42242
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
41851
42243
  ),
41852
- overrideReason: z65.literal(
42244
+ overrideReason: z66.literal(
41853
42245
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
41854
42246
  )
41855
42247
  })
41856
42248
  ]
41857
42249
  );
41858
- var goLiveSiteRequestSchema = z65.object({
41859
- acceptExtraSiteCharge: z65.boolean().optional()
42250
+ var goLiveSiteRequestSchema = z66.object({
42251
+ acceptExtraSiteCharge: z66.boolean().optional()
41860
42252
  });
41861
42253
 
41862
42254
  // ../api/src/customerMembershipOutcomes.ts
@@ -41936,7 +42328,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
41936
42328
  ];
41937
42329
 
41938
42330
  // ../api/src/bookingVerticals.ts
41939
- import { z as z66 } from "zod";
42331
+ import { z as z67 } from "zod";
41940
42332
  var VERTICAL_IDS = [
41941
42333
  "yoga_wellness",
41942
42334
  "fitness_pt",
@@ -42101,39 +42493,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
42101
42493
  }
42102
42494
  return [...issues];
42103
42495
  }
42104
- var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
42496
+ var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
42105
42497
  const parsed = parseVerticalId(value);
42106
42498
  if (!parsed) {
42107
42499
  ctx.addIssue({
42108
- code: z66.ZodIssueCode.custom,
42500
+ code: z67.ZodIssueCode.custom,
42109
42501
  message: "Unknown booking vertical"
42110
42502
  });
42111
- return z66.NEVER;
42503
+ return z67.NEVER;
42112
42504
  }
42113
42505
  return parsed;
42114
42506
  });
42115
- var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
42507
+ var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
42116
42508
  const parsed = parseVerticalPresetId(value);
42117
42509
  if (!parsed) {
42118
42510
  ctx.addIssue({
42119
- code: z66.ZodIssueCode.custom,
42511
+ code: z67.ZodIssueCode.custom,
42120
42512
  message: "Unknown booking preset"
42121
42513
  });
42122
- return z66.NEVER;
42514
+ return z67.NEVER;
42123
42515
  }
42124
42516
  return parsed;
42125
42517
  });
42126
- var BookingVerticalConfigSchema = z66.object({
42518
+ var BookingVerticalConfigSchema = z67.object({
42127
42519
  verticalId: VerticalIdSchema.nullable(),
42128
- selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
42520
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
42129
42521
  }).transform((value, ctx) => {
42130
42522
  const resolved = resolveSiteVerticalBookingConfig(value);
42131
42523
  if (resolved.kind === "invalid") {
42132
42524
  ctx.addIssue({
42133
- code: z66.ZodIssueCode.custom,
42525
+ code: z67.ZodIssueCode.custom,
42134
42526
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
42135
42527
  });
42136
- return z66.NEVER;
42528
+ return z67.NEVER;
42137
42529
  }
42138
42530
  return resolved.config;
42139
42531
  });
@@ -42160,51 +42552,51 @@ function isRecord11(value) {
42160
42552
  }
42161
42553
 
42162
42554
  // ../api/src/appointmentSetup.ts
42163
- import { z as z67 } from "zod";
42555
+ import { z as z68 } from "zod";
42164
42556
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
42165
- var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
42166
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
42167
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
42557
+ var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
42558
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
42559
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
42168
42560
  ]);
42169
- var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
42170
- z67.object({ kind: z67.literal("none") }),
42171
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
42172
- z67.object({
42173
- kind: z67.literal("create"),
42174
- draftId: z67.string().min(1),
42175
- title: z67.string().trim().min(1),
42176
- description: z67.string().nullable(),
42177
- timezone: z67.string().trim().min(1).nullable(),
42178
- addressJson: z67.record(z67.string(), z67.unknown()),
42179
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
42561
+ var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
42562
+ z68.object({ kind: z68.literal("none") }),
42563
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
42564
+ z68.object({
42565
+ kind: z68.literal("create"),
42566
+ draftId: z68.string().min(1),
42567
+ title: z68.string().trim().min(1),
42568
+ description: z68.string().nullable(),
42569
+ timezone: z68.string().trim().min(1).nullable(),
42570
+ addressJson: z68.record(z68.string(), z68.unknown()),
42571
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
42180
42572
  })
42181
42573
  ]);
42182
- var appointmentSetupPaymentDraftSchema = z67.object({
42183
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
42184
- });
42185
- var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
42186
- z67.object({ kind: z67.literal("all_practitioners") }),
42187
- z67.object({
42188
- kind: z67.literal("selected_practitioners"),
42189
- resourceRefs: z67.array(appointmentSetupRefSchema)
42574
+ var appointmentSetupPaymentDraftSchema = z68.object({
42575
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
42576
+ });
42577
+ var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
42578
+ z68.object({ kind: z68.literal("all_practitioners") }),
42579
+ z68.object({
42580
+ kind: z68.literal("selected_practitioners"),
42581
+ resourceRefs: z68.array(appointmentSetupRefSchema)
42190
42582
  })
42191
42583
  ]);
42192
- var appointmentSetupServiceDraftSchema = z67.object({
42584
+ var appointmentSetupServiceDraftSchema = z68.object({
42193
42585
  ref: appointmentSetupRefSchema,
42194
- title: z67.string().trim().min(1),
42195
- description: z67.string().nullable(),
42196
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
42197
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42198
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42199
- priceAmount: z67.number().int().nonnegative().nullable(),
42200
- isActive: z67.boolean(),
42201
- locationType: z67.union([
42202
- z67.literal("virtual"),
42203
- z67.literal("in_person"),
42204
- z67.literal("hybrid")
42586
+ title: z68.string().trim().min(1),
42587
+ description: z68.string().nullable(),
42588
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
42589
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42590
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
42591
+ priceAmount: z68.number().int().nonnegative().nullable(),
42592
+ isActive: z68.boolean(),
42593
+ locationType: z68.union([
42594
+ z68.literal("virtual"),
42595
+ z68.literal("in_person"),
42596
+ z68.literal("hybrid")
42205
42597
  ]),
42206
42598
  venue: appointmentSetupVenueChoiceSchema,
42207
- timezone: z67.string().trim().min(1).nullable(),
42599
+ timezone: z68.string().trim().min(1).nullable(),
42208
42600
  payment: appointmentSetupPaymentDraftSchema,
42209
42601
  assignment: appointmentSetupServiceAssignmentDraftSchema
42210
42602
  }).superRefine((service, ctx) => {
@@ -42223,49 +42615,49 @@ var appointmentSetupServiceDraftSchema = z67.object({
42223
42615
  });
42224
42616
  }
42225
42617
  });
42226
- var appointmentSetupPractitionerDraftSchema = z67.object({
42618
+ var appointmentSetupPractitionerDraftSchema = z68.object({
42227
42619
  ref: appointmentSetupRefSchema,
42228
- displayName: z67.string().trim().min(1),
42229
- bio: z67.string().nullable(),
42230
- timezone: z67.string().trim().min(1),
42231
- colorHex: z67.string().nullable()
42232
- });
42233
- var appointmentSetupWeeklyWindowDraftSchema = z67.object({
42234
- weekday: z67.number().int().min(0).max(6),
42235
- startTime: z67.string(),
42236
- endTime: z67.string()
42237
- });
42238
- var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
42239
- z67.object({ kind: z67.literal("automatic_spacing") }),
42240
- z67.object({
42241
- kind: z67.literal("regular_interval"),
42242
- intervalMinutes: z67.union([
42243
- z67.literal(10),
42244
- z67.literal(15),
42245
- z67.literal(20),
42246
- z67.literal(30),
42247
- z67.literal(45),
42248
- z67.literal(60)
42620
+ displayName: z68.string().trim().min(1),
42621
+ bio: z68.string().nullable(),
42622
+ timezone: z68.string().trim().min(1),
42623
+ colorHex: z68.string().nullable()
42624
+ });
42625
+ var appointmentSetupWeeklyWindowDraftSchema = z68.object({
42626
+ weekday: z68.number().int().min(0).max(6),
42627
+ startTime: z68.string(),
42628
+ endTime: z68.string()
42629
+ });
42630
+ var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
42631
+ z68.object({ kind: z68.literal("automatic_spacing") }),
42632
+ z68.object({
42633
+ kind: z68.literal("regular_interval"),
42634
+ intervalMinutes: z68.union([
42635
+ z68.literal(10),
42636
+ z68.literal(15),
42637
+ z68.literal(20),
42638
+ z68.literal(30),
42639
+ z68.literal(45),
42640
+ z68.literal(60)
42249
42641
  ])
42250
42642
  })
42251
42643
  ]);
42252
- var appointmentSetupAvailabilityDraftSchema = z67.object({
42253
- kind: z67.literal("weekly_windows"),
42644
+ var appointmentSetupAvailabilityDraftSchema = z68.object({
42645
+ kind: z68.literal("weekly_windows"),
42254
42646
  resourceRef: appointmentSetupRefSchema,
42255
42647
  serviceRef: appointmentSetupRefSchema.nullable(),
42256
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
42648
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
42257
42649
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
42258
42650
  });
42259
42651
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
42260
42652
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
42261
- var appointmentSetupBookingNoticeSchema = z67.object({
42262
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
42263
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
42264
- });
42265
- var applyAppointmentSetupRequestSchema = z67.object({
42266
- services: z67.array(appointmentSetupServiceDraftSchema),
42267
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
42268
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
42653
+ var appointmentSetupBookingNoticeSchema = z68.object({
42654
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
42655
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
42656
+ });
42657
+ var applyAppointmentSetupRequestSchema = z68.object({
42658
+ services: z68.array(appointmentSetupServiceDraftSchema),
42659
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
42660
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
42269
42661
  bookingNotice: appointmentSetupBookingNoticeSchema
42270
42662
  });
42271
42663
 
@@ -42298,24 +42690,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
42298
42690
  ];
42299
42691
 
42300
42692
  // ../api/src/siteBanner.ts
42301
- import { z as z68 } from "zod";
42693
+ import { z as z69 } from "zod";
42302
42694
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
42303
42695
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
42304
42696
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
42305
42697
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
42306
- var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
42307
- var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
42308
- var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
42309
- var siteBannerCtaSchema = z68.object({
42310
- label: z68.string().trim().min(1),
42698
+ var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
42699
+ var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
42700
+ var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
42701
+ var siteBannerCtaSchema = z69.object({
42702
+ label: z69.string().trim().min(1),
42311
42703
  link: linkPayloadSchema
42312
42704
  });
42313
- var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
42314
- z68.object({
42315
- enabled: z68.literal(false)
42705
+ var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
42706
+ z69.object({
42707
+ enabled: z69.literal(false)
42316
42708
  }),
42317
- z68.object({
42318
- enabled: z68.literal(true),
42709
+ z69.object({
42710
+ enabled: z69.literal(true),
42319
42711
  scope: siteBannerScopeSchema,
42320
42712
  tone: siteBannerToneSchema,
42321
42713
  body: siteBannerBodySchema,
@@ -42329,7 +42721,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
42329
42721
  const analysis = analyzeSiteBannerBody(value.body);
42330
42722
  for (const issue of analysis.issues) {
42331
42723
  ctx.addIssue({
42332
- code: z68.ZodIssueCode.custom,
42724
+ code: z69.ZodIssueCode.custom,
42333
42725
  path: ["body"],
42334
42726
  message: siteBannerBodyIssueMessage(issue)
42335
42727
  });
@@ -42556,71 +42948,71 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
42556
42948
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
42557
42949
 
42558
42950
  // ../api/src/aiPlayground.ts
42559
- import { z as z69 } from "zod";
42560
- var Rfc6902PatchOp = z69.discriminatedUnion("op", [
42951
+ import { z as z70 } from "zod";
42952
+ var Rfc6902PatchOp = z70.discriminatedUnion("op", [
42561
42953
  // Standard RFC-6902 operations
42562
- z69.object({
42563
- op: z69.literal("add"),
42564
- path: z69.string(),
42565
- value: z69.unknown()
42954
+ z70.object({
42955
+ op: z70.literal("add"),
42956
+ path: z70.string(),
42957
+ value: z70.unknown()
42566
42958
  }),
42567
- z69.object({
42568
- op: z69.literal("remove"),
42569
- path: z69.string()
42959
+ z70.object({
42960
+ op: z70.literal("remove"),
42961
+ path: z70.string()
42570
42962
  }),
42571
- z69.object({
42572
- op: z69.literal("replace"),
42573
- path: z69.string(),
42574
- value: z69.unknown()
42963
+ z70.object({
42964
+ op: z70.literal("replace"),
42965
+ path: z70.string(),
42966
+ value: z70.unknown()
42575
42967
  }),
42576
- z69.object({
42577
- op: z69.literal("move"),
42578
- from: z69.string(),
42579
- path: z69.string()
42968
+ z70.object({
42969
+ op: z70.literal("move"),
42970
+ from: z70.string(),
42971
+ path: z70.string()
42580
42972
  }),
42581
- z69.object({
42582
- op: z69.literal("copy"),
42583
- from: z69.string(),
42584
- path: z69.string()
42973
+ z70.object({
42974
+ op: z70.literal("copy"),
42975
+ from: z70.string(),
42976
+ path: z70.string()
42585
42977
  }),
42586
42978
  // Block-level operations (Phase 2)
42587
- z69.object({
42588
- op: z69.literal("add_block"),
42589
- blockKind: z69.string(),
42590
- afterBlockId: z69.string().nullable(),
42591
- content: z69.record(z69.string(), z69.unknown()),
42592
- rationale: z69.string()
42979
+ z70.object({
42980
+ op: z70.literal("add_block"),
42981
+ blockKind: z70.string(),
42982
+ afterBlockId: z70.string().nullable(),
42983
+ content: z70.record(z70.string(), z70.unknown()),
42984
+ rationale: z70.string()
42593
42985
  }),
42594
- z69.object({
42595
- op: z69.literal("delete_block"),
42596
- blockId: z69.string(),
42597
- rationale: z69.string()
42986
+ z70.object({
42987
+ op: z70.literal("delete_block"),
42988
+ blockId: z70.string(),
42989
+ rationale: z70.string()
42598
42990
  }),
42599
- z69.object({
42600
- op: z69.literal("reorder_block"),
42601
- blockId: z69.string(),
42602
- afterBlockId: z69.string().nullable(),
42603
- rationale: z69.string()
42991
+ z70.object({
42992
+ op: z70.literal("reorder_block"),
42993
+ blockId: z70.string(),
42994
+ afterBlockId: z70.string().nullable(),
42995
+ rationale: z70.string()
42604
42996
  })
42605
42997
  ]);
42606
- var PlaygroundProposeRequest = z69.object({
42607
- request: z69.string().min(1).max(2e3)
42998
+ var PlaygroundProposeRequest = z70.object({
42999
+ request: z70.string().min(1).max(2e3)
42608
43000
  });
42609
- var MultiPagePatchEnvelope = z69.object({
42610
- pageId: z69.string(),
42611
- blockId: z69.string().optional(),
43001
+ var MultiPagePatchEnvelope = z70.object({
43002
+ pageId: z70.string(),
43003
+ blockId: z70.string().optional(),
42612
43004
  // Not present for page-level ops
42613
- blockKind: z69.string().optional(),
42614
- blockPurpose: z69.string().optional().nullable(),
42615
- ops: z69.array(Rfc6902PatchOp),
42616
- rationale: z69.string(),
42617
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
43005
+ blockKind: z70.string().optional(),
43006
+ blockPurpose: z70.string().optional().nullable(),
43007
+ ops: z70.array(Rfc6902PatchOp),
43008
+ rationale: z70.string(),
43009
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
42618
43010
  });
42619
- var MultiPageUpdateResponse = z69.object({
42620
- patches: z69.array(MultiPagePatchEnvelope),
42621
- assistantMessage: z69.string(),
42622
- pagesModified: z69.number(),
42623
- toolCallsUsed: z69.number()
43011
+ var MultiPageUpdateResponse = z70.object({
43012
+ patches: z70.array(MultiPagePatchEnvelope),
43013
+ assistantMessage: z70.string(),
43014
+ pagesModified: z70.number(),
43015
+ toolCallsUsed: z70.number()
42624
43016
  });
42625
43017
 
42626
43018
  // src/data/prefetchBlockData.ts
@@ -42702,7 +43094,8 @@ var loaderAdapters = {
42702
43094
  listPublicPasses,
42703
43095
  listPublicMemberships,
42704
43096
  getPublicFormById,
42705
- getPublicBookingServices
43097
+ getPublicBookingServices,
43098
+ getPublicWeeklySlotAvailability
42706
43099
  };
42707
43100
  function readStringParam(params, key) {
42708
43101
  const value = params[key];
@@ -42878,6 +43271,15 @@ async function getPublicBookingServices({ client, params }) {
42878
43271
  ids: readStringParam(params, "ids")
42879
43272
  });
42880
43273
  }
43274
+ async function getPublicWeeklySlotAvailability({ client, params }) {
43275
+ return await client.getPublicWeeklySlotAvailability({
43276
+ siteId: requireStringParam(params, "siteId", "getPublicWeeklySlotAvailability"),
43277
+ serviceId: requireStringParam(params, "serviceId", "getPublicWeeklySlotAvailability"),
43278
+ resourceId: readStringParam(params, "resourceId"),
43279
+ horizonWeeks: parsePositiveIntegerParam(params, "horizonWeeks"),
43280
+ timezone: readStringParam(params, "timezone")
43281
+ });
43282
+ }
42881
43283
  async function prefetchBlockData2(page, context, client, options) {
42882
43284
  const { customBlocks } = options ?? {};
42883
43285
  const customBlockMap = new Map(
@@ -43051,7 +43453,16 @@ function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
43051
43453
 
43052
43454
  // src/rendering/helpers/loadPage.ts
43053
43455
  async function loadPage(params) {
43054
- const { client, siteId, path, pageId, preview = false, dataLoaderOverrides, searchParams, forceSite } = params;
43456
+ const {
43457
+ client,
43458
+ siteId,
43459
+ path,
43460
+ pageId,
43461
+ preview = false,
43462
+ dataLoaderOverrides,
43463
+ searchParams,
43464
+ forceSite
43465
+ } = params;
43055
43466
  const [site, pageResponse] = await Promise.all([
43056
43467
  client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
43057
43468
  client.getPage({ siteId, path, preview })
@@ -43061,6 +43472,11 @@ async function loadPage(params) {
43061
43472
  "This path resolves to a content entry, not a page. Use loadContent() instead, which handles both pages and entries. For entries, loadContent() returns the raw entry data for custom rendering."
43062
43473
  );
43063
43474
  }
43475
+ if ("pageSurface" in pageResponse) {
43476
+ throw new Error(
43477
+ "This path resolves to a page surface, not a page. Use loadContent() instead, which handles pages, entries, and page surfaces."
43478
+ );
43479
+ }
43064
43480
  const { page: pageData } = pageResponse;
43065
43481
  const support = buildSiteRenderSupport(
43066
43482
  site,
@@ -43090,7 +43506,11 @@ async function loadPage(params) {
43090
43506
  );
43091
43507
  let resolvedData = configData;
43092
43508
  if (dataLoaderOverrides && Object.keys(dataLoaderOverrides).length > 0) {
43093
- const codeData = await executeCodeLoaders(pageOutline, prefetchContext, dataLoaderOverrides);
43509
+ const codeData = await executeCodeLoaders(
43510
+ pageOutline,
43511
+ prefetchContext,
43512
+ dataLoaderOverrides
43513
+ );
43094
43514
  resolvedData = mergeLoaderResults(configData, codeData);
43095
43515
  }
43096
43516
  return {
@@ -43110,13 +43530,17 @@ async function loadPage(params) {
43110
43530
  };
43111
43531
  }
43112
43532
 
43113
- // ../blocks/src/bindings/types.ts
43114
- var TRANSFORMS = {
43533
+ // ../field-primitives/src/bindings/index.ts
43534
+ var BINDING_TRANSFORMS = {
43115
43535
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
43116
43536
  DATE_FORMAT_SHORT: "date.formatShort",
43117
43537
  DATE_FORMAT_LONG: "date.formatLong",
43118
43538
  TEXT_INLINE_TEXT: "text.inlineText"
43119
43539
  };
43540
+ var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
43541
+
43542
+ // ../blocks/src/bindings/types.ts
43543
+ var TRANSFORMS = BINDING_TRANSFORMS;
43120
43544
  var BINDING_SOURCES = ["field", "meta", "literal", "transform", "fallback"];
43121
43545
 
43122
43546
  // ../blocks/src/bindings/index.ts
@@ -43332,7 +43756,12 @@ function isDocWrapper(value) {
43332
43756
  return isRecord3(doc) && typeof doc.type === "string" && doc.type === "doc";
43333
43757
  }
43334
43758
 
43759
+ // src/contracts/bindings.ts
43760
+ var BINDING_TRANSFORM_VALUES2 = BINDING_TRANSFORM_VALUES;
43761
+ var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES2.join(", ");
43762
+
43335
43763
  // src/rendering/helpers/bindings.ts
43764
+ var isRecord14 = isRecord3;
43336
43765
  var normalizeBindingOutput2 = normalizeBindingOutput;
43337
43766
  var applyBindingsToContent2 = applyBindingsToContent;
43338
43767
 
@@ -43378,14 +43807,30 @@ function getRejectedReason(result) {
43378
43807
  return result.reason;
43379
43808
  }
43380
43809
  async function loadContent(params) {
43381
- const { client, siteId, path, preview = false, forceSite } = params;
43810
+ const {
43811
+ client,
43812
+ siteId,
43813
+ path,
43814
+ preview = false,
43815
+ forceSite,
43816
+ contentContract = "compat"
43817
+ } = params;
43382
43818
  const [siteResult, contentResult] = await Promise.allSettled([
43383
43819
  client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
43384
- client.getPage({ siteId, path, preview })
43820
+ client.getPage({
43821
+ siteId,
43822
+ path,
43823
+ preview,
43824
+ ...contentContract === "native" ? { contentContract } : {}
43825
+ })
43385
43826
  ]);
43386
43827
  if (siteResult.status === "rejected" || contentResult.status === "rejected") {
43387
- const failures = [siteResult, contentResult].filter((result) => result.status === "rejected").map(getRejectedReason);
43388
- const upstreamFailure = failures.find((error) => !isContentLoadNotFoundError(error));
43828
+ const failures = [siteResult, contentResult].filter(
43829
+ (result) => result.status === "rejected"
43830
+ ).map(getRejectedReason);
43831
+ const upstreamFailure = failures.find(
43832
+ (error) => !isContentLoadNotFoundError(error)
43833
+ );
43389
43834
  throw upstreamFailure ?? failures[0];
43390
43835
  }
43391
43836
  const site = siteResult.value;
@@ -43399,13 +43844,7 @@ async function loadContent(params) {
43399
43844
  });
43400
43845
  }
43401
43846
  async function loadContentFromContentResponse(params) {
43402
- const {
43403
- client,
43404
- siteId,
43405
- site,
43406
- contentResponse,
43407
- preview = false
43408
- } = params;
43847
+ const { client, siteId, site, contentResponse, preview = false } = params;
43409
43848
  const support = buildSiteRenderSupport(
43410
43849
  site,
43411
43850
  collectMediaAssetSidecar(contentResponse.mediaAssets)
@@ -43466,6 +43905,77 @@ async function loadContentFromContentResponse(params) {
43466
43905
  ...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {}
43467
43906
  };
43468
43907
  }
43908
+ if (isPageSurfaceResponse(contentResponse)) {
43909
+ const pageSurfaceData = contentResponse.pageSurface;
43910
+ const pageSurface = {
43911
+ id: pageSurfaceData.id,
43912
+ routeId: pageSurfaceData.routeId,
43913
+ readinessState: pageSurfaceData.readinessState,
43914
+ subject: pageSurfaceData.subject,
43915
+ title: pageSurfaceData.title,
43916
+ slug: pageSurfaceData.slug,
43917
+ path: pageSurfaceData.path,
43918
+ status: pageSurfaceData.status,
43919
+ publishAt: pageSurfaceData.publishAt,
43920
+ content: pageSurfaceData.content,
43921
+ metaTitle: preview ? pageSurfaceData.draftMetaTitle ?? pageSurfaceData.metaTitle : pageSurfaceData.metaTitle,
43922
+ metaDescription: preview ? pageSurfaceData.draftMetaDescription ?? pageSurfaceData.metaDescription : pageSurfaceData.metaDescription,
43923
+ createdAt: pageSurfaceData.createdAt,
43924
+ updatedAt: pageSurfaceData.updatedAt,
43925
+ contentSource: pageSurfaceData.contentSource
43926
+ };
43927
+ const { templatePage, resolvedData: resolvedData2 } = await processTemplatePage({
43928
+ templates: contentResponse.templates,
43929
+ slotContent: contentResponse.surfaceSlots,
43930
+ bindingContext: {
43931
+ fields: pageSurface.content && typeof pageSurface.content === "object" ? pageSurface.content : {},
43932
+ meta: {
43933
+ id: pageSurface.id,
43934
+ title: pageSurface.title,
43935
+ slug: pageSurface.slug,
43936
+ path: pageSurface.path,
43937
+ publishAt: pageSurface.publishAt,
43938
+ status: pageSurface.status,
43939
+ createdAt: pageSurface.createdAt,
43940
+ updatedAt: pageSurface.updatedAt
43941
+ }
43942
+ },
43943
+ pageName: pageSurface.title || "Page Surface Template",
43944
+ pagePath: pageSurface.path || "/",
43945
+ pagePurpose: "page-surface-template",
43946
+ context: { siteId, preview },
43947
+ client,
43948
+ options: { customBlocks: support.customBlocks }
43949
+ });
43950
+ return {
43951
+ type: "pageSurface",
43952
+ pageSurface,
43953
+ templatePage,
43954
+ resolvedData: resolvedData2,
43955
+ bookingOfferingPresets: support.bookingOfferingPresets,
43956
+ dataContext: {
43957
+ pageSurface: {
43958
+ ...pageSurface.content ?? {},
43959
+ id: pageSurface.id,
43960
+ slug: pageSurface.slug,
43961
+ subject: pageSurface.subject,
43962
+ _pageSurfaceId: pageSurface.id,
43963
+ _pageSurfaceSlug: pageSurface.slug
43964
+ },
43965
+ subject: pageSurface.subject
43966
+ },
43967
+ theme: support.theme,
43968
+ siteId,
43969
+ ...support.customBlocks ? { customBlocks: support.customBlocks } : {},
43970
+ site: support.site,
43971
+ sdkConfig: support.sdkConfig,
43972
+ supabaseUrl: support.supabaseUrl,
43973
+ routeMap: support.routeMap,
43974
+ pagesByIdentifier: support.pagesByIdentifier,
43975
+ entriesByIdentifier: support.entriesByIdentifier,
43976
+ ...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {}
43977
+ };
43978
+ }
43469
43979
  const { page: pageData } = contentResponse;
43470
43980
  const pageRecord = pageData;
43471
43981
  const canonicalPagePath = pageData.path ?? pageRecord.path ?? "/";
@@ -43523,45 +44033,60 @@ async function loadContentFromContentResponse(params) {
43523
44033
  function isEntryResponse(response) {
43524
44034
  return "entry" in response;
43525
44035
  }
44036
+ function isPageSurfaceResponse(response) {
44037
+ return response.type === "pageSurface";
44038
+ }
43526
44039
  async function processEntryTemplate(templates, entrySlots, entry, context, client, options) {
43527
- const template = templates?.[0];
44040
+ return processTemplatePage({
44041
+ templates,
44042
+ slotContent: entrySlots,
44043
+ bindingContext: {
44044
+ fields: entry.content && typeof entry.content === "object" ? entry.content : {},
44045
+ meta: {
44046
+ id: entry.id,
44047
+ title: entry.title,
44048
+ slug: entry.slug,
44049
+ path: entry.path,
44050
+ publishAt: entry.publishAt,
44051
+ status: entry.status,
44052
+ createdAt: entry.createdAt,
44053
+ updatedAt: entry.updatedAt
44054
+ }
44055
+ },
44056
+ pageName: "Entry Template",
44057
+ pagePath: entry.path || "/",
44058
+ pagePurpose: "entry-template",
44059
+ context,
44060
+ client,
44061
+ options
44062
+ });
44063
+ }
44064
+ async function processTemplatePage(input) {
44065
+ const template = input.templates?.[0];
43528
44066
  if (!template || !template.blocks?.length) {
43529
44067
  return { templatePage: null, resolvedData: {} };
43530
44068
  }
43531
- const bindingContext = {
43532
- fields: entry.content && typeof entry.content === "object" ? entry.content : {},
43533
- meta: {
43534
- id: entry.id,
43535
- title: entry.title,
43536
- slug: entry.slug,
43537
- path: entry.path,
43538
- publishAt: entry.publishAt,
43539
- status: entry.status,
43540
- createdAt: entry.createdAt,
43541
- updatedAt: entry.updatedAt
43542
- }
43543
- };
43544
44069
  const blocks = template.blocks.flatMap(
43545
- (block) => resolveTemplateBlockSequence(block, bindingContext, entrySlots)
44070
+ (block) => resolveTemplateBlockSequence(block, input.bindingContext, input.slotContent)
43546
44071
  );
43547
44072
  if (blocks.length === 0) {
43548
44073
  return { templatePage: null, resolvedData: {} };
43549
44074
  }
43550
44075
  const templatePage = {
43551
- name: template.name || "Entry Template",
43552
- path: entry.path || "/",
43553
- purpose: "entry-template",
44076
+ name: template.name || input.pageName,
44077
+ path: input.pagePath,
44078
+ purpose: input.pagePurpose,
43554
44079
  blocks
43555
44080
  };
43556
44081
  const resolvedData = await prefetchBlockData2(
43557
44082
  templatePage,
43558
44083
  {
43559
- siteId: context.siteId,
44084
+ siteId: input.context.siteId,
43560
44085
  pageId: template.id,
43561
- previewStage: context.preview ? "preview" : "published"
44086
+ previewStage: input.context.preview ? "preview" : "published"
43562
44087
  },
43563
- client,
43564
- { customBlocks: options?.customBlocks }
44088
+ input.client,
44089
+ { customBlocks: input.options?.customBlocks }
43565
44090
  );
43566
44091
  return { templatePage, resolvedData };
43567
44092
  }
@@ -43581,7 +44106,9 @@ function resolveTemplateBlock(block, bindingContext) {
43581
44106
  }
43582
44107
  const bindings = block.bindings ?? {};
43583
44108
  const hasBindings = typeof bindings === "object" && Object.keys(bindings).length > 0;
43584
- const resolvedContent = hasBindings ? normalizeBindingOutput2(applyBindingsToContent2(baseContent, bindings, bindingContext)) : baseContent;
44109
+ const resolvedContent = hasBindings ? normalizeBindingOutput2(
44110
+ applyBindingsToContent2(baseContent, bindings, bindingContext)
44111
+ ) : baseContent;
43585
44112
  return {
43586
44113
  id: block.id,
43587
44114
  kind: block.blockKind,
@@ -43589,12 +44116,12 @@ function resolveTemplateBlock(block, bindingContext) {
43589
44116
  content: resolvedContent
43590
44117
  };
43591
44118
  }
43592
- function resolveTemplateBlockSequence(block, bindingContext, entrySlots) {
44119
+ function resolveTemplateBlockSequence(block, bindingContext, slotContent) {
43593
44120
  const slotKey = readEntrySlotKey(block);
43594
44121
  if (slotKey) {
43595
44122
  return selectBlocksForDeclaredEntrySlot({
43596
44123
  declaredSlotKey: slotKey,
43597
- entrySlots: entrySlots ?? []
44124
+ entrySlots: slotContent ?? []
43598
44125
  }).map(mapEntrySlotBlock);
43599
44126
  }
43600
44127
  if (block.blockKind === SYSTEM_ENTRY_SLOT_BLOCK_KIND) {
@@ -43616,7 +44143,7 @@ function mapEntrySlotBlock(block) {
43616
44143
  kind: block.kind,
43617
44144
  purpose: block.purpose,
43618
44145
  orderIndex: block.orderIndex ?? null,
43619
- content: normalizeBindingOutput2(block.content ?? {}),
44146
+ content: normalizeEntrySlotBlockContent(block.content),
43620
44147
  draftContent: normalizeNullableEntrySlotContent(block.draftContent),
43621
44148
  publishedContent: normalizeNullableEntrySlotContent(block.publishedContent)
43622
44149
  };
@@ -43629,7 +44156,11 @@ function mapEntrySlotBlock(block) {
43629
44156
  };
43630
44157
  }
43631
44158
  function normalizeNullableEntrySlotContent(content) {
43632
- return content == null ? null : normalizeBindingOutput2(content);
44159
+ return content == null ? null : normalizeEntrySlotBlockContent(content);
44160
+ }
44161
+ function normalizeEntrySlotBlockContent(content) {
44162
+ const normalized = normalizeBindingOutput2(content ?? {});
44163
+ return isRecord14(normalized) ? normalized : {};
43633
44164
  }
43634
44165
  export {
43635
44166
  createRiverbankClient,