@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
@@ -6609,6 +6609,8 @@ function publicEventPricingType(pricing) {
6609
6609
  case "ticket_types":
6610
6610
  case "course":
6611
6611
  return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
6612
+ case "external":
6613
+ return "external";
6612
6614
  }
6613
6615
  }
6614
6616
  function isFreePublicEventPriceDisplay(display) {
@@ -6622,6 +6624,7 @@ function isFreePublicEventPriceDisplay(display) {
6622
6624
  case "range":
6623
6625
  case "mixed":
6624
6626
  case "unavailable":
6627
+ case "external":
6625
6628
  return false;
6626
6629
  }
6627
6630
  }
@@ -8213,12 +8216,17 @@ var init_schema2 = __esm({
8213
8216
  minItems: z5.number().int().nonnegative().optional(),
8214
8217
  maxItems: z5.number().int().nonnegative().optional()
8215
8218
  });
8216
- visibleWhenSchema = z5.union([
8217
- visibleWhenPredicateSchema,
8218
- z5.object({
8219
- allOf: z5.array(visibleWhenPredicateSchema).min(1)
8220
- })
8221
- ]);
8219
+ visibleWhenSchema = z5.lazy(
8220
+ () => z5.union([
8221
+ visibleWhenPredicateSchema,
8222
+ z5.object({
8223
+ allOf: z5.array(visibleWhenSchema).min(1)
8224
+ }),
8225
+ z5.object({
8226
+ anyOf: z5.array(visibleWhenSchema).min(1)
8227
+ })
8228
+ ])
8229
+ );
8222
8230
  uiSchema = z5.object({
8223
8231
  widget: z5.string().optional(),
8224
8232
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -23553,9 +23561,6 @@ var init_heroCopy = __esm({
23553
23561
  maxLength: 600
23554
23562
  }
23555
23563
  ],
23556
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
23557
- // `splitEditorial` variant reads these nodes by index; keep the order stable
23558
- // (it fails fast at import if the count changes).
23559
23564
  layout: [
23560
23565
  text(
23561
23566
  {
@@ -26331,7 +26336,7 @@ function splitLayoutWith(children) {
26331
26336
  baseClass: ""
26332
26337
  });
26333
26338
  }
26334
- var heroCopyAndCta, heroPriorityMediaProps, heroContentNodes, classicLayout, microLayout, splitContentColumn, splitImageColumn, splitLayout, splitReverseLayout, heroEyebrowNode, heroHeadlineNode, heroSubheadlineNode, heroCtaRowNode, heroEditorialBottomRow, splitEditorialContentColumn, splitEditorialLayout, heroConfig, heroManifest, heroBlockDefinition;
26339
+ var heroCopyAndCta, heroPriorityMediaProps, heroContentNodes, classicLayout, microLayout, splitContentColumn, splitImageColumn, splitLayout, splitReverseLayout, heroConfig, heroManifest, heroBlockDefinition;
26335
26340
  var init_hero = __esm({
26336
26341
  "../blocks/src/system/blocks/hero.ts"() {
26337
26342
  "use strict";
@@ -26376,32 +26381,6 @@ var init_hero = __esm({
26376
26381
  splitContentColumn,
26377
26382
  splitImageColumn
26378
26383
  ]);
26379
- heroEyebrowNode = heroCopyFragment.layout[0];
26380
- heroHeadlineNode = heroCopyFragment.layout[1];
26381
- heroSubheadlineNode = heroCopyFragment.layout[2];
26382
- heroCtaRowNode = heroCtaRowFragment.layout[0];
26383
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
26384
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
26385
- }
26386
- heroEditorialBottomRow = inline(
26387
- {
26388
- gap: "lg",
26389
- align: "end",
26390
- justify: "start",
26391
- wrap: true,
26392
- className: "rb-w-full"
26393
- },
26394
- [heroSubheadlineNode, heroCtaRowNode]
26395
- );
26396
- splitEditorialContentColumn = heroContentWrapper(
26397
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
26398
- "md",
26399
- "rb-w-full rb-text-left"
26400
- );
26401
- splitEditorialLayout = splitLayoutWith([
26402
- splitEditorialContentColumn,
26403
- splitImageColumn
26404
- ]);
26405
26384
  heroConfig = {
26406
26385
  id: "block.hero",
26407
26386
  title: "Hero",
@@ -26425,7 +26404,8 @@ var init_hero = __esm({
26425
26404
  id: "imageShape",
26426
26405
  label: "Image shape",
26427
26406
  defaultValue: "default",
26428
- uiIntent: "display"
26407
+ uiIntent: "display",
26408
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
26429
26409
  })
26430
26410
  ],
26431
26411
  layout: classicLayout,
@@ -26433,8 +26413,7 @@ var init_hero = __esm({
26433
26413
  classic: classicLayout,
26434
26414
  micro: microLayout,
26435
26415
  split: splitLayout,
26436
- splitReverse: splitReverseLayout,
26437
- splitEditorial: splitEditorialLayout
26416
+ splitReverse: splitReverseLayout
26438
26417
  },
26439
26418
  defaultVariant: "classic",
26440
26419
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -28353,8 +28332,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
28353
28332
  return isPlainObject(raw) ? raw : null;
28354
28333
  }
28355
28334
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
28335
+ const explicitValue = readString(content, fallbackKey);
28336
+ if (explicitValue !== void 0) return explicitValue;
28356
28337
  const generated = resolveGeneratedHeroLayoutStyles(content);
28357
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
28338
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
28358
28339
  }
28359
28340
  function resolveHeroVariant(content) {
28360
28341
  const variant = readString(content, "variant");
@@ -28367,7 +28348,7 @@ function resolveHeroContentAlignment(content) {
28367
28348
  const raw = readHeroLayoutString(content, "contentAlignment");
28368
28349
  if (raw === "left" || raw === "center" || raw === "right") return raw;
28369
28350
  const variant = resolveHeroVariant(content);
28370
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
28351
+ if (variant === "split" || variant === "splitReverse") return "left";
28371
28352
  return "center";
28372
28353
  }
28373
28354
  function resolveHeroVerticalAlignment(content) {
@@ -28377,7 +28358,7 @@ function resolveHeroVerticalAlignment(content) {
28377
28358
  const minHeight = sectionStyles?.minHeight;
28378
28359
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
28379
28360
  const variant = resolveHeroVariant(content);
28380
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
28361
+ if (variant === "split" || variant === "splitReverse") return "center";
28381
28362
  return "top";
28382
28363
  }
28383
28364
  function resolveHeroContentMaxWidth(content) {
@@ -32518,7 +32499,7 @@ var init_schemas = __esm({
32518
32499
 
32519
32500
  // ../blocks/src/system/blocks/events/shared/schemas.ts
32520
32501
  import { z as z46 } from "zod";
32521
- var eventPresetSchema, eventScheduleScopeSchema, eventDestinationModeSchema, eventVenueSchema, eventCategorySchema, pricingTypeSchema, accessRestrictionSchema, eventPricingModeSchema, publicCoursePriceDisplaySchema, publicEventPriceDisplaySchema, publicEventTicketTypePriceDisplaySchema, publicEventAttendanceModeSchema, publicEventAttendanceModeAvailabilitySchema, publicEventTicketTypeAvailabilitySchema, publicEventTicketTypeSchema, publicEventPricingSchema, publicTeamMemberSummarySchema, publicEventSchema, publicEventsArraySchema;
32502
+ var eventPresetSchema, eventScheduleScopeSchema, eventDestinationModeSchema, publicEventDestinationSchema, eventVenueSchema, eventCategorySchema, pricingTypeSchema, accessRestrictionSchema, eventPricingModeSchema, publicCoursePriceDisplaySchema, publicEventPriceDisplaySchema, publicEventTicketTypePriceDisplaySchema, publicEventAttendanceModeSchema, publicEventAttendanceModeAvailabilitySchema, publicEventTicketTypeAvailabilitySchema, publicEventTicketTypeSchema, publicEventPricingSchema, publicTeamMemberSummarySchema, publicEventSchema, publicEventsArraySchema;
32522
32503
  var init_schemas2 = __esm({
32523
32504
  "../blocks/src/system/blocks/events/shared/schemas.ts"() {
32524
32505
  "use strict";
@@ -32529,6 +32510,18 @@ var init_schemas2 = __esm({
32529
32510
  eventPresetSchema = z46.enum(["event", "class", "workshop", "retreat", "performance"]);
32530
32511
  eventScheduleScopeSchema = z46.enum(["recurring", "oneOff"]);
32531
32512
  eventDestinationModeSchema = z46.enum(["cms-managed", "system-managed"]);
32513
+ publicEventDestinationSchema = z46.discriminatedUnion("kind", [
32514
+ z46.object({
32515
+ kind: z46.literal("native"),
32516
+ mode: eventDestinationModeSchema,
32517
+ path: z46.string()
32518
+ }),
32519
+ z46.object({
32520
+ kind: z46.literal("external"),
32521
+ url: z46.string(),
32522
+ label: z46.string()
32523
+ })
32524
+ ]);
32532
32525
  eventVenueSchema = z46.object({
32533
32526
  id: z46.string(),
32534
32527
  name: z46.string(),
@@ -32543,7 +32536,7 @@ var init_schemas2 = __esm({
32543
32536
  name: z46.string(),
32544
32537
  color: z46.string().nullable()
32545
32538
  });
32546
- pricingTypeSchema = z46.enum(["free", "paid"]);
32539
+ pricingTypeSchema = z46.enum(["free", "paid", "external"]);
32547
32540
  accessRestrictionSchema = z46.enum(["none", "category"]);
32548
32541
  eventPricingModeSchema = z46.enum(["single", "ticket_types"]);
32549
32542
  publicCoursePriceDisplaySchema = z46.discriminatedUnion("kind", [
@@ -32564,6 +32557,7 @@ var init_schemas2 = __esm({
32564
32557
  currency: z46.string()
32565
32558
  }),
32566
32559
  z46.object({ kind: z46.literal("unavailable"), currency: z46.string() }),
32560
+ z46.object({ kind: z46.literal("external"), label: z46.string() }),
32567
32561
  z46.object({ kind: z46.literal("course"), display: publicCoursePriceDisplaySchema })
32568
32562
  ]);
32569
32563
  publicEventTicketTypePriceDisplaySchema = z46.union([
@@ -32642,6 +32636,10 @@ var init_schemas2 = __esm({
32642
32636
  z46.object({
32643
32637
  kind: z46.literal("course"),
32644
32638
  display: z46.object({ kind: z46.literal("course"), display: publicCoursePriceDisplaySchema })
32639
+ }),
32640
+ z46.object({
32641
+ kind: z46.literal("external"),
32642
+ display: z46.object({ kind: z46.literal("external"), label: z46.string() })
32645
32643
  })
32646
32644
  ]);
32647
32645
  publicTeamMemberSummarySchema = z46.object({
@@ -32670,7 +32668,8 @@ var init_schemas2 = __esm({
32670
32668
  image: mediaSchema2.nullable().optional()
32671
32669
  }).optional(),
32672
32670
  slug: z46.string(),
32673
- path: z46.string(),
32671
+ path: z46.string().nullable(),
32672
+ destination: publicEventDestinationSchema,
32674
32673
  requiresRegistration: z46.boolean(),
32675
32674
  deliveryMode: z46.enum(["in_person", "online", "hybrid"]),
32676
32675
  attendanceModes: z46.array(publicEventAttendanceModeAvailabilitySchema),
@@ -32936,20 +32935,58 @@ var init_shared3 = __esm({
32936
32935
  }
32937
32936
  });
32938
32937
 
32939
- // ../blocks/src/system/blocks/event-registration.shared.ts
32938
+ // ../blocks/src/system/blocks/shop.shared.ts
32940
32939
  import { z as z47 } from "zod";
32940
+ var publicPassProductSchema, publicPassProductCollectionSchema, publicMembershipProductSchema, publicMembershipProductCollectionSchema;
32941
+ var init_shop_shared = __esm({
32942
+ "../blocks/src/system/blocks/shop.shared.ts"() {
32943
+ "use strict";
32944
+ publicPassProductSchema = z47.object({
32945
+ id: z47.string(),
32946
+ productUseCase: z47.enum(["event_pass", "appointment_package"]).default("event_pass"),
32947
+ name: z47.string(),
32948
+ description: z47.string().nullable(),
32949
+ price: z47.number(),
32950
+ currency: z47.string(),
32951
+ creditsTotal: z47.number(),
32952
+ pricePerCredit: z47.number(),
32953
+ validDays: z47.number().nullable(),
32954
+ eligibleCategoryIds: z47.array(z47.string()),
32955
+ eligibleCategoryNames: z47.array(z47.string())
32956
+ });
32957
+ publicPassProductCollectionSchema = z47.object({
32958
+ passes: z47.array(publicPassProductSchema)
32959
+ });
32960
+ publicMembershipProductSchema = z47.object({
32961
+ id: z47.string(),
32962
+ name: z47.string(),
32963
+ description: z47.string().nullable(),
32964
+ price: z47.number(),
32965
+ currency: z47.string(),
32966
+ billingInterval: z47.enum(["month", "year"]),
32967
+ eligibleCategoryIds: z47.array(z47.string()),
32968
+ eligibleCategoryNames: z47.array(z47.string())
32969
+ });
32970
+ publicMembershipProductCollectionSchema = z47.object({
32971
+ memberships: z47.array(publicMembershipProductSchema)
32972
+ });
32973
+ }
32974
+ });
32975
+
32976
+ // ../blocks/src/system/blocks/event-registration.shared.ts
32977
+ import { z as z48 } from "zod";
32941
32978
  var occurrenceContextSchema;
32942
32979
  var init_event_registration_shared = __esm({
32943
32980
  "../blocks/src/system/blocks/event-registration.shared.ts"() {
32944
32981
  "use strict";
32945
- occurrenceContextSchema = z47.object({
32946
- id: z47.string(),
32947
- seriesId: z47.string(),
32948
- startsAt: z47.string(),
32949
- endsAt: z47.string(),
32950
- timeZone: z47.string(),
32951
- capacityOverride: z47.number().nullable().optional(),
32952
- overrides: z47.record(z47.string(), z47.unknown()).nullable().optional()
32982
+ occurrenceContextSchema = z48.object({
32983
+ id: z48.string(),
32984
+ seriesId: z48.string(),
32985
+ startsAt: z48.string(),
32986
+ endsAt: z48.string(),
32987
+ timeZone: z48.string(),
32988
+ capacityOverride: z48.number().nullable().optional(),
32989
+ overrides: z48.record(z48.string(), z48.unknown()).nullable().optional()
32953
32990
  }).nullable();
32954
32991
  }
32955
32992
  });
@@ -32958,6 +32995,9 @@ var init_event_registration_shared = __esm({
32958
32995
  function isEventCalendarDisplayMode(value) {
32959
32996
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
32960
32997
  }
32998
+ function isEventCalendarDefaultView(value) {
32999
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
33000
+ }
32961
33001
  function isEventCalendarListLayout(value) {
32962
33002
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
32963
33003
  }
@@ -32965,12 +33005,13 @@ function isEventContentType(slug) {
32965
33005
  if (!slug) return false;
32966
33006
  return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
32967
33007
  }
32968
- var EVENT_CONTENT_TYPE_SLUGS, eventCalendarDisplayModeValues, eventCalendarListLayoutValues, eventCalendarListLayoutOptions;
33008
+ var EVENT_CONTENT_TYPE_SLUGS, eventCalendarDisplayModeValues, eventCalendarDefaultViewValues, eventCalendarListLayoutValues, eventCalendarListLayoutOptions;
32969
33009
  var init_events = __esm({
32970
33010
  "../blocks/src/system/constants/events.ts"() {
32971
33011
  "use strict";
32972
33012
  EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
32973
- eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
33013
+ eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
33014
+ eventCalendarDefaultViewValues = ["month", "week"];
32974
33015
  eventCalendarListLayoutValues = ["stack", "grid", "compact"];
32975
33016
  eventCalendarListLayoutOptions = [
32976
33017
  { id: "stack", label: "Stack" },
@@ -32980,11 +33021,45 @@ var init_events = __esm({
32980
33021
  }
32981
33022
  });
32982
33023
 
33024
+ // ../blocks/src/system/runtime/nodes/events/shared/destination.ts
33025
+ function isRecord3(value) {
33026
+ return typeof value === "object" && value !== null && !Array.isArray(value);
33027
+ }
33028
+ function isRuntimeEventDestination(value) {
33029
+ if (!isRecord3(value) || typeof value.kind !== "string") return false;
33030
+ if (value.kind === "native") {
33031
+ return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
33032
+ }
33033
+ return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
33034
+ }
33035
+ function resolveRuntimeEventDestination(event) {
33036
+ if (isRuntimeEventDestination(event.destination)) {
33037
+ return event.destination;
33038
+ }
33039
+ return {
33040
+ kind: "native",
33041
+ mode: event.eventDestinationMode === "system-managed" ? "system-managed" : "cms-managed",
33042
+ path: typeof event.path === "string" ? event.path : ""
33043
+ };
33044
+ }
33045
+ var init_destination = __esm({
33046
+ "../blocks/src/system/runtime/nodes/events/shared/destination.ts"() {
33047
+ "use strict";
33048
+ }
33049
+ });
33050
+
32983
33051
  // ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
32984
33052
  function resolveRuntimeEventPricing(event) {
32985
33053
  if (isPublicEventPricing(event.pricing)) {
32986
33054
  return event.pricing;
32987
33055
  }
33056
+ const destination = resolveRuntimeEventDestination(event);
33057
+ if (destination.kind === "external") {
33058
+ return {
33059
+ kind: "external",
33060
+ display: { kind: "external", label: "External registration" }
33061
+ };
33062
+ }
32988
33063
  const legacy = event;
32989
33064
  const currency = readCurrency(legacy.currency);
32990
33065
  if (event.requiresRegistration === false) {
@@ -33021,22 +33096,22 @@ function resolveRuntimeEventPricing(event) {
33021
33096
  function readCurrency(value) {
33022
33097
  return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY;
33023
33098
  }
33024
- function isRecord3(value) {
33099
+ function isRecord4(value) {
33025
33100
  return typeof value === "object" && value !== null && !Array.isArray(value);
33026
33101
  }
33027
33102
  function isPublicEventPricing(value) {
33028
- if (!isRecord3(value) || typeof value.kind !== "string") return false;
33029
- return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course";
33103
+ if (!isRecord4(value) || typeof value.kind !== "string") return false;
33104
+ return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
33030
33105
  }
33031
33106
  function isPublicEventTicketType(value) {
33032
- return isRecord3(value) && typeof value.id === "string";
33107
+ return isRecord4(value) && typeof value.id === "string";
33033
33108
  }
33034
33109
  function readTicketTypePriceDisplay(value, currency) {
33035
33110
  const display = readLegacyPriceDisplay(value, currency);
33036
- return display.kind === "course" ? { kind: "unavailable", currency } : display;
33111
+ return display.kind === "course" || display.kind === "external" ? { kind: "unavailable", currency } : display;
33037
33112
  }
33038
33113
  function readLegacyPriceDisplay(value, currency) {
33039
- if (!isRecord3(value) || typeof value.kind !== "string") {
33114
+ if (!isRecord4(value) || typeof value.kind !== "string") {
33040
33115
  return { kind: "unavailable", currency };
33041
33116
  }
33042
33117
  const displayCurrency = readCurrency(value.currency);
@@ -33075,7 +33150,7 @@ function readLegacyPriceDisplay(value, currency) {
33075
33150
  case "unavailable":
33076
33151
  return { kind: "unavailable", currency: displayCurrency };
33077
33152
  case "course":
33078
- return isRecord3(value.display) ? {
33153
+ return isRecord4(value.display) ? {
33079
33154
  kind: "course",
33080
33155
  display: readCoursePriceDisplay(value.display, displayCurrency)
33081
33156
  } : {
@@ -33113,26 +33188,28 @@ var DEFAULT_EVENT_CURRENCY;
33113
33188
  var init_pricing = __esm({
33114
33189
  "../blocks/src/system/runtime/nodes/events/shared/pricing.ts"() {
33115
33190
  "use strict";
33191
+ init_destination();
33116
33192
  DEFAULT_EVENT_CURRENCY = "USD";
33117
33193
  }
33118
33194
  });
33119
33195
 
33120
33196
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
33121
- import { z as z48 } from "zod";
33122
- var previewStageSchema, registrationButtonVariantSchema, eventButtonVariantSchema, eventLayoutSchema, eventCalendarDisplayModeSchema, columnOptionSchema, weekStartSchema, filterAutoShowSchema, calendarTabViewsSchema;
33197
+ import { z as z49 } from "zod";
33198
+ var previewStageSchema, registrationButtonVariantSchema, eventButtonVariantSchema, eventLayoutSchema, eventCalendarDisplayModeSchema, eventCalendarDefaultViewSchema, columnOptionSchema, weekStartSchema, filterAutoShowSchema, calendarTabViewsSchema;
33123
33199
  var init_contract_schemas = __esm({
33124
33200
  "../blocks/src/system/runtime/nodes/shared/contract-schemas.ts"() {
33125
33201
  "use strict";
33126
33202
  init_events();
33127
- previewStageSchema = z48.enum(["preview", "published"]);
33128
- registrationButtonVariantSchema = z48.enum(["primary", "secondary", "outline"]);
33129
- eventButtonVariantSchema = z48.enum(["primary", "secondary", "outline", "link"]);
33130
- eventLayoutSchema = z48.enum(eventCalendarListLayoutValues);
33131
- eventCalendarDisplayModeSchema = z48.enum(eventCalendarDisplayModeValues);
33132
- columnOptionSchema = z48.enum(["2", "3", "4"]);
33133
- weekStartSchema = z48.enum(["sunday", "monday"]);
33134
- filterAutoShowSchema = z48.enum(["auto", "always", "never"]);
33135
- calendarTabViewsSchema = z48.enum(["both", "month", "week"]);
33203
+ previewStageSchema = z49.enum(["preview", "published"]);
33204
+ registrationButtonVariantSchema = z49.enum(["primary", "secondary", "outline"]);
33205
+ eventButtonVariantSchema = z49.enum(["primary", "secondary", "outline", "link"]);
33206
+ eventLayoutSchema = z49.enum(eventCalendarListLayoutValues);
33207
+ eventCalendarDisplayModeSchema = z49.enum(eventCalendarDisplayModeValues);
33208
+ eventCalendarDefaultViewSchema = z49.enum(eventCalendarDefaultViewValues);
33209
+ columnOptionSchema = z49.enum(["2", "3", "4"]);
33210
+ weekStartSchema = z49.enum(["sunday", "monday"]);
33211
+ filterAutoShowSchema = z49.enum(["auto", "always", "never"]);
33212
+ calendarTabViewsSchema = z49.enum(["both", "month", "week"]);
33136
33213
  }
33137
33214
  });
33138
33215
 
@@ -33157,7 +33234,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
33157
33234
  function findPreSelectedEvent(input) {
33158
33235
  const occurrenceContext = input.occurrenceContext;
33159
33236
  if (!occurrenceContext) {
33160
- return null;
33237
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
33161
33238
  }
33162
33239
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
33163
33240
  startsAt: occurrenceContext.startsAt,
@@ -33180,7 +33257,7 @@ function resolveEventRequiresPayment(input) {
33180
33257
  if (!input.event) {
33181
33258
  return false;
33182
33259
  }
33183
- return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
33260
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) === "paid";
33184
33261
  }
33185
33262
  var init_registrationDerivations = __esm({
33186
33263
  "../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts"() {
@@ -33210,7 +33287,7 @@ var init_registrationEventAdapter = __esm({
33210
33287
  });
33211
33288
 
33212
33289
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
33213
- import { z as z49 } from "zod";
33290
+ import { z as z50 } from "zod";
33214
33291
  function buildEventRegistrationDisplay(source) {
33215
33292
  const stepLabels = buildEventRegistrationShellStepLabels(source);
33216
33293
  return {
@@ -33288,15 +33365,16 @@ function buildEventRegistrationShellBodyText(stepLabels) {
33288
33365
  return "Preparing dates, tickets, and booking details.";
33289
33366
  }
33290
33367
  function normalizeEventRegistrationEventInput(value) {
33291
- if (!isRecord4(value)) {
33368
+ if (!isRecord5(value)) {
33292
33369
  return value;
33293
33370
  }
33294
33371
  return {
33295
33372
  ...value,
33373
+ destination: resolveRuntimeEventDestination(value),
33296
33374
  pricing: resolveRuntimeEventPricing(value)
33297
33375
  };
33298
33376
  }
33299
- function isRecord4(value) {
33377
+ function isRecord5(value) {
33300
33378
  return typeof value === "object" && value !== null && !Array.isArray(value);
33301
33379
  }
33302
33380
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, EVENT_REGISTRATION_SHELL_STEP_LABELS, contentEntrySchema, eventRegistrationPublicEventSchema, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationIslandMetaCodec, eventRegistrationIslandMetaKeys, eventRegistrationBlockRuntime, eventRegistrationInteractiveIslandPropsCodec;
@@ -33304,9 +33382,11 @@ var init_event_registration_interactive = __esm({
33304
33382
  "../blocks/src/system/runtime/nodes/event-registration.interactive.ts"() {
33305
33383
  "use strict";
33306
33384
  init_schemas2();
33385
+ init_shop_shared();
33307
33386
  init_event_registration_shared();
33308
33387
  init_events();
33309
33388
  init_pricing();
33389
+ init_destination();
33310
33390
  init_islands();
33311
33391
  init_runtime();
33312
33392
  init_contract_schemas();
@@ -33315,68 +33395,72 @@ var init_event_registration_interactive = __esm({
33315
33395
  init_registrationEventAdapter();
33316
33396
  EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
33317
33397
  EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
33318
- contentEntrySchema = z49.object({
33319
- id: z49.string(),
33320
- slug: z49.string(),
33321
- contentTypeSlug: z49.string()
33398
+ contentEntrySchema = z50.object({
33399
+ id: z50.string(),
33400
+ slug: z50.string(),
33401
+ contentTypeSlug: z50.string()
33322
33402
  });
33323
- eventRegistrationPublicEventSchema = z49.preprocess(
33403
+ eventRegistrationPublicEventSchema = z50.preprocess(
33324
33404
  normalizeEventRegistrationEventInput,
33325
33405
  publicEventSchema
33326
33406
  );
33327
- eventRegistrationSourceSchema = z49.object({
33328
- siteId: z49.string().optional(),
33329
- apiBaseUrl: z49.string().optional(),
33330
- portalToken: z49.string().nullable().optional(),
33331
- previewToken: z49.string().nullable().optional(),
33407
+ eventRegistrationSourceSchema = z50.object({
33408
+ siteId: z50.string().optional(),
33409
+ apiBaseUrl: z50.string().optional(),
33410
+ portalToken: z50.string().nullable().optional(),
33411
+ previewToken: z50.string().nullable().optional(),
33332
33412
  occurrenceContext: occurrenceContextSchema.optional(),
33333
33413
  contentEntry: contentEntrySchema.nullable().optional(),
33334
- events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
33335
- className: z49.string().nullable().optional(),
33336
- buttonText: z49.string().nullable().optional(),
33337
- maxTickets: z49.string().nullable().optional(),
33338
- showVenue: z49.boolean().optional(),
33339
- showCapacity: z49.boolean().optional(),
33340
- successMessage: z49.string().optional(),
33341
- waitlistMessage: z49.string().optional(),
33414
+ events: z50.array(eventRegistrationPublicEventSchema).nullable().optional(),
33415
+ className: z50.string().nullable().optional(),
33416
+ buttonText: z50.string().nullable().optional(),
33417
+ maxTickets: z50.string().nullable().optional(),
33418
+ showVenue: z50.boolean().optional(),
33419
+ showCapacity: z50.boolean().optional(),
33420
+ successMessage: z50.string().optional(),
33421
+ waitlistMessage: z50.string().optional(),
33342
33422
  buttonVariant: registrationButtonVariantSchema.optional(),
33343
- overlayEnabled: z49.boolean().optional(),
33344
- spamProtectionEnabled: z49.boolean().optional(),
33423
+ overlayEnabled: z50.boolean().optional(),
33424
+ spamProtectionEnabled: z50.boolean().optional(),
33345
33425
  stage: previewStageSchema.optional(),
33346
- supportEmail: z49.string().optional()
33347
- });
33348
- eventRegistrationDisplaySchema = z49.object({
33349
- kind: z49.literal("event-registration"),
33350
- state: z49.literal("generic-shell"),
33351
- className: z49.string().nullable(),
33352
- titleText: z49.string(),
33353
- bodyText: z49.string(),
33354
- stepLabels: z49.array(z49.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
33355
- summaryButtonText: z49.string()
33356
- });
33357
- eventRegistrationHydrationSchema = z49.object({
33426
+ supportEmail: z50.string().optional(),
33427
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
33428
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
33429
+ });
33430
+ eventRegistrationDisplaySchema = z50.object({
33431
+ kind: z50.literal("event-registration"),
33432
+ state: z50.literal("generic-shell"),
33433
+ className: z50.string().nullable(),
33434
+ titleText: z50.string(),
33435
+ bodyText: z50.string(),
33436
+ stepLabels: z50.array(z50.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
33437
+ summaryButtonText: z50.string()
33438
+ });
33439
+ eventRegistrationHydrationSchema = z50.object({
33358
33440
  occurrenceContext: occurrenceContextSchema.optional(),
33359
33441
  contentEntry: contentEntrySchema.nullable().optional(),
33360
- events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
33361
- maxTickets: z49.string().optional(),
33362
- showVenue: z49.boolean().optional(),
33363
- showCapacity: z49.boolean().optional(),
33364
- successMessage: z49.string().optional(),
33365
- waitlistMessage: z49.string().optional(),
33442
+ events: z50.array(eventRegistrationPublicEventSchema).nullable().optional(),
33443
+ maxTickets: z50.string().optional(),
33444
+ showVenue: z50.boolean().optional(),
33445
+ showCapacity: z50.boolean().optional(),
33446
+ successMessage: z50.string().optional(),
33447
+ waitlistMessage: z50.string().optional(),
33366
33448
  buttonVariant: registrationButtonVariantSchema.optional(),
33367
- overlayEnabled: z49.boolean().optional(),
33368
- spamProtectionEnabled: z49.boolean().optional(),
33369
- supportEmail: z49.string().optional()
33449
+ overlayEnabled: z50.boolean().optional(),
33450
+ spamProtectionEnabled: z50.boolean().optional(),
33451
+ supportEmail: z50.string().optional(),
33452
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
33453
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
33370
33454
  });
33371
- eventRegistrationRenderSchema = z49.object({
33455
+ eventRegistrationRenderSchema = z50.object({
33372
33456
  display: eventRegistrationDisplaySchema,
33373
33457
  hydration: eventRegistrationHydrationSchema
33374
33458
  });
33375
- eventRegistrationIslandMetaCodec = createZodCodec(z49.object({
33376
- siteId: z49.string().optional(),
33377
- apiBaseUrl: z49.string().optional(),
33378
- portalToken: z49.string().nullable().optional(),
33379
- previewToken: z49.string().nullable().optional(),
33459
+ eventRegistrationIslandMetaCodec = createZodCodec(z50.object({
33460
+ siteId: z50.string().optional(),
33461
+ apiBaseUrl: z50.string().optional(),
33462
+ portalToken: z50.string().nullable().optional(),
33463
+ previewToken: z50.string().nullable().optional(),
33380
33464
  stage: previewStageSchema.optional()
33381
33465
  }));
33382
33466
  eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -33406,7 +33490,9 @@ var init_event_registration_interactive = __esm({
33406
33490
  buttonVariant: source.buttonVariant,
33407
33491
  overlayEnabled: source.overlayEnabled,
33408
33492
  spamProtectionEnabled: source.spamProtectionEnabled,
33409
- supportEmail: source.supportEmail
33493
+ supportEmail: source.supportEmail,
33494
+ sitePasses: source.sitePasses ?? null,
33495
+ siteMemberships: source.siteMemberships ?? null
33410
33496
  }
33411
33497
  })
33412
33498
  });
@@ -33427,7 +33513,6 @@ var init_event_registration_interactive = __esm({
33427
33513
  });
33428
33514
 
33429
33515
  // ../blocks/src/system/blocks/event-registration.ts
33430
- import { z as z50 } from "zod";
33431
33516
  var eventRegistrationManifest, eventRegistrationBlockDefinition;
33432
33517
  var init_event_registration = __esm({
33433
33518
  "../blocks/src/system/blocks/event-registration.ts"() {
@@ -33438,6 +33523,7 @@ var init_event_registration = __esm({
33438
33523
  init_fragments();
33439
33524
  init_api_bindings();
33440
33525
  init_shared3();
33526
+ init_shop_shared();
33441
33527
  init_defineBlock();
33442
33528
  init_event_registration_shared();
33443
33529
  init_event_registration_interactive();
@@ -33592,6 +33678,8 @@ var init_event_registration = __esm({
33592
33678
  },
33593
33679
  // Event data from loader
33594
33680
  events: { $bind: { from: "data.events" } },
33681
+ sitePasses: { $bind: { from: "data.sitePasses" } },
33682
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
33595
33683
  // Stage for preview mode (allows registering for draft events)
33596
33684
  stage: {
33597
33685
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -33610,7 +33698,9 @@ var init_event_registration = __esm({
33610
33698
  manifest: eventRegistrationManifest,
33611
33699
  runtime: eventRegistrationBlockRuntime,
33612
33700
  dataSchemas: {
33613
- events: z50.array(publicEventSchema).optional(),
33701
+ events: publicEventsArraySchema.optional(),
33702
+ sitePasses: publicPassProductCollectionSchema.optional(),
33703
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
33614
33704
  occurrenceContext: occurrenceContextSchema.optional()
33615
33705
  },
33616
33706
  dataLoaders: {
@@ -33629,6 +33719,20 @@ var init_event_registration = __esm({
33629
33719
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
33630
33720
  },
33631
33721
  mode: "server"
33722
+ },
33723
+ sitePasses: {
33724
+ endpoint: "listPublicPasses",
33725
+ params: {
33726
+ siteId: { $bind: { from: "$root.siteId" } }
33727
+ },
33728
+ mode: "server"
33729
+ },
33730
+ siteMemberships: {
33731
+ endpoint: "listPublicMemberships",
33732
+ params: {
33733
+ siteId: { $bind: { from: "$root.siteId" } }
33734
+ },
33735
+ mode: "server"
33632
33736
  }
33633
33737
  }
33634
33738
  };
@@ -34010,40 +34114,8 @@ var init_course_registration = __esm({
34010
34114
  }
34011
34115
  });
34012
34116
 
34013
- // ../blocks/src/system/blocks/shop.shared.ts
34014
- import { z as z52 } from "zod";
34015
- var publicPassProductSchema, publicMembershipProductSchema;
34016
- var init_shop_shared = __esm({
34017
- "../blocks/src/system/blocks/shop.shared.ts"() {
34018
- "use strict";
34019
- publicPassProductSchema = z52.object({
34020
- id: z52.string(),
34021
- productUseCase: z52.enum(["event_pass", "appointment_package"]).default("event_pass"),
34022
- name: z52.string(),
34023
- description: z52.string().nullable(),
34024
- price: z52.number(),
34025
- currency: z52.string(),
34026
- creditsTotal: z52.number(),
34027
- pricePerCredit: z52.number(),
34028
- validDays: z52.number().nullable(),
34029
- eligibleCategoryIds: z52.array(z52.string()),
34030
- eligibleCategoryNames: z52.array(z52.string())
34031
- });
34032
- publicMembershipProductSchema = z52.object({
34033
- id: z52.string(),
34034
- name: z52.string(),
34035
- description: z52.string().nullable(),
34036
- price: z52.number(),
34037
- currency: z52.string(),
34038
- billingInterval: z52.enum(["month", "year"]),
34039
- eligibleCategoryIds: z52.array(z52.string()),
34040
- eligibleCategoryNames: z52.array(z52.string())
34041
- });
34042
- }
34043
- });
34044
-
34045
34117
  // ../blocks/src/system/blocks/event-details.ts
34046
- import { z as z53 } from "zod";
34118
+ import { z as z52 } from "zod";
34047
34119
  var eventDetailsManifest, occurrenceContextSchema2, eventAutoApplyDiscountPreviewBaseSchema, eventAutoApplyDiscountPreviewSchema, eventDetailsBlockDefinition;
34048
34120
  var init_event_details = __esm({
34049
34121
  "../blocks/src/system/blocks/event-details.ts"() {
@@ -34186,40 +34258,40 @@ var init_event_details = __esm({
34186
34258
  })
34187
34259
  ]
34188
34260
  });
34189
- occurrenceContextSchema2 = z53.object({
34190
- id: z53.string(),
34191
- seriesId: z53.string(),
34192
- startsAt: z53.string(),
34193
- endsAt: z53.string(),
34194
- timeZone: z53.string(),
34195
- capacityOverride: z53.number().nullable().optional(),
34196
- overrides: z53.record(z53.string(), z53.unknown()).nullable().optional()
34261
+ occurrenceContextSchema2 = z52.object({
34262
+ id: z52.string(),
34263
+ seriesId: z52.string(),
34264
+ startsAt: z52.string(),
34265
+ endsAt: z52.string(),
34266
+ timeZone: z52.string(),
34267
+ capacityOverride: z52.number().nullable().optional(),
34268
+ overrides: z52.record(z52.string(), z52.unknown()).nullable().optional()
34197
34269
  }).nullable();
34198
- eventAutoApplyDiscountPreviewBaseSchema = z53.object({
34199
- id: z53.string(),
34200
- publicLabel: z53.string(),
34201
- description: z53.string().nullable(),
34202
- minTicketsRequired: z53.number().nullable()
34270
+ eventAutoApplyDiscountPreviewBaseSchema = z52.object({
34271
+ id: z52.string(),
34272
+ publicLabel: z52.string(),
34273
+ description: z52.string().nullable(),
34274
+ minTicketsRequired: z52.number().nullable()
34203
34275
  });
34204
- eventAutoApplyDiscountPreviewSchema = z53.discriminatedUnion("discountType", [
34276
+ eventAutoApplyDiscountPreviewSchema = z52.discriminatedUnion("discountType", [
34205
34277
  eventAutoApplyDiscountPreviewBaseSchema.extend({
34206
- discountType: z53.literal("percent"),
34207
- discountPercent: z53.number(),
34208
- discountAmountCents: z53.null()
34278
+ discountType: z52.literal("percent"),
34279
+ discountPercent: z52.number(),
34280
+ discountAmountCents: z52.null()
34209
34281
  }),
34210
34282
  eventAutoApplyDiscountPreviewBaseSchema.extend({
34211
- discountType: z53.literal("fixed"),
34212
- discountPercent: z53.null(),
34213
- discountAmountCents: z53.number()
34283
+ discountType: z52.literal("fixed"),
34284
+ discountPercent: z52.null(),
34285
+ discountAmountCents: z52.number()
34214
34286
  })
34215
34287
  ]);
34216
34288
  eventDetailsBlockDefinition = {
34217
34289
  manifest: eventDetailsManifest,
34218
34290
  dataSchemas: {
34219
- eventDetailsData: z53.object({
34291
+ eventDetailsData: z52.object({
34220
34292
  events: publicEventsArraySchema,
34221
- sitePasses: z53.object({ passes: z53.array(publicPassProductSchema) }),
34222
- siteMemberships: z53.object({ memberships: z53.array(publicMembershipProductSchema) }),
34293
+ sitePasses: publicPassProductCollectionSchema,
34294
+ siteMemberships: publicMembershipProductCollectionSchema,
34223
34295
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
34224
34296
  }).optional(),
34225
34297
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -34703,7 +34775,7 @@ var init_shared5 = __esm({
34703
34775
  });
34704
34776
 
34705
34777
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
34706
- import { z as z54 } from "zod";
34778
+ import { z as z53 } from "zod";
34707
34779
  function resolveEventPageSize(value, fallback = 12) {
34708
34780
  const candidate = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value.trim()) : null;
34709
34781
  return candidate != null && Number.isInteger(candidate) && eventPageSizeSet.has(candidate) ? candidate : fallback;
@@ -34724,32 +34796,32 @@ var init_listOptions = __esm({
34724
34796
  "../blocks/src/system/runtime/nodes/events/shared/listOptions.ts"() {
34725
34797
  "use strict";
34726
34798
  eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
34727
- eventPageSizeSchema = z54.union([
34728
- z54.literal(3),
34729
- z54.literal(6),
34730
- z54.literal(10),
34731
- z54.literal(12),
34732
- z54.literal(20),
34733
- z54.literal(24),
34734
- z54.literal(30)
34799
+ eventPageSizeSchema = z53.union([
34800
+ z53.literal(3),
34801
+ z53.literal(6),
34802
+ z53.literal(10),
34803
+ z53.literal(12),
34804
+ z53.literal(20),
34805
+ z53.literal(24),
34806
+ z53.literal(30)
34735
34807
  ]);
34736
34808
  eventPageSizeSet = new Set(eventPageSizeValues);
34737
- eventListPaginationActionSchema = z54.discriminatedUnion("kind", [
34738
- z54.object({
34739
- kind: z54.literal("loadMore"),
34740
- label: z54.string()
34809
+ eventListPaginationActionSchema = z53.discriminatedUnion("kind", [
34810
+ z53.object({
34811
+ kind: z53.literal("loadMore"),
34812
+ label: z53.string()
34741
34813
  }),
34742
- z54.object({
34743
- kind: z54.literal("seeAllLink"),
34744
- label: z54.string(),
34745
- href: z54.string()
34814
+ z53.object({
34815
+ kind: z53.literal("seeAllLink"),
34816
+ label: z53.string(),
34817
+ href: z53.string()
34746
34818
  })
34747
34819
  ]);
34748
34820
  }
34749
34821
  });
34750
34822
 
34751
34823
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
34752
- import { z as z55 } from "zod";
34824
+ import { z as z54 } from "zod";
34753
34825
  var legacyEventCardVariantSchema, eventCardVariantInputSchema, cardOrientationSchema, eventBlockKindSchema, eventSurfaceScopeSchema, eventScheduleScopeSchema2, eventListingSourceSchema, eventListingDisplaySchema, eventListingHydrationSchema, eventListingRenderSchema, eventListingIslandMetaCodec, eventListingBlockRuntime, eventListingIslandMetaKeys, eventListingInteractiveIslandPropsCodec;
34754
34826
  var init_EventListing_interactive = __esm({
34755
34827
  "../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts"() {
@@ -34762,89 +34834,89 @@ var init_EventListing_interactive = __esm({
34762
34834
  init_shared5();
34763
34835
  init_contract_schemas();
34764
34836
  init_listOptions();
34765
- legacyEventCardVariantSchema = z55.enum(["variant1", "variant2"]);
34766
- eventCardVariantInputSchema = z55.union([
34837
+ legacyEventCardVariantSchema = z54.enum(["variant1", "variant2"]);
34838
+ eventCardVariantInputSchema = z54.union([
34767
34839
  cardVariantRoleSchema,
34768
34840
  legacyEventCardVariantSchema
34769
34841
  ]);
34770
- cardOrientationSchema = z55.enum(["vertical", "horizontal"]);
34771
- eventBlockKindSchema = z55.enum(eventBlockKindValues);
34772
- eventSurfaceScopeSchema = z55.enum(eventSurfaceScopeValues);
34773
- eventScheduleScopeSchema2 = z55.enum(eventScheduleScopeValues);
34774
- eventListingSourceSchema = z55.object({
34775
- events: z55.array(publicEventSchema).nullable().optional(),
34776
- siteId: z55.string(),
34777
- apiBaseUrl: z55.string().optional(),
34842
+ cardOrientationSchema = z54.enum(["vertical", "horizontal"]);
34843
+ eventBlockKindSchema = z54.enum(eventBlockKindValues);
34844
+ eventSurfaceScopeSchema = z54.enum(eventSurfaceScopeValues);
34845
+ eventScheduleScopeSchema2 = z54.enum(eventScheduleScopeValues);
34846
+ eventListingSourceSchema = z54.object({
34847
+ events: z54.array(publicEventSchema).nullable().optional(),
34848
+ siteId: z54.string(),
34849
+ apiBaseUrl: z54.string().optional(),
34778
34850
  stage: previewStageSchema.optional(),
34779
34851
  layout: eventLayoutSchema.optional(),
34780
34852
  columns: columnOptionSchema.optional(),
34781
- eventsPerPage: z55.string().optional(),
34782
- paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
34783
- seeAllUrl: z55.string().optional(),
34784
- loadMoreText: z55.string().optional(),
34853
+ eventsPerPage: z54.string().optional(),
34854
+ paginationMode: z54.enum(["loadMore", "seeAllLink"]).optional(),
34855
+ seeAllUrl: z54.string().optional(),
34856
+ loadMoreText: z54.string().optional(),
34785
34857
  cardVariant: eventCardVariantInputSchema.optional(),
34786
34858
  buttonVariant: eventButtonVariantSchema.optional(),
34787
- buttonText: z55.string().optional(),
34788
- showVenue: z55.boolean().optional(),
34789
- showMap: z55.boolean().optional(),
34790
- showCapacity: z55.boolean().optional(),
34791
- emptyMessage: z55.string().optional(),
34792
- className: z55.string().optional(),
34793
- showFilters: z55.boolean().nullable().optional(),
34859
+ buttonText: z54.string().optional(),
34860
+ showVenue: z54.boolean().optional(),
34861
+ showMap: z54.boolean().optional(),
34862
+ showCapacity: z54.boolean().optional(),
34863
+ emptyMessage: z54.string().optional(),
34864
+ className: z54.string().optional(),
34865
+ showFilters: z54.boolean().nullable().optional(),
34794
34866
  showCategoryFilter: filterAutoShowSchema.optional(),
34795
- showVenueFilter: z55.boolean().nullable().optional(),
34796
- showStaffFilter: z55.boolean().nullable().optional(),
34867
+ showVenueFilter: z54.boolean().nullable().optional(),
34868
+ showStaffFilter: z54.boolean().nullable().optional(),
34797
34869
  eventKind: eventBlockKindSchema.nullable().optional(),
34798
34870
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
34799
- filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
34871
+ filterEventPresets: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
34800
34872
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
34801
- filterCategoryIds: z55.string().nullable().optional(),
34802
- filterStaffMemberId: z55.string().nullable().optional(),
34803
- filterVenueId: z55.string().nullable().optional()
34873
+ filterCategoryIds: z54.string().nullable().optional(),
34874
+ filterStaffMemberId: z54.string().nullable().optional(),
34875
+ filterVenueId: z54.string().nullable().optional()
34804
34876
  });
34805
- eventListingDisplaySchema = z55.object({
34806
- kind: z55.literal("event-listing"),
34807
- state: z55.enum(["loading", "empty", "ready"]),
34877
+ eventListingDisplaySchema = z54.object({
34878
+ kind: z54.literal("event-listing"),
34879
+ state: z54.enum(["loading", "empty", "ready"]),
34808
34880
  listLayout: eventLayoutSchema,
34809
- className: z55.string().nullable(),
34810
- emptyMessage: z55.string(),
34811
- loadingMessage: z55.string(),
34812
- containerClass: z55.string(),
34881
+ className: z54.string().nullable(),
34882
+ emptyMessage: z54.string(),
34883
+ loadingMessage: z54.string(),
34884
+ containerClass: z54.string(),
34813
34885
  cardVariant: cardVariantRoleSchema,
34814
34886
  buttonVariant: eventButtonVariantSchema,
34815
- buttonText: z55.string(),
34816
- showVenue: z55.boolean(),
34817
- showMap: z55.boolean(),
34818
- showCapacity: z55.boolean(),
34887
+ buttonText: z54.string(),
34888
+ showVenue: z54.boolean(),
34889
+ showMap: z54.boolean(),
34890
+ showCapacity: z54.boolean(),
34819
34891
  orientation: cardOrientationSchema,
34820
- events: z55.array(publicEventSchema)
34892
+ events: z54.array(publicEventSchema)
34821
34893
  });
34822
- eventListingHydrationSchema = z55.object({
34823
- siteId: z55.string(),
34894
+ eventListingHydrationSchema = z54.object({
34895
+ siteId: z54.string(),
34824
34896
  stage: previewStageSchema.optional(),
34825
34897
  eventsPerPage: eventPageSizeSchema,
34826
34898
  paginationAction: eventListPaginationActionSchema,
34827
- showFilters: z55.boolean(),
34899
+ showFilters: z54.boolean(),
34828
34900
  showCategoryFilter: filterAutoShowSchema,
34829
- showVenueFilter: z55.boolean(),
34830
- showStaffFilter: z55.boolean(),
34901
+ showVenueFilter: z54.boolean(),
34902
+ showStaffFilter: z54.boolean(),
34831
34903
  eventKind: eventBlockKindSchema,
34832
34904
  eventSurface: eventSurfaceScopeSchema,
34833
- filterEventPresets: z55.string().nullable(),
34905
+ filterEventPresets: z54.string().nullable(),
34834
34906
  scheduleScope: eventScheduleScopeSchema2,
34835
- filterCategoryIds: z55.string().nullable().optional(),
34836
- filterStaffMemberId: z55.string().nullable().optional(),
34837
- filterVenueId: z55.string().nullable().optional(),
34838
- fetchInitialEventsOnMount: z55.boolean()
34907
+ filterCategoryIds: z54.string().nullable().optional(),
34908
+ filterStaffMemberId: z54.string().nullable().optional(),
34909
+ filterVenueId: z54.string().nullable().optional(),
34910
+ fetchInitialEventsOnMount: z54.boolean()
34839
34911
  });
34840
- eventListingRenderSchema = z55.object({
34912
+ eventListingRenderSchema = z54.object({
34841
34913
  display: eventListingDisplaySchema,
34842
34914
  hydration: eventListingHydrationSchema
34843
34915
  });
34844
34916
  eventListingIslandMetaCodec = createZodCodec(
34845
- z55.object({
34846
- siteId: z55.string(),
34847
- apiBaseUrl: z55.string().optional(),
34917
+ z54.object({
34918
+ siteId: z54.string(),
34919
+ apiBaseUrl: z54.string().optional(),
34848
34920
  stage: previewStageSchema.optional()
34849
34921
  })
34850
34922
  );
@@ -35228,7 +35300,7 @@ var init_event_listing = __esm({
35228
35300
  });
35229
35301
 
35230
35302
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
35231
- import { z as z56 } from "zod";
35303
+ import { z as z55 } from "zod";
35232
35304
  function buildEventCalendarDisplay(source) {
35233
35305
  const listLayout = source.listLayout ?? source.layout ?? "stack";
35234
35306
  return {
@@ -35250,6 +35322,7 @@ function buildEventCalendarDisplay(source) {
35250
35322
  }),
35251
35323
  startOfWeek: source.startOfWeek ?? "monday",
35252
35324
  calendarTabViews: source.calendarTabViews ?? "both",
35325
+ defaultCalendarView: source.defaultCalendarView ?? "month",
35253
35326
  showFilters: source.showFilters ?? true,
35254
35327
  showCategoryFilter: source.showCategoryFilter ?? "auto",
35255
35328
  showVenueFilter: source.showVenueFilter ?? false,
@@ -35281,14 +35354,14 @@ var init_EventCalendar_interactive = __esm({
35281
35354
  init_runtime();
35282
35355
  init_contract_schemas();
35283
35356
  init_listOptions();
35284
- eventBlockKindSchema2 = z56.enum(eventBlockKindValues);
35285
- eventSurfaceScopeSchema2 = z56.enum(eventSurfaceScopeValues);
35286
- eventScheduleScopeSchema3 = z56.enum(eventScheduleScopeValues);
35287
- eventCalendarSourceSchema = z56.object(
35357
+ eventBlockKindSchema2 = z55.enum(eventBlockKindValues);
35358
+ eventSurfaceScopeSchema2 = z55.enum(eventSurfaceScopeValues);
35359
+ eventScheduleScopeSchema3 = z55.enum(eventScheduleScopeValues);
35360
+ eventCalendarSourceSchema = z55.object(
35288
35361
  {
35289
- events: z56.array(publicEventSchema).nullable().optional(),
35290
- siteId: z56.string(),
35291
- apiBaseUrl: z56.string().optional(),
35362
+ events: z55.array(publicEventSchema).nullable().optional(),
35363
+ siteId: z55.string(),
35364
+ apiBaseUrl: z55.string().optional(),
35292
35365
  stage: previewStageSchema.optional(),
35293
35366
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
35294
35367
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -35296,78 +35369,80 @@ var init_EventCalendar_interactive = __esm({
35296
35369
  listColumns: columnOptionSchema.optional(),
35297
35370
  layout: eventLayoutSchema.optional(),
35298
35371
  columns: columnOptionSchema.optional(),
35299
- eventsPerPage: z56.string().optional(),
35300
- paginationMode: z56.enum(["loadMore", "seeAllLink"]).optional(),
35301
- seeAllUrl: z56.string().optional(),
35302
- loadMoreText: z56.string().optional(),
35372
+ eventsPerPage: z55.string().optional(),
35373
+ paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
35374
+ seeAllUrl: z55.string().optional(),
35375
+ loadMoreText: z55.string().optional(),
35303
35376
  startOfWeek: weekStartSchema.optional(),
35304
35377
  calendarTabViews: calendarTabViewsSchema.optional(),
35305
- showFilters: z56.boolean().nullable().optional(),
35378
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
35379
+ showFilters: z55.boolean().nullable().optional(),
35306
35380
  showCategoryFilter: filterAutoShowSchema.optional(),
35307
- showVenueFilter: z56.boolean().nullable().optional(),
35308
- showStaffFilter: z56.boolean().nullable().optional(),
35381
+ showVenueFilter: z55.boolean().nullable().optional(),
35382
+ showStaffFilter: z55.boolean().nullable().optional(),
35309
35383
  kind: eventBlockKindSchema2.nullable().optional(),
35310
35384
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
35311
- filterEventPresets: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
35385
+ filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
35312
35386
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
35313
- filterCategoryIds: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
35314
- filterStaffMemberId: z56.string().nullable().optional(),
35315
- filterVenueId: z56.string().nullable().optional(),
35387
+ filterCategoryIds: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
35388
+ filterStaffMemberId: z55.string().nullable().optional(),
35389
+ filterVenueId: z55.string().nullable().optional(),
35316
35390
  buttonVariant: eventButtonVariantSchema.optional(),
35317
- buttonText: z56.string().optional(),
35318
- showVenue: z56.boolean().nullable().optional(),
35319
- showMap: z56.boolean().nullable().optional(),
35320
- showCapacity: z56.boolean().nullable().optional(),
35321
- emptyMessage: z56.string().optional(),
35322
- className: z56.string().optional()
35391
+ buttonText: z55.string().optional(),
35392
+ showVenue: z55.boolean().nullable().optional(),
35393
+ showMap: z55.boolean().nullable().optional(),
35394
+ showCapacity: z55.boolean().nullable().optional(),
35395
+ emptyMessage: z55.string().optional(),
35396
+ className: z55.string().optional()
35323
35397
  }
35324
35398
  );
35325
- eventCalendarDisplaySchema = z56.object({
35326
- kind: z56.literal("event-calendar"),
35399
+ eventCalendarDisplaySchema = z55.object({
35400
+ kind: z55.literal("event-calendar"),
35327
35401
  displayMode: eventCalendarDisplayModeSchema,
35328
- className: z56.string().nullable(),
35329
- events: z56.array(publicEventSchema),
35402
+ className: z55.string().nullable(),
35403
+ events: z55.array(publicEventSchema),
35330
35404
  listLayout: eventLayoutSchema,
35331
35405
  listColumns: columnOptionSchema,
35332
35406
  eventsPerPage: eventPageSizeSchema,
35333
35407
  paginationAction: eventListPaginationActionSchema,
35334
35408
  startOfWeek: weekStartSchema,
35335
35409
  calendarTabViews: calendarTabViewsSchema,
35336
- showFilters: z56.boolean(),
35410
+ defaultCalendarView: eventCalendarDefaultViewSchema,
35411
+ showFilters: z55.boolean(),
35337
35412
  showCategoryFilter: filterAutoShowSchema,
35338
- showVenueFilter: z56.boolean(),
35339
- showStaffFilter: z56.boolean(),
35413
+ showVenueFilter: z55.boolean(),
35414
+ showStaffFilter: z55.boolean(),
35340
35415
  eventKind: eventBlockKindSchema2,
35341
35416
  eventSurface: eventSurfaceScopeSchema2,
35342
- filterEventPresets: z56.string().nullable(),
35417
+ filterEventPresets: z55.string().nullable(),
35343
35418
  scheduleScope: eventScheduleScopeSchema3,
35344
- filterCategoryIds: z56.string().nullable(),
35345
- filterStaffMemberId: z56.string().nullable(),
35346
- filterVenueId: z56.string().nullable(),
35419
+ filterCategoryIds: z55.string().nullable(),
35420
+ filterStaffMemberId: z55.string().nullable(),
35421
+ filterVenueId: z55.string().nullable(),
35347
35422
  buttonVariant: eventButtonVariantSchema,
35348
- buttonText: z56.string(),
35349
- showVenue: z56.boolean(),
35350
- showMap: z56.boolean(),
35351
- showCapacity: z56.boolean(),
35352
- emptyMessage: z56.string()
35353
- });
35354
- eventCalendarHydrationSchema = z56.object({
35355
- siteId: z56.string(),
35423
+ buttonText: z55.string(),
35424
+ showVenue: z55.boolean(),
35425
+ showMap: z55.boolean(),
35426
+ showCapacity: z55.boolean(),
35427
+ emptyMessage: z55.string()
35428
+ });
35429
+ eventCalendarHydrationSchema = z55.object({
35430
+ siteId: z55.string(),
35356
35431
  stage: previewStageSchema.optional(),
35357
- prefetchedEvents: z56.boolean(),
35432
+ prefetchedEvents: z55.boolean(),
35358
35433
  eventKind: eventBlockKindSchema2,
35359
35434
  eventSurface: eventSurfaceScopeSchema2,
35360
- filterEventPresets: z56.string().nullable(),
35435
+ filterEventPresets: z55.string().nullable(),
35361
35436
  scheduleScope: eventScheduleScopeSchema3
35362
35437
  });
35363
- eventCalendarRenderSchema = z56.object({
35438
+ eventCalendarRenderSchema = z55.object({
35364
35439
  display: eventCalendarDisplaySchema,
35365
35440
  hydration: eventCalendarHydrationSchema
35366
35441
  });
35367
35442
  eventCalendarIslandMetaCodec = createZodCodec(
35368
- z56.object({
35369
- siteId: z56.string(),
35370
- apiBaseUrl: z56.string().optional(),
35443
+ z55.object({
35444
+ siteId: z55.string(),
35445
+ apiBaseUrl: z55.string().optional(),
35371
35446
  stage: previewStageSchema.optional()
35372
35447
  })
35373
35448
  );
@@ -35419,6 +35494,9 @@ function normalizeEventCalendarContent(content) {
35419
35494
  ...variant ? { variant } : {},
35420
35495
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
35421
35496
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
35497
+ defaultCalendarView: normalizeEventCalendarDefaultView(
35498
+ record.defaultCalendarView
35499
+ ),
35422
35500
  kind,
35423
35501
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
35424
35502
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -35436,6 +35514,9 @@ function normalizeEventCalendarDisplayMode(value) {
35436
35514
  function normalizeEventCalendarListLayout(value) {
35437
35515
  return isEventCalendarListLayout(value) ? value : void 0;
35438
35516
  }
35517
+ function normalizeEventCalendarDefaultView(value) {
35518
+ return isEventCalendarDefaultView(value) ? value : void 0;
35519
+ }
35439
35520
  var eventCalendarLayout, eventCalendarAdditionalFields, eventCalendarVariants, eventCalendarDerivedFields, eventCalendarContentShape, eventCalendarConfig, eventCalendarManifest, eventCalendarBlockDefinition;
35440
35521
  var init_event_calendar = __esm({
35441
35522
  "../blocks/src/system/blocks/events/event-calendar.ts"() {
@@ -35510,6 +35591,9 @@ var init_event_calendar = __esm({
35510
35591
  calendarTabViews: {
35511
35592
  $bind: { from: "content.calendarTabViews", fallback: "both" }
35512
35593
  },
35594
+ defaultCalendarView: {
35595
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
35596
+ },
35513
35597
  // Filtering options
35514
35598
  showFilters: {
35515
35599
  $bind: { from: "content.showFilters", fallback: true }
@@ -35576,8 +35660,7 @@ var init_event_calendar = __esm({
35576
35660
  defaultValue: "combined",
35577
35661
  options: [
35578
35662
  { value: "combined", label: "Combined (List + Calendar tabs)" },
35579
- { value: "month", label: "Month calendar" },
35580
- { value: "week", label: "Week agenda" },
35663
+ { value: "calendar", label: "Calendar" },
35581
35664
  { value: "timetable", label: "Timetable" },
35582
35665
  { value: "list", label: "List" }
35583
35666
  ],
@@ -35616,7 +35699,12 @@ var init_event_calendar = __esm({
35616
35699
  ],
35617
35700
  ui: {
35618
35701
  intent: "display",
35619
- visibleWhen: { field: "listLayout", equals: "grid" }
35702
+ visibleWhen: {
35703
+ allOf: [
35704
+ { field: "variant", oneOf: ["combined", "list"] },
35705
+ { field: "listLayout", equals: "grid" }
35706
+ ]
35707
+ }
35620
35708
  }
35621
35709
  },
35622
35710
  {
@@ -35664,7 +35752,12 @@ var init_event_calendar = __esm({
35664
35752
  required: false,
35665
35753
  ui: {
35666
35754
  intent: "display",
35667
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
35755
+ visibleWhen: {
35756
+ allOf: [
35757
+ { field: "variant", oneOf: ["combined", "list"] },
35758
+ { field: "paginationMode", equals: "seeAllLink" }
35759
+ ]
35760
+ }
35668
35761
  }
35669
35762
  },
35670
35763
  {
@@ -35697,7 +35790,7 @@ var init_event_calendar = __esm({
35697
35790
  intent: "display",
35698
35791
  visibleWhen: {
35699
35792
  field: "variant",
35700
- oneOf: ["combined", "month", "week"]
35793
+ oneOf: ["combined", "calendar", "timetable"]
35701
35794
  }
35702
35795
  }
35703
35796
  },
@@ -35720,6 +35813,33 @@ var init_event_calendar = __esm({
35720
35813
  visibleWhen: { field: "variant", equals: "combined" }
35721
35814
  }
35722
35815
  },
35816
+ {
35817
+ id: "defaultCalendarView",
35818
+ type: "select",
35819
+ label: "Calendar view",
35820
+ description: "Choose the standalone calendar view, or the first view in combined mode",
35821
+ required: false,
35822
+ multiple: false,
35823
+ defaultValue: "month",
35824
+ options: [
35825
+ { value: "month", label: "Month" },
35826
+ { value: "week", label: "Week" }
35827
+ ],
35828
+ ui: {
35829
+ intent: "display",
35830
+ visibleWhen: {
35831
+ anyOf: [
35832
+ { field: "variant", equals: "calendar" },
35833
+ {
35834
+ allOf: [
35835
+ { field: "variant", equals: "combined" },
35836
+ { field: "calendarTabViews", equals: "both" }
35837
+ ]
35838
+ }
35839
+ ]
35840
+ }
35841
+ }
35842
+ },
35723
35843
  // Filtering options
35724
35844
  {
35725
35845
  id: "kind",
@@ -35747,7 +35867,7 @@ var init_event_calendar = __esm({
35747
35867
  intent: "display",
35748
35868
  visibleWhen: {
35749
35869
  field: "variant",
35750
- oneOf: ["combined", "list", "timetable"]
35870
+ oneOf: ["combined", "calendar", "list", "timetable"]
35751
35871
  }
35752
35872
  }
35753
35873
  },
@@ -35767,8 +35887,10 @@ var init_event_calendar = __esm({
35767
35887
  ui: {
35768
35888
  intent: "display",
35769
35889
  visibleWhen: {
35770
- field: "variant",
35771
- oneOf: ["combined", "list", "timetable"]
35890
+ allOf: [
35891
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
35892
+ { field: "showFilters", equals: true }
35893
+ ]
35772
35894
  }
35773
35895
  }
35774
35896
  },
@@ -35782,8 +35904,10 @@ var init_event_calendar = __esm({
35782
35904
  ui: {
35783
35905
  intent: "display",
35784
35906
  visibleWhen: {
35785
- field: "variant",
35786
- oneOf: ["combined", "list", "timetable"]
35907
+ allOf: [
35908
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
35909
+ { field: "showFilters", equals: true }
35910
+ ]
35787
35911
  }
35788
35912
  }
35789
35913
  },
@@ -35797,8 +35921,10 @@ var init_event_calendar = __esm({
35797
35921
  ui: {
35798
35922
  intent: "display",
35799
35923
  visibleWhen: {
35800
- field: "variant",
35801
- oneOf: ["combined", "list", "timetable"]
35924
+ allOf: [
35925
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
35926
+ { field: "showFilters", equals: true }
35927
+ ]
35802
35928
  }
35803
35929
  }
35804
35930
  },
@@ -35812,8 +35938,15 @@ var init_event_calendar = __esm({
35812
35938
  ui: {
35813
35939
  intent: "display",
35814
35940
  visibleWhen: {
35815
- field: "variant",
35816
- oneOf: ["combined", "list", "week", "timetable"]
35941
+ anyOf: [
35942
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
35943
+ {
35944
+ allOf: [
35945
+ { field: "variant", equals: "calendar" },
35946
+ { field: "defaultCalendarView", equals: "week" }
35947
+ ]
35948
+ }
35949
+ ]
35817
35950
  }
35818
35951
  }
35819
35952
  },
@@ -35929,8 +36062,7 @@ var init_event_calendar = __esm({
35929
36062
  ];
35930
36063
  eventCalendarVariants = {
35931
36064
  combined: eventCalendarLayout[0],
35932
- month: eventCalendarLayout[0],
35933
- week: eventCalendarLayout[0],
36065
+ calendar: eventCalendarLayout[0],
35934
36066
  timetable: eventCalendarLayout[0],
35935
36067
  list: eventCalendarLayout[0]
35936
36068
  };
@@ -35942,8 +36074,7 @@ var init_event_calendar = __esm({
35942
36074
  multiple: false,
35943
36075
  options: [
35944
36076
  { value: "combined" },
35945
- { value: "month" },
35946
- { value: "week" },
36077
+ { value: "calendar" },
35947
36078
  { value: "timetable" },
35948
36079
  { value: "list" }
35949
36080
  ]
@@ -35956,6 +36087,13 @@ var init_event_calendar = __esm({
35956
36087
  options: eventCalendarListLayoutOptions.map((option) => ({
35957
36088
  value: option.id
35958
36089
  }))
36090
+ },
36091
+ {
36092
+ id: "defaultCalendarView",
36093
+ type: "select",
36094
+ required: false,
36095
+ multiple: false,
36096
+ options: [{ value: "month" }, { value: "week" }]
35959
36097
  }
35960
36098
  ];
35961
36099
  eventCalendarContentShape = {
@@ -36004,8 +36142,7 @@ var init_event_calendar = __esm({
36004
36142
  defaultVariant: "combined",
36005
36143
  variantOptions: {
36006
36144
  combined: { label: "Combined" },
36007
- month: { label: "Month" },
36008
- week: { label: "Week" },
36145
+ calendar: { label: "Calendar" },
36009
36146
  timetable: { label: "Timetable" },
36010
36147
  list: { label: "List" }
36011
36148
  }
@@ -36080,7 +36217,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
36080
36217
  return keys.length >= 2 ? keys : [];
36081
36218
  }
36082
36219
  function normalizeOfferingsPreviewContentForWrite(value) {
36083
- if (!isRecord5(value)) return null;
36220
+ if (!isRecord6(value)) return null;
36084
36221
  const groupOrderValue = value.groupOrder;
36085
36222
  if (Array.isArray(groupOrderValue)) {
36086
36223
  const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
@@ -36093,7 +36230,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
36093
36230
  return { ...value, groupOrder: [] };
36094
36231
  }
36095
36232
  const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(
36096
- Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord5) : []
36233
+ Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord6) : []
36097
36234
  );
36098
36235
  return legacyOrder.length > 0 ? { ...value, groupOrder: legacyOrder } : value;
36099
36236
  }
@@ -36107,7 +36244,7 @@ function uniqueOfferingsPreviewSourceKeys(values) {
36107
36244
  }
36108
36245
  return keys;
36109
36246
  }
36110
- function isRecord5(value) {
36247
+ function isRecord6(value) {
36111
36248
  return typeof value === "object" && value !== null && !Array.isArray(value);
36112
36249
  }
36113
36250
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT, OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT, OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE, OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, OFFERINGS_PREVIEW_EVENT_PRESETS, OFFERINGS_PREVIEW_AUTHORABLE_SOURCE_KEYS, OFFERINGS_PREVIEW_SOURCE_KEYS, eventPresetSourceByKey;
@@ -36159,7 +36296,7 @@ var init_model = __esm({
36159
36296
  });
36160
36297
 
36161
36298
  // ../blocks/src/system/blocks/offerings-preview/index.ts
36162
- import { z as z57 } from "zod";
36299
+ import { z as z56 } from "zod";
36163
36300
  function eventPresetLoader(preset2) {
36164
36301
  return {
36165
36302
  endpoint: "listPublicEvents",
@@ -36230,7 +36367,7 @@ function isOfferingsPreviewItemLimit(value) {
36230
36367
  return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
36231
36368
  }
36232
36369
  function normalizeOfferingsPreviewGroupOverride(value) {
36233
- if (!isRecord6(value)) return [];
36370
+ if (!isRecord7(value)) return [];
36234
36371
  const override = {};
36235
36372
  if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) {
36236
36373
  override.sourceKey = value.sourceKey;
@@ -36262,12 +36399,12 @@ function isButtonVariant(value) {
36262
36399
  return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
36263
36400
  }
36264
36401
  function normalizeCardStylesContent(value) {
36265
- return isRecord6(value) || value === null ? value : void 0;
36402
+ return isRecord7(value) || value === null ? value : void 0;
36266
36403
  }
36267
36404
  function normalizeSectionStylesContent(value) {
36268
- return isRecord6(value) || value === null ? value : void 0;
36405
+ return isRecord7(value) || value === null ? value : void 0;
36269
36406
  }
36270
- function isRecord6(value) {
36407
+ function isRecord7(value) {
36271
36408
  return typeof value === "object" && value !== null && !Array.isArray(value);
36272
36409
  }
36273
36410
  var publicRouteCandidatesSchema, groupOverrideFields, offeringsPreviewFields, offeringsPreviewEventDataBindings, offeringsPreviewLayout, offeringsPreviewConfig, offeringsPreviewManifest, optionalPublicEventsArraySchema, offeringsPreviewEventDataSchemas, offeringsPreviewEventDataLoaders, offeringsPreviewBlockDefinition;
@@ -36282,13 +36419,13 @@ var init_offerings_preview = __esm({
36282
36419
  init_shared3();
36283
36420
  init_shared4();
36284
36421
  init_model();
36285
- publicRouteCandidatesSchema = z57.object({
36286
- routes: z57.array(z57.object({
36287
- entityId: z57.string(),
36288
- path: z57.string(),
36289
- title: z57.string(),
36290
- kind: z57.enum(["page", "content"]),
36291
- contentTypeKey: z57.string().nullable().optional()
36422
+ publicRouteCandidatesSchema = z56.object({
36423
+ routes: z56.array(z56.object({
36424
+ entityId: z56.string(),
36425
+ path: z56.string(),
36426
+ title: z56.string(),
36427
+ kind: z56.enum(["page", "content"]),
36428
+ contentTypeKey: z56.string().nullable().optional()
36292
36429
  }))
36293
36430
  });
36294
36431
  groupOverrideFields = [
@@ -36578,7 +36715,7 @@ var init_offerings_preview = __esm({
36578
36715
  });
36579
36716
 
36580
36717
  // ../blocks/src/system/blocks/embed.ts
36581
- import { z as z58 } from "zod";
36718
+ import { z as z57 } from "zod";
36582
36719
  var embedFields, embedLayout2, embedManifest, embedEntrySchema, embedBlockDefinition;
36583
36720
  var init_embed = __esm({
36584
36721
  "../blocks/src/system/blocks/embed.ts"() {
@@ -36818,18 +36955,18 @@ var init_embed = __esm({
36818
36955
  spacing: "lg"
36819
36956
  }
36820
36957
  });
36821
- embedEntrySchema = z58.object({
36822
- id: z58.string(),
36823
- identifier: z58.string(),
36824
- title: z58.string(),
36825
- slug: z58.string().nullable().optional(),
36826
- content: z58.record(z58.string(), z58.unknown()).optional(),
36827
- publishedAt: z58.string().nullable().optional()
36958
+ embedEntrySchema = z57.object({
36959
+ id: z57.string(),
36960
+ identifier: z57.string(),
36961
+ title: z57.string(),
36962
+ slug: z57.string().nullable().optional(),
36963
+ content: z57.record(z57.string(), z57.unknown()).optional(),
36964
+ publishedAt: z57.string().nullable().optional()
36828
36965
  });
36829
36966
  embedBlockDefinition = {
36830
36967
  manifest: embedManifest,
36831
36968
  dataSchemas: {
36832
- entries: z58.array(embedEntrySchema).optional()
36969
+ entries: z57.array(embedEntrySchema).optional()
36833
36970
  },
36834
36971
  dataLoaders: {
36835
36972
  entries: {
@@ -38059,50 +38196,50 @@ var init_file_download = __esm({
38059
38196
  });
38060
38197
 
38061
38198
  // ../blocks/src/system/blocks/products/shared.ts
38062
- import { z as z59 } from "zod";
38199
+ import { z as z58 } from "zod";
38063
38200
  var publicProductVariantSchema, publicProductSchema, publicProductsResponseSchema;
38064
38201
  var init_shared6 = __esm({
38065
38202
  "../blocks/src/system/blocks/products/shared.ts"() {
38066
38203
  "use strict";
38067
- publicProductVariantSchema = z59.object({
38068
- id: z59.string(),
38069
- title: z59.string(),
38070
- sku: z59.string().nullable(),
38071
- priceCents: z59.number(),
38072
- stockQuantity: z59.number().nullable(),
38073
- soldOut: z59.boolean()
38074
- });
38075
- publicProductSchema = z59.object({
38076
- id: z59.string(),
38077
- contentEntryId: z59.string().nullable(),
38078
- title: z59.string(),
38079
- slug: z59.string(),
38080
- path: z59.string().nullable(),
38081
- status: z59.enum(["draft", "active"]),
38082
- priceCents: z59.number(),
38083
- currency: z59.string(),
38084
- productType: z59.enum(["physical", "digital"]),
38085
- requiresShipping: z59.boolean(),
38086
- hasVariants: z59.boolean(),
38087
- trackInventory: z59.boolean(),
38088
- soldOut: z59.boolean(),
38089
- category: z59.object({
38090
- id: z59.string(),
38091
- name: z59.string(),
38092
- slug: z59.string()
38204
+ publicProductVariantSchema = z58.object({
38205
+ id: z58.string(),
38206
+ title: z58.string(),
38207
+ sku: z58.string().nullable(),
38208
+ priceCents: z58.number(),
38209
+ stockQuantity: z58.number().nullable(),
38210
+ soldOut: z58.boolean()
38211
+ });
38212
+ publicProductSchema = z58.object({
38213
+ id: z58.string(),
38214
+ contentEntryId: z58.string().nullable(),
38215
+ title: z58.string(),
38216
+ slug: z58.string(),
38217
+ path: z58.string().nullable(),
38218
+ status: z58.enum(["draft", "active"]),
38219
+ priceCents: z58.number(),
38220
+ currency: z58.string(),
38221
+ productType: z58.enum(["physical", "digital"]),
38222
+ requiresShipping: z58.boolean(),
38223
+ hasVariants: z58.boolean(),
38224
+ trackInventory: z58.boolean(),
38225
+ soldOut: z58.boolean(),
38226
+ category: z58.object({
38227
+ id: z58.string(),
38228
+ name: z58.string(),
38229
+ slug: z58.string()
38093
38230
  }).nullable(),
38094
- summary: z59.string().nullable(),
38095
- body: z59.unknown().nullable(),
38096
- gallery: z59.array(
38097
- z59.object({
38098
- url: z59.string(),
38099
- alt: z59.string().nullable()
38231
+ summary: z58.string().nullable(),
38232
+ body: z58.unknown().nullable(),
38233
+ gallery: z58.array(
38234
+ z58.object({
38235
+ url: z58.string(),
38236
+ alt: z58.string().nullable()
38100
38237
  })
38101
38238
  ),
38102
- variants: z59.array(publicProductVariantSchema)
38239
+ variants: z58.array(publicProductVariantSchema)
38103
38240
  });
38104
- publicProductsResponseSchema = z59.object({
38105
- products: z59.array(publicProductSchema)
38241
+ publicProductsResponseSchema = z58.object({
38242
+ products: z58.array(publicProductSchema)
38106
38243
  });
38107
38244
  }
38108
38245
  });
@@ -38173,7 +38310,7 @@ var init_creditProducts = __esm({
38173
38310
  });
38174
38311
 
38175
38312
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
38176
- import { z as z60 } from "zod";
38313
+ import { z as z59 } from "zod";
38177
38314
  function deriveCommerceCheckoutState(state) {
38178
38315
  if (state.items.length === 0) {
38179
38316
  return { kind: "empty" };
@@ -38212,26 +38349,26 @@ var storedProductCartItemSchema, storedPassCartItemSchema;
38212
38349
  var init_shop_commerce_shared = __esm({
38213
38350
  "../blocks/src/system/runtime/nodes/shop-commerce.shared.ts"() {
38214
38351
  "use strict";
38215
- storedProductCartItemSchema = z60.object({
38216
- kind: z60.literal("product"),
38217
- productId: z60.string().min(1),
38218
- productCategoryId: z60.string().min(1).optional().nullable(),
38219
- variantId: z60.string().min(1).optional().nullable(),
38220
- title: z60.string().min(1),
38221
- variantTitle: z60.string().optional().nullable(),
38222
- quantity: z60.number().finite(),
38223
- unitPriceCents: z60.number().finite(),
38224
- currency: z60.string().min(1),
38225
- imageUrl: z60.string().optional().nullable(),
38226
- soldOut: z60.boolean().optional()
38352
+ storedProductCartItemSchema = z59.object({
38353
+ kind: z59.literal("product"),
38354
+ productId: z59.string().min(1),
38355
+ productCategoryId: z59.string().min(1).optional().nullable(),
38356
+ variantId: z59.string().min(1).optional().nullable(),
38357
+ title: z59.string().min(1),
38358
+ variantTitle: z59.string().optional().nullable(),
38359
+ quantity: z59.number().finite(),
38360
+ unitPriceCents: z59.number().finite(),
38361
+ currency: z59.string().min(1),
38362
+ imageUrl: z59.string().optional().nullable(),
38363
+ soldOut: z59.boolean().optional()
38227
38364
  });
38228
- storedPassCartItemSchema = z60.object({
38229
- kind: z60.literal("pass"),
38230
- passId: z60.string().min(1),
38231
- title: z60.string().min(1),
38232
- quantity: z60.number().finite().optional(),
38233
- unitPriceCents: z60.number().finite(),
38234
- currency: z60.string().min(1)
38365
+ storedPassCartItemSchema = z59.object({
38366
+ kind: z59.literal("pass"),
38367
+ passId: z59.string().min(1),
38368
+ title: z59.string().min(1),
38369
+ quantity: z59.number().finite().optional(),
38370
+ unitPriceCents: z59.number().finite(),
38371
+ currency: z59.string().min(1)
38235
38372
  });
38236
38373
  }
38237
38374
  });
@@ -38441,7 +38578,7 @@ var init_display = __esm({
38441
38578
  });
38442
38579
 
38443
38580
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
38444
- import { z as z61 } from "zod";
38581
+ import { z as z60 } from "zod";
38445
38582
  function resolveShowPricePerCredit(source) {
38446
38583
  return source.showPricePerCredit ?? true;
38447
38584
  }
@@ -38469,211 +38606,211 @@ var init_shop_interactive = __esm({
38469
38606
  init_islands();
38470
38607
  init_runtime();
38471
38608
  init_contract_schemas();
38472
- shopModeSchema = z61.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
38473
- contentEntrySchema3 = z61.object({
38474
- id: z61.string().nullable().optional(),
38475
- slug: z61.string().nullable().optional()
38609
+ shopModeSchema = z60.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
38610
+ contentEntrySchema3 = z60.object({
38611
+ id: z60.string().nullable().optional(),
38612
+ slug: z60.string().nullable().optional()
38476
38613
  }).nullable();
38477
- shopSourceSchema = z61.object({
38478
- className: z61.string().nullable().optional(),
38614
+ shopSourceSchema = z60.object({
38615
+ className: z60.string().nullable().optional(),
38479
38616
  mode: shopModeSchema.optional(),
38480
- heading: z61.string().nullable().optional(),
38481
- productSlug: z61.string().nullable().optional(),
38482
- showPasses: z61.boolean().optional(),
38483
- showMemberships: z61.boolean().optional(),
38484
- layout: z61.enum(["grid", "list"]).optional(),
38485
- columns: z61.string().optional(),
38486
- showDescriptions: z61.boolean().optional(),
38487
- showSummary: z61.boolean().optional(),
38488
- showBody: z61.boolean().optional(),
38489
- showPrices: z61.boolean().optional(),
38490
- showValidityPeriod: z61.boolean().optional(),
38491
- showPricePerCredit: z61.boolean().nullable().optional(),
38492
- passesHeading: z61.string().optional(),
38493
- membershipsHeading: z61.string().optional(),
38494
- buyButtonText: z61.string().optional(),
38495
- addButtonText: z61.string().optional(),
38496
- passPurchaseMode: z61.enum(["add_to_cart", "buy_now"]).optional(),
38497
- subscribeButtonText: z61.string().optional(),
38498
- emptyStateText: z61.string().optional(),
38499
- checkoutButtonText: z61.string().optional(),
38500
- clearButtonText: z61.string().optional(),
38501
- submitButtonText: z61.string().optional(),
38617
+ heading: z60.string().nullable().optional(),
38618
+ productSlug: z60.string().nullable().optional(),
38619
+ showPasses: z60.boolean().optional(),
38620
+ showMemberships: z60.boolean().optional(),
38621
+ layout: z60.enum(["grid", "list"]).optional(),
38622
+ columns: z60.string().optional(),
38623
+ showDescriptions: z60.boolean().optional(),
38624
+ showSummary: z60.boolean().optional(),
38625
+ showBody: z60.boolean().optional(),
38626
+ showPrices: z60.boolean().optional(),
38627
+ showValidityPeriod: z60.boolean().optional(),
38628
+ showPricePerCredit: z60.boolean().nullable().optional(),
38629
+ passesHeading: z60.string().optional(),
38630
+ membershipsHeading: z60.string().optional(),
38631
+ buyButtonText: z60.string().optional(),
38632
+ addButtonText: z60.string().optional(),
38633
+ passPurchaseMode: z60.enum(["add_to_cart", "buy_now"]).optional(),
38634
+ subscribeButtonText: z60.string().optional(),
38635
+ emptyStateText: z60.string().optional(),
38636
+ checkoutButtonText: z60.string().optional(),
38637
+ clearButtonText: z60.string().optional(),
38638
+ submitButtonText: z60.string().optional(),
38502
38639
  contentEntry: contentEntrySchema3.optional(),
38503
- passes: z61.array(publicPassProductSchema).nullable().optional(),
38504
- memberships: z61.array(publicMembershipProductSchema).nullable().optional(),
38505
- products: z61.array(publicProductSchema).nullable().optional(),
38506
- siteId: z61.string().optional(),
38507
- apiBaseUrl: z61.string().optional(),
38640
+ passes: z60.array(publicPassProductSchema).nullable().optional(),
38641
+ memberships: z60.array(publicMembershipProductSchema).nullable().optional(),
38642
+ products: z60.array(publicProductSchema).nullable().optional(),
38643
+ siteId: z60.string().optional(),
38644
+ apiBaseUrl: z60.string().optional(),
38508
38645
  stage: previewStageSchema.optional()
38509
38646
  });
38510
- productVariantOptionDisplaySchema = z61.object({
38511
- id: z61.string(),
38512
- label: z61.string(),
38513
- soldOut: z61.boolean()
38514
- });
38515
- productCardDisplaySchema = z61.object({
38516
- productId: z61.string(),
38517
- title: z61.string(),
38518
- path: z61.string().nullable(),
38519
- summary: z61.string().nullable(),
38520
- priceLabel: z61.string().nullable(),
38521
- image: z61.object({
38522
- url: z61.string(),
38523
- alt: z61.string().nullable()
38647
+ productVariantOptionDisplaySchema = z60.object({
38648
+ id: z60.string(),
38649
+ label: z60.string(),
38650
+ soldOut: z60.boolean()
38651
+ });
38652
+ productCardDisplaySchema = z60.object({
38653
+ productId: z60.string(),
38654
+ title: z60.string(),
38655
+ path: z60.string().nullable(),
38656
+ summary: z60.string().nullable(),
38657
+ priceLabel: z60.string().nullable(),
38658
+ image: z60.object({
38659
+ url: z60.string(),
38660
+ alt: z60.string().nullable()
38524
38661
  }).nullable(),
38525
- variantOptions: z61.array(productVariantOptionDisplaySchema),
38526
- selectedVariantId: z61.string().nullable(),
38527
- selectionLabel: z61.string(),
38528
- actionLabel: z61.string(),
38529
- soldOut: z61.boolean()
38530
- });
38531
- productListDisplaySchema = z61.object({
38532
- kind: z61.literal("product-list"),
38533
- state: z61.enum(["empty", "ready"]),
38534
- heading: z61.string().nullable(),
38535
- className: z61.string().nullable(),
38536
- layout: z61.enum(["grid", "list"]),
38537
- columns: z61.string(),
38538
- emptyMessage: z61.string(),
38539
- cards: z61.array(productCardDisplaySchema)
38540
- });
38541
- productDetailDisplaySchema = z61.discriminatedUnion("state", [
38542
- z61.object({
38543
- kind: z61.literal("product-detail"),
38544
- state: z61.literal("empty"),
38545
- heading: z61.string().nullable(),
38546
- className: z61.string().nullable(),
38547
- emptyMessage: z61.string()
38662
+ variantOptions: z60.array(productVariantOptionDisplaySchema),
38663
+ selectedVariantId: z60.string().nullable(),
38664
+ selectionLabel: z60.string(),
38665
+ actionLabel: z60.string(),
38666
+ soldOut: z60.boolean()
38667
+ });
38668
+ productListDisplaySchema = z60.object({
38669
+ kind: z60.literal("product-list"),
38670
+ state: z60.enum(["empty", "ready"]),
38671
+ heading: z60.string().nullable(),
38672
+ className: z60.string().nullable(),
38673
+ layout: z60.enum(["grid", "list"]),
38674
+ columns: z60.string(),
38675
+ emptyMessage: z60.string(),
38676
+ cards: z60.array(productCardDisplaySchema)
38677
+ });
38678
+ productDetailDisplaySchema = z60.discriminatedUnion("state", [
38679
+ z60.object({
38680
+ kind: z60.literal("product-detail"),
38681
+ state: z60.literal("empty"),
38682
+ heading: z60.string().nullable(),
38683
+ className: z60.string().nullable(),
38684
+ emptyMessage: z60.string()
38548
38685
  }),
38549
- z61.object({
38550
- kind: z61.literal("product-detail"),
38551
- state: z61.literal("ready"),
38552
- heading: z61.string().nullable(),
38553
- className: z61.string().nullable(),
38554
- title: z61.string(),
38555
- priceLabel: z61.string(),
38556
- summary: z61.string().nullable(),
38557
- categoryLabel: z61.string().nullable(),
38558
- gallery: z61.array(z61.object({
38559
- url: z61.string(),
38560
- alt: z61.string().nullable()
38686
+ z60.object({
38687
+ kind: z60.literal("product-detail"),
38688
+ state: z60.literal("ready"),
38689
+ heading: z60.string().nullable(),
38690
+ className: z60.string().nullable(),
38691
+ title: z60.string(),
38692
+ priceLabel: z60.string(),
38693
+ summary: z60.string().nullable(),
38694
+ categoryLabel: z60.string().nullable(),
38695
+ gallery: z60.array(z60.object({
38696
+ url: z60.string(),
38697
+ alt: z60.string().nullable()
38561
38698
  })),
38562
- variantOptions: z61.array(productVariantOptionDisplaySchema),
38563
- selectedVariantId: z61.string().nullable(),
38564
- selectionLabel: z61.string(),
38565
- actionLabel: z61.string(),
38566
- soldOut: z61.boolean(),
38567
- body: z61.unknown().nullable()
38699
+ variantOptions: z60.array(productVariantOptionDisplaySchema),
38700
+ selectedVariantId: z60.string().nullable(),
38701
+ selectionLabel: z60.string(),
38702
+ actionLabel: z60.string(),
38703
+ soldOut: z60.boolean(),
38704
+ body: z60.unknown().nullable()
38568
38705
  })
38569
38706
  ]);
38570
- passCardDisplaySchema = z61.object({
38571
- id: z61.string(),
38572
- title: z61.string(),
38573
- description: z61.string().nullable(),
38574
- priceLabel: z61.string(),
38575
- creditsLabel: z61.string(),
38576
- perCreditLabel: z61.string().nullable(),
38577
- validityLabel: z61.string().nullable(),
38578
- actionLabel: z61.string()
38579
- });
38580
- membershipCardDisplaySchema = z61.object({
38581
- id: z61.string(),
38582
- title: z61.string(),
38583
- description: z61.string().nullable(),
38584
- priceLabel: z61.string(),
38585
- intervalLabel: z61.string(),
38586
- actionLabel: z61.string()
38587
- });
38588
- passesMembershipsDisplaySchema = z61.object({
38589
- kind: z61.literal("passes-memberships"),
38590
- state: z61.enum(["empty", "ready"]),
38591
- className: z61.string().nullable(),
38592
- layout: z61.enum(["grid", "list"]),
38593
- columns: z61.string(),
38594
- emptyMessage: z61.string(),
38595
- passesHeading: z61.string(),
38596
- membershipsHeading: z61.string(),
38597
- passes: z61.array(passCardDisplaySchema),
38598
- memberships: z61.array(membershipCardDisplaySchema)
38599
- });
38600
- cartLineDisplaySchema = z61.object({
38601
- key: z61.string(),
38602
- title: z61.string(),
38603
- priceLabel: z61.string(),
38604
- quantity: z61.number(),
38605
- quantityEditable: z61.boolean()
38606
- });
38607
- cartDisplaySchema = z61.object({
38608
- kind: z61.literal("cart"),
38609
- state: z61.enum(["empty", "ready"]),
38610
- heading: z61.string().nullable(),
38611
- className: z61.string().nullable(),
38612
- emptyMessage: z61.string(),
38613
- supportText: z61.string().nullable(),
38614
- items: z61.array(cartLineDisplaySchema),
38615
- subtotalLabel: z61.string().nullable(),
38616
- checkoutButtonText: z61.string(),
38617
- clearButtonText: z61.string()
38618
- });
38619
- checkoutDisplaySchema = z61.object({
38620
- kind: z61.literal("checkout"),
38621
- state: z61.enum(["empty", "blocked", "ready"]),
38622
- heading: z61.string().nullable(),
38623
- className: z61.string().nullable(),
38624
- message: z61.string().nullable(),
38625
- submitButtonText: z61.string()
38626
- });
38627
- passesMembershipsHydrationSchema = z61.object({
38628
- passes: z61.array(publicPassProductSchema),
38629
- memberships: z61.array(publicMembershipProductSchema),
38630
- passPurchaseMode: z61.enum(["add_to_cart", "buy_now"])
38631
- });
38632
- productListHydrationSchema = z61.object({
38633
- products: z61.array(publicProductSchema),
38634
- showSummary: z61.boolean(),
38635
- showPrices: z61.boolean(),
38636
- addButtonText: z61.string()
38637
- });
38638
- productDetailHydrationSchema = z61.object({
38639
- products: z61.array(publicProductSchema),
38640
- productId: z61.string().nullable(),
38641
- showSummary: z61.boolean(),
38642
- showBody: z61.boolean(),
38643
- addButtonText: z61.string()
38644
- });
38645
- cartHydrationSchema = z61.object({
38646
- emptyStateText: z61.string(),
38647
- checkoutButtonText: z61.string(),
38648
- clearButtonText: z61.string()
38649
- });
38650
- checkoutHydrationSchema = z61.object({
38651
- emptyStateText: z61.string(),
38652
- submitButtonText: z61.string()
38653
- });
38654
- passesMembershipsRenderSchema = z61.object({
38707
+ passCardDisplaySchema = z60.object({
38708
+ id: z60.string(),
38709
+ title: z60.string(),
38710
+ description: z60.string().nullable(),
38711
+ priceLabel: z60.string(),
38712
+ creditsLabel: z60.string(),
38713
+ perCreditLabel: z60.string().nullable(),
38714
+ validityLabel: z60.string().nullable(),
38715
+ actionLabel: z60.string()
38716
+ });
38717
+ membershipCardDisplaySchema = z60.object({
38718
+ id: z60.string(),
38719
+ title: z60.string(),
38720
+ description: z60.string().nullable(),
38721
+ priceLabel: z60.string(),
38722
+ intervalLabel: z60.string(),
38723
+ actionLabel: z60.string()
38724
+ });
38725
+ passesMembershipsDisplaySchema = z60.object({
38726
+ kind: z60.literal("passes-memberships"),
38727
+ state: z60.enum(["empty", "ready"]),
38728
+ className: z60.string().nullable(),
38729
+ layout: z60.enum(["grid", "list"]),
38730
+ columns: z60.string(),
38731
+ emptyMessage: z60.string(),
38732
+ passesHeading: z60.string(),
38733
+ membershipsHeading: z60.string(),
38734
+ passes: z60.array(passCardDisplaySchema),
38735
+ memberships: z60.array(membershipCardDisplaySchema)
38736
+ });
38737
+ cartLineDisplaySchema = z60.object({
38738
+ key: z60.string(),
38739
+ title: z60.string(),
38740
+ priceLabel: z60.string(),
38741
+ quantity: z60.number(),
38742
+ quantityEditable: z60.boolean()
38743
+ });
38744
+ cartDisplaySchema = z60.object({
38745
+ kind: z60.literal("cart"),
38746
+ state: z60.enum(["empty", "ready"]),
38747
+ heading: z60.string().nullable(),
38748
+ className: z60.string().nullable(),
38749
+ emptyMessage: z60.string(),
38750
+ supportText: z60.string().nullable(),
38751
+ items: z60.array(cartLineDisplaySchema),
38752
+ subtotalLabel: z60.string().nullable(),
38753
+ checkoutButtonText: z60.string(),
38754
+ clearButtonText: z60.string()
38755
+ });
38756
+ checkoutDisplaySchema = z60.object({
38757
+ kind: z60.literal("checkout"),
38758
+ state: z60.enum(["empty", "blocked", "ready"]),
38759
+ heading: z60.string().nullable(),
38760
+ className: z60.string().nullable(),
38761
+ message: z60.string().nullable(),
38762
+ submitButtonText: z60.string()
38763
+ });
38764
+ passesMembershipsHydrationSchema = z60.object({
38765
+ passes: z60.array(publicPassProductSchema),
38766
+ memberships: z60.array(publicMembershipProductSchema),
38767
+ passPurchaseMode: z60.enum(["add_to_cart", "buy_now"])
38768
+ });
38769
+ productListHydrationSchema = z60.object({
38770
+ products: z60.array(publicProductSchema),
38771
+ showSummary: z60.boolean(),
38772
+ showPrices: z60.boolean(),
38773
+ addButtonText: z60.string()
38774
+ });
38775
+ productDetailHydrationSchema = z60.object({
38776
+ products: z60.array(publicProductSchema),
38777
+ productId: z60.string().nullable(),
38778
+ showSummary: z60.boolean(),
38779
+ showBody: z60.boolean(),
38780
+ addButtonText: z60.string()
38781
+ });
38782
+ cartHydrationSchema = z60.object({
38783
+ emptyStateText: z60.string(),
38784
+ checkoutButtonText: z60.string(),
38785
+ clearButtonText: z60.string()
38786
+ });
38787
+ checkoutHydrationSchema = z60.object({
38788
+ emptyStateText: z60.string(),
38789
+ submitButtonText: z60.string()
38790
+ });
38791
+ passesMembershipsRenderSchema = z60.object({
38655
38792
  display: passesMembershipsDisplaySchema,
38656
38793
  hydration: passesMembershipsHydrationSchema
38657
38794
  });
38658
- productListRenderSchema = z61.object({
38795
+ productListRenderSchema = z60.object({
38659
38796
  display: productListDisplaySchema,
38660
38797
  hydration: productListHydrationSchema
38661
38798
  });
38662
- productDetailRenderSchema = z61.object({
38799
+ productDetailRenderSchema = z60.object({
38663
38800
  display: productDetailDisplaySchema,
38664
38801
  hydration: productDetailHydrationSchema
38665
38802
  });
38666
- cartRenderSchema = z61.object({
38803
+ cartRenderSchema = z60.object({
38667
38804
  display: cartDisplaySchema,
38668
38805
  hydration: cartHydrationSchema
38669
38806
  });
38670
- checkoutRenderSchema = z61.object({
38807
+ checkoutRenderSchema = z60.object({
38671
38808
  display: checkoutDisplaySchema,
38672
38809
  hydration: checkoutHydrationSchema
38673
38810
  });
38674
- shopIslandMetaCodec = createZodCodec(z61.object({
38675
- siteId: z61.string().optional(),
38676
- apiBaseUrl: z61.string().optional(),
38811
+ shopIslandMetaCodec = createZodCodec(z60.object({
38812
+ siteId: z60.string().optional(),
38813
+ apiBaseUrl: z60.string().optional(),
38677
38814
  stage: previewStageSchema.optional()
38678
38815
  }));
38679
38816
  shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -38845,7 +38982,6 @@ var init_shop_interactive = __esm({
38845
38982
  });
38846
38983
 
38847
38984
  // ../blocks/src/system/blocks/shop.ts
38848
- import { z as z62 } from "zod";
38849
38985
  var shopManifest, shopBlockDefinition;
38850
38986
  var init_shop = __esm({
38851
38987
  "../blocks/src/system/blocks/shop.ts"() {
@@ -39053,9 +39189,9 @@ var init_shop = __esm({
39053
39189
  runtime: shopBlockRuntime,
39054
39190
  dataSchemas: {
39055
39191
  // listPublicPasses returns { passes: [...] }
39056
- passes: z62.object({ passes: z62.array(publicPassProductSchema) }).optional(),
39192
+ passes: publicPassProductCollectionSchema.optional(),
39057
39193
  // listPublicMemberships returns { memberships: [...] }
39058
- memberships: z62.object({ memberships: z62.array(publicMembershipProductSchema) }).optional()
39194
+ memberships: publicMembershipProductCollectionSchema.optional()
39059
39195
  },
39060
39196
  dataLoaders: {
39061
39197
  // Load passes for display
@@ -39080,7 +39216,7 @@ var init_shop = __esm({
39080
39216
  });
39081
39217
 
39082
39218
  // ../blocks/src/system/blocks/product-list.ts
39083
- import { z as z63 } from "zod";
39219
+ import { z as z61 } from "zod";
39084
39220
  var productListManifest, productListBlockDefinition, productListDataSchema;
39085
39221
  var init_product_list = __esm({
39086
39222
  "../blocks/src/system/blocks/product-list.ts"() {
@@ -39225,7 +39361,7 @@ var init_product_list = __esm({
39225
39361
  }
39226
39362
  }
39227
39363
  };
39228
- productListDataSchema = z63.object({
39364
+ productListDataSchema = z61.object({
39229
39365
  products: publicProductsResponseSchema.optional()
39230
39366
  });
39231
39367
  }
@@ -39528,7 +39664,7 @@ var init_checkout = __esm({
39528
39664
  });
39529
39665
 
39530
39666
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
39531
- import { z as z64 } from "zod";
39667
+ import { z as z62 } from "zod";
39532
39668
  function buildGiftingDisplay(source) {
39533
39669
  return {
39534
39670
  kind: "gifting",
@@ -39547,71 +39683,71 @@ var init_gifting_interactive = __esm({
39547
39683
  "use strict";
39548
39684
  init_islands();
39549
39685
  init_runtime();
39550
- publicGiftCardOfferSchema = z64.object({
39551
- id: z64.string(),
39552
- kind: z64.literal("gift_card"),
39553
- title: z64.string(),
39554
- description: z64.string().nullable(),
39555
- sortOrder: z64.number().int(),
39556
- giftCard: z64.object({
39557
- fixedDenominations: z64.array(z64.number().int().positive()),
39558
- customAmountEnabled: z64.boolean(),
39559
- customAmountMinCents: z64.number().int().positive(),
39560
- customAmountMaxCents: z64.number().int().positive()
39686
+ publicGiftCardOfferSchema = z62.object({
39687
+ id: z62.string(),
39688
+ kind: z62.literal("gift_card"),
39689
+ title: z62.string(),
39690
+ description: z62.string().nullable(),
39691
+ sortOrder: z62.number().int(),
39692
+ giftCard: z62.object({
39693
+ fixedDenominations: z62.array(z62.number().int().positive()),
39694
+ customAmountEnabled: z62.boolean(),
39695
+ customAmountMinCents: z62.number().int().positive(),
39696
+ customAmountMaxCents: z62.number().int().positive()
39561
39697
  }),
39562
- voucher: z64.null()
39563
- });
39564
- publicVoucherOfferSchema = z64.object({
39565
- id: z64.string(),
39566
- kind: z64.literal("voucher"),
39567
- title: z64.string(),
39568
- description: z64.string().nullable(),
39569
- sortOrder: z64.number().int(),
39570
- giftCard: z64.null(),
39571
- voucher: z64.object({
39572
- purchaseAmountCents: z64.number().int().positive()
39698
+ voucher: z62.null()
39699
+ });
39700
+ publicVoucherOfferSchema = z62.object({
39701
+ id: z62.string(),
39702
+ kind: z62.literal("voucher"),
39703
+ title: z62.string(),
39704
+ description: z62.string().nullable(),
39705
+ sortOrder: z62.number().int(),
39706
+ giftCard: z62.null(),
39707
+ voucher: z62.object({
39708
+ purchaseAmountCents: z62.number().int().positive()
39573
39709
  })
39574
39710
  });
39575
- publicGiftingOffersResponseSchema = z64.object({
39576
- currency: z64.string(),
39577
- giftCards: z64.array(publicGiftCardOfferSchema),
39578
- vouchers: z64.array(publicVoucherOfferSchema)
39711
+ publicGiftingOffersResponseSchema = z62.object({
39712
+ currency: z62.string(),
39713
+ giftCards: z62.array(publicGiftCardOfferSchema),
39714
+ vouchers: z62.array(publicVoucherOfferSchema)
39579
39715
  });
39580
- giftingSourceSchema = z64.object({
39581
- siteId: z64.string().optional(),
39582
- apiBaseUrl: z64.string().optional(),
39716
+ giftingSourceSchema = z62.object({
39717
+ siteId: z62.string().optional(),
39718
+ apiBaseUrl: z62.string().optional(),
39583
39719
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
39584
- className: z64.string().nullable().optional(),
39585
- heading: z64.string().nullable().optional(),
39586
- intro: z64.string().nullable().optional(),
39587
- giftCardsHeading: z64.string().nullable().optional(),
39588
- vouchersHeading: z64.string().nullable().optional(),
39589
- emptyStateText: z64.string().nullable().optional(),
39590
- checkoutButtonText: z64.string().nullable().optional(),
39591
- successMessage: z64.string().nullable().optional()
39592
- });
39593
- giftingDisplaySchema = z64.object({
39594
- kind: z64.literal("gifting"),
39595
- state: z64.literal("ready"),
39596
- className: z64.string().nullable(),
39597
- heading: z64.string(),
39598
- intro: z64.string().nullable(),
39599
- giftCardsHeading: z64.string(),
39600
- vouchersHeading: z64.string(),
39601
- emptyStateText: z64.string()
39602
- });
39603
- giftingHydrationSchema = z64.object({
39720
+ className: z62.string().nullable().optional(),
39721
+ heading: z62.string().nullable().optional(),
39722
+ intro: z62.string().nullable().optional(),
39723
+ giftCardsHeading: z62.string().nullable().optional(),
39724
+ vouchersHeading: z62.string().nullable().optional(),
39725
+ emptyStateText: z62.string().nullable().optional(),
39726
+ checkoutButtonText: z62.string().nullable().optional(),
39727
+ successMessage: z62.string().nullable().optional()
39728
+ });
39729
+ giftingDisplaySchema = z62.object({
39730
+ kind: z62.literal("gifting"),
39731
+ state: z62.literal("ready"),
39732
+ className: z62.string().nullable(),
39733
+ heading: z62.string(),
39734
+ intro: z62.string().nullable(),
39735
+ giftCardsHeading: z62.string(),
39736
+ vouchersHeading: z62.string(),
39737
+ emptyStateText: z62.string()
39738
+ });
39739
+ giftingHydrationSchema = z62.object({
39604
39740
  offers: publicGiftingOffersResponseSchema.nullable(),
39605
- checkoutButtonText: z64.string(),
39606
- successMessage: z64.string()
39741
+ checkoutButtonText: z62.string(),
39742
+ successMessage: z62.string()
39607
39743
  });
39608
- giftingRenderSchema = z64.object({
39744
+ giftingRenderSchema = z62.object({
39609
39745
  display: giftingDisplaySchema,
39610
39746
  hydration: giftingHydrationSchema
39611
39747
  });
39612
- giftingIslandMetaCodec = createZodCodec(z64.object({
39613
- siteId: z64.string().optional(),
39614
- apiBaseUrl: z64.string().optional()
39748
+ giftingIslandMetaCodec = createZodCodec(z62.object({
39749
+ siteId: z62.string().optional(),
39750
+ apiBaseUrl: z62.string().optional()
39615
39751
  }));
39616
39752
  giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
39617
39753
  "siteId",
@@ -39831,7 +39967,7 @@ function deriveNewsletterSignupRuntimeSource(values) {
39831
39967
  };
39832
39968
  }
39833
39969
  function sanitizeNewsletterSignupPublicContent(content) {
39834
- if (!isRecord7(content)) return content;
39970
+ if (!isRecord8(content)) return content;
39835
39971
  const provider = parseNewsletterSignupDestinationProvider(content.destinationProvider) ?? getProviderFromExplicitDestination(content.destination);
39836
39972
  const {
39837
39973
  destination: _destination,
@@ -39850,7 +39986,7 @@ function sanitizeNewsletterSignupPublicContent(content) {
39850
39986
  return mutablePublicContent;
39851
39987
  }
39852
39988
  function getProviderFromExplicitDestination(destination) {
39853
- if (!isRecord7(destination) || typeof destination.tag !== "string") return null;
39989
+ if (!isRecord8(destination) || typeof destination.tag !== "string") return null;
39854
39990
  if (destination.tag === "riverbank_list") return "riverbank";
39855
39991
  if (destination.tag === "mailchimp_audience") return "mailchimp";
39856
39992
  return null;
@@ -39860,7 +39996,7 @@ function parseTrimmedString(value) {
39860
39996
  const trimmed = value.trim();
39861
39997
  return trimmed.length > 0 ? trimmed : null;
39862
39998
  }
39863
- function isRecord7(value) {
39999
+ function isRecord8(value) {
39864
40000
  return typeof value === "object" && value !== null;
39865
40001
  }
39866
40002
  var BLOCK_ID_PATTERN, SIGNED_DESTINATION_REF_PATTERN;
@@ -39928,7 +40064,7 @@ var init_newsletter_form_types = __esm({
39928
40064
  });
39929
40065
 
39930
40066
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
39931
- import { z as z65 } from "zod";
40067
+ import { z as z63 } from "zod";
39932
40068
  function buildNewsletterDisplay(source) {
39933
40069
  const preset2 = source.preset ?? "emailOnly";
39934
40070
  const includePhone = source.includePhone ?? false;
@@ -39963,65 +40099,65 @@ var init_newsletter_form_interactive = __esm({
39963
40099
  init_runtime();
39964
40100
  init_newsletter_signup_destination();
39965
40101
  init_newsletter_form_types();
39966
- newsletterPresetSchema = z65.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
39967
- newsletterDestinationProviderSchema = z65.enum(["riverbank", "mailchimp"]);
39968
- newsletterFieldSchema = z65.object({
39969
- id: z65.string(),
39970
- type: z65.enum(["email", "text"]),
39971
- label: z65.string(),
39972
- required: z65.boolean(),
39973
- placeholder: z65.string().optional()
39974
- });
39975
- newsletterSignupBlockIdSchema = z65.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
39976
- signedNewsletterDestinationRefSchema = z65.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
39977
- newsletterPublicDestinationRefSchema = z65.discriminatedUnion("tag", [
39978
- z65.object({
39979
- tag: z65.literal("block_ref"),
40102
+ newsletterPresetSchema = z63.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
40103
+ newsletterDestinationProviderSchema = z63.enum(["riverbank", "mailchimp"]);
40104
+ newsletterFieldSchema = z63.object({
40105
+ id: z63.string(),
40106
+ type: z63.enum(["email", "text"]),
40107
+ label: z63.string(),
40108
+ required: z63.boolean(),
40109
+ placeholder: z63.string().optional()
40110
+ });
40111
+ newsletterSignupBlockIdSchema = z63.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
40112
+ signedNewsletterDestinationRefSchema = z63.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
40113
+ newsletterPublicDestinationRefSchema = z63.discriminatedUnion("tag", [
40114
+ z63.object({
40115
+ tag: z63.literal("block_ref"),
39980
40116
  blockId: newsletterSignupBlockIdSchema
39981
40117
  }),
39982
- z65.object({
39983
- tag: z65.literal("signed_destination_ref"),
40118
+ z63.object({
40119
+ tag: z63.literal("signed_destination_ref"),
39984
40120
  token: signedNewsletterDestinationRefSchema
39985
40121
  })
39986
40122
  ]);
39987
- newsletterSourceSchema = z65.object({
39988
- blockId: z65.string().nullable().optional(),
39989
- siteId: z65.string().optional(),
39990
- apiBaseUrl: z65.string().optional(),
39991
- listId: z65.string().nullable().optional(),
40123
+ newsletterSourceSchema = z63.object({
40124
+ blockId: z63.string().nullable().optional(),
40125
+ siteId: z63.string().optional(),
40126
+ apiBaseUrl: z63.string().optional(),
40127
+ listId: z63.string().nullable().optional(),
39992
40128
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
39993
40129
  preset: newsletterPresetSchema.optional(),
39994
- includePhone: z65.boolean().optional(),
39995
- buttonLabel: z65.string().nullable().optional(),
39996
- successMessage: z65.string().nullable().optional(),
39997
- privacyNote: z65.string().nullable().optional(),
39998
- tags: z65.string().nullable().optional(),
39999
- spamProtectionEnabled: z65.boolean().optional(),
40000
- className: z65.string().nullable().optional()
40001
- });
40002
- newsletterDisplaySchema = z65.object({
40003
- kind: z65.literal("newsletter-form"),
40004
- className: z65.string().nullable(),
40005
- buttonLabel: z65.string(),
40006
- successMessage: z65.string().nullable(),
40007
- privacyNote: z65.string().nullable(),
40008
- fields: z65.array(newsletterFieldSchema)
40009
- });
40010
- newsletterHydrationSchema = z65.object({
40130
+ includePhone: z63.boolean().optional(),
40131
+ buttonLabel: z63.string().nullable().optional(),
40132
+ successMessage: z63.string().nullable().optional(),
40133
+ privacyNote: z63.string().nullable().optional(),
40134
+ tags: z63.string().nullable().optional(),
40135
+ spamProtectionEnabled: z63.boolean().optional(),
40136
+ className: z63.string().nullable().optional()
40137
+ });
40138
+ newsletterDisplaySchema = z63.object({
40139
+ kind: z63.literal("newsletter-form"),
40140
+ className: z63.string().nullable(),
40141
+ buttonLabel: z63.string(),
40142
+ successMessage: z63.string().nullable(),
40143
+ privacyNote: z63.string().nullable(),
40144
+ fields: z63.array(newsletterFieldSchema)
40145
+ });
40146
+ newsletterHydrationSchema = z63.object({
40011
40147
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
40012
- listId: z65.string().nullable().optional(),
40148
+ listId: z63.string().nullable().optional(),
40013
40149
  preset: newsletterPresetSchema,
40014
- includePhone: z65.boolean(),
40015
- tags: z65.string().nullable().optional(),
40016
- spamProtectionEnabled: z65.boolean().optional()
40150
+ includePhone: z63.boolean(),
40151
+ tags: z63.string().nullable().optional(),
40152
+ spamProtectionEnabled: z63.boolean().optional()
40017
40153
  });
40018
- newsletterRenderSchema = z65.object({
40154
+ newsletterRenderSchema = z63.object({
40019
40155
  display: newsletterDisplaySchema,
40020
40156
  hydration: newsletterHydrationSchema
40021
40157
  });
40022
- newsletterIslandMetaCodec = createZodCodec(z65.object({
40023
- siteId: z65.string().optional(),
40024
- apiBaseUrl: z65.string().optional()
40158
+ newsletterIslandMetaCodec = createZodCodec(z63.object({
40159
+ siteId: z63.string().optional(),
40160
+ apiBaseUrl: z63.string().optional()
40025
40161
  }));
40026
40162
  newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
40027
40163
  newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
@@ -40148,7 +40284,7 @@ var init_newsletter_signup = __esm({
40148
40284
  });
40149
40285
 
40150
40286
  // ../blocks/src/system/blocks/team-members.ts
40151
- import { z as z66 } from "zod";
40287
+ import { z as z64 } from "zod";
40152
40288
  var ITEM_NAME2, teamMemberPhotoSchema, teamMemberDataSchema, teamMembersDataSchema, dynamicSourceWhen, manualSourceWhen, headingNode, wrapVariant3, teamMemberStackLayout, manualGridMembersNode, dynamicGridMembersNode, gridVariant, manualStackMembersNode, dynamicStackMembersNode, stackVariant, teamMembersManifest, teamMembersBlockDefinition;
40153
40289
  var init_team_members = __esm({
40154
40290
  "../blocks/src/system/blocks/team-members.ts"() {
@@ -40165,18 +40301,18 @@ var init_team_members = __esm({
40165
40301
  teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
40166
40302
  message: "Team member photos must be image media"
40167
40303
  }).nullable();
40168
- teamMemberDataSchema = z66.object({
40169
- _type: z66.literal("teamMember"),
40170
- id: z66.string(),
40171
- name: z66.string(),
40172
- role: z66.string().nullable(),
40173
- roleLabel: z66.string().nullable(),
40174
- bio: z66.string().nullable(),
40175
- summary: z66.string().nullable(),
40304
+ teamMemberDataSchema = z64.object({
40305
+ _type: z64.literal("teamMember"),
40306
+ id: z64.string(),
40307
+ name: z64.string(),
40308
+ role: z64.string().nullable(),
40309
+ roleLabel: z64.string().nullable(),
40310
+ bio: z64.string().nullable(),
40311
+ summary: z64.string().nullable(),
40176
40312
  photo: teamMemberPhotoSchema,
40177
- profilePath: z66.string().nullable()
40313
+ profilePath: z64.string().nullable()
40178
40314
  });
40179
- teamMembersDataSchema = z66.array(teamMemberDataSchema);
40315
+ teamMembersDataSchema = z64.array(teamMemberDataSchema);
40180
40316
  dynamicSourceWhen = { equals: "site_staff" };
40181
40317
  manualSourceWhen = { equals: "site_staff", not: true };
40182
40318
  headingNode = text(
@@ -41180,13 +41316,6 @@ var init_blocks = __esm({
41180
41316
  weight: "featured",
41181
41317
  bias: "clear",
41182
41318
  surfaces: heroSectionSurfaces
41183
- }),
41184
- layoutProfile({
41185
- variantKey: "splitEditorial",
41186
- family: "split",
41187
- weight: "featured",
41188
- bias: "clear",
41189
- surfaces: heroSectionSurfaces
41190
41319
  })
41191
41320
  ]
41192
41321
  })),
@@ -41430,9 +41559,8 @@ var init_blocks = __esm({
41430
41559
  flow: offeringsFlow,
41431
41560
  layoutProfiles: [
41432
41561
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
41562
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
41433
41563
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
41434
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
41435
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
41436
41564
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
41437
41565
  ]
41438
41566
  })),
@@ -42043,10 +42171,7 @@ function normalizeRenderStage(stage) {
42043
42171
  return stage === "preview" ? "preview" : "published";
42044
42172
  }
42045
42173
  function isRouteVisibleInStage(routeEntry, stageInput) {
42046
- const stage = normalizeRenderStage(stageInput);
42047
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
42048
- return true;
42049
- }
42174
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
42050
42175
  const status = routeEntry.status;
42051
42176
  return !(typeof status === "string" && status !== "published");
42052
42177
  }
@@ -42055,52 +42180,45 @@ function extractRouteHref(candidate, stageInput = "published") {
42055
42180
  const trimmed = candidate.trim();
42056
42181
  return trimmed.length > 0 ? trimmed : null;
42057
42182
  }
42058
- if (!isRouteRecord(candidate)) {
42059
- return null;
42060
- }
42061
- const stage = normalizeRenderStage(stageInput);
42062
- const fields3 = stage === "preview" ? ["draftPath", "path", "href", "url"] : ["path", "href", "url"];
42183
+ if (!isRouteRecord(candidate)) return null;
42184
+ const fields3 = normalizeRenderStage(stageInput) === "preview" ? [
42185
+ "draftPath",
42186
+ "path",
42187
+ "href",
42188
+ "url"
42189
+ ] : [
42190
+ "path",
42191
+ "href",
42192
+ "url"
42193
+ ];
42063
42194
  for (const field of fields3) {
42064
42195
  const value = candidate[field];
42065
- if (typeof value === "string" && value.trim().length > 0) {
42066
- return value.trim();
42067
- }
42196
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
42068
42197
  }
42069
42198
  return null;
42070
42199
  }
42071
42200
  function extractRouteUpdatedAt(candidate) {
42072
- if (!isRouteRecord(candidate)) {
42073
- return null;
42074
- }
42075
- const fields3 = [
42201
+ if (!isRouteRecord(candidate)) return null;
42202
+ for (const field of [
42076
42203
  "updatedAt",
42077
42204
  "updated_at",
42078
42205
  "publishedAt",
42079
42206
  "published_at",
42080
42207
  "modifiedAt",
42081
42208
  "modified_at"
42082
- ];
42083
- for (const field of fields3) {
42209
+ ]) {
42084
42210
  const value = candidate[field];
42085
- if (typeof value === "string" && value.length > 0) {
42086
- return value;
42087
- }
42211
+ if (typeof value === "string" && value.length > 0) return value;
42088
42212
  }
42089
42213
  return null;
42090
42214
  }
42091
42215
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
42092
42216
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
42093
- if (!routeId || !routes) {
42094
- return null;
42095
- }
42217
+ if (!routeId || !routes) return null;
42096
42218
  const routeEntry = routes[routeId];
42097
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
42098
- return null;
42099
- }
42219
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
42100
42220
  const href = extractRouteHref(routeEntry, stageInput);
42101
- if (!href) {
42102
- return null;
42103
- }
42221
+ if (!href) return null;
42104
42222
  return {
42105
42223
  routeId,
42106
42224
  href,
@@ -42290,7 +42408,7 @@ var init_transforms = __esm({
42290
42408
 
42291
42409
  // ../blocks/src/system/data/linkedContentEntries.ts
42292
42410
  function coerceLinkedContentEntriesPayload(payload) {
42293
- if (!isRecord8(payload)) return payload;
42411
+ if (!isRecord9(payload)) return payload;
42294
42412
  const response = payload;
42295
42413
  if (!Array.isArray(response.entries)) return payload;
42296
42414
  const contentType = parsePublicContentTypeMeta(response.contentType);
@@ -42298,12 +42416,12 @@ function coerceLinkedContentEntriesPayload(payload) {
42298
42416
  return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
42299
42417
  }
42300
42418
  function enrichLinkedContentEntry(entry, contentType) {
42301
- if (!isRecord8(entry)) return entry;
42419
+ if (!isRecord9(entry)) return entry;
42302
42420
  const entryId = typeof entry.id === "string" ? entry.id : null;
42303
42421
  if (!entryId) return entry;
42304
42422
  const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
42305
42423
  const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
42306
- const content = isRecord8(entry.content) ? entry.content : {};
42424
+ const content = isRecord9(entry.content) ? entry.content : {};
42307
42425
  const meta = {
42308
42426
  kind: "linked-content-entry",
42309
42427
  entryId,
@@ -42396,7 +42514,7 @@ function capitalize(value) {
42396
42514
  return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
42397
42515
  }
42398
42516
  function parsePublicContentTypeMeta(value) {
42399
- if (!isRecord8(value)) return null;
42517
+ if (!isRecord9(value)) return null;
42400
42518
  if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
42401
42519
  return {
42402
42520
  key: value.key,
@@ -42406,7 +42524,7 @@ function parsePublicContentTypeMeta(value) {
42406
42524
  };
42407
42525
  }
42408
42526
  function parsePublicContentTypeLinkedEntryEditing(value) {
42409
- if (!isRecord8(value) || typeof value.kind !== "string") return null;
42527
+ if (!isRecord9(value) || typeof value.kind !== "string") return null;
42410
42528
  switch (value.kind) {
42411
42529
  case "generic":
42412
42530
  return { kind: "generic" };
@@ -42420,7 +42538,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
42420
42538
  }
42421
42539
  }
42422
42540
  function parsePublicContentTypeFieldMeta(value) {
42423
- if (!isRecord8(value)) return [];
42541
+ if (!isRecord9(value)) return [];
42424
42542
  if (typeof value.id !== "string" || typeof value.type !== "string") return [];
42425
42543
  return [{
42426
42544
  id: value.id,
@@ -42434,7 +42552,7 @@ function parseStringArray(value) {
42434
42552
  if (!Array.isArray(value)) return null;
42435
42553
  return value.filter((item) => typeof item === "string");
42436
42554
  }
42437
- function isRecord8(value) {
42555
+ function isRecord9(value) {
42438
42556
  return typeof value === "object" && value !== null && !Array.isArray(value);
42439
42557
  }
42440
42558
  var LINKED_CONTENT_ENTRY_META_KEY;
@@ -44228,30 +44346,30 @@ var init_Button = __esm({
44228
44346
  });
44229
44347
 
44230
44348
  // ../blocks/src/structure/schema.ts
44231
- import z67 from "zod";
44349
+ import z65 from "zod";
44232
44350
  var BlockKind, blockSchema, pagePath, pageOutlineSchema;
44233
44351
  var init_schema4 = __esm({
44234
44352
  "../blocks/src/structure/schema.ts"() {
44235
44353
  "use strict";
44236
- BlockKind = z67.string();
44237
- blockSchema = z67.object({
44238
- id: z67.string().nullable(),
44354
+ BlockKind = z65.string();
44355
+ blockSchema = z65.object({
44356
+ id: z65.string().nullable(),
44239
44357
  // optional ID for reference in toggle ops
44240
44358
  kind: BlockKind,
44241
- purpose: z67.string().min(1),
44359
+ purpose: z65.string().min(1),
44242
44360
  // Optional content fields used by PageRenderer / block runtime.
44243
- content: z67.record(z67.string(), z67.unknown()).optional(),
44361
+ content: z65.record(z65.string(), z65.unknown()).optional(),
44244
44362
  // Nullable because some persisted sources store "no draft" as null.
44245
- draftContent: z67.record(z67.string(), z67.unknown()).nullable().optional(),
44363
+ draftContent: z65.record(z65.string(), z65.unknown()).nullable().optional(),
44246
44364
  // Optional template bindings for reverse field mapping (entry editing)
44247
- bindings: z67.record(z67.string(), z67.unknown()).optional()
44365
+ bindings: z65.record(z65.string(), z65.unknown()).optional()
44248
44366
  }).passthrough();
44249
- pagePath = z67.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
44250
- pageOutlineSchema = z67.object({
44251
- name: z67.string().min(1),
44367
+ pagePath = z65.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
44368
+ pageOutlineSchema = z65.object({
44369
+ name: z65.string().min(1),
44252
44370
  path: pagePath,
44253
- purpose: z67.string().min(1),
44254
- blocks: z67.array(blockSchema).min(1)
44371
+ purpose: z65.string().min(1),
44372
+ blocks: z65.array(blockSchema).min(1)
44255
44373
  });
44256
44374
  }
44257
44375
  });
@@ -44344,6 +44462,17 @@ var init_ThemeFontLoader = __esm({
44344
44462
  }
44345
44463
  });
44346
44464
 
44465
+ // ../theme-core/src/ResponsiveScope.tsx
44466
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
44467
+ var init_ResponsiveScope = __esm({
44468
+ "../theme-core/src/ResponsiveScope.tsx"() {
44469
+ "use strict";
44470
+ init_selectorUtils();
44471
+ init_containerResponsiveThemeCss();
44472
+ init_responsiveMode();
44473
+ }
44474
+ });
44475
+
44347
44476
  // ../theme-core/src/fonts/uploadFormat.ts
44348
44477
  var MAX_FONT_UPLOAD_BYTES;
44349
44478
  var init_uploadFormat = __esm({
@@ -44363,7 +44492,7 @@ var init_fonts = __esm({
44363
44492
  });
44364
44493
 
44365
44494
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
44366
- import { z as z68 } from "zod";
44495
+ import { z as z66 } from "zod";
44367
44496
  var themeBridgeConfigSchema;
44368
44497
  var init_buildThemeRuntimeFromBridge = __esm({
44369
44498
  "../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts"() {
@@ -44378,33 +44507,33 @@ var init_buildThemeRuntimeFromBridge = __esm({
44378
44507
  init_progress();
44379
44508
  init_blocks2();
44380
44509
  init_themeCssVarNames();
44381
- themeBridgeConfigSchema = z68.object({
44382
- tokens: z68.record(z68.string(), z68.string()),
44383
- typography: z68.object({
44384
- headingFamily: z68.string().optional(),
44385
- bodyFamily: z68.string().optional(),
44386
- headingWeight: z68.number().optional(),
44387
- bodyWeight: z68.number().optional()
44510
+ themeBridgeConfigSchema = z66.object({
44511
+ tokens: z66.record(z66.string(), z66.string()),
44512
+ typography: z66.object({
44513
+ headingFamily: z66.string().optional(),
44514
+ bodyFamily: z66.string().optional(),
44515
+ headingWeight: z66.number().optional(),
44516
+ bodyWeight: z66.number().optional()
44388
44517
  }).optional(),
44389
- spacing: z68.enum(["comfortable", "standard", "dense"]).optional(),
44390
- corners: z68.enum(["square", "soft", "rounded", "pill"]).optional(),
44391
- shadows: z68.enum(["none", "low", "medium", "high"]).optional(),
44392
- components: z68.object({
44393
- buttons: z68.union([
44394
- z68.boolean(),
44395
- z68.object({
44396
- variants: z68.array(z68.enum(["primary", "secondary", "outline", "ghost"])).optional()
44518
+ spacing: z66.enum(["comfortable", "standard", "dense"]).optional(),
44519
+ corners: z66.enum(["square", "soft", "rounded", "pill"]).optional(),
44520
+ shadows: z66.enum(["none", "low", "medium", "high"]).optional(),
44521
+ components: z66.object({
44522
+ buttons: z66.union([
44523
+ z66.boolean(),
44524
+ z66.object({
44525
+ variants: z66.array(z66.enum(["primary", "secondary", "outline", "ghost"])).optional()
44397
44526
  })
44398
44527
  ]).optional(),
44399
- cards: z68.union([
44400
- z68.boolean(),
44401
- z68.object({
44402
- variants: z68.array(z68.enum(["default", "elevated", "outlined"])).optional()
44528
+ cards: z66.union([
44529
+ z66.boolean(),
44530
+ z66.object({
44531
+ variants: z66.array(z66.enum(["default", "elevated", "outlined"])).optional()
44403
44532
  })
44404
44533
  ]).optional(),
44405
- inputs: z68.boolean().optional()
44534
+ inputs: z66.boolean().optional()
44406
44535
  }).optional(),
44407
- overrides: z68.record(z68.string(), z68.string()).optional()
44536
+ overrides: z66.record(z66.string(), z66.string()).optional()
44408
44537
  }).passthrough();
44409
44538
  }
44410
44539
  });
@@ -44419,7 +44548,7 @@ var init_siteChromePlanning = __esm({
44419
44548
  });
44420
44549
 
44421
44550
  // ../theme-core/src/siteChrome.tsx
44422
- import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
44551
+ import { Fragment as Fragment3, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
44423
44552
  var init_siteChrome = __esm({
44424
44553
  "../theme-core/src/siteChrome.tsx"() {
44425
44554
  "use strict";
@@ -44861,6 +44990,7 @@ var init_src3 = __esm({
44861
44990
  init_ThemeScope();
44862
44991
  init_ThemeFontLoader();
44863
44992
  init_ThemeScopeCore();
44993
+ init_ResponsiveScope();
44864
44994
  init_themeScopeUtils();
44865
44995
  init_fonts();
44866
44996
  init_buildThemeRuntime();
@@ -44874,7 +45004,7 @@ var init_src3 = __esm({
44874
45004
  });
44875
45005
 
44876
45006
  // ../api/src/sdkConfig/contracts.ts
44877
- import { z as z69 } from "zod";
45007
+ import { z as z67 } from "zod";
44878
45008
  function unsafeRetypeZodSchema(schema) {
44879
45009
  return schema;
44880
45010
  }
@@ -44883,17 +45013,17 @@ var init_contracts2 = __esm({
44883
45013
  "../api/src/sdkConfig/contracts.ts"() {
44884
45014
  "use strict";
44885
45015
  init_src3();
44886
- navIdListSchema = z69.preprocess((value) => {
45016
+ navIdListSchema = z67.preprocess((value) => {
44887
45017
  if (!Array.isArray(value)) return void 0;
44888
45018
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
44889
45019
  return filtered.length > 0 ? filtered : void 0;
44890
- }, z69.array(z69.string()).max(200).optional());
44891
- dashboardNavVisibilityBaseSchema = z69.object({
44892
- mode: z69.enum(["augment", "restrict"]).optional(),
45020
+ }, z67.array(z67.string()).max(200).optional());
45021
+ dashboardNavVisibilityBaseSchema = z67.object({
45022
+ mode: z67.enum(["augment", "restrict"]).optional(),
44893
45023
  allowIds: navIdListSchema,
44894
45024
  denyIds: navIdListSchema
44895
45025
  }).strip();
44896
- dashboardNavVisibilityRolesSchema = z69.object({
45026
+ dashboardNavVisibilityRolesSchema = z67.object({
44897
45027
  administrator: dashboardNavVisibilityBaseSchema.optional(),
44898
45028
  editor: dashboardNavVisibilityBaseSchema.optional(),
44899
45029
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -44901,63 +45031,63 @@ var init_contracts2 = __esm({
44901
45031
  dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
44902
45032
  roles: dashboardNavVisibilityRolesSchema
44903
45033
  }).strip();
44904
- dashboardNavigationConfigSchema = z69.object({
45034
+ dashboardNavigationConfigSchema = z67.object({
44905
45035
  siteNav: dashboardNavVisibilitySchema.optional(),
44906
45036
  settingsNav: dashboardNavVisibilitySchema.optional()
44907
45037
  }).strip();
44908
- dashboardConfigSchema = z69.object({
44909
- previewEditingEnabled: z69.boolean().optional(),
45038
+ dashboardConfigSchema = z67.object({
45039
+ previewEditingEnabled: z67.boolean().optional(),
44910
45040
  navigation: dashboardNavigationConfigSchema.optional()
44911
45041
  }).strip();
44912
45042
  fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
44913
45043
  nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
44914
- sdkLoaderEndpointSchema = z69.enum(SUPPORTED_LOADER_ENDPOINTS);
44915
- loaderFallbackScalarSchema = z69.union([
44916
- z69.string(),
44917
- z69.number(),
44918
- z69.boolean(),
44919
- z69.null()
45044
+ sdkLoaderEndpointSchema = z67.enum(SUPPORTED_LOADER_ENDPOINTS);
45045
+ loaderFallbackScalarSchema = z67.union([
45046
+ z67.string(),
45047
+ z67.number(),
45048
+ z67.boolean(),
45049
+ z67.null()
44920
45050
  ]);
44921
- loaderParamBindingSchema = z69.object({
44922
- $bind: z69.object({
44923
- from: z69.string().min(1, "Binding path is required"),
45051
+ loaderParamBindingSchema = z67.object({
45052
+ $bind: z67.object({
45053
+ from: z67.string().min(1, "Binding path is required"),
44924
45054
  fallback: loaderFallbackScalarSchema.optional()
44925
45055
  })
44926
45056
  });
44927
- loaderParamValueSchema = z69.union([
44928
- z69.string(),
44929
- z69.number(),
44930
- z69.boolean(),
45057
+ loaderParamValueSchema = z67.union([
45058
+ z67.string(),
45059
+ z67.number(),
45060
+ z67.boolean(),
44931
45061
  loaderParamBindingSchema
44932
45062
  ]);
44933
- sdkConfigLoaderSchema = z69.object({
45063
+ sdkConfigLoaderSchema = z67.object({
44934
45064
  endpoint: sdkLoaderEndpointSchema,
44935
- params: z69.record(z69.string(), loaderParamValueSchema),
44936
- mode: z69.enum(["server", "client"]).default("server")
45065
+ params: z67.record(z67.string(), loaderParamValueSchema),
45066
+ mode: z67.enum(["server", "client"]).default("server")
44937
45067
  });
44938
- sdkDataLoadersSchema = z69.record(z69.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
44939
- sdkCustomBlockIdSchema = z69.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
45068
+ sdkDataLoadersSchema = z67.record(z67.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
45069
+ sdkCustomBlockIdSchema = z67.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
44940
45070
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
44941
45071
  }).transform((value) => value);
44942
- sdkCustomBlockInputSchema = z69.object({
45072
+ sdkCustomBlockInputSchema = z67.object({
44943
45073
  id: sdkCustomBlockIdSchema,
44944
- title: z69.string().min(1),
44945
- titleSource: z69.union([z69.string().min(1), z69.array(z69.string().min(1)).min(1)]).optional(),
44946
- description: z69.string().optional(),
45074
+ title: z67.string().min(1),
45075
+ titleSource: z67.union([z67.string().min(1), z67.array(z67.string().min(1)).min(1)]).optional(),
45076
+ description: z67.string().optional(),
44947
45077
  category: blockCategoryEnum,
44948
- icon: z69.string().optional(),
44949
- tags: z69.array(z69.string()).optional(),
45078
+ icon: z67.string().optional(),
45079
+ tags: z67.array(z67.string()).optional(),
44950
45080
  fields: fieldDefinitionInputSchema.array().min(1),
44951
45081
  dataLoaders: sdkDataLoadersSchema,
44952
45082
  layout: NodeSchema.optional(),
44953
- variants: z69.record(z69.string().min(1), NodeSchema).optional(),
44954
- defaultVariant: z69.string().min(1).optional(),
44955
- variantOptions: z69.record(
44956
- z69.string().min(1),
44957
- z69.object({
44958
- label: z69.string().min(1).optional(),
44959
- description: z69.string().min(1).optional(),
44960
- icon: z69.string().min(1).optional()
45083
+ variants: z67.record(z67.string().min(1), NodeSchema).optional(),
45084
+ defaultVariant: z67.string().min(1).optional(),
45085
+ variantOptions: z67.record(
45086
+ z67.string().min(1),
45087
+ z67.object({
45088
+ label: z67.string().min(1).optional(),
45089
+ description: z67.string().min(1).optional(),
45090
+ icon: z67.string().min(1).optional()
44961
45091
  })
44962
45092
  ).optional(),
44963
45093
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -44968,7 +45098,7 @@ var init_contracts2 = __esm({
44968
45098
  const exists = data.fields.some((field) => field.id === source);
44969
45099
  if (!exists) {
44970
45100
  ctx.addIssue({
44971
- code: z69.ZodIssueCode.custom,
45101
+ code: z67.ZodIssueCode.custom,
44972
45102
  message: `titleSource must reference a valid field ID (got "${source}")`,
44973
45103
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
44974
45104
  });
@@ -44977,7 +45107,7 @@ var init_contracts2 = __esm({
44977
45107
  }
44978
45108
  if (data.layout && data.variants) {
44979
45109
  ctx.addIssue({
44980
- code: z69.ZodIssueCode.custom,
45110
+ code: z67.ZodIssueCode.custom,
44981
45111
  message: "Custom block must define either `layout` or `variants`, not both",
44982
45112
  path: ["variants"]
44983
45113
  });
@@ -44986,14 +45116,14 @@ var init_contracts2 = __esm({
44986
45116
  const keys = Object.keys(data.variants);
44987
45117
  if (keys.length === 0) {
44988
45118
  ctx.addIssue({
44989
- code: z69.ZodIssueCode.custom,
45119
+ code: z67.ZodIssueCode.custom,
44990
45120
  message: "`variants` must contain at least one variant key",
44991
45121
  path: ["variants"]
44992
45122
  });
44993
45123
  }
44994
45124
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
44995
45125
  ctx.addIssue({
44996
- code: z69.ZodIssueCode.custom,
45126
+ code: z67.ZodIssueCode.custom,
44997
45127
  message: "`defaultVariant` must be a key present in `variants`",
44998
45128
  path: ["defaultVariant"]
44999
45129
  });
@@ -45002,7 +45132,7 @@ var init_contracts2 = __esm({
45002
45132
  for (const key of Object.keys(data.variantOptions)) {
45003
45133
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
45004
45134
  ctx.addIssue({
45005
- code: z69.ZodIssueCode.custom,
45135
+ code: z67.ZodIssueCode.custom,
45006
45136
  message: "`variantOptions` key must exist in `variants`",
45007
45137
  path: ["variantOptions", key]
45008
45138
  });
@@ -45011,78 +45141,78 @@ var init_contracts2 = __esm({
45011
45141
  }
45012
45142
  }
45013
45143
  });
45014
- sdkBlockFieldExtensionInputSchema = z69.object({
45144
+ sdkBlockFieldExtensionInputSchema = z67.object({
45015
45145
  fields: fieldDefinitionInputSchema.array().min(1)
45016
45146
  });
45017
- sdkBlockFieldExtensionsInputSchema = z69.record(
45018
- z69.string().min(1),
45147
+ sdkBlockFieldExtensionsInputSchema = z67.record(
45148
+ z67.string().min(1),
45019
45149
  sdkBlockFieldExtensionInputSchema
45020
45150
  );
45021
- sdkThemePaletteSchema = z69.record(z69.string(), z69.string());
45022
- sdkThemeConfigSchema = z69.object({
45151
+ sdkThemePaletteSchema = z67.record(z67.string(), z67.string());
45152
+ sdkThemeConfigSchema = z67.object({
45023
45153
  palette: sdkThemePaletteSchema
45024
45154
  });
45025
- sdkSectionBackgroundSchema = z69.object({
45026
- id: z69.string().min(1),
45027
- label: z69.string().min(1),
45028
- token: z69.string().min(1)
45155
+ sdkSectionBackgroundSchema = z67.object({
45156
+ id: z67.string().min(1),
45157
+ label: z67.string().min(1),
45158
+ token: z67.string().min(1)
45029
45159
  });
45030
- sdkSectionOptionsConfigSchema = z69.object({
45031
- backgroundColor: z69.boolean().optional(),
45032
- backgroundImage: z69.boolean().optional(),
45033
- backgroundGradient: z69.boolean().optional(),
45034
- spacing: z69.union([z69.array(z69.enum(["compact", "default", "spacious"])), z69.boolean()]).optional(),
45035
- textColor: z69.boolean().optional()
45160
+ sdkSectionOptionsConfigSchema = z67.object({
45161
+ backgroundColor: z67.boolean().optional(),
45162
+ backgroundImage: z67.boolean().optional(),
45163
+ backgroundGradient: z67.boolean().optional(),
45164
+ spacing: z67.union([z67.array(z67.enum(["compact", "default", "spacious"])), z67.boolean()]).optional(),
45165
+ textColor: z67.boolean().optional()
45036
45166
  });
45037
- sdkContainerOptionsConfigSchema = z69.object({
45038
- maxWidth: z69.union([z69.array(z69.enum(["narrow", "default", "wide", "full"])), z69.boolean()]).optional(),
45039
- alignment: z69.union([z69.array(z69.enum(["left", "center", "right"])), z69.boolean()]).optional()
45167
+ sdkContainerOptionsConfigSchema = z67.object({
45168
+ maxWidth: z67.union([z67.array(z67.enum(["narrow", "default", "wide", "full"])), z67.boolean()]).optional(),
45169
+ alignment: z67.union([z67.array(z67.enum(["left", "center", "right"])), z67.boolean()]).optional()
45040
45170
  });
45041
- sdkSiteStyleConfigSchema = z69.object({
45042
- sectionBackgrounds: z69.array(sdkSectionBackgroundSchema).optional(),
45171
+ sdkSiteStyleConfigSchema = z67.object({
45172
+ sectionBackgrounds: z67.array(sdkSectionBackgroundSchema).optional(),
45043
45173
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
45044
45174
  containerOptions: sdkContainerOptionsConfigSchema.optional()
45045
45175
  });
45046
- sdkSiteLayoutConfigSchema = z69.object({
45047
- footerBlocks: z69.array(
45048
- z69.object({
45049
- id: z69.string().min(1).optional(),
45050
- kind: z69.string().min(1),
45051
- content: z69.record(z69.string(), z69.unknown()).optional()
45176
+ sdkSiteLayoutConfigSchema = z67.object({
45177
+ footerBlocks: z67.array(
45178
+ z67.object({
45179
+ id: z67.string().min(1).optional(),
45180
+ kind: z67.string().min(1),
45181
+ content: z67.record(z67.string(), z67.unknown()).optional()
45052
45182
  })
45053
45183
  ).optional()
45054
45184
  });
45055
- sdkFieldSelectOptionSchema = z69.object({
45056
- value: z69.string(),
45057
- label: z69.string()
45185
+ sdkFieldSelectOptionSchema = z67.object({
45186
+ value: z67.string(),
45187
+ label: z67.string()
45058
45188
  });
45059
- sdkBlockFieldConfigSchema = z69.object({
45060
- options: z69.array(sdkFieldSelectOptionSchema).optional()
45189
+ sdkBlockFieldConfigSchema = z67.object({
45190
+ options: z67.array(sdkFieldSelectOptionSchema).optional()
45061
45191
  });
45062
- sdkBlockFieldOptionsMapSchema = z69.record(
45063
- z69.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
45192
+ sdkBlockFieldOptionsMapSchema = z67.record(
45193
+ z67.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
45064
45194
  message: "Block ID must be 'block.*' or 'custom.*' format"
45065
45195
  }),
45066
- z69.record(z69.string().min(1), sdkBlockFieldConfigSchema)
45196
+ z67.record(z67.string().min(1), sdkBlockFieldConfigSchema)
45067
45197
  ).optional();
45068
- sdkContentTypeTemplateConfigSchema = z69.object({
45069
- blocks: z69.array(z69.unknown())
45198
+ sdkContentTypeTemplateConfigSchema = z67.object({
45199
+ blocks: z67.array(z67.unknown())
45070
45200
  }).passthrough();
45071
- sdkContentTypeOrderingConfigSchema = z69.object({
45072
- mode: z69.enum(["default", "manual"]).optional()
45201
+ sdkContentTypeOrderingConfigSchema = z67.object({
45202
+ mode: z67.enum(["default", "manual"]).optional()
45073
45203
  }).optional();
45074
- sdkContentTypeConfigSchema = z69.object({
45075
- key: z69.string().min(1),
45076
- fields: z69.array(z69.unknown()),
45204
+ sdkContentTypeConfigSchema = z67.object({
45205
+ key: z67.string().min(1),
45206
+ fields: z67.array(z67.unknown()),
45077
45207
  ordering: sdkContentTypeOrderingConfigSchema,
45078
45208
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
45079
45209
  }).passthrough();
45080
- sdkContentConfigSchema = z69.object({
45081
- contentTypes: z69.array(sdkContentTypeConfigSchema).optional(),
45082
- pages: z69.array(z69.unknown()).optional(),
45083
- entries: z69.array(z69.unknown()).optional(),
45084
- navigationMenus: z69.array(z69.unknown()).optional(),
45085
- settings: z69.unknown().optional()
45210
+ sdkContentConfigSchema = z67.object({
45211
+ contentTypes: z67.array(sdkContentTypeConfigSchema).optional(),
45212
+ pages: z67.array(z67.unknown()).optional(),
45213
+ entries: z67.array(z67.unknown()).optional(),
45214
+ navigationMenus: z67.array(z67.unknown()).optional(),
45215
+ settings: z67.unknown().optional()
45086
45216
  }).passthrough();
45087
45217
  SDK_WORKFLOW_ID_MAX_LENGTH = 120;
45088
45218
  SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -45097,62 +45227,62 @@ var init_contracts2 = __esm({
45097
45227
  SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
45098
45228
  SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
45099
45229
  SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
45100
- sdkWorkflowIdSchema = z69.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
45230
+ sdkWorkflowIdSchema = z67.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
45101
45231
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
45102
45232
  });
45103
- sdkWorkflowEndpointSchema = z69.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 "/"' });
45104
- sdkWorkflowManualTriggerSchema = z69.object({
45105
- type: z69.literal("manual")
45233
+ sdkWorkflowEndpointSchema = z67.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 "/"' });
45234
+ sdkWorkflowManualTriggerSchema = z67.object({
45235
+ type: z67.literal("manual")
45106
45236
  }).strict();
45107
- sdkWorkflowTriggerFieldSchema = z69.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
45237
+ sdkWorkflowTriggerFieldSchema = z67.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
45108
45238
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
45109
45239
  });
45110
- sdkWorkflowFieldChangedConditionSchema = z69.object({
45240
+ sdkWorkflowFieldChangedConditionSchema = z67.object({
45111
45241
  field: sdkWorkflowTriggerFieldSchema,
45112
- changed: z69.literal(true)
45242
+ changed: z67.literal(true)
45113
45243
  }).strict();
45114
- sdkWorkflowFieldEmptyConditionSchema = z69.object({
45244
+ sdkWorkflowFieldEmptyConditionSchema = z67.object({
45115
45245
  field: sdkWorkflowTriggerFieldSchema,
45116
- isEmpty: z69.boolean()
45246
+ isEmpty: z67.boolean()
45117
45247
  }).strict();
45118
- sdkWorkflowEntryDraftUpdatedTriggerSchema = z69.object({
45119
- type: z69.literal("entry.draft.updated"),
45120
- when: z69.array(
45121
- z69.union([
45248
+ sdkWorkflowEntryDraftUpdatedTriggerSchema = z67.object({
45249
+ type: z67.literal("entry.draft.updated"),
45250
+ when: z67.array(
45251
+ z67.union([
45122
45252
  sdkWorkflowFieldChangedConditionSchema,
45123
45253
  sdkWorkflowFieldEmptyConditionSchema
45124
45254
  ])
45125
45255
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
45126
45256
  }).strict();
45127
- sdkWorkflowTriggerSchema = z69.discriminatedUnion("type", [
45257
+ sdkWorkflowTriggerSchema = z67.discriminatedUnion("type", [
45128
45258
  sdkWorkflowManualTriggerSchema,
45129
45259
  sdkWorkflowEntryDraftUpdatedTriggerSchema
45130
45260
  ]);
45131
- sdkWorkflowConfirmationSchema = z69.object({
45132
- title: z69.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
45133
- body: z69.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
45261
+ sdkWorkflowConfirmationSchema = z67.object({
45262
+ title: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
45263
+ body: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
45134
45264
  }).strict();
45135
- sdkWorkflowConfigSchema = z69.object({
45265
+ sdkWorkflowConfigSchema = z67.object({
45136
45266
  id: sdkWorkflowIdSchema,
45137
- title: z69.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
45138
- description: z69.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
45139
- contentType: z69.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
45267
+ title: z67.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
45268
+ description: z67.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
45269
+ contentType: z67.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
45140
45270
  endpoint: sdkWorkflowEndpointSchema,
45141
- triggers: z69.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
45271
+ triggers: z67.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
45142
45272
  confirmation: sdkWorkflowConfirmationSchema.optional()
45143
45273
  }).strict();
45144
- sdkWorkflowsSchema = z69.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
45274
+ sdkWorkflowsSchema = z67.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
45145
45275
  const ids = workflows.map((workflow) => workflow.id);
45146
45276
  return ids.length === new Set(ids).size;
45147
45277
  }, { message: "Workflow IDs must be unique" }).optional();
45148
- riverbankSiteConfigInputSchema = z69.object({
45149
- siteId: z69.string().uuid(),
45150
- previewUrl: z69.string().url().optional(),
45151
- liveUrl: z69.string().url().optional(),
45278
+ riverbankSiteConfigInputSchema = z67.object({
45279
+ siteId: z67.string().uuid(),
45280
+ previewUrl: z67.string().url().optional(),
45281
+ liveUrl: z67.string().url().optional(),
45152
45282
  theme: sdkThemeConfigSchema.optional(),
45153
45283
  styles: sdkSiteStyleConfigSchema.optional(),
45154
45284
  layout: sdkSiteLayoutConfigSchema.optional(),
45155
- customBlocks: z69.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
45285
+ customBlocks: z67.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
45156
45286
  const ids = blocks.map((b) => b.id);
45157
45287
  return ids.length === new Set(ids).size;
45158
45288
  }, { message: "Block IDs must be unique" }).optional(),
@@ -45160,22 +45290,22 @@ var init_contracts2 = __esm({
45160
45290
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
45161
45291
  workflows: sdkWorkflowsSchema,
45162
45292
  content: sdkContentConfigSchema.optional(),
45163
- contentDir: z69.string().optional(),
45164
- sync: z69.object({
45165
- existingEntries: z69.enum(["skip", "update"]).optional()
45293
+ contentDir: z67.string().optional(),
45294
+ sync: z67.object({
45295
+ existingEntries: z67.enum(["skip", "update"]).optional()
45166
45296
  }).optional(),
45167
- deploy: z69.object({
45168
- verifyCommand: z69.string().optional(),
45169
- prebuildOutput: z69.string().optional()
45297
+ deploy: z67.object({
45298
+ verifyCommand: z67.string().optional(),
45299
+ prebuildOutput: z67.string().optional()
45170
45300
  }).optional(),
45171
- themeSource: z69.enum(["local", "cms"]).optional(),
45172
- activeTheme: z69.string().optional(),
45173
- enablePortal: z69.boolean().optional(),
45301
+ themeSource: z67.enum(["local", "cms"]).optional(),
45302
+ activeTheme: z67.string().optional(),
45303
+ enablePortal: z67.boolean().optional(),
45174
45304
  dashboard: dashboardConfigSchema.optional()
45175
45305
  }).strict();
45176
- pushSdkConfigBodySchema = z69.object({
45306
+ pushSdkConfigBodySchema = z67.object({
45177
45307
  config: riverbankSiteConfigInputSchema,
45178
- forceContentTypes: z69.boolean().optional()
45308
+ forceContentTypes: z67.boolean().optional()
45179
45309
  }).strict();
45180
45310
  }
45181
45311
  });
@@ -45202,7 +45332,7 @@ var init_mailchimpIntegration = __esm({
45202
45332
  });
45203
45333
 
45204
45334
  // ../api/src/siteOnboarding.ts
45205
- import { z as z70 } from "zod";
45335
+ import { z as z68 } from "zod";
45206
45336
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS, acknowledgeLaunchRequirementRequestSchema, goLiveSiteRequestSchema;
45207
45337
  var init_siteOnboarding = __esm({
45208
45338
  "../api/src/siteOnboarding.ts"() {
@@ -45213,24 +45343,24 @@ var init_siteOnboarding = __esm({
45213
45343
  reason: "launch_anyway"
45214
45344
  }
45215
45345
  };
45216
- acknowledgeLaunchRequirementRequestSchema = z70.discriminatedUnion(
45346
+ acknowledgeLaunchRequirementRequestSchema = z68.discriminatedUnion(
45217
45347
  "requirementId",
45218
45348
  [
45219
- z70.object({
45220
- requirementId: z70.literal("review_generated_site")
45349
+ z68.object({
45350
+ requirementId: z68.literal("review_generated_site")
45221
45351
  }),
45222
- z70.object({
45223
- requirementId: z70.literal(
45352
+ z68.object({
45353
+ requirementId: z68.literal(
45224
45354
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
45225
45355
  ),
45226
- overrideReason: z70.literal(
45356
+ overrideReason: z68.literal(
45227
45357
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
45228
45358
  )
45229
45359
  })
45230
45360
  ]
45231
45361
  );
45232
- goLiveSiteRequestSchema = z70.object({
45233
- acceptExtraSiteCharge: z70.boolean().optional()
45362
+ goLiveSiteRequestSchema = z68.object({
45363
+ acceptExtraSiteCharge: z68.boolean().optional()
45234
45364
  });
45235
45365
  }
45236
45366
  });
@@ -45384,7 +45514,7 @@ var init_bookingRefundOutcomes = __esm({
45384
45514
  });
45385
45515
 
45386
45516
  // ../api/src/bookingVerticals.ts
45387
- import { z as z71 } from "zod";
45517
+ import { z as z69 } from "zod";
45388
45518
  function parseVerticalId(value) {
45389
45519
  return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
45390
45520
  }
@@ -45565,39 +45695,39 @@ var init_bookingVerticals = __esm({
45565
45695
  VERTICAL_PRESET_ID_SET = new Set(
45566
45696
  VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
45567
45697
  );
45568
- VerticalIdSchema = z71.string().trim().transform((value, ctx) => {
45698
+ VerticalIdSchema = z69.string().trim().transform((value, ctx) => {
45569
45699
  const parsed = parseVerticalId(value);
45570
45700
  if (!parsed) {
45571
45701
  ctx.addIssue({
45572
- code: z71.ZodIssueCode.custom,
45702
+ code: z69.ZodIssueCode.custom,
45573
45703
  message: "Unknown booking vertical"
45574
45704
  });
45575
- return z71.NEVER;
45705
+ return z69.NEVER;
45576
45706
  }
45577
45707
  return parsed;
45578
45708
  });
45579
- VerticalPresetIdSchema = z71.string().trim().transform((value, ctx) => {
45709
+ VerticalPresetIdSchema = z69.string().trim().transform((value, ctx) => {
45580
45710
  const parsed = parseVerticalPresetId(value);
45581
45711
  if (!parsed) {
45582
45712
  ctx.addIssue({
45583
- code: z71.ZodIssueCode.custom,
45713
+ code: z69.ZodIssueCode.custom,
45584
45714
  message: "Unknown booking preset"
45585
45715
  });
45586
- return z71.NEVER;
45716
+ return z69.NEVER;
45587
45717
  }
45588
45718
  return parsed;
45589
45719
  });
45590
- BookingVerticalConfigSchema = z71.object({
45720
+ BookingVerticalConfigSchema = z69.object({
45591
45721
  verticalId: VerticalIdSchema.nullable(),
45592
- selectedPresetIds: z71.array(VerticalPresetIdSchema).max(20)
45722
+ selectedPresetIds: z69.array(VerticalPresetIdSchema).max(20)
45593
45723
  }).transform((value, ctx) => {
45594
45724
  const resolved = resolveSiteVerticalBookingConfig(value);
45595
45725
  if (resolved.kind === "invalid") {
45596
45726
  ctx.addIssue({
45597
- code: z71.ZodIssueCode.custom,
45727
+ code: z69.ZodIssueCode.custom,
45598
45728
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
45599
45729
  });
45600
- return z71.NEVER;
45730
+ return z69.NEVER;
45601
45731
  }
45602
45732
  return resolved.config;
45603
45733
  });
@@ -45615,8 +45745,15 @@ var init_event_destination_policy = __esm({
45615
45745
  }
45616
45746
  });
45617
45747
 
45748
+ // ../api/src/event-listing-destination.ts
45749
+ var init_event_listing_destination = __esm({
45750
+ "../api/src/event-listing-destination.ts"() {
45751
+ "use strict";
45752
+ }
45753
+ });
45754
+
45618
45755
  // ../api/src/utils/isRecord.ts
45619
- function isRecord9(value) {
45756
+ function isRecord10(value) {
45620
45757
  return typeof value === "object" && value !== null && !Array.isArray(value);
45621
45758
  }
45622
45759
  var init_isRecord = __esm({
@@ -45635,7 +45772,7 @@ var init_error_propagation = __esm({
45635
45772
  });
45636
45773
 
45637
45774
  // ../api/src/appointmentSetup.ts
45638
- import { z as z72 } from "zod";
45775
+ import { z as z70 } from "zod";
45639
45776
  var APPOINTMENT_SETUP_MAX_MINUTES, appointmentSetupRefSchema, appointmentSetupVenueChoiceSchema, appointmentSetupPaymentDraftSchema, appointmentSetupServiceAssignmentDraftSchema, appointmentSetupServiceDraftSchema, appointmentSetupPractitionerDraftSchema, appointmentSetupWeeklyWindowDraftSchema, appointmentSetupStartTimePolicyDraftSchema, appointmentSetupAvailabilityDraftSchema, APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX, APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX, appointmentSetupBookingNoticeSchema, applyAppointmentSetupRequestSchema;
45640
45777
  var init_appointmentSetup = __esm({
45641
45778
  "../api/src/appointmentSetup.ts"() {
@@ -45643,49 +45780,49 @@ var init_appointmentSetup = __esm({
45643
45780
  init_envelope();
45644
45781
  init_error_propagation();
45645
45782
  APPOINTMENT_SETUP_MAX_MINUTES = 1440;
45646
- appointmentSetupRefSchema = z72.discriminatedUnion("kind", [
45647
- z72.object({ kind: z72.literal("existing"), id: z72.string().min(1) }),
45648
- z72.object({ kind: z72.literal("new"), draftId: z72.string().min(1) })
45783
+ appointmentSetupRefSchema = z70.discriminatedUnion("kind", [
45784
+ z70.object({ kind: z70.literal("existing"), id: z70.string().min(1) }),
45785
+ z70.object({ kind: z70.literal("new"), draftId: z70.string().min(1) })
45649
45786
  ]);
45650
- appointmentSetupVenueChoiceSchema = z72.discriminatedUnion("kind", [
45651
- z72.object({ kind: z72.literal("none") }),
45652
- z72.object({ kind: z72.literal("existing"), venueId: z72.string().min(1) }),
45653
- z72.object({
45654
- kind: z72.literal("create"),
45655
- draftId: z72.string().min(1),
45656
- title: z72.string().trim().min(1),
45657
- description: z72.string().nullable(),
45658
- timezone: z72.string().trim().min(1).nullable(),
45659
- addressJson: z72.record(z72.string(), z72.unknown()),
45660
- locationJson: z72.object({ lat: z72.number(), lng: z72.number() }).nullable()
45787
+ appointmentSetupVenueChoiceSchema = z70.discriminatedUnion("kind", [
45788
+ z70.object({ kind: z70.literal("none") }),
45789
+ z70.object({ kind: z70.literal("existing"), venueId: z70.string().min(1) }),
45790
+ z70.object({
45791
+ kind: z70.literal("create"),
45792
+ draftId: z70.string().min(1),
45793
+ title: z70.string().trim().min(1),
45794
+ description: z70.string().nullable(),
45795
+ timezone: z70.string().trim().min(1).nullable(),
45796
+ addressJson: z70.record(z70.string(), z70.unknown()),
45797
+ locationJson: z70.object({ lat: z70.number(), lng: z70.number() }).nullable()
45661
45798
  })
45662
45799
  ]);
45663
- appointmentSetupPaymentDraftSchema = z72.object({
45664
- priceType: z72.union([z72.literal("free"), z72.literal("paid")])
45665
- });
45666
- appointmentSetupServiceAssignmentDraftSchema = z72.discriminatedUnion("kind", [
45667
- z72.object({ kind: z72.literal("all_practitioners") }),
45668
- z72.object({
45669
- kind: z72.literal("selected_practitioners"),
45670
- resourceRefs: z72.array(appointmentSetupRefSchema)
45800
+ appointmentSetupPaymentDraftSchema = z70.object({
45801
+ priceType: z70.union([z70.literal("free"), z70.literal("paid")])
45802
+ });
45803
+ appointmentSetupServiceAssignmentDraftSchema = z70.discriminatedUnion("kind", [
45804
+ z70.object({ kind: z70.literal("all_practitioners") }),
45805
+ z70.object({
45806
+ kind: z70.literal("selected_practitioners"),
45807
+ resourceRefs: z70.array(appointmentSetupRefSchema)
45671
45808
  })
45672
45809
  ]);
45673
- appointmentSetupServiceDraftSchema = z72.object({
45810
+ appointmentSetupServiceDraftSchema = z70.object({
45674
45811
  ref: appointmentSetupRefSchema,
45675
- title: z72.string().trim().min(1),
45676
- description: z72.string().nullable(),
45677
- durationMinutes: z72.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
45678
- prepMinutes: z72.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45679
- cleanupMinutes: z72.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45680
- priceAmount: z72.number().int().nonnegative().nullable(),
45681
- isActive: z72.boolean(),
45682
- locationType: z72.union([
45683
- z72.literal("virtual"),
45684
- z72.literal("in_person"),
45685
- z72.literal("hybrid")
45812
+ title: z70.string().trim().min(1),
45813
+ description: z70.string().nullable(),
45814
+ durationMinutes: z70.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
45815
+ prepMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45816
+ cleanupMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45817
+ priceAmount: z70.number().int().nonnegative().nullable(),
45818
+ isActive: z70.boolean(),
45819
+ locationType: z70.union([
45820
+ z70.literal("virtual"),
45821
+ z70.literal("in_person"),
45822
+ z70.literal("hybrid")
45686
45823
  ]),
45687
45824
  venue: appointmentSetupVenueChoiceSchema,
45688
- timezone: z72.string().trim().min(1).nullable(),
45825
+ timezone: z70.string().trim().min(1).nullable(),
45689
45826
  payment: appointmentSetupPaymentDraftSchema,
45690
45827
  assignment: appointmentSetupServiceAssignmentDraftSchema
45691
45828
  }).superRefine((service, ctx) => {
@@ -45704,54 +45841,61 @@ var init_appointmentSetup = __esm({
45704
45841
  });
45705
45842
  }
45706
45843
  });
45707
- appointmentSetupPractitionerDraftSchema = z72.object({
45844
+ appointmentSetupPractitionerDraftSchema = z70.object({
45708
45845
  ref: appointmentSetupRefSchema,
45709
- displayName: z72.string().trim().min(1),
45710
- bio: z72.string().nullable(),
45711
- timezone: z72.string().trim().min(1),
45712
- colorHex: z72.string().nullable()
45713
- });
45714
- appointmentSetupWeeklyWindowDraftSchema = z72.object({
45715
- weekday: z72.number().int().min(0).max(6),
45716
- startTime: z72.string(),
45717
- endTime: z72.string()
45718
- });
45719
- appointmentSetupStartTimePolicyDraftSchema = z72.discriminatedUnion("kind", [
45720
- z72.object({ kind: z72.literal("automatic_spacing") }),
45721
- z72.object({
45722
- kind: z72.literal("regular_interval"),
45723
- intervalMinutes: z72.union([
45724
- z72.literal(10),
45725
- z72.literal(15),
45726
- z72.literal(20),
45727
- z72.literal(30),
45728
- z72.literal(45),
45729
- z72.literal(60)
45846
+ displayName: z70.string().trim().min(1),
45847
+ bio: z70.string().nullable(),
45848
+ timezone: z70.string().trim().min(1),
45849
+ colorHex: z70.string().nullable()
45850
+ });
45851
+ appointmentSetupWeeklyWindowDraftSchema = z70.object({
45852
+ weekday: z70.number().int().min(0).max(6),
45853
+ startTime: z70.string(),
45854
+ endTime: z70.string()
45855
+ });
45856
+ appointmentSetupStartTimePolicyDraftSchema = z70.discriminatedUnion("kind", [
45857
+ z70.object({ kind: z70.literal("automatic_spacing") }),
45858
+ z70.object({
45859
+ kind: z70.literal("regular_interval"),
45860
+ intervalMinutes: z70.union([
45861
+ z70.literal(10),
45862
+ z70.literal(15),
45863
+ z70.literal(20),
45864
+ z70.literal(30),
45865
+ z70.literal(45),
45866
+ z70.literal(60)
45730
45867
  ])
45731
45868
  })
45732
45869
  ]);
45733
- appointmentSetupAvailabilityDraftSchema = z72.object({
45734
- kind: z72.literal("weekly_windows"),
45870
+ appointmentSetupAvailabilityDraftSchema = z70.object({
45871
+ kind: z70.literal("weekly_windows"),
45735
45872
  resourceRef: appointmentSetupRefSchema,
45736
45873
  serviceRef: appointmentSetupRefSchema.nullable(),
45737
- windows: z72.array(appointmentSetupWeeklyWindowDraftSchema),
45874
+ windows: z70.array(appointmentSetupWeeklyWindowDraftSchema),
45738
45875
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
45739
45876
  });
45740
45877
  APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
45741
45878
  APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
45742
- appointmentSetupBookingNoticeSchema = z72.object({
45743
- minLeadMinutes: z72.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
45744
- maxBookingNoticeMinutes: z72.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
45745
- });
45746
- applyAppointmentSetupRequestSchema = z72.object({
45747
- services: z72.array(appointmentSetupServiceDraftSchema),
45748
- practitioners: z72.array(appointmentSetupPractitionerDraftSchema),
45749
- availability: z72.array(appointmentSetupAvailabilityDraftSchema),
45879
+ appointmentSetupBookingNoticeSchema = z70.object({
45880
+ minLeadMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
45881
+ maxBookingNoticeMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
45882
+ });
45883
+ applyAppointmentSetupRequestSchema = z70.object({
45884
+ services: z70.array(appointmentSetupServiceDraftSchema),
45885
+ practitioners: z70.array(appointmentSetupPractitionerDraftSchema),
45886
+ availability: z70.array(appointmentSetupAvailabilityDraftSchema),
45750
45887
  bookingNotice: appointmentSetupBookingNoticeSchema
45751
45888
  });
45752
45889
  }
45753
45890
  });
45754
45891
 
45892
+ // ../api/src/bookingOperations.ts
45893
+ var init_bookingOperations = __esm({
45894
+ "../api/src/bookingOperations.ts"() {
45895
+ "use strict";
45896
+ }
45897
+ });
45898
+
45755
45899
  // ../api/src/bookingRecords.ts
45756
45900
  var BOOKING_QUESTION_ANSWER_EXPORT_SCOPES, BOOKING_QUESTION_ANSWER_EXPORT_SCOPE_VALUES;
45757
45901
  var init_bookingRecords = __esm({
@@ -45848,7 +45992,9 @@ var init_types19 = __esm({
45848
45992
  "use strict";
45849
45993
  init_accessAdmin();
45850
45994
  init_staffAccess();
45995
+ init_bookingOperations();
45851
45996
  init_siteOperations();
45997
+ init_bookings();
45852
45998
  init_siteMembers();
45853
45999
  }
45854
46000
  });
@@ -45861,7 +46007,7 @@ var init_eventAttendanceLabels = __esm({
45861
46007
  });
45862
46008
 
45863
46009
  // ../api/src/siteBanner.ts
45864
- import { z as z73 } from "zod";
46010
+ import { z as z71 } from "zod";
45865
46011
  function analyzeSiteBannerBody(body) {
45866
46012
  const sanitizedBody = sanitizeSiteBannerBodyInternal(body, { limitParagraphs: false });
45867
46013
  const paragraphs = collectParagraphs(sanitizedBody);
@@ -45980,7 +46126,7 @@ function sanitizeMarks(marks) {
45980
46126
  if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
45981
46127
  return [{ type: mark.type }];
45982
46128
  }
45983
- if (mark.type === "link" && isRecord9(mark.attrs) && typeof mark.attrs.href === "string") {
46129
+ if (mark.type === "link" && isRecord10(mark.attrs) && typeof mark.attrs.href === "string") {
45984
46130
  const attrs = { href: mark.attrs.href };
45985
46131
  if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
45986
46132
  attrs.target = mark.attrs.target;
@@ -45995,10 +46141,10 @@ function sanitizeMarks(marks) {
45995
46141
  return sanitized.length > 0 ? sanitized : void 0;
45996
46142
  }
45997
46143
  function unwrapRichTextValue(value) {
45998
- if (isRecord9(value) && isRecord9(value.doc)) {
46144
+ if (isRecord10(value) && isRecord10(value.doc)) {
45999
46145
  return unwrapRichTextValue(value.doc);
46000
46146
  }
46001
- if (isRecord9(value) && value.type === "doc") {
46147
+ if (isRecord10(value) && value.type === "doc") {
46002
46148
  return {
46003
46149
  type: "doc",
46004
46150
  content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
@@ -46007,7 +46153,7 @@ function unwrapRichTextValue(value) {
46007
46153
  return EMPTY_SITE_BANNER_BODY;
46008
46154
  }
46009
46155
  function isTipTapNodeLike(value) {
46010
- return isRecord9(value) && typeof value.type === "string";
46156
+ return isRecord10(value) && typeof value.type === "string";
46011
46157
  }
46012
46158
  function coerceTipTapNode(value) {
46013
46159
  return {
@@ -46015,9 +46161,9 @@ function coerceTipTapNode(value) {
46015
46161
  ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
46016
46162
  ...typeof value.text === "string" ? { text: value.text } : {},
46017
46163
  ...Array.isArray(value.marks) ? {
46018
- marks: value.marks.filter((mark) => isRecord9(mark) && typeof mark.type === "string").map((mark) => ({
46164
+ marks: value.marks.filter((mark) => isRecord10(mark) && typeof mark.type === "string").map((mark) => ({
46019
46165
  type: mark.type,
46020
- ...isRecord9(mark.attrs) ? { attrs: mark.attrs } : {}
46166
+ ...isRecord10(mark.attrs) ? { attrs: mark.attrs } : {}
46021
46167
  }))
46022
46168
  } : {}
46023
46169
  };
@@ -46044,19 +46190,19 @@ var init_siteBanner = __esm({
46044
46190
  SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
46045
46191
  SITE_BANNER_MAX_TEXT_LENGTH = 320;
46046
46192
  SITE_BANNER_MAX_PARAGRAPHS = 2;
46047
- siteBannerScopeSchema = z73.enum(SITE_BANNER_SCOPE_VALUES);
46048
- siteBannerToneSchema = z73.enum(SITE_BANNER_TONE_VALUES);
46049
- siteBannerBodySchema = z73.unknown().transform(unwrapRichTextValue);
46050
- siteBannerCtaSchema = z73.object({
46051
- label: z73.string().trim().min(1),
46193
+ siteBannerScopeSchema = z71.enum(SITE_BANNER_SCOPE_VALUES);
46194
+ siteBannerToneSchema = z71.enum(SITE_BANNER_TONE_VALUES);
46195
+ siteBannerBodySchema = z71.unknown().transform(unwrapRichTextValue);
46196
+ siteBannerCtaSchema = z71.object({
46197
+ label: z71.string().trim().min(1),
46052
46198
  link: linkPayloadSchema
46053
46199
  });
46054
- siteBannerSettingsSchema = z73.discriminatedUnion("enabled", [
46055
- z73.object({
46056
- enabled: z73.literal(false)
46200
+ siteBannerSettingsSchema = z71.discriminatedUnion("enabled", [
46201
+ z71.object({
46202
+ enabled: z71.literal(false)
46057
46203
  }),
46058
- z73.object({
46059
- enabled: z73.literal(true),
46204
+ z71.object({
46205
+ enabled: z71.literal(true),
46060
46206
  scope: siteBannerScopeSchema,
46061
46207
  tone: siteBannerToneSchema,
46062
46208
  body: siteBannerBodySchema,
@@ -46070,7 +46216,7 @@ var init_siteBanner = __esm({
46070
46216
  const analysis = analyzeSiteBannerBody(value.body);
46071
46217
  for (const issue of analysis.issues) {
46072
46218
  ctx.addIssue({
46073
- code: z73.ZodIssueCode.custom,
46219
+ code: z71.ZodIssueCode.custom,
46074
46220
  path: ["body"],
46075
46221
  message: siteBannerBodyIssueMessage(issue)
46076
46222
  });
@@ -46330,11 +46476,20 @@ var init_dashboardSiteNav = __esm({
46330
46476
  }
46331
46477
  });
46332
46478
 
46479
+ // ../api/src/settings/permissions.ts
46480
+ var init_permissions = __esm({
46481
+ "../api/src/settings/permissions.ts"() {
46482
+ "use strict";
46483
+ init_siteMembers();
46484
+ }
46485
+ });
46486
+
46333
46487
  // ../api/src/navigation/dashboardSettingsNav.ts
46334
46488
  var hiddenDemoSettingsNavSurfaceIds, hiddenDemoSettingsNavIds;
46335
46489
  var init_dashboardSettingsNav = __esm({
46336
46490
  "../api/src/navigation/dashboardSettingsNav.ts"() {
46337
46491
  "use strict";
46492
+ init_permissions();
46338
46493
  init_visibility();
46339
46494
  init_dashboardSiteNav();
46340
46495
  hiddenDemoSettingsNavSurfaceIds = [
@@ -46417,6 +46572,7 @@ var init_navigation = __esm({
46417
46572
  init_linkUrlType();
46418
46573
  init_dashboardSiteNav();
46419
46574
  init_dashboardSettingsNav();
46575
+ init_permissions();
46420
46576
  init_dashboardTeamMemberNav();
46421
46577
  init_dashboardBookingsNav();
46422
46578
  init_identity();
@@ -46460,75 +46616,75 @@ var init_aiPatch = __esm({
46460
46616
  });
46461
46617
 
46462
46618
  // ../api/src/aiPlayground.ts
46463
- import { z as z74 } from "zod";
46619
+ import { z as z72 } from "zod";
46464
46620
  var Rfc6902PatchOp, PlaygroundProposeRequest, MultiPagePatchEnvelope, MultiPageUpdateResponse;
46465
46621
  var init_aiPlayground = __esm({
46466
46622
  "../api/src/aiPlayground.ts"() {
46467
46623
  "use strict";
46468
- Rfc6902PatchOp = z74.discriminatedUnion("op", [
46624
+ Rfc6902PatchOp = z72.discriminatedUnion("op", [
46469
46625
  // Standard RFC-6902 operations
46470
- z74.object({
46471
- op: z74.literal("add"),
46472
- path: z74.string(),
46473
- value: z74.unknown()
46626
+ z72.object({
46627
+ op: z72.literal("add"),
46628
+ path: z72.string(),
46629
+ value: z72.unknown()
46474
46630
  }),
46475
- z74.object({
46476
- op: z74.literal("remove"),
46477
- path: z74.string()
46631
+ z72.object({
46632
+ op: z72.literal("remove"),
46633
+ path: z72.string()
46478
46634
  }),
46479
- z74.object({
46480
- op: z74.literal("replace"),
46481
- path: z74.string(),
46482
- value: z74.unknown()
46635
+ z72.object({
46636
+ op: z72.literal("replace"),
46637
+ path: z72.string(),
46638
+ value: z72.unknown()
46483
46639
  }),
46484
- z74.object({
46485
- op: z74.literal("move"),
46486
- from: z74.string(),
46487
- path: z74.string()
46640
+ z72.object({
46641
+ op: z72.literal("move"),
46642
+ from: z72.string(),
46643
+ path: z72.string()
46488
46644
  }),
46489
- z74.object({
46490
- op: z74.literal("copy"),
46491
- from: z74.string(),
46492
- path: z74.string()
46645
+ z72.object({
46646
+ op: z72.literal("copy"),
46647
+ from: z72.string(),
46648
+ path: z72.string()
46493
46649
  }),
46494
46650
  // Block-level operations (Phase 2)
46495
- z74.object({
46496
- op: z74.literal("add_block"),
46497
- blockKind: z74.string(),
46498
- afterBlockId: z74.string().nullable(),
46499
- content: z74.record(z74.string(), z74.unknown()),
46500
- rationale: z74.string()
46651
+ z72.object({
46652
+ op: z72.literal("add_block"),
46653
+ blockKind: z72.string(),
46654
+ afterBlockId: z72.string().nullable(),
46655
+ content: z72.record(z72.string(), z72.unknown()),
46656
+ rationale: z72.string()
46501
46657
  }),
46502
- z74.object({
46503
- op: z74.literal("delete_block"),
46504
- blockId: z74.string(),
46505
- rationale: z74.string()
46658
+ z72.object({
46659
+ op: z72.literal("delete_block"),
46660
+ blockId: z72.string(),
46661
+ rationale: z72.string()
46506
46662
  }),
46507
- z74.object({
46508
- op: z74.literal("reorder_block"),
46509
- blockId: z74.string(),
46510
- afterBlockId: z74.string().nullable(),
46511
- rationale: z74.string()
46663
+ z72.object({
46664
+ op: z72.literal("reorder_block"),
46665
+ blockId: z72.string(),
46666
+ afterBlockId: z72.string().nullable(),
46667
+ rationale: z72.string()
46512
46668
  })
46513
46669
  ]);
46514
- PlaygroundProposeRequest = z74.object({
46515
- request: z74.string().min(1).max(2e3)
46670
+ PlaygroundProposeRequest = z72.object({
46671
+ request: z72.string().min(1).max(2e3)
46516
46672
  });
46517
- MultiPagePatchEnvelope = z74.object({
46518
- pageId: z74.string(),
46519
- blockId: z74.string().optional(),
46673
+ MultiPagePatchEnvelope = z72.object({
46674
+ pageId: z72.string(),
46675
+ blockId: z72.string().optional(),
46520
46676
  // Not present for page-level ops
46521
- blockKind: z74.string().optional(),
46522
- blockPurpose: z74.string().optional().nullable(),
46523
- ops: z74.array(Rfc6902PatchOp),
46524
- rationale: z74.string(),
46525
- currentContent: z74.record(z74.string(), z74.unknown()).optional()
46677
+ blockKind: z72.string().optional(),
46678
+ blockPurpose: z72.string().optional().nullable(),
46679
+ ops: z72.array(Rfc6902PatchOp),
46680
+ rationale: z72.string(),
46681
+ currentContent: z72.record(z72.string(), z72.unknown()).optional()
46526
46682
  });
46527
- MultiPageUpdateResponse = z74.object({
46528
- patches: z74.array(MultiPagePatchEnvelope),
46529
- assistantMessage: z74.string(),
46530
- pagesModified: z74.number(),
46531
- toolCallsUsed: z74.number()
46683
+ MultiPageUpdateResponse = z72.object({
46684
+ patches: z72.array(MultiPagePatchEnvelope),
46685
+ assistantMessage: z72.string(),
46686
+ pagesModified: z72.number(),
46687
+ toolCallsUsed: z72.number()
46532
46688
  });
46533
46689
  }
46534
46690
  });
@@ -46609,7 +46765,9 @@ var init_src5 = __esm({
46609
46765
  init_customerMembershipOutcomes();
46610
46766
  init_bookingVerticals();
46611
46767
  init_event_destination_policy();
46768
+ init_event_listing_destination();
46612
46769
  init_appointmentSetup();
46770
+ init_bookingOperations();
46613
46771
  init_bookings();
46614
46772
  init_cache_tags();
46615
46773
  init_streamReader();
@@ -46643,6 +46801,7 @@ var init_src5 = __esm({
46643
46801
  init_linkUrlType();
46644
46802
  init_dashboardSiteNav();
46645
46803
  init_dashboardSettingsNav();
46804
+ init_permissions();
46646
46805
  init_automaticWorkflowTriggers();
46647
46806
  init_linkResolver();
46648
46807
  init_matcher();
@@ -46670,7 +46829,7 @@ var init_src5 = __esm({
46670
46829
  function isSupportedLoaderEndpoint2(endpoint) {
46671
46830
  return SUPPORTED_LOADER_ENDPOINTS.includes(endpoint);
46672
46831
  }
46673
- function isRecord10(value) {
46832
+ function isRecord11(value) {
46674
46833
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
46675
46834
  }
46676
46835
  function extractManualEntryRef(item) {
@@ -46678,7 +46837,7 @@ function extractManualEntryRef(item) {
46678
46837
  const trimmed = item.trim();
46679
46838
  return trimmed.length > 0 ? trimmed : null;
46680
46839
  }
46681
- if (!isRecord10(item)) return null;
46840
+ if (!isRecord11(item)) return null;
46682
46841
  for (const key of ENTRY_REF_KEYS) {
46683
46842
  const raw = item[key];
46684
46843
  if (typeof raw === "string" && raw.trim().length > 0) {
@@ -47060,7 +47219,7 @@ function collectMediaAssetSidecar(mediaAssets) {
47060
47219
  return Array.isArray(mediaAssets) && mediaAssets.length > 0 ? mediaAssets : void 0;
47061
47220
  }
47062
47221
  function convertPageResponseBlock(block) {
47063
- if (!isRecord11(block)) {
47222
+ if (!isRecord12(block)) {
47064
47223
  throw new Error("Invalid block format in page API response");
47065
47224
  }
47066
47225
  if (typeof block.id !== "string" && block.id !== null) {
@@ -47091,20 +47250,20 @@ function buildPageOutline(input) {
47091
47250
  blocks: input.blocks.map(convertPageResponseBlock)
47092
47251
  };
47093
47252
  }
47094
- function isRecord11(value) {
47253
+ function isRecord12(value) {
47095
47254
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
47096
47255
  }
47097
47256
  function readContentRecord(value) {
47098
- return isRecord11(value) ? value : void 0;
47257
+ return isRecord12(value) ? value : void 0;
47099
47258
  }
47100
47259
  function readNestedContentRecord(value) {
47101
- if (!isRecord11(value)) return null;
47260
+ if (!isRecord12(value)) return null;
47102
47261
  return readContentRecord(value.data) ?? null;
47103
47262
  }
47104
47263
  function sanitizeSdkRuntimeBlockContent(blockKind, content) {
47105
47264
  if (blockKind !== "block.newsletter-signup") return content;
47106
47265
  const sanitized = sanitizeNewsletterSignupPublicContent(content);
47107
- return isRecord11(sanitized) ? sanitized : {};
47266
+ return isRecord12(sanitized) ? sanitized : {};
47108
47267
  }
47109
47268
  function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
47110
47269
  return content ? sanitizeSdkRuntimeBlockContent(blockKind, content) : null;