@riverbankcms/sdk 0.96.0 → 0.99.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 (208) hide show
  1. package/README.md +20 -1
  2. package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
  6. package/dist/_dts/api/src/billing.d.ts +2 -0
  7. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  8. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  9. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  11. package/dist/_dts/api/src/endpoints.d.ts +88 -0
  12. package/dist/_dts/api/src/index.d.ts +3 -2
  13. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  14. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  16. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  17. package/dist/_dts/api/src/siteOperations.d.ts +65 -1
  18. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  19. package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
  20. package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
  21. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
  22. package/dist/_dts/blocks/src/PageRenderer.d.ts +8 -1
  23. package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
  24. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  27. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  28. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  30. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  31. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  32. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  34. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  37. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  38. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  39. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  42. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  43. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  44. package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
  46. package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
  47. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  48. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  58. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  63. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
  65. package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
  66. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
  67. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  68. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  70. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +18 -2
  71. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
  72. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  73. package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
  74. package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
  75. package/dist/_dts/core/src/branded.d.ts +8 -0
  76. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +767 -20
  77. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  78. package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
  79. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  80. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
  81. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
  82. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  83. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  84. package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
  85. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  86. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  87. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  88. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  89. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
  90. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  91. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  92. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  93. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
  94. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
  95. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
  96. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
  97. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
  98. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
  99. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
  100. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
  101. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  102. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  103. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  104. package/dist/_dts/sdk/src/client/index.d.ts +6 -0
  105. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  106. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  107. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  108. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  109. package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
  110. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
  111. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
  112. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  113. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  114. package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
  115. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  116. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  117. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  118. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
  119. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
  120. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +58 -1
  121. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
  122. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  123. package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
  124. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  125. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  126. package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
  127. package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
  128. package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
  129. package/dist/_dts/sdk/src/test/env.d.ts +4 -0
  130. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  131. package/dist/_dts/sdk/src/version.d.ts +1 -1
  132. package/dist/_dts/site-commands/src/commands.d.ts +3 -3
  133. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  134. package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
  135. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
  136. package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
  137. package/dist/{chunk-VHIMXQ7Z.mjs → chunk-4HXF2QLH.mjs} +2 -2
  138. package/dist/{chunk-VTPPVAOL.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
  139. package/dist/{chunk-4TLTV7OB.mjs → chunk-PM7HGDHM.mjs} +2 -2
  140. package/dist/{chunk-XMATDBXO.mjs → chunk-XO34WBBP.mjs} +2139 -1348
  141. package/dist/{chunk-EL55VV6Q.mjs → chunk-YGTTEVUM.mjs} +31 -10
  142. package/dist/{chunk-7ED5UNHL.mjs → chunk-YWTCCOSF.mjs} +117 -0
  143. package/dist/cli/index.mjs +2690 -1503
  144. package/dist/cli/init-docs/content/cli-reference.md +29 -1
  145. package/dist/cli/init-docs/content/getting-started.md +8 -0
  146. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  147. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  148. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  149. package/dist/client/{accordion-GUNXIIZR.mjs → accordion-QSUEYL4L.mjs} +2 -2
  150. package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-QYGAHPDP.mjs} +376 -302
  151. package/dist/client/bookings.mjs +795 -429
  152. package/dist/client/{carousel-4QSX2JPC.mjs → carousel-SM2LEWAU.mjs} +3 -3
  153. package/dist/client/{cart-JKN6C4ZB.mjs → cart-3N3SFKNQ.mjs} +7 -7
  154. package/dist/client/{checkout-YY6YMITW.mjs → checkout-YFAYPKPZ.mjs} +7 -7
  155. package/dist/client/{chunk-SY543WZ3.mjs → chunk-5DLGREUB.mjs} +1 -1
  156. package/dist/client/{chunk-A3YN7M3G.mjs → chunk-CLZ7NBSP.mjs} +147 -75
  157. package/dist/client/{chunk-GWCRCJLB.mjs → chunk-CYJ3MUFP.mjs} +18 -6
  158. package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
  159. package/dist/client/{chunk-CPKMJVBD.mjs → chunk-HPEQ4YWW.mjs} +83 -109
  160. package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
  161. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-IOAHWAQG.mjs} +18 -0
  162. package/dist/client/{chunk-6H27K6AA.mjs → chunk-JTKBF3W2.mjs} +10 -4
  163. package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
  164. package/dist/client/{chunk-BFCJZODD.mjs → chunk-R32M5HFS.mjs} +6 -6
  165. package/dist/client/{chunk-VJROUYOQ.mjs → chunk-WEVT46PX.mjs} +3 -3
  166. package/dist/client/{chunk-H7A6PUGM.mjs → chunk-ZU65LTI3.mjs} +1 -1
  167. package/dist/client/client.mjs +5052 -4083
  168. package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
  169. package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
  170. package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
  171. package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
  172. package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-TB623B6R.mjs} +9 -9
  173. package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
  174. package/dist/client/{form-VKRTFUNQ.mjs → form-Y4U4IAXE.mjs} +3 -3
  175. package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-QSOVV5P7.mjs} +3 -3
  176. package/dist/client/hooks.mjs +1776 -1355
  177. package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-QYCAHH7H.mjs} +3 -3
  178. package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
  179. package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-FYDMU2CE.mjs} +7 -7
  180. package/dist/client/{productList-RX6ZJ7BL.mjs → productList-D76CGACQ.mjs} +7 -7
  181. package/dist/client/rendering/client.mjs +2990 -2470
  182. package/dist/client/rendering/islands.mjs +19 -19
  183. package/dist/client/rendering.mjs +3236 -2236
  184. package/dist/client/{shop-BHN5AKY6.mjs → shop-SOUACT5N.mjs} +7 -7
  185. package/dist/preview-next/before-render.mjs +117 -0
  186. package/dist/preview-next/client/runtime.mjs +5 -5
  187. package/dist/preview-next/middleware.mjs +117 -0
  188. package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
  189. package/dist/server/components.mjs +3115 -2484
  190. package/dist/server/config-template-validation.mjs +6 -2
  191. package/dist/server/config-validation.mjs +1961 -1580
  192. package/dist/server/config.mjs +1961 -1580
  193. package/dist/server/data.mjs +1762 -1352
  194. package/dist/server/index.mjs +266 -33
  195. package/dist/server/next/middleware.mjs +2 -2
  196. package/dist/server/next.mjs +3399 -2504
  197. package/dist/server/page-converter.mjs +1553 -1295
  198. package/dist/server/prebuild-loader.mjs +42 -23
  199. package/dist/server/prebuild.mjs +1 -1
  200. package/dist/server/rendering/server.mjs +3151 -2489
  201. package/dist/server/rendering.mjs +3363 -2555
  202. package/dist/server/routing.mjs +1877 -1388
  203. package/dist/server/server.mjs +2057 -1402
  204. package/dist/server/theme-bridge.mjs +597 -505
  205. package/dist/server/theme.mjs +5 -4
  206. package/dist/styles/index.css +499 -490
  207. package/package.json +6 -4
  208. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
@@ -324,10 +324,20 @@ var repeatSchema = z.object({
324
324
  direction: z.enum(["asc", "desc"]).default("asc")
325
325
  }).optional()
326
326
  });
327
+ var conditionalAuthoringPresenceSchema = z.discriminatedUnion("kind", [
328
+ z.object({ kind: z.literal("visitor-only") }),
329
+ z.object({
330
+ kind: z.literal("recover-empty-when-active"),
331
+ placeholder: z.string().min(1).optional()
332
+ })
333
+ ]);
327
334
  var conditionSchema = z.object({
328
335
  when: bindingSchema,
329
336
  equals: z.unknown().optional(),
330
- not: z.boolean().default(false)
337
+ not: z.boolean().default(false),
338
+ authoringPresence: conditionalAuthoringPresenceSchema.default({
339
+ kind: "visitor-only"
340
+ })
331
341
  });
332
342
  var dataScopeSchema = z.object({
333
343
  name: z.string().min(1),
@@ -388,6 +398,7 @@ var ALLOWED_NODE_TYPES = [
388
398
  // Forms
389
399
  "form",
390
400
  "booking-form",
401
+ "weekly-slot-availability",
391
402
  // Events
392
403
  "event-registration",
393
404
  "event-spotlight",
@@ -4296,15 +4307,16 @@ var joyStamp = defineButtonPersonality({
4296
4307
  // 700, matching the mockup's chunky button labels.
4297
4308
  typography: "heading",
4298
4309
  fontWeight: 700,
4310
+ fontSize: "text-lg",
4299
4311
  borderWidth: 2,
4300
4312
  hoverTransform: "none",
4301
4313
  hoverColor: "none"
4302
4314
  },
4303
4315
  sizes: {
4304
- sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
4305
- md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
4306
- lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
4307
- xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
4316
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
4317
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
4318
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
4319
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
4308
4320
  },
4309
4321
  variants: [
4310
4322
  {
@@ -11252,7 +11264,8 @@ function when(path2, options) {
11252
11264
  $when: {
11253
11265
  when: { from: path2 },
11254
11266
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
11255
- ...options?.not ? { not: true } : {}
11267
+ ...options?.not ? { not: true } : {},
11268
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
11256
11269
  }
11257
11270
  });
11258
11271
  }
@@ -19046,77 +19059,247 @@ var appointmentBookingBlockDefinition = {
19046
19059
  }
19047
19060
  };
19048
19061
 
19062
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
19063
+ import { z as z32 } from "zod";
19064
+ var weeklySlotAvailabilityManifest = createBlockManifest({
19065
+ id: "block.weekly-slot-availability",
19066
+ version: "1.0.0",
19067
+ title: "Weekly Slot Availability",
19068
+ titleSource: "heading",
19069
+ description: "Shows available recurring appointment slot patterns",
19070
+ skipSectionStyles: true,
19071
+ additionalFields: [
19072
+ {
19073
+ id: "serviceId",
19074
+ type: "reference",
19075
+ label: "Appointment service",
19076
+ description: "Choose which appointment service to show availability for",
19077
+ required: true,
19078
+ referenceKind: "appointmentService",
19079
+ allowManualEntry: false,
19080
+ ui: { intent: "behavior" }
19081
+ },
19082
+ {
19083
+ id: "resourceId",
19084
+ type: "reference",
19085
+ label: "Appointment resource",
19086
+ description: "Optionally narrow the availability to one practitioner or room",
19087
+ required: false,
19088
+ referenceKind: "appointmentResource",
19089
+ allowManualEntry: false,
19090
+ ui: { intent: "behavior" }
19091
+ },
19092
+ {
19093
+ id: "horizonWeeks",
19094
+ type: "select",
19095
+ label: "Look ahead",
19096
+ required: false,
19097
+ multiple: false,
19098
+ defaultValue: "4",
19099
+ options: [
19100
+ { value: "1", label: "1 week" },
19101
+ { value: "2", label: "2 weeks" },
19102
+ { value: "4", label: "4 weeks" }
19103
+ ],
19104
+ ui: { intent: "behavior" }
19105
+ },
19106
+ {
19107
+ id: "timezone",
19108
+ type: "text",
19109
+ label: "Timezone",
19110
+ description: "Leave blank to use the visitor timezone when the block loads",
19111
+ required: false,
19112
+ multiline: false,
19113
+ defaultValue: "",
19114
+ maxLength: 64,
19115
+ ui: { intent: "behavior" }
19116
+ },
19117
+ {
19118
+ id: "heading",
19119
+ type: "text",
19120
+ label: "Heading",
19121
+ required: false,
19122
+ multiline: false,
19123
+ defaultValue: "Weekly availability"
19124
+ },
19125
+ {
19126
+ id: "description",
19127
+ type: "richText",
19128
+ label: "Description",
19129
+ required: false
19130
+ },
19131
+ {
19132
+ id: "emptyMessage",
19133
+ type: "text",
19134
+ label: "Empty message",
19135
+ required: false,
19136
+ multiline: true,
19137
+ defaultValue: "No regular weekly openings are currently available.",
19138
+ maxLength: 180
19139
+ },
19140
+ {
19141
+ id: "ctaText",
19142
+ type: "text",
19143
+ label: "Enquiry button text",
19144
+ required: false,
19145
+ multiline: false,
19146
+ defaultValue: "Enquire about this slot",
19147
+ maxLength: 60
19148
+ },
19149
+ {
19150
+ id: "ctaUrl",
19151
+ type: "url",
19152
+ label: "Enquiry URL",
19153
+ required: false,
19154
+ ui: { intent: "behavior" }
19155
+ },
19156
+ sectionStylesField({
19157
+ id: "_sectionStyles",
19158
+ label: "Section styles"
19159
+ })
19160
+ ],
19161
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
19162
+ behaviours: {
19163
+ supportsThemeSwitching: true,
19164
+ inlineEditing: false,
19165
+ animation: false,
19166
+ paletteHidden: false
19167
+ },
19168
+ category: "interactive",
19169
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
19170
+ icon: "CalendarDays",
19171
+ layout: [
19172
+ styledSection({
19173
+ children: sectionContainer([
19174
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
19175
+ richText({}, bind("content.description"), when("content.description")),
19176
+ el(
19177
+ "weekly-slot-availability",
19178
+ withApiBindings({
19179
+ serviceId: { $bind: { from: "content.serviceId" } },
19180
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
19181
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
19182
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
19183
+ availability: { $bind: { from: "data.availability", fallback: null } },
19184
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
19185
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
19186
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
19187
+ })
19188
+ )
19189
+ ], {
19190
+ gap: "lg"
19191
+ }),
19192
+ baseClass: "",
19193
+ spacing: "spacious"
19194
+ })
19195
+ ]
19196
+ });
19197
+ var weeklySlotAvailabilityOptionSchema = z32.object({
19198
+ id: z32.string(),
19199
+ resourceId: z32.string(),
19200
+ weekday: z32.number(),
19201
+ weekdayLabel: z32.string(),
19202
+ startTime: z32.string(),
19203
+ endTime: z32.string(),
19204
+ nextDate: z32.string(),
19205
+ availableWeeks: z32.number()
19206
+ });
19207
+ var weeklySlotAvailabilityDataSchema = z32.object({
19208
+ slots: z32.array(weeklySlotAvailabilityOptionSchema),
19209
+ horizonWeeks: z32.number(),
19210
+ timezone: z32.string(),
19211
+ startDate: z32.string(),
19212
+ endDate: z32.string()
19213
+ });
19214
+ var weeklySlotAvailabilityBlockDefinition = {
19215
+ manifest: weeklySlotAvailabilityManifest,
19216
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
19217
+ dataLoaders: {
19218
+ availability: {
19219
+ endpoint: "getPublicWeeklySlotAvailability",
19220
+ params: {
19221
+ siteId: { $bind: { from: "$root.siteId" } },
19222
+ serviceId: { $bind: { from: "content.serviceId" } },
19223
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
19224
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
19225
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
19226
+ },
19227
+ mode: "server"
19228
+ }
19229
+ }
19230
+ };
19231
+
19049
19232
  // ../blocks/src/system/blocks/events/shared/schemas.ts
19050
- import { z as z36 } from "zod";
19233
+ import { z as z37 } from "zod";
19051
19234
 
19052
19235
  // ../blocks/src/lib/media.ts
19053
- import z32 from "zod";
19236
+ import z33 from "zod";
19054
19237
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
19055
19238
  "document",
19056
19239
  "spreadsheet",
19057
19240
  "archive",
19058
19241
  "audio"
19059
19242
  ];
19060
- var hotspotSchema2 = z32.object({
19061
- x: z32.number().min(0).max(1),
19062
- y: z32.number().min(0).max(1),
19063
- radius: z32.number().optional()
19064
- });
19065
- var rotationSchema2 = z32.union([z32.literal(0), z32.literal(90), z32.literal(180), z32.literal(270)]);
19066
- var rectSchema2 = z32.tuple([z32.number(), z32.number(), z32.number(), z32.number()]);
19067
- var aspectCropSchema2 = z32.object({
19068
- aspect: z32.preprocess((value) => value == null ? void 0 : value, z32.string().optional()),
19069
- rect: z32.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
19070
- hotspot: z32.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
19071
- rotation: z32.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
19072
- });
19073
- var transformSchema2 = z32.object({
19074
- aspectCrops: z32.preprocess((value) => {
19243
+ var hotspotSchema2 = z33.object({
19244
+ x: z33.number().min(0).max(1),
19245
+ y: z33.number().min(0).max(1),
19246
+ radius: z33.number().optional()
19247
+ });
19248
+ var rotationSchema2 = z33.union([z33.literal(0), z33.literal(90), z33.literal(180), z33.literal(270)]);
19249
+ var rectSchema2 = z33.tuple([z33.number(), z33.number(), z33.number(), z33.number()]);
19250
+ var aspectCropSchema2 = z33.object({
19251
+ aspect: z33.preprocess((value) => value == null ? void 0 : value, z33.string().optional()),
19252
+ rect: z33.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
19253
+ hotspot: z33.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
19254
+ rotation: z33.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
19255
+ });
19256
+ var transformSchema2 = z33.object({
19257
+ aspectCrops: z33.preprocess((value) => {
19075
19258
  if (!value || typeof value !== "object" || Array.isArray(value)) {
19076
19259
  return void 0;
19077
19260
  }
19078
19261
  return value;
19079
- }, z32.record(z32.string(), aspectCropSchema2.catch({}))).optional(),
19262
+ }, z33.record(z33.string(), aspectCropSchema2.catch({}))).optional(),
19080
19263
  rect: rectSchema2.optional(),
19081
19264
  hotspot: hotspotSchema2.optional(),
19082
19265
  rotation: rotationSchema2.optional()
19083
19266
  });
19084
- var mediaPosterSchema = z32.discriminatedUnion("tag", [
19085
- z32.object({
19086
- tag: z32.literal("storage"),
19087
- assetId: z32.string().optional(),
19088
- storageBucket: z32.string().min(1),
19089
- storagePath: z32.string().min(1)
19267
+ var mediaPosterSchema = z33.discriminatedUnion("tag", [
19268
+ z33.object({
19269
+ tag: z33.literal("storage"),
19270
+ assetId: z33.string().optional(),
19271
+ storageBucket: z33.string().min(1),
19272
+ storagePath: z33.string().min(1)
19090
19273
  }),
19091
- z32.object({
19092
- tag: z32.literal("external-src"),
19093
- assetId: z32.string().optional(),
19094
- src: z32.string().url()
19274
+ z33.object({
19275
+ tag: z33.literal("external-src"),
19276
+ assetId: z33.string().optional(),
19277
+ src: z33.string().url()
19095
19278
  })
19096
19279
  ]);
19097
- var mediaBaseSchema = z32.object({
19098
- purpose: z32.string().optional(),
19099
- placeholder: z32.boolean().default(true).optional(),
19100
- assetId: z32.string().optional(),
19101
- identifier: z32.string().optional(),
19102
- src: z32.string().optional(),
19103
- alt: z32.string().optional(),
19104
- filename: z32.string().optional(),
19105
- mimeType: z32.string().optional(),
19106
- width: z32.number().optional(),
19107
- height: z32.number().optional(),
19108
- storageBucket: z32.string().optional(),
19109
- storagePath: z32.string().optional(),
19280
+ var mediaBaseSchema = z33.object({
19281
+ purpose: z33.string().optional(),
19282
+ placeholder: z33.boolean().default(true).optional(),
19283
+ assetId: z33.string().optional(),
19284
+ identifier: z33.string().optional(),
19285
+ src: z33.string().optional(),
19286
+ alt: z33.string().optional(),
19287
+ filename: z33.string().optional(),
19288
+ mimeType: z33.string().optional(),
19289
+ width: z33.number().optional(),
19290
+ height: z33.number().optional(),
19291
+ storageBucket: z33.string().optional(),
19292
+ storagePath: z33.string().optional(),
19110
19293
  poster: mediaPosterSchema.optional(),
19111
19294
  transform: transformSchema2.optional()
19112
19295
  });
19113
- var imageMediaSchema = mediaBaseSchema.extend({ type: z32.literal("image") });
19114
- var videoMediaSchema = mediaBaseSchema.extend({ type: z32.literal("video") });
19115
- var audioMediaSchema = mediaBaseSchema.extend({ type: z32.literal("audio") });
19116
- var documentMediaSchema = mediaBaseSchema.extend({ type: z32.literal("document") });
19117
- var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z32.literal("spreadsheet") });
19118
- var archiveMediaSchema = mediaBaseSchema.extend({ type: z32.literal("archive") });
19119
- var mediaSchema2 = z32.discriminatedUnion("type", [
19296
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z33.literal("image") });
19297
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z33.literal("video") });
19298
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z33.literal("audio") });
19299
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z33.literal("document") });
19300
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z33.literal("spreadsheet") });
19301
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z33.literal("archive") });
19302
+ var mediaSchema2 = z33.discriminatedUnion("type", [
19120
19303
  imageMediaSchema,
19121
19304
  videoMediaSchema,
19122
19305
  audioMediaSchema,
@@ -19126,31 +19309,31 @@ var mediaSchema2 = z32.discriminatedUnion("type", [
19126
19309
  ]);
19127
19310
 
19128
19311
  // ../blocks/src/system/manifest/richTextSchema.ts
19129
- import { z as z33 } from "zod";
19130
- var TipTapMarkSchema = z33.object({
19131
- type: z33.string(),
19132
- attrs: z33.record(z33.string(), z33.unknown()).optional()
19133
- });
19134
- var TipTapNodeSchema = z33.lazy(
19135
- () => z33.object({
19136
- type: z33.string(),
19137
- content: z33.array(TipTapNodeSchema).optional(),
19138
- text: z33.string().optional(),
19139
- attrs: z33.record(z33.string(), z33.unknown()).optional(),
19140
- marks: z33.array(TipTapMarkSchema).optional()
19312
+ import { z as z34 } from "zod";
19313
+ var TipTapMarkSchema = z34.object({
19314
+ type: z34.string(),
19315
+ attrs: z34.record(z34.string(), z34.unknown()).optional()
19316
+ });
19317
+ var TipTapNodeSchema = z34.lazy(
19318
+ () => z34.object({
19319
+ type: z34.string(),
19320
+ content: z34.array(TipTapNodeSchema).optional(),
19321
+ text: z34.string().optional(),
19322
+ attrs: z34.record(z34.string(), z34.unknown()).optional(),
19323
+ marks: z34.array(TipTapMarkSchema).optional()
19141
19324
  })
19142
19325
  );
19143
- var RichTextValueSchema = z33.union([
19326
+ var RichTextValueSchema = z34.union([
19144
19327
  // Canonical: TipTap document directly
19145
19328
  TipTapNodeSchema,
19146
19329
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
19147
- z33.object({
19330
+ z34.object({
19148
19331
  doc: TipTapNodeSchema
19149
19332
  })
19150
19333
  ]);
19151
- var RichTextDocSchema = z33.object({
19152
- type: z33.literal("doc"),
19153
- content: z33.array(TipTapNodeSchema)
19334
+ var RichTextDocSchema = z34.object({
19335
+ type: z34.literal("doc"),
19336
+ content: z34.array(TipTapNodeSchema)
19154
19337
  });
19155
19338
  function createHardBreakNode() {
19156
19339
  return { type: "hardBreak" };
@@ -19201,344 +19384,344 @@ function createRichTextDocFromMarkdown(markdown) {
19201
19384
  }
19202
19385
 
19203
19386
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
19204
- import { z as z34 } from "zod";
19205
- var bookingDepositRefundPolicySchema = z34.enum([
19387
+ import { z as z35 } from "zod";
19388
+ var bookingDepositRefundPolicySchema = z35.enum([
19206
19389
  "refundable",
19207
19390
  "non_refundable"
19208
19391
  ]);
19209
- var bookingInstalmentPlanSchema = z34.union([
19210
- z34.object({
19211
- kind: z34.literal("deposit_plus_one_remainder"),
19212
- depositAmountCents: z34.number().int().min(0),
19392
+ var bookingInstalmentPlanSchema = z35.union([
19393
+ z35.object({
19394
+ kind: z35.literal("deposit_plus_one_remainder"),
19395
+ depositAmountCents: z35.number().int().min(0),
19213
19396
  depositRefundability: bookingDepositRefundPolicySchema,
19214
- remainderDueCount: z34.number().int().positive(),
19215
- intervalUnit: z34.enum(["day", "week", "month"])
19397
+ remainderDueCount: z35.number().int().positive(),
19398
+ intervalUnit: z35.enum(["day", "week", "month"])
19216
19399
  }),
19217
- z34.object({
19218
- kind: z34.literal("deposit_plus_scheduled_instalments"),
19219
- depositAmountCents: z34.number().int().min(0),
19400
+ z35.object({
19401
+ kind: z35.literal("deposit_plus_scheduled_instalments"),
19402
+ depositAmountCents: z35.number().int().min(0),
19220
19403
  depositRefundability: bookingDepositRefundPolicySchema,
19221
- instalmentCount: z34.number().int().positive(),
19222
- intervalCount: z34.number().int().positive(),
19223
- intervalUnit: z34.enum(["day", "week", "month"])
19404
+ instalmentCount: z35.number().int().positive(),
19405
+ intervalCount: z35.number().int().positive(),
19406
+ intervalUnit: z35.enum(["day", "week", "month"])
19224
19407
  }),
19225
- z34.object({
19226
- kind: z34.literal("equal_scheduled_instalments"),
19227
- instalmentCount: z34.number().int().positive(),
19228
- intervalCount: z34.number().int().positive(),
19229
- intervalUnit: z34.enum(["day", "week", "month"])
19408
+ z35.object({
19409
+ kind: z35.literal("equal_scheduled_instalments"),
19410
+ instalmentCount: z35.number().int().positive(),
19411
+ intervalCount: z35.number().int().positive(),
19412
+ intervalUnit: z35.enum(["day", "week", "month"])
19230
19413
  })
19231
19414
  ]);
19232
- var bookingFlexibleBalanceDueDateRuleSchema = z34.union([
19233
- z34.object({
19234
- kind: z34.literal("relative_to_start_date"),
19235
- daysBeforeStart: z34.number().int().positive()
19415
+ var bookingFlexibleBalanceDueDateRuleSchema = z35.union([
19416
+ z35.object({
19417
+ kind: z35.literal("relative_to_start_date"),
19418
+ daysBeforeStart: z35.number().int().positive()
19236
19419
  }),
19237
- z34.object({
19238
- kind: z34.literal("fixed_calendar_date"),
19239
- dueAt: z34.string().datetime()
19420
+ z35.object({
19421
+ kind: z35.literal("fixed_calendar_date"),
19422
+ dueAt: z35.string().datetime()
19240
19423
  })
19241
19424
  ]);
19242
- var bookingFlexibleBalanceConfigSchema = z34.object({
19243
- upfrontAmountCents: z34.number().int().min(0),
19425
+ var bookingFlexibleBalanceConfigSchema = z35.object({
19426
+ upfrontAmountCents: z35.number().int().min(0),
19244
19427
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
19245
19428
  depositRefundability: bookingDepositRefundPolicySchema
19246
19429
  });
19247
- var blockBookingPaymentCollectionOptionSchema = z34.union([
19248
- z34.object({
19249
- kind: z34.literal("upfront")
19430
+ var blockBookingPaymentCollectionOptionSchema = z35.union([
19431
+ z35.object({
19432
+ kind: z35.literal("upfront")
19250
19433
  }),
19251
- z34.object({
19252
- kind: z34.literal("deferred_manual")
19434
+ z35.object({
19435
+ kind: z35.literal("deferred_manual")
19253
19436
  }),
19254
- z34.object({
19255
- kind: z34.literal("instalment_plan"),
19437
+ z35.object({
19438
+ kind: z35.literal("instalment_plan"),
19256
19439
  plan: bookingInstalmentPlanSchema
19257
19440
  }),
19258
- z34.object({
19259
- kind: z34.literal("flexible_balance"),
19441
+ z35.object({
19442
+ kind: z35.literal("flexible_balance"),
19260
19443
  config: bookingFlexibleBalanceConfigSchema
19261
19444
  })
19262
19445
  ]);
19263
- var blockBookingPaymentTermsSchema = z34.object({
19264
- allowedOptions: z34.array(blockBookingPaymentCollectionOptionSchema).min(1)
19446
+ var blockBookingPaymentTermsSchema = z35.object({
19447
+ allowedOptions: z35.array(blockBookingPaymentCollectionOptionSchema).min(1)
19265
19448
  });
19266
19449
 
19267
19450
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
19268
- import { z as z35 } from "zod";
19269
- var courseVenueSchema = z35.object({
19270
- id: z35.string(),
19271
- name: z35.string(),
19272
- address: z35.string().nullable()
19273
- });
19274
- var courseSessionSchema = z35.object({
19275
- id: z35.string(),
19276
- startsAt: z35.string(),
19277
- endsAt: z35.string(),
19278
- timeZone: z35.string(),
19279
- capacityOverride: z35.number().nullable().optional(),
19280
- overrides: z35.record(z35.string(), z35.unknown()).nullable().optional()
19281
- });
19282
- var courseTeamMemberSummarySchema = z35.object({
19283
- id: z35.string(),
19284
- name: z35.string(),
19285
- roleLabel: z35.string().nullable(),
19286
- summary: z35.string().nullable(),
19287
- profilePath: z35.string().nullable()
19288
- });
19289
- var coursePricingOptionSchema = z35.object({
19290
- id: z35.string(),
19291
- name: z35.string(),
19292
- description: z35.string().nullable(),
19293
- priceAmount: z35.number(),
19294
- isActive: z35.boolean(),
19295
- sortOrder: z35.number(),
19296
- capacityLimit: z35.number().nullable(),
19297
- saleStartsAt: z35.string().nullable(),
19298
- saleEndsAt: z35.string().nullable(),
19299
- attendanceScope: z35.enum(["in_person", "online", "both"]).nullable().optional()
19300
- });
19301
- var coursePricingSchema = z35.object({
19302
- bookingRequirement: z35.enum(["none", "required"]),
19303
- pricingStrategy: z35.enum(["free", "single", "tiered", "sliding_scale"]),
19304
- currency: z35.string(),
19305
- singlePriceAmount: z35.number().nullable(),
19306
- slidingMinAmount: z35.number().nullable().optional(),
19307
- slidingMaxAmount: z35.number().nullable().optional(),
19308
- slidingSuggestedAmount: z35.number().nullable().optional(),
19451
+ import { z as z36 } from "zod";
19452
+ var courseVenueSchema = z36.object({
19453
+ id: z36.string(),
19454
+ name: z36.string(),
19455
+ address: z36.string().nullable()
19456
+ });
19457
+ var courseSessionSchema = z36.object({
19458
+ id: z36.string(),
19459
+ startsAt: z36.string(),
19460
+ endsAt: z36.string(),
19461
+ timeZone: z36.string(),
19462
+ capacityOverride: z36.number().nullable().optional(),
19463
+ overrides: z36.record(z36.string(), z36.unknown()).nullable().optional()
19464
+ });
19465
+ var courseTeamMemberSummarySchema = z36.object({
19466
+ id: z36.string(),
19467
+ name: z36.string(),
19468
+ roleLabel: z36.string().nullable(),
19469
+ summary: z36.string().nullable(),
19470
+ profilePath: z36.string().nullable()
19471
+ });
19472
+ var coursePricingOptionSchema = z36.object({
19473
+ id: z36.string(),
19474
+ name: z36.string(),
19475
+ description: z36.string().nullable(),
19476
+ priceAmount: z36.number(),
19477
+ isActive: z36.boolean(),
19478
+ sortOrder: z36.number(),
19479
+ capacityLimit: z36.number().nullable(),
19480
+ saleStartsAt: z36.string().nullable(),
19481
+ saleEndsAt: z36.string().nullable(),
19482
+ attendanceScope: z36.enum(["in_person", "online", "both"]).nullable().optional()
19483
+ });
19484
+ var coursePricingSchema = z36.object({
19485
+ bookingRequirement: z36.enum(["none", "required"]),
19486
+ pricingStrategy: z36.enum(["free", "single", "tiered", "sliding_scale"]),
19487
+ currency: z36.string(),
19488
+ singlePriceAmount: z36.number().nullable(),
19489
+ slidingMinAmount: z36.number().nullable().optional(),
19490
+ slidingMaxAmount: z36.number().nullable().optional(),
19491
+ slidingSuggestedAmount: z36.number().nullable().optional(),
19309
19492
  paymentTerms: blockBookingPaymentTermsSchema,
19310
- options: z35.array(coursePricingOptionSchema)
19311
- });
19312
- var publicCourseSchema = z35.object({
19313
- id: z35.string(),
19314
- title: z35.string(),
19315
- slug: z35.string(),
19316
- description: z35.unknown().nullable(),
19317
- teamMembers: z35.array(courseTeamMemberSummarySchema).optional(),
19318
- enrollmentOpen: z35.boolean(),
19493
+ options: z36.array(coursePricingOptionSchema)
19494
+ });
19495
+ var publicCourseSchema = z36.object({
19496
+ id: z36.string(),
19497
+ title: z36.string(),
19498
+ slug: z36.string(),
19499
+ description: z36.unknown().nullable(),
19500
+ teamMembers: z36.array(courseTeamMemberSummarySchema).optional(),
19501
+ enrollmentOpen: z36.boolean(),
19319
19502
  pricing: coursePricingSchema.optional(),
19320
- priceCents: z35.number().nullable(),
19321
- currency: z35.string(),
19503
+ priceCents: z36.number().nullable(),
19504
+ currency: z36.string(),
19322
19505
  paymentTerms: blockBookingPaymentTermsSchema,
19323
- enrollmentCapacity: z35.number().nullable(),
19324
- acceptsMemberships: z35.boolean(),
19325
- status: z35.enum(["active", "draft", "cancelled"]),
19326
- sessionsCount: z35.number(),
19327
- enrolledCount: z35.number(),
19328
- availableSpots: z35.number().nullable(),
19329
- sessions: z35.array(courseSessionSchema),
19506
+ enrollmentCapacity: z36.number().nullable(),
19507
+ acceptsMemberships: z36.boolean(),
19508
+ status: z36.enum(["active", "draft", "cancelled"]),
19509
+ sessionsCount: z36.number(),
19510
+ enrolledCount: z36.number(),
19511
+ availableSpots: z36.number().nullable(),
19512
+ sessions: z36.array(courseSessionSchema),
19330
19513
  venue: courseVenueSchema.nullable(),
19331
- contentEntryId: z35.string().nullable()
19514
+ contentEntryId: z36.string().nullable()
19332
19515
  });
19333
- var publicCoursesArraySchema = z35.array(publicCourseSchema);
19516
+ var publicCoursesArraySchema = z36.array(publicCourseSchema);
19334
19517
 
19335
19518
  // ../blocks/src/system/blocks/events/shared/schemas.ts
19336
- var eventPresetSchema = z36.enum(["event", "class", "workshop", "retreat", "performance"]);
19337
- var eventScheduleScopeSchema = z36.enum(["recurring", "oneOff"]);
19338
- var eventDestinationModeSchema = z36.enum(["cms-managed", "system-managed"]);
19339
- var publicEventDestinationSchema = z36.discriminatedUnion("kind", [
19340
- z36.object({
19341
- kind: z36.literal("native"),
19519
+ var eventPresetSchema = z37.enum(["event", "class", "workshop", "retreat", "performance"]);
19520
+ var eventScheduleScopeSchema = z37.enum(["recurring", "oneOff"]);
19521
+ var eventDestinationModeSchema = z37.enum(["cms-managed", "system-managed"]);
19522
+ var publicEventDestinationSchema = z37.discriminatedUnion("kind", [
19523
+ z37.object({
19524
+ kind: z37.literal("native"),
19342
19525
  mode: eventDestinationModeSchema,
19343
- path: z36.string()
19526
+ path: z37.string()
19344
19527
  }),
19345
- z36.object({
19346
- kind: z36.literal("external"),
19347
- url: z36.string(),
19348
- label: z36.string()
19528
+ z37.object({
19529
+ kind: z37.literal("external"),
19530
+ url: z37.string(),
19531
+ label: z37.string()
19349
19532
  })
19350
19533
  ]);
19351
- var eventVenueSchema = z36.object({
19352
- id: z36.string(),
19353
- name: z36.string(),
19354
- address: z36.string().nullable(),
19355
- location: z36.object({
19356
- lat: z36.number(),
19357
- lng: z36.number()
19534
+ var eventVenueSchema = z37.object({
19535
+ id: z37.string(),
19536
+ name: z37.string(),
19537
+ address: z37.string().nullable(),
19538
+ location: z37.object({
19539
+ lat: z37.number(),
19540
+ lng: z37.number()
19358
19541
  }).nullable()
19359
19542
  });
19360
- var eventCategorySchema = z36.object({
19361
- id: z36.string(),
19362
- name: z36.string(),
19363
- color: z36.string().nullable()
19364
- });
19365
- var pricingTypeSchema = z36.enum(["free", "paid", "external"]);
19366
- var accessRestrictionSchema = z36.enum(["none", "category"]);
19367
- var eventPricingModeSchema = z36.enum(["single", "ticket_types"]);
19368
- var publicCoursePriceDisplaySchema = z36.discriminatedUnion("kind", [
19369
- z36.object({ kind: z36.literal("free"), currency: z36.string() }),
19370
- z36.object({ kind: z36.literal("exact"), amount: z36.number(), currency: z36.string() }),
19371
- z36.object({ kind: z36.literal("from"), amount: z36.number(), currency: z36.string() }),
19372
- z36.object({ kind: z36.literal("unavailable"), currency: z36.string() })
19543
+ var eventCategorySchema = z37.object({
19544
+ id: z37.string(),
19545
+ name: z37.string(),
19546
+ color: z37.string().nullable()
19547
+ });
19548
+ var pricingTypeSchema = z37.enum(["free", "paid", "external"]);
19549
+ var accessRestrictionSchema = z37.enum(["none", "category"]);
19550
+ var eventPricingModeSchema = z37.enum(["single", "ticket_types"]);
19551
+ var publicCoursePriceDisplaySchema = z37.discriminatedUnion("kind", [
19552
+ z37.object({ kind: z37.literal("free"), currency: z37.string() }),
19553
+ z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() }),
19554
+ z37.object({ kind: z37.literal("from"), amount: z37.number(), currency: z37.string() }),
19555
+ z37.object({ kind: z37.literal("unavailable"), currency: z37.string() })
19373
19556
  ]);
19374
- var publicEventPriceDisplaySchema = z36.discriminatedUnion("kind", [
19375
- z36.object({ kind: z36.literal("free"), currency: z36.string() }),
19376
- z36.object({ kind: z36.literal("exact"), amount: z36.number(), currency: z36.string() }),
19377
- z36.object({ kind: z36.literal("from"), amount: z36.number(), currency: z36.string() }),
19378
- z36.object({ kind: z36.literal("range"), minAmount: z36.number(), maxAmount: z36.number(), currency: z36.string() }),
19379
- z36.object({
19380
- kind: z36.literal("mixed"),
19381
- paidFromAmount: z36.number(),
19382
- paidToAmount: z36.number(),
19383
- currency: z36.string()
19557
+ var publicEventPriceDisplaySchema = z37.discriminatedUnion("kind", [
19558
+ z37.object({ kind: z37.literal("free"), currency: z37.string() }),
19559
+ z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() }),
19560
+ z37.object({ kind: z37.literal("from"), amount: z37.number(), currency: z37.string() }),
19561
+ z37.object({ kind: z37.literal("range"), minAmount: z37.number(), maxAmount: z37.number(), currency: z37.string() }),
19562
+ z37.object({
19563
+ kind: z37.literal("mixed"),
19564
+ paidFromAmount: z37.number(),
19565
+ paidToAmount: z37.number(),
19566
+ currency: z37.string()
19384
19567
  }),
19385
- z36.object({ kind: z36.literal("unavailable"), currency: z36.string() }),
19386
- z36.object({ kind: z36.literal("external"), label: z36.string() }),
19387
- z36.object({ kind: z36.literal("course"), display: publicCoursePriceDisplaySchema })
19568
+ z37.object({ kind: z37.literal("unavailable"), currency: z37.string() }),
19569
+ z37.object({ kind: z37.literal("external"), label: z37.string() }),
19570
+ z37.object({ kind: z37.literal("course"), display: publicCoursePriceDisplaySchema })
19388
19571
  ]);
19389
- var publicEventTicketTypePriceDisplaySchema = z36.union([
19390
- z36.object({ kind: z36.literal("free"), currency: z36.string() }),
19391
- z36.object({ kind: z36.literal("exact"), amount: z36.number(), currency: z36.string() }),
19392
- z36.object({ kind: z36.literal("from"), amount: z36.number(), currency: z36.string() }),
19393
- z36.object({ kind: z36.literal("range"), minAmount: z36.number(), maxAmount: z36.number(), currency: z36.string() }),
19394
- z36.object({
19395
- kind: z36.literal("mixed"),
19396
- paidFromAmount: z36.number(),
19397
- paidToAmount: z36.number(),
19398
- currency: z36.string()
19572
+ var publicEventTicketTypePriceDisplaySchema = z37.union([
19573
+ z37.object({ kind: z37.literal("free"), currency: z37.string() }),
19574
+ z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() }),
19575
+ z37.object({ kind: z37.literal("from"), amount: z37.number(), currency: z37.string() }),
19576
+ z37.object({ kind: z37.literal("range"), minAmount: z37.number(), maxAmount: z37.number(), currency: z37.string() }),
19577
+ z37.object({
19578
+ kind: z37.literal("mixed"),
19579
+ paidFromAmount: z37.number(),
19580
+ paidToAmount: z37.number(),
19581
+ currency: z37.string()
19399
19582
  }),
19400
- z36.object({ kind: z36.literal("unavailable"), currency: z36.string() })
19583
+ z37.object({ kind: z37.literal("unavailable"), currency: z37.string() })
19401
19584
  ]);
19402
- var publicEventAttendanceModeSchema = z36.enum(["in_person", "online"]);
19403
- var publicEventAttendanceModeAvailabilitySchema = z36.object({
19585
+ var publicEventAttendanceModeSchema = z37.enum(["in_person", "online"]);
19586
+ var publicEventAttendanceModeAvailabilitySchema = z37.object({
19404
19587
  mode: publicEventAttendanceModeSchema,
19405
- capacity: z36.number().nullable(),
19406
- registeredCount: z36.number(),
19407
- availableSpots: z36.number().nullable(),
19408
- waitlistEnabled: z36.boolean()
19409
- });
19410
- var publicEventTicketTypeAvailabilitySchema = z36.union([
19411
- z36.object({
19412
- kind: z36.literal("available"),
19413
- remainingCapacity: z36.number().nullable()
19588
+ capacity: z37.number().nullable(),
19589
+ registeredCount: z37.number(),
19590
+ availableSpots: z37.number().nullable(),
19591
+ waitlistEnabled: z37.boolean()
19592
+ });
19593
+ var publicEventTicketTypeAvailabilitySchema = z37.union([
19594
+ z37.object({
19595
+ kind: z37.literal("available"),
19596
+ remainingCapacity: z37.number().nullable()
19414
19597
  }),
19415
- z36.object({
19416
- kind: z36.literal("unavailable"),
19417
- reason: z36.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
19418
- remainingCapacity: z36.number().nullable()
19598
+ z37.object({
19599
+ kind: z37.literal("unavailable"),
19600
+ reason: z37.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
19601
+ remainingCapacity: z37.number().nullable()
19419
19602
  })
19420
19603
  ]);
19421
- var publicEventTicketTypeSchema = z36.object({
19422
- id: z36.string(),
19423
- siteId: z36.string(),
19424
- eventSeriesId: z36.string(),
19425
- name: z36.string(),
19426
- description: z36.string().nullable(),
19427
- priceAmount: z36.number(),
19428
- isActive: z36.boolean(),
19429
- sortOrder: z36.number(),
19430
- capacityMode: z36.enum(["limited", "unlimited"]),
19431
- capacityLimit: z36.number().nullable(),
19432
- attendanceScope: z36.enum(["in_person", "online", "both"]).optional(),
19433
- saleStartsAt: z36.string().nullable(),
19434
- saleEndsAt: z36.string().nullable(),
19604
+ var publicEventTicketTypeSchema = z37.object({
19605
+ id: z37.string(),
19606
+ siteId: z37.string(),
19607
+ eventSeriesId: z37.string(),
19608
+ name: z37.string(),
19609
+ description: z37.string().nullable(),
19610
+ priceAmount: z37.number(),
19611
+ isActive: z37.boolean(),
19612
+ sortOrder: z37.number(),
19613
+ capacityMode: z37.enum(["limited", "unlimited"]),
19614
+ capacityLimit: z37.number().nullable(),
19615
+ attendanceScope: z37.enum(["in_person", "online", "both"]).optional(),
19616
+ saleStartsAt: z37.string().nullable(),
19617
+ saleEndsAt: z37.string().nullable(),
19435
19618
  availability: publicEventTicketTypeAvailabilitySchema,
19436
- createdAt: z36.string(),
19437
- updatedAt: z36.string()
19438
- });
19439
- var publicEventPricingSchema = z36.discriminatedUnion("kind", [
19440
- z36.object({
19441
- kind: z36.literal("drop_in"),
19442
- currency: z36.string(),
19443
- display: z36.object({ kind: z36.literal("free"), currency: z36.string() })
19619
+ createdAt: z37.string(),
19620
+ updatedAt: z37.string()
19621
+ });
19622
+ var publicEventPricingSchema = z37.discriminatedUnion("kind", [
19623
+ z37.object({
19624
+ kind: z37.literal("drop_in"),
19625
+ currency: z37.string(),
19626
+ display: z37.object({ kind: z37.literal("free"), currency: z37.string() })
19444
19627
  }),
19445
- z36.object({
19446
- kind: z36.literal("free_registration"),
19447
- currency: z36.string(),
19448
- display: z36.object({ kind: z36.literal("free"), currency: z36.string() })
19628
+ z37.object({
19629
+ kind: z37.literal("free_registration"),
19630
+ currency: z37.string(),
19631
+ display: z37.object({ kind: z37.literal("free"), currency: z37.string() })
19449
19632
  }),
19450
- z36.object({
19451
- kind: z36.literal("single_paid"),
19452
- amount: z36.number(),
19453
- currency: z36.string(),
19454
- display: z36.object({ kind: z36.literal("exact"), amount: z36.number(), currency: z36.string() })
19633
+ z37.object({
19634
+ kind: z37.literal("single_paid"),
19635
+ amount: z37.number(),
19636
+ currency: z37.string(),
19637
+ display: z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() })
19455
19638
  }),
19456
- z36.object({
19457
- kind: z36.literal("ticket_types"),
19458
- currency: z36.string(),
19459
- ticketTypes: z36.array(publicEventTicketTypeSchema),
19639
+ z37.object({
19640
+ kind: z37.literal("ticket_types"),
19641
+ currency: z37.string(),
19642
+ ticketTypes: z37.array(publicEventTicketTypeSchema),
19460
19643
  display: publicEventTicketTypePriceDisplaySchema
19461
19644
  }),
19462
- z36.object({
19463
- kind: z36.literal("sliding_scale"),
19464
- minAmount: z36.number(),
19465
- maxAmount: z36.number(),
19466
- suggestedAmount: z36.number().nullable(),
19467
- currency: z36.string(),
19468
- display: z36.object({
19469
- kind: z36.literal("range"),
19470
- minAmount: z36.number(),
19471
- maxAmount: z36.number(),
19472
- currency: z36.string()
19645
+ z37.object({
19646
+ kind: z37.literal("sliding_scale"),
19647
+ minAmount: z37.number(),
19648
+ maxAmount: z37.number(),
19649
+ suggestedAmount: z37.number().nullable(),
19650
+ currency: z37.string(),
19651
+ display: z37.object({
19652
+ kind: z37.literal("range"),
19653
+ minAmount: z37.number(),
19654
+ maxAmount: z37.number(),
19655
+ currency: z37.string()
19473
19656
  })
19474
19657
  }),
19475
- z36.object({
19476
- kind: z36.literal("course"),
19477
- display: z36.object({ kind: z36.literal("course"), display: publicCoursePriceDisplaySchema })
19658
+ z37.object({
19659
+ kind: z37.literal("course"),
19660
+ display: z37.object({ kind: z37.literal("course"), display: publicCoursePriceDisplaySchema })
19478
19661
  }),
19479
- z36.object({
19480
- kind: z36.literal("external"),
19481
- display: z36.object({ kind: z36.literal("external"), label: z36.string() })
19662
+ z37.object({
19663
+ kind: z37.literal("external"),
19664
+ display: z37.object({ kind: z37.literal("external"), label: z37.string() })
19482
19665
  })
19483
19666
  ]);
19484
- var publicTeamMemberSummarySchema = z36.object({
19485
- id: z36.string(),
19486
- name: z36.string(),
19487
- roleLabel: z36.string().nullable(),
19488
- summary: z36.string().nullable(),
19489
- profilePath: z36.string().nullable()
19667
+ var publicTeamMemberSummarySchema = z37.object({
19668
+ id: z37.string(),
19669
+ name: z37.string(),
19670
+ roleLabel: z37.string().nullable(),
19671
+ summary: z37.string().nullable(),
19672
+ profilePath: z37.string().nullable()
19490
19673
  });
19491
- var publicEventSchema = z36.object({
19492
- kind: z36.enum(["event", "course_session"]).optional(),
19674
+ var publicEventSchema = z37.object({
19675
+ kind: z37.enum(["event", "course_session"]).optional(),
19493
19676
  eventPreset: eventPresetSchema.optional(),
19494
19677
  eventDestinationMode: eventDestinationModeSchema.optional(),
19495
19678
  scheduleScope: eventScheduleScopeSchema.optional(),
19496
- id: z36.string(),
19497
- occurrenceId: z36.string(),
19498
- seriesId: z36.string(),
19499
- title: z36.string(),
19500
- description: z36.string().nullable(),
19501
- content: z36.object({
19679
+ id: z37.string(),
19680
+ occurrenceId: z37.string(),
19681
+ seriesId: z37.string(),
19682
+ title: z37.string(),
19683
+ description: z37.string().nullable(),
19684
+ content: z37.object({
19502
19685
  body: RichTextDocSchema.nullable().optional()
19503
19686
  }).optional(),
19504
- presentation: z36.object({
19505
- cardTitleOverride: z36.string().nullable().optional(),
19506
- summary: z36.string().nullable().optional(),
19687
+ presentation: z37.object({
19688
+ cardTitleOverride: z37.string().nullable().optional(),
19689
+ summary: z37.string().nullable().optional(),
19507
19690
  image: mediaSchema2.nullable().optional()
19508
19691
  }).optional(),
19509
- slug: z36.string(),
19510
- path: z36.string().nullable(),
19692
+ slug: z37.string(),
19693
+ path: z37.string().nullable(),
19511
19694
  destination: publicEventDestinationSchema,
19512
- requiresRegistration: z36.boolean(),
19513
- deliveryMode: z36.enum(["in_person", "online", "hybrid"]),
19514
- attendanceModes: z36.array(publicEventAttendanceModeAvailabilitySchema),
19515
- startsAt: z36.string(),
19516
- endsAt: z36.string(),
19517
- capacity: z36.number().nullable(),
19518
- registeredCount: z36.number(),
19519
- availableSpots: z36.number().nullable(),
19520
- waitlistEnabled: z36.boolean(),
19695
+ requiresRegistration: z37.boolean(),
19696
+ deliveryMode: z37.enum(["in_person", "online", "hybrid"]),
19697
+ attendanceModes: z37.array(publicEventAttendanceModeAvailabilitySchema),
19698
+ startsAt: z37.string(),
19699
+ endsAt: z37.string(),
19700
+ capacity: z37.number().nullable(),
19701
+ registeredCount: z37.number(),
19702
+ availableSpots: z37.number().nullable(),
19703
+ waitlistEnabled: z37.boolean(),
19521
19704
  venue: eventVenueSchema.nullable(),
19522
19705
  eventCategory: eventCategorySchema.nullable(),
19523
- teamMembers: z36.array(publicTeamMemberSummarySchema).optional(),
19524
- status: z36.enum(["active", "draft", "archived"]).optional(),
19525
- timeZone: z36.string(),
19706
+ teamMembers: z37.array(publicTeamMemberSummarySchema).optional(),
19707
+ status: z37.enum(["active", "draft", "archived"]).optional(),
19708
+ timeZone: z37.string(),
19526
19709
  pricing: publicEventPricingSchema,
19527
19710
  paymentTerms: blockBookingPaymentTermsSchema,
19528
19711
  accessRestriction: accessRestrictionSchema,
19529
- allowedCategoryIds: z36.array(z36.string()),
19530
- requireGuestDetails: z36.boolean().optional(),
19531
- acceptsPasses: z36.boolean().optional(),
19532
- acceptsMemberships: z36.boolean().optional(),
19533
- course: z36.object({
19534
- id: z36.string(),
19712
+ allowedCategoryIds: z37.array(z37.string()),
19713
+ requireGuestDetails: z37.boolean().optional(),
19714
+ acceptsPasses: z37.boolean().optional(),
19715
+ acceptsMemberships: z37.boolean().optional(),
19716
+ course: z37.object({
19717
+ id: z37.string(),
19535
19718
  pricing: coursePricingSchema.optional(),
19536
- priceCents: z36.number().nullable(),
19537
- currency: z36.string(),
19538
- enrollmentOpen: z36.boolean()
19719
+ priceCents: z37.number().nullable(),
19720
+ currency: z37.string(),
19721
+ enrollmentOpen: z37.boolean()
19539
19722
  }).nullable().optional()
19540
19723
  });
19541
- var publicEventsArraySchema = z36.array(publicEventSchema);
19724
+ var publicEventsArraySchema = z37.array(publicEventSchema);
19542
19725
 
19543
19726
  // ../blocks/src/system/blocks/events/shared/fields.ts
19544
19727
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -19741,52 +19924,80 @@ function normalizeEventStaffMemberId(value) {
19741
19924
  return trimmed ? trimmed : null;
19742
19925
  }
19743
19926
 
19927
+ // ../blocks/src/system/blocks/events/shared/layout.ts
19928
+ var recoverEmptyHeadingWhenActive = {
19929
+ kind: "recover-empty-when-active",
19930
+ placeholder: "Add heading"
19931
+ };
19932
+ var recoverEmptyDescriptionWhenActive = {
19933
+ kind: "recover-empty-when-active",
19934
+ placeholder: "Add description"
19935
+ };
19936
+ function eventSectionHeaderLayoutNodes() {
19937
+ return [
19938
+ text(
19939
+ { as: "h2" },
19940
+ bind("content.heading"),
19941
+ when("content.heading", {
19942
+ authoringPresence: recoverEmptyHeadingWhenActive
19943
+ })
19944
+ ),
19945
+ richText(
19946
+ { className: "rb-prose rb-max-w-none" },
19947
+ bind("content.description"),
19948
+ when("content.description", {
19949
+ authoringPresence: recoverEmptyDescriptionWhenActive
19950
+ })
19951
+ )
19952
+ ];
19953
+ }
19954
+
19744
19955
  // ../blocks/src/system/blocks/shop.shared.ts
19745
- import { z as z37 } from "zod";
19746
- var publicPassProductSchema = z37.object({
19747
- id: z37.string(),
19748
- productUseCase: z37.enum(["event_pass", "appointment_package"]).default("event_pass"),
19749
- name: z37.string(),
19750
- description: z37.string().nullable(),
19751
- price: z37.number(),
19752
- currency: z37.string(),
19753
- creditsTotal: z37.number(),
19754
- pricePerCredit: z37.number(),
19755
- validDays: z37.number().nullable(),
19756
- eligibleCategoryIds: z37.array(z37.string()),
19757
- eligibleCategoryNames: z37.array(z37.string())
19758
- });
19759
- var publicPassProductCollectionSchema = z37.object({
19760
- passes: z37.array(publicPassProductSchema)
19761
- });
19762
- var publicMembershipProductSchema = z37.object({
19763
- id: z37.string(),
19764
- name: z37.string(),
19765
- description: z37.string().nullable(),
19766
- price: z37.number(),
19767
- currency: z37.string(),
19768
- billingInterval: z37.enum(["month", "year"]),
19769
- eligibleCategoryIds: z37.array(z37.string()),
19770
- eligibleCategoryNames: z37.array(z37.string())
19956
+ import { z as z38 } from "zod";
19957
+ var publicPassProductSchema = z38.object({
19958
+ id: z38.string(),
19959
+ productUseCase: z38.enum(["event_pass", "appointment_package"]).default("event_pass"),
19960
+ name: z38.string(),
19961
+ description: z38.string().nullable(),
19962
+ price: z38.number(),
19963
+ currency: z38.string(),
19964
+ creditsTotal: z38.number(),
19965
+ pricePerCredit: z38.number(),
19966
+ validDays: z38.number().nullable(),
19967
+ eligibleCategoryIds: z38.array(z38.string()),
19968
+ eligibleCategoryNames: z38.array(z38.string())
19969
+ });
19970
+ var publicPassProductCollectionSchema = z38.object({
19971
+ passes: z38.array(publicPassProductSchema)
19972
+ });
19973
+ var publicMembershipProductSchema = z38.object({
19974
+ id: z38.string(),
19975
+ name: z38.string(),
19976
+ description: z38.string().nullable(),
19977
+ price: z38.number(),
19978
+ currency: z38.string(),
19979
+ billingInterval: z38.enum(["month", "year"]),
19980
+ eligibleCategoryIds: z38.array(z38.string()),
19981
+ eligibleCategoryNames: z38.array(z38.string())
19771
19982
  });
19772
- var publicMembershipProductCollectionSchema = z37.object({
19773
- memberships: z37.array(publicMembershipProductSchema)
19983
+ var publicMembershipProductCollectionSchema = z38.object({
19984
+ memberships: z38.array(publicMembershipProductSchema)
19774
19985
  });
19775
19986
 
19776
19987
  // ../blocks/src/system/blocks/event-registration.shared.ts
19777
- import { z as z38 } from "zod";
19778
- var occurrenceContextSchema = z38.object({
19779
- id: z38.string(),
19780
- seriesId: z38.string(),
19781
- startsAt: z38.string(),
19782
- endsAt: z38.string(),
19783
- timeZone: z38.string(),
19784
- capacityOverride: z38.number().nullable().optional(),
19785
- overrides: z38.record(z38.string(), z38.unknown()).nullable().optional()
19988
+ import { z as z39 } from "zod";
19989
+ var occurrenceContextSchema = z39.object({
19990
+ id: z39.string(),
19991
+ seriesId: z39.string(),
19992
+ startsAt: z39.string(),
19993
+ endsAt: z39.string(),
19994
+ timeZone: z39.string(),
19995
+ capacityOverride: z39.number().nullable().optional(),
19996
+ overrides: z39.record(z39.string(), z39.unknown()).nullable().optional()
19786
19997
  }).nullable();
19787
19998
 
19788
19999
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
19789
- import { z as z40 } from "zod";
20000
+ import { z as z41 } from "zod";
19790
20001
 
19791
20002
  // ../blocks/src/system/constants/events.ts
19792
20003
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -19973,17 +20184,17 @@ function readAmount(value) {
19973
20184
  }
19974
20185
 
19975
20186
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
19976
- import { z as z39 } from "zod";
19977
- var previewStageSchema = z39.enum(["preview", "published"]);
19978
- var registrationButtonVariantSchema = z39.enum(["primary", "secondary", "outline"]);
19979
- var eventButtonVariantSchema = z39.enum(["primary", "secondary", "outline", "link"]);
19980
- var eventLayoutSchema = z39.enum(eventCalendarListLayoutValues);
19981
- var eventCalendarDisplayModeSchema = z39.enum(eventCalendarDisplayModeValues);
19982
- var eventCalendarDefaultViewSchema = z39.enum(eventCalendarDefaultViewValues);
19983
- var columnOptionSchema = z39.enum(["2", "3", "4"]);
19984
- var weekStartSchema = z39.enum(["sunday", "monday"]);
19985
- var filterAutoShowSchema = z39.enum(["auto", "always", "never"]);
19986
- var calendarTabViewsSchema = z39.enum(["both", "month", "week"]);
20187
+ import { z as z40 } from "zod";
20188
+ var previewStageSchema = z40.enum(["preview", "published"]);
20189
+ var registrationButtonVariantSchema = z40.enum(["primary", "secondary", "outline"]);
20190
+ var eventButtonVariantSchema = z40.enum(["primary", "secondary", "outline", "link"]);
20191
+ var eventLayoutSchema = z40.enum(eventCalendarListLayoutValues);
20192
+ var eventCalendarDisplayModeSchema = z40.enum(eventCalendarDisplayModeValues);
20193
+ var eventCalendarDefaultViewSchema = z40.enum(eventCalendarDefaultViewValues);
20194
+ var columnOptionSchema = z40.enum(["2", "3", "4"]);
20195
+ var weekStartSchema = z40.enum(["sunday", "monday"]);
20196
+ var filterAutoShowSchema = z40.enum(["auto", "always", "never"]);
20197
+ var calendarTabViewsSchema = z40.enum(["both", "month", "week"]);
19987
20198
 
19988
20199
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
19989
20200
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -20043,72 +20254,72 @@ function toRegistrationEvents(events) {
20043
20254
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
20044
20255
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
20045
20256
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
20046
- var contentEntrySchema = z40.object({
20047
- id: z40.string(),
20048
- slug: z40.string(),
20049
- contentTypeSlug: z40.string()
20257
+ var contentEntrySchema = z41.object({
20258
+ id: z41.string(),
20259
+ slug: z41.string(),
20260
+ contentTypeSlug: z41.string()
20050
20261
  });
20051
- var eventRegistrationPublicEventSchema = z40.preprocess(
20262
+ var eventRegistrationPublicEventSchema = z41.preprocess(
20052
20263
  normalizeEventRegistrationEventInput,
20053
20264
  publicEventSchema
20054
20265
  );
20055
- var eventRegistrationSourceSchema = z40.object({
20056
- siteId: z40.string().optional(),
20057
- apiBaseUrl: z40.string().optional(),
20058
- portalToken: z40.string().nullable().optional(),
20059
- previewToken: z40.string().nullable().optional(),
20266
+ var eventRegistrationSourceSchema = z41.object({
20267
+ siteId: z41.string().optional(),
20268
+ apiBaseUrl: z41.string().optional(),
20269
+ portalToken: z41.string().nullable().optional(),
20270
+ previewToken: z41.string().nullable().optional(),
20060
20271
  occurrenceContext: occurrenceContextSchema.optional(),
20061
20272
  contentEntry: contentEntrySchema.nullable().optional(),
20062
- events: z40.array(eventRegistrationPublicEventSchema).nullable().optional(),
20063
- className: z40.string().nullable().optional(),
20064
- buttonText: z40.string().nullable().optional(),
20065
- maxTickets: z40.string().nullable().optional(),
20066
- showVenue: z40.boolean().optional(),
20067
- showCapacity: z40.boolean().optional(),
20068
- successMessage: z40.string().optional(),
20069
- waitlistMessage: z40.string().optional(),
20273
+ events: z41.array(eventRegistrationPublicEventSchema).nullable().optional(),
20274
+ className: z41.string().nullable().optional(),
20275
+ buttonText: z41.string().nullable().optional(),
20276
+ maxTickets: z41.string().nullable().optional(),
20277
+ showVenue: z41.boolean().optional(),
20278
+ showCapacity: z41.boolean().optional(),
20279
+ successMessage: z41.string().optional(),
20280
+ waitlistMessage: z41.string().optional(),
20070
20281
  buttonVariant: registrationButtonVariantSchema.optional(),
20071
- overlayEnabled: z40.boolean().optional(),
20072
- spamProtectionEnabled: z40.boolean().optional(),
20282
+ overlayEnabled: z41.boolean().optional(),
20283
+ spamProtectionEnabled: z41.boolean().optional(),
20073
20284
  stage: previewStageSchema.optional(),
20074
- supportEmail: z40.string().optional(),
20285
+ supportEmail: z41.string().optional(),
20075
20286
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
20076
20287
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
20077
20288
  });
20078
- var eventRegistrationDisplaySchema = z40.object({
20079
- kind: z40.literal("event-registration"),
20080
- state: z40.literal("generic-shell"),
20081
- className: z40.string().nullable(),
20082
- titleText: z40.string(),
20083
- bodyText: z40.string(),
20084
- stepLabels: z40.array(z40.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
20085
- summaryButtonText: z40.string()
20289
+ var eventRegistrationDisplaySchema = z41.object({
20290
+ kind: z41.literal("event-registration"),
20291
+ state: z41.literal("generic-shell"),
20292
+ className: z41.string().nullable(),
20293
+ titleText: z41.string(),
20294
+ bodyText: z41.string(),
20295
+ stepLabels: z41.array(z41.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
20296
+ summaryButtonText: z41.string()
20086
20297
  });
20087
- var eventRegistrationHydrationSchema = z40.object({
20298
+ var eventRegistrationHydrationSchema = z41.object({
20088
20299
  occurrenceContext: occurrenceContextSchema.optional(),
20089
20300
  contentEntry: contentEntrySchema.nullable().optional(),
20090
- events: z40.array(eventRegistrationPublicEventSchema).nullable().optional(),
20091
- maxTickets: z40.string().optional(),
20092
- showVenue: z40.boolean().optional(),
20093
- showCapacity: z40.boolean().optional(),
20094
- successMessage: z40.string().optional(),
20095
- waitlistMessage: z40.string().optional(),
20301
+ events: z41.array(eventRegistrationPublicEventSchema).nullable().optional(),
20302
+ maxTickets: z41.string().optional(),
20303
+ showVenue: z41.boolean().optional(),
20304
+ showCapacity: z41.boolean().optional(),
20305
+ successMessage: z41.string().optional(),
20306
+ waitlistMessage: z41.string().optional(),
20096
20307
  buttonVariant: registrationButtonVariantSchema.optional(),
20097
- overlayEnabled: z40.boolean().optional(),
20098
- spamProtectionEnabled: z40.boolean().optional(),
20099
- supportEmail: z40.string().optional(),
20308
+ overlayEnabled: z41.boolean().optional(),
20309
+ spamProtectionEnabled: z41.boolean().optional(),
20310
+ supportEmail: z41.string().optional(),
20100
20311
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
20101
20312
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
20102
20313
  });
20103
- var eventRegistrationRenderSchema = z40.object({
20314
+ var eventRegistrationRenderSchema = z41.object({
20104
20315
  display: eventRegistrationDisplaySchema,
20105
20316
  hydration: eventRegistrationHydrationSchema
20106
20317
  });
20107
- var eventRegistrationIslandMetaCodec = createZodCodec(z40.object({
20108
- siteId: z40.string().optional(),
20109
- apiBaseUrl: z40.string().optional(),
20110
- portalToken: z40.string().nullable().optional(),
20111
- previewToken: z40.string().nullable().optional(),
20318
+ var eventRegistrationIslandMetaCodec = createZodCodec(z41.object({
20319
+ siteId: z41.string().optional(),
20320
+ apiBaseUrl: z41.string().optional(),
20321
+ portalToken: z41.string().nullable().optional(),
20322
+ previewToken: z41.string().nullable().optional(),
20112
20323
  stage: previewStageSchema.optional()
20113
20324
  }));
20114
20325
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -20459,73 +20670,73 @@ var eventRegistrationBlockDefinition = {
20459
20670
  };
20460
20671
 
20461
20672
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
20462
- import { z as z41 } from "zod";
20463
- var contentEntrySchema2 = z41.object({
20464
- id: z41.string(),
20465
- slug: z41.string(),
20466
- contentTypeSlug: z41.string()
20467
- });
20468
- var courseEntrySubrouteContextSchema = z41.union([
20469
- z41.object({
20470
- kind: z41.literal("course-run"),
20471
- run: z41.object({
20472
- courseId: z41.string(),
20473
- seriesId: z41.string(),
20474
- runSlug: z41.string(),
20475
- runName: z41.string().nullable()
20673
+ import { z as z42 } from "zod";
20674
+ var contentEntrySchema2 = z42.object({
20675
+ id: z42.string(),
20676
+ slug: z42.string(),
20677
+ contentTypeSlug: z42.string()
20678
+ });
20679
+ var courseEntrySubrouteContextSchema = z42.union([
20680
+ z42.object({
20681
+ kind: z42.literal("course-run"),
20682
+ run: z42.object({
20683
+ courseId: z42.string(),
20684
+ seriesId: z42.string(),
20685
+ runSlug: z42.string(),
20686
+ runName: z42.string().nullable()
20476
20687
  })
20477
20688
  }),
20478
- z41.object({
20479
- kind: z41.literal("event-occurrence"),
20689
+ z42.object({
20690
+ kind: z42.literal("event-occurrence"),
20480
20691
  occurrence: occurrenceContextSchema
20481
20692
  })
20482
20693
  ]);
20483
- var courseRegistrationSourceSchema = z41.object({
20484
- siteId: z41.string().optional(),
20485
- apiBaseUrl: z41.string().optional(),
20486
- portalToken: z41.string().nullable().optional(),
20694
+ var courseRegistrationSourceSchema = z42.object({
20695
+ siteId: z42.string().optional(),
20696
+ apiBaseUrl: z42.string().optional(),
20697
+ portalToken: z42.string().nullable().optional(),
20487
20698
  contentEntry: contentEntrySchema2.nullable().optional(),
20488
20699
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
20489
- courses: z41.array(publicCourseSchema).nullable().optional(),
20490
- className: z41.string().nullable().optional(),
20491
- showSessions: z41.boolean().optional(),
20492
- showPrice: z41.boolean().optional(),
20493
- showCapacity: z41.boolean().optional(),
20494
- showVenue: z41.boolean().optional(),
20495
- successMessage: z41.string().optional(),
20496
- waitlistMessage: z41.string().optional(),
20497
- membershipMessage: z41.string().optional(),
20498
- buttonText: z41.string().nullable().optional(),
20700
+ courses: z42.array(publicCourseSchema).nullable().optional(),
20701
+ className: z42.string().nullable().optional(),
20702
+ showSessions: z42.boolean().optional(),
20703
+ showPrice: z42.boolean().optional(),
20704
+ showCapacity: z42.boolean().optional(),
20705
+ showVenue: z42.boolean().optional(),
20706
+ successMessage: z42.string().optional(),
20707
+ waitlistMessage: z42.string().optional(),
20708
+ membershipMessage: z42.string().optional(),
20709
+ buttonText: z42.string().nullable().optional(),
20499
20710
  buttonVariant: registrationButtonVariantSchema.optional(),
20500
20711
  stage: previewStageSchema.optional()
20501
20712
  });
20502
- var courseRegistrationDisplaySchema = z41.object({
20503
- kind: z41.literal("course-registration"),
20504
- state: z41.literal("shell"),
20505
- className: z41.string().nullable(),
20506
- summaryButtonText: z41.string()
20713
+ var courseRegistrationDisplaySchema = z42.object({
20714
+ kind: z42.literal("course-registration"),
20715
+ state: z42.literal("shell"),
20716
+ className: z42.string().nullable(),
20717
+ summaryButtonText: z42.string()
20507
20718
  });
20508
- var courseRegistrationHydrationSchema = z41.object({
20719
+ var courseRegistrationHydrationSchema = z42.object({
20509
20720
  contentEntry: contentEntrySchema2.nullable().optional(),
20510
20721
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
20511
- courses: z41.array(publicCourseSchema).nullable().optional(),
20512
- showSessions: z41.boolean().optional(),
20513
- showPrice: z41.boolean().optional(),
20514
- showCapacity: z41.boolean().optional(),
20515
- showVenue: z41.boolean().optional(),
20516
- successMessage: z41.string().optional(),
20517
- waitlistMessage: z41.string().optional(),
20518
- membershipMessage: z41.string().optional(),
20722
+ courses: z42.array(publicCourseSchema).nullable().optional(),
20723
+ showSessions: z42.boolean().optional(),
20724
+ showPrice: z42.boolean().optional(),
20725
+ showCapacity: z42.boolean().optional(),
20726
+ showVenue: z42.boolean().optional(),
20727
+ successMessage: z42.string().optional(),
20728
+ waitlistMessage: z42.string().optional(),
20729
+ membershipMessage: z42.string().optional(),
20519
20730
  buttonVariant: registrationButtonVariantSchema.optional()
20520
20731
  });
20521
- var courseRegistrationRenderSchema = z41.object({
20732
+ var courseRegistrationRenderSchema = z42.object({
20522
20733
  display: courseRegistrationDisplaySchema,
20523
20734
  hydration: courseRegistrationHydrationSchema
20524
20735
  });
20525
- var courseRegistrationIslandMetaCodec = createZodCodec(z41.object({
20526
- siteId: z41.string().optional(),
20527
- apiBaseUrl: z41.string().optional(),
20528
- portalToken: z41.string().nullable().optional(),
20736
+ var courseRegistrationIslandMetaCodec = createZodCodec(z42.object({
20737
+ siteId: z42.string().optional(),
20738
+ apiBaseUrl: z42.string().optional(),
20739
+ portalToken: z42.string().nullable().optional(),
20529
20740
  stage: previewStageSchema.optional()
20530
20741
  }));
20531
20742
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -20785,7 +20996,7 @@ var courseRegistrationBlockDefinition = {
20785
20996
  };
20786
20997
 
20787
20998
  // ../blocks/src/system/blocks/event-details.ts
20788
- import { z as z42 } from "zod";
20999
+ import { z as z43 } from "zod";
20789
21000
  var eventDetailsManifest = createBlockManifest({
20790
21001
  id: "block.event-details",
20791
21002
  version: "1.0.0",
@@ -20917,37 +21128,37 @@ var eventDetailsManifest = createBlockManifest({
20917
21128
  })
20918
21129
  ]
20919
21130
  });
20920
- var occurrenceContextSchema2 = z42.object({
20921
- id: z42.string(),
20922
- seriesId: z42.string(),
20923
- startsAt: z42.string(),
20924
- endsAt: z42.string(),
20925
- timeZone: z42.string(),
20926
- capacityOverride: z42.number().nullable().optional(),
20927
- overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
21131
+ var occurrenceContextSchema2 = z43.object({
21132
+ id: z43.string(),
21133
+ seriesId: z43.string(),
21134
+ startsAt: z43.string(),
21135
+ endsAt: z43.string(),
21136
+ timeZone: z43.string(),
21137
+ capacityOverride: z43.number().nullable().optional(),
21138
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
20928
21139
  }).nullable();
20929
- var eventAutoApplyDiscountPreviewBaseSchema = z42.object({
20930
- id: z42.string(),
20931
- publicLabel: z42.string(),
20932
- description: z42.string().nullable(),
20933
- minTicketsRequired: z42.number().nullable()
21140
+ var eventAutoApplyDiscountPreviewBaseSchema = z43.object({
21141
+ id: z43.string(),
21142
+ publicLabel: z43.string(),
21143
+ description: z43.string().nullable(),
21144
+ minTicketsRequired: z43.number().nullable()
20934
21145
  });
20935
- var eventAutoApplyDiscountPreviewSchema = z42.discriminatedUnion("discountType", [
21146
+ var eventAutoApplyDiscountPreviewSchema = z43.discriminatedUnion("discountType", [
20936
21147
  eventAutoApplyDiscountPreviewBaseSchema.extend({
20937
- discountType: z42.literal("percent"),
20938
- discountPercent: z42.number(),
20939
- discountAmountCents: z42.null()
21148
+ discountType: z43.literal("percent"),
21149
+ discountPercent: z43.number(),
21150
+ discountAmountCents: z43.null()
20940
21151
  }),
20941
21152
  eventAutoApplyDiscountPreviewBaseSchema.extend({
20942
- discountType: z42.literal("fixed"),
20943
- discountPercent: z42.null(),
20944
- discountAmountCents: z42.number()
21153
+ discountType: z43.literal("fixed"),
21154
+ discountPercent: z43.null(),
21155
+ discountAmountCents: z43.number()
20945
21156
  })
20946
21157
  ]);
20947
21158
  var eventDetailsBlockDefinition = {
20948
21159
  manifest: eventDetailsManifest,
20949
21160
  dataSchemas: {
20950
- eventDetailsData: z42.object({
21161
+ eventDetailsData: z43.object({
20951
21162
  events: publicEventsArraySchema,
20952
21163
  sitePasses: publicPassProductCollectionSchema,
20953
21164
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -21202,18 +21413,7 @@ var eventSpotlightFields = [
21202
21413
  var eventSpotlightLayout = [
21203
21414
  styledSection({
21204
21415
  children: sectionContainer([
21205
- // Optional heading
21206
- text(
21207
- { as: "h2" },
21208
- bind("content.heading"),
21209
- when("content.heading")
21210
- ),
21211
- // Optional description
21212
- richText(
21213
- { className: "rb-prose rb-max-w-none" },
21214
- bind("content.description"),
21215
- when("content.description")
21216
- ),
21416
+ ...eventSectionHeaderLayoutNodes(),
21217
21417
  // Event spotlight component
21218
21418
  el("event-spotlight", {
21219
21419
  events: { $bind: { from: "data.events" } },
@@ -21274,7 +21474,7 @@ var eventSpotlightBlockDefinition = {
21274
21474
  };
21275
21475
 
21276
21476
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
21277
- import { z as z44 } from "zod";
21477
+ import { z as z45 } from "zod";
21278
21478
 
21279
21479
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
21280
21480
  var COLUMN_CLASSES = {
@@ -21306,16 +21506,16 @@ function getCardOrientation(layout) {
21306
21506
  }
21307
21507
 
21308
21508
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
21309
- import { z as z43 } from "zod";
21509
+ import { z as z44 } from "zod";
21310
21510
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
21311
- var eventPageSizeSchema = z43.union([
21312
- z43.literal(3),
21313
- z43.literal(6),
21314
- z43.literal(10),
21315
- z43.literal(12),
21316
- z43.literal(20),
21317
- z43.literal(24),
21318
- z43.literal(30)
21511
+ var eventPageSizeSchema = z44.union([
21512
+ z44.literal(3),
21513
+ z44.literal(6),
21514
+ z44.literal(10),
21515
+ z44.literal(12),
21516
+ z44.literal(20),
21517
+ z44.literal(24),
21518
+ z44.literal(30)
21319
21519
  ]);
21320
21520
  var eventPageSizeSet = new Set(eventPageSizeValues);
21321
21521
  function resolveEventPageSize(value, fallback = 12) {
@@ -21325,15 +21525,15 @@ function resolveEventPageSize(value, fallback = 12) {
21325
21525
  function resolveEventCalendarListPageSize(input) {
21326
21526
  return resolveEventPageSize(input.eventsPerPage);
21327
21527
  }
21328
- var eventListPaginationActionSchema = z43.discriminatedUnion("kind", [
21329
- z43.object({
21330
- kind: z43.literal("loadMore"),
21331
- label: z43.string()
21528
+ var eventListPaginationActionSchema = z44.discriminatedUnion("kind", [
21529
+ z44.object({
21530
+ kind: z44.literal("loadMore"),
21531
+ label: z44.string()
21332
21532
  }),
21333
- z43.object({
21334
- kind: z43.literal("seeAllLink"),
21335
- label: z43.string(),
21336
- href: z43.string()
21533
+ z44.object({
21534
+ kind: z44.literal("seeAllLink"),
21535
+ label: z44.string(),
21536
+ href: z44.string()
21337
21537
  })
21338
21538
  ]);
21339
21539
  function resolveEventListPaginationAction(input) {
@@ -21346,89 +21546,89 @@ function resolveEventListPaginationAction(input) {
21346
21546
  }
21347
21547
 
21348
21548
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
21349
- var legacyEventCardVariantSchema = z44.enum(["variant1", "variant2"]);
21350
- var eventCardVariantInputSchema = z44.union([
21549
+ var legacyEventCardVariantSchema = z45.enum(["variant1", "variant2"]);
21550
+ var eventCardVariantInputSchema = z45.union([
21351
21551
  cardVariantRoleSchema,
21352
21552
  legacyEventCardVariantSchema
21353
21553
  ]);
21354
- var cardOrientationSchema = z44.enum(["vertical", "horizontal"]);
21355
- var eventBlockKindSchema = z44.enum(eventBlockKindValues);
21356
- var eventSurfaceScopeSchema = z44.enum(eventSurfaceScopeValues);
21357
- var eventScheduleScopeSchema2 = z44.enum(eventScheduleScopeValues);
21358
- var eventListingSourceSchema = z44.object({
21359
- events: z44.array(publicEventSchema).nullable().optional(),
21360
- siteId: z44.string(),
21361
- apiBaseUrl: z44.string().optional(),
21554
+ var cardOrientationSchema = z45.enum(["vertical", "horizontal"]);
21555
+ var eventBlockKindSchema = z45.enum(eventBlockKindValues);
21556
+ var eventSurfaceScopeSchema = z45.enum(eventSurfaceScopeValues);
21557
+ var eventScheduleScopeSchema2 = z45.enum(eventScheduleScopeValues);
21558
+ var eventListingSourceSchema = z45.object({
21559
+ events: z45.array(publicEventSchema).nullable().optional(),
21560
+ siteId: z45.string(),
21561
+ apiBaseUrl: z45.string().optional(),
21362
21562
  stage: previewStageSchema.optional(),
21363
21563
  layout: eventLayoutSchema.optional(),
21364
21564
  columns: columnOptionSchema.optional(),
21365
- eventsPerPage: z44.string().optional(),
21366
- paginationMode: z44.enum(["loadMore", "seeAllLink"]).optional(),
21367
- seeAllUrl: z44.string().optional(),
21368
- loadMoreText: z44.string().optional(),
21565
+ eventsPerPage: z45.string().optional(),
21566
+ paginationMode: z45.enum(["loadMore", "seeAllLink"]).optional(),
21567
+ seeAllUrl: z45.string().optional(),
21568
+ loadMoreText: z45.string().optional(),
21369
21569
  cardVariant: eventCardVariantInputSchema.optional(),
21370
21570
  buttonVariant: eventButtonVariantSchema.optional(),
21371
- buttonText: z44.string().optional(),
21372
- showVenue: z44.boolean().optional(),
21373
- showMap: z44.boolean().optional(),
21374
- showCapacity: z44.boolean().optional(),
21375
- emptyMessage: z44.string().optional(),
21376
- className: z44.string().optional(),
21377
- showFilters: z44.boolean().nullable().optional(),
21571
+ buttonText: z45.string().optional(),
21572
+ showVenue: z45.boolean().optional(),
21573
+ showMap: z45.boolean().optional(),
21574
+ showCapacity: z45.boolean().optional(),
21575
+ emptyMessage: z45.string().optional(),
21576
+ className: z45.string().optional(),
21577
+ showFilters: z45.boolean().nullable().optional(),
21378
21578
  showCategoryFilter: filterAutoShowSchema.optional(),
21379
- showVenueFilter: z44.boolean().nullable().optional(),
21380
- showStaffFilter: z44.boolean().nullable().optional(),
21579
+ showVenueFilter: z45.boolean().nullable().optional(),
21580
+ showStaffFilter: z45.boolean().nullable().optional(),
21381
21581
  eventKind: eventBlockKindSchema.nullable().optional(),
21382
21582
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
21383
- filterEventPresets: z44.union([z44.string(), z44.array(z44.string())]).nullable().optional(),
21583
+ filterEventPresets: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
21384
21584
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
21385
- filterCategoryIds: z44.string().nullable().optional(),
21386
- filterStaffMemberId: z44.string().nullable().optional(),
21387
- filterVenueId: z44.string().nullable().optional()
21585
+ filterCategoryIds: z45.string().nullable().optional(),
21586
+ filterStaffMemberId: z45.string().nullable().optional(),
21587
+ filterVenueId: z45.string().nullable().optional()
21388
21588
  });
21389
- var eventListingDisplaySchema = z44.object({
21390
- kind: z44.literal("event-listing"),
21391
- state: z44.enum(["loading", "empty", "ready"]),
21589
+ var eventListingDisplaySchema = z45.object({
21590
+ kind: z45.literal("event-listing"),
21591
+ state: z45.enum(["loading", "empty", "ready"]),
21392
21592
  listLayout: eventLayoutSchema,
21393
- className: z44.string().nullable(),
21394
- emptyMessage: z44.string(),
21395
- loadingMessage: z44.string(),
21396
- containerClass: z44.string(),
21593
+ className: z45.string().nullable(),
21594
+ emptyMessage: z45.string(),
21595
+ loadingMessage: z45.string(),
21596
+ containerClass: z45.string(),
21397
21597
  cardVariant: cardVariantRoleSchema,
21398
21598
  buttonVariant: eventButtonVariantSchema,
21399
- buttonText: z44.string(),
21400
- showVenue: z44.boolean(),
21401
- showMap: z44.boolean(),
21402
- showCapacity: z44.boolean(),
21599
+ buttonText: z45.string(),
21600
+ showVenue: z45.boolean(),
21601
+ showMap: z45.boolean(),
21602
+ showCapacity: z45.boolean(),
21403
21603
  orientation: cardOrientationSchema,
21404
- events: z44.array(publicEventSchema)
21604
+ events: z45.array(publicEventSchema)
21405
21605
  });
21406
- var eventListingHydrationSchema = z44.object({
21407
- siteId: z44.string(),
21606
+ var eventListingHydrationSchema = z45.object({
21607
+ siteId: z45.string(),
21408
21608
  stage: previewStageSchema.optional(),
21409
21609
  eventsPerPage: eventPageSizeSchema,
21410
21610
  paginationAction: eventListPaginationActionSchema,
21411
- showFilters: z44.boolean(),
21611
+ showFilters: z45.boolean(),
21412
21612
  showCategoryFilter: filterAutoShowSchema,
21413
- showVenueFilter: z44.boolean(),
21414
- showStaffFilter: z44.boolean(),
21613
+ showVenueFilter: z45.boolean(),
21614
+ showStaffFilter: z45.boolean(),
21415
21615
  eventKind: eventBlockKindSchema,
21416
21616
  eventSurface: eventSurfaceScopeSchema,
21417
- filterEventPresets: z44.string().nullable(),
21617
+ filterEventPresets: z45.string().nullable(),
21418
21618
  scheduleScope: eventScheduleScopeSchema2,
21419
- filterCategoryIds: z44.string().nullable().optional(),
21420
- filterStaffMemberId: z44.string().nullable().optional(),
21421
- filterVenueId: z44.string().nullable().optional(),
21422
- fetchInitialEventsOnMount: z44.boolean()
21619
+ filterCategoryIds: z45.string().nullable().optional(),
21620
+ filterStaffMemberId: z45.string().nullable().optional(),
21621
+ filterVenueId: z45.string().nullable().optional(),
21622
+ fetchInitialEventsOnMount: z45.boolean()
21423
21623
  });
21424
- var eventListingRenderSchema = z44.object({
21624
+ var eventListingRenderSchema = z45.object({
21425
21625
  display: eventListingDisplaySchema,
21426
21626
  hydration: eventListingHydrationSchema
21427
21627
  });
21428
21628
  var eventListingIslandMetaCodec = createZodCodec(
21429
- z44.object({
21430
- siteId: z44.string(),
21431
- apiBaseUrl: z44.string().optional(),
21629
+ z45.object({
21630
+ siteId: z45.string(),
21631
+ apiBaseUrl: z45.string().optional(),
21432
21632
  stage: previewStageSchema.optional()
21433
21633
  })
21434
21634
  );
@@ -21668,18 +21868,7 @@ var eventListingAdditionalFields = [
21668
21868
  var eventListingLayout = [
21669
21869
  styledSection({
21670
21870
  children: sectionContainer([
21671
- // Optional heading
21672
- text(
21673
- { as: "h2" },
21674
- bind("content.heading"),
21675
- when("content.heading")
21676
- ),
21677
- // Optional description
21678
- richText(
21679
- { className: "rb-prose rb-max-w-none" },
21680
- bind("content.description"),
21681
- when("content.description")
21682
- ),
21871
+ ...eventSectionHeaderLayoutNodes(),
21683
21872
  // Event listing component with pagination
21684
21873
  el("event-listing", withApiBindings({
21685
21874
  events: { $bind: { from: "data.events" } },
@@ -21795,15 +21984,15 @@ var eventListingBlockDefinition = {
21795
21984
  };
21796
21985
 
21797
21986
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
21798
- import { z as z45 } from "zod";
21799
- var eventBlockKindSchema2 = z45.enum(eventBlockKindValues);
21800
- var eventSurfaceScopeSchema2 = z45.enum(eventSurfaceScopeValues);
21801
- var eventScheduleScopeSchema3 = z45.enum(eventScheduleScopeValues);
21802
- var eventCalendarSourceSchema = z45.object(
21987
+ import { z as z46 } from "zod";
21988
+ var eventBlockKindSchema2 = z46.enum(eventBlockKindValues);
21989
+ var eventSurfaceScopeSchema2 = z46.enum(eventSurfaceScopeValues);
21990
+ var eventScheduleScopeSchema3 = z46.enum(eventScheduleScopeValues);
21991
+ var eventCalendarSourceSchema = z46.object(
21803
21992
  {
21804
- events: z45.array(publicEventSchema).nullable().optional(),
21805
- siteId: z45.string(),
21806
- apiBaseUrl: z45.string().optional(),
21993
+ events: z46.array(publicEventSchema).nullable().optional(),
21994
+ siteId: z46.string(),
21995
+ apiBaseUrl: z46.string().optional(),
21807
21996
  stage: previewStageSchema.optional(),
21808
21997
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
21809
21998
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -21811,38 +22000,38 @@ var eventCalendarSourceSchema = z45.object(
21811
22000
  listColumns: columnOptionSchema.optional(),
21812
22001
  layout: eventLayoutSchema.optional(),
21813
22002
  columns: columnOptionSchema.optional(),
21814
- eventsPerPage: z45.string().optional(),
21815
- paginationMode: z45.enum(["loadMore", "seeAllLink"]).optional(),
21816
- seeAllUrl: z45.string().optional(),
21817
- loadMoreText: z45.string().optional(),
22003
+ eventsPerPage: z46.string().optional(),
22004
+ paginationMode: z46.enum(["loadMore", "seeAllLink"]).optional(),
22005
+ seeAllUrl: z46.string().optional(),
22006
+ loadMoreText: z46.string().optional(),
21818
22007
  startOfWeek: weekStartSchema.optional(),
21819
22008
  calendarTabViews: calendarTabViewsSchema.optional(),
21820
22009
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
21821
- showFilters: z45.boolean().nullable().optional(),
22010
+ showFilters: z46.boolean().nullable().optional(),
21822
22011
  showCategoryFilter: filterAutoShowSchema.optional(),
21823
- showVenueFilter: z45.boolean().nullable().optional(),
21824
- showStaffFilter: z45.boolean().nullable().optional(),
22012
+ showVenueFilter: z46.boolean().nullable().optional(),
22013
+ showStaffFilter: z46.boolean().nullable().optional(),
21825
22014
  kind: eventBlockKindSchema2.nullable().optional(),
21826
22015
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
21827
- filterEventPresets: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
22016
+ filterEventPresets: z46.union([z46.string(), z46.array(z46.string())]).nullable().optional(),
21828
22017
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
21829
- filterCategoryIds: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
21830
- filterStaffMemberId: z45.string().nullable().optional(),
21831
- filterVenueId: z45.string().nullable().optional(),
22018
+ filterCategoryIds: z46.union([z46.string(), z46.array(z46.string())]).nullable().optional(),
22019
+ filterStaffMemberId: z46.string().nullable().optional(),
22020
+ filterVenueId: z46.string().nullable().optional(),
21832
22021
  buttonVariant: eventButtonVariantSchema.optional(),
21833
- buttonText: z45.string().optional(),
21834
- showVenue: z45.boolean().nullable().optional(),
21835
- showMap: z45.boolean().nullable().optional(),
21836
- showCapacity: z45.boolean().nullable().optional(),
21837
- emptyMessage: z45.string().optional(),
21838
- className: z45.string().optional()
22022
+ buttonText: z46.string().optional(),
22023
+ showVenue: z46.boolean().nullable().optional(),
22024
+ showMap: z46.boolean().nullable().optional(),
22025
+ showCapacity: z46.boolean().nullable().optional(),
22026
+ emptyMessage: z46.string().optional(),
22027
+ className: z46.string().optional()
21839
22028
  }
21840
22029
  );
21841
- var eventCalendarDisplaySchema = z45.object({
21842
- kind: z45.literal("event-calendar"),
22030
+ var eventCalendarDisplaySchema = z46.object({
22031
+ kind: z46.literal("event-calendar"),
21843
22032
  displayMode: eventCalendarDisplayModeSchema,
21844
- className: z45.string().nullable(),
21845
- events: z45.array(publicEventSchema),
22033
+ className: z46.string().nullable(),
22034
+ events: z46.array(publicEventSchema),
21846
22035
  listLayout: eventLayoutSchema,
21847
22036
  listColumns: columnOptionSchema,
21848
22037
  eventsPerPage: eventPageSizeSchema,
@@ -21850,41 +22039,41 @@ var eventCalendarDisplaySchema = z45.object({
21850
22039
  startOfWeek: weekStartSchema,
21851
22040
  calendarTabViews: calendarTabViewsSchema,
21852
22041
  defaultCalendarView: eventCalendarDefaultViewSchema,
21853
- showFilters: z45.boolean(),
22042
+ showFilters: z46.boolean(),
21854
22043
  showCategoryFilter: filterAutoShowSchema,
21855
- showVenueFilter: z45.boolean(),
21856
- showStaffFilter: z45.boolean(),
22044
+ showVenueFilter: z46.boolean(),
22045
+ showStaffFilter: z46.boolean(),
21857
22046
  eventKind: eventBlockKindSchema2,
21858
22047
  eventSurface: eventSurfaceScopeSchema2,
21859
- filterEventPresets: z45.string().nullable(),
22048
+ filterEventPresets: z46.string().nullable(),
21860
22049
  scheduleScope: eventScheduleScopeSchema3,
21861
- filterCategoryIds: z45.string().nullable(),
21862
- filterStaffMemberId: z45.string().nullable(),
21863
- filterVenueId: z45.string().nullable(),
22050
+ filterCategoryIds: z46.string().nullable(),
22051
+ filterStaffMemberId: z46.string().nullable(),
22052
+ filterVenueId: z46.string().nullable(),
21864
22053
  buttonVariant: eventButtonVariantSchema,
21865
- buttonText: z45.string(),
21866
- showVenue: z45.boolean(),
21867
- showMap: z45.boolean(),
21868
- showCapacity: z45.boolean(),
21869
- emptyMessage: z45.string()
21870
- });
21871
- var eventCalendarHydrationSchema = z45.object({
21872
- siteId: z45.string(),
22054
+ buttonText: z46.string(),
22055
+ showVenue: z46.boolean(),
22056
+ showMap: z46.boolean(),
22057
+ showCapacity: z46.boolean(),
22058
+ emptyMessage: z46.string()
22059
+ });
22060
+ var eventCalendarHydrationSchema = z46.object({
22061
+ siteId: z46.string(),
21873
22062
  stage: previewStageSchema.optional(),
21874
- prefetchedEvents: z45.boolean(),
22063
+ prefetchedEvents: z46.boolean(),
21875
22064
  eventKind: eventBlockKindSchema2,
21876
22065
  eventSurface: eventSurfaceScopeSchema2,
21877
- filterEventPresets: z45.string().nullable(),
22066
+ filterEventPresets: z46.string().nullable(),
21878
22067
  scheduleScope: eventScheduleScopeSchema3
21879
22068
  });
21880
- var eventCalendarRenderSchema = z45.object({
22069
+ var eventCalendarRenderSchema = z46.object({
21881
22070
  display: eventCalendarDisplaySchema,
21882
22071
  hydration: eventCalendarHydrationSchema
21883
22072
  });
21884
22073
  var eventCalendarIslandMetaCodec = createZodCodec(
21885
- z45.object({
21886
- siteId: z45.string(),
21887
- apiBaseUrl: z45.string().optional(),
22074
+ z46.object({
22075
+ siteId: z46.string(),
22076
+ apiBaseUrl: z46.string().optional(),
21888
22077
  stage: previewStageSchema.optional()
21889
22078
  })
21890
22079
  );
@@ -22004,14 +22193,7 @@ var eventCalendarLayout = [
22004
22193
  styledSection({
22005
22194
  children: sectionContainer(
22006
22195
  [
22007
- // Optional heading
22008
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
22009
- // Optional description
22010
- richText(
22011
- { className: "rb-prose rb-max-w-none" },
22012
- bind("content.description"),
22013
- when("content.description")
22014
- ),
22196
+ ...eventSectionHeaderLayoutNodes(),
22015
22197
  // Event calendar component (handles all display modes)
22016
22198
  el(
22017
22199
  "event-calendar",
@@ -22656,7 +22838,7 @@ var eventCalendarBlockDefinition = {
22656
22838
  };
22657
22839
 
22658
22840
  // ../blocks/src/system/blocks/offerings-preview/index.ts
22659
- import { z as z46 } from "zod";
22841
+ import { z as z47 } from "zod";
22660
22842
 
22661
22843
  // ../blocks/src/system/blocks/offerings-preview/model.ts
22662
22844
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -22748,13 +22930,13 @@ function isRecord5(value) {
22748
22930
  }
22749
22931
 
22750
22932
  // ../blocks/src/system/blocks/offerings-preview/index.ts
22751
- var publicRouteCandidatesSchema = z46.object({
22752
- routes: z46.array(z46.object({
22753
- entityId: z46.string(),
22754
- path: z46.string(),
22755
- title: z46.string(),
22756
- kind: z46.enum(["page", "content"]),
22757
- contentTypeKey: z46.string().nullable().optional()
22933
+ var publicRouteCandidatesSchema = z47.object({
22934
+ routes: z47.array(z47.object({
22935
+ entityId: z47.string(),
22936
+ path: z47.string(),
22937
+ title: z47.string(),
22938
+ kind: z47.enum(["page", "content"]),
22939
+ contentTypeKey: z47.string().nullable().optional()
22758
22940
  }))
22759
22941
  });
22760
22942
  var groupOverrideFields = [
@@ -23152,7 +23334,7 @@ function isRecord6(value) {
23152
23334
  }
23153
23335
 
23154
23336
  // ../blocks/src/system/blocks/embed.ts
23155
- import { z as z47 } from "zod";
23337
+ import { z as z48 } from "zod";
23156
23338
  var embedFields = [
23157
23339
  // Section heading
23158
23340
  parseFieldDefinition({
@@ -23383,18 +23565,18 @@ var embedManifest = createBlockManifest({
23383
23565
  spacing: "lg"
23384
23566
  }
23385
23567
  });
23386
- var embedEntrySchema = z47.object({
23387
- id: z47.string(),
23388
- identifier: z47.string(),
23389
- title: z47.string(),
23390
- slug: z47.string().nullable().optional(),
23391
- content: z47.record(z47.string(), z47.unknown()).optional(),
23392
- publishedAt: z47.string().nullable().optional()
23568
+ var embedEntrySchema = z48.object({
23569
+ id: z48.string(),
23570
+ identifier: z48.string(),
23571
+ title: z48.string(),
23572
+ slug: z48.string().nullable().optional(),
23573
+ content: z48.record(z48.string(), z48.unknown()).optional(),
23574
+ publishedAt: z48.string().nullable().optional()
23393
23575
  });
23394
23576
  var embedBlockDefinition = {
23395
23577
  manifest: embedManifest,
23396
23578
  dataSchemas: {
23397
- entries: z47.array(embedEntrySchema).optional()
23579
+ entries: z48.array(embedEntrySchema).optional()
23398
23580
  },
23399
23581
  dataLoaders: {
23400
23582
  entries: {
@@ -24578,49 +24760,49 @@ var fileDownloadBlockDefinition = {
24578
24760
  };
24579
24761
 
24580
24762
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
24581
- import { z as z50 } from "zod";
24763
+ import { z as z51 } from "zod";
24582
24764
 
24583
24765
  // ../blocks/src/system/blocks/products/shared.ts
24584
- import { z as z48 } from "zod";
24585
- var publicProductVariantSchema = z48.object({
24586
- id: z48.string(),
24587
- title: z48.string(),
24588
- sku: z48.string().nullable(),
24589
- priceCents: z48.number(),
24590
- stockQuantity: z48.number().nullable(),
24591
- soldOut: z48.boolean()
24592
- });
24593
- var publicProductSchema = z48.object({
24594
- id: z48.string(),
24595
- contentEntryId: z48.string().nullable(),
24596
- title: z48.string(),
24597
- slug: z48.string(),
24598
- path: z48.string().nullable(),
24599
- status: z48.enum(["draft", "active"]),
24600
- priceCents: z48.number(),
24601
- currency: z48.string(),
24602
- productType: z48.enum(["physical", "digital"]),
24603
- requiresShipping: z48.boolean(),
24604
- hasVariants: z48.boolean(),
24605
- trackInventory: z48.boolean(),
24606
- soldOut: z48.boolean(),
24607
- category: z48.object({
24608
- id: z48.string(),
24609
- name: z48.string(),
24610
- slug: z48.string()
24766
+ import { z as z49 } from "zod";
24767
+ var publicProductVariantSchema = z49.object({
24768
+ id: z49.string(),
24769
+ title: z49.string(),
24770
+ sku: z49.string().nullable(),
24771
+ priceCents: z49.number(),
24772
+ stockQuantity: z49.number().nullable(),
24773
+ soldOut: z49.boolean()
24774
+ });
24775
+ var publicProductSchema = z49.object({
24776
+ id: z49.string(),
24777
+ contentEntryId: z49.string().nullable(),
24778
+ title: z49.string(),
24779
+ slug: z49.string(),
24780
+ path: z49.string().nullable(),
24781
+ status: z49.enum(["draft", "active"]),
24782
+ priceCents: z49.number(),
24783
+ currency: z49.string(),
24784
+ productType: z49.enum(["physical", "digital"]),
24785
+ requiresShipping: z49.boolean(),
24786
+ hasVariants: z49.boolean(),
24787
+ trackInventory: z49.boolean(),
24788
+ soldOut: z49.boolean(),
24789
+ category: z49.object({
24790
+ id: z49.string(),
24791
+ name: z49.string(),
24792
+ slug: z49.string()
24611
24793
  }).nullable(),
24612
- summary: z48.string().nullable(),
24613
- body: z48.unknown().nullable(),
24614
- gallery: z48.array(
24615
- z48.object({
24616
- url: z48.string(),
24617
- alt: z48.string().nullable()
24794
+ summary: z49.string().nullable(),
24795
+ body: z49.unknown().nullable(),
24796
+ gallery: z49.array(
24797
+ z49.object({
24798
+ url: z49.string(),
24799
+ alt: z49.string().nullable()
24618
24800
  })
24619
24801
  ),
24620
- variants: z48.array(publicProductVariantSchema)
24802
+ variants: z49.array(publicProductVariantSchema)
24621
24803
  });
24622
- var publicProductsResponseSchema = z48.object({
24623
- products: z48.array(publicProductSchema)
24804
+ var publicProductsResponseSchema = z49.object({
24805
+ products: z49.array(publicProductSchema)
24624
24806
  });
24625
24807
 
24626
24808
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -24684,27 +24866,27 @@ function deriveCreditProductLabels(products, options = {}) {
24684
24866
  }
24685
24867
 
24686
24868
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
24687
- import { z as z49 } from "zod";
24688
- var storedProductCartItemSchema = z49.object({
24689
- kind: z49.literal("product"),
24690
- productId: z49.string().min(1),
24691
- productCategoryId: z49.string().min(1).optional().nullable(),
24692
- variantId: z49.string().min(1).optional().nullable(),
24693
- title: z49.string().min(1),
24694
- variantTitle: z49.string().optional().nullable(),
24695
- quantity: z49.number().finite(),
24696
- unitPriceCents: z49.number().finite(),
24697
- currency: z49.string().min(1),
24698
- imageUrl: z49.string().optional().nullable(),
24699
- soldOut: z49.boolean().optional()
24700
- });
24701
- var storedPassCartItemSchema = z49.object({
24702
- kind: z49.literal("pass"),
24703
- passId: z49.string().min(1),
24704
- title: z49.string().min(1),
24705
- quantity: z49.number().finite().optional(),
24706
- unitPriceCents: z49.number().finite(),
24707
- currency: z49.string().min(1)
24869
+ import { z as z50 } from "zod";
24870
+ var storedProductCartItemSchema = z50.object({
24871
+ kind: z50.literal("product"),
24872
+ productId: z50.string().min(1),
24873
+ productCategoryId: z50.string().min(1).optional().nullable(),
24874
+ variantId: z50.string().min(1).optional().nullable(),
24875
+ title: z50.string().min(1),
24876
+ variantTitle: z50.string().optional().nullable(),
24877
+ quantity: z50.number().finite(),
24878
+ unitPriceCents: z50.number().finite(),
24879
+ currency: z50.string().min(1),
24880
+ imageUrl: z50.string().optional().nullable(),
24881
+ soldOut: z50.boolean().optional()
24882
+ });
24883
+ var storedPassCartItemSchema = z50.object({
24884
+ kind: z50.literal("pass"),
24885
+ passId: z50.string().min(1),
24886
+ title: z50.string().min(1),
24887
+ quantity: z50.number().finite().optional(),
24888
+ unitPriceCents: z50.number().finite(),
24889
+ currency: z50.string().min(1)
24708
24890
  });
24709
24891
  function deriveCommerceCheckoutState(state) {
24710
24892
  if (state.items.length === 0) {
@@ -24938,214 +25120,214 @@ function formatValidity(days) {
24938
25120
  }
24939
25121
 
24940
25122
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
24941
- var shopModeSchema = z50.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
24942
- var contentEntrySchema3 = z50.object({
24943
- id: z50.string().nullable().optional(),
24944
- slug: z50.string().nullable().optional()
25123
+ var shopModeSchema = z51.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
25124
+ var contentEntrySchema3 = z51.object({
25125
+ id: z51.string().nullable().optional(),
25126
+ slug: z51.string().nullable().optional()
24945
25127
  }).nullable();
24946
- var shopSourceSchema = z50.object({
24947
- className: z50.string().nullable().optional(),
25128
+ var shopSourceSchema = z51.object({
25129
+ className: z51.string().nullable().optional(),
24948
25130
  mode: shopModeSchema.optional(),
24949
- heading: z50.string().nullable().optional(),
24950
- productSlug: z50.string().nullable().optional(),
24951
- showPasses: z50.boolean().optional(),
24952
- showMemberships: z50.boolean().optional(),
24953
- layout: z50.enum(["grid", "list"]).optional(),
24954
- columns: z50.string().optional(),
24955
- showDescriptions: z50.boolean().optional(),
24956
- showSummary: z50.boolean().optional(),
24957
- showBody: z50.boolean().optional(),
24958
- showPrices: z50.boolean().optional(),
24959
- showValidityPeriod: z50.boolean().optional(),
24960
- showPricePerCredit: z50.boolean().nullable().optional(),
24961
- passesHeading: z50.string().optional(),
24962
- membershipsHeading: z50.string().optional(),
24963
- buyButtonText: z50.string().optional(),
24964
- addButtonText: z50.string().optional(),
24965
- passPurchaseMode: z50.enum(["add_to_cart", "buy_now"]).optional(),
24966
- subscribeButtonText: z50.string().optional(),
24967
- emptyStateText: z50.string().optional(),
24968
- checkoutButtonText: z50.string().optional(),
24969
- clearButtonText: z50.string().optional(),
24970
- submitButtonText: z50.string().optional(),
25131
+ heading: z51.string().nullable().optional(),
25132
+ productSlug: z51.string().nullable().optional(),
25133
+ showPasses: z51.boolean().optional(),
25134
+ showMemberships: z51.boolean().optional(),
25135
+ layout: z51.enum(["grid", "list"]).optional(),
25136
+ columns: z51.string().optional(),
25137
+ showDescriptions: z51.boolean().optional(),
25138
+ showSummary: z51.boolean().optional(),
25139
+ showBody: z51.boolean().optional(),
25140
+ showPrices: z51.boolean().optional(),
25141
+ showValidityPeriod: z51.boolean().optional(),
25142
+ showPricePerCredit: z51.boolean().nullable().optional(),
25143
+ passesHeading: z51.string().optional(),
25144
+ membershipsHeading: z51.string().optional(),
25145
+ buyButtonText: z51.string().optional(),
25146
+ addButtonText: z51.string().optional(),
25147
+ passPurchaseMode: z51.enum(["add_to_cart", "buy_now"]).optional(),
25148
+ subscribeButtonText: z51.string().optional(),
25149
+ emptyStateText: z51.string().optional(),
25150
+ checkoutButtonText: z51.string().optional(),
25151
+ clearButtonText: z51.string().optional(),
25152
+ submitButtonText: z51.string().optional(),
24971
25153
  contentEntry: contentEntrySchema3.optional(),
24972
- passes: z50.array(publicPassProductSchema).nullable().optional(),
24973
- memberships: z50.array(publicMembershipProductSchema).nullable().optional(),
24974
- products: z50.array(publicProductSchema).nullable().optional(),
24975
- siteId: z50.string().optional(),
24976
- apiBaseUrl: z50.string().optional(),
25154
+ passes: z51.array(publicPassProductSchema).nullable().optional(),
25155
+ memberships: z51.array(publicMembershipProductSchema).nullable().optional(),
25156
+ products: z51.array(publicProductSchema).nullable().optional(),
25157
+ siteId: z51.string().optional(),
25158
+ apiBaseUrl: z51.string().optional(),
24977
25159
  stage: previewStageSchema.optional()
24978
25160
  });
24979
- var productVariantOptionDisplaySchema = z50.object({
24980
- id: z50.string(),
24981
- label: z50.string(),
24982
- soldOut: z50.boolean()
24983
- });
24984
- var productCardDisplaySchema = z50.object({
24985
- productId: z50.string(),
24986
- title: z50.string(),
24987
- path: z50.string().nullable(),
24988
- summary: z50.string().nullable(),
24989
- priceLabel: z50.string().nullable(),
24990
- image: z50.object({
24991
- url: z50.string(),
24992
- alt: z50.string().nullable()
25161
+ var productVariantOptionDisplaySchema = z51.object({
25162
+ id: z51.string(),
25163
+ label: z51.string(),
25164
+ soldOut: z51.boolean()
25165
+ });
25166
+ var productCardDisplaySchema = z51.object({
25167
+ productId: z51.string(),
25168
+ title: z51.string(),
25169
+ path: z51.string().nullable(),
25170
+ summary: z51.string().nullable(),
25171
+ priceLabel: z51.string().nullable(),
25172
+ image: z51.object({
25173
+ url: z51.string(),
25174
+ alt: z51.string().nullable()
24993
25175
  }).nullable(),
24994
- variantOptions: z50.array(productVariantOptionDisplaySchema),
24995
- selectedVariantId: z50.string().nullable(),
24996
- selectionLabel: z50.string(),
24997
- actionLabel: z50.string(),
24998
- soldOut: z50.boolean()
24999
- });
25000
- var productListDisplaySchema = z50.object({
25001
- kind: z50.literal("product-list"),
25002
- state: z50.enum(["empty", "ready"]),
25003
- heading: z50.string().nullable(),
25004
- className: z50.string().nullable(),
25005
- layout: z50.enum(["grid", "list"]),
25006
- columns: z50.string(),
25007
- emptyMessage: z50.string(),
25008
- cards: z50.array(productCardDisplaySchema)
25009
- });
25010
- var productDetailDisplaySchema = z50.discriminatedUnion("state", [
25011
- z50.object({
25012
- kind: z50.literal("product-detail"),
25013
- state: z50.literal("empty"),
25014
- heading: z50.string().nullable(),
25015
- className: z50.string().nullable(),
25016
- emptyMessage: z50.string()
25176
+ variantOptions: z51.array(productVariantOptionDisplaySchema),
25177
+ selectedVariantId: z51.string().nullable(),
25178
+ selectionLabel: z51.string(),
25179
+ actionLabel: z51.string(),
25180
+ soldOut: z51.boolean()
25181
+ });
25182
+ var productListDisplaySchema = z51.object({
25183
+ kind: z51.literal("product-list"),
25184
+ state: z51.enum(["empty", "ready"]),
25185
+ heading: z51.string().nullable(),
25186
+ className: z51.string().nullable(),
25187
+ layout: z51.enum(["grid", "list"]),
25188
+ columns: z51.string(),
25189
+ emptyMessage: z51.string(),
25190
+ cards: z51.array(productCardDisplaySchema)
25191
+ });
25192
+ var productDetailDisplaySchema = z51.discriminatedUnion("state", [
25193
+ z51.object({
25194
+ kind: z51.literal("product-detail"),
25195
+ state: z51.literal("empty"),
25196
+ heading: z51.string().nullable(),
25197
+ className: z51.string().nullable(),
25198
+ emptyMessage: z51.string()
25017
25199
  }),
25018
- z50.object({
25019
- kind: z50.literal("product-detail"),
25020
- state: z50.literal("ready"),
25021
- heading: z50.string().nullable(),
25022
- className: z50.string().nullable(),
25023
- title: z50.string(),
25024
- priceLabel: z50.string(),
25025
- summary: z50.string().nullable(),
25026
- categoryLabel: z50.string().nullable(),
25027
- gallery: z50.array(z50.object({
25028
- url: z50.string(),
25029
- alt: z50.string().nullable()
25200
+ z51.object({
25201
+ kind: z51.literal("product-detail"),
25202
+ state: z51.literal("ready"),
25203
+ heading: z51.string().nullable(),
25204
+ className: z51.string().nullable(),
25205
+ title: z51.string(),
25206
+ priceLabel: z51.string(),
25207
+ summary: z51.string().nullable(),
25208
+ categoryLabel: z51.string().nullable(),
25209
+ gallery: z51.array(z51.object({
25210
+ url: z51.string(),
25211
+ alt: z51.string().nullable()
25030
25212
  })),
25031
- variantOptions: z50.array(productVariantOptionDisplaySchema),
25032
- selectedVariantId: z50.string().nullable(),
25033
- selectionLabel: z50.string(),
25034
- actionLabel: z50.string(),
25035
- soldOut: z50.boolean(),
25036
- body: z50.unknown().nullable()
25213
+ variantOptions: z51.array(productVariantOptionDisplaySchema),
25214
+ selectedVariantId: z51.string().nullable(),
25215
+ selectionLabel: z51.string(),
25216
+ actionLabel: z51.string(),
25217
+ soldOut: z51.boolean(),
25218
+ body: z51.unknown().nullable()
25037
25219
  })
25038
25220
  ]);
25039
- var passCardDisplaySchema = z50.object({
25040
- id: z50.string(),
25041
- title: z50.string(),
25042
- description: z50.string().nullable(),
25043
- priceLabel: z50.string(),
25044
- creditsLabel: z50.string(),
25045
- perCreditLabel: z50.string().nullable(),
25046
- validityLabel: z50.string().nullable(),
25047
- actionLabel: z50.string()
25048
- });
25049
- var membershipCardDisplaySchema = z50.object({
25050
- id: z50.string(),
25051
- title: z50.string(),
25052
- description: z50.string().nullable(),
25053
- priceLabel: z50.string(),
25054
- intervalLabel: z50.string(),
25055
- actionLabel: z50.string()
25056
- });
25057
- var passesMembershipsDisplaySchema = z50.object({
25058
- kind: z50.literal("passes-memberships"),
25059
- state: z50.enum(["empty", "ready"]),
25060
- className: z50.string().nullable(),
25061
- layout: z50.enum(["grid", "list"]),
25062
- columns: z50.string(),
25063
- emptyMessage: z50.string(),
25064
- passesHeading: z50.string(),
25065
- membershipsHeading: z50.string(),
25066
- passes: z50.array(passCardDisplaySchema),
25067
- memberships: z50.array(membershipCardDisplaySchema)
25068
- });
25069
- var cartLineDisplaySchema = z50.object({
25070
- key: z50.string(),
25071
- title: z50.string(),
25072
- priceLabel: z50.string(),
25073
- quantity: z50.number(),
25074
- quantityEditable: z50.boolean()
25075
- });
25076
- var cartDisplaySchema = z50.object({
25077
- kind: z50.literal("cart"),
25078
- state: z50.enum(["empty", "ready"]),
25079
- heading: z50.string().nullable(),
25080
- className: z50.string().nullable(),
25081
- emptyMessage: z50.string(),
25082
- supportText: z50.string().nullable(),
25083
- items: z50.array(cartLineDisplaySchema),
25084
- subtotalLabel: z50.string().nullable(),
25085
- checkoutButtonText: z50.string(),
25086
- clearButtonText: z50.string()
25087
- });
25088
- var checkoutDisplaySchema = z50.object({
25089
- kind: z50.literal("checkout"),
25090
- state: z50.enum(["empty", "blocked", "ready"]),
25091
- heading: z50.string().nullable(),
25092
- className: z50.string().nullable(),
25093
- message: z50.string().nullable(),
25094
- submitButtonText: z50.string()
25095
- });
25096
- var passesMembershipsHydrationSchema = z50.object({
25097
- passes: z50.array(publicPassProductSchema),
25098
- memberships: z50.array(publicMembershipProductSchema),
25099
- passPurchaseMode: z50.enum(["add_to_cart", "buy_now"])
25100
- });
25101
- var productListHydrationSchema = z50.object({
25102
- products: z50.array(publicProductSchema),
25103
- showSummary: z50.boolean(),
25104
- showPrices: z50.boolean(),
25105
- addButtonText: z50.string()
25106
- });
25107
- var productDetailHydrationSchema = z50.object({
25108
- products: z50.array(publicProductSchema),
25109
- productId: z50.string().nullable(),
25110
- showSummary: z50.boolean(),
25111
- showBody: z50.boolean(),
25112
- addButtonText: z50.string()
25113
- });
25114
- var cartHydrationSchema = z50.object({
25115
- emptyStateText: z50.string(),
25116
- checkoutButtonText: z50.string(),
25117
- clearButtonText: z50.string()
25118
- });
25119
- var checkoutHydrationSchema = z50.object({
25120
- emptyStateText: z50.string(),
25121
- submitButtonText: z50.string()
25122
- });
25123
- var passesMembershipsRenderSchema = z50.object({
25221
+ var passCardDisplaySchema = z51.object({
25222
+ id: z51.string(),
25223
+ title: z51.string(),
25224
+ description: z51.string().nullable(),
25225
+ priceLabel: z51.string(),
25226
+ creditsLabel: z51.string(),
25227
+ perCreditLabel: z51.string().nullable(),
25228
+ validityLabel: z51.string().nullable(),
25229
+ actionLabel: z51.string()
25230
+ });
25231
+ var membershipCardDisplaySchema = z51.object({
25232
+ id: z51.string(),
25233
+ title: z51.string(),
25234
+ description: z51.string().nullable(),
25235
+ priceLabel: z51.string(),
25236
+ intervalLabel: z51.string(),
25237
+ actionLabel: z51.string()
25238
+ });
25239
+ var passesMembershipsDisplaySchema = z51.object({
25240
+ kind: z51.literal("passes-memberships"),
25241
+ state: z51.enum(["empty", "ready"]),
25242
+ className: z51.string().nullable(),
25243
+ layout: z51.enum(["grid", "list"]),
25244
+ columns: z51.string(),
25245
+ emptyMessage: z51.string(),
25246
+ passesHeading: z51.string(),
25247
+ membershipsHeading: z51.string(),
25248
+ passes: z51.array(passCardDisplaySchema),
25249
+ memberships: z51.array(membershipCardDisplaySchema)
25250
+ });
25251
+ var cartLineDisplaySchema = z51.object({
25252
+ key: z51.string(),
25253
+ title: z51.string(),
25254
+ priceLabel: z51.string(),
25255
+ quantity: z51.number(),
25256
+ quantityEditable: z51.boolean()
25257
+ });
25258
+ var cartDisplaySchema = z51.object({
25259
+ kind: z51.literal("cart"),
25260
+ state: z51.enum(["empty", "ready"]),
25261
+ heading: z51.string().nullable(),
25262
+ className: z51.string().nullable(),
25263
+ emptyMessage: z51.string(),
25264
+ supportText: z51.string().nullable(),
25265
+ items: z51.array(cartLineDisplaySchema),
25266
+ subtotalLabel: z51.string().nullable(),
25267
+ checkoutButtonText: z51.string(),
25268
+ clearButtonText: z51.string()
25269
+ });
25270
+ var checkoutDisplaySchema = z51.object({
25271
+ kind: z51.literal("checkout"),
25272
+ state: z51.enum(["empty", "blocked", "ready"]),
25273
+ heading: z51.string().nullable(),
25274
+ className: z51.string().nullable(),
25275
+ message: z51.string().nullable(),
25276
+ submitButtonText: z51.string()
25277
+ });
25278
+ var passesMembershipsHydrationSchema = z51.object({
25279
+ passes: z51.array(publicPassProductSchema),
25280
+ memberships: z51.array(publicMembershipProductSchema),
25281
+ passPurchaseMode: z51.enum(["add_to_cart", "buy_now"])
25282
+ });
25283
+ var productListHydrationSchema = z51.object({
25284
+ products: z51.array(publicProductSchema),
25285
+ showSummary: z51.boolean(),
25286
+ showPrices: z51.boolean(),
25287
+ addButtonText: z51.string()
25288
+ });
25289
+ var productDetailHydrationSchema = z51.object({
25290
+ products: z51.array(publicProductSchema),
25291
+ productId: z51.string().nullable(),
25292
+ showSummary: z51.boolean(),
25293
+ showBody: z51.boolean(),
25294
+ addButtonText: z51.string()
25295
+ });
25296
+ var cartHydrationSchema = z51.object({
25297
+ emptyStateText: z51.string(),
25298
+ checkoutButtonText: z51.string(),
25299
+ clearButtonText: z51.string()
25300
+ });
25301
+ var checkoutHydrationSchema = z51.object({
25302
+ emptyStateText: z51.string(),
25303
+ submitButtonText: z51.string()
25304
+ });
25305
+ var passesMembershipsRenderSchema = z51.object({
25124
25306
  display: passesMembershipsDisplaySchema,
25125
25307
  hydration: passesMembershipsHydrationSchema
25126
25308
  });
25127
- var productListRenderSchema = z50.object({
25309
+ var productListRenderSchema = z51.object({
25128
25310
  display: productListDisplaySchema,
25129
25311
  hydration: productListHydrationSchema
25130
25312
  });
25131
- var productDetailRenderSchema = z50.object({
25313
+ var productDetailRenderSchema = z51.object({
25132
25314
  display: productDetailDisplaySchema,
25133
25315
  hydration: productDetailHydrationSchema
25134
25316
  });
25135
- var cartRenderSchema = z50.object({
25317
+ var cartRenderSchema = z51.object({
25136
25318
  display: cartDisplaySchema,
25137
25319
  hydration: cartHydrationSchema
25138
25320
  });
25139
- var checkoutRenderSchema = z50.object({
25321
+ var checkoutRenderSchema = z51.object({
25140
25322
  display: checkoutDisplaySchema,
25141
25323
  hydration: checkoutHydrationSchema
25142
25324
  });
25143
25325
  function resolveShowPricePerCredit(source) {
25144
25326
  return source.showPricePerCredit ?? true;
25145
25327
  }
25146
- var shopIslandMetaCodec = createZodCodec(z50.object({
25147
- siteId: z50.string().optional(),
25148
- apiBaseUrl: z50.string().optional(),
25328
+ var shopIslandMetaCodec = createZodCodec(z51.object({
25329
+ siteId: z51.string().optional(),
25330
+ apiBaseUrl: z51.string().optional(),
25149
25331
  stage: previewStageSchema.optional()
25150
25332
  }));
25151
25333
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -25548,7 +25730,7 @@ var shopBlockDefinition = {
25548
25730
  };
25549
25731
 
25550
25732
  // ../blocks/src/system/blocks/product-list.ts
25551
- import { z as z51 } from "zod";
25733
+ import { z as z52 } from "zod";
25552
25734
  var productListManifest = createBlockManifest({
25553
25735
  id: "block.product-list",
25554
25736
  version: "1.0.0",
@@ -25681,7 +25863,7 @@ var productListBlockDefinition = {
25681
25863
  }
25682
25864
  }
25683
25865
  };
25684
- var productListDataSchema = z51.object({
25866
+ var productListDataSchema = z52.object({
25685
25867
  products: publicProductsResponseSchema.optional()
25686
25868
  });
25687
25869
 
@@ -25942,72 +26124,72 @@ var checkoutBlockDefinition = {
25942
26124
  };
25943
26125
 
25944
26126
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
25945
- import { z as z52 } from "zod";
25946
- var publicGiftCardOfferSchema = z52.object({
25947
- id: z52.string(),
25948
- kind: z52.literal("gift_card"),
25949
- title: z52.string(),
25950
- description: z52.string().nullable(),
25951
- sortOrder: z52.number().int(),
25952
- giftCard: z52.object({
25953
- fixedDenominations: z52.array(z52.number().int().positive()),
25954
- customAmountEnabled: z52.boolean(),
25955
- customAmountMinCents: z52.number().int().positive(),
25956
- customAmountMaxCents: z52.number().int().positive()
26127
+ import { z as z53 } from "zod";
26128
+ var publicGiftCardOfferSchema = z53.object({
26129
+ id: z53.string(),
26130
+ kind: z53.literal("gift_card"),
26131
+ title: z53.string(),
26132
+ description: z53.string().nullable(),
26133
+ sortOrder: z53.number().int(),
26134
+ giftCard: z53.object({
26135
+ fixedDenominations: z53.array(z53.number().int().positive()),
26136
+ customAmountEnabled: z53.boolean(),
26137
+ customAmountMinCents: z53.number().int().positive(),
26138
+ customAmountMaxCents: z53.number().int().positive()
25957
26139
  }),
25958
- voucher: z52.null()
25959
- });
25960
- var publicVoucherOfferSchema = z52.object({
25961
- id: z52.string(),
25962
- kind: z52.literal("voucher"),
25963
- title: z52.string(),
25964
- description: z52.string().nullable(),
25965
- sortOrder: z52.number().int(),
25966
- giftCard: z52.null(),
25967
- voucher: z52.object({
25968
- purchaseAmountCents: z52.number().int().positive()
26140
+ voucher: z53.null()
26141
+ });
26142
+ var publicVoucherOfferSchema = z53.object({
26143
+ id: z53.string(),
26144
+ kind: z53.literal("voucher"),
26145
+ title: z53.string(),
26146
+ description: z53.string().nullable(),
26147
+ sortOrder: z53.number().int(),
26148
+ giftCard: z53.null(),
26149
+ voucher: z53.object({
26150
+ purchaseAmountCents: z53.number().int().positive()
25969
26151
  })
25970
26152
  });
25971
- var publicGiftingOffersResponseSchema = z52.object({
25972
- currency: z52.string(),
25973
- giftCards: z52.array(publicGiftCardOfferSchema),
25974
- vouchers: z52.array(publicVoucherOfferSchema)
26153
+ var publicGiftingOffersResponseSchema = z53.object({
26154
+ currency: z53.string(),
26155
+ giftCards: z53.array(publicGiftCardOfferSchema),
26156
+ vouchers: z53.array(publicVoucherOfferSchema)
25975
26157
  });
25976
- var giftingSourceSchema = z52.object({
25977
- siteId: z52.string().optional(),
25978
- apiBaseUrl: z52.string().optional(),
26158
+ var giftingSourceSchema = z53.object({
26159
+ siteId: z53.string().optional(),
26160
+ apiBaseUrl: z53.string().optional(),
25979
26161
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
25980
- className: z52.string().nullable().optional(),
25981
- heading: z52.string().nullable().optional(),
25982
- intro: z52.string().nullable().optional(),
25983
- giftCardsHeading: z52.string().nullable().optional(),
25984
- vouchersHeading: z52.string().nullable().optional(),
25985
- emptyStateText: z52.string().nullable().optional(),
25986
- checkoutButtonText: z52.string().nullable().optional(),
25987
- successMessage: z52.string().nullable().optional()
25988
- });
25989
- var giftingDisplaySchema = z52.object({
25990
- kind: z52.literal("gifting"),
25991
- state: z52.literal("ready"),
25992
- className: z52.string().nullable(),
25993
- heading: z52.string(),
25994
- intro: z52.string().nullable(),
25995
- giftCardsHeading: z52.string(),
25996
- vouchersHeading: z52.string(),
25997
- emptyStateText: z52.string()
25998
- });
25999
- var giftingHydrationSchema = z52.object({
26162
+ className: z53.string().nullable().optional(),
26163
+ heading: z53.string().nullable().optional(),
26164
+ intro: z53.string().nullable().optional(),
26165
+ giftCardsHeading: z53.string().nullable().optional(),
26166
+ vouchersHeading: z53.string().nullable().optional(),
26167
+ emptyStateText: z53.string().nullable().optional(),
26168
+ checkoutButtonText: z53.string().nullable().optional(),
26169
+ successMessage: z53.string().nullable().optional()
26170
+ });
26171
+ var giftingDisplaySchema = z53.object({
26172
+ kind: z53.literal("gifting"),
26173
+ state: z53.literal("ready"),
26174
+ className: z53.string().nullable(),
26175
+ heading: z53.string(),
26176
+ intro: z53.string().nullable(),
26177
+ giftCardsHeading: z53.string(),
26178
+ vouchersHeading: z53.string(),
26179
+ emptyStateText: z53.string()
26180
+ });
26181
+ var giftingHydrationSchema = z53.object({
26000
26182
  offers: publicGiftingOffersResponseSchema.nullable(),
26001
- checkoutButtonText: z52.string(),
26002
- successMessage: z52.string()
26183
+ checkoutButtonText: z53.string(),
26184
+ successMessage: z53.string()
26003
26185
  });
26004
- var giftingRenderSchema = z52.object({
26186
+ var giftingRenderSchema = z53.object({
26005
26187
  display: giftingDisplaySchema,
26006
26188
  hydration: giftingHydrationSchema
26007
26189
  });
26008
- var giftingIslandMetaCodec = createZodCodec(z52.object({
26009
- siteId: z52.string().optional(),
26010
- apiBaseUrl: z52.string().optional()
26190
+ var giftingIslandMetaCodec = createZodCodec(z53.object({
26191
+ siteId: z53.string().optional(),
26192
+ apiBaseUrl: z53.string().optional()
26011
26193
  }));
26012
26194
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
26013
26195
  "siteId",
@@ -26178,7 +26360,7 @@ var giftingBlockDefinition = {
26178
26360
  };
26179
26361
 
26180
26362
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
26181
- import { z as z53 } from "zod";
26363
+ import { z as z54 } from "zod";
26182
26364
 
26183
26365
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
26184
26366
  function parseNewsletterSignupBlockId(value) {
@@ -26285,65 +26467,65 @@ function withOptionalPhone(fields3, includePhone) {
26285
26467
  }
26286
26468
 
26287
26469
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
26288
- var newsletterPresetSchema = z53.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
26289
- var newsletterDestinationProviderSchema = z53.enum(["riverbank", "mailchimp"]);
26290
- var newsletterFieldSchema = z53.object({
26291
- id: z53.string(),
26292
- type: z53.enum(["email", "text"]),
26293
- label: z53.string(),
26294
- required: z53.boolean(),
26295
- placeholder: z53.string().optional()
26296
- });
26297
- var newsletterSignupBlockIdSchema = z53.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
26298
- var signedNewsletterDestinationRefSchema = z53.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
26299
- var newsletterPublicDestinationRefSchema = z53.discriminatedUnion("tag", [
26300
- z53.object({
26301
- tag: z53.literal("block_ref"),
26470
+ var newsletterPresetSchema = z54.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
26471
+ var newsletterDestinationProviderSchema = z54.enum(["riverbank", "mailchimp"]);
26472
+ var newsletterFieldSchema = z54.object({
26473
+ id: z54.string(),
26474
+ type: z54.enum(["email", "text"]),
26475
+ label: z54.string(),
26476
+ required: z54.boolean(),
26477
+ placeholder: z54.string().optional()
26478
+ });
26479
+ var newsletterSignupBlockIdSchema = z54.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
26480
+ var signedNewsletterDestinationRefSchema = z54.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
26481
+ var newsletterPublicDestinationRefSchema = z54.discriminatedUnion("tag", [
26482
+ z54.object({
26483
+ tag: z54.literal("block_ref"),
26302
26484
  blockId: newsletterSignupBlockIdSchema
26303
26485
  }),
26304
- z53.object({
26305
- tag: z53.literal("signed_destination_ref"),
26486
+ z54.object({
26487
+ tag: z54.literal("signed_destination_ref"),
26306
26488
  token: signedNewsletterDestinationRefSchema
26307
26489
  })
26308
26490
  ]);
26309
- var newsletterSourceSchema = z53.object({
26310
- blockId: z53.string().nullable().optional(),
26311
- siteId: z53.string().optional(),
26312
- apiBaseUrl: z53.string().optional(),
26313
- listId: z53.string().nullable().optional(),
26491
+ var newsletterSourceSchema = z54.object({
26492
+ blockId: z54.string().nullable().optional(),
26493
+ siteId: z54.string().optional(),
26494
+ apiBaseUrl: z54.string().optional(),
26495
+ listId: z54.string().nullable().optional(),
26314
26496
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
26315
26497
  preset: newsletterPresetSchema.optional(),
26316
- includePhone: z53.boolean().optional(),
26317
- buttonLabel: z53.string().nullable().optional(),
26318
- successMessage: z53.string().nullable().optional(),
26319
- privacyNote: z53.string().nullable().optional(),
26320
- tags: z53.string().nullable().optional(),
26321
- spamProtectionEnabled: z53.boolean().optional(),
26322
- className: z53.string().nullable().optional()
26323
- });
26324
- var newsletterDisplaySchema = z53.object({
26325
- kind: z53.literal("newsletter-form"),
26326
- className: z53.string().nullable(),
26327
- buttonLabel: z53.string(),
26328
- successMessage: z53.string().nullable(),
26329
- privacyNote: z53.string().nullable(),
26330
- fields: z53.array(newsletterFieldSchema)
26331
- });
26332
- var newsletterHydrationSchema = z53.object({
26498
+ includePhone: z54.boolean().optional(),
26499
+ buttonLabel: z54.string().nullable().optional(),
26500
+ successMessage: z54.string().nullable().optional(),
26501
+ privacyNote: z54.string().nullable().optional(),
26502
+ tags: z54.string().nullable().optional(),
26503
+ spamProtectionEnabled: z54.boolean().optional(),
26504
+ className: z54.string().nullable().optional()
26505
+ });
26506
+ var newsletterDisplaySchema = z54.object({
26507
+ kind: z54.literal("newsletter-form"),
26508
+ className: z54.string().nullable(),
26509
+ buttonLabel: z54.string(),
26510
+ successMessage: z54.string().nullable(),
26511
+ privacyNote: z54.string().nullable(),
26512
+ fields: z54.array(newsletterFieldSchema)
26513
+ });
26514
+ var newsletterHydrationSchema = z54.object({
26333
26515
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
26334
- listId: z53.string().nullable().optional(),
26516
+ listId: z54.string().nullable().optional(),
26335
26517
  preset: newsletterPresetSchema,
26336
- includePhone: z53.boolean(),
26337
- tags: z53.string().nullable().optional(),
26338
- spamProtectionEnabled: z53.boolean().optional()
26518
+ includePhone: z54.boolean(),
26519
+ tags: z54.string().nullable().optional(),
26520
+ spamProtectionEnabled: z54.boolean().optional()
26339
26521
  });
26340
- var newsletterRenderSchema = z53.object({
26522
+ var newsletterRenderSchema = z54.object({
26341
26523
  display: newsletterDisplaySchema,
26342
26524
  hydration: newsletterHydrationSchema
26343
26525
  });
26344
- var newsletterIslandMetaCodec = createZodCodec(z53.object({
26345
- siteId: z53.string().optional(),
26346
- apiBaseUrl: z53.string().optional()
26526
+ var newsletterIslandMetaCodec = createZodCodec(z54.object({
26527
+ siteId: z54.string().optional(),
26528
+ apiBaseUrl: z54.string().optional()
26347
26529
  }));
26348
26530
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
26349
26531
  function buildNewsletterDisplay(source) {
@@ -26482,23 +26664,23 @@ var newsletterSignupBlockDefinition = {
26482
26664
  };
26483
26665
 
26484
26666
  // ../blocks/src/system/blocks/team-members.ts
26485
- import { z as z54 } from "zod";
26667
+ import { z as z55 } from "zod";
26486
26668
  var ITEM_NAME2 = "member";
26487
26669
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
26488
26670
  message: "Team member photos must be image media"
26489
26671
  }).nullable();
26490
- var teamMemberDataSchema = z54.object({
26491
- _type: z54.literal("teamMember"),
26492
- id: z54.string(),
26493
- name: z54.string(),
26494
- role: z54.string().nullable(),
26495
- roleLabel: z54.string().nullable(),
26496
- bio: z54.string().nullable(),
26497
- summary: z54.string().nullable(),
26672
+ var teamMemberDataSchema = z55.object({
26673
+ _type: z55.literal("teamMember"),
26674
+ id: z55.string(),
26675
+ name: z55.string(),
26676
+ role: z55.string().nullable(),
26677
+ roleLabel: z55.string().nullable(),
26678
+ bio: z55.string().nullable(),
26679
+ summary: z55.string().nullable(),
26498
26680
  photo: teamMemberPhotoSchema,
26499
- profilePath: z54.string().nullable()
26681
+ profilePath: z55.string().nullable()
26500
26682
  });
26501
- var teamMembersDataSchema = z54.array(teamMemberDataSchema);
26683
+ var teamMembersDataSchema = z55.array(teamMemberDataSchema);
26502
26684
  var dynamicSourceWhen = { equals: "site_staff" };
26503
26685
  var manualSourceWhen = { equals: "site_staff", not: true };
26504
26686
  var headingNode = text(
@@ -27604,6 +27786,10 @@ var systemBlockDefinitionsRaw = [
27604
27786
  flow: conversionFlow,
27605
27787
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
27606
27788
  })),
27789
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
27790
+ flow: offeringsFlow,
27791
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
27792
+ })),
27607
27793
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
27608
27794
  flow: conversionFlow,
27609
27795
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -28046,6 +28232,34 @@ ${root} {
28046
28232
  /* Order summary */
28047
28233
  --er-summary-bg: rgba(var(--tb-primary), 0.1);
28048
28234
  --er-summary-border: rgb(var(--tb-border));
28235
+
28236
+ /* Shared registration-surface mappings (issue 1174).
28237
+ Route the shared --rb-reg-* contract through this block's documented
28238
+ Tier 3 vars so existing --er-* overrides keep working unchanged. */
28239
+ --rb-reg-radius: var(--er-radius);
28240
+ --rb-reg-border: var(--er-border);
28241
+ --rb-reg-border-hover: var(--er-border-hover);
28242
+ --rb-reg-border-selected: var(--er-border-selected);
28243
+ --rb-reg-bg-selected: var(--er-payment-bg-selected);
28244
+ --rb-reg-option-bg: var(--er-control-bg);
28245
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
28246
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
28247
+ --rb-reg-on-surface: var(--er-on-surface);
28248
+ --rb-reg-on-surface-muted: var(--er-on-surface-muted);
28249
+ --rb-reg-on-surface-subtle: var(--er-on-surface-subtle);
28250
+ --rb-reg-on-surface-faint: var(--er-on-surface-faint);
28251
+ --rb-reg-check-bg: var(--er-check-bg);
28252
+ --rb-reg-check-text: var(--er-check-text);
28253
+ --rb-reg-step-active: var(--er-step-active);
28254
+ --rb-reg-step-completed: var(--er-step-completed);
28255
+ --rb-reg-step-inactive: var(--er-step-inactive);
28256
+ --rb-reg-step-text: var(--er-step-text);
28257
+ --rb-reg-step-text-active: var(--er-step-text-active);
28258
+ --rb-reg-step-connector: var(--er-step-connector);
28259
+ --rb-reg-summary-bg: var(--er-surface-muted);
28260
+ --rb-reg-summary-border: var(--er-border);
28261
+ --rb-reg-focus-ring: var(--er-focus-ring);
28262
+ --rb-reg-shell-line: var(--er-shell-line);
28049
28263
  }
28050
28264
  `;
28051
28265
  }
@@ -28178,25 +28392,40 @@ ${root} {
28178
28392
  --ab-info-bg: rgba(var(--tb-info), 0.1);
28179
28393
  --ab-info-text: rgb(var(--tb-info));
28180
28394
 
28181
- /* Loading/muted states */
28395
+ /* Muted summary state */
28182
28396
  --ab-muted-bg: rgba(var(--tb-text), 0.05);
28183
- --ab-muted-text: rgba(var(--tb-text), 0.6);
28184
- --ab-spinner-color: rgb(var(--tb-primary));
28185
28397
 
28186
- /* Form elements */
28187
- --ab-input-border: rgb(var(--tb-border));
28398
+ /* Focus ring used by shared registration-surface controls */
28188
28399
  --ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
28189
28400
 
28190
- /* Buttons */
28191
- --ab-btn-primary-bg: rgb(var(--tb-primary));
28192
- --ab-btn-primary-text: rgb(var(--tb-background));
28193
- --ab-btn-primary-hover: rgba(var(--tb-primary), 0.9);
28194
- --ab-btn-secondary-border: rgb(var(--tb-border));
28195
- --ab-btn-secondary-hover: rgba(var(--tb-text), 0.05);
28196
-
28197
- /* Text opacity levels */
28198
- --ab-text-muted-opacity: 0.6;
28199
- --ab-text-faint-opacity: 0.4;
28401
+ /* Shared registration-surface mappings (issue 1174).
28402
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
28403
+ (palette tokens where no --ab-* var exists) so --ab-* overrides keep
28404
+ working as the block adopts the shared classes. */
28405
+ --rb-reg-radius: var(--ab-card-radius, var(--rb-block-radius));
28406
+ --rb-reg-border: var(--ab-card-border);
28407
+ --rb-reg-border-hover: var(--ab-card-border-hover);
28408
+ --rb-reg-border-selected: var(--ab-card-border-selected);
28409
+ --rb-reg-bg-selected: var(--ab-card-bg-selected);
28410
+ --rb-reg-option-bg: transparent;
28411
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
28412
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
28413
+ --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
28414
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
28415
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
28416
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
28417
+ --rb-reg-check-bg: var(--ab-check-bg);
28418
+ --rb-reg-check-text: var(--ab-check-text);
28419
+ --rb-reg-step-active: rgb(var(--tb-primary));
28420
+ --rb-reg-step-completed: rgb(var(--tb-success));
28421
+ --rb-reg-step-inactive: rgb(var(--tb-mutedText));
28422
+ --rb-reg-step-text: rgb(255 255 255);
28423
+ --rb-reg-step-text-active: rgb(var(--tb-primaryText, 255 255 255));
28424
+ --rb-reg-step-connector: rgba(var(--tb-border), 0.5);
28425
+ --rb-reg-summary-bg: var(--ab-muted-bg);
28426
+ --rb-reg-summary-border: var(--ab-card-border);
28427
+ --rb-reg-focus-ring: var(--ab-input-focus-ring);
28428
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
28200
28429
  }
28201
28430
  `;
28202
28431
  }
@@ -28487,6 +28716,35 @@ ${root} {
28487
28716
  /* Summary */
28488
28717
  --cr-summary-bg: rgba(var(--tb-primary), 0.1);
28489
28718
  --cr-summary-border: rgb(var(--tb-border));
28719
+
28720
+ /* Shared registration-surface mappings (issue 1174).
28721
+ Route the shared --rb-reg-* contract through this block's Tier 3 vars
28722
+ (palette tokens where no --cr-* var exists) so existing --cr-* overrides
28723
+ keep working unchanged. */
28724
+ --rb-reg-radius: var(--rb-block-radius);
28725
+ --rb-reg-border: var(--cr-border);
28726
+ --rb-reg-border-hover: var(--cr-border-hover);
28727
+ --rb-reg-border-selected: var(--cr-border-selected);
28728
+ --rb-reg-bg-selected: var(--cr-payment-bg-selected);
28729
+ --rb-reg-option-bg: rgb(var(--tb-background));
28730
+ --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
28731
+ --rb-reg-surface-bg: rgb(var(--tb-surface));
28732
+ --rb-reg-on-surface: var(--cr-on-surface);
28733
+ --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
28734
+ --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
28735
+ --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
28736
+ --rb-reg-check-bg: var(--cr-check-bg);
28737
+ --rb-reg-check-text: var(--cr-check-text);
28738
+ --rb-reg-step-active: var(--cr-step-active);
28739
+ --rb-reg-step-completed: var(--cr-step-completed);
28740
+ --rb-reg-step-inactive: var(--cr-step-inactive);
28741
+ --rb-reg-step-text: var(--cr-step-text);
28742
+ --rb-reg-step-text-active: var(--cr-step-text-active);
28743
+ --rb-reg-step-connector: var(--cr-step-connector);
28744
+ --rb-reg-summary-bg: var(--cr-summary-bg);
28745
+ --rb-reg-summary-border: var(--cr-summary-border);
28746
+ --rb-reg-focus-ring: var(--cr-focus-ring);
28747
+ --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
28490
28748
  }
28491
28749
  `;
28492
28750
  }
@@ -28549,34 +28807,34 @@ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
28549
28807
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
28550
28808
 
28551
28809
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
28552
- import { z as z55 } from "zod";
28553
- var themeBridgeConfigSchema = z55.object({
28554
- tokens: z55.record(z55.string(), z55.string()),
28555
- typography: z55.object({
28556
- headingFamily: z55.string().optional(),
28557
- bodyFamily: z55.string().optional(),
28558
- headingWeight: z55.number().optional(),
28559
- bodyWeight: z55.number().optional()
28810
+ import { z as z56 } from "zod";
28811
+ var themeBridgeConfigSchema = z56.object({
28812
+ tokens: z56.record(z56.string(), z56.string()),
28813
+ typography: z56.object({
28814
+ headingFamily: z56.string().optional(),
28815
+ bodyFamily: z56.string().optional(),
28816
+ headingWeight: z56.number().optional(),
28817
+ bodyWeight: z56.number().optional()
28560
28818
  }).optional(),
28561
- spacing: z55.enum(["comfortable", "standard", "dense"]).optional(),
28562
- corners: z55.enum(["square", "soft", "rounded", "pill"]).optional(),
28563
- shadows: z55.enum(["none", "low", "medium", "high"]).optional(),
28564
- components: z55.object({
28565
- buttons: z55.union([
28566
- z55.boolean(),
28567
- z55.object({
28568
- variants: z55.array(z55.enum(["primary", "secondary", "outline", "ghost"])).optional()
28819
+ spacing: z56.enum(["comfortable", "standard", "dense"]).optional(),
28820
+ corners: z56.enum(["square", "soft", "rounded", "pill"]).optional(),
28821
+ shadows: z56.enum(["none", "low", "medium", "high"]).optional(),
28822
+ components: z56.object({
28823
+ buttons: z56.union([
28824
+ z56.boolean(),
28825
+ z56.object({
28826
+ variants: z56.array(z56.enum(["primary", "secondary", "outline", "ghost"])).optional()
28569
28827
  })
28570
28828
  ]).optional(),
28571
- cards: z55.union([
28572
- z55.boolean(),
28573
- z55.object({
28574
- variants: z55.array(z55.enum(["default", "elevated", "outlined"])).optional()
28829
+ cards: z56.union([
28830
+ z56.boolean(),
28831
+ z56.object({
28832
+ variants: z56.array(z56.enum(["default", "elevated", "outlined"])).optional()
28575
28833
  })
28576
28834
  ]).optional(),
28577
- inputs: z55.boolean().optional()
28835
+ inputs: z56.boolean().optional()
28578
28836
  }).optional(),
28579
- overrides: z55.record(z55.string(), z55.string()).optional()
28837
+ overrides: z56.record(z56.string(), z56.string()).optional()
28580
28838
  }).passthrough();
28581
28839
 
28582
28840
  // ../theme-core/src/siteChrome.tsx
@@ -28785,11 +29043,11 @@ function resolveModelForPass(passId, tierOverrides, passOverrides, globalModel)
28785
29043
  }
28786
29044
 
28787
29045
  // src/page-converter/passes/pass1-segmentation-matching.ts
28788
- import { z as z60 } from "zod";
29046
+ import { z as z61 } from "zod";
28789
29047
 
28790
29048
  // src/manifest/passes/pass1-fields.ts
28791
- import { z as z56 } from "zod";
28792
- var simpleFieldTypeEnum = z56.enum([
29049
+ import { z as z57 } from "zod";
29050
+ var simpleFieldTypeEnum = z57.enum([
28793
29051
  "text",
28794
29052
  "richText",
28795
29053
  "media",
@@ -28798,7 +29056,7 @@ var simpleFieldTypeEnum = z56.enum([
28798
29056
  "select",
28799
29057
  "number"
28800
29058
  ]);
28801
- var fieldTypeEnum = z56.enum([
29059
+ var fieldTypeEnum = z57.enum([
28802
29060
  "text",
28803
29061
  "richText",
28804
29062
  "media",
@@ -28809,109 +29067,109 @@ var fieldTypeEnum = z56.enum([
28809
29067
  "repeater",
28810
29068
  "group"
28811
29069
  ]);
28812
- var linkDefaultValue = z56.object({
28813
- label: z56.string().describe("The visible link text")
29070
+ var linkDefaultValue = z57.object({
29071
+ label: z57.string().describe("The visible link text")
28814
29072
  });
28815
- var mediaDefaultValue = z56.object({
28816
- src: z56.string().describe("Image/video source URL"),
28817
- alt: z56.string().describe("Alt text for accessibility (empty string if none)")
29073
+ var mediaDefaultValue = z57.object({
29074
+ src: z57.string().describe("Image/video source URL"),
29075
+ alt: z57.string().describe("Alt text for accessibility (empty string if none)")
28818
29076
  });
28819
- var nestedFieldSchema = z56.object({
28820
- id: z56.string().min(1).describe("camelCase field ID"),
29077
+ var nestedFieldSchema = z57.object({
29078
+ id: z57.string().min(1).describe("camelCase field ID"),
28821
29079
  type: simpleFieldTypeEnum,
28822
- label: z56.string().min(1),
28823
- required: z56.boolean().nullable()
29080
+ label: z57.string().min(1),
29081
+ required: z57.boolean().nullable()
28824
29082
  });
28825
- var simpleFieldSchema = z56.object({
28826
- id: z56.string().min(1).describe("camelCase field ID (e.g., headline, ctaButton)"),
29083
+ var simpleFieldSchema = z57.object({
29084
+ id: z57.string().min(1).describe("camelCase field ID (e.g., headline, ctaButton)"),
28827
29085
  type: simpleFieldTypeEnum,
28828
- label: z56.string().min(1),
28829
- required: z56.boolean(),
28830
- multiline: z56.boolean().nullable().describe("For text fields: true if multiple lines"),
28831
- defaultValue: z56.union([
28832
- z56.string(),
28833
- z56.number(),
28834
- z56.boolean(),
29086
+ label: z57.string().min(1),
29087
+ required: z57.boolean(),
29088
+ multiline: z57.boolean().nullable().describe("For text fields: true if multiple lines"),
29089
+ defaultValue: z57.union([
29090
+ z57.string(),
29091
+ z57.number(),
29092
+ z57.boolean(),
28835
29093
  linkDefaultValue,
28836
29094
  mediaDefaultValue,
28837
- z56.null()
29095
+ z57.null()
28838
29096
  ]).describe("Default content extracted from HTML"),
28839
- htmlContext: z56.string().describe("Brief description of where this appears in the HTML")
28840
- });
28841
- var repeaterFieldSchema2 = z56.object({
28842
- id: z56.string().min(1).describe("camelCase field ID (e.g., socialLinks, features)"),
28843
- type: z56.literal("repeater"),
28844
- label: z56.string().min(1),
28845
- required: z56.boolean(),
28846
- itemLabel: z56.string().min(1).describe('Singular label for each item (e.g., "Link", "Feature")'),
28847
- itemFields: z56.array(nestedFieldSchema).min(1).describe("Fields for each item in the repeater"),
28848
- htmlContext: z56.string().describe("Brief description of where this appears in the HTML")
28849
- });
28850
- var groupFieldSchema2 = z56.object({
28851
- id: z56.string().min(1).describe("camelCase field ID (e.g., contactInfo, seoSettings)"),
28852
- type: z56.literal("group"),
28853
- label: z56.string().min(1),
28854
- required: z56.boolean(),
28855
- groupFields: z56.array(nestedFieldSchema).min(1).describe("Fields within the group"),
28856
- htmlContext: z56.string().describe("Brief description of where this appears in the HTML")
28857
- });
28858
- var extractedFieldSchema = z56.union([
29097
+ htmlContext: z57.string().describe("Brief description of where this appears in the HTML")
29098
+ });
29099
+ var repeaterFieldSchema2 = z57.object({
29100
+ id: z57.string().min(1).describe("camelCase field ID (e.g., socialLinks, features)"),
29101
+ type: z57.literal("repeater"),
29102
+ label: z57.string().min(1),
29103
+ required: z57.boolean(),
29104
+ itemLabel: z57.string().min(1).describe('Singular label for each item (e.g., "Link", "Feature")'),
29105
+ itemFields: z57.array(nestedFieldSchema).min(1).describe("Fields for each item in the repeater"),
29106
+ htmlContext: z57.string().describe("Brief description of where this appears in the HTML")
29107
+ });
29108
+ var groupFieldSchema2 = z57.object({
29109
+ id: z57.string().min(1).describe("camelCase field ID (e.g., contactInfo, seoSettings)"),
29110
+ type: z57.literal("group"),
29111
+ label: z57.string().min(1),
29112
+ required: z57.boolean(),
29113
+ groupFields: z57.array(nestedFieldSchema).min(1).describe("Fields within the group"),
29114
+ htmlContext: z57.string().describe("Brief description of where this appears in the HTML")
29115
+ });
29116
+ var extractedFieldSchema = z57.union([
28859
29117
  simpleFieldSchema,
28860
29118
  repeaterFieldSchema2,
28861
29119
  groupFieldSchema2
28862
29120
  ]);
28863
- var extractedEntrySchema = z56.object({
28864
- identifier: z56.string().regex(/^[a-z0-9-]+$/).describe("Unique slug-safe identifier (e.g., wine-tasting-evening)"),
28865
- title: z56.string().min(1).describe("Entry title"),
29121
+ var extractedEntrySchema = z57.object({
29122
+ identifier: z57.string().regex(/^[a-z0-9-]+$/).describe("Unique slug-safe identifier (e.g., wine-tasting-evening)"),
29123
+ title: z57.string().min(1).describe("Entry title"),
28866
29124
  // Use passthrough() instead of record() - generates additionalProperties:true without propertyNames
28867
29125
  // which OpenAI's structured output accepts
28868
- data: z56.object({}).passthrough().describe("Entry data matching the content type schema")
28869
- });
28870
- var newContentTypeSchema = z56.object({
28871
- key: z56.string().regex(/^[a-z][a-z0-9-]*$/).describe("Content type key (e.g., testimonial, team-member)"),
28872
- name: z56.string().min(1).describe("Human-readable name"),
28873
- description: z56.string().nullable().describe("Description of this content type"),
28874
- fields: z56.array(z56.object({
28875
- id: z56.string().min(1),
28876
- type: z56.string().min(1),
28877
- label: z56.string().min(1),
28878
- required: z56.boolean().nullable(),
28879
- description: z56.string().nullable()
29126
+ data: z57.object({}).passthrough().describe("Entry data matching the content type schema")
29127
+ });
29128
+ var newContentTypeSchema = z57.object({
29129
+ key: z57.string().regex(/^[a-z][a-z0-9-]*$/).describe("Content type key (e.g., testimonial, team-member)"),
29130
+ name: z57.string().min(1).describe("Human-readable name"),
29131
+ description: z57.string().nullable().describe("Description of this content type"),
29132
+ fields: z57.array(z57.object({
29133
+ id: z57.string().min(1),
29134
+ type: z57.string().min(1),
29135
+ label: z57.string().min(1),
29136
+ required: z57.boolean().nullable(),
29137
+ description: z57.string().nullable()
28880
29138
  })).min(1),
28881
- isRouted: z56.boolean().describe("Whether entries have their own pages")
29139
+ isRouted: z57.boolean().describe("Whether entries have their own pages")
28882
29140
  });
28883
- var contentTypeApproachSchema = z56.discriminatedUnion("approach", [
29141
+ var contentTypeApproachSchema = z57.discriminatedUnion("approach", [
28884
29142
  // Use an existing content type
28885
- z56.object({
28886
- approach: z56.literal("existingContentType"),
28887
- contentTypeKey: z56.string().min(1).describe("Key of the existing content type to use"),
28888
- entries: z56.array(extractedEntrySchema).min(1).describe("Extracted entries"),
28889
- rationale: z56.string().describe("Why this content type fits")
29143
+ z57.object({
29144
+ approach: z57.literal("existingContentType"),
29145
+ contentTypeKey: z57.string().min(1).describe("Key of the existing content type to use"),
29146
+ entries: z57.array(extractedEntrySchema).min(1).describe("Extracted entries"),
29147
+ rationale: z57.string().describe("Why this content type fits")
28890
29148
  }),
28891
29149
  // Create a new content type
28892
- z56.object({
28893
- approach: z56.literal("newContentType"),
29150
+ z57.object({
29151
+ approach: z57.literal("newContentType"),
28894
29152
  contentType: newContentTypeSchema,
28895
- entries: z56.array(extractedEntrySchema).min(1).describe("Extracted entries"),
28896
- rationale: z56.string().describe("Why a new content type is needed")
29153
+ entries: z57.array(extractedEntrySchema).min(1).describe("Extracted entries"),
29154
+ rationale: z57.string().describe("Why a new content type is needed")
28897
29155
  }),
28898
29156
  // Use repeater field (page-specific data)
28899
- z56.object({
28900
- approach: z56.literal("repeater"),
28901
- rationale: z56.string().describe("Why repeater is preferred over content type")
29157
+ z57.object({
29158
+ approach: z57.literal("repeater"),
29159
+ rationale: z57.string().describe("Why repeater is preferred over content type")
28902
29160
  }),
28903
29161
  // No list data - standard field extraction
28904
- z56.object({
28905
- approach: z56.literal("none"),
28906
- rationale: z56.string().describe("Why this is not list data")
29162
+ z57.object({
29163
+ approach: z57.literal("none"),
29164
+ rationale: z57.string().describe("Why this is not list data")
28907
29165
  })
28908
29166
  ]);
28909
- var pass1OutputSchema = z56.object({
28910
- blockId: z56.string().regex(/^custom\.[a-z][a-z0-9-]*$/).describe("Block ID like custom.hero-section"),
28911
- blockTitle: z56.string().min(1),
28912
- blockDescription: z56.string().nullable(),
28913
- category: z56.enum(["marketing", "content", "blog", "media", "layout", "interactive"]),
28914
- fields: z56.array(extractedFieldSchema).min(1),
29167
+ var pass1OutputSchema = z57.object({
29168
+ blockId: z57.string().regex(/^custom\.[a-z][a-z0-9-]*$/).describe("Block ID like custom.hero-section"),
29169
+ blockTitle: z57.string().min(1),
29170
+ blockDescription: z57.string().nullable(),
29171
+ category: z57.enum(["marketing", "content", "blog", "media", "layout", "interactive"]),
29172
+ fields: z57.array(extractedFieldSchema).min(1),
28915
29173
  /**
28916
29174
  * Content type decision for list-like content.
28917
29175
  * When content types are available, the LLM may decide to use content entries
@@ -29154,10 +29412,10 @@ async function getJsonFromAiText(ai, config, userMessage, schema) {
29154
29412
  }
29155
29413
 
29156
29414
  // src/manifest/passes/pass3-styling.ts
29157
- import { z as z59 } from "zod";
29415
+ import { z as z60 } from "zod";
29158
29416
 
29159
29417
  // src/manifest/validation/output-schema.ts
29160
- import { z as z58 } from "zod";
29418
+ import { z as z59 } from "zod";
29161
29419
 
29162
29420
  // src/manifest/validation/layout-utils.ts
29163
29421
  function collectLayoutNodeInfos(node, path2 = "layout", out = []) {
@@ -29198,14 +29456,14 @@ function collectLayoutClassNames(node, out = /* @__PURE__ */ new Set()) {
29198
29456
  }
29199
29457
 
29200
29458
  // src/zod/titleSourceSchema.ts
29201
- import { z as z57 } from "zod";
29202
- var titleSourceValueSchema = z57.union([
29203
- z57.string().min(1),
29204
- z57.array(z57.string().min(1)).min(1)
29459
+ import { z as z58 } from "zod";
29460
+ var titleSourceValueSchema = z58.union([
29461
+ z58.string().min(1),
29462
+ z58.array(z58.string().min(1)).min(1)
29205
29463
  ]);
29206
29464
 
29207
29465
  // src/manifest/validation/output-schema.ts
29208
- var blockCategoryEnum2 = z58.enum([
29466
+ var blockCategoryEnum2 = z59.enum([
29209
29467
  "marketing",
29210
29468
  "content",
29211
29469
  "blog",
@@ -29213,53 +29471,53 @@ var blockCategoryEnum2 = z58.enum([
29213
29471
  "layout",
29214
29472
  "interactive"
29215
29473
  ]);
29216
- var llmColorValue = z58.object({
29217
- name: z58.string(),
29218
- hex: z58.string()
29219
- });
29220
- var llmThemePrimitive = z58.union([
29221
- z58.string(),
29222
- z58.number(),
29223
- z58.boolean(),
29224
- z58.null()
29474
+ var llmColorValue = z59.object({
29475
+ name: z59.string(),
29476
+ hex: z59.string()
29477
+ });
29478
+ var llmThemePrimitive = z59.union([
29479
+ z59.string(),
29480
+ z59.number(),
29481
+ z59.boolean(),
29482
+ z59.null()
29225
29483
  ]);
29226
- var llmThemePatchValue = z58.union([
29484
+ var llmThemePatchValue = z59.union([
29227
29485
  llmThemePrimitive,
29228
29486
  llmColorValue,
29229
- z58.array(llmColorValue),
29230
- z58.array(llmThemePrimitive)
29487
+ z59.array(llmColorValue),
29488
+ z59.array(llmThemePrimitive)
29231
29489
  ]);
29232
- var llmThemePatchOpSchema = z58.discriminatedUnion("op", [
29233
- z58.object({
29234
- op: z58.literal("add"),
29235
- path: z58.string().min(1),
29490
+ var llmThemePatchOpSchema = z59.discriminatedUnion("op", [
29491
+ z59.object({
29492
+ op: z59.literal("add"),
29493
+ path: z59.string().min(1),
29236
29494
  value: llmThemePatchValue
29237
29495
  }),
29238
- z58.object({
29239
- op: z58.literal("replace"),
29240
- path: z58.string().min(1),
29496
+ z59.object({
29497
+ op: z59.literal("replace"),
29498
+ path: z59.string().min(1),
29241
29499
  value: llmThemePatchValue
29242
29500
  }),
29243
- z58.object({ op: z58.literal("remove"), path: z58.string().min(1) })
29501
+ z59.object({ op: z59.literal("remove"), path: z59.string().min(1) })
29244
29502
  ]);
29245
- var llmCssDeclaration = z58.object({
29246
- property: z58.string(),
29247
- value: z58.string()
29503
+ var llmCssDeclaration = z59.object({
29504
+ property: z59.string(),
29505
+ value: z59.string()
29248
29506
  });
29249
- var llmCustomCssRuleSchema = z58.object({
29250
- id: z58.string().min(1),
29251
- selector: z58.string().min(1),
29252
- declarations: z58.array(llmCssDeclaration)
29507
+ var llmCustomCssRuleSchema = z59.object({
29508
+ id: z59.string().min(1),
29509
+ selector: z59.string().min(1),
29510
+ declarations: z59.array(llmCssDeclaration)
29253
29511
  });
29254
- var llmNestedRuleSchema = z58.object({
29255
- selector: z58.string().min(1),
29256
- declarations: z58.array(llmCssDeclaration)
29512
+ var llmNestedRuleSchema = z59.object({
29513
+ selector: z59.string().min(1),
29514
+ declarations: z59.array(llmCssDeclaration)
29257
29515
  });
29258
- var llmMediaAtRuleSchema = z58.object({
29259
- id: z58.string().min(1),
29260
- type: z58.literal("media"),
29261
- query: z58.string().min(1),
29262
- rules: z58.array(llmNestedRuleSchema)
29516
+ var llmMediaAtRuleSchema = z59.object({
29517
+ id: z59.string().min(1),
29518
+ type: z59.literal("media"),
29519
+ query: z59.string().min(1),
29520
+ rules: z59.array(llmNestedRuleSchema)
29263
29521
  });
29264
29522
  function normalizeDeclarationsArrayToRecord(declarations) {
29265
29523
  const record = {};
@@ -29289,85 +29547,85 @@ function normalizeLlmMediaAtRule(atRule) {
29289
29547
  rules: atRule.rules.map(normalizeLlmNestedRule)
29290
29548
  };
29291
29549
  }
29292
- var jsonPrimitiveSchema = z58.union([
29293
- z58.string(),
29294
- z58.number(),
29295
- z58.boolean(),
29296
- z58.null()
29550
+ var jsonPrimitiveSchema = z59.union([
29551
+ z59.string(),
29552
+ z59.number(),
29553
+ z59.boolean(),
29554
+ z59.null()
29297
29555
  ]);
29298
- var jsonValueSchema = z58.union([
29556
+ var jsonValueSchema = z59.union([
29299
29557
  jsonPrimitiveSchema,
29300
- z58.array(jsonPrimitiveSchema)
29558
+ z59.array(jsonPrimitiveSchema)
29301
29559
  ]);
29302
- var llmBaseFieldSchema = z58.object({
29303
- id: z58.string().min(1),
29304
- label: z58.string().min(1),
29305
- description: z58.string().nullable(),
29306
- required: z58.boolean(),
29560
+ var llmBaseFieldSchema = z59.object({
29561
+ id: z59.string().min(1),
29562
+ label: z59.string().min(1),
29563
+ description: z59.string().nullable(),
29564
+ required: z59.boolean(),
29307
29565
  defaultValue: jsonValueSchema.nullable()
29308
29566
  });
29309
29567
  var llmTextFieldSchema = llmBaseFieldSchema.extend({
29310
- type: z58.literal("text"),
29311
- multiline: z58.boolean(),
29312
- maxLength: z58.number().int().positive().nullable()
29568
+ type: z59.literal("text"),
29569
+ multiline: z59.boolean(),
29570
+ maxLength: z59.number().int().positive().nullable()
29313
29571
  });
29314
29572
  var llmRichTextFieldSchema = llmBaseFieldSchema.extend({
29315
- type: z58.literal("richText")
29573
+ type: z59.literal("richText")
29316
29574
  });
29317
29575
  var llmMediaFieldSchema = llmBaseFieldSchema.extend({
29318
- type: z58.literal("media"),
29319
- mediaKinds: z58.array(z58.enum(["image", "video", "audio"])).nullable()
29576
+ type: z59.literal("media"),
29577
+ mediaKinds: z59.array(z59.enum(["image", "video", "audio"])).nullable()
29320
29578
  });
29321
29579
  var llmFileFieldSchema = llmBaseFieldSchema.extend({
29322
- type: z58.literal("file"),
29323
- fileKinds: z58.array(z58.enum(["document", "spreadsheet", "archive", "audio"])).nullable()
29580
+ type: z59.literal("file"),
29581
+ fileKinds: z59.array(z59.enum(["document", "spreadsheet", "archive", "audio"])).nullable()
29324
29582
  });
29325
29583
  var llmBooleanFieldSchema = llmBaseFieldSchema.extend({
29326
- type: z58.literal("boolean")
29584
+ type: z59.literal("boolean")
29327
29585
  });
29328
29586
  var llmLinkFieldSchema = llmBaseFieldSchema.extend({
29329
- type: z58.literal("link")
29587
+ type: z59.literal("link")
29330
29588
  });
29331
29589
  var llmSelectFieldSchema = llmBaseFieldSchema.extend({
29332
- type: z58.literal("select"),
29333
- options: z58.array(
29334
- z58.object({
29335
- value: z58.string(),
29336
- label: z58.string()
29590
+ type: z59.literal("select"),
29591
+ options: z59.array(
29592
+ z59.object({
29593
+ value: z59.string(),
29594
+ label: z59.string()
29337
29595
  })
29338
29596
  ),
29339
- multiple: z58.boolean().nullable()
29597
+ multiple: z59.boolean().nullable()
29340
29598
  });
29341
29599
  var llmNumberFieldSchema = llmBaseFieldSchema.extend({
29342
- type: z58.literal("number")
29343
- });
29344
- var llmNestedFieldSchema = z58.object({
29345
- id: z58.string(),
29346
- type: z58.string(),
29347
- label: z58.string(),
29348
- required: z58.boolean().nullable(),
29349
- multiline: z58.boolean().nullable(),
29600
+ type: z59.literal("number")
29601
+ });
29602
+ var llmNestedFieldSchema = z59.object({
29603
+ id: z59.string(),
29604
+ type: z59.string(),
29605
+ label: z59.string(),
29606
+ required: z59.boolean().nullable(),
29607
+ multiline: z59.boolean().nullable(),
29350
29608
  defaultValue: jsonValueSchema.nullable()
29351
29609
  }).passthrough();
29352
- var llmNestedFieldsSchema = z58.array(llmNestedFieldSchema);
29610
+ var llmNestedFieldsSchema = z59.array(llmNestedFieldSchema);
29353
29611
  var llmGroupFieldSchema = llmBaseFieldSchema.extend({
29354
- type: z58.literal("group"),
29355
- schema: z58.object({
29612
+ type: z59.literal("group"),
29613
+ schema: z59.object({
29356
29614
  fields: llmNestedFieldsSchema
29357
29615
  })
29358
29616
  });
29359
29617
  var llmRepeaterFieldSchema = llmBaseFieldSchema.extend({
29360
- type: z58.literal("repeater"),
29361
- itemLabel: z58.string(),
29362
- itemLabelSource: z58.string().nullable(),
29363
- minItems: z58.number().int().min(0),
29364
- maxItems: z58.number().int().positive().nullable(),
29365
- allowConversion: z58.boolean(),
29366
- schema: z58.object({
29618
+ type: z59.literal("repeater"),
29619
+ itemLabel: z59.string(),
29620
+ itemLabelSource: z59.string().nullable(),
29621
+ minItems: z59.number().int().min(0),
29622
+ maxItems: z59.number().int().positive().nullable(),
29623
+ allowConversion: z59.boolean(),
29624
+ schema: z59.object({
29367
29625
  fields: llmNestedFieldsSchema
29368
29626
  })
29369
29627
  });
29370
- var llmFieldSchema = z58.union([
29628
+ var llmFieldSchema = z59.union([
29371
29629
  llmTextFieldSchema,
29372
29630
  llmRichTextFieldSchema,
29373
29631
  llmMediaFieldSchema,
@@ -29379,66 +29637,66 @@ var llmFieldSchema = z58.union([
29379
29637
  llmGroupFieldSchema,
29380
29638
  llmRepeaterFieldSchema
29381
29639
  ]);
29382
- var llmBindingSchema = z58.object({
29383
- from: z58.string(),
29384
- fallback: z58.string().nullable(),
29385
- transforms: z58.array(
29386
- z58.object({
29387
- id: z58.string()
29640
+ var llmBindingSchema = z59.object({
29641
+ from: z59.string(),
29642
+ fallback: z59.string().nullable(),
29643
+ transforms: z59.array(
29644
+ z59.object({
29645
+ id: z59.string()
29388
29646
  })
29389
29647
  ).nullable()
29390
29648
  });
29391
- var llmRepeatSchema = z58.object({
29392
- collection: z58.object({ from: z58.string() }),
29393
- itemName: z58.string()
29649
+ var llmRepeatSchema = z59.object({
29650
+ collection: z59.object({ from: z59.string() }),
29651
+ itemName: z59.string()
29394
29652
  });
29395
- var llmPropsSchema = z58.object({}).passthrough().nullable();
29653
+ var llmPropsSchema = z59.object({}).passthrough().nullable();
29396
29654
  function buildLlmNodeSchema(maxDepth) {
29397
- const nodeBase = z58.object({
29398
- type: z58.string(),
29655
+ const nodeBase = z59.object({
29656
+ type: z59.string(),
29399
29657
  props: llmPropsSchema,
29400
29658
  $bind: llmBindingSchema.nullable(),
29401
29659
  $repeat: llmRepeatSchema.nullable(),
29402
- $when: z58.object({
29403
- condition: z58.object({ from: z58.string() })
29660
+ $when: z59.object({
29661
+ condition: z59.object({ from: z59.string() })
29404
29662
  }).nullable()
29405
29663
  });
29406
- let schema = nodeBase.extend({ children: z58.null() });
29664
+ let schema = nodeBase.extend({ children: z59.null() });
29407
29665
  for (let i = 0; i < maxDepth; i++) {
29408
- schema = nodeBase.extend({ children: z58.array(schema).nullable() });
29666
+ schema = nodeBase.extend({ children: z59.array(schema).nullable() });
29409
29667
  }
29410
29668
  return schema;
29411
29669
  }
29412
29670
  var MAX_LAYOUT_DEPTH = 6;
29413
29671
  var llmNodeSchema = buildLlmNodeSchema(MAX_LAYOUT_DEPTH);
29414
- var llmCustomBlockSchema = z58.object({
29415
- id: z58.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
29672
+ var llmCustomBlockSchema = z59.object({
29673
+ id: z59.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
29416
29674
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
29417
29675
  }),
29418
- title: z58.string().min(1, "Title is required"),
29676
+ title: z59.string().min(1, "Title is required"),
29419
29677
  // Keep in sync with `sdkCustomBlockSchema` and the system manifest schema:
29420
29678
  // - `null` used by OpenAI structured output for "optional" values
29421
29679
  // - array allows multi-part titles (e.g. ["navLabel", "title"])
29422
29680
  titleSource: titleSourceValueSchema.nullable(),
29423
- description: z58.string().nullable(),
29681
+ description: z59.string().nullable(),
29424
29682
  category: blockCategoryEnum2,
29425
- icon: z58.string().nullable(),
29426
- tags: z58.array(z58.string()).nullable(),
29683
+ icon: z59.string().nullable(),
29684
+ tags: z59.array(z59.string()).nullable(),
29427
29685
  // Use LLM-specific field schema (no z.any() for OpenAI compatibility)
29428
29686
  fields: llmFieldSchema.array().min(1, "Custom blocks must have at least one field"),
29429
29687
  // Use LLM-specific node schema (no z.any() for OpenAI compatibility)
29430
29688
  layout: llmNodeSchema
29431
29689
  });
29432
- var htmlToManifestOutputSchema = z58.object({
29433
- blocks: z58.array(llmCustomBlockSchema).min(1, "At least one block is required").max(10, "Maximum 10 blocks per conversion"),
29434
- themePatch: z58.array(llmThemePatchOpSchema).nullable(),
29435
- customCssRules: z58.array(llmCustomCssRuleSchema).nullable(),
29436
- customCssAtRules: z58.array(llmMediaAtRuleSchema).nullable(),
29690
+ var htmlToManifestOutputSchema = z59.object({
29691
+ blocks: z59.array(llmCustomBlockSchema).min(1, "At least one block is required").max(10, "Maximum 10 blocks per conversion"),
29692
+ themePatch: z59.array(llmThemePatchOpSchema).nullable(),
29693
+ customCssRules: z59.array(llmCustomCssRuleSchema).nullable(),
29694
+ customCssAtRules: z59.array(llmMediaAtRuleSchema).nullable(),
29437
29695
  /**
29438
29696
  * Explanation of fixes made when retrying after validation errors.
29439
29697
  * Should explain what changes were made and why.
29440
29698
  */
29441
- fixRationale: z58.string().nullable()
29699
+ fixRationale: z59.string().nullable()
29442
29700
  });
29443
29701
  function collectValidationErrors(output) {
29444
29702
  const errors = [];
@@ -30401,20 +30659,20 @@ function formatValidationFeedback(errors, output) {
30401
30659
  }
30402
30660
 
30403
30661
  // src/manifest/passes/pass3-styling.ts
30404
- var pass3aOutputSchema = z59.object({
30405
- classNamePatches: z59.array(
30406
- z59.object({
30407
- nodePath: z59.string(),
30662
+ var pass3aOutputSchema = z60.object({
30663
+ classNamePatches: z60.array(
30664
+ z60.object({
30665
+ nodePath: z60.string(),
30408
30666
  // "" for root, "children[0]", "children[0].children[1]" etc.
30409
- className: z59.string().min(1)
30667
+ className: z60.string().min(1)
30410
30668
  })
30411
30669
  ),
30412
- rationale: z59.string()
30670
+ rationale: z60.string()
30413
30671
  });
30414
- var pass3bOutputSchema = z59.object({
30415
- customCssRules: z59.array(llmCustomCssRuleSchema).nullable(),
30416
- customCssAtRules: z59.array(llmMediaAtRuleSchema).nullable(),
30417
- rationale: z59.string()
30672
+ var pass3bOutputSchema = z60.object({
30673
+ customCssRules: z60.array(llmCustomCssRuleSchema).nullable(),
30674
+ customCssAtRules: z60.array(llmMediaAtRuleSchema).nullable(),
30675
+ rationale: z60.string()
30418
30676
  });
30419
30677
  function getNodeAtPath(layout, path2) {
30420
30678
  if (path2 === "" || path2 === "root" || path2 === "layout") {
@@ -30721,38 +30979,38 @@ Do NOT include [data-block=...] in selectors - we add that automatically.
30721
30979
 
30722
30980
  // src/page-converter/passes/pass1-segmentation-matching.ts
30723
30981
  var SIZE_WARNING_BYTES = 100 * 1024;
30724
- var sectionTypeEnum = z60.enum(["header", "content", "footer"]);
30725
- var blockCategoryEnum3 = z60.enum(["marketing", "content", "blog", "media", "layout", "interactive"]);
30726
- var baseSectionSchema = z60.object({
30727
- html: z60.string().min(1),
30728
- purpose: z60.string().min(1),
30982
+ var sectionTypeEnum = z61.enum(["header", "content", "footer"]);
30983
+ var blockCategoryEnum3 = z61.enum(["marketing", "content", "blog", "media", "layout", "interactive"]);
30984
+ var baseSectionSchema = z61.object({
30985
+ html: z61.string().min(1),
30986
+ purpose: z61.string().min(1),
30729
30987
  sectionType: sectionTypeEnum
30730
30988
  });
30731
30989
  var builtinMatchSchema = baseSectionSchema.extend({
30732
- decision: z60.literal("builtin"),
30733
- matchedBlock: z60.string().min(1),
30734
- matchScore: z60.number().min(0).max(100),
30735
- matchRationale: z60.string().min(1)
30990
+ decision: z61.literal("builtin"),
30991
+ matchedBlock: z61.string().min(1),
30992
+ matchScore: z61.number().min(0).max(100),
30993
+ matchRationale: z61.string().min(1)
30736
30994
  });
30737
30995
  var customMatchSchema = baseSectionSchema.extend({
30738
- decision: z60.literal("custom"),
30739
- customBlockSuggestion: z60.object({
30740
- title: z60.string().min(1),
30996
+ decision: z61.literal("custom"),
30997
+ customBlockSuggestion: z61.object({
30998
+ title: z61.string().min(1),
30741
30999
  category: blockCategoryEnum3
30742
31000
  })
30743
31001
  });
30744
- var sectionMatchSchema = z60.discriminatedUnion("decision", [
31002
+ var sectionMatchSchema = z61.discriminatedUnion("decision", [
30745
31003
  builtinMatchSchema,
30746
31004
  customMatchSchema
30747
31005
  ]);
30748
- var skippedContentSchema = z60.object({
30749
- description: z60.string(),
30750
- reason: z60.string()
31006
+ var skippedContentSchema = z61.object({
31007
+ description: z61.string(),
31008
+ reason: z61.string()
30751
31009
  });
30752
- var combinedPassSchema = z60.object({
30753
- sections: z60.array(sectionMatchSchema).min(1),
30754
- skippedContent: z60.array(skippedContentSchema).nullable(),
30755
- rationale: z60.string()
31010
+ var combinedPassSchema = z61.object({
31011
+ sections: z61.array(sectionMatchSchema).min(1),
31012
+ skippedContent: z61.array(skippedContentSchema).nullable(),
31013
+ rationale: z61.string()
30756
31014
  });
30757
31015
  function buildSystemPrompt(availableBlocks, matchThreshold) {
30758
31016
  const blockCatalog = availableBlocks.map((b) => {
@@ -30959,10 +31217,10 @@ async function segmentAndMatchBlocks(html, availableBlocks, ctx) {
30959
31217
  }
30960
31218
 
30961
31219
  // src/page-converter/passes/pass2-population.ts
30962
- import { z as z62 } from "zod";
31220
+ import { z as z63 } from "zod";
30963
31221
 
30964
31222
  // src/manifest/three-pass-converter.ts
30965
- import { z as z61 } from "zod";
31223
+ import { z as z62 } from "zod";
30966
31224
 
30967
31225
  // src/manifest/prompt/theme-summary.ts
30968
31226
  var WEIGHT_MAP = {
@@ -31263,9 +31521,9 @@ function mapPass1FieldToOutputField(field) {
31263
31521
  maxLength: null
31264
31522
  };
31265
31523
  }
31266
- var pass2OutputSchema = z61.object({
31524
+ var pass2OutputSchema = z62.object({
31267
31525
  layout: llmNodeSchema,
31268
- rationale: z61.string().describe("Explain which node binds to which field")
31526
+ rationale: z62.string().describe("Explain which node binds to which field")
31269
31527
  });
31270
31528
  function buildPass2SystemPrompt(fields3, contentTypeApproach) {
31271
31529
  const fieldList = fields3.map((f) => {
@@ -32125,9 +32383,9 @@ async function convertHtmlToManifest(input, options) {
32125
32383
  }
32126
32384
 
32127
32385
  // src/page-converter/passes/pass2-population.ts
32128
- var builtinContentSchema = z62.object({
32129
- content: z62.unknown(),
32130
- rationale: z62.string()
32386
+ var builtinContentSchema = z63.object({
32387
+ content: z63.unknown(),
32388
+ rationale: z63.string()
32131
32389
  });
32132
32390
  var SECTION_STYLES_ALLOWED_KEYS = /* @__PURE__ */ new Set(["background", "spacing"]);
32133
32391
  var BOX_STYLES_ALLOWED_KEYS = /* @__PURE__ */ new Set(["background", "spacing", "raised", "rounded", "border", "fullWidth"]);