@riverbankcms/sdk 0.89.1 → 0.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-J3JN5Z7T.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-UBL6MSNP.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/bookingOperations.d.ts +2 -0
  8. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  9. package/dist/_dts/api/src/bookings.d.ts +3 -1
  10. package/dist/_dts/api/src/index.d.ts +6 -5
  11. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
  12. package/dist/_dts/api/src/request.d.ts +21 -0
  13. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  14. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  15. package/dist/_dts/api/src/types.d.ts +3 -1
  16. package/dist/_dts/api/src/url.d.ts +6 -3
  17. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  18. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  19. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  20. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  21. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  22. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  23. package/dist/_dts/blocks/src/index.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  25. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
  26. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  27. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  29. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  30. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  31. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
  33. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  34. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  35. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  53. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  54. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  55. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  56. package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
  57. package/dist/_dts/core/src/money-input.d.ts +18 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
  59. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  60. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  61. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  62. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  63. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  64. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  65. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  66. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  67. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  68. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  69. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  70. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  71. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  72. package/dist/_dts/sdk/src/components.d.ts +1 -0
  73. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  74. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  75. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  76. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  77. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  78. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  79. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  80. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  81. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  82. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  83. package/dist/_dts/sdk/src/version.d.ts +1 -1
  84. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  85. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  86. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  88. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  89. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  90. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  91. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  92. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  93. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  94. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  95. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  96. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  97. package/dist/{chunk-HKJQERFR.mjs → chunk-AEOYWPE4.mjs} +91 -55
  98. package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
  99. package/dist/{chunk-ZQRBLCW5.mjs → chunk-GSPFFUVB.mjs} +2 -2
  100. package/dist/{chunk-7YUAXONX.mjs → chunk-PMBB6MQ7.mjs} +1280 -774
  101. package/dist/{chunk-TGBJWKMP.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
  102. package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
  103. package/dist/cli/index.mjs +899 -531
  104. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  105. package/dist/cli/init-docs/content/content-management.md +27 -0
  106. package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-GXQNWQ6O.mjs} +1 -1
  107. package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-STLUJ36H.mjs} +25 -270
  108. package/dist/client/bookings.mjs +432 -269
  109. package/dist/client/{carousel-3TKQSNJC.mjs → carousel-CVRN6EPP.mjs} +1 -1
  110. package/dist/client/{cart-6XHSZK23.mjs → cart-IYIBA5CL.mjs} +5 -6
  111. package/dist/client/{checkout-FVSPM6FI.mjs → checkout-O3BGM4GS.mjs} +5 -6
  112. package/dist/client/chunk-4RTFGHZN.mjs +433 -0
  113. package/dist/client/{chunk-UQFY4AHX.mjs → chunk-6DPXDOIL.mjs} +65 -28
  114. package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-D3ETC2SU.mjs} +1 -1
  115. package/dist/client/{chunk-CQKKFEQD.mjs → chunk-DAS5CIER.mjs} +274 -105
  116. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  117. package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-MFPKS6QS.mjs} +11 -14
  118. package/dist/client/{chunk-EY42X22F.mjs → chunk-NBFRJ5NB.mjs} +156 -4
  119. package/dist/client/{chunk-VGLXACVK.mjs → chunk-VFHZLZAC.mjs} +1 -1
  120. package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  121. package/dist/client/{chunk-RSQWWUAD.mjs → chunk-Z62JYS5O.mjs} +3 -3
  122. package/dist/client/client.mjs +3292 -2827
  123. package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-2D3ACMJR.mjs} +18 -56
  124. package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-QY4UZUFF.mjs} +8 -9
  125. package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-RRCDKJC2.mjs} +8 -9
  126. package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-YO335BUT.mjs} +8 -9
  127. package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-PXA6GFQ3.mjs} +8 -9
  128. package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-2ZHEDDXO.mjs} +8 -9
  129. package/dist/client/{form-WZZFFGMU.mjs → form-ZS6KX4U2.mjs} +6 -6
  130. package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-QK5SLIIB.mjs} +2 -2
  131. package/dist/client/hooks.mjs +1084 -1029
  132. package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-GFNIUD2X.mjs} +2 -2
  133. package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-PGLTTCUG.mjs} +4 -4
  134. package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-OPBE5ZPI.mjs} +5 -6
  135. package/dist/client/{productList-5ABEMKUG.mjs → productList-NI72Q62Z.mjs} +5 -6
  136. package/dist/client/rendering/client.mjs +2692 -2285
  137. package/dist/client/rendering/islands.mjs +18 -18
  138. package/dist/client/rendering.mjs +2611 -2156
  139. package/dist/client/{shop-OMMQZ6YO.mjs → shop-3ZQPEWYI.mjs} +5 -6
  140. package/dist/client/spam-protection.mjs +4 -5
  141. package/dist/preview-next/before-render.mjs +2 -2
  142. package/dist/preview-next/client/runtime.mjs +5 -5
  143. package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
  144. package/dist/server/components.mjs +1722 -1453
  145. package/dist/server/config-validation.mjs +1316 -1261
  146. package/dist/server/config.mjs +1316 -1261
  147. package/dist/server/data.mjs +1084 -1029
  148. package/dist/server/index.mjs +135 -100
  149. package/dist/server/navigation.mjs +20 -30
  150. package/dist/server/next.mjs +1782 -1500
  151. package/dist/server/page-converter.mjs +1009 -946
  152. package/dist/server/prebuild.mjs +1 -1
  153. package/dist/server/rendering/server.mjs +1722 -1453
  154. package/dist/server/rendering.mjs +1728 -1459
  155. package/dist/server/routing.mjs +1127 -1045
  156. package/dist/server/server.mjs +1219 -1129
  157. package/dist/server/theme-bridge.mjs +8 -5
  158. package/package.json +2 -2
  159. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
  160. package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
  161. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
@@ -8213,12 +8213,17 @@ var init_schema2 = __esm({
8213
8213
  minItems: z5.number().int().nonnegative().optional(),
8214
8214
  maxItems: z5.number().int().nonnegative().optional()
8215
8215
  });
8216
- visibleWhenSchema = z5.union([
8217
- visibleWhenPredicateSchema,
8218
- z5.object({
8219
- allOf: z5.array(visibleWhenPredicateSchema).min(1)
8220
- })
8221
- ]);
8216
+ visibleWhenSchema = z5.lazy(
8217
+ () => z5.union([
8218
+ visibleWhenPredicateSchema,
8219
+ z5.object({
8220
+ allOf: z5.array(visibleWhenSchema).min(1)
8221
+ }),
8222
+ z5.object({
8223
+ anyOf: z5.array(visibleWhenSchema).min(1)
8224
+ })
8225
+ ])
8226
+ );
8222
8227
  uiSchema = z5.object({
8223
8228
  widget: z5.string().optional(),
8224
8229
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -23553,9 +23558,6 @@ var init_heroCopy = __esm({
23553
23558
  maxLength: 600
23554
23559
  }
23555
23560
  ],
23556
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
23557
- // `splitEditorial` variant reads these nodes by index; keep the order stable
23558
- // (it fails fast at import if the count changes).
23559
23561
  layout: [
23560
23562
  text(
23561
23563
  {
@@ -26331,7 +26333,7 @@ function splitLayoutWith(children) {
26331
26333
  baseClass: ""
26332
26334
  });
26333
26335
  }
26334
- var heroCopyAndCta, heroPriorityMediaProps, heroContentNodes, classicLayout, microLayout, splitContentColumn, splitImageColumn, splitLayout, splitReverseLayout, heroEyebrowNode, heroHeadlineNode, heroSubheadlineNode, heroCtaRowNode, heroEditorialBottomRow, splitEditorialContentColumn, splitEditorialLayout, heroConfig, heroManifest, heroBlockDefinition;
26336
+ var heroCopyAndCta, heroPriorityMediaProps, heroContentNodes, classicLayout, microLayout, splitContentColumn, splitImageColumn, splitLayout, splitReverseLayout, heroConfig, heroManifest, heroBlockDefinition;
26335
26337
  var init_hero = __esm({
26336
26338
  "../blocks/src/system/blocks/hero.ts"() {
26337
26339
  "use strict";
@@ -26376,32 +26378,6 @@ var init_hero = __esm({
26376
26378
  splitContentColumn,
26377
26379
  splitImageColumn
26378
26380
  ]);
26379
- heroEyebrowNode = heroCopyFragment.layout[0];
26380
- heroHeadlineNode = heroCopyFragment.layout[1];
26381
- heroSubheadlineNode = heroCopyFragment.layout[2];
26382
- heroCtaRowNode = heroCtaRowFragment.layout[0];
26383
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
26384
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
26385
- }
26386
- heroEditorialBottomRow = inline(
26387
- {
26388
- gap: "lg",
26389
- align: "end",
26390
- justify: "start",
26391
- wrap: true,
26392
- className: "rb-w-full"
26393
- },
26394
- [heroSubheadlineNode, heroCtaRowNode]
26395
- );
26396
- splitEditorialContentColumn = heroContentWrapper(
26397
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
26398
- "md",
26399
- "rb-w-full rb-text-left"
26400
- );
26401
- splitEditorialLayout = splitLayoutWith([
26402
- splitEditorialContentColumn,
26403
- splitImageColumn
26404
- ]);
26405
26381
  heroConfig = {
26406
26382
  id: "block.hero",
26407
26383
  title: "Hero",
@@ -26425,7 +26401,8 @@ var init_hero = __esm({
26425
26401
  id: "imageShape",
26426
26402
  label: "Image shape",
26427
26403
  defaultValue: "default",
26428
- uiIntent: "display"
26404
+ uiIntent: "display",
26405
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
26429
26406
  })
26430
26407
  ],
26431
26408
  layout: classicLayout,
@@ -26433,8 +26410,7 @@ var init_hero = __esm({
26433
26410
  classic: classicLayout,
26434
26411
  micro: microLayout,
26435
26412
  split: splitLayout,
26436
- splitReverse: splitReverseLayout,
26437
- splitEditorial: splitEditorialLayout
26413
+ splitReverse: splitReverseLayout
26438
26414
  },
26439
26415
  defaultVariant: "classic",
26440
26416
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -28353,8 +28329,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
28353
28329
  return isPlainObject(raw) ? raw : null;
28354
28330
  }
28355
28331
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
28332
+ const explicitValue = readString(content, fallbackKey);
28333
+ if (explicitValue !== void 0) return explicitValue;
28356
28334
  const generated = resolveGeneratedHeroLayoutStyles(content);
28357
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
28335
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
28358
28336
  }
28359
28337
  function resolveHeroVariant(content) {
28360
28338
  const variant = readString(content, "variant");
@@ -28367,7 +28345,7 @@ function resolveHeroContentAlignment(content) {
28367
28345
  const raw = readHeroLayoutString(content, "contentAlignment");
28368
28346
  if (raw === "left" || raw === "center" || raw === "right") return raw;
28369
28347
  const variant = resolveHeroVariant(content);
28370
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
28348
+ if (variant === "split" || variant === "splitReverse") return "left";
28371
28349
  return "center";
28372
28350
  }
28373
28351
  function resolveHeroVerticalAlignment(content) {
@@ -28377,7 +28355,7 @@ function resolveHeroVerticalAlignment(content) {
28377
28355
  const minHeight = sectionStyles?.minHeight;
28378
28356
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
28379
28357
  const variant = resolveHeroVariant(content);
28380
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
28358
+ if (variant === "split" || variant === "splitReverse") return "center";
28381
28359
  return "top";
28382
28360
  }
28383
28361
  function resolveHeroContentMaxWidth(content) {
@@ -32936,20 +32914,58 @@ var init_shared3 = __esm({
32936
32914
  }
32937
32915
  });
32938
32916
 
32939
- // ../blocks/src/system/blocks/event-registration.shared.ts
32917
+ // ../blocks/src/system/blocks/shop.shared.ts
32940
32918
  import { z as z47 } from "zod";
32919
+ var publicPassProductSchema, publicPassProductCollectionSchema, publicMembershipProductSchema, publicMembershipProductCollectionSchema;
32920
+ var init_shop_shared = __esm({
32921
+ "../blocks/src/system/blocks/shop.shared.ts"() {
32922
+ "use strict";
32923
+ publicPassProductSchema = z47.object({
32924
+ id: z47.string(),
32925
+ productUseCase: z47.enum(["event_pass", "appointment_package"]).default("event_pass"),
32926
+ name: z47.string(),
32927
+ description: z47.string().nullable(),
32928
+ price: z47.number(),
32929
+ currency: z47.string(),
32930
+ creditsTotal: z47.number(),
32931
+ pricePerCredit: z47.number(),
32932
+ validDays: z47.number().nullable(),
32933
+ eligibleCategoryIds: z47.array(z47.string()),
32934
+ eligibleCategoryNames: z47.array(z47.string())
32935
+ });
32936
+ publicPassProductCollectionSchema = z47.object({
32937
+ passes: z47.array(publicPassProductSchema)
32938
+ });
32939
+ publicMembershipProductSchema = z47.object({
32940
+ id: z47.string(),
32941
+ name: z47.string(),
32942
+ description: z47.string().nullable(),
32943
+ price: z47.number(),
32944
+ currency: z47.string(),
32945
+ billingInterval: z47.enum(["month", "year"]),
32946
+ eligibleCategoryIds: z47.array(z47.string()),
32947
+ eligibleCategoryNames: z47.array(z47.string())
32948
+ });
32949
+ publicMembershipProductCollectionSchema = z47.object({
32950
+ memberships: z47.array(publicMembershipProductSchema)
32951
+ });
32952
+ }
32953
+ });
32954
+
32955
+ // ../blocks/src/system/blocks/event-registration.shared.ts
32956
+ import { z as z48 } from "zod";
32941
32957
  var occurrenceContextSchema;
32942
32958
  var init_event_registration_shared = __esm({
32943
32959
  "../blocks/src/system/blocks/event-registration.shared.ts"() {
32944
32960
  "use strict";
32945
- occurrenceContextSchema = z47.object({
32946
- id: z47.string(),
32947
- seriesId: z47.string(),
32948
- startsAt: z47.string(),
32949
- endsAt: z47.string(),
32950
- timeZone: z47.string(),
32951
- capacityOverride: z47.number().nullable().optional(),
32952
- overrides: z47.record(z47.string(), z47.unknown()).nullable().optional()
32961
+ occurrenceContextSchema = z48.object({
32962
+ id: z48.string(),
32963
+ seriesId: z48.string(),
32964
+ startsAt: z48.string(),
32965
+ endsAt: z48.string(),
32966
+ timeZone: z48.string(),
32967
+ capacityOverride: z48.number().nullable().optional(),
32968
+ overrides: z48.record(z48.string(), z48.unknown()).nullable().optional()
32953
32969
  }).nullable();
32954
32970
  }
32955
32971
  });
@@ -32958,6 +32974,9 @@ var init_event_registration_shared = __esm({
32958
32974
  function isEventCalendarDisplayMode(value) {
32959
32975
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
32960
32976
  }
32977
+ function isEventCalendarDefaultView(value) {
32978
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
32979
+ }
32961
32980
  function isEventCalendarListLayout(value) {
32962
32981
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
32963
32982
  }
@@ -32965,12 +32984,13 @@ function isEventContentType(slug) {
32965
32984
  if (!slug) return false;
32966
32985
  return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
32967
32986
  }
32968
- var EVENT_CONTENT_TYPE_SLUGS, eventCalendarDisplayModeValues, eventCalendarListLayoutValues, eventCalendarListLayoutOptions;
32987
+ var EVENT_CONTENT_TYPE_SLUGS, eventCalendarDisplayModeValues, eventCalendarDefaultViewValues, eventCalendarListLayoutValues, eventCalendarListLayoutOptions;
32969
32988
  var init_events = __esm({
32970
32989
  "../blocks/src/system/constants/events.ts"() {
32971
32990
  "use strict";
32972
32991
  EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
32973
- eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
32992
+ eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
32993
+ eventCalendarDefaultViewValues = ["month", "week"];
32974
32994
  eventCalendarListLayoutValues = ["stack", "grid", "compact"];
32975
32995
  eventCalendarListLayoutOptions = [
32976
32996
  { id: "stack", label: "Stack" },
@@ -33118,21 +33138,22 @@ var init_pricing = __esm({
33118
33138
  });
33119
33139
 
33120
33140
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
33121
- import { z as z48 } from "zod";
33122
- var previewStageSchema, registrationButtonVariantSchema, eventButtonVariantSchema, eventLayoutSchema, eventCalendarDisplayModeSchema, columnOptionSchema, weekStartSchema, filterAutoShowSchema, calendarTabViewsSchema;
33141
+ import { z as z49 } from "zod";
33142
+ var previewStageSchema, registrationButtonVariantSchema, eventButtonVariantSchema, eventLayoutSchema, eventCalendarDisplayModeSchema, eventCalendarDefaultViewSchema, columnOptionSchema, weekStartSchema, filterAutoShowSchema, calendarTabViewsSchema;
33123
33143
  var init_contract_schemas = __esm({
33124
33144
  "../blocks/src/system/runtime/nodes/shared/contract-schemas.ts"() {
33125
33145
  "use strict";
33126
33146
  init_events();
33127
- previewStageSchema = z48.enum(["preview", "published"]);
33128
- registrationButtonVariantSchema = z48.enum(["primary", "secondary", "outline"]);
33129
- eventButtonVariantSchema = z48.enum(["primary", "secondary", "outline", "link"]);
33130
- eventLayoutSchema = z48.enum(eventCalendarListLayoutValues);
33131
- eventCalendarDisplayModeSchema = z48.enum(eventCalendarDisplayModeValues);
33132
- columnOptionSchema = z48.enum(["2", "3", "4"]);
33133
- weekStartSchema = z48.enum(["sunday", "monday"]);
33134
- filterAutoShowSchema = z48.enum(["auto", "always", "never"]);
33135
- calendarTabViewsSchema = z48.enum(["both", "month", "week"]);
33147
+ previewStageSchema = z49.enum(["preview", "published"]);
33148
+ registrationButtonVariantSchema = z49.enum(["primary", "secondary", "outline"]);
33149
+ eventButtonVariantSchema = z49.enum(["primary", "secondary", "outline", "link"]);
33150
+ eventLayoutSchema = z49.enum(eventCalendarListLayoutValues);
33151
+ eventCalendarDisplayModeSchema = z49.enum(eventCalendarDisplayModeValues);
33152
+ eventCalendarDefaultViewSchema = z49.enum(eventCalendarDefaultViewValues);
33153
+ columnOptionSchema = z49.enum(["2", "3", "4"]);
33154
+ weekStartSchema = z49.enum(["sunday", "monday"]);
33155
+ filterAutoShowSchema = z49.enum(["auto", "always", "never"]);
33156
+ calendarTabViewsSchema = z49.enum(["both", "month", "week"]);
33136
33157
  }
33137
33158
  });
33138
33159
 
@@ -33157,7 +33178,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
33157
33178
  function findPreSelectedEvent(input) {
33158
33179
  const occurrenceContext = input.occurrenceContext;
33159
33180
  if (!occurrenceContext) {
33160
- return null;
33181
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
33161
33182
  }
33162
33183
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
33163
33184
  startsAt: occurrenceContext.startsAt,
@@ -33210,7 +33231,7 @@ var init_registrationEventAdapter = __esm({
33210
33231
  });
33211
33232
 
33212
33233
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
33213
- import { z as z49 } from "zod";
33234
+ import { z as z50 } from "zod";
33214
33235
  function buildEventRegistrationDisplay(source) {
33215
33236
  const stepLabels = buildEventRegistrationShellStepLabels(source);
33216
33237
  return {
@@ -33304,6 +33325,7 @@ var init_event_registration_interactive = __esm({
33304
33325
  "../blocks/src/system/runtime/nodes/event-registration.interactive.ts"() {
33305
33326
  "use strict";
33306
33327
  init_schemas2();
33328
+ init_shop_shared();
33307
33329
  init_event_registration_shared();
33308
33330
  init_events();
33309
33331
  init_pricing();
@@ -33315,68 +33337,72 @@ var init_event_registration_interactive = __esm({
33315
33337
  init_registrationEventAdapter();
33316
33338
  EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
33317
33339
  EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
33318
- contentEntrySchema = z49.object({
33319
- id: z49.string(),
33320
- slug: z49.string(),
33321
- contentTypeSlug: z49.string()
33340
+ contentEntrySchema = z50.object({
33341
+ id: z50.string(),
33342
+ slug: z50.string(),
33343
+ contentTypeSlug: z50.string()
33322
33344
  });
33323
- eventRegistrationPublicEventSchema = z49.preprocess(
33345
+ eventRegistrationPublicEventSchema = z50.preprocess(
33324
33346
  normalizeEventRegistrationEventInput,
33325
33347
  publicEventSchema
33326
33348
  );
33327
- eventRegistrationSourceSchema = z49.object({
33328
- siteId: z49.string().optional(),
33329
- apiBaseUrl: z49.string().optional(),
33330
- portalToken: z49.string().nullable().optional(),
33331
- previewToken: z49.string().nullable().optional(),
33349
+ eventRegistrationSourceSchema = z50.object({
33350
+ siteId: z50.string().optional(),
33351
+ apiBaseUrl: z50.string().optional(),
33352
+ portalToken: z50.string().nullable().optional(),
33353
+ previewToken: z50.string().nullable().optional(),
33332
33354
  occurrenceContext: occurrenceContextSchema.optional(),
33333
33355
  contentEntry: contentEntrySchema.nullable().optional(),
33334
- events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
33335
- className: z49.string().nullable().optional(),
33336
- buttonText: z49.string().nullable().optional(),
33337
- maxTickets: z49.string().nullable().optional(),
33338
- showVenue: z49.boolean().optional(),
33339
- showCapacity: z49.boolean().optional(),
33340
- successMessage: z49.string().optional(),
33341
- waitlistMessage: z49.string().optional(),
33356
+ events: z50.array(eventRegistrationPublicEventSchema).nullable().optional(),
33357
+ className: z50.string().nullable().optional(),
33358
+ buttonText: z50.string().nullable().optional(),
33359
+ maxTickets: z50.string().nullable().optional(),
33360
+ showVenue: z50.boolean().optional(),
33361
+ showCapacity: z50.boolean().optional(),
33362
+ successMessage: z50.string().optional(),
33363
+ waitlistMessage: z50.string().optional(),
33342
33364
  buttonVariant: registrationButtonVariantSchema.optional(),
33343
- overlayEnabled: z49.boolean().optional(),
33344
- spamProtectionEnabled: z49.boolean().optional(),
33365
+ overlayEnabled: z50.boolean().optional(),
33366
+ spamProtectionEnabled: z50.boolean().optional(),
33345
33367
  stage: previewStageSchema.optional(),
33346
- supportEmail: z49.string().optional()
33347
- });
33348
- eventRegistrationDisplaySchema = z49.object({
33349
- kind: z49.literal("event-registration"),
33350
- state: z49.literal("generic-shell"),
33351
- className: z49.string().nullable(),
33352
- titleText: z49.string(),
33353
- bodyText: z49.string(),
33354
- stepLabels: z49.array(z49.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
33355
- summaryButtonText: z49.string()
33356
- });
33357
- eventRegistrationHydrationSchema = z49.object({
33368
+ supportEmail: z50.string().optional(),
33369
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
33370
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
33371
+ });
33372
+ eventRegistrationDisplaySchema = z50.object({
33373
+ kind: z50.literal("event-registration"),
33374
+ state: z50.literal("generic-shell"),
33375
+ className: z50.string().nullable(),
33376
+ titleText: z50.string(),
33377
+ bodyText: z50.string(),
33378
+ stepLabels: z50.array(z50.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
33379
+ summaryButtonText: z50.string()
33380
+ });
33381
+ eventRegistrationHydrationSchema = z50.object({
33358
33382
  occurrenceContext: occurrenceContextSchema.optional(),
33359
33383
  contentEntry: contentEntrySchema.nullable().optional(),
33360
- events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
33361
- maxTickets: z49.string().optional(),
33362
- showVenue: z49.boolean().optional(),
33363
- showCapacity: z49.boolean().optional(),
33364
- successMessage: z49.string().optional(),
33365
- waitlistMessage: z49.string().optional(),
33384
+ events: z50.array(eventRegistrationPublicEventSchema).nullable().optional(),
33385
+ maxTickets: z50.string().optional(),
33386
+ showVenue: z50.boolean().optional(),
33387
+ showCapacity: z50.boolean().optional(),
33388
+ successMessage: z50.string().optional(),
33389
+ waitlistMessage: z50.string().optional(),
33366
33390
  buttonVariant: registrationButtonVariantSchema.optional(),
33367
- overlayEnabled: z49.boolean().optional(),
33368
- spamProtectionEnabled: z49.boolean().optional(),
33369
- supportEmail: z49.string().optional()
33391
+ overlayEnabled: z50.boolean().optional(),
33392
+ spamProtectionEnabled: z50.boolean().optional(),
33393
+ supportEmail: z50.string().optional(),
33394
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
33395
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
33370
33396
  });
33371
- eventRegistrationRenderSchema = z49.object({
33397
+ eventRegistrationRenderSchema = z50.object({
33372
33398
  display: eventRegistrationDisplaySchema,
33373
33399
  hydration: eventRegistrationHydrationSchema
33374
33400
  });
33375
- eventRegistrationIslandMetaCodec = createZodCodec(z49.object({
33376
- siteId: z49.string().optional(),
33377
- apiBaseUrl: z49.string().optional(),
33378
- portalToken: z49.string().nullable().optional(),
33379
- previewToken: z49.string().nullable().optional(),
33401
+ eventRegistrationIslandMetaCodec = createZodCodec(z50.object({
33402
+ siteId: z50.string().optional(),
33403
+ apiBaseUrl: z50.string().optional(),
33404
+ portalToken: z50.string().nullable().optional(),
33405
+ previewToken: z50.string().nullable().optional(),
33380
33406
  stage: previewStageSchema.optional()
33381
33407
  }));
33382
33408
  eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -33406,7 +33432,9 @@ var init_event_registration_interactive = __esm({
33406
33432
  buttonVariant: source.buttonVariant,
33407
33433
  overlayEnabled: source.overlayEnabled,
33408
33434
  spamProtectionEnabled: source.spamProtectionEnabled,
33409
- supportEmail: source.supportEmail
33435
+ supportEmail: source.supportEmail,
33436
+ sitePasses: source.sitePasses ?? null,
33437
+ siteMemberships: source.siteMemberships ?? null
33410
33438
  }
33411
33439
  })
33412
33440
  });
@@ -33427,7 +33455,6 @@ var init_event_registration_interactive = __esm({
33427
33455
  });
33428
33456
 
33429
33457
  // ../blocks/src/system/blocks/event-registration.ts
33430
- import { z as z50 } from "zod";
33431
33458
  var eventRegistrationManifest, eventRegistrationBlockDefinition;
33432
33459
  var init_event_registration = __esm({
33433
33460
  "../blocks/src/system/blocks/event-registration.ts"() {
@@ -33438,6 +33465,7 @@ var init_event_registration = __esm({
33438
33465
  init_fragments();
33439
33466
  init_api_bindings();
33440
33467
  init_shared3();
33468
+ init_shop_shared();
33441
33469
  init_defineBlock();
33442
33470
  init_event_registration_shared();
33443
33471
  init_event_registration_interactive();
@@ -33592,6 +33620,8 @@ var init_event_registration = __esm({
33592
33620
  },
33593
33621
  // Event data from loader
33594
33622
  events: { $bind: { from: "data.events" } },
33623
+ sitePasses: { $bind: { from: "data.sitePasses" } },
33624
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
33595
33625
  // Stage for preview mode (allows registering for draft events)
33596
33626
  stage: {
33597
33627
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -33610,7 +33640,9 @@ var init_event_registration = __esm({
33610
33640
  manifest: eventRegistrationManifest,
33611
33641
  runtime: eventRegistrationBlockRuntime,
33612
33642
  dataSchemas: {
33613
- events: z50.array(publicEventSchema).optional(),
33643
+ events: publicEventsArraySchema.optional(),
33644
+ sitePasses: publicPassProductCollectionSchema.optional(),
33645
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
33614
33646
  occurrenceContext: occurrenceContextSchema.optional()
33615
33647
  },
33616
33648
  dataLoaders: {
@@ -33629,6 +33661,20 @@ var init_event_registration = __esm({
33629
33661
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
33630
33662
  },
33631
33663
  mode: "server"
33664
+ },
33665
+ sitePasses: {
33666
+ endpoint: "listPublicPasses",
33667
+ params: {
33668
+ siteId: { $bind: { from: "$root.siteId" } }
33669
+ },
33670
+ mode: "server"
33671
+ },
33672
+ siteMemberships: {
33673
+ endpoint: "listPublicMemberships",
33674
+ params: {
33675
+ siteId: { $bind: { from: "$root.siteId" } }
33676
+ },
33677
+ mode: "server"
33632
33678
  }
33633
33679
  }
33634
33680
  };
@@ -34010,40 +34056,8 @@ var init_course_registration = __esm({
34010
34056
  }
34011
34057
  });
34012
34058
 
34013
- // ../blocks/src/system/blocks/shop.shared.ts
34014
- import { z as z52 } from "zod";
34015
- var publicPassProductSchema, publicMembershipProductSchema;
34016
- var init_shop_shared = __esm({
34017
- "../blocks/src/system/blocks/shop.shared.ts"() {
34018
- "use strict";
34019
- publicPassProductSchema = z52.object({
34020
- id: z52.string(),
34021
- productUseCase: z52.enum(["event_pass", "appointment_package"]).default("event_pass"),
34022
- name: z52.string(),
34023
- description: z52.string().nullable(),
34024
- price: z52.number(),
34025
- currency: z52.string(),
34026
- creditsTotal: z52.number(),
34027
- pricePerCredit: z52.number(),
34028
- validDays: z52.number().nullable(),
34029
- eligibleCategoryIds: z52.array(z52.string()),
34030
- eligibleCategoryNames: z52.array(z52.string())
34031
- });
34032
- publicMembershipProductSchema = z52.object({
34033
- id: z52.string(),
34034
- name: z52.string(),
34035
- description: z52.string().nullable(),
34036
- price: z52.number(),
34037
- currency: z52.string(),
34038
- billingInterval: z52.enum(["month", "year"]),
34039
- eligibleCategoryIds: z52.array(z52.string()),
34040
- eligibleCategoryNames: z52.array(z52.string())
34041
- });
34042
- }
34043
- });
34044
-
34045
34059
  // ../blocks/src/system/blocks/event-details.ts
34046
- import { z as z53 } from "zod";
34060
+ import { z as z52 } from "zod";
34047
34061
  var eventDetailsManifest, occurrenceContextSchema2, eventAutoApplyDiscountPreviewBaseSchema, eventAutoApplyDiscountPreviewSchema, eventDetailsBlockDefinition;
34048
34062
  var init_event_details = __esm({
34049
34063
  "../blocks/src/system/blocks/event-details.ts"() {
@@ -34186,40 +34200,40 @@ var init_event_details = __esm({
34186
34200
  })
34187
34201
  ]
34188
34202
  });
34189
- occurrenceContextSchema2 = z53.object({
34190
- id: z53.string(),
34191
- seriesId: z53.string(),
34192
- startsAt: z53.string(),
34193
- endsAt: z53.string(),
34194
- timeZone: z53.string(),
34195
- capacityOverride: z53.number().nullable().optional(),
34196
- overrides: z53.record(z53.string(), z53.unknown()).nullable().optional()
34203
+ occurrenceContextSchema2 = z52.object({
34204
+ id: z52.string(),
34205
+ seriesId: z52.string(),
34206
+ startsAt: z52.string(),
34207
+ endsAt: z52.string(),
34208
+ timeZone: z52.string(),
34209
+ capacityOverride: z52.number().nullable().optional(),
34210
+ overrides: z52.record(z52.string(), z52.unknown()).nullable().optional()
34197
34211
  }).nullable();
34198
- eventAutoApplyDiscountPreviewBaseSchema = z53.object({
34199
- id: z53.string(),
34200
- publicLabel: z53.string(),
34201
- description: z53.string().nullable(),
34202
- minTicketsRequired: z53.number().nullable()
34212
+ eventAutoApplyDiscountPreviewBaseSchema = z52.object({
34213
+ id: z52.string(),
34214
+ publicLabel: z52.string(),
34215
+ description: z52.string().nullable(),
34216
+ minTicketsRequired: z52.number().nullable()
34203
34217
  });
34204
- eventAutoApplyDiscountPreviewSchema = z53.discriminatedUnion("discountType", [
34218
+ eventAutoApplyDiscountPreviewSchema = z52.discriminatedUnion("discountType", [
34205
34219
  eventAutoApplyDiscountPreviewBaseSchema.extend({
34206
- discountType: z53.literal("percent"),
34207
- discountPercent: z53.number(),
34208
- discountAmountCents: z53.null()
34220
+ discountType: z52.literal("percent"),
34221
+ discountPercent: z52.number(),
34222
+ discountAmountCents: z52.null()
34209
34223
  }),
34210
34224
  eventAutoApplyDiscountPreviewBaseSchema.extend({
34211
- discountType: z53.literal("fixed"),
34212
- discountPercent: z53.null(),
34213
- discountAmountCents: z53.number()
34225
+ discountType: z52.literal("fixed"),
34226
+ discountPercent: z52.null(),
34227
+ discountAmountCents: z52.number()
34214
34228
  })
34215
34229
  ]);
34216
34230
  eventDetailsBlockDefinition = {
34217
34231
  manifest: eventDetailsManifest,
34218
34232
  dataSchemas: {
34219
- eventDetailsData: z53.object({
34233
+ eventDetailsData: z52.object({
34220
34234
  events: publicEventsArraySchema,
34221
- sitePasses: z53.object({ passes: z53.array(publicPassProductSchema) }),
34222
- siteMemberships: z53.object({ memberships: z53.array(publicMembershipProductSchema) }),
34235
+ sitePasses: publicPassProductCollectionSchema,
34236
+ siteMemberships: publicMembershipProductCollectionSchema,
34223
34237
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
34224
34238
  }).optional(),
34225
34239
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -34703,7 +34717,7 @@ var init_shared5 = __esm({
34703
34717
  });
34704
34718
 
34705
34719
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
34706
- import { z as z54 } from "zod";
34720
+ import { z as z53 } from "zod";
34707
34721
  function resolveEventPageSize(value, fallback = 12) {
34708
34722
  const candidate = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value.trim()) : null;
34709
34723
  return candidate != null && Number.isInteger(candidate) && eventPageSizeSet.has(candidate) ? candidate : fallback;
@@ -34724,32 +34738,32 @@ var init_listOptions = __esm({
34724
34738
  "../blocks/src/system/runtime/nodes/events/shared/listOptions.ts"() {
34725
34739
  "use strict";
34726
34740
  eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
34727
- eventPageSizeSchema = z54.union([
34728
- z54.literal(3),
34729
- z54.literal(6),
34730
- z54.literal(10),
34731
- z54.literal(12),
34732
- z54.literal(20),
34733
- z54.literal(24),
34734
- z54.literal(30)
34741
+ eventPageSizeSchema = z53.union([
34742
+ z53.literal(3),
34743
+ z53.literal(6),
34744
+ z53.literal(10),
34745
+ z53.literal(12),
34746
+ z53.literal(20),
34747
+ z53.literal(24),
34748
+ z53.literal(30)
34735
34749
  ]);
34736
34750
  eventPageSizeSet = new Set(eventPageSizeValues);
34737
- eventListPaginationActionSchema = z54.discriminatedUnion("kind", [
34738
- z54.object({
34739
- kind: z54.literal("loadMore"),
34740
- label: z54.string()
34751
+ eventListPaginationActionSchema = z53.discriminatedUnion("kind", [
34752
+ z53.object({
34753
+ kind: z53.literal("loadMore"),
34754
+ label: z53.string()
34741
34755
  }),
34742
- z54.object({
34743
- kind: z54.literal("seeAllLink"),
34744
- label: z54.string(),
34745
- href: z54.string()
34756
+ z53.object({
34757
+ kind: z53.literal("seeAllLink"),
34758
+ label: z53.string(),
34759
+ href: z53.string()
34746
34760
  })
34747
34761
  ]);
34748
34762
  }
34749
34763
  });
34750
34764
 
34751
34765
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
34752
- import { z as z55 } from "zod";
34766
+ import { z as z54 } from "zod";
34753
34767
  var legacyEventCardVariantSchema, eventCardVariantInputSchema, cardOrientationSchema, eventBlockKindSchema, eventSurfaceScopeSchema, eventScheduleScopeSchema2, eventListingSourceSchema, eventListingDisplaySchema, eventListingHydrationSchema, eventListingRenderSchema, eventListingIslandMetaCodec, eventListingBlockRuntime, eventListingIslandMetaKeys, eventListingInteractiveIslandPropsCodec;
34754
34768
  var init_EventListing_interactive = __esm({
34755
34769
  "../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts"() {
@@ -34762,89 +34776,89 @@ var init_EventListing_interactive = __esm({
34762
34776
  init_shared5();
34763
34777
  init_contract_schemas();
34764
34778
  init_listOptions();
34765
- legacyEventCardVariantSchema = z55.enum(["variant1", "variant2"]);
34766
- eventCardVariantInputSchema = z55.union([
34779
+ legacyEventCardVariantSchema = z54.enum(["variant1", "variant2"]);
34780
+ eventCardVariantInputSchema = z54.union([
34767
34781
  cardVariantRoleSchema,
34768
34782
  legacyEventCardVariantSchema
34769
34783
  ]);
34770
- cardOrientationSchema = z55.enum(["vertical", "horizontal"]);
34771
- eventBlockKindSchema = z55.enum(eventBlockKindValues);
34772
- eventSurfaceScopeSchema = z55.enum(eventSurfaceScopeValues);
34773
- eventScheduleScopeSchema2 = z55.enum(eventScheduleScopeValues);
34774
- eventListingSourceSchema = z55.object({
34775
- events: z55.array(publicEventSchema).nullable().optional(),
34776
- siteId: z55.string(),
34777
- apiBaseUrl: z55.string().optional(),
34784
+ cardOrientationSchema = z54.enum(["vertical", "horizontal"]);
34785
+ eventBlockKindSchema = z54.enum(eventBlockKindValues);
34786
+ eventSurfaceScopeSchema = z54.enum(eventSurfaceScopeValues);
34787
+ eventScheduleScopeSchema2 = z54.enum(eventScheduleScopeValues);
34788
+ eventListingSourceSchema = z54.object({
34789
+ events: z54.array(publicEventSchema).nullable().optional(),
34790
+ siteId: z54.string(),
34791
+ apiBaseUrl: z54.string().optional(),
34778
34792
  stage: previewStageSchema.optional(),
34779
34793
  layout: eventLayoutSchema.optional(),
34780
34794
  columns: columnOptionSchema.optional(),
34781
- eventsPerPage: z55.string().optional(),
34782
- paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
34783
- seeAllUrl: z55.string().optional(),
34784
- loadMoreText: z55.string().optional(),
34795
+ eventsPerPage: z54.string().optional(),
34796
+ paginationMode: z54.enum(["loadMore", "seeAllLink"]).optional(),
34797
+ seeAllUrl: z54.string().optional(),
34798
+ loadMoreText: z54.string().optional(),
34785
34799
  cardVariant: eventCardVariantInputSchema.optional(),
34786
34800
  buttonVariant: eventButtonVariantSchema.optional(),
34787
- buttonText: z55.string().optional(),
34788
- showVenue: z55.boolean().optional(),
34789
- showMap: z55.boolean().optional(),
34790
- showCapacity: z55.boolean().optional(),
34791
- emptyMessage: z55.string().optional(),
34792
- className: z55.string().optional(),
34793
- showFilters: z55.boolean().nullable().optional(),
34801
+ buttonText: z54.string().optional(),
34802
+ showVenue: z54.boolean().optional(),
34803
+ showMap: z54.boolean().optional(),
34804
+ showCapacity: z54.boolean().optional(),
34805
+ emptyMessage: z54.string().optional(),
34806
+ className: z54.string().optional(),
34807
+ showFilters: z54.boolean().nullable().optional(),
34794
34808
  showCategoryFilter: filterAutoShowSchema.optional(),
34795
- showVenueFilter: z55.boolean().nullable().optional(),
34796
- showStaffFilter: z55.boolean().nullable().optional(),
34809
+ showVenueFilter: z54.boolean().nullable().optional(),
34810
+ showStaffFilter: z54.boolean().nullable().optional(),
34797
34811
  eventKind: eventBlockKindSchema.nullable().optional(),
34798
34812
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
34799
- filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
34813
+ filterEventPresets: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
34800
34814
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
34801
- filterCategoryIds: z55.string().nullable().optional(),
34802
- filterStaffMemberId: z55.string().nullable().optional(),
34803
- filterVenueId: z55.string().nullable().optional()
34815
+ filterCategoryIds: z54.string().nullable().optional(),
34816
+ filterStaffMemberId: z54.string().nullable().optional(),
34817
+ filterVenueId: z54.string().nullable().optional()
34804
34818
  });
34805
- eventListingDisplaySchema = z55.object({
34806
- kind: z55.literal("event-listing"),
34807
- state: z55.enum(["loading", "empty", "ready"]),
34819
+ eventListingDisplaySchema = z54.object({
34820
+ kind: z54.literal("event-listing"),
34821
+ state: z54.enum(["loading", "empty", "ready"]),
34808
34822
  listLayout: eventLayoutSchema,
34809
- className: z55.string().nullable(),
34810
- emptyMessage: z55.string(),
34811
- loadingMessage: z55.string(),
34812
- containerClass: z55.string(),
34823
+ className: z54.string().nullable(),
34824
+ emptyMessage: z54.string(),
34825
+ loadingMessage: z54.string(),
34826
+ containerClass: z54.string(),
34813
34827
  cardVariant: cardVariantRoleSchema,
34814
34828
  buttonVariant: eventButtonVariantSchema,
34815
- buttonText: z55.string(),
34816
- showVenue: z55.boolean(),
34817
- showMap: z55.boolean(),
34818
- showCapacity: z55.boolean(),
34829
+ buttonText: z54.string(),
34830
+ showVenue: z54.boolean(),
34831
+ showMap: z54.boolean(),
34832
+ showCapacity: z54.boolean(),
34819
34833
  orientation: cardOrientationSchema,
34820
- events: z55.array(publicEventSchema)
34834
+ events: z54.array(publicEventSchema)
34821
34835
  });
34822
- eventListingHydrationSchema = z55.object({
34823
- siteId: z55.string(),
34836
+ eventListingHydrationSchema = z54.object({
34837
+ siteId: z54.string(),
34824
34838
  stage: previewStageSchema.optional(),
34825
34839
  eventsPerPage: eventPageSizeSchema,
34826
34840
  paginationAction: eventListPaginationActionSchema,
34827
- showFilters: z55.boolean(),
34841
+ showFilters: z54.boolean(),
34828
34842
  showCategoryFilter: filterAutoShowSchema,
34829
- showVenueFilter: z55.boolean(),
34830
- showStaffFilter: z55.boolean(),
34843
+ showVenueFilter: z54.boolean(),
34844
+ showStaffFilter: z54.boolean(),
34831
34845
  eventKind: eventBlockKindSchema,
34832
34846
  eventSurface: eventSurfaceScopeSchema,
34833
- filterEventPresets: z55.string().nullable(),
34847
+ filterEventPresets: z54.string().nullable(),
34834
34848
  scheduleScope: eventScheduleScopeSchema2,
34835
- filterCategoryIds: z55.string().nullable().optional(),
34836
- filterStaffMemberId: z55.string().nullable().optional(),
34837
- filterVenueId: z55.string().nullable().optional(),
34838
- fetchInitialEventsOnMount: z55.boolean()
34849
+ filterCategoryIds: z54.string().nullable().optional(),
34850
+ filterStaffMemberId: z54.string().nullable().optional(),
34851
+ filterVenueId: z54.string().nullable().optional(),
34852
+ fetchInitialEventsOnMount: z54.boolean()
34839
34853
  });
34840
- eventListingRenderSchema = z55.object({
34854
+ eventListingRenderSchema = z54.object({
34841
34855
  display: eventListingDisplaySchema,
34842
34856
  hydration: eventListingHydrationSchema
34843
34857
  });
34844
34858
  eventListingIslandMetaCodec = createZodCodec(
34845
- z55.object({
34846
- siteId: z55.string(),
34847
- apiBaseUrl: z55.string().optional(),
34859
+ z54.object({
34860
+ siteId: z54.string(),
34861
+ apiBaseUrl: z54.string().optional(),
34848
34862
  stage: previewStageSchema.optional()
34849
34863
  })
34850
34864
  );
@@ -35228,7 +35242,7 @@ var init_event_listing = __esm({
35228
35242
  });
35229
35243
 
35230
35244
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
35231
- import { z as z56 } from "zod";
35245
+ import { z as z55 } from "zod";
35232
35246
  function buildEventCalendarDisplay(source) {
35233
35247
  const listLayout = source.listLayout ?? source.layout ?? "stack";
35234
35248
  return {
@@ -35250,6 +35264,7 @@ function buildEventCalendarDisplay(source) {
35250
35264
  }),
35251
35265
  startOfWeek: source.startOfWeek ?? "monday",
35252
35266
  calendarTabViews: source.calendarTabViews ?? "both",
35267
+ defaultCalendarView: source.defaultCalendarView ?? "month",
35253
35268
  showFilters: source.showFilters ?? true,
35254
35269
  showCategoryFilter: source.showCategoryFilter ?? "auto",
35255
35270
  showVenueFilter: source.showVenueFilter ?? false,
@@ -35281,14 +35296,14 @@ var init_EventCalendar_interactive = __esm({
35281
35296
  init_runtime();
35282
35297
  init_contract_schemas();
35283
35298
  init_listOptions();
35284
- eventBlockKindSchema2 = z56.enum(eventBlockKindValues);
35285
- eventSurfaceScopeSchema2 = z56.enum(eventSurfaceScopeValues);
35286
- eventScheduleScopeSchema3 = z56.enum(eventScheduleScopeValues);
35287
- eventCalendarSourceSchema = z56.object(
35299
+ eventBlockKindSchema2 = z55.enum(eventBlockKindValues);
35300
+ eventSurfaceScopeSchema2 = z55.enum(eventSurfaceScopeValues);
35301
+ eventScheduleScopeSchema3 = z55.enum(eventScheduleScopeValues);
35302
+ eventCalendarSourceSchema = z55.object(
35288
35303
  {
35289
- events: z56.array(publicEventSchema).nullable().optional(),
35290
- siteId: z56.string(),
35291
- apiBaseUrl: z56.string().optional(),
35304
+ events: z55.array(publicEventSchema).nullable().optional(),
35305
+ siteId: z55.string(),
35306
+ apiBaseUrl: z55.string().optional(),
35292
35307
  stage: previewStageSchema.optional(),
35293
35308
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
35294
35309
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -35296,78 +35311,80 @@ var init_EventCalendar_interactive = __esm({
35296
35311
  listColumns: columnOptionSchema.optional(),
35297
35312
  layout: eventLayoutSchema.optional(),
35298
35313
  columns: columnOptionSchema.optional(),
35299
- eventsPerPage: z56.string().optional(),
35300
- paginationMode: z56.enum(["loadMore", "seeAllLink"]).optional(),
35301
- seeAllUrl: z56.string().optional(),
35302
- loadMoreText: z56.string().optional(),
35314
+ eventsPerPage: z55.string().optional(),
35315
+ paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
35316
+ seeAllUrl: z55.string().optional(),
35317
+ loadMoreText: z55.string().optional(),
35303
35318
  startOfWeek: weekStartSchema.optional(),
35304
35319
  calendarTabViews: calendarTabViewsSchema.optional(),
35305
- showFilters: z56.boolean().nullable().optional(),
35320
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
35321
+ showFilters: z55.boolean().nullable().optional(),
35306
35322
  showCategoryFilter: filterAutoShowSchema.optional(),
35307
- showVenueFilter: z56.boolean().nullable().optional(),
35308
- showStaffFilter: z56.boolean().nullable().optional(),
35323
+ showVenueFilter: z55.boolean().nullable().optional(),
35324
+ showStaffFilter: z55.boolean().nullable().optional(),
35309
35325
  kind: eventBlockKindSchema2.nullable().optional(),
35310
35326
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
35311
- filterEventPresets: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
35327
+ filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
35312
35328
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
35313
- filterCategoryIds: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
35314
- filterStaffMemberId: z56.string().nullable().optional(),
35315
- filterVenueId: z56.string().nullable().optional(),
35329
+ filterCategoryIds: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
35330
+ filterStaffMemberId: z55.string().nullable().optional(),
35331
+ filterVenueId: z55.string().nullable().optional(),
35316
35332
  buttonVariant: eventButtonVariantSchema.optional(),
35317
- buttonText: z56.string().optional(),
35318
- showVenue: z56.boolean().nullable().optional(),
35319
- showMap: z56.boolean().nullable().optional(),
35320
- showCapacity: z56.boolean().nullable().optional(),
35321
- emptyMessage: z56.string().optional(),
35322
- className: z56.string().optional()
35333
+ buttonText: z55.string().optional(),
35334
+ showVenue: z55.boolean().nullable().optional(),
35335
+ showMap: z55.boolean().nullable().optional(),
35336
+ showCapacity: z55.boolean().nullable().optional(),
35337
+ emptyMessage: z55.string().optional(),
35338
+ className: z55.string().optional()
35323
35339
  }
35324
35340
  );
35325
- eventCalendarDisplaySchema = z56.object({
35326
- kind: z56.literal("event-calendar"),
35341
+ eventCalendarDisplaySchema = z55.object({
35342
+ kind: z55.literal("event-calendar"),
35327
35343
  displayMode: eventCalendarDisplayModeSchema,
35328
- className: z56.string().nullable(),
35329
- events: z56.array(publicEventSchema),
35344
+ className: z55.string().nullable(),
35345
+ events: z55.array(publicEventSchema),
35330
35346
  listLayout: eventLayoutSchema,
35331
35347
  listColumns: columnOptionSchema,
35332
35348
  eventsPerPage: eventPageSizeSchema,
35333
35349
  paginationAction: eventListPaginationActionSchema,
35334
35350
  startOfWeek: weekStartSchema,
35335
35351
  calendarTabViews: calendarTabViewsSchema,
35336
- showFilters: z56.boolean(),
35352
+ defaultCalendarView: eventCalendarDefaultViewSchema,
35353
+ showFilters: z55.boolean(),
35337
35354
  showCategoryFilter: filterAutoShowSchema,
35338
- showVenueFilter: z56.boolean(),
35339
- showStaffFilter: z56.boolean(),
35355
+ showVenueFilter: z55.boolean(),
35356
+ showStaffFilter: z55.boolean(),
35340
35357
  eventKind: eventBlockKindSchema2,
35341
35358
  eventSurface: eventSurfaceScopeSchema2,
35342
- filterEventPresets: z56.string().nullable(),
35359
+ filterEventPresets: z55.string().nullable(),
35343
35360
  scheduleScope: eventScheduleScopeSchema3,
35344
- filterCategoryIds: z56.string().nullable(),
35345
- filterStaffMemberId: z56.string().nullable(),
35346
- filterVenueId: z56.string().nullable(),
35361
+ filterCategoryIds: z55.string().nullable(),
35362
+ filterStaffMemberId: z55.string().nullable(),
35363
+ filterVenueId: z55.string().nullable(),
35347
35364
  buttonVariant: eventButtonVariantSchema,
35348
- buttonText: z56.string(),
35349
- showVenue: z56.boolean(),
35350
- showMap: z56.boolean(),
35351
- showCapacity: z56.boolean(),
35352
- emptyMessage: z56.string()
35353
- });
35354
- eventCalendarHydrationSchema = z56.object({
35355
- siteId: z56.string(),
35365
+ buttonText: z55.string(),
35366
+ showVenue: z55.boolean(),
35367
+ showMap: z55.boolean(),
35368
+ showCapacity: z55.boolean(),
35369
+ emptyMessage: z55.string()
35370
+ });
35371
+ eventCalendarHydrationSchema = z55.object({
35372
+ siteId: z55.string(),
35356
35373
  stage: previewStageSchema.optional(),
35357
- prefetchedEvents: z56.boolean(),
35374
+ prefetchedEvents: z55.boolean(),
35358
35375
  eventKind: eventBlockKindSchema2,
35359
35376
  eventSurface: eventSurfaceScopeSchema2,
35360
- filterEventPresets: z56.string().nullable(),
35377
+ filterEventPresets: z55.string().nullable(),
35361
35378
  scheduleScope: eventScheduleScopeSchema3
35362
35379
  });
35363
- eventCalendarRenderSchema = z56.object({
35380
+ eventCalendarRenderSchema = z55.object({
35364
35381
  display: eventCalendarDisplaySchema,
35365
35382
  hydration: eventCalendarHydrationSchema
35366
35383
  });
35367
35384
  eventCalendarIslandMetaCodec = createZodCodec(
35368
- z56.object({
35369
- siteId: z56.string(),
35370
- apiBaseUrl: z56.string().optional(),
35385
+ z55.object({
35386
+ siteId: z55.string(),
35387
+ apiBaseUrl: z55.string().optional(),
35371
35388
  stage: previewStageSchema.optional()
35372
35389
  })
35373
35390
  );
@@ -35419,6 +35436,9 @@ function normalizeEventCalendarContent(content) {
35419
35436
  ...variant ? { variant } : {},
35420
35437
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
35421
35438
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
35439
+ defaultCalendarView: normalizeEventCalendarDefaultView(
35440
+ record.defaultCalendarView
35441
+ ),
35422
35442
  kind,
35423
35443
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
35424
35444
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -35436,6 +35456,9 @@ function normalizeEventCalendarDisplayMode(value) {
35436
35456
  function normalizeEventCalendarListLayout(value) {
35437
35457
  return isEventCalendarListLayout(value) ? value : void 0;
35438
35458
  }
35459
+ function normalizeEventCalendarDefaultView(value) {
35460
+ return isEventCalendarDefaultView(value) ? value : void 0;
35461
+ }
35439
35462
  var eventCalendarLayout, eventCalendarAdditionalFields, eventCalendarVariants, eventCalendarDerivedFields, eventCalendarContentShape, eventCalendarConfig, eventCalendarManifest, eventCalendarBlockDefinition;
35440
35463
  var init_event_calendar = __esm({
35441
35464
  "../blocks/src/system/blocks/events/event-calendar.ts"() {
@@ -35510,6 +35533,9 @@ var init_event_calendar = __esm({
35510
35533
  calendarTabViews: {
35511
35534
  $bind: { from: "content.calendarTabViews", fallback: "both" }
35512
35535
  },
35536
+ defaultCalendarView: {
35537
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
35538
+ },
35513
35539
  // Filtering options
35514
35540
  showFilters: {
35515
35541
  $bind: { from: "content.showFilters", fallback: true }
@@ -35576,8 +35602,7 @@ var init_event_calendar = __esm({
35576
35602
  defaultValue: "combined",
35577
35603
  options: [
35578
35604
  { value: "combined", label: "Combined (List + Calendar tabs)" },
35579
- { value: "month", label: "Month calendar" },
35580
- { value: "week", label: "Week agenda" },
35605
+ { value: "calendar", label: "Calendar" },
35581
35606
  { value: "timetable", label: "Timetable" },
35582
35607
  { value: "list", label: "List" }
35583
35608
  ],
@@ -35616,7 +35641,12 @@ var init_event_calendar = __esm({
35616
35641
  ],
35617
35642
  ui: {
35618
35643
  intent: "display",
35619
- visibleWhen: { field: "listLayout", equals: "grid" }
35644
+ visibleWhen: {
35645
+ allOf: [
35646
+ { field: "variant", oneOf: ["combined", "list"] },
35647
+ { field: "listLayout", equals: "grid" }
35648
+ ]
35649
+ }
35620
35650
  }
35621
35651
  },
35622
35652
  {
@@ -35664,7 +35694,12 @@ var init_event_calendar = __esm({
35664
35694
  required: false,
35665
35695
  ui: {
35666
35696
  intent: "display",
35667
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
35697
+ visibleWhen: {
35698
+ allOf: [
35699
+ { field: "variant", oneOf: ["combined", "list"] },
35700
+ { field: "paginationMode", equals: "seeAllLink" }
35701
+ ]
35702
+ }
35668
35703
  }
35669
35704
  },
35670
35705
  {
@@ -35697,7 +35732,7 @@ var init_event_calendar = __esm({
35697
35732
  intent: "display",
35698
35733
  visibleWhen: {
35699
35734
  field: "variant",
35700
- oneOf: ["combined", "month", "week"]
35735
+ oneOf: ["combined", "calendar", "timetable"]
35701
35736
  }
35702
35737
  }
35703
35738
  },
@@ -35720,6 +35755,33 @@ var init_event_calendar = __esm({
35720
35755
  visibleWhen: { field: "variant", equals: "combined" }
35721
35756
  }
35722
35757
  },
35758
+ {
35759
+ id: "defaultCalendarView",
35760
+ type: "select",
35761
+ label: "Calendar view",
35762
+ description: "Choose the standalone calendar view, or the first view in combined mode",
35763
+ required: false,
35764
+ multiple: false,
35765
+ defaultValue: "month",
35766
+ options: [
35767
+ { value: "month", label: "Month" },
35768
+ { value: "week", label: "Week" }
35769
+ ],
35770
+ ui: {
35771
+ intent: "display",
35772
+ visibleWhen: {
35773
+ anyOf: [
35774
+ { field: "variant", equals: "calendar" },
35775
+ {
35776
+ allOf: [
35777
+ { field: "variant", equals: "combined" },
35778
+ { field: "calendarTabViews", equals: "both" }
35779
+ ]
35780
+ }
35781
+ ]
35782
+ }
35783
+ }
35784
+ },
35723
35785
  // Filtering options
35724
35786
  {
35725
35787
  id: "kind",
@@ -35747,7 +35809,7 @@ var init_event_calendar = __esm({
35747
35809
  intent: "display",
35748
35810
  visibleWhen: {
35749
35811
  field: "variant",
35750
- oneOf: ["combined", "list", "timetable"]
35812
+ oneOf: ["combined", "calendar", "list", "timetable"]
35751
35813
  }
35752
35814
  }
35753
35815
  },
@@ -35767,8 +35829,10 @@ var init_event_calendar = __esm({
35767
35829
  ui: {
35768
35830
  intent: "display",
35769
35831
  visibleWhen: {
35770
- field: "variant",
35771
- oneOf: ["combined", "list", "timetable"]
35832
+ allOf: [
35833
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
35834
+ { field: "showFilters", equals: true }
35835
+ ]
35772
35836
  }
35773
35837
  }
35774
35838
  },
@@ -35782,8 +35846,10 @@ var init_event_calendar = __esm({
35782
35846
  ui: {
35783
35847
  intent: "display",
35784
35848
  visibleWhen: {
35785
- field: "variant",
35786
- oneOf: ["combined", "list", "timetable"]
35849
+ allOf: [
35850
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
35851
+ { field: "showFilters", equals: true }
35852
+ ]
35787
35853
  }
35788
35854
  }
35789
35855
  },
@@ -35797,8 +35863,10 @@ var init_event_calendar = __esm({
35797
35863
  ui: {
35798
35864
  intent: "display",
35799
35865
  visibleWhen: {
35800
- field: "variant",
35801
- oneOf: ["combined", "list", "timetable"]
35866
+ allOf: [
35867
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
35868
+ { field: "showFilters", equals: true }
35869
+ ]
35802
35870
  }
35803
35871
  }
35804
35872
  },
@@ -35812,8 +35880,15 @@ var init_event_calendar = __esm({
35812
35880
  ui: {
35813
35881
  intent: "display",
35814
35882
  visibleWhen: {
35815
- field: "variant",
35816
- oneOf: ["combined", "list", "week", "timetable"]
35883
+ anyOf: [
35884
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
35885
+ {
35886
+ allOf: [
35887
+ { field: "variant", equals: "calendar" },
35888
+ { field: "defaultCalendarView", equals: "week" }
35889
+ ]
35890
+ }
35891
+ ]
35817
35892
  }
35818
35893
  }
35819
35894
  },
@@ -35929,8 +36004,7 @@ var init_event_calendar = __esm({
35929
36004
  ];
35930
36005
  eventCalendarVariants = {
35931
36006
  combined: eventCalendarLayout[0],
35932
- month: eventCalendarLayout[0],
35933
- week: eventCalendarLayout[0],
36007
+ calendar: eventCalendarLayout[0],
35934
36008
  timetable: eventCalendarLayout[0],
35935
36009
  list: eventCalendarLayout[0]
35936
36010
  };
@@ -35942,8 +36016,7 @@ var init_event_calendar = __esm({
35942
36016
  multiple: false,
35943
36017
  options: [
35944
36018
  { value: "combined" },
35945
- { value: "month" },
35946
- { value: "week" },
36019
+ { value: "calendar" },
35947
36020
  { value: "timetable" },
35948
36021
  { value: "list" }
35949
36022
  ]
@@ -35956,6 +36029,13 @@ var init_event_calendar = __esm({
35956
36029
  options: eventCalendarListLayoutOptions.map((option) => ({
35957
36030
  value: option.id
35958
36031
  }))
36032
+ },
36033
+ {
36034
+ id: "defaultCalendarView",
36035
+ type: "select",
36036
+ required: false,
36037
+ multiple: false,
36038
+ options: [{ value: "month" }, { value: "week" }]
35959
36039
  }
35960
36040
  ];
35961
36041
  eventCalendarContentShape = {
@@ -36004,8 +36084,7 @@ var init_event_calendar = __esm({
36004
36084
  defaultVariant: "combined",
36005
36085
  variantOptions: {
36006
36086
  combined: { label: "Combined" },
36007
- month: { label: "Month" },
36008
- week: { label: "Week" },
36087
+ calendar: { label: "Calendar" },
36009
36088
  timetable: { label: "Timetable" },
36010
36089
  list: { label: "List" }
36011
36090
  }
@@ -36159,7 +36238,7 @@ var init_model = __esm({
36159
36238
  });
36160
36239
 
36161
36240
  // ../blocks/src/system/blocks/offerings-preview/index.ts
36162
- import { z as z57 } from "zod";
36241
+ import { z as z56 } from "zod";
36163
36242
  function eventPresetLoader(preset2) {
36164
36243
  return {
36165
36244
  endpoint: "listPublicEvents",
@@ -36282,13 +36361,13 @@ var init_offerings_preview = __esm({
36282
36361
  init_shared3();
36283
36362
  init_shared4();
36284
36363
  init_model();
36285
- publicRouteCandidatesSchema = z57.object({
36286
- routes: z57.array(z57.object({
36287
- entityId: z57.string(),
36288
- path: z57.string(),
36289
- title: z57.string(),
36290
- kind: z57.enum(["page", "content"]),
36291
- contentTypeKey: z57.string().nullable().optional()
36364
+ publicRouteCandidatesSchema = z56.object({
36365
+ routes: z56.array(z56.object({
36366
+ entityId: z56.string(),
36367
+ path: z56.string(),
36368
+ title: z56.string(),
36369
+ kind: z56.enum(["page", "content"]),
36370
+ contentTypeKey: z56.string().nullable().optional()
36292
36371
  }))
36293
36372
  });
36294
36373
  groupOverrideFields = [
@@ -36578,7 +36657,7 @@ var init_offerings_preview = __esm({
36578
36657
  });
36579
36658
 
36580
36659
  // ../blocks/src/system/blocks/embed.ts
36581
- import { z as z58 } from "zod";
36660
+ import { z as z57 } from "zod";
36582
36661
  var embedFields, embedLayout2, embedManifest, embedEntrySchema, embedBlockDefinition;
36583
36662
  var init_embed = __esm({
36584
36663
  "../blocks/src/system/blocks/embed.ts"() {
@@ -36818,18 +36897,18 @@ var init_embed = __esm({
36818
36897
  spacing: "lg"
36819
36898
  }
36820
36899
  });
36821
- embedEntrySchema = z58.object({
36822
- id: z58.string(),
36823
- identifier: z58.string(),
36824
- title: z58.string(),
36825
- slug: z58.string().nullable().optional(),
36826
- content: z58.record(z58.string(), z58.unknown()).optional(),
36827
- publishedAt: z58.string().nullable().optional()
36900
+ embedEntrySchema = z57.object({
36901
+ id: z57.string(),
36902
+ identifier: z57.string(),
36903
+ title: z57.string(),
36904
+ slug: z57.string().nullable().optional(),
36905
+ content: z57.record(z57.string(), z57.unknown()).optional(),
36906
+ publishedAt: z57.string().nullable().optional()
36828
36907
  });
36829
36908
  embedBlockDefinition = {
36830
36909
  manifest: embedManifest,
36831
36910
  dataSchemas: {
36832
- entries: z58.array(embedEntrySchema).optional()
36911
+ entries: z57.array(embedEntrySchema).optional()
36833
36912
  },
36834
36913
  dataLoaders: {
36835
36914
  entries: {
@@ -38059,50 +38138,50 @@ var init_file_download = __esm({
38059
38138
  });
38060
38139
 
38061
38140
  // ../blocks/src/system/blocks/products/shared.ts
38062
- import { z as z59 } from "zod";
38141
+ import { z as z58 } from "zod";
38063
38142
  var publicProductVariantSchema, publicProductSchema, publicProductsResponseSchema;
38064
38143
  var init_shared6 = __esm({
38065
38144
  "../blocks/src/system/blocks/products/shared.ts"() {
38066
38145
  "use strict";
38067
- publicProductVariantSchema = z59.object({
38068
- id: z59.string(),
38069
- title: z59.string(),
38070
- sku: z59.string().nullable(),
38071
- priceCents: z59.number(),
38072
- stockQuantity: z59.number().nullable(),
38073
- soldOut: z59.boolean()
38074
- });
38075
- publicProductSchema = z59.object({
38076
- id: z59.string(),
38077
- contentEntryId: z59.string().nullable(),
38078
- title: z59.string(),
38079
- slug: z59.string(),
38080
- path: z59.string().nullable(),
38081
- status: z59.enum(["draft", "active"]),
38082
- priceCents: z59.number(),
38083
- currency: z59.string(),
38084
- productType: z59.enum(["physical", "digital"]),
38085
- requiresShipping: z59.boolean(),
38086
- hasVariants: z59.boolean(),
38087
- trackInventory: z59.boolean(),
38088
- soldOut: z59.boolean(),
38089
- category: z59.object({
38090
- id: z59.string(),
38091
- name: z59.string(),
38092
- slug: z59.string()
38146
+ publicProductVariantSchema = z58.object({
38147
+ id: z58.string(),
38148
+ title: z58.string(),
38149
+ sku: z58.string().nullable(),
38150
+ priceCents: z58.number(),
38151
+ stockQuantity: z58.number().nullable(),
38152
+ soldOut: z58.boolean()
38153
+ });
38154
+ publicProductSchema = z58.object({
38155
+ id: z58.string(),
38156
+ contentEntryId: z58.string().nullable(),
38157
+ title: z58.string(),
38158
+ slug: z58.string(),
38159
+ path: z58.string().nullable(),
38160
+ status: z58.enum(["draft", "active"]),
38161
+ priceCents: z58.number(),
38162
+ currency: z58.string(),
38163
+ productType: z58.enum(["physical", "digital"]),
38164
+ requiresShipping: z58.boolean(),
38165
+ hasVariants: z58.boolean(),
38166
+ trackInventory: z58.boolean(),
38167
+ soldOut: z58.boolean(),
38168
+ category: z58.object({
38169
+ id: z58.string(),
38170
+ name: z58.string(),
38171
+ slug: z58.string()
38093
38172
  }).nullable(),
38094
- summary: z59.string().nullable(),
38095
- body: z59.unknown().nullable(),
38096
- gallery: z59.array(
38097
- z59.object({
38098
- url: z59.string(),
38099
- alt: z59.string().nullable()
38173
+ summary: z58.string().nullable(),
38174
+ body: z58.unknown().nullable(),
38175
+ gallery: z58.array(
38176
+ z58.object({
38177
+ url: z58.string(),
38178
+ alt: z58.string().nullable()
38100
38179
  })
38101
38180
  ),
38102
- variants: z59.array(publicProductVariantSchema)
38181
+ variants: z58.array(publicProductVariantSchema)
38103
38182
  });
38104
- publicProductsResponseSchema = z59.object({
38105
- products: z59.array(publicProductSchema)
38183
+ publicProductsResponseSchema = z58.object({
38184
+ products: z58.array(publicProductSchema)
38106
38185
  });
38107
38186
  }
38108
38187
  });
@@ -38173,7 +38252,7 @@ var init_creditProducts = __esm({
38173
38252
  });
38174
38253
 
38175
38254
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
38176
- import { z as z60 } from "zod";
38255
+ import { z as z59 } from "zod";
38177
38256
  function deriveCommerceCheckoutState(state) {
38178
38257
  if (state.items.length === 0) {
38179
38258
  return { kind: "empty" };
@@ -38212,26 +38291,26 @@ var storedProductCartItemSchema, storedPassCartItemSchema;
38212
38291
  var init_shop_commerce_shared = __esm({
38213
38292
  "../blocks/src/system/runtime/nodes/shop-commerce.shared.ts"() {
38214
38293
  "use strict";
38215
- storedProductCartItemSchema = z60.object({
38216
- kind: z60.literal("product"),
38217
- productId: z60.string().min(1),
38218
- productCategoryId: z60.string().min(1).optional().nullable(),
38219
- variantId: z60.string().min(1).optional().nullable(),
38220
- title: z60.string().min(1),
38221
- variantTitle: z60.string().optional().nullable(),
38222
- quantity: z60.number().finite(),
38223
- unitPriceCents: z60.number().finite(),
38224
- currency: z60.string().min(1),
38225
- imageUrl: z60.string().optional().nullable(),
38226
- soldOut: z60.boolean().optional()
38294
+ storedProductCartItemSchema = z59.object({
38295
+ kind: z59.literal("product"),
38296
+ productId: z59.string().min(1),
38297
+ productCategoryId: z59.string().min(1).optional().nullable(),
38298
+ variantId: z59.string().min(1).optional().nullable(),
38299
+ title: z59.string().min(1),
38300
+ variantTitle: z59.string().optional().nullable(),
38301
+ quantity: z59.number().finite(),
38302
+ unitPriceCents: z59.number().finite(),
38303
+ currency: z59.string().min(1),
38304
+ imageUrl: z59.string().optional().nullable(),
38305
+ soldOut: z59.boolean().optional()
38227
38306
  });
38228
- storedPassCartItemSchema = z60.object({
38229
- kind: z60.literal("pass"),
38230
- passId: z60.string().min(1),
38231
- title: z60.string().min(1),
38232
- quantity: z60.number().finite().optional(),
38233
- unitPriceCents: z60.number().finite(),
38234
- currency: z60.string().min(1)
38307
+ storedPassCartItemSchema = z59.object({
38308
+ kind: z59.literal("pass"),
38309
+ passId: z59.string().min(1),
38310
+ title: z59.string().min(1),
38311
+ quantity: z59.number().finite().optional(),
38312
+ unitPriceCents: z59.number().finite(),
38313
+ currency: z59.string().min(1)
38235
38314
  });
38236
38315
  }
38237
38316
  });
@@ -38441,7 +38520,7 @@ var init_display = __esm({
38441
38520
  });
38442
38521
 
38443
38522
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
38444
- import { z as z61 } from "zod";
38523
+ import { z as z60 } from "zod";
38445
38524
  function resolveShowPricePerCredit(source) {
38446
38525
  return source.showPricePerCredit ?? true;
38447
38526
  }
@@ -38469,211 +38548,211 @@ var init_shop_interactive = __esm({
38469
38548
  init_islands();
38470
38549
  init_runtime();
38471
38550
  init_contract_schemas();
38472
- shopModeSchema = z61.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
38473
- contentEntrySchema3 = z61.object({
38474
- id: z61.string().nullable().optional(),
38475
- slug: z61.string().nullable().optional()
38551
+ shopModeSchema = z60.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
38552
+ contentEntrySchema3 = z60.object({
38553
+ id: z60.string().nullable().optional(),
38554
+ slug: z60.string().nullable().optional()
38476
38555
  }).nullable();
38477
- shopSourceSchema = z61.object({
38478
- className: z61.string().nullable().optional(),
38556
+ shopSourceSchema = z60.object({
38557
+ className: z60.string().nullable().optional(),
38479
38558
  mode: shopModeSchema.optional(),
38480
- heading: z61.string().nullable().optional(),
38481
- productSlug: z61.string().nullable().optional(),
38482
- showPasses: z61.boolean().optional(),
38483
- showMemberships: z61.boolean().optional(),
38484
- layout: z61.enum(["grid", "list"]).optional(),
38485
- columns: z61.string().optional(),
38486
- showDescriptions: z61.boolean().optional(),
38487
- showSummary: z61.boolean().optional(),
38488
- showBody: z61.boolean().optional(),
38489
- showPrices: z61.boolean().optional(),
38490
- showValidityPeriod: z61.boolean().optional(),
38491
- showPricePerCredit: z61.boolean().nullable().optional(),
38492
- passesHeading: z61.string().optional(),
38493
- membershipsHeading: z61.string().optional(),
38494
- buyButtonText: z61.string().optional(),
38495
- addButtonText: z61.string().optional(),
38496
- passPurchaseMode: z61.enum(["add_to_cart", "buy_now"]).optional(),
38497
- subscribeButtonText: z61.string().optional(),
38498
- emptyStateText: z61.string().optional(),
38499
- checkoutButtonText: z61.string().optional(),
38500
- clearButtonText: z61.string().optional(),
38501
- submitButtonText: z61.string().optional(),
38559
+ heading: z60.string().nullable().optional(),
38560
+ productSlug: z60.string().nullable().optional(),
38561
+ showPasses: z60.boolean().optional(),
38562
+ showMemberships: z60.boolean().optional(),
38563
+ layout: z60.enum(["grid", "list"]).optional(),
38564
+ columns: z60.string().optional(),
38565
+ showDescriptions: z60.boolean().optional(),
38566
+ showSummary: z60.boolean().optional(),
38567
+ showBody: z60.boolean().optional(),
38568
+ showPrices: z60.boolean().optional(),
38569
+ showValidityPeriod: z60.boolean().optional(),
38570
+ showPricePerCredit: z60.boolean().nullable().optional(),
38571
+ passesHeading: z60.string().optional(),
38572
+ membershipsHeading: z60.string().optional(),
38573
+ buyButtonText: z60.string().optional(),
38574
+ addButtonText: z60.string().optional(),
38575
+ passPurchaseMode: z60.enum(["add_to_cart", "buy_now"]).optional(),
38576
+ subscribeButtonText: z60.string().optional(),
38577
+ emptyStateText: z60.string().optional(),
38578
+ checkoutButtonText: z60.string().optional(),
38579
+ clearButtonText: z60.string().optional(),
38580
+ submitButtonText: z60.string().optional(),
38502
38581
  contentEntry: contentEntrySchema3.optional(),
38503
- passes: z61.array(publicPassProductSchema).nullable().optional(),
38504
- memberships: z61.array(publicMembershipProductSchema).nullable().optional(),
38505
- products: z61.array(publicProductSchema).nullable().optional(),
38506
- siteId: z61.string().optional(),
38507
- apiBaseUrl: z61.string().optional(),
38582
+ passes: z60.array(publicPassProductSchema).nullable().optional(),
38583
+ memberships: z60.array(publicMembershipProductSchema).nullable().optional(),
38584
+ products: z60.array(publicProductSchema).nullable().optional(),
38585
+ siteId: z60.string().optional(),
38586
+ apiBaseUrl: z60.string().optional(),
38508
38587
  stage: previewStageSchema.optional()
38509
38588
  });
38510
- productVariantOptionDisplaySchema = z61.object({
38511
- id: z61.string(),
38512
- label: z61.string(),
38513
- soldOut: z61.boolean()
38514
- });
38515
- productCardDisplaySchema = z61.object({
38516
- productId: z61.string(),
38517
- title: z61.string(),
38518
- path: z61.string().nullable(),
38519
- summary: z61.string().nullable(),
38520
- priceLabel: z61.string().nullable(),
38521
- image: z61.object({
38522
- url: z61.string(),
38523
- alt: z61.string().nullable()
38589
+ productVariantOptionDisplaySchema = z60.object({
38590
+ id: z60.string(),
38591
+ label: z60.string(),
38592
+ soldOut: z60.boolean()
38593
+ });
38594
+ productCardDisplaySchema = z60.object({
38595
+ productId: z60.string(),
38596
+ title: z60.string(),
38597
+ path: z60.string().nullable(),
38598
+ summary: z60.string().nullable(),
38599
+ priceLabel: z60.string().nullable(),
38600
+ image: z60.object({
38601
+ url: z60.string(),
38602
+ alt: z60.string().nullable()
38524
38603
  }).nullable(),
38525
- variantOptions: z61.array(productVariantOptionDisplaySchema),
38526
- selectedVariantId: z61.string().nullable(),
38527
- selectionLabel: z61.string(),
38528
- actionLabel: z61.string(),
38529
- soldOut: z61.boolean()
38530
- });
38531
- productListDisplaySchema = z61.object({
38532
- kind: z61.literal("product-list"),
38533
- state: z61.enum(["empty", "ready"]),
38534
- heading: z61.string().nullable(),
38535
- className: z61.string().nullable(),
38536
- layout: z61.enum(["grid", "list"]),
38537
- columns: z61.string(),
38538
- emptyMessage: z61.string(),
38539
- cards: z61.array(productCardDisplaySchema)
38540
- });
38541
- productDetailDisplaySchema = z61.discriminatedUnion("state", [
38542
- z61.object({
38543
- kind: z61.literal("product-detail"),
38544
- state: z61.literal("empty"),
38545
- heading: z61.string().nullable(),
38546
- className: z61.string().nullable(),
38547
- emptyMessage: z61.string()
38604
+ variantOptions: z60.array(productVariantOptionDisplaySchema),
38605
+ selectedVariantId: z60.string().nullable(),
38606
+ selectionLabel: z60.string(),
38607
+ actionLabel: z60.string(),
38608
+ soldOut: z60.boolean()
38609
+ });
38610
+ productListDisplaySchema = z60.object({
38611
+ kind: z60.literal("product-list"),
38612
+ state: z60.enum(["empty", "ready"]),
38613
+ heading: z60.string().nullable(),
38614
+ className: z60.string().nullable(),
38615
+ layout: z60.enum(["grid", "list"]),
38616
+ columns: z60.string(),
38617
+ emptyMessage: z60.string(),
38618
+ cards: z60.array(productCardDisplaySchema)
38619
+ });
38620
+ productDetailDisplaySchema = z60.discriminatedUnion("state", [
38621
+ z60.object({
38622
+ kind: z60.literal("product-detail"),
38623
+ state: z60.literal("empty"),
38624
+ heading: z60.string().nullable(),
38625
+ className: z60.string().nullable(),
38626
+ emptyMessage: z60.string()
38548
38627
  }),
38549
- z61.object({
38550
- kind: z61.literal("product-detail"),
38551
- state: z61.literal("ready"),
38552
- heading: z61.string().nullable(),
38553
- className: z61.string().nullable(),
38554
- title: z61.string(),
38555
- priceLabel: z61.string(),
38556
- summary: z61.string().nullable(),
38557
- categoryLabel: z61.string().nullable(),
38558
- gallery: z61.array(z61.object({
38559
- url: z61.string(),
38560
- alt: z61.string().nullable()
38628
+ z60.object({
38629
+ kind: z60.literal("product-detail"),
38630
+ state: z60.literal("ready"),
38631
+ heading: z60.string().nullable(),
38632
+ className: z60.string().nullable(),
38633
+ title: z60.string(),
38634
+ priceLabel: z60.string(),
38635
+ summary: z60.string().nullable(),
38636
+ categoryLabel: z60.string().nullable(),
38637
+ gallery: z60.array(z60.object({
38638
+ url: z60.string(),
38639
+ alt: z60.string().nullable()
38561
38640
  })),
38562
- variantOptions: z61.array(productVariantOptionDisplaySchema),
38563
- selectedVariantId: z61.string().nullable(),
38564
- selectionLabel: z61.string(),
38565
- actionLabel: z61.string(),
38566
- soldOut: z61.boolean(),
38567
- body: z61.unknown().nullable()
38641
+ variantOptions: z60.array(productVariantOptionDisplaySchema),
38642
+ selectedVariantId: z60.string().nullable(),
38643
+ selectionLabel: z60.string(),
38644
+ actionLabel: z60.string(),
38645
+ soldOut: z60.boolean(),
38646
+ body: z60.unknown().nullable()
38568
38647
  })
38569
38648
  ]);
38570
- passCardDisplaySchema = z61.object({
38571
- id: z61.string(),
38572
- title: z61.string(),
38573
- description: z61.string().nullable(),
38574
- priceLabel: z61.string(),
38575
- creditsLabel: z61.string(),
38576
- perCreditLabel: z61.string().nullable(),
38577
- validityLabel: z61.string().nullable(),
38578
- actionLabel: z61.string()
38579
- });
38580
- membershipCardDisplaySchema = z61.object({
38581
- id: z61.string(),
38582
- title: z61.string(),
38583
- description: z61.string().nullable(),
38584
- priceLabel: z61.string(),
38585
- intervalLabel: z61.string(),
38586
- actionLabel: z61.string()
38587
- });
38588
- passesMembershipsDisplaySchema = z61.object({
38589
- kind: z61.literal("passes-memberships"),
38590
- state: z61.enum(["empty", "ready"]),
38591
- className: z61.string().nullable(),
38592
- layout: z61.enum(["grid", "list"]),
38593
- columns: z61.string(),
38594
- emptyMessage: z61.string(),
38595
- passesHeading: z61.string(),
38596
- membershipsHeading: z61.string(),
38597
- passes: z61.array(passCardDisplaySchema),
38598
- memberships: z61.array(membershipCardDisplaySchema)
38599
- });
38600
- cartLineDisplaySchema = z61.object({
38601
- key: z61.string(),
38602
- title: z61.string(),
38603
- priceLabel: z61.string(),
38604
- quantity: z61.number(),
38605
- quantityEditable: z61.boolean()
38606
- });
38607
- cartDisplaySchema = z61.object({
38608
- kind: z61.literal("cart"),
38609
- state: z61.enum(["empty", "ready"]),
38610
- heading: z61.string().nullable(),
38611
- className: z61.string().nullable(),
38612
- emptyMessage: z61.string(),
38613
- supportText: z61.string().nullable(),
38614
- items: z61.array(cartLineDisplaySchema),
38615
- subtotalLabel: z61.string().nullable(),
38616
- checkoutButtonText: z61.string(),
38617
- clearButtonText: z61.string()
38618
- });
38619
- checkoutDisplaySchema = z61.object({
38620
- kind: z61.literal("checkout"),
38621
- state: z61.enum(["empty", "blocked", "ready"]),
38622
- heading: z61.string().nullable(),
38623
- className: z61.string().nullable(),
38624
- message: z61.string().nullable(),
38625
- submitButtonText: z61.string()
38626
- });
38627
- passesMembershipsHydrationSchema = z61.object({
38628
- passes: z61.array(publicPassProductSchema),
38629
- memberships: z61.array(publicMembershipProductSchema),
38630
- passPurchaseMode: z61.enum(["add_to_cart", "buy_now"])
38631
- });
38632
- productListHydrationSchema = z61.object({
38633
- products: z61.array(publicProductSchema),
38634
- showSummary: z61.boolean(),
38635
- showPrices: z61.boolean(),
38636
- addButtonText: z61.string()
38637
- });
38638
- productDetailHydrationSchema = z61.object({
38639
- products: z61.array(publicProductSchema),
38640
- productId: z61.string().nullable(),
38641
- showSummary: z61.boolean(),
38642
- showBody: z61.boolean(),
38643
- addButtonText: z61.string()
38644
- });
38645
- cartHydrationSchema = z61.object({
38646
- emptyStateText: z61.string(),
38647
- checkoutButtonText: z61.string(),
38648
- clearButtonText: z61.string()
38649
- });
38650
- checkoutHydrationSchema = z61.object({
38651
- emptyStateText: z61.string(),
38652
- submitButtonText: z61.string()
38653
- });
38654
- passesMembershipsRenderSchema = z61.object({
38649
+ passCardDisplaySchema = z60.object({
38650
+ id: z60.string(),
38651
+ title: z60.string(),
38652
+ description: z60.string().nullable(),
38653
+ priceLabel: z60.string(),
38654
+ creditsLabel: z60.string(),
38655
+ perCreditLabel: z60.string().nullable(),
38656
+ validityLabel: z60.string().nullable(),
38657
+ actionLabel: z60.string()
38658
+ });
38659
+ membershipCardDisplaySchema = z60.object({
38660
+ id: z60.string(),
38661
+ title: z60.string(),
38662
+ description: z60.string().nullable(),
38663
+ priceLabel: z60.string(),
38664
+ intervalLabel: z60.string(),
38665
+ actionLabel: z60.string()
38666
+ });
38667
+ passesMembershipsDisplaySchema = z60.object({
38668
+ kind: z60.literal("passes-memberships"),
38669
+ state: z60.enum(["empty", "ready"]),
38670
+ className: z60.string().nullable(),
38671
+ layout: z60.enum(["grid", "list"]),
38672
+ columns: z60.string(),
38673
+ emptyMessage: z60.string(),
38674
+ passesHeading: z60.string(),
38675
+ membershipsHeading: z60.string(),
38676
+ passes: z60.array(passCardDisplaySchema),
38677
+ memberships: z60.array(membershipCardDisplaySchema)
38678
+ });
38679
+ cartLineDisplaySchema = z60.object({
38680
+ key: z60.string(),
38681
+ title: z60.string(),
38682
+ priceLabel: z60.string(),
38683
+ quantity: z60.number(),
38684
+ quantityEditable: z60.boolean()
38685
+ });
38686
+ cartDisplaySchema = z60.object({
38687
+ kind: z60.literal("cart"),
38688
+ state: z60.enum(["empty", "ready"]),
38689
+ heading: z60.string().nullable(),
38690
+ className: z60.string().nullable(),
38691
+ emptyMessage: z60.string(),
38692
+ supportText: z60.string().nullable(),
38693
+ items: z60.array(cartLineDisplaySchema),
38694
+ subtotalLabel: z60.string().nullable(),
38695
+ checkoutButtonText: z60.string(),
38696
+ clearButtonText: z60.string()
38697
+ });
38698
+ checkoutDisplaySchema = z60.object({
38699
+ kind: z60.literal("checkout"),
38700
+ state: z60.enum(["empty", "blocked", "ready"]),
38701
+ heading: z60.string().nullable(),
38702
+ className: z60.string().nullable(),
38703
+ message: z60.string().nullable(),
38704
+ submitButtonText: z60.string()
38705
+ });
38706
+ passesMembershipsHydrationSchema = z60.object({
38707
+ passes: z60.array(publicPassProductSchema),
38708
+ memberships: z60.array(publicMembershipProductSchema),
38709
+ passPurchaseMode: z60.enum(["add_to_cart", "buy_now"])
38710
+ });
38711
+ productListHydrationSchema = z60.object({
38712
+ products: z60.array(publicProductSchema),
38713
+ showSummary: z60.boolean(),
38714
+ showPrices: z60.boolean(),
38715
+ addButtonText: z60.string()
38716
+ });
38717
+ productDetailHydrationSchema = z60.object({
38718
+ products: z60.array(publicProductSchema),
38719
+ productId: z60.string().nullable(),
38720
+ showSummary: z60.boolean(),
38721
+ showBody: z60.boolean(),
38722
+ addButtonText: z60.string()
38723
+ });
38724
+ cartHydrationSchema = z60.object({
38725
+ emptyStateText: z60.string(),
38726
+ checkoutButtonText: z60.string(),
38727
+ clearButtonText: z60.string()
38728
+ });
38729
+ checkoutHydrationSchema = z60.object({
38730
+ emptyStateText: z60.string(),
38731
+ submitButtonText: z60.string()
38732
+ });
38733
+ passesMembershipsRenderSchema = z60.object({
38655
38734
  display: passesMembershipsDisplaySchema,
38656
38735
  hydration: passesMembershipsHydrationSchema
38657
38736
  });
38658
- productListRenderSchema = z61.object({
38737
+ productListRenderSchema = z60.object({
38659
38738
  display: productListDisplaySchema,
38660
38739
  hydration: productListHydrationSchema
38661
38740
  });
38662
- productDetailRenderSchema = z61.object({
38741
+ productDetailRenderSchema = z60.object({
38663
38742
  display: productDetailDisplaySchema,
38664
38743
  hydration: productDetailHydrationSchema
38665
38744
  });
38666
- cartRenderSchema = z61.object({
38745
+ cartRenderSchema = z60.object({
38667
38746
  display: cartDisplaySchema,
38668
38747
  hydration: cartHydrationSchema
38669
38748
  });
38670
- checkoutRenderSchema = z61.object({
38749
+ checkoutRenderSchema = z60.object({
38671
38750
  display: checkoutDisplaySchema,
38672
38751
  hydration: checkoutHydrationSchema
38673
38752
  });
38674
- shopIslandMetaCodec = createZodCodec(z61.object({
38675
- siteId: z61.string().optional(),
38676
- apiBaseUrl: z61.string().optional(),
38753
+ shopIslandMetaCodec = createZodCodec(z60.object({
38754
+ siteId: z60.string().optional(),
38755
+ apiBaseUrl: z60.string().optional(),
38677
38756
  stage: previewStageSchema.optional()
38678
38757
  }));
38679
38758
  shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -38845,7 +38924,6 @@ var init_shop_interactive = __esm({
38845
38924
  });
38846
38925
 
38847
38926
  // ../blocks/src/system/blocks/shop.ts
38848
- import { z as z62 } from "zod";
38849
38927
  var shopManifest, shopBlockDefinition;
38850
38928
  var init_shop = __esm({
38851
38929
  "../blocks/src/system/blocks/shop.ts"() {
@@ -39053,9 +39131,9 @@ var init_shop = __esm({
39053
39131
  runtime: shopBlockRuntime,
39054
39132
  dataSchemas: {
39055
39133
  // listPublicPasses returns { passes: [...] }
39056
- passes: z62.object({ passes: z62.array(publicPassProductSchema) }).optional(),
39134
+ passes: publicPassProductCollectionSchema.optional(),
39057
39135
  // listPublicMemberships returns { memberships: [...] }
39058
- memberships: z62.object({ memberships: z62.array(publicMembershipProductSchema) }).optional()
39136
+ memberships: publicMembershipProductCollectionSchema.optional()
39059
39137
  },
39060
39138
  dataLoaders: {
39061
39139
  // Load passes for display
@@ -39080,7 +39158,7 @@ var init_shop = __esm({
39080
39158
  });
39081
39159
 
39082
39160
  // ../blocks/src/system/blocks/product-list.ts
39083
- import { z as z63 } from "zod";
39161
+ import { z as z61 } from "zod";
39084
39162
  var productListManifest, productListBlockDefinition, productListDataSchema;
39085
39163
  var init_product_list = __esm({
39086
39164
  "../blocks/src/system/blocks/product-list.ts"() {
@@ -39225,7 +39303,7 @@ var init_product_list = __esm({
39225
39303
  }
39226
39304
  }
39227
39305
  };
39228
- productListDataSchema = z63.object({
39306
+ productListDataSchema = z61.object({
39229
39307
  products: publicProductsResponseSchema.optional()
39230
39308
  });
39231
39309
  }
@@ -39528,7 +39606,7 @@ var init_checkout = __esm({
39528
39606
  });
39529
39607
 
39530
39608
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
39531
- import { z as z64 } from "zod";
39609
+ import { z as z62 } from "zod";
39532
39610
  function buildGiftingDisplay(source) {
39533
39611
  return {
39534
39612
  kind: "gifting",
@@ -39547,71 +39625,71 @@ var init_gifting_interactive = __esm({
39547
39625
  "use strict";
39548
39626
  init_islands();
39549
39627
  init_runtime();
39550
- publicGiftCardOfferSchema = z64.object({
39551
- id: z64.string(),
39552
- kind: z64.literal("gift_card"),
39553
- title: z64.string(),
39554
- description: z64.string().nullable(),
39555
- sortOrder: z64.number().int(),
39556
- giftCard: z64.object({
39557
- fixedDenominations: z64.array(z64.number().int().positive()),
39558
- customAmountEnabled: z64.boolean(),
39559
- customAmountMinCents: z64.number().int().positive(),
39560
- customAmountMaxCents: z64.number().int().positive()
39628
+ publicGiftCardOfferSchema = z62.object({
39629
+ id: z62.string(),
39630
+ kind: z62.literal("gift_card"),
39631
+ title: z62.string(),
39632
+ description: z62.string().nullable(),
39633
+ sortOrder: z62.number().int(),
39634
+ giftCard: z62.object({
39635
+ fixedDenominations: z62.array(z62.number().int().positive()),
39636
+ customAmountEnabled: z62.boolean(),
39637
+ customAmountMinCents: z62.number().int().positive(),
39638
+ customAmountMaxCents: z62.number().int().positive()
39561
39639
  }),
39562
- voucher: z64.null()
39563
- });
39564
- publicVoucherOfferSchema = z64.object({
39565
- id: z64.string(),
39566
- kind: z64.literal("voucher"),
39567
- title: z64.string(),
39568
- description: z64.string().nullable(),
39569
- sortOrder: z64.number().int(),
39570
- giftCard: z64.null(),
39571
- voucher: z64.object({
39572
- purchaseAmountCents: z64.number().int().positive()
39640
+ voucher: z62.null()
39641
+ });
39642
+ publicVoucherOfferSchema = z62.object({
39643
+ id: z62.string(),
39644
+ kind: z62.literal("voucher"),
39645
+ title: z62.string(),
39646
+ description: z62.string().nullable(),
39647
+ sortOrder: z62.number().int(),
39648
+ giftCard: z62.null(),
39649
+ voucher: z62.object({
39650
+ purchaseAmountCents: z62.number().int().positive()
39573
39651
  })
39574
39652
  });
39575
- publicGiftingOffersResponseSchema = z64.object({
39576
- currency: z64.string(),
39577
- giftCards: z64.array(publicGiftCardOfferSchema),
39578
- vouchers: z64.array(publicVoucherOfferSchema)
39653
+ publicGiftingOffersResponseSchema = z62.object({
39654
+ currency: z62.string(),
39655
+ giftCards: z62.array(publicGiftCardOfferSchema),
39656
+ vouchers: z62.array(publicVoucherOfferSchema)
39579
39657
  });
39580
- giftingSourceSchema = z64.object({
39581
- siteId: z64.string().optional(),
39582
- apiBaseUrl: z64.string().optional(),
39658
+ giftingSourceSchema = z62.object({
39659
+ siteId: z62.string().optional(),
39660
+ apiBaseUrl: z62.string().optional(),
39583
39661
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
39584
- className: z64.string().nullable().optional(),
39585
- heading: z64.string().nullable().optional(),
39586
- intro: z64.string().nullable().optional(),
39587
- giftCardsHeading: z64.string().nullable().optional(),
39588
- vouchersHeading: z64.string().nullable().optional(),
39589
- emptyStateText: z64.string().nullable().optional(),
39590
- checkoutButtonText: z64.string().nullable().optional(),
39591
- successMessage: z64.string().nullable().optional()
39592
- });
39593
- giftingDisplaySchema = z64.object({
39594
- kind: z64.literal("gifting"),
39595
- state: z64.literal("ready"),
39596
- className: z64.string().nullable(),
39597
- heading: z64.string(),
39598
- intro: z64.string().nullable(),
39599
- giftCardsHeading: z64.string(),
39600
- vouchersHeading: z64.string(),
39601
- emptyStateText: z64.string()
39602
- });
39603
- giftingHydrationSchema = z64.object({
39662
+ className: z62.string().nullable().optional(),
39663
+ heading: z62.string().nullable().optional(),
39664
+ intro: z62.string().nullable().optional(),
39665
+ giftCardsHeading: z62.string().nullable().optional(),
39666
+ vouchersHeading: z62.string().nullable().optional(),
39667
+ emptyStateText: z62.string().nullable().optional(),
39668
+ checkoutButtonText: z62.string().nullable().optional(),
39669
+ successMessage: z62.string().nullable().optional()
39670
+ });
39671
+ giftingDisplaySchema = z62.object({
39672
+ kind: z62.literal("gifting"),
39673
+ state: z62.literal("ready"),
39674
+ className: z62.string().nullable(),
39675
+ heading: z62.string(),
39676
+ intro: z62.string().nullable(),
39677
+ giftCardsHeading: z62.string(),
39678
+ vouchersHeading: z62.string(),
39679
+ emptyStateText: z62.string()
39680
+ });
39681
+ giftingHydrationSchema = z62.object({
39604
39682
  offers: publicGiftingOffersResponseSchema.nullable(),
39605
- checkoutButtonText: z64.string(),
39606
- successMessage: z64.string()
39683
+ checkoutButtonText: z62.string(),
39684
+ successMessage: z62.string()
39607
39685
  });
39608
- giftingRenderSchema = z64.object({
39686
+ giftingRenderSchema = z62.object({
39609
39687
  display: giftingDisplaySchema,
39610
39688
  hydration: giftingHydrationSchema
39611
39689
  });
39612
- giftingIslandMetaCodec = createZodCodec(z64.object({
39613
- siteId: z64.string().optional(),
39614
- apiBaseUrl: z64.string().optional()
39690
+ giftingIslandMetaCodec = createZodCodec(z62.object({
39691
+ siteId: z62.string().optional(),
39692
+ apiBaseUrl: z62.string().optional()
39615
39693
  }));
39616
39694
  giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
39617
39695
  "siteId",
@@ -39928,7 +40006,7 @@ var init_newsletter_form_types = __esm({
39928
40006
  });
39929
40007
 
39930
40008
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
39931
- import { z as z65 } from "zod";
40009
+ import { z as z63 } from "zod";
39932
40010
  function buildNewsletterDisplay(source) {
39933
40011
  const preset2 = source.preset ?? "emailOnly";
39934
40012
  const includePhone = source.includePhone ?? false;
@@ -39963,65 +40041,65 @@ var init_newsletter_form_interactive = __esm({
39963
40041
  init_runtime();
39964
40042
  init_newsletter_signup_destination();
39965
40043
  init_newsletter_form_types();
39966
- newsletterPresetSchema = z65.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
39967
- newsletterDestinationProviderSchema = z65.enum(["riverbank", "mailchimp"]);
39968
- newsletterFieldSchema = z65.object({
39969
- id: z65.string(),
39970
- type: z65.enum(["email", "text"]),
39971
- label: z65.string(),
39972
- required: z65.boolean(),
39973
- placeholder: z65.string().optional()
39974
- });
39975
- newsletterSignupBlockIdSchema = z65.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
39976
- signedNewsletterDestinationRefSchema = z65.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
39977
- newsletterPublicDestinationRefSchema = z65.discriminatedUnion("tag", [
39978
- z65.object({
39979
- tag: z65.literal("block_ref"),
40044
+ newsletterPresetSchema = z63.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
40045
+ newsletterDestinationProviderSchema = z63.enum(["riverbank", "mailchimp"]);
40046
+ newsletterFieldSchema = z63.object({
40047
+ id: z63.string(),
40048
+ type: z63.enum(["email", "text"]),
40049
+ label: z63.string(),
40050
+ required: z63.boolean(),
40051
+ placeholder: z63.string().optional()
40052
+ });
40053
+ newsletterSignupBlockIdSchema = z63.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
40054
+ signedNewsletterDestinationRefSchema = z63.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
40055
+ newsletterPublicDestinationRefSchema = z63.discriminatedUnion("tag", [
40056
+ z63.object({
40057
+ tag: z63.literal("block_ref"),
39980
40058
  blockId: newsletterSignupBlockIdSchema
39981
40059
  }),
39982
- z65.object({
39983
- tag: z65.literal("signed_destination_ref"),
40060
+ z63.object({
40061
+ tag: z63.literal("signed_destination_ref"),
39984
40062
  token: signedNewsletterDestinationRefSchema
39985
40063
  })
39986
40064
  ]);
39987
- newsletterSourceSchema = z65.object({
39988
- blockId: z65.string().nullable().optional(),
39989
- siteId: z65.string().optional(),
39990
- apiBaseUrl: z65.string().optional(),
39991
- listId: z65.string().nullable().optional(),
40065
+ newsletterSourceSchema = z63.object({
40066
+ blockId: z63.string().nullable().optional(),
40067
+ siteId: z63.string().optional(),
40068
+ apiBaseUrl: z63.string().optional(),
40069
+ listId: z63.string().nullable().optional(),
39992
40070
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
39993
40071
  preset: newsletterPresetSchema.optional(),
39994
- includePhone: z65.boolean().optional(),
39995
- buttonLabel: z65.string().nullable().optional(),
39996
- successMessage: z65.string().nullable().optional(),
39997
- privacyNote: z65.string().nullable().optional(),
39998
- tags: z65.string().nullable().optional(),
39999
- spamProtectionEnabled: z65.boolean().optional(),
40000
- className: z65.string().nullable().optional()
40001
- });
40002
- newsletterDisplaySchema = z65.object({
40003
- kind: z65.literal("newsletter-form"),
40004
- className: z65.string().nullable(),
40005
- buttonLabel: z65.string(),
40006
- successMessage: z65.string().nullable(),
40007
- privacyNote: z65.string().nullable(),
40008
- fields: z65.array(newsletterFieldSchema)
40009
- });
40010
- newsletterHydrationSchema = z65.object({
40072
+ includePhone: z63.boolean().optional(),
40073
+ buttonLabel: z63.string().nullable().optional(),
40074
+ successMessage: z63.string().nullable().optional(),
40075
+ privacyNote: z63.string().nullable().optional(),
40076
+ tags: z63.string().nullable().optional(),
40077
+ spamProtectionEnabled: z63.boolean().optional(),
40078
+ className: z63.string().nullable().optional()
40079
+ });
40080
+ newsletterDisplaySchema = z63.object({
40081
+ kind: z63.literal("newsletter-form"),
40082
+ className: z63.string().nullable(),
40083
+ buttonLabel: z63.string(),
40084
+ successMessage: z63.string().nullable(),
40085
+ privacyNote: z63.string().nullable(),
40086
+ fields: z63.array(newsletterFieldSchema)
40087
+ });
40088
+ newsletterHydrationSchema = z63.object({
40011
40089
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
40012
- listId: z65.string().nullable().optional(),
40090
+ listId: z63.string().nullable().optional(),
40013
40091
  preset: newsletterPresetSchema,
40014
- includePhone: z65.boolean(),
40015
- tags: z65.string().nullable().optional(),
40016
- spamProtectionEnabled: z65.boolean().optional()
40092
+ includePhone: z63.boolean(),
40093
+ tags: z63.string().nullable().optional(),
40094
+ spamProtectionEnabled: z63.boolean().optional()
40017
40095
  });
40018
- newsletterRenderSchema = z65.object({
40096
+ newsletterRenderSchema = z63.object({
40019
40097
  display: newsletterDisplaySchema,
40020
40098
  hydration: newsletterHydrationSchema
40021
40099
  });
40022
- newsletterIslandMetaCodec = createZodCodec(z65.object({
40023
- siteId: z65.string().optional(),
40024
- apiBaseUrl: z65.string().optional()
40100
+ newsletterIslandMetaCodec = createZodCodec(z63.object({
40101
+ siteId: z63.string().optional(),
40102
+ apiBaseUrl: z63.string().optional()
40025
40103
  }));
40026
40104
  newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
40027
40105
  newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
@@ -40148,7 +40226,7 @@ var init_newsletter_signup = __esm({
40148
40226
  });
40149
40227
 
40150
40228
  // ../blocks/src/system/blocks/team-members.ts
40151
- import { z as z66 } from "zod";
40229
+ import { z as z64 } from "zod";
40152
40230
  var ITEM_NAME2, teamMemberPhotoSchema, teamMemberDataSchema, teamMembersDataSchema, dynamicSourceWhen, manualSourceWhen, headingNode, wrapVariant3, teamMemberStackLayout, manualGridMembersNode, dynamicGridMembersNode, gridVariant, manualStackMembersNode, dynamicStackMembersNode, stackVariant, teamMembersManifest, teamMembersBlockDefinition;
40153
40231
  var init_team_members = __esm({
40154
40232
  "../blocks/src/system/blocks/team-members.ts"() {
@@ -40165,18 +40243,18 @@ var init_team_members = __esm({
40165
40243
  teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
40166
40244
  message: "Team member photos must be image media"
40167
40245
  }).nullable();
40168
- teamMemberDataSchema = z66.object({
40169
- _type: z66.literal("teamMember"),
40170
- id: z66.string(),
40171
- name: z66.string(),
40172
- role: z66.string().nullable(),
40173
- roleLabel: z66.string().nullable(),
40174
- bio: z66.string().nullable(),
40175
- summary: z66.string().nullable(),
40246
+ teamMemberDataSchema = z64.object({
40247
+ _type: z64.literal("teamMember"),
40248
+ id: z64.string(),
40249
+ name: z64.string(),
40250
+ role: z64.string().nullable(),
40251
+ roleLabel: z64.string().nullable(),
40252
+ bio: z64.string().nullable(),
40253
+ summary: z64.string().nullable(),
40176
40254
  photo: teamMemberPhotoSchema,
40177
- profilePath: z66.string().nullable()
40255
+ profilePath: z64.string().nullable()
40178
40256
  });
40179
- teamMembersDataSchema = z66.array(teamMemberDataSchema);
40257
+ teamMembersDataSchema = z64.array(teamMemberDataSchema);
40180
40258
  dynamicSourceWhen = { equals: "site_staff" };
40181
40259
  manualSourceWhen = { equals: "site_staff", not: true };
40182
40260
  headingNode = text(
@@ -41180,13 +41258,6 @@ var init_blocks = __esm({
41180
41258
  weight: "featured",
41181
41259
  bias: "clear",
41182
41260
  surfaces: heroSectionSurfaces
41183
- }),
41184
- layoutProfile({
41185
- variantKey: "splitEditorial",
41186
- family: "split",
41187
- weight: "featured",
41188
- bias: "clear",
41189
- surfaces: heroSectionSurfaces
41190
41261
  })
41191
41262
  ]
41192
41263
  })),
@@ -41430,9 +41501,8 @@ var init_blocks = __esm({
41430
41501
  flow: offeringsFlow,
41431
41502
  layoutProfiles: [
41432
41503
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
41504
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
41433
41505
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
41434
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
41435
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
41436
41506
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
41437
41507
  ]
41438
41508
  })),
@@ -42043,10 +42113,7 @@ function normalizeRenderStage(stage) {
42043
42113
  return stage === "preview" ? "preview" : "published";
42044
42114
  }
42045
42115
  function isRouteVisibleInStage(routeEntry, stageInput) {
42046
- const stage = normalizeRenderStage(stageInput);
42047
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
42048
- return true;
42049
- }
42116
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
42050
42117
  const status = routeEntry.status;
42051
42118
  return !(typeof status === "string" && status !== "published");
42052
42119
  }
@@ -42055,52 +42122,45 @@ function extractRouteHref(candidate, stageInput = "published") {
42055
42122
  const trimmed = candidate.trim();
42056
42123
  return trimmed.length > 0 ? trimmed : null;
42057
42124
  }
42058
- if (!isRouteRecord(candidate)) {
42059
- return null;
42060
- }
42061
- const stage = normalizeRenderStage(stageInput);
42062
- const fields3 = stage === "preview" ? ["draftPath", "path", "href", "url"] : ["path", "href", "url"];
42125
+ if (!isRouteRecord(candidate)) return null;
42126
+ const fields3 = normalizeRenderStage(stageInput) === "preview" ? [
42127
+ "draftPath",
42128
+ "path",
42129
+ "href",
42130
+ "url"
42131
+ ] : [
42132
+ "path",
42133
+ "href",
42134
+ "url"
42135
+ ];
42063
42136
  for (const field of fields3) {
42064
42137
  const value = candidate[field];
42065
- if (typeof value === "string" && value.trim().length > 0) {
42066
- return value.trim();
42067
- }
42138
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
42068
42139
  }
42069
42140
  return null;
42070
42141
  }
42071
42142
  function extractRouteUpdatedAt(candidate) {
42072
- if (!isRouteRecord(candidate)) {
42073
- return null;
42074
- }
42075
- const fields3 = [
42143
+ if (!isRouteRecord(candidate)) return null;
42144
+ for (const field of [
42076
42145
  "updatedAt",
42077
42146
  "updated_at",
42078
42147
  "publishedAt",
42079
42148
  "published_at",
42080
42149
  "modifiedAt",
42081
42150
  "modified_at"
42082
- ];
42083
- for (const field of fields3) {
42151
+ ]) {
42084
42152
  const value = candidate[field];
42085
- if (typeof value === "string" && value.length > 0) {
42086
- return value;
42087
- }
42153
+ if (typeof value === "string" && value.length > 0) return value;
42088
42154
  }
42089
42155
  return null;
42090
42156
  }
42091
42157
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
42092
42158
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
42093
- if (!routeId || !routes) {
42094
- return null;
42095
- }
42159
+ if (!routeId || !routes) return null;
42096
42160
  const routeEntry = routes[routeId];
42097
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
42098
- return null;
42099
- }
42161
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
42100
42162
  const href = extractRouteHref(routeEntry, stageInput);
42101
- if (!href) {
42102
- return null;
42103
- }
42163
+ if (!href) return null;
42104
42164
  return {
42105
42165
  routeId,
42106
42166
  href,
@@ -44228,30 +44288,30 @@ var init_Button = __esm({
44228
44288
  });
44229
44289
 
44230
44290
  // ../blocks/src/structure/schema.ts
44231
- import z67 from "zod";
44291
+ import z65 from "zod";
44232
44292
  var BlockKind, blockSchema, pagePath, pageOutlineSchema;
44233
44293
  var init_schema4 = __esm({
44234
44294
  "../blocks/src/structure/schema.ts"() {
44235
44295
  "use strict";
44236
- BlockKind = z67.string();
44237
- blockSchema = z67.object({
44238
- id: z67.string().nullable(),
44296
+ BlockKind = z65.string();
44297
+ blockSchema = z65.object({
44298
+ id: z65.string().nullable(),
44239
44299
  // optional ID for reference in toggle ops
44240
44300
  kind: BlockKind,
44241
- purpose: z67.string().min(1),
44301
+ purpose: z65.string().min(1),
44242
44302
  // Optional content fields used by PageRenderer / block runtime.
44243
- content: z67.record(z67.string(), z67.unknown()).optional(),
44303
+ content: z65.record(z65.string(), z65.unknown()).optional(),
44244
44304
  // Nullable because some persisted sources store "no draft" as null.
44245
- draftContent: z67.record(z67.string(), z67.unknown()).nullable().optional(),
44305
+ draftContent: z65.record(z65.string(), z65.unknown()).nullable().optional(),
44246
44306
  // Optional template bindings for reverse field mapping (entry editing)
44247
- bindings: z67.record(z67.string(), z67.unknown()).optional()
44307
+ bindings: z65.record(z65.string(), z65.unknown()).optional()
44248
44308
  }).passthrough();
44249
- pagePath = z67.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
44250
- pageOutlineSchema = z67.object({
44251
- name: z67.string().min(1),
44309
+ pagePath = z65.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
44310
+ pageOutlineSchema = z65.object({
44311
+ name: z65.string().min(1),
44252
44312
  path: pagePath,
44253
- purpose: z67.string().min(1),
44254
- blocks: z67.array(blockSchema).min(1)
44313
+ purpose: z65.string().min(1),
44314
+ blocks: z65.array(blockSchema).min(1)
44255
44315
  });
44256
44316
  }
44257
44317
  });
@@ -44344,6 +44404,17 @@ var init_ThemeFontLoader = __esm({
44344
44404
  }
44345
44405
  });
44346
44406
 
44407
+ // ../theme-core/src/ResponsiveScope.tsx
44408
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
44409
+ var init_ResponsiveScope = __esm({
44410
+ "../theme-core/src/ResponsiveScope.tsx"() {
44411
+ "use strict";
44412
+ init_selectorUtils();
44413
+ init_containerResponsiveThemeCss();
44414
+ init_responsiveMode();
44415
+ }
44416
+ });
44417
+
44347
44418
  // ../theme-core/src/fonts/uploadFormat.ts
44348
44419
  var MAX_FONT_UPLOAD_BYTES;
44349
44420
  var init_uploadFormat = __esm({
@@ -44363,7 +44434,7 @@ var init_fonts = __esm({
44363
44434
  });
44364
44435
 
44365
44436
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
44366
- import { z as z68 } from "zod";
44437
+ import { z as z66 } from "zod";
44367
44438
  var themeBridgeConfigSchema;
44368
44439
  var init_buildThemeRuntimeFromBridge = __esm({
44369
44440
  "../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts"() {
@@ -44378,33 +44449,33 @@ var init_buildThemeRuntimeFromBridge = __esm({
44378
44449
  init_progress();
44379
44450
  init_blocks2();
44380
44451
  init_themeCssVarNames();
44381
- themeBridgeConfigSchema = z68.object({
44382
- tokens: z68.record(z68.string(), z68.string()),
44383
- typography: z68.object({
44384
- headingFamily: z68.string().optional(),
44385
- bodyFamily: z68.string().optional(),
44386
- headingWeight: z68.number().optional(),
44387
- bodyWeight: z68.number().optional()
44452
+ themeBridgeConfigSchema = z66.object({
44453
+ tokens: z66.record(z66.string(), z66.string()),
44454
+ typography: z66.object({
44455
+ headingFamily: z66.string().optional(),
44456
+ bodyFamily: z66.string().optional(),
44457
+ headingWeight: z66.number().optional(),
44458
+ bodyWeight: z66.number().optional()
44388
44459
  }).optional(),
44389
- spacing: z68.enum(["comfortable", "standard", "dense"]).optional(),
44390
- corners: z68.enum(["square", "soft", "rounded", "pill"]).optional(),
44391
- shadows: z68.enum(["none", "low", "medium", "high"]).optional(),
44392
- components: z68.object({
44393
- buttons: z68.union([
44394
- z68.boolean(),
44395
- z68.object({
44396
- variants: z68.array(z68.enum(["primary", "secondary", "outline", "ghost"])).optional()
44460
+ spacing: z66.enum(["comfortable", "standard", "dense"]).optional(),
44461
+ corners: z66.enum(["square", "soft", "rounded", "pill"]).optional(),
44462
+ shadows: z66.enum(["none", "low", "medium", "high"]).optional(),
44463
+ components: z66.object({
44464
+ buttons: z66.union([
44465
+ z66.boolean(),
44466
+ z66.object({
44467
+ variants: z66.array(z66.enum(["primary", "secondary", "outline", "ghost"])).optional()
44397
44468
  })
44398
44469
  ]).optional(),
44399
- cards: z68.union([
44400
- z68.boolean(),
44401
- z68.object({
44402
- variants: z68.array(z68.enum(["default", "elevated", "outlined"])).optional()
44470
+ cards: z66.union([
44471
+ z66.boolean(),
44472
+ z66.object({
44473
+ variants: z66.array(z66.enum(["default", "elevated", "outlined"])).optional()
44403
44474
  })
44404
44475
  ]).optional(),
44405
- inputs: z68.boolean().optional()
44476
+ inputs: z66.boolean().optional()
44406
44477
  }).optional(),
44407
- overrides: z68.record(z68.string(), z68.string()).optional()
44478
+ overrides: z66.record(z66.string(), z66.string()).optional()
44408
44479
  }).passthrough();
44409
44480
  }
44410
44481
  });
@@ -44419,7 +44490,7 @@ var init_siteChromePlanning = __esm({
44419
44490
  });
44420
44491
 
44421
44492
  // ../theme-core/src/siteChrome.tsx
44422
- import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
44493
+ import { Fragment as Fragment3, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
44423
44494
  var init_siteChrome = __esm({
44424
44495
  "../theme-core/src/siteChrome.tsx"() {
44425
44496
  "use strict";
@@ -44861,6 +44932,7 @@ var init_src3 = __esm({
44861
44932
  init_ThemeScope();
44862
44933
  init_ThemeFontLoader();
44863
44934
  init_ThemeScopeCore();
44935
+ init_ResponsiveScope();
44864
44936
  init_themeScopeUtils();
44865
44937
  init_fonts();
44866
44938
  init_buildThemeRuntime();
@@ -44874,7 +44946,7 @@ var init_src3 = __esm({
44874
44946
  });
44875
44947
 
44876
44948
  // ../api/src/sdkConfig/contracts.ts
44877
- import { z as z69 } from "zod";
44949
+ import { z as z67 } from "zod";
44878
44950
  function unsafeRetypeZodSchema(schema) {
44879
44951
  return schema;
44880
44952
  }
@@ -44883,17 +44955,17 @@ var init_contracts2 = __esm({
44883
44955
  "../api/src/sdkConfig/contracts.ts"() {
44884
44956
  "use strict";
44885
44957
  init_src3();
44886
- navIdListSchema = z69.preprocess((value) => {
44958
+ navIdListSchema = z67.preprocess((value) => {
44887
44959
  if (!Array.isArray(value)) return void 0;
44888
44960
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
44889
44961
  return filtered.length > 0 ? filtered : void 0;
44890
- }, z69.array(z69.string()).max(200).optional());
44891
- dashboardNavVisibilityBaseSchema = z69.object({
44892
- mode: z69.enum(["augment", "restrict"]).optional(),
44962
+ }, z67.array(z67.string()).max(200).optional());
44963
+ dashboardNavVisibilityBaseSchema = z67.object({
44964
+ mode: z67.enum(["augment", "restrict"]).optional(),
44893
44965
  allowIds: navIdListSchema,
44894
44966
  denyIds: navIdListSchema
44895
44967
  }).strip();
44896
- dashboardNavVisibilityRolesSchema = z69.object({
44968
+ dashboardNavVisibilityRolesSchema = z67.object({
44897
44969
  administrator: dashboardNavVisibilityBaseSchema.optional(),
44898
44970
  editor: dashboardNavVisibilityBaseSchema.optional(),
44899
44971
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -44901,63 +44973,63 @@ var init_contracts2 = __esm({
44901
44973
  dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
44902
44974
  roles: dashboardNavVisibilityRolesSchema
44903
44975
  }).strip();
44904
- dashboardNavigationConfigSchema = z69.object({
44976
+ dashboardNavigationConfigSchema = z67.object({
44905
44977
  siteNav: dashboardNavVisibilitySchema.optional(),
44906
44978
  settingsNav: dashboardNavVisibilitySchema.optional()
44907
44979
  }).strip();
44908
- dashboardConfigSchema = z69.object({
44909
- previewEditingEnabled: z69.boolean().optional(),
44980
+ dashboardConfigSchema = z67.object({
44981
+ previewEditingEnabled: z67.boolean().optional(),
44910
44982
  navigation: dashboardNavigationConfigSchema.optional()
44911
44983
  }).strip();
44912
44984
  fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
44913
44985
  nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
44914
- sdkLoaderEndpointSchema = z69.enum(SUPPORTED_LOADER_ENDPOINTS);
44915
- loaderFallbackScalarSchema = z69.union([
44916
- z69.string(),
44917
- z69.number(),
44918
- z69.boolean(),
44919
- z69.null()
44986
+ sdkLoaderEndpointSchema = z67.enum(SUPPORTED_LOADER_ENDPOINTS);
44987
+ loaderFallbackScalarSchema = z67.union([
44988
+ z67.string(),
44989
+ z67.number(),
44990
+ z67.boolean(),
44991
+ z67.null()
44920
44992
  ]);
44921
- loaderParamBindingSchema = z69.object({
44922
- $bind: z69.object({
44923
- from: z69.string().min(1, "Binding path is required"),
44993
+ loaderParamBindingSchema = z67.object({
44994
+ $bind: z67.object({
44995
+ from: z67.string().min(1, "Binding path is required"),
44924
44996
  fallback: loaderFallbackScalarSchema.optional()
44925
44997
  })
44926
44998
  });
44927
- loaderParamValueSchema = z69.union([
44928
- z69.string(),
44929
- z69.number(),
44930
- z69.boolean(),
44999
+ loaderParamValueSchema = z67.union([
45000
+ z67.string(),
45001
+ z67.number(),
45002
+ z67.boolean(),
44931
45003
  loaderParamBindingSchema
44932
45004
  ]);
44933
- sdkConfigLoaderSchema = z69.object({
45005
+ sdkConfigLoaderSchema = z67.object({
44934
45006
  endpoint: sdkLoaderEndpointSchema,
44935
- params: z69.record(z69.string(), loaderParamValueSchema),
44936
- mode: z69.enum(["server", "client"]).default("server")
45007
+ params: z67.record(z67.string(), loaderParamValueSchema),
45008
+ mode: z67.enum(["server", "client"]).default("server")
44937
45009
  });
44938
- sdkDataLoadersSchema = z69.record(z69.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
44939
- sdkCustomBlockIdSchema = z69.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
45010
+ sdkDataLoadersSchema = z67.record(z67.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
45011
+ sdkCustomBlockIdSchema = z67.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
44940
45012
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
44941
45013
  }).transform((value) => value);
44942
- sdkCustomBlockInputSchema = z69.object({
45014
+ sdkCustomBlockInputSchema = z67.object({
44943
45015
  id: sdkCustomBlockIdSchema,
44944
- title: z69.string().min(1),
44945
- titleSource: z69.union([z69.string().min(1), z69.array(z69.string().min(1)).min(1)]).optional(),
44946
- description: z69.string().optional(),
45016
+ title: z67.string().min(1),
45017
+ titleSource: z67.union([z67.string().min(1), z67.array(z67.string().min(1)).min(1)]).optional(),
45018
+ description: z67.string().optional(),
44947
45019
  category: blockCategoryEnum,
44948
- icon: z69.string().optional(),
44949
- tags: z69.array(z69.string()).optional(),
45020
+ icon: z67.string().optional(),
45021
+ tags: z67.array(z67.string()).optional(),
44950
45022
  fields: fieldDefinitionInputSchema.array().min(1),
44951
45023
  dataLoaders: sdkDataLoadersSchema,
44952
45024
  layout: NodeSchema.optional(),
44953
- variants: z69.record(z69.string().min(1), NodeSchema).optional(),
44954
- defaultVariant: z69.string().min(1).optional(),
44955
- variantOptions: z69.record(
44956
- z69.string().min(1),
44957
- z69.object({
44958
- label: z69.string().min(1).optional(),
44959
- description: z69.string().min(1).optional(),
44960
- icon: z69.string().min(1).optional()
45025
+ variants: z67.record(z67.string().min(1), NodeSchema).optional(),
45026
+ defaultVariant: z67.string().min(1).optional(),
45027
+ variantOptions: z67.record(
45028
+ z67.string().min(1),
45029
+ z67.object({
45030
+ label: z67.string().min(1).optional(),
45031
+ description: z67.string().min(1).optional(),
45032
+ icon: z67.string().min(1).optional()
44961
45033
  })
44962
45034
  ).optional(),
44963
45035
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -44968,7 +45040,7 @@ var init_contracts2 = __esm({
44968
45040
  const exists = data.fields.some((field) => field.id === source);
44969
45041
  if (!exists) {
44970
45042
  ctx.addIssue({
44971
- code: z69.ZodIssueCode.custom,
45043
+ code: z67.ZodIssueCode.custom,
44972
45044
  message: `titleSource must reference a valid field ID (got "${source}")`,
44973
45045
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
44974
45046
  });
@@ -44977,7 +45049,7 @@ var init_contracts2 = __esm({
44977
45049
  }
44978
45050
  if (data.layout && data.variants) {
44979
45051
  ctx.addIssue({
44980
- code: z69.ZodIssueCode.custom,
45052
+ code: z67.ZodIssueCode.custom,
44981
45053
  message: "Custom block must define either `layout` or `variants`, not both",
44982
45054
  path: ["variants"]
44983
45055
  });
@@ -44986,14 +45058,14 @@ var init_contracts2 = __esm({
44986
45058
  const keys = Object.keys(data.variants);
44987
45059
  if (keys.length === 0) {
44988
45060
  ctx.addIssue({
44989
- code: z69.ZodIssueCode.custom,
45061
+ code: z67.ZodIssueCode.custom,
44990
45062
  message: "`variants` must contain at least one variant key",
44991
45063
  path: ["variants"]
44992
45064
  });
44993
45065
  }
44994
45066
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
44995
45067
  ctx.addIssue({
44996
- code: z69.ZodIssueCode.custom,
45068
+ code: z67.ZodIssueCode.custom,
44997
45069
  message: "`defaultVariant` must be a key present in `variants`",
44998
45070
  path: ["defaultVariant"]
44999
45071
  });
@@ -45002,7 +45074,7 @@ var init_contracts2 = __esm({
45002
45074
  for (const key of Object.keys(data.variantOptions)) {
45003
45075
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
45004
45076
  ctx.addIssue({
45005
- code: z69.ZodIssueCode.custom,
45077
+ code: z67.ZodIssueCode.custom,
45006
45078
  message: "`variantOptions` key must exist in `variants`",
45007
45079
  path: ["variantOptions", key]
45008
45080
  });
@@ -45011,78 +45083,78 @@ var init_contracts2 = __esm({
45011
45083
  }
45012
45084
  }
45013
45085
  });
45014
- sdkBlockFieldExtensionInputSchema = z69.object({
45086
+ sdkBlockFieldExtensionInputSchema = z67.object({
45015
45087
  fields: fieldDefinitionInputSchema.array().min(1)
45016
45088
  });
45017
- sdkBlockFieldExtensionsInputSchema = z69.record(
45018
- z69.string().min(1),
45089
+ sdkBlockFieldExtensionsInputSchema = z67.record(
45090
+ z67.string().min(1),
45019
45091
  sdkBlockFieldExtensionInputSchema
45020
45092
  );
45021
- sdkThemePaletteSchema = z69.record(z69.string(), z69.string());
45022
- sdkThemeConfigSchema = z69.object({
45093
+ sdkThemePaletteSchema = z67.record(z67.string(), z67.string());
45094
+ sdkThemeConfigSchema = z67.object({
45023
45095
  palette: sdkThemePaletteSchema
45024
45096
  });
45025
- sdkSectionBackgroundSchema = z69.object({
45026
- id: z69.string().min(1),
45027
- label: z69.string().min(1),
45028
- token: z69.string().min(1)
45097
+ sdkSectionBackgroundSchema = z67.object({
45098
+ id: z67.string().min(1),
45099
+ label: z67.string().min(1),
45100
+ token: z67.string().min(1)
45029
45101
  });
45030
- sdkSectionOptionsConfigSchema = z69.object({
45031
- backgroundColor: z69.boolean().optional(),
45032
- backgroundImage: z69.boolean().optional(),
45033
- backgroundGradient: z69.boolean().optional(),
45034
- spacing: z69.union([z69.array(z69.enum(["compact", "default", "spacious"])), z69.boolean()]).optional(),
45035
- textColor: z69.boolean().optional()
45102
+ sdkSectionOptionsConfigSchema = z67.object({
45103
+ backgroundColor: z67.boolean().optional(),
45104
+ backgroundImage: z67.boolean().optional(),
45105
+ backgroundGradient: z67.boolean().optional(),
45106
+ spacing: z67.union([z67.array(z67.enum(["compact", "default", "spacious"])), z67.boolean()]).optional(),
45107
+ textColor: z67.boolean().optional()
45036
45108
  });
45037
- sdkContainerOptionsConfigSchema = z69.object({
45038
- maxWidth: z69.union([z69.array(z69.enum(["narrow", "default", "wide", "full"])), z69.boolean()]).optional(),
45039
- alignment: z69.union([z69.array(z69.enum(["left", "center", "right"])), z69.boolean()]).optional()
45109
+ sdkContainerOptionsConfigSchema = z67.object({
45110
+ maxWidth: z67.union([z67.array(z67.enum(["narrow", "default", "wide", "full"])), z67.boolean()]).optional(),
45111
+ alignment: z67.union([z67.array(z67.enum(["left", "center", "right"])), z67.boolean()]).optional()
45040
45112
  });
45041
- sdkSiteStyleConfigSchema = z69.object({
45042
- sectionBackgrounds: z69.array(sdkSectionBackgroundSchema).optional(),
45113
+ sdkSiteStyleConfigSchema = z67.object({
45114
+ sectionBackgrounds: z67.array(sdkSectionBackgroundSchema).optional(),
45043
45115
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
45044
45116
  containerOptions: sdkContainerOptionsConfigSchema.optional()
45045
45117
  });
45046
- sdkSiteLayoutConfigSchema = z69.object({
45047
- footerBlocks: z69.array(
45048
- z69.object({
45049
- id: z69.string().min(1).optional(),
45050
- kind: z69.string().min(1),
45051
- content: z69.record(z69.string(), z69.unknown()).optional()
45118
+ sdkSiteLayoutConfigSchema = z67.object({
45119
+ footerBlocks: z67.array(
45120
+ z67.object({
45121
+ id: z67.string().min(1).optional(),
45122
+ kind: z67.string().min(1),
45123
+ content: z67.record(z67.string(), z67.unknown()).optional()
45052
45124
  })
45053
45125
  ).optional()
45054
45126
  });
45055
- sdkFieldSelectOptionSchema = z69.object({
45056
- value: z69.string(),
45057
- label: z69.string()
45127
+ sdkFieldSelectOptionSchema = z67.object({
45128
+ value: z67.string(),
45129
+ label: z67.string()
45058
45130
  });
45059
- sdkBlockFieldConfigSchema = z69.object({
45060
- options: z69.array(sdkFieldSelectOptionSchema).optional()
45131
+ sdkBlockFieldConfigSchema = z67.object({
45132
+ options: z67.array(sdkFieldSelectOptionSchema).optional()
45061
45133
  });
45062
- sdkBlockFieldOptionsMapSchema = z69.record(
45063
- z69.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
45134
+ sdkBlockFieldOptionsMapSchema = z67.record(
45135
+ z67.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
45064
45136
  message: "Block ID must be 'block.*' or 'custom.*' format"
45065
45137
  }),
45066
- z69.record(z69.string().min(1), sdkBlockFieldConfigSchema)
45138
+ z67.record(z67.string().min(1), sdkBlockFieldConfigSchema)
45067
45139
  ).optional();
45068
- sdkContentTypeTemplateConfigSchema = z69.object({
45069
- blocks: z69.array(z69.unknown())
45140
+ sdkContentTypeTemplateConfigSchema = z67.object({
45141
+ blocks: z67.array(z67.unknown())
45070
45142
  }).passthrough();
45071
- sdkContentTypeOrderingConfigSchema = z69.object({
45072
- mode: z69.enum(["default", "manual"]).optional()
45143
+ sdkContentTypeOrderingConfigSchema = z67.object({
45144
+ mode: z67.enum(["default", "manual"]).optional()
45073
45145
  }).optional();
45074
- sdkContentTypeConfigSchema = z69.object({
45075
- key: z69.string().min(1),
45076
- fields: z69.array(z69.unknown()),
45146
+ sdkContentTypeConfigSchema = z67.object({
45147
+ key: z67.string().min(1),
45148
+ fields: z67.array(z67.unknown()),
45077
45149
  ordering: sdkContentTypeOrderingConfigSchema,
45078
45150
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
45079
45151
  }).passthrough();
45080
- sdkContentConfigSchema = z69.object({
45081
- contentTypes: z69.array(sdkContentTypeConfigSchema).optional(),
45082
- pages: z69.array(z69.unknown()).optional(),
45083
- entries: z69.array(z69.unknown()).optional(),
45084
- navigationMenus: z69.array(z69.unknown()).optional(),
45085
- settings: z69.unknown().optional()
45152
+ sdkContentConfigSchema = z67.object({
45153
+ contentTypes: z67.array(sdkContentTypeConfigSchema).optional(),
45154
+ pages: z67.array(z67.unknown()).optional(),
45155
+ entries: z67.array(z67.unknown()).optional(),
45156
+ navigationMenus: z67.array(z67.unknown()).optional(),
45157
+ settings: z67.unknown().optional()
45086
45158
  }).passthrough();
45087
45159
  SDK_WORKFLOW_ID_MAX_LENGTH = 120;
45088
45160
  SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -45097,62 +45169,62 @@ var init_contracts2 = __esm({
45097
45169
  SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
45098
45170
  SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
45099
45171
  SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
45100
- sdkWorkflowIdSchema = z69.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
45172
+ sdkWorkflowIdSchema = z67.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
45101
45173
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
45102
45174
  });
45103
- sdkWorkflowEndpointSchema = z69.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
45104
- sdkWorkflowManualTriggerSchema = z69.object({
45105
- type: z69.literal("manual")
45175
+ sdkWorkflowEndpointSchema = z67.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
45176
+ sdkWorkflowManualTriggerSchema = z67.object({
45177
+ type: z67.literal("manual")
45106
45178
  }).strict();
45107
- sdkWorkflowTriggerFieldSchema = z69.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
45179
+ sdkWorkflowTriggerFieldSchema = z67.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
45108
45180
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
45109
45181
  });
45110
- sdkWorkflowFieldChangedConditionSchema = z69.object({
45182
+ sdkWorkflowFieldChangedConditionSchema = z67.object({
45111
45183
  field: sdkWorkflowTriggerFieldSchema,
45112
- changed: z69.literal(true)
45184
+ changed: z67.literal(true)
45113
45185
  }).strict();
45114
- sdkWorkflowFieldEmptyConditionSchema = z69.object({
45186
+ sdkWorkflowFieldEmptyConditionSchema = z67.object({
45115
45187
  field: sdkWorkflowTriggerFieldSchema,
45116
- isEmpty: z69.boolean()
45188
+ isEmpty: z67.boolean()
45117
45189
  }).strict();
45118
- sdkWorkflowEntryDraftUpdatedTriggerSchema = z69.object({
45119
- type: z69.literal("entry.draft.updated"),
45120
- when: z69.array(
45121
- z69.union([
45190
+ sdkWorkflowEntryDraftUpdatedTriggerSchema = z67.object({
45191
+ type: z67.literal("entry.draft.updated"),
45192
+ when: z67.array(
45193
+ z67.union([
45122
45194
  sdkWorkflowFieldChangedConditionSchema,
45123
45195
  sdkWorkflowFieldEmptyConditionSchema
45124
45196
  ])
45125
45197
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
45126
45198
  }).strict();
45127
- sdkWorkflowTriggerSchema = z69.discriminatedUnion("type", [
45199
+ sdkWorkflowTriggerSchema = z67.discriminatedUnion("type", [
45128
45200
  sdkWorkflowManualTriggerSchema,
45129
45201
  sdkWorkflowEntryDraftUpdatedTriggerSchema
45130
45202
  ]);
45131
- sdkWorkflowConfirmationSchema = z69.object({
45132
- title: z69.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
45133
- body: z69.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
45203
+ sdkWorkflowConfirmationSchema = z67.object({
45204
+ title: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
45205
+ body: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
45134
45206
  }).strict();
45135
- sdkWorkflowConfigSchema = z69.object({
45207
+ sdkWorkflowConfigSchema = z67.object({
45136
45208
  id: sdkWorkflowIdSchema,
45137
- title: z69.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
45138
- description: z69.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
45139
- contentType: z69.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
45209
+ title: z67.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
45210
+ description: z67.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
45211
+ contentType: z67.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
45140
45212
  endpoint: sdkWorkflowEndpointSchema,
45141
- triggers: z69.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
45213
+ triggers: z67.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
45142
45214
  confirmation: sdkWorkflowConfirmationSchema.optional()
45143
45215
  }).strict();
45144
- sdkWorkflowsSchema = z69.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
45216
+ sdkWorkflowsSchema = z67.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
45145
45217
  const ids = workflows.map((workflow) => workflow.id);
45146
45218
  return ids.length === new Set(ids).size;
45147
45219
  }, { message: "Workflow IDs must be unique" }).optional();
45148
- riverbankSiteConfigInputSchema = z69.object({
45149
- siteId: z69.string().uuid(),
45150
- previewUrl: z69.string().url().optional(),
45151
- liveUrl: z69.string().url().optional(),
45220
+ riverbankSiteConfigInputSchema = z67.object({
45221
+ siteId: z67.string().uuid(),
45222
+ previewUrl: z67.string().url().optional(),
45223
+ liveUrl: z67.string().url().optional(),
45152
45224
  theme: sdkThemeConfigSchema.optional(),
45153
45225
  styles: sdkSiteStyleConfigSchema.optional(),
45154
45226
  layout: sdkSiteLayoutConfigSchema.optional(),
45155
- customBlocks: z69.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
45227
+ customBlocks: z67.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
45156
45228
  const ids = blocks.map((b) => b.id);
45157
45229
  return ids.length === new Set(ids).size;
45158
45230
  }, { message: "Block IDs must be unique" }).optional(),
@@ -45160,22 +45232,22 @@ var init_contracts2 = __esm({
45160
45232
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
45161
45233
  workflows: sdkWorkflowsSchema,
45162
45234
  content: sdkContentConfigSchema.optional(),
45163
- contentDir: z69.string().optional(),
45164
- sync: z69.object({
45165
- existingEntries: z69.enum(["skip", "update"]).optional()
45235
+ contentDir: z67.string().optional(),
45236
+ sync: z67.object({
45237
+ existingEntries: z67.enum(["skip", "update"]).optional()
45166
45238
  }).optional(),
45167
- deploy: z69.object({
45168
- verifyCommand: z69.string().optional(),
45169
- prebuildOutput: z69.string().optional()
45239
+ deploy: z67.object({
45240
+ verifyCommand: z67.string().optional(),
45241
+ prebuildOutput: z67.string().optional()
45170
45242
  }).optional(),
45171
- themeSource: z69.enum(["local", "cms"]).optional(),
45172
- activeTheme: z69.string().optional(),
45173
- enablePortal: z69.boolean().optional(),
45243
+ themeSource: z67.enum(["local", "cms"]).optional(),
45244
+ activeTheme: z67.string().optional(),
45245
+ enablePortal: z67.boolean().optional(),
45174
45246
  dashboard: dashboardConfigSchema.optional()
45175
45247
  }).strict();
45176
- pushSdkConfigBodySchema = z69.object({
45248
+ pushSdkConfigBodySchema = z67.object({
45177
45249
  config: riverbankSiteConfigInputSchema,
45178
- forceContentTypes: z69.boolean().optional()
45250
+ forceContentTypes: z67.boolean().optional()
45179
45251
  }).strict();
45180
45252
  }
45181
45253
  });
@@ -45202,7 +45274,7 @@ var init_mailchimpIntegration = __esm({
45202
45274
  });
45203
45275
 
45204
45276
  // ../api/src/siteOnboarding.ts
45205
- import { z as z70 } from "zod";
45277
+ import { z as z68 } from "zod";
45206
45278
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS, acknowledgeLaunchRequirementRequestSchema, goLiveSiteRequestSchema;
45207
45279
  var init_siteOnboarding = __esm({
45208
45280
  "../api/src/siteOnboarding.ts"() {
@@ -45213,24 +45285,24 @@ var init_siteOnboarding = __esm({
45213
45285
  reason: "launch_anyway"
45214
45286
  }
45215
45287
  };
45216
- acknowledgeLaunchRequirementRequestSchema = z70.discriminatedUnion(
45288
+ acknowledgeLaunchRequirementRequestSchema = z68.discriminatedUnion(
45217
45289
  "requirementId",
45218
45290
  [
45219
- z70.object({
45220
- requirementId: z70.literal("review_generated_site")
45291
+ z68.object({
45292
+ requirementId: z68.literal("review_generated_site")
45221
45293
  }),
45222
- z70.object({
45223
- requirementId: z70.literal(
45294
+ z68.object({
45295
+ requirementId: z68.literal(
45224
45296
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
45225
45297
  ),
45226
- overrideReason: z70.literal(
45298
+ overrideReason: z68.literal(
45227
45299
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
45228
45300
  )
45229
45301
  })
45230
45302
  ]
45231
45303
  );
45232
- goLiveSiteRequestSchema = z70.object({
45233
- acceptExtraSiteCharge: z70.boolean().optional()
45304
+ goLiveSiteRequestSchema = z68.object({
45305
+ acceptExtraSiteCharge: z68.boolean().optional()
45234
45306
  });
45235
45307
  }
45236
45308
  });
@@ -45384,7 +45456,7 @@ var init_bookingRefundOutcomes = __esm({
45384
45456
  });
45385
45457
 
45386
45458
  // ../api/src/bookingVerticals.ts
45387
- import { z as z71 } from "zod";
45459
+ import { z as z69 } from "zod";
45388
45460
  function parseVerticalId(value) {
45389
45461
  return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
45390
45462
  }
@@ -45565,39 +45637,39 @@ var init_bookingVerticals = __esm({
45565
45637
  VERTICAL_PRESET_ID_SET = new Set(
45566
45638
  VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
45567
45639
  );
45568
- VerticalIdSchema = z71.string().trim().transform((value, ctx) => {
45640
+ VerticalIdSchema = z69.string().trim().transform((value, ctx) => {
45569
45641
  const parsed = parseVerticalId(value);
45570
45642
  if (!parsed) {
45571
45643
  ctx.addIssue({
45572
- code: z71.ZodIssueCode.custom,
45644
+ code: z69.ZodIssueCode.custom,
45573
45645
  message: "Unknown booking vertical"
45574
45646
  });
45575
- return z71.NEVER;
45647
+ return z69.NEVER;
45576
45648
  }
45577
45649
  return parsed;
45578
45650
  });
45579
- VerticalPresetIdSchema = z71.string().trim().transform((value, ctx) => {
45651
+ VerticalPresetIdSchema = z69.string().trim().transform((value, ctx) => {
45580
45652
  const parsed = parseVerticalPresetId(value);
45581
45653
  if (!parsed) {
45582
45654
  ctx.addIssue({
45583
- code: z71.ZodIssueCode.custom,
45655
+ code: z69.ZodIssueCode.custom,
45584
45656
  message: "Unknown booking preset"
45585
45657
  });
45586
- return z71.NEVER;
45658
+ return z69.NEVER;
45587
45659
  }
45588
45660
  return parsed;
45589
45661
  });
45590
- BookingVerticalConfigSchema = z71.object({
45662
+ BookingVerticalConfigSchema = z69.object({
45591
45663
  verticalId: VerticalIdSchema.nullable(),
45592
- selectedPresetIds: z71.array(VerticalPresetIdSchema).max(20)
45664
+ selectedPresetIds: z69.array(VerticalPresetIdSchema).max(20)
45593
45665
  }).transform((value, ctx) => {
45594
45666
  const resolved = resolveSiteVerticalBookingConfig(value);
45595
45667
  if (resolved.kind === "invalid") {
45596
45668
  ctx.addIssue({
45597
- code: z71.ZodIssueCode.custom,
45669
+ code: z69.ZodIssueCode.custom,
45598
45670
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
45599
45671
  });
45600
- return z71.NEVER;
45672
+ return z69.NEVER;
45601
45673
  }
45602
45674
  return resolved.config;
45603
45675
  });
@@ -45635,7 +45707,7 @@ var init_error_propagation = __esm({
45635
45707
  });
45636
45708
 
45637
45709
  // ../api/src/appointmentSetup.ts
45638
- import { z as z72 } from "zod";
45710
+ import { z as z70 } from "zod";
45639
45711
  var APPOINTMENT_SETUP_MAX_MINUTES, appointmentSetupRefSchema, appointmentSetupVenueChoiceSchema, appointmentSetupPaymentDraftSchema, appointmentSetupServiceAssignmentDraftSchema, appointmentSetupServiceDraftSchema, appointmentSetupPractitionerDraftSchema, appointmentSetupWeeklyWindowDraftSchema, appointmentSetupStartTimePolicyDraftSchema, appointmentSetupAvailabilityDraftSchema, APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX, APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX, appointmentSetupBookingNoticeSchema, applyAppointmentSetupRequestSchema;
45640
45712
  var init_appointmentSetup = __esm({
45641
45713
  "../api/src/appointmentSetup.ts"() {
@@ -45643,49 +45715,49 @@ var init_appointmentSetup = __esm({
45643
45715
  init_envelope();
45644
45716
  init_error_propagation();
45645
45717
  APPOINTMENT_SETUP_MAX_MINUTES = 1440;
45646
- appointmentSetupRefSchema = z72.discriminatedUnion("kind", [
45647
- z72.object({ kind: z72.literal("existing"), id: z72.string().min(1) }),
45648
- z72.object({ kind: z72.literal("new"), draftId: z72.string().min(1) })
45718
+ appointmentSetupRefSchema = z70.discriminatedUnion("kind", [
45719
+ z70.object({ kind: z70.literal("existing"), id: z70.string().min(1) }),
45720
+ z70.object({ kind: z70.literal("new"), draftId: z70.string().min(1) })
45649
45721
  ]);
45650
- appointmentSetupVenueChoiceSchema = z72.discriminatedUnion("kind", [
45651
- z72.object({ kind: z72.literal("none") }),
45652
- z72.object({ kind: z72.literal("existing"), venueId: z72.string().min(1) }),
45653
- z72.object({
45654
- kind: z72.literal("create"),
45655
- draftId: z72.string().min(1),
45656
- title: z72.string().trim().min(1),
45657
- description: z72.string().nullable(),
45658
- timezone: z72.string().trim().min(1).nullable(),
45659
- addressJson: z72.record(z72.string(), z72.unknown()),
45660
- locationJson: z72.object({ lat: z72.number(), lng: z72.number() }).nullable()
45722
+ appointmentSetupVenueChoiceSchema = z70.discriminatedUnion("kind", [
45723
+ z70.object({ kind: z70.literal("none") }),
45724
+ z70.object({ kind: z70.literal("existing"), venueId: z70.string().min(1) }),
45725
+ z70.object({
45726
+ kind: z70.literal("create"),
45727
+ draftId: z70.string().min(1),
45728
+ title: z70.string().trim().min(1),
45729
+ description: z70.string().nullable(),
45730
+ timezone: z70.string().trim().min(1).nullable(),
45731
+ addressJson: z70.record(z70.string(), z70.unknown()),
45732
+ locationJson: z70.object({ lat: z70.number(), lng: z70.number() }).nullable()
45661
45733
  })
45662
45734
  ]);
45663
- appointmentSetupPaymentDraftSchema = z72.object({
45664
- priceType: z72.union([z72.literal("free"), z72.literal("paid")])
45665
- });
45666
- appointmentSetupServiceAssignmentDraftSchema = z72.discriminatedUnion("kind", [
45667
- z72.object({ kind: z72.literal("all_practitioners") }),
45668
- z72.object({
45669
- kind: z72.literal("selected_practitioners"),
45670
- resourceRefs: z72.array(appointmentSetupRefSchema)
45735
+ appointmentSetupPaymentDraftSchema = z70.object({
45736
+ priceType: z70.union([z70.literal("free"), z70.literal("paid")])
45737
+ });
45738
+ appointmentSetupServiceAssignmentDraftSchema = z70.discriminatedUnion("kind", [
45739
+ z70.object({ kind: z70.literal("all_practitioners") }),
45740
+ z70.object({
45741
+ kind: z70.literal("selected_practitioners"),
45742
+ resourceRefs: z70.array(appointmentSetupRefSchema)
45671
45743
  })
45672
45744
  ]);
45673
- appointmentSetupServiceDraftSchema = z72.object({
45745
+ appointmentSetupServiceDraftSchema = z70.object({
45674
45746
  ref: appointmentSetupRefSchema,
45675
- title: z72.string().trim().min(1),
45676
- description: z72.string().nullable(),
45677
- durationMinutes: z72.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
45678
- prepMinutes: z72.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45679
- cleanupMinutes: z72.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45680
- priceAmount: z72.number().int().nonnegative().nullable(),
45681
- isActive: z72.boolean(),
45682
- locationType: z72.union([
45683
- z72.literal("virtual"),
45684
- z72.literal("in_person"),
45685
- z72.literal("hybrid")
45747
+ title: z70.string().trim().min(1),
45748
+ description: z70.string().nullable(),
45749
+ durationMinutes: z70.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
45750
+ prepMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45751
+ cleanupMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45752
+ priceAmount: z70.number().int().nonnegative().nullable(),
45753
+ isActive: z70.boolean(),
45754
+ locationType: z70.union([
45755
+ z70.literal("virtual"),
45756
+ z70.literal("in_person"),
45757
+ z70.literal("hybrid")
45686
45758
  ]),
45687
45759
  venue: appointmentSetupVenueChoiceSchema,
45688
- timezone: z72.string().trim().min(1).nullable(),
45760
+ timezone: z70.string().trim().min(1).nullable(),
45689
45761
  payment: appointmentSetupPaymentDraftSchema,
45690
45762
  assignment: appointmentSetupServiceAssignmentDraftSchema
45691
45763
  }).superRefine((service, ctx) => {
@@ -45704,54 +45776,61 @@ var init_appointmentSetup = __esm({
45704
45776
  });
45705
45777
  }
45706
45778
  });
45707
- appointmentSetupPractitionerDraftSchema = z72.object({
45779
+ appointmentSetupPractitionerDraftSchema = z70.object({
45708
45780
  ref: appointmentSetupRefSchema,
45709
- displayName: z72.string().trim().min(1),
45710
- bio: z72.string().nullable(),
45711
- timezone: z72.string().trim().min(1),
45712
- colorHex: z72.string().nullable()
45713
- });
45714
- appointmentSetupWeeklyWindowDraftSchema = z72.object({
45715
- weekday: z72.number().int().min(0).max(6),
45716
- startTime: z72.string(),
45717
- endTime: z72.string()
45718
- });
45719
- appointmentSetupStartTimePolicyDraftSchema = z72.discriminatedUnion("kind", [
45720
- z72.object({ kind: z72.literal("automatic_spacing") }),
45721
- z72.object({
45722
- kind: z72.literal("regular_interval"),
45723
- intervalMinutes: z72.union([
45724
- z72.literal(10),
45725
- z72.literal(15),
45726
- z72.literal(20),
45727
- z72.literal(30),
45728
- z72.literal(45),
45729
- z72.literal(60)
45781
+ displayName: z70.string().trim().min(1),
45782
+ bio: z70.string().nullable(),
45783
+ timezone: z70.string().trim().min(1),
45784
+ colorHex: z70.string().nullable()
45785
+ });
45786
+ appointmentSetupWeeklyWindowDraftSchema = z70.object({
45787
+ weekday: z70.number().int().min(0).max(6),
45788
+ startTime: z70.string(),
45789
+ endTime: z70.string()
45790
+ });
45791
+ appointmentSetupStartTimePolicyDraftSchema = z70.discriminatedUnion("kind", [
45792
+ z70.object({ kind: z70.literal("automatic_spacing") }),
45793
+ z70.object({
45794
+ kind: z70.literal("regular_interval"),
45795
+ intervalMinutes: z70.union([
45796
+ z70.literal(10),
45797
+ z70.literal(15),
45798
+ z70.literal(20),
45799
+ z70.literal(30),
45800
+ z70.literal(45),
45801
+ z70.literal(60)
45730
45802
  ])
45731
45803
  })
45732
45804
  ]);
45733
- appointmentSetupAvailabilityDraftSchema = z72.object({
45734
- kind: z72.literal("weekly_windows"),
45805
+ appointmentSetupAvailabilityDraftSchema = z70.object({
45806
+ kind: z70.literal("weekly_windows"),
45735
45807
  resourceRef: appointmentSetupRefSchema,
45736
45808
  serviceRef: appointmentSetupRefSchema.nullable(),
45737
- windows: z72.array(appointmentSetupWeeklyWindowDraftSchema),
45809
+ windows: z70.array(appointmentSetupWeeklyWindowDraftSchema),
45738
45810
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
45739
45811
  });
45740
45812
  APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
45741
45813
  APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
45742
- appointmentSetupBookingNoticeSchema = z72.object({
45743
- minLeadMinutes: z72.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
45744
- maxBookingNoticeMinutes: z72.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
45745
- });
45746
- applyAppointmentSetupRequestSchema = z72.object({
45747
- services: z72.array(appointmentSetupServiceDraftSchema),
45748
- practitioners: z72.array(appointmentSetupPractitionerDraftSchema),
45749
- availability: z72.array(appointmentSetupAvailabilityDraftSchema),
45814
+ appointmentSetupBookingNoticeSchema = z70.object({
45815
+ minLeadMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
45816
+ maxBookingNoticeMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
45817
+ });
45818
+ applyAppointmentSetupRequestSchema = z70.object({
45819
+ services: z70.array(appointmentSetupServiceDraftSchema),
45820
+ practitioners: z70.array(appointmentSetupPractitionerDraftSchema),
45821
+ availability: z70.array(appointmentSetupAvailabilityDraftSchema),
45750
45822
  bookingNotice: appointmentSetupBookingNoticeSchema
45751
45823
  });
45752
45824
  }
45753
45825
  });
45754
45826
 
45827
+ // ../api/src/bookingOperations.ts
45828
+ var init_bookingOperations = __esm({
45829
+ "../api/src/bookingOperations.ts"() {
45830
+ "use strict";
45831
+ }
45832
+ });
45833
+
45755
45834
  // ../api/src/bookingRecords.ts
45756
45835
  var BOOKING_QUESTION_ANSWER_EXPORT_SCOPES, BOOKING_QUESTION_ANSWER_EXPORT_SCOPE_VALUES;
45757
45836
  var init_bookingRecords = __esm({
@@ -45848,7 +45927,9 @@ var init_types19 = __esm({
45848
45927
  "use strict";
45849
45928
  init_accessAdmin();
45850
45929
  init_staffAccess();
45930
+ init_bookingOperations();
45851
45931
  init_siteOperations();
45932
+ init_bookings();
45852
45933
  init_siteMembers();
45853
45934
  }
45854
45935
  });
@@ -45861,7 +45942,7 @@ var init_eventAttendanceLabels = __esm({
45861
45942
  });
45862
45943
 
45863
45944
  // ../api/src/siteBanner.ts
45864
- import { z as z73 } from "zod";
45945
+ import { z as z71 } from "zod";
45865
45946
  function analyzeSiteBannerBody(body) {
45866
45947
  const sanitizedBody = sanitizeSiteBannerBodyInternal(body, { limitParagraphs: false });
45867
45948
  const paragraphs = collectParagraphs(sanitizedBody);
@@ -46044,19 +46125,19 @@ var init_siteBanner = __esm({
46044
46125
  SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
46045
46126
  SITE_BANNER_MAX_TEXT_LENGTH = 320;
46046
46127
  SITE_BANNER_MAX_PARAGRAPHS = 2;
46047
- siteBannerScopeSchema = z73.enum(SITE_BANNER_SCOPE_VALUES);
46048
- siteBannerToneSchema = z73.enum(SITE_BANNER_TONE_VALUES);
46049
- siteBannerBodySchema = z73.unknown().transform(unwrapRichTextValue);
46050
- siteBannerCtaSchema = z73.object({
46051
- label: z73.string().trim().min(1),
46128
+ siteBannerScopeSchema = z71.enum(SITE_BANNER_SCOPE_VALUES);
46129
+ siteBannerToneSchema = z71.enum(SITE_BANNER_TONE_VALUES);
46130
+ siteBannerBodySchema = z71.unknown().transform(unwrapRichTextValue);
46131
+ siteBannerCtaSchema = z71.object({
46132
+ label: z71.string().trim().min(1),
46052
46133
  link: linkPayloadSchema
46053
46134
  });
46054
- siteBannerSettingsSchema = z73.discriminatedUnion("enabled", [
46055
- z73.object({
46056
- enabled: z73.literal(false)
46135
+ siteBannerSettingsSchema = z71.discriminatedUnion("enabled", [
46136
+ z71.object({
46137
+ enabled: z71.literal(false)
46057
46138
  }),
46058
- z73.object({
46059
- enabled: z73.literal(true),
46139
+ z71.object({
46140
+ enabled: z71.literal(true),
46060
46141
  scope: siteBannerScopeSchema,
46061
46142
  tone: siteBannerToneSchema,
46062
46143
  body: siteBannerBodySchema,
@@ -46070,7 +46151,7 @@ var init_siteBanner = __esm({
46070
46151
  const analysis = analyzeSiteBannerBody(value.body);
46071
46152
  for (const issue of analysis.issues) {
46072
46153
  ctx.addIssue({
46073
- code: z73.ZodIssueCode.custom,
46154
+ code: z71.ZodIssueCode.custom,
46074
46155
  path: ["body"],
46075
46156
  message: siteBannerBodyIssueMessage(issue)
46076
46157
  });
@@ -46460,75 +46541,75 @@ var init_aiPatch = __esm({
46460
46541
  });
46461
46542
 
46462
46543
  // ../api/src/aiPlayground.ts
46463
- import { z as z74 } from "zod";
46544
+ import { z as z72 } from "zod";
46464
46545
  var Rfc6902PatchOp, PlaygroundProposeRequest, MultiPagePatchEnvelope, MultiPageUpdateResponse;
46465
46546
  var init_aiPlayground = __esm({
46466
46547
  "../api/src/aiPlayground.ts"() {
46467
46548
  "use strict";
46468
- Rfc6902PatchOp = z74.discriminatedUnion("op", [
46549
+ Rfc6902PatchOp = z72.discriminatedUnion("op", [
46469
46550
  // Standard RFC-6902 operations
46470
- z74.object({
46471
- op: z74.literal("add"),
46472
- path: z74.string(),
46473
- value: z74.unknown()
46551
+ z72.object({
46552
+ op: z72.literal("add"),
46553
+ path: z72.string(),
46554
+ value: z72.unknown()
46474
46555
  }),
46475
- z74.object({
46476
- op: z74.literal("remove"),
46477
- path: z74.string()
46556
+ z72.object({
46557
+ op: z72.literal("remove"),
46558
+ path: z72.string()
46478
46559
  }),
46479
- z74.object({
46480
- op: z74.literal("replace"),
46481
- path: z74.string(),
46482
- value: z74.unknown()
46560
+ z72.object({
46561
+ op: z72.literal("replace"),
46562
+ path: z72.string(),
46563
+ value: z72.unknown()
46483
46564
  }),
46484
- z74.object({
46485
- op: z74.literal("move"),
46486
- from: z74.string(),
46487
- path: z74.string()
46565
+ z72.object({
46566
+ op: z72.literal("move"),
46567
+ from: z72.string(),
46568
+ path: z72.string()
46488
46569
  }),
46489
- z74.object({
46490
- op: z74.literal("copy"),
46491
- from: z74.string(),
46492
- path: z74.string()
46570
+ z72.object({
46571
+ op: z72.literal("copy"),
46572
+ from: z72.string(),
46573
+ path: z72.string()
46493
46574
  }),
46494
46575
  // Block-level operations (Phase 2)
46495
- z74.object({
46496
- op: z74.literal("add_block"),
46497
- blockKind: z74.string(),
46498
- afterBlockId: z74.string().nullable(),
46499
- content: z74.record(z74.string(), z74.unknown()),
46500
- rationale: z74.string()
46576
+ z72.object({
46577
+ op: z72.literal("add_block"),
46578
+ blockKind: z72.string(),
46579
+ afterBlockId: z72.string().nullable(),
46580
+ content: z72.record(z72.string(), z72.unknown()),
46581
+ rationale: z72.string()
46501
46582
  }),
46502
- z74.object({
46503
- op: z74.literal("delete_block"),
46504
- blockId: z74.string(),
46505
- rationale: z74.string()
46583
+ z72.object({
46584
+ op: z72.literal("delete_block"),
46585
+ blockId: z72.string(),
46586
+ rationale: z72.string()
46506
46587
  }),
46507
- z74.object({
46508
- op: z74.literal("reorder_block"),
46509
- blockId: z74.string(),
46510
- afterBlockId: z74.string().nullable(),
46511
- rationale: z74.string()
46588
+ z72.object({
46589
+ op: z72.literal("reorder_block"),
46590
+ blockId: z72.string(),
46591
+ afterBlockId: z72.string().nullable(),
46592
+ rationale: z72.string()
46512
46593
  })
46513
46594
  ]);
46514
- PlaygroundProposeRequest = z74.object({
46515
- request: z74.string().min(1).max(2e3)
46595
+ PlaygroundProposeRequest = z72.object({
46596
+ request: z72.string().min(1).max(2e3)
46516
46597
  });
46517
- MultiPagePatchEnvelope = z74.object({
46518
- pageId: z74.string(),
46519
- blockId: z74.string().optional(),
46598
+ MultiPagePatchEnvelope = z72.object({
46599
+ pageId: z72.string(),
46600
+ blockId: z72.string().optional(),
46520
46601
  // Not present for page-level ops
46521
- blockKind: z74.string().optional(),
46522
- blockPurpose: z74.string().optional().nullable(),
46523
- ops: z74.array(Rfc6902PatchOp),
46524
- rationale: z74.string(),
46525
- currentContent: z74.record(z74.string(), z74.unknown()).optional()
46602
+ blockKind: z72.string().optional(),
46603
+ blockPurpose: z72.string().optional().nullable(),
46604
+ ops: z72.array(Rfc6902PatchOp),
46605
+ rationale: z72.string(),
46606
+ currentContent: z72.record(z72.string(), z72.unknown()).optional()
46526
46607
  });
46527
- MultiPageUpdateResponse = z74.object({
46528
- patches: z74.array(MultiPagePatchEnvelope),
46529
- assistantMessage: z74.string(),
46530
- pagesModified: z74.number(),
46531
- toolCallsUsed: z74.number()
46608
+ MultiPageUpdateResponse = z72.object({
46609
+ patches: z72.array(MultiPagePatchEnvelope),
46610
+ assistantMessage: z72.string(),
46611
+ pagesModified: z72.number(),
46612
+ toolCallsUsed: z72.number()
46532
46613
  });
46533
46614
  }
46534
46615
  });
@@ -46610,6 +46691,7 @@ var init_src5 = __esm({
46610
46691
  init_bookingVerticals();
46611
46692
  init_event_destination_policy();
46612
46693
  init_appointmentSetup();
46694
+ init_bookingOperations();
46613
46695
  init_bookings();
46614
46696
  init_cache_tags();
46615
46697
  init_streamReader();