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