@riverbankcms/sdk 0.96.0 → 0.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +20 -1
  2. package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-CG3SSJND.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-RHNGKAAU.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +8 -0
  5. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  6. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  8. package/dist/_dts/api/src/endpoints.d.ts +80 -0
  9. package/dist/_dts/api/src/index.d.ts +3 -2
  10. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  11. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  12. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  14. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  15. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -1
  16. package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
  17. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  18. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  19. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  20. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  21. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  22. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  23. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  24. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  25. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  29. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  30. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  31. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  32. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  34. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  35. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  36. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  37. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  38. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  41. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  50. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  51. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  52. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +1 -1
  53. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
  54. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  55. package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
  56. package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
  57. package/dist/_dts/core/src/branded.d.ts +8 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +505 -2
  59. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  60. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  61. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
  62. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
  63. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  64. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  65. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  66. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  67. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  68. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  69. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
  70. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  71. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  72. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  73. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
  74. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  75. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  76. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  77. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  78. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  79. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  80. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  81. package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
  82. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
  83. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  84. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  85. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  86. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
  87. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +52 -1
  88. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  89. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  90. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  91. package/dist/_dts/sdk/src/version.d.ts +1 -1
  92. package/dist/{chunk-EL55VV6Q.mjs → chunk-6WDBXCPX.mjs} +31 -10
  93. package/dist/{chunk-XMATDBXO.mjs → chunk-DBRI3PQF.mjs} +731 -180
  94. package/dist/{chunk-VHIMXQ7Z.mjs → chunk-H24OU7WG.mjs} +2 -2
  95. package/dist/{chunk-4TLTV7OB.mjs → chunk-PKDPQHB5.mjs} +2 -2
  96. package/dist/{chunk-VTPPVAOL.mjs → chunk-QPXE2OUZ.mjs} +1 -1
  97. package/dist/{chunk-7ED5UNHL.mjs → chunk-V2BYFSPW.mjs} +109 -0
  98. package/dist/cli/index.mjs +2131 -1033
  99. package/dist/cli/init-docs/content/cli-reference.md +29 -1
  100. package/dist/cli/init-docs/content/getting-started.md +8 -0
  101. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  102. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  103. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  104. package/dist/client/{accordion-GUNXIIZR.mjs → accordion-Q2BDNL53.mjs} +1 -1
  105. package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-ZMP4P7EK.mjs} +16 -6
  106. package/dist/client/bookings.mjs +98 -18
  107. package/dist/client/{carousel-4QSX2JPC.mjs → carousel-LW3UXPWO.mjs} +1 -1
  108. package/dist/client/{cart-JKN6C4ZB.mjs → cart-Z6D3KS6K.mjs} +5 -5
  109. package/dist/client/{checkout-YY6YMITW.mjs → checkout-YMT2QJQM.mjs} +5 -5
  110. package/dist/client/{chunk-6H27K6AA.mjs → chunk-26ZBRXFR.mjs} +9 -3
  111. package/dist/client/{chunk-VJROUYOQ.mjs → chunk-DRRQ7QSL.mjs} +2 -2
  112. package/dist/client/{chunk-BFCJZODD.mjs → chunk-ET2MDQQT.mjs} +4 -4
  113. package/dist/client/{chunk-H7A6PUGM.mjs → chunk-HBQEAOG4.mjs} +1 -1
  114. package/dist/client/{chunk-CPKMJVBD.mjs → chunk-IEOECM7U.mjs} +62 -43
  115. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-KDP7ZRZV.mjs} +16 -0
  116. package/dist/client/{chunk-GWCRCJLB.mjs → chunk-R4XK3CKR.mjs} +12 -1
  117. package/dist/client/{chunk-A3YN7M3G.mjs → chunk-SK2BMD22.mjs} +2 -2
  118. package/dist/client/{chunk-SY543WZ3.mjs → chunk-XNTHVZ25.mjs} +1 -1
  119. package/dist/client/client.mjs +3729 -3054
  120. package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-DGKCMC77.mjs} +4 -4
  121. package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-74Z2NNFM.mjs} +7 -7
  122. package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-GK2ODOX2.mjs} +7 -7
  123. package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-MONAGT3N.mjs} +7 -7
  124. package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-SKGAO6PS.mjs} +7 -7
  125. package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-6KISGXRD.mjs} +7 -7
  126. package/dist/client/{form-VKRTFUNQ.mjs → form-FXPRTXHI.mjs} +2 -2
  127. package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-7NAN5WNB.mjs} +2 -2
  128. package/dist/client/hooks.mjs +1661 -1334
  129. package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-UERN74U4.mjs} +2 -2
  130. package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-SGWXMJ7U.mjs} +2 -2
  131. package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-HN3HWZQZ.mjs} +5 -5
  132. package/dist/client/{productList-RX6ZJ7BL.mjs → productList-YT22Z5UR.mjs} +5 -5
  133. package/dist/client/rendering/client.mjs +2208 -1922
  134. package/dist/client/rendering/islands.mjs +18 -18
  135. package/dist/client/rendering.mjs +1497 -811
  136. package/dist/client/{shop-BHN5AKY6.mjs → shop-TKEDNWUS.mjs} +5 -5
  137. package/dist/preview-next/before-render.mjs +109 -0
  138. package/dist/preview-next/client/runtime.mjs +5 -5
  139. package/dist/preview-next/middleware.mjs +109 -0
  140. package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-LWNYCQF2.mjs} +6 -6
  141. package/dist/server/components.mjs +2351 -1872
  142. package/dist/server/config-template-validation.mjs +6 -2
  143. package/dist/server/config-validation.mjs +1861 -1561
  144. package/dist/server/config.mjs +1861 -1561
  145. package/dist/server/data.mjs +1647 -1331
  146. package/dist/server/index.mjs +208 -9
  147. package/dist/server/next/middleware.mjs +2 -2
  148. package/dist/server/next.mjs +2572 -1878
  149. package/dist/server/page-converter.mjs +1461 -1276
  150. package/dist/server/prebuild.mjs +1 -1
  151. package/dist/server/rendering/server.mjs +2372 -1875
  152. package/dist/server/rendering.mjs +2557 -1941
  153. package/dist/server/routing.mjs +1716 -1353
  154. package/dist/server/server.mjs +1911 -1380
  155. package/package.json +1 -1
  156. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
@@ -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",
@@ -11252,7 +11263,8 @@ function when(path2, options) {
11252
11263
  $when: {
11253
11264
  when: { from: path2 },
11254
11265
  ...options?.equals !== void 0 ? { equals: options.equals } : {},
11255
- ...options?.not ? { not: true } : {}
11266
+ ...options?.not ? { not: true } : {},
11267
+ ...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
11256
11268
  }
11257
11269
  });
11258
11270
  }
@@ -19046,77 +19058,247 @@ var appointmentBookingBlockDefinition = {
19046
19058
  }
19047
19059
  };
19048
19060
 
19061
+ // ../blocks/src/system/blocks/weekly-slot-availability.ts
19062
+ import { z as z32 } from "zod";
19063
+ var weeklySlotAvailabilityManifest = createBlockManifest({
19064
+ id: "block.weekly-slot-availability",
19065
+ version: "1.0.0",
19066
+ title: "Weekly Slot Availability",
19067
+ titleSource: "heading",
19068
+ description: "Shows available recurring appointment slot patterns",
19069
+ skipSectionStyles: true,
19070
+ additionalFields: [
19071
+ {
19072
+ id: "serviceId",
19073
+ type: "reference",
19074
+ label: "Appointment service",
19075
+ description: "Choose which appointment service to show availability for",
19076
+ required: true,
19077
+ referenceKind: "appointmentService",
19078
+ allowManualEntry: false,
19079
+ ui: { intent: "behavior" }
19080
+ },
19081
+ {
19082
+ id: "resourceId",
19083
+ type: "reference",
19084
+ label: "Appointment resource",
19085
+ description: "Optionally narrow the availability to one practitioner or room",
19086
+ required: false,
19087
+ referenceKind: "appointmentResource",
19088
+ allowManualEntry: false,
19089
+ ui: { intent: "behavior" }
19090
+ },
19091
+ {
19092
+ id: "horizonWeeks",
19093
+ type: "select",
19094
+ label: "Look ahead",
19095
+ required: false,
19096
+ multiple: false,
19097
+ defaultValue: "4",
19098
+ options: [
19099
+ { value: "1", label: "1 week" },
19100
+ { value: "2", label: "2 weeks" },
19101
+ { value: "4", label: "4 weeks" }
19102
+ ],
19103
+ ui: { intent: "behavior" }
19104
+ },
19105
+ {
19106
+ id: "timezone",
19107
+ type: "text",
19108
+ label: "Timezone",
19109
+ description: "Leave blank to use the visitor timezone when the block loads",
19110
+ required: false,
19111
+ multiline: false,
19112
+ defaultValue: "",
19113
+ maxLength: 64,
19114
+ ui: { intent: "behavior" }
19115
+ },
19116
+ {
19117
+ id: "heading",
19118
+ type: "text",
19119
+ label: "Heading",
19120
+ required: false,
19121
+ multiline: false,
19122
+ defaultValue: "Weekly availability"
19123
+ },
19124
+ {
19125
+ id: "description",
19126
+ type: "richText",
19127
+ label: "Description",
19128
+ required: false
19129
+ },
19130
+ {
19131
+ id: "emptyMessage",
19132
+ type: "text",
19133
+ label: "Empty message",
19134
+ required: false,
19135
+ multiline: true,
19136
+ defaultValue: "No regular weekly openings are currently available.",
19137
+ maxLength: 180
19138
+ },
19139
+ {
19140
+ id: "ctaText",
19141
+ type: "text",
19142
+ label: "Enquiry button text",
19143
+ required: false,
19144
+ multiline: false,
19145
+ defaultValue: "Enquire about this slot",
19146
+ maxLength: 60
19147
+ },
19148
+ {
19149
+ id: "ctaUrl",
19150
+ type: "url",
19151
+ label: "Enquiry URL",
19152
+ required: false,
19153
+ ui: { intent: "behavior" }
19154
+ },
19155
+ sectionStylesField({
19156
+ id: "_sectionStyles",
19157
+ label: "Section styles"
19158
+ })
19159
+ ],
19160
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
19161
+ behaviours: {
19162
+ supportsThemeSwitching: true,
19163
+ inlineEditing: false,
19164
+ animation: false,
19165
+ paletteHidden: false
19166
+ },
19167
+ category: "interactive",
19168
+ tags: ["booking", "appointment", "calendar", "weekly", "availability"],
19169
+ icon: "CalendarDays",
19170
+ layout: [
19171
+ styledSection({
19172
+ children: sectionContainer([
19173
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
19174
+ richText({}, bind("content.description"), when("content.description")),
19175
+ el(
19176
+ "weekly-slot-availability",
19177
+ withApiBindings({
19178
+ serviceId: { $bind: { from: "content.serviceId" } },
19179
+ resourceId: { $bind: { from: "content.resourceId", fallback: null } },
19180
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
19181
+ timezone: { $bind: { from: "content.timezone", fallback: null } },
19182
+ availability: { $bind: { from: "data.availability", fallback: null } },
19183
+ emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
19184
+ ctaText: { $bind: { from: "content.ctaText", fallback: null } },
19185
+ ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
19186
+ })
19187
+ )
19188
+ ], {
19189
+ gap: "lg"
19190
+ }),
19191
+ baseClass: "",
19192
+ spacing: "spacious"
19193
+ })
19194
+ ]
19195
+ });
19196
+ var weeklySlotAvailabilityOptionSchema = z32.object({
19197
+ id: z32.string(),
19198
+ resourceId: z32.string(),
19199
+ weekday: z32.number(),
19200
+ weekdayLabel: z32.string(),
19201
+ startTime: z32.string(),
19202
+ endTime: z32.string(),
19203
+ nextDate: z32.string(),
19204
+ availableWeeks: z32.number()
19205
+ });
19206
+ var weeklySlotAvailabilityDataSchema = z32.object({
19207
+ slots: z32.array(weeklySlotAvailabilityOptionSchema),
19208
+ horizonWeeks: z32.number(),
19209
+ timezone: z32.string(),
19210
+ startDate: z32.string(),
19211
+ endDate: z32.string()
19212
+ });
19213
+ var weeklySlotAvailabilityBlockDefinition = {
19214
+ manifest: weeklySlotAvailabilityManifest,
19215
+ dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
19216
+ dataLoaders: {
19217
+ availability: {
19218
+ endpoint: "getPublicWeeklySlotAvailability",
19219
+ params: {
19220
+ siteId: { $bind: { from: "$root.siteId" } },
19221
+ serviceId: { $bind: { from: "content.serviceId" } },
19222
+ resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
19223
+ horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
19224
+ timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
19225
+ },
19226
+ mode: "server"
19227
+ }
19228
+ }
19229
+ };
19230
+
19049
19231
  // ../blocks/src/system/blocks/events/shared/schemas.ts
19050
- import { z as z36 } from "zod";
19232
+ import { z as z37 } from "zod";
19051
19233
 
19052
19234
  // ../blocks/src/lib/media.ts
19053
- import z32 from "zod";
19235
+ import z33 from "zod";
19054
19236
  var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
19055
19237
  "document",
19056
19238
  "spreadsheet",
19057
19239
  "archive",
19058
19240
  "audio"
19059
19241
  ];
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) => {
19242
+ var hotspotSchema2 = z33.object({
19243
+ x: z33.number().min(0).max(1),
19244
+ y: z33.number().min(0).max(1),
19245
+ radius: z33.number().optional()
19246
+ });
19247
+ var rotationSchema2 = z33.union([z33.literal(0), z33.literal(90), z33.literal(180), z33.literal(270)]);
19248
+ var rectSchema2 = z33.tuple([z33.number(), z33.number(), z33.number(), z33.number()]);
19249
+ var aspectCropSchema2 = z33.object({
19250
+ aspect: z33.preprocess((value) => value == null ? void 0 : value, z33.string().optional()),
19251
+ rect: z33.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
19252
+ hotspot: z33.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
19253
+ rotation: z33.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
19254
+ });
19255
+ var transformSchema2 = z33.object({
19256
+ aspectCrops: z33.preprocess((value) => {
19075
19257
  if (!value || typeof value !== "object" || Array.isArray(value)) {
19076
19258
  return void 0;
19077
19259
  }
19078
19260
  return value;
19079
- }, z32.record(z32.string(), aspectCropSchema2.catch({}))).optional(),
19261
+ }, z33.record(z33.string(), aspectCropSchema2.catch({}))).optional(),
19080
19262
  rect: rectSchema2.optional(),
19081
19263
  hotspot: hotspotSchema2.optional(),
19082
19264
  rotation: rotationSchema2.optional()
19083
19265
  });
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)
19266
+ var mediaPosterSchema = z33.discriminatedUnion("tag", [
19267
+ z33.object({
19268
+ tag: z33.literal("storage"),
19269
+ assetId: z33.string().optional(),
19270
+ storageBucket: z33.string().min(1),
19271
+ storagePath: z33.string().min(1)
19090
19272
  }),
19091
- z32.object({
19092
- tag: z32.literal("external-src"),
19093
- assetId: z32.string().optional(),
19094
- src: z32.string().url()
19273
+ z33.object({
19274
+ tag: z33.literal("external-src"),
19275
+ assetId: z33.string().optional(),
19276
+ src: z33.string().url()
19095
19277
  })
19096
19278
  ]);
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(),
19279
+ var mediaBaseSchema = z33.object({
19280
+ purpose: z33.string().optional(),
19281
+ placeholder: z33.boolean().default(true).optional(),
19282
+ assetId: z33.string().optional(),
19283
+ identifier: z33.string().optional(),
19284
+ src: z33.string().optional(),
19285
+ alt: z33.string().optional(),
19286
+ filename: z33.string().optional(),
19287
+ mimeType: z33.string().optional(),
19288
+ width: z33.number().optional(),
19289
+ height: z33.number().optional(),
19290
+ storageBucket: z33.string().optional(),
19291
+ storagePath: z33.string().optional(),
19110
19292
  poster: mediaPosterSchema.optional(),
19111
19293
  transform: transformSchema2.optional()
19112
19294
  });
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", [
19295
+ var imageMediaSchema = mediaBaseSchema.extend({ type: z33.literal("image") });
19296
+ var videoMediaSchema = mediaBaseSchema.extend({ type: z33.literal("video") });
19297
+ var audioMediaSchema = mediaBaseSchema.extend({ type: z33.literal("audio") });
19298
+ var documentMediaSchema = mediaBaseSchema.extend({ type: z33.literal("document") });
19299
+ var spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z33.literal("spreadsheet") });
19300
+ var archiveMediaSchema = mediaBaseSchema.extend({ type: z33.literal("archive") });
19301
+ var mediaSchema2 = z33.discriminatedUnion("type", [
19120
19302
  imageMediaSchema,
19121
19303
  videoMediaSchema,
19122
19304
  audioMediaSchema,
@@ -19126,31 +19308,31 @@ var mediaSchema2 = z32.discriminatedUnion("type", [
19126
19308
  ]);
19127
19309
 
19128
19310
  // ../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()
19311
+ import { z as z34 } from "zod";
19312
+ var TipTapMarkSchema = z34.object({
19313
+ type: z34.string(),
19314
+ attrs: z34.record(z34.string(), z34.unknown()).optional()
19315
+ });
19316
+ var TipTapNodeSchema = z34.lazy(
19317
+ () => z34.object({
19318
+ type: z34.string(),
19319
+ content: z34.array(TipTapNodeSchema).optional(),
19320
+ text: z34.string().optional(),
19321
+ attrs: z34.record(z34.string(), z34.unknown()).optional(),
19322
+ marks: z34.array(TipTapMarkSchema).optional()
19141
19323
  })
19142
19324
  );
19143
- var RichTextValueSchema = z33.union([
19325
+ var RichTextValueSchema = z34.union([
19144
19326
  // Canonical: TipTap document directly
19145
19327
  TipTapNodeSchema,
19146
19328
  // Legacy (read-tolerance only): wrapped in { doc: {...} }
19147
- z33.object({
19329
+ z34.object({
19148
19330
  doc: TipTapNodeSchema
19149
19331
  })
19150
19332
  ]);
19151
- var RichTextDocSchema = z33.object({
19152
- type: z33.literal("doc"),
19153
- content: z33.array(TipTapNodeSchema)
19333
+ var RichTextDocSchema = z34.object({
19334
+ type: z34.literal("doc"),
19335
+ content: z34.array(TipTapNodeSchema)
19154
19336
  });
19155
19337
  function createHardBreakNode() {
19156
19338
  return { type: "hardBreak" };
@@ -19201,344 +19383,344 @@ function createRichTextDocFromMarkdown(markdown) {
19201
19383
  }
19202
19384
 
19203
19385
  // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
19204
- import { z as z34 } from "zod";
19205
- var bookingDepositRefundPolicySchema = z34.enum([
19386
+ import { z as z35 } from "zod";
19387
+ var bookingDepositRefundPolicySchema = z35.enum([
19206
19388
  "refundable",
19207
19389
  "non_refundable"
19208
19390
  ]);
19209
- var bookingInstalmentPlanSchema = z34.union([
19210
- z34.object({
19211
- kind: z34.literal("deposit_plus_one_remainder"),
19212
- depositAmountCents: z34.number().int().min(0),
19391
+ var bookingInstalmentPlanSchema = z35.union([
19392
+ z35.object({
19393
+ kind: z35.literal("deposit_plus_one_remainder"),
19394
+ depositAmountCents: z35.number().int().min(0),
19213
19395
  depositRefundability: bookingDepositRefundPolicySchema,
19214
- remainderDueCount: z34.number().int().positive(),
19215
- intervalUnit: z34.enum(["day", "week", "month"])
19396
+ remainderDueCount: z35.number().int().positive(),
19397
+ intervalUnit: z35.enum(["day", "week", "month"])
19216
19398
  }),
19217
- z34.object({
19218
- kind: z34.literal("deposit_plus_scheduled_instalments"),
19219
- depositAmountCents: z34.number().int().min(0),
19399
+ z35.object({
19400
+ kind: z35.literal("deposit_plus_scheduled_instalments"),
19401
+ depositAmountCents: z35.number().int().min(0),
19220
19402
  depositRefundability: bookingDepositRefundPolicySchema,
19221
- instalmentCount: z34.number().int().positive(),
19222
- intervalCount: z34.number().int().positive(),
19223
- intervalUnit: z34.enum(["day", "week", "month"])
19403
+ instalmentCount: z35.number().int().positive(),
19404
+ intervalCount: z35.number().int().positive(),
19405
+ intervalUnit: z35.enum(["day", "week", "month"])
19224
19406
  }),
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"])
19407
+ z35.object({
19408
+ kind: z35.literal("equal_scheduled_instalments"),
19409
+ instalmentCount: z35.number().int().positive(),
19410
+ intervalCount: z35.number().int().positive(),
19411
+ intervalUnit: z35.enum(["day", "week", "month"])
19230
19412
  })
19231
19413
  ]);
19232
- var bookingFlexibleBalanceDueDateRuleSchema = z34.union([
19233
- z34.object({
19234
- kind: z34.literal("relative_to_start_date"),
19235
- daysBeforeStart: z34.number().int().positive()
19414
+ var bookingFlexibleBalanceDueDateRuleSchema = z35.union([
19415
+ z35.object({
19416
+ kind: z35.literal("relative_to_start_date"),
19417
+ daysBeforeStart: z35.number().int().positive()
19236
19418
  }),
19237
- z34.object({
19238
- kind: z34.literal("fixed_calendar_date"),
19239
- dueAt: z34.string().datetime()
19419
+ z35.object({
19420
+ kind: z35.literal("fixed_calendar_date"),
19421
+ dueAt: z35.string().datetime()
19240
19422
  })
19241
19423
  ]);
19242
- var bookingFlexibleBalanceConfigSchema = z34.object({
19243
- upfrontAmountCents: z34.number().int().min(0),
19424
+ var bookingFlexibleBalanceConfigSchema = z35.object({
19425
+ upfrontAmountCents: z35.number().int().min(0),
19244
19426
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
19245
19427
  depositRefundability: bookingDepositRefundPolicySchema
19246
19428
  });
19247
- var blockBookingPaymentCollectionOptionSchema = z34.union([
19248
- z34.object({
19249
- kind: z34.literal("upfront")
19429
+ var blockBookingPaymentCollectionOptionSchema = z35.union([
19430
+ z35.object({
19431
+ kind: z35.literal("upfront")
19250
19432
  }),
19251
- z34.object({
19252
- kind: z34.literal("deferred_manual")
19433
+ z35.object({
19434
+ kind: z35.literal("deferred_manual")
19253
19435
  }),
19254
- z34.object({
19255
- kind: z34.literal("instalment_plan"),
19436
+ z35.object({
19437
+ kind: z35.literal("instalment_plan"),
19256
19438
  plan: bookingInstalmentPlanSchema
19257
19439
  }),
19258
- z34.object({
19259
- kind: z34.literal("flexible_balance"),
19440
+ z35.object({
19441
+ kind: z35.literal("flexible_balance"),
19260
19442
  config: bookingFlexibleBalanceConfigSchema
19261
19443
  })
19262
19444
  ]);
19263
- var blockBookingPaymentTermsSchema = z34.object({
19264
- allowedOptions: z34.array(blockBookingPaymentCollectionOptionSchema).min(1)
19445
+ var blockBookingPaymentTermsSchema = z35.object({
19446
+ allowedOptions: z35.array(blockBookingPaymentCollectionOptionSchema).min(1)
19265
19447
  });
19266
19448
 
19267
19449
  // ../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(),
19450
+ import { z as z36 } from "zod";
19451
+ var courseVenueSchema = z36.object({
19452
+ id: z36.string(),
19453
+ name: z36.string(),
19454
+ address: z36.string().nullable()
19455
+ });
19456
+ var courseSessionSchema = z36.object({
19457
+ id: z36.string(),
19458
+ startsAt: z36.string(),
19459
+ endsAt: z36.string(),
19460
+ timeZone: z36.string(),
19461
+ capacityOverride: z36.number().nullable().optional(),
19462
+ overrides: z36.record(z36.string(), z36.unknown()).nullable().optional()
19463
+ });
19464
+ var courseTeamMemberSummarySchema = z36.object({
19465
+ id: z36.string(),
19466
+ name: z36.string(),
19467
+ roleLabel: z36.string().nullable(),
19468
+ summary: z36.string().nullable(),
19469
+ profilePath: z36.string().nullable()
19470
+ });
19471
+ var coursePricingOptionSchema = z36.object({
19472
+ id: z36.string(),
19473
+ name: z36.string(),
19474
+ description: z36.string().nullable(),
19475
+ priceAmount: z36.number(),
19476
+ isActive: z36.boolean(),
19477
+ sortOrder: z36.number(),
19478
+ capacityLimit: z36.number().nullable(),
19479
+ saleStartsAt: z36.string().nullable(),
19480
+ saleEndsAt: z36.string().nullable(),
19481
+ attendanceScope: z36.enum(["in_person", "online", "both"]).nullable().optional()
19482
+ });
19483
+ var coursePricingSchema = z36.object({
19484
+ bookingRequirement: z36.enum(["none", "required"]),
19485
+ pricingStrategy: z36.enum(["free", "single", "tiered", "sliding_scale"]),
19486
+ currency: z36.string(),
19487
+ singlePriceAmount: z36.number().nullable(),
19488
+ slidingMinAmount: z36.number().nullable().optional(),
19489
+ slidingMaxAmount: z36.number().nullable().optional(),
19490
+ slidingSuggestedAmount: z36.number().nullable().optional(),
19309
19491
  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(),
19492
+ options: z36.array(coursePricingOptionSchema)
19493
+ });
19494
+ var publicCourseSchema = z36.object({
19495
+ id: z36.string(),
19496
+ title: z36.string(),
19497
+ slug: z36.string(),
19498
+ description: z36.unknown().nullable(),
19499
+ teamMembers: z36.array(courseTeamMemberSummarySchema).optional(),
19500
+ enrollmentOpen: z36.boolean(),
19319
19501
  pricing: coursePricingSchema.optional(),
19320
- priceCents: z35.number().nullable(),
19321
- currency: z35.string(),
19502
+ priceCents: z36.number().nullable(),
19503
+ currency: z36.string(),
19322
19504
  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),
19505
+ enrollmentCapacity: z36.number().nullable(),
19506
+ acceptsMemberships: z36.boolean(),
19507
+ status: z36.enum(["active", "draft", "cancelled"]),
19508
+ sessionsCount: z36.number(),
19509
+ enrolledCount: z36.number(),
19510
+ availableSpots: z36.number().nullable(),
19511
+ sessions: z36.array(courseSessionSchema),
19330
19512
  venue: courseVenueSchema.nullable(),
19331
- contentEntryId: z35.string().nullable()
19513
+ contentEntryId: z36.string().nullable()
19332
19514
  });
19333
- var publicCoursesArraySchema = z35.array(publicCourseSchema);
19515
+ var publicCoursesArraySchema = z36.array(publicCourseSchema);
19334
19516
 
19335
19517
  // ../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"),
19518
+ var eventPresetSchema = z37.enum(["event", "class", "workshop", "retreat", "performance"]);
19519
+ var eventScheduleScopeSchema = z37.enum(["recurring", "oneOff"]);
19520
+ var eventDestinationModeSchema = z37.enum(["cms-managed", "system-managed"]);
19521
+ var publicEventDestinationSchema = z37.discriminatedUnion("kind", [
19522
+ z37.object({
19523
+ kind: z37.literal("native"),
19342
19524
  mode: eventDestinationModeSchema,
19343
- path: z36.string()
19525
+ path: z37.string()
19344
19526
  }),
19345
- z36.object({
19346
- kind: z36.literal("external"),
19347
- url: z36.string(),
19348
- label: z36.string()
19527
+ z37.object({
19528
+ kind: z37.literal("external"),
19529
+ url: z37.string(),
19530
+ label: z37.string()
19349
19531
  })
19350
19532
  ]);
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()
19533
+ var eventVenueSchema = z37.object({
19534
+ id: z37.string(),
19535
+ name: z37.string(),
19536
+ address: z37.string().nullable(),
19537
+ location: z37.object({
19538
+ lat: z37.number(),
19539
+ lng: z37.number()
19358
19540
  }).nullable()
19359
19541
  });
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() })
19542
+ var eventCategorySchema = z37.object({
19543
+ id: z37.string(),
19544
+ name: z37.string(),
19545
+ color: z37.string().nullable()
19546
+ });
19547
+ var pricingTypeSchema = z37.enum(["free", "paid", "external"]);
19548
+ var accessRestrictionSchema = z37.enum(["none", "category"]);
19549
+ var eventPricingModeSchema = z37.enum(["single", "ticket_types"]);
19550
+ var publicCoursePriceDisplaySchema = z37.discriminatedUnion("kind", [
19551
+ z37.object({ kind: z37.literal("free"), currency: z37.string() }),
19552
+ z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() }),
19553
+ z37.object({ kind: z37.literal("from"), amount: z37.number(), currency: z37.string() }),
19554
+ z37.object({ kind: z37.literal("unavailable"), currency: z37.string() })
19373
19555
  ]);
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()
19556
+ var publicEventPriceDisplaySchema = z37.discriminatedUnion("kind", [
19557
+ z37.object({ kind: z37.literal("free"), currency: z37.string() }),
19558
+ z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() }),
19559
+ z37.object({ kind: z37.literal("from"), amount: z37.number(), currency: z37.string() }),
19560
+ z37.object({ kind: z37.literal("range"), minAmount: z37.number(), maxAmount: z37.number(), currency: z37.string() }),
19561
+ z37.object({
19562
+ kind: z37.literal("mixed"),
19563
+ paidFromAmount: z37.number(),
19564
+ paidToAmount: z37.number(),
19565
+ currency: z37.string()
19384
19566
  }),
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 })
19567
+ z37.object({ kind: z37.literal("unavailable"), currency: z37.string() }),
19568
+ z37.object({ kind: z37.literal("external"), label: z37.string() }),
19569
+ z37.object({ kind: z37.literal("course"), display: publicCoursePriceDisplaySchema })
19388
19570
  ]);
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()
19571
+ var publicEventTicketTypePriceDisplaySchema = z37.union([
19572
+ z37.object({ kind: z37.literal("free"), currency: z37.string() }),
19573
+ z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() }),
19574
+ z37.object({ kind: z37.literal("from"), amount: z37.number(), currency: z37.string() }),
19575
+ z37.object({ kind: z37.literal("range"), minAmount: z37.number(), maxAmount: z37.number(), currency: z37.string() }),
19576
+ z37.object({
19577
+ kind: z37.literal("mixed"),
19578
+ paidFromAmount: z37.number(),
19579
+ paidToAmount: z37.number(),
19580
+ currency: z37.string()
19399
19581
  }),
19400
- z36.object({ kind: z36.literal("unavailable"), currency: z36.string() })
19582
+ z37.object({ kind: z37.literal("unavailable"), currency: z37.string() })
19401
19583
  ]);
19402
- var publicEventAttendanceModeSchema = z36.enum(["in_person", "online"]);
19403
- var publicEventAttendanceModeAvailabilitySchema = z36.object({
19584
+ var publicEventAttendanceModeSchema = z37.enum(["in_person", "online"]);
19585
+ var publicEventAttendanceModeAvailabilitySchema = z37.object({
19404
19586
  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()
19587
+ capacity: z37.number().nullable(),
19588
+ registeredCount: z37.number(),
19589
+ availableSpots: z37.number().nullable(),
19590
+ waitlistEnabled: z37.boolean()
19591
+ });
19592
+ var publicEventTicketTypeAvailabilitySchema = z37.union([
19593
+ z37.object({
19594
+ kind: z37.literal("available"),
19595
+ remainingCapacity: z37.number().nullable()
19414
19596
  }),
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()
19597
+ z37.object({
19598
+ kind: z37.literal("unavailable"),
19599
+ reason: z37.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
19600
+ remainingCapacity: z37.number().nullable()
19419
19601
  })
19420
19602
  ]);
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(),
19603
+ var publicEventTicketTypeSchema = z37.object({
19604
+ id: z37.string(),
19605
+ siteId: z37.string(),
19606
+ eventSeriesId: z37.string(),
19607
+ name: z37.string(),
19608
+ description: z37.string().nullable(),
19609
+ priceAmount: z37.number(),
19610
+ isActive: z37.boolean(),
19611
+ sortOrder: z37.number(),
19612
+ capacityMode: z37.enum(["limited", "unlimited"]),
19613
+ capacityLimit: z37.number().nullable(),
19614
+ attendanceScope: z37.enum(["in_person", "online", "both"]).optional(),
19615
+ saleStartsAt: z37.string().nullable(),
19616
+ saleEndsAt: z37.string().nullable(),
19435
19617
  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() })
19618
+ createdAt: z37.string(),
19619
+ updatedAt: z37.string()
19620
+ });
19621
+ var publicEventPricingSchema = z37.discriminatedUnion("kind", [
19622
+ z37.object({
19623
+ kind: z37.literal("drop_in"),
19624
+ currency: z37.string(),
19625
+ display: z37.object({ kind: z37.literal("free"), currency: z37.string() })
19444
19626
  }),
19445
- z36.object({
19446
- kind: z36.literal("free_registration"),
19447
- currency: z36.string(),
19448
- display: z36.object({ kind: z36.literal("free"), currency: z36.string() })
19627
+ z37.object({
19628
+ kind: z37.literal("free_registration"),
19629
+ currency: z37.string(),
19630
+ display: z37.object({ kind: z37.literal("free"), currency: z37.string() })
19449
19631
  }),
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() })
19632
+ z37.object({
19633
+ kind: z37.literal("single_paid"),
19634
+ amount: z37.number(),
19635
+ currency: z37.string(),
19636
+ display: z37.object({ kind: z37.literal("exact"), amount: z37.number(), currency: z37.string() })
19455
19637
  }),
19456
- z36.object({
19457
- kind: z36.literal("ticket_types"),
19458
- currency: z36.string(),
19459
- ticketTypes: z36.array(publicEventTicketTypeSchema),
19638
+ z37.object({
19639
+ kind: z37.literal("ticket_types"),
19640
+ currency: z37.string(),
19641
+ ticketTypes: z37.array(publicEventTicketTypeSchema),
19460
19642
  display: publicEventTicketTypePriceDisplaySchema
19461
19643
  }),
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()
19644
+ z37.object({
19645
+ kind: z37.literal("sliding_scale"),
19646
+ minAmount: z37.number(),
19647
+ maxAmount: z37.number(),
19648
+ suggestedAmount: z37.number().nullable(),
19649
+ currency: z37.string(),
19650
+ display: z37.object({
19651
+ kind: z37.literal("range"),
19652
+ minAmount: z37.number(),
19653
+ maxAmount: z37.number(),
19654
+ currency: z37.string()
19473
19655
  })
19474
19656
  }),
19475
- z36.object({
19476
- kind: z36.literal("course"),
19477
- display: z36.object({ kind: z36.literal("course"), display: publicCoursePriceDisplaySchema })
19657
+ z37.object({
19658
+ kind: z37.literal("course"),
19659
+ display: z37.object({ kind: z37.literal("course"), display: publicCoursePriceDisplaySchema })
19478
19660
  }),
19479
- z36.object({
19480
- kind: z36.literal("external"),
19481
- display: z36.object({ kind: z36.literal("external"), label: z36.string() })
19661
+ z37.object({
19662
+ kind: z37.literal("external"),
19663
+ display: z37.object({ kind: z37.literal("external"), label: z37.string() })
19482
19664
  })
19483
19665
  ]);
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()
19666
+ var publicTeamMemberSummarySchema = z37.object({
19667
+ id: z37.string(),
19668
+ name: z37.string(),
19669
+ roleLabel: z37.string().nullable(),
19670
+ summary: z37.string().nullable(),
19671
+ profilePath: z37.string().nullable()
19490
19672
  });
19491
- var publicEventSchema = z36.object({
19492
- kind: z36.enum(["event", "course_session"]).optional(),
19673
+ var publicEventSchema = z37.object({
19674
+ kind: z37.enum(["event", "course_session"]).optional(),
19493
19675
  eventPreset: eventPresetSchema.optional(),
19494
19676
  eventDestinationMode: eventDestinationModeSchema.optional(),
19495
19677
  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({
19678
+ id: z37.string(),
19679
+ occurrenceId: z37.string(),
19680
+ seriesId: z37.string(),
19681
+ title: z37.string(),
19682
+ description: z37.string().nullable(),
19683
+ content: z37.object({
19502
19684
  body: RichTextDocSchema.nullable().optional()
19503
19685
  }).optional(),
19504
- presentation: z36.object({
19505
- cardTitleOverride: z36.string().nullable().optional(),
19506
- summary: z36.string().nullable().optional(),
19686
+ presentation: z37.object({
19687
+ cardTitleOverride: z37.string().nullable().optional(),
19688
+ summary: z37.string().nullable().optional(),
19507
19689
  image: mediaSchema2.nullable().optional()
19508
19690
  }).optional(),
19509
- slug: z36.string(),
19510
- path: z36.string().nullable(),
19691
+ slug: z37.string(),
19692
+ path: z37.string().nullable(),
19511
19693
  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(),
19694
+ requiresRegistration: z37.boolean(),
19695
+ deliveryMode: z37.enum(["in_person", "online", "hybrid"]),
19696
+ attendanceModes: z37.array(publicEventAttendanceModeAvailabilitySchema),
19697
+ startsAt: z37.string(),
19698
+ endsAt: z37.string(),
19699
+ capacity: z37.number().nullable(),
19700
+ registeredCount: z37.number(),
19701
+ availableSpots: z37.number().nullable(),
19702
+ waitlistEnabled: z37.boolean(),
19521
19703
  venue: eventVenueSchema.nullable(),
19522
19704
  eventCategory: eventCategorySchema.nullable(),
19523
- teamMembers: z36.array(publicTeamMemberSummarySchema).optional(),
19524
- status: z36.enum(["active", "draft", "archived"]).optional(),
19525
- timeZone: z36.string(),
19705
+ teamMembers: z37.array(publicTeamMemberSummarySchema).optional(),
19706
+ status: z37.enum(["active", "draft", "archived"]).optional(),
19707
+ timeZone: z37.string(),
19526
19708
  pricing: publicEventPricingSchema,
19527
19709
  paymentTerms: blockBookingPaymentTermsSchema,
19528
19710
  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(),
19711
+ allowedCategoryIds: z37.array(z37.string()),
19712
+ requireGuestDetails: z37.boolean().optional(),
19713
+ acceptsPasses: z37.boolean().optional(),
19714
+ acceptsMemberships: z37.boolean().optional(),
19715
+ course: z37.object({
19716
+ id: z37.string(),
19535
19717
  pricing: coursePricingSchema.optional(),
19536
- priceCents: z36.number().nullable(),
19537
- currency: z36.string(),
19538
- enrollmentOpen: z36.boolean()
19718
+ priceCents: z37.number().nullable(),
19719
+ currency: z37.string(),
19720
+ enrollmentOpen: z37.boolean()
19539
19721
  }).nullable().optional()
19540
19722
  });
19541
- var publicEventsArraySchema = z36.array(publicEventSchema);
19723
+ var publicEventsArraySchema = z37.array(publicEventSchema);
19542
19724
 
19543
19725
  // ../blocks/src/system/blocks/events/shared/fields.ts
19544
19726
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -19741,52 +19923,80 @@ function normalizeEventStaffMemberId(value) {
19741
19923
  return trimmed ? trimmed : null;
19742
19924
  }
19743
19925
 
19926
+ // ../blocks/src/system/blocks/events/shared/layout.ts
19927
+ var recoverEmptyHeadingWhenActive = {
19928
+ kind: "recover-empty-when-active",
19929
+ placeholder: "Add heading"
19930
+ };
19931
+ var recoverEmptyDescriptionWhenActive = {
19932
+ kind: "recover-empty-when-active",
19933
+ placeholder: "Add description"
19934
+ };
19935
+ function eventSectionHeaderLayoutNodes() {
19936
+ return [
19937
+ text(
19938
+ { as: "h2" },
19939
+ bind("content.heading"),
19940
+ when("content.heading", {
19941
+ authoringPresence: recoverEmptyHeadingWhenActive
19942
+ })
19943
+ ),
19944
+ richText(
19945
+ { className: "rb-prose rb-max-w-none" },
19946
+ bind("content.description"),
19947
+ when("content.description", {
19948
+ authoringPresence: recoverEmptyDescriptionWhenActive
19949
+ })
19950
+ )
19951
+ ];
19952
+ }
19953
+
19744
19954
  // ../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())
19955
+ import { z as z38 } from "zod";
19956
+ var publicPassProductSchema = z38.object({
19957
+ id: z38.string(),
19958
+ productUseCase: z38.enum(["event_pass", "appointment_package"]).default("event_pass"),
19959
+ name: z38.string(),
19960
+ description: z38.string().nullable(),
19961
+ price: z38.number(),
19962
+ currency: z38.string(),
19963
+ creditsTotal: z38.number(),
19964
+ pricePerCredit: z38.number(),
19965
+ validDays: z38.number().nullable(),
19966
+ eligibleCategoryIds: z38.array(z38.string()),
19967
+ eligibleCategoryNames: z38.array(z38.string())
19968
+ });
19969
+ var publicPassProductCollectionSchema = z38.object({
19970
+ passes: z38.array(publicPassProductSchema)
19971
+ });
19972
+ var publicMembershipProductSchema = z38.object({
19973
+ id: z38.string(),
19974
+ name: z38.string(),
19975
+ description: z38.string().nullable(),
19976
+ price: z38.number(),
19977
+ currency: z38.string(),
19978
+ billingInterval: z38.enum(["month", "year"]),
19979
+ eligibleCategoryIds: z38.array(z38.string()),
19980
+ eligibleCategoryNames: z38.array(z38.string())
19771
19981
  });
19772
- var publicMembershipProductCollectionSchema = z37.object({
19773
- memberships: z37.array(publicMembershipProductSchema)
19982
+ var publicMembershipProductCollectionSchema = z38.object({
19983
+ memberships: z38.array(publicMembershipProductSchema)
19774
19984
  });
19775
19985
 
19776
19986
  // ../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()
19987
+ import { z as z39 } from "zod";
19988
+ var occurrenceContextSchema = z39.object({
19989
+ id: z39.string(),
19990
+ seriesId: z39.string(),
19991
+ startsAt: z39.string(),
19992
+ endsAt: z39.string(),
19993
+ timeZone: z39.string(),
19994
+ capacityOverride: z39.number().nullable().optional(),
19995
+ overrides: z39.record(z39.string(), z39.unknown()).nullable().optional()
19786
19996
  }).nullable();
19787
19997
 
19788
19998
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
19789
- import { z as z40 } from "zod";
19999
+ import { z as z41 } from "zod";
19790
20000
 
19791
20001
  // ../blocks/src/system/constants/events.ts
19792
20002
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -19973,17 +20183,17 @@ function readAmount(value) {
19973
20183
  }
19974
20184
 
19975
20185
  // ../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"]);
20186
+ import { z as z40 } from "zod";
20187
+ var previewStageSchema = z40.enum(["preview", "published"]);
20188
+ var registrationButtonVariantSchema = z40.enum(["primary", "secondary", "outline"]);
20189
+ var eventButtonVariantSchema = z40.enum(["primary", "secondary", "outline", "link"]);
20190
+ var eventLayoutSchema = z40.enum(eventCalendarListLayoutValues);
20191
+ var eventCalendarDisplayModeSchema = z40.enum(eventCalendarDisplayModeValues);
20192
+ var eventCalendarDefaultViewSchema = z40.enum(eventCalendarDefaultViewValues);
20193
+ var columnOptionSchema = z40.enum(["2", "3", "4"]);
20194
+ var weekStartSchema = z40.enum(["sunday", "monday"]);
20195
+ var filterAutoShowSchema = z40.enum(["auto", "always", "never"]);
20196
+ var calendarTabViewsSchema = z40.enum(["both", "month", "week"]);
19987
20197
 
19988
20198
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
19989
20199
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -20043,72 +20253,72 @@ function toRegistrationEvents(events) {
20043
20253
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
20044
20254
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
20045
20255
  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()
20256
+ var contentEntrySchema = z41.object({
20257
+ id: z41.string(),
20258
+ slug: z41.string(),
20259
+ contentTypeSlug: z41.string()
20050
20260
  });
20051
- var eventRegistrationPublicEventSchema = z40.preprocess(
20261
+ var eventRegistrationPublicEventSchema = z41.preprocess(
20052
20262
  normalizeEventRegistrationEventInput,
20053
20263
  publicEventSchema
20054
20264
  );
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(),
20265
+ var eventRegistrationSourceSchema = z41.object({
20266
+ siteId: z41.string().optional(),
20267
+ apiBaseUrl: z41.string().optional(),
20268
+ portalToken: z41.string().nullable().optional(),
20269
+ previewToken: z41.string().nullable().optional(),
20060
20270
  occurrenceContext: occurrenceContextSchema.optional(),
20061
20271
  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(),
20272
+ events: z41.array(eventRegistrationPublicEventSchema).nullable().optional(),
20273
+ className: z41.string().nullable().optional(),
20274
+ buttonText: z41.string().nullable().optional(),
20275
+ maxTickets: z41.string().nullable().optional(),
20276
+ showVenue: z41.boolean().optional(),
20277
+ showCapacity: z41.boolean().optional(),
20278
+ successMessage: z41.string().optional(),
20279
+ waitlistMessage: z41.string().optional(),
20070
20280
  buttonVariant: registrationButtonVariantSchema.optional(),
20071
- overlayEnabled: z40.boolean().optional(),
20072
- spamProtectionEnabled: z40.boolean().optional(),
20281
+ overlayEnabled: z41.boolean().optional(),
20282
+ spamProtectionEnabled: z41.boolean().optional(),
20073
20283
  stage: previewStageSchema.optional(),
20074
- supportEmail: z40.string().optional(),
20284
+ supportEmail: z41.string().optional(),
20075
20285
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
20076
20286
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
20077
20287
  });
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()
20288
+ var eventRegistrationDisplaySchema = z41.object({
20289
+ kind: z41.literal("event-registration"),
20290
+ state: z41.literal("generic-shell"),
20291
+ className: z41.string().nullable(),
20292
+ titleText: z41.string(),
20293
+ bodyText: z41.string(),
20294
+ stepLabels: z41.array(z41.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
20295
+ summaryButtonText: z41.string()
20086
20296
  });
20087
- var eventRegistrationHydrationSchema = z40.object({
20297
+ var eventRegistrationHydrationSchema = z41.object({
20088
20298
  occurrenceContext: occurrenceContextSchema.optional(),
20089
20299
  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(),
20300
+ events: z41.array(eventRegistrationPublicEventSchema).nullable().optional(),
20301
+ maxTickets: z41.string().optional(),
20302
+ showVenue: z41.boolean().optional(),
20303
+ showCapacity: z41.boolean().optional(),
20304
+ successMessage: z41.string().optional(),
20305
+ waitlistMessage: z41.string().optional(),
20096
20306
  buttonVariant: registrationButtonVariantSchema.optional(),
20097
- overlayEnabled: z40.boolean().optional(),
20098
- spamProtectionEnabled: z40.boolean().optional(),
20099
- supportEmail: z40.string().optional(),
20307
+ overlayEnabled: z41.boolean().optional(),
20308
+ spamProtectionEnabled: z41.boolean().optional(),
20309
+ supportEmail: z41.string().optional(),
20100
20310
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
20101
20311
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
20102
20312
  });
20103
- var eventRegistrationRenderSchema = z40.object({
20313
+ var eventRegistrationRenderSchema = z41.object({
20104
20314
  display: eventRegistrationDisplaySchema,
20105
20315
  hydration: eventRegistrationHydrationSchema
20106
20316
  });
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(),
20317
+ var eventRegistrationIslandMetaCodec = createZodCodec(z41.object({
20318
+ siteId: z41.string().optional(),
20319
+ apiBaseUrl: z41.string().optional(),
20320
+ portalToken: z41.string().nullable().optional(),
20321
+ previewToken: z41.string().nullable().optional(),
20112
20322
  stage: previewStageSchema.optional()
20113
20323
  }));
20114
20324
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -20459,73 +20669,73 @@ var eventRegistrationBlockDefinition = {
20459
20669
  };
20460
20670
 
20461
20671
  // ../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()
20672
+ import { z as z42 } from "zod";
20673
+ var contentEntrySchema2 = z42.object({
20674
+ id: z42.string(),
20675
+ slug: z42.string(),
20676
+ contentTypeSlug: z42.string()
20677
+ });
20678
+ var courseEntrySubrouteContextSchema = z42.union([
20679
+ z42.object({
20680
+ kind: z42.literal("course-run"),
20681
+ run: z42.object({
20682
+ courseId: z42.string(),
20683
+ seriesId: z42.string(),
20684
+ runSlug: z42.string(),
20685
+ runName: z42.string().nullable()
20476
20686
  })
20477
20687
  }),
20478
- z41.object({
20479
- kind: z41.literal("event-occurrence"),
20688
+ z42.object({
20689
+ kind: z42.literal("event-occurrence"),
20480
20690
  occurrence: occurrenceContextSchema
20481
20691
  })
20482
20692
  ]);
20483
- var courseRegistrationSourceSchema = z41.object({
20484
- siteId: z41.string().optional(),
20485
- apiBaseUrl: z41.string().optional(),
20486
- portalToken: z41.string().nullable().optional(),
20693
+ var courseRegistrationSourceSchema = z42.object({
20694
+ siteId: z42.string().optional(),
20695
+ apiBaseUrl: z42.string().optional(),
20696
+ portalToken: z42.string().nullable().optional(),
20487
20697
  contentEntry: contentEntrySchema2.nullable().optional(),
20488
20698
  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(),
20699
+ courses: z42.array(publicCourseSchema).nullable().optional(),
20700
+ className: z42.string().nullable().optional(),
20701
+ showSessions: z42.boolean().optional(),
20702
+ showPrice: z42.boolean().optional(),
20703
+ showCapacity: z42.boolean().optional(),
20704
+ showVenue: z42.boolean().optional(),
20705
+ successMessage: z42.string().optional(),
20706
+ waitlistMessage: z42.string().optional(),
20707
+ membershipMessage: z42.string().optional(),
20708
+ buttonText: z42.string().nullable().optional(),
20499
20709
  buttonVariant: registrationButtonVariantSchema.optional(),
20500
20710
  stage: previewStageSchema.optional()
20501
20711
  });
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()
20712
+ var courseRegistrationDisplaySchema = z42.object({
20713
+ kind: z42.literal("course-registration"),
20714
+ state: z42.literal("shell"),
20715
+ className: z42.string().nullable(),
20716
+ summaryButtonText: z42.string()
20507
20717
  });
20508
- var courseRegistrationHydrationSchema = z41.object({
20718
+ var courseRegistrationHydrationSchema = z42.object({
20509
20719
  contentEntry: contentEntrySchema2.nullable().optional(),
20510
20720
  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(),
20721
+ courses: z42.array(publicCourseSchema).nullable().optional(),
20722
+ showSessions: z42.boolean().optional(),
20723
+ showPrice: z42.boolean().optional(),
20724
+ showCapacity: z42.boolean().optional(),
20725
+ showVenue: z42.boolean().optional(),
20726
+ successMessage: z42.string().optional(),
20727
+ waitlistMessage: z42.string().optional(),
20728
+ membershipMessage: z42.string().optional(),
20519
20729
  buttonVariant: registrationButtonVariantSchema.optional()
20520
20730
  });
20521
- var courseRegistrationRenderSchema = z41.object({
20731
+ var courseRegistrationRenderSchema = z42.object({
20522
20732
  display: courseRegistrationDisplaySchema,
20523
20733
  hydration: courseRegistrationHydrationSchema
20524
20734
  });
20525
- var courseRegistrationIslandMetaCodec = createZodCodec(z41.object({
20526
- siteId: z41.string().optional(),
20527
- apiBaseUrl: z41.string().optional(),
20528
- portalToken: z41.string().nullable().optional(),
20735
+ var courseRegistrationIslandMetaCodec = createZodCodec(z42.object({
20736
+ siteId: z42.string().optional(),
20737
+ apiBaseUrl: z42.string().optional(),
20738
+ portalToken: z42.string().nullable().optional(),
20529
20739
  stage: previewStageSchema.optional()
20530
20740
  }));
20531
20741
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -20785,7 +20995,7 @@ var courseRegistrationBlockDefinition = {
20785
20995
  };
20786
20996
 
20787
20997
  // ../blocks/src/system/blocks/event-details.ts
20788
- import { z as z42 } from "zod";
20998
+ import { z as z43 } from "zod";
20789
20999
  var eventDetailsManifest = createBlockManifest({
20790
21000
  id: "block.event-details",
20791
21001
  version: "1.0.0",
@@ -20917,37 +21127,37 @@ var eventDetailsManifest = createBlockManifest({
20917
21127
  })
20918
21128
  ]
20919
21129
  });
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()
21130
+ var occurrenceContextSchema2 = z43.object({
21131
+ id: z43.string(),
21132
+ seriesId: z43.string(),
21133
+ startsAt: z43.string(),
21134
+ endsAt: z43.string(),
21135
+ timeZone: z43.string(),
21136
+ capacityOverride: z43.number().nullable().optional(),
21137
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
20928
21138
  }).nullable();
20929
- var eventAutoApplyDiscountPreviewBaseSchema = z42.object({
20930
- id: z42.string(),
20931
- publicLabel: z42.string(),
20932
- description: z42.string().nullable(),
20933
- minTicketsRequired: z42.number().nullable()
21139
+ var eventAutoApplyDiscountPreviewBaseSchema = z43.object({
21140
+ id: z43.string(),
21141
+ publicLabel: z43.string(),
21142
+ description: z43.string().nullable(),
21143
+ minTicketsRequired: z43.number().nullable()
20934
21144
  });
20935
- var eventAutoApplyDiscountPreviewSchema = z42.discriminatedUnion("discountType", [
21145
+ var eventAutoApplyDiscountPreviewSchema = z43.discriminatedUnion("discountType", [
20936
21146
  eventAutoApplyDiscountPreviewBaseSchema.extend({
20937
- discountType: z42.literal("percent"),
20938
- discountPercent: z42.number(),
20939
- discountAmountCents: z42.null()
21147
+ discountType: z43.literal("percent"),
21148
+ discountPercent: z43.number(),
21149
+ discountAmountCents: z43.null()
20940
21150
  }),
20941
21151
  eventAutoApplyDiscountPreviewBaseSchema.extend({
20942
- discountType: z42.literal("fixed"),
20943
- discountPercent: z42.null(),
20944
- discountAmountCents: z42.number()
21152
+ discountType: z43.literal("fixed"),
21153
+ discountPercent: z43.null(),
21154
+ discountAmountCents: z43.number()
20945
21155
  })
20946
21156
  ]);
20947
21157
  var eventDetailsBlockDefinition = {
20948
21158
  manifest: eventDetailsManifest,
20949
21159
  dataSchemas: {
20950
- eventDetailsData: z42.object({
21160
+ eventDetailsData: z43.object({
20951
21161
  events: publicEventsArraySchema,
20952
21162
  sitePasses: publicPassProductCollectionSchema,
20953
21163
  siteMemberships: publicMembershipProductCollectionSchema,
@@ -21202,18 +21412,7 @@ var eventSpotlightFields = [
21202
21412
  var eventSpotlightLayout = [
21203
21413
  styledSection({
21204
21414
  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
- ),
21415
+ ...eventSectionHeaderLayoutNodes(),
21217
21416
  // Event spotlight component
21218
21417
  el("event-spotlight", {
21219
21418
  events: { $bind: { from: "data.events" } },
@@ -21274,7 +21473,7 @@ var eventSpotlightBlockDefinition = {
21274
21473
  };
21275
21474
 
21276
21475
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
21277
- import { z as z44 } from "zod";
21476
+ import { z as z45 } from "zod";
21278
21477
 
21279
21478
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
21280
21479
  var COLUMN_CLASSES = {
@@ -21306,16 +21505,16 @@ function getCardOrientation(layout) {
21306
21505
  }
21307
21506
 
21308
21507
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
21309
- import { z as z43 } from "zod";
21508
+ import { z as z44 } from "zod";
21310
21509
  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)
21510
+ var eventPageSizeSchema = z44.union([
21511
+ z44.literal(3),
21512
+ z44.literal(6),
21513
+ z44.literal(10),
21514
+ z44.literal(12),
21515
+ z44.literal(20),
21516
+ z44.literal(24),
21517
+ z44.literal(30)
21319
21518
  ]);
21320
21519
  var eventPageSizeSet = new Set(eventPageSizeValues);
21321
21520
  function resolveEventPageSize(value, fallback = 12) {
@@ -21325,15 +21524,15 @@ function resolveEventPageSize(value, fallback = 12) {
21325
21524
  function resolveEventCalendarListPageSize(input) {
21326
21525
  return resolveEventPageSize(input.eventsPerPage);
21327
21526
  }
21328
- var eventListPaginationActionSchema = z43.discriminatedUnion("kind", [
21329
- z43.object({
21330
- kind: z43.literal("loadMore"),
21331
- label: z43.string()
21527
+ var eventListPaginationActionSchema = z44.discriminatedUnion("kind", [
21528
+ z44.object({
21529
+ kind: z44.literal("loadMore"),
21530
+ label: z44.string()
21332
21531
  }),
21333
- z43.object({
21334
- kind: z43.literal("seeAllLink"),
21335
- label: z43.string(),
21336
- href: z43.string()
21532
+ z44.object({
21533
+ kind: z44.literal("seeAllLink"),
21534
+ label: z44.string(),
21535
+ href: z44.string()
21337
21536
  })
21338
21537
  ]);
21339
21538
  function resolveEventListPaginationAction(input) {
@@ -21346,89 +21545,89 @@ function resolveEventListPaginationAction(input) {
21346
21545
  }
21347
21546
 
21348
21547
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
21349
- var legacyEventCardVariantSchema = z44.enum(["variant1", "variant2"]);
21350
- var eventCardVariantInputSchema = z44.union([
21548
+ var legacyEventCardVariantSchema = z45.enum(["variant1", "variant2"]);
21549
+ var eventCardVariantInputSchema = z45.union([
21351
21550
  cardVariantRoleSchema,
21352
21551
  legacyEventCardVariantSchema
21353
21552
  ]);
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(),
21553
+ var cardOrientationSchema = z45.enum(["vertical", "horizontal"]);
21554
+ var eventBlockKindSchema = z45.enum(eventBlockKindValues);
21555
+ var eventSurfaceScopeSchema = z45.enum(eventSurfaceScopeValues);
21556
+ var eventScheduleScopeSchema2 = z45.enum(eventScheduleScopeValues);
21557
+ var eventListingSourceSchema = z45.object({
21558
+ events: z45.array(publicEventSchema).nullable().optional(),
21559
+ siteId: z45.string(),
21560
+ apiBaseUrl: z45.string().optional(),
21362
21561
  stage: previewStageSchema.optional(),
21363
21562
  layout: eventLayoutSchema.optional(),
21364
21563
  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(),
21564
+ eventsPerPage: z45.string().optional(),
21565
+ paginationMode: z45.enum(["loadMore", "seeAllLink"]).optional(),
21566
+ seeAllUrl: z45.string().optional(),
21567
+ loadMoreText: z45.string().optional(),
21369
21568
  cardVariant: eventCardVariantInputSchema.optional(),
21370
21569
  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(),
21570
+ buttonText: z45.string().optional(),
21571
+ showVenue: z45.boolean().optional(),
21572
+ showMap: z45.boolean().optional(),
21573
+ showCapacity: z45.boolean().optional(),
21574
+ emptyMessage: z45.string().optional(),
21575
+ className: z45.string().optional(),
21576
+ showFilters: z45.boolean().nullable().optional(),
21378
21577
  showCategoryFilter: filterAutoShowSchema.optional(),
21379
- showVenueFilter: z44.boolean().nullable().optional(),
21380
- showStaffFilter: z44.boolean().nullable().optional(),
21578
+ showVenueFilter: z45.boolean().nullable().optional(),
21579
+ showStaffFilter: z45.boolean().nullable().optional(),
21381
21580
  eventKind: eventBlockKindSchema.nullable().optional(),
21382
21581
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
21383
- filterEventPresets: z44.union([z44.string(), z44.array(z44.string())]).nullable().optional(),
21582
+ filterEventPresets: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
21384
21583
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
21385
- filterCategoryIds: z44.string().nullable().optional(),
21386
- filterStaffMemberId: z44.string().nullable().optional(),
21387
- filterVenueId: z44.string().nullable().optional()
21584
+ filterCategoryIds: z45.string().nullable().optional(),
21585
+ filterStaffMemberId: z45.string().nullable().optional(),
21586
+ filterVenueId: z45.string().nullable().optional()
21388
21587
  });
21389
- var eventListingDisplaySchema = z44.object({
21390
- kind: z44.literal("event-listing"),
21391
- state: z44.enum(["loading", "empty", "ready"]),
21588
+ var eventListingDisplaySchema = z45.object({
21589
+ kind: z45.literal("event-listing"),
21590
+ state: z45.enum(["loading", "empty", "ready"]),
21392
21591
  listLayout: eventLayoutSchema,
21393
- className: z44.string().nullable(),
21394
- emptyMessage: z44.string(),
21395
- loadingMessage: z44.string(),
21396
- containerClass: z44.string(),
21592
+ className: z45.string().nullable(),
21593
+ emptyMessage: z45.string(),
21594
+ loadingMessage: z45.string(),
21595
+ containerClass: z45.string(),
21397
21596
  cardVariant: cardVariantRoleSchema,
21398
21597
  buttonVariant: eventButtonVariantSchema,
21399
- buttonText: z44.string(),
21400
- showVenue: z44.boolean(),
21401
- showMap: z44.boolean(),
21402
- showCapacity: z44.boolean(),
21598
+ buttonText: z45.string(),
21599
+ showVenue: z45.boolean(),
21600
+ showMap: z45.boolean(),
21601
+ showCapacity: z45.boolean(),
21403
21602
  orientation: cardOrientationSchema,
21404
- events: z44.array(publicEventSchema)
21603
+ events: z45.array(publicEventSchema)
21405
21604
  });
21406
- var eventListingHydrationSchema = z44.object({
21407
- siteId: z44.string(),
21605
+ var eventListingHydrationSchema = z45.object({
21606
+ siteId: z45.string(),
21408
21607
  stage: previewStageSchema.optional(),
21409
21608
  eventsPerPage: eventPageSizeSchema,
21410
21609
  paginationAction: eventListPaginationActionSchema,
21411
- showFilters: z44.boolean(),
21610
+ showFilters: z45.boolean(),
21412
21611
  showCategoryFilter: filterAutoShowSchema,
21413
- showVenueFilter: z44.boolean(),
21414
- showStaffFilter: z44.boolean(),
21612
+ showVenueFilter: z45.boolean(),
21613
+ showStaffFilter: z45.boolean(),
21415
21614
  eventKind: eventBlockKindSchema,
21416
21615
  eventSurface: eventSurfaceScopeSchema,
21417
- filterEventPresets: z44.string().nullable(),
21616
+ filterEventPresets: z45.string().nullable(),
21418
21617
  scheduleScope: eventScheduleScopeSchema2,
21419
- filterCategoryIds: z44.string().nullable().optional(),
21420
- filterStaffMemberId: z44.string().nullable().optional(),
21421
- filterVenueId: z44.string().nullable().optional(),
21422
- fetchInitialEventsOnMount: z44.boolean()
21618
+ filterCategoryIds: z45.string().nullable().optional(),
21619
+ filterStaffMemberId: z45.string().nullable().optional(),
21620
+ filterVenueId: z45.string().nullable().optional(),
21621
+ fetchInitialEventsOnMount: z45.boolean()
21423
21622
  });
21424
- var eventListingRenderSchema = z44.object({
21623
+ var eventListingRenderSchema = z45.object({
21425
21624
  display: eventListingDisplaySchema,
21426
21625
  hydration: eventListingHydrationSchema
21427
21626
  });
21428
21627
  var eventListingIslandMetaCodec = createZodCodec(
21429
- z44.object({
21430
- siteId: z44.string(),
21431
- apiBaseUrl: z44.string().optional(),
21628
+ z45.object({
21629
+ siteId: z45.string(),
21630
+ apiBaseUrl: z45.string().optional(),
21432
21631
  stage: previewStageSchema.optional()
21433
21632
  })
21434
21633
  );
@@ -21668,18 +21867,7 @@ var eventListingAdditionalFields = [
21668
21867
  var eventListingLayout = [
21669
21868
  styledSection({
21670
21869
  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
- ),
21870
+ ...eventSectionHeaderLayoutNodes(),
21683
21871
  // Event listing component with pagination
21684
21872
  el("event-listing", withApiBindings({
21685
21873
  events: { $bind: { from: "data.events" } },
@@ -21795,15 +21983,15 @@ var eventListingBlockDefinition = {
21795
21983
  };
21796
21984
 
21797
21985
  // ../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(
21986
+ import { z as z46 } from "zod";
21987
+ var eventBlockKindSchema2 = z46.enum(eventBlockKindValues);
21988
+ var eventSurfaceScopeSchema2 = z46.enum(eventSurfaceScopeValues);
21989
+ var eventScheduleScopeSchema3 = z46.enum(eventScheduleScopeValues);
21990
+ var eventCalendarSourceSchema = z46.object(
21803
21991
  {
21804
- events: z45.array(publicEventSchema).nullable().optional(),
21805
- siteId: z45.string(),
21806
- apiBaseUrl: z45.string().optional(),
21992
+ events: z46.array(publicEventSchema).nullable().optional(),
21993
+ siteId: z46.string(),
21994
+ apiBaseUrl: z46.string().optional(),
21807
21995
  stage: previewStageSchema.optional(),
21808
21996
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
21809
21997
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -21811,38 +21999,38 @@ var eventCalendarSourceSchema = z45.object(
21811
21999
  listColumns: columnOptionSchema.optional(),
21812
22000
  layout: eventLayoutSchema.optional(),
21813
22001
  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(),
22002
+ eventsPerPage: z46.string().optional(),
22003
+ paginationMode: z46.enum(["loadMore", "seeAllLink"]).optional(),
22004
+ seeAllUrl: z46.string().optional(),
22005
+ loadMoreText: z46.string().optional(),
21818
22006
  startOfWeek: weekStartSchema.optional(),
21819
22007
  calendarTabViews: calendarTabViewsSchema.optional(),
21820
22008
  defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
21821
- showFilters: z45.boolean().nullable().optional(),
22009
+ showFilters: z46.boolean().nullable().optional(),
21822
22010
  showCategoryFilter: filterAutoShowSchema.optional(),
21823
- showVenueFilter: z45.boolean().nullable().optional(),
21824
- showStaffFilter: z45.boolean().nullable().optional(),
22011
+ showVenueFilter: z46.boolean().nullable().optional(),
22012
+ showStaffFilter: z46.boolean().nullable().optional(),
21825
22013
  kind: eventBlockKindSchema2.nullable().optional(),
21826
22014
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
21827
- filterEventPresets: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
22015
+ filterEventPresets: z46.union([z46.string(), z46.array(z46.string())]).nullable().optional(),
21828
22016
  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(),
22017
+ filterCategoryIds: z46.union([z46.string(), z46.array(z46.string())]).nullable().optional(),
22018
+ filterStaffMemberId: z46.string().nullable().optional(),
22019
+ filterVenueId: z46.string().nullable().optional(),
21832
22020
  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()
22021
+ buttonText: z46.string().optional(),
22022
+ showVenue: z46.boolean().nullable().optional(),
22023
+ showMap: z46.boolean().nullable().optional(),
22024
+ showCapacity: z46.boolean().nullable().optional(),
22025
+ emptyMessage: z46.string().optional(),
22026
+ className: z46.string().optional()
21839
22027
  }
21840
22028
  );
21841
- var eventCalendarDisplaySchema = z45.object({
21842
- kind: z45.literal("event-calendar"),
22029
+ var eventCalendarDisplaySchema = z46.object({
22030
+ kind: z46.literal("event-calendar"),
21843
22031
  displayMode: eventCalendarDisplayModeSchema,
21844
- className: z45.string().nullable(),
21845
- events: z45.array(publicEventSchema),
22032
+ className: z46.string().nullable(),
22033
+ events: z46.array(publicEventSchema),
21846
22034
  listLayout: eventLayoutSchema,
21847
22035
  listColumns: columnOptionSchema,
21848
22036
  eventsPerPage: eventPageSizeSchema,
@@ -21850,41 +22038,41 @@ var eventCalendarDisplaySchema = z45.object({
21850
22038
  startOfWeek: weekStartSchema,
21851
22039
  calendarTabViews: calendarTabViewsSchema,
21852
22040
  defaultCalendarView: eventCalendarDefaultViewSchema,
21853
- showFilters: z45.boolean(),
22041
+ showFilters: z46.boolean(),
21854
22042
  showCategoryFilter: filterAutoShowSchema,
21855
- showVenueFilter: z45.boolean(),
21856
- showStaffFilter: z45.boolean(),
22043
+ showVenueFilter: z46.boolean(),
22044
+ showStaffFilter: z46.boolean(),
21857
22045
  eventKind: eventBlockKindSchema2,
21858
22046
  eventSurface: eventSurfaceScopeSchema2,
21859
- filterEventPresets: z45.string().nullable(),
22047
+ filterEventPresets: z46.string().nullable(),
21860
22048
  scheduleScope: eventScheduleScopeSchema3,
21861
- filterCategoryIds: z45.string().nullable(),
21862
- filterStaffMemberId: z45.string().nullable(),
21863
- filterVenueId: z45.string().nullable(),
22049
+ filterCategoryIds: z46.string().nullable(),
22050
+ filterStaffMemberId: z46.string().nullable(),
22051
+ filterVenueId: z46.string().nullable(),
21864
22052
  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(),
22053
+ buttonText: z46.string(),
22054
+ showVenue: z46.boolean(),
22055
+ showMap: z46.boolean(),
22056
+ showCapacity: z46.boolean(),
22057
+ emptyMessage: z46.string()
22058
+ });
22059
+ var eventCalendarHydrationSchema = z46.object({
22060
+ siteId: z46.string(),
21873
22061
  stage: previewStageSchema.optional(),
21874
- prefetchedEvents: z45.boolean(),
22062
+ prefetchedEvents: z46.boolean(),
21875
22063
  eventKind: eventBlockKindSchema2,
21876
22064
  eventSurface: eventSurfaceScopeSchema2,
21877
- filterEventPresets: z45.string().nullable(),
22065
+ filterEventPresets: z46.string().nullable(),
21878
22066
  scheduleScope: eventScheduleScopeSchema3
21879
22067
  });
21880
- var eventCalendarRenderSchema = z45.object({
22068
+ var eventCalendarRenderSchema = z46.object({
21881
22069
  display: eventCalendarDisplaySchema,
21882
22070
  hydration: eventCalendarHydrationSchema
21883
22071
  });
21884
22072
  var eventCalendarIslandMetaCodec = createZodCodec(
21885
- z45.object({
21886
- siteId: z45.string(),
21887
- apiBaseUrl: z45.string().optional(),
22073
+ z46.object({
22074
+ siteId: z46.string(),
22075
+ apiBaseUrl: z46.string().optional(),
21888
22076
  stage: previewStageSchema.optional()
21889
22077
  })
21890
22078
  );
@@ -22004,14 +22192,7 @@ var eventCalendarLayout = [
22004
22192
  styledSection({
22005
22193
  children: sectionContainer(
22006
22194
  [
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
- ),
22195
+ ...eventSectionHeaderLayoutNodes(),
22015
22196
  // Event calendar component (handles all display modes)
22016
22197
  el(
22017
22198
  "event-calendar",
@@ -22656,7 +22837,7 @@ var eventCalendarBlockDefinition = {
22656
22837
  };
22657
22838
 
22658
22839
  // ../blocks/src/system/blocks/offerings-preview/index.ts
22659
- import { z as z46 } from "zod";
22840
+ import { z as z47 } from "zod";
22660
22841
 
22661
22842
  // ../blocks/src/system/blocks/offerings-preview/model.ts
22662
22843
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -22748,13 +22929,13 @@ function isRecord5(value) {
22748
22929
  }
22749
22930
 
22750
22931
  // ../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()
22932
+ var publicRouteCandidatesSchema = z47.object({
22933
+ routes: z47.array(z47.object({
22934
+ entityId: z47.string(),
22935
+ path: z47.string(),
22936
+ title: z47.string(),
22937
+ kind: z47.enum(["page", "content"]),
22938
+ contentTypeKey: z47.string().nullable().optional()
22758
22939
  }))
22759
22940
  });
22760
22941
  var groupOverrideFields = [
@@ -23152,7 +23333,7 @@ function isRecord6(value) {
23152
23333
  }
23153
23334
 
23154
23335
  // ../blocks/src/system/blocks/embed.ts
23155
- import { z as z47 } from "zod";
23336
+ import { z as z48 } from "zod";
23156
23337
  var embedFields = [
23157
23338
  // Section heading
23158
23339
  parseFieldDefinition({
@@ -23383,18 +23564,18 @@ var embedManifest = createBlockManifest({
23383
23564
  spacing: "lg"
23384
23565
  }
23385
23566
  });
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()
23567
+ var embedEntrySchema = z48.object({
23568
+ id: z48.string(),
23569
+ identifier: z48.string(),
23570
+ title: z48.string(),
23571
+ slug: z48.string().nullable().optional(),
23572
+ content: z48.record(z48.string(), z48.unknown()).optional(),
23573
+ publishedAt: z48.string().nullable().optional()
23393
23574
  });
23394
23575
  var embedBlockDefinition = {
23395
23576
  manifest: embedManifest,
23396
23577
  dataSchemas: {
23397
- entries: z47.array(embedEntrySchema).optional()
23578
+ entries: z48.array(embedEntrySchema).optional()
23398
23579
  },
23399
23580
  dataLoaders: {
23400
23581
  entries: {
@@ -24578,49 +24759,49 @@ var fileDownloadBlockDefinition = {
24578
24759
  };
24579
24760
 
24580
24761
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
24581
- import { z as z50 } from "zod";
24762
+ import { z as z51 } from "zod";
24582
24763
 
24583
24764
  // ../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()
24765
+ import { z as z49 } from "zod";
24766
+ var publicProductVariantSchema = z49.object({
24767
+ id: z49.string(),
24768
+ title: z49.string(),
24769
+ sku: z49.string().nullable(),
24770
+ priceCents: z49.number(),
24771
+ stockQuantity: z49.number().nullable(),
24772
+ soldOut: z49.boolean()
24773
+ });
24774
+ var publicProductSchema = z49.object({
24775
+ id: z49.string(),
24776
+ contentEntryId: z49.string().nullable(),
24777
+ title: z49.string(),
24778
+ slug: z49.string(),
24779
+ path: z49.string().nullable(),
24780
+ status: z49.enum(["draft", "active"]),
24781
+ priceCents: z49.number(),
24782
+ currency: z49.string(),
24783
+ productType: z49.enum(["physical", "digital"]),
24784
+ requiresShipping: z49.boolean(),
24785
+ hasVariants: z49.boolean(),
24786
+ trackInventory: z49.boolean(),
24787
+ soldOut: z49.boolean(),
24788
+ category: z49.object({
24789
+ id: z49.string(),
24790
+ name: z49.string(),
24791
+ slug: z49.string()
24611
24792
  }).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()
24793
+ summary: z49.string().nullable(),
24794
+ body: z49.unknown().nullable(),
24795
+ gallery: z49.array(
24796
+ z49.object({
24797
+ url: z49.string(),
24798
+ alt: z49.string().nullable()
24618
24799
  })
24619
24800
  ),
24620
- variants: z48.array(publicProductVariantSchema)
24801
+ variants: z49.array(publicProductVariantSchema)
24621
24802
  });
24622
- var publicProductsResponseSchema = z48.object({
24623
- products: z48.array(publicProductSchema)
24803
+ var publicProductsResponseSchema = z49.object({
24804
+ products: z49.array(publicProductSchema)
24624
24805
  });
24625
24806
 
24626
24807
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -24684,27 +24865,27 @@ function deriveCreditProductLabels(products, options = {}) {
24684
24865
  }
24685
24866
 
24686
24867
  // ../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)
24868
+ import { z as z50 } from "zod";
24869
+ var storedProductCartItemSchema = z50.object({
24870
+ kind: z50.literal("product"),
24871
+ productId: z50.string().min(1),
24872
+ productCategoryId: z50.string().min(1).optional().nullable(),
24873
+ variantId: z50.string().min(1).optional().nullable(),
24874
+ title: z50.string().min(1),
24875
+ variantTitle: z50.string().optional().nullable(),
24876
+ quantity: z50.number().finite(),
24877
+ unitPriceCents: z50.number().finite(),
24878
+ currency: z50.string().min(1),
24879
+ imageUrl: z50.string().optional().nullable(),
24880
+ soldOut: z50.boolean().optional()
24881
+ });
24882
+ var storedPassCartItemSchema = z50.object({
24883
+ kind: z50.literal("pass"),
24884
+ passId: z50.string().min(1),
24885
+ title: z50.string().min(1),
24886
+ quantity: z50.number().finite().optional(),
24887
+ unitPriceCents: z50.number().finite(),
24888
+ currency: z50.string().min(1)
24708
24889
  });
24709
24890
  function deriveCommerceCheckoutState(state) {
24710
24891
  if (state.items.length === 0) {
@@ -24938,214 +25119,214 @@ function formatValidity(days) {
24938
25119
  }
24939
25120
 
24940
25121
  // ../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()
25122
+ var shopModeSchema = z51.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
25123
+ var contentEntrySchema3 = z51.object({
25124
+ id: z51.string().nullable().optional(),
25125
+ slug: z51.string().nullable().optional()
24945
25126
  }).nullable();
24946
- var shopSourceSchema = z50.object({
24947
- className: z50.string().nullable().optional(),
25127
+ var shopSourceSchema = z51.object({
25128
+ className: z51.string().nullable().optional(),
24948
25129
  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(),
25130
+ heading: z51.string().nullable().optional(),
25131
+ productSlug: z51.string().nullable().optional(),
25132
+ showPasses: z51.boolean().optional(),
25133
+ showMemberships: z51.boolean().optional(),
25134
+ layout: z51.enum(["grid", "list"]).optional(),
25135
+ columns: z51.string().optional(),
25136
+ showDescriptions: z51.boolean().optional(),
25137
+ showSummary: z51.boolean().optional(),
25138
+ showBody: z51.boolean().optional(),
25139
+ showPrices: z51.boolean().optional(),
25140
+ showValidityPeriod: z51.boolean().optional(),
25141
+ showPricePerCredit: z51.boolean().nullable().optional(),
25142
+ passesHeading: z51.string().optional(),
25143
+ membershipsHeading: z51.string().optional(),
25144
+ buyButtonText: z51.string().optional(),
25145
+ addButtonText: z51.string().optional(),
25146
+ passPurchaseMode: z51.enum(["add_to_cart", "buy_now"]).optional(),
25147
+ subscribeButtonText: z51.string().optional(),
25148
+ emptyStateText: z51.string().optional(),
25149
+ checkoutButtonText: z51.string().optional(),
25150
+ clearButtonText: z51.string().optional(),
25151
+ submitButtonText: z51.string().optional(),
24971
25152
  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(),
25153
+ passes: z51.array(publicPassProductSchema).nullable().optional(),
25154
+ memberships: z51.array(publicMembershipProductSchema).nullable().optional(),
25155
+ products: z51.array(publicProductSchema).nullable().optional(),
25156
+ siteId: z51.string().optional(),
25157
+ apiBaseUrl: z51.string().optional(),
24977
25158
  stage: previewStageSchema.optional()
24978
25159
  });
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()
25160
+ var productVariantOptionDisplaySchema = z51.object({
25161
+ id: z51.string(),
25162
+ label: z51.string(),
25163
+ soldOut: z51.boolean()
25164
+ });
25165
+ var productCardDisplaySchema = z51.object({
25166
+ productId: z51.string(),
25167
+ title: z51.string(),
25168
+ path: z51.string().nullable(),
25169
+ summary: z51.string().nullable(),
25170
+ priceLabel: z51.string().nullable(),
25171
+ image: z51.object({
25172
+ url: z51.string(),
25173
+ alt: z51.string().nullable()
24993
25174
  }).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()
25175
+ variantOptions: z51.array(productVariantOptionDisplaySchema),
25176
+ selectedVariantId: z51.string().nullable(),
25177
+ selectionLabel: z51.string(),
25178
+ actionLabel: z51.string(),
25179
+ soldOut: z51.boolean()
25180
+ });
25181
+ var productListDisplaySchema = z51.object({
25182
+ kind: z51.literal("product-list"),
25183
+ state: z51.enum(["empty", "ready"]),
25184
+ heading: z51.string().nullable(),
25185
+ className: z51.string().nullable(),
25186
+ layout: z51.enum(["grid", "list"]),
25187
+ columns: z51.string(),
25188
+ emptyMessage: z51.string(),
25189
+ cards: z51.array(productCardDisplaySchema)
25190
+ });
25191
+ var productDetailDisplaySchema = z51.discriminatedUnion("state", [
25192
+ z51.object({
25193
+ kind: z51.literal("product-detail"),
25194
+ state: z51.literal("empty"),
25195
+ heading: z51.string().nullable(),
25196
+ className: z51.string().nullable(),
25197
+ emptyMessage: z51.string()
25017
25198
  }),
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()
25199
+ z51.object({
25200
+ kind: z51.literal("product-detail"),
25201
+ state: z51.literal("ready"),
25202
+ heading: z51.string().nullable(),
25203
+ className: z51.string().nullable(),
25204
+ title: z51.string(),
25205
+ priceLabel: z51.string(),
25206
+ summary: z51.string().nullable(),
25207
+ categoryLabel: z51.string().nullable(),
25208
+ gallery: z51.array(z51.object({
25209
+ url: z51.string(),
25210
+ alt: z51.string().nullable()
25030
25211
  })),
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()
25212
+ variantOptions: z51.array(productVariantOptionDisplaySchema),
25213
+ selectedVariantId: z51.string().nullable(),
25214
+ selectionLabel: z51.string(),
25215
+ actionLabel: z51.string(),
25216
+ soldOut: z51.boolean(),
25217
+ body: z51.unknown().nullable()
25037
25218
  })
25038
25219
  ]);
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({
25220
+ var passCardDisplaySchema = z51.object({
25221
+ id: z51.string(),
25222
+ title: z51.string(),
25223
+ description: z51.string().nullable(),
25224
+ priceLabel: z51.string(),
25225
+ creditsLabel: z51.string(),
25226
+ perCreditLabel: z51.string().nullable(),
25227
+ validityLabel: z51.string().nullable(),
25228
+ actionLabel: z51.string()
25229
+ });
25230
+ var membershipCardDisplaySchema = z51.object({
25231
+ id: z51.string(),
25232
+ title: z51.string(),
25233
+ description: z51.string().nullable(),
25234
+ priceLabel: z51.string(),
25235
+ intervalLabel: z51.string(),
25236
+ actionLabel: z51.string()
25237
+ });
25238
+ var passesMembershipsDisplaySchema = z51.object({
25239
+ kind: z51.literal("passes-memberships"),
25240
+ state: z51.enum(["empty", "ready"]),
25241
+ className: z51.string().nullable(),
25242
+ layout: z51.enum(["grid", "list"]),
25243
+ columns: z51.string(),
25244
+ emptyMessage: z51.string(),
25245
+ passesHeading: z51.string(),
25246
+ membershipsHeading: z51.string(),
25247
+ passes: z51.array(passCardDisplaySchema),
25248
+ memberships: z51.array(membershipCardDisplaySchema)
25249
+ });
25250
+ var cartLineDisplaySchema = z51.object({
25251
+ key: z51.string(),
25252
+ title: z51.string(),
25253
+ priceLabel: z51.string(),
25254
+ quantity: z51.number(),
25255
+ quantityEditable: z51.boolean()
25256
+ });
25257
+ var cartDisplaySchema = z51.object({
25258
+ kind: z51.literal("cart"),
25259
+ state: z51.enum(["empty", "ready"]),
25260
+ heading: z51.string().nullable(),
25261
+ className: z51.string().nullable(),
25262
+ emptyMessage: z51.string(),
25263
+ supportText: z51.string().nullable(),
25264
+ items: z51.array(cartLineDisplaySchema),
25265
+ subtotalLabel: z51.string().nullable(),
25266
+ checkoutButtonText: z51.string(),
25267
+ clearButtonText: z51.string()
25268
+ });
25269
+ var checkoutDisplaySchema = z51.object({
25270
+ kind: z51.literal("checkout"),
25271
+ state: z51.enum(["empty", "blocked", "ready"]),
25272
+ heading: z51.string().nullable(),
25273
+ className: z51.string().nullable(),
25274
+ message: z51.string().nullable(),
25275
+ submitButtonText: z51.string()
25276
+ });
25277
+ var passesMembershipsHydrationSchema = z51.object({
25278
+ passes: z51.array(publicPassProductSchema),
25279
+ memberships: z51.array(publicMembershipProductSchema),
25280
+ passPurchaseMode: z51.enum(["add_to_cart", "buy_now"])
25281
+ });
25282
+ var productListHydrationSchema = z51.object({
25283
+ products: z51.array(publicProductSchema),
25284
+ showSummary: z51.boolean(),
25285
+ showPrices: z51.boolean(),
25286
+ addButtonText: z51.string()
25287
+ });
25288
+ var productDetailHydrationSchema = z51.object({
25289
+ products: z51.array(publicProductSchema),
25290
+ productId: z51.string().nullable(),
25291
+ showSummary: z51.boolean(),
25292
+ showBody: z51.boolean(),
25293
+ addButtonText: z51.string()
25294
+ });
25295
+ var cartHydrationSchema = z51.object({
25296
+ emptyStateText: z51.string(),
25297
+ checkoutButtonText: z51.string(),
25298
+ clearButtonText: z51.string()
25299
+ });
25300
+ var checkoutHydrationSchema = z51.object({
25301
+ emptyStateText: z51.string(),
25302
+ submitButtonText: z51.string()
25303
+ });
25304
+ var passesMembershipsRenderSchema = z51.object({
25124
25305
  display: passesMembershipsDisplaySchema,
25125
25306
  hydration: passesMembershipsHydrationSchema
25126
25307
  });
25127
- var productListRenderSchema = z50.object({
25308
+ var productListRenderSchema = z51.object({
25128
25309
  display: productListDisplaySchema,
25129
25310
  hydration: productListHydrationSchema
25130
25311
  });
25131
- var productDetailRenderSchema = z50.object({
25312
+ var productDetailRenderSchema = z51.object({
25132
25313
  display: productDetailDisplaySchema,
25133
25314
  hydration: productDetailHydrationSchema
25134
25315
  });
25135
- var cartRenderSchema = z50.object({
25316
+ var cartRenderSchema = z51.object({
25136
25317
  display: cartDisplaySchema,
25137
25318
  hydration: cartHydrationSchema
25138
25319
  });
25139
- var checkoutRenderSchema = z50.object({
25320
+ var checkoutRenderSchema = z51.object({
25140
25321
  display: checkoutDisplaySchema,
25141
25322
  hydration: checkoutHydrationSchema
25142
25323
  });
25143
25324
  function resolveShowPricePerCredit(source) {
25144
25325
  return source.showPricePerCredit ?? true;
25145
25326
  }
25146
- var shopIslandMetaCodec = createZodCodec(z50.object({
25147
- siteId: z50.string().optional(),
25148
- apiBaseUrl: z50.string().optional(),
25327
+ var shopIslandMetaCodec = createZodCodec(z51.object({
25328
+ siteId: z51.string().optional(),
25329
+ apiBaseUrl: z51.string().optional(),
25149
25330
  stage: previewStageSchema.optional()
25150
25331
  }));
25151
25332
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -25548,7 +25729,7 @@ var shopBlockDefinition = {
25548
25729
  };
25549
25730
 
25550
25731
  // ../blocks/src/system/blocks/product-list.ts
25551
- import { z as z51 } from "zod";
25732
+ import { z as z52 } from "zod";
25552
25733
  var productListManifest = createBlockManifest({
25553
25734
  id: "block.product-list",
25554
25735
  version: "1.0.0",
@@ -25681,7 +25862,7 @@ var productListBlockDefinition = {
25681
25862
  }
25682
25863
  }
25683
25864
  };
25684
- var productListDataSchema = z51.object({
25865
+ var productListDataSchema = z52.object({
25685
25866
  products: publicProductsResponseSchema.optional()
25686
25867
  });
25687
25868
 
@@ -25942,72 +26123,72 @@ var checkoutBlockDefinition = {
25942
26123
  };
25943
26124
 
25944
26125
  // ../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()
26126
+ import { z as z53 } from "zod";
26127
+ var publicGiftCardOfferSchema = z53.object({
26128
+ id: z53.string(),
26129
+ kind: z53.literal("gift_card"),
26130
+ title: z53.string(),
26131
+ description: z53.string().nullable(),
26132
+ sortOrder: z53.number().int(),
26133
+ giftCard: z53.object({
26134
+ fixedDenominations: z53.array(z53.number().int().positive()),
26135
+ customAmountEnabled: z53.boolean(),
26136
+ customAmountMinCents: z53.number().int().positive(),
26137
+ customAmountMaxCents: z53.number().int().positive()
25957
26138
  }),
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()
26139
+ voucher: z53.null()
26140
+ });
26141
+ var publicVoucherOfferSchema = z53.object({
26142
+ id: z53.string(),
26143
+ kind: z53.literal("voucher"),
26144
+ title: z53.string(),
26145
+ description: z53.string().nullable(),
26146
+ sortOrder: z53.number().int(),
26147
+ giftCard: z53.null(),
26148
+ voucher: z53.object({
26149
+ purchaseAmountCents: z53.number().int().positive()
25969
26150
  })
25970
26151
  });
25971
- var publicGiftingOffersResponseSchema = z52.object({
25972
- currency: z52.string(),
25973
- giftCards: z52.array(publicGiftCardOfferSchema),
25974
- vouchers: z52.array(publicVoucherOfferSchema)
26152
+ var publicGiftingOffersResponseSchema = z53.object({
26153
+ currency: z53.string(),
26154
+ giftCards: z53.array(publicGiftCardOfferSchema),
26155
+ vouchers: z53.array(publicVoucherOfferSchema)
25975
26156
  });
25976
- var giftingSourceSchema = z52.object({
25977
- siteId: z52.string().optional(),
25978
- apiBaseUrl: z52.string().optional(),
26157
+ var giftingSourceSchema = z53.object({
26158
+ siteId: z53.string().optional(),
26159
+ apiBaseUrl: z53.string().optional(),
25979
26160
  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({
26161
+ className: z53.string().nullable().optional(),
26162
+ heading: z53.string().nullable().optional(),
26163
+ intro: z53.string().nullable().optional(),
26164
+ giftCardsHeading: z53.string().nullable().optional(),
26165
+ vouchersHeading: z53.string().nullable().optional(),
26166
+ emptyStateText: z53.string().nullable().optional(),
26167
+ checkoutButtonText: z53.string().nullable().optional(),
26168
+ successMessage: z53.string().nullable().optional()
26169
+ });
26170
+ var giftingDisplaySchema = z53.object({
26171
+ kind: z53.literal("gifting"),
26172
+ state: z53.literal("ready"),
26173
+ className: z53.string().nullable(),
26174
+ heading: z53.string(),
26175
+ intro: z53.string().nullable(),
26176
+ giftCardsHeading: z53.string(),
26177
+ vouchersHeading: z53.string(),
26178
+ emptyStateText: z53.string()
26179
+ });
26180
+ var giftingHydrationSchema = z53.object({
26000
26181
  offers: publicGiftingOffersResponseSchema.nullable(),
26001
- checkoutButtonText: z52.string(),
26002
- successMessage: z52.string()
26182
+ checkoutButtonText: z53.string(),
26183
+ successMessage: z53.string()
26003
26184
  });
26004
- var giftingRenderSchema = z52.object({
26185
+ var giftingRenderSchema = z53.object({
26005
26186
  display: giftingDisplaySchema,
26006
26187
  hydration: giftingHydrationSchema
26007
26188
  });
26008
- var giftingIslandMetaCodec = createZodCodec(z52.object({
26009
- siteId: z52.string().optional(),
26010
- apiBaseUrl: z52.string().optional()
26189
+ var giftingIslandMetaCodec = createZodCodec(z53.object({
26190
+ siteId: z53.string().optional(),
26191
+ apiBaseUrl: z53.string().optional()
26011
26192
  }));
26012
26193
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
26013
26194
  "siteId",
@@ -26178,7 +26359,7 @@ var giftingBlockDefinition = {
26178
26359
  };
26179
26360
 
26180
26361
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
26181
- import { z as z53 } from "zod";
26362
+ import { z as z54 } from "zod";
26182
26363
 
26183
26364
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
26184
26365
  function parseNewsletterSignupBlockId(value) {
@@ -26285,65 +26466,65 @@ function withOptionalPhone(fields3, includePhone) {
26285
26466
  }
26286
26467
 
26287
26468
  // ../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"),
26469
+ var newsletterPresetSchema = z54.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
26470
+ var newsletterDestinationProviderSchema = z54.enum(["riverbank", "mailchimp"]);
26471
+ var newsletterFieldSchema = z54.object({
26472
+ id: z54.string(),
26473
+ type: z54.enum(["email", "text"]),
26474
+ label: z54.string(),
26475
+ required: z54.boolean(),
26476
+ placeholder: z54.string().optional()
26477
+ });
26478
+ var newsletterSignupBlockIdSchema = z54.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
26479
+ var signedNewsletterDestinationRefSchema = z54.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
26480
+ var newsletterPublicDestinationRefSchema = z54.discriminatedUnion("tag", [
26481
+ z54.object({
26482
+ tag: z54.literal("block_ref"),
26302
26483
  blockId: newsletterSignupBlockIdSchema
26303
26484
  }),
26304
- z53.object({
26305
- tag: z53.literal("signed_destination_ref"),
26485
+ z54.object({
26486
+ tag: z54.literal("signed_destination_ref"),
26306
26487
  token: signedNewsletterDestinationRefSchema
26307
26488
  })
26308
26489
  ]);
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(),
26490
+ var newsletterSourceSchema = z54.object({
26491
+ blockId: z54.string().nullable().optional(),
26492
+ siteId: z54.string().optional(),
26493
+ apiBaseUrl: z54.string().optional(),
26494
+ listId: z54.string().nullable().optional(),
26314
26495
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
26315
26496
  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({
26497
+ includePhone: z54.boolean().optional(),
26498
+ buttonLabel: z54.string().nullable().optional(),
26499
+ successMessage: z54.string().nullable().optional(),
26500
+ privacyNote: z54.string().nullable().optional(),
26501
+ tags: z54.string().nullable().optional(),
26502
+ spamProtectionEnabled: z54.boolean().optional(),
26503
+ className: z54.string().nullable().optional()
26504
+ });
26505
+ var newsletterDisplaySchema = z54.object({
26506
+ kind: z54.literal("newsletter-form"),
26507
+ className: z54.string().nullable(),
26508
+ buttonLabel: z54.string(),
26509
+ successMessage: z54.string().nullable(),
26510
+ privacyNote: z54.string().nullable(),
26511
+ fields: z54.array(newsletterFieldSchema)
26512
+ });
26513
+ var newsletterHydrationSchema = z54.object({
26333
26514
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
26334
- listId: z53.string().nullable().optional(),
26515
+ listId: z54.string().nullable().optional(),
26335
26516
  preset: newsletterPresetSchema,
26336
- includePhone: z53.boolean(),
26337
- tags: z53.string().nullable().optional(),
26338
- spamProtectionEnabled: z53.boolean().optional()
26517
+ includePhone: z54.boolean(),
26518
+ tags: z54.string().nullable().optional(),
26519
+ spamProtectionEnabled: z54.boolean().optional()
26339
26520
  });
26340
- var newsletterRenderSchema = z53.object({
26521
+ var newsletterRenderSchema = z54.object({
26341
26522
  display: newsletterDisplaySchema,
26342
26523
  hydration: newsletterHydrationSchema
26343
26524
  });
26344
- var newsletterIslandMetaCodec = createZodCodec(z53.object({
26345
- siteId: z53.string().optional(),
26346
- apiBaseUrl: z53.string().optional()
26525
+ var newsletterIslandMetaCodec = createZodCodec(z54.object({
26526
+ siteId: z54.string().optional(),
26527
+ apiBaseUrl: z54.string().optional()
26347
26528
  }));
26348
26529
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
26349
26530
  function buildNewsletterDisplay(source) {
@@ -26482,23 +26663,23 @@ var newsletterSignupBlockDefinition = {
26482
26663
  };
26483
26664
 
26484
26665
  // ../blocks/src/system/blocks/team-members.ts
26485
- import { z as z54 } from "zod";
26666
+ import { z as z55 } from "zod";
26486
26667
  var ITEM_NAME2 = "member";
26487
26668
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
26488
26669
  message: "Team member photos must be image media"
26489
26670
  }).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(),
26671
+ var teamMemberDataSchema = z55.object({
26672
+ _type: z55.literal("teamMember"),
26673
+ id: z55.string(),
26674
+ name: z55.string(),
26675
+ role: z55.string().nullable(),
26676
+ roleLabel: z55.string().nullable(),
26677
+ bio: z55.string().nullable(),
26678
+ summary: z55.string().nullable(),
26498
26679
  photo: teamMemberPhotoSchema,
26499
- profilePath: z54.string().nullable()
26680
+ profilePath: z55.string().nullable()
26500
26681
  });
26501
- var teamMembersDataSchema = z54.array(teamMemberDataSchema);
26682
+ var teamMembersDataSchema = z55.array(teamMemberDataSchema);
26502
26683
  var dynamicSourceWhen = { equals: "site_staff" };
26503
26684
  var manualSourceWhen = { equals: "site_staff", not: true };
26504
26685
  var headingNode = text(
@@ -27604,6 +27785,10 @@ var systemBlockDefinitionsRaw = [
27604
27785
  flow: conversionFlow,
27605
27786
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
27606
27787
  })),
27788
+ withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
27789
+ flow: offeringsFlow,
27790
+ layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
27791
+ })),
27607
27792
  withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
27608
27793
  flow: conversionFlow,
27609
27794
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
@@ -28549,34 +28734,34 @@ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
28549
28734
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
28550
28735
 
28551
28736
  // ../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()
28737
+ import { z as z56 } from "zod";
28738
+ var themeBridgeConfigSchema = z56.object({
28739
+ tokens: z56.record(z56.string(), z56.string()),
28740
+ typography: z56.object({
28741
+ headingFamily: z56.string().optional(),
28742
+ bodyFamily: z56.string().optional(),
28743
+ headingWeight: z56.number().optional(),
28744
+ bodyWeight: z56.number().optional()
28560
28745
  }).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()
28746
+ spacing: z56.enum(["comfortable", "standard", "dense"]).optional(),
28747
+ corners: z56.enum(["square", "soft", "rounded", "pill"]).optional(),
28748
+ shadows: z56.enum(["none", "low", "medium", "high"]).optional(),
28749
+ components: z56.object({
28750
+ buttons: z56.union([
28751
+ z56.boolean(),
28752
+ z56.object({
28753
+ variants: z56.array(z56.enum(["primary", "secondary", "outline", "ghost"])).optional()
28569
28754
  })
28570
28755
  ]).optional(),
28571
- cards: z55.union([
28572
- z55.boolean(),
28573
- z55.object({
28574
- variants: z55.array(z55.enum(["default", "elevated", "outlined"])).optional()
28756
+ cards: z56.union([
28757
+ z56.boolean(),
28758
+ z56.object({
28759
+ variants: z56.array(z56.enum(["default", "elevated", "outlined"])).optional()
28575
28760
  })
28576
28761
  ]).optional(),
28577
- inputs: z55.boolean().optional()
28762
+ inputs: z56.boolean().optional()
28578
28763
  }).optional(),
28579
- overrides: z55.record(z55.string(), z55.string()).optional()
28764
+ overrides: z56.record(z56.string(), z56.string()).optional()
28580
28765
  }).passthrough();
28581
28766
 
28582
28767
  // ../theme-core/src/siteChrome.tsx
@@ -28785,11 +28970,11 @@ function resolveModelForPass(passId, tierOverrides, passOverrides, globalModel)
28785
28970
  }
28786
28971
 
28787
28972
  // src/page-converter/passes/pass1-segmentation-matching.ts
28788
- import { z as z60 } from "zod";
28973
+ import { z as z61 } from "zod";
28789
28974
 
28790
28975
  // src/manifest/passes/pass1-fields.ts
28791
- import { z as z56 } from "zod";
28792
- var simpleFieldTypeEnum = z56.enum([
28976
+ import { z as z57 } from "zod";
28977
+ var simpleFieldTypeEnum = z57.enum([
28793
28978
  "text",
28794
28979
  "richText",
28795
28980
  "media",
@@ -28798,7 +28983,7 @@ var simpleFieldTypeEnum = z56.enum([
28798
28983
  "select",
28799
28984
  "number"
28800
28985
  ]);
28801
- var fieldTypeEnum = z56.enum([
28986
+ var fieldTypeEnum = z57.enum([
28802
28987
  "text",
28803
28988
  "richText",
28804
28989
  "media",
@@ -28809,109 +28994,109 @@ var fieldTypeEnum = z56.enum([
28809
28994
  "repeater",
28810
28995
  "group"
28811
28996
  ]);
28812
- var linkDefaultValue = z56.object({
28813
- label: z56.string().describe("The visible link text")
28997
+ var linkDefaultValue = z57.object({
28998
+ label: z57.string().describe("The visible link text")
28814
28999
  });
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)")
29000
+ var mediaDefaultValue = z57.object({
29001
+ src: z57.string().describe("Image/video source URL"),
29002
+ alt: z57.string().describe("Alt text for accessibility (empty string if none)")
28818
29003
  });
28819
- var nestedFieldSchema = z56.object({
28820
- id: z56.string().min(1).describe("camelCase field ID"),
29004
+ var nestedFieldSchema = z57.object({
29005
+ id: z57.string().min(1).describe("camelCase field ID"),
28821
29006
  type: simpleFieldTypeEnum,
28822
- label: z56.string().min(1),
28823
- required: z56.boolean().nullable()
29007
+ label: z57.string().min(1),
29008
+ required: z57.boolean().nullable()
28824
29009
  });
28825
- var simpleFieldSchema = z56.object({
28826
- id: z56.string().min(1).describe("camelCase field ID (e.g., headline, ctaButton)"),
29010
+ var simpleFieldSchema = z57.object({
29011
+ id: z57.string().min(1).describe("camelCase field ID (e.g., headline, ctaButton)"),
28827
29012
  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(),
29013
+ label: z57.string().min(1),
29014
+ required: z57.boolean(),
29015
+ multiline: z57.boolean().nullable().describe("For text fields: true if multiple lines"),
29016
+ defaultValue: z57.union([
29017
+ z57.string(),
29018
+ z57.number(),
29019
+ z57.boolean(),
28835
29020
  linkDefaultValue,
28836
29021
  mediaDefaultValue,
28837
- z56.null()
29022
+ z57.null()
28838
29023
  ]).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([
29024
+ htmlContext: z57.string().describe("Brief description of where this appears in the HTML")
29025
+ });
29026
+ var repeaterFieldSchema2 = z57.object({
29027
+ id: z57.string().min(1).describe("camelCase field ID (e.g., socialLinks, features)"),
29028
+ type: z57.literal("repeater"),
29029
+ label: z57.string().min(1),
29030
+ required: z57.boolean(),
29031
+ itemLabel: z57.string().min(1).describe('Singular label for each item (e.g., "Link", "Feature")'),
29032
+ itemFields: z57.array(nestedFieldSchema).min(1).describe("Fields for each item in the repeater"),
29033
+ htmlContext: z57.string().describe("Brief description of where this appears in the HTML")
29034
+ });
29035
+ var groupFieldSchema2 = z57.object({
29036
+ id: z57.string().min(1).describe("camelCase field ID (e.g., contactInfo, seoSettings)"),
29037
+ type: z57.literal("group"),
29038
+ label: z57.string().min(1),
29039
+ required: z57.boolean(),
29040
+ groupFields: z57.array(nestedFieldSchema).min(1).describe("Fields within the group"),
29041
+ htmlContext: z57.string().describe("Brief description of where this appears in the HTML")
29042
+ });
29043
+ var extractedFieldSchema = z57.union([
28859
29044
  simpleFieldSchema,
28860
29045
  repeaterFieldSchema2,
28861
29046
  groupFieldSchema2
28862
29047
  ]);
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"),
29048
+ var extractedEntrySchema = z57.object({
29049
+ identifier: z57.string().regex(/^[a-z0-9-]+$/).describe("Unique slug-safe identifier (e.g., wine-tasting-evening)"),
29050
+ title: z57.string().min(1).describe("Entry title"),
28866
29051
  // Use passthrough() instead of record() - generates additionalProperties:true without propertyNames
28867
29052
  // 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()
29053
+ data: z57.object({}).passthrough().describe("Entry data matching the content type schema")
29054
+ });
29055
+ var newContentTypeSchema = z57.object({
29056
+ key: z57.string().regex(/^[a-z][a-z0-9-]*$/).describe("Content type key (e.g., testimonial, team-member)"),
29057
+ name: z57.string().min(1).describe("Human-readable name"),
29058
+ description: z57.string().nullable().describe("Description of this content type"),
29059
+ fields: z57.array(z57.object({
29060
+ id: z57.string().min(1),
29061
+ type: z57.string().min(1),
29062
+ label: z57.string().min(1),
29063
+ required: z57.boolean().nullable(),
29064
+ description: z57.string().nullable()
28880
29065
  })).min(1),
28881
- isRouted: z56.boolean().describe("Whether entries have their own pages")
29066
+ isRouted: z57.boolean().describe("Whether entries have their own pages")
28882
29067
  });
28883
- var contentTypeApproachSchema = z56.discriminatedUnion("approach", [
29068
+ var contentTypeApproachSchema = z57.discriminatedUnion("approach", [
28884
29069
  // 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")
29070
+ z57.object({
29071
+ approach: z57.literal("existingContentType"),
29072
+ contentTypeKey: z57.string().min(1).describe("Key of the existing content type to use"),
29073
+ entries: z57.array(extractedEntrySchema).min(1).describe("Extracted entries"),
29074
+ rationale: z57.string().describe("Why this content type fits")
28890
29075
  }),
28891
29076
  // Create a new content type
28892
- z56.object({
28893
- approach: z56.literal("newContentType"),
29077
+ z57.object({
29078
+ approach: z57.literal("newContentType"),
28894
29079
  contentType: newContentTypeSchema,
28895
- entries: z56.array(extractedEntrySchema).min(1).describe("Extracted entries"),
28896
- rationale: z56.string().describe("Why a new content type is needed")
29080
+ entries: z57.array(extractedEntrySchema).min(1).describe("Extracted entries"),
29081
+ rationale: z57.string().describe("Why a new content type is needed")
28897
29082
  }),
28898
29083
  // 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")
29084
+ z57.object({
29085
+ approach: z57.literal("repeater"),
29086
+ rationale: z57.string().describe("Why repeater is preferred over content type")
28902
29087
  }),
28903
29088
  // 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")
29089
+ z57.object({
29090
+ approach: z57.literal("none"),
29091
+ rationale: z57.string().describe("Why this is not list data")
28907
29092
  })
28908
29093
  ]);
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),
29094
+ var pass1OutputSchema = z57.object({
29095
+ blockId: z57.string().regex(/^custom\.[a-z][a-z0-9-]*$/).describe("Block ID like custom.hero-section"),
29096
+ blockTitle: z57.string().min(1),
29097
+ blockDescription: z57.string().nullable(),
29098
+ category: z57.enum(["marketing", "content", "blog", "media", "layout", "interactive"]),
29099
+ fields: z57.array(extractedFieldSchema).min(1),
28915
29100
  /**
28916
29101
  * Content type decision for list-like content.
28917
29102
  * When content types are available, the LLM may decide to use content entries
@@ -29154,10 +29339,10 @@ async function getJsonFromAiText(ai, config, userMessage, schema) {
29154
29339
  }
29155
29340
 
29156
29341
  // src/manifest/passes/pass3-styling.ts
29157
- import { z as z59 } from "zod";
29342
+ import { z as z60 } from "zod";
29158
29343
 
29159
29344
  // src/manifest/validation/output-schema.ts
29160
- import { z as z58 } from "zod";
29345
+ import { z as z59 } from "zod";
29161
29346
 
29162
29347
  // src/manifest/validation/layout-utils.ts
29163
29348
  function collectLayoutNodeInfos(node, path2 = "layout", out = []) {
@@ -29198,14 +29383,14 @@ function collectLayoutClassNames(node, out = /* @__PURE__ */ new Set()) {
29198
29383
  }
29199
29384
 
29200
29385
  // 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)
29386
+ import { z as z58 } from "zod";
29387
+ var titleSourceValueSchema = z58.union([
29388
+ z58.string().min(1),
29389
+ z58.array(z58.string().min(1)).min(1)
29205
29390
  ]);
29206
29391
 
29207
29392
  // src/manifest/validation/output-schema.ts
29208
- var blockCategoryEnum2 = z58.enum([
29393
+ var blockCategoryEnum2 = z59.enum([
29209
29394
  "marketing",
29210
29395
  "content",
29211
29396
  "blog",
@@ -29213,53 +29398,53 @@ var blockCategoryEnum2 = z58.enum([
29213
29398
  "layout",
29214
29399
  "interactive"
29215
29400
  ]);
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()
29401
+ var llmColorValue = z59.object({
29402
+ name: z59.string(),
29403
+ hex: z59.string()
29404
+ });
29405
+ var llmThemePrimitive = z59.union([
29406
+ z59.string(),
29407
+ z59.number(),
29408
+ z59.boolean(),
29409
+ z59.null()
29225
29410
  ]);
29226
- var llmThemePatchValue = z58.union([
29411
+ var llmThemePatchValue = z59.union([
29227
29412
  llmThemePrimitive,
29228
29413
  llmColorValue,
29229
- z58.array(llmColorValue),
29230
- z58.array(llmThemePrimitive)
29414
+ z59.array(llmColorValue),
29415
+ z59.array(llmThemePrimitive)
29231
29416
  ]);
29232
- var llmThemePatchOpSchema = z58.discriminatedUnion("op", [
29233
- z58.object({
29234
- op: z58.literal("add"),
29235
- path: z58.string().min(1),
29417
+ var llmThemePatchOpSchema = z59.discriminatedUnion("op", [
29418
+ z59.object({
29419
+ op: z59.literal("add"),
29420
+ path: z59.string().min(1),
29236
29421
  value: llmThemePatchValue
29237
29422
  }),
29238
- z58.object({
29239
- op: z58.literal("replace"),
29240
- path: z58.string().min(1),
29423
+ z59.object({
29424
+ op: z59.literal("replace"),
29425
+ path: z59.string().min(1),
29241
29426
  value: llmThemePatchValue
29242
29427
  }),
29243
- z58.object({ op: z58.literal("remove"), path: z58.string().min(1) })
29428
+ z59.object({ op: z59.literal("remove"), path: z59.string().min(1) })
29244
29429
  ]);
29245
- var llmCssDeclaration = z58.object({
29246
- property: z58.string(),
29247
- value: z58.string()
29430
+ var llmCssDeclaration = z59.object({
29431
+ property: z59.string(),
29432
+ value: z59.string()
29248
29433
  });
29249
- var llmCustomCssRuleSchema = z58.object({
29250
- id: z58.string().min(1),
29251
- selector: z58.string().min(1),
29252
- declarations: z58.array(llmCssDeclaration)
29434
+ var llmCustomCssRuleSchema = z59.object({
29435
+ id: z59.string().min(1),
29436
+ selector: z59.string().min(1),
29437
+ declarations: z59.array(llmCssDeclaration)
29253
29438
  });
29254
- var llmNestedRuleSchema = z58.object({
29255
- selector: z58.string().min(1),
29256
- declarations: z58.array(llmCssDeclaration)
29439
+ var llmNestedRuleSchema = z59.object({
29440
+ selector: z59.string().min(1),
29441
+ declarations: z59.array(llmCssDeclaration)
29257
29442
  });
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)
29443
+ var llmMediaAtRuleSchema = z59.object({
29444
+ id: z59.string().min(1),
29445
+ type: z59.literal("media"),
29446
+ query: z59.string().min(1),
29447
+ rules: z59.array(llmNestedRuleSchema)
29263
29448
  });
29264
29449
  function normalizeDeclarationsArrayToRecord(declarations) {
29265
29450
  const record = {};
@@ -29289,85 +29474,85 @@ function normalizeLlmMediaAtRule(atRule) {
29289
29474
  rules: atRule.rules.map(normalizeLlmNestedRule)
29290
29475
  };
29291
29476
  }
29292
- var jsonPrimitiveSchema = z58.union([
29293
- z58.string(),
29294
- z58.number(),
29295
- z58.boolean(),
29296
- z58.null()
29477
+ var jsonPrimitiveSchema = z59.union([
29478
+ z59.string(),
29479
+ z59.number(),
29480
+ z59.boolean(),
29481
+ z59.null()
29297
29482
  ]);
29298
- var jsonValueSchema = z58.union([
29483
+ var jsonValueSchema = z59.union([
29299
29484
  jsonPrimitiveSchema,
29300
- z58.array(jsonPrimitiveSchema)
29485
+ z59.array(jsonPrimitiveSchema)
29301
29486
  ]);
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(),
29487
+ var llmBaseFieldSchema = z59.object({
29488
+ id: z59.string().min(1),
29489
+ label: z59.string().min(1),
29490
+ description: z59.string().nullable(),
29491
+ required: z59.boolean(),
29307
29492
  defaultValue: jsonValueSchema.nullable()
29308
29493
  });
29309
29494
  var llmTextFieldSchema = llmBaseFieldSchema.extend({
29310
- type: z58.literal("text"),
29311
- multiline: z58.boolean(),
29312
- maxLength: z58.number().int().positive().nullable()
29495
+ type: z59.literal("text"),
29496
+ multiline: z59.boolean(),
29497
+ maxLength: z59.number().int().positive().nullable()
29313
29498
  });
29314
29499
  var llmRichTextFieldSchema = llmBaseFieldSchema.extend({
29315
- type: z58.literal("richText")
29500
+ type: z59.literal("richText")
29316
29501
  });
29317
29502
  var llmMediaFieldSchema = llmBaseFieldSchema.extend({
29318
- type: z58.literal("media"),
29319
- mediaKinds: z58.array(z58.enum(["image", "video", "audio"])).nullable()
29503
+ type: z59.literal("media"),
29504
+ mediaKinds: z59.array(z59.enum(["image", "video", "audio"])).nullable()
29320
29505
  });
29321
29506
  var llmFileFieldSchema = llmBaseFieldSchema.extend({
29322
- type: z58.literal("file"),
29323
- fileKinds: z58.array(z58.enum(["document", "spreadsheet", "archive", "audio"])).nullable()
29507
+ type: z59.literal("file"),
29508
+ fileKinds: z59.array(z59.enum(["document", "spreadsheet", "archive", "audio"])).nullable()
29324
29509
  });
29325
29510
  var llmBooleanFieldSchema = llmBaseFieldSchema.extend({
29326
- type: z58.literal("boolean")
29511
+ type: z59.literal("boolean")
29327
29512
  });
29328
29513
  var llmLinkFieldSchema = llmBaseFieldSchema.extend({
29329
- type: z58.literal("link")
29514
+ type: z59.literal("link")
29330
29515
  });
29331
29516
  var llmSelectFieldSchema = llmBaseFieldSchema.extend({
29332
- type: z58.literal("select"),
29333
- options: z58.array(
29334
- z58.object({
29335
- value: z58.string(),
29336
- label: z58.string()
29517
+ type: z59.literal("select"),
29518
+ options: z59.array(
29519
+ z59.object({
29520
+ value: z59.string(),
29521
+ label: z59.string()
29337
29522
  })
29338
29523
  ),
29339
- multiple: z58.boolean().nullable()
29524
+ multiple: z59.boolean().nullable()
29340
29525
  });
29341
29526
  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(),
29527
+ type: z59.literal("number")
29528
+ });
29529
+ var llmNestedFieldSchema = z59.object({
29530
+ id: z59.string(),
29531
+ type: z59.string(),
29532
+ label: z59.string(),
29533
+ required: z59.boolean().nullable(),
29534
+ multiline: z59.boolean().nullable(),
29350
29535
  defaultValue: jsonValueSchema.nullable()
29351
29536
  }).passthrough();
29352
- var llmNestedFieldsSchema = z58.array(llmNestedFieldSchema);
29537
+ var llmNestedFieldsSchema = z59.array(llmNestedFieldSchema);
29353
29538
  var llmGroupFieldSchema = llmBaseFieldSchema.extend({
29354
- type: z58.literal("group"),
29355
- schema: z58.object({
29539
+ type: z59.literal("group"),
29540
+ schema: z59.object({
29356
29541
  fields: llmNestedFieldsSchema
29357
29542
  })
29358
29543
  });
29359
29544
  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({
29545
+ type: z59.literal("repeater"),
29546
+ itemLabel: z59.string(),
29547
+ itemLabelSource: z59.string().nullable(),
29548
+ minItems: z59.number().int().min(0),
29549
+ maxItems: z59.number().int().positive().nullable(),
29550
+ allowConversion: z59.boolean(),
29551
+ schema: z59.object({
29367
29552
  fields: llmNestedFieldsSchema
29368
29553
  })
29369
29554
  });
29370
- var llmFieldSchema = z58.union([
29555
+ var llmFieldSchema = z59.union([
29371
29556
  llmTextFieldSchema,
29372
29557
  llmRichTextFieldSchema,
29373
29558
  llmMediaFieldSchema,
@@ -29379,66 +29564,66 @@ var llmFieldSchema = z58.union([
29379
29564
  llmGroupFieldSchema,
29380
29565
  llmRepeaterFieldSchema
29381
29566
  ]);
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()
29567
+ var llmBindingSchema = z59.object({
29568
+ from: z59.string(),
29569
+ fallback: z59.string().nullable(),
29570
+ transforms: z59.array(
29571
+ z59.object({
29572
+ id: z59.string()
29388
29573
  })
29389
29574
  ).nullable()
29390
29575
  });
29391
- var llmRepeatSchema = z58.object({
29392
- collection: z58.object({ from: z58.string() }),
29393
- itemName: z58.string()
29576
+ var llmRepeatSchema = z59.object({
29577
+ collection: z59.object({ from: z59.string() }),
29578
+ itemName: z59.string()
29394
29579
  });
29395
- var llmPropsSchema = z58.object({}).passthrough().nullable();
29580
+ var llmPropsSchema = z59.object({}).passthrough().nullable();
29396
29581
  function buildLlmNodeSchema(maxDepth) {
29397
- const nodeBase = z58.object({
29398
- type: z58.string(),
29582
+ const nodeBase = z59.object({
29583
+ type: z59.string(),
29399
29584
  props: llmPropsSchema,
29400
29585
  $bind: llmBindingSchema.nullable(),
29401
29586
  $repeat: llmRepeatSchema.nullable(),
29402
- $when: z58.object({
29403
- condition: z58.object({ from: z58.string() })
29587
+ $when: z59.object({
29588
+ condition: z59.object({ from: z59.string() })
29404
29589
  }).nullable()
29405
29590
  });
29406
- let schema = nodeBase.extend({ children: z58.null() });
29591
+ let schema = nodeBase.extend({ children: z59.null() });
29407
29592
  for (let i = 0; i < maxDepth; i++) {
29408
- schema = nodeBase.extend({ children: z58.array(schema).nullable() });
29593
+ schema = nodeBase.extend({ children: z59.array(schema).nullable() });
29409
29594
  }
29410
29595
  return schema;
29411
29596
  }
29412
29597
  var MAX_LAYOUT_DEPTH = 6;
29413
29598
  var llmNodeSchema = buildLlmNodeSchema(MAX_LAYOUT_DEPTH);
29414
- var llmCustomBlockSchema = z58.object({
29415
- id: z58.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
29599
+ var llmCustomBlockSchema = z59.object({
29600
+ id: z59.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
29416
29601
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
29417
29602
  }),
29418
- title: z58.string().min(1, "Title is required"),
29603
+ title: z59.string().min(1, "Title is required"),
29419
29604
  // Keep in sync with `sdkCustomBlockSchema` and the system manifest schema:
29420
29605
  // - `null` used by OpenAI structured output for "optional" values
29421
29606
  // - array allows multi-part titles (e.g. ["navLabel", "title"])
29422
29607
  titleSource: titleSourceValueSchema.nullable(),
29423
- description: z58.string().nullable(),
29608
+ description: z59.string().nullable(),
29424
29609
  category: blockCategoryEnum2,
29425
- icon: z58.string().nullable(),
29426
- tags: z58.array(z58.string()).nullable(),
29610
+ icon: z59.string().nullable(),
29611
+ tags: z59.array(z59.string()).nullable(),
29427
29612
  // Use LLM-specific field schema (no z.any() for OpenAI compatibility)
29428
29613
  fields: llmFieldSchema.array().min(1, "Custom blocks must have at least one field"),
29429
29614
  // Use LLM-specific node schema (no z.any() for OpenAI compatibility)
29430
29615
  layout: llmNodeSchema
29431
29616
  });
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(),
29617
+ var htmlToManifestOutputSchema = z59.object({
29618
+ blocks: z59.array(llmCustomBlockSchema).min(1, "At least one block is required").max(10, "Maximum 10 blocks per conversion"),
29619
+ themePatch: z59.array(llmThemePatchOpSchema).nullable(),
29620
+ customCssRules: z59.array(llmCustomCssRuleSchema).nullable(),
29621
+ customCssAtRules: z59.array(llmMediaAtRuleSchema).nullable(),
29437
29622
  /**
29438
29623
  * Explanation of fixes made when retrying after validation errors.
29439
29624
  * Should explain what changes were made and why.
29440
29625
  */
29441
- fixRationale: z58.string().nullable()
29626
+ fixRationale: z59.string().nullable()
29442
29627
  });
29443
29628
  function collectValidationErrors(output) {
29444
29629
  const errors = [];
@@ -30401,20 +30586,20 @@ function formatValidationFeedback(errors, output) {
30401
30586
  }
30402
30587
 
30403
30588
  // src/manifest/passes/pass3-styling.ts
30404
- var pass3aOutputSchema = z59.object({
30405
- classNamePatches: z59.array(
30406
- z59.object({
30407
- nodePath: z59.string(),
30589
+ var pass3aOutputSchema = z60.object({
30590
+ classNamePatches: z60.array(
30591
+ z60.object({
30592
+ nodePath: z60.string(),
30408
30593
  // "" for root, "children[0]", "children[0].children[1]" etc.
30409
- className: z59.string().min(1)
30594
+ className: z60.string().min(1)
30410
30595
  })
30411
30596
  ),
30412
- rationale: z59.string()
30597
+ rationale: z60.string()
30413
30598
  });
30414
- var pass3bOutputSchema = z59.object({
30415
- customCssRules: z59.array(llmCustomCssRuleSchema).nullable(),
30416
- customCssAtRules: z59.array(llmMediaAtRuleSchema).nullable(),
30417
- rationale: z59.string()
30599
+ var pass3bOutputSchema = z60.object({
30600
+ customCssRules: z60.array(llmCustomCssRuleSchema).nullable(),
30601
+ customCssAtRules: z60.array(llmMediaAtRuleSchema).nullable(),
30602
+ rationale: z60.string()
30418
30603
  });
30419
30604
  function getNodeAtPath(layout, path2) {
30420
30605
  if (path2 === "" || path2 === "root" || path2 === "layout") {
@@ -30721,38 +30906,38 @@ Do NOT include [data-block=...] in selectors - we add that automatically.
30721
30906
 
30722
30907
  // src/page-converter/passes/pass1-segmentation-matching.ts
30723
30908
  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),
30909
+ var sectionTypeEnum = z61.enum(["header", "content", "footer"]);
30910
+ var blockCategoryEnum3 = z61.enum(["marketing", "content", "blog", "media", "layout", "interactive"]);
30911
+ var baseSectionSchema = z61.object({
30912
+ html: z61.string().min(1),
30913
+ purpose: z61.string().min(1),
30729
30914
  sectionType: sectionTypeEnum
30730
30915
  });
30731
30916
  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)
30917
+ decision: z61.literal("builtin"),
30918
+ matchedBlock: z61.string().min(1),
30919
+ matchScore: z61.number().min(0).max(100),
30920
+ matchRationale: z61.string().min(1)
30736
30921
  });
30737
30922
  var customMatchSchema = baseSectionSchema.extend({
30738
- decision: z60.literal("custom"),
30739
- customBlockSuggestion: z60.object({
30740
- title: z60.string().min(1),
30923
+ decision: z61.literal("custom"),
30924
+ customBlockSuggestion: z61.object({
30925
+ title: z61.string().min(1),
30741
30926
  category: blockCategoryEnum3
30742
30927
  })
30743
30928
  });
30744
- var sectionMatchSchema = z60.discriminatedUnion("decision", [
30929
+ var sectionMatchSchema = z61.discriminatedUnion("decision", [
30745
30930
  builtinMatchSchema,
30746
30931
  customMatchSchema
30747
30932
  ]);
30748
- var skippedContentSchema = z60.object({
30749
- description: z60.string(),
30750
- reason: z60.string()
30933
+ var skippedContentSchema = z61.object({
30934
+ description: z61.string(),
30935
+ reason: z61.string()
30751
30936
  });
30752
- var combinedPassSchema = z60.object({
30753
- sections: z60.array(sectionMatchSchema).min(1),
30754
- skippedContent: z60.array(skippedContentSchema).nullable(),
30755
- rationale: z60.string()
30937
+ var combinedPassSchema = z61.object({
30938
+ sections: z61.array(sectionMatchSchema).min(1),
30939
+ skippedContent: z61.array(skippedContentSchema).nullable(),
30940
+ rationale: z61.string()
30756
30941
  });
30757
30942
  function buildSystemPrompt(availableBlocks, matchThreshold) {
30758
30943
  const blockCatalog = availableBlocks.map((b) => {
@@ -30959,10 +31144,10 @@ async function segmentAndMatchBlocks(html, availableBlocks, ctx) {
30959
31144
  }
30960
31145
 
30961
31146
  // src/page-converter/passes/pass2-population.ts
30962
- import { z as z62 } from "zod";
31147
+ import { z as z63 } from "zod";
30963
31148
 
30964
31149
  // src/manifest/three-pass-converter.ts
30965
- import { z as z61 } from "zod";
31150
+ import { z as z62 } from "zod";
30966
31151
 
30967
31152
  // src/manifest/prompt/theme-summary.ts
30968
31153
  var WEIGHT_MAP = {
@@ -31263,9 +31448,9 @@ function mapPass1FieldToOutputField(field) {
31263
31448
  maxLength: null
31264
31449
  };
31265
31450
  }
31266
- var pass2OutputSchema = z61.object({
31451
+ var pass2OutputSchema = z62.object({
31267
31452
  layout: llmNodeSchema,
31268
- rationale: z61.string().describe("Explain which node binds to which field")
31453
+ rationale: z62.string().describe("Explain which node binds to which field")
31269
31454
  });
31270
31455
  function buildPass2SystemPrompt(fields3, contentTypeApproach) {
31271
31456
  const fieldList = fields3.map((f) => {
@@ -32125,9 +32310,9 @@ async function convertHtmlToManifest(input, options) {
32125
32310
  }
32126
32311
 
32127
32312
  // src/page-converter/passes/pass2-population.ts
32128
- var builtinContentSchema = z62.object({
32129
- content: z62.unknown(),
32130
- rationale: z62.string()
32313
+ var builtinContentSchema = z63.object({
32314
+ content: z63.unknown(),
32315
+ rationale: z63.string()
32131
32316
  });
32132
32317
  var SECTION_STYLES_ALLOWED_KEYS = /* @__PURE__ */ new Set(["background", "spacing"]);
32133
32318
  var BOX_STYLES_ALLOWED_KEYS = /* @__PURE__ */ new Set(["background", "spacing", "raised", "rounded", "border", "fullWidth"]);