@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
@@ -6504,6 +6504,8 @@ function publicEventPricingType(pricing) {
6504
6504
  case "ticket_types":
6505
6505
  case "course":
6506
6506
  return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
6507
+ case "external":
6508
+ return "external";
6507
6509
  }
6508
6510
  }
6509
6511
  function isFreePublicEventPriceDisplay(display) {
@@ -6517,6 +6519,7 @@ function isFreePublicEventPriceDisplay(display) {
6517
6519
  case "range":
6518
6520
  case "mixed":
6519
6521
  case "unavailable":
6522
+ case "external":
6520
6523
  return false;
6521
6524
  }
6522
6525
  }
@@ -6777,7 +6780,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6777
6780
  );
6778
6781
 
6779
6782
  // ../api/src/sdkConfig/contracts.ts
6780
- import { z as z65 } from "zod";
6783
+ import { z as z63 } from "zod";
6781
6784
 
6782
6785
  // ../blocks/src/system/manifest/augmentManifest.ts
6783
6786
  function augmentManifest(manifest) {
@@ -7103,12 +7106,17 @@ var visibleWhenPredicateSchema = z4.object({
7103
7106
  minItems: z4.number().int().nonnegative().optional(),
7104
7107
  maxItems: z4.number().int().nonnegative().optional()
7105
7108
  });
7106
- var visibleWhenSchema = z4.union([
7107
- visibleWhenPredicateSchema,
7108
- z4.object({
7109
- allOf: z4.array(visibleWhenPredicateSchema).min(1)
7110
- })
7111
- ]);
7109
+ var visibleWhenSchema = z4.lazy(
7110
+ () => z4.union([
7111
+ visibleWhenPredicateSchema,
7112
+ z4.object({
7113
+ allOf: z4.array(visibleWhenSchema).min(1)
7114
+ }),
7115
+ z4.object({
7116
+ anyOf: z4.array(visibleWhenSchema).min(1)
7117
+ })
7118
+ ])
7119
+ );
7112
7120
  var uiSchema = z4.object({
7113
7121
  widget: z4.string().optional(),
7114
7122
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -20094,9 +20102,6 @@ var heroCopyFragment = defineFragment({
20094
20102
  maxLength: 600
20095
20103
  }
20096
20104
  ],
20097
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
20098
- // `splitEditorial` variant reads these nodes by index; keep the order stable
20099
- // (it fails fast at import if the count changes).
20100
20105
  layout: [
20101
20106
  text(
20102
20107
  {
@@ -22334,32 +22339,6 @@ var splitReverseLayout = splitLayoutWith([
22334
22339
  splitContentColumn,
22335
22340
  splitImageColumn
22336
22341
  ]);
22337
- var heroEyebrowNode = heroCopyFragment.layout[0];
22338
- var heroHeadlineNode = heroCopyFragment.layout[1];
22339
- var heroSubheadlineNode = heroCopyFragment.layout[2];
22340
- var heroCtaRowNode = heroCtaRowFragment.layout[0];
22341
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
22342
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
22343
- }
22344
- var heroEditorialBottomRow = inline(
22345
- {
22346
- gap: "lg",
22347
- align: "end",
22348
- justify: "start",
22349
- wrap: true,
22350
- className: "rb-w-full"
22351
- },
22352
- [heroSubheadlineNode, heroCtaRowNode]
22353
- );
22354
- var splitEditorialContentColumn = heroContentWrapper(
22355
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
22356
- "md",
22357
- "rb-w-full rb-text-left"
22358
- );
22359
- var splitEditorialLayout = splitLayoutWith([
22360
- splitEditorialContentColumn,
22361
- splitImageColumn
22362
- ]);
22363
22342
  var heroConfig = {
22364
22343
  id: "block.hero",
22365
22344
  title: "Hero",
@@ -22383,7 +22362,8 @@ var heroConfig = {
22383
22362
  id: "imageShape",
22384
22363
  label: "Image shape",
22385
22364
  defaultValue: "default",
22386
- uiIntent: "display"
22365
+ uiIntent: "display",
22366
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
22387
22367
  })
22388
22368
  ],
22389
22369
  layout: classicLayout,
@@ -22391,8 +22371,7 @@ var heroConfig = {
22391
22371
  classic: classicLayout,
22392
22372
  micro: microLayout,
22393
22373
  split: splitLayout,
22394
- splitReverse: splitReverseLayout,
22395
- splitEditorial: splitEditorialLayout
22374
+ splitReverse: splitReverseLayout
22396
22375
  },
22397
22376
  defaultVariant: "classic",
22398
22377
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -24268,8 +24247,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
24268
24247
  return isPlainObject(raw) ? raw : null;
24269
24248
  }
24270
24249
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
24250
+ const explicitValue = readString(content, fallbackKey);
24251
+ if (explicitValue !== void 0) return explicitValue;
24271
24252
  const generated = resolveGeneratedHeroLayoutStyles(content);
24272
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
24253
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
24273
24254
  }
24274
24255
  function resolveHeroVariant(content) {
24275
24256
  const variant = readString(content, "variant");
@@ -24282,7 +24263,7 @@ function resolveHeroContentAlignment(content) {
24282
24263
  const raw = readHeroLayoutString(content, "contentAlignment");
24283
24264
  if (raw === "left" || raw === "center" || raw === "right") return raw;
24284
24265
  const variant = resolveHeroVariant(content);
24285
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
24266
+ if (variant === "split" || variant === "splitReverse") return "left";
24286
24267
  return "center";
24287
24268
  }
24288
24269
  function resolveHeroVerticalAlignment(content) {
@@ -24292,7 +24273,7 @@ function resolveHeroVerticalAlignment(content) {
24292
24273
  const minHeight = sectionStyles?.minHeight;
24293
24274
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
24294
24275
  const variant = resolveHeroVariant(content);
24295
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
24276
+ if (variant === "split" || variant === "splitReverse") return "center";
24296
24277
  return "top";
24297
24278
  }
24298
24279
  function resolveHeroContentMaxWidth(content) {
@@ -27861,9 +27842,6 @@ var appointmentBookingBlockDefinition = {
27861
27842
  }
27862
27843
  };
27863
27844
 
27864
- // ../blocks/src/system/blocks/event-registration.ts
27865
- import { z as z47 } from "zod";
27866
-
27867
27845
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27868
27846
  import { z as z43 } from "zod";
27869
27847
 
@@ -28104,6 +28082,18 @@ var publicCoursesArraySchema = z42.array(publicCourseSchema);
28104
28082
  var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28105
28083
  var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28106
28084
  var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28085
+ var publicEventDestinationSchema = z43.discriminatedUnion("kind", [
28086
+ z43.object({
28087
+ kind: z43.literal("native"),
28088
+ mode: eventDestinationModeSchema,
28089
+ path: z43.string()
28090
+ }),
28091
+ z43.object({
28092
+ kind: z43.literal("external"),
28093
+ url: z43.string(),
28094
+ label: z43.string()
28095
+ })
28096
+ ]);
28107
28097
  var eventVenueSchema = z43.object({
28108
28098
  id: z43.string(),
28109
28099
  name: z43.string(),
@@ -28118,7 +28108,7 @@ var eventCategorySchema = z43.object({
28118
28108
  name: z43.string(),
28119
28109
  color: z43.string().nullable()
28120
28110
  });
28121
- var pricingTypeSchema = z43.enum(["free", "paid"]);
28111
+ var pricingTypeSchema = z43.enum(["free", "paid", "external"]);
28122
28112
  var accessRestrictionSchema = z43.enum(["none", "category"]);
28123
28113
  var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28124
28114
  var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
@@ -28139,6 +28129,7 @@ var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28139
28129
  currency: z43.string()
28140
28130
  }),
28141
28131
  z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28132
+ z43.object({ kind: z43.literal("external"), label: z43.string() }),
28142
28133
  z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28143
28134
  ]);
28144
28135
  var publicEventTicketTypePriceDisplaySchema = z43.union([
@@ -28217,6 +28208,10 @@ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28217
28208
  z43.object({
28218
28209
  kind: z43.literal("course"),
28219
28210
  display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28211
+ }),
28212
+ z43.object({
28213
+ kind: z43.literal("external"),
28214
+ display: z43.object({ kind: z43.literal("external"), label: z43.string() })
28220
28215
  })
28221
28216
  ]);
28222
28217
  var publicTeamMemberSummarySchema = z43.object({
@@ -28245,7 +28240,8 @@ var publicEventSchema = z43.object({
28245
28240
  image: mediaSchema2.nullable().optional()
28246
28241
  }).optional(),
28247
28242
  slug: z43.string(),
28248
- path: z43.string(),
28243
+ path: z43.string().nullable(),
28244
+ destination: publicEventDestinationSchema,
28249
28245
  requiresRegistration: z43.boolean(),
28250
28246
  deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28251
28247
  attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
@@ -28478,24 +28474,57 @@ function normalizeEventStaffMemberId(value) {
28478
28474
  return trimmed ? trimmed : null;
28479
28475
  }
28480
28476
 
28481
- // ../blocks/src/system/blocks/event-registration.shared.ts
28477
+ // ../blocks/src/system/blocks/shop.shared.ts
28482
28478
  import { z as z44 } from "zod";
28483
- var occurrenceContextSchema = z44.object({
28479
+ var publicPassProductSchema = z44.object({
28484
28480
  id: z44.string(),
28485
- seriesId: z44.string(),
28486
- startsAt: z44.string(),
28487
- endsAt: z44.string(),
28488
- timeZone: z44.string(),
28489
- capacityOverride: z44.number().nullable().optional(),
28490
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28481
+ productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28482
+ name: z44.string(),
28483
+ description: z44.string().nullable(),
28484
+ price: z44.number(),
28485
+ currency: z44.string(),
28486
+ creditsTotal: z44.number(),
28487
+ pricePerCredit: z44.number(),
28488
+ validDays: z44.number().nullable(),
28489
+ eligibleCategoryIds: z44.array(z44.string()),
28490
+ eligibleCategoryNames: z44.array(z44.string())
28491
+ });
28492
+ var publicPassProductCollectionSchema = z44.object({
28493
+ passes: z44.array(publicPassProductSchema)
28494
+ });
28495
+ var publicMembershipProductSchema = z44.object({
28496
+ id: z44.string(),
28497
+ name: z44.string(),
28498
+ description: z44.string().nullable(),
28499
+ price: z44.number(),
28500
+ currency: z44.string(),
28501
+ billingInterval: z44.enum(["month", "year"]),
28502
+ eligibleCategoryIds: z44.array(z44.string()),
28503
+ eligibleCategoryNames: z44.array(z44.string())
28504
+ });
28505
+ var publicMembershipProductCollectionSchema = z44.object({
28506
+ memberships: z44.array(publicMembershipProductSchema)
28507
+ });
28508
+
28509
+ // ../blocks/src/system/blocks/event-registration.shared.ts
28510
+ import { z as z45 } from "zod";
28511
+ var occurrenceContextSchema = z45.object({
28512
+ id: z45.string(),
28513
+ seriesId: z45.string(),
28514
+ startsAt: z45.string(),
28515
+ endsAt: z45.string(),
28516
+ timeZone: z45.string(),
28517
+ capacityOverride: z45.number().nullable().optional(),
28518
+ overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28491
28519
  }).nullable();
28492
28520
 
28493
28521
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28494
- import { z as z46 } from "zod";
28522
+ import { z as z47 } from "zod";
28495
28523
 
28496
28524
  // ../blocks/src/system/constants/events.ts
28497
28525
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
28498
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
28526
+ var eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
28527
+ var eventCalendarDefaultViewValues = ["month", "week"];
28499
28528
  var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
28500
28529
  var eventCalendarListLayoutOptions = [
28501
28530
  { id: "stack", label: "Stack" },
@@ -28505,6 +28534,9 @@ var eventCalendarListLayoutOptions = [
28505
28534
  function isEventCalendarDisplayMode(value) {
28506
28535
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
28507
28536
  }
28537
+ function isEventCalendarDefaultView(value) {
28538
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
28539
+ }
28508
28540
  function isEventCalendarListLayout(value) {
28509
28541
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
28510
28542
  }
@@ -28513,12 +28545,41 @@ function isEventContentType(slug) {
28513
28545
  return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
28514
28546
  }
28515
28547
 
28548
+ // ../blocks/src/system/runtime/nodes/events/shared/destination.ts
28549
+ function isRecord3(value) {
28550
+ return typeof value === "object" && value !== null && !Array.isArray(value);
28551
+ }
28552
+ function isRuntimeEventDestination(value) {
28553
+ if (!isRecord3(value) || typeof value.kind !== "string") return false;
28554
+ if (value.kind === "native") {
28555
+ return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
28556
+ }
28557
+ return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
28558
+ }
28559
+ function resolveRuntimeEventDestination(event) {
28560
+ if (isRuntimeEventDestination(event.destination)) {
28561
+ return event.destination;
28562
+ }
28563
+ return {
28564
+ kind: "native",
28565
+ mode: event.eventDestinationMode === "system-managed" ? "system-managed" : "cms-managed",
28566
+ path: typeof event.path === "string" ? event.path : ""
28567
+ };
28568
+ }
28569
+
28516
28570
  // ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
28517
28571
  var DEFAULT_EVENT_CURRENCY = "USD";
28518
28572
  function resolveRuntimeEventPricing(event) {
28519
28573
  if (isPublicEventPricing(event.pricing)) {
28520
28574
  return event.pricing;
28521
28575
  }
28576
+ const destination = resolveRuntimeEventDestination(event);
28577
+ if (destination.kind === "external") {
28578
+ return {
28579
+ kind: "external",
28580
+ display: { kind: "external", label: "External registration" }
28581
+ };
28582
+ }
28522
28583
  const legacy = event;
28523
28584
  const currency = readCurrency(legacy.currency);
28524
28585
  if (event.requiresRegistration === false) {
@@ -28555,22 +28616,22 @@ function resolveRuntimeEventPricing(event) {
28555
28616
  function readCurrency(value) {
28556
28617
  return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY;
28557
28618
  }
28558
- function isRecord3(value) {
28619
+ function isRecord4(value) {
28559
28620
  return typeof value === "object" && value !== null && !Array.isArray(value);
28560
28621
  }
28561
28622
  function isPublicEventPricing(value) {
28562
- if (!isRecord3(value) || typeof value.kind !== "string") return false;
28563
- return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course";
28623
+ if (!isRecord4(value) || typeof value.kind !== "string") return false;
28624
+ return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
28564
28625
  }
28565
28626
  function isPublicEventTicketType(value) {
28566
- return isRecord3(value) && typeof value.id === "string";
28627
+ return isRecord4(value) && typeof value.id === "string";
28567
28628
  }
28568
28629
  function readTicketTypePriceDisplay(value, currency) {
28569
28630
  const display = readLegacyPriceDisplay(value, currency);
28570
- return display.kind === "course" ? { kind: "unavailable", currency } : display;
28631
+ return display.kind === "course" || display.kind === "external" ? { kind: "unavailable", currency } : display;
28571
28632
  }
28572
28633
  function readLegacyPriceDisplay(value, currency) {
28573
- if (!isRecord3(value) || typeof value.kind !== "string") {
28634
+ if (!isRecord4(value) || typeof value.kind !== "string") {
28574
28635
  return { kind: "unavailable", currency };
28575
28636
  }
28576
28637
  const displayCurrency = readCurrency(value.currency);
@@ -28609,7 +28670,7 @@ function readLegacyPriceDisplay(value, currency) {
28609
28670
  case "unavailable":
28610
28671
  return { kind: "unavailable", currency: displayCurrency };
28611
28672
  case "course":
28612
- return isRecord3(value.display) ? {
28673
+ return isRecord4(value.display) ? {
28613
28674
  kind: "course",
28614
28675
  display: readCoursePriceDisplay(value.display, displayCurrency)
28615
28676
  } : {
@@ -28645,16 +28706,17 @@ function readAmount(value) {
28645
28706
  }
28646
28707
 
28647
28708
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28648
- import { z as z45 } from "zod";
28649
- var previewStageSchema = z45.enum(["preview", "published"]);
28650
- var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28651
- var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28652
- var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28653
- var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28654
- var columnOptionSchema = z45.enum(["2", "3", "4"]);
28655
- var weekStartSchema = z45.enum(["sunday", "monday"]);
28656
- var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28657
- var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28709
+ import { z as z46 } from "zod";
28710
+ var previewStageSchema = z46.enum(["preview", "published"]);
28711
+ var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28712
+ var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28713
+ var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28714
+ var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28715
+ var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28716
+ var columnOptionSchema = z46.enum(["2", "3", "4"]);
28717
+ var weekStartSchema = z46.enum(["sunday", "monday"]);
28718
+ var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28719
+ var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
28658
28720
 
28659
28721
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28660
28722
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28672,7 +28734,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
28672
28734
  function findPreSelectedEvent(input) {
28673
28735
  const occurrenceContext = input.occurrenceContext;
28674
28736
  if (!occurrenceContext) {
28675
- return null;
28737
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
28676
28738
  }
28677
28739
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
28678
28740
  startsAt: occurrenceContext.startsAt,
@@ -28695,7 +28757,7 @@ function resolveEventRequiresPayment(input) {
28695
28757
  if (!input.event) {
28696
28758
  return false;
28697
28759
  }
28698
- return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
28760
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) === "paid";
28699
28761
  }
28700
28762
 
28701
28763
  // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
@@ -28714,68 +28776,72 @@ function toRegistrationEvents(events) {
28714
28776
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28715
28777
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28716
28778
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28717
- var contentEntrySchema = z46.object({
28718
- id: z46.string(),
28719
- slug: z46.string(),
28720
- contentTypeSlug: z46.string()
28779
+ var contentEntrySchema = z47.object({
28780
+ id: z47.string(),
28781
+ slug: z47.string(),
28782
+ contentTypeSlug: z47.string()
28721
28783
  });
28722
- var eventRegistrationPublicEventSchema = z46.preprocess(
28784
+ var eventRegistrationPublicEventSchema = z47.preprocess(
28723
28785
  normalizeEventRegistrationEventInput,
28724
28786
  publicEventSchema
28725
28787
  );
28726
- var eventRegistrationSourceSchema = z46.object({
28727
- siteId: z46.string().optional(),
28728
- apiBaseUrl: z46.string().optional(),
28729
- portalToken: z46.string().nullable().optional(),
28730
- previewToken: z46.string().nullable().optional(),
28788
+ var eventRegistrationSourceSchema = z47.object({
28789
+ siteId: z47.string().optional(),
28790
+ apiBaseUrl: z47.string().optional(),
28791
+ portalToken: z47.string().nullable().optional(),
28792
+ previewToken: z47.string().nullable().optional(),
28731
28793
  occurrenceContext: occurrenceContextSchema.optional(),
28732
28794
  contentEntry: contentEntrySchema.nullable().optional(),
28733
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28734
- className: z46.string().nullable().optional(),
28735
- buttonText: z46.string().nullable().optional(),
28736
- maxTickets: z46.string().nullable().optional(),
28737
- showVenue: z46.boolean().optional(),
28738
- showCapacity: z46.boolean().optional(),
28739
- successMessage: z46.string().optional(),
28740
- waitlistMessage: z46.string().optional(),
28795
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28796
+ className: z47.string().nullable().optional(),
28797
+ buttonText: z47.string().nullable().optional(),
28798
+ maxTickets: z47.string().nullable().optional(),
28799
+ showVenue: z47.boolean().optional(),
28800
+ showCapacity: z47.boolean().optional(),
28801
+ successMessage: z47.string().optional(),
28802
+ waitlistMessage: z47.string().optional(),
28741
28803
  buttonVariant: registrationButtonVariantSchema.optional(),
28742
- overlayEnabled: z46.boolean().optional(),
28743
- spamProtectionEnabled: z46.boolean().optional(),
28804
+ overlayEnabled: z47.boolean().optional(),
28805
+ spamProtectionEnabled: z47.boolean().optional(),
28744
28806
  stage: previewStageSchema.optional(),
28745
- supportEmail: z46.string().optional()
28746
- });
28747
- var eventRegistrationDisplaySchema = z46.object({
28748
- kind: z46.literal("event-registration"),
28749
- state: z46.literal("generic-shell"),
28750
- className: z46.string().nullable(),
28751
- titleText: z46.string(),
28752
- bodyText: z46.string(),
28753
- stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28754
- summaryButtonText: z46.string()
28755
- });
28756
- var eventRegistrationHydrationSchema = z46.object({
28807
+ supportEmail: z47.string().optional(),
28808
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28809
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28810
+ });
28811
+ var eventRegistrationDisplaySchema = z47.object({
28812
+ kind: z47.literal("event-registration"),
28813
+ state: z47.literal("generic-shell"),
28814
+ className: z47.string().nullable(),
28815
+ titleText: z47.string(),
28816
+ bodyText: z47.string(),
28817
+ stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28818
+ summaryButtonText: z47.string()
28819
+ });
28820
+ var eventRegistrationHydrationSchema = z47.object({
28757
28821
  occurrenceContext: occurrenceContextSchema.optional(),
28758
28822
  contentEntry: contentEntrySchema.nullable().optional(),
28759
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28760
- maxTickets: z46.string().optional(),
28761
- showVenue: z46.boolean().optional(),
28762
- showCapacity: z46.boolean().optional(),
28763
- successMessage: z46.string().optional(),
28764
- waitlistMessage: z46.string().optional(),
28823
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28824
+ maxTickets: z47.string().optional(),
28825
+ showVenue: z47.boolean().optional(),
28826
+ showCapacity: z47.boolean().optional(),
28827
+ successMessage: z47.string().optional(),
28828
+ waitlistMessage: z47.string().optional(),
28765
28829
  buttonVariant: registrationButtonVariantSchema.optional(),
28766
- overlayEnabled: z46.boolean().optional(),
28767
- spamProtectionEnabled: z46.boolean().optional(),
28768
- supportEmail: z46.string().optional()
28830
+ overlayEnabled: z47.boolean().optional(),
28831
+ spamProtectionEnabled: z47.boolean().optional(),
28832
+ supportEmail: z47.string().optional(),
28833
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28834
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28769
28835
  });
28770
- var eventRegistrationRenderSchema = z46.object({
28836
+ var eventRegistrationRenderSchema = z47.object({
28771
28837
  display: eventRegistrationDisplaySchema,
28772
28838
  hydration: eventRegistrationHydrationSchema
28773
28839
  });
28774
- var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28775
- siteId: z46.string().optional(),
28776
- apiBaseUrl: z46.string().optional(),
28777
- portalToken: z46.string().nullable().optional(),
28778
- previewToken: z46.string().nullable().optional(),
28840
+ var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28841
+ siteId: z47.string().optional(),
28842
+ apiBaseUrl: z47.string().optional(),
28843
+ portalToken: z47.string().nullable().optional(),
28844
+ previewToken: z47.string().nullable().optional(),
28779
28845
  stage: previewStageSchema.optional()
28780
28846
  }));
28781
28847
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28881,20 +28947,23 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28881
28947
  buttonVariant: source.buttonVariant,
28882
28948
  overlayEnabled: source.overlayEnabled,
28883
28949
  spamProtectionEnabled: source.spamProtectionEnabled,
28884
- supportEmail: source.supportEmail
28950
+ supportEmail: source.supportEmail,
28951
+ sitePasses: source.sitePasses ?? null,
28952
+ siteMemberships: source.siteMemberships ?? null
28885
28953
  }
28886
28954
  })
28887
28955
  });
28888
28956
  function normalizeEventRegistrationEventInput(value) {
28889
- if (!isRecord4(value)) {
28957
+ if (!isRecord5(value)) {
28890
28958
  return value;
28891
28959
  }
28892
28960
  return {
28893
28961
  ...value,
28962
+ destination: resolveRuntimeEventDestination(value),
28894
28963
  pricing: resolveRuntimeEventPricing(value)
28895
28964
  };
28896
28965
  }
28897
- function isRecord4(value) {
28966
+ function isRecord5(value) {
28898
28967
  return typeof value === "object" && value !== null && !Array.isArray(value);
28899
28968
  }
28900
28969
  var eventRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCodec({
@@ -29063,6 +29132,8 @@ var eventRegistrationManifest = createBlockManifest({
29063
29132
  },
29064
29133
  // Event data from loader
29065
29134
  events: { $bind: { from: "data.events" } },
29135
+ sitePasses: { $bind: { from: "data.sitePasses" } },
29136
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
29066
29137
  // Stage for preview mode (allows registering for draft events)
29067
29138
  stage: {
29068
29139
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -29081,7 +29152,9 @@ var eventRegistrationBlockDefinition = {
29081
29152
  manifest: eventRegistrationManifest,
29082
29153
  runtime: eventRegistrationBlockRuntime,
29083
29154
  dataSchemas: {
29084
- events: z47.array(publicEventSchema).optional(),
29155
+ events: publicEventsArraySchema.optional(),
29156
+ sitePasses: publicPassProductCollectionSchema.optional(),
29157
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
29085
29158
  occurrenceContext: occurrenceContextSchema.optional()
29086
29159
  },
29087
29160
  dataLoaders: {
@@ -29100,6 +29173,20 @@ var eventRegistrationBlockDefinition = {
29100
29173
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
29101
29174
  },
29102
29175
  mode: "server"
29176
+ },
29177
+ sitePasses: {
29178
+ endpoint: "listPublicPasses",
29179
+ params: {
29180
+ siteId: { $bind: { from: "$root.siteId" } }
29181
+ },
29182
+ mode: "server"
29183
+ },
29184
+ siteMemberships: {
29185
+ endpoint: "listPublicMemberships",
29186
+ params: {
29187
+ siteId: { $bind: { from: "$root.siteId" } }
29188
+ },
29189
+ mode: "server"
29103
29190
  }
29104
29191
  }
29105
29192
  };
@@ -29431,35 +29518,7 @@ var courseRegistrationBlockDefinition = {
29431
29518
  };
29432
29519
 
29433
29520
  // ../blocks/src/system/blocks/event-details.ts
29434
- import { z as z50 } from "zod";
29435
-
29436
- // ../blocks/src/system/blocks/shop.shared.ts
29437
29521
  import { z as z49 } from "zod";
29438
- var publicPassProductSchema = z49.object({
29439
- id: z49.string(),
29440
- productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29441
- name: z49.string(),
29442
- description: z49.string().nullable(),
29443
- price: z49.number(),
29444
- currency: z49.string(),
29445
- creditsTotal: z49.number(),
29446
- pricePerCredit: z49.number(),
29447
- validDays: z49.number().nullable(),
29448
- eligibleCategoryIds: z49.array(z49.string()),
29449
- eligibleCategoryNames: z49.array(z49.string())
29450
- });
29451
- var publicMembershipProductSchema = z49.object({
29452
- id: z49.string(),
29453
- name: z49.string(),
29454
- description: z49.string().nullable(),
29455
- price: z49.number(),
29456
- currency: z49.string(),
29457
- billingInterval: z49.enum(["month", "year"]),
29458
- eligibleCategoryIds: z49.array(z49.string()),
29459
- eligibleCategoryNames: z49.array(z49.string())
29460
- });
29461
-
29462
- // ../blocks/src/system/blocks/event-details.ts
29463
29522
  var eventDetailsManifest = createBlockManifest({
29464
29523
  id: "block.event-details",
29465
29524
  version: "1.0.0",
@@ -29591,40 +29650,40 @@ var eventDetailsManifest = createBlockManifest({
29591
29650
  })
29592
29651
  ]
29593
29652
  });
29594
- var occurrenceContextSchema2 = z50.object({
29595
- id: z50.string(),
29596
- seriesId: z50.string(),
29597
- startsAt: z50.string(),
29598
- endsAt: z50.string(),
29599
- timeZone: z50.string(),
29600
- capacityOverride: z50.number().nullable().optional(),
29601
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29653
+ var occurrenceContextSchema2 = z49.object({
29654
+ id: z49.string(),
29655
+ seriesId: z49.string(),
29656
+ startsAt: z49.string(),
29657
+ endsAt: z49.string(),
29658
+ timeZone: z49.string(),
29659
+ capacityOverride: z49.number().nullable().optional(),
29660
+ overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29602
29661
  }).nullable();
29603
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29604
- id: z50.string(),
29605
- publicLabel: z50.string(),
29606
- description: z50.string().nullable(),
29607
- minTicketsRequired: z50.number().nullable()
29662
+ var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29663
+ id: z49.string(),
29664
+ publicLabel: z49.string(),
29665
+ description: z49.string().nullable(),
29666
+ minTicketsRequired: z49.number().nullable()
29608
29667
  });
29609
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29668
+ var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29610
29669
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29611
- discountType: z50.literal("percent"),
29612
- discountPercent: z50.number(),
29613
- discountAmountCents: z50.null()
29670
+ discountType: z49.literal("percent"),
29671
+ discountPercent: z49.number(),
29672
+ discountAmountCents: z49.null()
29614
29673
  }),
29615
29674
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29616
- discountType: z50.literal("fixed"),
29617
- discountPercent: z50.null(),
29618
- discountAmountCents: z50.number()
29675
+ discountType: z49.literal("fixed"),
29676
+ discountPercent: z49.null(),
29677
+ discountAmountCents: z49.number()
29619
29678
  })
29620
29679
  ]);
29621
29680
  var eventDetailsBlockDefinition = {
29622
29681
  manifest: eventDetailsManifest,
29623
29682
  dataSchemas: {
29624
- eventDetailsData: z50.object({
29683
+ eventDetailsData: z49.object({
29625
29684
  events: publicEventsArraySchema,
29626
- sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29627
- siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29685
+ sitePasses: publicPassProductCollectionSchema,
29686
+ siteMemberships: publicMembershipProductCollectionSchema,
29628
29687
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29629
29688
  }).optional(),
29630
29689
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29948,7 +30007,7 @@ var eventSpotlightBlockDefinition = {
29948
30007
  };
29949
30008
 
29950
30009
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29951
- import { z as z52 } from "zod";
30010
+ import { z as z51 } from "zod";
29952
30011
 
29953
30012
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29954
30013
  var COLUMN_CLASSES = {
@@ -30056,16 +30115,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30056
30115
  }
30057
30116
 
30058
30117
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30059
- import { z as z51 } from "zod";
30118
+ import { z as z50 } from "zod";
30060
30119
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30061
- var eventPageSizeSchema = z51.union([
30062
- z51.literal(3),
30063
- z51.literal(6),
30064
- z51.literal(10),
30065
- z51.literal(12),
30066
- z51.literal(20),
30067
- z51.literal(24),
30068
- z51.literal(30)
30120
+ var eventPageSizeSchema = z50.union([
30121
+ z50.literal(3),
30122
+ z50.literal(6),
30123
+ z50.literal(10),
30124
+ z50.literal(12),
30125
+ z50.literal(20),
30126
+ z50.literal(24),
30127
+ z50.literal(30)
30069
30128
  ]);
30070
30129
  var eventPageSizeSet = new Set(eventPageSizeValues);
30071
30130
  function resolveEventPageSize(value, fallback = 12) {
@@ -30075,15 +30134,15 @@ function resolveEventPageSize(value, fallback = 12) {
30075
30134
  function resolveEventCalendarListPageSize(input) {
30076
30135
  return resolveEventPageSize(input.eventsPerPage);
30077
30136
  }
30078
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30079
- z51.object({
30080
- kind: z51.literal("loadMore"),
30081
- label: z51.string()
30137
+ var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30138
+ z50.object({
30139
+ kind: z50.literal("loadMore"),
30140
+ label: z50.string()
30082
30141
  }),
30083
- z51.object({
30084
- kind: z51.literal("seeAllLink"),
30085
- label: z51.string(),
30086
- href: z51.string()
30142
+ z50.object({
30143
+ kind: z50.literal("seeAllLink"),
30144
+ label: z50.string(),
30145
+ href: z50.string()
30087
30146
  })
30088
30147
  ]);
30089
30148
  function resolveEventListPaginationAction(input) {
@@ -30096,89 +30155,89 @@ function resolveEventListPaginationAction(input) {
30096
30155
  }
30097
30156
 
30098
30157
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30099
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30100
- var eventCardVariantInputSchema = z52.union([
30158
+ var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30159
+ var eventCardVariantInputSchema = z51.union([
30101
30160
  cardVariantRoleSchema,
30102
30161
  legacyEventCardVariantSchema
30103
30162
  ]);
30104
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30105
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30106
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30107
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30108
- var eventListingSourceSchema = z52.object({
30109
- events: z52.array(publicEventSchema).nullable().optional(),
30110
- siteId: z52.string(),
30111
- apiBaseUrl: z52.string().optional(),
30163
+ var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30164
+ var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30165
+ var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30166
+ var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30167
+ var eventListingSourceSchema = z51.object({
30168
+ events: z51.array(publicEventSchema).nullable().optional(),
30169
+ siteId: z51.string(),
30170
+ apiBaseUrl: z51.string().optional(),
30112
30171
  stage: previewStageSchema.optional(),
30113
30172
  layout: eventLayoutSchema.optional(),
30114
30173
  columns: columnOptionSchema.optional(),
30115
- eventsPerPage: z52.string().optional(),
30116
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30117
- seeAllUrl: z52.string().optional(),
30118
- loadMoreText: z52.string().optional(),
30174
+ eventsPerPage: z51.string().optional(),
30175
+ paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30176
+ seeAllUrl: z51.string().optional(),
30177
+ loadMoreText: z51.string().optional(),
30119
30178
  cardVariant: eventCardVariantInputSchema.optional(),
30120
30179
  buttonVariant: eventButtonVariantSchema.optional(),
30121
- buttonText: z52.string().optional(),
30122
- showVenue: z52.boolean().optional(),
30123
- showMap: z52.boolean().optional(),
30124
- showCapacity: z52.boolean().optional(),
30125
- emptyMessage: z52.string().optional(),
30126
- className: z52.string().optional(),
30127
- showFilters: z52.boolean().nullable().optional(),
30180
+ buttonText: z51.string().optional(),
30181
+ showVenue: z51.boolean().optional(),
30182
+ showMap: z51.boolean().optional(),
30183
+ showCapacity: z51.boolean().optional(),
30184
+ emptyMessage: z51.string().optional(),
30185
+ className: z51.string().optional(),
30186
+ showFilters: z51.boolean().nullable().optional(),
30128
30187
  showCategoryFilter: filterAutoShowSchema.optional(),
30129
- showVenueFilter: z52.boolean().nullable().optional(),
30130
- showStaffFilter: z52.boolean().nullable().optional(),
30188
+ showVenueFilter: z51.boolean().nullable().optional(),
30189
+ showStaffFilter: z51.boolean().nullable().optional(),
30131
30190
  eventKind: eventBlockKindSchema.nullable().optional(),
30132
30191
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30133
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30192
+ filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30134
30193
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30135
- filterCategoryIds: z52.string().nullable().optional(),
30136
- filterStaffMemberId: z52.string().nullable().optional(),
30137
- filterVenueId: z52.string().nullable().optional()
30194
+ filterCategoryIds: z51.string().nullable().optional(),
30195
+ filterStaffMemberId: z51.string().nullable().optional(),
30196
+ filterVenueId: z51.string().nullable().optional()
30138
30197
  });
30139
- var eventListingDisplaySchema = z52.object({
30140
- kind: z52.literal("event-listing"),
30141
- state: z52.enum(["loading", "empty", "ready"]),
30198
+ var eventListingDisplaySchema = z51.object({
30199
+ kind: z51.literal("event-listing"),
30200
+ state: z51.enum(["loading", "empty", "ready"]),
30142
30201
  listLayout: eventLayoutSchema,
30143
- className: z52.string().nullable(),
30144
- emptyMessage: z52.string(),
30145
- loadingMessage: z52.string(),
30146
- containerClass: z52.string(),
30202
+ className: z51.string().nullable(),
30203
+ emptyMessage: z51.string(),
30204
+ loadingMessage: z51.string(),
30205
+ containerClass: z51.string(),
30147
30206
  cardVariant: cardVariantRoleSchema,
30148
30207
  buttonVariant: eventButtonVariantSchema,
30149
- buttonText: z52.string(),
30150
- showVenue: z52.boolean(),
30151
- showMap: z52.boolean(),
30152
- showCapacity: z52.boolean(),
30208
+ buttonText: z51.string(),
30209
+ showVenue: z51.boolean(),
30210
+ showMap: z51.boolean(),
30211
+ showCapacity: z51.boolean(),
30153
30212
  orientation: cardOrientationSchema,
30154
- events: z52.array(publicEventSchema)
30213
+ events: z51.array(publicEventSchema)
30155
30214
  });
30156
- var eventListingHydrationSchema = z52.object({
30157
- siteId: z52.string(),
30215
+ var eventListingHydrationSchema = z51.object({
30216
+ siteId: z51.string(),
30158
30217
  stage: previewStageSchema.optional(),
30159
30218
  eventsPerPage: eventPageSizeSchema,
30160
30219
  paginationAction: eventListPaginationActionSchema,
30161
- showFilters: z52.boolean(),
30220
+ showFilters: z51.boolean(),
30162
30221
  showCategoryFilter: filterAutoShowSchema,
30163
- showVenueFilter: z52.boolean(),
30164
- showStaffFilter: z52.boolean(),
30222
+ showVenueFilter: z51.boolean(),
30223
+ showStaffFilter: z51.boolean(),
30165
30224
  eventKind: eventBlockKindSchema,
30166
30225
  eventSurface: eventSurfaceScopeSchema,
30167
- filterEventPresets: z52.string().nullable(),
30226
+ filterEventPresets: z51.string().nullable(),
30168
30227
  scheduleScope: eventScheduleScopeSchema2,
30169
- filterCategoryIds: z52.string().nullable().optional(),
30170
- filterStaffMemberId: z52.string().nullable().optional(),
30171
- filterVenueId: z52.string().nullable().optional(),
30172
- fetchInitialEventsOnMount: z52.boolean()
30228
+ filterCategoryIds: z51.string().nullable().optional(),
30229
+ filterStaffMemberId: z51.string().nullable().optional(),
30230
+ filterVenueId: z51.string().nullable().optional(),
30231
+ fetchInitialEventsOnMount: z51.boolean()
30173
30232
  });
30174
- var eventListingRenderSchema = z52.object({
30233
+ var eventListingRenderSchema = z51.object({
30175
30234
  display: eventListingDisplaySchema,
30176
30235
  hydration: eventListingHydrationSchema
30177
30236
  });
30178
30237
  var eventListingIslandMetaCodec = createZodCodec(
30179
- z52.object({
30180
- siteId: z52.string(),
30181
- apiBaseUrl: z52.string().optional(),
30238
+ z51.object({
30239
+ siteId: z51.string(),
30240
+ apiBaseUrl: z51.string().optional(),
30182
30241
  stage: previewStageSchema.optional()
30183
30242
  })
30184
30243
  );
@@ -30545,15 +30604,15 @@ var eventListingBlockDefinition = {
30545
30604
  };
30546
30605
 
30547
30606
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30548
- import { z as z53 } from "zod";
30549
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30550
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30551
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30552
- var eventCalendarSourceSchema = z53.object(
30607
+ import { z as z52 } from "zod";
30608
+ var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30609
+ var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30610
+ var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30611
+ var eventCalendarSourceSchema = z52.object(
30553
30612
  {
30554
- events: z53.array(publicEventSchema).nullable().optional(),
30555
- siteId: z53.string(),
30556
- apiBaseUrl: z53.string().optional(),
30613
+ events: z52.array(publicEventSchema).nullable().optional(),
30614
+ siteId: z52.string(),
30615
+ apiBaseUrl: z52.string().optional(),
30557
30616
  stage: previewStageSchema.optional(),
30558
30617
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30559
30618
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30561,78 +30620,80 @@ var eventCalendarSourceSchema = z53.object(
30561
30620
  listColumns: columnOptionSchema.optional(),
30562
30621
  layout: eventLayoutSchema.optional(),
30563
30622
  columns: columnOptionSchema.optional(),
30564
- eventsPerPage: z53.string().optional(),
30565
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30566
- seeAllUrl: z53.string().optional(),
30567
- loadMoreText: z53.string().optional(),
30623
+ eventsPerPage: z52.string().optional(),
30624
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30625
+ seeAllUrl: z52.string().optional(),
30626
+ loadMoreText: z52.string().optional(),
30568
30627
  startOfWeek: weekStartSchema.optional(),
30569
30628
  calendarTabViews: calendarTabViewsSchema.optional(),
30570
- showFilters: z53.boolean().nullable().optional(),
30629
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30630
+ showFilters: z52.boolean().nullable().optional(),
30571
30631
  showCategoryFilter: filterAutoShowSchema.optional(),
30572
- showVenueFilter: z53.boolean().nullable().optional(),
30573
- showStaffFilter: z53.boolean().nullable().optional(),
30632
+ showVenueFilter: z52.boolean().nullable().optional(),
30633
+ showStaffFilter: z52.boolean().nullable().optional(),
30574
30634
  kind: eventBlockKindSchema2.nullable().optional(),
30575
30635
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30576
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30636
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30577
30637
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30578
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30579
- filterStaffMemberId: z53.string().nullable().optional(),
30580
- filterVenueId: z53.string().nullable().optional(),
30638
+ filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30639
+ filterStaffMemberId: z52.string().nullable().optional(),
30640
+ filterVenueId: z52.string().nullable().optional(),
30581
30641
  buttonVariant: eventButtonVariantSchema.optional(),
30582
- buttonText: z53.string().optional(),
30583
- showVenue: z53.boolean().nullable().optional(),
30584
- showMap: z53.boolean().nullable().optional(),
30585
- showCapacity: z53.boolean().nullable().optional(),
30586
- emptyMessage: z53.string().optional(),
30587
- className: z53.string().optional()
30642
+ buttonText: z52.string().optional(),
30643
+ showVenue: z52.boolean().nullable().optional(),
30644
+ showMap: z52.boolean().nullable().optional(),
30645
+ showCapacity: z52.boolean().nullable().optional(),
30646
+ emptyMessage: z52.string().optional(),
30647
+ className: z52.string().optional()
30588
30648
  }
30589
30649
  );
30590
- var eventCalendarDisplaySchema = z53.object({
30591
- kind: z53.literal("event-calendar"),
30650
+ var eventCalendarDisplaySchema = z52.object({
30651
+ kind: z52.literal("event-calendar"),
30592
30652
  displayMode: eventCalendarDisplayModeSchema,
30593
- className: z53.string().nullable(),
30594
- events: z53.array(publicEventSchema),
30653
+ className: z52.string().nullable(),
30654
+ events: z52.array(publicEventSchema),
30595
30655
  listLayout: eventLayoutSchema,
30596
30656
  listColumns: columnOptionSchema,
30597
30657
  eventsPerPage: eventPageSizeSchema,
30598
30658
  paginationAction: eventListPaginationActionSchema,
30599
30659
  startOfWeek: weekStartSchema,
30600
30660
  calendarTabViews: calendarTabViewsSchema,
30601
- showFilters: z53.boolean(),
30661
+ defaultCalendarView: eventCalendarDefaultViewSchema,
30662
+ showFilters: z52.boolean(),
30602
30663
  showCategoryFilter: filterAutoShowSchema,
30603
- showVenueFilter: z53.boolean(),
30604
- showStaffFilter: z53.boolean(),
30664
+ showVenueFilter: z52.boolean(),
30665
+ showStaffFilter: z52.boolean(),
30605
30666
  eventKind: eventBlockKindSchema2,
30606
30667
  eventSurface: eventSurfaceScopeSchema2,
30607
- filterEventPresets: z53.string().nullable(),
30668
+ filterEventPresets: z52.string().nullable(),
30608
30669
  scheduleScope: eventScheduleScopeSchema3,
30609
- filterCategoryIds: z53.string().nullable(),
30610
- filterStaffMemberId: z53.string().nullable(),
30611
- filterVenueId: z53.string().nullable(),
30670
+ filterCategoryIds: z52.string().nullable(),
30671
+ filterStaffMemberId: z52.string().nullable(),
30672
+ filterVenueId: z52.string().nullable(),
30612
30673
  buttonVariant: eventButtonVariantSchema,
30613
- buttonText: z53.string(),
30614
- showVenue: z53.boolean(),
30615
- showMap: z53.boolean(),
30616
- showCapacity: z53.boolean(),
30617
- emptyMessage: z53.string()
30618
- });
30619
- var eventCalendarHydrationSchema = z53.object({
30620
- siteId: z53.string(),
30674
+ buttonText: z52.string(),
30675
+ showVenue: z52.boolean(),
30676
+ showMap: z52.boolean(),
30677
+ showCapacity: z52.boolean(),
30678
+ emptyMessage: z52.string()
30679
+ });
30680
+ var eventCalendarHydrationSchema = z52.object({
30681
+ siteId: z52.string(),
30621
30682
  stage: previewStageSchema.optional(),
30622
- prefetchedEvents: z53.boolean(),
30683
+ prefetchedEvents: z52.boolean(),
30623
30684
  eventKind: eventBlockKindSchema2,
30624
30685
  eventSurface: eventSurfaceScopeSchema2,
30625
- filterEventPresets: z53.string().nullable(),
30686
+ filterEventPresets: z52.string().nullable(),
30626
30687
  scheduleScope: eventScheduleScopeSchema3
30627
30688
  });
30628
- var eventCalendarRenderSchema = z53.object({
30689
+ var eventCalendarRenderSchema = z52.object({
30629
30690
  display: eventCalendarDisplaySchema,
30630
30691
  hydration: eventCalendarHydrationSchema
30631
30692
  });
30632
30693
  var eventCalendarIslandMetaCodec = createZodCodec(
30633
- z53.object({
30634
- siteId: z53.string(),
30635
- apiBaseUrl: z53.string().optional(),
30694
+ z52.object({
30695
+ siteId: z52.string(),
30696
+ apiBaseUrl: z52.string().optional(),
30636
30697
  stage: previewStageSchema.optional()
30637
30698
  })
30638
30699
  );
@@ -30662,6 +30723,7 @@ function buildEventCalendarDisplay(source) {
30662
30723
  }),
30663
30724
  startOfWeek: source.startOfWeek ?? "monday",
30664
30725
  calendarTabViews: source.calendarTabViews ?? "both",
30726
+ defaultCalendarView: source.defaultCalendarView ?? "month",
30665
30727
  showFilters: source.showFilters ?? true,
30666
30728
  showCategoryFilter: source.showCategoryFilter ?? "auto",
30667
30729
  showVenueFilter: source.showVenueFilter ?? false,
@@ -30724,6 +30786,9 @@ function normalizeEventCalendarContent(content) {
30724
30786
  ...variant ? { variant } : {},
30725
30787
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
30726
30788
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
30789
+ defaultCalendarView: normalizeEventCalendarDefaultView(
30790
+ record.defaultCalendarView
30791
+ ),
30727
30792
  kind,
30728
30793
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
30729
30794
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -30741,6 +30806,9 @@ function normalizeEventCalendarDisplayMode(value) {
30741
30806
  function normalizeEventCalendarListLayout(value) {
30742
30807
  return isEventCalendarListLayout(value) ? value : void 0;
30743
30808
  }
30809
+ function normalizeEventCalendarDefaultView(value) {
30810
+ return isEventCalendarDefaultView(value) ? value : void 0;
30811
+ }
30744
30812
  var eventCalendarLayout = [
30745
30813
  styledSection({
30746
30814
  children: sectionContainer(
@@ -30800,6 +30868,9 @@ var eventCalendarLayout = [
30800
30868
  calendarTabViews: {
30801
30869
  $bind: { from: "content.calendarTabViews", fallback: "both" }
30802
30870
  },
30871
+ defaultCalendarView: {
30872
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
30873
+ },
30803
30874
  // Filtering options
30804
30875
  showFilters: {
30805
30876
  $bind: { from: "content.showFilters", fallback: true }
@@ -30866,8 +30937,7 @@ var eventCalendarAdditionalFields = [
30866
30937
  defaultValue: "combined",
30867
30938
  options: [
30868
30939
  { value: "combined", label: "Combined (List + Calendar tabs)" },
30869
- { value: "month", label: "Month calendar" },
30870
- { value: "week", label: "Week agenda" },
30940
+ { value: "calendar", label: "Calendar" },
30871
30941
  { value: "timetable", label: "Timetable" },
30872
30942
  { value: "list", label: "List" }
30873
30943
  ],
@@ -30906,7 +30976,12 @@ var eventCalendarAdditionalFields = [
30906
30976
  ],
30907
30977
  ui: {
30908
30978
  intent: "display",
30909
- visibleWhen: { field: "listLayout", equals: "grid" }
30979
+ visibleWhen: {
30980
+ allOf: [
30981
+ { field: "variant", oneOf: ["combined", "list"] },
30982
+ { field: "listLayout", equals: "grid" }
30983
+ ]
30984
+ }
30910
30985
  }
30911
30986
  },
30912
30987
  {
@@ -30954,7 +31029,12 @@ var eventCalendarAdditionalFields = [
30954
31029
  required: false,
30955
31030
  ui: {
30956
31031
  intent: "display",
30957
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
31032
+ visibleWhen: {
31033
+ allOf: [
31034
+ { field: "variant", oneOf: ["combined", "list"] },
31035
+ { field: "paginationMode", equals: "seeAllLink" }
31036
+ ]
31037
+ }
30958
31038
  }
30959
31039
  },
30960
31040
  {
@@ -30987,7 +31067,7 @@ var eventCalendarAdditionalFields = [
30987
31067
  intent: "display",
30988
31068
  visibleWhen: {
30989
31069
  field: "variant",
30990
- oneOf: ["combined", "month", "week"]
31070
+ oneOf: ["combined", "calendar", "timetable"]
30991
31071
  }
30992
31072
  }
30993
31073
  },
@@ -31010,6 +31090,33 @@ var eventCalendarAdditionalFields = [
31010
31090
  visibleWhen: { field: "variant", equals: "combined" }
31011
31091
  }
31012
31092
  },
31093
+ {
31094
+ id: "defaultCalendarView",
31095
+ type: "select",
31096
+ label: "Calendar view",
31097
+ description: "Choose the standalone calendar view, or the first view in combined mode",
31098
+ required: false,
31099
+ multiple: false,
31100
+ defaultValue: "month",
31101
+ options: [
31102
+ { value: "month", label: "Month" },
31103
+ { value: "week", label: "Week" }
31104
+ ],
31105
+ ui: {
31106
+ intent: "display",
31107
+ visibleWhen: {
31108
+ anyOf: [
31109
+ { field: "variant", equals: "calendar" },
31110
+ {
31111
+ allOf: [
31112
+ { field: "variant", equals: "combined" },
31113
+ { field: "calendarTabViews", equals: "both" }
31114
+ ]
31115
+ }
31116
+ ]
31117
+ }
31118
+ }
31119
+ },
31013
31120
  // Filtering options
31014
31121
  {
31015
31122
  id: "kind",
@@ -31037,7 +31144,7 @@ var eventCalendarAdditionalFields = [
31037
31144
  intent: "display",
31038
31145
  visibleWhen: {
31039
31146
  field: "variant",
31040
- oneOf: ["combined", "list", "timetable"]
31147
+ oneOf: ["combined", "calendar", "list", "timetable"]
31041
31148
  }
31042
31149
  }
31043
31150
  },
@@ -31057,8 +31164,10 @@ var eventCalendarAdditionalFields = [
31057
31164
  ui: {
31058
31165
  intent: "display",
31059
31166
  visibleWhen: {
31060
- field: "variant",
31061
- oneOf: ["combined", "list", "timetable"]
31167
+ allOf: [
31168
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31169
+ { field: "showFilters", equals: true }
31170
+ ]
31062
31171
  }
31063
31172
  }
31064
31173
  },
@@ -31072,8 +31181,10 @@ var eventCalendarAdditionalFields = [
31072
31181
  ui: {
31073
31182
  intent: "display",
31074
31183
  visibleWhen: {
31075
- field: "variant",
31076
- oneOf: ["combined", "list", "timetable"]
31184
+ allOf: [
31185
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31186
+ { field: "showFilters", equals: true }
31187
+ ]
31077
31188
  }
31078
31189
  }
31079
31190
  },
@@ -31087,8 +31198,10 @@ var eventCalendarAdditionalFields = [
31087
31198
  ui: {
31088
31199
  intent: "display",
31089
31200
  visibleWhen: {
31090
- field: "variant",
31091
- oneOf: ["combined", "list", "timetable"]
31201
+ allOf: [
31202
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31203
+ { field: "showFilters", equals: true }
31204
+ ]
31092
31205
  }
31093
31206
  }
31094
31207
  },
@@ -31102,8 +31215,15 @@ var eventCalendarAdditionalFields = [
31102
31215
  ui: {
31103
31216
  intent: "display",
31104
31217
  visibleWhen: {
31105
- field: "variant",
31106
- oneOf: ["combined", "list", "week", "timetable"]
31218
+ anyOf: [
31219
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
31220
+ {
31221
+ allOf: [
31222
+ { field: "variant", equals: "calendar" },
31223
+ { field: "defaultCalendarView", equals: "week" }
31224
+ ]
31225
+ }
31226
+ ]
31107
31227
  }
31108
31228
  }
31109
31229
  },
@@ -31219,8 +31339,7 @@ var eventCalendarAdditionalFields = [
31219
31339
  ];
31220
31340
  var eventCalendarVariants = {
31221
31341
  combined: eventCalendarLayout[0],
31222
- month: eventCalendarLayout[0],
31223
- week: eventCalendarLayout[0],
31342
+ calendar: eventCalendarLayout[0],
31224
31343
  timetable: eventCalendarLayout[0],
31225
31344
  list: eventCalendarLayout[0]
31226
31345
  };
@@ -31232,8 +31351,7 @@ var eventCalendarDerivedFields = [
31232
31351
  multiple: false,
31233
31352
  options: [
31234
31353
  { value: "combined" },
31235
- { value: "month" },
31236
- { value: "week" },
31354
+ { value: "calendar" },
31237
31355
  { value: "timetable" },
31238
31356
  { value: "list" }
31239
31357
  ]
@@ -31246,6 +31364,13 @@ var eventCalendarDerivedFields = [
31246
31364
  options: eventCalendarListLayoutOptions.map((option) => ({
31247
31365
  value: option.id
31248
31366
  }))
31367
+ },
31368
+ {
31369
+ id: "defaultCalendarView",
31370
+ type: "select",
31371
+ required: false,
31372
+ multiple: false,
31373
+ options: [{ value: "month" }, { value: "week" }]
31249
31374
  }
31250
31375
  ];
31251
31376
  var eventCalendarContentShape = {
@@ -31294,8 +31419,7 @@ var eventCalendarConfig = {
31294
31419
  defaultVariant: "combined",
31295
31420
  variantOptions: {
31296
31421
  combined: { label: "Combined" },
31297
- month: { label: "Month" },
31298
- week: { label: "Week" },
31422
+ calendar: { label: "Calendar" },
31299
31423
  timetable: { label: "Timetable" },
31300
31424
  list: { label: "List" }
31301
31425
  }
@@ -31341,7 +31465,7 @@ var eventCalendarBlockDefinition = {
31341
31465
  };
31342
31466
 
31343
31467
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31344
- import { z as z54 } from "zod";
31468
+ import { z as z53 } from "zod";
31345
31469
 
31346
31470
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31347
31471
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31401,7 +31525,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
31401
31525
  return keys.length >= 2 ? keys : [];
31402
31526
  }
31403
31527
  function normalizeOfferingsPreviewContentForWrite(value) {
31404
- if (!isRecord5(value)) return null;
31528
+ if (!isRecord6(value)) return null;
31405
31529
  const groupOrderValue = value.groupOrder;
31406
31530
  if (Array.isArray(groupOrderValue)) {
31407
31531
  const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
@@ -31414,7 +31538,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
31414
31538
  return { ...value, groupOrder: [] };
31415
31539
  }
31416
31540
  const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(
31417
- Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord5) : []
31541
+ Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord6) : []
31418
31542
  );
31419
31543
  return legacyOrder.length > 0 ? { ...value, groupOrder: legacyOrder } : value;
31420
31544
  }
@@ -31428,18 +31552,18 @@ function uniqueOfferingsPreviewSourceKeys(values) {
31428
31552
  }
31429
31553
  return keys;
31430
31554
  }
31431
- function isRecord5(value) {
31555
+ function isRecord6(value) {
31432
31556
  return typeof value === "object" && value !== null && !Array.isArray(value);
31433
31557
  }
31434
31558
 
31435
31559
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31436
- var publicRouteCandidatesSchema = z54.object({
31437
- routes: z54.array(z54.object({
31438
- entityId: z54.string(),
31439
- path: z54.string(),
31440
- title: z54.string(),
31441
- kind: z54.enum(["page", "content"]),
31442
- contentTypeKey: z54.string().nullable().optional()
31560
+ var publicRouteCandidatesSchema = z53.object({
31561
+ routes: z53.array(z53.object({
31562
+ entityId: z53.string(),
31563
+ path: z53.string(),
31564
+ title: z53.string(),
31565
+ kind: z53.enum(["page", "content"]),
31566
+ contentTypeKey: z53.string().nullable().optional()
31443
31567
  }))
31444
31568
  });
31445
31569
  var groupOverrideFields = [
@@ -31795,7 +31919,7 @@ function isOfferingsPreviewItemLimit(value) {
31795
31919
  return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
31796
31920
  }
31797
31921
  function normalizeOfferingsPreviewGroupOverride(value) {
31798
- if (!isRecord6(value)) return [];
31922
+ if (!isRecord7(value)) return [];
31799
31923
  const override = {};
31800
31924
  if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) {
31801
31925
  override.sourceKey = value.sourceKey;
@@ -31827,17 +31951,17 @@ function isButtonVariant(value) {
31827
31951
  return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
31828
31952
  }
31829
31953
  function normalizeCardStylesContent(value) {
31830
- return isRecord6(value) || value === null ? value : void 0;
31954
+ return isRecord7(value) || value === null ? value : void 0;
31831
31955
  }
31832
31956
  function normalizeSectionStylesContent(value) {
31833
- return isRecord6(value) || value === null ? value : void 0;
31957
+ return isRecord7(value) || value === null ? value : void 0;
31834
31958
  }
31835
- function isRecord6(value) {
31959
+ function isRecord7(value) {
31836
31960
  return typeof value === "object" && value !== null && !Array.isArray(value);
31837
31961
  }
31838
31962
 
31839
31963
  // ../blocks/src/system/blocks/embed.ts
31840
- import { z as z55 } from "zod";
31964
+ import { z as z54 } from "zod";
31841
31965
  var embedFields = [
31842
31966
  // Section heading
31843
31967
  parseFieldDefinition({
@@ -32068,18 +32192,18 @@ var embedManifest = createBlockManifest({
32068
32192
  spacing: "lg"
32069
32193
  }
32070
32194
  });
32071
- var embedEntrySchema = z55.object({
32072
- id: z55.string(),
32073
- identifier: z55.string(),
32074
- title: z55.string(),
32075
- slug: z55.string().nullable().optional(),
32076
- content: z55.record(z55.string(), z55.unknown()).optional(),
32077
- publishedAt: z55.string().nullable().optional()
32195
+ var embedEntrySchema = z54.object({
32196
+ id: z54.string(),
32197
+ identifier: z54.string(),
32198
+ title: z54.string(),
32199
+ slug: z54.string().nullable().optional(),
32200
+ content: z54.record(z54.string(), z54.unknown()).optional(),
32201
+ publishedAt: z54.string().nullable().optional()
32078
32202
  });
32079
32203
  var embedBlockDefinition = {
32080
32204
  manifest: embedManifest,
32081
32205
  dataSchemas: {
32082
- entries: z55.array(embedEntrySchema).optional()
32206
+ entries: z54.array(embedEntrySchema).optional()
32083
32207
  },
32084
32208
  dataLoaders: {
32085
32209
  entries: {
@@ -33262,53 +33386,50 @@ var fileDownloadBlockDefinition = {
33262
33386
  manifest: fileDownloadManifest
33263
33387
  };
33264
33388
 
33265
- // ../blocks/src/system/blocks/shop.ts
33266
- import { z as z59 } from "zod";
33267
-
33268
33389
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33269
- import { z as z58 } from "zod";
33390
+ import { z as z57 } from "zod";
33270
33391
 
33271
33392
  // ../blocks/src/system/blocks/products/shared.ts
33272
- import { z as z56 } from "zod";
33273
- var publicProductVariantSchema = z56.object({
33274
- id: z56.string(),
33275
- title: z56.string(),
33276
- sku: z56.string().nullable(),
33277
- priceCents: z56.number(),
33278
- stockQuantity: z56.number().nullable(),
33279
- soldOut: z56.boolean()
33280
- });
33281
- var publicProductSchema = z56.object({
33282
- id: z56.string(),
33283
- contentEntryId: z56.string().nullable(),
33284
- title: z56.string(),
33285
- slug: z56.string(),
33286
- path: z56.string().nullable(),
33287
- status: z56.enum(["draft", "active"]),
33288
- priceCents: z56.number(),
33289
- currency: z56.string(),
33290
- productType: z56.enum(["physical", "digital"]),
33291
- requiresShipping: z56.boolean(),
33292
- hasVariants: z56.boolean(),
33293
- trackInventory: z56.boolean(),
33294
- soldOut: z56.boolean(),
33295
- category: z56.object({
33296
- id: z56.string(),
33297
- name: z56.string(),
33298
- slug: z56.string()
33393
+ import { z as z55 } from "zod";
33394
+ var publicProductVariantSchema = z55.object({
33395
+ id: z55.string(),
33396
+ title: z55.string(),
33397
+ sku: z55.string().nullable(),
33398
+ priceCents: z55.number(),
33399
+ stockQuantity: z55.number().nullable(),
33400
+ soldOut: z55.boolean()
33401
+ });
33402
+ var publicProductSchema = z55.object({
33403
+ id: z55.string(),
33404
+ contentEntryId: z55.string().nullable(),
33405
+ title: z55.string(),
33406
+ slug: z55.string(),
33407
+ path: z55.string().nullable(),
33408
+ status: z55.enum(["draft", "active"]),
33409
+ priceCents: z55.number(),
33410
+ currency: z55.string(),
33411
+ productType: z55.enum(["physical", "digital"]),
33412
+ requiresShipping: z55.boolean(),
33413
+ hasVariants: z55.boolean(),
33414
+ trackInventory: z55.boolean(),
33415
+ soldOut: z55.boolean(),
33416
+ category: z55.object({
33417
+ id: z55.string(),
33418
+ name: z55.string(),
33419
+ slug: z55.string()
33299
33420
  }).nullable(),
33300
- summary: z56.string().nullable(),
33301
- body: z56.unknown().nullable(),
33302
- gallery: z56.array(
33303
- z56.object({
33304
- url: z56.string(),
33305
- alt: z56.string().nullable()
33421
+ summary: z55.string().nullable(),
33422
+ body: z55.unknown().nullable(),
33423
+ gallery: z55.array(
33424
+ z55.object({
33425
+ url: z55.string(),
33426
+ alt: z55.string().nullable()
33306
33427
  })
33307
33428
  ),
33308
- variants: z56.array(publicProductVariantSchema)
33429
+ variants: z55.array(publicProductVariantSchema)
33309
33430
  });
33310
- var publicProductsResponseSchema = z56.object({
33311
- products: z56.array(publicProductSchema)
33431
+ var publicProductsResponseSchema = z55.object({
33432
+ products: z55.array(publicProductSchema)
33312
33433
  });
33313
33434
 
33314
33435
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33372,27 +33493,27 @@ function deriveCreditProductLabels(products, options = {}) {
33372
33493
  }
33373
33494
 
33374
33495
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33375
- import { z as z57 } from "zod";
33376
- var storedProductCartItemSchema = z57.object({
33377
- kind: z57.literal("product"),
33378
- productId: z57.string().min(1),
33379
- productCategoryId: z57.string().min(1).optional().nullable(),
33380
- variantId: z57.string().min(1).optional().nullable(),
33381
- title: z57.string().min(1),
33382
- variantTitle: z57.string().optional().nullable(),
33383
- quantity: z57.number().finite(),
33384
- unitPriceCents: z57.number().finite(),
33385
- currency: z57.string().min(1),
33386
- imageUrl: z57.string().optional().nullable(),
33387
- soldOut: z57.boolean().optional()
33388
- });
33389
- var storedPassCartItemSchema = z57.object({
33390
- kind: z57.literal("pass"),
33391
- passId: z57.string().min(1),
33392
- title: z57.string().min(1),
33393
- quantity: z57.number().finite().optional(),
33394
- unitPriceCents: z57.number().finite(),
33395
- currency: z57.string().min(1)
33496
+ import { z as z56 } from "zod";
33497
+ var storedProductCartItemSchema = z56.object({
33498
+ kind: z56.literal("product"),
33499
+ productId: z56.string().min(1),
33500
+ productCategoryId: z56.string().min(1).optional().nullable(),
33501
+ variantId: z56.string().min(1).optional().nullable(),
33502
+ title: z56.string().min(1),
33503
+ variantTitle: z56.string().optional().nullable(),
33504
+ quantity: z56.number().finite(),
33505
+ unitPriceCents: z56.number().finite(),
33506
+ currency: z56.string().min(1),
33507
+ imageUrl: z56.string().optional().nullable(),
33508
+ soldOut: z56.boolean().optional()
33509
+ });
33510
+ var storedPassCartItemSchema = z56.object({
33511
+ kind: z56.literal("pass"),
33512
+ passId: z56.string().min(1),
33513
+ title: z56.string().min(1),
33514
+ quantity: z56.number().finite().optional(),
33515
+ unitPriceCents: z56.number().finite(),
33516
+ currency: z56.string().min(1)
33396
33517
  });
33397
33518
  function deriveCommerceCheckoutState(state) {
33398
33519
  if (state.items.length === 0) {
@@ -33626,214 +33747,214 @@ function formatValidity(days) {
33626
33747
  }
33627
33748
 
33628
33749
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33629
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33630
- var contentEntrySchema3 = z58.object({
33631
- id: z58.string().nullable().optional(),
33632
- slug: z58.string().nullable().optional()
33750
+ var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33751
+ var contentEntrySchema3 = z57.object({
33752
+ id: z57.string().nullable().optional(),
33753
+ slug: z57.string().nullable().optional()
33633
33754
  }).nullable();
33634
- var shopSourceSchema = z58.object({
33635
- className: z58.string().nullable().optional(),
33755
+ var shopSourceSchema = z57.object({
33756
+ className: z57.string().nullable().optional(),
33636
33757
  mode: shopModeSchema.optional(),
33637
- heading: z58.string().nullable().optional(),
33638
- productSlug: z58.string().nullable().optional(),
33639
- showPasses: z58.boolean().optional(),
33640
- showMemberships: z58.boolean().optional(),
33641
- layout: z58.enum(["grid", "list"]).optional(),
33642
- columns: z58.string().optional(),
33643
- showDescriptions: z58.boolean().optional(),
33644
- showSummary: z58.boolean().optional(),
33645
- showBody: z58.boolean().optional(),
33646
- showPrices: z58.boolean().optional(),
33647
- showValidityPeriod: z58.boolean().optional(),
33648
- showPricePerCredit: z58.boolean().nullable().optional(),
33649
- passesHeading: z58.string().optional(),
33650
- membershipsHeading: z58.string().optional(),
33651
- buyButtonText: z58.string().optional(),
33652
- addButtonText: z58.string().optional(),
33653
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33654
- subscribeButtonText: z58.string().optional(),
33655
- emptyStateText: z58.string().optional(),
33656
- checkoutButtonText: z58.string().optional(),
33657
- clearButtonText: z58.string().optional(),
33658
- submitButtonText: z58.string().optional(),
33758
+ heading: z57.string().nullable().optional(),
33759
+ productSlug: z57.string().nullable().optional(),
33760
+ showPasses: z57.boolean().optional(),
33761
+ showMemberships: z57.boolean().optional(),
33762
+ layout: z57.enum(["grid", "list"]).optional(),
33763
+ columns: z57.string().optional(),
33764
+ showDescriptions: z57.boolean().optional(),
33765
+ showSummary: z57.boolean().optional(),
33766
+ showBody: z57.boolean().optional(),
33767
+ showPrices: z57.boolean().optional(),
33768
+ showValidityPeriod: z57.boolean().optional(),
33769
+ showPricePerCredit: z57.boolean().nullable().optional(),
33770
+ passesHeading: z57.string().optional(),
33771
+ membershipsHeading: z57.string().optional(),
33772
+ buyButtonText: z57.string().optional(),
33773
+ addButtonText: z57.string().optional(),
33774
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33775
+ subscribeButtonText: z57.string().optional(),
33776
+ emptyStateText: z57.string().optional(),
33777
+ checkoutButtonText: z57.string().optional(),
33778
+ clearButtonText: z57.string().optional(),
33779
+ submitButtonText: z57.string().optional(),
33659
33780
  contentEntry: contentEntrySchema3.optional(),
33660
- passes: z58.array(publicPassProductSchema).nullable().optional(),
33661
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33662
- products: z58.array(publicProductSchema).nullable().optional(),
33663
- siteId: z58.string().optional(),
33664
- apiBaseUrl: z58.string().optional(),
33781
+ passes: z57.array(publicPassProductSchema).nullable().optional(),
33782
+ memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33783
+ products: z57.array(publicProductSchema).nullable().optional(),
33784
+ siteId: z57.string().optional(),
33785
+ apiBaseUrl: z57.string().optional(),
33665
33786
  stage: previewStageSchema.optional()
33666
33787
  });
33667
- var productVariantOptionDisplaySchema = z58.object({
33668
- id: z58.string(),
33669
- label: z58.string(),
33670
- soldOut: z58.boolean()
33671
- });
33672
- var productCardDisplaySchema = z58.object({
33673
- productId: z58.string(),
33674
- title: z58.string(),
33675
- path: z58.string().nullable(),
33676
- summary: z58.string().nullable(),
33677
- priceLabel: z58.string().nullable(),
33678
- image: z58.object({
33679
- url: z58.string(),
33680
- alt: z58.string().nullable()
33788
+ var productVariantOptionDisplaySchema = z57.object({
33789
+ id: z57.string(),
33790
+ label: z57.string(),
33791
+ soldOut: z57.boolean()
33792
+ });
33793
+ var productCardDisplaySchema = z57.object({
33794
+ productId: z57.string(),
33795
+ title: z57.string(),
33796
+ path: z57.string().nullable(),
33797
+ summary: z57.string().nullable(),
33798
+ priceLabel: z57.string().nullable(),
33799
+ image: z57.object({
33800
+ url: z57.string(),
33801
+ alt: z57.string().nullable()
33681
33802
  }).nullable(),
33682
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33683
- selectedVariantId: z58.string().nullable(),
33684
- selectionLabel: z58.string(),
33685
- actionLabel: z58.string(),
33686
- soldOut: z58.boolean()
33687
- });
33688
- var productListDisplaySchema = z58.object({
33689
- kind: z58.literal("product-list"),
33690
- state: z58.enum(["empty", "ready"]),
33691
- heading: z58.string().nullable(),
33692
- className: z58.string().nullable(),
33693
- layout: z58.enum(["grid", "list"]),
33694
- columns: z58.string(),
33695
- emptyMessage: z58.string(),
33696
- cards: z58.array(productCardDisplaySchema)
33697
- });
33698
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33699
- z58.object({
33700
- kind: z58.literal("product-detail"),
33701
- state: z58.literal("empty"),
33702
- heading: z58.string().nullable(),
33703
- className: z58.string().nullable(),
33704
- emptyMessage: z58.string()
33803
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33804
+ selectedVariantId: z57.string().nullable(),
33805
+ selectionLabel: z57.string(),
33806
+ actionLabel: z57.string(),
33807
+ soldOut: z57.boolean()
33808
+ });
33809
+ var productListDisplaySchema = z57.object({
33810
+ kind: z57.literal("product-list"),
33811
+ state: z57.enum(["empty", "ready"]),
33812
+ heading: z57.string().nullable(),
33813
+ className: z57.string().nullable(),
33814
+ layout: z57.enum(["grid", "list"]),
33815
+ columns: z57.string(),
33816
+ emptyMessage: z57.string(),
33817
+ cards: z57.array(productCardDisplaySchema)
33818
+ });
33819
+ var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33820
+ z57.object({
33821
+ kind: z57.literal("product-detail"),
33822
+ state: z57.literal("empty"),
33823
+ heading: z57.string().nullable(),
33824
+ className: z57.string().nullable(),
33825
+ emptyMessage: z57.string()
33705
33826
  }),
33706
- z58.object({
33707
- kind: z58.literal("product-detail"),
33708
- state: z58.literal("ready"),
33709
- heading: z58.string().nullable(),
33710
- className: z58.string().nullable(),
33711
- title: z58.string(),
33712
- priceLabel: z58.string(),
33713
- summary: z58.string().nullable(),
33714
- categoryLabel: z58.string().nullable(),
33715
- gallery: z58.array(z58.object({
33716
- url: z58.string(),
33717
- alt: z58.string().nullable()
33827
+ z57.object({
33828
+ kind: z57.literal("product-detail"),
33829
+ state: z57.literal("ready"),
33830
+ heading: z57.string().nullable(),
33831
+ className: z57.string().nullable(),
33832
+ title: z57.string(),
33833
+ priceLabel: z57.string(),
33834
+ summary: z57.string().nullable(),
33835
+ categoryLabel: z57.string().nullable(),
33836
+ gallery: z57.array(z57.object({
33837
+ url: z57.string(),
33838
+ alt: z57.string().nullable()
33718
33839
  })),
33719
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33720
- selectedVariantId: z58.string().nullable(),
33721
- selectionLabel: z58.string(),
33722
- actionLabel: z58.string(),
33723
- soldOut: z58.boolean(),
33724
- body: z58.unknown().nullable()
33840
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33841
+ selectedVariantId: z57.string().nullable(),
33842
+ selectionLabel: z57.string(),
33843
+ actionLabel: z57.string(),
33844
+ soldOut: z57.boolean(),
33845
+ body: z57.unknown().nullable()
33725
33846
  })
33726
33847
  ]);
33727
- var passCardDisplaySchema = z58.object({
33728
- id: z58.string(),
33729
- title: z58.string(),
33730
- description: z58.string().nullable(),
33731
- priceLabel: z58.string(),
33732
- creditsLabel: z58.string(),
33733
- perCreditLabel: z58.string().nullable(),
33734
- validityLabel: z58.string().nullable(),
33735
- actionLabel: z58.string()
33736
- });
33737
- var membershipCardDisplaySchema = z58.object({
33738
- id: z58.string(),
33739
- title: z58.string(),
33740
- description: z58.string().nullable(),
33741
- priceLabel: z58.string(),
33742
- intervalLabel: z58.string(),
33743
- actionLabel: z58.string()
33744
- });
33745
- var passesMembershipsDisplaySchema = z58.object({
33746
- kind: z58.literal("passes-memberships"),
33747
- state: z58.enum(["empty", "ready"]),
33748
- className: z58.string().nullable(),
33749
- layout: z58.enum(["grid", "list"]),
33750
- columns: z58.string(),
33751
- emptyMessage: z58.string(),
33752
- passesHeading: z58.string(),
33753
- membershipsHeading: z58.string(),
33754
- passes: z58.array(passCardDisplaySchema),
33755
- memberships: z58.array(membershipCardDisplaySchema)
33756
- });
33757
- var cartLineDisplaySchema = z58.object({
33758
- key: z58.string(),
33759
- title: z58.string(),
33760
- priceLabel: z58.string(),
33761
- quantity: z58.number(),
33762
- quantityEditable: z58.boolean()
33763
- });
33764
- var cartDisplaySchema = z58.object({
33765
- kind: z58.literal("cart"),
33766
- state: z58.enum(["empty", "ready"]),
33767
- heading: z58.string().nullable(),
33768
- className: z58.string().nullable(),
33769
- emptyMessage: z58.string(),
33770
- supportText: z58.string().nullable(),
33771
- items: z58.array(cartLineDisplaySchema),
33772
- subtotalLabel: z58.string().nullable(),
33773
- checkoutButtonText: z58.string(),
33774
- clearButtonText: z58.string()
33775
- });
33776
- var checkoutDisplaySchema = z58.object({
33777
- kind: z58.literal("checkout"),
33778
- state: z58.enum(["empty", "blocked", "ready"]),
33779
- heading: z58.string().nullable(),
33780
- className: z58.string().nullable(),
33781
- message: z58.string().nullable(),
33782
- submitButtonText: z58.string()
33783
- });
33784
- var passesMembershipsHydrationSchema = z58.object({
33785
- passes: z58.array(publicPassProductSchema),
33786
- memberships: z58.array(publicMembershipProductSchema),
33787
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33788
- });
33789
- var productListHydrationSchema = z58.object({
33790
- products: z58.array(publicProductSchema),
33791
- showSummary: z58.boolean(),
33792
- showPrices: z58.boolean(),
33793
- addButtonText: z58.string()
33794
- });
33795
- var productDetailHydrationSchema = z58.object({
33796
- products: z58.array(publicProductSchema),
33797
- productId: z58.string().nullable(),
33798
- showSummary: z58.boolean(),
33799
- showBody: z58.boolean(),
33800
- addButtonText: z58.string()
33801
- });
33802
- var cartHydrationSchema = z58.object({
33803
- emptyStateText: z58.string(),
33804
- checkoutButtonText: z58.string(),
33805
- clearButtonText: z58.string()
33806
- });
33807
- var checkoutHydrationSchema = z58.object({
33808
- emptyStateText: z58.string(),
33809
- submitButtonText: z58.string()
33810
- });
33811
- var passesMembershipsRenderSchema = z58.object({
33848
+ var passCardDisplaySchema = z57.object({
33849
+ id: z57.string(),
33850
+ title: z57.string(),
33851
+ description: z57.string().nullable(),
33852
+ priceLabel: z57.string(),
33853
+ creditsLabel: z57.string(),
33854
+ perCreditLabel: z57.string().nullable(),
33855
+ validityLabel: z57.string().nullable(),
33856
+ actionLabel: z57.string()
33857
+ });
33858
+ var membershipCardDisplaySchema = z57.object({
33859
+ id: z57.string(),
33860
+ title: z57.string(),
33861
+ description: z57.string().nullable(),
33862
+ priceLabel: z57.string(),
33863
+ intervalLabel: z57.string(),
33864
+ actionLabel: z57.string()
33865
+ });
33866
+ var passesMembershipsDisplaySchema = z57.object({
33867
+ kind: z57.literal("passes-memberships"),
33868
+ state: z57.enum(["empty", "ready"]),
33869
+ className: z57.string().nullable(),
33870
+ layout: z57.enum(["grid", "list"]),
33871
+ columns: z57.string(),
33872
+ emptyMessage: z57.string(),
33873
+ passesHeading: z57.string(),
33874
+ membershipsHeading: z57.string(),
33875
+ passes: z57.array(passCardDisplaySchema),
33876
+ memberships: z57.array(membershipCardDisplaySchema)
33877
+ });
33878
+ var cartLineDisplaySchema = z57.object({
33879
+ key: z57.string(),
33880
+ title: z57.string(),
33881
+ priceLabel: z57.string(),
33882
+ quantity: z57.number(),
33883
+ quantityEditable: z57.boolean()
33884
+ });
33885
+ var cartDisplaySchema = z57.object({
33886
+ kind: z57.literal("cart"),
33887
+ state: z57.enum(["empty", "ready"]),
33888
+ heading: z57.string().nullable(),
33889
+ className: z57.string().nullable(),
33890
+ emptyMessage: z57.string(),
33891
+ supportText: z57.string().nullable(),
33892
+ items: z57.array(cartLineDisplaySchema),
33893
+ subtotalLabel: z57.string().nullable(),
33894
+ checkoutButtonText: z57.string(),
33895
+ clearButtonText: z57.string()
33896
+ });
33897
+ var checkoutDisplaySchema = z57.object({
33898
+ kind: z57.literal("checkout"),
33899
+ state: z57.enum(["empty", "blocked", "ready"]),
33900
+ heading: z57.string().nullable(),
33901
+ className: z57.string().nullable(),
33902
+ message: z57.string().nullable(),
33903
+ submitButtonText: z57.string()
33904
+ });
33905
+ var passesMembershipsHydrationSchema = z57.object({
33906
+ passes: z57.array(publicPassProductSchema),
33907
+ memberships: z57.array(publicMembershipProductSchema),
33908
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33909
+ });
33910
+ var productListHydrationSchema = z57.object({
33911
+ products: z57.array(publicProductSchema),
33912
+ showSummary: z57.boolean(),
33913
+ showPrices: z57.boolean(),
33914
+ addButtonText: z57.string()
33915
+ });
33916
+ var productDetailHydrationSchema = z57.object({
33917
+ products: z57.array(publicProductSchema),
33918
+ productId: z57.string().nullable(),
33919
+ showSummary: z57.boolean(),
33920
+ showBody: z57.boolean(),
33921
+ addButtonText: z57.string()
33922
+ });
33923
+ var cartHydrationSchema = z57.object({
33924
+ emptyStateText: z57.string(),
33925
+ checkoutButtonText: z57.string(),
33926
+ clearButtonText: z57.string()
33927
+ });
33928
+ var checkoutHydrationSchema = z57.object({
33929
+ emptyStateText: z57.string(),
33930
+ submitButtonText: z57.string()
33931
+ });
33932
+ var passesMembershipsRenderSchema = z57.object({
33812
33933
  display: passesMembershipsDisplaySchema,
33813
33934
  hydration: passesMembershipsHydrationSchema
33814
33935
  });
33815
- var productListRenderSchema = z58.object({
33936
+ var productListRenderSchema = z57.object({
33816
33937
  display: productListDisplaySchema,
33817
33938
  hydration: productListHydrationSchema
33818
33939
  });
33819
- var productDetailRenderSchema = z58.object({
33940
+ var productDetailRenderSchema = z57.object({
33820
33941
  display: productDetailDisplaySchema,
33821
33942
  hydration: productDetailHydrationSchema
33822
33943
  });
33823
- var cartRenderSchema = z58.object({
33944
+ var cartRenderSchema = z57.object({
33824
33945
  display: cartDisplaySchema,
33825
33946
  hydration: cartHydrationSchema
33826
33947
  });
33827
- var checkoutRenderSchema = z58.object({
33948
+ var checkoutRenderSchema = z57.object({
33828
33949
  display: checkoutDisplaySchema,
33829
33950
  hydration: checkoutHydrationSchema
33830
33951
  });
33831
33952
  function resolveShowPricePerCredit(source) {
33832
33953
  return source.showPricePerCredit ?? true;
33833
33954
  }
33834
- var shopIslandMetaCodec = createZodCodec(z58.object({
33835
- siteId: z58.string().optional(),
33836
- apiBaseUrl: z58.string().optional(),
33955
+ var shopIslandMetaCodec = createZodCodec(z57.object({
33956
+ siteId: z57.string().optional(),
33957
+ apiBaseUrl: z57.string().optional(),
33837
33958
  stage: previewStageSchema.optional()
33838
33959
  }));
33839
33960
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34211,9 +34332,9 @@ var shopBlockDefinition = {
34211
34332
  runtime: shopBlockRuntime,
34212
34333
  dataSchemas: {
34213
34334
  // listPublicPasses returns { passes: [...] }
34214
- passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34335
+ passes: publicPassProductCollectionSchema.optional(),
34215
34336
  // listPublicMemberships returns { memberships: [...] }
34216
- memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34337
+ memberships: publicMembershipProductCollectionSchema.optional()
34217
34338
  },
34218
34339
  dataLoaders: {
34219
34340
  // Load passes for display
@@ -34236,7 +34357,7 @@ var shopBlockDefinition = {
34236
34357
  };
34237
34358
 
34238
34359
  // ../blocks/src/system/blocks/product-list.ts
34239
- import { z as z60 } from "zod";
34360
+ import { z as z58 } from "zod";
34240
34361
  var productListManifest = createBlockManifest({
34241
34362
  id: "block.product-list",
34242
34363
  version: "1.0.0",
@@ -34369,7 +34490,7 @@ var productListBlockDefinition = {
34369
34490
  }
34370
34491
  }
34371
34492
  };
34372
- var productListDataSchema = z60.object({
34493
+ var productListDataSchema = z58.object({
34373
34494
  products: publicProductsResponseSchema.optional()
34374
34495
  });
34375
34496
 
@@ -34630,72 +34751,72 @@ var checkoutBlockDefinition = {
34630
34751
  };
34631
34752
 
34632
34753
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34633
- import { z as z61 } from "zod";
34634
- var publicGiftCardOfferSchema = z61.object({
34635
- id: z61.string(),
34636
- kind: z61.literal("gift_card"),
34637
- title: z61.string(),
34638
- description: z61.string().nullable(),
34639
- sortOrder: z61.number().int(),
34640
- giftCard: z61.object({
34641
- fixedDenominations: z61.array(z61.number().int().positive()),
34642
- customAmountEnabled: z61.boolean(),
34643
- customAmountMinCents: z61.number().int().positive(),
34644
- customAmountMaxCents: z61.number().int().positive()
34754
+ import { z as z59 } from "zod";
34755
+ var publicGiftCardOfferSchema = z59.object({
34756
+ id: z59.string(),
34757
+ kind: z59.literal("gift_card"),
34758
+ title: z59.string(),
34759
+ description: z59.string().nullable(),
34760
+ sortOrder: z59.number().int(),
34761
+ giftCard: z59.object({
34762
+ fixedDenominations: z59.array(z59.number().int().positive()),
34763
+ customAmountEnabled: z59.boolean(),
34764
+ customAmountMinCents: z59.number().int().positive(),
34765
+ customAmountMaxCents: z59.number().int().positive()
34645
34766
  }),
34646
- voucher: z61.null()
34647
- });
34648
- var publicVoucherOfferSchema = z61.object({
34649
- id: z61.string(),
34650
- kind: z61.literal("voucher"),
34651
- title: z61.string(),
34652
- description: z61.string().nullable(),
34653
- sortOrder: z61.number().int(),
34654
- giftCard: z61.null(),
34655
- voucher: z61.object({
34656
- purchaseAmountCents: z61.number().int().positive()
34767
+ voucher: z59.null()
34768
+ });
34769
+ var publicVoucherOfferSchema = z59.object({
34770
+ id: z59.string(),
34771
+ kind: z59.literal("voucher"),
34772
+ title: z59.string(),
34773
+ description: z59.string().nullable(),
34774
+ sortOrder: z59.number().int(),
34775
+ giftCard: z59.null(),
34776
+ voucher: z59.object({
34777
+ purchaseAmountCents: z59.number().int().positive()
34657
34778
  })
34658
34779
  });
34659
- var publicGiftingOffersResponseSchema = z61.object({
34660
- currency: z61.string(),
34661
- giftCards: z61.array(publicGiftCardOfferSchema),
34662
- vouchers: z61.array(publicVoucherOfferSchema)
34780
+ var publicGiftingOffersResponseSchema = z59.object({
34781
+ currency: z59.string(),
34782
+ giftCards: z59.array(publicGiftCardOfferSchema),
34783
+ vouchers: z59.array(publicVoucherOfferSchema)
34663
34784
  });
34664
- var giftingSourceSchema = z61.object({
34665
- siteId: z61.string().optional(),
34666
- apiBaseUrl: z61.string().optional(),
34785
+ var giftingSourceSchema = z59.object({
34786
+ siteId: z59.string().optional(),
34787
+ apiBaseUrl: z59.string().optional(),
34667
34788
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34668
- className: z61.string().nullable().optional(),
34669
- heading: z61.string().nullable().optional(),
34670
- intro: z61.string().nullable().optional(),
34671
- giftCardsHeading: z61.string().nullable().optional(),
34672
- vouchersHeading: z61.string().nullable().optional(),
34673
- emptyStateText: z61.string().nullable().optional(),
34674
- checkoutButtonText: z61.string().nullable().optional(),
34675
- successMessage: z61.string().nullable().optional()
34676
- });
34677
- var giftingDisplaySchema = z61.object({
34678
- kind: z61.literal("gifting"),
34679
- state: z61.literal("ready"),
34680
- className: z61.string().nullable(),
34681
- heading: z61.string(),
34682
- intro: z61.string().nullable(),
34683
- giftCardsHeading: z61.string(),
34684
- vouchersHeading: z61.string(),
34685
- emptyStateText: z61.string()
34686
- });
34687
- var giftingHydrationSchema = z61.object({
34789
+ className: z59.string().nullable().optional(),
34790
+ heading: z59.string().nullable().optional(),
34791
+ intro: z59.string().nullable().optional(),
34792
+ giftCardsHeading: z59.string().nullable().optional(),
34793
+ vouchersHeading: z59.string().nullable().optional(),
34794
+ emptyStateText: z59.string().nullable().optional(),
34795
+ checkoutButtonText: z59.string().nullable().optional(),
34796
+ successMessage: z59.string().nullable().optional()
34797
+ });
34798
+ var giftingDisplaySchema = z59.object({
34799
+ kind: z59.literal("gifting"),
34800
+ state: z59.literal("ready"),
34801
+ className: z59.string().nullable(),
34802
+ heading: z59.string(),
34803
+ intro: z59.string().nullable(),
34804
+ giftCardsHeading: z59.string(),
34805
+ vouchersHeading: z59.string(),
34806
+ emptyStateText: z59.string()
34807
+ });
34808
+ var giftingHydrationSchema = z59.object({
34688
34809
  offers: publicGiftingOffersResponseSchema.nullable(),
34689
- checkoutButtonText: z61.string(),
34690
- successMessage: z61.string()
34810
+ checkoutButtonText: z59.string(),
34811
+ successMessage: z59.string()
34691
34812
  });
34692
- var giftingRenderSchema = z61.object({
34813
+ var giftingRenderSchema = z59.object({
34693
34814
  display: giftingDisplaySchema,
34694
34815
  hydration: giftingHydrationSchema
34695
34816
  });
34696
- var giftingIslandMetaCodec = createZodCodec(z61.object({
34697
- siteId: z61.string().optional(),
34698
- apiBaseUrl: z61.string().optional()
34817
+ var giftingIslandMetaCodec = createZodCodec(z59.object({
34818
+ siteId: z59.string().optional(),
34819
+ apiBaseUrl: z59.string().optional()
34699
34820
  }));
34700
34821
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34701
34822
  "siteId",
@@ -34866,7 +34987,7 @@ var giftingBlockDefinition = {
34866
34987
  };
34867
34988
 
34868
34989
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34869
- import { z as z62 } from "zod";
34990
+ import { z as z60 } from "zod";
34870
34991
 
34871
34992
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34872
34993
  function parseNewsletterSignupBlockId(value) {
@@ -34973,65 +35094,65 @@ function withOptionalPhone(fields3, includePhone) {
34973
35094
  }
34974
35095
 
34975
35096
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34976
- var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34977
- var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
34978
- var newsletterFieldSchema = z62.object({
34979
- id: z62.string(),
34980
- type: z62.enum(["email", "text"]),
34981
- label: z62.string(),
34982
- required: z62.boolean(),
34983
- placeholder: z62.string().optional()
34984
- });
34985
- var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
34986
- var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
34987
- var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
34988
- z62.object({
34989
- tag: z62.literal("block_ref"),
35097
+ var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35098
+ var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35099
+ var newsletterFieldSchema = z60.object({
35100
+ id: z60.string(),
35101
+ type: z60.enum(["email", "text"]),
35102
+ label: z60.string(),
35103
+ required: z60.boolean(),
35104
+ placeholder: z60.string().optional()
35105
+ });
35106
+ var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35107
+ var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35108
+ var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35109
+ z60.object({
35110
+ tag: z60.literal("block_ref"),
34990
35111
  blockId: newsletterSignupBlockIdSchema
34991
35112
  }),
34992
- z62.object({
34993
- tag: z62.literal("signed_destination_ref"),
35113
+ z60.object({
35114
+ tag: z60.literal("signed_destination_ref"),
34994
35115
  token: signedNewsletterDestinationRefSchema
34995
35116
  })
34996
35117
  ]);
34997
- var newsletterSourceSchema = z62.object({
34998
- blockId: z62.string().nullable().optional(),
34999
- siteId: z62.string().optional(),
35000
- apiBaseUrl: z62.string().optional(),
35001
- listId: z62.string().nullable().optional(),
35118
+ var newsletterSourceSchema = z60.object({
35119
+ blockId: z60.string().nullable().optional(),
35120
+ siteId: z60.string().optional(),
35121
+ apiBaseUrl: z60.string().optional(),
35122
+ listId: z60.string().nullable().optional(),
35002
35123
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35003
35124
  preset: newsletterPresetSchema.optional(),
35004
- includePhone: z62.boolean().optional(),
35005
- buttonLabel: z62.string().nullable().optional(),
35006
- successMessage: z62.string().nullable().optional(),
35007
- privacyNote: z62.string().nullable().optional(),
35008
- tags: z62.string().nullable().optional(),
35009
- spamProtectionEnabled: z62.boolean().optional(),
35010
- className: z62.string().nullable().optional()
35011
- });
35012
- var newsletterDisplaySchema = z62.object({
35013
- kind: z62.literal("newsletter-form"),
35014
- className: z62.string().nullable(),
35015
- buttonLabel: z62.string(),
35016
- successMessage: z62.string().nullable(),
35017
- privacyNote: z62.string().nullable(),
35018
- fields: z62.array(newsletterFieldSchema)
35019
- });
35020
- var newsletterHydrationSchema = z62.object({
35125
+ includePhone: z60.boolean().optional(),
35126
+ buttonLabel: z60.string().nullable().optional(),
35127
+ successMessage: z60.string().nullable().optional(),
35128
+ privacyNote: z60.string().nullable().optional(),
35129
+ tags: z60.string().nullable().optional(),
35130
+ spamProtectionEnabled: z60.boolean().optional(),
35131
+ className: z60.string().nullable().optional()
35132
+ });
35133
+ var newsletterDisplaySchema = z60.object({
35134
+ kind: z60.literal("newsletter-form"),
35135
+ className: z60.string().nullable(),
35136
+ buttonLabel: z60.string(),
35137
+ successMessage: z60.string().nullable(),
35138
+ privacyNote: z60.string().nullable(),
35139
+ fields: z60.array(newsletterFieldSchema)
35140
+ });
35141
+ var newsletterHydrationSchema = z60.object({
35021
35142
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35022
- listId: z62.string().nullable().optional(),
35143
+ listId: z60.string().nullable().optional(),
35023
35144
  preset: newsletterPresetSchema,
35024
- includePhone: z62.boolean(),
35025
- tags: z62.string().nullable().optional(),
35026
- spamProtectionEnabled: z62.boolean().optional()
35145
+ includePhone: z60.boolean(),
35146
+ tags: z60.string().nullable().optional(),
35147
+ spamProtectionEnabled: z60.boolean().optional()
35027
35148
  });
35028
- var newsletterRenderSchema = z62.object({
35149
+ var newsletterRenderSchema = z60.object({
35029
35150
  display: newsletterDisplaySchema,
35030
35151
  hydration: newsletterHydrationSchema
35031
35152
  });
35032
- var newsletterIslandMetaCodec = createZodCodec(z62.object({
35033
- siteId: z62.string().optional(),
35034
- apiBaseUrl: z62.string().optional()
35153
+ var newsletterIslandMetaCodec = createZodCodec(z60.object({
35154
+ siteId: z60.string().optional(),
35155
+ apiBaseUrl: z60.string().optional()
35035
35156
  }));
35036
35157
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35037
35158
  function buildNewsletterDisplay(source) {
@@ -35170,23 +35291,23 @@ var newsletterSignupBlockDefinition = {
35170
35291
  };
35171
35292
 
35172
35293
  // ../blocks/src/system/blocks/team-members.ts
35173
- import { z as z63 } from "zod";
35294
+ import { z as z61 } from "zod";
35174
35295
  var ITEM_NAME2 = "member";
35175
35296
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35176
35297
  message: "Team member photos must be image media"
35177
35298
  }).nullable();
35178
- var teamMemberDataSchema = z63.object({
35179
- _type: z63.literal("teamMember"),
35180
- id: z63.string(),
35181
- name: z63.string(),
35182
- role: z63.string().nullable(),
35183
- roleLabel: z63.string().nullable(),
35184
- bio: z63.string().nullable(),
35185
- summary: z63.string().nullable(),
35299
+ var teamMemberDataSchema = z61.object({
35300
+ _type: z61.literal("teamMember"),
35301
+ id: z61.string(),
35302
+ name: z61.string(),
35303
+ role: z61.string().nullable(),
35304
+ roleLabel: z61.string().nullable(),
35305
+ bio: z61.string().nullable(),
35306
+ summary: z61.string().nullable(),
35186
35307
  photo: teamMemberPhotoSchema,
35187
- profilePath: z63.string().nullable()
35308
+ profilePath: z61.string().nullable()
35188
35309
  });
35189
- var teamMembersDataSchema = z63.array(teamMemberDataSchema);
35310
+ var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35190
35311
  var dynamicSourceWhen = { equals: "site_staff" };
35191
35312
  var manualSourceWhen = { equals: "site_staff", not: true };
35192
35313
  var headingNode = text(
@@ -36078,13 +36199,6 @@ var systemBlockDefinitionsRaw = [
36078
36199
  weight: "featured",
36079
36200
  bias: "clear",
36080
36201
  surfaces: heroSectionSurfaces
36081
- }),
36082
- layoutProfile({
36083
- variantKey: "splitEditorial",
36084
- family: "split",
36085
- weight: "featured",
36086
- bias: "clear",
36087
- surfaces: heroSectionSurfaces
36088
36202
  })
36089
36203
  ]
36090
36204
  })),
@@ -36328,9 +36442,8 @@ var systemBlockDefinitionsRaw = [
36328
36442
  flow: offeringsFlow,
36329
36443
  layoutProfiles: [
36330
36444
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
36445
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
36331
36446
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
36332
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
36333
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
36334
36447
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
36335
36448
  ]
36336
36449
  })),
@@ -36893,10 +37006,7 @@ function normalizeRenderStage(stage) {
36893
37006
  return stage === "preview" ? "preview" : "published";
36894
37007
  }
36895
37008
  function isRouteVisibleInStage(routeEntry, stageInput) {
36896
- const stage = normalizeRenderStage(stageInput);
36897
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
36898
- return true;
36899
- }
37009
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
36900
37010
  const status = routeEntry.status;
36901
37011
  return !(typeof status === "string" && status !== "published");
36902
37012
  }
@@ -36905,52 +37015,45 @@ function extractRouteHref(candidate, stageInput = "published") {
36905
37015
  const trimmed = candidate.trim();
36906
37016
  return trimmed.length > 0 ? trimmed : null;
36907
37017
  }
36908
- if (!isRouteRecord(candidate)) {
36909
- return null;
36910
- }
36911
- const stage = normalizeRenderStage(stageInput);
36912
- const fields3 = stage === "preview" ? ["draftPath", "path", "href", "url"] : ["path", "href", "url"];
37018
+ if (!isRouteRecord(candidate)) return null;
37019
+ const fields3 = normalizeRenderStage(stageInput) === "preview" ? [
37020
+ "draftPath",
37021
+ "path",
37022
+ "href",
37023
+ "url"
37024
+ ] : [
37025
+ "path",
37026
+ "href",
37027
+ "url"
37028
+ ];
36913
37029
  for (const field of fields3) {
36914
37030
  const value = candidate[field];
36915
- if (typeof value === "string" && value.trim().length > 0) {
36916
- return value.trim();
36917
- }
37031
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
36918
37032
  }
36919
37033
  return null;
36920
37034
  }
36921
37035
  function extractRouteUpdatedAt(candidate) {
36922
- if (!isRouteRecord(candidate)) {
36923
- return null;
36924
- }
36925
- const fields3 = [
37036
+ if (!isRouteRecord(candidate)) return null;
37037
+ for (const field of [
36926
37038
  "updatedAt",
36927
37039
  "updated_at",
36928
37040
  "publishedAt",
36929
37041
  "published_at",
36930
37042
  "modifiedAt",
36931
37043
  "modified_at"
36932
- ];
36933
- for (const field of fields3) {
37044
+ ]) {
36934
37045
  const value = candidate[field];
36935
- if (typeof value === "string" && value.length > 0) {
36936
- return value;
36937
- }
37046
+ if (typeof value === "string" && value.length > 0) return value;
36938
37047
  }
36939
37048
  return null;
36940
37049
  }
36941
37050
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
36942
37051
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
36943
- if (!routeId || !routes) {
36944
- return null;
36945
- }
37052
+ if (!routeId || !routes) return null;
36946
37053
  const routeEntry = routes[routeId];
36947
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
36948
- return null;
36949
- }
37054
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
36950
37055
  const href = extractRouteHref(routeEntry, stageInput);
36951
- if (!href) {
36952
- return null;
36953
- }
37056
+ if (!href) return null;
36954
37057
  return {
36955
37058
  routeId,
36956
37059
  href,
@@ -37093,7 +37196,7 @@ var defaultTransforms = createTransformRegistry(builtinTransformDefinitions);
37093
37196
  // ../blocks/src/system/data/linkedContentEntries.ts
37094
37197
  var LINKED_CONTENT_ENTRY_META_KEY = "__rbLinkedContentEntry";
37095
37198
  function coerceLinkedContentEntriesPayload(payload) {
37096
- if (!isRecord7(payload)) return payload;
37199
+ if (!isRecord8(payload)) return payload;
37097
37200
  const response = payload;
37098
37201
  if (!Array.isArray(response.entries)) return payload;
37099
37202
  const contentType = parsePublicContentTypeMeta(response.contentType);
@@ -37101,12 +37204,12 @@ function coerceLinkedContentEntriesPayload(payload) {
37101
37204
  return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
37102
37205
  }
37103
37206
  function enrichLinkedContentEntry(entry, contentType) {
37104
- if (!isRecord7(entry)) return entry;
37207
+ if (!isRecord8(entry)) return entry;
37105
37208
  const entryId = typeof entry.id === "string" ? entry.id : null;
37106
37209
  if (!entryId) return entry;
37107
37210
  const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
37108
37211
  const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
37109
- const content = isRecord7(entry.content) ? entry.content : {};
37212
+ const content = isRecord8(entry.content) ? entry.content : {};
37110
37213
  const meta = {
37111
37214
  kind: "linked-content-entry",
37112
37215
  entryId,
@@ -37199,7 +37302,7 @@ function capitalize(value) {
37199
37302
  return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
37200
37303
  }
37201
37304
  function parsePublicContentTypeMeta(value) {
37202
- if (!isRecord7(value)) return null;
37305
+ if (!isRecord8(value)) return null;
37203
37306
  if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
37204
37307
  return {
37205
37308
  key: value.key,
@@ -37209,7 +37312,7 @@ function parsePublicContentTypeMeta(value) {
37209
37312
  };
37210
37313
  }
37211
37314
  function parsePublicContentTypeLinkedEntryEditing(value) {
37212
- if (!isRecord7(value) || typeof value.kind !== "string") return null;
37315
+ if (!isRecord8(value) || typeof value.kind !== "string") return null;
37213
37316
  switch (value.kind) {
37214
37317
  case "generic":
37215
37318
  return { kind: "generic" };
@@ -37223,7 +37326,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
37223
37326
  }
37224
37327
  }
37225
37328
  function parsePublicContentTypeFieldMeta(value) {
37226
- if (!isRecord7(value)) return [];
37329
+ if (!isRecord8(value)) return [];
37227
37330
  if (typeof value.id !== "string" || typeof value.type !== "string") return [];
37228
37331
  return [{
37229
37332
  id: value.id,
@@ -37237,7 +37340,7 @@ function parseStringArray(value) {
37237
37340
  if (!Array.isArray(value)) return null;
37238
37341
  return value.filter((item) => typeof item === "string");
37239
37342
  }
37240
- function isRecord7(value) {
37343
+ function isRecord8(value) {
37241
37344
  return typeof value === "object" && value !== null && !Array.isArray(value);
37242
37345
  }
37243
37346
 
@@ -37986,42 +38089,45 @@ import { jsx as jsx5 } from "react/jsx-runtime";
37986
38089
  import * as React from "react";
37987
38090
  import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37988
38091
 
38092
+ // ../theme-core/src/ResponsiveScope.tsx
38093
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38094
+
37989
38095
  // ../theme-core/src/fonts/uploadFormat.ts
37990
38096
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37991
38097
 
37992
38098
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37993
- import { z as z64 } from "zod";
37994
- var themeBridgeConfigSchema = z64.object({
37995
- tokens: z64.record(z64.string(), z64.string()),
37996
- typography: z64.object({
37997
- headingFamily: z64.string().optional(),
37998
- bodyFamily: z64.string().optional(),
37999
- headingWeight: z64.number().optional(),
38000
- bodyWeight: z64.number().optional()
38099
+ import { z as z62 } from "zod";
38100
+ var themeBridgeConfigSchema = z62.object({
38101
+ tokens: z62.record(z62.string(), z62.string()),
38102
+ typography: z62.object({
38103
+ headingFamily: z62.string().optional(),
38104
+ bodyFamily: z62.string().optional(),
38105
+ headingWeight: z62.number().optional(),
38106
+ bodyWeight: z62.number().optional()
38001
38107
  }).optional(),
38002
- spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
38003
- corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
38004
- shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
38005
- components: z64.object({
38006
- buttons: z64.union([
38007
- z64.boolean(),
38008
- z64.object({
38009
- variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
38108
+ spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38109
+ corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38110
+ shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38111
+ components: z62.object({
38112
+ buttons: z62.union([
38113
+ z62.boolean(),
38114
+ z62.object({
38115
+ variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
38010
38116
  })
38011
38117
  ]).optional(),
38012
- cards: z64.union([
38013
- z64.boolean(),
38014
- z64.object({
38015
- variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
38118
+ cards: z62.union([
38119
+ z62.boolean(),
38120
+ z62.object({
38121
+ variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
38016
38122
  })
38017
38123
  ]).optional(),
38018
- inputs: z64.boolean().optional()
38124
+ inputs: z62.boolean().optional()
38019
38125
  }).optional(),
38020
- overrides: z64.record(z64.string(), z64.string()).optional()
38126
+ overrides: z62.record(z62.string(), z62.string()).optional()
38021
38127
  }).passthrough();
38022
38128
 
38023
38129
  // ../theme-core/src/siteChrome.tsx
38024
- import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38130
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
38025
38131
 
38026
38132
  // ../blocks/src/system/runtime/bindings.ts
38027
38133
  var shouldLogWarnings = isNonProductionEnv();
@@ -38386,17 +38492,17 @@ function normalizeLoaderParams(endpoint, params, context) {
38386
38492
  function unsafeRetypeZodSchema(schema) {
38387
38493
  return schema;
38388
38494
  }
38389
- var navIdListSchema = z65.preprocess((value) => {
38495
+ var navIdListSchema = z63.preprocess((value) => {
38390
38496
  if (!Array.isArray(value)) return void 0;
38391
38497
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
38392
38498
  return filtered.length > 0 ? filtered : void 0;
38393
- }, z65.array(z65.string()).max(200).optional());
38394
- var dashboardNavVisibilityBaseSchema = z65.object({
38395
- mode: z65.enum(["augment", "restrict"]).optional(),
38499
+ }, z63.array(z63.string()).max(200).optional());
38500
+ var dashboardNavVisibilityBaseSchema = z63.object({
38501
+ mode: z63.enum(["augment", "restrict"]).optional(),
38396
38502
  allowIds: navIdListSchema,
38397
38503
  denyIds: navIdListSchema
38398
38504
  }).strip();
38399
- var dashboardNavVisibilityRolesSchema = z65.object({
38505
+ var dashboardNavVisibilityRolesSchema = z63.object({
38400
38506
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38401
38507
  editor: dashboardNavVisibilityBaseSchema.optional(),
38402
38508
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38404,63 +38510,63 @@ var dashboardNavVisibilityRolesSchema = z65.object({
38404
38510
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38405
38511
  roles: dashboardNavVisibilityRolesSchema
38406
38512
  }).strip();
38407
- var dashboardNavigationConfigSchema = z65.object({
38513
+ var dashboardNavigationConfigSchema = z63.object({
38408
38514
  siteNav: dashboardNavVisibilitySchema.optional(),
38409
38515
  settingsNav: dashboardNavVisibilitySchema.optional()
38410
38516
  }).strip();
38411
- var dashboardConfigSchema = z65.object({
38412
- previewEditingEnabled: z65.boolean().optional(),
38517
+ var dashboardConfigSchema = z63.object({
38518
+ previewEditingEnabled: z63.boolean().optional(),
38413
38519
  navigation: dashboardNavigationConfigSchema.optional()
38414
38520
  }).strip();
38415
38521
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38416
38522
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38417
- var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
38418
- var loaderFallbackScalarSchema = z65.union([
38419
- z65.string(),
38420
- z65.number(),
38421
- z65.boolean(),
38422
- z65.null()
38523
+ var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38524
+ var loaderFallbackScalarSchema = z63.union([
38525
+ z63.string(),
38526
+ z63.number(),
38527
+ z63.boolean(),
38528
+ z63.null()
38423
38529
  ]);
38424
- var loaderParamBindingSchema = z65.object({
38425
- $bind: z65.object({
38426
- from: z65.string().min(1, "Binding path is required"),
38530
+ var loaderParamBindingSchema = z63.object({
38531
+ $bind: z63.object({
38532
+ from: z63.string().min(1, "Binding path is required"),
38427
38533
  fallback: loaderFallbackScalarSchema.optional()
38428
38534
  })
38429
38535
  });
38430
- var loaderParamValueSchema = z65.union([
38431
- z65.string(),
38432
- z65.number(),
38433
- z65.boolean(),
38536
+ var loaderParamValueSchema = z63.union([
38537
+ z63.string(),
38538
+ z63.number(),
38539
+ z63.boolean(),
38434
38540
  loaderParamBindingSchema
38435
38541
  ]);
38436
- var sdkConfigLoaderSchema = z65.object({
38542
+ var sdkConfigLoaderSchema = z63.object({
38437
38543
  endpoint: sdkLoaderEndpointSchema,
38438
- params: z65.record(z65.string(), loaderParamValueSchema),
38439
- mode: z65.enum(["server", "client"]).default("server")
38544
+ params: z63.record(z63.string(), loaderParamValueSchema),
38545
+ mode: z63.enum(["server", "client"]).default("server")
38440
38546
  });
38441
- var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38442
- var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38547
+ var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38548
+ var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38443
38549
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38444
38550
  }).transform((value) => value);
38445
- var sdkCustomBlockInputSchema = z65.object({
38551
+ var sdkCustomBlockInputSchema = z63.object({
38446
38552
  id: sdkCustomBlockIdSchema,
38447
- title: z65.string().min(1),
38448
- titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38449
- description: z65.string().optional(),
38553
+ title: z63.string().min(1),
38554
+ titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38555
+ description: z63.string().optional(),
38450
38556
  category: blockCategoryEnum,
38451
- icon: z65.string().optional(),
38452
- tags: z65.array(z65.string()).optional(),
38557
+ icon: z63.string().optional(),
38558
+ tags: z63.array(z63.string()).optional(),
38453
38559
  fields: fieldDefinitionInputSchema.array().min(1),
38454
38560
  dataLoaders: sdkDataLoadersSchema,
38455
38561
  layout: NodeSchema.optional(),
38456
- variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38457
- defaultVariant: z65.string().min(1).optional(),
38458
- variantOptions: z65.record(
38459
- z65.string().min(1),
38460
- z65.object({
38461
- label: z65.string().min(1).optional(),
38462
- description: z65.string().min(1).optional(),
38463
- icon: z65.string().min(1).optional()
38562
+ variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38563
+ defaultVariant: z63.string().min(1).optional(),
38564
+ variantOptions: z63.record(
38565
+ z63.string().min(1),
38566
+ z63.object({
38567
+ label: z63.string().min(1).optional(),
38568
+ description: z63.string().min(1).optional(),
38569
+ icon: z63.string().min(1).optional()
38464
38570
  })
38465
38571
  ).optional(),
38466
38572
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38471,7 +38577,7 @@ var sdkCustomBlockInputSchema = z65.object({
38471
38577
  const exists = data.fields.some((field) => field.id === source);
38472
38578
  if (!exists) {
38473
38579
  ctx.addIssue({
38474
- code: z65.ZodIssueCode.custom,
38580
+ code: z63.ZodIssueCode.custom,
38475
38581
  message: `titleSource must reference a valid field ID (got "${source}")`,
38476
38582
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38477
38583
  });
@@ -38480,7 +38586,7 @@ var sdkCustomBlockInputSchema = z65.object({
38480
38586
  }
38481
38587
  if (data.layout && data.variants) {
38482
38588
  ctx.addIssue({
38483
- code: z65.ZodIssueCode.custom,
38589
+ code: z63.ZodIssueCode.custom,
38484
38590
  message: "Custom block must define either `layout` or `variants`, not both",
38485
38591
  path: ["variants"]
38486
38592
  });
@@ -38489,14 +38595,14 @@ var sdkCustomBlockInputSchema = z65.object({
38489
38595
  const keys = Object.keys(data.variants);
38490
38596
  if (keys.length === 0) {
38491
38597
  ctx.addIssue({
38492
- code: z65.ZodIssueCode.custom,
38598
+ code: z63.ZodIssueCode.custom,
38493
38599
  message: "`variants` must contain at least one variant key",
38494
38600
  path: ["variants"]
38495
38601
  });
38496
38602
  }
38497
38603
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38498
38604
  ctx.addIssue({
38499
- code: z65.ZodIssueCode.custom,
38605
+ code: z63.ZodIssueCode.custom,
38500
38606
  message: "`defaultVariant` must be a key present in `variants`",
38501
38607
  path: ["defaultVariant"]
38502
38608
  });
@@ -38505,7 +38611,7 @@ var sdkCustomBlockInputSchema = z65.object({
38505
38611
  for (const key of Object.keys(data.variantOptions)) {
38506
38612
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38507
38613
  ctx.addIssue({
38508
- code: z65.ZodIssueCode.custom,
38614
+ code: z63.ZodIssueCode.custom,
38509
38615
  message: "`variantOptions` key must exist in `variants`",
38510
38616
  path: ["variantOptions", key]
38511
38617
  });
@@ -38514,78 +38620,78 @@ var sdkCustomBlockInputSchema = z65.object({
38514
38620
  }
38515
38621
  }
38516
38622
  });
38517
- var sdkBlockFieldExtensionInputSchema = z65.object({
38623
+ var sdkBlockFieldExtensionInputSchema = z63.object({
38518
38624
  fields: fieldDefinitionInputSchema.array().min(1)
38519
38625
  });
38520
- var sdkBlockFieldExtensionsInputSchema = z65.record(
38521
- z65.string().min(1),
38626
+ var sdkBlockFieldExtensionsInputSchema = z63.record(
38627
+ z63.string().min(1),
38522
38628
  sdkBlockFieldExtensionInputSchema
38523
38629
  );
38524
- var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38525
- var sdkThemeConfigSchema = z65.object({
38630
+ var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38631
+ var sdkThemeConfigSchema = z63.object({
38526
38632
  palette: sdkThemePaletteSchema
38527
38633
  });
38528
- var sdkSectionBackgroundSchema = z65.object({
38529
- id: z65.string().min(1),
38530
- label: z65.string().min(1),
38531
- token: z65.string().min(1)
38634
+ var sdkSectionBackgroundSchema = z63.object({
38635
+ id: z63.string().min(1),
38636
+ label: z63.string().min(1),
38637
+ token: z63.string().min(1)
38532
38638
  });
38533
- var sdkSectionOptionsConfigSchema = z65.object({
38534
- backgroundColor: z65.boolean().optional(),
38535
- backgroundImage: z65.boolean().optional(),
38536
- backgroundGradient: z65.boolean().optional(),
38537
- spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38538
- textColor: z65.boolean().optional()
38639
+ var sdkSectionOptionsConfigSchema = z63.object({
38640
+ backgroundColor: z63.boolean().optional(),
38641
+ backgroundImage: z63.boolean().optional(),
38642
+ backgroundGradient: z63.boolean().optional(),
38643
+ spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38644
+ textColor: z63.boolean().optional()
38539
38645
  });
38540
- var sdkContainerOptionsConfigSchema = z65.object({
38541
- maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38542
- alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
38646
+ var sdkContainerOptionsConfigSchema = z63.object({
38647
+ maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38648
+ alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38543
38649
  });
38544
- var sdkSiteStyleConfigSchema = z65.object({
38545
- sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
38650
+ var sdkSiteStyleConfigSchema = z63.object({
38651
+ sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38546
38652
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38547
38653
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38548
38654
  });
38549
- var sdkSiteLayoutConfigSchema = z65.object({
38550
- footerBlocks: z65.array(
38551
- z65.object({
38552
- id: z65.string().min(1).optional(),
38553
- kind: z65.string().min(1),
38554
- content: z65.record(z65.string(), z65.unknown()).optional()
38655
+ var sdkSiteLayoutConfigSchema = z63.object({
38656
+ footerBlocks: z63.array(
38657
+ z63.object({
38658
+ id: z63.string().min(1).optional(),
38659
+ kind: z63.string().min(1),
38660
+ content: z63.record(z63.string(), z63.unknown()).optional()
38555
38661
  })
38556
38662
  ).optional()
38557
38663
  });
38558
- var sdkFieldSelectOptionSchema = z65.object({
38559
- value: z65.string(),
38560
- label: z65.string()
38664
+ var sdkFieldSelectOptionSchema = z63.object({
38665
+ value: z63.string(),
38666
+ label: z63.string()
38561
38667
  });
38562
- var sdkBlockFieldConfigSchema = z65.object({
38563
- options: z65.array(sdkFieldSelectOptionSchema).optional()
38668
+ var sdkBlockFieldConfigSchema = z63.object({
38669
+ options: z63.array(sdkFieldSelectOptionSchema).optional()
38564
38670
  });
38565
- var sdkBlockFieldOptionsMapSchema = z65.record(
38566
- z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38671
+ var sdkBlockFieldOptionsMapSchema = z63.record(
38672
+ z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38567
38673
  message: "Block ID must be 'block.*' or 'custom.*' format"
38568
38674
  }),
38569
- z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
38675
+ z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38570
38676
  ).optional();
38571
- var sdkContentTypeTemplateConfigSchema = z65.object({
38572
- blocks: z65.array(z65.unknown())
38677
+ var sdkContentTypeTemplateConfigSchema = z63.object({
38678
+ blocks: z63.array(z63.unknown())
38573
38679
  }).passthrough();
38574
- var sdkContentTypeOrderingConfigSchema = z65.object({
38575
- mode: z65.enum(["default", "manual"]).optional()
38680
+ var sdkContentTypeOrderingConfigSchema = z63.object({
38681
+ mode: z63.enum(["default", "manual"]).optional()
38576
38682
  }).optional();
38577
- var sdkContentTypeConfigSchema = z65.object({
38578
- key: z65.string().min(1),
38579
- fields: z65.array(z65.unknown()),
38683
+ var sdkContentTypeConfigSchema = z63.object({
38684
+ key: z63.string().min(1),
38685
+ fields: z63.array(z63.unknown()),
38580
38686
  ordering: sdkContentTypeOrderingConfigSchema,
38581
38687
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38582
38688
  }).passthrough();
38583
- var sdkContentConfigSchema = z65.object({
38584
- contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38585
- pages: z65.array(z65.unknown()).optional(),
38586
- entries: z65.array(z65.unknown()).optional(),
38587
- navigationMenus: z65.array(z65.unknown()).optional(),
38588
- settings: z65.unknown().optional()
38689
+ var sdkContentConfigSchema = z63.object({
38690
+ contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38691
+ pages: z63.array(z63.unknown()).optional(),
38692
+ entries: z63.array(z63.unknown()).optional(),
38693
+ navigationMenus: z63.array(z63.unknown()).optional(),
38694
+ settings: z63.unknown().optional()
38589
38695
  }).passthrough();
38590
38696
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38591
38697
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38600,62 +38706,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38600
38706
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38601
38707
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38602
38708
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38603
- var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38709
+ var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38604
38710
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38605
38711
  });
38606
- 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 "/"' });
38607
- var sdkWorkflowManualTriggerSchema = z65.object({
38608
- type: z65.literal("manual")
38712
+ 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 "/"' });
38713
+ var sdkWorkflowManualTriggerSchema = z63.object({
38714
+ type: z63.literal("manual")
38609
38715
  }).strict();
38610
- var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38716
+ var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38611
38717
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38612
38718
  });
38613
- var sdkWorkflowFieldChangedConditionSchema = z65.object({
38719
+ var sdkWorkflowFieldChangedConditionSchema = z63.object({
38614
38720
  field: sdkWorkflowTriggerFieldSchema,
38615
- changed: z65.literal(true)
38721
+ changed: z63.literal(true)
38616
38722
  }).strict();
38617
- var sdkWorkflowFieldEmptyConditionSchema = z65.object({
38723
+ var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38618
38724
  field: sdkWorkflowTriggerFieldSchema,
38619
- isEmpty: z65.boolean()
38725
+ isEmpty: z63.boolean()
38620
38726
  }).strict();
38621
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38622
- type: z65.literal("entry.draft.updated"),
38623
- when: z65.array(
38624
- z65.union([
38727
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38728
+ type: z63.literal("entry.draft.updated"),
38729
+ when: z63.array(
38730
+ z63.union([
38625
38731
  sdkWorkflowFieldChangedConditionSchema,
38626
38732
  sdkWorkflowFieldEmptyConditionSchema
38627
38733
  ])
38628
38734
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38629
38735
  }).strict();
38630
- var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
38736
+ var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38631
38737
  sdkWorkflowManualTriggerSchema,
38632
38738
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38633
38739
  ]);
38634
- var sdkWorkflowConfirmationSchema = z65.object({
38635
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38636
- body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38740
+ var sdkWorkflowConfirmationSchema = z63.object({
38741
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38742
+ body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38637
38743
  }).strict();
38638
- var sdkWorkflowConfigSchema = z65.object({
38744
+ var sdkWorkflowConfigSchema = z63.object({
38639
38745
  id: sdkWorkflowIdSchema,
38640
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38641
- description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38642
- contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38746
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38747
+ description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38748
+ contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38643
38749
  endpoint: sdkWorkflowEndpointSchema,
38644
- triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38750
+ triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38645
38751
  confirmation: sdkWorkflowConfirmationSchema.optional()
38646
38752
  }).strict();
38647
- var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38753
+ var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38648
38754
  const ids = workflows.map((workflow) => workflow.id);
38649
38755
  return ids.length === new Set(ids).size;
38650
38756
  }, { message: "Workflow IDs must be unique" }).optional();
38651
- var riverbankSiteConfigInputSchema = z65.object({
38652
- siteId: z65.string().uuid(),
38653
- previewUrl: z65.string().url().optional(),
38654
- liveUrl: z65.string().url().optional(),
38757
+ var riverbankSiteConfigInputSchema = z63.object({
38758
+ siteId: z63.string().uuid(),
38759
+ previewUrl: z63.string().url().optional(),
38760
+ liveUrl: z63.string().url().optional(),
38655
38761
  theme: sdkThemeConfigSchema.optional(),
38656
38762
  styles: sdkSiteStyleConfigSchema.optional(),
38657
38763
  layout: sdkSiteLayoutConfigSchema.optional(),
38658
- customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38764
+ customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38659
38765
  const ids = blocks.map((b) => b.id);
38660
38766
  return ids.length === new Set(ids).size;
38661
38767
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38663,50 +38769,50 @@ var riverbankSiteConfigInputSchema = z65.object({
38663
38769
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38664
38770
  workflows: sdkWorkflowsSchema,
38665
38771
  content: sdkContentConfigSchema.optional(),
38666
- contentDir: z65.string().optional(),
38667
- sync: z65.object({
38668
- existingEntries: z65.enum(["skip", "update"]).optional()
38772
+ contentDir: z63.string().optional(),
38773
+ sync: z63.object({
38774
+ existingEntries: z63.enum(["skip", "update"]).optional()
38669
38775
  }).optional(),
38670
- deploy: z65.object({
38671
- verifyCommand: z65.string().optional(),
38672
- prebuildOutput: z65.string().optional()
38776
+ deploy: z63.object({
38777
+ verifyCommand: z63.string().optional(),
38778
+ prebuildOutput: z63.string().optional()
38673
38779
  }).optional(),
38674
- themeSource: z65.enum(["local", "cms"]).optional(),
38675
- activeTheme: z65.string().optional(),
38676
- enablePortal: z65.boolean().optional(),
38780
+ themeSource: z63.enum(["local", "cms"]).optional(),
38781
+ activeTheme: z63.string().optional(),
38782
+ enablePortal: z63.boolean().optional(),
38677
38783
  dashboard: dashboardConfigSchema.optional()
38678
38784
  }).strict();
38679
- var pushSdkConfigBodySchema = z65.object({
38785
+ var pushSdkConfigBodySchema = z63.object({
38680
38786
  config: riverbankSiteConfigInputSchema,
38681
- forceContentTypes: z65.boolean().optional()
38787
+ forceContentTypes: z63.boolean().optional()
38682
38788
  }).strict();
38683
38789
 
38684
38790
  // ../api/src/siteOnboarding.ts
38685
- import { z as z66 } from "zod";
38791
+ import { z as z64 } from "zod";
38686
38792
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38687
38793
  configure_appointments: {
38688
38794
  requirementId: "configure_appointments",
38689
38795
  reason: "launch_anyway"
38690
38796
  }
38691
38797
  };
38692
- var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38798
+ var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38693
38799
  "requirementId",
38694
38800
  [
38695
- z66.object({
38696
- requirementId: z66.literal("review_generated_site")
38801
+ z64.object({
38802
+ requirementId: z64.literal("review_generated_site")
38697
38803
  }),
38698
- z66.object({
38699
- requirementId: z66.literal(
38804
+ z64.object({
38805
+ requirementId: z64.literal(
38700
38806
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38701
38807
  ),
38702
- overrideReason: z66.literal(
38808
+ overrideReason: z64.literal(
38703
38809
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38704
38810
  )
38705
38811
  })
38706
38812
  ]
38707
38813
  );
38708
- var goLiveSiteRequestSchema = z66.object({
38709
- acceptExtraSiteCharge: z66.boolean().optional()
38814
+ var goLiveSiteRequestSchema = z64.object({
38815
+ acceptExtraSiteCharge: z64.boolean().optional()
38710
38816
  });
38711
38817
 
38712
38818
  // ../surfaces/src/index.ts
@@ -38790,7 +38896,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38790
38896
  ];
38791
38897
 
38792
38898
  // ../api/src/bookingVerticals.ts
38793
- import { z as z67 } from "zod";
38899
+ import { z as z65 } from "zod";
38794
38900
  var VERTICAL_IDS = [
38795
38901
  "yoga_wellness",
38796
38902
  "fitness_pt",
@@ -38955,39 +39061,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38955
39061
  }
38956
39062
  return [...issues];
38957
39063
  }
38958
- var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
39064
+ var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
38959
39065
  const parsed = parseVerticalId(value);
38960
39066
  if (!parsed) {
38961
39067
  ctx.addIssue({
38962
- code: z67.ZodIssueCode.custom,
39068
+ code: z65.ZodIssueCode.custom,
38963
39069
  message: "Unknown booking vertical"
38964
39070
  });
38965
- return z67.NEVER;
39071
+ return z65.NEVER;
38966
39072
  }
38967
39073
  return parsed;
38968
39074
  });
38969
- var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
39075
+ var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
38970
39076
  const parsed = parseVerticalPresetId(value);
38971
39077
  if (!parsed) {
38972
39078
  ctx.addIssue({
38973
- code: z67.ZodIssueCode.custom,
39079
+ code: z65.ZodIssueCode.custom,
38974
39080
  message: "Unknown booking preset"
38975
39081
  });
38976
- return z67.NEVER;
39082
+ return z65.NEVER;
38977
39083
  }
38978
39084
  return parsed;
38979
39085
  });
38980
- var BookingVerticalConfigSchema = z67.object({
39086
+ var BookingVerticalConfigSchema = z65.object({
38981
39087
  verticalId: VerticalIdSchema.nullable(),
38982
- selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
39088
+ selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
38983
39089
  }).transform((value, ctx) => {
38984
39090
  const resolved = resolveSiteVerticalBookingConfig(value);
38985
39091
  if (resolved.kind === "invalid") {
38986
39092
  ctx.addIssue({
38987
- code: z67.ZodIssueCode.custom,
39093
+ code: z65.ZodIssueCode.custom,
38988
39094
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38989
39095
  });
38990
- return z67.NEVER;
39096
+ return z65.NEVER;
38991
39097
  }
38992
39098
  return resolved.config;
38993
39099
  });
@@ -39009,56 +39115,56 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
39009
39115
  }
39010
39116
 
39011
39117
  // ../api/src/utils/isRecord.ts
39012
- function isRecord8(value) {
39118
+ function isRecord9(value) {
39013
39119
  return typeof value === "object" && value !== null && !Array.isArray(value);
39014
39120
  }
39015
39121
 
39016
39122
  // ../api/src/appointmentSetup.ts
39017
- import { z as z68 } from "zod";
39123
+ import { z as z66 } from "zod";
39018
39124
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
39019
- var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
39020
- z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
39021
- z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
39125
+ var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
39126
+ z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
39127
+ z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
39022
39128
  ]);
39023
- var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
39024
- z68.object({ kind: z68.literal("none") }),
39025
- z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
39026
- z68.object({
39027
- kind: z68.literal("create"),
39028
- draftId: z68.string().min(1),
39029
- title: z68.string().trim().min(1),
39030
- description: z68.string().nullable(),
39031
- timezone: z68.string().trim().min(1).nullable(),
39032
- addressJson: z68.record(z68.string(), z68.unknown()),
39033
- locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
39129
+ var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
39130
+ z66.object({ kind: z66.literal("none") }),
39131
+ z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
39132
+ z66.object({
39133
+ kind: z66.literal("create"),
39134
+ draftId: z66.string().min(1),
39135
+ title: z66.string().trim().min(1),
39136
+ description: z66.string().nullable(),
39137
+ timezone: z66.string().trim().min(1).nullable(),
39138
+ addressJson: z66.record(z66.string(), z66.unknown()),
39139
+ locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
39034
39140
  })
39035
39141
  ]);
39036
- var appointmentSetupPaymentDraftSchema = z68.object({
39037
- priceType: z68.union([z68.literal("free"), z68.literal("paid")])
39038
- });
39039
- var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
39040
- z68.object({ kind: z68.literal("all_practitioners") }),
39041
- z68.object({
39042
- kind: z68.literal("selected_practitioners"),
39043
- resourceRefs: z68.array(appointmentSetupRefSchema)
39142
+ var appointmentSetupPaymentDraftSchema = z66.object({
39143
+ priceType: z66.union([z66.literal("free"), z66.literal("paid")])
39144
+ });
39145
+ var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
39146
+ z66.object({ kind: z66.literal("all_practitioners") }),
39147
+ z66.object({
39148
+ kind: z66.literal("selected_practitioners"),
39149
+ resourceRefs: z66.array(appointmentSetupRefSchema)
39044
39150
  })
39045
39151
  ]);
39046
- var appointmentSetupServiceDraftSchema = z68.object({
39152
+ var appointmentSetupServiceDraftSchema = z66.object({
39047
39153
  ref: appointmentSetupRefSchema,
39048
- title: z68.string().trim().min(1),
39049
- description: z68.string().nullable(),
39050
- durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39051
- prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39052
- cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39053
- priceAmount: z68.number().int().nonnegative().nullable(),
39054
- isActive: z68.boolean(),
39055
- locationType: z68.union([
39056
- z68.literal("virtual"),
39057
- z68.literal("in_person"),
39058
- z68.literal("hybrid")
39154
+ title: z66.string().trim().min(1),
39155
+ description: z66.string().nullable(),
39156
+ durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39157
+ prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39158
+ cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39159
+ priceAmount: z66.number().int().nonnegative().nullable(),
39160
+ isActive: z66.boolean(),
39161
+ locationType: z66.union([
39162
+ z66.literal("virtual"),
39163
+ z66.literal("in_person"),
39164
+ z66.literal("hybrid")
39059
39165
  ]),
39060
39166
  venue: appointmentSetupVenueChoiceSchema,
39061
- timezone: z68.string().trim().min(1).nullable(),
39167
+ timezone: z66.string().trim().min(1).nullable(),
39062
39168
  payment: appointmentSetupPaymentDraftSchema,
39063
39169
  assignment: appointmentSetupServiceAssignmentDraftSchema
39064
39170
  }).superRefine((service, ctx) => {
@@ -39077,49 +39183,49 @@ var appointmentSetupServiceDraftSchema = z68.object({
39077
39183
  });
39078
39184
  }
39079
39185
  });
39080
- var appointmentSetupPractitionerDraftSchema = z68.object({
39186
+ var appointmentSetupPractitionerDraftSchema = z66.object({
39081
39187
  ref: appointmentSetupRefSchema,
39082
- displayName: z68.string().trim().min(1),
39083
- bio: z68.string().nullable(),
39084
- timezone: z68.string().trim().min(1),
39085
- colorHex: z68.string().nullable()
39086
- });
39087
- var appointmentSetupWeeklyWindowDraftSchema = z68.object({
39088
- weekday: z68.number().int().min(0).max(6),
39089
- startTime: z68.string(),
39090
- endTime: z68.string()
39091
- });
39092
- var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
39093
- z68.object({ kind: z68.literal("automatic_spacing") }),
39094
- z68.object({
39095
- kind: z68.literal("regular_interval"),
39096
- intervalMinutes: z68.union([
39097
- z68.literal(10),
39098
- z68.literal(15),
39099
- z68.literal(20),
39100
- z68.literal(30),
39101
- z68.literal(45),
39102
- z68.literal(60)
39188
+ displayName: z66.string().trim().min(1),
39189
+ bio: z66.string().nullable(),
39190
+ timezone: z66.string().trim().min(1),
39191
+ colorHex: z66.string().nullable()
39192
+ });
39193
+ var appointmentSetupWeeklyWindowDraftSchema = z66.object({
39194
+ weekday: z66.number().int().min(0).max(6),
39195
+ startTime: z66.string(),
39196
+ endTime: z66.string()
39197
+ });
39198
+ var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
39199
+ z66.object({ kind: z66.literal("automatic_spacing") }),
39200
+ z66.object({
39201
+ kind: z66.literal("regular_interval"),
39202
+ intervalMinutes: z66.union([
39203
+ z66.literal(10),
39204
+ z66.literal(15),
39205
+ z66.literal(20),
39206
+ z66.literal(30),
39207
+ z66.literal(45),
39208
+ z66.literal(60)
39103
39209
  ])
39104
39210
  })
39105
39211
  ]);
39106
- var appointmentSetupAvailabilityDraftSchema = z68.object({
39107
- kind: z68.literal("weekly_windows"),
39212
+ var appointmentSetupAvailabilityDraftSchema = z66.object({
39213
+ kind: z66.literal("weekly_windows"),
39108
39214
  resourceRef: appointmentSetupRefSchema,
39109
39215
  serviceRef: appointmentSetupRefSchema.nullable(),
39110
- windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
39216
+ windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
39111
39217
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
39112
39218
  });
39113
39219
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
39114
39220
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
39115
- var appointmentSetupBookingNoticeSchema = z68.object({
39116
- minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39117
- maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39118
- });
39119
- var applyAppointmentSetupRequestSchema = z68.object({
39120
- services: z68.array(appointmentSetupServiceDraftSchema),
39121
- practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
39122
- availability: z68.array(appointmentSetupAvailabilityDraftSchema),
39221
+ var appointmentSetupBookingNoticeSchema = z66.object({
39222
+ minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39223
+ maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39224
+ });
39225
+ var applyAppointmentSetupRequestSchema = z66.object({
39226
+ services: z66.array(appointmentSetupServiceDraftSchema),
39227
+ practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
39228
+ availability: z66.array(appointmentSetupAvailabilityDraftSchema),
39123
39229
  bookingNotice: appointmentSetupBookingNoticeSchema
39124
39230
  });
39125
39231
 
@@ -39152,24 +39258,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
39152
39258
  ];
39153
39259
 
39154
39260
  // ../api/src/siteBanner.ts
39155
- import { z as z69 } from "zod";
39261
+ import { z as z67 } from "zod";
39156
39262
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
39157
39263
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
39158
39264
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
39159
39265
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
39160
- var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
39161
- var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
39162
- var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
39163
- var siteBannerCtaSchema = z69.object({
39164
- label: z69.string().trim().min(1),
39266
+ var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
39267
+ var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
39268
+ var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
39269
+ var siteBannerCtaSchema = z67.object({
39270
+ label: z67.string().trim().min(1),
39165
39271
  link: linkPayloadSchema
39166
39272
  });
39167
- var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
39168
- z69.object({
39169
- enabled: z69.literal(false)
39273
+ var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
39274
+ z67.object({
39275
+ enabled: z67.literal(false)
39170
39276
  }),
39171
- z69.object({
39172
- enabled: z69.literal(true),
39277
+ z67.object({
39278
+ enabled: z67.literal(true),
39173
39279
  scope: siteBannerScopeSchema,
39174
39280
  tone: siteBannerToneSchema,
39175
39281
  body: siteBannerBodySchema,
@@ -39183,7 +39289,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
39183
39289
  const analysis = analyzeSiteBannerBody(value.body);
39184
39290
  for (const issue of analysis.issues) {
39185
39291
  ctx.addIssue({
39186
- code: z69.ZodIssueCode.custom,
39292
+ code: z67.ZodIssueCode.custom,
39187
39293
  path: ["body"],
39188
39294
  message: siteBannerBodyIssueMessage(issue)
39189
39295
  });
@@ -39316,7 +39422,7 @@ function sanitizeMarks(marks) {
39316
39422
  if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
39317
39423
  return [{ type: mark.type }];
39318
39424
  }
39319
- if (mark.type === "link" && isRecord8(mark.attrs) && typeof mark.attrs.href === "string") {
39425
+ if (mark.type === "link" && isRecord9(mark.attrs) && typeof mark.attrs.href === "string") {
39320
39426
  const attrs = { href: mark.attrs.href };
39321
39427
  if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
39322
39428
  attrs.target = mark.attrs.target;
@@ -39331,10 +39437,10 @@ function sanitizeMarks(marks) {
39331
39437
  return sanitized.length > 0 ? sanitized : void 0;
39332
39438
  }
39333
39439
  function unwrapRichTextValue(value) {
39334
- if (isRecord8(value) && isRecord8(value.doc)) {
39440
+ if (isRecord9(value) && isRecord9(value.doc)) {
39335
39441
  return unwrapRichTextValue(value.doc);
39336
39442
  }
39337
- if (isRecord8(value) && value.type === "doc") {
39443
+ if (isRecord9(value) && value.type === "doc") {
39338
39444
  return {
39339
39445
  type: "doc",
39340
39446
  content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
@@ -39343,7 +39449,7 @@ function unwrapRichTextValue(value) {
39343
39449
  return EMPTY_SITE_BANNER_BODY;
39344
39450
  }
39345
39451
  function isTipTapNodeLike(value) {
39346
- return isRecord8(value) && typeof value.type === "string";
39452
+ return isRecord9(value) && typeof value.type === "string";
39347
39453
  }
39348
39454
  function coerceTipTapNode(value) {
39349
39455
  return {
@@ -39351,9 +39457,9 @@ function coerceTipTapNode(value) {
39351
39457
  ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
39352
39458
  ...typeof value.text === "string" ? { text: value.text } : {},
39353
39459
  ...Array.isArray(value.marks) ? {
39354
- marks: value.marks.filter((mark) => isRecord8(mark) && typeof mark.type === "string").map((mark) => ({
39460
+ marks: value.marks.filter((mark) => isRecord9(mark) && typeof mark.type === "string").map((mark) => ({
39355
39461
  type: mark.type,
39356
- ...isRecord8(mark.attrs) ? { attrs: mark.attrs } : {}
39462
+ ...isRecord9(mark.attrs) ? { attrs: mark.attrs } : {}
39357
39463
  }))
39358
39464
  } : {}
39359
39465
  };
@@ -39445,71 +39551,71 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39445
39551
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39446
39552
 
39447
39553
  // ../api/src/aiPlayground.ts
39448
- import { z as z70 } from "zod";
39449
- var Rfc6902PatchOp = z70.discriminatedUnion("op", [
39554
+ import { z as z68 } from "zod";
39555
+ var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39450
39556
  // Standard RFC-6902 operations
39451
- z70.object({
39452
- op: z70.literal("add"),
39453
- path: z70.string(),
39454
- value: z70.unknown()
39557
+ z68.object({
39558
+ op: z68.literal("add"),
39559
+ path: z68.string(),
39560
+ value: z68.unknown()
39455
39561
  }),
39456
- z70.object({
39457
- op: z70.literal("remove"),
39458
- path: z70.string()
39562
+ z68.object({
39563
+ op: z68.literal("remove"),
39564
+ path: z68.string()
39459
39565
  }),
39460
- z70.object({
39461
- op: z70.literal("replace"),
39462
- path: z70.string(),
39463
- value: z70.unknown()
39566
+ z68.object({
39567
+ op: z68.literal("replace"),
39568
+ path: z68.string(),
39569
+ value: z68.unknown()
39464
39570
  }),
39465
- z70.object({
39466
- op: z70.literal("move"),
39467
- from: z70.string(),
39468
- path: z70.string()
39571
+ z68.object({
39572
+ op: z68.literal("move"),
39573
+ from: z68.string(),
39574
+ path: z68.string()
39469
39575
  }),
39470
- z70.object({
39471
- op: z70.literal("copy"),
39472
- from: z70.string(),
39473
- path: z70.string()
39576
+ z68.object({
39577
+ op: z68.literal("copy"),
39578
+ from: z68.string(),
39579
+ path: z68.string()
39474
39580
  }),
39475
39581
  // Block-level operations (Phase 2)
39476
- z70.object({
39477
- op: z70.literal("add_block"),
39478
- blockKind: z70.string(),
39479
- afterBlockId: z70.string().nullable(),
39480
- content: z70.record(z70.string(), z70.unknown()),
39481
- rationale: z70.string()
39582
+ z68.object({
39583
+ op: z68.literal("add_block"),
39584
+ blockKind: z68.string(),
39585
+ afterBlockId: z68.string().nullable(),
39586
+ content: z68.record(z68.string(), z68.unknown()),
39587
+ rationale: z68.string()
39482
39588
  }),
39483
- z70.object({
39484
- op: z70.literal("delete_block"),
39485
- blockId: z70.string(),
39486
- rationale: z70.string()
39589
+ z68.object({
39590
+ op: z68.literal("delete_block"),
39591
+ blockId: z68.string(),
39592
+ rationale: z68.string()
39487
39593
  }),
39488
- z70.object({
39489
- op: z70.literal("reorder_block"),
39490
- blockId: z70.string(),
39491
- afterBlockId: z70.string().nullable(),
39492
- rationale: z70.string()
39594
+ z68.object({
39595
+ op: z68.literal("reorder_block"),
39596
+ blockId: z68.string(),
39597
+ afterBlockId: z68.string().nullable(),
39598
+ rationale: z68.string()
39493
39599
  })
39494
39600
  ]);
39495
- var PlaygroundProposeRequest = z70.object({
39496
- request: z70.string().min(1).max(2e3)
39601
+ var PlaygroundProposeRequest = z68.object({
39602
+ request: z68.string().min(1).max(2e3)
39497
39603
  });
39498
- var MultiPagePatchEnvelope = z70.object({
39499
- pageId: z70.string(),
39500
- blockId: z70.string().optional(),
39604
+ var MultiPagePatchEnvelope = z68.object({
39605
+ pageId: z68.string(),
39606
+ blockId: z68.string().optional(),
39501
39607
  // Not present for page-level ops
39502
- blockKind: z70.string().optional(),
39503
- blockPurpose: z70.string().optional().nullable(),
39504
- ops: z70.array(Rfc6902PatchOp),
39505
- rationale: z70.string(),
39506
- currentContent: z70.record(z70.string(), z70.unknown()).optional()
39608
+ blockKind: z68.string().optional(),
39609
+ blockPurpose: z68.string().optional().nullable(),
39610
+ ops: z68.array(Rfc6902PatchOp),
39611
+ rationale: z68.string(),
39612
+ currentContent: z68.record(z68.string(), z68.unknown()).optional()
39507
39613
  });
39508
- var MultiPageUpdateResponse = z70.object({
39509
- patches: z70.array(MultiPagePatchEnvelope),
39510
- assistantMessage: z70.string(),
39511
- pagesModified: z70.number(),
39512
- toolCallsUsed: z70.number()
39614
+ var MultiPageUpdateResponse = z68.object({
39615
+ patches: z68.array(MultiPagePatchEnvelope),
39616
+ assistantMessage: z68.string(),
39617
+ pagesModified: z68.number(),
39618
+ toolCallsUsed: z68.number()
39513
39619
  });
39514
39620
 
39515
39621
  // src/data/prefetchBlockData.ts
@@ -39523,7 +39629,7 @@ var ENTRY_REF_KEYS = [
39523
39629
  "entryId",
39524
39630
  "slug"
39525
39631
  ];
39526
- function isRecord9(value) {
39632
+ function isRecord10(value) {
39527
39633
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
39528
39634
  }
39529
39635
  function extractManualEntryRef(item) {
@@ -39531,7 +39637,7 @@ function extractManualEntryRef(item) {
39531
39637
  const trimmed = item.trim();
39532
39638
  return trimmed.length > 0 ? trimmed : null;
39533
39639
  }
39534
- if (!isRecord9(item)) return null;
39640
+ if (!isRecord10(item)) return null;
39535
39641
  for (const key of ENTRY_REF_KEYS) {
39536
39642
  const raw = item[key];
39537
39643
  if (typeof raw === "string" && raw.trim().length > 0) {