@riverbankcms/sdk 0.89.1 → 0.90.1

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 (178) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-FNFRVSIM.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-3WXJFQXG.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-2UCIMKUB.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +216 -0
  6. package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
  7. package/dist/_dts/api/src/bookingConfig.d.ts +3 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
  9. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  10. package/dist/_dts/api/src/bookings.d.ts +3 -1
  11. package/dist/_dts/api/src/event-listing-destination.d.ts +59 -0
  12. package/dist/_dts/api/src/index.d.ts +10 -5
  13. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +0 -1
  14. package/dist/_dts/api/src/navigation.d.ts +2 -0
  15. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +18 -6
  16. package/dist/_dts/api/src/request.d.ts +21 -0
  17. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  18. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  19. package/dist/_dts/api/src/settings/permissions.d.ts +273 -0
  20. package/dist/_dts/api/src/types.d.ts +4 -1
  21. package/dist/_dts/api/src/url.d.ts +6 -3
  22. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  25. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  27. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  28. package/dist/_dts/blocks/src/index.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +60 -2
  31. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +16 -5
  32. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  33. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -9
  34. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  36. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  38. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  39. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  40. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
  41. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  42. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +7 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +48 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  56. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  58. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/destination.d.ts +8 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  64. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  65. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  66. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  67. package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
  68. package/dist/_dts/core/src/event-pricing.d.ts +12 -2
  69. package/dist/_dts/core/src/money-input.d.ts +18 -0
  70. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
  71. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  72. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  73. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  74. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  75. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  76. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  77. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  78. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  79. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  80. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  81. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  82. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  83. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  84. package/dist/_dts/sdk/src/components.d.ts +1 -0
  85. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  86. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  87. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  88. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  89. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  90. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  91. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  92. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  93. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  94. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +11 -1
  95. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  96. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  97. package/dist/_dts/sdk/src/version.d.ts +1 -1
  98. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  99. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  100. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  101. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  102. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  103. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  104. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  105. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  106. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  107. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  108. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  109. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  110. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  111. package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
  112. package/dist/{chunk-7YUAXONX.mjs → chunk-CR2VX432.mjs} +1563 -877
  113. package/dist/{chunk-HKJQERFR.mjs → chunk-FA6LVZ7C.mjs} +91 -55
  114. package/dist/{chunk-TGBJWKMP.mjs → chunk-H6TT5ZXI.mjs} +9 -1
  115. package/dist/{chunk-ZQRBLCW5.mjs → chunk-SYYJZPKU.mjs} +2 -2
  116. package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
  117. package/dist/cli/index.mjs +1057 -632
  118. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  119. package/dist/cli/init-docs/content/content-management.md +27 -0
  120. package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-4K7VGZ3I.mjs} +2 -2
  121. package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-3QXA3CIS.mjs} +26 -271
  122. package/dist/client/bookings.mjs +1586 -825
  123. package/dist/client/{carousel-3TKQSNJC.mjs → carousel-BEJKNGQ7.mjs} +3 -3
  124. package/dist/client/{cart-6XHSZK23.mjs → cart-44BBM6XG.mjs} +7 -8
  125. package/dist/client/{checkout-FVSPM6FI.mjs → checkout-THMHEYKF.mjs} +7 -8
  126. package/dist/client/{chunk-25W2EQUN.mjs → chunk-3H5CLFKT.mjs} +8 -0
  127. package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-4COPESPO.mjs} +13 -16
  128. package/dist/client/chunk-5AJIMWKS.mjs +436 -0
  129. package/dist/client/{chunk-UQFY4AHX.mjs → chunk-B4H6QMPY.mjs} +157 -49
  130. package/dist/client/{chunk-VGLXACVK.mjs → chunk-DQIRKNZE.mjs} +1 -1
  131. package/dist/client/{chunk-7DH35FGA.mjs → chunk-EJBHK74Y.mjs} +1 -1
  132. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  133. package/dist/client/{chunk-CQKKFEQD.mjs → chunk-JV7ZNAOU.mjs} +378 -111
  134. package/dist/client/{chunk-FHU6PFPM.mjs → chunk-KNTLBQ3N.mjs} +1 -1
  135. package/dist/client/{chunk-RSQWWUAD.mjs → chunk-PEDNDLPB.mjs} +4 -4
  136. package/dist/client/{chunk-EY42X22F.mjs → chunk-SLY6UDAS.mjs} +157 -5
  137. package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  138. package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-ZIAF2DA4.mjs} +1 -1
  139. package/dist/client/client.mjs +3552 -2898
  140. package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-URX7RCCK.mjs} +20 -58
  141. package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-GTENOQCE.mjs} +10 -11
  142. package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-EZVB72MF.mjs} +10 -11
  143. package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-CH4BJR5Z.mjs} +10 -11
  144. package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-4BVOI5HS.mjs} +10 -11
  145. package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-37LPIKIE.mjs} +10 -11
  146. package/dist/client/{form-WZZFFGMU.mjs → form-FX3Y54YK.mjs} +7 -7
  147. package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-UOZZGVYL.mjs} +3 -3
  148. package/dist/client/hooks.mjs +1169 -1063
  149. package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-VSIPKV35.mjs} +3 -3
  150. package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-6FRJKNAF.mjs} +5 -5
  151. package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-6AHMLXCO.mjs} +7 -8
  152. package/dist/client/{productList-5ABEMKUG.mjs → productList-M2CYIZVH.mjs} +7 -8
  153. package/dist/client/rendering/client.mjs +2912 -2316
  154. package/dist/client/rendering/islands.mjs +19 -19
  155. package/dist/client/rendering.mjs +2874 -2230
  156. package/dist/client/{shop-OMMQZ6YO.mjs → shop-AUOT6GEX.mjs} +7 -8
  157. package/dist/client/spam-protection.mjs +4 -5
  158. package/dist/preview-next/before-render.mjs +2 -2
  159. package/dist/preview-next/client/runtime.mjs +5 -5
  160. package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-6GPJNLU6.mjs} +6 -6
  161. package/dist/server/components.mjs +1856 -1509
  162. package/dist/server/config-validation.mjs +1394 -1288
  163. package/dist/server/config.mjs +1394 -1288
  164. package/dist/server/data.mjs +1169 -1063
  165. package/dist/server/index.mjs +135 -100
  166. package/dist/server/navigation.mjs +20 -30
  167. package/dist/server/next.mjs +1936 -1576
  168. package/dist/server/page-converter.mjs +1081 -967
  169. package/dist/server/prebuild.mjs +1 -1
  170. package/dist/server/rendering/server.mjs +1868 -1521
  171. package/dist/server/rendering.mjs +1878 -1531
  172. package/dist/server/routing.mjs +1248 -1089
  173. package/dist/server/server.mjs +1312 -1171
  174. package/dist/server/theme-bridge.mjs +8 -5
  175. package/package.json +3 -3
  176. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
  177. package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
  178. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
@@ -44,7 +44,7 @@ function fallbackBinding(...sources) {
44
44
  }
45
45
 
46
46
  // src/config/validation.ts
47
- import { z as z74 } from "zod";
47
+ import { z as z72 } from "zod";
48
48
 
49
49
  // ../api/src/apiEndpointTypes.ts
50
50
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -6540,6 +6540,8 @@ function publicEventPricingType(pricing) {
6540
6540
  case "ticket_types":
6541
6541
  case "course":
6542
6542
  return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
6543
+ case "external":
6544
+ return "external";
6543
6545
  }
6544
6546
  }
6545
6547
  function isFreePublicEventPriceDisplay(display) {
@@ -6553,6 +6555,7 @@ function isFreePublicEventPriceDisplay(display) {
6553
6555
  case "range":
6554
6556
  case "mixed":
6555
6557
  case "unavailable":
6558
+ case "external":
6556
6559
  return false;
6557
6560
  }
6558
6561
  }
@@ -6813,7 +6816,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6813
6816
  );
6814
6817
 
6815
6818
  // ../api/src/sdkConfig/contracts.ts
6816
- import { z as z65 } from "zod";
6819
+ import { z as z63 } from "zod";
6817
6820
 
6818
6821
  // ../blocks/src/system/manifest/augmentManifest.ts
6819
6822
  function augmentManifest(manifest) {
@@ -7241,12 +7244,17 @@ var visibleWhenPredicateSchema = z4.object({
7241
7244
  minItems: z4.number().int().nonnegative().optional(),
7242
7245
  maxItems: z4.number().int().nonnegative().optional()
7243
7246
  });
7244
- var visibleWhenSchema = z4.union([
7245
- visibleWhenPredicateSchema,
7246
- z4.object({
7247
- allOf: z4.array(visibleWhenPredicateSchema).min(1)
7248
- })
7249
- ]);
7247
+ var visibleWhenSchema = z4.lazy(
7248
+ () => z4.union([
7249
+ visibleWhenPredicateSchema,
7250
+ z4.object({
7251
+ allOf: z4.array(visibleWhenSchema).min(1)
7252
+ }),
7253
+ z4.object({
7254
+ anyOf: z4.array(visibleWhenSchema).min(1)
7255
+ })
7256
+ ])
7257
+ );
7250
7258
  var uiSchema = z4.object({
7251
7259
  widget: z4.string().optional(),
7252
7260
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -20151,9 +20159,6 @@ var heroCopyFragment = defineFragment({
20151
20159
  maxLength: 600
20152
20160
  }
20153
20161
  ],
20154
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
20155
- // `splitEditorial` variant reads these nodes by index; keep the order stable
20156
- // (it fails fast at import if the count changes).
20157
20162
  layout: [
20158
20163
  text(
20159
20164
  {
@@ -22391,32 +22396,6 @@ var splitReverseLayout = splitLayoutWith([
22391
22396
  splitContentColumn,
22392
22397
  splitImageColumn
22393
22398
  ]);
22394
- var heroEyebrowNode = heroCopyFragment.layout[0];
22395
- var heroHeadlineNode = heroCopyFragment.layout[1];
22396
- var heroSubheadlineNode = heroCopyFragment.layout[2];
22397
- var heroCtaRowNode = heroCtaRowFragment.layout[0];
22398
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
22399
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
22400
- }
22401
- var heroEditorialBottomRow = inline(
22402
- {
22403
- gap: "lg",
22404
- align: "end",
22405
- justify: "start",
22406
- wrap: true,
22407
- className: "rb-w-full"
22408
- },
22409
- [heroSubheadlineNode, heroCtaRowNode]
22410
- );
22411
- var splitEditorialContentColumn = heroContentWrapper(
22412
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
22413
- "md",
22414
- "rb-w-full rb-text-left"
22415
- );
22416
- var splitEditorialLayout = splitLayoutWith([
22417
- splitEditorialContentColumn,
22418
- splitImageColumn
22419
- ]);
22420
22399
  var heroConfig = {
22421
22400
  id: "block.hero",
22422
22401
  title: "Hero",
@@ -22440,7 +22419,8 @@ var heroConfig = {
22440
22419
  id: "imageShape",
22441
22420
  label: "Image shape",
22442
22421
  defaultValue: "default",
22443
- uiIntent: "display"
22422
+ uiIntent: "display",
22423
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
22444
22424
  })
22445
22425
  ],
22446
22426
  layout: classicLayout,
@@ -22448,8 +22428,7 @@ var heroConfig = {
22448
22428
  classic: classicLayout,
22449
22429
  micro: microLayout,
22450
22430
  split: splitLayout,
22451
- splitReverse: splitReverseLayout,
22452
- splitEditorial: splitEditorialLayout
22431
+ splitReverse: splitReverseLayout
22453
22432
  },
22454
22433
  defaultVariant: "classic",
22455
22434
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -24325,8 +24304,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
24325
24304
  return isPlainObject(raw) ? raw : null;
24326
24305
  }
24327
24306
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
24307
+ const explicitValue = readString(content, fallbackKey);
24308
+ if (explicitValue !== void 0) return explicitValue;
24328
24309
  const generated = resolveGeneratedHeroLayoutStyles(content);
24329
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
24310
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
24330
24311
  }
24331
24312
  function resolveHeroVariant(content) {
24332
24313
  const variant = readString(content, "variant");
@@ -24339,7 +24320,7 @@ function resolveHeroContentAlignment(content) {
24339
24320
  const raw = readHeroLayoutString(content, "contentAlignment");
24340
24321
  if (raw === "left" || raw === "center" || raw === "right") return raw;
24341
24322
  const variant = resolveHeroVariant(content);
24342
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
24323
+ if (variant === "split" || variant === "splitReverse") return "left";
24343
24324
  return "center";
24344
24325
  }
24345
24326
  function resolveHeroVerticalAlignment(content) {
@@ -24349,7 +24330,7 @@ function resolveHeroVerticalAlignment(content) {
24349
24330
  const minHeight = sectionStyles?.minHeight;
24350
24331
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
24351
24332
  const variant = resolveHeroVariant(content);
24352
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
24333
+ if (variant === "split" || variant === "splitReverse") return "center";
24353
24334
  return "top";
24354
24335
  }
24355
24336
  function resolveHeroContentMaxWidth(content) {
@@ -27915,9 +27896,6 @@ var appointmentBookingBlockDefinition = {
27915
27896
  }
27916
27897
  };
27917
27898
 
27918
- // ../blocks/src/system/blocks/event-registration.ts
27919
- import { z as z47 } from "zod";
27920
-
27921
27899
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27922
27900
  import { z as z43 } from "zod";
27923
27901
 
@@ -28158,6 +28136,18 @@ var publicCoursesArraySchema = z42.array(publicCourseSchema);
28158
28136
  var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28159
28137
  var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28160
28138
  var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28139
+ var publicEventDestinationSchema = z43.discriminatedUnion("kind", [
28140
+ z43.object({
28141
+ kind: z43.literal("native"),
28142
+ mode: eventDestinationModeSchema,
28143
+ path: z43.string()
28144
+ }),
28145
+ z43.object({
28146
+ kind: z43.literal("external"),
28147
+ url: z43.string(),
28148
+ label: z43.string()
28149
+ })
28150
+ ]);
28161
28151
  var eventVenueSchema = z43.object({
28162
28152
  id: z43.string(),
28163
28153
  name: z43.string(),
@@ -28172,7 +28162,7 @@ var eventCategorySchema = z43.object({
28172
28162
  name: z43.string(),
28173
28163
  color: z43.string().nullable()
28174
28164
  });
28175
- var pricingTypeSchema = z43.enum(["free", "paid"]);
28165
+ var pricingTypeSchema = z43.enum(["free", "paid", "external"]);
28176
28166
  var accessRestrictionSchema = z43.enum(["none", "category"]);
28177
28167
  var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28178
28168
  var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
@@ -28193,6 +28183,7 @@ var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28193
28183
  currency: z43.string()
28194
28184
  }),
28195
28185
  z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28186
+ z43.object({ kind: z43.literal("external"), label: z43.string() }),
28196
28187
  z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28197
28188
  ]);
28198
28189
  var publicEventTicketTypePriceDisplaySchema = z43.union([
@@ -28271,6 +28262,10 @@ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28271
28262
  z43.object({
28272
28263
  kind: z43.literal("course"),
28273
28264
  display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28265
+ }),
28266
+ z43.object({
28267
+ kind: z43.literal("external"),
28268
+ display: z43.object({ kind: z43.literal("external"), label: z43.string() })
28274
28269
  })
28275
28270
  ]);
28276
28271
  var publicTeamMemberSummarySchema = z43.object({
@@ -28299,7 +28294,8 @@ var publicEventSchema = z43.object({
28299
28294
  image: mediaSchema2.nullable().optional()
28300
28295
  }).optional(),
28301
28296
  slug: z43.string(),
28302
- path: z43.string(),
28297
+ path: z43.string().nullable(),
28298
+ destination: publicEventDestinationSchema,
28303
28299
  requiresRegistration: z43.boolean(),
28304
28300
  deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28305
28301
  attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
@@ -28532,24 +28528,57 @@ function normalizeEventStaffMemberId(value) {
28532
28528
  return trimmed ? trimmed : null;
28533
28529
  }
28534
28530
 
28535
- // ../blocks/src/system/blocks/event-registration.shared.ts
28531
+ // ../blocks/src/system/blocks/shop.shared.ts
28536
28532
  import { z as z44 } from "zod";
28537
- var occurrenceContextSchema = z44.object({
28533
+ var publicPassProductSchema = z44.object({
28538
28534
  id: z44.string(),
28539
- seriesId: z44.string(),
28540
- startsAt: z44.string(),
28541
- endsAt: z44.string(),
28542
- timeZone: z44.string(),
28543
- capacityOverride: z44.number().nullable().optional(),
28544
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28535
+ productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28536
+ name: z44.string(),
28537
+ description: z44.string().nullable(),
28538
+ price: z44.number(),
28539
+ currency: z44.string(),
28540
+ creditsTotal: z44.number(),
28541
+ pricePerCredit: z44.number(),
28542
+ validDays: z44.number().nullable(),
28543
+ eligibleCategoryIds: z44.array(z44.string()),
28544
+ eligibleCategoryNames: z44.array(z44.string())
28545
+ });
28546
+ var publicPassProductCollectionSchema = z44.object({
28547
+ passes: z44.array(publicPassProductSchema)
28548
+ });
28549
+ var publicMembershipProductSchema = z44.object({
28550
+ id: z44.string(),
28551
+ name: z44.string(),
28552
+ description: z44.string().nullable(),
28553
+ price: z44.number(),
28554
+ currency: z44.string(),
28555
+ billingInterval: z44.enum(["month", "year"]),
28556
+ eligibleCategoryIds: z44.array(z44.string()),
28557
+ eligibleCategoryNames: z44.array(z44.string())
28558
+ });
28559
+ var publicMembershipProductCollectionSchema = z44.object({
28560
+ memberships: z44.array(publicMembershipProductSchema)
28561
+ });
28562
+
28563
+ // ../blocks/src/system/blocks/event-registration.shared.ts
28564
+ import { z as z45 } from "zod";
28565
+ var occurrenceContextSchema = z45.object({
28566
+ id: z45.string(),
28567
+ seriesId: z45.string(),
28568
+ startsAt: z45.string(),
28569
+ endsAt: z45.string(),
28570
+ timeZone: z45.string(),
28571
+ capacityOverride: z45.number().nullable().optional(),
28572
+ overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28545
28573
  }).nullable();
28546
28574
 
28547
28575
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28548
- import { z as z46 } from "zod";
28576
+ import { z as z47 } from "zod";
28549
28577
 
28550
28578
  // ../blocks/src/system/constants/events.ts
28551
28579
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
28552
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
28580
+ var eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
28581
+ var eventCalendarDefaultViewValues = ["month", "week"];
28553
28582
  var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
28554
28583
  var eventCalendarListLayoutOptions = [
28555
28584
  { id: "stack", label: "Stack" },
@@ -28559,6 +28588,9 @@ var eventCalendarListLayoutOptions = [
28559
28588
  function isEventCalendarDisplayMode(value) {
28560
28589
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
28561
28590
  }
28591
+ function isEventCalendarDefaultView(value) {
28592
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
28593
+ }
28562
28594
  function isEventCalendarListLayout(value) {
28563
28595
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
28564
28596
  }
@@ -28567,12 +28599,41 @@ function isEventContentType(slug) {
28567
28599
  return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
28568
28600
  }
28569
28601
 
28602
+ // ../blocks/src/system/runtime/nodes/events/shared/destination.ts
28603
+ function isRecord3(value) {
28604
+ return typeof value === "object" && value !== null && !Array.isArray(value);
28605
+ }
28606
+ function isRuntimeEventDestination(value) {
28607
+ if (!isRecord3(value) || typeof value.kind !== "string") return false;
28608
+ if (value.kind === "native") {
28609
+ return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
28610
+ }
28611
+ return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
28612
+ }
28613
+ function resolveRuntimeEventDestination(event) {
28614
+ if (isRuntimeEventDestination(event.destination)) {
28615
+ return event.destination;
28616
+ }
28617
+ return {
28618
+ kind: "native",
28619
+ mode: event.eventDestinationMode === "system-managed" ? "system-managed" : "cms-managed",
28620
+ path: typeof event.path === "string" ? event.path : ""
28621
+ };
28622
+ }
28623
+
28570
28624
  // ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
28571
28625
  var DEFAULT_EVENT_CURRENCY = "USD";
28572
28626
  function resolveRuntimeEventPricing(event) {
28573
28627
  if (isPublicEventPricing(event.pricing)) {
28574
28628
  return event.pricing;
28575
28629
  }
28630
+ const destination = resolveRuntimeEventDestination(event);
28631
+ if (destination.kind === "external") {
28632
+ return {
28633
+ kind: "external",
28634
+ display: { kind: "external", label: "External registration" }
28635
+ };
28636
+ }
28576
28637
  const legacy = event;
28577
28638
  const currency = readCurrency(legacy.currency);
28578
28639
  if (event.requiresRegistration === false) {
@@ -28609,22 +28670,22 @@ function resolveRuntimeEventPricing(event) {
28609
28670
  function readCurrency(value) {
28610
28671
  return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY;
28611
28672
  }
28612
- function isRecord3(value) {
28673
+ function isRecord4(value) {
28613
28674
  return typeof value === "object" && value !== null && !Array.isArray(value);
28614
28675
  }
28615
28676
  function isPublicEventPricing(value) {
28616
- if (!isRecord3(value) || typeof value.kind !== "string") return false;
28617
- return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course";
28677
+ if (!isRecord4(value) || typeof value.kind !== "string") return false;
28678
+ return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
28618
28679
  }
28619
28680
  function isPublicEventTicketType(value) {
28620
- return isRecord3(value) && typeof value.id === "string";
28681
+ return isRecord4(value) && typeof value.id === "string";
28621
28682
  }
28622
28683
  function readTicketTypePriceDisplay(value, currency) {
28623
28684
  const display = readLegacyPriceDisplay(value, currency);
28624
- return display.kind === "course" ? { kind: "unavailable", currency } : display;
28685
+ return display.kind === "course" || display.kind === "external" ? { kind: "unavailable", currency } : display;
28625
28686
  }
28626
28687
  function readLegacyPriceDisplay(value, currency) {
28627
- if (!isRecord3(value) || typeof value.kind !== "string") {
28688
+ if (!isRecord4(value) || typeof value.kind !== "string") {
28628
28689
  return { kind: "unavailable", currency };
28629
28690
  }
28630
28691
  const displayCurrency = readCurrency(value.currency);
@@ -28663,7 +28724,7 @@ function readLegacyPriceDisplay(value, currency) {
28663
28724
  case "unavailable":
28664
28725
  return { kind: "unavailable", currency: displayCurrency };
28665
28726
  case "course":
28666
- return isRecord3(value.display) ? {
28727
+ return isRecord4(value.display) ? {
28667
28728
  kind: "course",
28668
28729
  display: readCoursePriceDisplay(value.display, displayCurrency)
28669
28730
  } : {
@@ -28699,16 +28760,17 @@ function readAmount(value) {
28699
28760
  }
28700
28761
 
28701
28762
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28702
- import { z as z45 } from "zod";
28703
- var previewStageSchema = z45.enum(["preview", "published"]);
28704
- var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28705
- var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28706
- var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28707
- var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28708
- var columnOptionSchema = z45.enum(["2", "3", "4"]);
28709
- var weekStartSchema = z45.enum(["sunday", "monday"]);
28710
- var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28711
- var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28763
+ import { z as z46 } from "zod";
28764
+ var previewStageSchema = z46.enum(["preview", "published"]);
28765
+ var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28766
+ var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28767
+ var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28768
+ var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28769
+ var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28770
+ var columnOptionSchema = z46.enum(["2", "3", "4"]);
28771
+ var weekStartSchema = z46.enum(["sunday", "monday"]);
28772
+ var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28773
+ var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
28712
28774
 
28713
28775
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28714
28776
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28726,7 +28788,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
28726
28788
  function findPreSelectedEvent(input) {
28727
28789
  const occurrenceContext = input.occurrenceContext;
28728
28790
  if (!occurrenceContext) {
28729
- return null;
28791
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
28730
28792
  }
28731
28793
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
28732
28794
  startsAt: occurrenceContext.startsAt,
@@ -28749,7 +28811,7 @@ function resolveEventRequiresPayment(input) {
28749
28811
  if (!input.event) {
28750
28812
  return false;
28751
28813
  }
28752
- return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
28814
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) === "paid";
28753
28815
  }
28754
28816
 
28755
28817
  // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
@@ -28768,68 +28830,72 @@ function toRegistrationEvents(events) {
28768
28830
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28769
28831
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28770
28832
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28771
- var contentEntrySchema = z46.object({
28772
- id: z46.string(),
28773
- slug: z46.string(),
28774
- contentTypeSlug: z46.string()
28833
+ var contentEntrySchema = z47.object({
28834
+ id: z47.string(),
28835
+ slug: z47.string(),
28836
+ contentTypeSlug: z47.string()
28775
28837
  });
28776
- var eventRegistrationPublicEventSchema = z46.preprocess(
28838
+ var eventRegistrationPublicEventSchema = z47.preprocess(
28777
28839
  normalizeEventRegistrationEventInput,
28778
28840
  publicEventSchema
28779
28841
  );
28780
- var eventRegistrationSourceSchema = z46.object({
28781
- siteId: z46.string().optional(),
28782
- apiBaseUrl: z46.string().optional(),
28783
- portalToken: z46.string().nullable().optional(),
28784
- previewToken: z46.string().nullable().optional(),
28842
+ var eventRegistrationSourceSchema = z47.object({
28843
+ siteId: z47.string().optional(),
28844
+ apiBaseUrl: z47.string().optional(),
28845
+ portalToken: z47.string().nullable().optional(),
28846
+ previewToken: z47.string().nullable().optional(),
28785
28847
  occurrenceContext: occurrenceContextSchema.optional(),
28786
28848
  contentEntry: contentEntrySchema.nullable().optional(),
28787
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28788
- className: z46.string().nullable().optional(),
28789
- buttonText: z46.string().nullable().optional(),
28790
- maxTickets: z46.string().nullable().optional(),
28791
- showVenue: z46.boolean().optional(),
28792
- showCapacity: z46.boolean().optional(),
28793
- successMessage: z46.string().optional(),
28794
- waitlistMessage: z46.string().optional(),
28849
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28850
+ className: z47.string().nullable().optional(),
28851
+ buttonText: z47.string().nullable().optional(),
28852
+ maxTickets: z47.string().nullable().optional(),
28853
+ showVenue: z47.boolean().optional(),
28854
+ showCapacity: z47.boolean().optional(),
28855
+ successMessage: z47.string().optional(),
28856
+ waitlistMessage: z47.string().optional(),
28795
28857
  buttonVariant: registrationButtonVariantSchema.optional(),
28796
- overlayEnabled: z46.boolean().optional(),
28797
- spamProtectionEnabled: z46.boolean().optional(),
28858
+ overlayEnabled: z47.boolean().optional(),
28859
+ spamProtectionEnabled: z47.boolean().optional(),
28798
28860
  stage: previewStageSchema.optional(),
28799
- supportEmail: z46.string().optional()
28800
- });
28801
- var eventRegistrationDisplaySchema = z46.object({
28802
- kind: z46.literal("event-registration"),
28803
- state: z46.literal("generic-shell"),
28804
- className: z46.string().nullable(),
28805
- titleText: z46.string(),
28806
- bodyText: z46.string(),
28807
- stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28808
- summaryButtonText: z46.string()
28809
- });
28810
- var eventRegistrationHydrationSchema = z46.object({
28861
+ supportEmail: z47.string().optional(),
28862
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28863
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28864
+ });
28865
+ var eventRegistrationDisplaySchema = z47.object({
28866
+ kind: z47.literal("event-registration"),
28867
+ state: z47.literal("generic-shell"),
28868
+ className: z47.string().nullable(),
28869
+ titleText: z47.string(),
28870
+ bodyText: z47.string(),
28871
+ stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28872
+ summaryButtonText: z47.string()
28873
+ });
28874
+ var eventRegistrationHydrationSchema = z47.object({
28811
28875
  occurrenceContext: occurrenceContextSchema.optional(),
28812
28876
  contentEntry: contentEntrySchema.nullable().optional(),
28813
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28814
- maxTickets: z46.string().optional(),
28815
- showVenue: z46.boolean().optional(),
28816
- showCapacity: z46.boolean().optional(),
28817
- successMessage: z46.string().optional(),
28818
- waitlistMessage: z46.string().optional(),
28877
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28878
+ maxTickets: z47.string().optional(),
28879
+ showVenue: z47.boolean().optional(),
28880
+ showCapacity: z47.boolean().optional(),
28881
+ successMessage: z47.string().optional(),
28882
+ waitlistMessage: z47.string().optional(),
28819
28883
  buttonVariant: registrationButtonVariantSchema.optional(),
28820
- overlayEnabled: z46.boolean().optional(),
28821
- spamProtectionEnabled: z46.boolean().optional(),
28822
- supportEmail: z46.string().optional()
28884
+ overlayEnabled: z47.boolean().optional(),
28885
+ spamProtectionEnabled: z47.boolean().optional(),
28886
+ supportEmail: z47.string().optional(),
28887
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28888
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28823
28889
  });
28824
- var eventRegistrationRenderSchema = z46.object({
28890
+ var eventRegistrationRenderSchema = z47.object({
28825
28891
  display: eventRegistrationDisplaySchema,
28826
28892
  hydration: eventRegistrationHydrationSchema
28827
28893
  });
28828
- var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28829
- siteId: z46.string().optional(),
28830
- apiBaseUrl: z46.string().optional(),
28831
- portalToken: z46.string().nullable().optional(),
28832
- previewToken: z46.string().nullable().optional(),
28894
+ var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28895
+ siteId: z47.string().optional(),
28896
+ apiBaseUrl: z47.string().optional(),
28897
+ portalToken: z47.string().nullable().optional(),
28898
+ previewToken: z47.string().nullable().optional(),
28833
28899
  stage: previewStageSchema.optional()
28834
28900
  }));
28835
28901
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28935,20 +29001,23 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28935
29001
  buttonVariant: source.buttonVariant,
28936
29002
  overlayEnabled: source.overlayEnabled,
28937
29003
  spamProtectionEnabled: source.spamProtectionEnabled,
28938
- supportEmail: source.supportEmail
29004
+ supportEmail: source.supportEmail,
29005
+ sitePasses: source.sitePasses ?? null,
29006
+ siteMemberships: source.siteMemberships ?? null
28939
29007
  }
28940
29008
  })
28941
29009
  });
28942
29010
  function normalizeEventRegistrationEventInput(value) {
28943
- if (!isRecord4(value)) {
29011
+ if (!isRecord5(value)) {
28944
29012
  return value;
28945
29013
  }
28946
29014
  return {
28947
29015
  ...value,
29016
+ destination: resolveRuntimeEventDestination(value),
28948
29017
  pricing: resolveRuntimeEventPricing(value)
28949
29018
  };
28950
29019
  }
28951
- function isRecord4(value) {
29020
+ function isRecord5(value) {
28952
29021
  return typeof value === "object" && value !== null && !Array.isArray(value);
28953
29022
  }
28954
29023
  var eventRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCodec({
@@ -29117,6 +29186,8 @@ var eventRegistrationManifest = createBlockManifest({
29117
29186
  },
29118
29187
  // Event data from loader
29119
29188
  events: { $bind: { from: "data.events" } },
29189
+ sitePasses: { $bind: { from: "data.sitePasses" } },
29190
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
29120
29191
  // Stage for preview mode (allows registering for draft events)
29121
29192
  stage: {
29122
29193
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -29135,7 +29206,9 @@ var eventRegistrationBlockDefinition = {
29135
29206
  manifest: eventRegistrationManifest,
29136
29207
  runtime: eventRegistrationBlockRuntime,
29137
29208
  dataSchemas: {
29138
- events: z47.array(publicEventSchema).optional(),
29209
+ events: publicEventsArraySchema.optional(),
29210
+ sitePasses: publicPassProductCollectionSchema.optional(),
29211
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
29139
29212
  occurrenceContext: occurrenceContextSchema.optional()
29140
29213
  },
29141
29214
  dataLoaders: {
@@ -29154,6 +29227,20 @@ var eventRegistrationBlockDefinition = {
29154
29227
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
29155
29228
  },
29156
29229
  mode: "server"
29230
+ },
29231
+ sitePasses: {
29232
+ endpoint: "listPublicPasses",
29233
+ params: {
29234
+ siteId: { $bind: { from: "$root.siteId" } }
29235
+ },
29236
+ mode: "server"
29237
+ },
29238
+ siteMemberships: {
29239
+ endpoint: "listPublicMemberships",
29240
+ params: {
29241
+ siteId: { $bind: { from: "$root.siteId" } }
29242
+ },
29243
+ mode: "server"
29157
29244
  }
29158
29245
  }
29159
29246
  };
@@ -29485,35 +29572,7 @@ var courseRegistrationBlockDefinition = {
29485
29572
  };
29486
29573
 
29487
29574
  // ../blocks/src/system/blocks/event-details.ts
29488
- import { z as z50 } from "zod";
29489
-
29490
- // ../blocks/src/system/blocks/shop.shared.ts
29491
29575
  import { z as z49 } from "zod";
29492
- var publicPassProductSchema = z49.object({
29493
- id: z49.string(),
29494
- productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29495
- name: z49.string(),
29496
- description: z49.string().nullable(),
29497
- price: z49.number(),
29498
- currency: z49.string(),
29499
- creditsTotal: z49.number(),
29500
- pricePerCredit: z49.number(),
29501
- validDays: z49.number().nullable(),
29502
- eligibleCategoryIds: z49.array(z49.string()),
29503
- eligibleCategoryNames: z49.array(z49.string())
29504
- });
29505
- var publicMembershipProductSchema = z49.object({
29506
- id: z49.string(),
29507
- name: z49.string(),
29508
- description: z49.string().nullable(),
29509
- price: z49.number(),
29510
- currency: z49.string(),
29511
- billingInterval: z49.enum(["month", "year"]),
29512
- eligibleCategoryIds: z49.array(z49.string()),
29513
- eligibleCategoryNames: z49.array(z49.string())
29514
- });
29515
-
29516
- // ../blocks/src/system/blocks/event-details.ts
29517
29576
  var eventDetailsManifest = createBlockManifest({
29518
29577
  id: "block.event-details",
29519
29578
  version: "1.0.0",
@@ -29645,40 +29704,40 @@ var eventDetailsManifest = createBlockManifest({
29645
29704
  })
29646
29705
  ]
29647
29706
  });
29648
- var occurrenceContextSchema2 = z50.object({
29649
- id: z50.string(),
29650
- seriesId: z50.string(),
29651
- startsAt: z50.string(),
29652
- endsAt: z50.string(),
29653
- timeZone: z50.string(),
29654
- capacityOverride: z50.number().nullable().optional(),
29655
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29707
+ var occurrenceContextSchema2 = z49.object({
29708
+ id: z49.string(),
29709
+ seriesId: z49.string(),
29710
+ startsAt: z49.string(),
29711
+ endsAt: z49.string(),
29712
+ timeZone: z49.string(),
29713
+ capacityOverride: z49.number().nullable().optional(),
29714
+ overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29656
29715
  }).nullable();
29657
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29658
- id: z50.string(),
29659
- publicLabel: z50.string(),
29660
- description: z50.string().nullable(),
29661
- minTicketsRequired: z50.number().nullable()
29716
+ var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29717
+ id: z49.string(),
29718
+ publicLabel: z49.string(),
29719
+ description: z49.string().nullable(),
29720
+ minTicketsRequired: z49.number().nullable()
29662
29721
  });
29663
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29722
+ var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29664
29723
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29665
- discountType: z50.literal("percent"),
29666
- discountPercent: z50.number(),
29667
- discountAmountCents: z50.null()
29724
+ discountType: z49.literal("percent"),
29725
+ discountPercent: z49.number(),
29726
+ discountAmountCents: z49.null()
29668
29727
  }),
29669
29728
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29670
- discountType: z50.literal("fixed"),
29671
- discountPercent: z50.null(),
29672
- discountAmountCents: z50.number()
29729
+ discountType: z49.literal("fixed"),
29730
+ discountPercent: z49.null(),
29731
+ discountAmountCents: z49.number()
29673
29732
  })
29674
29733
  ]);
29675
29734
  var eventDetailsBlockDefinition = {
29676
29735
  manifest: eventDetailsManifest,
29677
29736
  dataSchemas: {
29678
- eventDetailsData: z50.object({
29737
+ eventDetailsData: z49.object({
29679
29738
  events: publicEventsArraySchema,
29680
- sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29681
- siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29739
+ sitePasses: publicPassProductCollectionSchema,
29740
+ siteMemberships: publicMembershipProductCollectionSchema,
29682
29741
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29683
29742
  }).optional(),
29684
29743
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -30002,7 +30061,7 @@ var eventSpotlightBlockDefinition = {
30002
30061
  };
30003
30062
 
30004
30063
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30005
- import { z as z52 } from "zod";
30064
+ import { z as z51 } from "zod";
30006
30065
 
30007
30066
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
30008
30067
  var COLUMN_CLASSES = {
@@ -30110,16 +30169,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30110
30169
  }
30111
30170
 
30112
30171
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30113
- import { z as z51 } from "zod";
30172
+ import { z as z50 } from "zod";
30114
30173
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30115
- var eventPageSizeSchema = z51.union([
30116
- z51.literal(3),
30117
- z51.literal(6),
30118
- z51.literal(10),
30119
- z51.literal(12),
30120
- z51.literal(20),
30121
- z51.literal(24),
30122
- z51.literal(30)
30174
+ var eventPageSizeSchema = z50.union([
30175
+ z50.literal(3),
30176
+ z50.literal(6),
30177
+ z50.literal(10),
30178
+ z50.literal(12),
30179
+ z50.literal(20),
30180
+ z50.literal(24),
30181
+ z50.literal(30)
30123
30182
  ]);
30124
30183
  var eventPageSizeSet = new Set(eventPageSizeValues);
30125
30184
  function resolveEventPageSize(value, fallback = 12) {
@@ -30129,15 +30188,15 @@ function resolveEventPageSize(value, fallback = 12) {
30129
30188
  function resolveEventCalendarListPageSize(input) {
30130
30189
  return resolveEventPageSize(input.eventsPerPage);
30131
30190
  }
30132
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30133
- z51.object({
30134
- kind: z51.literal("loadMore"),
30135
- label: z51.string()
30191
+ var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30192
+ z50.object({
30193
+ kind: z50.literal("loadMore"),
30194
+ label: z50.string()
30136
30195
  }),
30137
- z51.object({
30138
- kind: z51.literal("seeAllLink"),
30139
- label: z51.string(),
30140
- href: z51.string()
30196
+ z50.object({
30197
+ kind: z50.literal("seeAllLink"),
30198
+ label: z50.string(),
30199
+ href: z50.string()
30141
30200
  })
30142
30201
  ]);
30143
30202
  function resolveEventListPaginationAction(input) {
@@ -30150,89 +30209,89 @@ function resolveEventListPaginationAction(input) {
30150
30209
  }
30151
30210
 
30152
30211
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30153
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30154
- var eventCardVariantInputSchema = z52.union([
30212
+ var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30213
+ var eventCardVariantInputSchema = z51.union([
30155
30214
  cardVariantRoleSchema,
30156
30215
  legacyEventCardVariantSchema
30157
30216
  ]);
30158
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30159
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30160
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30161
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30162
- var eventListingSourceSchema = z52.object({
30163
- events: z52.array(publicEventSchema).nullable().optional(),
30164
- siteId: z52.string(),
30165
- apiBaseUrl: z52.string().optional(),
30217
+ var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30218
+ var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30219
+ var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30220
+ var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30221
+ var eventListingSourceSchema = z51.object({
30222
+ events: z51.array(publicEventSchema).nullable().optional(),
30223
+ siteId: z51.string(),
30224
+ apiBaseUrl: z51.string().optional(),
30166
30225
  stage: previewStageSchema.optional(),
30167
30226
  layout: eventLayoutSchema.optional(),
30168
30227
  columns: columnOptionSchema.optional(),
30169
- eventsPerPage: z52.string().optional(),
30170
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30171
- seeAllUrl: z52.string().optional(),
30172
- loadMoreText: z52.string().optional(),
30228
+ eventsPerPage: z51.string().optional(),
30229
+ paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30230
+ seeAllUrl: z51.string().optional(),
30231
+ loadMoreText: z51.string().optional(),
30173
30232
  cardVariant: eventCardVariantInputSchema.optional(),
30174
30233
  buttonVariant: eventButtonVariantSchema.optional(),
30175
- buttonText: z52.string().optional(),
30176
- showVenue: z52.boolean().optional(),
30177
- showMap: z52.boolean().optional(),
30178
- showCapacity: z52.boolean().optional(),
30179
- emptyMessage: z52.string().optional(),
30180
- className: z52.string().optional(),
30181
- showFilters: z52.boolean().nullable().optional(),
30234
+ buttonText: z51.string().optional(),
30235
+ showVenue: z51.boolean().optional(),
30236
+ showMap: z51.boolean().optional(),
30237
+ showCapacity: z51.boolean().optional(),
30238
+ emptyMessage: z51.string().optional(),
30239
+ className: z51.string().optional(),
30240
+ showFilters: z51.boolean().nullable().optional(),
30182
30241
  showCategoryFilter: filterAutoShowSchema.optional(),
30183
- showVenueFilter: z52.boolean().nullable().optional(),
30184
- showStaffFilter: z52.boolean().nullable().optional(),
30242
+ showVenueFilter: z51.boolean().nullable().optional(),
30243
+ showStaffFilter: z51.boolean().nullable().optional(),
30185
30244
  eventKind: eventBlockKindSchema.nullable().optional(),
30186
30245
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30187
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30246
+ filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30188
30247
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30189
- filterCategoryIds: z52.string().nullable().optional(),
30190
- filterStaffMemberId: z52.string().nullable().optional(),
30191
- filterVenueId: z52.string().nullable().optional()
30248
+ filterCategoryIds: z51.string().nullable().optional(),
30249
+ filterStaffMemberId: z51.string().nullable().optional(),
30250
+ filterVenueId: z51.string().nullable().optional()
30192
30251
  });
30193
- var eventListingDisplaySchema = z52.object({
30194
- kind: z52.literal("event-listing"),
30195
- state: z52.enum(["loading", "empty", "ready"]),
30252
+ var eventListingDisplaySchema = z51.object({
30253
+ kind: z51.literal("event-listing"),
30254
+ state: z51.enum(["loading", "empty", "ready"]),
30196
30255
  listLayout: eventLayoutSchema,
30197
- className: z52.string().nullable(),
30198
- emptyMessage: z52.string(),
30199
- loadingMessage: z52.string(),
30200
- containerClass: z52.string(),
30256
+ className: z51.string().nullable(),
30257
+ emptyMessage: z51.string(),
30258
+ loadingMessage: z51.string(),
30259
+ containerClass: z51.string(),
30201
30260
  cardVariant: cardVariantRoleSchema,
30202
30261
  buttonVariant: eventButtonVariantSchema,
30203
- buttonText: z52.string(),
30204
- showVenue: z52.boolean(),
30205
- showMap: z52.boolean(),
30206
- showCapacity: z52.boolean(),
30262
+ buttonText: z51.string(),
30263
+ showVenue: z51.boolean(),
30264
+ showMap: z51.boolean(),
30265
+ showCapacity: z51.boolean(),
30207
30266
  orientation: cardOrientationSchema,
30208
- events: z52.array(publicEventSchema)
30267
+ events: z51.array(publicEventSchema)
30209
30268
  });
30210
- var eventListingHydrationSchema = z52.object({
30211
- siteId: z52.string(),
30269
+ var eventListingHydrationSchema = z51.object({
30270
+ siteId: z51.string(),
30212
30271
  stage: previewStageSchema.optional(),
30213
30272
  eventsPerPage: eventPageSizeSchema,
30214
30273
  paginationAction: eventListPaginationActionSchema,
30215
- showFilters: z52.boolean(),
30274
+ showFilters: z51.boolean(),
30216
30275
  showCategoryFilter: filterAutoShowSchema,
30217
- showVenueFilter: z52.boolean(),
30218
- showStaffFilter: z52.boolean(),
30276
+ showVenueFilter: z51.boolean(),
30277
+ showStaffFilter: z51.boolean(),
30219
30278
  eventKind: eventBlockKindSchema,
30220
30279
  eventSurface: eventSurfaceScopeSchema,
30221
- filterEventPresets: z52.string().nullable(),
30280
+ filterEventPresets: z51.string().nullable(),
30222
30281
  scheduleScope: eventScheduleScopeSchema2,
30223
- filterCategoryIds: z52.string().nullable().optional(),
30224
- filterStaffMemberId: z52.string().nullable().optional(),
30225
- filterVenueId: z52.string().nullable().optional(),
30226
- fetchInitialEventsOnMount: z52.boolean()
30282
+ filterCategoryIds: z51.string().nullable().optional(),
30283
+ filterStaffMemberId: z51.string().nullable().optional(),
30284
+ filterVenueId: z51.string().nullable().optional(),
30285
+ fetchInitialEventsOnMount: z51.boolean()
30227
30286
  });
30228
- var eventListingRenderSchema = z52.object({
30287
+ var eventListingRenderSchema = z51.object({
30229
30288
  display: eventListingDisplaySchema,
30230
30289
  hydration: eventListingHydrationSchema
30231
30290
  });
30232
30291
  var eventListingIslandMetaCodec = createZodCodec(
30233
- z52.object({
30234
- siteId: z52.string(),
30235
- apiBaseUrl: z52.string().optional(),
30292
+ z51.object({
30293
+ siteId: z51.string(),
30294
+ apiBaseUrl: z51.string().optional(),
30236
30295
  stage: previewStageSchema.optional()
30237
30296
  })
30238
30297
  );
@@ -30599,15 +30658,15 @@ var eventListingBlockDefinition = {
30599
30658
  };
30600
30659
 
30601
30660
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30602
- import { z as z53 } from "zod";
30603
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30604
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30605
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30606
- var eventCalendarSourceSchema = z53.object(
30661
+ import { z as z52 } from "zod";
30662
+ var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30663
+ var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30664
+ var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30665
+ var eventCalendarSourceSchema = z52.object(
30607
30666
  {
30608
- events: z53.array(publicEventSchema).nullable().optional(),
30609
- siteId: z53.string(),
30610
- apiBaseUrl: z53.string().optional(),
30667
+ events: z52.array(publicEventSchema).nullable().optional(),
30668
+ siteId: z52.string(),
30669
+ apiBaseUrl: z52.string().optional(),
30611
30670
  stage: previewStageSchema.optional(),
30612
30671
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30613
30672
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30615,78 +30674,80 @@ var eventCalendarSourceSchema = z53.object(
30615
30674
  listColumns: columnOptionSchema.optional(),
30616
30675
  layout: eventLayoutSchema.optional(),
30617
30676
  columns: columnOptionSchema.optional(),
30618
- eventsPerPage: z53.string().optional(),
30619
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30620
- seeAllUrl: z53.string().optional(),
30621
- loadMoreText: z53.string().optional(),
30677
+ eventsPerPage: z52.string().optional(),
30678
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30679
+ seeAllUrl: z52.string().optional(),
30680
+ loadMoreText: z52.string().optional(),
30622
30681
  startOfWeek: weekStartSchema.optional(),
30623
30682
  calendarTabViews: calendarTabViewsSchema.optional(),
30624
- showFilters: z53.boolean().nullable().optional(),
30683
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30684
+ showFilters: z52.boolean().nullable().optional(),
30625
30685
  showCategoryFilter: filterAutoShowSchema.optional(),
30626
- showVenueFilter: z53.boolean().nullable().optional(),
30627
- showStaffFilter: z53.boolean().nullable().optional(),
30686
+ showVenueFilter: z52.boolean().nullable().optional(),
30687
+ showStaffFilter: z52.boolean().nullable().optional(),
30628
30688
  kind: eventBlockKindSchema2.nullable().optional(),
30629
30689
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30630
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30690
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30631
30691
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30632
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30633
- filterStaffMemberId: z53.string().nullable().optional(),
30634
- filterVenueId: z53.string().nullable().optional(),
30692
+ filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30693
+ filterStaffMemberId: z52.string().nullable().optional(),
30694
+ filterVenueId: z52.string().nullable().optional(),
30635
30695
  buttonVariant: eventButtonVariantSchema.optional(),
30636
- buttonText: z53.string().optional(),
30637
- showVenue: z53.boolean().nullable().optional(),
30638
- showMap: z53.boolean().nullable().optional(),
30639
- showCapacity: z53.boolean().nullable().optional(),
30640
- emptyMessage: z53.string().optional(),
30641
- className: z53.string().optional()
30696
+ buttonText: z52.string().optional(),
30697
+ showVenue: z52.boolean().nullable().optional(),
30698
+ showMap: z52.boolean().nullable().optional(),
30699
+ showCapacity: z52.boolean().nullable().optional(),
30700
+ emptyMessage: z52.string().optional(),
30701
+ className: z52.string().optional()
30642
30702
  }
30643
30703
  );
30644
- var eventCalendarDisplaySchema = z53.object({
30645
- kind: z53.literal("event-calendar"),
30704
+ var eventCalendarDisplaySchema = z52.object({
30705
+ kind: z52.literal("event-calendar"),
30646
30706
  displayMode: eventCalendarDisplayModeSchema,
30647
- className: z53.string().nullable(),
30648
- events: z53.array(publicEventSchema),
30707
+ className: z52.string().nullable(),
30708
+ events: z52.array(publicEventSchema),
30649
30709
  listLayout: eventLayoutSchema,
30650
30710
  listColumns: columnOptionSchema,
30651
30711
  eventsPerPage: eventPageSizeSchema,
30652
30712
  paginationAction: eventListPaginationActionSchema,
30653
30713
  startOfWeek: weekStartSchema,
30654
30714
  calendarTabViews: calendarTabViewsSchema,
30655
- showFilters: z53.boolean(),
30715
+ defaultCalendarView: eventCalendarDefaultViewSchema,
30716
+ showFilters: z52.boolean(),
30656
30717
  showCategoryFilter: filterAutoShowSchema,
30657
- showVenueFilter: z53.boolean(),
30658
- showStaffFilter: z53.boolean(),
30718
+ showVenueFilter: z52.boolean(),
30719
+ showStaffFilter: z52.boolean(),
30659
30720
  eventKind: eventBlockKindSchema2,
30660
30721
  eventSurface: eventSurfaceScopeSchema2,
30661
- filterEventPresets: z53.string().nullable(),
30722
+ filterEventPresets: z52.string().nullable(),
30662
30723
  scheduleScope: eventScheduleScopeSchema3,
30663
- filterCategoryIds: z53.string().nullable(),
30664
- filterStaffMemberId: z53.string().nullable(),
30665
- filterVenueId: z53.string().nullable(),
30724
+ filterCategoryIds: z52.string().nullable(),
30725
+ filterStaffMemberId: z52.string().nullable(),
30726
+ filterVenueId: z52.string().nullable(),
30666
30727
  buttonVariant: eventButtonVariantSchema,
30667
- buttonText: z53.string(),
30668
- showVenue: z53.boolean(),
30669
- showMap: z53.boolean(),
30670
- showCapacity: z53.boolean(),
30671
- emptyMessage: z53.string()
30672
- });
30673
- var eventCalendarHydrationSchema = z53.object({
30674
- siteId: z53.string(),
30728
+ buttonText: z52.string(),
30729
+ showVenue: z52.boolean(),
30730
+ showMap: z52.boolean(),
30731
+ showCapacity: z52.boolean(),
30732
+ emptyMessage: z52.string()
30733
+ });
30734
+ var eventCalendarHydrationSchema = z52.object({
30735
+ siteId: z52.string(),
30675
30736
  stage: previewStageSchema.optional(),
30676
- prefetchedEvents: z53.boolean(),
30737
+ prefetchedEvents: z52.boolean(),
30677
30738
  eventKind: eventBlockKindSchema2,
30678
30739
  eventSurface: eventSurfaceScopeSchema2,
30679
- filterEventPresets: z53.string().nullable(),
30740
+ filterEventPresets: z52.string().nullable(),
30680
30741
  scheduleScope: eventScheduleScopeSchema3
30681
30742
  });
30682
- var eventCalendarRenderSchema = z53.object({
30743
+ var eventCalendarRenderSchema = z52.object({
30683
30744
  display: eventCalendarDisplaySchema,
30684
30745
  hydration: eventCalendarHydrationSchema
30685
30746
  });
30686
30747
  var eventCalendarIslandMetaCodec = createZodCodec(
30687
- z53.object({
30688
- siteId: z53.string(),
30689
- apiBaseUrl: z53.string().optional(),
30748
+ z52.object({
30749
+ siteId: z52.string(),
30750
+ apiBaseUrl: z52.string().optional(),
30690
30751
  stage: previewStageSchema.optional()
30691
30752
  })
30692
30753
  );
@@ -30716,6 +30777,7 @@ function buildEventCalendarDisplay(source) {
30716
30777
  }),
30717
30778
  startOfWeek: source.startOfWeek ?? "monday",
30718
30779
  calendarTabViews: source.calendarTabViews ?? "both",
30780
+ defaultCalendarView: source.defaultCalendarView ?? "month",
30719
30781
  showFilters: source.showFilters ?? true,
30720
30782
  showCategoryFilter: source.showCategoryFilter ?? "auto",
30721
30783
  showVenueFilter: source.showVenueFilter ?? false,
@@ -30778,6 +30840,9 @@ function normalizeEventCalendarContent(content) {
30778
30840
  ...variant ? { variant } : {},
30779
30841
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
30780
30842
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
30843
+ defaultCalendarView: normalizeEventCalendarDefaultView(
30844
+ record.defaultCalendarView
30845
+ ),
30781
30846
  kind,
30782
30847
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
30783
30848
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -30795,6 +30860,9 @@ function normalizeEventCalendarDisplayMode(value) {
30795
30860
  function normalizeEventCalendarListLayout(value) {
30796
30861
  return isEventCalendarListLayout(value) ? value : void 0;
30797
30862
  }
30863
+ function normalizeEventCalendarDefaultView(value) {
30864
+ return isEventCalendarDefaultView(value) ? value : void 0;
30865
+ }
30798
30866
  var eventCalendarLayout = [
30799
30867
  styledSection({
30800
30868
  children: sectionContainer(
@@ -30854,6 +30922,9 @@ var eventCalendarLayout = [
30854
30922
  calendarTabViews: {
30855
30923
  $bind: { from: "content.calendarTabViews", fallback: "both" }
30856
30924
  },
30925
+ defaultCalendarView: {
30926
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
30927
+ },
30857
30928
  // Filtering options
30858
30929
  showFilters: {
30859
30930
  $bind: { from: "content.showFilters", fallback: true }
@@ -30920,8 +30991,7 @@ var eventCalendarAdditionalFields = [
30920
30991
  defaultValue: "combined",
30921
30992
  options: [
30922
30993
  { value: "combined", label: "Combined (List + Calendar tabs)" },
30923
- { value: "month", label: "Month calendar" },
30924
- { value: "week", label: "Week agenda" },
30994
+ { value: "calendar", label: "Calendar" },
30925
30995
  { value: "timetable", label: "Timetable" },
30926
30996
  { value: "list", label: "List" }
30927
30997
  ],
@@ -30960,7 +31030,12 @@ var eventCalendarAdditionalFields = [
30960
31030
  ],
30961
31031
  ui: {
30962
31032
  intent: "display",
30963
- visibleWhen: { field: "listLayout", equals: "grid" }
31033
+ visibleWhen: {
31034
+ allOf: [
31035
+ { field: "variant", oneOf: ["combined", "list"] },
31036
+ { field: "listLayout", equals: "grid" }
31037
+ ]
31038
+ }
30964
31039
  }
30965
31040
  },
30966
31041
  {
@@ -31008,7 +31083,12 @@ var eventCalendarAdditionalFields = [
31008
31083
  required: false,
31009
31084
  ui: {
31010
31085
  intent: "display",
31011
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
31086
+ visibleWhen: {
31087
+ allOf: [
31088
+ { field: "variant", oneOf: ["combined", "list"] },
31089
+ { field: "paginationMode", equals: "seeAllLink" }
31090
+ ]
31091
+ }
31012
31092
  }
31013
31093
  },
31014
31094
  {
@@ -31041,7 +31121,7 @@ var eventCalendarAdditionalFields = [
31041
31121
  intent: "display",
31042
31122
  visibleWhen: {
31043
31123
  field: "variant",
31044
- oneOf: ["combined", "month", "week"]
31124
+ oneOf: ["combined", "calendar", "timetable"]
31045
31125
  }
31046
31126
  }
31047
31127
  },
@@ -31064,6 +31144,33 @@ var eventCalendarAdditionalFields = [
31064
31144
  visibleWhen: { field: "variant", equals: "combined" }
31065
31145
  }
31066
31146
  },
31147
+ {
31148
+ id: "defaultCalendarView",
31149
+ type: "select",
31150
+ label: "Calendar view",
31151
+ description: "Choose the standalone calendar view, or the first view in combined mode",
31152
+ required: false,
31153
+ multiple: false,
31154
+ defaultValue: "month",
31155
+ options: [
31156
+ { value: "month", label: "Month" },
31157
+ { value: "week", label: "Week" }
31158
+ ],
31159
+ ui: {
31160
+ intent: "display",
31161
+ visibleWhen: {
31162
+ anyOf: [
31163
+ { field: "variant", equals: "calendar" },
31164
+ {
31165
+ allOf: [
31166
+ { field: "variant", equals: "combined" },
31167
+ { field: "calendarTabViews", equals: "both" }
31168
+ ]
31169
+ }
31170
+ ]
31171
+ }
31172
+ }
31173
+ },
31067
31174
  // Filtering options
31068
31175
  {
31069
31176
  id: "kind",
@@ -31091,7 +31198,7 @@ var eventCalendarAdditionalFields = [
31091
31198
  intent: "display",
31092
31199
  visibleWhen: {
31093
31200
  field: "variant",
31094
- oneOf: ["combined", "list", "timetable"]
31201
+ oneOf: ["combined", "calendar", "list", "timetable"]
31095
31202
  }
31096
31203
  }
31097
31204
  },
@@ -31111,8 +31218,10 @@ var eventCalendarAdditionalFields = [
31111
31218
  ui: {
31112
31219
  intent: "display",
31113
31220
  visibleWhen: {
31114
- field: "variant",
31115
- oneOf: ["combined", "list", "timetable"]
31221
+ allOf: [
31222
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31223
+ { field: "showFilters", equals: true }
31224
+ ]
31116
31225
  }
31117
31226
  }
31118
31227
  },
@@ -31126,8 +31235,10 @@ var eventCalendarAdditionalFields = [
31126
31235
  ui: {
31127
31236
  intent: "display",
31128
31237
  visibleWhen: {
31129
- field: "variant",
31130
- oneOf: ["combined", "list", "timetable"]
31238
+ allOf: [
31239
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31240
+ { field: "showFilters", equals: true }
31241
+ ]
31131
31242
  }
31132
31243
  }
31133
31244
  },
@@ -31141,8 +31252,10 @@ var eventCalendarAdditionalFields = [
31141
31252
  ui: {
31142
31253
  intent: "display",
31143
31254
  visibleWhen: {
31144
- field: "variant",
31145
- oneOf: ["combined", "list", "timetable"]
31255
+ allOf: [
31256
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31257
+ { field: "showFilters", equals: true }
31258
+ ]
31146
31259
  }
31147
31260
  }
31148
31261
  },
@@ -31156,8 +31269,15 @@ var eventCalendarAdditionalFields = [
31156
31269
  ui: {
31157
31270
  intent: "display",
31158
31271
  visibleWhen: {
31159
- field: "variant",
31160
- oneOf: ["combined", "list", "week", "timetable"]
31272
+ anyOf: [
31273
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
31274
+ {
31275
+ allOf: [
31276
+ { field: "variant", equals: "calendar" },
31277
+ { field: "defaultCalendarView", equals: "week" }
31278
+ ]
31279
+ }
31280
+ ]
31161
31281
  }
31162
31282
  }
31163
31283
  },
@@ -31273,8 +31393,7 @@ var eventCalendarAdditionalFields = [
31273
31393
  ];
31274
31394
  var eventCalendarVariants = {
31275
31395
  combined: eventCalendarLayout[0],
31276
- month: eventCalendarLayout[0],
31277
- week: eventCalendarLayout[0],
31396
+ calendar: eventCalendarLayout[0],
31278
31397
  timetable: eventCalendarLayout[0],
31279
31398
  list: eventCalendarLayout[0]
31280
31399
  };
@@ -31286,8 +31405,7 @@ var eventCalendarDerivedFields = [
31286
31405
  multiple: false,
31287
31406
  options: [
31288
31407
  { value: "combined" },
31289
- { value: "month" },
31290
- { value: "week" },
31408
+ { value: "calendar" },
31291
31409
  { value: "timetable" },
31292
31410
  { value: "list" }
31293
31411
  ]
@@ -31300,6 +31418,13 @@ var eventCalendarDerivedFields = [
31300
31418
  options: eventCalendarListLayoutOptions.map((option) => ({
31301
31419
  value: option.id
31302
31420
  }))
31421
+ },
31422
+ {
31423
+ id: "defaultCalendarView",
31424
+ type: "select",
31425
+ required: false,
31426
+ multiple: false,
31427
+ options: [{ value: "month" }, { value: "week" }]
31303
31428
  }
31304
31429
  ];
31305
31430
  var eventCalendarContentShape = {
@@ -31348,8 +31473,7 @@ var eventCalendarConfig = {
31348
31473
  defaultVariant: "combined",
31349
31474
  variantOptions: {
31350
31475
  combined: { label: "Combined" },
31351
- month: { label: "Month" },
31352
- week: { label: "Week" },
31476
+ calendar: { label: "Calendar" },
31353
31477
  timetable: { label: "Timetable" },
31354
31478
  list: { label: "List" }
31355
31479
  }
@@ -31395,7 +31519,7 @@ var eventCalendarBlockDefinition = {
31395
31519
  };
31396
31520
 
31397
31521
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31398
- import { z as z54 } from "zod";
31522
+ import { z as z53 } from "zod";
31399
31523
 
31400
31524
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31401
31525
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31455,7 +31579,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
31455
31579
  return keys.length >= 2 ? keys : [];
31456
31580
  }
31457
31581
  function normalizeOfferingsPreviewContentForWrite(value) {
31458
- if (!isRecord5(value)) return null;
31582
+ if (!isRecord6(value)) return null;
31459
31583
  const groupOrderValue = value.groupOrder;
31460
31584
  if (Array.isArray(groupOrderValue)) {
31461
31585
  const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
@@ -31468,7 +31592,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
31468
31592
  return { ...value, groupOrder: [] };
31469
31593
  }
31470
31594
  const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(
31471
- Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord5) : []
31595
+ Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord6) : []
31472
31596
  );
31473
31597
  return legacyOrder.length > 0 ? { ...value, groupOrder: legacyOrder } : value;
31474
31598
  }
@@ -31482,18 +31606,18 @@ function uniqueOfferingsPreviewSourceKeys(values) {
31482
31606
  }
31483
31607
  return keys;
31484
31608
  }
31485
- function isRecord5(value) {
31609
+ function isRecord6(value) {
31486
31610
  return typeof value === "object" && value !== null && !Array.isArray(value);
31487
31611
  }
31488
31612
 
31489
31613
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31490
- var publicRouteCandidatesSchema = z54.object({
31491
- routes: z54.array(z54.object({
31492
- entityId: z54.string(),
31493
- path: z54.string(),
31494
- title: z54.string(),
31495
- kind: z54.enum(["page", "content"]),
31496
- contentTypeKey: z54.string().nullable().optional()
31614
+ var publicRouteCandidatesSchema = z53.object({
31615
+ routes: z53.array(z53.object({
31616
+ entityId: z53.string(),
31617
+ path: z53.string(),
31618
+ title: z53.string(),
31619
+ kind: z53.enum(["page", "content"]),
31620
+ contentTypeKey: z53.string().nullable().optional()
31497
31621
  }))
31498
31622
  });
31499
31623
  var groupOverrideFields = [
@@ -31849,7 +31973,7 @@ function isOfferingsPreviewItemLimit(value) {
31849
31973
  return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
31850
31974
  }
31851
31975
  function normalizeOfferingsPreviewGroupOverride(value) {
31852
- if (!isRecord6(value)) return [];
31976
+ if (!isRecord7(value)) return [];
31853
31977
  const override = {};
31854
31978
  if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) {
31855
31979
  override.sourceKey = value.sourceKey;
@@ -31881,17 +32005,17 @@ function isButtonVariant(value) {
31881
32005
  return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
31882
32006
  }
31883
32007
  function normalizeCardStylesContent(value) {
31884
- return isRecord6(value) || value === null ? value : void 0;
32008
+ return isRecord7(value) || value === null ? value : void 0;
31885
32009
  }
31886
32010
  function normalizeSectionStylesContent(value) {
31887
- return isRecord6(value) || value === null ? value : void 0;
32011
+ return isRecord7(value) || value === null ? value : void 0;
31888
32012
  }
31889
- function isRecord6(value) {
32013
+ function isRecord7(value) {
31890
32014
  return typeof value === "object" && value !== null && !Array.isArray(value);
31891
32015
  }
31892
32016
 
31893
32017
  // ../blocks/src/system/blocks/embed.ts
31894
- import { z as z55 } from "zod";
32018
+ import { z as z54 } from "zod";
31895
32019
  var embedFields = [
31896
32020
  // Section heading
31897
32021
  parseFieldDefinition({
@@ -32122,18 +32246,18 @@ var embedManifest = createBlockManifest({
32122
32246
  spacing: "lg"
32123
32247
  }
32124
32248
  });
32125
- var embedEntrySchema = z55.object({
32126
- id: z55.string(),
32127
- identifier: z55.string(),
32128
- title: z55.string(),
32129
- slug: z55.string().nullable().optional(),
32130
- content: z55.record(z55.string(), z55.unknown()).optional(),
32131
- publishedAt: z55.string().nullable().optional()
32249
+ var embedEntrySchema = z54.object({
32250
+ id: z54.string(),
32251
+ identifier: z54.string(),
32252
+ title: z54.string(),
32253
+ slug: z54.string().nullable().optional(),
32254
+ content: z54.record(z54.string(), z54.unknown()).optional(),
32255
+ publishedAt: z54.string().nullable().optional()
32132
32256
  });
32133
32257
  var embedBlockDefinition = {
32134
32258
  manifest: embedManifest,
32135
32259
  dataSchemas: {
32136
- entries: z55.array(embedEntrySchema).optional()
32260
+ entries: z54.array(embedEntrySchema).optional()
32137
32261
  },
32138
32262
  dataLoaders: {
32139
32263
  entries: {
@@ -33316,53 +33440,50 @@ var fileDownloadBlockDefinition = {
33316
33440
  manifest: fileDownloadManifest
33317
33441
  };
33318
33442
 
33319
- // ../blocks/src/system/blocks/shop.ts
33320
- import { z as z59 } from "zod";
33321
-
33322
33443
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33323
- import { z as z58 } from "zod";
33444
+ import { z as z57 } from "zod";
33324
33445
 
33325
33446
  // ../blocks/src/system/blocks/products/shared.ts
33326
- import { z as z56 } from "zod";
33327
- var publicProductVariantSchema = z56.object({
33328
- id: z56.string(),
33329
- title: z56.string(),
33330
- sku: z56.string().nullable(),
33331
- priceCents: z56.number(),
33332
- stockQuantity: z56.number().nullable(),
33333
- soldOut: z56.boolean()
33334
- });
33335
- var publicProductSchema = z56.object({
33336
- id: z56.string(),
33337
- contentEntryId: z56.string().nullable(),
33338
- title: z56.string(),
33339
- slug: z56.string(),
33340
- path: z56.string().nullable(),
33341
- status: z56.enum(["draft", "active"]),
33342
- priceCents: z56.number(),
33343
- currency: z56.string(),
33344
- productType: z56.enum(["physical", "digital"]),
33345
- requiresShipping: z56.boolean(),
33346
- hasVariants: z56.boolean(),
33347
- trackInventory: z56.boolean(),
33348
- soldOut: z56.boolean(),
33349
- category: z56.object({
33350
- id: z56.string(),
33351
- name: z56.string(),
33352
- slug: z56.string()
33447
+ import { z as z55 } from "zod";
33448
+ var publicProductVariantSchema = z55.object({
33449
+ id: z55.string(),
33450
+ title: z55.string(),
33451
+ sku: z55.string().nullable(),
33452
+ priceCents: z55.number(),
33453
+ stockQuantity: z55.number().nullable(),
33454
+ soldOut: z55.boolean()
33455
+ });
33456
+ var publicProductSchema = z55.object({
33457
+ id: z55.string(),
33458
+ contentEntryId: z55.string().nullable(),
33459
+ title: z55.string(),
33460
+ slug: z55.string(),
33461
+ path: z55.string().nullable(),
33462
+ status: z55.enum(["draft", "active"]),
33463
+ priceCents: z55.number(),
33464
+ currency: z55.string(),
33465
+ productType: z55.enum(["physical", "digital"]),
33466
+ requiresShipping: z55.boolean(),
33467
+ hasVariants: z55.boolean(),
33468
+ trackInventory: z55.boolean(),
33469
+ soldOut: z55.boolean(),
33470
+ category: z55.object({
33471
+ id: z55.string(),
33472
+ name: z55.string(),
33473
+ slug: z55.string()
33353
33474
  }).nullable(),
33354
- summary: z56.string().nullable(),
33355
- body: z56.unknown().nullable(),
33356
- gallery: z56.array(
33357
- z56.object({
33358
- url: z56.string(),
33359
- alt: z56.string().nullable()
33475
+ summary: z55.string().nullable(),
33476
+ body: z55.unknown().nullable(),
33477
+ gallery: z55.array(
33478
+ z55.object({
33479
+ url: z55.string(),
33480
+ alt: z55.string().nullable()
33360
33481
  })
33361
33482
  ),
33362
- variants: z56.array(publicProductVariantSchema)
33483
+ variants: z55.array(publicProductVariantSchema)
33363
33484
  });
33364
- var publicProductsResponseSchema = z56.object({
33365
- products: z56.array(publicProductSchema)
33485
+ var publicProductsResponseSchema = z55.object({
33486
+ products: z55.array(publicProductSchema)
33366
33487
  });
33367
33488
 
33368
33489
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33426,27 +33547,27 @@ function deriveCreditProductLabels(products, options = {}) {
33426
33547
  }
33427
33548
 
33428
33549
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33429
- import { z as z57 } from "zod";
33430
- var storedProductCartItemSchema = z57.object({
33431
- kind: z57.literal("product"),
33432
- productId: z57.string().min(1),
33433
- productCategoryId: z57.string().min(1).optional().nullable(),
33434
- variantId: z57.string().min(1).optional().nullable(),
33435
- title: z57.string().min(1),
33436
- variantTitle: z57.string().optional().nullable(),
33437
- quantity: z57.number().finite(),
33438
- unitPriceCents: z57.number().finite(),
33439
- currency: z57.string().min(1),
33440
- imageUrl: z57.string().optional().nullable(),
33441
- soldOut: z57.boolean().optional()
33442
- });
33443
- var storedPassCartItemSchema = z57.object({
33444
- kind: z57.literal("pass"),
33445
- passId: z57.string().min(1),
33446
- title: z57.string().min(1),
33447
- quantity: z57.number().finite().optional(),
33448
- unitPriceCents: z57.number().finite(),
33449
- currency: z57.string().min(1)
33550
+ import { z as z56 } from "zod";
33551
+ var storedProductCartItemSchema = z56.object({
33552
+ kind: z56.literal("product"),
33553
+ productId: z56.string().min(1),
33554
+ productCategoryId: z56.string().min(1).optional().nullable(),
33555
+ variantId: z56.string().min(1).optional().nullable(),
33556
+ title: z56.string().min(1),
33557
+ variantTitle: z56.string().optional().nullable(),
33558
+ quantity: z56.number().finite(),
33559
+ unitPriceCents: z56.number().finite(),
33560
+ currency: z56.string().min(1),
33561
+ imageUrl: z56.string().optional().nullable(),
33562
+ soldOut: z56.boolean().optional()
33563
+ });
33564
+ var storedPassCartItemSchema = z56.object({
33565
+ kind: z56.literal("pass"),
33566
+ passId: z56.string().min(1),
33567
+ title: z56.string().min(1),
33568
+ quantity: z56.number().finite().optional(),
33569
+ unitPriceCents: z56.number().finite(),
33570
+ currency: z56.string().min(1)
33450
33571
  });
33451
33572
  function deriveCommerceCheckoutState(state) {
33452
33573
  if (state.items.length === 0) {
@@ -33680,214 +33801,214 @@ function formatValidity(days) {
33680
33801
  }
33681
33802
 
33682
33803
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33683
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33684
- var contentEntrySchema3 = z58.object({
33685
- id: z58.string().nullable().optional(),
33686
- slug: z58.string().nullable().optional()
33804
+ var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33805
+ var contentEntrySchema3 = z57.object({
33806
+ id: z57.string().nullable().optional(),
33807
+ slug: z57.string().nullable().optional()
33687
33808
  }).nullable();
33688
- var shopSourceSchema = z58.object({
33689
- className: z58.string().nullable().optional(),
33809
+ var shopSourceSchema = z57.object({
33810
+ className: z57.string().nullable().optional(),
33690
33811
  mode: shopModeSchema.optional(),
33691
- heading: z58.string().nullable().optional(),
33692
- productSlug: z58.string().nullable().optional(),
33693
- showPasses: z58.boolean().optional(),
33694
- showMemberships: z58.boolean().optional(),
33695
- layout: z58.enum(["grid", "list"]).optional(),
33696
- columns: z58.string().optional(),
33697
- showDescriptions: z58.boolean().optional(),
33698
- showSummary: z58.boolean().optional(),
33699
- showBody: z58.boolean().optional(),
33700
- showPrices: z58.boolean().optional(),
33701
- showValidityPeriod: z58.boolean().optional(),
33702
- showPricePerCredit: z58.boolean().nullable().optional(),
33703
- passesHeading: z58.string().optional(),
33704
- membershipsHeading: z58.string().optional(),
33705
- buyButtonText: z58.string().optional(),
33706
- addButtonText: z58.string().optional(),
33707
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33708
- subscribeButtonText: z58.string().optional(),
33709
- emptyStateText: z58.string().optional(),
33710
- checkoutButtonText: z58.string().optional(),
33711
- clearButtonText: z58.string().optional(),
33712
- submitButtonText: z58.string().optional(),
33812
+ heading: z57.string().nullable().optional(),
33813
+ productSlug: z57.string().nullable().optional(),
33814
+ showPasses: z57.boolean().optional(),
33815
+ showMemberships: z57.boolean().optional(),
33816
+ layout: z57.enum(["grid", "list"]).optional(),
33817
+ columns: z57.string().optional(),
33818
+ showDescriptions: z57.boolean().optional(),
33819
+ showSummary: z57.boolean().optional(),
33820
+ showBody: z57.boolean().optional(),
33821
+ showPrices: z57.boolean().optional(),
33822
+ showValidityPeriod: z57.boolean().optional(),
33823
+ showPricePerCredit: z57.boolean().nullable().optional(),
33824
+ passesHeading: z57.string().optional(),
33825
+ membershipsHeading: z57.string().optional(),
33826
+ buyButtonText: z57.string().optional(),
33827
+ addButtonText: z57.string().optional(),
33828
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33829
+ subscribeButtonText: z57.string().optional(),
33830
+ emptyStateText: z57.string().optional(),
33831
+ checkoutButtonText: z57.string().optional(),
33832
+ clearButtonText: z57.string().optional(),
33833
+ submitButtonText: z57.string().optional(),
33713
33834
  contentEntry: contentEntrySchema3.optional(),
33714
- passes: z58.array(publicPassProductSchema).nullable().optional(),
33715
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33716
- products: z58.array(publicProductSchema).nullable().optional(),
33717
- siteId: z58.string().optional(),
33718
- apiBaseUrl: z58.string().optional(),
33835
+ passes: z57.array(publicPassProductSchema).nullable().optional(),
33836
+ memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33837
+ products: z57.array(publicProductSchema).nullable().optional(),
33838
+ siteId: z57.string().optional(),
33839
+ apiBaseUrl: z57.string().optional(),
33719
33840
  stage: previewStageSchema.optional()
33720
33841
  });
33721
- var productVariantOptionDisplaySchema = z58.object({
33722
- id: z58.string(),
33723
- label: z58.string(),
33724
- soldOut: z58.boolean()
33725
- });
33726
- var productCardDisplaySchema = z58.object({
33727
- productId: z58.string(),
33728
- title: z58.string(),
33729
- path: z58.string().nullable(),
33730
- summary: z58.string().nullable(),
33731
- priceLabel: z58.string().nullable(),
33732
- image: z58.object({
33733
- url: z58.string(),
33734
- alt: z58.string().nullable()
33842
+ var productVariantOptionDisplaySchema = z57.object({
33843
+ id: z57.string(),
33844
+ label: z57.string(),
33845
+ soldOut: z57.boolean()
33846
+ });
33847
+ var productCardDisplaySchema = z57.object({
33848
+ productId: z57.string(),
33849
+ title: z57.string(),
33850
+ path: z57.string().nullable(),
33851
+ summary: z57.string().nullable(),
33852
+ priceLabel: z57.string().nullable(),
33853
+ image: z57.object({
33854
+ url: z57.string(),
33855
+ alt: z57.string().nullable()
33735
33856
  }).nullable(),
33736
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33737
- selectedVariantId: z58.string().nullable(),
33738
- selectionLabel: z58.string(),
33739
- actionLabel: z58.string(),
33740
- soldOut: z58.boolean()
33741
- });
33742
- var productListDisplaySchema = z58.object({
33743
- kind: z58.literal("product-list"),
33744
- state: z58.enum(["empty", "ready"]),
33745
- heading: z58.string().nullable(),
33746
- className: z58.string().nullable(),
33747
- layout: z58.enum(["grid", "list"]),
33748
- columns: z58.string(),
33749
- emptyMessage: z58.string(),
33750
- cards: z58.array(productCardDisplaySchema)
33751
- });
33752
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33753
- z58.object({
33754
- kind: z58.literal("product-detail"),
33755
- state: z58.literal("empty"),
33756
- heading: z58.string().nullable(),
33757
- className: z58.string().nullable(),
33758
- emptyMessage: z58.string()
33857
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33858
+ selectedVariantId: z57.string().nullable(),
33859
+ selectionLabel: z57.string(),
33860
+ actionLabel: z57.string(),
33861
+ soldOut: z57.boolean()
33862
+ });
33863
+ var productListDisplaySchema = z57.object({
33864
+ kind: z57.literal("product-list"),
33865
+ state: z57.enum(["empty", "ready"]),
33866
+ heading: z57.string().nullable(),
33867
+ className: z57.string().nullable(),
33868
+ layout: z57.enum(["grid", "list"]),
33869
+ columns: z57.string(),
33870
+ emptyMessage: z57.string(),
33871
+ cards: z57.array(productCardDisplaySchema)
33872
+ });
33873
+ var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33874
+ z57.object({
33875
+ kind: z57.literal("product-detail"),
33876
+ state: z57.literal("empty"),
33877
+ heading: z57.string().nullable(),
33878
+ className: z57.string().nullable(),
33879
+ emptyMessage: z57.string()
33759
33880
  }),
33760
- z58.object({
33761
- kind: z58.literal("product-detail"),
33762
- state: z58.literal("ready"),
33763
- heading: z58.string().nullable(),
33764
- className: z58.string().nullable(),
33765
- title: z58.string(),
33766
- priceLabel: z58.string(),
33767
- summary: z58.string().nullable(),
33768
- categoryLabel: z58.string().nullable(),
33769
- gallery: z58.array(z58.object({
33770
- url: z58.string(),
33771
- alt: z58.string().nullable()
33881
+ z57.object({
33882
+ kind: z57.literal("product-detail"),
33883
+ state: z57.literal("ready"),
33884
+ heading: z57.string().nullable(),
33885
+ className: z57.string().nullable(),
33886
+ title: z57.string(),
33887
+ priceLabel: z57.string(),
33888
+ summary: z57.string().nullable(),
33889
+ categoryLabel: z57.string().nullable(),
33890
+ gallery: z57.array(z57.object({
33891
+ url: z57.string(),
33892
+ alt: z57.string().nullable()
33772
33893
  })),
33773
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33774
- selectedVariantId: z58.string().nullable(),
33775
- selectionLabel: z58.string(),
33776
- actionLabel: z58.string(),
33777
- soldOut: z58.boolean(),
33778
- body: z58.unknown().nullable()
33894
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33895
+ selectedVariantId: z57.string().nullable(),
33896
+ selectionLabel: z57.string(),
33897
+ actionLabel: z57.string(),
33898
+ soldOut: z57.boolean(),
33899
+ body: z57.unknown().nullable()
33779
33900
  })
33780
33901
  ]);
33781
- var passCardDisplaySchema = z58.object({
33782
- id: z58.string(),
33783
- title: z58.string(),
33784
- description: z58.string().nullable(),
33785
- priceLabel: z58.string(),
33786
- creditsLabel: z58.string(),
33787
- perCreditLabel: z58.string().nullable(),
33788
- validityLabel: z58.string().nullable(),
33789
- actionLabel: z58.string()
33790
- });
33791
- var membershipCardDisplaySchema = z58.object({
33792
- id: z58.string(),
33793
- title: z58.string(),
33794
- description: z58.string().nullable(),
33795
- priceLabel: z58.string(),
33796
- intervalLabel: z58.string(),
33797
- actionLabel: z58.string()
33798
- });
33799
- var passesMembershipsDisplaySchema = z58.object({
33800
- kind: z58.literal("passes-memberships"),
33801
- state: z58.enum(["empty", "ready"]),
33802
- className: z58.string().nullable(),
33803
- layout: z58.enum(["grid", "list"]),
33804
- columns: z58.string(),
33805
- emptyMessage: z58.string(),
33806
- passesHeading: z58.string(),
33807
- membershipsHeading: z58.string(),
33808
- passes: z58.array(passCardDisplaySchema),
33809
- memberships: z58.array(membershipCardDisplaySchema)
33810
- });
33811
- var cartLineDisplaySchema = z58.object({
33812
- key: z58.string(),
33813
- title: z58.string(),
33814
- priceLabel: z58.string(),
33815
- quantity: z58.number(),
33816
- quantityEditable: z58.boolean()
33817
- });
33818
- var cartDisplaySchema = z58.object({
33819
- kind: z58.literal("cart"),
33820
- state: z58.enum(["empty", "ready"]),
33821
- heading: z58.string().nullable(),
33822
- className: z58.string().nullable(),
33823
- emptyMessage: z58.string(),
33824
- supportText: z58.string().nullable(),
33825
- items: z58.array(cartLineDisplaySchema),
33826
- subtotalLabel: z58.string().nullable(),
33827
- checkoutButtonText: z58.string(),
33828
- clearButtonText: z58.string()
33829
- });
33830
- var checkoutDisplaySchema = z58.object({
33831
- kind: z58.literal("checkout"),
33832
- state: z58.enum(["empty", "blocked", "ready"]),
33833
- heading: z58.string().nullable(),
33834
- className: z58.string().nullable(),
33835
- message: z58.string().nullable(),
33836
- submitButtonText: z58.string()
33837
- });
33838
- var passesMembershipsHydrationSchema = z58.object({
33839
- passes: z58.array(publicPassProductSchema),
33840
- memberships: z58.array(publicMembershipProductSchema),
33841
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33842
- });
33843
- var productListHydrationSchema = z58.object({
33844
- products: z58.array(publicProductSchema),
33845
- showSummary: z58.boolean(),
33846
- showPrices: z58.boolean(),
33847
- addButtonText: z58.string()
33848
- });
33849
- var productDetailHydrationSchema = z58.object({
33850
- products: z58.array(publicProductSchema),
33851
- productId: z58.string().nullable(),
33852
- showSummary: z58.boolean(),
33853
- showBody: z58.boolean(),
33854
- addButtonText: z58.string()
33855
- });
33856
- var cartHydrationSchema = z58.object({
33857
- emptyStateText: z58.string(),
33858
- checkoutButtonText: z58.string(),
33859
- clearButtonText: z58.string()
33860
- });
33861
- var checkoutHydrationSchema = z58.object({
33862
- emptyStateText: z58.string(),
33863
- submitButtonText: z58.string()
33864
- });
33865
- var passesMembershipsRenderSchema = z58.object({
33902
+ var passCardDisplaySchema = z57.object({
33903
+ id: z57.string(),
33904
+ title: z57.string(),
33905
+ description: z57.string().nullable(),
33906
+ priceLabel: z57.string(),
33907
+ creditsLabel: z57.string(),
33908
+ perCreditLabel: z57.string().nullable(),
33909
+ validityLabel: z57.string().nullable(),
33910
+ actionLabel: z57.string()
33911
+ });
33912
+ var membershipCardDisplaySchema = z57.object({
33913
+ id: z57.string(),
33914
+ title: z57.string(),
33915
+ description: z57.string().nullable(),
33916
+ priceLabel: z57.string(),
33917
+ intervalLabel: z57.string(),
33918
+ actionLabel: z57.string()
33919
+ });
33920
+ var passesMembershipsDisplaySchema = z57.object({
33921
+ kind: z57.literal("passes-memberships"),
33922
+ state: z57.enum(["empty", "ready"]),
33923
+ className: z57.string().nullable(),
33924
+ layout: z57.enum(["grid", "list"]),
33925
+ columns: z57.string(),
33926
+ emptyMessage: z57.string(),
33927
+ passesHeading: z57.string(),
33928
+ membershipsHeading: z57.string(),
33929
+ passes: z57.array(passCardDisplaySchema),
33930
+ memberships: z57.array(membershipCardDisplaySchema)
33931
+ });
33932
+ var cartLineDisplaySchema = z57.object({
33933
+ key: z57.string(),
33934
+ title: z57.string(),
33935
+ priceLabel: z57.string(),
33936
+ quantity: z57.number(),
33937
+ quantityEditable: z57.boolean()
33938
+ });
33939
+ var cartDisplaySchema = z57.object({
33940
+ kind: z57.literal("cart"),
33941
+ state: z57.enum(["empty", "ready"]),
33942
+ heading: z57.string().nullable(),
33943
+ className: z57.string().nullable(),
33944
+ emptyMessage: z57.string(),
33945
+ supportText: z57.string().nullable(),
33946
+ items: z57.array(cartLineDisplaySchema),
33947
+ subtotalLabel: z57.string().nullable(),
33948
+ checkoutButtonText: z57.string(),
33949
+ clearButtonText: z57.string()
33950
+ });
33951
+ var checkoutDisplaySchema = z57.object({
33952
+ kind: z57.literal("checkout"),
33953
+ state: z57.enum(["empty", "blocked", "ready"]),
33954
+ heading: z57.string().nullable(),
33955
+ className: z57.string().nullable(),
33956
+ message: z57.string().nullable(),
33957
+ submitButtonText: z57.string()
33958
+ });
33959
+ var passesMembershipsHydrationSchema = z57.object({
33960
+ passes: z57.array(publicPassProductSchema),
33961
+ memberships: z57.array(publicMembershipProductSchema),
33962
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33963
+ });
33964
+ var productListHydrationSchema = z57.object({
33965
+ products: z57.array(publicProductSchema),
33966
+ showSummary: z57.boolean(),
33967
+ showPrices: z57.boolean(),
33968
+ addButtonText: z57.string()
33969
+ });
33970
+ var productDetailHydrationSchema = z57.object({
33971
+ products: z57.array(publicProductSchema),
33972
+ productId: z57.string().nullable(),
33973
+ showSummary: z57.boolean(),
33974
+ showBody: z57.boolean(),
33975
+ addButtonText: z57.string()
33976
+ });
33977
+ var cartHydrationSchema = z57.object({
33978
+ emptyStateText: z57.string(),
33979
+ checkoutButtonText: z57.string(),
33980
+ clearButtonText: z57.string()
33981
+ });
33982
+ var checkoutHydrationSchema = z57.object({
33983
+ emptyStateText: z57.string(),
33984
+ submitButtonText: z57.string()
33985
+ });
33986
+ var passesMembershipsRenderSchema = z57.object({
33866
33987
  display: passesMembershipsDisplaySchema,
33867
33988
  hydration: passesMembershipsHydrationSchema
33868
33989
  });
33869
- var productListRenderSchema = z58.object({
33990
+ var productListRenderSchema = z57.object({
33870
33991
  display: productListDisplaySchema,
33871
33992
  hydration: productListHydrationSchema
33872
33993
  });
33873
- var productDetailRenderSchema = z58.object({
33994
+ var productDetailRenderSchema = z57.object({
33874
33995
  display: productDetailDisplaySchema,
33875
33996
  hydration: productDetailHydrationSchema
33876
33997
  });
33877
- var cartRenderSchema = z58.object({
33998
+ var cartRenderSchema = z57.object({
33878
33999
  display: cartDisplaySchema,
33879
34000
  hydration: cartHydrationSchema
33880
34001
  });
33881
- var checkoutRenderSchema = z58.object({
34002
+ var checkoutRenderSchema = z57.object({
33882
34003
  display: checkoutDisplaySchema,
33883
34004
  hydration: checkoutHydrationSchema
33884
34005
  });
33885
34006
  function resolveShowPricePerCredit(source) {
33886
34007
  return source.showPricePerCredit ?? true;
33887
34008
  }
33888
- var shopIslandMetaCodec = createZodCodec(z58.object({
33889
- siteId: z58.string().optional(),
33890
- apiBaseUrl: z58.string().optional(),
34009
+ var shopIslandMetaCodec = createZodCodec(z57.object({
34010
+ siteId: z57.string().optional(),
34011
+ apiBaseUrl: z57.string().optional(),
33891
34012
  stage: previewStageSchema.optional()
33892
34013
  }));
33893
34014
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34265,9 +34386,9 @@ var shopBlockDefinition = {
34265
34386
  runtime: shopBlockRuntime,
34266
34387
  dataSchemas: {
34267
34388
  // listPublicPasses returns { passes: [...] }
34268
- passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34389
+ passes: publicPassProductCollectionSchema.optional(),
34269
34390
  // listPublicMemberships returns { memberships: [...] }
34270
- memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34391
+ memberships: publicMembershipProductCollectionSchema.optional()
34271
34392
  },
34272
34393
  dataLoaders: {
34273
34394
  // Load passes for display
@@ -34290,7 +34411,7 @@ var shopBlockDefinition = {
34290
34411
  };
34291
34412
 
34292
34413
  // ../blocks/src/system/blocks/product-list.ts
34293
- import { z as z60 } from "zod";
34414
+ import { z as z58 } from "zod";
34294
34415
  var productListManifest = createBlockManifest({
34295
34416
  id: "block.product-list",
34296
34417
  version: "1.0.0",
@@ -34423,7 +34544,7 @@ var productListBlockDefinition = {
34423
34544
  }
34424
34545
  }
34425
34546
  };
34426
- var productListDataSchema = z60.object({
34547
+ var productListDataSchema = z58.object({
34427
34548
  products: publicProductsResponseSchema.optional()
34428
34549
  });
34429
34550
 
@@ -34684,72 +34805,72 @@ var checkoutBlockDefinition = {
34684
34805
  };
34685
34806
 
34686
34807
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34687
- import { z as z61 } from "zod";
34688
- var publicGiftCardOfferSchema = z61.object({
34689
- id: z61.string(),
34690
- kind: z61.literal("gift_card"),
34691
- title: z61.string(),
34692
- description: z61.string().nullable(),
34693
- sortOrder: z61.number().int(),
34694
- giftCard: z61.object({
34695
- fixedDenominations: z61.array(z61.number().int().positive()),
34696
- customAmountEnabled: z61.boolean(),
34697
- customAmountMinCents: z61.number().int().positive(),
34698
- customAmountMaxCents: z61.number().int().positive()
34808
+ import { z as z59 } from "zod";
34809
+ var publicGiftCardOfferSchema = z59.object({
34810
+ id: z59.string(),
34811
+ kind: z59.literal("gift_card"),
34812
+ title: z59.string(),
34813
+ description: z59.string().nullable(),
34814
+ sortOrder: z59.number().int(),
34815
+ giftCard: z59.object({
34816
+ fixedDenominations: z59.array(z59.number().int().positive()),
34817
+ customAmountEnabled: z59.boolean(),
34818
+ customAmountMinCents: z59.number().int().positive(),
34819
+ customAmountMaxCents: z59.number().int().positive()
34699
34820
  }),
34700
- voucher: z61.null()
34701
- });
34702
- var publicVoucherOfferSchema = z61.object({
34703
- id: z61.string(),
34704
- kind: z61.literal("voucher"),
34705
- title: z61.string(),
34706
- description: z61.string().nullable(),
34707
- sortOrder: z61.number().int(),
34708
- giftCard: z61.null(),
34709
- voucher: z61.object({
34710
- purchaseAmountCents: z61.number().int().positive()
34821
+ voucher: z59.null()
34822
+ });
34823
+ var publicVoucherOfferSchema = z59.object({
34824
+ id: z59.string(),
34825
+ kind: z59.literal("voucher"),
34826
+ title: z59.string(),
34827
+ description: z59.string().nullable(),
34828
+ sortOrder: z59.number().int(),
34829
+ giftCard: z59.null(),
34830
+ voucher: z59.object({
34831
+ purchaseAmountCents: z59.number().int().positive()
34711
34832
  })
34712
34833
  });
34713
- var publicGiftingOffersResponseSchema = z61.object({
34714
- currency: z61.string(),
34715
- giftCards: z61.array(publicGiftCardOfferSchema),
34716
- vouchers: z61.array(publicVoucherOfferSchema)
34834
+ var publicGiftingOffersResponseSchema = z59.object({
34835
+ currency: z59.string(),
34836
+ giftCards: z59.array(publicGiftCardOfferSchema),
34837
+ vouchers: z59.array(publicVoucherOfferSchema)
34717
34838
  });
34718
- var giftingSourceSchema = z61.object({
34719
- siteId: z61.string().optional(),
34720
- apiBaseUrl: z61.string().optional(),
34839
+ var giftingSourceSchema = z59.object({
34840
+ siteId: z59.string().optional(),
34841
+ apiBaseUrl: z59.string().optional(),
34721
34842
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34722
- className: z61.string().nullable().optional(),
34723
- heading: z61.string().nullable().optional(),
34724
- intro: z61.string().nullable().optional(),
34725
- giftCardsHeading: z61.string().nullable().optional(),
34726
- vouchersHeading: z61.string().nullable().optional(),
34727
- emptyStateText: z61.string().nullable().optional(),
34728
- checkoutButtonText: z61.string().nullable().optional(),
34729
- successMessage: z61.string().nullable().optional()
34730
- });
34731
- var giftingDisplaySchema = z61.object({
34732
- kind: z61.literal("gifting"),
34733
- state: z61.literal("ready"),
34734
- className: z61.string().nullable(),
34735
- heading: z61.string(),
34736
- intro: z61.string().nullable(),
34737
- giftCardsHeading: z61.string(),
34738
- vouchersHeading: z61.string(),
34739
- emptyStateText: z61.string()
34740
- });
34741
- var giftingHydrationSchema = z61.object({
34843
+ className: z59.string().nullable().optional(),
34844
+ heading: z59.string().nullable().optional(),
34845
+ intro: z59.string().nullable().optional(),
34846
+ giftCardsHeading: z59.string().nullable().optional(),
34847
+ vouchersHeading: z59.string().nullable().optional(),
34848
+ emptyStateText: z59.string().nullable().optional(),
34849
+ checkoutButtonText: z59.string().nullable().optional(),
34850
+ successMessage: z59.string().nullable().optional()
34851
+ });
34852
+ var giftingDisplaySchema = z59.object({
34853
+ kind: z59.literal("gifting"),
34854
+ state: z59.literal("ready"),
34855
+ className: z59.string().nullable(),
34856
+ heading: z59.string(),
34857
+ intro: z59.string().nullable(),
34858
+ giftCardsHeading: z59.string(),
34859
+ vouchersHeading: z59.string(),
34860
+ emptyStateText: z59.string()
34861
+ });
34862
+ var giftingHydrationSchema = z59.object({
34742
34863
  offers: publicGiftingOffersResponseSchema.nullable(),
34743
- checkoutButtonText: z61.string(),
34744
- successMessage: z61.string()
34864
+ checkoutButtonText: z59.string(),
34865
+ successMessage: z59.string()
34745
34866
  });
34746
- var giftingRenderSchema = z61.object({
34867
+ var giftingRenderSchema = z59.object({
34747
34868
  display: giftingDisplaySchema,
34748
34869
  hydration: giftingHydrationSchema
34749
34870
  });
34750
- var giftingIslandMetaCodec = createZodCodec(z61.object({
34751
- siteId: z61.string().optional(),
34752
- apiBaseUrl: z61.string().optional()
34871
+ var giftingIslandMetaCodec = createZodCodec(z59.object({
34872
+ siteId: z59.string().optional(),
34873
+ apiBaseUrl: z59.string().optional()
34753
34874
  }));
34754
34875
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34755
34876
  "siteId",
@@ -34920,7 +35041,7 @@ var giftingBlockDefinition = {
34920
35041
  };
34921
35042
 
34922
35043
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34923
- import { z as z62 } from "zod";
35044
+ import { z as z60 } from "zod";
34924
35045
 
34925
35046
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34926
35047
  function parseNewsletterSignupBlockId(value) {
@@ -35027,65 +35148,65 @@ function withOptionalPhone(fields3, includePhone) {
35027
35148
  }
35028
35149
 
35029
35150
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35030
- var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35031
- var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
35032
- var newsletterFieldSchema = z62.object({
35033
- id: z62.string(),
35034
- type: z62.enum(["email", "text"]),
35035
- label: z62.string(),
35036
- required: z62.boolean(),
35037
- placeholder: z62.string().optional()
35038
- });
35039
- var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35040
- var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35041
- var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
35042
- z62.object({
35043
- tag: z62.literal("block_ref"),
35151
+ var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35152
+ var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35153
+ var newsletterFieldSchema = z60.object({
35154
+ id: z60.string(),
35155
+ type: z60.enum(["email", "text"]),
35156
+ label: z60.string(),
35157
+ required: z60.boolean(),
35158
+ placeholder: z60.string().optional()
35159
+ });
35160
+ var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35161
+ var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35162
+ var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35163
+ z60.object({
35164
+ tag: z60.literal("block_ref"),
35044
35165
  blockId: newsletterSignupBlockIdSchema
35045
35166
  }),
35046
- z62.object({
35047
- tag: z62.literal("signed_destination_ref"),
35167
+ z60.object({
35168
+ tag: z60.literal("signed_destination_ref"),
35048
35169
  token: signedNewsletterDestinationRefSchema
35049
35170
  })
35050
35171
  ]);
35051
- var newsletterSourceSchema = z62.object({
35052
- blockId: z62.string().nullable().optional(),
35053
- siteId: z62.string().optional(),
35054
- apiBaseUrl: z62.string().optional(),
35055
- listId: z62.string().nullable().optional(),
35172
+ var newsletterSourceSchema = z60.object({
35173
+ blockId: z60.string().nullable().optional(),
35174
+ siteId: z60.string().optional(),
35175
+ apiBaseUrl: z60.string().optional(),
35176
+ listId: z60.string().nullable().optional(),
35056
35177
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35057
35178
  preset: newsletterPresetSchema.optional(),
35058
- includePhone: z62.boolean().optional(),
35059
- buttonLabel: z62.string().nullable().optional(),
35060
- successMessage: z62.string().nullable().optional(),
35061
- privacyNote: z62.string().nullable().optional(),
35062
- tags: z62.string().nullable().optional(),
35063
- spamProtectionEnabled: z62.boolean().optional(),
35064
- className: z62.string().nullable().optional()
35065
- });
35066
- var newsletterDisplaySchema = z62.object({
35067
- kind: z62.literal("newsletter-form"),
35068
- className: z62.string().nullable(),
35069
- buttonLabel: z62.string(),
35070
- successMessage: z62.string().nullable(),
35071
- privacyNote: z62.string().nullable(),
35072
- fields: z62.array(newsletterFieldSchema)
35073
- });
35074
- var newsletterHydrationSchema = z62.object({
35179
+ includePhone: z60.boolean().optional(),
35180
+ buttonLabel: z60.string().nullable().optional(),
35181
+ successMessage: z60.string().nullable().optional(),
35182
+ privacyNote: z60.string().nullable().optional(),
35183
+ tags: z60.string().nullable().optional(),
35184
+ spamProtectionEnabled: z60.boolean().optional(),
35185
+ className: z60.string().nullable().optional()
35186
+ });
35187
+ var newsletterDisplaySchema = z60.object({
35188
+ kind: z60.literal("newsletter-form"),
35189
+ className: z60.string().nullable(),
35190
+ buttonLabel: z60.string(),
35191
+ successMessage: z60.string().nullable(),
35192
+ privacyNote: z60.string().nullable(),
35193
+ fields: z60.array(newsletterFieldSchema)
35194
+ });
35195
+ var newsletterHydrationSchema = z60.object({
35075
35196
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35076
- listId: z62.string().nullable().optional(),
35197
+ listId: z60.string().nullable().optional(),
35077
35198
  preset: newsletterPresetSchema,
35078
- includePhone: z62.boolean(),
35079
- tags: z62.string().nullable().optional(),
35080
- spamProtectionEnabled: z62.boolean().optional()
35199
+ includePhone: z60.boolean(),
35200
+ tags: z60.string().nullable().optional(),
35201
+ spamProtectionEnabled: z60.boolean().optional()
35081
35202
  });
35082
- var newsletterRenderSchema = z62.object({
35203
+ var newsletterRenderSchema = z60.object({
35083
35204
  display: newsletterDisplaySchema,
35084
35205
  hydration: newsletterHydrationSchema
35085
35206
  });
35086
- var newsletterIslandMetaCodec = createZodCodec(z62.object({
35087
- siteId: z62.string().optional(),
35088
- apiBaseUrl: z62.string().optional()
35207
+ var newsletterIslandMetaCodec = createZodCodec(z60.object({
35208
+ siteId: z60.string().optional(),
35209
+ apiBaseUrl: z60.string().optional()
35089
35210
  }));
35090
35211
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35091
35212
  function buildNewsletterDisplay(source) {
@@ -35224,23 +35345,23 @@ var newsletterSignupBlockDefinition = {
35224
35345
  };
35225
35346
 
35226
35347
  // ../blocks/src/system/blocks/team-members.ts
35227
- import { z as z63 } from "zod";
35348
+ import { z as z61 } from "zod";
35228
35349
  var ITEM_NAME2 = "member";
35229
35350
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35230
35351
  message: "Team member photos must be image media"
35231
35352
  }).nullable();
35232
- var teamMemberDataSchema = z63.object({
35233
- _type: z63.literal("teamMember"),
35234
- id: z63.string(),
35235
- name: z63.string(),
35236
- role: z63.string().nullable(),
35237
- roleLabel: z63.string().nullable(),
35238
- bio: z63.string().nullable(),
35239
- summary: z63.string().nullable(),
35353
+ var teamMemberDataSchema = z61.object({
35354
+ _type: z61.literal("teamMember"),
35355
+ id: z61.string(),
35356
+ name: z61.string(),
35357
+ role: z61.string().nullable(),
35358
+ roleLabel: z61.string().nullable(),
35359
+ bio: z61.string().nullable(),
35360
+ summary: z61.string().nullable(),
35240
35361
  photo: teamMemberPhotoSchema,
35241
- profilePath: z63.string().nullable()
35362
+ profilePath: z61.string().nullable()
35242
35363
  });
35243
- var teamMembersDataSchema = z63.array(teamMemberDataSchema);
35364
+ var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35244
35365
  var dynamicSourceWhen = { equals: "site_staff" };
35245
35366
  var manualSourceWhen = { equals: "site_staff", not: true };
35246
35367
  var headingNode = text(
@@ -36132,13 +36253,6 @@ var systemBlockDefinitionsRaw = [
36132
36253
  weight: "featured",
36133
36254
  bias: "clear",
36134
36255
  surfaces: heroSectionSurfaces
36135
- }),
36136
- layoutProfile({
36137
- variantKey: "splitEditorial",
36138
- family: "split",
36139
- weight: "featured",
36140
- bias: "clear",
36141
- surfaces: heroSectionSurfaces
36142
36256
  })
36143
36257
  ]
36144
36258
  })),
@@ -36382,9 +36496,8 @@ var systemBlockDefinitionsRaw = [
36382
36496
  flow: offeringsFlow,
36383
36497
  layoutProfiles: [
36384
36498
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
36499
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
36385
36500
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
36386
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
36387
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
36388
36501
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
36389
36502
  ]
36390
36503
  })),
@@ -36947,10 +37060,7 @@ function normalizeRenderStage(stage) {
36947
37060
  return stage === "preview" ? "preview" : "published";
36948
37061
  }
36949
37062
  function isRouteVisibleInStage(routeEntry, stageInput) {
36950
- const stage = normalizeRenderStage(stageInput);
36951
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
36952
- return true;
36953
- }
37063
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
36954
37064
  const status = routeEntry.status;
36955
37065
  return !(typeof status === "string" && status !== "published");
36956
37066
  }
@@ -36959,52 +37069,45 @@ function extractRouteHref(candidate, stageInput = "published") {
36959
37069
  const trimmed = candidate.trim();
36960
37070
  return trimmed.length > 0 ? trimmed : null;
36961
37071
  }
36962
- if (!isRouteRecord(candidate)) {
36963
- return null;
36964
- }
36965
- const stage = normalizeRenderStage(stageInput);
36966
- const fields3 = stage === "preview" ? ["draftPath", "path", "href", "url"] : ["path", "href", "url"];
37072
+ if (!isRouteRecord(candidate)) return null;
37073
+ const fields3 = normalizeRenderStage(stageInput) === "preview" ? [
37074
+ "draftPath",
37075
+ "path",
37076
+ "href",
37077
+ "url"
37078
+ ] : [
37079
+ "path",
37080
+ "href",
37081
+ "url"
37082
+ ];
36967
37083
  for (const field of fields3) {
36968
37084
  const value = candidate[field];
36969
- if (typeof value === "string" && value.trim().length > 0) {
36970
- return value.trim();
36971
- }
37085
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
36972
37086
  }
36973
37087
  return null;
36974
37088
  }
36975
37089
  function extractRouteUpdatedAt(candidate) {
36976
- if (!isRouteRecord(candidate)) {
36977
- return null;
36978
- }
36979
- const fields3 = [
37090
+ if (!isRouteRecord(candidate)) return null;
37091
+ for (const field of [
36980
37092
  "updatedAt",
36981
37093
  "updated_at",
36982
37094
  "publishedAt",
36983
37095
  "published_at",
36984
37096
  "modifiedAt",
36985
37097
  "modified_at"
36986
- ];
36987
- for (const field of fields3) {
37098
+ ]) {
36988
37099
  const value = candidate[field];
36989
- if (typeof value === "string" && value.length > 0) {
36990
- return value;
36991
- }
37100
+ if (typeof value === "string" && value.length > 0) return value;
36992
37101
  }
36993
37102
  return null;
36994
37103
  }
36995
37104
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
36996
37105
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
36997
- if (!routeId || !routes) {
36998
- return null;
36999
- }
37106
+ if (!routeId || !routes) return null;
37000
37107
  const routeEntry = routes[routeId];
37001
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
37002
- return null;
37003
- }
37108
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
37004
37109
  const href = extractRouteHref(routeEntry, stageInput);
37005
- if (!href) {
37006
- return null;
37007
- }
37110
+ if (!href) return null;
37008
37111
  return {
37009
37112
  routeId,
37010
37113
  href,
@@ -37934,42 +38037,45 @@ import { jsx as jsx5 } from "react/jsx-runtime";
37934
38037
  import * as React from "react";
37935
38038
  import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37936
38039
 
38040
+ // ../theme-core/src/ResponsiveScope.tsx
38041
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38042
+
37937
38043
  // ../theme-core/src/fonts/uploadFormat.ts
37938
38044
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37939
38045
 
37940
38046
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37941
- import { z as z64 } from "zod";
37942
- var themeBridgeConfigSchema = z64.object({
37943
- tokens: z64.record(z64.string(), z64.string()),
37944
- typography: z64.object({
37945
- headingFamily: z64.string().optional(),
37946
- bodyFamily: z64.string().optional(),
37947
- headingWeight: z64.number().optional(),
37948
- bodyWeight: z64.number().optional()
38047
+ import { z as z62 } from "zod";
38048
+ var themeBridgeConfigSchema = z62.object({
38049
+ tokens: z62.record(z62.string(), z62.string()),
38050
+ typography: z62.object({
38051
+ headingFamily: z62.string().optional(),
38052
+ bodyFamily: z62.string().optional(),
38053
+ headingWeight: z62.number().optional(),
38054
+ bodyWeight: z62.number().optional()
37949
38055
  }).optional(),
37950
- spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37951
- corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37952
- shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37953
- components: z64.object({
37954
- buttons: z64.union([
37955
- z64.boolean(),
37956
- z64.object({
37957
- variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
38056
+ spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38057
+ corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38058
+ shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38059
+ components: z62.object({
38060
+ buttons: z62.union([
38061
+ z62.boolean(),
38062
+ z62.object({
38063
+ variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
37958
38064
  })
37959
38065
  ]).optional(),
37960
- cards: z64.union([
37961
- z64.boolean(),
37962
- z64.object({
37963
- variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
38066
+ cards: z62.union([
38067
+ z62.boolean(),
38068
+ z62.object({
38069
+ variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
37964
38070
  })
37965
38071
  ]).optional(),
37966
- inputs: z64.boolean().optional()
38072
+ inputs: z62.boolean().optional()
37967
38073
  }).optional(),
37968
- overrides: z64.record(z64.string(), z64.string()).optional()
38074
+ overrides: z62.record(z62.string(), z62.string()).optional()
37969
38075
  }).passthrough();
37970
38076
 
37971
38077
  // ../theme-core/src/siteChrome.tsx
37972
- import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38078
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
37973
38079
 
37974
38080
  // ../blocks/src/system/data/loaderEndpoints.ts
37975
38081
  var SUPPORTED_LOADER_ENDPOINTS = [
@@ -37991,17 +38097,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37991
38097
  function unsafeRetypeZodSchema(schema) {
37992
38098
  return schema;
37993
38099
  }
37994
- var navIdListSchema = z65.preprocess((value) => {
38100
+ var navIdListSchema = z63.preprocess((value) => {
37995
38101
  if (!Array.isArray(value)) return void 0;
37996
38102
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37997
38103
  return filtered.length > 0 ? filtered : void 0;
37998
- }, z65.array(z65.string()).max(200).optional());
37999
- var dashboardNavVisibilityBaseSchema = z65.object({
38000
- mode: z65.enum(["augment", "restrict"]).optional(),
38104
+ }, z63.array(z63.string()).max(200).optional());
38105
+ var dashboardNavVisibilityBaseSchema = z63.object({
38106
+ mode: z63.enum(["augment", "restrict"]).optional(),
38001
38107
  allowIds: navIdListSchema,
38002
38108
  denyIds: navIdListSchema
38003
38109
  }).strip();
38004
- var dashboardNavVisibilityRolesSchema = z65.object({
38110
+ var dashboardNavVisibilityRolesSchema = z63.object({
38005
38111
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38006
38112
  editor: dashboardNavVisibilityBaseSchema.optional(),
38007
38113
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38009,63 +38115,63 @@ var dashboardNavVisibilityRolesSchema = z65.object({
38009
38115
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38010
38116
  roles: dashboardNavVisibilityRolesSchema
38011
38117
  }).strip();
38012
- var dashboardNavigationConfigSchema = z65.object({
38118
+ var dashboardNavigationConfigSchema = z63.object({
38013
38119
  siteNav: dashboardNavVisibilitySchema.optional(),
38014
38120
  settingsNav: dashboardNavVisibilitySchema.optional()
38015
38121
  }).strip();
38016
- var dashboardConfigSchema = z65.object({
38017
- previewEditingEnabled: z65.boolean().optional(),
38122
+ var dashboardConfigSchema = z63.object({
38123
+ previewEditingEnabled: z63.boolean().optional(),
38018
38124
  navigation: dashboardNavigationConfigSchema.optional()
38019
38125
  }).strip();
38020
38126
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38021
38127
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38022
- var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
38023
- var loaderFallbackScalarSchema = z65.union([
38024
- z65.string(),
38025
- z65.number(),
38026
- z65.boolean(),
38027
- z65.null()
38128
+ var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38129
+ var loaderFallbackScalarSchema = z63.union([
38130
+ z63.string(),
38131
+ z63.number(),
38132
+ z63.boolean(),
38133
+ z63.null()
38028
38134
  ]);
38029
- var loaderParamBindingSchema = z65.object({
38030
- $bind: z65.object({
38031
- from: z65.string().min(1, "Binding path is required"),
38135
+ var loaderParamBindingSchema = z63.object({
38136
+ $bind: z63.object({
38137
+ from: z63.string().min(1, "Binding path is required"),
38032
38138
  fallback: loaderFallbackScalarSchema.optional()
38033
38139
  })
38034
38140
  });
38035
- var loaderParamValueSchema = z65.union([
38036
- z65.string(),
38037
- z65.number(),
38038
- z65.boolean(),
38141
+ var loaderParamValueSchema = z63.union([
38142
+ z63.string(),
38143
+ z63.number(),
38144
+ z63.boolean(),
38039
38145
  loaderParamBindingSchema
38040
38146
  ]);
38041
- var sdkConfigLoaderSchema = z65.object({
38147
+ var sdkConfigLoaderSchema = z63.object({
38042
38148
  endpoint: sdkLoaderEndpointSchema,
38043
- params: z65.record(z65.string(), loaderParamValueSchema),
38044
- mode: z65.enum(["server", "client"]).default("server")
38149
+ params: z63.record(z63.string(), loaderParamValueSchema),
38150
+ mode: z63.enum(["server", "client"]).default("server")
38045
38151
  });
38046
- var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38047
- var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38152
+ var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38153
+ var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38048
38154
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38049
38155
  }).transform((value) => value);
38050
- var sdkCustomBlockInputSchema = z65.object({
38156
+ var sdkCustomBlockInputSchema = z63.object({
38051
38157
  id: sdkCustomBlockIdSchema,
38052
- title: z65.string().min(1),
38053
- titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38054
- description: z65.string().optional(),
38158
+ title: z63.string().min(1),
38159
+ titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38160
+ description: z63.string().optional(),
38055
38161
  category: blockCategoryEnum,
38056
- icon: z65.string().optional(),
38057
- tags: z65.array(z65.string()).optional(),
38162
+ icon: z63.string().optional(),
38163
+ tags: z63.array(z63.string()).optional(),
38058
38164
  fields: fieldDefinitionInputSchema.array().min(1),
38059
38165
  dataLoaders: sdkDataLoadersSchema,
38060
38166
  layout: NodeSchema.optional(),
38061
- variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38062
- defaultVariant: z65.string().min(1).optional(),
38063
- variantOptions: z65.record(
38064
- z65.string().min(1),
38065
- z65.object({
38066
- label: z65.string().min(1).optional(),
38067
- description: z65.string().min(1).optional(),
38068
- icon: z65.string().min(1).optional()
38167
+ variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38168
+ defaultVariant: z63.string().min(1).optional(),
38169
+ variantOptions: z63.record(
38170
+ z63.string().min(1),
38171
+ z63.object({
38172
+ label: z63.string().min(1).optional(),
38173
+ description: z63.string().min(1).optional(),
38174
+ icon: z63.string().min(1).optional()
38069
38175
  })
38070
38176
  ).optional(),
38071
38177
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38076,7 +38182,7 @@ var sdkCustomBlockInputSchema = z65.object({
38076
38182
  const exists = data.fields.some((field) => field.id === source);
38077
38183
  if (!exists) {
38078
38184
  ctx.addIssue({
38079
- code: z65.ZodIssueCode.custom,
38185
+ code: z63.ZodIssueCode.custom,
38080
38186
  message: `titleSource must reference a valid field ID (got "${source}")`,
38081
38187
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38082
38188
  });
@@ -38085,7 +38191,7 @@ var sdkCustomBlockInputSchema = z65.object({
38085
38191
  }
38086
38192
  if (data.layout && data.variants) {
38087
38193
  ctx.addIssue({
38088
- code: z65.ZodIssueCode.custom,
38194
+ code: z63.ZodIssueCode.custom,
38089
38195
  message: "Custom block must define either `layout` or `variants`, not both",
38090
38196
  path: ["variants"]
38091
38197
  });
@@ -38094,14 +38200,14 @@ var sdkCustomBlockInputSchema = z65.object({
38094
38200
  const keys = Object.keys(data.variants);
38095
38201
  if (keys.length === 0) {
38096
38202
  ctx.addIssue({
38097
- code: z65.ZodIssueCode.custom,
38203
+ code: z63.ZodIssueCode.custom,
38098
38204
  message: "`variants` must contain at least one variant key",
38099
38205
  path: ["variants"]
38100
38206
  });
38101
38207
  }
38102
38208
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38103
38209
  ctx.addIssue({
38104
- code: z65.ZodIssueCode.custom,
38210
+ code: z63.ZodIssueCode.custom,
38105
38211
  message: "`defaultVariant` must be a key present in `variants`",
38106
38212
  path: ["defaultVariant"]
38107
38213
  });
@@ -38110,7 +38216,7 @@ var sdkCustomBlockInputSchema = z65.object({
38110
38216
  for (const key of Object.keys(data.variantOptions)) {
38111
38217
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38112
38218
  ctx.addIssue({
38113
- code: z65.ZodIssueCode.custom,
38219
+ code: z63.ZodIssueCode.custom,
38114
38220
  message: "`variantOptions` key must exist in `variants`",
38115
38221
  path: ["variantOptions", key]
38116
38222
  });
@@ -38119,78 +38225,78 @@ var sdkCustomBlockInputSchema = z65.object({
38119
38225
  }
38120
38226
  }
38121
38227
  });
38122
- var sdkBlockFieldExtensionInputSchema = z65.object({
38228
+ var sdkBlockFieldExtensionInputSchema = z63.object({
38123
38229
  fields: fieldDefinitionInputSchema.array().min(1)
38124
38230
  });
38125
- var sdkBlockFieldExtensionsInputSchema = z65.record(
38126
- z65.string().min(1),
38231
+ var sdkBlockFieldExtensionsInputSchema = z63.record(
38232
+ z63.string().min(1),
38127
38233
  sdkBlockFieldExtensionInputSchema
38128
38234
  );
38129
- var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38130
- var sdkThemeConfigSchema = z65.object({
38235
+ var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38236
+ var sdkThemeConfigSchema = z63.object({
38131
38237
  palette: sdkThemePaletteSchema
38132
38238
  });
38133
- var sdkSectionBackgroundSchema = z65.object({
38134
- id: z65.string().min(1),
38135
- label: z65.string().min(1),
38136
- token: z65.string().min(1)
38239
+ var sdkSectionBackgroundSchema = z63.object({
38240
+ id: z63.string().min(1),
38241
+ label: z63.string().min(1),
38242
+ token: z63.string().min(1)
38137
38243
  });
38138
- var sdkSectionOptionsConfigSchema = z65.object({
38139
- backgroundColor: z65.boolean().optional(),
38140
- backgroundImage: z65.boolean().optional(),
38141
- backgroundGradient: z65.boolean().optional(),
38142
- spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38143
- textColor: z65.boolean().optional()
38244
+ var sdkSectionOptionsConfigSchema = z63.object({
38245
+ backgroundColor: z63.boolean().optional(),
38246
+ backgroundImage: z63.boolean().optional(),
38247
+ backgroundGradient: z63.boolean().optional(),
38248
+ spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38249
+ textColor: z63.boolean().optional()
38144
38250
  });
38145
- var sdkContainerOptionsConfigSchema = z65.object({
38146
- maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38147
- alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
38251
+ var sdkContainerOptionsConfigSchema = z63.object({
38252
+ maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38253
+ alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38148
38254
  });
38149
- var sdkSiteStyleConfigSchema = z65.object({
38150
- sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
38255
+ var sdkSiteStyleConfigSchema = z63.object({
38256
+ sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38151
38257
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38152
38258
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38153
38259
  });
38154
- var sdkSiteLayoutConfigSchema = z65.object({
38155
- footerBlocks: z65.array(
38156
- z65.object({
38157
- id: z65.string().min(1).optional(),
38158
- kind: z65.string().min(1),
38159
- content: z65.record(z65.string(), z65.unknown()).optional()
38260
+ var sdkSiteLayoutConfigSchema = z63.object({
38261
+ footerBlocks: z63.array(
38262
+ z63.object({
38263
+ id: z63.string().min(1).optional(),
38264
+ kind: z63.string().min(1),
38265
+ content: z63.record(z63.string(), z63.unknown()).optional()
38160
38266
  })
38161
38267
  ).optional()
38162
38268
  });
38163
- var sdkFieldSelectOptionSchema = z65.object({
38164
- value: z65.string(),
38165
- label: z65.string()
38269
+ var sdkFieldSelectOptionSchema = z63.object({
38270
+ value: z63.string(),
38271
+ label: z63.string()
38166
38272
  });
38167
- var sdkBlockFieldConfigSchema = z65.object({
38168
- options: z65.array(sdkFieldSelectOptionSchema).optional()
38273
+ var sdkBlockFieldConfigSchema = z63.object({
38274
+ options: z63.array(sdkFieldSelectOptionSchema).optional()
38169
38275
  });
38170
- var sdkBlockFieldOptionsMapSchema = z65.record(
38171
- z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38276
+ var sdkBlockFieldOptionsMapSchema = z63.record(
38277
+ z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38172
38278
  message: "Block ID must be 'block.*' or 'custom.*' format"
38173
38279
  }),
38174
- z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
38280
+ z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38175
38281
  ).optional();
38176
- var sdkContentTypeTemplateConfigSchema = z65.object({
38177
- blocks: z65.array(z65.unknown())
38282
+ var sdkContentTypeTemplateConfigSchema = z63.object({
38283
+ blocks: z63.array(z63.unknown())
38178
38284
  }).passthrough();
38179
- var sdkContentTypeOrderingConfigSchema = z65.object({
38180
- mode: z65.enum(["default", "manual"]).optional()
38285
+ var sdkContentTypeOrderingConfigSchema = z63.object({
38286
+ mode: z63.enum(["default", "manual"]).optional()
38181
38287
  }).optional();
38182
- var sdkContentTypeConfigSchema = z65.object({
38183
- key: z65.string().min(1),
38184
- fields: z65.array(z65.unknown()),
38288
+ var sdkContentTypeConfigSchema = z63.object({
38289
+ key: z63.string().min(1),
38290
+ fields: z63.array(z63.unknown()),
38185
38291
  ordering: sdkContentTypeOrderingConfigSchema,
38186
38292
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38187
38293
  }).passthrough();
38188
- var sdkContentConfigSchema = z65.object({
38189
- contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38190
- pages: z65.array(z65.unknown()).optional(),
38191
- entries: z65.array(z65.unknown()).optional(),
38192
- navigationMenus: z65.array(z65.unknown()).optional(),
38193
- settings: z65.unknown().optional()
38294
+ var sdkContentConfigSchema = z63.object({
38295
+ contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38296
+ pages: z63.array(z63.unknown()).optional(),
38297
+ entries: z63.array(z63.unknown()).optional(),
38298
+ navigationMenus: z63.array(z63.unknown()).optional(),
38299
+ settings: z63.unknown().optional()
38194
38300
  }).passthrough();
38195
38301
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38196
38302
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38205,62 +38311,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38205
38311
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38206
38312
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38207
38313
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38208
- var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38314
+ var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38209
38315
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38210
38316
  });
38211
- var sdkWorkflowEndpointSchema = z65.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38212
- var sdkWorkflowManualTriggerSchema = z65.object({
38213
- type: z65.literal("manual")
38317
+ var sdkWorkflowEndpointSchema = z63.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38318
+ var sdkWorkflowManualTriggerSchema = z63.object({
38319
+ type: z63.literal("manual")
38214
38320
  }).strict();
38215
- var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38321
+ var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38216
38322
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38217
38323
  });
38218
- var sdkWorkflowFieldChangedConditionSchema = z65.object({
38324
+ var sdkWorkflowFieldChangedConditionSchema = z63.object({
38219
38325
  field: sdkWorkflowTriggerFieldSchema,
38220
- changed: z65.literal(true)
38326
+ changed: z63.literal(true)
38221
38327
  }).strict();
38222
- var sdkWorkflowFieldEmptyConditionSchema = z65.object({
38328
+ var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38223
38329
  field: sdkWorkflowTriggerFieldSchema,
38224
- isEmpty: z65.boolean()
38330
+ isEmpty: z63.boolean()
38225
38331
  }).strict();
38226
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38227
- type: z65.literal("entry.draft.updated"),
38228
- when: z65.array(
38229
- z65.union([
38332
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38333
+ type: z63.literal("entry.draft.updated"),
38334
+ when: z63.array(
38335
+ z63.union([
38230
38336
  sdkWorkflowFieldChangedConditionSchema,
38231
38337
  sdkWorkflowFieldEmptyConditionSchema
38232
38338
  ])
38233
38339
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38234
38340
  }).strict();
38235
- var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
38341
+ var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38236
38342
  sdkWorkflowManualTriggerSchema,
38237
38343
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38238
38344
  ]);
38239
- var sdkWorkflowConfirmationSchema = z65.object({
38240
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38241
- body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38345
+ var sdkWorkflowConfirmationSchema = z63.object({
38346
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38347
+ body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38242
38348
  }).strict();
38243
- var sdkWorkflowConfigSchema = z65.object({
38349
+ var sdkWorkflowConfigSchema = z63.object({
38244
38350
  id: sdkWorkflowIdSchema,
38245
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38246
- description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38247
- contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38351
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38352
+ description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38353
+ contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38248
38354
  endpoint: sdkWorkflowEndpointSchema,
38249
- triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38355
+ triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38250
38356
  confirmation: sdkWorkflowConfirmationSchema.optional()
38251
38357
  }).strict();
38252
- var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38358
+ var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38253
38359
  const ids = workflows.map((workflow) => workflow.id);
38254
38360
  return ids.length === new Set(ids).size;
38255
38361
  }, { message: "Workflow IDs must be unique" }).optional();
38256
- var riverbankSiteConfigInputSchema = z65.object({
38257
- siteId: z65.string().uuid(),
38258
- previewUrl: z65.string().url().optional(),
38259
- liveUrl: z65.string().url().optional(),
38362
+ var riverbankSiteConfigInputSchema = z63.object({
38363
+ siteId: z63.string().uuid(),
38364
+ previewUrl: z63.string().url().optional(),
38365
+ liveUrl: z63.string().url().optional(),
38260
38366
  theme: sdkThemeConfigSchema.optional(),
38261
38367
  styles: sdkSiteStyleConfigSchema.optional(),
38262
38368
  layout: sdkSiteLayoutConfigSchema.optional(),
38263
- customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38369
+ customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38264
38370
  const ids = blocks.map((b) => b.id);
38265
38371
  return ids.length === new Set(ids).size;
38266
38372
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38268,50 +38374,50 @@ var riverbankSiteConfigInputSchema = z65.object({
38268
38374
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38269
38375
  workflows: sdkWorkflowsSchema,
38270
38376
  content: sdkContentConfigSchema.optional(),
38271
- contentDir: z65.string().optional(),
38272
- sync: z65.object({
38273
- existingEntries: z65.enum(["skip", "update"]).optional()
38377
+ contentDir: z63.string().optional(),
38378
+ sync: z63.object({
38379
+ existingEntries: z63.enum(["skip", "update"]).optional()
38274
38380
  }).optional(),
38275
- deploy: z65.object({
38276
- verifyCommand: z65.string().optional(),
38277
- prebuildOutput: z65.string().optional()
38381
+ deploy: z63.object({
38382
+ verifyCommand: z63.string().optional(),
38383
+ prebuildOutput: z63.string().optional()
38278
38384
  }).optional(),
38279
- themeSource: z65.enum(["local", "cms"]).optional(),
38280
- activeTheme: z65.string().optional(),
38281
- enablePortal: z65.boolean().optional(),
38385
+ themeSource: z63.enum(["local", "cms"]).optional(),
38386
+ activeTheme: z63.string().optional(),
38387
+ enablePortal: z63.boolean().optional(),
38282
38388
  dashboard: dashboardConfigSchema.optional()
38283
38389
  }).strict();
38284
- var pushSdkConfigBodySchema = z65.object({
38390
+ var pushSdkConfigBodySchema = z63.object({
38285
38391
  config: riverbankSiteConfigInputSchema,
38286
- forceContentTypes: z65.boolean().optional()
38392
+ forceContentTypes: z63.boolean().optional()
38287
38393
  }).strict();
38288
38394
 
38289
38395
  // ../api/src/siteOnboarding.ts
38290
- import { z as z66 } from "zod";
38396
+ import { z as z64 } from "zod";
38291
38397
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38292
38398
  configure_appointments: {
38293
38399
  requirementId: "configure_appointments",
38294
38400
  reason: "launch_anyway"
38295
38401
  }
38296
38402
  };
38297
- var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38403
+ var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38298
38404
  "requirementId",
38299
38405
  [
38300
- z66.object({
38301
- requirementId: z66.literal("review_generated_site")
38406
+ z64.object({
38407
+ requirementId: z64.literal("review_generated_site")
38302
38408
  }),
38303
- z66.object({
38304
- requirementId: z66.literal(
38409
+ z64.object({
38410
+ requirementId: z64.literal(
38305
38411
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38306
38412
  ),
38307
- overrideReason: z66.literal(
38413
+ overrideReason: z64.literal(
38308
38414
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38309
38415
  )
38310
38416
  })
38311
38417
  ]
38312
38418
  );
38313
- var goLiveSiteRequestSchema = z66.object({
38314
- acceptExtraSiteCharge: z66.boolean().optional()
38419
+ var goLiveSiteRequestSchema = z64.object({
38420
+ acceptExtraSiteCharge: z64.boolean().optional()
38315
38421
  });
38316
38422
 
38317
38423
  // ../surfaces/src/index.ts
@@ -38395,7 +38501,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38395
38501
  ];
38396
38502
 
38397
38503
  // ../api/src/bookingVerticals.ts
38398
- import { z as z67 } from "zod";
38504
+ import { z as z65 } from "zod";
38399
38505
  var VERTICAL_IDS = [
38400
38506
  "yoga_wellness",
38401
38507
  "fitness_pt",
@@ -38560,39 +38666,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38560
38666
  }
38561
38667
  return [...issues];
38562
38668
  }
38563
- var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38669
+ var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
38564
38670
  const parsed = parseVerticalId(value);
38565
38671
  if (!parsed) {
38566
38672
  ctx.addIssue({
38567
- code: z67.ZodIssueCode.custom,
38673
+ code: z65.ZodIssueCode.custom,
38568
38674
  message: "Unknown booking vertical"
38569
38675
  });
38570
- return z67.NEVER;
38676
+ return z65.NEVER;
38571
38677
  }
38572
38678
  return parsed;
38573
38679
  });
38574
- var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38680
+ var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
38575
38681
  const parsed = parseVerticalPresetId(value);
38576
38682
  if (!parsed) {
38577
38683
  ctx.addIssue({
38578
- code: z67.ZodIssueCode.custom,
38684
+ code: z65.ZodIssueCode.custom,
38579
38685
  message: "Unknown booking preset"
38580
38686
  });
38581
- return z67.NEVER;
38687
+ return z65.NEVER;
38582
38688
  }
38583
38689
  return parsed;
38584
38690
  });
38585
- var BookingVerticalConfigSchema = z67.object({
38691
+ var BookingVerticalConfigSchema = z65.object({
38586
38692
  verticalId: VerticalIdSchema.nullable(),
38587
- selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38693
+ selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
38588
38694
  }).transform((value, ctx) => {
38589
38695
  const resolved = resolveSiteVerticalBookingConfig(value);
38590
38696
  if (resolved.kind === "invalid") {
38591
38697
  ctx.addIssue({
38592
- code: z67.ZodIssueCode.custom,
38698
+ code: z65.ZodIssueCode.custom,
38593
38699
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38594
38700
  });
38595
- return z67.NEVER;
38701
+ return z65.NEVER;
38596
38702
  }
38597
38703
  return resolved.config;
38598
38704
  });
@@ -38614,56 +38720,56 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
38614
38720
  }
38615
38721
 
38616
38722
  // ../api/src/utils/isRecord.ts
38617
- function isRecord7(value) {
38723
+ function isRecord8(value) {
38618
38724
  return typeof value === "object" && value !== null && !Array.isArray(value);
38619
38725
  }
38620
38726
 
38621
38727
  // ../api/src/appointmentSetup.ts
38622
- import { z as z68 } from "zod";
38728
+ import { z as z66 } from "zod";
38623
38729
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38624
- var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38625
- z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38626
- z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38730
+ var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
38731
+ z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
38732
+ z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
38627
38733
  ]);
38628
- var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38629
- z68.object({ kind: z68.literal("none") }),
38630
- z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38631
- z68.object({
38632
- kind: z68.literal("create"),
38633
- draftId: z68.string().min(1),
38634
- title: z68.string().trim().min(1),
38635
- description: z68.string().nullable(),
38636
- timezone: z68.string().trim().min(1).nullable(),
38637
- addressJson: z68.record(z68.string(), z68.unknown()),
38638
- locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38734
+ var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
38735
+ z66.object({ kind: z66.literal("none") }),
38736
+ z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
38737
+ z66.object({
38738
+ kind: z66.literal("create"),
38739
+ draftId: z66.string().min(1),
38740
+ title: z66.string().trim().min(1),
38741
+ description: z66.string().nullable(),
38742
+ timezone: z66.string().trim().min(1).nullable(),
38743
+ addressJson: z66.record(z66.string(), z66.unknown()),
38744
+ locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
38639
38745
  })
38640
38746
  ]);
38641
- var appointmentSetupPaymentDraftSchema = z68.object({
38642
- priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38643
- });
38644
- var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38645
- z68.object({ kind: z68.literal("all_practitioners") }),
38646
- z68.object({
38647
- kind: z68.literal("selected_practitioners"),
38648
- resourceRefs: z68.array(appointmentSetupRefSchema)
38747
+ var appointmentSetupPaymentDraftSchema = z66.object({
38748
+ priceType: z66.union([z66.literal("free"), z66.literal("paid")])
38749
+ });
38750
+ var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
38751
+ z66.object({ kind: z66.literal("all_practitioners") }),
38752
+ z66.object({
38753
+ kind: z66.literal("selected_practitioners"),
38754
+ resourceRefs: z66.array(appointmentSetupRefSchema)
38649
38755
  })
38650
38756
  ]);
38651
- var appointmentSetupServiceDraftSchema = z68.object({
38757
+ var appointmentSetupServiceDraftSchema = z66.object({
38652
38758
  ref: appointmentSetupRefSchema,
38653
- title: z68.string().trim().min(1),
38654
- description: z68.string().nullable(),
38655
- durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38656
- prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38657
- cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38658
- priceAmount: z68.number().int().nonnegative().nullable(),
38659
- isActive: z68.boolean(),
38660
- locationType: z68.union([
38661
- z68.literal("virtual"),
38662
- z68.literal("in_person"),
38663
- z68.literal("hybrid")
38759
+ title: z66.string().trim().min(1),
38760
+ description: z66.string().nullable(),
38761
+ durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38762
+ prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38763
+ cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38764
+ priceAmount: z66.number().int().nonnegative().nullable(),
38765
+ isActive: z66.boolean(),
38766
+ locationType: z66.union([
38767
+ z66.literal("virtual"),
38768
+ z66.literal("in_person"),
38769
+ z66.literal("hybrid")
38664
38770
  ]),
38665
38771
  venue: appointmentSetupVenueChoiceSchema,
38666
- timezone: z68.string().trim().min(1).nullable(),
38772
+ timezone: z66.string().trim().min(1).nullable(),
38667
38773
  payment: appointmentSetupPaymentDraftSchema,
38668
38774
  assignment: appointmentSetupServiceAssignmentDraftSchema
38669
38775
  }).superRefine((service, ctx) => {
@@ -38682,49 +38788,49 @@ var appointmentSetupServiceDraftSchema = z68.object({
38682
38788
  });
38683
38789
  }
38684
38790
  });
38685
- var appointmentSetupPractitionerDraftSchema = z68.object({
38791
+ var appointmentSetupPractitionerDraftSchema = z66.object({
38686
38792
  ref: appointmentSetupRefSchema,
38687
- displayName: z68.string().trim().min(1),
38688
- bio: z68.string().nullable(),
38689
- timezone: z68.string().trim().min(1),
38690
- colorHex: z68.string().nullable()
38691
- });
38692
- var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38693
- weekday: z68.number().int().min(0).max(6),
38694
- startTime: z68.string(),
38695
- endTime: z68.string()
38696
- });
38697
- var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38698
- z68.object({ kind: z68.literal("automatic_spacing") }),
38699
- z68.object({
38700
- kind: z68.literal("regular_interval"),
38701
- intervalMinutes: z68.union([
38702
- z68.literal(10),
38703
- z68.literal(15),
38704
- z68.literal(20),
38705
- z68.literal(30),
38706
- z68.literal(45),
38707
- z68.literal(60)
38793
+ displayName: z66.string().trim().min(1),
38794
+ bio: z66.string().nullable(),
38795
+ timezone: z66.string().trim().min(1),
38796
+ colorHex: z66.string().nullable()
38797
+ });
38798
+ var appointmentSetupWeeklyWindowDraftSchema = z66.object({
38799
+ weekday: z66.number().int().min(0).max(6),
38800
+ startTime: z66.string(),
38801
+ endTime: z66.string()
38802
+ });
38803
+ var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
38804
+ z66.object({ kind: z66.literal("automatic_spacing") }),
38805
+ z66.object({
38806
+ kind: z66.literal("regular_interval"),
38807
+ intervalMinutes: z66.union([
38808
+ z66.literal(10),
38809
+ z66.literal(15),
38810
+ z66.literal(20),
38811
+ z66.literal(30),
38812
+ z66.literal(45),
38813
+ z66.literal(60)
38708
38814
  ])
38709
38815
  })
38710
38816
  ]);
38711
- var appointmentSetupAvailabilityDraftSchema = z68.object({
38712
- kind: z68.literal("weekly_windows"),
38817
+ var appointmentSetupAvailabilityDraftSchema = z66.object({
38818
+ kind: z66.literal("weekly_windows"),
38713
38819
  resourceRef: appointmentSetupRefSchema,
38714
38820
  serviceRef: appointmentSetupRefSchema.nullable(),
38715
- windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38821
+ windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
38716
38822
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38717
38823
  });
38718
38824
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38719
38825
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38720
- var appointmentSetupBookingNoticeSchema = z68.object({
38721
- minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38722
- maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38723
- });
38724
- var applyAppointmentSetupRequestSchema = z68.object({
38725
- services: z68.array(appointmentSetupServiceDraftSchema),
38726
- practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38727
- availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38826
+ var appointmentSetupBookingNoticeSchema = z66.object({
38827
+ minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38828
+ maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38829
+ });
38830
+ var applyAppointmentSetupRequestSchema = z66.object({
38831
+ services: z66.array(appointmentSetupServiceDraftSchema),
38832
+ practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
38833
+ availability: z66.array(appointmentSetupAvailabilityDraftSchema),
38728
38834
  bookingNotice: appointmentSetupBookingNoticeSchema
38729
38835
  });
38730
38836
 
@@ -38757,24 +38863,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38757
38863
  ];
38758
38864
 
38759
38865
  // ../api/src/siteBanner.ts
38760
- import { z as z69 } from "zod";
38866
+ import { z as z67 } from "zod";
38761
38867
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38762
38868
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38763
38869
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38764
38870
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38765
- var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38766
- var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38767
- var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38768
- var siteBannerCtaSchema = z69.object({
38769
- label: z69.string().trim().min(1),
38871
+ var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
38872
+ var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
38873
+ var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
38874
+ var siteBannerCtaSchema = z67.object({
38875
+ label: z67.string().trim().min(1),
38770
38876
  link: linkPayloadSchema
38771
38877
  });
38772
- var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38773
- z69.object({
38774
- enabled: z69.literal(false)
38878
+ var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38879
+ z67.object({
38880
+ enabled: z67.literal(false)
38775
38881
  }),
38776
- z69.object({
38777
- enabled: z69.literal(true),
38882
+ z67.object({
38883
+ enabled: z67.literal(true),
38778
38884
  scope: siteBannerScopeSchema,
38779
38885
  tone: siteBannerToneSchema,
38780
38886
  body: siteBannerBodySchema,
@@ -38788,7 +38894,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38788
38894
  const analysis = analyzeSiteBannerBody(value.body);
38789
38895
  for (const issue of analysis.issues) {
38790
38896
  ctx.addIssue({
38791
- code: z69.ZodIssueCode.custom,
38897
+ code: z67.ZodIssueCode.custom,
38792
38898
  path: ["body"],
38793
38899
  message: siteBannerBodyIssueMessage(issue)
38794
38900
  });
@@ -38921,7 +39027,7 @@ function sanitizeMarks(marks) {
38921
39027
  if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
38922
39028
  return [{ type: mark.type }];
38923
39029
  }
38924
- if (mark.type === "link" && isRecord7(mark.attrs) && typeof mark.attrs.href === "string") {
39030
+ if (mark.type === "link" && isRecord8(mark.attrs) && typeof mark.attrs.href === "string") {
38925
39031
  const attrs = { href: mark.attrs.href };
38926
39032
  if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
38927
39033
  attrs.target = mark.attrs.target;
@@ -38936,10 +39042,10 @@ function sanitizeMarks(marks) {
38936
39042
  return sanitized.length > 0 ? sanitized : void 0;
38937
39043
  }
38938
39044
  function unwrapRichTextValue(value) {
38939
- if (isRecord7(value) && isRecord7(value.doc)) {
39045
+ if (isRecord8(value) && isRecord8(value.doc)) {
38940
39046
  return unwrapRichTextValue(value.doc);
38941
39047
  }
38942
- if (isRecord7(value) && value.type === "doc") {
39048
+ if (isRecord8(value) && value.type === "doc") {
38943
39049
  return {
38944
39050
  type: "doc",
38945
39051
  content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
@@ -38948,7 +39054,7 @@ function unwrapRichTextValue(value) {
38948
39054
  return EMPTY_SITE_BANNER_BODY;
38949
39055
  }
38950
39056
  function isTipTapNodeLike(value) {
38951
- return isRecord7(value) && typeof value.type === "string";
39057
+ return isRecord8(value) && typeof value.type === "string";
38952
39058
  }
38953
39059
  function coerceTipTapNode(value) {
38954
39060
  return {
@@ -38956,9 +39062,9 @@ function coerceTipTapNode(value) {
38956
39062
  ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
38957
39063
  ...typeof value.text === "string" ? { text: value.text } : {},
38958
39064
  ...Array.isArray(value.marks) ? {
38959
- marks: value.marks.filter((mark) => isRecord7(mark) && typeof mark.type === "string").map((mark) => ({
39065
+ marks: value.marks.filter((mark) => isRecord8(mark) && typeof mark.type === "string").map((mark) => ({
38960
39066
  type: mark.type,
38961
- ...isRecord7(mark.attrs) ? { attrs: mark.attrs } : {}
39067
+ ...isRecord8(mark.attrs) ? { attrs: mark.attrs } : {}
38962
39068
  }))
38963
39069
  } : {}
38964
39070
  };
@@ -39052,7 +39158,7 @@ function collectCartLinkStats(items, depth = 0) {
39052
39158
  return result;
39053
39159
  }
39054
39160
  function isNavigationMenuValidationItem(value) {
39055
- if (!isRecord7(value)) return false;
39161
+ if (!isRecord8(value)) return false;
39056
39162
  return typeof value.label === "string";
39057
39163
  }
39058
39164
 
@@ -39095,75 +39201,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39095
39201
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39096
39202
 
39097
39203
  // ../api/src/aiPlayground.ts
39098
- import { z as z70 } from "zod";
39099
- var Rfc6902PatchOp = z70.discriminatedUnion("op", [
39204
+ import { z as z68 } from "zod";
39205
+ var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39100
39206
  // Standard RFC-6902 operations
39101
- z70.object({
39102
- op: z70.literal("add"),
39103
- path: z70.string(),
39104
- value: z70.unknown()
39207
+ z68.object({
39208
+ op: z68.literal("add"),
39209
+ path: z68.string(),
39210
+ value: z68.unknown()
39105
39211
  }),
39106
- z70.object({
39107
- op: z70.literal("remove"),
39108
- path: z70.string()
39212
+ z68.object({
39213
+ op: z68.literal("remove"),
39214
+ path: z68.string()
39109
39215
  }),
39110
- z70.object({
39111
- op: z70.literal("replace"),
39112
- path: z70.string(),
39113
- value: z70.unknown()
39216
+ z68.object({
39217
+ op: z68.literal("replace"),
39218
+ path: z68.string(),
39219
+ value: z68.unknown()
39114
39220
  }),
39115
- z70.object({
39116
- op: z70.literal("move"),
39117
- from: z70.string(),
39118
- path: z70.string()
39221
+ z68.object({
39222
+ op: z68.literal("move"),
39223
+ from: z68.string(),
39224
+ path: z68.string()
39119
39225
  }),
39120
- z70.object({
39121
- op: z70.literal("copy"),
39122
- from: z70.string(),
39123
- path: z70.string()
39226
+ z68.object({
39227
+ op: z68.literal("copy"),
39228
+ from: z68.string(),
39229
+ path: z68.string()
39124
39230
  }),
39125
39231
  // Block-level operations (Phase 2)
39126
- z70.object({
39127
- op: z70.literal("add_block"),
39128
- blockKind: z70.string(),
39129
- afterBlockId: z70.string().nullable(),
39130
- content: z70.record(z70.string(), z70.unknown()),
39131
- rationale: z70.string()
39232
+ z68.object({
39233
+ op: z68.literal("add_block"),
39234
+ blockKind: z68.string(),
39235
+ afterBlockId: z68.string().nullable(),
39236
+ content: z68.record(z68.string(), z68.unknown()),
39237
+ rationale: z68.string()
39132
39238
  }),
39133
- z70.object({
39134
- op: z70.literal("delete_block"),
39135
- blockId: z70.string(),
39136
- rationale: z70.string()
39239
+ z68.object({
39240
+ op: z68.literal("delete_block"),
39241
+ blockId: z68.string(),
39242
+ rationale: z68.string()
39137
39243
  }),
39138
- z70.object({
39139
- op: z70.literal("reorder_block"),
39140
- blockId: z70.string(),
39141
- afterBlockId: z70.string().nullable(),
39142
- rationale: z70.string()
39244
+ z68.object({
39245
+ op: z68.literal("reorder_block"),
39246
+ blockId: z68.string(),
39247
+ afterBlockId: z68.string().nullable(),
39248
+ rationale: z68.string()
39143
39249
  })
39144
39250
  ]);
39145
- var PlaygroundProposeRequest = z70.object({
39146
- request: z70.string().min(1).max(2e3)
39251
+ var PlaygroundProposeRequest = z68.object({
39252
+ request: z68.string().min(1).max(2e3)
39147
39253
  });
39148
- var MultiPagePatchEnvelope = z70.object({
39149
- pageId: z70.string(),
39150
- blockId: z70.string().optional(),
39254
+ var MultiPagePatchEnvelope = z68.object({
39255
+ pageId: z68.string(),
39256
+ blockId: z68.string().optional(),
39151
39257
  // Not present for page-level ops
39152
- blockKind: z70.string().optional(),
39153
- blockPurpose: z70.string().optional().nullable(),
39154
- ops: z70.array(Rfc6902PatchOp),
39155
- rationale: z70.string(),
39156
- currentContent: z70.record(z70.string(), z70.unknown()).optional()
39258
+ blockKind: z68.string().optional(),
39259
+ blockPurpose: z68.string().optional().nullable(),
39260
+ ops: z68.array(Rfc6902PatchOp),
39261
+ rationale: z68.string(),
39262
+ currentContent: z68.record(z68.string(), z68.unknown()).optional()
39157
39263
  });
39158
- var MultiPageUpdateResponse = z70.object({
39159
- patches: z70.array(MultiPagePatchEnvelope),
39160
- assistantMessage: z70.string(),
39161
- pagesModified: z70.number(),
39162
- toolCallsUsed: z70.number()
39264
+ var MultiPageUpdateResponse = z68.object({
39265
+ patches: z68.array(MultiPagePatchEnvelope),
39266
+ assistantMessage: z68.string(),
39267
+ pagesModified: z68.number(),
39268
+ toolCallsUsed: z68.number()
39163
39269
  });
39164
39270
 
39165
39271
  // src/config/content-validation.ts
39166
- import { z as z71 } from "zod";
39272
+ import { z as z69 } from "zod";
39167
39273
 
39168
39274
  // src/types/block-kinds.ts
39169
39275
  var SYSTEM_BLOCK_KINDS = [
@@ -39307,36 +39413,36 @@ function describeInvalidBindingTransform(transform) {
39307
39413
  }
39308
39414
 
39309
39415
  // src/config/content-validation.ts
39310
- var jsonDataSchema = z71.record(z71.string(), z71.any());
39311
- var contentTypeKeySchema = z71.string().min(1).regex(
39416
+ var jsonDataSchema = z69.record(z69.string(), z69.any());
39417
+ var contentTypeKeySchema = z69.string().min(1).regex(
39312
39418
  /^[a-z][a-z0-9-]*$/,
39313
39419
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39314
39420
  );
39315
- var templateConfigSchemaForward = z71.object({
39316
- blocks: z71.array(
39317
- z71.object({
39318
- identifier: z71.string().min(1),
39319
- kind: z71.string(),
39320
- scope: z71.enum(["entry", "template"]),
39321
- bindings: z71.record(z71.string(), z71.any()).optional(),
39322
- content: z71.record(z71.string(), z71.any()).optional()
39421
+ var templateConfigSchemaForward = z69.object({
39422
+ blocks: z69.array(
39423
+ z69.object({
39424
+ identifier: z69.string().min(1),
39425
+ kind: z69.string(),
39426
+ scope: z69.enum(["entry", "template"]),
39427
+ bindings: z69.record(z69.string(), z69.any()).optional(),
39428
+ content: z69.record(z69.string(), z69.any()).optional()
39323
39429
  })
39324
39430
  )
39325
39431
  }).optional();
39326
- var contentTypeOrderingSchema = z71.object({
39327
- mode: z71.enum(["default", "manual"]).optional()
39432
+ var contentTypeOrderingSchema = z69.object({
39433
+ mode: z69.enum(["default", "manual"]).optional()
39328
39434
  }).optional();
39329
- var contentTypeConfigSchema = z71.object({
39435
+ var contentTypeConfigSchema = z69.object({
39330
39436
  key: contentTypeKeySchema,
39331
- name: z71.string().min(1),
39332
- description: z71.string().optional(),
39333
- hasPages: z71.boolean(),
39334
- routePattern: z71.string().optional(),
39437
+ name: z69.string().min(1),
39438
+ description: z69.string().optional(),
39439
+ hasPages: z69.boolean(),
39440
+ routePattern: z69.string().optional(),
39335
39441
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39336
- fields: z71.array(z71.any()).min(1, "At least one field is required"),
39337
- titleField: z71.string().optional(),
39442
+ fields: z69.array(z69.any()).min(1, "At least one field is required"),
39443
+ titleField: z69.string().optional(),
39338
39444
  ordering: contentTypeOrderingSchema,
39339
- isSingleton: z71.boolean().optional().default(false),
39445
+ isSingleton: z69.boolean().optional().default(false),
39340
39446
  template: templateConfigSchemaForward
39341
39447
  }).refine(
39342
39448
  (data) => {
@@ -39358,7 +39464,7 @@ var contentTypeConfigSchema = z71.object({
39358
39464
  }
39359
39465
  if (!data.routePattern) {
39360
39466
  ctx.addIssue({
39361
- code: z71.ZodIssueCode.custom,
39467
+ code: z69.ZodIssueCode.custom,
39362
39468
  path: ["routePattern"],
39363
39469
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39364
39470
  });
@@ -39367,7 +39473,7 @@ var contentTypeConfigSchema = z71.object({
39367
39473
  const parseResult = safeParseRouteTemplate(data.routePattern);
39368
39474
  if (!parseResult.success) {
39369
39475
  ctx.addIssue({
39370
- code: z71.ZodIssueCode.custom,
39476
+ code: z69.ZodIssueCode.custom,
39371
39477
  path: ["routePattern"],
39372
39478
  message: describeRouteTemplateParseError(parseResult.error)
39373
39479
  });
@@ -39375,44 +39481,44 @@ var contentTypeConfigSchema = z71.object({
39375
39481
  }
39376
39482
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39377
39483
  ctx.addIssue({
39378
- code: z71.ZodIssueCode.custom,
39484
+ code: z69.ZodIssueCode.custom,
39379
39485
  path: ["routePattern"],
39380
39486
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39381
39487
  });
39382
39488
  }
39383
39489
  });
39384
- var fieldBindingSchema = z71.object({
39385
- source: z71.literal("field"),
39386
- path: z71.string().min(1, "Field path is required")
39490
+ var fieldBindingSchema = z69.object({
39491
+ source: z69.literal("field"),
39492
+ path: z69.string().min(1, "Field path is required")
39387
39493
  });
39388
- var metaBindingSchema = z71.object({
39389
- source: z71.literal("meta"),
39390
- path: z71.enum(TEMPLATE_BINDING_META_PATHS, {
39494
+ var metaBindingSchema = z69.object({
39495
+ source: z69.literal("meta"),
39496
+ path: z69.enum(TEMPLATE_BINDING_META_PATHS, {
39391
39497
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39392
39498
  })
39393
39499
  });
39394
- var literalBindingSchema = z71.object({
39395
- source: z71.literal("literal"),
39396
- value: z71.unknown()
39500
+ var literalBindingSchema = z69.object({
39501
+ source: z69.literal("literal"),
39502
+ value: z69.unknown()
39397
39503
  });
39398
- var transformBindingSchema = z71.object({
39399
- source: z71.literal("transform"),
39400
- path: z71.string().min(1, "Transform path is required"),
39401
- transform: z71.enum(BINDING_TRANSFORM_VALUES, {
39504
+ var transformBindingSchema = z69.object({
39505
+ source: z69.literal("transform"),
39506
+ path: z69.string().min(1, "Transform path is required"),
39507
+ transform: z69.enum(BINDING_TRANSFORM_VALUES, {
39402
39508
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39403
39509
  })
39404
39510
  });
39405
- var baseBindingSchema = z71.discriminatedUnion("source", [
39511
+ var baseBindingSchema = z69.discriminatedUnion("source", [
39406
39512
  fieldBindingSchema,
39407
39513
  metaBindingSchema,
39408
39514
  literalBindingSchema,
39409
39515
  transformBindingSchema
39410
39516
  ]);
39411
- var fallbackBindingSchema = z71.object({
39412
- source: z71.literal("fallback"),
39413
- sources: z71.array(z71.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39517
+ var fallbackBindingSchema = z69.object({
39518
+ source: z69.literal("fallback"),
39519
+ sources: z69.array(z69.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39414
39520
  });
39415
- var bindingSourceSchema = z71.union([
39521
+ var bindingSourceSchema = z69.union([
39416
39522
  baseBindingSchema,
39417
39523
  fallbackBindingSchema
39418
39524
  ]);
@@ -39426,12 +39532,12 @@ function isValidBlockKind(kind) {
39426
39532
  return false;
39427
39533
  }
39428
39534
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39429
- var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39430
- var templateBlockConfigSchema = z71.object({
39431
- identifier: z71.string().min(1, "Block identifier is required"),
39535
+ var blockKindSchema = z69.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39536
+ var templateBlockConfigSchema = z69.object({
39537
+ identifier: z69.string().min(1, "Block identifier is required"),
39432
39538
  kind: blockKindSchema,
39433
- scope: z71.enum(["entry", "template"]),
39434
- bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39539
+ scope: z69.enum(["entry", "template"]),
39540
+ bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
39435
39541
  content: jsonDataSchema.optional()
39436
39542
  }).refine(
39437
39543
  (data) => {
@@ -39450,8 +39556,8 @@ var templateBlockConfigSchema = z71.object({
39450
39556
  },
39451
39557
  { message: "Template-scoped blocks should define static content, not bindings" }
39452
39558
  );
39453
- var templateConfigSchema = z71.object({
39454
- blocks: z71.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39559
+ var templateConfigSchema = z69.object({
39560
+ blocks: z69.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39455
39561
  }).refine(
39456
39562
  (data) => {
39457
39563
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39460,77 +39566,77 @@ var templateConfigSchema = z71.object({
39460
39566
  },
39461
39567
  { message: "Template block identifiers must be unique" }
39462
39568
  );
39463
- var blockConfigSchema = z71.object({
39569
+ var blockConfigSchema = z69.object({
39464
39570
  kind: blockKindSchema,
39465
39571
  content: jsonDataSchema,
39466
- orderIndex: z71.number().optional()
39467
- });
39468
- var pageConfigSchema = z71.object({
39469
- identifier: z71.string().min(1, "Identifier is required"),
39470
- title: z71.string().min(1, "Title is required"),
39471
- path: z71.string().regex(/^\//, "Path must start with /"),
39472
- purpose: z71.string().default("content"),
39473
- blocks: z71.array(blockConfigSchema).optional(),
39474
- status: z71.enum(["draft", "published"]).default("draft"),
39475
- metaTitle: z71.string().optional(),
39476
- metaDescription: z71.string().optional()
39477
- });
39478
- var entryConfigSchema = z71.object({
39479
- identifier: z71.string().min(1, "Identifier is required"),
39480
- contentType: z71.string().min(1, "Content type is required"),
39572
+ orderIndex: z69.number().optional()
39573
+ });
39574
+ var pageConfigSchema = z69.object({
39575
+ identifier: z69.string().min(1, "Identifier is required"),
39576
+ title: z69.string().min(1, "Title is required"),
39577
+ path: z69.string().regex(/^\//, "Path must start with /"),
39578
+ purpose: z69.string().default("content"),
39579
+ blocks: z69.array(blockConfigSchema).optional(),
39580
+ status: z69.enum(["draft", "published"]).default("draft"),
39581
+ metaTitle: z69.string().optional(),
39582
+ metaDescription: z69.string().optional()
39583
+ });
39584
+ var entryConfigSchema = z69.object({
39585
+ identifier: z69.string().min(1, "Identifier is required"),
39586
+ contentType: z69.string().min(1, "Content type is required"),
39481
39587
  data: jsonDataSchema,
39482
- status: z71.enum(["draft", "published"]).default("draft"),
39483
- slug: z71.string().optional(),
39484
- summary: z71.string().optional(),
39588
+ status: z69.enum(["draft", "published"]).default("draft"),
39589
+ slug: z69.string().optional(),
39590
+ summary: z69.string().optional(),
39485
39591
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39486
- title: z71.any().optional().refine((value) => value === void 0, {
39592
+ title: z69.any().optional().refine((value) => value === void 0, {
39487
39593
  message: "Entry titles are now derived from entry data. Remove `title` and move it into `data` (e.g. `data.title`, or your configured `titleField`). Run `riverbankcms migrate entries` for guided migration."
39488
39594
  }),
39489
- metaTitle: z71.string().optional(),
39490
- metaDescription: z71.string().optional()
39595
+ metaTitle: z69.string().optional(),
39596
+ metaDescription: z69.string().optional()
39491
39597
  });
39492
- var dropdownLinkSchema = z71.object({
39493
- kind: z71.literal("dropdown")
39598
+ var dropdownLinkSchema = z69.object({
39599
+ kind: z69.literal("dropdown")
39494
39600
  });
39495
- var navigationLinkSchema = z71.discriminatedUnion("kind", [
39601
+ var navigationLinkSchema = z69.discriminatedUnion("kind", [
39496
39602
  ...navigationLinkInputSchemaOptions,
39497
39603
  dropdownLinkSchema
39498
39604
  ]);
39499
- var baseNavigationItemSchema = z71.object({
39500
- label: z71.string().min(1, "Label is required"),
39605
+ var baseNavigationItemSchema = z69.object({
39606
+ label: z69.string().min(1, "Label is required"),
39501
39607
  link: navigationLinkSchema,
39502
- isCta: z71.boolean().optional()
39608
+ isCta: z69.boolean().optional()
39503
39609
  });
39504
39610
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39505
- children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39506
- });
39507
- var navigationMenuConfigSchema = z71.object({
39508
- identifier: z71.string().min(1, "Identifier is required"),
39509
- name: z71.string().min(1, "Name is required"),
39510
- isPrimary: z71.boolean().optional(),
39511
- isFooter: z71.boolean().optional(),
39512
- items: z71.array(navigationItemConfigSchema)
39611
+ children: z69.lazy(() => z69.array(navigationItemConfigSchema)).optional()
39612
+ });
39613
+ var navigationMenuConfigSchema = z69.object({
39614
+ identifier: z69.string().min(1, "Identifier is required"),
39615
+ name: z69.string().min(1, "Name is required"),
39616
+ isPrimary: z69.boolean().optional(),
39617
+ isFooter: z69.boolean().optional(),
39618
+ items: z69.array(navigationItemConfigSchema)
39513
39619
  }).superRefine((menu, ctx) => {
39514
39620
  const portalStats = collectPortalLinkStats(
39515
39621
  menu.items
39516
39622
  );
39517
39623
  if (portalStats.count > 1) {
39518
39624
  ctx.addIssue({
39519
- code: z71.ZodIssueCode.custom,
39625
+ code: z69.ZodIssueCode.custom,
39520
39626
  message: "Only one portal link is allowed per navigation menu",
39521
39627
  path: ["items"]
39522
39628
  });
39523
39629
  }
39524
39630
  if (portalStats.nestedLabels.length > 0) {
39525
39631
  ctx.addIssue({
39526
- code: z71.ZodIssueCode.custom,
39632
+ code: z69.ZodIssueCode.custom,
39527
39633
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39528
39634
  path: ["items"]
39529
39635
  });
39530
39636
  }
39531
39637
  if (portalStats.withChildrenLabels.length > 0) {
39532
39638
  ctx.addIssue({
39533
- code: z71.ZodIssueCode.custom,
39639
+ code: z69.ZodIssueCode.custom,
39534
39640
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39535
39641
  path: ["items"]
39536
39642
  });
@@ -39540,44 +39646,44 @@ var navigationMenuConfigSchema = z71.object({
39540
39646
  );
39541
39647
  if (cartStats.nestedLabels.length > 0) {
39542
39648
  ctx.addIssue({
39543
- code: z71.ZodIssueCode.custom,
39649
+ code: z69.ZodIssueCode.custom,
39544
39650
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39545
39651
  path: ["items"]
39546
39652
  });
39547
39653
  }
39548
39654
  if (cartStats.withChildrenLabels.length > 0) {
39549
39655
  ctx.addIssue({
39550
- code: z71.ZodIssueCode.custom,
39656
+ code: z69.ZodIssueCode.custom,
39551
39657
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39552
39658
  path: ["items"]
39553
39659
  });
39554
39660
  }
39555
39661
  if (cartStats.ctaLabels.length > 0) {
39556
39662
  ctx.addIssue({
39557
- code: z71.ZodIssueCode.custom,
39663
+ code: z69.ZodIssueCode.custom,
39558
39664
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39559
39665
  path: ["items"]
39560
39666
  });
39561
39667
  }
39562
39668
  if (cartStats.missingVisibleTextLabels.length > 0) {
39563
39669
  ctx.addIssue({
39564
- code: z71.ZodIssueCode.custom,
39670
+ code: z69.ZodIssueCode.custom,
39565
39671
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39566
39672
  path: ["items"]
39567
39673
  });
39568
39674
  }
39569
39675
  });
39570
- var siteSettingsConfigSchema = z71.object({
39571
- homepagePath: z71.string().optional(),
39572
- siteTitle: z71.string().optional(),
39573
- siteDescription: z71.string().optional(),
39574
- defaultTemplates: z71.record(z71.string(), z71.string()).optional()
39676
+ var siteSettingsConfigSchema = z69.object({
39677
+ homepagePath: z69.string().optional(),
39678
+ siteTitle: z69.string().optional(),
39679
+ siteDescription: z69.string().optional(),
39680
+ defaultTemplates: z69.record(z69.string(), z69.string()).optional()
39575
39681
  });
39576
- var contentConfigBaseSchema = z71.object({
39577
- contentTypes: z71.array(contentTypeConfigSchema).optional(),
39578
- entries: z71.array(entryConfigSchema).optional(),
39579
- pages: z71.array(pageConfigSchema).optional(),
39580
- navigationMenus: z71.array(navigationMenuConfigSchema).optional(),
39682
+ var contentConfigBaseSchema = z69.object({
39683
+ contentTypes: z69.array(contentTypeConfigSchema).optional(),
39684
+ entries: z69.array(entryConfigSchema).optional(),
39685
+ pages: z69.array(pageConfigSchema).optional(),
39686
+ navigationMenus: z69.array(navigationMenuConfigSchema).optional(),
39581
39687
  settings: siteSettingsConfigSchema.optional()
39582
39688
  });
39583
39689
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39586,7 +39692,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39586
39692
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39587
39693
  if (duplicateKeys.length > 0) {
39588
39694
  ctx.addIssue({
39589
- code: z71.ZodIssueCode.custom,
39695
+ code: z69.ZodIssueCode.custom,
39590
39696
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39591
39697
  path: ["contentTypes"]
39592
39698
  });
@@ -39597,7 +39703,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39597
39703
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39598
39704
  if (duplicateIds.length > 0) {
39599
39705
  ctx.addIssue({
39600
- code: z71.ZodIssueCode.custom,
39706
+ code: z69.ZodIssueCode.custom,
39601
39707
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39602
39708
  path: ["pages"]
39603
39709
  });
@@ -39606,7 +39712,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39606
39712
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39607
39713
  if (duplicatePaths.length > 0) {
39608
39714
  ctx.addIssue({
39609
- code: z71.ZodIssueCode.custom,
39715
+ code: z69.ZodIssueCode.custom,
39610
39716
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39611
39717
  path: ["pages"]
39612
39718
  });
@@ -39617,7 +39723,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39617
39723
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39618
39724
  if (duplicateIds.length > 0) {
39619
39725
  ctx.addIssue({
39620
- code: z71.ZodIssueCode.custom,
39726
+ code: z69.ZodIssueCode.custom,
39621
39727
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39622
39728
  path: ["entries"]
39623
39729
  });
@@ -39628,7 +39734,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39628
39734
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39629
39735
  if (duplicateIds.length > 0) {
39630
39736
  ctx.addIssue({
39631
- code: z71.ZodIssueCode.custom,
39737
+ code: z69.ZodIssueCode.custom,
39632
39738
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39633
39739
  path: ["navigationMenus"]
39634
39740
  });
@@ -39642,7 +39748,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39642
39748
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39643
39749
  if (entriesForType.length > 1) {
39644
39750
  ctx.addIssue({
39645
- code: z71.ZodIssueCode.custom,
39751
+ code: z69.ZodIssueCode.custom,
39646
39752
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39647
39753
  path: ["entries"]
39648
39754
  });
@@ -39755,18 +39861,18 @@ function validateLayout(layout) {
39755
39861
  }
39756
39862
 
39757
39863
  // src/config/dashboard-validation.ts
39758
- import { z as z72 } from "zod";
39759
- var navIdListSchema2 = z72.preprocess((value) => {
39864
+ import { z as z70 } from "zod";
39865
+ var navIdListSchema2 = z70.preprocess((value) => {
39760
39866
  if (!Array.isArray(value)) return void 0;
39761
39867
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39762
39868
  return filtered.length > 0 ? filtered : void 0;
39763
- }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39764
- var dashboardNavVisibilityBaseSchema2 = z72.object({
39765
- mode: z72.enum(["augment", "restrict"]).optional(),
39869
+ }, z70.array(z70.string()).max(200, "Maximum 200 nav IDs").optional());
39870
+ var dashboardNavVisibilityBaseSchema2 = z70.object({
39871
+ mode: z70.enum(["augment", "restrict"]).optional(),
39766
39872
  allowIds: navIdListSchema2,
39767
39873
  denyIds: navIdListSchema2
39768
39874
  }).strip();
39769
- var dashboardNavVisibilityRolesSchema2 = z72.object({
39875
+ var dashboardNavVisibilityRolesSchema2 = z70.object({
39770
39876
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39771
39877
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39772
39878
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39774,28 +39880,28 @@ var dashboardNavVisibilityRolesSchema2 = z72.object({
39774
39880
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39775
39881
  roles: dashboardNavVisibilityRolesSchema2
39776
39882
  }).strip();
39777
- var dashboardNavigationConfigSchema2 = z72.object({
39883
+ var dashboardNavigationConfigSchema2 = z70.object({
39778
39884
  siteNav: dashboardNavVisibilitySchema2.optional(),
39779
39885
  settingsNav: dashboardNavVisibilitySchema2.optional()
39780
39886
  }).strip();
39781
- var dashboardConfigSchema2 = z72.object({
39782
- previewEditingEnabled: z72.boolean().optional(),
39887
+ var dashboardConfigSchema2 = z70.object({
39888
+ previewEditingEnabled: z70.boolean().optional(),
39783
39889
  navigation: dashboardNavigationConfigSchema2.optional()
39784
39890
  }).strip();
39785
39891
 
39786
39892
  // src/zod/titleSourceSchema.ts
39787
- import { z as z73 } from "zod";
39788
- var titleSourceValueSchema = z73.union([
39789
- z73.string().min(1),
39790
- z73.array(z73.string().min(1)).min(1)
39893
+ import { z as z71 } from "zod";
39894
+ var titleSourceValueSchema = z71.union([
39895
+ z71.string().min(1),
39896
+ z71.array(z71.string().min(1)).min(1)
39791
39897
  ]);
39792
39898
 
39793
39899
  // src/config/validation.ts
39794
- var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39795
- var sdkThemeConfigSchema2 = z74.object({
39900
+ var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39901
+ var sdkThemeConfigSchema2 = z72.object({
39796
39902
  palette: sdkThemePaletteSchema2
39797
39903
  });
39798
- var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39904
+ var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
39799
39905
  try {
39800
39906
  const parsed = new URL(url);
39801
39907
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39804,97 +39910,97 @@ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39804
39910
  return false;
39805
39911
  }
39806
39912
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39807
- var sectionBackgroundSchema = z74.object({
39808
- id: z74.string(),
39809
- label: z74.string(),
39810
- token: z74.string()
39913
+ var sectionBackgroundSchema = z72.object({
39914
+ id: z72.string(),
39915
+ label: z72.string(),
39916
+ token: z72.string()
39811
39917
  // Reference to theme palette token
39812
39918
  });
39813
- var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39814
- var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39815
- var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39816
- var sectionOptionsSchema = z74.object({
39817
- backgroundColor: z74.boolean().optional(),
39818
- backgroundImage: z74.boolean().optional(),
39819
- backgroundGradient: z74.boolean().optional(),
39820
- spacing: z74.union([
39821
- z74.array(sectionSpacingSchema),
39822
- z74.boolean()
39919
+ var sectionSpacingSchema = z72.enum(["compact", "default", "spacious"]);
39920
+ var containerMaxWidthSchema = z72.enum(["narrow", "default", "wide", "full"]);
39921
+ var containerAlignmentSchema = z72.enum(["left", "center", "right"]);
39922
+ var sectionOptionsSchema = z72.object({
39923
+ backgroundColor: z72.boolean().optional(),
39924
+ backgroundImage: z72.boolean().optional(),
39925
+ backgroundGradient: z72.boolean().optional(),
39926
+ spacing: z72.union([
39927
+ z72.array(sectionSpacingSchema),
39928
+ z72.boolean()
39823
39929
  ]).optional(),
39824
- textColor: z74.boolean().optional()
39930
+ textColor: z72.boolean().optional()
39825
39931
  }).optional();
39826
- var containerOptionsSchema = z74.object({
39827
- maxWidth: z74.union([
39828
- z74.array(containerMaxWidthSchema),
39829
- z74.boolean()
39932
+ var containerOptionsSchema = z72.object({
39933
+ maxWidth: z72.union([
39934
+ z72.array(containerMaxWidthSchema),
39935
+ z72.boolean()
39830
39936
  ]).optional(),
39831
- alignment: z74.union([
39832
- z74.array(containerAlignmentSchema),
39833
- z74.boolean()
39937
+ alignment: z72.union([
39938
+ z72.array(containerAlignmentSchema),
39939
+ z72.boolean()
39834
39940
  ]).optional()
39835
39941
  }).optional();
39836
- var siteStyleConfigSchema = z74.object({
39837
- sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39942
+ var siteStyleConfigSchema = z72.object({
39943
+ sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
39838
39944
  sectionOptions: sectionOptionsSchema,
39839
39945
  containerOptions: containerOptionsSchema
39840
39946
  }).optional();
39841
- var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39947
+ var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
39842
39948
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39843
- var loaderTransformStepSchema = z74.object({
39844
- id: z74.string().refine((id) => allowedTransformIds.has(id), {
39949
+ var loaderTransformStepSchema = z72.object({
39950
+ id: z72.string().refine((id) => allowedTransformIds.has(id), {
39845
39951
  message: "Unknown transform id"
39846
39952
  }),
39847
- options: z74.record(z74.string(), z74.unknown()).optional()
39953
+ options: z72.record(z72.string(), z72.unknown()).optional()
39848
39954
  });
39849
- var loaderParamBindingSchema2 = z74.object({
39850
- $bind: z74.object({
39851
- from: z74.string().min(1, "Binding path is required"),
39955
+ var loaderParamBindingSchema2 = z72.object({
39956
+ $bind: z72.object({
39957
+ from: z72.string().min(1, "Binding path is required"),
39852
39958
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39853
39959
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39854
39960
  // more complex values into a string.
39855
39961
  fallback: loaderFallbackScalarSchema.optional(),
39856
- transforms: z74.array(loaderTransformStepSchema).default([]),
39857
- pick: z74.enum(["value", "collection", "context"]).default("value"),
39858
- coerce: z74.enum(["number", "boolean", "string"]).optional()
39962
+ transforms: z72.array(loaderTransformStepSchema).default([]),
39963
+ pick: z72.enum(["value", "collection", "context"]).default("value"),
39964
+ coerce: z72.enum(["number", "boolean", "string"]).optional()
39859
39965
  })
39860
39966
  });
39861
- var loaderParamValueSchema2 = z74.union([
39862
- z74.string(),
39863
- z74.number(),
39864
- z74.boolean(),
39967
+ var loaderParamValueSchema2 = z72.union([
39968
+ z72.string(),
39969
+ z72.number(),
39970
+ z72.boolean(),
39865
39971
  loaderParamBindingSchema2
39866
39972
  ]);
39867
- var loaderWhenValueSchema = z74.union([
39868
- z74.boolean(),
39973
+ var loaderWhenValueSchema = z72.union([
39974
+ z72.boolean(),
39869
39975
  loaderParamBindingSchema2
39870
39976
  ]);
39871
- var sdkConfigLoaderSchema2 = z74.object({
39977
+ var sdkConfigLoaderSchema2 = z72.object({
39872
39978
  endpoint: sdkLoaderEndpointSchema2,
39873
- params: z74.record(z74.string(), loaderParamValueSchema2),
39874
- mode: z74.enum(["server", "client"]).default("server"),
39979
+ params: z72.record(z72.string(), loaderParamValueSchema2),
39980
+ mode: z72.enum(["server", "client"]).default("server"),
39875
39981
  when: loaderWhenValueSchema.optional()
39876
39982
  });
39877
- var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39983
+ var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
39878
39984
  (loaders) => Object.keys(loaders).length <= 5,
39879
39985
  { message: "Maximum 5 data loaders per block" }
39880
39986
  ).optional();
39881
- var fieldSelectOptionSchema = z74.object({
39882
- value: z74.string().min(1, "Option value is required"),
39883
- label: z74.string().min(1, "Option label is required")
39987
+ var fieldSelectOptionSchema = z72.object({
39988
+ value: z72.string().min(1, "Option value is required"),
39989
+ label: z72.string().min(1, "Option label is required")
39884
39990
  });
39885
- var blockFieldConfigSchema = z74.object({
39886
- options: z74.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39991
+ var blockFieldConfigSchema = z72.object({
39992
+ options: z72.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39887
39993
  });
39888
- var blockFieldOptionsSchema = z74.record(
39889
- z74.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39994
+ var blockFieldOptionsSchema = z72.record(
39995
+ z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39890
39996
  message: "Block ID must be 'block.*' or 'custom.*' format"
39891
39997
  }),
39892
- z74.record(
39893
- z74.string().min(1, "Field ID is required"),
39998
+ z72.record(
39999
+ z72.string().min(1, "Field ID is required"),
39894
40000
  blockFieldConfigSchema
39895
40001
  )
39896
40002
  ).optional();
39897
- var blockFieldExtensionSchema = z74.object({
40003
+ var blockFieldExtensionSchema = z72.object({
39898
40004
  fields: fieldSchema.array().min(1, "At least one field is required")
39899
40005
  }).refine(
39900
40006
  (data) => {
@@ -39908,10 +40014,10 @@ var blockFieldExtensionSchema = z74.object({
39908
40014
  message: "Required fields must have a defaultValue to support existing blocks"
39909
40015
  }
39910
40016
  );
39911
- var blockFieldExtensionsMapSchema = z74.record(
40017
+ var blockFieldExtensionsMapSchema = z72.record(
39912
40018
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39913
40019
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39914
- z74.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
40020
+ z72.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39915
40021
  message: "Block ID must be 'block.*' format (system blocks only)"
39916
40022
  }),
39917
40023
  blockFieldExtensionSchema
@@ -39927,7 +40033,7 @@ var blockFieldExtensionsMapSchema = z74.record(
39927
40033
  (field) => field.id === collision.fieldId
39928
40034
  );
39929
40035
  ctx.addIssue({
39930
- code: z74.ZodIssueCode.custom,
40036
+ code: z72.ZodIssueCode.custom,
39931
40037
  message: collision.message,
39932
40038
  path: [
39933
40039
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39942,24 +40048,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
39942
40048
  function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
39943
40049
  return collectBookingReservedFieldCollisions(extension, { type: "booking" });
39944
40050
  }
39945
- var syncConfigSchema = z74.object({
39946
- existingEntries: z74.enum(["skip", "update"]).optional()
40051
+ var syncConfigSchema = z72.object({
40052
+ existingEntries: z72.enum(["skip", "update"]).optional()
39947
40053
  }).optional();
39948
- var deployConfigSchema = z74.object({
39949
- verifyCommand: z74.string().optional(),
39950
- prebuildOutput: z74.string().optional()
40054
+ var deployConfigSchema = z72.object({
40055
+ verifyCommand: z72.string().optional(),
40056
+ prebuildOutput: z72.string().optional()
39951
40057
  }).optional();
39952
- var sdkCustomBlockSchema = z74.object({
40058
+ var sdkCustomBlockSchema = z72.object({
39953
40059
  // Block ID must start with 'custom.'
39954
- id: z74.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40060
+ id: z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39955
40061
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39956
40062
  }),
39957
- title: z74.string().min(1, "Title is required"),
40063
+ title: z72.string().min(1, "Title is required"),
39958
40064
  titleSource: titleSourceValueSchema.optional(),
39959
- description: z74.string().optional(),
40065
+ description: z72.string().optional(),
39960
40066
  category: blockCategoryEnum,
39961
- icon: z74.string().optional(),
39962
- tags: z74.array(z74.string()).optional(),
40067
+ icon: z72.string().optional(),
40068
+ tags: z72.array(z72.string()).optional(),
39963
40069
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39964
40070
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39965
40071
  // Data loaders for CMS endpoints
@@ -39967,14 +40073,14 @@ var sdkCustomBlockSchema = z74.object({
39967
40073
  // Optional declarative layout - when present, block can render without React override
39968
40074
  layout: NodeSchema.optional(),
39969
40075
  // Optional variants system (preferred when a block has multiple structural layouts)
39970
- variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39971
- defaultVariant: z74.string().min(1).optional(),
39972
- variantOptions: z74.record(
39973
- z74.string().min(1),
39974
- z74.object({
39975
- label: z74.string().min(1).optional(),
39976
- description: z74.string().min(1).optional(),
39977
- icon: z74.string().min(1).optional()
40076
+ variants: z72.record(z72.string().min(1), NodeSchema).optional(),
40077
+ defaultVariant: z72.string().min(1).optional(),
40078
+ variantOptions: z72.record(
40079
+ z72.string().min(1),
40080
+ z72.object({
40081
+ label: z72.string().min(1).optional(),
40082
+ description: z72.string().min(1).optional(),
40083
+ icon: z72.string().min(1).optional()
39978
40084
  })
39979
40085
  ).optional(),
39980
40086
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -39986,7 +40092,7 @@ var sdkCustomBlockSchema = z74.object({
39986
40092
  const exists = fields3.some((field) => field.id === source);
39987
40093
  if (!exists) {
39988
40094
  ctx.addIssue({
39989
- code: z74.ZodIssueCode.custom,
40095
+ code: z72.ZodIssueCode.custom,
39990
40096
  message: `titleSource must reference a valid field ID (got "${source}")`,
39991
40097
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
39992
40098
  });
@@ -39995,7 +40101,7 @@ var sdkCustomBlockSchema = z74.object({
39995
40101
  }
39996
40102
  if (data.layout && data.variants) {
39997
40103
  ctx.addIssue({
39998
- code: z74.ZodIssueCode.custom,
40104
+ code: z72.ZodIssueCode.custom,
39999
40105
  message: "Custom block must define either `layout` or `variants`, not both",
40000
40106
  path: ["variants"]
40001
40107
  });
@@ -40005,7 +40111,7 @@ var sdkCustomBlockSchema = z74.object({
40005
40111
  if (!result.valid) {
40006
40112
  for (const error of result.errors) {
40007
40113
  ctx.addIssue({
40008
- code: z74.ZodIssueCode.custom,
40114
+ code: z72.ZodIssueCode.custom,
40009
40115
  message: error.message,
40010
40116
  path: ["layout"]
40011
40117
  });
@@ -40016,14 +40122,14 @@ var sdkCustomBlockSchema = z74.object({
40016
40122
  const keys = Object.keys(data.variants);
40017
40123
  if (keys.length === 0) {
40018
40124
  ctx.addIssue({
40019
- code: z74.ZodIssueCode.custom,
40125
+ code: z72.ZodIssueCode.custom,
40020
40126
  message: "`variants` must contain at least one variant key",
40021
40127
  path: ["variants"]
40022
40128
  });
40023
40129
  }
40024
40130
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40025
40131
  ctx.addIssue({
40026
- code: z74.ZodIssueCode.custom,
40132
+ code: z72.ZodIssueCode.custom,
40027
40133
  message: "`defaultVariant` must be a key present in `variants`",
40028
40134
  path: ["defaultVariant"]
40029
40135
  });
@@ -40033,7 +40139,7 @@ var sdkCustomBlockSchema = z74.object({
40033
40139
  if (!result.valid) {
40034
40140
  for (const error of result.errors) {
40035
40141
  ctx.addIssue({
40036
- code: z74.ZodIssueCode.custom,
40142
+ code: z72.ZodIssueCode.custom,
40037
40143
  message: `${key}: ${error.message}`,
40038
40144
  path: ["variants", key]
40039
40145
  });
@@ -40044,7 +40150,7 @@ var sdkCustomBlockSchema = z74.object({
40044
40150
  for (const key of Object.keys(data.variantOptions)) {
40045
40151
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40046
40152
  ctx.addIssue({
40047
- code: z74.ZodIssueCode.custom,
40153
+ code: z72.ZodIssueCode.custom,
40048
40154
  message: "`variantOptions` key must exist in `variants`",
40049
40155
  path: ["variantOptions", key]
40050
40156
  });
@@ -40053,58 +40159,58 @@ var sdkCustomBlockSchema = z74.object({
40053
40159
  }
40054
40160
  }
40055
40161
  });
40056
- var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40057
- var activeThemeSchema = z74.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40162
+ var themeSourceSchema = z72.enum(["local", "cms"]).optional();
40163
+ var activeThemeSchema = z72.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40058
40164
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40059
40165
  }).max(64, "Theme name too long").optional();
40060
40166
  function isValidConfigBlockKind(kind) {
40061
40167
  if (getBlockDefinition(kind)) return true;
40062
40168
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40063
40169
  }
40064
- var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
40170
+ var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40065
40171
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40066
40172
  });
40067
- var layoutFooterBlockSchema = z74.object({
40068
- id: z74.string().min(1).optional(),
40173
+ var layoutFooterBlockSchema = z72.object({
40174
+ id: z72.string().min(1).optional(),
40069
40175
  kind: layoutBlockKindSchema,
40070
40176
  // Allow omitted content for blocks that rely on defaults.
40071
- content: z74.record(z74.string(), z74.unknown()).optional()
40177
+ content: z72.record(z72.string(), z72.unknown()).optional()
40072
40178
  }).strict();
40073
- var layoutConfigSchema = z74.object({
40074
- footerBlocks: z74.array(layoutFooterBlockSchema).optional()
40179
+ var layoutConfigSchema = z72.object({
40180
+ footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40075
40181
  }).strict();
40076
- var sdkWorkflowIdSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40182
+ var sdkWorkflowIdSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40077
40183
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40078
40184
  });
40079
- var sdkWorkflowEndpointSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
40080
- var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40081
- z74.object({ type: z74.literal("manual") }).strict()
40185
+ var sdkWorkflowEndpointSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
40186
+ var sdkWorkflowTriggerSchema2 = z72.discriminatedUnion("type", [
40187
+ z72.object({ type: z72.literal("manual") }).strict()
40082
40188
  ]);
40083
- var sdkWorkflowConfirmationSchema2 = z74.object({
40084
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40085
- body: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40189
+ var sdkWorkflowConfirmationSchema2 = z72.object({
40190
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40191
+ body: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40086
40192
  }).strict();
40087
- var sdkWorkflowConfigSchema2 = z74.object({
40193
+ var sdkWorkflowConfigSchema2 = z72.object({
40088
40194
  id: sdkWorkflowIdSchema2,
40089
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40090
- description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40091
- contentType: z74.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40195
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40196
+ description: z72.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40197
+ contentType: z72.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40092
40198
  endpoint: sdkWorkflowEndpointSchema2,
40093
- triggers: z74.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40199
+ triggers: z72.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40094
40200
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40095
40201
  }).strict();
40096
- var sdkWorkflowsSchema2 = z74.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40202
+ var sdkWorkflowsSchema2 = z72.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40097
40203
  const ids = workflows.map((workflow) => workflow.id);
40098
40204
  return ids.length === new Set(ids).size;
40099
40205
  }, { message: "Workflow IDs must be unique" }).optional();
40100
- var riverbankSiteConfigSchema = z74.object({
40101
- siteId: z74.string().uuid(),
40206
+ var riverbankSiteConfigSchema = z72.object({
40207
+ siteId: z72.string().uuid(),
40102
40208
  previewUrl: sdkSiteUrlSchema.optional(),
40103
40209
  liveUrl: sdkSiteUrlSchema.optional(),
40104
40210
  theme: sdkThemeConfigSchema2.optional(),
40105
40211
  styles: siteStyleConfigSchema,
40106
40212
  layout: layoutConfigSchema.optional(),
40107
- customBlocks: z74.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40213
+ customBlocks: z72.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40108
40214
  // Ensure unique block IDs
40109
40215
  (blocks) => {
40110
40216
  const ids = blocks.map((b) => b.id);
@@ -40117,7 +40223,7 @@ var riverbankSiteConfigSchema = z74.object({
40117
40223
  workflows: sdkWorkflowsSchema2,
40118
40224
  content: contentConfigSchema.optional(),
40119
40225
  // CLI-related configuration (Phase 4)
40120
- contentDir: z74.string().optional(),
40226
+ contentDir: z72.string().optional(),
40121
40227
  sync: syncConfigSchema,
40122
40228
  deploy: deployConfigSchema,
40123
40229
  // Theme sync configuration (Phase 5)