@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
@@ -103,6 +103,8 @@ function publicEventPricingType(pricing) {
103
103
  case "ticket_types":
104
104
  case "course":
105
105
  return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
106
+ case "external":
107
+ return "external";
106
108
  }
107
109
  }
108
110
  function isFreePublicEventPriceDisplay(display) {
@@ -116,6 +118,7 @@ function isFreePublicEventPriceDisplay(display) {
116
118
  case "range":
117
119
  case "mixed":
118
120
  case "unavailable":
121
+ case "external":
119
122
  return false;
120
123
  }
121
124
  }
@@ -579,12 +582,17 @@ var visibleWhenPredicateSchema = z2.object({
579
582
  minItems: z2.number().int().nonnegative().optional(),
580
583
  maxItems: z2.number().int().nonnegative().optional()
581
584
  });
582
- var visibleWhenSchema = z2.union([
583
- visibleWhenPredicateSchema,
584
- z2.object({
585
- allOf: z2.array(visibleWhenPredicateSchema).min(1)
586
- })
587
- ]);
585
+ var visibleWhenSchema = z2.lazy(
586
+ () => z2.union([
587
+ visibleWhenPredicateSchema,
588
+ z2.object({
589
+ allOf: z2.array(visibleWhenSchema).min(1)
590
+ }),
591
+ z2.object({
592
+ anyOf: z2.array(visibleWhenSchema).min(1)
593
+ })
594
+ ])
595
+ );
588
596
  var uiSchema = z2.object({
589
597
  widget: z2.string().optional(),
590
598
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -12746,9 +12754,6 @@ var heroCopyFragment = defineFragment({
12746
12754
  maxLength: 600
12747
12755
  }
12748
12756
  ],
12749
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
12750
- // `splitEditorial` variant reads these nodes by index; keep the order stable
12751
- // (it fails fast at import if the count changes).
12752
12757
  layout: [
12753
12758
  text(
12754
12759
  {
@@ -14986,32 +14991,6 @@ var splitReverseLayout = splitLayoutWith([
14986
14991
  splitContentColumn,
14987
14992
  splitImageColumn
14988
14993
  ]);
14989
- var heroEyebrowNode = heroCopyFragment.layout[0];
14990
- var heroHeadlineNode = heroCopyFragment.layout[1];
14991
- var heroSubheadlineNode = heroCopyFragment.layout[2];
14992
- var heroCtaRowNode = heroCtaRowFragment.layout[0];
14993
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
14994
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
14995
- }
14996
- var heroEditorialBottomRow = inline(
14997
- {
14998
- gap: "lg",
14999
- align: "end",
15000
- justify: "start",
15001
- wrap: true,
15002
- className: "rb-w-full"
15003
- },
15004
- [heroSubheadlineNode, heroCtaRowNode]
15005
- );
15006
- var splitEditorialContentColumn = heroContentWrapper(
15007
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
15008
- "md",
15009
- "rb-w-full rb-text-left"
15010
- );
15011
- var splitEditorialLayout = splitLayoutWith([
15012
- splitEditorialContentColumn,
15013
- splitImageColumn
15014
- ]);
15015
14994
  var heroConfig = {
15016
14995
  id: "block.hero",
15017
14996
  title: "Hero",
@@ -15035,7 +15014,8 @@ var heroConfig = {
15035
15014
  id: "imageShape",
15036
15015
  label: "Image shape",
15037
15016
  defaultValue: "default",
15038
- uiIntent: "display"
15017
+ uiIntent: "display",
15018
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
15039
15019
  })
15040
15020
  ],
15041
15021
  layout: classicLayout,
@@ -15043,8 +15023,7 @@ var heroConfig = {
15043
15023
  classic: classicLayout,
15044
15024
  micro: microLayout,
15045
15025
  split: splitLayout,
15046
- splitReverse: splitReverseLayout,
15047
- splitEditorial: splitEditorialLayout
15026
+ splitReverse: splitReverseLayout
15048
15027
  },
15049
15028
  defaultVariant: "classic",
15050
15029
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -19049,9 +19028,6 @@ var appointmentBookingBlockDefinition = {
19049
19028
  }
19050
19029
  };
19051
19030
 
19052
- // ../blocks/src/system/blocks/event-registration.ts
19053
- import { z as z40 } from "zod";
19054
-
19055
19031
  // ../blocks/src/system/blocks/events/shared/schemas.ts
19056
19032
  import { z as z36 } from "zod";
19057
19033
 
@@ -19339,6 +19315,18 @@ var publicCoursesArraySchema = z35.array(publicCourseSchema);
19339
19315
  var eventPresetSchema = z36.enum(["event", "class", "workshop", "retreat", "performance"]);
19340
19316
  var eventScheduleScopeSchema = z36.enum(["recurring", "oneOff"]);
19341
19317
  var eventDestinationModeSchema = z36.enum(["cms-managed", "system-managed"]);
19318
+ var publicEventDestinationSchema = z36.discriminatedUnion("kind", [
19319
+ z36.object({
19320
+ kind: z36.literal("native"),
19321
+ mode: eventDestinationModeSchema,
19322
+ path: z36.string()
19323
+ }),
19324
+ z36.object({
19325
+ kind: z36.literal("external"),
19326
+ url: z36.string(),
19327
+ label: z36.string()
19328
+ })
19329
+ ]);
19342
19330
  var eventVenueSchema = z36.object({
19343
19331
  id: z36.string(),
19344
19332
  name: z36.string(),
@@ -19353,7 +19341,7 @@ var eventCategorySchema = z36.object({
19353
19341
  name: z36.string(),
19354
19342
  color: z36.string().nullable()
19355
19343
  });
19356
- var pricingTypeSchema = z36.enum(["free", "paid"]);
19344
+ var pricingTypeSchema = z36.enum(["free", "paid", "external"]);
19357
19345
  var accessRestrictionSchema = z36.enum(["none", "category"]);
19358
19346
  var eventPricingModeSchema = z36.enum(["single", "ticket_types"]);
19359
19347
  var publicCoursePriceDisplaySchema = z36.discriminatedUnion("kind", [
@@ -19374,6 +19362,7 @@ var publicEventPriceDisplaySchema = z36.discriminatedUnion("kind", [
19374
19362
  currency: z36.string()
19375
19363
  }),
19376
19364
  z36.object({ kind: z36.literal("unavailable"), currency: z36.string() }),
19365
+ z36.object({ kind: z36.literal("external"), label: z36.string() }),
19377
19366
  z36.object({ kind: z36.literal("course"), display: publicCoursePriceDisplaySchema })
19378
19367
  ]);
19379
19368
  var publicEventTicketTypePriceDisplaySchema = z36.union([
@@ -19452,6 +19441,10 @@ var publicEventPricingSchema = z36.discriminatedUnion("kind", [
19452
19441
  z36.object({
19453
19442
  kind: z36.literal("course"),
19454
19443
  display: z36.object({ kind: z36.literal("course"), display: publicCoursePriceDisplaySchema })
19444
+ }),
19445
+ z36.object({
19446
+ kind: z36.literal("external"),
19447
+ display: z36.object({ kind: z36.literal("external"), label: z36.string() })
19455
19448
  })
19456
19449
  ]);
19457
19450
  var publicTeamMemberSummarySchema = z36.object({
@@ -19480,7 +19473,8 @@ var publicEventSchema = z36.object({
19480
19473
  image: mediaSchema2.nullable().optional()
19481
19474
  }).optional(),
19482
19475
  slug: z36.string(),
19483
- path: z36.string(),
19476
+ path: z36.string().nullable(),
19477
+ destination: publicEventDestinationSchema,
19484
19478
  requiresRegistration: z36.boolean(),
19485
19479
  deliveryMode: z36.enum(["in_person", "online", "hybrid"]),
19486
19480
  attendanceModes: z36.array(publicEventAttendanceModeAvailabilitySchema),
@@ -19713,24 +19707,57 @@ function normalizeEventStaffMemberId(value) {
19713
19707
  return trimmed ? trimmed : null;
19714
19708
  }
19715
19709
 
19716
- // ../blocks/src/system/blocks/event-registration.shared.ts
19710
+ // ../blocks/src/system/blocks/shop.shared.ts
19717
19711
  import { z as z37 } from "zod";
19718
- var occurrenceContextSchema = z37.object({
19712
+ var publicPassProductSchema = z37.object({
19719
19713
  id: z37.string(),
19720
- seriesId: z37.string(),
19721
- startsAt: z37.string(),
19722
- endsAt: z37.string(),
19723
- timeZone: z37.string(),
19724
- capacityOverride: z37.number().nullable().optional(),
19725
- overrides: z37.record(z37.string(), z37.unknown()).nullable().optional()
19714
+ productUseCase: z37.enum(["event_pass", "appointment_package"]).default("event_pass"),
19715
+ name: z37.string(),
19716
+ description: z37.string().nullable(),
19717
+ price: z37.number(),
19718
+ currency: z37.string(),
19719
+ creditsTotal: z37.number(),
19720
+ pricePerCredit: z37.number(),
19721
+ validDays: z37.number().nullable(),
19722
+ eligibleCategoryIds: z37.array(z37.string()),
19723
+ eligibleCategoryNames: z37.array(z37.string())
19724
+ });
19725
+ var publicPassProductCollectionSchema = z37.object({
19726
+ passes: z37.array(publicPassProductSchema)
19727
+ });
19728
+ var publicMembershipProductSchema = z37.object({
19729
+ id: z37.string(),
19730
+ name: z37.string(),
19731
+ description: z37.string().nullable(),
19732
+ price: z37.number(),
19733
+ currency: z37.string(),
19734
+ billingInterval: z37.enum(["month", "year"]),
19735
+ eligibleCategoryIds: z37.array(z37.string()),
19736
+ eligibleCategoryNames: z37.array(z37.string())
19737
+ });
19738
+ var publicMembershipProductCollectionSchema = z37.object({
19739
+ memberships: z37.array(publicMembershipProductSchema)
19740
+ });
19741
+
19742
+ // ../blocks/src/system/blocks/event-registration.shared.ts
19743
+ import { z as z38 } from "zod";
19744
+ var occurrenceContextSchema = z38.object({
19745
+ id: z38.string(),
19746
+ seriesId: z38.string(),
19747
+ startsAt: z38.string(),
19748
+ endsAt: z38.string(),
19749
+ timeZone: z38.string(),
19750
+ capacityOverride: z38.number().nullable().optional(),
19751
+ overrides: z38.record(z38.string(), z38.unknown()).nullable().optional()
19726
19752
  }).nullable();
19727
19753
 
19728
19754
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
19729
- import { z as z39 } from "zod";
19755
+ import { z as z40 } from "zod";
19730
19756
 
19731
19757
  // ../blocks/src/system/constants/events.ts
19732
19758
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
19733
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
19759
+ var eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
19760
+ var eventCalendarDefaultViewValues = ["month", "week"];
19734
19761
  var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
19735
19762
  var eventCalendarListLayoutOptions = [
19736
19763
  { id: "stack", label: "Stack" },
@@ -19740,6 +19767,9 @@ var eventCalendarListLayoutOptions = [
19740
19767
  function isEventCalendarDisplayMode(value) {
19741
19768
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
19742
19769
  }
19770
+ function isEventCalendarDefaultView(value) {
19771
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
19772
+ }
19743
19773
  function isEventCalendarListLayout(value) {
19744
19774
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
19745
19775
  }
@@ -19748,12 +19778,41 @@ function isEventContentType(slug) {
19748
19778
  return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
19749
19779
  }
19750
19780
 
19781
+ // ../blocks/src/system/runtime/nodes/events/shared/destination.ts
19782
+ function isRecord2(value) {
19783
+ return typeof value === "object" && value !== null && !Array.isArray(value);
19784
+ }
19785
+ function isRuntimeEventDestination(value) {
19786
+ if (!isRecord2(value) || typeof value.kind !== "string") return false;
19787
+ if (value.kind === "native") {
19788
+ return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
19789
+ }
19790
+ return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
19791
+ }
19792
+ function resolveRuntimeEventDestination(event) {
19793
+ if (isRuntimeEventDestination(event.destination)) {
19794
+ return event.destination;
19795
+ }
19796
+ return {
19797
+ kind: "native",
19798
+ mode: event.eventDestinationMode === "system-managed" ? "system-managed" : "cms-managed",
19799
+ path: typeof event.path === "string" ? event.path : ""
19800
+ };
19801
+ }
19802
+
19751
19803
  // ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
19752
19804
  var DEFAULT_EVENT_CURRENCY = "USD";
19753
19805
  function resolveRuntimeEventPricing(event) {
19754
19806
  if (isPublicEventPricing(event.pricing)) {
19755
19807
  return event.pricing;
19756
19808
  }
19809
+ const destination = resolveRuntimeEventDestination(event);
19810
+ if (destination.kind === "external") {
19811
+ return {
19812
+ kind: "external",
19813
+ display: { kind: "external", label: "External registration" }
19814
+ };
19815
+ }
19757
19816
  const legacy = event;
19758
19817
  const currency = readCurrency(legacy.currency);
19759
19818
  if (event.requiresRegistration === false) {
@@ -19790,22 +19849,22 @@ function resolveRuntimeEventPricing(event) {
19790
19849
  function readCurrency(value) {
19791
19850
  return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY;
19792
19851
  }
19793
- function isRecord2(value) {
19852
+ function isRecord3(value) {
19794
19853
  return typeof value === "object" && value !== null && !Array.isArray(value);
19795
19854
  }
19796
19855
  function isPublicEventPricing(value) {
19797
- if (!isRecord2(value) || typeof value.kind !== "string") return false;
19798
- return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course";
19856
+ if (!isRecord3(value) || typeof value.kind !== "string") return false;
19857
+ return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
19799
19858
  }
19800
19859
  function isPublicEventTicketType(value) {
19801
- return isRecord2(value) && typeof value.id === "string";
19860
+ return isRecord3(value) && typeof value.id === "string";
19802
19861
  }
19803
19862
  function readTicketTypePriceDisplay(value, currency) {
19804
19863
  const display = readLegacyPriceDisplay(value, currency);
19805
- return display.kind === "course" ? { kind: "unavailable", currency } : display;
19864
+ return display.kind === "course" || display.kind === "external" ? { kind: "unavailable", currency } : display;
19806
19865
  }
19807
19866
  function readLegacyPriceDisplay(value, currency) {
19808
- if (!isRecord2(value) || typeof value.kind !== "string") {
19867
+ if (!isRecord3(value) || typeof value.kind !== "string") {
19809
19868
  return { kind: "unavailable", currency };
19810
19869
  }
19811
19870
  const displayCurrency = readCurrency(value.currency);
@@ -19844,7 +19903,7 @@ function readLegacyPriceDisplay(value, currency) {
19844
19903
  case "unavailable":
19845
19904
  return { kind: "unavailable", currency: displayCurrency };
19846
19905
  case "course":
19847
- return isRecord2(value.display) ? {
19906
+ return isRecord3(value.display) ? {
19848
19907
  kind: "course",
19849
19908
  display: readCoursePriceDisplay(value.display, displayCurrency)
19850
19909
  } : {
@@ -19880,16 +19939,17 @@ function readAmount(value) {
19880
19939
  }
19881
19940
 
19882
19941
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
19883
- import { z as z38 } from "zod";
19884
- var previewStageSchema = z38.enum(["preview", "published"]);
19885
- var registrationButtonVariantSchema = z38.enum(["primary", "secondary", "outline"]);
19886
- var eventButtonVariantSchema = z38.enum(["primary", "secondary", "outline", "link"]);
19887
- var eventLayoutSchema = z38.enum(eventCalendarListLayoutValues);
19888
- var eventCalendarDisplayModeSchema = z38.enum(eventCalendarDisplayModeValues);
19889
- var columnOptionSchema = z38.enum(["2", "3", "4"]);
19890
- var weekStartSchema = z38.enum(["sunday", "monday"]);
19891
- var filterAutoShowSchema = z38.enum(["auto", "always", "never"]);
19892
- var calendarTabViewsSchema = z38.enum(["both", "month", "week"]);
19942
+ import { z as z39 } from "zod";
19943
+ var previewStageSchema = z39.enum(["preview", "published"]);
19944
+ var registrationButtonVariantSchema = z39.enum(["primary", "secondary", "outline"]);
19945
+ var eventButtonVariantSchema = z39.enum(["primary", "secondary", "outline", "link"]);
19946
+ var eventLayoutSchema = z39.enum(eventCalendarListLayoutValues);
19947
+ var eventCalendarDisplayModeSchema = z39.enum(eventCalendarDisplayModeValues);
19948
+ var eventCalendarDefaultViewSchema = z39.enum(eventCalendarDefaultViewValues);
19949
+ var columnOptionSchema = z39.enum(["2", "3", "4"]);
19950
+ var weekStartSchema = z39.enum(["sunday", "monday"]);
19951
+ var filterAutoShowSchema = z39.enum(["auto", "always", "never"]);
19952
+ var calendarTabViewsSchema = z39.enum(["both", "month", "week"]);
19893
19953
 
19894
19954
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
19895
19955
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -19907,7 +19967,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
19907
19967
  function findPreSelectedEvent(input) {
19908
19968
  const occurrenceContext = input.occurrenceContext;
19909
19969
  if (!occurrenceContext) {
19910
- return null;
19970
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
19911
19971
  }
19912
19972
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
19913
19973
  startsAt: occurrenceContext.startsAt,
@@ -19930,7 +19990,7 @@ function resolveEventRequiresPayment(input) {
19930
19990
  if (!input.event) {
19931
19991
  return false;
19932
19992
  }
19933
- return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
19993
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) === "paid";
19934
19994
  }
19935
19995
 
19936
19996
  // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
@@ -19949,68 +20009,72 @@ function toRegistrationEvents(events) {
19949
20009
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
19950
20010
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
19951
20011
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
19952
- var contentEntrySchema = z39.object({
19953
- id: z39.string(),
19954
- slug: z39.string(),
19955
- contentTypeSlug: z39.string()
20012
+ var contentEntrySchema = z40.object({
20013
+ id: z40.string(),
20014
+ slug: z40.string(),
20015
+ contentTypeSlug: z40.string()
19956
20016
  });
19957
- var eventRegistrationPublicEventSchema = z39.preprocess(
20017
+ var eventRegistrationPublicEventSchema = z40.preprocess(
19958
20018
  normalizeEventRegistrationEventInput,
19959
20019
  publicEventSchema
19960
20020
  );
19961
- var eventRegistrationSourceSchema = z39.object({
19962
- siteId: z39.string().optional(),
19963
- apiBaseUrl: z39.string().optional(),
19964
- portalToken: z39.string().nullable().optional(),
19965
- previewToken: z39.string().nullable().optional(),
20021
+ var eventRegistrationSourceSchema = z40.object({
20022
+ siteId: z40.string().optional(),
20023
+ apiBaseUrl: z40.string().optional(),
20024
+ portalToken: z40.string().nullable().optional(),
20025
+ previewToken: z40.string().nullable().optional(),
19966
20026
  occurrenceContext: occurrenceContextSchema.optional(),
19967
20027
  contentEntry: contentEntrySchema.nullable().optional(),
19968
- events: z39.array(eventRegistrationPublicEventSchema).nullable().optional(),
19969
- className: z39.string().nullable().optional(),
19970
- buttonText: z39.string().nullable().optional(),
19971
- maxTickets: z39.string().nullable().optional(),
19972
- showVenue: z39.boolean().optional(),
19973
- showCapacity: z39.boolean().optional(),
19974
- successMessage: z39.string().optional(),
19975
- waitlistMessage: z39.string().optional(),
20028
+ events: z40.array(eventRegistrationPublicEventSchema).nullable().optional(),
20029
+ className: z40.string().nullable().optional(),
20030
+ buttonText: z40.string().nullable().optional(),
20031
+ maxTickets: z40.string().nullable().optional(),
20032
+ showVenue: z40.boolean().optional(),
20033
+ showCapacity: z40.boolean().optional(),
20034
+ successMessage: z40.string().optional(),
20035
+ waitlistMessage: z40.string().optional(),
19976
20036
  buttonVariant: registrationButtonVariantSchema.optional(),
19977
- overlayEnabled: z39.boolean().optional(),
19978
- spamProtectionEnabled: z39.boolean().optional(),
20037
+ overlayEnabled: z40.boolean().optional(),
20038
+ spamProtectionEnabled: z40.boolean().optional(),
19979
20039
  stage: previewStageSchema.optional(),
19980
- supportEmail: z39.string().optional()
19981
- });
19982
- var eventRegistrationDisplaySchema = z39.object({
19983
- kind: z39.literal("event-registration"),
19984
- state: z39.literal("generic-shell"),
19985
- className: z39.string().nullable(),
19986
- titleText: z39.string(),
19987
- bodyText: z39.string(),
19988
- stepLabels: z39.array(z39.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
19989
- summaryButtonText: z39.string()
19990
- });
19991
- var eventRegistrationHydrationSchema = z39.object({
20040
+ supportEmail: z40.string().optional(),
20041
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
20042
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
20043
+ });
20044
+ var eventRegistrationDisplaySchema = z40.object({
20045
+ kind: z40.literal("event-registration"),
20046
+ state: z40.literal("generic-shell"),
20047
+ className: z40.string().nullable(),
20048
+ titleText: z40.string(),
20049
+ bodyText: z40.string(),
20050
+ stepLabels: z40.array(z40.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
20051
+ summaryButtonText: z40.string()
20052
+ });
20053
+ var eventRegistrationHydrationSchema = z40.object({
19992
20054
  occurrenceContext: occurrenceContextSchema.optional(),
19993
20055
  contentEntry: contentEntrySchema.nullable().optional(),
19994
- events: z39.array(eventRegistrationPublicEventSchema).nullable().optional(),
19995
- maxTickets: z39.string().optional(),
19996
- showVenue: z39.boolean().optional(),
19997
- showCapacity: z39.boolean().optional(),
19998
- successMessage: z39.string().optional(),
19999
- waitlistMessage: z39.string().optional(),
20056
+ events: z40.array(eventRegistrationPublicEventSchema).nullable().optional(),
20057
+ maxTickets: z40.string().optional(),
20058
+ showVenue: z40.boolean().optional(),
20059
+ showCapacity: z40.boolean().optional(),
20060
+ successMessage: z40.string().optional(),
20061
+ waitlistMessage: z40.string().optional(),
20000
20062
  buttonVariant: registrationButtonVariantSchema.optional(),
20001
- overlayEnabled: z39.boolean().optional(),
20002
- spamProtectionEnabled: z39.boolean().optional(),
20003
- supportEmail: z39.string().optional()
20063
+ overlayEnabled: z40.boolean().optional(),
20064
+ spamProtectionEnabled: z40.boolean().optional(),
20065
+ supportEmail: z40.string().optional(),
20066
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
20067
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
20004
20068
  });
20005
- var eventRegistrationRenderSchema = z39.object({
20069
+ var eventRegistrationRenderSchema = z40.object({
20006
20070
  display: eventRegistrationDisplaySchema,
20007
20071
  hydration: eventRegistrationHydrationSchema
20008
20072
  });
20009
- var eventRegistrationIslandMetaCodec = createZodCodec(z39.object({
20010
- siteId: z39.string().optional(),
20011
- apiBaseUrl: z39.string().optional(),
20012
- portalToken: z39.string().nullable().optional(),
20013
- previewToken: z39.string().nullable().optional(),
20073
+ var eventRegistrationIslandMetaCodec = createZodCodec(z40.object({
20074
+ siteId: z40.string().optional(),
20075
+ apiBaseUrl: z40.string().optional(),
20076
+ portalToken: z40.string().nullable().optional(),
20077
+ previewToken: z40.string().nullable().optional(),
20014
20078
  stage: previewStageSchema.optional()
20015
20079
  }));
20016
20080
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -20116,20 +20180,23 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
20116
20180
  buttonVariant: source.buttonVariant,
20117
20181
  overlayEnabled: source.overlayEnabled,
20118
20182
  spamProtectionEnabled: source.spamProtectionEnabled,
20119
- supportEmail: source.supportEmail
20183
+ supportEmail: source.supportEmail,
20184
+ sitePasses: source.sitePasses ?? null,
20185
+ siteMemberships: source.siteMemberships ?? null
20120
20186
  }
20121
20187
  })
20122
20188
  });
20123
20189
  function normalizeEventRegistrationEventInput(value) {
20124
- if (!isRecord3(value)) {
20190
+ if (!isRecord4(value)) {
20125
20191
  return value;
20126
20192
  }
20127
20193
  return {
20128
20194
  ...value,
20195
+ destination: resolveRuntimeEventDestination(value),
20129
20196
  pricing: resolveRuntimeEventPricing(value)
20130
20197
  };
20131
20198
  }
20132
- function isRecord3(value) {
20199
+ function isRecord4(value) {
20133
20200
  return typeof value === "object" && value !== null && !Array.isArray(value);
20134
20201
  }
20135
20202
  var eventRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCodec({
@@ -20298,6 +20365,8 @@ var eventRegistrationManifest = createBlockManifest({
20298
20365
  },
20299
20366
  // Event data from loader
20300
20367
  events: { $bind: { from: "data.events" } },
20368
+ sitePasses: { $bind: { from: "data.sitePasses" } },
20369
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
20301
20370
  // Stage for preview mode (allows registering for draft events)
20302
20371
  stage: {
20303
20372
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -20316,7 +20385,9 @@ var eventRegistrationBlockDefinition = {
20316
20385
  manifest: eventRegistrationManifest,
20317
20386
  runtime: eventRegistrationBlockRuntime,
20318
20387
  dataSchemas: {
20319
- events: z40.array(publicEventSchema).optional(),
20388
+ events: publicEventsArraySchema.optional(),
20389
+ sitePasses: publicPassProductCollectionSchema.optional(),
20390
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
20320
20391
  occurrenceContext: occurrenceContextSchema.optional()
20321
20392
  },
20322
20393
  dataLoaders: {
@@ -20335,6 +20406,20 @@ var eventRegistrationBlockDefinition = {
20335
20406
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
20336
20407
  },
20337
20408
  mode: "server"
20409
+ },
20410
+ sitePasses: {
20411
+ endpoint: "listPublicPasses",
20412
+ params: {
20413
+ siteId: { $bind: { from: "$root.siteId" } }
20414
+ },
20415
+ mode: "server"
20416
+ },
20417
+ siteMemberships: {
20418
+ endpoint: "listPublicMemberships",
20419
+ params: {
20420
+ siteId: { $bind: { from: "$root.siteId" } }
20421
+ },
20422
+ mode: "server"
20338
20423
  }
20339
20424
  }
20340
20425
  };
@@ -20666,35 +20751,7 @@ var courseRegistrationBlockDefinition = {
20666
20751
  };
20667
20752
 
20668
20753
  // ../blocks/src/system/blocks/event-details.ts
20669
- import { z as z43 } from "zod";
20670
-
20671
- // ../blocks/src/system/blocks/shop.shared.ts
20672
20754
  import { z as z42 } from "zod";
20673
- var publicPassProductSchema = z42.object({
20674
- id: z42.string(),
20675
- productUseCase: z42.enum(["event_pass", "appointment_package"]).default("event_pass"),
20676
- name: z42.string(),
20677
- description: z42.string().nullable(),
20678
- price: z42.number(),
20679
- currency: z42.string(),
20680
- creditsTotal: z42.number(),
20681
- pricePerCredit: z42.number(),
20682
- validDays: z42.number().nullable(),
20683
- eligibleCategoryIds: z42.array(z42.string()),
20684
- eligibleCategoryNames: z42.array(z42.string())
20685
- });
20686
- var publicMembershipProductSchema = z42.object({
20687
- id: z42.string(),
20688
- name: z42.string(),
20689
- description: z42.string().nullable(),
20690
- price: z42.number(),
20691
- currency: z42.string(),
20692
- billingInterval: z42.enum(["month", "year"]),
20693
- eligibleCategoryIds: z42.array(z42.string()),
20694
- eligibleCategoryNames: z42.array(z42.string())
20695
- });
20696
-
20697
- // ../blocks/src/system/blocks/event-details.ts
20698
20755
  var eventDetailsManifest = createBlockManifest({
20699
20756
  id: "block.event-details",
20700
20757
  version: "1.0.0",
@@ -20826,40 +20883,40 @@ var eventDetailsManifest = createBlockManifest({
20826
20883
  })
20827
20884
  ]
20828
20885
  });
20829
- var occurrenceContextSchema2 = z43.object({
20830
- id: z43.string(),
20831
- seriesId: z43.string(),
20832
- startsAt: z43.string(),
20833
- endsAt: z43.string(),
20834
- timeZone: z43.string(),
20835
- capacityOverride: z43.number().nullable().optional(),
20836
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
20886
+ var occurrenceContextSchema2 = z42.object({
20887
+ id: z42.string(),
20888
+ seriesId: z42.string(),
20889
+ startsAt: z42.string(),
20890
+ endsAt: z42.string(),
20891
+ timeZone: z42.string(),
20892
+ capacityOverride: z42.number().nullable().optional(),
20893
+ overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
20837
20894
  }).nullable();
20838
- var eventAutoApplyDiscountPreviewBaseSchema = z43.object({
20839
- id: z43.string(),
20840
- publicLabel: z43.string(),
20841
- description: z43.string().nullable(),
20842
- minTicketsRequired: z43.number().nullable()
20895
+ var eventAutoApplyDiscountPreviewBaseSchema = z42.object({
20896
+ id: z42.string(),
20897
+ publicLabel: z42.string(),
20898
+ description: z42.string().nullable(),
20899
+ minTicketsRequired: z42.number().nullable()
20843
20900
  });
20844
- var eventAutoApplyDiscountPreviewSchema = z43.discriminatedUnion("discountType", [
20901
+ var eventAutoApplyDiscountPreviewSchema = z42.discriminatedUnion("discountType", [
20845
20902
  eventAutoApplyDiscountPreviewBaseSchema.extend({
20846
- discountType: z43.literal("percent"),
20847
- discountPercent: z43.number(),
20848
- discountAmountCents: z43.null()
20903
+ discountType: z42.literal("percent"),
20904
+ discountPercent: z42.number(),
20905
+ discountAmountCents: z42.null()
20849
20906
  }),
20850
20907
  eventAutoApplyDiscountPreviewBaseSchema.extend({
20851
- discountType: z43.literal("fixed"),
20852
- discountPercent: z43.null(),
20853
- discountAmountCents: z43.number()
20908
+ discountType: z42.literal("fixed"),
20909
+ discountPercent: z42.null(),
20910
+ discountAmountCents: z42.number()
20854
20911
  })
20855
20912
  ]);
20856
20913
  var eventDetailsBlockDefinition = {
20857
20914
  manifest: eventDetailsManifest,
20858
20915
  dataSchemas: {
20859
- eventDetailsData: z43.object({
20916
+ eventDetailsData: z42.object({
20860
20917
  events: publicEventsArraySchema,
20861
- sitePasses: z43.object({ passes: z43.array(publicPassProductSchema) }),
20862
- siteMemberships: z43.object({ memberships: z43.array(publicMembershipProductSchema) }),
20918
+ sitePasses: publicPassProductCollectionSchema,
20919
+ siteMemberships: publicMembershipProductCollectionSchema,
20863
20920
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
20864
20921
  }).optional(),
20865
20922
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -21183,7 +21240,7 @@ var eventSpotlightBlockDefinition = {
21183
21240
  };
21184
21241
 
21185
21242
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
21186
- import { z as z45 } from "zod";
21243
+ import { z as z44 } from "zod";
21187
21244
 
21188
21245
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
21189
21246
  var COLUMN_CLASSES = {
@@ -21215,16 +21272,16 @@ function getCardOrientation(layout) {
21215
21272
  }
21216
21273
 
21217
21274
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
21218
- import { z as z44 } from "zod";
21275
+ import { z as z43 } from "zod";
21219
21276
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
21220
- var eventPageSizeSchema = z44.union([
21221
- z44.literal(3),
21222
- z44.literal(6),
21223
- z44.literal(10),
21224
- z44.literal(12),
21225
- z44.literal(20),
21226
- z44.literal(24),
21227
- z44.literal(30)
21277
+ var eventPageSizeSchema = z43.union([
21278
+ z43.literal(3),
21279
+ z43.literal(6),
21280
+ z43.literal(10),
21281
+ z43.literal(12),
21282
+ z43.literal(20),
21283
+ z43.literal(24),
21284
+ z43.literal(30)
21228
21285
  ]);
21229
21286
  var eventPageSizeSet = new Set(eventPageSizeValues);
21230
21287
  function resolveEventPageSize(value, fallback = 12) {
@@ -21234,15 +21291,15 @@ function resolveEventPageSize(value, fallback = 12) {
21234
21291
  function resolveEventCalendarListPageSize(input) {
21235
21292
  return resolveEventPageSize(input.eventsPerPage);
21236
21293
  }
21237
- var eventListPaginationActionSchema = z44.discriminatedUnion("kind", [
21238
- z44.object({
21239
- kind: z44.literal("loadMore"),
21240
- label: z44.string()
21294
+ var eventListPaginationActionSchema = z43.discriminatedUnion("kind", [
21295
+ z43.object({
21296
+ kind: z43.literal("loadMore"),
21297
+ label: z43.string()
21241
21298
  }),
21242
- z44.object({
21243
- kind: z44.literal("seeAllLink"),
21244
- label: z44.string(),
21245
- href: z44.string()
21299
+ z43.object({
21300
+ kind: z43.literal("seeAllLink"),
21301
+ label: z43.string(),
21302
+ href: z43.string()
21246
21303
  })
21247
21304
  ]);
21248
21305
  function resolveEventListPaginationAction(input) {
@@ -21255,89 +21312,89 @@ function resolveEventListPaginationAction(input) {
21255
21312
  }
21256
21313
 
21257
21314
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
21258
- var legacyEventCardVariantSchema = z45.enum(["variant1", "variant2"]);
21259
- var eventCardVariantInputSchema = z45.union([
21315
+ var legacyEventCardVariantSchema = z44.enum(["variant1", "variant2"]);
21316
+ var eventCardVariantInputSchema = z44.union([
21260
21317
  cardVariantRoleSchema,
21261
21318
  legacyEventCardVariantSchema
21262
21319
  ]);
21263
- var cardOrientationSchema = z45.enum(["vertical", "horizontal"]);
21264
- var eventBlockKindSchema = z45.enum(eventBlockKindValues);
21265
- var eventSurfaceScopeSchema = z45.enum(eventSurfaceScopeValues);
21266
- var eventScheduleScopeSchema2 = z45.enum(eventScheduleScopeValues);
21267
- var eventListingSourceSchema = z45.object({
21268
- events: z45.array(publicEventSchema).nullable().optional(),
21269
- siteId: z45.string(),
21270
- apiBaseUrl: z45.string().optional(),
21320
+ var cardOrientationSchema = z44.enum(["vertical", "horizontal"]);
21321
+ var eventBlockKindSchema = z44.enum(eventBlockKindValues);
21322
+ var eventSurfaceScopeSchema = z44.enum(eventSurfaceScopeValues);
21323
+ var eventScheduleScopeSchema2 = z44.enum(eventScheduleScopeValues);
21324
+ var eventListingSourceSchema = z44.object({
21325
+ events: z44.array(publicEventSchema).nullable().optional(),
21326
+ siteId: z44.string(),
21327
+ apiBaseUrl: z44.string().optional(),
21271
21328
  stage: previewStageSchema.optional(),
21272
21329
  layout: eventLayoutSchema.optional(),
21273
21330
  columns: columnOptionSchema.optional(),
21274
- eventsPerPage: z45.string().optional(),
21275
- paginationMode: z45.enum(["loadMore", "seeAllLink"]).optional(),
21276
- seeAllUrl: z45.string().optional(),
21277
- loadMoreText: z45.string().optional(),
21331
+ eventsPerPage: z44.string().optional(),
21332
+ paginationMode: z44.enum(["loadMore", "seeAllLink"]).optional(),
21333
+ seeAllUrl: z44.string().optional(),
21334
+ loadMoreText: z44.string().optional(),
21278
21335
  cardVariant: eventCardVariantInputSchema.optional(),
21279
21336
  buttonVariant: eventButtonVariantSchema.optional(),
21280
- buttonText: z45.string().optional(),
21281
- showVenue: z45.boolean().optional(),
21282
- showMap: z45.boolean().optional(),
21283
- showCapacity: z45.boolean().optional(),
21284
- emptyMessage: z45.string().optional(),
21285
- className: z45.string().optional(),
21286
- showFilters: z45.boolean().nullable().optional(),
21337
+ buttonText: z44.string().optional(),
21338
+ showVenue: z44.boolean().optional(),
21339
+ showMap: z44.boolean().optional(),
21340
+ showCapacity: z44.boolean().optional(),
21341
+ emptyMessage: z44.string().optional(),
21342
+ className: z44.string().optional(),
21343
+ showFilters: z44.boolean().nullable().optional(),
21287
21344
  showCategoryFilter: filterAutoShowSchema.optional(),
21288
- showVenueFilter: z45.boolean().nullable().optional(),
21289
- showStaffFilter: z45.boolean().nullable().optional(),
21345
+ showVenueFilter: z44.boolean().nullable().optional(),
21346
+ showStaffFilter: z44.boolean().nullable().optional(),
21290
21347
  eventKind: eventBlockKindSchema.nullable().optional(),
21291
21348
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
21292
- filterEventPresets: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
21349
+ filterEventPresets: z44.union([z44.string(), z44.array(z44.string())]).nullable().optional(),
21293
21350
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
21294
- filterCategoryIds: z45.string().nullable().optional(),
21295
- filterStaffMemberId: z45.string().nullable().optional(),
21296
- filterVenueId: z45.string().nullable().optional()
21351
+ filterCategoryIds: z44.string().nullable().optional(),
21352
+ filterStaffMemberId: z44.string().nullable().optional(),
21353
+ filterVenueId: z44.string().nullable().optional()
21297
21354
  });
21298
- var eventListingDisplaySchema = z45.object({
21299
- kind: z45.literal("event-listing"),
21300
- state: z45.enum(["loading", "empty", "ready"]),
21355
+ var eventListingDisplaySchema = z44.object({
21356
+ kind: z44.literal("event-listing"),
21357
+ state: z44.enum(["loading", "empty", "ready"]),
21301
21358
  listLayout: eventLayoutSchema,
21302
- className: z45.string().nullable(),
21303
- emptyMessage: z45.string(),
21304
- loadingMessage: z45.string(),
21305
- containerClass: z45.string(),
21359
+ className: z44.string().nullable(),
21360
+ emptyMessage: z44.string(),
21361
+ loadingMessage: z44.string(),
21362
+ containerClass: z44.string(),
21306
21363
  cardVariant: cardVariantRoleSchema,
21307
21364
  buttonVariant: eventButtonVariantSchema,
21308
- buttonText: z45.string(),
21309
- showVenue: z45.boolean(),
21310
- showMap: z45.boolean(),
21311
- showCapacity: z45.boolean(),
21365
+ buttonText: z44.string(),
21366
+ showVenue: z44.boolean(),
21367
+ showMap: z44.boolean(),
21368
+ showCapacity: z44.boolean(),
21312
21369
  orientation: cardOrientationSchema,
21313
- events: z45.array(publicEventSchema)
21370
+ events: z44.array(publicEventSchema)
21314
21371
  });
21315
- var eventListingHydrationSchema = z45.object({
21316
- siteId: z45.string(),
21372
+ var eventListingHydrationSchema = z44.object({
21373
+ siteId: z44.string(),
21317
21374
  stage: previewStageSchema.optional(),
21318
21375
  eventsPerPage: eventPageSizeSchema,
21319
21376
  paginationAction: eventListPaginationActionSchema,
21320
- showFilters: z45.boolean(),
21377
+ showFilters: z44.boolean(),
21321
21378
  showCategoryFilter: filterAutoShowSchema,
21322
- showVenueFilter: z45.boolean(),
21323
- showStaffFilter: z45.boolean(),
21379
+ showVenueFilter: z44.boolean(),
21380
+ showStaffFilter: z44.boolean(),
21324
21381
  eventKind: eventBlockKindSchema,
21325
21382
  eventSurface: eventSurfaceScopeSchema,
21326
- filterEventPresets: z45.string().nullable(),
21383
+ filterEventPresets: z44.string().nullable(),
21327
21384
  scheduleScope: eventScheduleScopeSchema2,
21328
- filterCategoryIds: z45.string().nullable().optional(),
21329
- filterStaffMemberId: z45.string().nullable().optional(),
21330
- filterVenueId: z45.string().nullable().optional(),
21331
- fetchInitialEventsOnMount: z45.boolean()
21385
+ filterCategoryIds: z44.string().nullable().optional(),
21386
+ filterStaffMemberId: z44.string().nullable().optional(),
21387
+ filterVenueId: z44.string().nullable().optional(),
21388
+ fetchInitialEventsOnMount: z44.boolean()
21332
21389
  });
21333
- var eventListingRenderSchema = z45.object({
21390
+ var eventListingRenderSchema = z44.object({
21334
21391
  display: eventListingDisplaySchema,
21335
21392
  hydration: eventListingHydrationSchema
21336
21393
  });
21337
21394
  var eventListingIslandMetaCodec = createZodCodec(
21338
- z45.object({
21339
- siteId: z45.string(),
21340
- apiBaseUrl: z45.string().optional(),
21395
+ z44.object({
21396
+ siteId: z44.string(),
21397
+ apiBaseUrl: z44.string().optional(),
21341
21398
  stage: previewStageSchema.optional()
21342
21399
  })
21343
21400
  );
@@ -21704,15 +21761,15 @@ var eventListingBlockDefinition = {
21704
21761
  };
21705
21762
 
21706
21763
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
21707
- import { z as z46 } from "zod";
21708
- var eventBlockKindSchema2 = z46.enum(eventBlockKindValues);
21709
- var eventSurfaceScopeSchema2 = z46.enum(eventSurfaceScopeValues);
21710
- var eventScheduleScopeSchema3 = z46.enum(eventScheduleScopeValues);
21711
- var eventCalendarSourceSchema = z46.object(
21764
+ import { z as z45 } from "zod";
21765
+ var eventBlockKindSchema2 = z45.enum(eventBlockKindValues);
21766
+ var eventSurfaceScopeSchema2 = z45.enum(eventSurfaceScopeValues);
21767
+ var eventScheduleScopeSchema3 = z45.enum(eventScheduleScopeValues);
21768
+ var eventCalendarSourceSchema = z45.object(
21712
21769
  {
21713
- events: z46.array(publicEventSchema).nullable().optional(),
21714
- siteId: z46.string(),
21715
- apiBaseUrl: z46.string().optional(),
21770
+ events: z45.array(publicEventSchema).nullable().optional(),
21771
+ siteId: z45.string(),
21772
+ apiBaseUrl: z45.string().optional(),
21716
21773
  stage: previewStageSchema.optional(),
21717
21774
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
21718
21775
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -21720,78 +21777,80 @@ var eventCalendarSourceSchema = z46.object(
21720
21777
  listColumns: columnOptionSchema.optional(),
21721
21778
  layout: eventLayoutSchema.optional(),
21722
21779
  columns: columnOptionSchema.optional(),
21723
- eventsPerPage: z46.string().optional(),
21724
- paginationMode: z46.enum(["loadMore", "seeAllLink"]).optional(),
21725
- seeAllUrl: z46.string().optional(),
21726
- loadMoreText: z46.string().optional(),
21780
+ eventsPerPage: z45.string().optional(),
21781
+ paginationMode: z45.enum(["loadMore", "seeAllLink"]).optional(),
21782
+ seeAllUrl: z45.string().optional(),
21783
+ loadMoreText: z45.string().optional(),
21727
21784
  startOfWeek: weekStartSchema.optional(),
21728
21785
  calendarTabViews: calendarTabViewsSchema.optional(),
21729
- showFilters: z46.boolean().nullable().optional(),
21786
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
21787
+ showFilters: z45.boolean().nullable().optional(),
21730
21788
  showCategoryFilter: filterAutoShowSchema.optional(),
21731
- showVenueFilter: z46.boolean().nullable().optional(),
21732
- showStaffFilter: z46.boolean().nullable().optional(),
21789
+ showVenueFilter: z45.boolean().nullable().optional(),
21790
+ showStaffFilter: z45.boolean().nullable().optional(),
21733
21791
  kind: eventBlockKindSchema2.nullable().optional(),
21734
21792
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
21735
- filterEventPresets: z46.union([z46.string(), z46.array(z46.string())]).nullable().optional(),
21793
+ filterEventPresets: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
21736
21794
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
21737
- filterCategoryIds: z46.union([z46.string(), z46.array(z46.string())]).nullable().optional(),
21738
- filterStaffMemberId: z46.string().nullable().optional(),
21739
- filterVenueId: z46.string().nullable().optional(),
21795
+ filterCategoryIds: z45.union([z45.string(), z45.array(z45.string())]).nullable().optional(),
21796
+ filterStaffMemberId: z45.string().nullable().optional(),
21797
+ filterVenueId: z45.string().nullable().optional(),
21740
21798
  buttonVariant: eventButtonVariantSchema.optional(),
21741
- buttonText: z46.string().optional(),
21742
- showVenue: z46.boolean().nullable().optional(),
21743
- showMap: z46.boolean().nullable().optional(),
21744
- showCapacity: z46.boolean().nullable().optional(),
21745
- emptyMessage: z46.string().optional(),
21746
- className: z46.string().optional()
21799
+ buttonText: z45.string().optional(),
21800
+ showVenue: z45.boolean().nullable().optional(),
21801
+ showMap: z45.boolean().nullable().optional(),
21802
+ showCapacity: z45.boolean().nullable().optional(),
21803
+ emptyMessage: z45.string().optional(),
21804
+ className: z45.string().optional()
21747
21805
  }
21748
21806
  );
21749
- var eventCalendarDisplaySchema = z46.object({
21750
- kind: z46.literal("event-calendar"),
21807
+ var eventCalendarDisplaySchema = z45.object({
21808
+ kind: z45.literal("event-calendar"),
21751
21809
  displayMode: eventCalendarDisplayModeSchema,
21752
- className: z46.string().nullable(),
21753
- events: z46.array(publicEventSchema),
21810
+ className: z45.string().nullable(),
21811
+ events: z45.array(publicEventSchema),
21754
21812
  listLayout: eventLayoutSchema,
21755
21813
  listColumns: columnOptionSchema,
21756
21814
  eventsPerPage: eventPageSizeSchema,
21757
21815
  paginationAction: eventListPaginationActionSchema,
21758
21816
  startOfWeek: weekStartSchema,
21759
21817
  calendarTabViews: calendarTabViewsSchema,
21760
- showFilters: z46.boolean(),
21818
+ defaultCalendarView: eventCalendarDefaultViewSchema,
21819
+ showFilters: z45.boolean(),
21761
21820
  showCategoryFilter: filterAutoShowSchema,
21762
- showVenueFilter: z46.boolean(),
21763
- showStaffFilter: z46.boolean(),
21821
+ showVenueFilter: z45.boolean(),
21822
+ showStaffFilter: z45.boolean(),
21764
21823
  eventKind: eventBlockKindSchema2,
21765
21824
  eventSurface: eventSurfaceScopeSchema2,
21766
- filterEventPresets: z46.string().nullable(),
21825
+ filterEventPresets: z45.string().nullable(),
21767
21826
  scheduleScope: eventScheduleScopeSchema3,
21768
- filterCategoryIds: z46.string().nullable(),
21769
- filterStaffMemberId: z46.string().nullable(),
21770
- filterVenueId: z46.string().nullable(),
21827
+ filterCategoryIds: z45.string().nullable(),
21828
+ filterStaffMemberId: z45.string().nullable(),
21829
+ filterVenueId: z45.string().nullable(),
21771
21830
  buttonVariant: eventButtonVariantSchema,
21772
- buttonText: z46.string(),
21773
- showVenue: z46.boolean(),
21774
- showMap: z46.boolean(),
21775
- showCapacity: z46.boolean(),
21776
- emptyMessage: z46.string()
21777
- });
21778
- var eventCalendarHydrationSchema = z46.object({
21779
- siteId: z46.string(),
21831
+ buttonText: z45.string(),
21832
+ showVenue: z45.boolean(),
21833
+ showMap: z45.boolean(),
21834
+ showCapacity: z45.boolean(),
21835
+ emptyMessage: z45.string()
21836
+ });
21837
+ var eventCalendarHydrationSchema = z45.object({
21838
+ siteId: z45.string(),
21780
21839
  stage: previewStageSchema.optional(),
21781
- prefetchedEvents: z46.boolean(),
21840
+ prefetchedEvents: z45.boolean(),
21782
21841
  eventKind: eventBlockKindSchema2,
21783
21842
  eventSurface: eventSurfaceScopeSchema2,
21784
- filterEventPresets: z46.string().nullable(),
21843
+ filterEventPresets: z45.string().nullable(),
21785
21844
  scheduleScope: eventScheduleScopeSchema3
21786
21845
  });
21787
- var eventCalendarRenderSchema = z46.object({
21846
+ var eventCalendarRenderSchema = z45.object({
21788
21847
  display: eventCalendarDisplaySchema,
21789
21848
  hydration: eventCalendarHydrationSchema
21790
21849
  });
21791
21850
  var eventCalendarIslandMetaCodec = createZodCodec(
21792
- z46.object({
21793
- siteId: z46.string(),
21794
- apiBaseUrl: z46.string().optional(),
21851
+ z45.object({
21852
+ siteId: z45.string(),
21853
+ apiBaseUrl: z45.string().optional(),
21795
21854
  stage: previewStageSchema.optional()
21796
21855
  })
21797
21856
  );
@@ -21821,6 +21880,7 @@ function buildEventCalendarDisplay(source) {
21821
21880
  }),
21822
21881
  startOfWeek: source.startOfWeek ?? "monday",
21823
21882
  calendarTabViews: source.calendarTabViews ?? "both",
21883
+ defaultCalendarView: source.defaultCalendarView ?? "month",
21824
21884
  showFilters: source.showFilters ?? true,
21825
21885
  showCategoryFilter: source.showCategoryFilter ?? "auto",
21826
21886
  showVenueFilter: source.showVenueFilter ?? false,
@@ -21883,6 +21943,9 @@ function normalizeEventCalendarContent(content) {
21883
21943
  ...variant ? { variant } : {},
21884
21944
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
21885
21945
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
21946
+ defaultCalendarView: normalizeEventCalendarDefaultView(
21947
+ record.defaultCalendarView
21948
+ ),
21886
21949
  kind,
21887
21950
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
21888
21951
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -21900,6 +21963,9 @@ function normalizeEventCalendarDisplayMode(value) {
21900
21963
  function normalizeEventCalendarListLayout(value) {
21901
21964
  return isEventCalendarListLayout(value) ? value : void 0;
21902
21965
  }
21966
+ function normalizeEventCalendarDefaultView(value) {
21967
+ return isEventCalendarDefaultView(value) ? value : void 0;
21968
+ }
21903
21969
  var eventCalendarLayout = [
21904
21970
  styledSection({
21905
21971
  children: sectionContainer(
@@ -21959,6 +22025,9 @@ var eventCalendarLayout = [
21959
22025
  calendarTabViews: {
21960
22026
  $bind: { from: "content.calendarTabViews", fallback: "both" }
21961
22027
  },
22028
+ defaultCalendarView: {
22029
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
22030
+ },
21962
22031
  // Filtering options
21963
22032
  showFilters: {
21964
22033
  $bind: { from: "content.showFilters", fallback: true }
@@ -22025,8 +22094,7 @@ var eventCalendarAdditionalFields = [
22025
22094
  defaultValue: "combined",
22026
22095
  options: [
22027
22096
  { value: "combined", label: "Combined (List + Calendar tabs)" },
22028
- { value: "month", label: "Month calendar" },
22029
- { value: "week", label: "Week agenda" },
22097
+ { value: "calendar", label: "Calendar" },
22030
22098
  { value: "timetable", label: "Timetable" },
22031
22099
  { value: "list", label: "List" }
22032
22100
  ],
@@ -22065,7 +22133,12 @@ var eventCalendarAdditionalFields = [
22065
22133
  ],
22066
22134
  ui: {
22067
22135
  intent: "display",
22068
- visibleWhen: { field: "listLayout", equals: "grid" }
22136
+ visibleWhen: {
22137
+ allOf: [
22138
+ { field: "variant", oneOf: ["combined", "list"] },
22139
+ { field: "listLayout", equals: "grid" }
22140
+ ]
22141
+ }
22069
22142
  }
22070
22143
  },
22071
22144
  {
@@ -22113,7 +22186,12 @@ var eventCalendarAdditionalFields = [
22113
22186
  required: false,
22114
22187
  ui: {
22115
22188
  intent: "display",
22116
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
22189
+ visibleWhen: {
22190
+ allOf: [
22191
+ { field: "variant", oneOf: ["combined", "list"] },
22192
+ { field: "paginationMode", equals: "seeAllLink" }
22193
+ ]
22194
+ }
22117
22195
  }
22118
22196
  },
22119
22197
  {
@@ -22146,7 +22224,7 @@ var eventCalendarAdditionalFields = [
22146
22224
  intent: "display",
22147
22225
  visibleWhen: {
22148
22226
  field: "variant",
22149
- oneOf: ["combined", "month", "week"]
22227
+ oneOf: ["combined", "calendar", "timetable"]
22150
22228
  }
22151
22229
  }
22152
22230
  },
@@ -22169,6 +22247,33 @@ var eventCalendarAdditionalFields = [
22169
22247
  visibleWhen: { field: "variant", equals: "combined" }
22170
22248
  }
22171
22249
  },
22250
+ {
22251
+ id: "defaultCalendarView",
22252
+ type: "select",
22253
+ label: "Calendar view",
22254
+ description: "Choose the standalone calendar view, or the first view in combined mode",
22255
+ required: false,
22256
+ multiple: false,
22257
+ defaultValue: "month",
22258
+ options: [
22259
+ { value: "month", label: "Month" },
22260
+ { value: "week", label: "Week" }
22261
+ ],
22262
+ ui: {
22263
+ intent: "display",
22264
+ visibleWhen: {
22265
+ anyOf: [
22266
+ { field: "variant", equals: "calendar" },
22267
+ {
22268
+ allOf: [
22269
+ { field: "variant", equals: "combined" },
22270
+ { field: "calendarTabViews", equals: "both" }
22271
+ ]
22272
+ }
22273
+ ]
22274
+ }
22275
+ }
22276
+ },
22172
22277
  // Filtering options
22173
22278
  {
22174
22279
  id: "kind",
@@ -22196,7 +22301,7 @@ var eventCalendarAdditionalFields = [
22196
22301
  intent: "display",
22197
22302
  visibleWhen: {
22198
22303
  field: "variant",
22199
- oneOf: ["combined", "list", "timetable"]
22304
+ oneOf: ["combined", "calendar", "list", "timetable"]
22200
22305
  }
22201
22306
  }
22202
22307
  },
@@ -22216,8 +22321,10 @@ var eventCalendarAdditionalFields = [
22216
22321
  ui: {
22217
22322
  intent: "display",
22218
22323
  visibleWhen: {
22219
- field: "variant",
22220
- oneOf: ["combined", "list", "timetable"]
22324
+ allOf: [
22325
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
22326
+ { field: "showFilters", equals: true }
22327
+ ]
22221
22328
  }
22222
22329
  }
22223
22330
  },
@@ -22231,8 +22338,10 @@ var eventCalendarAdditionalFields = [
22231
22338
  ui: {
22232
22339
  intent: "display",
22233
22340
  visibleWhen: {
22234
- field: "variant",
22235
- oneOf: ["combined", "list", "timetable"]
22341
+ allOf: [
22342
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
22343
+ { field: "showFilters", equals: true }
22344
+ ]
22236
22345
  }
22237
22346
  }
22238
22347
  },
@@ -22246,8 +22355,10 @@ var eventCalendarAdditionalFields = [
22246
22355
  ui: {
22247
22356
  intent: "display",
22248
22357
  visibleWhen: {
22249
- field: "variant",
22250
- oneOf: ["combined", "list", "timetable"]
22358
+ allOf: [
22359
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
22360
+ { field: "showFilters", equals: true }
22361
+ ]
22251
22362
  }
22252
22363
  }
22253
22364
  },
@@ -22261,8 +22372,15 @@ var eventCalendarAdditionalFields = [
22261
22372
  ui: {
22262
22373
  intent: "display",
22263
22374
  visibleWhen: {
22264
- field: "variant",
22265
- oneOf: ["combined", "list", "week", "timetable"]
22375
+ anyOf: [
22376
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
22377
+ {
22378
+ allOf: [
22379
+ { field: "variant", equals: "calendar" },
22380
+ { field: "defaultCalendarView", equals: "week" }
22381
+ ]
22382
+ }
22383
+ ]
22266
22384
  }
22267
22385
  }
22268
22386
  },
@@ -22378,8 +22496,7 @@ var eventCalendarAdditionalFields = [
22378
22496
  ];
22379
22497
  var eventCalendarVariants = {
22380
22498
  combined: eventCalendarLayout[0],
22381
- month: eventCalendarLayout[0],
22382
- week: eventCalendarLayout[0],
22499
+ calendar: eventCalendarLayout[0],
22383
22500
  timetable: eventCalendarLayout[0],
22384
22501
  list: eventCalendarLayout[0]
22385
22502
  };
@@ -22391,8 +22508,7 @@ var eventCalendarDerivedFields = [
22391
22508
  multiple: false,
22392
22509
  options: [
22393
22510
  { value: "combined" },
22394
- { value: "month" },
22395
- { value: "week" },
22511
+ { value: "calendar" },
22396
22512
  { value: "timetable" },
22397
22513
  { value: "list" }
22398
22514
  ]
@@ -22405,6 +22521,13 @@ var eventCalendarDerivedFields = [
22405
22521
  options: eventCalendarListLayoutOptions.map((option) => ({
22406
22522
  value: option.id
22407
22523
  }))
22524
+ },
22525
+ {
22526
+ id: "defaultCalendarView",
22527
+ type: "select",
22528
+ required: false,
22529
+ multiple: false,
22530
+ options: [{ value: "month" }, { value: "week" }]
22408
22531
  }
22409
22532
  ];
22410
22533
  var eventCalendarContentShape = {
@@ -22453,8 +22576,7 @@ var eventCalendarConfig = {
22453
22576
  defaultVariant: "combined",
22454
22577
  variantOptions: {
22455
22578
  combined: { label: "Combined" },
22456
- month: { label: "Month" },
22457
- week: { label: "Week" },
22579
+ calendar: { label: "Calendar" },
22458
22580
  timetable: { label: "Timetable" },
22459
22581
  list: { label: "List" }
22460
22582
  }
@@ -22500,7 +22622,7 @@ var eventCalendarBlockDefinition = {
22500
22622
  };
22501
22623
 
22502
22624
  // ../blocks/src/system/blocks/offerings-preview/index.ts
22503
- import { z as z47 } from "zod";
22625
+ import { z as z46 } from "zod";
22504
22626
 
22505
22627
  // ../blocks/src/system/blocks/offerings-preview/model.ts
22506
22628
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -22560,7 +22682,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
22560
22682
  return keys.length >= 2 ? keys : [];
22561
22683
  }
22562
22684
  function normalizeOfferingsPreviewContentForWrite(value) {
22563
- if (!isRecord4(value)) return null;
22685
+ if (!isRecord5(value)) return null;
22564
22686
  const groupOrderValue = value.groupOrder;
22565
22687
  if (Array.isArray(groupOrderValue)) {
22566
22688
  const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
@@ -22573,7 +22695,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
22573
22695
  return { ...value, groupOrder: [] };
22574
22696
  }
22575
22697
  const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(
22576
- Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord4) : []
22698
+ Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord5) : []
22577
22699
  );
22578
22700
  return legacyOrder.length > 0 ? { ...value, groupOrder: legacyOrder } : value;
22579
22701
  }
@@ -22587,18 +22709,18 @@ function uniqueOfferingsPreviewSourceKeys(values) {
22587
22709
  }
22588
22710
  return keys;
22589
22711
  }
22590
- function isRecord4(value) {
22712
+ function isRecord5(value) {
22591
22713
  return typeof value === "object" && value !== null && !Array.isArray(value);
22592
22714
  }
22593
22715
 
22594
22716
  // ../blocks/src/system/blocks/offerings-preview/index.ts
22595
- var publicRouteCandidatesSchema = z47.object({
22596
- routes: z47.array(z47.object({
22597
- entityId: z47.string(),
22598
- path: z47.string(),
22599
- title: z47.string(),
22600
- kind: z47.enum(["page", "content"]),
22601
- contentTypeKey: z47.string().nullable().optional()
22717
+ var publicRouteCandidatesSchema = z46.object({
22718
+ routes: z46.array(z46.object({
22719
+ entityId: z46.string(),
22720
+ path: z46.string(),
22721
+ title: z46.string(),
22722
+ kind: z46.enum(["page", "content"]),
22723
+ contentTypeKey: z46.string().nullable().optional()
22602
22724
  }))
22603
22725
  });
22604
22726
  var groupOverrideFields = [
@@ -22954,7 +23076,7 @@ function isOfferingsPreviewItemLimit(value) {
22954
23076
  return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
22955
23077
  }
22956
23078
  function normalizeOfferingsPreviewGroupOverride(value) {
22957
- if (!isRecord5(value)) return [];
23079
+ if (!isRecord6(value)) return [];
22958
23080
  const override = {};
22959
23081
  if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) {
22960
23082
  override.sourceKey = value.sourceKey;
@@ -22986,17 +23108,17 @@ function isButtonVariant(value) {
22986
23108
  return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
22987
23109
  }
22988
23110
  function normalizeCardStylesContent(value) {
22989
- return isRecord5(value) || value === null ? value : void 0;
23111
+ return isRecord6(value) || value === null ? value : void 0;
22990
23112
  }
22991
23113
  function normalizeSectionStylesContent(value) {
22992
- return isRecord5(value) || value === null ? value : void 0;
23114
+ return isRecord6(value) || value === null ? value : void 0;
22993
23115
  }
22994
- function isRecord5(value) {
23116
+ function isRecord6(value) {
22995
23117
  return typeof value === "object" && value !== null && !Array.isArray(value);
22996
23118
  }
22997
23119
 
22998
23120
  // ../blocks/src/system/blocks/embed.ts
22999
- import { z as z48 } from "zod";
23121
+ import { z as z47 } from "zod";
23000
23122
  var embedFields = [
23001
23123
  // Section heading
23002
23124
  parseFieldDefinition({
@@ -23227,18 +23349,18 @@ var embedManifest = createBlockManifest({
23227
23349
  spacing: "lg"
23228
23350
  }
23229
23351
  });
23230
- var embedEntrySchema = z48.object({
23231
- id: z48.string(),
23232
- identifier: z48.string(),
23233
- title: z48.string(),
23234
- slug: z48.string().nullable().optional(),
23235
- content: z48.record(z48.string(), z48.unknown()).optional(),
23236
- publishedAt: z48.string().nullable().optional()
23352
+ var embedEntrySchema = z47.object({
23353
+ id: z47.string(),
23354
+ identifier: z47.string(),
23355
+ title: z47.string(),
23356
+ slug: z47.string().nullable().optional(),
23357
+ content: z47.record(z47.string(), z47.unknown()).optional(),
23358
+ publishedAt: z47.string().nullable().optional()
23237
23359
  });
23238
23360
  var embedBlockDefinition = {
23239
23361
  manifest: embedManifest,
23240
23362
  dataSchemas: {
23241
- entries: z48.array(embedEntrySchema).optional()
23363
+ entries: z47.array(embedEntrySchema).optional()
23242
23364
  },
23243
23365
  dataLoaders: {
23244
23366
  entries: {
@@ -24421,53 +24543,50 @@ var fileDownloadBlockDefinition = {
24421
24543
  manifest: fileDownloadManifest
24422
24544
  };
24423
24545
 
24424
- // ../blocks/src/system/blocks/shop.ts
24425
- import { z as z52 } from "zod";
24426
-
24427
24546
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
24428
- import { z as z51 } from "zod";
24547
+ import { z as z50 } from "zod";
24429
24548
 
24430
24549
  // ../blocks/src/system/blocks/products/shared.ts
24431
- import { z as z49 } from "zod";
24432
- var publicProductVariantSchema = z49.object({
24433
- id: z49.string(),
24434
- title: z49.string(),
24435
- sku: z49.string().nullable(),
24436
- priceCents: z49.number(),
24437
- stockQuantity: z49.number().nullable(),
24438
- soldOut: z49.boolean()
24439
- });
24440
- var publicProductSchema = z49.object({
24441
- id: z49.string(),
24442
- contentEntryId: z49.string().nullable(),
24443
- title: z49.string(),
24444
- slug: z49.string(),
24445
- path: z49.string().nullable(),
24446
- status: z49.enum(["draft", "active"]),
24447
- priceCents: z49.number(),
24448
- currency: z49.string(),
24449
- productType: z49.enum(["physical", "digital"]),
24450
- requiresShipping: z49.boolean(),
24451
- hasVariants: z49.boolean(),
24452
- trackInventory: z49.boolean(),
24453
- soldOut: z49.boolean(),
24454
- category: z49.object({
24455
- id: z49.string(),
24456
- name: z49.string(),
24457
- slug: z49.string()
24550
+ import { z as z48 } from "zod";
24551
+ var publicProductVariantSchema = z48.object({
24552
+ id: z48.string(),
24553
+ title: z48.string(),
24554
+ sku: z48.string().nullable(),
24555
+ priceCents: z48.number(),
24556
+ stockQuantity: z48.number().nullable(),
24557
+ soldOut: z48.boolean()
24558
+ });
24559
+ var publicProductSchema = z48.object({
24560
+ id: z48.string(),
24561
+ contentEntryId: z48.string().nullable(),
24562
+ title: z48.string(),
24563
+ slug: z48.string(),
24564
+ path: z48.string().nullable(),
24565
+ status: z48.enum(["draft", "active"]),
24566
+ priceCents: z48.number(),
24567
+ currency: z48.string(),
24568
+ productType: z48.enum(["physical", "digital"]),
24569
+ requiresShipping: z48.boolean(),
24570
+ hasVariants: z48.boolean(),
24571
+ trackInventory: z48.boolean(),
24572
+ soldOut: z48.boolean(),
24573
+ category: z48.object({
24574
+ id: z48.string(),
24575
+ name: z48.string(),
24576
+ slug: z48.string()
24458
24577
  }).nullable(),
24459
- summary: z49.string().nullable(),
24460
- body: z49.unknown().nullable(),
24461
- gallery: z49.array(
24462
- z49.object({
24463
- url: z49.string(),
24464
- alt: z49.string().nullable()
24578
+ summary: z48.string().nullable(),
24579
+ body: z48.unknown().nullable(),
24580
+ gallery: z48.array(
24581
+ z48.object({
24582
+ url: z48.string(),
24583
+ alt: z48.string().nullable()
24465
24584
  })
24466
24585
  ),
24467
- variants: z49.array(publicProductVariantSchema)
24586
+ variants: z48.array(publicProductVariantSchema)
24468
24587
  });
24469
- var publicProductsResponseSchema = z49.object({
24470
- products: z49.array(publicProductSchema)
24588
+ var publicProductsResponseSchema = z48.object({
24589
+ products: z48.array(publicProductSchema)
24471
24590
  });
24472
24591
 
24473
24592
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -24531,27 +24650,27 @@ function deriveCreditProductLabels(products, options = {}) {
24531
24650
  }
24532
24651
 
24533
24652
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
24534
- import { z as z50 } from "zod";
24535
- var storedProductCartItemSchema = z50.object({
24536
- kind: z50.literal("product"),
24537
- productId: z50.string().min(1),
24538
- productCategoryId: z50.string().min(1).optional().nullable(),
24539
- variantId: z50.string().min(1).optional().nullable(),
24540
- title: z50.string().min(1),
24541
- variantTitle: z50.string().optional().nullable(),
24542
- quantity: z50.number().finite(),
24543
- unitPriceCents: z50.number().finite(),
24544
- currency: z50.string().min(1),
24545
- imageUrl: z50.string().optional().nullable(),
24546
- soldOut: z50.boolean().optional()
24547
- });
24548
- var storedPassCartItemSchema = z50.object({
24549
- kind: z50.literal("pass"),
24550
- passId: z50.string().min(1),
24551
- title: z50.string().min(1),
24552
- quantity: z50.number().finite().optional(),
24553
- unitPriceCents: z50.number().finite(),
24554
- currency: z50.string().min(1)
24653
+ import { z as z49 } from "zod";
24654
+ var storedProductCartItemSchema = z49.object({
24655
+ kind: z49.literal("product"),
24656
+ productId: z49.string().min(1),
24657
+ productCategoryId: z49.string().min(1).optional().nullable(),
24658
+ variantId: z49.string().min(1).optional().nullable(),
24659
+ title: z49.string().min(1),
24660
+ variantTitle: z49.string().optional().nullable(),
24661
+ quantity: z49.number().finite(),
24662
+ unitPriceCents: z49.number().finite(),
24663
+ currency: z49.string().min(1),
24664
+ imageUrl: z49.string().optional().nullable(),
24665
+ soldOut: z49.boolean().optional()
24666
+ });
24667
+ var storedPassCartItemSchema = z49.object({
24668
+ kind: z49.literal("pass"),
24669
+ passId: z49.string().min(1),
24670
+ title: z49.string().min(1),
24671
+ quantity: z49.number().finite().optional(),
24672
+ unitPriceCents: z49.number().finite(),
24673
+ currency: z49.string().min(1)
24555
24674
  });
24556
24675
  function deriveCommerceCheckoutState(state) {
24557
24676
  if (state.items.length === 0) {
@@ -24785,214 +24904,214 @@ function formatValidity(days) {
24785
24904
  }
24786
24905
 
24787
24906
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
24788
- var shopModeSchema = z51.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
24789
- var contentEntrySchema3 = z51.object({
24790
- id: z51.string().nullable().optional(),
24791
- slug: z51.string().nullable().optional()
24907
+ var shopModeSchema = z50.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
24908
+ var contentEntrySchema3 = z50.object({
24909
+ id: z50.string().nullable().optional(),
24910
+ slug: z50.string().nullable().optional()
24792
24911
  }).nullable();
24793
- var shopSourceSchema = z51.object({
24794
- className: z51.string().nullable().optional(),
24912
+ var shopSourceSchema = z50.object({
24913
+ className: z50.string().nullable().optional(),
24795
24914
  mode: shopModeSchema.optional(),
24796
- heading: z51.string().nullable().optional(),
24797
- productSlug: z51.string().nullable().optional(),
24798
- showPasses: z51.boolean().optional(),
24799
- showMemberships: z51.boolean().optional(),
24800
- layout: z51.enum(["grid", "list"]).optional(),
24801
- columns: z51.string().optional(),
24802
- showDescriptions: z51.boolean().optional(),
24803
- showSummary: z51.boolean().optional(),
24804
- showBody: z51.boolean().optional(),
24805
- showPrices: z51.boolean().optional(),
24806
- showValidityPeriod: z51.boolean().optional(),
24807
- showPricePerCredit: z51.boolean().nullable().optional(),
24808
- passesHeading: z51.string().optional(),
24809
- membershipsHeading: z51.string().optional(),
24810
- buyButtonText: z51.string().optional(),
24811
- addButtonText: z51.string().optional(),
24812
- passPurchaseMode: z51.enum(["add_to_cart", "buy_now"]).optional(),
24813
- subscribeButtonText: z51.string().optional(),
24814
- emptyStateText: z51.string().optional(),
24815
- checkoutButtonText: z51.string().optional(),
24816
- clearButtonText: z51.string().optional(),
24817
- submitButtonText: z51.string().optional(),
24915
+ heading: z50.string().nullable().optional(),
24916
+ productSlug: z50.string().nullable().optional(),
24917
+ showPasses: z50.boolean().optional(),
24918
+ showMemberships: z50.boolean().optional(),
24919
+ layout: z50.enum(["grid", "list"]).optional(),
24920
+ columns: z50.string().optional(),
24921
+ showDescriptions: z50.boolean().optional(),
24922
+ showSummary: z50.boolean().optional(),
24923
+ showBody: z50.boolean().optional(),
24924
+ showPrices: z50.boolean().optional(),
24925
+ showValidityPeriod: z50.boolean().optional(),
24926
+ showPricePerCredit: z50.boolean().nullable().optional(),
24927
+ passesHeading: z50.string().optional(),
24928
+ membershipsHeading: z50.string().optional(),
24929
+ buyButtonText: z50.string().optional(),
24930
+ addButtonText: z50.string().optional(),
24931
+ passPurchaseMode: z50.enum(["add_to_cart", "buy_now"]).optional(),
24932
+ subscribeButtonText: z50.string().optional(),
24933
+ emptyStateText: z50.string().optional(),
24934
+ checkoutButtonText: z50.string().optional(),
24935
+ clearButtonText: z50.string().optional(),
24936
+ submitButtonText: z50.string().optional(),
24818
24937
  contentEntry: contentEntrySchema3.optional(),
24819
- passes: z51.array(publicPassProductSchema).nullable().optional(),
24820
- memberships: z51.array(publicMembershipProductSchema).nullable().optional(),
24821
- products: z51.array(publicProductSchema).nullable().optional(),
24822
- siteId: z51.string().optional(),
24823
- apiBaseUrl: z51.string().optional(),
24938
+ passes: z50.array(publicPassProductSchema).nullable().optional(),
24939
+ memberships: z50.array(publicMembershipProductSchema).nullable().optional(),
24940
+ products: z50.array(publicProductSchema).nullable().optional(),
24941
+ siteId: z50.string().optional(),
24942
+ apiBaseUrl: z50.string().optional(),
24824
24943
  stage: previewStageSchema.optional()
24825
24944
  });
24826
- var productVariantOptionDisplaySchema = z51.object({
24827
- id: z51.string(),
24828
- label: z51.string(),
24829
- soldOut: z51.boolean()
24830
- });
24831
- var productCardDisplaySchema = z51.object({
24832
- productId: z51.string(),
24833
- title: z51.string(),
24834
- path: z51.string().nullable(),
24835
- summary: z51.string().nullable(),
24836
- priceLabel: z51.string().nullable(),
24837
- image: z51.object({
24838
- url: z51.string(),
24839
- alt: z51.string().nullable()
24945
+ var productVariantOptionDisplaySchema = z50.object({
24946
+ id: z50.string(),
24947
+ label: z50.string(),
24948
+ soldOut: z50.boolean()
24949
+ });
24950
+ var productCardDisplaySchema = z50.object({
24951
+ productId: z50.string(),
24952
+ title: z50.string(),
24953
+ path: z50.string().nullable(),
24954
+ summary: z50.string().nullable(),
24955
+ priceLabel: z50.string().nullable(),
24956
+ image: z50.object({
24957
+ url: z50.string(),
24958
+ alt: z50.string().nullable()
24840
24959
  }).nullable(),
24841
- variantOptions: z51.array(productVariantOptionDisplaySchema),
24842
- selectedVariantId: z51.string().nullable(),
24843
- selectionLabel: z51.string(),
24844
- actionLabel: z51.string(),
24845
- soldOut: z51.boolean()
24846
- });
24847
- var productListDisplaySchema = z51.object({
24848
- kind: z51.literal("product-list"),
24849
- state: z51.enum(["empty", "ready"]),
24850
- heading: z51.string().nullable(),
24851
- className: z51.string().nullable(),
24852
- layout: z51.enum(["grid", "list"]),
24853
- columns: z51.string(),
24854
- emptyMessage: z51.string(),
24855
- cards: z51.array(productCardDisplaySchema)
24856
- });
24857
- var productDetailDisplaySchema = z51.discriminatedUnion("state", [
24858
- z51.object({
24859
- kind: z51.literal("product-detail"),
24860
- state: z51.literal("empty"),
24861
- heading: z51.string().nullable(),
24862
- className: z51.string().nullable(),
24863
- emptyMessage: z51.string()
24960
+ variantOptions: z50.array(productVariantOptionDisplaySchema),
24961
+ selectedVariantId: z50.string().nullable(),
24962
+ selectionLabel: z50.string(),
24963
+ actionLabel: z50.string(),
24964
+ soldOut: z50.boolean()
24965
+ });
24966
+ var productListDisplaySchema = z50.object({
24967
+ kind: z50.literal("product-list"),
24968
+ state: z50.enum(["empty", "ready"]),
24969
+ heading: z50.string().nullable(),
24970
+ className: z50.string().nullable(),
24971
+ layout: z50.enum(["grid", "list"]),
24972
+ columns: z50.string(),
24973
+ emptyMessage: z50.string(),
24974
+ cards: z50.array(productCardDisplaySchema)
24975
+ });
24976
+ var productDetailDisplaySchema = z50.discriminatedUnion("state", [
24977
+ z50.object({
24978
+ kind: z50.literal("product-detail"),
24979
+ state: z50.literal("empty"),
24980
+ heading: z50.string().nullable(),
24981
+ className: z50.string().nullable(),
24982
+ emptyMessage: z50.string()
24864
24983
  }),
24865
- z51.object({
24866
- kind: z51.literal("product-detail"),
24867
- state: z51.literal("ready"),
24868
- heading: z51.string().nullable(),
24869
- className: z51.string().nullable(),
24870
- title: z51.string(),
24871
- priceLabel: z51.string(),
24872
- summary: z51.string().nullable(),
24873
- categoryLabel: z51.string().nullable(),
24874
- gallery: z51.array(z51.object({
24875
- url: z51.string(),
24876
- alt: z51.string().nullable()
24984
+ z50.object({
24985
+ kind: z50.literal("product-detail"),
24986
+ state: z50.literal("ready"),
24987
+ heading: z50.string().nullable(),
24988
+ className: z50.string().nullable(),
24989
+ title: z50.string(),
24990
+ priceLabel: z50.string(),
24991
+ summary: z50.string().nullable(),
24992
+ categoryLabel: z50.string().nullable(),
24993
+ gallery: z50.array(z50.object({
24994
+ url: z50.string(),
24995
+ alt: z50.string().nullable()
24877
24996
  })),
24878
- variantOptions: z51.array(productVariantOptionDisplaySchema),
24879
- selectedVariantId: z51.string().nullable(),
24880
- selectionLabel: z51.string(),
24881
- actionLabel: z51.string(),
24882
- soldOut: z51.boolean(),
24883
- body: z51.unknown().nullable()
24997
+ variantOptions: z50.array(productVariantOptionDisplaySchema),
24998
+ selectedVariantId: z50.string().nullable(),
24999
+ selectionLabel: z50.string(),
25000
+ actionLabel: z50.string(),
25001
+ soldOut: z50.boolean(),
25002
+ body: z50.unknown().nullable()
24884
25003
  })
24885
25004
  ]);
24886
- var passCardDisplaySchema = z51.object({
24887
- id: z51.string(),
24888
- title: z51.string(),
24889
- description: z51.string().nullable(),
24890
- priceLabel: z51.string(),
24891
- creditsLabel: z51.string(),
24892
- perCreditLabel: z51.string().nullable(),
24893
- validityLabel: z51.string().nullable(),
24894
- actionLabel: z51.string()
24895
- });
24896
- var membershipCardDisplaySchema = z51.object({
24897
- id: z51.string(),
24898
- title: z51.string(),
24899
- description: z51.string().nullable(),
24900
- priceLabel: z51.string(),
24901
- intervalLabel: z51.string(),
24902
- actionLabel: z51.string()
24903
- });
24904
- var passesMembershipsDisplaySchema = z51.object({
24905
- kind: z51.literal("passes-memberships"),
24906
- state: z51.enum(["empty", "ready"]),
24907
- className: z51.string().nullable(),
24908
- layout: z51.enum(["grid", "list"]),
24909
- columns: z51.string(),
24910
- emptyMessage: z51.string(),
24911
- passesHeading: z51.string(),
24912
- membershipsHeading: z51.string(),
24913
- passes: z51.array(passCardDisplaySchema),
24914
- memberships: z51.array(membershipCardDisplaySchema)
24915
- });
24916
- var cartLineDisplaySchema = z51.object({
24917
- key: z51.string(),
24918
- title: z51.string(),
24919
- priceLabel: z51.string(),
24920
- quantity: z51.number(),
24921
- quantityEditable: z51.boolean()
24922
- });
24923
- var cartDisplaySchema = z51.object({
24924
- kind: z51.literal("cart"),
24925
- state: z51.enum(["empty", "ready"]),
24926
- heading: z51.string().nullable(),
24927
- className: z51.string().nullable(),
24928
- emptyMessage: z51.string(),
24929
- supportText: z51.string().nullable(),
24930
- items: z51.array(cartLineDisplaySchema),
24931
- subtotalLabel: z51.string().nullable(),
24932
- checkoutButtonText: z51.string(),
24933
- clearButtonText: z51.string()
24934
- });
24935
- var checkoutDisplaySchema = z51.object({
24936
- kind: z51.literal("checkout"),
24937
- state: z51.enum(["empty", "blocked", "ready"]),
24938
- heading: z51.string().nullable(),
24939
- className: z51.string().nullable(),
24940
- message: z51.string().nullable(),
24941
- submitButtonText: z51.string()
24942
- });
24943
- var passesMembershipsHydrationSchema = z51.object({
24944
- passes: z51.array(publicPassProductSchema),
24945
- memberships: z51.array(publicMembershipProductSchema),
24946
- passPurchaseMode: z51.enum(["add_to_cart", "buy_now"])
24947
- });
24948
- var productListHydrationSchema = z51.object({
24949
- products: z51.array(publicProductSchema),
24950
- showSummary: z51.boolean(),
24951
- showPrices: z51.boolean(),
24952
- addButtonText: z51.string()
24953
- });
24954
- var productDetailHydrationSchema = z51.object({
24955
- products: z51.array(publicProductSchema),
24956
- productId: z51.string().nullable(),
24957
- showSummary: z51.boolean(),
24958
- showBody: z51.boolean(),
24959
- addButtonText: z51.string()
24960
- });
24961
- var cartHydrationSchema = z51.object({
24962
- emptyStateText: z51.string(),
24963
- checkoutButtonText: z51.string(),
24964
- clearButtonText: z51.string()
24965
- });
24966
- var checkoutHydrationSchema = z51.object({
24967
- emptyStateText: z51.string(),
24968
- submitButtonText: z51.string()
24969
- });
24970
- var passesMembershipsRenderSchema = z51.object({
25005
+ var passCardDisplaySchema = z50.object({
25006
+ id: z50.string(),
25007
+ title: z50.string(),
25008
+ description: z50.string().nullable(),
25009
+ priceLabel: z50.string(),
25010
+ creditsLabel: z50.string(),
25011
+ perCreditLabel: z50.string().nullable(),
25012
+ validityLabel: z50.string().nullable(),
25013
+ actionLabel: z50.string()
25014
+ });
25015
+ var membershipCardDisplaySchema = z50.object({
25016
+ id: z50.string(),
25017
+ title: z50.string(),
25018
+ description: z50.string().nullable(),
25019
+ priceLabel: z50.string(),
25020
+ intervalLabel: z50.string(),
25021
+ actionLabel: z50.string()
25022
+ });
25023
+ var passesMembershipsDisplaySchema = z50.object({
25024
+ kind: z50.literal("passes-memberships"),
25025
+ state: z50.enum(["empty", "ready"]),
25026
+ className: z50.string().nullable(),
25027
+ layout: z50.enum(["grid", "list"]),
25028
+ columns: z50.string(),
25029
+ emptyMessage: z50.string(),
25030
+ passesHeading: z50.string(),
25031
+ membershipsHeading: z50.string(),
25032
+ passes: z50.array(passCardDisplaySchema),
25033
+ memberships: z50.array(membershipCardDisplaySchema)
25034
+ });
25035
+ var cartLineDisplaySchema = z50.object({
25036
+ key: z50.string(),
25037
+ title: z50.string(),
25038
+ priceLabel: z50.string(),
25039
+ quantity: z50.number(),
25040
+ quantityEditable: z50.boolean()
25041
+ });
25042
+ var cartDisplaySchema = z50.object({
25043
+ kind: z50.literal("cart"),
25044
+ state: z50.enum(["empty", "ready"]),
25045
+ heading: z50.string().nullable(),
25046
+ className: z50.string().nullable(),
25047
+ emptyMessage: z50.string(),
25048
+ supportText: z50.string().nullable(),
25049
+ items: z50.array(cartLineDisplaySchema),
25050
+ subtotalLabel: z50.string().nullable(),
25051
+ checkoutButtonText: z50.string(),
25052
+ clearButtonText: z50.string()
25053
+ });
25054
+ var checkoutDisplaySchema = z50.object({
25055
+ kind: z50.literal("checkout"),
25056
+ state: z50.enum(["empty", "blocked", "ready"]),
25057
+ heading: z50.string().nullable(),
25058
+ className: z50.string().nullable(),
25059
+ message: z50.string().nullable(),
25060
+ submitButtonText: z50.string()
25061
+ });
25062
+ var passesMembershipsHydrationSchema = z50.object({
25063
+ passes: z50.array(publicPassProductSchema),
25064
+ memberships: z50.array(publicMembershipProductSchema),
25065
+ passPurchaseMode: z50.enum(["add_to_cart", "buy_now"])
25066
+ });
25067
+ var productListHydrationSchema = z50.object({
25068
+ products: z50.array(publicProductSchema),
25069
+ showSummary: z50.boolean(),
25070
+ showPrices: z50.boolean(),
25071
+ addButtonText: z50.string()
25072
+ });
25073
+ var productDetailHydrationSchema = z50.object({
25074
+ products: z50.array(publicProductSchema),
25075
+ productId: z50.string().nullable(),
25076
+ showSummary: z50.boolean(),
25077
+ showBody: z50.boolean(),
25078
+ addButtonText: z50.string()
25079
+ });
25080
+ var cartHydrationSchema = z50.object({
25081
+ emptyStateText: z50.string(),
25082
+ checkoutButtonText: z50.string(),
25083
+ clearButtonText: z50.string()
25084
+ });
25085
+ var checkoutHydrationSchema = z50.object({
25086
+ emptyStateText: z50.string(),
25087
+ submitButtonText: z50.string()
25088
+ });
25089
+ var passesMembershipsRenderSchema = z50.object({
24971
25090
  display: passesMembershipsDisplaySchema,
24972
25091
  hydration: passesMembershipsHydrationSchema
24973
25092
  });
24974
- var productListRenderSchema = z51.object({
25093
+ var productListRenderSchema = z50.object({
24975
25094
  display: productListDisplaySchema,
24976
25095
  hydration: productListHydrationSchema
24977
25096
  });
24978
- var productDetailRenderSchema = z51.object({
25097
+ var productDetailRenderSchema = z50.object({
24979
25098
  display: productDetailDisplaySchema,
24980
25099
  hydration: productDetailHydrationSchema
24981
25100
  });
24982
- var cartRenderSchema = z51.object({
25101
+ var cartRenderSchema = z50.object({
24983
25102
  display: cartDisplaySchema,
24984
25103
  hydration: cartHydrationSchema
24985
25104
  });
24986
- var checkoutRenderSchema = z51.object({
25105
+ var checkoutRenderSchema = z50.object({
24987
25106
  display: checkoutDisplaySchema,
24988
25107
  hydration: checkoutHydrationSchema
24989
25108
  });
24990
25109
  function resolveShowPricePerCredit(source) {
24991
25110
  return source.showPricePerCredit ?? true;
24992
25111
  }
24993
- var shopIslandMetaCodec = createZodCodec(z51.object({
24994
- siteId: z51.string().optional(),
24995
- apiBaseUrl: z51.string().optional(),
25112
+ var shopIslandMetaCodec = createZodCodec(z50.object({
25113
+ siteId: z50.string().optional(),
25114
+ apiBaseUrl: z50.string().optional(),
24996
25115
  stage: previewStageSchema.optional()
24997
25116
  }));
24998
25117
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -25370,9 +25489,9 @@ var shopBlockDefinition = {
25370
25489
  runtime: shopBlockRuntime,
25371
25490
  dataSchemas: {
25372
25491
  // listPublicPasses returns { passes: [...] }
25373
- passes: z52.object({ passes: z52.array(publicPassProductSchema) }).optional(),
25492
+ passes: publicPassProductCollectionSchema.optional(),
25374
25493
  // listPublicMemberships returns { memberships: [...] }
25375
- memberships: z52.object({ memberships: z52.array(publicMembershipProductSchema) }).optional()
25494
+ memberships: publicMembershipProductCollectionSchema.optional()
25376
25495
  },
25377
25496
  dataLoaders: {
25378
25497
  // Load passes for display
@@ -25395,7 +25514,7 @@ var shopBlockDefinition = {
25395
25514
  };
25396
25515
 
25397
25516
  // ../blocks/src/system/blocks/product-list.ts
25398
- import { z as z53 } from "zod";
25517
+ import { z as z51 } from "zod";
25399
25518
  var productListManifest = createBlockManifest({
25400
25519
  id: "block.product-list",
25401
25520
  version: "1.0.0",
@@ -25528,7 +25647,7 @@ var productListBlockDefinition = {
25528
25647
  }
25529
25648
  }
25530
25649
  };
25531
- var productListDataSchema = z53.object({
25650
+ var productListDataSchema = z51.object({
25532
25651
  products: publicProductsResponseSchema.optional()
25533
25652
  });
25534
25653
 
@@ -25789,72 +25908,72 @@ var checkoutBlockDefinition = {
25789
25908
  };
25790
25909
 
25791
25910
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
25792
- import { z as z54 } from "zod";
25793
- var publicGiftCardOfferSchema = z54.object({
25794
- id: z54.string(),
25795
- kind: z54.literal("gift_card"),
25796
- title: z54.string(),
25797
- description: z54.string().nullable(),
25798
- sortOrder: z54.number().int(),
25799
- giftCard: z54.object({
25800
- fixedDenominations: z54.array(z54.number().int().positive()),
25801
- customAmountEnabled: z54.boolean(),
25802
- customAmountMinCents: z54.number().int().positive(),
25803
- customAmountMaxCents: z54.number().int().positive()
25911
+ import { z as z52 } from "zod";
25912
+ var publicGiftCardOfferSchema = z52.object({
25913
+ id: z52.string(),
25914
+ kind: z52.literal("gift_card"),
25915
+ title: z52.string(),
25916
+ description: z52.string().nullable(),
25917
+ sortOrder: z52.number().int(),
25918
+ giftCard: z52.object({
25919
+ fixedDenominations: z52.array(z52.number().int().positive()),
25920
+ customAmountEnabled: z52.boolean(),
25921
+ customAmountMinCents: z52.number().int().positive(),
25922
+ customAmountMaxCents: z52.number().int().positive()
25804
25923
  }),
25805
- voucher: z54.null()
25806
- });
25807
- var publicVoucherOfferSchema = z54.object({
25808
- id: z54.string(),
25809
- kind: z54.literal("voucher"),
25810
- title: z54.string(),
25811
- description: z54.string().nullable(),
25812
- sortOrder: z54.number().int(),
25813
- giftCard: z54.null(),
25814
- voucher: z54.object({
25815
- purchaseAmountCents: z54.number().int().positive()
25924
+ voucher: z52.null()
25925
+ });
25926
+ var publicVoucherOfferSchema = z52.object({
25927
+ id: z52.string(),
25928
+ kind: z52.literal("voucher"),
25929
+ title: z52.string(),
25930
+ description: z52.string().nullable(),
25931
+ sortOrder: z52.number().int(),
25932
+ giftCard: z52.null(),
25933
+ voucher: z52.object({
25934
+ purchaseAmountCents: z52.number().int().positive()
25816
25935
  })
25817
25936
  });
25818
- var publicGiftingOffersResponseSchema = z54.object({
25819
- currency: z54.string(),
25820
- giftCards: z54.array(publicGiftCardOfferSchema),
25821
- vouchers: z54.array(publicVoucherOfferSchema)
25937
+ var publicGiftingOffersResponseSchema = z52.object({
25938
+ currency: z52.string(),
25939
+ giftCards: z52.array(publicGiftCardOfferSchema),
25940
+ vouchers: z52.array(publicVoucherOfferSchema)
25822
25941
  });
25823
- var giftingSourceSchema = z54.object({
25824
- siteId: z54.string().optional(),
25825
- apiBaseUrl: z54.string().optional(),
25942
+ var giftingSourceSchema = z52.object({
25943
+ siteId: z52.string().optional(),
25944
+ apiBaseUrl: z52.string().optional(),
25826
25945
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
25827
- className: z54.string().nullable().optional(),
25828
- heading: z54.string().nullable().optional(),
25829
- intro: z54.string().nullable().optional(),
25830
- giftCardsHeading: z54.string().nullable().optional(),
25831
- vouchersHeading: z54.string().nullable().optional(),
25832
- emptyStateText: z54.string().nullable().optional(),
25833
- checkoutButtonText: z54.string().nullable().optional(),
25834
- successMessage: z54.string().nullable().optional()
25835
- });
25836
- var giftingDisplaySchema = z54.object({
25837
- kind: z54.literal("gifting"),
25838
- state: z54.literal("ready"),
25839
- className: z54.string().nullable(),
25840
- heading: z54.string(),
25841
- intro: z54.string().nullable(),
25842
- giftCardsHeading: z54.string(),
25843
- vouchersHeading: z54.string(),
25844
- emptyStateText: z54.string()
25845
- });
25846
- var giftingHydrationSchema = z54.object({
25946
+ className: z52.string().nullable().optional(),
25947
+ heading: z52.string().nullable().optional(),
25948
+ intro: z52.string().nullable().optional(),
25949
+ giftCardsHeading: z52.string().nullable().optional(),
25950
+ vouchersHeading: z52.string().nullable().optional(),
25951
+ emptyStateText: z52.string().nullable().optional(),
25952
+ checkoutButtonText: z52.string().nullable().optional(),
25953
+ successMessage: z52.string().nullable().optional()
25954
+ });
25955
+ var giftingDisplaySchema = z52.object({
25956
+ kind: z52.literal("gifting"),
25957
+ state: z52.literal("ready"),
25958
+ className: z52.string().nullable(),
25959
+ heading: z52.string(),
25960
+ intro: z52.string().nullable(),
25961
+ giftCardsHeading: z52.string(),
25962
+ vouchersHeading: z52.string(),
25963
+ emptyStateText: z52.string()
25964
+ });
25965
+ var giftingHydrationSchema = z52.object({
25847
25966
  offers: publicGiftingOffersResponseSchema.nullable(),
25848
- checkoutButtonText: z54.string(),
25849
- successMessage: z54.string()
25967
+ checkoutButtonText: z52.string(),
25968
+ successMessage: z52.string()
25850
25969
  });
25851
- var giftingRenderSchema = z54.object({
25970
+ var giftingRenderSchema = z52.object({
25852
25971
  display: giftingDisplaySchema,
25853
25972
  hydration: giftingHydrationSchema
25854
25973
  });
25855
- var giftingIslandMetaCodec = createZodCodec(z54.object({
25856
- siteId: z54.string().optional(),
25857
- apiBaseUrl: z54.string().optional()
25974
+ var giftingIslandMetaCodec = createZodCodec(z52.object({
25975
+ siteId: z52.string().optional(),
25976
+ apiBaseUrl: z52.string().optional()
25858
25977
  }));
25859
25978
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
25860
25979
  "siteId",
@@ -26025,7 +26144,7 @@ var giftingBlockDefinition = {
26025
26144
  };
26026
26145
 
26027
26146
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
26028
- import { z as z55 } from "zod";
26147
+ import { z as z53 } from "zod";
26029
26148
 
26030
26149
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
26031
26150
  function parseNewsletterSignupBlockId(value) {
@@ -26132,65 +26251,65 @@ function withOptionalPhone(fields3, includePhone) {
26132
26251
  }
26133
26252
 
26134
26253
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
26135
- var newsletterPresetSchema = z55.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
26136
- var newsletterDestinationProviderSchema = z55.enum(["riverbank", "mailchimp"]);
26137
- var newsletterFieldSchema = z55.object({
26138
- id: z55.string(),
26139
- type: z55.enum(["email", "text"]),
26140
- label: z55.string(),
26141
- required: z55.boolean(),
26142
- placeholder: z55.string().optional()
26143
- });
26144
- var newsletterSignupBlockIdSchema = z55.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
26145
- var signedNewsletterDestinationRefSchema = z55.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
26146
- var newsletterPublicDestinationRefSchema = z55.discriminatedUnion("tag", [
26147
- z55.object({
26148
- tag: z55.literal("block_ref"),
26254
+ var newsletterPresetSchema = z53.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
26255
+ var newsletterDestinationProviderSchema = z53.enum(["riverbank", "mailchimp"]);
26256
+ var newsletterFieldSchema = z53.object({
26257
+ id: z53.string(),
26258
+ type: z53.enum(["email", "text"]),
26259
+ label: z53.string(),
26260
+ required: z53.boolean(),
26261
+ placeholder: z53.string().optional()
26262
+ });
26263
+ var newsletterSignupBlockIdSchema = z53.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
26264
+ var signedNewsletterDestinationRefSchema = z53.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
26265
+ var newsletterPublicDestinationRefSchema = z53.discriminatedUnion("tag", [
26266
+ z53.object({
26267
+ tag: z53.literal("block_ref"),
26149
26268
  blockId: newsletterSignupBlockIdSchema
26150
26269
  }),
26151
- z55.object({
26152
- tag: z55.literal("signed_destination_ref"),
26270
+ z53.object({
26271
+ tag: z53.literal("signed_destination_ref"),
26153
26272
  token: signedNewsletterDestinationRefSchema
26154
26273
  })
26155
26274
  ]);
26156
- var newsletterSourceSchema = z55.object({
26157
- blockId: z55.string().nullable().optional(),
26158
- siteId: z55.string().optional(),
26159
- apiBaseUrl: z55.string().optional(),
26160
- listId: z55.string().nullable().optional(),
26275
+ var newsletterSourceSchema = z53.object({
26276
+ blockId: z53.string().nullable().optional(),
26277
+ siteId: z53.string().optional(),
26278
+ apiBaseUrl: z53.string().optional(),
26279
+ listId: z53.string().nullable().optional(),
26161
26280
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
26162
26281
  preset: newsletterPresetSchema.optional(),
26163
- includePhone: z55.boolean().optional(),
26164
- buttonLabel: z55.string().nullable().optional(),
26165
- successMessage: z55.string().nullable().optional(),
26166
- privacyNote: z55.string().nullable().optional(),
26167
- tags: z55.string().nullable().optional(),
26168
- spamProtectionEnabled: z55.boolean().optional(),
26169
- className: z55.string().nullable().optional()
26170
- });
26171
- var newsletterDisplaySchema = z55.object({
26172
- kind: z55.literal("newsletter-form"),
26173
- className: z55.string().nullable(),
26174
- buttonLabel: z55.string(),
26175
- successMessage: z55.string().nullable(),
26176
- privacyNote: z55.string().nullable(),
26177
- fields: z55.array(newsletterFieldSchema)
26178
- });
26179
- var newsletterHydrationSchema = z55.object({
26282
+ includePhone: z53.boolean().optional(),
26283
+ buttonLabel: z53.string().nullable().optional(),
26284
+ successMessage: z53.string().nullable().optional(),
26285
+ privacyNote: z53.string().nullable().optional(),
26286
+ tags: z53.string().nullable().optional(),
26287
+ spamProtectionEnabled: z53.boolean().optional(),
26288
+ className: z53.string().nullable().optional()
26289
+ });
26290
+ var newsletterDisplaySchema = z53.object({
26291
+ kind: z53.literal("newsletter-form"),
26292
+ className: z53.string().nullable(),
26293
+ buttonLabel: z53.string(),
26294
+ successMessage: z53.string().nullable(),
26295
+ privacyNote: z53.string().nullable(),
26296
+ fields: z53.array(newsletterFieldSchema)
26297
+ });
26298
+ var newsletterHydrationSchema = z53.object({
26180
26299
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
26181
- listId: z55.string().nullable().optional(),
26300
+ listId: z53.string().nullable().optional(),
26182
26301
  preset: newsletterPresetSchema,
26183
- includePhone: z55.boolean(),
26184
- tags: z55.string().nullable().optional(),
26185
- spamProtectionEnabled: z55.boolean().optional()
26302
+ includePhone: z53.boolean(),
26303
+ tags: z53.string().nullable().optional(),
26304
+ spamProtectionEnabled: z53.boolean().optional()
26186
26305
  });
26187
- var newsletterRenderSchema = z55.object({
26306
+ var newsletterRenderSchema = z53.object({
26188
26307
  display: newsletterDisplaySchema,
26189
26308
  hydration: newsletterHydrationSchema
26190
26309
  });
26191
- var newsletterIslandMetaCodec = createZodCodec(z55.object({
26192
- siteId: z55.string().optional(),
26193
- apiBaseUrl: z55.string().optional()
26310
+ var newsletterIslandMetaCodec = createZodCodec(z53.object({
26311
+ siteId: z53.string().optional(),
26312
+ apiBaseUrl: z53.string().optional()
26194
26313
  }));
26195
26314
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
26196
26315
  function buildNewsletterDisplay(source) {
@@ -26329,23 +26448,23 @@ var newsletterSignupBlockDefinition = {
26329
26448
  };
26330
26449
 
26331
26450
  // ../blocks/src/system/blocks/team-members.ts
26332
- import { z as z56 } from "zod";
26451
+ import { z as z54 } from "zod";
26333
26452
  var ITEM_NAME2 = "member";
26334
26453
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
26335
26454
  message: "Team member photos must be image media"
26336
26455
  }).nullable();
26337
- var teamMemberDataSchema = z56.object({
26338
- _type: z56.literal("teamMember"),
26339
- id: z56.string(),
26340
- name: z56.string(),
26341
- role: z56.string().nullable(),
26342
- roleLabel: z56.string().nullable(),
26343
- bio: z56.string().nullable(),
26344
- summary: z56.string().nullable(),
26456
+ var teamMemberDataSchema = z54.object({
26457
+ _type: z54.literal("teamMember"),
26458
+ id: z54.string(),
26459
+ name: z54.string(),
26460
+ role: z54.string().nullable(),
26461
+ roleLabel: z54.string().nullable(),
26462
+ bio: z54.string().nullable(),
26463
+ summary: z54.string().nullable(),
26345
26464
  photo: teamMemberPhotoSchema,
26346
- profilePath: z56.string().nullable()
26465
+ profilePath: z54.string().nullable()
26347
26466
  });
26348
- var teamMembersDataSchema = z56.array(teamMemberDataSchema);
26467
+ var teamMembersDataSchema = z54.array(teamMemberDataSchema);
26349
26468
  var dynamicSourceWhen = { equals: "site_staff" };
26350
26469
  var manualSourceWhen = { equals: "site_staff", not: true };
26351
26470
  var headingNode = text(
@@ -27237,13 +27356,6 @@ var systemBlockDefinitionsRaw = [
27237
27356
  weight: "featured",
27238
27357
  bias: "clear",
27239
27358
  surfaces: heroSectionSurfaces
27240
- }),
27241
- layoutProfile({
27242
- variantKey: "splitEditorial",
27243
- family: "split",
27244
- weight: "featured",
27245
- bias: "clear",
27246
- surfaces: heroSectionSurfaces
27247
27359
  })
27248
27360
  ]
27249
27361
  })),
@@ -27487,9 +27599,8 @@ var systemBlockDefinitionsRaw = [
27487
27599
  flow: offeringsFlow,
27488
27600
  layoutProfiles: [
27489
27601
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
27602
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
27490
27603
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
27491
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
27492
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
27493
27604
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
27494
27605
  ]
27495
27606
  })),
@@ -28397,42 +28508,45 @@ import { jsx as jsx4 } from "react/jsx-runtime";
28397
28508
  import * as React from "react";
28398
28509
  import { Fragment, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
28399
28510
 
28511
+ // ../theme-core/src/ResponsiveScope.tsx
28512
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
28513
+
28400
28514
  // ../theme-core/src/fonts/uploadFormat.ts
28401
28515
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
28402
28516
 
28403
28517
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
28404
- import { z as z57 } from "zod";
28405
- var themeBridgeConfigSchema = z57.object({
28406
- tokens: z57.record(z57.string(), z57.string()),
28407
- typography: z57.object({
28408
- headingFamily: z57.string().optional(),
28409
- bodyFamily: z57.string().optional(),
28410
- headingWeight: z57.number().optional(),
28411
- bodyWeight: z57.number().optional()
28518
+ import { z as z55 } from "zod";
28519
+ var themeBridgeConfigSchema = z55.object({
28520
+ tokens: z55.record(z55.string(), z55.string()),
28521
+ typography: z55.object({
28522
+ headingFamily: z55.string().optional(),
28523
+ bodyFamily: z55.string().optional(),
28524
+ headingWeight: z55.number().optional(),
28525
+ bodyWeight: z55.number().optional()
28412
28526
  }).optional(),
28413
- spacing: z57.enum(["comfortable", "standard", "dense"]).optional(),
28414
- corners: z57.enum(["square", "soft", "rounded", "pill"]).optional(),
28415
- shadows: z57.enum(["none", "low", "medium", "high"]).optional(),
28416
- components: z57.object({
28417
- buttons: z57.union([
28418
- z57.boolean(),
28419
- z57.object({
28420
- variants: z57.array(z57.enum(["primary", "secondary", "outline", "ghost"])).optional()
28527
+ spacing: z55.enum(["comfortable", "standard", "dense"]).optional(),
28528
+ corners: z55.enum(["square", "soft", "rounded", "pill"]).optional(),
28529
+ shadows: z55.enum(["none", "low", "medium", "high"]).optional(),
28530
+ components: z55.object({
28531
+ buttons: z55.union([
28532
+ z55.boolean(),
28533
+ z55.object({
28534
+ variants: z55.array(z55.enum(["primary", "secondary", "outline", "ghost"])).optional()
28421
28535
  })
28422
28536
  ]).optional(),
28423
- cards: z57.union([
28424
- z57.boolean(),
28425
- z57.object({
28426
- variants: z57.array(z57.enum(["default", "elevated", "outlined"])).optional()
28537
+ cards: z55.union([
28538
+ z55.boolean(),
28539
+ z55.object({
28540
+ variants: z55.array(z55.enum(["default", "elevated", "outlined"])).optional()
28427
28541
  })
28428
28542
  ]).optional(),
28429
- inputs: z57.boolean().optional()
28543
+ inputs: z55.boolean().optional()
28430
28544
  }).optional(),
28431
- overrides: z57.record(z57.string(), z57.string()).optional()
28545
+ overrides: z55.record(z55.string(), z55.string()).optional()
28432
28546
  }).passthrough();
28433
28547
 
28434
28548
  // ../theme-core/src/siteChrome.tsx
28435
- import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
28549
+ import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
28436
28550
 
28437
28551
  // src/page-converter/block-summaries.ts
28438
28552
  function buildFieldSummary(input) {
@@ -28637,11 +28751,11 @@ function resolveModelForPass(passId, tierOverrides, passOverrides, globalModel)
28637
28751
  }
28638
28752
 
28639
28753
  // src/page-converter/passes/pass1-segmentation-matching.ts
28640
- import { z as z62 } from "zod";
28754
+ import { z as z60 } from "zod";
28641
28755
 
28642
28756
  // src/manifest/passes/pass1-fields.ts
28643
- import { z as z58 } from "zod";
28644
- var simpleFieldTypeEnum = z58.enum([
28757
+ import { z as z56 } from "zod";
28758
+ var simpleFieldTypeEnum = z56.enum([
28645
28759
  "text",
28646
28760
  "richText",
28647
28761
  "media",
@@ -28650,7 +28764,7 @@ var simpleFieldTypeEnum = z58.enum([
28650
28764
  "select",
28651
28765
  "number"
28652
28766
  ]);
28653
- var fieldTypeEnum = z58.enum([
28767
+ var fieldTypeEnum = z56.enum([
28654
28768
  "text",
28655
28769
  "richText",
28656
28770
  "media",
@@ -28661,109 +28775,109 @@ var fieldTypeEnum = z58.enum([
28661
28775
  "repeater",
28662
28776
  "group"
28663
28777
  ]);
28664
- var linkDefaultValue = z58.object({
28665
- label: z58.string().describe("The visible link text")
28778
+ var linkDefaultValue = z56.object({
28779
+ label: z56.string().describe("The visible link text")
28666
28780
  });
28667
- var mediaDefaultValue = z58.object({
28668
- src: z58.string().describe("Image/video source URL"),
28669
- alt: z58.string().describe("Alt text for accessibility (empty string if none)")
28781
+ var mediaDefaultValue = z56.object({
28782
+ src: z56.string().describe("Image/video source URL"),
28783
+ alt: z56.string().describe("Alt text for accessibility (empty string if none)")
28670
28784
  });
28671
- var nestedFieldSchema = z58.object({
28672
- id: z58.string().min(1).describe("camelCase field ID"),
28785
+ var nestedFieldSchema = z56.object({
28786
+ id: z56.string().min(1).describe("camelCase field ID"),
28673
28787
  type: simpleFieldTypeEnum,
28674
- label: z58.string().min(1),
28675
- required: z58.boolean().nullable()
28788
+ label: z56.string().min(1),
28789
+ required: z56.boolean().nullable()
28676
28790
  });
28677
- var simpleFieldSchema = z58.object({
28678
- id: z58.string().min(1).describe("camelCase field ID (e.g., headline, ctaButton)"),
28791
+ var simpleFieldSchema = z56.object({
28792
+ id: z56.string().min(1).describe("camelCase field ID (e.g., headline, ctaButton)"),
28679
28793
  type: simpleFieldTypeEnum,
28680
- label: z58.string().min(1),
28681
- required: z58.boolean(),
28682
- multiline: z58.boolean().nullable().describe("For text fields: true if multiple lines"),
28683
- defaultValue: z58.union([
28684
- z58.string(),
28685
- z58.number(),
28686
- z58.boolean(),
28794
+ label: z56.string().min(1),
28795
+ required: z56.boolean(),
28796
+ multiline: z56.boolean().nullable().describe("For text fields: true if multiple lines"),
28797
+ defaultValue: z56.union([
28798
+ z56.string(),
28799
+ z56.number(),
28800
+ z56.boolean(),
28687
28801
  linkDefaultValue,
28688
28802
  mediaDefaultValue,
28689
- z58.null()
28803
+ z56.null()
28690
28804
  ]).describe("Default content extracted from HTML"),
28691
- htmlContext: z58.string().describe("Brief description of where this appears in the HTML")
28692
- });
28693
- var repeaterFieldSchema2 = z58.object({
28694
- id: z58.string().min(1).describe("camelCase field ID (e.g., socialLinks, features)"),
28695
- type: z58.literal("repeater"),
28696
- label: z58.string().min(1),
28697
- required: z58.boolean(),
28698
- itemLabel: z58.string().min(1).describe('Singular label for each item (e.g., "Link", "Feature")'),
28699
- itemFields: z58.array(nestedFieldSchema).min(1).describe("Fields for each item in the repeater"),
28700
- htmlContext: z58.string().describe("Brief description of where this appears in the HTML")
28701
- });
28702
- var groupFieldSchema2 = z58.object({
28703
- id: z58.string().min(1).describe("camelCase field ID (e.g., contactInfo, seoSettings)"),
28704
- type: z58.literal("group"),
28705
- label: z58.string().min(1),
28706
- required: z58.boolean(),
28707
- groupFields: z58.array(nestedFieldSchema).min(1).describe("Fields within the group"),
28708
- htmlContext: z58.string().describe("Brief description of where this appears in the HTML")
28709
- });
28710
- var extractedFieldSchema = z58.union([
28805
+ htmlContext: z56.string().describe("Brief description of where this appears in the HTML")
28806
+ });
28807
+ var repeaterFieldSchema2 = z56.object({
28808
+ id: z56.string().min(1).describe("camelCase field ID (e.g., socialLinks, features)"),
28809
+ type: z56.literal("repeater"),
28810
+ label: z56.string().min(1),
28811
+ required: z56.boolean(),
28812
+ itemLabel: z56.string().min(1).describe('Singular label for each item (e.g., "Link", "Feature")'),
28813
+ itemFields: z56.array(nestedFieldSchema).min(1).describe("Fields for each item in the repeater"),
28814
+ htmlContext: z56.string().describe("Brief description of where this appears in the HTML")
28815
+ });
28816
+ var groupFieldSchema2 = z56.object({
28817
+ id: z56.string().min(1).describe("camelCase field ID (e.g., contactInfo, seoSettings)"),
28818
+ type: z56.literal("group"),
28819
+ label: z56.string().min(1),
28820
+ required: z56.boolean(),
28821
+ groupFields: z56.array(nestedFieldSchema).min(1).describe("Fields within the group"),
28822
+ htmlContext: z56.string().describe("Brief description of where this appears in the HTML")
28823
+ });
28824
+ var extractedFieldSchema = z56.union([
28711
28825
  simpleFieldSchema,
28712
28826
  repeaterFieldSchema2,
28713
28827
  groupFieldSchema2
28714
28828
  ]);
28715
- var extractedEntrySchema = z58.object({
28716
- identifier: z58.string().regex(/^[a-z0-9-]+$/).describe("Unique slug-safe identifier (e.g., wine-tasting-evening)"),
28717
- title: z58.string().min(1).describe("Entry title"),
28829
+ var extractedEntrySchema = z56.object({
28830
+ identifier: z56.string().regex(/^[a-z0-9-]+$/).describe("Unique slug-safe identifier (e.g., wine-tasting-evening)"),
28831
+ title: z56.string().min(1).describe("Entry title"),
28718
28832
  // Use passthrough() instead of record() - generates additionalProperties:true without propertyNames
28719
28833
  // which OpenAI's structured output accepts
28720
- data: z58.object({}).passthrough().describe("Entry data matching the content type schema")
28721
- });
28722
- var newContentTypeSchema = z58.object({
28723
- key: z58.string().regex(/^[a-z][a-z0-9-]*$/).describe("Content type key (e.g., testimonial, team-member)"),
28724
- name: z58.string().min(1).describe("Human-readable name"),
28725
- description: z58.string().nullable().describe("Description of this content type"),
28726
- fields: z58.array(z58.object({
28727
- id: z58.string().min(1),
28728
- type: z58.string().min(1),
28729
- label: z58.string().min(1),
28730
- required: z58.boolean().nullable(),
28731
- description: z58.string().nullable()
28834
+ data: z56.object({}).passthrough().describe("Entry data matching the content type schema")
28835
+ });
28836
+ var newContentTypeSchema = z56.object({
28837
+ key: z56.string().regex(/^[a-z][a-z0-9-]*$/).describe("Content type key (e.g., testimonial, team-member)"),
28838
+ name: z56.string().min(1).describe("Human-readable name"),
28839
+ description: z56.string().nullable().describe("Description of this content type"),
28840
+ fields: z56.array(z56.object({
28841
+ id: z56.string().min(1),
28842
+ type: z56.string().min(1),
28843
+ label: z56.string().min(1),
28844
+ required: z56.boolean().nullable(),
28845
+ description: z56.string().nullable()
28732
28846
  })).min(1),
28733
- isRouted: z58.boolean().describe("Whether entries have their own pages")
28847
+ isRouted: z56.boolean().describe("Whether entries have their own pages")
28734
28848
  });
28735
- var contentTypeApproachSchema = z58.discriminatedUnion("approach", [
28849
+ var contentTypeApproachSchema = z56.discriminatedUnion("approach", [
28736
28850
  // Use an existing content type
28737
- z58.object({
28738
- approach: z58.literal("existingContentType"),
28739
- contentTypeKey: z58.string().min(1).describe("Key of the existing content type to use"),
28740
- entries: z58.array(extractedEntrySchema).min(1).describe("Extracted entries"),
28741
- rationale: z58.string().describe("Why this content type fits")
28851
+ z56.object({
28852
+ approach: z56.literal("existingContentType"),
28853
+ contentTypeKey: z56.string().min(1).describe("Key of the existing content type to use"),
28854
+ entries: z56.array(extractedEntrySchema).min(1).describe("Extracted entries"),
28855
+ rationale: z56.string().describe("Why this content type fits")
28742
28856
  }),
28743
28857
  // Create a new content type
28744
- z58.object({
28745
- approach: z58.literal("newContentType"),
28858
+ z56.object({
28859
+ approach: z56.literal("newContentType"),
28746
28860
  contentType: newContentTypeSchema,
28747
- entries: z58.array(extractedEntrySchema).min(1).describe("Extracted entries"),
28748
- rationale: z58.string().describe("Why a new content type is needed")
28861
+ entries: z56.array(extractedEntrySchema).min(1).describe("Extracted entries"),
28862
+ rationale: z56.string().describe("Why a new content type is needed")
28749
28863
  }),
28750
28864
  // Use repeater field (page-specific data)
28751
- z58.object({
28752
- approach: z58.literal("repeater"),
28753
- rationale: z58.string().describe("Why repeater is preferred over content type")
28865
+ z56.object({
28866
+ approach: z56.literal("repeater"),
28867
+ rationale: z56.string().describe("Why repeater is preferred over content type")
28754
28868
  }),
28755
28869
  // No list data - standard field extraction
28756
- z58.object({
28757
- approach: z58.literal("none"),
28758
- rationale: z58.string().describe("Why this is not list data")
28870
+ z56.object({
28871
+ approach: z56.literal("none"),
28872
+ rationale: z56.string().describe("Why this is not list data")
28759
28873
  })
28760
28874
  ]);
28761
- var pass1OutputSchema = z58.object({
28762
- blockId: z58.string().regex(/^custom\.[a-z][a-z0-9-]*$/).describe("Block ID like custom.hero-section"),
28763
- blockTitle: z58.string().min(1),
28764
- blockDescription: z58.string().nullable(),
28765
- category: z58.enum(["marketing", "content", "blog", "media", "layout", "interactive"]),
28766
- fields: z58.array(extractedFieldSchema).min(1),
28875
+ var pass1OutputSchema = z56.object({
28876
+ blockId: z56.string().regex(/^custom\.[a-z][a-z0-9-]*$/).describe("Block ID like custom.hero-section"),
28877
+ blockTitle: z56.string().min(1),
28878
+ blockDescription: z56.string().nullable(),
28879
+ category: z56.enum(["marketing", "content", "blog", "media", "layout", "interactive"]),
28880
+ fields: z56.array(extractedFieldSchema).min(1),
28767
28881
  /**
28768
28882
  * Content type decision for list-like content.
28769
28883
  * When content types are available, the LLM may decide to use content entries
@@ -29006,10 +29120,10 @@ async function getJsonFromAiText(ai, config, userMessage, schema) {
29006
29120
  }
29007
29121
 
29008
29122
  // src/manifest/passes/pass3-styling.ts
29009
- import { z as z61 } from "zod";
29123
+ import { z as z59 } from "zod";
29010
29124
 
29011
29125
  // src/manifest/validation/output-schema.ts
29012
- import { z as z60 } from "zod";
29126
+ import { z as z58 } from "zod";
29013
29127
 
29014
29128
  // src/manifest/validation/layout-utils.ts
29015
29129
  function collectLayoutNodeInfos(node, path2 = "layout", out = []) {
@@ -29050,14 +29164,14 @@ function collectLayoutClassNames(node, out = /* @__PURE__ */ new Set()) {
29050
29164
  }
29051
29165
 
29052
29166
  // src/zod/titleSourceSchema.ts
29053
- import { z as z59 } from "zod";
29054
- var titleSourceValueSchema = z59.union([
29055
- z59.string().min(1),
29056
- z59.array(z59.string().min(1)).min(1)
29167
+ import { z as z57 } from "zod";
29168
+ var titleSourceValueSchema = z57.union([
29169
+ z57.string().min(1),
29170
+ z57.array(z57.string().min(1)).min(1)
29057
29171
  ]);
29058
29172
 
29059
29173
  // src/manifest/validation/output-schema.ts
29060
- var blockCategoryEnum2 = z60.enum([
29174
+ var blockCategoryEnum2 = z58.enum([
29061
29175
  "marketing",
29062
29176
  "content",
29063
29177
  "blog",
@@ -29065,53 +29179,53 @@ var blockCategoryEnum2 = z60.enum([
29065
29179
  "layout",
29066
29180
  "interactive"
29067
29181
  ]);
29068
- var llmColorValue = z60.object({
29069
- name: z60.string(),
29070
- hex: z60.string()
29071
- });
29072
- var llmThemePrimitive = z60.union([
29073
- z60.string(),
29074
- z60.number(),
29075
- z60.boolean(),
29076
- z60.null()
29182
+ var llmColorValue = z58.object({
29183
+ name: z58.string(),
29184
+ hex: z58.string()
29185
+ });
29186
+ var llmThemePrimitive = z58.union([
29187
+ z58.string(),
29188
+ z58.number(),
29189
+ z58.boolean(),
29190
+ z58.null()
29077
29191
  ]);
29078
- var llmThemePatchValue = z60.union([
29192
+ var llmThemePatchValue = z58.union([
29079
29193
  llmThemePrimitive,
29080
29194
  llmColorValue,
29081
- z60.array(llmColorValue),
29082
- z60.array(llmThemePrimitive)
29195
+ z58.array(llmColorValue),
29196
+ z58.array(llmThemePrimitive)
29083
29197
  ]);
29084
- var llmThemePatchOpSchema = z60.discriminatedUnion("op", [
29085
- z60.object({
29086
- op: z60.literal("add"),
29087
- path: z60.string().min(1),
29198
+ var llmThemePatchOpSchema = z58.discriminatedUnion("op", [
29199
+ z58.object({
29200
+ op: z58.literal("add"),
29201
+ path: z58.string().min(1),
29088
29202
  value: llmThemePatchValue
29089
29203
  }),
29090
- z60.object({
29091
- op: z60.literal("replace"),
29092
- path: z60.string().min(1),
29204
+ z58.object({
29205
+ op: z58.literal("replace"),
29206
+ path: z58.string().min(1),
29093
29207
  value: llmThemePatchValue
29094
29208
  }),
29095
- z60.object({ op: z60.literal("remove"), path: z60.string().min(1) })
29209
+ z58.object({ op: z58.literal("remove"), path: z58.string().min(1) })
29096
29210
  ]);
29097
- var llmCssDeclaration = z60.object({
29098
- property: z60.string(),
29099
- value: z60.string()
29211
+ var llmCssDeclaration = z58.object({
29212
+ property: z58.string(),
29213
+ value: z58.string()
29100
29214
  });
29101
- var llmCustomCssRuleSchema = z60.object({
29102
- id: z60.string().min(1),
29103
- selector: z60.string().min(1),
29104
- declarations: z60.array(llmCssDeclaration)
29215
+ var llmCustomCssRuleSchema = z58.object({
29216
+ id: z58.string().min(1),
29217
+ selector: z58.string().min(1),
29218
+ declarations: z58.array(llmCssDeclaration)
29105
29219
  });
29106
- var llmNestedRuleSchema = z60.object({
29107
- selector: z60.string().min(1),
29108
- declarations: z60.array(llmCssDeclaration)
29220
+ var llmNestedRuleSchema = z58.object({
29221
+ selector: z58.string().min(1),
29222
+ declarations: z58.array(llmCssDeclaration)
29109
29223
  });
29110
- var llmMediaAtRuleSchema = z60.object({
29111
- id: z60.string().min(1),
29112
- type: z60.literal("media"),
29113
- query: z60.string().min(1),
29114
- rules: z60.array(llmNestedRuleSchema)
29224
+ var llmMediaAtRuleSchema = z58.object({
29225
+ id: z58.string().min(1),
29226
+ type: z58.literal("media"),
29227
+ query: z58.string().min(1),
29228
+ rules: z58.array(llmNestedRuleSchema)
29115
29229
  });
29116
29230
  function normalizeDeclarationsArrayToRecord(declarations) {
29117
29231
  const record = {};
@@ -29141,85 +29255,85 @@ function normalizeLlmMediaAtRule(atRule) {
29141
29255
  rules: atRule.rules.map(normalizeLlmNestedRule)
29142
29256
  };
29143
29257
  }
29144
- var jsonPrimitiveSchema = z60.union([
29145
- z60.string(),
29146
- z60.number(),
29147
- z60.boolean(),
29148
- z60.null()
29258
+ var jsonPrimitiveSchema = z58.union([
29259
+ z58.string(),
29260
+ z58.number(),
29261
+ z58.boolean(),
29262
+ z58.null()
29149
29263
  ]);
29150
- var jsonValueSchema = z60.union([
29264
+ var jsonValueSchema = z58.union([
29151
29265
  jsonPrimitiveSchema,
29152
- z60.array(jsonPrimitiveSchema)
29266
+ z58.array(jsonPrimitiveSchema)
29153
29267
  ]);
29154
- var llmBaseFieldSchema = z60.object({
29155
- id: z60.string().min(1),
29156
- label: z60.string().min(1),
29157
- description: z60.string().nullable(),
29158
- required: z60.boolean(),
29268
+ var llmBaseFieldSchema = z58.object({
29269
+ id: z58.string().min(1),
29270
+ label: z58.string().min(1),
29271
+ description: z58.string().nullable(),
29272
+ required: z58.boolean(),
29159
29273
  defaultValue: jsonValueSchema.nullable()
29160
29274
  });
29161
29275
  var llmTextFieldSchema = llmBaseFieldSchema.extend({
29162
- type: z60.literal("text"),
29163
- multiline: z60.boolean(),
29164
- maxLength: z60.number().int().positive().nullable()
29276
+ type: z58.literal("text"),
29277
+ multiline: z58.boolean(),
29278
+ maxLength: z58.number().int().positive().nullable()
29165
29279
  });
29166
29280
  var llmRichTextFieldSchema = llmBaseFieldSchema.extend({
29167
- type: z60.literal("richText")
29281
+ type: z58.literal("richText")
29168
29282
  });
29169
29283
  var llmMediaFieldSchema = llmBaseFieldSchema.extend({
29170
- type: z60.literal("media"),
29171
- mediaKinds: z60.array(z60.enum(["image", "video", "audio"])).nullable()
29284
+ type: z58.literal("media"),
29285
+ mediaKinds: z58.array(z58.enum(["image", "video", "audio"])).nullable()
29172
29286
  });
29173
29287
  var llmFileFieldSchema = llmBaseFieldSchema.extend({
29174
- type: z60.literal("file"),
29175
- fileKinds: z60.array(z60.enum(["document", "spreadsheet", "archive", "audio"])).nullable()
29288
+ type: z58.literal("file"),
29289
+ fileKinds: z58.array(z58.enum(["document", "spreadsheet", "archive", "audio"])).nullable()
29176
29290
  });
29177
29291
  var llmBooleanFieldSchema = llmBaseFieldSchema.extend({
29178
- type: z60.literal("boolean")
29292
+ type: z58.literal("boolean")
29179
29293
  });
29180
29294
  var llmLinkFieldSchema = llmBaseFieldSchema.extend({
29181
- type: z60.literal("link")
29295
+ type: z58.literal("link")
29182
29296
  });
29183
29297
  var llmSelectFieldSchema = llmBaseFieldSchema.extend({
29184
- type: z60.literal("select"),
29185
- options: z60.array(
29186
- z60.object({
29187
- value: z60.string(),
29188
- label: z60.string()
29298
+ type: z58.literal("select"),
29299
+ options: z58.array(
29300
+ z58.object({
29301
+ value: z58.string(),
29302
+ label: z58.string()
29189
29303
  })
29190
29304
  ),
29191
- multiple: z60.boolean().nullable()
29305
+ multiple: z58.boolean().nullable()
29192
29306
  });
29193
29307
  var llmNumberFieldSchema = llmBaseFieldSchema.extend({
29194
- type: z60.literal("number")
29195
- });
29196
- var llmNestedFieldSchema = z60.object({
29197
- id: z60.string(),
29198
- type: z60.string(),
29199
- label: z60.string(),
29200
- required: z60.boolean().nullable(),
29201
- multiline: z60.boolean().nullable(),
29308
+ type: z58.literal("number")
29309
+ });
29310
+ var llmNestedFieldSchema = z58.object({
29311
+ id: z58.string(),
29312
+ type: z58.string(),
29313
+ label: z58.string(),
29314
+ required: z58.boolean().nullable(),
29315
+ multiline: z58.boolean().nullable(),
29202
29316
  defaultValue: jsonValueSchema.nullable()
29203
29317
  }).passthrough();
29204
- var llmNestedFieldsSchema = z60.array(llmNestedFieldSchema);
29318
+ var llmNestedFieldsSchema = z58.array(llmNestedFieldSchema);
29205
29319
  var llmGroupFieldSchema = llmBaseFieldSchema.extend({
29206
- type: z60.literal("group"),
29207
- schema: z60.object({
29320
+ type: z58.literal("group"),
29321
+ schema: z58.object({
29208
29322
  fields: llmNestedFieldsSchema
29209
29323
  })
29210
29324
  });
29211
29325
  var llmRepeaterFieldSchema = llmBaseFieldSchema.extend({
29212
- type: z60.literal("repeater"),
29213
- itemLabel: z60.string(),
29214
- itemLabelSource: z60.string().nullable(),
29215
- minItems: z60.number().int().min(0),
29216
- maxItems: z60.number().int().positive().nullable(),
29217
- allowConversion: z60.boolean(),
29218
- schema: z60.object({
29326
+ type: z58.literal("repeater"),
29327
+ itemLabel: z58.string(),
29328
+ itemLabelSource: z58.string().nullable(),
29329
+ minItems: z58.number().int().min(0),
29330
+ maxItems: z58.number().int().positive().nullable(),
29331
+ allowConversion: z58.boolean(),
29332
+ schema: z58.object({
29219
29333
  fields: llmNestedFieldsSchema
29220
29334
  })
29221
29335
  });
29222
- var llmFieldSchema = z60.union([
29336
+ var llmFieldSchema = z58.union([
29223
29337
  llmTextFieldSchema,
29224
29338
  llmRichTextFieldSchema,
29225
29339
  llmMediaFieldSchema,
@@ -29231,66 +29345,66 @@ var llmFieldSchema = z60.union([
29231
29345
  llmGroupFieldSchema,
29232
29346
  llmRepeaterFieldSchema
29233
29347
  ]);
29234
- var llmBindingSchema = z60.object({
29235
- from: z60.string(),
29236
- fallback: z60.string().nullable(),
29237
- transforms: z60.array(
29238
- z60.object({
29239
- id: z60.string()
29348
+ var llmBindingSchema = z58.object({
29349
+ from: z58.string(),
29350
+ fallback: z58.string().nullable(),
29351
+ transforms: z58.array(
29352
+ z58.object({
29353
+ id: z58.string()
29240
29354
  })
29241
29355
  ).nullable()
29242
29356
  });
29243
- var llmRepeatSchema = z60.object({
29244
- collection: z60.object({ from: z60.string() }),
29245
- itemName: z60.string()
29357
+ var llmRepeatSchema = z58.object({
29358
+ collection: z58.object({ from: z58.string() }),
29359
+ itemName: z58.string()
29246
29360
  });
29247
- var llmPropsSchema = z60.object({}).passthrough().nullable();
29361
+ var llmPropsSchema = z58.object({}).passthrough().nullable();
29248
29362
  function buildLlmNodeSchema(maxDepth) {
29249
- const nodeBase = z60.object({
29250
- type: z60.string(),
29363
+ const nodeBase = z58.object({
29364
+ type: z58.string(),
29251
29365
  props: llmPropsSchema,
29252
29366
  $bind: llmBindingSchema.nullable(),
29253
29367
  $repeat: llmRepeatSchema.nullable(),
29254
- $when: z60.object({
29255
- condition: z60.object({ from: z60.string() })
29368
+ $when: z58.object({
29369
+ condition: z58.object({ from: z58.string() })
29256
29370
  }).nullable()
29257
29371
  });
29258
- let schema = nodeBase.extend({ children: z60.null() });
29372
+ let schema = nodeBase.extend({ children: z58.null() });
29259
29373
  for (let i = 0; i < maxDepth; i++) {
29260
- schema = nodeBase.extend({ children: z60.array(schema).nullable() });
29374
+ schema = nodeBase.extend({ children: z58.array(schema).nullable() });
29261
29375
  }
29262
29376
  return schema;
29263
29377
  }
29264
29378
  var MAX_LAYOUT_DEPTH = 6;
29265
29379
  var llmNodeSchema = buildLlmNodeSchema(MAX_LAYOUT_DEPTH);
29266
- var llmCustomBlockSchema = z60.object({
29267
- id: z60.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
29380
+ var llmCustomBlockSchema = z58.object({
29381
+ id: z58.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
29268
29382
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
29269
29383
  }),
29270
- title: z60.string().min(1, "Title is required"),
29384
+ title: z58.string().min(1, "Title is required"),
29271
29385
  // Keep in sync with `sdkCustomBlockSchema` and the system manifest schema:
29272
29386
  // - `null` used by OpenAI structured output for "optional" values
29273
29387
  // - array allows multi-part titles (e.g. ["navLabel", "title"])
29274
29388
  titleSource: titleSourceValueSchema.nullable(),
29275
- description: z60.string().nullable(),
29389
+ description: z58.string().nullable(),
29276
29390
  category: blockCategoryEnum2,
29277
- icon: z60.string().nullable(),
29278
- tags: z60.array(z60.string()).nullable(),
29391
+ icon: z58.string().nullable(),
29392
+ tags: z58.array(z58.string()).nullable(),
29279
29393
  // Use LLM-specific field schema (no z.any() for OpenAI compatibility)
29280
29394
  fields: llmFieldSchema.array().min(1, "Custom blocks must have at least one field"),
29281
29395
  // Use LLM-specific node schema (no z.any() for OpenAI compatibility)
29282
29396
  layout: llmNodeSchema
29283
29397
  });
29284
- var htmlToManifestOutputSchema = z60.object({
29285
- blocks: z60.array(llmCustomBlockSchema).min(1, "At least one block is required").max(10, "Maximum 10 blocks per conversion"),
29286
- themePatch: z60.array(llmThemePatchOpSchema).nullable(),
29287
- customCssRules: z60.array(llmCustomCssRuleSchema).nullable(),
29288
- customCssAtRules: z60.array(llmMediaAtRuleSchema).nullable(),
29398
+ var htmlToManifestOutputSchema = z58.object({
29399
+ blocks: z58.array(llmCustomBlockSchema).min(1, "At least one block is required").max(10, "Maximum 10 blocks per conversion"),
29400
+ themePatch: z58.array(llmThemePatchOpSchema).nullable(),
29401
+ customCssRules: z58.array(llmCustomCssRuleSchema).nullable(),
29402
+ customCssAtRules: z58.array(llmMediaAtRuleSchema).nullable(),
29289
29403
  /**
29290
29404
  * Explanation of fixes made when retrying after validation errors.
29291
29405
  * Should explain what changes were made and why.
29292
29406
  */
29293
- fixRationale: z60.string().nullable()
29407
+ fixRationale: z58.string().nullable()
29294
29408
  });
29295
29409
  function collectValidationErrors(output) {
29296
29410
  const errors = [];
@@ -30253,20 +30367,20 @@ function formatValidationFeedback(errors, output) {
30253
30367
  }
30254
30368
 
30255
30369
  // src/manifest/passes/pass3-styling.ts
30256
- var pass3aOutputSchema = z61.object({
30257
- classNamePatches: z61.array(
30258
- z61.object({
30259
- nodePath: z61.string(),
30370
+ var pass3aOutputSchema = z59.object({
30371
+ classNamePatches: z59.array(
30372
+ z59.object({
30373
+ nodePath: z59.string(),
30260
30374
  // "" for root, "children[0]", "children[0].children[1]" etc.
30261
- className: z61.string().min(1)
30375
+ className: z59.string().min(1)
30262
30376
  })
30263
30377
  ),
30264
- rationale: z61.string()
30378
+ rationale: z59.string()
30265
30379
  });
30266
- var pass3bOutputSchema = z61.object({
30267
- customCssRules: z61.array(llmCustomCssRuleSchema).nullable(),
30268
- customCssAtRules: z61.array(llmMediaAtRuleSchema).nullable(),
30269
- rationale: z61.string()
30380
+ var pass3bOutputSchema = z59.object({
30381
+ customCssRules: z59.array(llmCustomCssRuleSchema).nullable(),
30382
+ customCssAtRules: z59.array(llmMediaAtRuleSchema).nullable(),
30383
+ rationale: z59.string()
30270
30384
  });
30271
30385
  function getNodeAtPath(layout, path2) {
30272
30386
  if (path2 === "" || path2 === "root" || path2 === "layout") {
@@ -30573,38 +30687,38 @@ Do NOT include [data-block=...] in selectors - we add that automatically.
30573
30687
 
30574
30688
  // src/page-converter/passes/pass1-segmentation-matching.ts
30575
30689
  var SIZE_WARNING_BYTES = 100 * 1024;
30576
- var sectionTypeEnum = z62.enum(["header", "content", "footer"]);
30577
- var blockCategoryEnum3 = z62.enum(["marketing", "content", "blog", "media", "layout", "interactive"]);
30578
- var baseSectionSchema = z62.object({
30579
- html: z62.string().min(1),
30580
- purpose: z62.string().min(1),
30690
+ var sectionTypeEnum = z60.enum(["header", "content", "footer"]);
30691
+ var blockCategoryEnum3 = z60.enum(["marketing", "content", "blog", "media", "layout", "interactive"]);
30692
+ var baseSectionSchema = z60.object({
30693
+ html: z60.string().min(1),
30694
+ purpose: z60.string().min(1),
30581
30695
  sectionType: sectionTypeEnum
30582
30696
  });
30583
30697
  var builtinMatchSchema = baseSectionSchema.extend({
30584
- decision: z62.literal("builtin"),
30585
- matchedBlock: z62.string().min(1),
30586
- matchScore: z62.number().min(0).max(100),
30587
- matchRationale: z62.string().min(1)
30698
+ decision: z60.literal("builtin"),
30699
+ matchedBlock: z60.string().min(1),
30700
+ matchScore: z60.number().min(0).max(100),
30701
+ matchRationale: z60.string().min(1)
30588
30702
  });
30589
30703
  var customMatchSchema = baseSectionSchema.extend({
30590
- decision: z62.literal("custom"),
30591
- customBlockSuggestion: z62.object({
30592
- title: z62.string().min(1),
30704
+ decision: z60.literal("custom"),
30705
+ customBlockSuggestion: z60.object({
30706
+ title: z60.string().min(1),
30593
30707
  category: blockCategoryEnum3
30594
30708
  })
30595
30709
  });
30596
- var sectionMatchSchema = z62.discriminatedUnion("decision", [
30710
+ var sectionMatchSchema = z60.discriminatedUnion("decision", [
30597
30711
  builtinMatchSchema,
30598
30712
  customMatchSchema
30599
30713
  ]);
30600
- var skippedContentSchema = z62.object({
30601
- description: z62.string(),
30602
- reason: z62.string()
30714
+ var skippedContentSchema = z60.object({
30715
+ description: z60.string(),
30716
+ reason: z60.string()
30603
30717
  });
30604
- var combinedPassSchema = z62.object({
30605
- sections: z62.array(sectionMatchSchema).min(1),
30606
- skippedContent: z62.array(skippedContentSchema).nullable(),
30607
- rationale: z62.string()
30718
+ var combinedPassSchema = z60.object({
30719
+ sections: z60.array(sectionMatchSchema).min(1),
30720
+ skippedContent: z60.array(skippedContentSchema).nullable(),
30721
+ rationale: z60.string()
30608
30722
  });
30609
30723
  function buildSystemPrompt(availableBlocks, matchThreshold) {
30610
30724
  const blockCatalog = availableBlocks.map((b) => {
@@ -30811,10 +30925,10 @@ async function segmentAndMatchBlocks(html, availableBlocks, ctx) {
30811
30925
  }
30812
30926
 
30813
30927
  // src/page-converter/passes/pass2-population.ts
30814
- import { z as z64 } from "zod";
30928
+ import { z as z62 } from "zod";
30815
30929
 
30816
30930
  // src/manifest/three-pass-converter.ts
30817
- import { z as z63 } from "zod";
30931
+ import { z as z61 } from "zod";
30818
30932
 
30819
30933
  // src/manifest/prompt/theme-summary.ts
30820
30934
  var WEIGHT_MAP = {
@@ -31115,9 +31229,9 @@ function mapPass1FieldToOutputField(field) {
31115
31229
  maxLength: null
31116
31230
  };
31117
31231
  }
31118
- var pass2OutputSchema = z63.object({
31232
+ var pass2OutputSchema = z61.object({
31119
31233
  layout: llmNodeSchema,
31120
- rationale: z63.string().describe("Explain which node binds to which field")
31234
+ rationale: z61.string().describe("Explain which node binds to which field")
31121
31235
  });
31122
31236
  function buildPass2SystemPrompt(fields3, contentTypeApproach) {
31123
31237
  const fieldList = fields3.map((f) => {
@@ -31977,9 +32091,9 @@ async function convertHtmlToManifest(input, options) {
31977
32091
  }
31978
32092
 
31979
32093
  // src/page-converter/passes/pass2-population.ts
31980
- var builtinContentSchema = z64.object({
31981
- content: z64.unknown(),
31982
- rationale: z64.string()
32094
+ var builtinContentSchema = z62.object({
32095
+ content: z62.unknown(),
32096
+ rationale: z62.string()
31983
32097
  });
31984
32098
  var SECTION_STYLES_ALLOWED_KEYS = /* @__PURE__ */ new Set(["background", "spacing"]);
31985
32099
  var BOX_STYLES_ALLOWED_KEYS = /* @__PURE__ */ new Set(["background", "spacing", "raised", "rounded", "border", "fullWidth"]);
@@ -32038,7 +32152,7 @@ function sanitizeExtractedContent(content) {
32038
32152
  }
32039
32153
  return result;
32040
32154
  }
32041
- function isRecord6(value) {
32155
+ function isRecord7(value) {
32042
32156
  return typeof value === "object" && value !== null && !Array.isArray(value);
32043
32157
  }
32044
32158
  function isBoxStylesField(fieldId) {
@@ -32147,7 +32261,7 @@ async function populateBuiltinBlock(sectionIndex, section2, blockInfo, ctx) {
32147
32261
  await ctx.debug.writeText(`pass2-builtin-${sectionIndex}-raw.txt`, rawText);
32148
32262
  await ctx.debug.writeJson(`pass2-builtin-${sectionIndex}-output.json`, result);
32149
32263
  const rawContent = result.content;
32150
- const sanitizedContent = isRecord6(rawContent) ? sanitizeExtractedContent(rawContent) : {};
32264
+ const sanitizedContent = isRecord7(rawContent) ? sanitizeExtractedContent(rawContent) : {};
32151
32265
  return {
32152
32266
  success: true,
32153
32267
  block: {