@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
@@ -1044,6 +1044,94 @@ var ENDPOINT_DEFINITIONS = {
1044
1044
  responseKind: "json",
1045
1045
  errors: ["resource:not_found", "server:internal_error"]
1046
1046
  },
1047
+ listAppointmentReservations: {
1048
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1049
+ method: "GET",
1050
+ auth: "user",
1051
+ responseKind: "json",
1052
+ errors: []
1053
+ },
1054
+ createAppointmentReservation: {
1055
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1056
+ method: "POST",
1057
+ auth: "user",
1058
+ responseKind: "json",
1059
+ errors: [
1060
+ "validation:invalid_input",
1061
+ "resource:not_found",
1062
+ "resource:conflict",
1063
+ "server:internal_error"
1064
+ ]
1065
+ },
1066
+ getAppointmentReservation: {
1067
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1068
+ method: "GET",
1069
+ auth: "user",
1070
+ responseKind: "json",
1071
+ errors: ["resource:not_found", "server:internal_error"]
1072
+ },
1073
+ updateAppointmentReservation: {
1074
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1075
+ method: "PUT",
1076
+ auth: "user",
1077
+ responseKind: "json",
1078
+ errors: [
1079
+ "validation:invalid_input",
1080
+ "resource:not_found",
1081
+ "resource:conflict",
1082
+ "server:internal_error"
1083
+ ]
1084
+ },
1085
+ pauseAppointmentReservation: {
1086
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1087
+ method: "POST",
1088
+ auth: "user",
1089
+ responseKind: "json",
1090
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1091
+ },
1092
+ resumeAppointmentReservation: {
1093
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1094
+ method: "POST",
1095
+ auth: "user",
1096
+ responseKind: "json",
1097
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1098
+ },
1099
+ endAppointmentReservation: {
1100
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1101
+ method: "POST",
1102
+ auth: "user",
1103
+ responseKind: "json",
1104
+ errors: [
1105
+ "validation:invalid_input",
1106
+ "resource:not_found",
1107
+ "resource:conflict",
1108
+ "server:internal_error"
1109
+ ]
1110
+ },
1111
+ previewAppointmentReservationRun: {
1112
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1113
+ method: "POST",
1114
+ auth: "user",
1115
+ responseKind: "json",
1116
+ errors: [
1117
+ "validation:invalid_input",
1118
+ "resource:not_found",
1119
+ "resource:conflict",
1120
+ "server:internal_error"
1121
+ ]
1122
+ },
1123
+ createAppointmentReservationRun: {
1124
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1125
+ method: "POST",
1126
+ auth: "user",
1127
+ responseKind: "json",
1128
+ errors: [
1129
+ "validation:invalid_input",
1130
+ "resource:not_found",
1131
+ "resource:conflict",
1132
+ "server:internal_error"
1133
+ ]
1134
+ },
1047
1135
  createTeamMemberProfile: {
1048
1136
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1049
1137
  method: "POST",
@@ -3500,6 +3588,18 @@ var ENDPOINT_DEFINITIONS = {
3500
3588
  responseKind: "json",
3501
3589
  errors: ["validation:invalid_input", "server:internal_error"]
3502
3590
  },
3591
+ resolveRouteDecision: {
3592
+ path: "/sites/{siteId}/route-decision",
3593
+ method: "GET",
3594
+ tags: [
3595
+ TAG_TEMPLATES.siteRoutableContent,
3596
+ TAG_TEMPLATES.siteRedirects,
3597
+ TAG_TEMPLATES.siteRouteOutcomes
3598
+ ],
3599
+ auth: "public",
3600
+ responseKind: "json",
3601
+ errors: ["validation:invalid_input", "server:internal_error"]
3602
+ },
3503
3603
  getPageByPath: {
3504
3604
  path: "/sites/{siteId}/pages",
3505
3605
  method: "GET",
@@ -3638,6 +3738,15 @@ var ENDPOINT_DEFINITIONS = {
3638
3738
  auth: "public",
3639
3739
  responseKind: "json"
3640
3740
  },
3741
+ getPublicWeeklySlotAvailability: {
3742
+ path: "/public/bookings/weekly-slot-availability",
3743
+ method: "GET",
3744
+ revalidate: 60,
3745
+ tags: ["site-{siteId}"],
3746
+ auth: "public",
3747
+ responseKind: "json",
3748
+ errors: []
3749
+ },
3641
3750
  createPublicBookingAppointment: {
3642
3751
  path: "/public/bookings/appointments",
3643
3752
  method: "POST",
@@ -6795,7 +6904,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6795
6904
  );
6796
6905
 
6797
6906
  // ../api/src/sdkConfig/contracts.ts
6798
- import { z as z63 } from "zod";
6907
+ import { z as z64 } from "zod";
6799
6908
 
6800
6909
  // ../blocks/src/system/manifest/augmentManifest.ts
6801
6910
  function augmentManifest(manifest) {
@@ -6964,10 +7073,20 @@ var repeatSchema = z3.object({
6964
7073
  direction: z3.enum(["asc", "desc"]).default("asc")
6965
7074
  }).optional()
6966
7075
  });
7076
+ var conditionalAuthoringPresenceSchema = z3.discriminatedUnion("kind", [
7077
+ z3.object({ kind: z3.literal("visitor-only") }),
7078
+ z3.object({
7079
+ kind: z3.literal("recover-empty-when-active"),
7080
+ placeholder: z3.string().min(1).optional()
7081
+ })
7082
+ ]);
6967
7083
  var conditionSchema = z3.object({
6968
7084
  when: bindingSchema,
6969
7085
  equals: z3.unknown().optional(),
6970
- not: z3.boolean().default(false)
7086
+ not: z3.boolean().default(false),
7087
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
7088
+ kind: "visitor-only"
7089
+ })
6971
7090
  });
6972
7091
  var dataScopeSchema = z3.object({
6973
7092
  name: z3.string().min(1),
@@ -18033,7 +18152,8 @@ function when(path, options) {
18033
18152
  $when: {
18034
18153
  when: { from: path },
18035
18154
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
18036
- ...options?.not ? { not: true } : {}
18155
+ ...options?.not ? { not: true } : {},
18156
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
18037
18157
  }
18038
18158
  });
18039
18159
  }
@@ -27874,77 +27994,247 @@ var appointmentBookingBlockDefinition = {
27874
27994
  }
27875
27995
  };
27876
27996
 
27997
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
27998
+ import { z as z39 } from "zod";
27999
+ var weeklySlotAvailabilityManifest = createBlockManifest({
28000
+ id: "block.weekly-slot-availability",
28001
+ version: "1.0.0",
28002
+ title: "Weekly Slot Availability",
28003
+ titleSource: "heading",
28004
+ description: "Shows available recurring appointment slot patterns",
28005
+ skipSectionStyles: true,
28006
+ additionalFields: [
28007
+ {
28008
+ id: "serviceId",
28009
+ type: "reference",
28010
+ label: "Appointment service",
28011
+ description: "Choose which appointment service to show availability for",
28012
+ required: true,
28013
+ referenceKind: "appointmentService",
28014
+ allowManualEntry: false,
28015
+ ui: { intent: "behavior" }
28016
+ },
28017
+ {
28018
+ id: "resourceId",
28019
+ type: "reference",
28020
+ label: "Appointment resource",
28021
+ description: "Optionally narrow the availability to one practitioner or room",
28022
+ required: false,
28023
+ referenceKind: "appointmentResource",
28024
+ allowManualEntry: false,
28025
+ ui: { intent: "behavior" }
28026
+ },
28027
+ {
28028
+ id: "horizonWeeks",
28029
+ type: "select",
28030
+ label: "Look ahead",
28031
+ required: false,
28032
+ multiple: false,
28033
+ defaultValue: "4",
28034
+ options: [
28035
+ { value: "1", label: "1 week" },
28036
+ { value: "2", label: "2 weeks" },
28037
+ { value: "4", label: "4 weeks" }
28038
+ ],
28039
+ ui: { intent: "behavior" }
28040
+ },
28041
+ {
28042
+ id: "timezone",
28043
+ type: "text",
28044
+ label: "Timezone",
28045
+ description: "Leave blank to use the visitor timezone when the block loads",
28046
+ required: false,
28047
+ multiline: false,
28048
+ defaultValue: "",
28049
+ maxLength: 64,
28050
+ ui: { intent: "behavior" }
28051
+ },
28052
+ {
28053
+ id: "heading",
28054
+ type: "text",
28055
+ label: "Heading",
28056
+ required: false,
28057
+ multiline: false,
28058
+ defaultValue: "Weekly availability"
28059
+ },
28060
+ {
28061
+ id: "description",
28062
+ type: "richText",
28063
+ label: "Description",
28064
+ required: false
28065
+ },
28066
+ {
28067
+ id: "emptyMessage",
28068
+ type: "text",
28069
+ label: "Empty message",
28070
+ required: false,
28071
+ multiline: true,
28072
+ defaultValue: "No regular weekly openings are currently available.",
28073
+ maxLength: 180
28074
+ },
28075
+ {
28076
+ id: "ctaText",
28077
+ type: "text",
28078
+ label: "Enquiry button text",
28079
+ required: false,
28080
+ multiline: false,
28081
+ defaultValue: "Enquire about this slot",
28082
+ maxLength: 60
28083
+ },
28084
+ {
28085
+ id: "ctaUrl",
28086
+ type: "url",
28087
+ label: "Enquiry URL",
28088
+ required: false,
28089
+ ui: { intent: "behavior" }
28090
+ },
28091
+ sectionStylesField({
28092
+ id: "_sectionStyles",
28093
+ label: "Section styles"
28094
+ })
28095
+ ],
28096
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
28097
+ behaviours: {
28098
+ supportsThemeSwitching: true,
28099
+ inlineEditing: false,
28100
+ animation: false,
28101
+ paletteHidden: false
28102
+ },
28103
+ category: "interactive",
28104
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
28105
+ icon: "CalendarDays",
28106
+ layout: [
28107
+ styledSection({
28108
+ children: sectionContainer([
28109
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
28110
+ richText({}, bind("content.description"), when("content.description")),
28111
+ el(
28112
+ "weekly-slot-availability",
28113
+ withApiBindings({
28114
+ serviceId: { $bind: { from: "content.serviceId" } },
28115
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
28116
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28117
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
28118
+ availability: { $bind: { from: "data.availability", fallback: null } },
28119
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
28120
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
28121
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
28122
+ })
28123
+ )
28124
+ ], {
28125
+ gap: "lg"
28126
+ }),
28127
+ baseClass: "",
28128
+ spacing: "spacious"
28129
+ })
28130
+ ]
28131
+ });
28132
+ var weeklySlotAvailabilityOptionSchema = z39.object({
28133
+ id: z39.string(),
28134
+ resourceId: z39.string(),
28135
+ weekday: z39.number(),
28136
+ weekdayLabel: z39.string(),
28137
+ startTime: z39.string(),
28138
+ endTime: z39.string(),
28139
+ nextDate: z39.string(),
28140
+ availableWeeks: z39.number()
28141
+ });
28142
+ var weeklySlotAvailabilityDataSchema = z39.object({
28143
+ slots: z39.array(weeklySlotAvailabilityOptionSchema),
28144
+ horizonWeeks: z39.number(),
28145
+ timezone: z39.string(),
28146
+ startDate: z39.string(),
28147
+ endDate: z39.string()
28148
+ });
28149
+ var weeklySlotAvailabilityBlockDefinition = {
28150
+ manifest: weeklySlotAvailabilityManifest,
28151
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
28152
+ dataLoaders: {
28153
+ availability: {
28154
+ endpoint: "getPublicWeeklySlotAvailability",
28155
+ params: {
28156
+ siteId: { $bind: { from: "$root.siteId" } },
28157
+ serviceId: { $bind: { from: "content.serviceId" } },
28158
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
28159
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
28160
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
28161
+ },
28162
+ mode: "server"
28163
+ }
28164
+ }
28165
+ };
28166
+
27877
28167
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27878
- import { z as z43 } from "zod";
28168
+ import { z as z44 } from "zod";
27879
28169
 
27880
28170
  // ../blocks/src/lib/media.ts
27881
- import z39 from "zod";
28171
+ import z40 from "zod";
27882
28172
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
27883
28173
  "document",
27884
28174
  "spreadsheet",
27885
28175
  "archive",
27886
28176
  "audio"
27887
28177
  ];
27888
- var hotspotSchema2 = z39.object({
27889
- x: z39.number().min(0).max(1),
27890
- y: z39.number().min(0).max(1),
27891
- radius: z39.number().optional()
27892
- });
27893
- var rotationSchema2 = z39.union([z39.literal(0), z39.literal(90), z39.literal(180), z39.literal(270)]);
27894
- var rectSchema2 = z39.tuple([z39.number(), z39.number(), z39.number(), z39.number()]);
27895
- var aspectCropSchema2 = z39.object({
27896
- aspect: z39.preprocess((value) => value == null ? void 0 : value, z39.string().optional()),
27897
- rect: z39.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
27898
- hotspot: z39.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
27899
- rotation: z39.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
27900
- });
27901
- var transformSchema2 = z39.object({
27902
- aspectCrops: z39.preprocess((value) => {
28178
+ var hotspotSchema2 = z40.object({
28179
+ x: z40.number().min(0).max(1),
28180
+ y: z40.number().min(0).max(1),
28181
+ radius: z40.number().optional()
28182
+ });
28183
+ var rotationSchema2 = z40.union([z40.literal(0), z40.literal(90), z40.literal(180), z40.literal(270)]);
28184
+ var rectSchema2 = z40.tuple([z40.number(), z40.number(), z40.number(), z40.number()]);
28185
+ var aspectCropSchema2 = z40.object({
28186
+ aspect: z40.preprocess((value) => value == null ? void 0 : value, z40.string().optional()),
28187
+ rect: z40.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
28188
+ hotspot: z40.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
28189
+ rotation: z40.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
28190
+ });
28191
+ var transformSchema2 = z40.object({
28192
+ aspectCrops: z40.preprocess((value) => {
27903
28193
  if (!value || typeof value !== "object" || Array.isArray(value)) {
27904
28194
  return void 0;
27905
28195
  }
27906
28196
  return value;
27907
- }, z39.record(z39.string(), aspectCropSchema2.catch({}))).optional(),
28197
+ }, z40.record(z40.string(), aspectCropSchema2.catch({}))).optional(),
27908
28198
  rect: rectSchema2.optional(),
27909
28199
  hotspot: hotspotSchema2.optional(),
27910
28200
  rotation: rotationSchema2.optional()
27911
28201
  });
27912
- var mediaPosterSchema = z39.discriminatedUnion("tag", [
27913
- z39.object({
27914
- tag: z39.literal("storage"),
27915
- assetId: z39.string().optional(),
27916
- storageBucket: z39.string().min(1),
27917
- storagePath: z39.string().min(1)
28202
+ var mediaPosterSchema = z40.discriminatedUnion("tag", [
28203
+ z40.object({
28204
+ tag: z40.literal("storage"),
28205
+ assetId: z40.string().optional(),
28206
+ storageBucket: z40.string().min(1),
28207
+ storagePath: z40.string().min(1)
27918
28208
  }),
27919
- z39.object({
27920
- tag: z39.literal("external-src"),
27921
- assetId: z39.string().optional(),
27922
- src: z39.string().url()
28209
+ z40.object({
28210
+ tag: z40.literal("external-src"),
28211
+ assetId: z40.string().optional(),
28212
+ src: z40.string().url()
27923
28213
  })
27924
28214
  ]);
27925
- var mediaBaseSchema = z39.object({
27926
- purpose: z39.string().optional(),
27927
- placeholder: z39.boolean().default(true).optional(),
27928
- assetId: z39.string().optional(),
27929
- identifier: z39.string().optional(),
27930
- src: z39.string().optional(),
27931
- alt: z39.string().optional(),
27932
- filename: z39.string().optional(),
27933
- mimeType: z39.string().optional(),
27934
- width: z39.number().optional(),
27935
- height: z39.number().optional(),
27936
- storageBucket: z39.string().optional(),
27937
- storagePath: z39.string().optional(),
28215
+ var mediaBaseSchema = z40.object({
28216
+ purpose: z40.string().optional(),
28217
+ placeholder: z40.boolean().default(true).optional(),
28218
+ assetId: z40.string().optional(),
28219
+ identifier: z40.string().optional(),
28220
+ src: z40.string().optional(),
28221
+ alt: z40.string().optional(),
28222
+ filename: z40.string().optional(),
28223
+ mimeType: z40.string().optional(),
28224
+ width: z40.number().optional(),
28225
+ height: z40.number().optional(),
28226
+ storageBucket: z40.string().optional(),
28227
+ storagePath: z40.string().optional(),
27938
28228
  poster: mediaPosterSchema.optional(),
27939
28229
  transform: transformSchema2.optional()
27940
28230
  });
27941
- var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
27942
- var videoMediaSchema = mediaBaseSchema.extend({ type: z39.literal("video") });
27943
- var audioMediaSchema = mediaBaseSchema.extend({ type: z39.literal("audio") });
27944
- var documentMediaSchema = mediaBaseSchema.extend({ type: z39.literal("document") });
27945
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z39.literal("spreadsheet") });
27946
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z39.literal("archive") });
27947
- var mediaSchema2 = z39.discriminatedUnion("type", [
28231
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z40.literal("image") });
28232
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z40.literal("video") });
28233
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z40.literal("audio") });
28234
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z40.literal("document") });
28235
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z40.literal("spreadsheet") });
28236
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z40.literal("archive") });
28237
+ var mediaSchema2 = z40.discriminatedUnion("type", [
27948
28238
  imageMediaSchema,
27949
28239
  videoMediaSchema,
27950
28240
  audioMediaSchema,
@@ -27954,372 +28244,372 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27954
28244
  ]);
27955
28245
 
27956
28246
  // ../blocks/src/system/manifest/richTextSchema.ts
27957
- import { z as z40 } from "zod";
27958
- var TipTapMarkSchema = z40.object({
27959
- type: z40.string(),
27960
- attrs: z40.record(z40.string(), z40.unknown()).optional()
27961
- });
27962
- var TipTapNodeSchema = z40.lazy(
27963
- () => z40.object({
27964
- type: z40.string(),
27965
- content: z40.array(TipTapNodeSchema).optional(),
27966
- text: z40.string().optional(),
27967
- attrs: z40.record(z40.string(), z40.unknown()).optional(),
27968
- marks: z40.array(TipTapMarkSchema).optional()
28247
+ import { z as z41 } from "zod";
28248
+ var TipTapMarkSchema = z41.object({
28249
+ type: z41.string(),
28250
+ attrs: z41.record(z41.string(), z41.unknown()).optional()
28251
+ });
28252
+ var TipTapNodeSchema = z41.lazy(
28253
+ () => z41.object({
28254
+ type: z41.string(),
28255
+ content: z41.array(TipTapNodeSchema).optional(),
28256
+ text: z41.string().optional(),
28257
+ attrs: z41.record(z41.string(), z41.unknown()).optional(),
28258
+ marks: z41.array(TipTapMarkSchema).optional()
27969
28259
  })
27970
28260
  );
27971
- var RichTextValueSchema = z40.union([
28261
+ var RichTextValueSchema = z41.union([
27972
28262
  // Canonical: TipTap document directly
27973
28263
  TipTapNodeSchema,
27974
28264
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
27975
- z40.object({
28265
+ z41.object({
27976
28266
  doc: TipTapNodeSchema
27977
28267
  })
27978
28268
  ]);
27979
- var RichTextDocSchema = z40.object({
27980
- type: z40.literal("doc"),
27981
- content: z40.array(TipTapNodeSchema)
28269
+ var RichTextDocSchema = z41.object({
28270
+ type: z41.literal("doc"),
28271
+ content: z41.array(TipTapNodeSchema)
27982
28272
  });
27983
28273
 
27984
28274
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27985
- import { z as z41 } from "zod";
27986
- var bookingDepositRefundPolicySchema = z41.enum([
28275
+ import { z as z42 } from "zod";
28276
+ var bookingDepositRefundPolicySchema = z42.enum([
27987
28277
  "refundable",
27988
28278
  "non_refundable"
27989
28279
  ]);
27990
- var bookingInstalmentPlanSchema = z41.union([
27991
- z41.object({
27992
- kind: z41.literal("deposit_plus_one_remainder"),
27993
- depositAmountCents: z41.number().int().min(0),
28280
+ var bookingInstalmentPlanSchema = z42.union([
28281
+ z42.object({
28282
+ kind: z42.literal("deposit_plus_one_remainder"),
28283
+ depositAmountCents: z42.number().int().min(0),
27994
28284
  depositRefundability: bookingDepositRefundPolicySchema,
27995
- remainderDueCount: z41.number().int().positive(),
27996
- intervalUnit: z41.enum(["day", "week", "month"])
28285
+ remainderDueCount: z42.number().int().positive(),
28286
+ intervalUnit: z42.enum(["day", "week", "month"])
27997
28287
  }),
27998
- z41.object({
27999
- kind: z41.literal("deposit_plus_scheduled_instalments"),
28000
- depositAmountCents: z41.number().int().min(0),
28288
+ z42.object({
28289
+ kind: z42.literal("deposit_plus_scheduled_instalments"),
28290
+ depositAmountCents: z42.number().int().min(0),
28001
28291
  depositRefundability: bookingDepositRefundPolicySchema,
28002
- instalmentCount: z41.number().int().positive(),
28003
- intervalCount: z41.number().int().positive(),
28004
- intervalUnit: z41.enum(["day", "week", "month"])
28292
+ instalmentCount: z42.number().int().positive(),
28293
+ intervalCount: z42.number().int().positive(),
28294
+ intervalUnit: z42.enum(["day", "week", "month"])
28005
28295
  }),
28006
- z41.object({
28007
- kind: z41.literal("equal_scheduled_instalments"),
28008
- instalmentCount: z41.number().int().positive(),
28009
- intervalCount: z41.number().int().positive(),
28010
- intervalUnit: z41.enum(["day", "week", "month"])
28296
+ z42.object({
28297
+ kind: z42.literal("equal_scheduled_instalments"),
28298
+ instalmentCount: z42.number().int().positive(),
28299
+ intervalCount: z42.number().int().positive(),
28300
+ intervalUnit: z42.enum(["day", "week", "month"])
28011
28301
  })
28012
28302
  ]);
28013
- var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28014
- z41.object({
28015
- kind: z41.literal("relative_to_start_date"),
28016
- daysBeforeStart: z41.number().int().positive()
28303
+ var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
28304
+ z42.object({
28305
+ kind: z42.literal("relative_to_start_date"),
28306
+ daysBeforeStart: z42.number().int().positive()
28017
28307
  }),
28018
- z41.object({
28019
- kind: z41.literal("fixed_calendar_date"),
28020
- dueAt: z41.string().datetime()
28308
+ z42.object({
28309
+ kind: z42.literal("fixed_calendar_date"),
28310
+ dueAt: z42.string().datetime()
28021
28311
  })
28022
28312
  ]);
28023
- var bookingFlexibleBalanceConfigSchema = z41.object({
28024
- upfrontAmountCents: z41.number().int().min(0),
28313
+ var bookingFlexibleBalanceConfigSchema = z42.object({
28314
+ upfrontAmountCents: z42.number().int().min(0),
28025
28315
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
28026
28316
  depositRefundability: bookingDepositRefundPolicySchema
28027
28317
  });
28028
- var blockBookingPaymentCollectionOptionSchema = z41.union([
28029
- z41.object({
28030
- kind: z41.literal("upfront")
28318
+ var blockBookingPaymentCollectionOptionSchema = z42.union([
28319
+ z42.object({
28320
+ kind: z42.literal("upfront")
28031
28321
  }),
28032
- z41.object({
28033
- kind: z41.literal("deferred_manual")
28322
+ z42.object({
28323
+ kind: z42.literal("deferred_manual")
28034
28324
  }),
28035
- z41.object({
28036
- kind: z41.literal("instalment_plan"),
28325
+ z42.object({
28326
+ kind: z42.literal("instalment_plan"),
28037
28327
  plan: bookingInstalmentPlanSchema
28038
28328
  }),
28039
- z41.object({
28040
- kind: z41.literal("flexible_balance"),
28329
+ z42.object({
28330
+ kind: z42.literal("flexible_balance"),
28041
28331
  config: bookingFlexibleBalanceConfigSchema
28042
28332
  })
28043
28333
  ]);
28044
- var blockBookingPaymentTermsSchema = z41.object({
28045
- allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
28334
+ var blockBookingPaymentTermsSchema = z42.object({
28335
+ allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
28046
28336
  });
28047
28337
 
28048
28338
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
28049
- import { z as z42 } from "zod";
28050
- var courseVenueSchema = z42.object({
28051
- id: z42.string(),
28052
- name: z42.string(),
28053
- address: z42.string().nullable()
28054
- });
28055
- var courseSessionSchema = z42.object({
28056
- id: z42.string(),
28057
- startsAt: z42.string(),
28058
- endsAt: z42.string(),
28059
- timeZone: z42.string(),
28060
- capacityOverride: z42.number().nullable().optional(),
28061
- overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28062
- });
28063
- var courseTeamMemberSummarySchema = z42.object({
28064
- id: z42.string(),
28065
- name: z42.string(),
28066
- roleLabel: z42.string().nullable(),
28067
- summary: z42.string().nullable(),
28068
- profilePath: z42.string().nullable()
28069
- });
28070
- var coursePricingOptionSchema = z42.object({
28071
- id: z42.string(),
28072
- name: z42.string(),
28073
- description: z42.string().nullable(),
28074
- priceAmount: z42.number(),
28075
- isActive: z42.boolean(),
28076
- sortOrder: z42.number(),
28077
- capacityLimit: z42.number().nullable(),
28078
- saleStartsAt: z42.string().nullable(),
28079
- saleEndsAt: z42.string().nullable(),
28080
- attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28081
- });
28082
- var coursePricingSchema = z42.object({
28083
- bookingRequirement: z42.enum(["none", "required"]),
28084
- pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
28085
- currency: z42.string(),
28086
- singlePriceAmount: z42.number().nullable(),
28087
- slidingMinAmount: z42.number().nullable().optional(),
28088
- slidingMaxAmount: z42.number().nullable().optional(),
28089
- slidingSuggestedAmount: z42.number().nullable().optional(),
28339
+ import { z as z43 } from "zod";
28340
+ var courseVenueSchema = z43.object({
28341
+ id: z43.string(),
28342
+ name: z43.string(),
28343
+ address: z43.string().nullable()
28344
+ });
28345
+ var courseSessionSchema = z43.object({
28346
+ id: z43.string(),
28347
+ startsAt: z43.string(),
28348
+ endsAt: z43.string(),
28349
+ timeZone: z43.string(),
28350
+ capacityOverride: z43.number().nullable().optional(),
28351
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28352
+ });
28353
+ var courseTeamMemberSummarySchema = z43.object({
28354
+ id: z43.string(),
28355
+ name: z43.string(),
28356
+ roleLabel: z43.string().nullable(),
28357
+ summary: z43.string().nullable(),
28358
+ profilePath: z43.string().nullable()
28359
+ });
28360
+ var coursePricingOptionSchema = z43.object({
28361
+ id: z43.string(),
28362
+ name: z43.string(),
28363
+ description: z43.string().nullable(),
28364
+ priceAmount: z43.number(),
28365
+ isActive: z43.boolean(),
28366
+ sortOrder: z43.number(),
28367
+ capacityLimit: z43.number().nullable(),
28368
+ saleStartsAt: z43.string().nullable(),
28369
+ saleEndsAt: z43.string().nullable(),
28370
+ attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
28371
+ });
28372
+ var coursePricingSchema = z43.object({
28373
+ bookingRequirement: z43.enum(["none", "required"]),
28374
+ pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
28375
+ currency: z43.string(),
28376
+ singlePriceAmount: z43.number().nullable(),
28377
+ slidingMinAmount: z43.number().nullable().optional(),
28378
+ slidingMaxAmount: z43.number().nullable().optional(),
28379
+ slidingSuggestedAmount: z43.number().nullable().optional(),
28090
28380
  paymentTerms: blockBookingPaymentTermsSchema,
28091
- options: z42.array(coursePricingOptionSchema)
28092
- });
28093
- var publicCourseSchema = z42.object({
28094
- id: z42.string(),
28095
- title: z42.string(),
28096
- slug: z42.string(),
28097
- description: z42.unknown().nullable(),
28098
- teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28099
- enrollmentOpen: z42.boolean(),
28381
+ options: z43.array(coursePricingOptionSchema)
28382
+ });
28383
+ var publicCourseSchema = z43.object({
28384
+ id: z43.string(),
28385
+ title: z43.string(),
28386
+ slug: z43.string(),
28387
+ description: z43.unknown().nullable(),
28388
+ teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
28389
+ enrollmentOpen: z43.boolean(),
28100
28390
  pricing: coursePricingSchema.optional(),
28101
- priceCents: z42.number().nullable(),
28102
- currency: z42.string(),
28391
+ priceCents: z43.number().nullable(),
28392
+ currency: z43.string(),
28103
28393
  paymentTerms: blockBookingPaymentTermsSchema,
28104
- enrollmentCapacity: z42.number().nullable(),
28105
- acceptsMemberships: z42.boolean(),
28106
- status: z42.enum(["active", "draft", "cancelled"]),
28107
- sessionsCount: z42.number(),
28108
- enrolledCount: z42.number(),
28109
- availableSpots: z42.number().nullable(),
28110
- sessions: z42.array(courseSessionSchema),
28394
+ enrollmentCapacity: z43.number().nullable(),
28395
+ acceptsMemberships: z43.boolean(),
28396
+ status: z43.enum(["active", "draft", "cancelled"]),
28397
+ sessionsCount: z43.number(),
28398
+ enrolledCount: z43.number(),
28399
+ availableSpots: z43.number().nullable(),
28400
+ sessions: z43.array(courseSessionSchema),
28111
28401
  venue: courseVenueSchema.nullable(),
28112
- contentEntryId: z42.string().nullable()
28402
+ contentEntryId: z43.string().nullable()
28113
28403
  });
28114
- var publicCoursesArraySchema = z42.array(publicCourseSchema);
28404
+ var publicCoursesArraySchema = z43.array(publicCourseSchema);
28115
28405
 
28116
28406
  // ../blocks/src/system/blocks/events/shared/schemas.ts
28117
- var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28118
- var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28119
- var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28120
- var publicEventDestinationSchema = z43.discriminatedUnion("kind", [
28121
- z43.object({
28122
- kind: z43.literal("native"),
28407
+ var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
28408
+ var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
28409
+ var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
28410
+ var publicEventDestinationSchema = z44.discriminatedUnion("kind", [
28411
+ z44.object({
28412
+ kind: z44.literal("native"),
28123
28413
  mode: eventDestinationModeSchema,
28124
- path: z43.string()
28414
+ path: z44.string()
28125
28415
  }),
28126
- z43.object({
28127
- kind: z43.literal("external"),
28128
- url: z43.string(),
28129
- label: z43.string()
28416
+ z44.object({
28417
+ kind: z44.literal("external"),
28418
+ url: z44.string(),
28419
+ label: z44.string()
28130
28420
  })
28131
28421
  ]);
28132
- var eventVenueSchema = z43.object({
28133
- id: z43.string(),
28134
- name: z43.string(),
28135
- address: z43.string().nullable(),
28136
- location: z43.object({
28137
- lat: z43.number(),
28138
- lng: z43.number()
28422
+ var eventVenueSchema = z44.object({
28423
+ id: z44.string(),
28424
+ name: z44.string(),
28425
+ address: z44.string().nullable(),
28426
+ location: z44.object({
28427
+ lat: z44.number(),
28428
+ lng: z44.number()
28139
28429
  }).nullable()
28140
28430
  });
28141
- var eventCategorySchema = z43.object({
28142
- id: z43.string(),
28143
- name: z43.string(),
28144
- color: z43.string().nullable()
28145
- });
28146
- var pricingTypeSchema = z43.enum(["free", "paid", "external"]);
28147
- var accessRestrictionSchema = z43.enum(["none", "category"]);
28148
- var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28149
- var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28150
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28151
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28152
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28153
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28431
+ var eventCategorySchema = z44.object({
28432
+ id: z44.string(),
28433
+ name: z44.string(),
28434
+ color: z44.string().nullable()
28435
+ });
28436
+ var pricingTypeSchema = z44.enum(["free", "paid", "external"]);
28437
+ var accessRestrictionSchema = z44.enum(["none", "category"]);
28438
+ var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
28439
+ var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
28440
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28441
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28442
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28443
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28154
28444
  ]);
28155
- var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28156
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28157
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28158
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28159
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28160
- z43.object({
28161
- kind: z43.literal("mixed"),
28162
- paidFromAmount: z43.number(),
28163
- paidToAmount: z43.number(),
28164
- currency: z43.string()
28445
+ var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
28446
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28447
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28448
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28449
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28450
+ z44.object({
28451
+ kind: z44.literal("mixed"),
28452
+ paidFromAmount: z44.number(),
28453
+ paidToAmount: z44.number(),
28454
+ currency: z44.string()
28165
28455
  }),
28166
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28167
- z43.object({ kind: z43.literal("external"), label: z43.string() }),
28168
- z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28456
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
28457
+ z44.object({ kind: z44.literal("external"), label: z44.string() }),
28458
+ z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28169
28459
  ]);
28170
- var publicEventTicketTypePriceDisplaySchema = z43.union([
28171
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28172
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28173
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28174
- z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28175
- z43.object({
28176
- kind: z43.literal("mixed"),
28177
- paidFromAmount: z43.number(),
28178
- paidToAmount: z43.number(),
28179
- currency: z43.string()
28460
+ var publicEventTicketTypePriceDisplaySchema = z44.union([
28461
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
28462
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
28463
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
28464
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
28465
+ z44.object({
28466
+ kind: z44.literal("mixed"),
28467
+ paidFromAmount: z44.number(),
28468
+ paidToAmount: z44.number(),
28469
+ currency: z44.string()
28180
28470
  }),
28181
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28471
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
28182
28472
  ]);
28183
- var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28184
- var publicEventAttendanceModeAvailabilitySchema = z43.object({
28473
+ var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
28474
+ var publicEventAttendanceModeAvailabilitySchema = z44.object({
28185
28475
  mode: publicEventAttendanceModeSchema,
28186
- capacity: z43.number().nullable(),
28187
- registeredCount: z43.number(),
28188
- availableSpots: z43.number().nullable(),
28189
- waitlistEnabled: z43.boolean()
28190
- });
28191
- var publicEventTicketTypeAvailabilitySchema = z43.union([
28192
- z43.object({
28193
- kind: z43.literal("available"),
28194
- remainingCapacity: z43.number().nullable()
28476
+ capacity: z44.number().nullable(),
28477
+ registeredCount: z44.number(),
28478
+ availableSpots: z44.number().nullable(),
28479
+ waitlistEnabled: z44.boolean()
28480
+ });
28481
+ var publicEventTicketTypeAvailabilitySchema = z44.union([
28482
+ z44.object({
28483
+ kind: z44.literal("available"),
28484
+ remainingCapacity: z44.number().nullable()
28195
28485
  }),
28196
- z43.object({
28197
- kind: z43.literal("unavailable"),
28198
- reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28199
- remainingCapacity: z43.number().nullable()
28486
+ z44.object({
28487
+ kind: z44.literal("unavailable"),
28488
+ reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28489
+ remainingCapacity: z44.number().nullable()
28200
28490
  })
28201
28491
  ]);
28202
- var publicEventTicketTypeSchema = z43.object({
28203
- id: z43.string(),
28204
- siteId: z43.string(),
28205
- eventSeriesId: z43.string(),
28206
- name: z43.string(),
28207
- description: z43.string().nullable(),
28208
- priceAmount: z43.number(),
28209
- isActive: z43.boolean(),
28210
- sortOrder: z43.number(),
28211
- capacityMode: z43.enum(["limited", "unlimited"]),
28212
- capacityLimit: z43.number().nullable(),
28213
- attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28214
- saleStartsAt: z43.string().nullable(),
28215
- saleEndsAt: z43.string().nullable(),
28492
+ var publicEventTicketTypeSchema = z44.object({
28493
+ id: z44.string(),
28494
+ siteId: z44.string(),
28495
+ eventSeriesId: z44.string(),
28496
+ name: z44.string(),
28497
+ description: z44.string().nullable(),
28498
+ priceAmount: z44.number(),
28499
+ isActive: z44.boolean(),
28500
+ sortOrder: z44.number(),
28501
+ capacityMode: z44.enum(["limited", "unlimited"]),
28502
+ capacityLimit: z44.number().nullable(),
28503
+ attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
28504
+ saleStartsAt: z44.string().nullable(),
28505
+ saleEndsAt: z44.string().nullable(),
28216
28506
  availability: publicEventTicketTypeAvailabilitySchema,
28217
- createdAt: z43.string(),
28218
- updatedAt: z43.string()
28219
- });
28220
- var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28221
- z43.object({
28222
- kind: z43.literal("drop_in"),
28223
- currency: z43.string(),
28224
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28507
+ createdAt: z44.string(),
28508
+ updatedAt: z44.string()
28509
+ });
28510
+ var publicEventPricingSchema = z44.discriminatedUnion("kind", [
28511
+ z44.object({
28512
+ kind: z44.literal("drop_in"),
28513
+ currency: z44.string(),
28514
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28225
28515
  }),
28226
- z43.object({
28227
- kind: z43.literal("free_registration"),
28228
- currency: z43.string(),
28229
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28516
+ z44.object({
28517
+ kind: z44.literal("free_registration"),
28518
+ currency: z44.string(),
28519
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
28230
28520
  }),
28231
- z43.object({
28232
- kind: z43.literal("single_paid"),
28233
- amount: z43.number(),
28234
- currency: z43.string(),
28235
- display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28521
+ z44.object({
28522
+ kind: z44.literal("single_paid"),
28523
+ amount: z44.number(),
28524
+ currency: z44.string(),
28525
+ display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
28236
28526
  }),
28237
- z43.object({
28238
- kind: z43.literal("ticket_types"),
28239
- currency: z43.string(),
28240
- ticketTypes: z43.array(publicEventTicketTypeSchema),
28527
+ z44.object({
28528
+ kind: z44.literal("ticket_types"),
28529
+ currency: z44.string(),
28530
+ ticketTypes: z44.array(publicEventTicketTypeSchema),
28241
28531
  display: publicEventTicketTypePriceDisplaySchema
28242
28532
  }),
28243
- z43.object({
28244
- kind: z43.literal("sliding_scale"),
28245
- minAmount: z43.number(),
28246
- maxAmount: z43.number(),
28247
- suggestedAmount: z43.number().nullable(),
28248
- currency: z43.string(),
28249
- display: z43.object({
28250
- kind: z43.literal("range"),
28251
- minAmount: z43.number(),
28252
- maxAmount: z43.number(),
28253
- currency: z43.string()
28533
+ z44.object({
28534
+ kind: z44.literal("sliding_scale"),
28535
+ minAmount: z44.number(),
28536
+ maxAmount: z44.number(),
28537
+ suggestedAmount: z44.number().nullable(),
28538
+ currency: z44.string(),
28539
+ display: z44.object({
28540
+ kind: z44.literal("range"),
28541
+ minAmount: z44.number(),
28542
+ maxAmount: z44.number(),
28543
+ currency: z44.string()
28254
28544
  })
28255
28545
  }),
28256
- z43.object({
28257
- kind: z43.literal("course"),
28258
- display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28546
+ z44.object({
28547
+ kind: z44.literal("course"),
28548
+ display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
28259
28549
  }),
28260
- z43.object({
28261
- kind: z43.literal("external"),
28262
- display: z43.object({ kind: z43.literal("external"), label: z43.string() })
28550
+ z44.object({
28551
+ kind: z44.literal("external"),
28552
+ display: z44.object({ kind: z44.literal("external"), label: z44.string() })
28263
28553
  })
28264
28554
  ]);
28265
- var publicTeamMemberSummarySchema = z43.object({
28266
- id: z43.string(),
28267
- name: z43.string(),
28268
- roleLabel: z43.string().nullable(),
28269
- summary: z43.string().nullable(),
28270
- profilePath: z43.string().nullable()
28555
+ var publicTeamMemberSummarySchema = z44.object({
28556
+ id: z44.string(),
28557
+ name: z44.string(),
28558
+ roleLabel: z44.string().nullable(),
28559
+ summary: z44.string().nullable(),
28560
+ profilePath: z44.string().nullable()
28271
28561
  });
28272
- var publicEventSchema = z43.object({
28273
- kind: z43.enum(["event", "course_session"]).optional(),
28562
+ var publicEventSchema = z44.object({
28563
+ kind: z44.enum(["event", "course_session"]).optional(),
28274
28564
  eventPreset: eventPresetSchema.optional(),
28275
28565
  eventDestinationMode: eventDestinationModeSchema.optional(),
28276
28566
  scheduleScope: eventScheduleScopeSchema.optional(),
28277
- id: z43.string(),
28278
- occurrenceId: z43.string(),
28279
- seriesId: z43.string(),
28280
- title: z43.string(),
28281
- description: z43.string().nullable(),
28282
- content: z43.object({
28567
+ id: z44.string(),
28568
+ occurrenceId: z44.string(),
28569
+ seriesId: z44.string(),
28570
+ title: z44.string(),
28571
+ description: z44.string().nullable(),
28572
+ content: z44.object({
28283
28573
  body: RichTextDocSchema.nullable().optional()
28284
28574
  }).optional(),
28285
- presentation: z43.object({
28286
- cardTitleOverride: z43.string().nullable().optional(),
28287
- summary: z43.string().nullable().optional(),
28575
+ presentation: z44.object({
28576
+ cardTitleOverride: z44.string().nullable().optional(),
28577
+ summary: z44.string().nullable().optional(),
28288
28578
  image: mediaSchema2.nullable().optional()
28289
28579
  }).optional(),
28290
- slug: z43.string(),
28291
- path: z43.string().nullable(),
28580
+ slug: z44.string(),
28581
+ path: z44.string().nullable(),
28292
28582
  destination: publicEventDestinationSchema,
28293
- requiresRegistration: z43.boolean(),
28294
- deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28295
- attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28296
- startsAt: z43.string(),
28297
- endsAt: z43.string(),
28298
- capacity: z43.number().nullable(),
28299
- registeredCount: z43.number(),
28300
- availableSpots: z43.number().nullable(),
28301
- waitlistEnabled: z43.boolean(),
28583
+ requiresRegistration: z44.boolean(),
28584
+ deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
28585
+ attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
28586
+ startsAt: z44.string(),
28587
+ endsAt: z44.string(),
28588
+ capacity: z44.number().nullable(),
28589
+ registeredCount: z44.number(),
28590
+ availableSpots: z44.number().nullable(),
28591
+ waitlistEnabled: z44.boolean(),
28302
28592
  venue: eventVenueSchema.nullable(),
28303
28593
  eventCategory: eventCategorySchema.nullable(),
28304
- teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28305
- status: z43.enum(["active", "draft", "archived"]).optional(),
28306
- timeZone: z43.string(),
28594
+ teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
28595
+ status: z44.enum(["active", "draft", "archived"]).optional(),
28596
+ timeZone: z44.string(),
28307
28597
  pricing: publicEventPricingSchema,
28308
28598
  paymentTerms: blockBookingPaymentTermsSchema,
28309
28599
  accessRestriction: accessRestrictionSchema,
28310
- allowedCategoryIds: z43.array(z43.string()),
28311
- requireGuestDetails: z43.boolean().optional(),
28312
- acceptsPasses: z43.boolean().optional(),
28313
- acceptsMemberships: z43.boolean().optional(),
28314
- course: z43.object({
28315
- id: z43.string(),
28600
+ allowedCategoryIds: z44.array(z44.string()),
28601
+ requireGuestDetails: z44.boolean().optional(),
28602
+ acceptsPasses: z44.boolean().optional(),
28603
+ acceptsMemberships: z44.boolean().optional(),
28604
+ course: z44.object({
28605
+ id: z44.string(),
28316
28606
  pricing: coursePricingSchema.optional(),
28317
- priceCents: z43.number().nullable(),
28318
- currency: z43.string(),
28319
- enrollmentOpen: z43.boolean()
28607
+ priceCents: z44.number().nullable(),
28608
+ currency: z44.string(),
28609
+ enrollmentOpen: z44.boolean()
28320
28610
  }).nullable().optional()
28321
28611
  });
28322
- var publicEventsArraySchema = z43.array(publicEventSchema);
28612
+ var publicEventsArraySchema = z44.array(publicEventSchema);
28323
28613
 
28324
28614
  // ../blocks/src/system/blocks/events/shared/fields.ts
28325
28615
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28522,52 +28812,80 @@ function normalizeEventStaffMemberId(value) {
28522
28812
  return trimmed ? trimmed : null;
28523
28813
  }
28524
28814
 
28815
+ // ../blocks/src/system/blocks/events/shared/layout.ts
28816
+ var recoverEmptyHeadingWhenActive = {
28817
+ kind: "recover-empty-when-active",
28818
+ placeholder: "Add heading"
28819
+ };
28820
+ var recoverEmptyDescriptionWhenActive = {
28821
+ kind: "recover-empty-when-active",
28822
+ placeholder: "Add description"
28823
+ };
28824
+ function eventSectionHeaderLayoutNodes() {
28825
+ return [
28826
+ text(
28827
+ { as: "h2" },
28828
+ bind("content.heading"),
28829
+ when("content.heading", {
28830
+ authoringPresence: recoverEmptyHeadingWhenActive
28831
+ })
28832
+ ),
28833
+ richText(
28834
+ { className: "rb-prose rb-max-w-none" },
28835
+ bind("content.description"),
28836
+ when("content.description", {
28837
+ authoringPresence: recoverEmptyDescriptionWhenActive
28838
+ })
28839
+ )
28840
+ ];
28841
+ }
28842
+
28525
28843
  // ../blocks/src/system/blocks/shop.shared.ts
28526
- import { z as z44 } from "zod";
28527
- var publicPassProductSchema = z44.object({
28528
- id: z44.string(),
28529
- productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28530
- name: z44.string(),
28531
- description: z44.string().nullable(),
28532
- price: z44.number(),
28533
- currency: z44.string(),
28534
- creditsTotal: z44.number(),
28535
- pricePerCredit: z44.number(),
28536
- validDays: z44.number().nullable(),
28537
- eligibleCategoryIds: z44.array(z44.string()),
28538
- eligibleCategoryNames: z44.array(z44.string())
28539
- });
28540
- var publicPassProductCollectionSchema = z44.object({
28541
- passes: z44.array(publicPassProductSchema)
28542
- });
28543
- var publicMembershipProductSchema = z44.object({
28544
- id: z44.string(),
28545
- name: z44.string(),
28546
- description: z44.string().nullable(),
28547
- price: z44.number(),
28548
- currency: z44.string(),
28549
- billingInterval: z44.enum(["month", "year"]),
28550
- eligibleCategoryIds: z44.array(z44.string()),
28551
- eligibleCategoryNames: z44.array(z44.string())
28844
+ import { z as z45 } from "zod";
28845
+ var publicPassProductSchema = z45.object({
28846
+ id: z45.string(),
28847
+ productUseCase: z45.enum(["event_pass", "appointment_package"]).default("event_pass"),
28848
+ name: z45.string(),
28849
+ description: z45.string().nullable(),
28850
+ price: z45.number(),
28851
+ currency: z45.string(),
28852
+ creditsTotal: z45.number(),
28853
+ pricePerCredit: z45.number(),
28854
+ validDays: z45.number().nullable(),
28855
+ eligibleCategoryIds: z45.array(z45.string()),
28856
+ eligibleCategoryNames: z45.array(z45.string())
28857
+ });
28858
+ var publicPassProductCollectionSchema = z45.object({
28859
+ passes: z45.array(publicPassProductSchema)
28860
+ });
28861
+ var publicMembershipProductSchema = z45.object({
28862
+ id: z45.string(),
28863
+ name: z45.string(),
28864
+ description: z45.string().nullable(),
28865
+ price: z45.number(),
28866
+ currency: z45.string(),
28867
+ billingInterval: z45.enum(["month", "year"]),
28868
+ eligibleCategoryIds: z45.array(z45.string()),
28869
+ eligibleCategoryNames: z45.array(z45.string())
28552
28870
  });
28553
- var publicMembershipProductCollectionSchema = z44.object({
28554
- memberships: z44.array(publicMembershipProductSchema)
28871
+ var publicMembershipProductCollectionSchema = z45.object({
28872
+ memberships: z45.array(publicMembershipProductSchema)
28555
28873
  });
28556
28874
 
28557
28875
  // ../blocks/src/system/blocks/event-registration.shared.ts
28558
- import { z as z45 } from "zod";
28559
- var occurrenceContextSchema = z45.object({
28560
- id: z45.string(),
28561
- seriesId: z45.string(),
28562
- startsAt: z45.string(),
28563
- endsAt: z45.string(),
28564
- timeZone: z45.string(),
28565
- capacityOverride: z45.number().nullable().optional(),
28566
- overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28876
+ import { z as z46 } from "zod";
28877
+ var occurrenceContextSchema = z46.object({
28878
+ id: z46.string(),
28879
+ seriesId: z46.string(),
28880
+ startsAt: z46.string(),
28881
+ endsAt: z46.string(),
28882
+ timeZone: z46.string(),
28883
+ capacityOverride: z46.number().nullable().optional(),
28884
+ overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
28567
28885
  }).nullable();
28568
28886
 
28569
28887
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28570
- import { z as z47 } from "zod";
28888
+ import { z as z48 } from "zod";
28571
28889
 
28572
28890
  // ../blocks/src/system/constants/events.ts
28573
28891
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28754,17 +29072,17 @@ function readAmount(value) {
28754
29072
  }
28755
29073
 
28756
29074
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28757
- import { z as z46 } from "zod";
28758
- var previewStageSchema = z46.enum(["preview", "published"]);
28759
- var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28760
- var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28761
- var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28762
- var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28763
- var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28764
- var columnOptionSchema = z46.enum(["2", "3", "4"]);
28765
- var weekStartSchema = z46.enum(["sunday", "monday"]);
28766
- var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28767
- var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
29075
+ import { z as z47 } from "zod";
29076
+ var previewStageSchema = z47.enum(["preview", "published"]);
29077
+ var registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
29078
+ var eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
29079
+ var eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
29080
+ var eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
29081
+ var eventCalendarDefaultViewSchema = z47.enum(eventCalendarDefaultViewValues);
29082
+ var columnOptionSchema = z47.enum(["2", "3", "4"]);
29083
+ var weekStartSchema = z47.enum(["sunday", "monday"]);
29084
+ var filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
29085
+ var calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
28768
29086
 
28769
29087
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28770
29088
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28824,72 +29142,72 @@ function toRegistrationEvents(events) {
28824
29142
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28825
29143
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28826
29144
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28827
- var contentEntrySchema = z47.object({
28828
- id: z47.string(),
28829
- slug: z47.string(),
28830
- contentTypeSlug: z47.string()
29145
+ var contentEntrySchema = z48.object({
29146
+ id: z48.string(),
29147
+ slug: z48.string(),
29148
+ contentTypeSlug: z48.string()
28831
29149
  });
28832
- var eventRegistrationPublicEventSchema = z47.preprocess(
29150
+ var eventRegistrationPublicEventSchema = z48.preprocess(
28833
29151
  normalizeEventRegistrationEventInput,
28834
29152
  publicEventSchema
28835
29153
  );
28836
- var eventRegistrationSourceSchema = z47.object({
28837
- siteId: z47.string().optional(),
28838
- apiBaseUrl: z47.string().optional(),
28839
- portalToken: z47.string().nullable().optional(),
28840
- previewToken: z47.string().nullable().optional(),
29154
+ var eventRegistrationSourceSchema = z48.object({
29155
+ siteId: z48.string().optional(),
29156
+ apiBaseUrl: z48.string().optional(),
29157
+ portalToken: z48.string().nullable().optional(),
29158
+ previewToken: z48.string().nullable().optional(),
28841
29159
  occurrenceContext: occurrenceContextSchema.optional(),
28842
29160
  contentEntry: contentEntrySchema.nullable().optional(),
28843
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28844
- className: z47.string().nullable().optional(),
28845
- buttonText: z47.string().nullable().optional(),
28846
- maxTickets: z47.string().nullable().optional(),
28847
- showVenue: z47.boolean().optional(),
28848
- showCapacity: z47.boolean().optional(),
28849
- successMessage: z47.string().optional(),
28850
- waitlistMessage: z47.string().optional(),
29161
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29162
+ className: z48.string().nullable().optional(),
29163
+ buttonText: z48.string().nullable().optional(),
29164
+ maxTickets: z48.string().nullable().optional(),
29165
+ showVenue: z48.boolean().optional(),
29166
+ showCapacity: z48.boolean().optional(),
29167
+ successMessage: z48.string().optional(),
29168
+ waitlistMessage: z48.string().optional(),
28851
29169
  buttonVariant: registrationButtonVariantSchema.optional(),
28852
- overlayEnabled: z47.boolean().optional(),
28853
- spamProtectionEnabled: z47.boolean().optional(),
29170
+ overlayEnabled: z48.boolean().optional(),
29171
+ spamProtectionEnabled: z48.boolean().optional(),
28854
29172
  stage: previewStageSchema.optional(),
28855
- supportEmail: z47.string().optional(),
29173
+ supportEmail: z48.string().optional(),
28856
29174
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28857
29175
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28858
29176
  });
28859
- var eventRegistrationDisplaySchema = z47.object({
28860
- kind: z47.literal("event-registration"),
28861
- state: z47.literal("generic-shell"),
28862
- className: z47.string().nullable(),
28863
- titleText: z47.string(),
28864
- bodyText: z47.string(),
28865
- stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28866
- summaryButtonText: z47.string()
29177
+ var eventRegistrationDisplaySchema = z48.object({
29178
+ kind: z48.literal("event-registration"),
29179
+ state: z48.literal("generic-shell"),
29180
+ className: z48.string().nullable(),
29181
+ titleText: z48.string(),
29182
+ bodyText: z48.string(),
29183
+ stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
29184
+ summaryButtonText: z48.string()
28867
29185
  });
28868
- var eventRegistrationHydrationSchema = z47.object({
29186
+ var eventRegistrationHydrationSchema = z48.object({
28869
29187
  occurrenceContext: occurrenceContextSchema.optional(),
28870
29188
  contentEntry: contentEntrySchema.nullable().optional(),
28871
- events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28872
- maxTickets: z47.string().optional(),
28873
- showVenue: z47.boolean().optional(),
28874
- showCapacity: z47.boolean().optional(),
28875
- successMessage: z47.string().optional(),
28876
- waitlistMessage: z47.string().optional(),
29189
+ events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
29190
+ maxTickets: z48.string().optional(),
29191
+ showVenue: z48.boolean().optional(),
29192
+ showCapacity: z48.boolean().optional(),
29193
+ successMessage: z48.string().optional(),
29194
+ waitlistMessage: z48.string().optional(),
28877
29195
  buttonVariant: registrationButtonVariantSchema.optional(),
28878
- overlayEnabled: z47.boolean().optional(),
28879
- spamProtectionEnabled: z47.boolean().optional(),
28880
- supportEmail: z47.string().optional(),
29196
+ overlayEnabled: z48.boolean().optional(),
29197
+ spamProtectionEnabled: z48.boolean().optional(),
29198
+ supportEmail: z48.string().optional(),
28881
29199
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28882
29200
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28883
29201
  });
28884
- var eventRegistrationRenderSchema = z47.object({
29202
+ var eventRegistrationRenderSchema = z48.object({
28885
29203
  display: eventRegistrationDisplaySchema,
28886
29204
  hydration: eventRegistrationHydrationSchema
28887
29205
  });
28888
- var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28889
- siteId: z47.string().optional(),
28890
- apiBaseUrl: z47.string().optional(),
28891
- portalToken: z47.string().nullable().optional(),
28892
- previewToken: z47.string().nullable().optional(),
29206
+ var eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
29207
+ siteId: z48.string().optional(),
29208
+ apiBaseUrl: z48.string().optional(),
29209
+ portalToken: z48.string().nullable().optional(),
29210
+ previewToken: z48.string().nullable().optional(),
28893
29211
  stage: previewStageSchema.optional()
28894
29212
  }));
28895
29213
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29240,73 +29558,73 @@ var eventRegistrationBlockDefinition = {
29240
29558
  };
29241
29559
 
29242
29560
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
29243
- import { z as z48 } from "zod";
29244
- var contentEntrySchema2 = z48.object({
29245
- id: z48.string(),
29246
- slug: z48.string(),
29247
- contentTypeSlug: z48.string()
29248
- });
29249
- var courseEntrySubrouteContextSchema = z48.union([
29250
- z48.object({
29251
- kind: z48.literal("course-run"),
29252
- run: z48.object({
29253
- courseId: z48.string(),
29254
- seriesId: z48.string(),
29255
- runSlug: z48.string(),
29256
- runName: z48.string().nullable()
29561
+ import { z as z49 } from "zod";
29562
+ var contentEntrySchema2 = z49.object({
29563
+ id: z49.string(),
29564
+ slug: z49.string(),
29565
+ contentTypeSlug: z49.string()
29566
+ });
29567
+ var courseEntrySubrouteContextSchema = z49.union([
29568
+ z49.object({
29569
+ kind: z49.literal("course-run"),
29570
+ run: z49.object({
29571
+ courseId: z49.string(),
29572
+ seriesId: z49.string(),
29573
+ runSlug: z49.string(),
29574
+ runName: z49.string().nullable()
29257
29575
  })
29258
29576
  }),
29259
- z48.object({
29260
- kind: z48.literal("event-occurrence"),
29577
+ z49.object({
29578
+ kind: z49.literal("event-occurrence"),
29261
29579
  occurrence: occurrenceContextSchema
29262
29580
  })
29263
29581
  ]);
29264
- var courseRegistrationSourceSchema = z48.object({
29265
- siteId: z48.string().optional(),
29266
- apiBaseUrl: z48.string().optional(),
29267
- portalToken: z48.string().nullable().optional(),
29582
+ var courseRegistrationSourceSchema = z49.object({
29583
+ siteId: z49.string().optional(),
29584
+ apiBaseUrl: z49.string().optional(),
29585
+ portalToken: z49.string().nullable().optional(),
29268
29586
  contentEntry: contentEntrySchema2.nullable().optional(),
29269
29587
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29270
- courses: z48.array(publicCourseSchema).nullable().optional(),
29271
- className: z48.string().nullable().optional(),
29272
- showSessions: z48.boolean().optional(),
29273
- showPrice: z48.boolean().optional(),
29274
- showCapacity: z48.boolean().optional(),
29275
- showVenue: z48.boolean().optional(),
29276
- successMessage: z48.string().optional(),
29277
- waitlistMessage: z48.string().optional(),
29278
- membershipMessage: z48.string().optional(),
29279
- buttonText: z48.string().nullable().optional(),
29588
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29589
+ className: z49.string().nullable().optional(),
29590
+ showSessions: z49.boolean().optional(),
29591
+ showPrice: z49.boolean().optional(),
29592
+ showCapacity: z49.boolean().optional(),
29593
+ showVenue: z49.boolean().optional(),
29594
+ successMessage: z49.string().optional(),
29595
+ waitlistMessage: z49.string().optional(),
29596
+ membershipMessage: z49.string().optional(),
29597
+ buttonText: z49.string().nullable().optional(),
29280
29598
  buttonVariant: registrationButtonVariantSchema.optional(),
29281
29599
  stage: previewStageSchema.optional()
29282
29600
  });
29283
- var courseRegistrationDisplaySchema = z48.object({
29284
- kind: z48.literal("course-registration"),
29285
- state: z48.literal("shell"),
29286
- className: z48.string().nullable(),
29287
- summaryButtonText: z48.string()
29601
+ var courseRegistrationDisplaySchema = z49.object({
29602
+ kind: z49.literal("course-registration"),
29603
+ state: z49.literal("shell"),
29604
+ className: z49.string().nullable(),
29605
+ summaryButtonText: z49.string()
29288
29606
  });
29289
- var courseRegistrationHydrationSchema = z48.object({
29607
+ var courseRegistrationHydrationSchema = z49.object({
29290
29608
  contentEntry: contentEntrySchema2.nullable().optional(),
29291
29609
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29292
- courses: z48.array(publicCourseSchema).nullable().optional(),
29293
- showSessions: z48.boolean().optional(),
29294
- showPrice: z48.boolean().optional(),
29295
- showCapacity: z48.boolean().optional(),
29296
- showVenue: z48.boolean().optional(),
29297
- successMessage: z48.string().optional(),
29298
- waitlistMessage: z48.string().optional(),
29299
- membershipMessage: z48.string().optional(),
29610
+ courses: z49.array(publicCourseSchema).nullable().optional(),
29611
+ showSessions: z49.boolean().optional(),
29612
+ showPrice: z49.boolean().optional(),
29613
+ showCapacity: z49.boolean().optional(),
29614
+ showVenue: z49.boolean().optional(),
29615
+ successMessage: z49.string().optional(),
29616
+ waitlistMessage: z49.string().optional(),
29617
+ membershipMessage: z49.string().optional(),
29300
29618
  buttonVariant: registrationButtonVariantSchema.optional()
29301
29619
  });
29302
- var courseRegistrationRenderSchema = z48.object({
29620
+ var courseRegistrationRenderSchema = z49.object({
29303
29621
  display: courseRegistrationDisplaySchema,
29304
29622
  hydration: courseRegistrationHydrationSchema
29305
29623
  });
29306
- var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29307
- siteId: z48.string().optional(),
29308
- apiBaseUrl: z48.string().optional(),
29309
- portalToken: z48.string().nullable().optional(),
29624
+ var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
29625
+ siteId: z49.string().optional(),
29626
+ apiBaseUrl: z49.string().optional(),
29627
+ portalToken: z49.string().nullable().optional(),
29310
29628
  stage: previewStageSchema.optional()
29311
29629
  }));
29312
29630
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29566,7 +29884,7 @@ var courseRegistrationBlockDefinition = {
29566
29884
  };
29567
29885
 
29568
29886
  // ../blocks/src/system/blocks/event-details.ts
29569
- import { z as z49 } from "zod";
29887
+ import { z as z50 } from "zod";
29570
29888
  var eventDetailsManifest = createBlockManifest({
29571
29889
  id: "block.event-details",
29572
29890
  version: "1.0.0",
@@ -29698,37 +30016,37 @@ var eventDetailsManifest = createBlockManifest({
29698
30016
  })
29699
30017
  ]
29700
30018
  });
29701
- var occurrenceContextSchema2 = z49.object({
29702
- id: z49.string(),
29703
- seriesId: z49.string(),
29704
- startsAt: z49.string(),
29705
- endsAt: z49.string(),
29706
- timeZone: z49.string(),
29707
- capacityOverride: z49.number().nullable().optional(),
29708
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
30019
+ var occurrenceContextSchema2 = z50.object({
30020
+ id: z50.string(),
30021
+ seriesId: z50.string(),
30022
+ startsAt: z50.string(),
30023
+ endsAt: z50.string(),
30024
+ timeZone: z50.string(),
30025
+ capacityOverride: z50.number().nullable().optional(),
30026
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29709
30027
  }).nullable();
29710
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29711
- id: z49.string(),
29712
- publicLabel: z49.string(),
29713
- description: z49.string().nullable(),
29714
- minTicketsRequired: z49.number().nullable()
30028
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
30029
+ id: z50.string(),
30030
+ publicLabel: z50.string(),
30031
+ description: z50.string().nullable(),
30032
+ minTicketsRequired: z50.number().nullable()
29715
30033
  });
29716
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
30034
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29717
30035
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29718
- discountType: z49.literal("percent"),
29719
- discountPercent: z49.number(),
29720
- discountAmountCents: z49.null()
30036
+ discountType: z50.literal("percent"),
30037
+ discountPercent: z50.number(),
30038
+ discountAmountCents: z50.null()
29721
30039
  }),
29722
30040
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29723
- discountType: z49.literal("fixed"),
29724
- discountPercent: z49.null(),
29725
- discountAmountCents: z49.number()
30041
+ discountType: z50.literal("fixed"),
30042
+ discountPercent: z50.null(),
30043
+ discountAmountCents: z50.number()
29726
30044
  })
29727
30045
  ]);
29728
30046
  var eventDetailsBlockDefinition = {
29729
30047
  manifest: eventDetailsManifest,
29730
30048
  dataSchemas: {
29731
- eventDetailsData: z49.object({
30049
+ eventDetailsData: z50.object({
29732
30050
  events: publicEventsArraySchema,
29733
30051
  sitePasses: publicPassProductCollectionSchema,
29734
30052
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -29983,18 +30301,7 @@ var eventSpotlightFields = [
29983
30301
  var eventSpotlightLayout = [
29984
30302
  styledSection({
29985
30303
  children: sectionContainer([
29986
- // Optional heading
29987
- text(
29988
- { as: "h2" },
29989
- bind("content.heading"),
29990
- when("content.heading")
29991
- ),
29992
- // Optional description
29993
- richText(
29994
- { className: "rb-prose rb-max-w-none" },
29995
- bind("content.description"),
29996
- when("content.description")
29997
- ),
30304
+ ...eventSectionHeaderLayoutNodes(),
29998
30305
  // Event spotlight component
29999
30306
  el("event-spotlight", {
30000
30307
  events: { $bind: { from: "data.events" } },
@@ -30055,7 +30362,7 @@ var eventSpotlightBlockDefinition = {
30055
30362
  };
30056
30363
 
30057
30364
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30058
- import { z as z51 } from "zod";
30365
+ import { z as z52 } from "zod";
30059
30366
 
30060
30367
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
30061
30368
  var COLUMN_CLASSES = {
@@ -30163,16 +30470,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30163
30470
  }
30164
30471
 
30165
30472
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30166
- import { z as z50 } from "zod";
30473
+ import { z as z51 } from "zod";
30167
30474
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30168
- var eventPageSizeSchema = z50.union([
30169
- z50.literal(3),
30170
- z50.literal(6),
30171
- z50.literal(10),
30172
- z50.literal(12),
30173
- z50.literal(20),
30174
- z50.literal(24),
30175
- z50.literal(30)
30475
+ var eventPageSizeSchema = z51.union([
30476
+ z51.literal(3),
30477
+ z51.literal(6),
30478
+ z51.literal(10),
30479
+ z51.literal(12),
30480
+ z51.literal(20),
30481
+ z51.literal(24),
30482
+ z51.literal(30)
30176
30483
  ]);
30177
30484
  var eventPageSizeSet = new Set(eventPageSizeValues);
30178
30485
  function resolveEventPageSize(value, fallback = 12) {
@@ -30182,15 +30489,15 @@ function resolveEventPageSize(value, fallback = 12) {
30182
30489
  function resolveEventCalendarListPageSize(input) {
30183
30490
  return resolveEventPageSize(input.eventsPerPage);
30184
30491
  }
30185
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30186
- z50.object({
30187
- kind: z50.literal("loadMore"),
30188
- label: z50.string()
30492
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30493
+ z51.object({
30494
+ kind: z51.literal("loadMore"),
30495
+ label: z51.string()
30189
30496
  }),
30190
- z50.object({
30191
- kind: z50.literal("seeAllLink"),
30192
- label: z50.string(),
30193
- href: z50.string()
30497
+ z51.object({
30498
+ kind: z51.literal("seeAllLink"),
30499
+ label: z51.string(),
30500
+ href: z51.string()
30194
30501
  })
30195
30502
  ]);
30196
30503
  function resolveEventListPaginationAction(input) {
@@ -30203,89 +30510,89 @@ function resolveEventListPaginationAction(input) {
30203
30510
  }
30204
30511
 
30205
30512
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30206
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30207
- var eventCardVariantInputSchema = z51.union([
30513
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30514
+ var eventCardVariantInputSchema = z52.union([
30208
30515
  cardVariantRoleSchema,
30209
30516
  legacyEventCardVariantSchema
30210
30517
  ]);
30211
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30212
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30213
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30214
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30215
- var eventListingSourceSchema = z51.object({
30216
- events: z51.array(publicEventSchema).nullable().optional(),
30217
- siteId: z51.string(),
30218
- apiBaseUrl: z51.string().optional(),
30518
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30519
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30520
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30521
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30522
+ var eventListingSourceSchema = z52.object({
30523
+ events: z52.array(publicEventSchema).nullable().optional(),
30524
+ siteId: z52.string(),
30525
+ apiBaseUrl: z52.string().optional(),
30219
30526
  stage: previewStageSchema.optional(),
30220
30527
  layout: eventLayoutSchema.optional(),
30221
30528
  columns: columnOptionSchema.optional(),
30222
- eventsPerPage: z51.string().optional(),
30223
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30224
- seeAllUrl: z51.string().optional(),
30225
- loadMoreText: z51.string().optional(),
30529
+ eventsPerPage: z52.string().optional(),
30530
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30531
+ seeAllUrl: z52.string().optional(),
30532
+ loadMoreText: z52.string().optional(),
30226
30533
  cardVariant: eventCardVariantInputSchema.optional(),
30227
30534
  buttonVariant: eventButtonVariantSchema.optional(),
30228
- buttonText: z51.string().optional(),
30229
- showVenue: z51.boolean().optional(),
30230
- showMap: z51.boolean().optional(),
30231
- showCapacity: z51.boolean().optional(),
30232
- emptyMessage: z51.string().optional(),
30233
- className: z51.string().optional(),
30234
- showFilters: z51.boolean().nullable().optional(),
30535
+ buttonText: z52.string().optional(),
30536
+ showVenue: z52.boolean().optional(),
30537
+ showMap: z52.boolean().optional(),
30538
+ showCapacity: z52.boolean().optional(),
30539
+ emptyMessage: z52.string().optional(),
30540
+ className: z52.string().optional(),
30541
+ showFilters: z52.boolean().nullable().optional(),
30235
30542
  showCategoryFilter: filterAutoShowSchema.optional(),
30236
- showVenueFilter: z51.boolean().nullable().optional(),
30237
- showStaffFilter: z51.boolean().nullable().optional(),
30543
+ showVenueFilter: z52.boolean().nullable().optional(),
30544
+ showStaffFilter: z52.boolean().nullable().optional(),
30238
30545
  eventKind: eventBlockKindSchema.nullable().optional(),
30239
30546
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30240
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30547
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30241
30548
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30242
- filterCategoryIds: z51.string().nullable().optional(),
30243
- filterStaffMemberId: z51.string().nullable().optional(),
30244
- filterVenueId: z51.string().nullable().optional()
30549
+ filterCategoryIds: z52.string().nullable().optional(),
30550
+ filterStaffMemberId: z52.string().nullable().optional(),
30551
+ filterVenueId: z52.string().nullable().optional()
30245
30552
  });
30246
- var eventListingDisplaySchema = z51.object({
30247
- kind: z51.literal("event-listing"),
30248
- state: z51.enum(["loading", "empty", "ready"]),
30553
+ var eventListingDisplaySchema = z52.object({
30554
+ kind: z52.literal("event-listing"),
30555
+ state: z52.enum(["loading", "empty", "ready"]),
30249
30556
  listLayout: eventLayoutSchema,
30250
- className: z51.string().nullable(),
30251
- emptyMessage: z51.string(),
30252
- loadingMessage: z51.string(),
30253
- containerClass: z51.string(),
30557
+ className: z52.string().nullable(),
30558
+ emptyMessage: z52.string(),
30559
+ loadingMessage: z52.string(),
30560
+ containerClass: z52.string(),
30254
30561
  cardVariant: cardVariantRoleSchema,
30255
30562
  buttonVariant: eventButtonVariantSchema,
30256
- buttonText: z51.string(),
30257
- showVenue: z51.boolean(),
30258
- showMap: z51.boolean(),
30259
- showCapacity: z51.boolean(),
30563
+ buttonText: z52.string(),
30564
+ showVenue: z52.boolean(),
30565
+ showMap: z52.boolean(),
30566
+ showCapacity: z52.boolean(),
30260
30567
  orientation: cardOrientationSchema,
30261
- events: z51.array(publicEventSchema)
30568
+ events: z52.array(publicEventSchema)
30262
30569
  });
30263
- var eventListingHydrationSchema = z51.object({
30264
- siteId: z51.string(),
30570
+ var eventListingHydrationSchema = z52.object({
30571
+ siteId: z52.string(),
30265
30572
  stage: previewStageSchema.optional(),
30266
30573
  eventsPerPage: eventPageSizeSchema,
30267
30574
  paginationAction: eventListPaginationActionSchema,
30268
- showFilters: z51.boolean(),
30575
+ showFilters: z52.boolean(),
30269
30576
  showCategoryFilter: filterAutoShowSchema,
30270
- showVenueFilter: z51.boolean(),
30271
- showStaffFilter: z51.boolean(),
30577
+ showVenueFilter: z52.boolean(),
30578
+ showStaffFilter: z52.boolean(),
30272
30579
  eventKind: eventBlockKindSchema,
30273
30580
  eventSurface: eventSurfaceScopeSchema,
30274
- filterEventPresets: z51.string().nullable(),
30581
+ filterEventPresets: z52.string().nullable(),
30275
30582
  scheduleScope: eventScheduleScopeSchema2,
30276
- filterCategoryIds: z51.string().nullable().optional(),
30277
- filterStaffMemberId: z51.string().nullable().optional(),
30278
- filterVenueId: z51.string().nullable().optional(),
30279
- fetchInitialEventsOnMount: z51.boolean()
30583
+ filterCategoryIds: z52.string().nullable().optional(),
30584
+ filterStaffMemberId: z52.string().nullable().optional(),
30585
+ filterVenueId: z52.string().nullable().optional(),
30586
+ fetchInitialEventsOnMount: z52.boolean()
30280
30587
  });
30281
- var eventListingRenderSchema = z51.object({
30588
+ var eventListingRenderSchema = z52.object({
30282
30589
  display: eventListingDisplaySchema,
30283
30590
  hydration: eventListingHydrationSchema
30284
30591
  });
30285
30592
  var eventListingIslandMetaCodec = createZodCodec(
30286
- z51.object({
30287
- siteId: z51.string(),
30288
- apiBaseUrl: z51.string().optional(),
30593
+ z52.object({
30594
+ siteId: z52.string(),
30595
+ apiBaseUrl: z52.string().optional(),
30289
30596
  stage: previewStageSchema.optional()
30290
30597
  })
30291
30598
  );
@@ -30525,18 +30832,7 @@ var eventListingAdditionalFields = [
30525
30832
  var eventListingLayout = [
30526
30833
  styledSection({
30527
30834
  children: sectionContainer([
30528
- // Optional heading
30529
- text(
30530
- { as: "h2" },
30531
- bind("content.heading"),
30532
- when("content.heading")
30533
- ),
30534
- // Optional description
30535
- richText(
30536
- { className: "rb-prose rb-max-w-none" },
30537
- bind("content.description"),
30538
- when("content.description")
30539
- ),
30835
+ ...eventSectionHeaderLayoutNodes(),
30540
30836
  // Event listing component with pagination
30541
30837
  el("event-listing", withApiBindings({
30542
30838
  events: { $bind: { from: "data.events" } },
@@ -30652,15 +30948,15 @@ var eventListingBlockDefinition = {
30652
30948
  };
30653
30949
 
30654
30950
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30655
- import { z as z52 } from "zod";
30656
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30657
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30658
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30659
- var eventCalendarSourceSchema = z52.object(
30951
+ import { z as z53 } from "zod";
30952
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30953
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30954
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30955
+ var eventCalendarSourceSchema = z53.object(
30660
30956
  {
30661
- events: z52.array(publicEventSchema).nullable().optional(),
30662
- siteId: z52.string(),
30663
- apiBaseUrl: z52.string().optional(),
30957
+ events: z53.array(publicEventSchema).nullable().optional(),
30958
+ siteId: z53.string(),
30959
+ apiBaseUrl: z53.string().optional(),
30664
30960
  stage: previewStageSchema.optional(),
30665
30961
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30666
30962
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30668,38 +30964,38 @@ var eventCalendarSourceSchema = z52.object(
30668
30964
  listColumns: columnOptionSchema.optional(),
30669
30965
  layout: eventLayoutSchema.optional(),
30670
30966
  columns: columnOptionSchema.optional(),
30671
- eventsPerPage: z52.string().optional(),
30672
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30673
- seeAllUrl: z52.string().optional(),
30674
- loadMoreText: z52.string().optional(),
30967
+ eventsPerPage: z53.string().optional(),
30968
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30969
+ seeAllUrl: z53.string().optional(),
30970
+ loadMoreText: z53.string().optional(),
30675
30971
  startOfWeek: weekStartSchema.optional(),
30676
30972
  calendarTabViews: calendarTabViewsSchema.optional(),
30677
30973
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30678
- showFilters: z52.boolean().nullable().optional(),
30974
+ showFilters: z53.boolean().nullable().optional(),
30679
30975
  showCategoryFilter: filterAutoShowSchema.optional(),
30680
- showVenueFilter: z52.boolean().nullable().optional(),
30681
- showStaffFilter: z52.boolean().nullable().optional(),
30976
+ showVenueFilter: z53.boolean().nullable().optional(),
30977
+ showStaffFilter: z53.boolean().nullable().optional(),
30682
30978
  kind: eventBlockKindSchema2.nullable().optional(),
30683
30979
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30684
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30980
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30685
30981
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30686
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30687
- filterStaffMemberId: z52.string().nullable().optional(),
30688
- filterVenueId: z52.string().nullable().optional(),
30982
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30983
+ filterStaffMemberId: z53.string().nullable().optional(),
30984
+ filterVenueId: z53.string().nullable().optional(),
30689
30985
  buttonVariant: eventButtonVariantSchema.optional(),
30690
- buttonText: z52.string().optional(),
30691
- showVenue: z52.boolean().nullable().optional(),
30692
- showMap: z52.boolean().nullable().optional(),
30693
- showCapacity: z52.boolean().nullable().optional(),
30694
- emptyMessage: z52.string().optional(),
30695
- className: z52.string().optional()
30986
+ buttonText: z53.string().optional(),
30987
+ showVenue: z53.boolean().nullable().optional(),
30988
+ showMap: z53.boolean().nullable().optional(),
30989
+ showCapacity: z53.boolean().nullable().optional(),
30990
+ emptyMessage: z53.string().optional(),
30991
+ className: z53.string().optional()
30696
30992
  }
30697
30993
  );
30698
- var eventCalendarDisplaySchema = z52.object({
30699
- kind: z52.literal("event-calendar"),
30994
+ var eventCalendarDisplaySchema = z53.object({
30995
+ kind: z53.literal("event-calendar"),
30700
30996
  displayMode: eventCalendarDisplayModeSchema,
30701
- className: z52.string().nullable(),
30702
- events: z52.array(publicEventSchema),
30997
+ className: z53.string().nullable(),
30998
+ events: z53.array(publicEventSchema),
30703
30999
  listLayout: eventLayoutSchema,
30704
31000
  listColumns: columnOptionSchema,
30705
31001
  eventsPerPage: eventPageSizeSchema,
@@ -30707,41 +31003,41 @@ var eventCalendarDisplaySchema = z52.object({
30707
31003
  startOfWeek: weekStartSchema,
30708
31004
  calendarTabViews: calendarTabViewsSchema,
30709
31005
  defaultCalendarView: eventCalendarDefaultViewSchema,
30710
- showFilters: z52.boolean(),
31006
+ showFilters: z53.boolean(),
30711
31007
  showCategoryFilter: filterAutoShowSchema,
30712
- showVenueFilter: z52.boolean(),
30713
- showStaffFilter: z52.boolean(),
31008
+ showVenueFilter: z53.boolean(),
31009
+ showStaffFilter: z53.boolean(),
30714
31010
  eventKind: eventBlockKindSchema2,
30715
31011
  eventSurface: eventSurfaceScopeSchema2,
30716
- filterEventPresets: z52.string().nullable(),
31012
+ filterEventPresets: z53.string().nullable(),
30717
31013
  scheduleScope: eventScheduleScopeSchema3,
30718
- filterCategoryIds: z52.string().nullable(),
30719
- filterStaffMemberId: z52.string().nullable(),
30720
- filterVenueId: z52.string().nullable(),
31014
+ filterCategoryIds: z53.string().nullable(),
31015
+ filterStaffMemberId: z53.string().nullable(),
31016
+ filterVenueId: z53.string().nullable(),
30721
31017
  buttonVariant: eventButtonVariantSchema,
30722
- buttonText: z52.string(),
30723
- showVenue: z52.boolean(),
30724
- showMap: z52.boolean(),
30725
- showCapacity: z52.boolean(),
30726
- emptyMessage: z52.string()
30727
- });
30728
- var eventCalendarHydrationSchema = z52.object({
30729
- siteId: z52.string(),
31018
+ buttonText: z53.string(),
31019
+ showVenue: z53.boolean(),
31020
+ showMap: z53.boolean(),
31021
+ showCapacity: z53.boolean(),
31022
+ emptyMessage: z53.string()
31023
+ });
31024
+ var eventCalendarHydrationSchema = z53.object({
31025
+ siteId: z53.string(),
30730
31026
  stage: previewStageSchema.optional(),
30731
- prefetchedEvents: z52.boolean(),
31027
+ prefetchedEvents: z53.boolean(),
30732
31028
  eventKind: eventBlockKindSchema2,
30733
31029
  eventSurface: eventSurfaceScopeSchema2,
30734
- filterEventPresets: z52.string().nullable(),
31030
+ filterEventPresets: z53.string().nullable(),
30735
31031
  scheduleScope: eventScheduleScopeSchema3
30736
31032
  });
30737
- var eventCalendarRenderSchema = z52.object({
31033
+ var eventCalendarRenderSchema = z53.object({
30738
31034
  display: eventCalendarDisplaySchema,
30739
31035
  hydration: eventCalendarHydrationSchema
30740
31036
  });
30741
31037
  var eventCalendarIslandMetaCodec = createZodCodec(
30742
- z52.object({
30743
- siteId: z52.string(),
30744
- apiBaseUrl: z52.string().optional(),
31038
+ z53.object({
31039
+ siteId: z53.string(),
31040
+ apiBaseUrl: z53.string().optional(),
30745
31041
  stage: previewStageSchema.optional()
30746
31042
  })
30747
31043
  );
@@ -30861,14 +31157,7 @@ var eventCalendarLayout = [
30861
31157
  styledSection({
30862
31158
  children: sectionContainer(
30863
31159
  [
30864
- // Optional heading
30865
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30866
- // Optional description
30867
- richText(
30868
- { className: "rb-prose rb-max-w-none" },
30869
- bind("content.description"),
30870
- when("content.description")
30871
- ),
31160
+ ...eventSectionHeaderLayoutNodes(),
30872
31161
  // Event calendar component (handles all display modes)
30873
31162
  el(
30874
31163
  "event-calendar",
@@ -31513,7 +31802,7 @@ var eventCalendarBlockDefinition = {
31513
31802
  };
31514
31803
 
31515
31804
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31516
- import { z as z53 } from "zod";
31805
+ import { z as z54 } from "zod";
31517
31806
 
31518
31807
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31519
31808
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31605,13 +31894,13 @@ function isRecord6(value) {
31605
31894
  }
31606
31895
 
31607
31896
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31608
- var publicRouteCandidatesSchema = z53.object({
31609
- routes: z53.array(z53.object({
31610
- entityId: z53.string(),
31611
- path: z53.string(),
31612
- title: z53.string(),
31613
- kind: z53.enum(["page", "content"]),
31614
- contentTypeKey: z53.string().nullable().optional()
31897
+ var publicRouteCandidatesSchema = z54.object({
31898
+ routes: z54.array(z54.object({
31899
+ entityId: z54.string(),
31900
+ path: z54.string(),
31901
+ title: z54.string(),
31902
+ kind: z54.enum(["page", "content"]),
31903
+ contentTypeKey: z54.string().nullable().optional()
31615
31904
  }))
31616
31905
  });
31617
31906
  var groupOverrideFields = [
@@ -32009,7 +32298,7 @@ function isRecord7(value) {
32009
32298
  }
32010
32299
 
32011
32300
  // ../blocks/src/system/blocks/embed.ts
32012
- import { z as z54 } from "zod";
32301
+ import { z as z55 } from "zod";
32013
32302
  var embedFields = [
32014
32303
  // Section heading
32015
32304
  parseFieldDefinition({
@@ -32240,18 +32529,18 @@ var embedManifest = createBlockManifest({
32240
32529
  spacing: "lg"
32241
32530
  }
32242
32531
  });
32243
- var embedEntrySchema = z54.object({
32244
- id: z54.string(),
32245
- identifier: z54.string(),
32246
- title: z54.string(),
32247
- slug: z54.string().nullable().optional(),
32248
- content: z54.record(z54.string(), z54.unknown()).optional(),
32249
- publishedAt: z54.string().nullable().optional()
32532
+ var embedEntrySchema = z55.object({
32533
+ id: z55.string(),
32534
+ identifier: z55.string(),
32535
+ title: z55.string(),
32536
+ slug: z55.string().nullable().optional(),
32537
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32538
+ publishedAt: z55.string().nullable().optional()
32250
32539
  });
32251
32540
  var embedBlockDefinition = {
32252
32541
  manifest: embedManifest,
32253
32542
  dataSchemas: {
32254
- entries: z54.array(embedEntrySchema).optional()
32543
+ entries: z55.array(embedEntrySchema).optional()
32255
32544
  },
32256
32545
  dataLoaders: {
32257
32546
  entries: {
@@ -33435,49 +33724,49 @@ var fileDownloadBlockDefinition = {
33435
33724
  };
33436
33725
 
33437
33726
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33438
- import { z as z57 } from "zod";
33727
+ import { z as z58 } from "zod";
33439
33728
 
33440
33729
  // ../blocks/src/system/blocks/products/shared.ts
33441
- import { z as z55 } from "zod";
33442
- var publicProductVariantSchema = z55.object({
33443
- id: z55.string(),
33444
- title: z55.string(),
33445
- sku: z55.string().nullable(),
33446
- priceCents: z55.number(),
33447
- stockQuantity: z55.number().nullable(),
33448
- soldOut: z55.boolean()
33449
- });
33450
- var publicProductSchema = z55.object({
33451
- id: z55.string(),
33452
- contentEntryId: z55.string().nullable(),
33453
- title: z55.string(),
33454
- slug: z55.string(),
33455
- path: z55.string().nullable(),
33456
- status: z55.enum(["draft", "active"]),
33457
- priceCents: z55.number(),
33458
- currency: z55.string(),
33459
- productType: z55.enum(["physical", "digital"]),
33460
- requiresShipping: z55.boolean(),
33461
- hasVariants: z55.boolean(),
33462
- trackInventory: z55.boolean(),
33463
- soldOut: z55.boolean(),
33464
- category: z55.object({
33465
- id: z55.string(),
33466
- name: z55.string(),
33467
- slug: z55.string()
33730
+ import { z as z56 } from "zod";
33731
+ var publicProductVariantSchema = z56.object({
33732
+ id: z56.string(),
33733
+ title: z56.string(),
33734
+ sku: z56.string().nullable(),
33735
+ priceCents: z56.number(),
33736
+ stockQuantity: z56.number().nullable(),
33737
+ soldOut: z56.boolean()
33738
+ });
33739
+ var publicProductSchema = z56.object({
33740
+ id: z56.string(),
33741
+ contentEntryId: z56.string().nullable(),
33742
+ title: z56.string(),
33743
+ slug: z56.string(),
33744
+ path: z56.string().nullable(),
33745
+ status: z56.enum(["draft", "active"]),
33746
+ priceCents: z56.number(),
33747
+ currency: z56.string(),
33748
+ productType: z56.enum(["physical", "digital"]),
33749
+ requiresShipping: z56.boolean(),
33750
+ hasVariants: z56.boolean(),
33751
+ trackInventory: z56.boolean(),
33752
+ soldOut: z56.boolean(),
33753
+ category: z56.object({
33754
+ id: z56.string(),
33755
+ name: z56.string(),
33756
+ slug: z56.string()
33468
33757
  }).nullable(),
33469
- summary: z55.string().nullable(),
33470
- body: z55.unknown().nullable(),
33471
- gallery: z55.array(
33472
- z55.object({
33473
- url: z55.string(),
33474
- alt: z55.string().nullable()
33758
+ summary: z56.string().nullable(),
33759
+ body: z56.unknown().nullable(),
33760
+ gallery: z56.array(
33761
+ z56.object({
33762
+ url: z56.string(),
33763
+ alt: z56.string().nullable()
33475
33764
  })
33476
33765
  ),
33477
- variants: z55.array(publicProductVariantSchema)
33766
+ variants: z56.array(publicProductVariantSchema)
33478
33767
  });
33479
- var publicProductsResponseSchema = z55.object({
33480
- products: z55.array(publicProductSchema)
33768
+ var publicProductsResponseSchema = z56.object({
33769
+ products: z56.array(publicProductSchema)
33481
33770
  });
33482
33771
 
33483
33772
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33541,27 +33830,27 @@ function deriveCreditProductLabels(products, options = {}) {
33541
33830
  }
33542
33831
 
33543
33832
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33544
- import { z as z56 } from "zod";
33545
- var storedProductCartItemSchema = z56.object({
33546
- kind: z56.literal("product"),
33547
- productId: z56.string().min(1),
33548
- productCategoryId: z56.string().min(1).optional().nullable(),
33549
- variantId: z56.string().min(1).optional().nullable(),
33550
- title: z56.string().min(1),
33551
- variantTitle: z56.string().optional().nullable(),
33552
- quantity: z56.number().finite(),
33553
- unitPriceCents: z56.number().finite(),
33554
- currency: z56.string().min(1),
33555
- imageUrl: z56.string().optional().nullable(),
33556
- soldOut: z56.boolean().optional()
33557
- });
33558
- var storedPassCartItemSchema = z56.object({
33559
- kind: z56.literal("pass"),
33560
- passId: z56.string().min(1),
33561
- title: z56.string().min(1),
33562
- quantity: z56.number().finite().optional(),
33563
- unitPriceCents: z56.number().finite(),
33564
- currency: z56.string().min(1)
33833
+ import { z as z57 } from "zod";
33834
+ var storedProductCartItemSchema = z57.object({
33835
+ kind: z57.literal("product"),
33836
+ productId: z57.string().min(1),
33837
+ productCategoryId: z57.string().min(1).optional().nullable(),
33838
+ variantId: z57.string().min(1).optional().nullable(),
33839
+ title: z57.string().min(1),
33840
+ variantTitle: z57.string().optional().nullable(),
33841
+ quantity: z57.number().finite(),
33842
+ unitPriceCents: z57.number().finite(),
33843
+ currency: z57.string().min(1),
33844
+ imageUrl: z57.string().optional().nullable(),
33845
+ soldOut: z57.boolean().optional()
33846
+ });
33847
+ var storedPassCartItemSchema = z57.object({
33848
+ kind: z57.literal("pass"),
33849
+ passId: z57.string().min(1),
33850
+ title: z57.string().min(1),
33851
+ quantity: z57.number().finite().optional(),
33852
+ unitPriceCents: z57.number().finite(),
33853
+ currency: z57.string().min(1)
33565
33854
  });
33566
33855
  function deriveCommerceCheckoutState(state) {
33567
33856
  if (state.items.length === 0) {
@@ -33795,214 +34084,214 @@ function formatValidity(days) {
33795
34084
  }
33796
34085
 
33797
34086
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33798
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33799
- var contentEntrySchema3 = z57.object({
33800
- id: z57.string().nullable().optional(),
33801
- slug: z57.string().nullable().optional()
34087
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
34088
+ var contentEntrySchema3 = z58.object({
34089
+ id: z58.string().nullable().optional(),
34090
+ slug: z58.string().nullable().optional()
33802
34091
  }).nullable();
33803
- var shopSourceSchema = z57.object({
33804
- className: z57.string().nullable().optional(),
34092
+ var shopSourceSchema = z58.object({
34093
+ className: z58.string().nullable().optional(),
33805
34094
  mode: shopModeSchema.optional(),
33806
- heading: z57.string().nullable().optional(),
33807
- productSlug: z57.string().nullable().optional(),
33808
- showPasses: z57.boolean().optional(),
33809
- showMemberships: z57.boolean().optional(),
33810
- layout: z57.enum(["grid", "list"]).optional(),
33811
- columns: z57.string().optional(),
33812
- showDescriptions: z57.boolean().optional(),
33813
- showSummary: z57.boolean().optional(),
33814
- showBody: z57.boolean().optional(),
33815
- showPrices: z57.boolean().optional(),
33816
- showValidityPeriod: z57.boolean().optional(),
33817
- showPricePerCredit: z57.boolean().nullable().optional(),
33818
- passesHeading: z57.string().optional(),
33819
- membershipsHeading: z57.string().optional(),
33820
- buyButtonText: z57.string().optional(),
33821
- addButtonText: z57.string().optional(),
33822
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33823
- subscribeButtonText: z57.string().optional(),
33824
- emptyStateText: z57.string().optional(),
33825
- checkoutButtonText: z57.string().optional(),
33826
- clearButtonText: z57.string().optional(),
33827
- submitButtonText: z57.string().optional(),
34095
+ heading: z58.string().nullable().optional(),
34096
+ productSlug: z58.string().nullable().optional(),
34097
+ showPasses: z58.boolean().optional(),
34098
+ showMemberships: z58.boolean().optional(),
34099
+ layout: z58.enum(["grid", "list"]).optional(),
34100
+ columns: z58.string().optional(),
34101
+ showDescriptions: z58.boolean().optional(),
34102
+ showSummary: z58.boolean().optional(),
34103
+ showBody: z58.boolean().optional(),
34104
+ showPrices: z58.boolean().optional(),
34105
+ showValidityPeriod: z58.boolean().optional(),
34106
+ showPricePerCredit: z58.boolean().nullable().optional(),
34107
+ passesHeading: z58.string().optional(),
34108
+ membershipsHeading: z58.string().optional(),
34109
+ buyButtonText: z58.string().optional(),
34110
+ addButtonText: z58.string().optional(),
34111
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
34112
+ subscribeButtonText: z58.string().optional(),
34113
+ emptyStateText: z58.string().optional(),
34114
+ checkoutButtonText: z58.string().optional(),
34115
+ clearButtonText: z58.string().optional(),
34116
+ submitButtonText: z58.string().optional(),
33828
34117
  contentEntry: contentEntrySchema3.optional(),
33829
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33830
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33831
- products: z57.array(publicProductSchema).nullable().optional(),
33832
- siteId: z57.string().optional(),
33833
- apiBaseUrl: z57.string().optional(),
34118
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
34119
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
34120
+ products: z58.array(publicProductSchema).nullable().optional(),
34121
+ siteId: z58.string().optional(),
34122
+ apiBaseUrl: z58.string().optional(),
33834
34123
  stage: previewStageSchema.optional()
33835
34124
  });
33836
- var productVariantOptionDisplaySchema = z57.object({
33837
- id: z57.string(),
33838
- label: z57.string(),
33839
- soldOut: z57.boolean()
33840
- });
33841
- var productCardDisplaySchema = z57.object({
33842
- productId: z57.string(),
33843
- title: z57.string(),
33844
- path: z57.string().nullable(),
33845
- summary: z57.string().nullable(),
33846
- priceLabel: z57.string().nullable(),
33847
- image: z57.object({
33848
- url: z57.string(),
33849
- alt: z57.string().nullable()
34125
+ var productVariantOptionDisplaySchema = z58.object({
34126
+ id: z58.string(),
34127
+ label: z58.string(),
34128
+ soldOut: z58.boolean()
34129
+ });
34130
+ var productCardDisplaySchema = z58.object({
34131
+ productId: z58.string(),
34132
+ title: z58.string(),
34133
+ path: z58.string().nullable(),
34134
+ summary: z58.string().nullable(),
34135
+ priceLabel: z58.string().nullable(),
34136
+ image: z58.object({
34137
+ url: z58.string(),
34138
+ alt: z58.string().nullable()
33850
34139
  }).nullable(),
33851
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33852
- selectedVariantId: z57.string().nullable(),
33853
- selectionLabel: z57.string(),
33854
- actionLabel: z57.string(),
33855
- soldOut: z57.boolean()
33856
- });
33857
- var productListDisplaySchema = z57.object({
33858
- kind: z57.literal("product-list"),
33859
- state: z57.enum(["empty", "ready"]),
33860
- heading: z57.string().nullable(),
33861
- className: z57.string().nullable(),
33862
- layout: z57.enum(["grid", "list"]),
33863
- columns: z57.string(),
33864
- emptyMessage: z57.string(),
33865
- cards: z57.array(productCardDisplaySchema)
33866
- });
33867
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33868
- z57.object({
33869
- kind: z57.literal("product-detail"),
33870
- state: z57.literal("empty"),
33871
- heading: z57.string().nullable(),
33872
- className: z57.string().nullable(),
33873
- emptyMessage: z57.string()
34140
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34141
+ selectedVariantId: z58.string().nullable(),
34142
+ selectionLabel: z58.string(),
34143
+ actionLabel: z58.string(),
34144
+ soldOut: z58.boolean()
34145
+ });
34146
+ var productListDisplaySchema = z58.object({
34147
+ kind: z58.literal("product-list"),
34148
+ state: z58.enum(["empty", "ready"]),
34149
+ heading: z58.string().nullable(),
34150
+ className: z58.string().nullable(),
34151
+ layout: z58.enum(["grid", "list"]),
34152
+ columns: z58.string(),
34153
+ emptyMessage: z58.string(),
34154
+ cards: z58.array(productCardDisplaySchema)
34155
+ });
34156
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
34157
+ z58.object({
34158
+ kind: z58.literal("product-detail"),
34159
+ state: z58.literal("empty"),
34160
+ heading: z58.string().nullable(),
34161
+ className: z58.string().nullable(),
34162
+ emptyMessage: z58.string()
33874
34163
  }),
33875
- z57.object({
33876
- kind: z57.literal("product-detail"),
33877
- state: z57.literal("ready"),
33878
- heading: z57.string().nullable(),
33879
- className: z57.string().nullable(),
33880
- title: z57.string(),
33881
- priceLabel: z57.string(),
33882
- summary: z57.string().nullable(),
33883
- categoryLabel: z57.string().nullable(),
33884
- gallery: z57.array(z57.object({
33885
- url: z57.string(),
33886
- alt: z57.string().nullable()
34164
+ z58.object({
34165
+ kind: z58.literal("product-detail"),
34166
+ state: z58.literal("ready"),
34167
+ heading: z58.string().nullable(),
34168
+ className: z58.string().nullable(),
34169
+ title: z58.string(),
34170
+ priceLabel: z58.string(),
34171
+ summary: z58.string().nullable(),
34172
+ categoryLabel: z58.string().nullable(),
34173
+ gallery: z58.array(z58.object({
34174
+ url: z58.string(),
34175
+ alt: z58.string().nullable()
33887
34176
  })),
33888
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33889
- selectedVariantId: z57.string().nullable(),
33890
- selectionLabel: z57.string(),
33891
- actionLabel: z57.string(),
33892
- soldOut: z57.boolean(),
33893
- body: z57.unknown().nullable()
34177
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
34178
+ selectedVariantId: z58.string().nullable(),
34179
+ selectionLabel: z58.string(),
34180
+ actionLabel: z58.string(),
34181
+ soldOut: z58.boolean(),
34182
+ body: z58.unknown().nullable()
33894
34183
  })
33895
34184
  ]);
33896
- var passCardDisplaySchema = z57.object({
33897
- id: z57.string(),
33898
- title: z57.string(),
33899
- description: z57.string().nullable(),
33900
- priceLabel: z57.string(),
33901
- creditsLabel: z57.string(),
33902
- perCreditLabel: z57.string().nullable(),
33903
- validityLabel: z57.string().nullable(),
33904
- actionLabel: z57.string()
33905
- });
33906
- var membershipCardDisplaySchema = z57.object({
33907
- id: z57.string(),
33908
- title: z57.string(),
33909
- description: z57.string().nullable(),
33910
- priceLabel: z57.string(),
33911
- intervalLabel: z57.string(),
33912
- actionLabel: z57.string()
33913
- });
33914
- var passesMembershipsDisplaySchema = z57.object({
33915
- kind: z57.literal("passes-memberships"),
33916
- state: z57.enum(["empty", "ready"]),
33917
- className: z57.string().nullable(),
33918
- layout: z57.enum(["grid", "list"]),
33919
- columns: z57.string(),
33920
- emptyMessage: z57.string(),
33921
- passesHeading: z57.string(),
33922
- membershipsHeading: z57.string(),
33923
- passes: z57.array(passCardDisplaySchema),
33924
- memberships: z57.array(membershipCardDisplaySchema)
33925
- });
33926
- var cartLineDisplaySchema = z57.object({
33927
- key: z57.string(),
33928
- title: z57.string(),
33929
- priceLabel: z57.string(),
33930
- quantity: z57.number(),
33931
- quantityEditable: z57.boolean()
33932
- });
33933
- var cartDisplaySchema = z57.object({
33934
- kind: z57.literal("cart"),
33935
- state: z57.enum(["empty", "ready"]),
33936
- heading: z57.string().nullable(),
33937
- className: z57.string().nullable(),
33938
- emptyMessage: z57.string(),
33939
- supportText: z57.string().nullable(),
33940
- items: z57.array(cartLineDisplaySchema),
33941
- subtotalLabel: z57.string().nullable(),
33942
- checkoutButtonText: z57.string(),
33943
- clearButtonText: z57.string()
33944
- });
33945
- var checkoutDisplaySchema = z57.object({
33946
- kind: z57.literal("checkout"),
33947
- state: z57.enum(["empty", "blocked", "ready"]),
33948
- heading: z57.string().nullable(),
33949
- className: z57.string().nullable(),
33950
- message: z57.string().nullable(),
33951
- submitButtonText: z57.string()
33952
- });
33953
- var passesMembershipsHydrationSchema = z57.object({
33954
- passes: z57.array(publicPassProductSchema),
33955
- memberships: z57.array(publicMembershipProductSchema),
33956
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33957
- });
33958
- var productListHydrationSchema = z57.object({
33959
- products: z57.array(publicProductSchema),
33960
- showSummary: z57.boolean(),
33961
- showPrices: z57.boolean(),
33962
- addButtonText: z57.string()
33963
- });
33964
- var productDetailHydrationSchema = z57.object({
33965
- products: z57.array(publicProductSchema),
33966
- productId: z57.string().nullable(),
33967
- showSummary: z57.boolean(),
33968
- showBody: z57.boolean(),
33969
- addButtonText: z57.string()
33970
- });
33971
- var cartHydrationSchema = z57.object({
33972
- emptyStateText: z57.string(),
33973
- checkoutButtonText: z57.string(),
33974
- clearButtonText: z57.string()
33975
- });
33976
- var checkoutHydrationSchema = z57.object({
33977
- emptyStateText: z57.string(),
33978
- submitButtonText: z57.string()
33979
- });
33980
- var passesMembershipsRenderSchema = z57.object({
34185
+ var passCardDisplaySchema = z58.object({
34186
+ id: z58.string(),
34187
+ title: z58.string(),
34188
+ description: z58.string().nullable(),
34189
+ priceLabel: z58.string(),
34190
+ creditsLabel: z58.string(),
34191
+ perCreditLabel: z58.string().nullable(),
34192
+ validityLabel: z58.string().nullable(),
34193
+ actionLabel: z58.string()
34194
+ });
34195
+ var membershipCardDisplaySchema = z58.object({
34196
+ id: z58.string(),
34197
+ title: z58.string(),
34198
+ description: z58.string().nullable(),
34199
+ priceLabel: z58.string(),
34200
+ intervalLabel: z58.string(),
34201
+ actionLabel: z58.string()
34202
+ });
34203
+ var passesMembershipsDisplaySchema = z58.object({
34204
+ kind: z58.literal("passes-memberships"),
34205
+ state: z58.enum(["empty", "ready"]),
34206
+ className: z58.string().nullable(),
34207
+ layout: z58.enum(["grid", "list"]),
34208
+ columns: z58.string(),
34209
+ emptyMessage: z58.string(),
34210
+ passesHeading: z58.string(),
34211
+ membershipsHeading: z58.string(),
34212
+ passes: z58.array(passCardDisplaySchema),
34213
+ memberships: z58.array(membershipCardDisplaySchema)
34214
+ });
34215
+ var cartLineDisplaySchema = z58.object({
34216
+ key: z58.string(),
34217
+ title: z58.string(),
34218
+ priceLabel: z58.string(),
34219
+ quantity: z58.number(),
34220
+ quantityEditable: z58.boolean()
34221
+ });
34222
+ var cartDisplaySchema = z58.object({
34223
+ kind: z58.literal("cart"),
34224
+ state: z58.enum(["empty", "ready"]),
34225
+ heading: z58.string().nullable(),
34226
+ className: z58.string().nullable(),
34227
+ emptyMessage: z58.string(),
34228
+ supportText: z58.string().nullable(),
34229
+ items: z58.array(cartLineDisplaySchema),
34230
+ subtotalLabel: z58.string().nullable(),
34231
+ checkoutButtonText: z58.string(),
34232
+ clearButtonText: z58.string()
34233
+ });
34234
+ var checkoutDisplaySchema = z58.object({
34235
+ kind: z58.literal("checkout"),
34236
+ state: z58.enum(["empty", "blocked", "ready"]),
34237
+ heading: z58.string().nullable(),
34238
+ className: z58.string().nullable(),
34239
+ message: z58.string().nullable(),
34240
+ submitButtonText: z58.string()
34241
+ });
34242
+ var passesMembershipsHydrationSchema = z58.object({
34243
+ passes: z58.array(publicPassProductSchema),
34244
+ memberships: z58.array(publicMembershipProductSchema),
34245
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
34246
+ });
34247
+ var productListHydrationSchema = z58.object({
34248
+ products: z58.array(publicProductSchema),
34249
+ showSummary: z58.boolean(),
34250
+ showPrices: z58.boolean(),
34251
+ addButtonText: z58.string()
34252
+ });
34253
+ var productDetailHydrationSchema = z58.object({
34254
+ products: z58.array(publicProductSchema),
34255
+ productId: z58.string().nullable(),
34256
+ showSummary: z58.boolean(),
34257
+ showBody: z58.boolean(),
34258
+ addButtonText: z58.string()
34259
+ });
34260
+ var cartHydrationSchema = z58.object({
34261
+ emptyStateText: z58.string(),
34262
+ checkoutButtonText: z58.string(),
34263
+ clearButtonText: z58.string()
34264
+ });
34265
+ var checkoutHydrationSchema = z58.object({
34266
+ emptyStateText: z58.string(),
34267
+ submitButtonText: z58.string()
34268
+ });
34269
+ var passesMembershipsRenderSchema = z58.object({
33981
34270
  display: passesMembershipsDisplaySchema,
33982
34271
  hydration: passesMembershipsHydrationSchema
33983
34272
  });
33984
- var productListRenderSchema = z57.object({
34273
+ var productListRenderSchema = z58.object({
33985
34274
  display: productListDisplaySchema,
33986
34275
  hydration: productListHydrationSchema
33987
34276
  });
33988
- var productDetailRenderSchema = z57.object({
34277
+ var productDetailRenderSchema = z58.object({
33989
34278
  display: productDetailDisplaySchema,
33990
34279
  hydration: productDetailHydrationSchema
33991
34280
  });
33992
- var cartRenderSchema = z57.object({
34281
+ var cartRenderSchema = z58.object({
33993
34282
  display: cartDisplaySchema,
33994
34283
  hydration: cartHydrationSchema
33995
34284
  });
33996
- var checkoutRenderSchema = z57.object({
34285
+ var checkoutRenderSchema = z58.object({
33997
34286
  display: checkoutDisplaySchema,
33998
34287
  hydration: checkoutHydrationSchema
33999
34288
  });
34000
34289
  function resolveShowPricePerCredit(source) {
34001
34290
  return source.showPricePerCredit ?? true;
34002
34291
  }
34003
- var shopIslandMetaCodec = createZodCodec(z57.object({
34004
- siteId: z57.string().optional(),
34005
- apiBaseUrl: z57.string().optional(),
34292
+ var shopIslandMetaCodec = createZodCodec(z58.object({
34293
+ siteId: z58.string().optional(),
34294
+ apiBaseUrl: z58.string().optional(),
34006
34295
  stage: previewStageSchema.optional()
34007
34296
  }));
34008
34297
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34405,7 +34694,7 @@ var shopBlockDefinition = {
34405
34694
  };
34406
34695
 
34407
34696
  // ../blocks/src/system/blocks/product-list.ts
34408
- import { z as z58 } from "zod";
34697
+ import { z as z59 } from "zod";
34409
34698
  var productListManifest = createBlockManifest({
34410
34699
  id: "block.product-list",
34411
34700
  version: "1.0.0",
@@ -34538,7 +34827,7 @@ var productListBlockDefinition = {
34538
34827
  }
34539
34828
  }
34540
34829
  };
34541
- var productListDataSchema = z58.object({
34830
+ var productListDataSchema = z59.object({
34542
34831
  products: publicProductsResponseSchema.optional()
34543
34832
  });
34544
34833
 
@@ -34799,72 +35088,72 @@ var checkoutBlockDefinition = {
34799
35088
  };
34800
35089
 
34801
35090
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34802
- import { z as z59 } from "zod";
34803
- var publicGiftCardOfferSchema = z59.object({
34804
- id: z59.string(),
34805
- kind: z59.literal("gift_card"),
34806
- title: z59.string(),
34807
- description: z59.string().nullable(),
34808
- sortOrder: z59.number().int(),
34809
- giftCard: z59.object({
34810
- fixedDenominations: z59.array(z59.number().int().positive()),
34811
- customAmountEnabled: z59.boolean(),
34812
- customAmountMinCents: z59.number().int().positive(),
34813
- customAmountMaxCents: z59.number().int().positive()
35091
+ import { z as z60 } from "zod";
35092
+ var publicGiftCardOfferSchema = z60.object({
35093
+ id: z60.string(),
35094
+ kind: z60.literal("gift_card"),
35095
+ title: z60.string(),
35096
+ description: z60.string().nullable(),
35097
+ sortOrder: z60.number().int(),
35098
+ giftCard: z60.object({
35099
+ fixedDenominations: z60.array(z60.number().int().positive()),
35100
+ customAmountEnabled: z60.boolean(),
35101
+ customAmountMinCents: z60.number().int().positive(),
35102
+ customAmountMaxCents: z60.number().int().positive()
34814
35103
  }),
34815
- voucher: z59.null()
34816
- });
34817
- var publicVoucherOfferSchema = z59.object({
34818
- id: z59.string(),
34819
- kind: z59.literal("voucher"),
34820
- title: z59.string(),
34821
- description: z59.string().nullable(),
34822
- sortOrder: z59.number().int(),
34823
- giftCard: z59.null(),
34824
- voucher: z59.object({
34825
- purchaseAmountCents: z59.number().int().positive()
35104
+ voucher: z60.null()
35105
+ });
35106
+ var publicVoucherOfferSchema = z60.object({
35107
+ id: z60.string(),
35108
+ kind: z60.literal("voucher"),
35109
+ title: z60.string(),
35110
+ description: z60.string().nullable(),
35111
+ sortOrder: z60.number().int(),
35112
+ giftCard: z60.null(),
35113
+ voucher: z60.object({
35114
+ purchaseAmountCents: z60.number().int().positive()
34826
35115
  })
34827
35116
  });
34828
- var publicGiftingOffersResponseSchema = z59.object({
34829
- currency: z59.string(),
34830
- giftCards: z59.array(publicGiftCardOfferSchema),
34831
- vouchers: z59.array(publicVoucherOfferSchema)
35117
+ var publicGiftingOffersResponseSchema = z60.object({
35118
+ currency: z60.string(),
35119
+ giftCards: z60.array(publicGiftCardOfferSchema),
35120
+ vouchers: z60.array(publicVoucherOfferSchema)
34832
35121
  });
34833
- var giftingSourceSchema = z59.object({
34834
- siteId: z59.string().optional(),
34835
- apiBaseUrl: z59.string().optional(),
35122
+ var giftingSourceSchema = z60.object({
35123
+ siteId: z60.string().optional(),
35124
+ apiBaseUrl: z60.string().optional(),
34836
35125
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34837
- className: z59.string().nullable().optional(),
34838
- heading: z59.string().nullable().optional(),
34839
- intro: z59.string().nullable().optional(),
34840
- giftCardsHeading: z59.string().nullable().optional(),
34841
- vouchersHeading: z59.string().nullable().optional(),
34842
- emptyStateText: z59.string().nullable().optional(),
34843
- checkoutButtonText: z59.string().nullable().optional(),
34844
- successMessage: z59.string().nullable().optional()
34845
- });
34846
- var giftingDisplaySchema = z59.object({
34847
- kind: z59.literal("gifting"),
34848
- state: z59.literal("ready"),
34849
- className: z59.string().nullable(),
34850
- heading: z59.string(),
34851
- intro: z59.string().nullable(),
34852
- giftCardsHeading: z59.string(),
34853
- vouchersHeading: z59.string(),
34854
- emptyStateText: z59.string()
34855
- });
34856
- var giftingHydrationSchema = z59.object({
35126
+ className: z60.string().nullable().optional(),
35127
+ heading: z60.string().nullable().optional(),
35128
+ intro: z60.string().nullable().optional(),
35129
+ giftCardsHeading: z60.string().nullable().optional(),
35130
+ vouchersHeading: z60.string().nullable().optional(),
35131
+ emptyStateText: z60.string().nullable().optional(),
35132
+ checkoutButtonText: z60.string().nullable().optional(),
35133
+ successMessage: z60.string().nullable().optional()
35134
+ });
35135
+ var giftingDisplaySchema = z60.object({
35136
+ kind: z60.literal("gifting"),
35137
+ state: z60.literal("ready"),
35138
+ className: z60.string().nullable(),
35139
+ heading: z60.string(),
35140
+ intro: z60.string().nullable(),
35141
+ giftCardsHeading: z60.string(),
35142
+ vouchersHeading: z60.string(),
35143
+ emptyStateText: z60.string()
35144
+ });
35145
+ var giftingHydrationSchema = z60.object({
34857
35146
  offers: publicGiftingOffersResponseSchema.nullable(),
34858
- checkoutButtonText: z59.string(),
34859
- successMessage: z59.string()
35147
+ checkoutButtonText: z60.string(),
35148
+ successMessage: z60.string()
34860
35149
  });
34861
- var giftingRenderSchema = z59.object({
35150
+ var giftingRenderSchema = z60.object({
34862
35151
  display: giftingDisplaySchema,
34863
35152
  hydration: giftingHydrationSchema
34864
35153
  });
34865
- var giftingIslandMetaCodec = createZodCodec(z59.object({
34866
- siteId: z59.string().optional(),
34867
- apiBaseUrl: z59.string().optional()
35154
+ var giftingIslandMetaCodec = createZodCodec(z60.object({
35155
+ siteId: z60.string().optional(),
35156
+ apiBaseUrl: z60.string().optional()
34868
35157
  }));
34869
35158
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34870
35159
  "siteId",
@@ -35035,7 +35324,7 @@ var giftingBlockDefinition = {
35035
35324
  };
35036
35325
 
35037
35326
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35038
- import { z as z60 } from "zod";
35327
+ import { z as z61 } from "zod";
35039
35328
 
35040
35329
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
35041
35330
  function parseNewsletterSignupBlockId(value) {
@@ -35142,65 +35431,65 @@ function withOptionalPhone(fields3, includePhone) {
35142
35431
  }
35143
35432
 
35144
35433
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35145
- var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35146
- var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35147
- var newsletterFieldSchema = z60.object({
35148
- id: z60.string(),
35149
- type: z60.enum(["email", "text"]),
35150
- label: z60.string(),
35151
- required: z60.boolean(),
35152
- placeholder: z60.string().optional()
35153
- });
35154
- var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35155
- var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35156
- var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35157
- z60.object({
35158
- tag: z60.literal("block_ref"),
35434
+ var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35435
+ var newsletterDestinationProviderSchema = z61.enum(["riverbank", "mailchimp"]);
35436
+ var newsletterFieldSchema = z61.object({
35437
+ id: z61.string(),
35438
+ type: z61.enum(["email", "text"]),
35439
+ label: z61.string(),
35440
+ required: z61.boolean(),
35441
+ placeholder: z61.string().optional()
35442
+ });
35443
+ var newsletterSignupBlockIdSchema = z61.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35444
+ var signedNewsletterDestinationRefSchema = z61.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35445
+ var newsletterPublicDestinationRefSchema = z61.discriminatedUnion("tag", [
35446
+ z61.object({
35447
+ tag: z61.literal("block_ref"),
35159
35448
  blockId: newsletterSignupBlockIdSchema
35160
35449
  }),
35161
- z60.object({
35162
- tag: z60.literal("signed_destination_ref"),
35450
+ z61.object({
35451
+ tag: z61.literal("signed_destination_ref"),
35163
35452
  token: signedNewsletterDestinationRefSchema
35164
35453
  })
35165
35454
  ]);
35166
- var newsletterSourceSchema = z60.object({
35167
- blockId: z60.string().nullable().optional(),
35168
- siteId: z60.string().optional(),
35169
- apiBaseUrl: z60.string().optional(),
35170
- listId: z60.string().nullable().optional(),
35455
+ var newsletterSourceSchema = z61.object({
35456
+ blockId: z61.string().nullable().optional(),
35457
+ siteId: z61.string().optional(),
35458
+ apiBaseUrl: z61.string().optional(),
35459
+ listId: z61.string().nullable().optional(),
35171
35460
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35172
35461
  preset: newsletterPresetSchema.optional(),
35173
- includePhone: z60.boolean().optional(),
35174
- buttonLabel: z60.string().nullable().optional(),
35175
- successMessage: z60.string().nullable().optional(),
35176
- privacyNote: z60.string().nullable().optional(),
35177
- tags: z60.string().nullable().optional(),
35178
- spamProtectionEnabled: z60.boolean().optional(),
35179
- className: z60.string().nullable().optional()
35180
- });
35181
- var newsletterDisplaySchema = z60.object({
35182
- kind: z60.literal("newsletter-form"),
35183
- className: z60.string().nullable(),
35184
- buttonLabel: z60.string(),
35185
- successMessage: z60.string().nullable(),
35186
- privacyNote: z60.string().nullable(),
35187
- fields: z60.array(newsletterFieldSchema)
35188
- });
35189
- var newsletterHydrationSchema = z60.object({
35462
+ includePhone: z61.boolean().optional(),
35463
+ buttonLabel: z61.string().nullable().optional(),
35464
+ successMessage: z61.string().nullable().optional(),
35465
+ privacyNote: z61.string().nullable().optional(),
35466
+ tags: z61.string().nullable().optional(),
35467
+ spamProtectionEnabled: z61.boolean().optional(),
35468
+ className: z61.string().nullable().optional()
35469
+ });
35470
+ var newsletterDisplaySchema = z61.object({
35471
+ kind: z61.literal("newsletter-form"),
35472
+ className: z61.string().nullable(),
35473
+ buttonLabel: z61.string(),
35474
+ successMessage: z61.string().nullable(),
35475
+ privacyNote: z61.string().nullable(),
35476
+ fields: z61.array(newsletterFieldSchema)
35477
+ });
35478
+ var newsletterHydrationSchema = z61.object({
35190
35479
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35191
- listId: z60.string().nullable().optional(),
35480
+ listId: z61.string().nullable().optional(),
35192
35481
  preset: newsletterPresetSchema,
35193
- includePhone: z60.boolean(),
35194
- tags: z60.string().nullable().optional(),
35195
- spamProtectionEnabled: z60.boolean().optional()
35482
+ includePhone: z61.boolean(),
35483
+ tags: z61.string().nullable().optional(),
35484
+ spamProtectionEnabled: z61.boolean().optional()
35196
35485
  });
35197
- var newsletterRenderSchema = z60.object({
35486
+ var newsletterRenderSchema = z61.object({
35198
35487
  display: newsletterDisplaySchema,
35199
35488
  hydration: newsletterHydrationSchema
35200
35489
  });
35201
- var newsletterIslandMetaCodec = createZodCodec(z60.object({
35202
- siteId: z60.string().optional(),
35203
- apiBaseUrl: z60.string().optional()
35490
+ var newsletterIslandMetaCodec = createZodCodec(z61.object({
35491
+ siteId: z61.string().optional(),
35492
+ apiBaseUrl: z61.string().optional()
35204
35493
  }));
35205
35494
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35206
35495
  function buildNewsletterDisplay(source) {
@@ -35339,23 +35628,23 @@ var newsletterSignupBlockDefinition = {
35339
35628
  };
35340
35629
 
35341
35630
  // ../blocks/src/system/blocks/team-members.ts
35342
- import { z as z61 } from "zod";
35631
+ import { z as z62 } from "zod";
35343
35632
  var ITEM_NAME2 = "member";
35344
35633
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35345
35634
  message: "Team member photos must be image media"
35346
35635
  }).nullable();
35347
- var teamMemberDataSchema = z61.object({
35348
- _type: z61.literal("teamMember"),
35349
- id: z61.string(),
35350
- name: z61.string(),
35351
- role: z61.string().nullable(),
35352
- roleLabel: z61.string().nullable(),
35353
- bio: z61.string().nullable(),
35354
- summary: z61.string().nullable(),
35636
+ var teamMemberDataSchema = z62.object({
35637
+ _type: z62.literal("teamMember"),
35638
+ id: z62.string(),
35639
+ name: z62.string(),
35640
+ role: z62.string().nullable(),
35641
+ roleLabel: z62.string().nullable(),
35642
+ bio: z62.string().nullable(),
35643
+ summary: z62.string().nullable(),
35355
35644
  photo: teamMemberPhotoSchema,
35356
- profilePath: z61.string().nullable()
35645
+ profilePath: z62.string().nullable()
35357
35646
  });
35358
- var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35647
+ var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35359
35648
  var dynamicSourceWhen = { equals: "site_staff" };
35360
35649
  var manualSourceWhen = { equals: "site_staff", not: true };
35361
35650
  var headingNode = text(
@@ -36461,6 +36750,10 @@ var systemBlockDefinitionsRaw = [
36461
36750
  flow: conversionFlow,
36462
36751
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
36463
36752
  })),
36753
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36754
+ flow: offeringsFlow,
36755
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
36756
+ })),
36464
36757
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
36465
36758
  flow: conversionFlow,
36466
36759
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -38144,34 +38437,34 @@ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38144
38437
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
38145
38438
 
38146
38439
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
38147
- import { z as z62 } from "zod";
38148
- var themeBridgeConfigSchema = z62.object({
38149
- tokens: z62.record(z62.string(), z62.string()),
38150
- typography: z62.object({
38151
- headingFamily: z62.string().optional(),
38152
- bodyFamily: z62.string().optional(),
38153
- headingWeight: z62.number().optional(),
38154
- bodyWeight: z62.number().optional()
38440
+ import { z as z63 } from "zod";
38441
+ var themeBridgeConfigSchema = z63.object({
38442
+ tokens: z63.record(z63.string(), z63.string()),
38443
+ typography: z63.object({
38444
+ headingFamily: z63.string().optional(),
38445
+ bodyFamily: z63.string().optional(),
38446
+ headingWeight: z63.number().optional(),
38447
+ bodyWeight: z63.number().optional()
38155
38448
  }).optional(),
38156
- spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38157
- corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38158
- shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38159
- components: z62.object({
38160
- buttons: z62.union([
38161
- z62.boolean(),
38162
- z62.object({
38163
- variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
38449
+ spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
38450
+ corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
38451
+ shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
38452
+ components: z63.object({
38453
+ buttons: z63.union([
38454
+ z63.boolean(),
38455
+ z63.object({
38456
+ variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
38164
38457
  })
38165
38458
  ]).optional(),
38166
- cards: z62.union([
38167
- z62.boolean(),
38168
- z62.object({
38169
- variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
38459
+ cards: z63.union([
38460
+ z63.boolean(),
38461
+ z63.object({
38462
+ variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
38170
38463
  })
38171
38464
  ]).optional(),
38172
- inputs: z62.boolean().optional()
38465
+ inputs: z63.boolean().optional()
38173
38466
  }).optional(),
38174
- overrides: z62.record(z62.string(), z62.string()).optional()
38467
+ overrides: z63.record(z63.string(), z63.string()).optional()
38175
38468
  }).passthrough();
38176
38469
 
38177
38470
  // ../theme-core/src/siteChrome.tsx
@@ -38389,14 +38682,21 @@ function coercePayload(payload) {
38389
38682
 
38390
38683
  // ../blocks/src/system/data/prefetchBlockData.ts
38391
38684
  async function prefetchBlockData(page, context, options) {
38392
- const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders } = options;
38685
+ const {
38686
+ apiClient,
38687
+ isValidEndpoint,
38688
+ onError,
38689
+ getCustomBlockLoaders,
38690
+ getBlockDefinition: getBlockDefinition2 = getBlockDefinition,
38691
+ resolveParamsBindings: resolveParamsBindings2 = resolveParamsBindings
38692
+ } = options;
38393
38693
  const results = {};
38394
38694
  const tasks = [];
38395
38695
  for (const block of page.blocks) {
38396
38696
  const blockId = block.id;
38397
38697
  if (!blockId) continue;
38398
38698
  let loaders;
38399
- const def = getBlockDefinition(block.kind);
38699
+ const def = getBlockDefinition2(block.kind);
38400
38700
  if (def) {
38401
38701
  loaders = normalizeDataLoaders(def);
38402
38702
  } else if (getCustomBlockLoaders) {
@@ -38419,14 +38719,14 @@ async function prefetchBlockData(page, context, options) {
38419
38719
  continue;
38420
38720
  }
38421
38721
  if (typeof loader.when !== "undefined") {
38422
- const resolvedWhen = resolveParamsBindings(loader.when, vm, {
38722
+ const resolvedWhen = resolveParamsBindings2(loader.when, vm, {
38423
38723
  blockKind: block.kind
38424
38724
  });
38425
38725
  if (resolvedWhen !== true) {
38426
38726
  continue;
38427
38727
  }
38428
38728
  }
38429
- const rawParams = resolveParamsBindings(loader.params, vm, {
38729
+ const rawParams = resolveParamsBindings2(loader.params, vm, {
38430
38730
  blockKind: block.kind
38431
38731
  });
38432
38732
  const params = normalizeParams(rawParams);
@@ -38469,7 +38769,8 @@ var SUPPORTED_LOADER_ENDPOINTS = [
38469
38769
  "listPublicPasses",
38470
38770
  "listPublicMemberships",
38471
38771
  "getPublicFormById",
38472
- "getPublicBookingServices"
38772
+ "getPublicBookingServices",
38773
+ "getPublicWeeklySlotAvailability"
38473
38774
  ];
38474
38775
 
38475
38776
  // ../blocks/src/system/data/normalizeLoaderParams.ts
@@ -38508,6 +38809,10 @@ function normalizeLoaderParams(endpoint, params, context) {
38508
38809
  ensureSiteId(out, context);
38509
38810
  return out;
38510
38811
  }
38812
+ if (endpoint === "getPublicWeeklySlotAvailability") {
38813
+ ensureSiteId(out, context);
38814
+ return out;
38815
+ }
38511
38816
  if (endpoint === "listPublicEvents") {
38512
38817
  ensureSiteId(out, context);
38513
38818
  return out;
@@ -38540,17 +38845,17 @@ function normalizeLoaderParams(endpoint, params, context) {
38540
38845
  function unsafeRetypeZodSchema(schema) {
38541
38846
  return schema;
38542
38847
  }
38543
- var navIdListSchema = z63.preprocess((value) => {
38848
+ var navIdListSchema = z64.preprocess((value) => {
38544
38849
  if (!Array.isArray(value)) return void 0;
38545
38850
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
38546
38851
  return filtered.length > 0 ? filtered : void 0;
38547
- }, z63.array(z63.string()).max(200).optional());
38548
- var dashboardNavVisibilityBaseSchema = z63.object({
38549
- mode: z63.enum(["augment", "restrict"]).optional(),
38852
+ }, z64.array(z64.string()).max(200).optional());
38853
+ var dashboardNavVisibilityBaseSchema = z64.object({
38854
+ mode: z64.enum(["augment", "restrict"]).optional(),
38550
38855
  allowIds: navIdListSchema,
38551
38856
  denyIds: navIdListSchema
38552
38857
  }).strip();
38553
- var dashboardNavVisibilityRolesSchema = z63.object({
38858
+ var dashboardNavVisibilityRolesSchema = z64.object({
38554
38859
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38555
38860
  editor: dashboardNavVisibilityBaseSchema.optional(),
38556
38861
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38558,63 +38863,63 @@ var dashboardNavVisibilityRolesSchema = z63.object({
38558
38863
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38559
38864
  roles: dashboardNavVisibilityRolesSchema
38560
38865
  }).strip();
38561
- var dashboardNavigationConfigSchema = z63.object({
38866
+ var dashboardNavigationConfigSchema = z64.object({
38562
38867
  siteNav: dashboardNavVisibilitySchema.optional(),
38563
38868
  settingsNav: dashboardNavVisibilitySchema.optional()
38564
38869
  }).strip();
38565
- var dashboardConfigSchema = z63.object({
38566
- previewEditingEnabled: z63.boolean().optional(),
38870
+ var dashboardConfigSchema = z64.object({
38871
+ previewEditingEnabled: z64.boolean().optional(),
38567
38872
  navigation: dashboardNavigationConfigSchema.optional()
38568
38873
  }).strip();
38569
38874
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38570
38875
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38571
- var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38572
- var loaderFallbackScalarSchema = z63.union([
38573
- z63.string(),
38574
- z63.number(),
38575
- z63.boolean(),
38576
- z63.null()
38876
+ var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
38877
+ var loaderFallbackScalarSchema = z64.union([
38878
+ z64.string(),
38879
+ z64.number(),
38880
+ z64.boolean(),
38881
+ z64.null()
38577
38882
  ]);
38578
- var loaderParamBindingSchema = z63.object({
38579
- $bind: z63.object({
38580
- from: z63.string().min(1, "Binding path is required"),
38883
+ var loaderParamBindingSchema = z64.object({
38884
+ $bind: z64.object({
38885
+ from: z64.string().min(1, "Binding path is required"),
38581
38886
  fallback: loaderFallbackScalarSchema.optional()
38582
38887
  })
38583
38888
  });
38584
- var loaderParamValueSchema = z63.union([
38585
- z63.string(),
38586
- z63.number(),
38587
- z63.boolean(),
38889
+ var loaderParamValueSchema = z64.union([
38890
+ z64.string(),
38891
+ z64.number(),
38892
+ z64.boolean(),
38588
38893
  loaderParamBindingSchema
38589
38894
  ]);
38590
- var sdkConfigLoaderSchema = z63.object({
38895
+ var sdkConfigLoaderSchema = z64.object({
38591
38896
  endpoint: sdkLoaderEndpointSchema,
38592
- params: z63.record(z63.string(), loaderParamValueSchema),
38593
- mode: z63.enum(["server", "client"]).default("server")
38897
+ params: z64.record(z64.string(), loaderParamValueSchema),
38898
+ mode: z64.enum(["server", "client"]).default("server")
38594
38899
  });
38595
- var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38596
- var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38900
+ var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38901
+ var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38597
38902
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38598
38903
  }).transform((value) => value);
38599
- var sdkCustomBlockInputSchema = z63.object({
38904
+ var sdkCustomBlockInputSchema = z64.object({
38600
38905
  id: sdkCustomBlockIdSchema,
38601
- title: z63.string().min(1),
38602
- titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38603
- description: z63.string().optional(),
38906
+ title: z64.string().min(1),
38907
+ titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
38908
+ description: z64.string().optional(),
38604
38909
  category: blockCategoryEnum,
38605
- icon: z63.string().optional(),
38606
- tags: z63.array(z63.string()).optional(),
38910
+ icon: z64.string().optional(),
38911
+ tags: z64.array(z64.string()).optional(),
38607
38912
  fields: fieldDefinitionInputSchema.array().min(1),
38608
38913
  dataLoaders: sdkDataLoadersSchema,
38609
38914
  layout: NodeSchema.optional(),
38610
- variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38611
- defaultVariant: z63.string().min(1).optional(),
38612
- variantOptions: z63.record(
38613
- z63.string().min(1),
38614
- z63.object({
38615
- label: z63.string().min(1).optional(),
38616
- description: z63.string().min(1).optional(),
38617
- icon: z63.string().min(1).optional()
38915
+ variants: z64.record(z64.string().min(1), NodeSchema).optional(),
38916
+ defaultVariant: z64.string().min(1).optional(),
38917
+ variantOptions: z64.record(
38918
+ z64.string().min(1),
38919
+ z64.object({
38920
+ label: z64.string().min(1).optional(),
38921
+ description: z64.string().min(1).optional(),
38922
+ icon: z64.string().min(1).optional()
38618
38923
  })
38619
38924
  ).optional(),
38620
38925
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38625,7 +38930,7 @@ var sdkCustomBlockInputSchema = z63.object({
38625
38930
  const exists = data.fields.some((field) => field.id === source);
38626
38931
  if (!exists) {
38627
38932
  ctx.addIssue({
38628
- code: z63.ZodIssueCode.custom,
38933
+ code: z64.ZodIssueCode.custom,
38629
38934
  message: `titleSource must reference a valid field ID (got "${source}")`,
38630
38935
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38631
38936
  });
@@ -38634,7 +38939,7 @@ var sdkCustomBlockInputSchema = z63.object({
38634
38939
  }
38635
38940
  if (data.layout && data.variants) {
38636
38941
  ctx.addIssue({
38637
- code: z63.ZodIssueCode.custom,
38942
+ code: z64.ZodIssueCode.custom,
38638
38943
  message: "Custom block must define either `layout` or `variants`, not both",
38639
38944
  path: ["variants"]
38640
38945
  });
@@ -38643,14 +38948,14 @@ var sdkCustomBlockInputSchema = z63.object({
38643
38948
  const keys = Object.keys(data.variants);
38644
38949
  if (keys.length === 0) {
38645
38950
  ctx.addIssue({
38646
- code: z63.ZodIssueCode.custom,
38951
+ code: z64.ZodIssueCode.custom,
38647
38952
  message: "`variants` must contain at least one variant key",
38648
38953
  path: ["variants"]
38649
38954
  });
38650
38955
  }
38651
38956
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38652
38957
  ctx.addIssue({
38653
- code: z63.ZodIssueCode.custom,
38958
+ code: z64.ZodIssueCode.custom,
38654
38959
  message: "`defaultVariant` must be a key present in `variants`",
38655
38960
  path: ["defaultVariant"]
38656
38961
  });
@@ -38659,7 +38964,7 @@ var sdkCustomBlockInputSchema = z63.object({
38659
38964
  for (const key of Object.keys(data.variantOptions)) {
38660
38965
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38661
38966
  ctx.addIssue({
38662
- code: z63.ZodIssueCode.custom,
38967
+ code: z64.ZodIssueCode.custom,
38663
38968
  message: "`variantOptions` key must exist in `variants`",
38664
38969
  path: ["variantOptions", key]
38665
38970
  });
@@ -38668,78 +38973,78 @@ var sdkCustomBlockInputSchema = z63.object({
38668
38973
  }
38669
38974
  }
38670
38975
  });
38671
- var sdkBlockFieldExtensionInputSchema = z63.object({
38976
+ var sdkBlockFieldExtensionInputSchema = z64.object({
38672
38977
  fields: fieldDefinitionInputSchema.array().min(1)
38673
38978
  });
38674
- var sdkBlockFieldExtensionsInputSchema = z63.record(
38675
- z63.string().min(1),
38979
+ var sdkBlockFieldExtensionsInputSchema = z64.record(
38980
+ z64.string().min(1),
38676
38981
  sdkBlockFieldExtensionInputSchema
38677
38982
  );
38678
- var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38679
- var sdkThemeConfigSchema = z63.object({
38983
+ var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
38984
+ var sdkThemeConfigSchema = z64.object({
38680
38985
  palette: sdkThemePaletteSchema
38681
38986
  });
38682
- var sdkSectionBackgroundSchema = z63.object({
38683
- id: z63.string().min(1),
38684
- label: z63.string().min(1),
38685
- token: z63.string().min(1)
38987
+ var sdkSectionBackgroundSchema = z64.object({
38988
+ id: z64.string().min(1),
38989
+ label: z64.string().min(1),
38990
+ token: z64.string().min(1)
38686
38991
  });
38687
- var sdkSectionOptionsConfigSchema = z63.object({
38688
- backgroundColor: z63.boolean().optional(),
38689
- backgroundImage: z63.boolean().optional(),
38690
- backgroundGradient: z63.boolean().optional(),
38691
- spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38692
- textColor: z63.boolean().optional()
38992
+ var sdkSectionOptionsConfigSchema = z64.object({
38993
+ backgroundColor: z64.boolean().optional(),
38994
+ backgroundImage: z64.boolean().optional(),
38995
+ backgroundGradient: z64.boolean().optional(),
38996
+ spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
38997
+ textColor: z64.boolean().optional()
38693
38998
  });
38694
- var sdkContainerOptionsConfigSchema = z63.object({
38695
- maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38696
- alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38999
+ var sdkContainerOptionsConfigSchema = z64.object({
39000
+ maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
39001
+ alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38697
39002
  });
38698
- var sdkSiteStyleConfigSchema = z63.object({
38699
- sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
39003
+ var sdkSiteStyleConfigSchema = z64.object({
39004
+ sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38700
39005
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38701
39006
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38702
39007
  });
38703
- var sdkSiteLayoutConfigSchema = z63.object({
38704
- footerBlocks: z63.array(
38705
- z63.object({
38706
- id: z63.string().min(1).optional(),
38707
- kind: z63.string().min(1),
38708
- content: z63.record(z63.string(), z63.unknown()).optional()
39008
+ var sdkSiteLayoutConfigSchema = z64.object({
39009
+ footerBlocks: z64.array(
39010
+ z64.object({
39011
+ id: z64.string().min(1).optional(),
39012
+ kind: z64.string().min(1),
39013
+ content: z64.record(z64.string(), z64.unknown()).optional()
38709
39014
  })
38710
39015
  ).optional()
38711
39016
  });
38712
- var sdkFieldSelectOptionSchema = z63.object({
38713
- value: z63.string(),
38714
- label: z63.string()
39017
+ var sdkFieldSelectOptionSchema = z64.object({
39018
+ value: z64.string(),
39019
+ label: z64.string()
38715
39020
  });
38716
- var sdkBlockFieldConfigSchema = z63.object({
38717
- options: z63.array(sdkFieldSelectOptionSchema).optional()
39021
+ var sdkBlockFieldConfigSchema = z64.object({
39022
+ options: z64.array(sdkFieldSelectOptionSchema).optional()
38718
39023
  });
38719
- var sdkBlockFieldOptionsMapSchema = z63.record(
38720
- z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39024
+ var sdkBlockFieldOptionsMapSchema = z64.record(
39025
+ z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38721
39026
  message: "Block ID must be 'block.*' or 'custom.*' format"
38722
39027
  }),
38723
- z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
39028
+ z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38724
39029
  ).optional();
38725
- var sdkContentTypeTemplateConfigSchema = z63.object({
38726
- blocks: z63.array(z63.unknown())
39030
+ var sdkContentTypeTemplateConfigSchema = z64.object({
39031
+ blocks: z64.array(z64.unknown())
38727
39032
  }).passthrough();
38728
- var sdkContentTypeOrderingConfigSchema = z63.object({
38729
- mode: z63.enum(["default", "manual"]).optional()
39033
+ var sdkContentTypeOrderingConfigSchema = z64.object({
39034
+ mode: z64.enum(["default", "manual"]).optional()
38730
39035
  }).optional();
38731
- var sdkContentTypeConfigSchema = z63.object({
38732
- key: z63.string().min(1),
38733
- fields: z63.array(z63.unknown()),
39036
+ var sdkContentTypeConfigSchema = z64.object({
39037
+ key: z64.string().min(1),
39038
+ fields: z64.array(z64.unknown()),
38734
39039
  ordering: sdkContentTypeOrderingConfigSchema,
38735
39040
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38736
39041
  }).passthrough();
38737
- var sdkContentConfigSchema = z63.object({
38738
- contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38739
- pages: z63.array(z63.unknown()).optional(),
38740
- entries: z63.array(z63.unknown()).optional(),
38741
- navigationMenus: z63.array(z63.unknown()).optional(),
38742
- settings: z63.unknown().optional()
39042
+ var sdkContentConfigSchema = z64.object({
39043
+ contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
39044
+ pages: z64.array(z64.unknown()).optional(),
39045
+ entries: z64.array(z64.unknown()).optional(),
39046
+ navigationMenus: z64.array(z64.unknown()).optional(),
39047
+ settings: z64.unknown().optional()
38743
39048
  }).passthrough();
38744
39049
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38745
39050
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38754,62 +39059,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38754
39059
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38755
39060
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38756
39061
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38757
- var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
39062
+ var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38758
39063
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38759
39064
  });
38760
- var sdkWorkflowEndpointSchema = z63.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38761
- var sdkWorkflowManualTriggerSchema = z63.object({
38762
- type: z63.literal("manual")
39065
+ 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 "/"' });
39066
+ var sdkWorkflowManualTriggerSchema = z64.object({
39067
+ type: z64.literal("manual")
38763
39068
  }).strict();
38764
- var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
39069
+ var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38765
39070
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38766
39071
  });
38767
- var sdkWorkflowFieldChangedConditionSchema = z63.object({
39072
+ var sdkWorkflowFieldChangedConditionSchema = z64.object({
38768
39073
  field: sdkWorkflowTriggerFieldSchema,
38769
- changed: z63.literal(true)
39074
+ changed: z64.literal(true)
38770
39075
  }).strict();
38771
- var sdkWorkflowFieldEmptyConditionSchema = z63.object({
39076
+ var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38772
39077
  field: sdkWorkflowTriggerFieldSchema,
38773
- isEmpty: z63.boolean()
39078
+ isEmpty: z64.boolean()
38774
39079
  }).strict();
38775
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38776
- type: z63.literal("entry.draft.updated"),
38777
- when: z63.array(
38778
- z63.union([
39080
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
39081
+ type: z64.literal("entry.draft.updated"),
39082
+ when: z64.array(
39083
+ z64.union([
38779
39084
  sdkWorkflowFieldChangedConditionSchema,
38780
39085
  sdkWorkflowFieldEmptyConditionSchema
38781
39086
  ])
38782
39087
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38783
39088
  }).strict();
38784
- var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
39089
+ var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38785
39090
  sdkWorkflowManualTriggerSchema,
38786
39091
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38787
39092
  ]);
38788
- var sdkWorkflowConfirmationSchema = z63.object({
38789
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38790
- body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
39093
+ var sdkWorkflowConfirmationSchema = z64.object({
39094
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
39095
+ body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38791
39096
  }).strict();
38792
- var sdkWorkflowConfigSchema = z63.object({
39097
+ var sdkWorkflowConfigSchema = z64.object({
38793
39098
  id: sdkWorkflowIdSchema,
38794
- title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38795
- description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38796
- contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
39099
+ title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
39100
+ description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
39101
+ contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38797
39102
  endpoint: sdkWorkflowEndpointSchema,
38798
- triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
39103
+ triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38799
39104
  confirmation: sdkWorkflowConfirmationSchema.optional()
38800
39105
  }).strict();
38801
- var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
39106
+ var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38802
39107
  const ids = workflows.map((workflow) => workflow.id);
38803
39108
  return ids.length === new Set(ids).size;
38804
39109
  }, { message: "Workflow IDs must be unique" }).optional();
38805
- var riverbankSiteConfigInputSchema = z63.object({
38806
- siteId: z63.string().uuid(),
38807
- previewUrl: z63.string().url().optional(),
38808
- liveUrl: z63.string().url().optional(),
39110
+ var riverbankSiteConfigInputSchema = z64.object({
39111
+ siteId: z64.string().uuid(),
39112
+ previewUrl: z64.string().url().optional(),
39113
+ liveUrl: z64.string().url().optional(),
38809
39114
  theme: sdkThemeConfigSchema.optional(),
38810
39115
  styles: sdkSiteStyleConfigSchema.optional(),
38811
39116
  layout: sdkSiteLayoutConfigSchema.optional(),
38812
- customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
39117
+ customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38813
39118
  const ids = blocks.map((b) => b.id);
38814
39119
  return ids.length === new Set(ids).size;
38815
39120
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38817,50 +39122,51 @@ var riverbankSiteConfigInputSchema = z63.object({
38817
39122
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38818
39123
  workflows: sdkWorkflowsSchema,
38819
39124
  content: sdkContentConfigSchema.optional(),
38820
- contentDir: z63.string().optional(),
38821
- sync: z63.object({
38822
- existingEntries: z63.enum(["skip", "update"]).optional()
39125
+ contentDir: z64.string().optional(),
39126
+ sync: z64.object({
39127
+ existingEntries: z64.enum(["skip", "update"]).optional()
38823
39128
  }).optional(),
38824
- deploy: z63.object({
38825
- verifyCommand: z63.string().optional(),
38826
- prebuildOutput: z63.string().optional()
39129
+ deploy: z64.object({
39130
+ verifyCommand: z64.string().optional(),
39131
+ prebuildOutput: z64.string().optional()
38827
39132
  }).optional(),
38828
- themeSource: z63.enum(["local", "cms"]).optional(),
38829
- activeTheme: z63.string().optional(),
38830
- enablePortal: z63.boolean().optional(),
39133
+ themeSource: z64.enum(["local", "cms"]).optional(),
39134
+ activeTheme: z64.string().optional(),
39135
+ enablePortal: z64.boolean().optional(),
38831
39136
  dashboard: dashboardConfigSchema.optional()
38832
39137
  }).strict();
38833
- var pushSdkConfigBodySchema = z63.object({
39138
+ var pushSdkConfigBodySchema = z64.object({
38834
39139
  config: riverbankSiteConfigInputSchema,
38835
- forceContentTypes: z63.boolean().optional()
39140
+ forceContentTypes: z64.boolean().optional(),
39141
+ mode: z64.enum(["apply", "preview"]).optional()
38836
39142
  }).strict();
38837
39143
 
38838
39144
  // ../api/src/siteOnboarding.ts
38839
- import { z as z64 } from "zod";
39145
+ import { z as z65 } from "zod";
38840
39146
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38841
39147
  configure_appointments: {
38842
39148
  requirementId: "configure_appointments",
38843
39149
  reason: "launch_anyway"
38844
39150
  }
38845
39151
  };
38846
- var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
39152
+ var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38847
39153
  "requirementId",
38848
39154
  [
38849
- z64.object({
38850
- requirementId: z64.literal("review_generated_site")
39155
+ z65.object({
39156
+ requirementId: z65.literal("review_generated_site")
38851
39157
  }),
38852
- z64.object({
38853
- requirementId: z64.literal(
39158
+ z65.object({
39159
+ requirementId: z65.literal(
38854
39160
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38855
39161
  ),
38856
- overrideReason: z64.literal(
39162
+ overrideReason: z65.literal(
38857
39163
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38858
39164
  )
38859
39165
  })
38860
39166
  ]
38861
39167
  );
38862
- var goLiveSiteRequestSchema = z64.object({
38863
- acceptExtraSiteCharge: z64.boolean().optional()
39168
+ var goLiveSiteRequestSchema = z65.object({
39169
+ acceptExtraSiteCharge: z65.boolean().optional()
38864
39170
  });
38865
39171
 
38866
39172
  // ../surfaces/src/index.ts
@@ -38979,7 +39285,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38979
39285
  ];
38980
39286
 
38981
39287
  // ../api/src/bookingVerticals.ts
38982
- import { z as z65 } from "zod";
39288
+ import { z as z66 } from "zod";
38983
39289
  var VERTICAL_IDS = [
38984
39290
  "yoga_wellness",
38985
39291
  "fitness_pt",
@@ -39144,39 +39450,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
39144
39450
  }
39145
39451
  return [...issues];
39146
39452
  }
39147
- var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
39453
+ var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
39148
39454
  const parsed = parseVerticalId(value);
39149
39455
  if (!parsed) {
39150
39456
  ctx.addIssue({
39151
- code: z65.ZodIssueCode.custom,
39457
+ code: z66.ZodIssueCode.custom,
39152
39458
  message: "Unknown booking vertical"
39153
39459
  });
39154
- return z65.NEVER;
39460
+ return z66.NEVER;
39155
39461
  }
39156
39462
  return parsed;
39157
39463
  });
39158
- var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
39464
+ var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
39159
39465
  const parsed = parseVerticalPresetId(value);
39160
39466
  if (!parsed) {
39161
39467
  ctx.addIssue({
39162
- code: z65.ZodIssueCode.custom,
39468
+ code: z66.ZodIssueCode.custom,
39163
39469
  message: "Unknown booking preset"
39164
39470
  });
39165
- return z65.NEVER;
39471
+ return z66.NEVER;
39166
39472
  }
39167
39473
  return parsed;
39168
39474
  });
39169
- var BookingVerticalConfigSchema = z65.object({
39475
+ var BookingVerticalConfigSchema = z66.object({
39170
39476
  verticalId: VerticalIdSchema.nullable(),
39171
- selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
39477
+ selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
39172
39478
  }).transform((value, ctx) => {
39173
39479
  const resolved = resolveSiteVerticalBookingConfig(value);
39174
39480
  if (resolved.kind === "invalid") {
39175
39481
  ctx.addIssue({
39176
- code: z65.ZodIssueCode.custom,
39482
+ code: z66.ZodIssueCode.custom,
39177
39483
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
39178
39484
  });
39179
- return z65.NEVER;
39485
+ return z66.NEVER;
39180
39486
  }
39181
39487
  return resolved.config;
39182
39488
  });
@@ -39203,51 +39509,51 @@ function isRecord9(value) {
39203
39509
  }
39204
39510
 
39205
39511
  // ../api/src/appointmentSetup.ts
39206
- import { z as z66 } from "zod";
39512
+ import { z as z67 } from "zod";
39207
39513
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
39208
- var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
39209
- z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
39210
- z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
39514
+ var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
39515
+ z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
39516
+ z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
39211
39517
  ]);
39212
- var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
39213
- z66.object({ kind: z66.literal("none") }),
39214
- z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
39215
- z66.object({
39216
- kind: z66.literal("create"),
39217
- draftId: z66.string().min(1),
39218
- title: z66.string().trim().min(1),
39219
- description: z66.string().nullable(),
39220
- timezone: z66.string().trim().min(1).nullable(),
39221
- addressJson: z66.record(z66.string(), z66.unknown()),
39222
- locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
39518
+ var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
39519
+ z67.object({ kind: z67.literal("none") }),
39520
+ z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
39521
+ z67.object({
39522
+ kind: z67.literal("create"),
39523
+ draftId: z67.string().min(1),
39524
+ title: z67.string().trim().min(1),
39525
+ description: z67.string().nullable(),
39526
+ timezone: z67.string().trim().min(1).nullable(),
39527
+ addressJson: z67.record(z67.string(), z67.unknown()),
39528
+ locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
39223
39529
  })
39224
39530
  ]);
39225
- var appointmentSetupPaymentDraftSchema = z66.object({
39226
- priceType: z66.union([z66.literal("free"), z66.literal("paid")])
39227
- });
39228
- var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
39229
- z66.object({ kind: z66.literal("all_practitioners") }),
39230
- z66.object({
39231
- kind: z66.literal("selected_practitioners"),
39232
- resourceRefs: z66.array(appointmentSetupRefSchema)
39531
+ var appointmentSetupPaymentDraftSchema = z67.object({
39532
+ priceType: z67.union([z67.literal("free"), z67.literal("paid")])
39533
+ });
39534
+ var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
39535
+ z67.object({ kind: z67.literal("all_practitioners") }),
39536
+ z67.object({
39537
+ kind: z67.literal("selected_practitioners"),
39538
+ resourceRefs: z67.array(appointmentSetupRefSchema)
39233
39539
  })
39234
39540
  ]);
39235
- var appointmentSetupServiceDraftSchema = z66.object({
39541
+ var appointmentSetupServiceDraftSchema = z67.object({
39236
39542
  ref: appointmentSetupRefSchema,
39237
- title: z66.string().trim().min(1),
39238
- description: z66.string().nullable(),
39239
- durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39240
- prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39241
- cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39242
- priceAmount: z66.number().int().nonnegative().nullable(),
39243
- isActive: z66.boolean(),
39244
- locationType: z66.union([
39245
- z66.literal("virtual"),
39246
- z66.literal("in_person"),
39247
- z66.literal("hybrid")
39543
+ title: z67.string().trim().min(1),
39544
+ description: z67.string().nullable(),
39545
+ durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39546
+ prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39547
+ cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39548
+ priceAmount: z67.number().int().nonnegative().nullable(),
39549
+ isActive: z67.boolean(),
39550
+ locationType: z67.union([
39551
+ z67.literal("virtual"),
39552
+ z67.literal("in_person"),
39553
+ z67.literal("hybrid")
39248
39554
  ]),
39249
39555
  venue: appointmentSetupVenueChoiceSchema,
39250
- timezone: z66.string().trim().min(1).nullable(),
39556
+ timezone: z67.string().trim().min(1).nullable(),
39251
39557
  payment: appointmentSetupPaymentDraftSchema,
39252
39558
  assignment: appointmentSetupServiceAssignmentDraftSchema
39253
39559
  }).superRefine((service, ctx) => {
@@ -39266,49 +39572,49 @@ var appointmentSetupServiceDraftSchema = z66.object({
39266
39572
  });
39267
39573
  }
39268
39574
  });
39269
- var appointmentSetupPractitionerDraftSchema = z66.object({
39575
+ var appointmentSetupPractitionerDraftSchema = z67.object({
39270
39576
  ref: appointmentSetupRefSchema,
39271
- displayName: z66.string().trim().min(1),
39272
- bio: z66.string().nullable(),
39273
- timezone: z66.string().trim().min(1),
39274
- colorHex: z66.string().nullable()
39275
- });
39276
- var appointmentSetupWeeklyWindowDraftSchema = z66.object({
39277
- weekday: z66.number().int().min(0).max(6),
39278
- startTime: z66.string(),
39279
- endTime: z66.string()
39280
- });
39281
- var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
39282
- z66.object({ kind: z66.literal("automatic_spacing") }),
39283
- z66.object({
39284
- kind: z66.literal("regular_interval"),
39285
- intervalMinutes: z66.union([
39286
- z66.literal(10),
39287
- z66.literal(15),
39288
- z66.literal(20),
39289
- z66.literal(30),
39290
- z66.literal(45),
39291
- z66.literal(60)
39577
+ displayName: z67.string().trim().min(1),
39578
+ bio: z67.string().nullable(),
39579
+ timezone: z67.string().trim().min(1),
39580
+ colorHex: z67.string().nullable()
39581
+ });
39582
+ var appointmentSetupWeeklyWindowDraftSchema = z67.object({
39583
+ weekday: z67.number().int().min(0).max(6),
39584
+ startTime: z67.string(),
39585
+ endTime: z67.string()
39586
+ });
39587
+ var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
39588
+ z67.object({ kind: z67.literal("automatic_spacing") }),
39589
+ z67.object({
39590
+ kind: z67.literal("regular_interval"),
39591
+ intervalMinutes: z67.union([
39592
+ z67.literal(10),
39593
+ z67.literal(15),
39594
+ z67.literal(20),
39595
+ z67.literal(30),
39596
+ z67.literal(45),
39597
+ z67.literal(60)
39292
39598
  ])
39293
39599
  })
39294
39600
  ]);
39295
- var appointmentSetupAvailabilityDraftSchema = z66.object({
39296
- kind: z66.literal("weekly_windows"),
39601
+ var appointmentSetupAvailabilityDraftSchema = z67.object({
39602
+ kind: z67.literal("weekly_windows"),
39297
39603
  resourceRef: appointmentSetupRefSchema,
39298
39604
  serviceRef: appointmentSetupRefSchema.nullable(),
39299
- windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
39605
+ windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
39300
39606
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
39301
39607
  });
39302
39608
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
39303
39609
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
39304
- var appointmentSetupBookingNoticeSchema = z66.object({
39305
- minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39306
- maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39307
- });
39308
- var applyAppointmentSetupRequestSchema = z66.object({
39309
- services: z66.array(appointmentSetupServiceDraftSchema),
39310
- practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
39311
- availability: z66.array(appointmentSetupAvailabilityDraftSchema),
39610
+ var appointmentSetupBookingNoticeSchema = z67.object({
39611
+ minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39612
+ maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39613
+ });
39614
+ var applyAppointmentSetupRequestSchema = z67.object({
39615
+ services: z67.array(appointmentSetupServiceDraftSchema),
39616
+ practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
39617
+ availability: z67.array(appointmentSetupAvailabilityDraftSchema),
39312
39618
  bookingNotice: appointmentSetupBookingNoticeSchema
39313
39619
  });
39314
39620
 
@@ -39341,24 +39647,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
39341
39647
  ];
39342
39648
 
39343
39649
  // ../api/src/siteBanner.ts
39344
- import { z as z67 } from "zod";
39650
+ import { z as z68 } from "zod";
39345
39651
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
39346
39652
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
39347
39653
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
39348
39654
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
39349
- var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
39350
- var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
39351
- var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
39352
- var siteBannerCtaSchema = z67.object({
39353
- label: z67.string().trim().min(1),
39655
+ var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
39656
+ var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
39657
+ var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
39658
+ var siteBannerCtaSchema = z68.object({
39659
+ label: z68.string().trim().min(1),
39354
39660
  link: linkPayloadSchema
39355
39661
  });
39356
- var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
39357
- z67.object({
39358
- enabled: z67.literal(false)
39662
+ var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
39663
+ z68.object({
39664
+ enabled: z68.literal(false)
39359
39665
  }),
39360
- z67.object({
39361
- enabled: z67.literal(true),
39666
+ z68.object({
39667
+ enabled: z68.literal(true),
39362
39668
  scope: siteBannerScopeSchema,
39363
39669
  tone: siteBannerToneSchema,
39364
39670
  body: siteBannerBodySchema,
@@ -39372,7 +39678,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
39372
39678
  const analysis = analyzeSiteBannerBody(value.body);
39373
39679
  for (const issue of analysis.issues) {
39374
39680
  ctx.addIssue({
39375
- code: z67.ZodIssueCode.custom,
39681
+ code: z68.ZodIssueCode.custom,
39376
39682
  path: ["body"],
39377
39683
  message: siteBannerBodyIssueMessage(issue)
39378
39684
  });
@@ -39634,71 +39940,71 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39634
39940
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39635
39941
 
39636
39942
  // ../api/src/aiPlayground.ts
39637
- import { z as z68 } from "zod";
39638
- var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39943
+ import { z as z69 } from "zod";
39944
+ var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39639
39945
  // Standard RFC-6902 operations
39640
- z68.object({
39641
- op: z68.literal("add"),
39642
- path: z68.string(),
39643
- value: z68.unknown()
39946
+ z69.object({
39947
+ op: z69.literal("add"),
39948
+ path: z69.string(),
39949
+ value: z69.unknown()
39644
39950
  }),
39645
- z68.object({
39646
- op: z68.literal("remove"),
39647
- path: z68.string()
39951
+ z69.object({
39952
+ op: z69.literal("remove"),
39953
+ path: z69.string()
39648
39954
  }),
39649
- z68.object({
39650
- op: z68.literal("replace"),
39651
- path: z68.string(),
39652
- value: z68.unknown()
39955
+ z69.object({
39956
+ op: z69.literal("replace"),
39957
+ path: z69.string(),
39958
+ value: z69.unknown()
39653
39959
  }),
39654
- z68.object({
39655
- op: z68.literal("move"),
39656
- from: z68.string(),
39657
- path: z68.string()
39960
+ z69.object({
39961
+ op: z69.literal("move"),
39962
+ from: z69.string(),
39963
+ path: z69.string()
39658
39964
  }),
39659
- z68.object({
39660
- op: z68.literal("copy"),
39661
- from: z68.string(),
39662
- path: z68.string()
39965
+ z69.object({
39966
+ op: z69.literal("copy"),
39967
+ from: z69.string(),
39968
+ path: z69.string()
39663
39969
  }),
39664
39970
  // Block-level operations (Phase 2)
39665
- z68.object({
39666
- op: z68.literal("add_block"),
39667
- blockKind: z68.string(),
39668
- afterBlockId: z68.string().nullable(),
39669
- content: z68.record(z68.string(), z68.unknown()),
39670
- rationale: z68.string()
39971
+ z69.object({
39972
+ op: z69.literal("add_block"),
39973
+ blockKind: z69.string(),
39974
+ afterBlockId: z69.string().nullable(),
39975
+ content: z69.record(z69.string(), z69.unknown()),
39976
+ rationale: z69.string()
39671
39977
  }),
39672
- z68.object({
39673
- op: z68.literal("delete_block"),
39674
- blockId: z68.string(),
39675
- rationale: z68.string()
39978
+ z69.object({
39979
+ op: z69.literal("delete_block"),
39980
+ blockId: z69.string(),
39981
+ rationale: z69.string()
39676
39982
  }),
39677
- z68.object({
39678
- op: z68.literal("reorder_block"),
39679
- blockId: z68.string(),
39680
- afterBlockId: z68.string().nullable(),
39681
- rationale: z68.string()
39983
+ z69.object({
39984
+ op: z69.literal("reorder_block"),
39985
+ blockId: z69.string(),
39986
+ afterBlockId: z69.string().nullable(),
39987
+ rationale: z69.string()
39682
39988
  })
39683
39989
  ]);
39684
- var PlaygroundProposeRequest = z68.object({
39685
- request: z68.string().min(1).max(2e3)
39990
+ var PlaygroundProposeRequest = z69.object({
39991
+ request: z69.string().min(1).max(2e3)
39686
39992
  });
39687
- var MultiPagePatchEnvelope = z68.object({
39688
- pageId: z68.string(),
39689
- blockId: z68.string().optional(),
39993
+ var MultiPagePatchEnvelope = z69.object({
39994
+ pageId: z69.string(),
39995
+ blockId: z69.string().optional(),
39690
39996
  // Not present for page-level ops
39691
- blockKind: z68.string().optional(),
39692
- blockPurpose: z68.string().optional().nullable(),
39693
- ops: z68.array(Rfc6902PatchOp),
39694
- rationale: z68.string(),
39695
- currentContent: z68.record(z68.string(), z68.unknown()).optional()
39997
+ blockKind: z69.string().optional(),
39998
+ blockPurpose: z69.string().optional().nullable(),
39999
+ ops: z69.array(Rfc6902PatchOp),
40000
+ rationale: z69.string(),
40001
+ currentContent: z69.record(z69.string(), z69.unknown()).optional()
39696
40002
  });
39697
- var MultiPageUpdateResponse = z68.object({
39698
- patches: z68.array(MultiPagePatchEnvelope),
39699
- assistantMessage: z68.string(),
39700
- pagesModified: z68.number(),
39701
- toolCallsUsed: z68.number()
40003
+ var MultiPageUpdateResponse = z69.object({
40004
+ patches: z69.array(MultiPagePatchEnvelope),
40005
+ assistantMessage: z69.string(),
40006
+ pagesModified: z69.number(),
40007
+ toolCallsUsed: z69.number()
39702
40008
  });
39703
40009
 
39704
40010
  // src/data/prefetchBlockData.ts
@@ -39780,7 +40086,8 @@ var loaderAdapters = {
39780
40086
  listPublicPasses,
39781
40087
  listPublicMemberships,
39782
40088
  getPublicFormById,
39783
- getPublicBookingServices
40089
+ getPublicBookingServices,
40090
+ getPublicWeeklySlotAvailability
39784
40091
  };
39785
40092
  function readStringParam(params, key) {
39786
40093
  const value = params[key];
@@ -39956,6 +40263,15 @@ async function getPublicBookingServices({ client, params }) {
39956
40263
  ids: readStringParam(params, "ids")
39957
40264
  });
39958
40265
  }
40266
+ async function getPublicWeeklySlotAvailability({ client, params }) {
40267
+ return await client.getPublicWeeklySlotAvailability({
40268
+ siteId: requireStringParam(params, "siteId", "getPublicWeeklySlotAvailability"),
40269
+ serviceId: requireStringParam(params, "serviceId", "getPublicWeeklySlotAvailability"),
40270
+ resourceId: readStringParam(params, "resourceId"),
40271
+ horizonWeeks: parsePositiveIntegerParam(params, "horizonWeeks"),
40272
+ timezone: readStringParam(params, "timezone")
40273
+ });
40274
+ }
39959
40275
  async function prefetchBlockData2(page, context, client, options) {
39960
40276
  const { customBlocks } = options ?? {};
39961
40277
  const customBlockMap = new Map(
@@ -40023,6 +40339,11 @@ function usePage(params) {
40023
40339
  "This path resolves to a content entry, not a page. Use useContent() instead, which handles both pages and entries. For entries, useContent() returns the raw entry data for custom rendering."
40024
40340
  );
40025
40341
  }
40342
+ if ("pageSurface" in pageResponse) {
40343
+ throw new Error(
40344
+ "This path resolves to a page surface, not a page. Use useContent() instead, which handles pages, entries, and page surfaces."
40345
+ );
40346
+ }
40026
40347
  const { page: pageData } = pageResponse;
40027
40348
  const canonicalPagePath = pageData.path ?? path;
40028
40349
  const mediaAssets = Array.isArray(pageResponse.mediaAssets) && pageResponse.mediaAssets.length > 0 ? toMediaAssetSidecar(pageResponse.mediaAssets) : void 0;
@@ -40031,13 +40352,19 @@ function usePage(params) {
40031
40352
  throw new Error("Invalid block format in API response");
40032
40353
  }
40033
40354
  if (typeof block.id !== "string" && block.id !== null) {
40034
- throw new Error(`Invalid block id: expected string or null, got ${typeof block.id}`);
40355
+ throw new Error(
40356
+ `Invalid block id: expected string or null, got ${typeof block.id}`
40357
+ );
40035
40358
  }
40036
40359
  if (typeof block.kind !== "string") {
40037
- throw new Error(`Invalid block kind: expected string, got ${typeof block.kind}`);
40360
+ throw new Error(
40361
+ `Invalid block kind: expected string, got ${typeof block.kind}`
40362
+ );
40038
40363
  }
40039
40364
  if (typeof block.purpose !== "string") {
40040
- throw new Error(`Invalid block purpose: expected string, got ${typeof block.purpose}`);
40365
+ throw new Error(
40366
+ `Invalid block purpose: expected string, got ${typeof block.purpose}`
40367
+ );
40041
40368
  }
40042
40369
  return {
40043
40370
  id: block.id,